@djangocfg/widget-forms

中文文档
0.1.32发布于 2026/11/11MITTypeScriptES Module近 30 天下载 4023

Input surfaces: a JSON-Schema form, an uploader, a cron builder, a combobox, a sortable list, a scroller and speech dictation

原始使用文档
文档目录4 节
  1. Install
  2. Import a subpath
  3. composer-registry is why speech and chat can stay apart
  4. Testing

@djangocfg/widget-forms

Input surfaces: the things a user fills in, picks from, drags or speaks into.

Nine tools that share a job rather than a library — a form generated from a schema, two upload surfaces, a cron builder, three interaction primitives, a speech engine, and the registry that lets a voice button drive someone else's composer.

Install

pnpm add @djangocfg/widget-forms

Peers: react 19, react-dom 19, @djangocfg/ui-core, @djangocfg/i18n, lucide-react, zustand.

Import a subpath

There is no root barrel worth importing. json-form carries RJSF and its AJV validator; upload carries Rpldy; speech-recognition carries a store and an engine. None of them belongs in an app that wanted a combobox.

SubpathWhat it is
./json-formJsonSchemaForm, lazy — a JSON Schema in, a themed form out
./json-form/fullthe same, eager, for a surface that always shows one
./uploadUploader — dropzone, previews, clipboard paste, abort
./file-uploadthe single-file control, when a batch would be overkill
./cron-schedulerCronScheduler, lazy — builds and explains a cron expression
./comboboxa composed combobox (Trigger / Input / List / Item)
./sortabledrag-to-reorder over dnd-kit
./scrollera scroll container with the affordances a list needs
./speech-recognitiondictation, push-to-talk, engines, mic meter, language search
./composer-registrythe seam a voice button uses to type into a composer it does not own
./soundsthe short UI sounds the surfaces here play
import { JsonSchemaForm } from '@djangocfg/widget-forms/json-form';
import { Combobox, ComboboxInput, ComboboxList, ComboboxItem }
  from '@djangocfg/widget-forms/combobox';

composer-registry is why speech and chat can stay apart

A dictation button must put text into a composer. If it imported one, this package would depend on the chat surface — so instead a composer registers a handle (ComposerHandle), and the voice widget looks one up. The producer side is @djangocfg/widget-chat and any TipTap host; the consumer side is ./speech-recognition. Neither imports the other.

ComposerHandle is the one type the root barrel exports, because a host implementing the producer side needs it without pulling a widget in.

Testing

pnpm --filter @djangocfg/widget-forms check-types test

Six suites, all under speech/ — the reducer, the transcript assembly, the id generator, language matching and search, and the Web Speech engine. That is where the logic is; the rest of this package is composition over ui-core.

版本与发布记录

@djangocfg/widget-forms 共发布 28 个版本,首次发布于 2026/09/09;过去 12 个月发布了 28 个版本。

版本发布日期距今
0.1.32latest2026/11/111 天前
0.1.312026/11/111 天前
0.1.302026/11/102 天前
0.1.292026/11/102 天前
0.1.282026/11/092 天前
0.1.272026/11/092 天前

关于 @djangocfg/widget-forms 的常见问题

@djangocfg/widget-forms 是什么?

Input surfaces: a JSON-Schema form, an uploader, a cron builder, a combobox, a sortable list, a scroller and speech dictation

如何安装 @djangocfg/widget-forms?

在项目目录运行 npm install @djangocfg/widget-forms,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^19.0.0)、zustand(^5.0.0)、react-dom(^19.0.0)、lucide-react(^1.68.0)、@djangocfg/api(^2.1.648)、@djangocfg/i18n(^2.1.648)、@djangocfg/ui-core(^2.1.648)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@djangocfg/widget-forms 支持 TypeScript 吗?

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

@djangocfg/widget-forms 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@djangocfg/widget-forms 可以商用吗?

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

@djangocfg/widget-forms 的下载量有多少?

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

@djangocfg/widget-forms 还在维护吗?

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