haze-ui 1.27.0 → 1.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +81 -33
- package/dist/components/Calendar/Calendar.js +222 -151
- package/dist/components/Cascader/Cascader.js +180 -146
- package/dist/components/Chart/Chart.js +12 -9
- package/dist/components/Chart/chart-elements.js +176 -39
- package/dist/components/CodeBlock/CodeBlock.js +39 -9
- package/dist/components/Combobox/Combobox.js +107 -99
- package/dist/components/CountUp/CountUp.js +45 -0
- package/dist/components/CountUp/index.js +3 -0
- package/dist/components/DataTable/DataTable.js +224 -221
- package/dist/components/DataTable/csv.js +29 -0
- package/dist/components/DataTable/index.js +3 -2
- package/dist/components/DateRangePicker/DateRangePicker.js +31 -16
- package/dist/components/DateRangePicker/presets.js +43 -0
- package/dist/components/Datepicker/Datepicker.js +12 -11
- package/dist/components/Datepicker/DatepickerCore.js +72 -51
- package/dist/components/Datepicker/datetime.js +23 -0
- package/dist/components/Descriptions/Descriptions.js +46 -0
- package/dist/components/Descriptions/index.js +3 -0
- package/dist/components/DiffViewer/DiffViewer.js +31 -30
- package/dist/components/Ellipsis/Ellipsis.js +53 -0
- package/dist/components/Ellipsis/index.js +3 -0
- package/dist/components/FilePreview/FilePreview.js +135 -0
- package/dist/components/FilePreview/file-preview-format.js +23 -0
- package/dist/components/FilePreview/index.js +3 -0
- package/dist/components/FloatButton/FloatButton.js +42 -0
- package/dist/components/FloatButton/FloatButtonGroup.js +58 -0
- package/dist/components/FloatButton/float-button-context.js +9 -0
- package/dist/components/FloatButton/float-button-glyphs.js +26 -0
- package/dist/components/FloatButton/float-button-styles.js +14 -0
- package/dist/components/FloatButton/index.js +4 -0
- package/dist/components/InlineCompletion/InlineCompletion.js +81 -0
- package/dist/components/InlineCompletion/index.js +3 -0
- package/dist/components/JsonView/JsonView.js +209 -0
- package/dist/components/JsonView/index.js +3 -0
- package/dist/components/JsonView/json-view-utils.js +24 -0
- package/dist/components/LocaleProvider/ar-sa.js +233 -0
- package/dist/components/LocaleProvider/de-de.js +233 -0
- package/dist/components/LocaleProvider/es-es.js +233 -0
- package/dist/components/LocaleProvider/fr-fr.js +233 -0
- package/dist/components/LocaleProvider/index.js +13 -4
- package/dist/components/LocaleProvider/it-it.js +233 -0
- package/dist/components/LocaleProvider/ja-jp.js +233 -0
- package/dist/components/LocaleProvider/ko-kr.js +233 -0
- package/dist/components/LocaleProvider/locale.js +53 -4
- package/dist/components/LocaleProvider/pt-br.js +233 -0
- package/dist/components/LocaleProvider/ru-ru.js +233 -0
- package/dist/components/LocaleProvider/useStrings.js +13 -11
- package/dist/components/LocaleProvider/zh-cn.js +53 -4
- package/dist/components/Masonry/Masonry.js +29 -0
- package/dist/components/Masonry/index.js +3 -0
- package/dist/components/Masonry/masonry-distribute.js +15 -0
- package/dist/components/QRCode/QRCode.js +43 -0
- package/dist/components/QRCode/index.js +3 -0
- package/dist/components/Result/Result.js +229 -0
- package/dist/components/Result/index.js +3 -0
- package/dist/components/Select/Select.js +14 -13
- package/dist/components/Select/SelectCore.js +27 -26
- package/dist/components/Select/SelectFloating.js +76 -68
- package/dist/components/Signature/Signature.js +165 -0
- package/dist/components/Signature/index.js +3 -0
- package/dist/components/Signature/signature-points.js +28 -0
- package/dist/components/Sources/Sources.js +109 -0
- package/dist/components/Sources/index.js +3 -0
- package/dist/components/TagGroup/SortableTagGroup.js +26 -0
- package/dist/components/TagGroup/TagGroup.js +7 -21
- package/dist/components/TagGroup/TagGroupItem.js +1 -1
- package/dist/components/TagGroup/index.js +2 -1
- package/dist/components/TagGroup/tag-group-styles.js +7 -0
- package/dist/components/TagInput/SortableTagInput.js +24 -0
- package/dist/components/TagInput/SortableTagInputCore.js +52 -0
- package/dist/components/TagInput/TagInput.js +9 -10
- package/dist/components/TagInput/TagInputCore.js +61 -84
- package/dist/components/TagInput/index.js +3 -1
- package/dist/components/TagInput/tag-input-styles.js +7 -0
- package/dist/components/Toast/Toast.js +44 -43
- package/dist/components/Tree/Tree.js +184 -121
- package/dist/components/Tree/TreeItem.js +91 -57
- package/dist/components/Tree/utils.js +57 -1
- package/dist/components/TreeSelect/TreeSelect.js +230 -0
- package/dist/components/TreeSelect/index.js +3 -0
- package/dist/components/Typography/Typography.js +39 -12
- package/dist/components/Upload/Upload.js +12 -9
- package/dist/components/Upload/UploadCore.js +130 -124
- package/dist/components/Upload/UploadList.js +164 -36
- package/dist/css/bottom-sheet.css +1 -1
- package/dist/css/cascader.css +1 -1
- package/dist/css/count-up.css +2 -0
- package/dist/css/datepicker.css +1 -1
- package/dist/css/descriptions.css +2 -0
- package/dist/css/dialog.css +1 -1
- package/dist/css/drawer.css +1 -1
- package/dist/css/ellipsis.css +2 -0
- package/dist/css/file-preview.css +2 -0
- package/dist/css/float-button.css +2 -0
- package/dist/css/inline-completion.css +2 -0
- package/dist/css/json-view.css +2 -0
- package/dist/css/masonry.css +2 -0
- package/dist/css/qr-code.css +2 -0
- package/dist/css/result.css +2 -0
- package/dist/css/signature.css +2 -0
- package/dist/css/sources.css +2 -0
- package/dist/css/tag-group.css +2 -2
- package/dist/css/tag-input.css +2 -3
- package/dist/css/tokens.css +3 -1
- package/dist/css/tree-select.css +3 -0
- package/dist/css/tree.css +2 -2
- package/dist/css/typography.css +1 -1
- package/dist/css/upload.css +1 -1
- package/dist/css-manifest.json +34 -0
- package/dist/design-tokens/dark.json +355 -0
- package/dist/design-tokens/light.json +355 -0
- package/dist/haze-ui.css +30 -15
- package/dist/headless/index.js +18 -6
- package/dist/hooks/useDarkMode.js +27 -0
- package/dist/index.js +233 -203
- package/dist/mcp-docs.json +9383 -0
- package/dist/registry.json +338 -60
- package/dist/tokens/brands.js +21 -0
- package/dist/tokens/density.js +6 -0
- package/dist/tokens/index.js +6 -5
- package/dist/tokens/palette.js +63 -55
- package/dist/types/components/Cascader/Cascader.d.ts +20 -1
- package/dist/types/components/Chart/Chart.d.ts +33 -15
- package/dist/types/components/Chart/chart-elements.d.ts +71 -11
- package/dist/types/components/Chart/index.d.ts +1 -1
- package/dist/types/components/CodeBlock/CodeBlock.d.ts +19 -2
- package/dist/types/components/CodeBlock/index.d.ts +1 -1
- package/dist/types/components/Combobox/Combobox.d.ts +11 -1
- package/dist/types/components/CountUp/CountUp.d.ts +20 -0
- package/dist/types/components/CountUp/index.d.ts +2 -0
- package/dist/types/components/DataTable/DataTable.d.ts +36 -1
- package/dist/types/components/DataTable/csv.d.ts +36 -0
- package/dist/types/components/DataTable/features.d.ts +6 -0
- package/dist/types/components/DataTable/index.d.ts +2 -0
- package/dist/types/components/DateRangePicker/DateRangePicker.d.ts +15 -3
- package/dist/types/components/DateRangePicker/index.d.ts +1 -1
- package/dist/types/components/DateRangePicker/presets.d.ts +23 -0
- package/dist/types/components/Datepicker/Datepicker.d.ts +5 -1
- package/dist/types/components/Datepicker/DatepickerCore.d.ts +6 -1
- package/dist/types/components/Datepicker/datetime.d.ts +27 -0
- package/dist/types/components/Descriptions/Descriptions.d.ts +30 -0
- package/dist/types/components/Descriptions/index.d.ts +2 -0
- package/dist/types/components/Ellipsis/Ellipsis.d.ts +19 -0
- package/dist/types/components/Ellipsis/index.d.ts +2 -0
- package/dist/types/components/FilePreview/FilePreview.d.ts +35 -0
- package/dist/types/components/FilePreview/file-preview-format.d.ts +20 -0
- package/dist/types/components/FilePreview/index.d.ts +2 -0
- package/dist/types/components/FloatButton/FloatButton.d.ts +43 -0
- package/dist/types/components/FloatButton/FloatButtonGroup.d.ts +33 -0
- package/dist/types/components/FloatButton/float-button-context.d.ts +11 -0
- package/dist/types/components/FloatButton/float-button-glyphs.d.ts +3 -0
- package/dist/types/components/FloatButton/float-button-styles.d.ts +58 -0
- package/dist/types/components/FloatButton/index.d.ts +4 -0
- package/dist/types/components/InlineCompletion/InlineCompletion.d.ts +29 -0
- package/dist/types/components/InlineCompletion/index.d.ts +2 -0
- package/dist/types/components/JsonView/JsonView.d.ts +26 -0
- package/dist/types/components/JsonView/index.d.ts +2 -0
- package/dist/types/components/JsonView/json-view-utils.d.ts +22 -0
- package/dist/types/components/LocaleProvider/ar-sa.d.ts +22 -0
- package/dist/types/components/LocaleProvider/de-de.d.ts +15 -0
- package/dist/types/components/LocaleProvider/es-es.d.ts +15 -0
- package/dist/types/components/LocaleProvider/fr-fr.d.ts +15 -0
- package/dist/types/components/LocaleProvider/index.d.ts +9 -0
- package/dist/types/components/LocaleProvider/it-it.d.ts +15 -0
- package/dist/types/components/LocaleProvider/ja-jp.d.ts +13 -0
- package/dist/types/components/LocaleProvider/ko-kr.d.ts +15 -0
- package/dist/types/components/LocaleProvider/locale.d.ts +55 -0
- package/dist/types/components/LocaleProvider/pt-br.d.ts +16 -0
- package/dist/types/components/LocaleProvider/ru-ru.d.ts +15 -0
- package/dist/types/components/Masonry/Masonry.d.ts +34 -0
- package/dist/types/components/Masonry/index.d.ts +2 -0
- package/dist/types/components/Masonry/masonry-distribute.d.ts +16 -0
- package/dist/types/components/QRCode/QRCode.d.ts +33 -0
- package/dist/types/components/QRCode/index.d.ts +2 -0
- package/dist/types/components/Result/Result.d.ts +16 -0
- package/dist/types/components/Result/index.d.ts +2 -0
- package/dist/types/components/Select/Select.d.ts +13 -1
- package/dist/types/components/Select/SelectCore.d.ts +10 -1
- package/dist/types/components/Select/SelectFloating.d.ts +12 -1
- package/dist/types/components/Signature/Signature.d.ts +51 -0
- package/dist/types/components/Signature/index.d.ts +2 -0
- package/dist/types/components/Signature/signature-points.d.ts +31 -0
- package/dist/types/components/Sources/Sources.d.ts +37 -0
- package/dist/types/components/Sources/index.d.ts +2 -0
- package/dist/types/components/TagGroup/SortableTagGroup.d.ts +21 -0
- package/dist/types/components/TagGroup/TagGroup.d.ts +4 -13
- package/dist/types/components/TagGroup/index.d.ts +2 -0
- package/dist/types/components/TagGroup/tag-group-styles.d.ts +7 -0
- package/dist/types/components/TagInput/SortableTagInput.d.ts +33 -0
- package/dist/types/components/TagInput/SortableTagInputCore.d.ts +18 -0
- package/dist/types/components/TagInput/TagInput.d.ts +1 -8
- package/dist/types/components/TagInput/TagInputCore.d.ts +4 -10
- package/dist/types/components/TagInput/index.d.ts +4 -0
- package/dist/types/components/TagInput/tag-input-styles.d.ts +12 -0
- package/dist/types/components/Tree/Tree.d.ts +1 -1
- package/dist/types/components/Tree/TreeItem.d.ts +11 -1
- package/dist/types/components/Tree/types.d.ts +25 -0
- package/dist/types/components/Tree/utils.d.ts +41 -0
- package/dist/types/components/TreeSelect/TreeSelect.d.ts +93 -0
- package/dist/types/components/TreeSelect/index.d.ts +2 -0
- package/dist/types/components/Typography/Typography.d.ts +12 -3
- package/dist/types/components/Typography/index.d.ts +1 -1
- package/dist/types/components/Upload/Upload.d.ts +10 -1
- package/dist/types/components/Upload/UploadCore.d.ts +21 -1
- package/dist/types/components/Upload/UploadList.d.ts +8 -2
- package/dist/types/headless/index.d.ts +221 -4
- package/dist/types/hooks/index.d.ts +2 -0
- package/dist/types/hooks/useDarkMode.d.ts +40 -0
- package/dist/types/index.d.ts +42 -12
- package/dist/types/tokens/brands.d.ts +28 -0
- package/dist/types/tokens/density.d.ts +3 -0
- package/dist/types/tokens/index.d.ts +1 -0
- package/dist/types/tokens/palette.d.ts +38 -1
- package/dist/types/tokens/spacing.d.ts +13 -0
- package/dist/types/utils/sortable-handle.d.ts +25 -0
- package/dist/types/utils/sortable-shared.d.ts +15 -27
- package/dist/utils/sortable-handle.js +12 -0
- package/dist/utils/sortable-shared.js +8 -16
- package/dist/utils/sortable.js +2 -1
- package/dist/utils/submenu.js +7 -5
- package/mcp/index.mjs +64 -0
- package/mcp/server.mjs +89 -0
- package/mcp/server.test.mjs +281 -0
- package/mcp/tools.mjs +240 -0
- package/package.json +123 -45
package/README.md
CHANGED
|
@@ -129,30 +129,30 @@ checklist:
|
|
|
129
129
|
|
|
130
130
|
### Dependencies
|
|
131
131
|
|
|
132
|
-
haze-ui
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
Vite, webpack, Turbopack, Rollup)
|
|
150
|
-
|
|
151
|
-
'haze-ui'`
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
`haze-ui/components/DataTable` and
|
|
155
|
-
bypass the barrel entirely.
|
|
132
|
+
haze-ui declares only the host environment as peers: `react` and
|
|
133
|
+
`react-dom` (^19). Everything else is a regular dependency — one
|
|
134
|
+
`npm i haze-ui` and every component works:
|
|
135
|
+
|
|
136
|
+
- `react-use-control` — the engine behind `ControlOrValue<T>`
|
|
137
|
+
- `react-f0rm` (^1.3) — the form engine behind `FormItem`/`FormList`
|
|
138
|
+
(the same author's headless form store)
|
|
139
|
+
- `@tanstack/react-table` — DataTable
|
|
140
|
+
- `recharts` — Chart
|
|
141
|
+
- `@dnd-kit/core` / `@dnd-kit/sortable` / `@dnd-kit/utilities` — the
|
|
142
|
+
sortable TagInput/TagGroup variants
|
|
143
|
+
- `qrcode` — QRCode
|
|
144
|
+
|
|
145
|
+
Swapping any of these engines for another library is invisible to your
|
|
146
|
+
code (the one deliberate exception: DataTable's column API exposes
|
|
147
|
+
TanStack's `ColumnDef` types). The dist is ESM with `preserveModules`
|
|
148
|
+
and side-effect-free JS, and engines are imported only by the components
|
|
149
|
+
that need them, so bundlers (Next.js, Vite, webpack, Turbopack, Rollup)
|
|
150
|
+
tree-shake the unused re-export chains: `import { Button } from
|
|
151
|
+
'haze-ui'` never pulls `@tanstack/react-table` into the bundle. Engines
|
|
152
|
+
install as regular dependencies, so even bundler-less consumers (bare
|
|
153
|
+
Node ESM importing the barrel, which links the module graph eagerly)
|
|
154
|
+
work with zero manual installs; the `haze-ui/components/DataTable` and
|
|
155
|
+
`haze-ui/components/Chart` subpaths bypass the barrel entirely.
|
|
156
156
|
|
|
157
157
|
### Browser support
|
|
158
158
|
|
|
@@ -393,16 +393,18 @@ user-controllable, SSR/jsdom-safe when the underlying API is missing.
|
|
|
393
393
|
| `useTitle(title)` | — | Document title while mounted |
|
|
394
394
|
| `useToast()` | toast API | Requires a `ToastContainer` ancestor |
|
|
395
395
|
|
|
396
|
-
## Sortable tags and chips
|
|
396
|
+
## Sortable tags and chips
|
|
397
397
|
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
`@dnd-kit/
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
398
|
+
Drag reordering is an opt-in variant: `SortableTagInput` /
|
|
399
|
+
`SortableTagInputCore` and `SortableTagGroup` statically import
|
|
400
|
+
`@dnd-kit/core` / `@dnd-kit/sortable` / `@dnd-kit/utilities` (regular
|
|
401
|
+
dependencies — the plain `TagInput`/`TagGroup` never touch them, so they
|
|
402
|
+
stay out of every bundle that doesn't import a Sortable variant).
|
|
403
|
+
`SortableTagInput` writes the new array through `onChange`;
|
|
404
|
+
`SortableTagGroup` reports `onReorder(nextOrder)` (the new arrangement of
|
|
405
|
+
original child indexes) and leaves re-rendering to the parent. Sorting is
|
|
406
|
+
keyboard-complete: focus a tag, `Space` to lift, arrows to move, `Space`
|
|
407
|
+
to drop, `Escape` to cancel.
|
|
406
408
|
|
|
407
409
|
## Imperative overlay handles
|
|
408
410
|
|
|
@@ -544,6 +546,52 @@ own css manifest. The same items are also installable straight from this
|
|
|
544
546
|
GitHub repository — see
|
|
545
547
|
[Install via shadcn CLI (GitHub registry)](#install-via-shadcn-cli-github-registry).
|
|
546
548
|
|
|
549
|
+
## AI / MCP
|
|
550
|
+
|
|
551
|
+
**`haze-ui-mcp`** — an [MCP server](https://modelcontextprotocol.io) that puts the
|
|
552
|
+
whole component reference in your AI coding agent's tool belt. It serves the
|
|
553
|
+
same docs the site renders (props tables with types/defaults/descriptions,
|
|
554
|
+
import statements, CSS paths, peer deps, the full token registry), so the
|
|
555
|
+
agent never guesses a prop name or a stylesheet path again:
|
|
556
|
+
|
|
557
|
+
| Tool | What it returns |
|
|
558
|
+
| --- | --- |
|
|
559
|
+
| `haze_list_components` | Every component with its css family |
|
|
560
|
+
| `haze_get_component` | One component's full reference — props tables, import statement, CSS imports. Name matching is case-insensitive and accepts kebab-case (`data-table`) or PascalCase (`DataTable`) |
|
|
561
|
+
| `haze_get_tokens` | The `--haze-*` token registry with light and dark values, optionally filtered by category (`color`, `typography`, `spacing`, `radius`, `shadow`) |
|
|
562
|
+
| `haze_search_docs` | Top-10 ranked matches across component names, css families, prop names and descriptions |
|
|
563
|
+
|
|
564
|
+
**Claude Code**:
|
|
565
|
+
|
|
566
|
+
```sh
|
|
567
|
+
claude mcp add haze-ui -- npx haze-ui-mcp
|
|
568
|
+
```
|
|
569
|
+
|
|
570
|
+
**Cursor** (`.cursor/mcp.json`):
|
|
571
|
+
|
|
572
|
+
```json
|
|
573
|
+
{
|
|
574
|
+
"mcpServers": {
|
|
575
|
+
"haze-ui": {
|
|
576
|
+
"command": "npx",
|
|
577
|
+
"args": ["haze-ui-mcp"]
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
The server speaks stdio JSON-RPC and ships its own docs snapshot
|
|
584
|
+
(`dist/mcp-docs.json`, regenerated on every build by
|
|
585
|
+
`scripts/generate-mcp-docs.mjs`) — no project access, no indexing on startup.
|
|
586
|
+
In this repository you can run it directly against the local snapshot:
|
|
587
|
+
|
|
588
|
+
```sh
|
|
589
|
+
node scripts/generate-mcp-docs.mjs
|
|
590
|
+
node mcp/index.mjs
|
|
591
|
+
```
|
|
592
|
+
|
|
593
|
+
Point it at a custom snapshot with `HAZE_UI_MCP_DOCS=/path/to/mcp-docs.json`.
|
|
594
|
+
|
|
547
595
|
## AI runtime integration (Vercel AI SDK `useChat`)
|
|
548
596
|
|
|
549
597
|
haze-ui ships the agent chat surface as **presentational** components —
|