@djangocfg/ui-tools

中文文档
2.1.541发布于 2026/09/05MITTypeScriptESM + CJS近 30 天下载 2208

Heavy React tools with lazy loading - for Electron, Vite, CRA, Next.js apps

原始使用文档
文档目录8 节
  1. Install
  2. Catalogue
  3. Usage
  4. Theming
  5. Lazy loading
  6. Build discipline
  7. Requirements
  8. License

@djangocfg/ui-tools

@djangocfg/ui-tools

Heavy, lazy-loaded React components for admin, devtools, and dashboards. Pairs with @djangocfg/ui-core (primitives + theme tokens).

Every tool is React.lazy by default — import what you use, pay only its bundle cost.

Install

pnpm add @djangocfg/ui-tools @djangocfg/ui-core
/* your app's globals.css — Tailwind v4 must scan this package's sources */
@import "@djangocfg/ui-core/styles/full";
@import "@djangocfg/ui-tools/styles";   /* ← add this */

Without the styles import, Tailwind never sees this package's classes and tools render partially unstyled.

Wrap your app in <UiProviders> from @djangocfg/ui-core once at the root (gives Tooltip/Dialog/Toast context to every tool).

Catalogue

GroupTools
chat/ChatLauncher, MessageList, Composer, SuggestedPrompts
data/DataGrid · DataTable · JsonTree · Kanban · Listbox · Masonry · Timeline · Tree
dev/code/PrettyCode · DiffViewer · MarkdownMessage
dev/api/OpenapiViewer · ApiRefTable · RequestViewer
dev/ops/LogViewer · EnvTable
dev/ (top)Mermaid · Map
forms/CodeEditor (Monaco) · JsonEditor · JsonForm · MarkdownEditor · NotionEditor · FileUpload · Uploader
input/Combobox · CronScheduler (+ CronPreview) · Scroller · Sortable · SpeechRecognition
media/AudioPlayer · VideoPlayer · ImageViewer · LottiePlayer · Gallery
overlay/ResponsiveDialog · ScrollSpy · SelectionToolbar · Tour
visual/charts/Gauge · ActivityGraph · CommitGraph · Sparkline
visual/indicators/StatusIndicator · Fps · Rating
visual/design/ColorPicker · ColorPalette · FileIcon
visual/ (top)Marquee · QRCode

Sub-grouping is internal — public imports stay flat.

Usage

import { JsonTree, LogViewer, DiffViewer, CronScheduler } from '@djangocfg/ui-tools';

<JsonTree data={response} compactHeader />
<LogViewer entries={logs} />
<DiffViewer oldCode={a} newCode={b} language="ts" view="split" />
<CronScheduler value={cron} onChange={setCron} />

Subpath imports avoid loading siblings:

import { JsonTree } from '@djangocfg/ui-tools/json-tree';
import { LogViewer } from '@djangocfg/ui-tools/log-viewer';

Theming

All tools render through @djangocfg/ui-core semantic tokens (bg-card, text-foreground, border-border, status surfaces) — they adapt automatically to light/dark and to the theme presets in ui-core.

Two intentional exceptions, both opt-in via prop:

  • PrettyCode — fixed dark surface regardless of UI theme. Code blocks ship their own contrast model (GitHub/VSCode/ChatGPT convention); mixing with light UI produces low-contrast pastel renders. Override via mode="light".
  • DiffViewer — adaptive; uses themes.github on light, themes.vsDark on dark via useResolvedTheme().

Canvas/SVG components (charts, viz) sample theme colors via useThemeColor/alpha from @djangocfg/ui-core/styles/palette — never color-mix/oklch strings (Canvas2D rejects them).

Lazy loading

Every tool's default export is React.lazy-wrapped; initial bundle stays small. Heaviest:

Mermaid ~800KB · Monaco CodeEditor ~550KB · PrettyCode (shiki) ~500KB · OpenapiViewer ~400KB · JsonForm ~300KB · AudioPlayer (WaveSurfer) ~200KB · LottiePlayer ~200KB · NotionEditor (TipTap) ~200KB · VideoPlayer (media-chrome) ~150KB · JsonTree ~100KB · ImageViewer ~50KB · CronScheduler ~15KB.

Works in Next.js, Vite, Wails, CRA — no framework lock-in.

Build discipline

After any src/ change, run pnpm build before considering the change done — consumers pick up dist/ via pnpm sync:cfg; a stale dist/ ships old code silently. See CLAUDE.md for details.

pnpm build    # rebuild dist/ (tsup)
pnpm check    # tsc --noEmit

Requirements

  • React 18 or 19
  • @djangocfg/ui-core (peer)
  • Tailwind CSS v4 (host imports @djangocfg/ui-core/styles)

License

MIT — © djangocfg.

版本与发布记录

@djangocfg/ui-tools 共发布 382 个版本,首次发布于 2026/01/03;过去 12 个月发布了 382 个版本。

版本发布日期距今
2.1.541latest2026/09/052 个月前
2.1.5402026/09/052 个月前
2.1.5392026/09/032 个月前
2.1.5372026/09/032 个月前
2.1.5362026/09/012 个月前
2.1.5352026/08/312 个月前

关于 @djangocfg/ui-tools 的常见问题

@djangocfg/ui-tools 是什么?

Heavy React tools with lazy loading - for Electron, Vite, CRA, Next.js apps

如何安装 @djangocfg/ui-tools?

在项目目录运行 npm install @djangocfg/ui-tools,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@djangocfg/i18n(^2.1.541)、@djangocfg/ui-core(^2.1.541)、consola(^3.4.2)、lodash-es(^4.18.1)、lucide-react(^0.545.0)、react(^19.2.4)、react-dom(^19.2.4)、tailwindcss(^4.1.18)、zustand(^5.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@djangocfg/ui-tools 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@djangocfg/ui-tools 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@djangocfg/ui-tools 可以商用吗?

@djangocfg/ui-tools 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@djangocfg/ui-tools 的下载量有多少?

根据 npm 官方下载统计,@djangocfg/ui-tools 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,208 次,日均约 74 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@djangocfg/ui-tools 还在维护吗?

最新版本 2.1.541 发布于 2026/09/05(2 个月前);至今共发布 382 个版本,其中过去 12 个月发布了 382 个;首次发布于 2026/01/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。