haze-ui 1.30.0 → 1.32.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 +67 -1
- package/dist/components/ActivityRail/ActivityRail.js +76 -0
- package/dist/components/ActivityRail/index.js +3 -0
- package/dist/components/BottomSheet/BottomSheet.js +12 -26
- package/dist/components/Button/Button.js +33 -15
- package/dist/components/Button/ButtonLink.js +12 -21
- package/dist/components/Button/styles.js +2 -2
- package/dist/components/Cascader/Cascader.js +11 -11
- package/dist/components/ColorPicker/ColorPicker.js +4 -4
- package/dist/components/Combobox/Combobox.js +128 -119
- package/dist/components/Command/Command.js +9 -9
- package/dist/components/ConfigProvider/ConfigContext.js +16 -0
- package/dist/components/ConfirmDialog/confirm.js +41 -0
- package/dist/components/ConfirmDialog/index.js +2 -1
- package/dist/components/ConversationList/ConversationList.js +16 -7
- package/dist/components/DataTable/DataTable.js +24 -24
- package/dist/components/DateTimePicker/DateTimePicker.js +25 -0
- package/dist/components/DateTimePicker/index.js +3 -0
- package/dist/components/Datepicker/Datepicker.js +8 -7
- package/dist/components/Datepicker/DatepickerCore.js +60 -59
- package/dist/components/Drawer/Drawer.js +45 -40
- package/dist/components/Fieldset/Fieldset.js +25 -0
- package/dist/components/Fieldset/index.js +2 -0
- package/dist/components/Highlight/Highlight.js +19 -0
- package/dist/components/Highlight/index.js +2 -0
- package/dist/components/Indicator/Indicator.js +37 -0
- package/dist/components/Indicator/index.js +2 -0
- package/dist/components/InlineCompletion/InlineCompletion.js +4 -4
- package/dist/components/Input/Input.js +9 -7
- package/dist/components/Input/InputCore.js +32 -13
- package/dist/components/List/List.js +14 -10
- package/dist/components/LoadingOverlay/LoadingOverlay.js +30 -0
- package/dist/components/LoadingOverlay/index.js +3 -0
- package/dist/components/LocaleProvider/ar-sa.js +11 -0
- package/dist/components/LocaleProvider/de-de.js +11 -0
- package/dist/components/LocaleProvider/es-es.js +11 -0
- package/dist/components/LocaleProvider/fr-fr.js +11 -0
- package/dist/components/LocaleProvider/it-it.js +11 -0
- package/dist/components/LocaleProvider/ja-jp.js +11 -0
- package/dist/components/LocaleProvider/ko-kr.js +11 -0
- package/dist/components/LocaleProvider/locale.js +11 -0
- package/dist/components/LocaleProvider/pt-br.js +11 -0
- package/dist/components/LocaleProvider/ru-ru.js +11 -0
- package/dist/components/LocaleProvider/zh-cn.js +11 -0
- package/dist/components/LogViewer/LogViewer.js +45 -38
- package/dist/components/Mark/Mark.js +20 -0
- package/dist/components/Mark/index.js +2 -0
- package/dist/components/Mentions/MentionsCore.js +3 -3
- package/dist/components/Menu/MenuItem.js +6 -4
- package/dist/components/NumberFormatter/NumberFormatter.js +16 -0
- package/dist/components/NumberFormatter/index.js +2 -0
- package/dist/components/OTPInput/OTPInputCore.js +7 -6
- package/dist/components/PasswordInput/PasswordInputCore.js +27 -26
- package/dist/components/Rating/RatingCore.js +18 -18
- package/dist/components/Resizable/Resizable.js +266 -36
- package/dist/components/Select/Select.js +28 -23
- package/dist/components/Select/SelectCore.js +26 -23
- package/dist/components/Select/SelectFloating.js +157 -153
- package/dist/components/Sparkline/Sparkline.js +45 -0
- package/dist/components/Sparkline/index.js +3 -0
- package/dist/components/Sparkline/sparkline-styles.js +18 -0
- package/dist/components/Spoiler/Spoiler.js +36 -0
- package/dist/components/Spoiler/index.js +3 -0
- package/dist/components/StatusBar/StatusBar.js +47 -0
- package/dist/components/StatusBar/index.js +3 -0
- package/dist/components/TabBar/TabBar.js +60 -0
- package/dist/components/TabBar/index.js +3 -0
- package/dist/components/Tabs/SortableTabList.js +116 -0
- package/dist/components/Tabs/Tab.js +83 -16
- package/dist/components/Tabs/TabList.js +94 -38
- package/dist/components/Tabs/edge-scroll.js +6 -0
- package/dist/components/Tabs/index.js +4 -3
- package/dist/components/Tabs/tab-metas.js +24 -0
- package/dist/components/TagGroup/SortableTagGroup.js +32 -20
- package/dist/components/TagGroup/TagGroup.js +23 -9
- package/dist/components/TagGroup/TagGroupItem.js +21 -15
- package/dist/components/TagInput/SortableTagInputCore.js +11 -11
- package/dist/components/TagInput/TagInputCore.js +10 -10
- package/dist/components/TimePicker/TimePickerPanel.js +3 -3
- package/dist/components/Toast/ToastContainer.js +5 -5
- package/dist/components/Toast/index.js +1 -1
- package/dist/components/Toast/{toast2.js → toast-channel.js} +1 -1
- package/dist/components/Toast/useToast.js +1 -1
- package/dist/components/Tree/SortableTree.js +39 -39
- package/dist/components/TreeSelect/TreeSelect.js +6 -6
- package/dist/components/VirtualList/VirtualList.js +133 -121
- package/dist/components/VisuallyHidden/VisuallyHidden.js +15 -0
- package/dist/components/VisuallyHidden/index.js +2 -0
- package/dist/components/Workbench/Workbench.js +144 -0
- package/dist/components/Workbench/index.js +3 -0
- package/dist/css/accordion.css +2 -0
- package/dist/css/activity-rail.css +4 -0
- package/dist/css/affix.css +2 -0
- package/dist/css/alert.css +2 -0
- package/dist/css/anchor.css +2 -0
- package/dist/css/app-shell.css +3 -1
- package/dist/css/approval-card.css +2 -0
- package/dist/css/aspect-ratio.css +2 -0
- package/dist/css/async-section.css +2 -0
- package/dist/css/avatar-group.css +2 -0
- package/dist/css/avatar.css +2 -0
- package/dist/css/back-to-top.css +2 -0
- package/dist/css/badge.css +2 -0
- package/dist/css/banner.css +2 -0
- package/dist/css/bottom-sheet.css +2 -0
- package/dist/css/breadcrumb.css +3 -1
- package/dist/css/button.css +3 -2
- package/dist/css/calendar.css +2 -0
- package/dist/css/card.css +2 -0
- package/dist/css/carousel.css +2 -0
- package/dist/css/cascader.css +2 -0
- package/dist/css/chart.css +2 -0
- package/dist/css/chat-container.css +2 -0
- package/dist/css/chat-input.css +2 -0
- package/dist/css/chat-message.css +2 -0
- package/dist/css/checkbox.css +3 -1
- package/dist/css/chip.css +2 -0
- package/dist/css/code-block.css +2 -0
- package/dist/css/collapsible.css +2 -0
- package/dist/css/color-picker.css +2 -0
- package/dist/css/combobox.css +2 -0
- package/dist/css/command.css +3 -1
- package/dist/css/confirm-dialog.css +2 -0
- package/dist/css/container.css +2 -0
- package/dist/css/context-menu.css +3 -1
- package/dist/css/conversation-list.css +2 -0
- package/dist/css/count-up.css +2 -0
- package/dist/css/data-table.css +2 -0
- package/dist/css/date-range-picker.css +3 -1
- package/dist/css/datepicker.css +2 -0
- package/dist/css/descriptions.css +2 -0
- package/dist/css/dialog.css +2 -0
- package/dist/css/diff-viewer.css +2 -0
- package/dist/css/disclosure.css +2 -0
- package/dist/css/divider.css +2 -0
- package/dist/css/drawer.css +3 -1
- package/dist/css/dropdown-menu.css +4 -2
- package/dist/css/ellipsis.css +2 -0
- package/dist/css/empty.css +2 -0
- package/dist/css/fieldset.css +4 -0
- package/dist/css/file-input.css +2 -0
- package/dist/css/file-preview.css +2 -0
- package/dist/css/flex.css +2 -0
- package/dist/css/float-button.css +2 -0
- package/dist/css/form.css +2 -0
- package/dist/css/grid.css +2 -0
- package/dist/css/hover-card.css +3 -1
- package/dist/css/icon.css +2 -0
- package/dist/css/image.css +2 -0
- package/dist/css/indicator.css +4 -0
- package/dist/css/inline-completion.css +2 -0
- package/dist/css/inline-edit.css +2 -0
- package/dist/css/input.css +3 -1
- package/dist/css/json-view.css +2 -0
- package/dist/css/kbd.css +2 -0
- package/dist/css/list.css +3 -1
- package/dist/css/loading-overlay.css +4 -0
- package/dist/css/log-viewer.css +2 -0
- package/dist/css/mark.css +4 -0
- package/dist/css/markdown-renderer.css +2 -0
- package/dist/css/masonry.css +2 -0
- package/dist/css/mentions.css +2 -0
- package/dist/css/menu.css +5 -3
- package/dist/css/model-picker.css +2 -0
- package/dist/css/navigation-bar.css +2 -0
- package/dist/css/number-input.css +2 -0
- package/dist/css/otp-input.css +2 -0
- package/dist/css/pagination.css +2 -0
- package/dist/css/password-input.css +3 -1
- package/dist/css/popover.css +3 -1
- package/dist/css/progress.css +2 -0
- package/dist/css/prompt-input.css +2 -0
- package/dist/css/qr-code.css +2 -0
- package/dist/css/radio.css +3 -1
- package/dist/css/rating.css +2 -0
- package/dist/css/resizable.css +3 -1
- package/dist/css/result.css +2 -0
- package/dist/css/scroll-area.css +2 -0
- package/dist/css/segmented.css +3 -1
- package/dist/css/select.css +2 -0
- package/dist/css/sidebar.css +3 -1
- package/dist/css/signature.css +2 -0
- package/dist/css/skeleton.css +2 -0
- package/dist/css/slider.css +3 -1
- package/dist/css/sources.css +2 -0
- package/dist/css/sparkline.css +4 -0
- package/dist/css/spinner.css +2 -0
- package/dist/css/spoiler.css +4 -0
- package/dist/css/stat.css +2 -0
- package/dist/css/status-bar.css +4 -0
- package/dist/css/step-timeline.css +2 -0
- package/dist/css/stepper.css +2 -0
- package/dist/css/streaming-text.css +2 -0
- package/dist/css/swipe-action.css +2 -0
- package/dist/css/switch.css +3 -1
- package/dist/css/tab-bar.css +4 -0
- package/dist/css/table.css +2 -0
- package/dist/css/tabs.css +5 -2
- package/dist/css/tag-group.css +2 -0
- package/dist/css/tag-input.css +2 -0
- package/dist/css/tag.css +3 -1
- package/dist/css/textarea.css +2 -0
- package/dist/css/thinking-indicator.css +2 -0
- package/dist/css/time-picker.css +2 -0
- package/dist/css/timeline.css +2 -0
- package/dist/css/toast.css +2 -0
- package/dist/css/toggle.css +2 -0
- package/dist/css/token-counter.css +2 -0
- package/dist/css/tokens.css +2 -0
- package/dist/css/tool-call-card.css +2 -0
- package/dist/css/toolbar.css +2 -0
- package/dist/css/tooltip.css +2 -0
- package/dist/css/tour.css +2 -0
- package/dist/css/transfer.css +2 -0
- package/dist/css/tree-select.css +2 -0
- package/dist/css/tree.css +3 -1
- package/dist/css/typography.css +2 -0
- package/dist/css/upload.css +2 -0
- package/dist/css/virtual-list.css +2 -0
- package/dist/css/visually-hidden.css +4 -0
- package/dist/css/watermark.css +2 -0
- package/dist/css/workbench.css +4 -0
- package/dist/css-manifest.json +202 -1
- package/dist/dates/adapter.js +9 -1
- package/dist/dates/buddhist.js +43 -0
- package/dist/dates/ethiopic.js +67 -0
- package/dist/dates/hebrew.js +95 -0
- package/dist/dates/japanese.js +41 -0
- package/dist/dates/persian.js +121 -0
- package/dist/dates/registry.js +14 -4
- package/dist/haze-ui.css +435 -29
- package/dist/headless/index.js +18 -17
- package/dist/hooks/useBusyPressable.js +10 -0
- package/dist/index.js +263 -241
- package/dist/mcp-docs.json +1073 -33
- package/dist/registry.json +256 -14
- package/dist/types/components/ActivityRail/ActivityRail.d.ts +30 -0
- package/dist/types/components/ActivityRail/index.d.ts +4 -0
- package/dist/types/components/Button/Button.d.ts +50 -5
- package/dist/types/components/Button/ButtonLink.d.ts +27 -15
- package/dist/types/components/Button/styles.d.ts +34 -0
- package/dist/types/components/Combobox/Combobox.d.ts +20 -2
- package/dist/types/components/Combobox/index.d.ts +1 -1
- package/dist/types/components/ConfigProvider/ConfigContext.d.ts +20 -0
- package/dist/types/components/ConfirmDialog/ConfirmDialog.d.ts +1 -1
- package/dist/types/components/ConfirmDialog/confirm.d.ts +33 -0
- package/dist/types/components/ConfirmDialog/index.d.ts +2 -0
- package/dist/types/components/ConversationList/ConversationList.d.ts +10 -1
- package/dist/types/components/DateTimePicker/DateTimePicker.d.ts +36 -0
- package/dist/types/components/DateTimePicker/index.d.ts +2 -0
- package/dist/types/components/Datepicker/Datepicker.d.ts +3 -3
- package/dist/types/components/Datepicker/DatepickerCore.d.ts +3 -3
- package/dist/types/components/Drawer/Drawer.d.ts +15 -2
- package/dist/types/components/Drawer/index.d.ts +1 -1
- package/dist/types/components/Fieldset/Fieldset.d.ts +16 -0
- package/dist/types/components/Fieldset/index.d.ts +2 -0
- package/dist/types/components/Highlight/Highlight.d.ts +27 -0
- package/dist/types/components/Highlight/index.d.ts +2 -0
- package/dist/types/components/Indicator/Indicator.d.ts +24 -0
- package/dist/types/components/Indicator/index.d.ts +2 -0
- package/dist/types/components/Input/Input.d.ts +8 -2
- package/dist/types/components/Input/InputCore.d.ts +11 -2
- package/dist/types/components/List/List.d.ts +10 -1
- package/dist/types/components/LoadingOverlay/LoadingOverlay.d.ts +25 -0
- package/dist/types/components/LoadingOverlay/index.d.ts +2 -0
- package/dist/types/components/LocaleProvider/locale.d.ts +11 -0
- package/dist/types/components/LogViewer/LogViewer.d.ts +10 -1
- package/dist/types/components/Mark/Mark.d.ts +12 -0
- package/dist/types/components/Mark/index.d.ts +2 -0
- package/dist/types/components/Menu/MenuItem.d.ts +15 -4
- package/dist/types/components/NumberFormatter/NumberFormatter.d.ts +23 -0
- package/dist/types/components/NumberFormatter/index.d.ts +2 -0
- package/dist/types/components/Resizable/Resizable.d.ts +24 -7
- package/dist/types/components/Resizable/index.d.ts +1 -1
- package/dist/types/components/Select/Select.d.ts +23 -2
- package/dist/types/components/Select/SelectCore.d.ts +4 -1
- package/dist/types/components/Select/SelectFloating.d.ts +6 -1
- package/dist/types/components/Select/index.d.ts +1 -1
- package/dist/types/components/Sparkline/Sparkline.d.ts +31 -0
- package/dist/types/components/Sparkline/index.d.ts +3 -0
- package/dist/types/components/Sparkline/sparkline-styles.d.ts +26 -0
- package/dist/types/components/Spoiler/Spoiler.d.ts +20 -0
- package/dist/types/components/Spoiler/index.d.ts +2 -0
- package/dist/types/components/StatusBar/StatusBar.d.ts +18 -0
- package/dist/types/components/StatusBar/index.d.ts +3 -0
- package/dist/types/components/TabBar/TabBar.d.ts +23 -0
- package/dist/types/components/TabBar/index.d.ts +4 -0
- package/dist/types/components/Tabs/SortableTabList.d.ts +46 -0
- package/dist/types/components/Tabs/Tab.d.ts +54 -3
- package/dist/types/components/Tabs/TabList.d.ts +26 -2
- package/dist/types/components/Tabs/edge-scroll.d.ts +17 -0
- package/dist/types/components/Tabs/index.d.ts +3 -1
- package/dist/types/components/Tabs/tab-metas.d.ts +20 -0
- package/dist/types/components/TagGroup/SortableTagGroup.d.ts +5 -1
- package/dist/types/components/TagGroup/TagGroup.d.ts +24 -2
- package/dist/types/components/TagGroup/index.d.ts +1 -1
- package/dist/types/components/Toast/index.d.ts +2 -2
- package/dist/types/components/Toast/useToast.d.ts +1 -1
- package/dist/types/components/VirtualList/VirtualList.d.ts +20 -1
- package/dist/types/components/VisuallyHidden/VisuallyHidden.d.ts +4 -0
- package/dist/types/components/VisuallyHidden/index.d.ts +2 -0
- package/dist/types/components/Workbench/Workbench.d.ts +50 -0
- package/dist/types/components/Workbench/index.d.ts +2 -0
- package/dist/types/dates/adapter.d.ts +33 -6
- package/dist/types/dates/buddhist.d.ts +14 -0
- package/dist/types/dates/ethiopic.d.ts +15 -0
- package/dist/types/dates/hebrew.d.ts +19 -0
- package/dist/types/dates/index.d.ts +5 -0
- package/dist/types/dates/japanese.d.ts +16 -0
- package/dist/types/dates/persian.d.ts +18 -0
- package/dist/types/dates/registry.d.ts +1 -1
- package/dist/types/headless/index.d.ts +9 -0
- package/dist/types/hooks/index.d.ts +13 -0
- package/dist/types/hooks/useBusyPressable.d.ts +33 -0
- package/dist/types/hooks/useElementSize.d.ts +38 -0
- package/dist/types/hooks/useIdle.d.ts +45 -0
- package/dist/types/hooks/useMutationObserver.d.ts +35 -0
- package/dist/types/hooks/useNetwork.d.ts +31 -0
- package/dist/types/hooks/useOrientation.d.ts +23 -0
- package/dist/types/hooks/useResizeObserver.d.ts +48 -0
- package/dist/types/index.d.ts +37 -9
- package/dist/types/utils/sortable.d.ts +8 -1
- package/dist/types/utils/use-end-reached.d.ts +56 -0
- package/dist/types/utils/viewport.d.ts +12 -0
- package/dist/utils/sortable-shared.js +3 -3
- package/dist/utils/sortable.js +15 -14
- package/dist/utils/use-end-reached.js +46 -0
- package/dist/utils/viewport.js +20 -0
- package/package.json +13 -5
- /package/dist/types/components/Toast/{toast.d.ts → toast-channel.d.ts} +0 -0
package/dist/registry.json
CHANGED
|
@@ -24,6 +24,27 @@
|
|
|
24
24
|
}
|
|
25
25
|
]
|
|
26
26
|
},
|
|
27
|
+
{
|
|
28
|
+
"name": "activity-rail",
|
|
29
|
+
"type": "registry:ui",
|
|
30
|
+
"title": "ActivityRail / ActivityRailItem",
|
|
31
|
+
"description": "VSCode-style vertical icon rail (`nav`): 44px items with icon/label/badge/active indicator, tooltip labels and `slot=\"end\"` bottom pinning.",
|
|
32
|
+
"author": "wmzy <https://github.com/wmzy>",
|
|
33
|
+
"docs": "VSCode-style vertical icon rail (`nav`): 44px items with icon/label/badge/active indicator, tooltip labels and `slot=\"end\"` bottom pinning.\n\nExports: `ActivityRail`, `ActivityRailItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/activity-rail\n```\n\nThe wrapper lands at `components/ui/haze/activity-rail.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/activity-rail.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
|
|
34
|
+
"categories": [
|
|
35
|
+
"layout"
|
|
36
|
+
],
|
|
37
|
+
"dependencies": [
|
|
38
|
+
"haze-ui"
|
|
39
|
+
],
|
|
40
|
+
"files": [
|
|
41
|
+
{
|
|
42
|
+
"path": "components/haze/activity-rail.tsx",
|
|
43
|
+
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { ActivityRail, ActivityRailItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/activity-rail.css';\nimport 'haze-ui/css/badge.css';\nimport 'haze-ui/css/tooltip.css';\n\nexport { ActivityRail, ActivityRailItem };\nexport type { ActivityRailProps, ActivityRailItemProps } from 'haze-ui';\n",
|
|
44
|
+
"type": "registry:ui"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
},
|
|
27
48
|
{
|
|
28
49
|
"name": "affix",
|
|
29
50
|
"type": "registry:ui",
|
|
@@ -282,7 +303,7 @@
|
|
|
282
303
|
"title": "Haze UI base (tokens + every component wrapper)",
|
|
283
304
|
"description": "One-command setup of the whole haze-ui design system: theme tokens plus a thin wrapper for every styled component, pulled in through registryDependencies.",
|
|
284
305
|
"author": "wmzy <https://github.com/wmzy>",
|
|
285
|
-
"docs": "One command installs the entire haze-ui design system: the theme tokens\n(this item ships the token-activation wrapper) plus a thin re-export\nwrapper for every styled component —
|
|
306
|
+
"docs": "One command installs the entire haze-ui design system: the theme tokens\n(this item ships the token-activation wrapper) plus a thin re-export\nwrapper for every styled component — 132 registry items pulled\nin through `registryDependencies`, resolved recursively by the CLI.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/base\n```\n\nEach component wrapper lands at `components/ui/haze/<component>.tsx` and\nre-exports its component from the `haze-ui` npm package (installed\nautomatically), importing its stylesheet — no other setup is needed.\n\n## Theming\n\nThis wrapper re-exports the 'lightTheme' (or 'darkTheme'), 'spacing' and\n'typography' classes from 'haze-ui' and imports 'haze-ui/css/tokens.css'.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
|
|
286
307
|
"categories": [
|
|
287
308
|
"theme",
|
|
288
309
|
"setup"
|
|
@@ -292,6 +313,7 @@
|
|
|
292
313
|
],
|
|
293
314
|
"registryDependencies": [
|
|
294
315
|
"wmzy/haze-ui/accordion",
|
|
316
|
+
"wmzy/haze-ui/activity-rail",
|
|
295
317
|
"wmzy/haze-ui/affix",
|
|
296
318
|
"wmzy/haze-ui/alert",
|
|
297
319
|
"wmzy/haze-ui/anchor",
|
|
@@ -339,6 +361,7 @@
|
|
|
339
361
|
"wmzy/haze-ui/dropdown-menu",
|
|
340
362
|
"wmzy/haze-ui/ellipsis",
|
|
341
363
|
"wmzy/haze-ui/empty",
|
|
364
|
+
"wmzy/haze-ui/fieldset",
|
|
342
365
|
"wmzy/haze-ui/file-input",
|
|
343
366
|
"wmzy/haze-ui/file-preview",
|
|
344
367
|
"wmzy/haze-ui/flex",
|
|
@@ -348,13 +371,16 @@
|
|
|
348
371
|
"wmzy/haze-ui/hover-card",
|
|
349
372
|
"wmzy/haze-ui/icon",
|
|
350
373
|
"wmzy/haze-ui/image",
|
|
374
|
+
"wmzy/haze-ui/indicator",
|
|
351
375
|
"wmzy/haze-ui/inline-completion",
|
|
352
376
|
"wmzy/haze-ui/inline-edit",
|
|
353
377
|
"wmzy/haze-ui/input",
|
|
354
378
|
"wmzy/haze-ui/json-view",
|
|
355
379
|
"wmzy/haze-ui/kbd",
|
|
356
380
|
"wmzy/haze-ui/list",
|
|
381
|
+
"wmzy/haze-ui/loading-overlay",
|
|
357
382
|
"wmzy/haze-ui/log-viewer",
|
|
383
|
+
"wmzy/haze-ui/mark",
|
|
358
384
|
"wmzy/haze-ui/markdown-renderer",
|
|
359
385
|
"wmzy/haze-ui/masonry",
|
|
360
386
|
"wmzy/haze-ui/mentions",
|
|
@@ -381,13 +407,17 @@
|
|
|
381
407
|
"wmzy/haze-ui/skeleton",
|
|
382
408
|
"wmzy/haze-ui/slider",
|
|
383
409
|
"wmzy/haze-ui/sources",
|
|
410
|
+
"wmzy/haze-ui/sparkline",
|
|
384
411
|
"wmzy/haze-ui/spinner",
|
|
412
|
+
"wmzy/haze-ui/spoiler",
|
|
385
413
|
"wmzy/haze-ui/stat",
|
|
414
|
+
"wmzy/haze-ui/status-bar",
|
|
386
415
|
"wmzy/haze-ui/step-timeline",
|
|
387
416
|
"wmzy/haze-ui/stepper",
|
|
388
417
|
"wmzy/haze-ui/streaming-text",
|
|
389
418
|
"wmzy/haze-ui/swipe-action",
|
|
390
419
|
"wmzy/haze-ui/switch",
|
|
420
|
+
"wmzy/haze-ui/tab-bar",
|
|
391
421
|
"wmzy/haze-ui/table",
|
|
392
422
|
"wmzy/haze-ui/tabs",
|
|
393
423
|
"wmzy/haze-ui/tag",
|
|
@@ -411,7 +441,9 @@
|
|
|
411
441
|
"wmzy/haze-ui/typography",
|
|
412
442
|
"wmzy/haze-ui/upload",
|
|
413
443
|
"wmzy/haze-ui/virtual-list",
|
|
414
|
-
"wmzy/haze-ui/
|
|
444
|
+
"wmzy/haze-ui/visually-hidden",
|
|
445
|
+
"wmzy/haze-ui/watermark",
|
|
446
|
+
"wmzy/haze-ui/workbench"
|
|
415
447
|
],
|
|
416
448
|
"files": [
|
|
417
449
|
{
|
|
@@ -479,7 +511,7 @@
|
|
|
479
511
|
"files": [
|
|
480
512
|
{
|
|
481
513
|
"path": "components/haze/button.tsx",
|
|
482
|
-
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Button, ButtonLink, buttonVariants, buttonSizes } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/button.css';\n\nexport { Button, ButtonLink, buttonVariants, buttonSizes };\nexport type { ButtonProps, ButtonLinkProps } from 'haze-ui';\n",
|
|
514
|
+
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Button, ButtonLink, buttonVariants, buttonSizes } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/button.css';\nimport 'haze-ui/css/spinner.css';\n\nexport { Button, ButtonLink, buttonVariants, buttonSizes };\nexport type { ButtonProps, ButtonLinkProps } from 'haze-ui';\n",
|
|
483
515
|
"type": "registry:ui"
|
|
484
516
|
}
|
|
485
517
|
]
|
|
@@ -773,7 +805,7 @@
|
|
|
773
805
|
"files": [
|
|
774
806
|
{
|
|
775
807
|
"path": "components/haze/combobox.tsx",
|
|
776
|
-
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Combobox, ComboboxOption, ComboboxGroup } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/combobox.css';\nimport 'haze-ui/css/chip.css';\nimport 'haze-ui/css/spinner.css';\nimport 'haze-ui/css/virtual-list.css';\n\nexport { Combobox, ComboboxOption, ComboboxGroup };\nexport type { ComboboxProps, ComboboxOptionProps, ComboboxGroupProps, ComboboxOptionData, ComboboxVirtualizedConfig } from 'haze-ui';\n",
|
|
808
|
+
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Combobox, ComboboxOption, ComboboxGroup } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/combobox.css';\nimport 'haze-ui/css/chip.css';\nimport 'haze-ui/css/spinner.css';\nimport 'haze-ui/css/virtual-list.css';\n\nexport { Combobox, ComboboxOption, ComboboxGroup };\nexport type { ComboboxProps, ComboboxClassNames, ComboboxOptionProps, ComboboxGroupProps, ComboboxOptionData, ComboboxVirtualizedConfig } from 'haze-ui';\n",
|
|
777
809
|
"type": "registry:ui"
|
|
778
810
|
}
|
|
779
811
|
]
|
|
@@ -802,10 +834,10 @@
|
|
|
802
834
|
{
|
|
803
835
|
"name": "confirm-dialog",
|
|
804
836
|
"type": "registry:ui",
|
|
805
|
-
"title": "ConfirmDialog",
|
|
837
|
+
"title": "ConfirmDialog / confirm",
|
|
806
838
|
"description": "Ready-made confirm dialog with confirm/cancel actions and a danger variant.",
|
|
807
839
|
"author": "wmzy <https://github.com/wmzy>",
|
|
808
|
-
"docs": "Ready-made confirm dialog with confirm/cancel actions and a danger variant.\n\nExports: `ConfirmDialog`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/confirm-dialog\n```\n\nThe wrapper lands at `components/ui/haze/confirm-dialog.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/confirm-dialog.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
|
|
840
|
+
"docs": "Ready-made confirm dialog with confirm/cancel actions and a danger variant.\n\nExports: `ConfirmDialog`, `confirm`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/confirm-dialog\n```\n\nThe wrapper lands at `components/ui/haze/confirm-dialog.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/confirm-dialog.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
|
|
809
841
|
"categories": [
|
|
810
842
|
"overlay"
|
|
811
843
|
],
|
|
@@ -815,7 +847,7 @@
|
|
|
815
847
|
"files": [
|
|
816
848
|
{
|
|
817
849
|
"path": "components/haze/confirm-dialog.tsx",
|
|
818
|
-
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { ConfirmDialog } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/confirm-dialog.css';\n\nexport { ConfirmDialog };\nexport type { ConfirmDialogProps } from 'haze-ui';\n",
|
|
850
|
+
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { ConfirmDialog, confirm } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/confirm-dialog.css';\n\nexport { ConfirmDialog, confirm };\nexport type { ConfirmDialogProps, ConfirmOptions } from 'haze-ui';\n",
|
|
819
851
|
"type": "registry:ui"
|
|
820
852
|
}
|
|
821
853
|
]
|
|
@@ -1088,7 +1120,7 @@
|
|
|
1088
1120
|
"files": [
|
|
1089
1121
|
{
|
|
1090
1122
|
"path": "components/haze/drawer.tsx",
|
|
1091
|
-
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Drawer } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/drawer.css';\n\nexport { Drawer };\nexport type { DrawerProps, DrawerHandle } from 'haze-ui';\n",
|
|
1123
|
+
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Drawer } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/drawer.css';\n\nexport { Drawer };\nexport type { DrawerProps, DrawerClassNames, DrawerHandle } from 'haze-ui';\n",
|
|
1092
1124
|
"type": "registry:ui"
|
|
1093
1125
|
}
|
|
1094
1126
|
]
|
|
@@ -1156,6 +1188,27 @@
|
|
|
1156
1188
|
}
|
|
1157
1189
|
]
|
|
1158
1190
|
},
|
|
1191
|
+
{
|
|
1192
|
+
"name": "fieldset",
|
|
1193
|
+
"type": "registry:ui",
|
|
1194
|
+
"title": "Fieldset",
|
|
1195
|
+
"description": "Semantic form grouping: native `fieldset`+`legend` (group named by the legend), `disabled` disables every control inside.",
|
|
1196
|
+
"author": "wmzy <https://github.com/wmzy>",
|
|
1197
|
+
"docs": "Semantic form grouping: native `fieldset`+`legend` (group named by the legend), `disabled` disables every control inside.\n\nExports: `Fieldset`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/fieldset\n```\n\nThe wrapper lands at `components/ui/haze/fieldset.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/fieldset.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
|
|
1198
|
+
"categories": [
|
|
1199
|
+
"form"
|
|
1200
|
+
],
|
|
1201
|
+
"dependencies": [
|
|
1202
|
+
"haze-ui"
|
|
1203
|
+
],
|
|
1204
|
+
"files": [
|
|
1205
|
+
{
|
|
1206
|
+
"path": "components/haze/fieldset.tsx",
|
|
1207
|
+
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Fieldset } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/fieldset.css';\n\nexport { Fieldset };\nexport type { FieldsetProps } from 'haze-ui';\n",
|
|
1208
|
+
"type": "registry:ui"
|
|
1209
|
+
}
|
|
1210
|
+
]
|
|
1211
|
+
},
|
|
1159
1212
|
{
|
|
1160
1213
|
"name": "file-input",
|
|
1161
1214
|
"type": "registry:ui",
|
|
@@ -1345,6 +1398,27 @@
|
|
|
1345
1398
|
}
|
|
1346
1399
|
]
|
|
1347
1400
|
},
|
|
1401
|
+
{
|
|
1402
|
+
"name": "indicator",
|
|
1403
|
+
"type": "registry:ui",
|
|
1404
|
+
"title": "Indicator",
|
|
1405
|
+
"description": "Corner badge attached to a host element (avatar, icon button): dot or count label, tone + corner position, zero-badge hides unless `showZero`.",
|
|
1406
|
+
"author": "wmzy <https://github.com/wmzy>",
|
|
1407
|
+
"docs": "Corner badge attached to a host element (avatar, icon button): dot or count label, tone + corner position, zero-badge hides unless `showZero`.\n\nExports: `Indicator`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/indicator\n```\n\nThe wrapper lands at `components/ui/haze/indicator.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/indicator.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
|
|
1408
|
+
"categories": [
|
|
1409
|
+
"data-display"
|
|
1410
|
+
],
|
|
1411
|
+
"dependencies": [
|
|
1412
|
+
"haze-ui"
|
|
1413
|
+
],
|
|
1414
|
+
"files": [
|
|
1415
|
+
{
|
|
1416
|
+
"path": "components/haze/indicator.tsx",
|
|
1417
|
+
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Indicator } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/indicator.css';\n\nexport { Indicator };\nexport type { IndicatorProps } from 'haze-ui';\n",
|
|
1418
|
+
"type": "registry:ui"
|
|
1419
|
+
}
|
|
1420
|
+
]
|
|
1421
|
+
},
|
|
1348
1422
|
{
|
|
1349
1423
|
"name": "inline-completion",
|
|
1350
1424
|
"type": "registry:ui",
|
|
@@ -1471,6 +1545,27 @@
|
|
|
1471
1545
|
}
|
|
1472
1546
|
]
|
|
1473
1547
|
},
|
|
1548
|
+
{
|
|
1549
|
+
"name": "loading-overlay",
|
|
1550
|
+
"type": "registry:ui",
|
|
1551
|
+
"title": "LoadingOverlay",
|
|
1552
|
+
"description": "Container-level loading state: dims content and centers a spinner (or custom loader) above it, `aria-busy` mirrors the phase.",
|
|
1553
|
+
"author": "wmzy <https://github.com/wmzy>",
|
|
1554
|
+
"docs": "Container-level loading state: dims content and centers a spinner (or custom loader) above it, `aria-busy` mirrors the phase.\n\nExports: `LoadingOverlay`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/loading-overlay\n```\n\nThe wrapper lands at `components/ui/haze/loading-overlay.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/loading-overlay.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
|
|
1555
|
+
"categories": [
|
|
1556
|
+
"feedback"
|
|
1557
|
+
],
|
|
1558
|
+
"dependencies": [
|
|
1559
|
+
"haze-ui"
|
|
1560
|
+
],
|
|
1561
|
+
"files": [
|
|
1562
|
+
{
|
|
1563
|
+
"path": "components/haze/loading-overlay.tsx",
|
|
1564
|
+
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { LoadingOverlay } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/loading-overlay.css';\nimport 'haze-ui/css/spinner.css';\n\nexport { LoadingOverlay };\nexport type { LoadingOverlayProps } from 'haze-ui';\n",
|
|
1565
|
+
"type": "registry:ui"
|
|
1566
|
+
}
|
|
1567
|
+
]
|
|
1568
|
+
},
|
|
1474
1569
|
{
|
|
1475
1570
|
"name": "log-viewer",
|
|
1476
1571
|
"type": "registry:ui",
|
|
@@ -1492,6 +1587,27 @@
|
|
|
1492
1587
|
}
|
|
1493
1588
|
]
|
|
1494
1589
|
},
|
|
1590
|
+
{
|
|
1591
|
+
"name": "mark",
|
|
1592
|
+
"type": "registry:ui",
|
|
1593
|
+
"title": "Mark",
|
|
1594
|
+
"description": "Text-level highlight — semantic `<mark>` skinned with the status tokens (`warning`/`primary`/`success`/`danger`).",
|
|
1595
|
+
"author": "wmzy <https://github.com/wmzy>",
|
|
1596
|
+
"docs": "Text-level highlight — semantic `<mark>` skinned with the status tokens (`warning`/`primary`/`success`/`danger`).\n\nExports: `Mark`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/mark\n```\n\nThe wrapper lands at `components/ui/haze/mark.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/mark.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
|
|
1597
|
+
"categories": [
|
|
1598
|
+
"general"
|
|
1599
|
+
],
|
|
1600
|
+
"dependencies": [
|
|
1601
|
+
"haze-ui"
|
|
1602
|
+
],
|
|
1603
|
+
"files": [
|
|
1604
|
+
{
|
|
1605
|
+
"path": "components/haze/mark.tsx",
|
|
1606
|
+
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Mark } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/mark.css';\n\nexport { Mark };\nexport type { MarkProps } from 'haze-ui';\n",
|
|
1607
|
+
"type": "registry:ui"
|
|
1608
|
+
}
|
|
1609
|
+
]
|
|
1610
|
+
},
|
|
1495
1611
|
{
|
|
1496
1612
|
"name": "markdown-renderer",
|
|
1497
1613
|
"type": "registry:ui",
|
|
@@ -1697,7 +1813,7 @@
|
|
|
1697
1813
|
"files": [
|
|
1698
1814
|
{
|
|
1699
1815
|
"path": "components/haze/password-input.tsx",
|
|
1700
|
-
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { PasswordInput, PasswordInputCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/password-input.css';\n\nexport { PasswordInput, PasswordInputCore };\nexport type { PasswordInputProps, PasswordInputCoreProps } from 'haze-ui';\n",
|
|
1816
|
+
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { PasswordInput, PasswordInputCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/password-input.css';\nimport 'haze-ui/css/input.css';\n\nexport { PasswordInput, PasswordInputCore };\nexport type { PasswordInputProps, PasswordInputCoreProps } from 'haze-ui';\n",
|
|
1701
1817
|
"type": "registry:ui"
|
|
1702
1818
|
}
|
|
1703
1819
|
]
|
|
@@ -1928,7 +2044,7 @@
|
|
|
1928
2044
|
"files": [
|
|
1929
2045
|
{
|
|
1930
2046
|
"path": "components/haze/select.tsx",
|
|
1931
|
-
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Select, Option, SelectCore, OptionGroup } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/select.css';\nimport 'haze-ui/css/chip.css';\nimport 'haze-ui/css/spinner.css';\nimport 'haze-ui/css/virtual-list.css';\n\nexport { Select, Option, SelectCore, OptionGroup };\nexport type { SelectProps, OptionProps, SelectCoreProps, OptionGroupProps } from 'haze-ui';\n",
|
|
2047
|
+
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Select, Option, SelectCore, OptionGroup } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/select.css';\nimport 'haze-ui/css/chip.css';\nimport 'haze-ui/css/spinner.css';\nimport 'haze-ui/css/virtual-list.css';\n\nexport { Select, Option, SelectCore, OptionGroup };\nexport type { SelectProps, SelectClassNames, OptionProps, SelectCoreProps, OptionGroupProps } from 'haze-ui';\n",
|
|
1932
2048
|
"type": "registry:ui"
|
|
1933
2049
|
}
|
|
1934
2050
|
]
|
|
@@ -2038,6 +2154,27 @@
|
|
|
2038
2154
|
}
|
|
2039
2155
|
]
|
|
2040
2156
|
},
|
|
2157
|
+
{
|
|
2158
|
+
"name": "sparkline",
|
|
2159
|
+
"type": "registry:ui",
|
|
2160
|
+
"title": "Sparkline / sparklineToneStrokes / sparklineToneFills",
|
|
2161
|
+
"description": "Inline-SVG mini trend chart (line/area variants, tone colors); stateless, recharts-free and RSC-safe.",
|
|
2162
|
+
"author": "wmzy <https://github.com/wmzy>",
|
|
2163
|
+
"docs": "Inline-SVG mini trend chart (line/area variants, tone colors); stateless, recharts-free and RSC-safe.\n\nExports: `Sparkline`, `sparklineToneStrokes`, `sparklineToneFills`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/sparkline\n```\n\nThe wrapper lands at `components/ui/haze/sparkline.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/sparkline.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
|
|
2164
|
+
"categories": [
|
|
2165
|
+
"data-display"
|
|
2166
|
+
],
|
|
2167
|
+
"dependencies": [
|
|
2168
|
+
"haze-ui"
|
|
2169
|
+
],
|
|
2170
|
+
"files": [
|
|
2171
|
+
{
|
|
2172
|
+
"path": "components/haze/sparkline.tsx",
|
|
2173
|
+
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Sparkline, sparklineToneStrokes, sparklineToneFills } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/sparkline.css';\n\nexport { Sparkline, sparklineToneStrokes, sparklineToneFills };\nexport type { SparklineProps } from 'haze-ui';\n",
|
|
2174
|
+
"type": "registry:ui"
|
|
2175
|
+
}
|
|
2176
|
+
]
|
|
2177
|
+
},
|
|
2041
2178
|
{
|
|
2042
2179
|
"name": "spinner",
|
|
2043
2180
|
"type": "registry:ui",
|
|
@@ -2059,6 +2196,27 @@
|
|
|
2059
2196
|
}
|
|
2060
2197
|
]
|
|
2061
2198
|
},
|
|
2199
|
+
{
|
|
2200
|
+
"name": "spoiler",
|
|
2201
|
+
"type": "registry:ui",
|
|
2202
|
+
"title": "Spoiler",
|
|
2203
|
+
"description": "Collapsed long-content gate (\"show more/less\"): height-capped preview with a fade edge and a toggle button; `expanded` is controllable.",
|
|
2204
|
+
"author": "wmzy <https://github.com/wmzy>",
|
|
2205
|
+
"docs": "Collapsed long-content gate (\"show more/less\"): height-capped preview with a fade edge and a toggle button; `expanded` is controllable.\n\nExports: `Spoiler`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/spoiler\n```\n\nThe wrapper lands at `components/ui/haze/spoiler.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/spoiler.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
|
|
2206
|
+
"categories": [
|
|
2207
|
+
"data-display"
|
|
2208
|
+
],
|
|
2209
|
+
"dependencies": [
|
|
2210
|
+
"haze-ui"
|
|
2211
|
+
],
|
|
2212
|
+
"files": [
|
|
2213
|
+
{
|
|
2214
|
+
"path": "components/haze/spoiler.tsx",
|
|
2215
|
+
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Spoiler } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/spoiler.css';\n\nexport { Spoiler };\nexport type { SpoilerProps } from 'haze-ui';\n",
|
|
2216
|
+
"type": "registry:ui"
|
|
2217
|
+
}
|
|
2218
|
+
]
|
|
2219
|
+
},
|
|
2062
2220
|
{
|
|
2063
2221
|
"name": "stat",
|
|
2064
2222
|
"type": "registry:ui",
|
|
@@ -2080,6 +2238,27 @@
|
|
|
2080
2238
|
}
|
|
2081
2239
|
]
|
|
2082
2240
|
},
|
|
2241
|
+
{
|
|
2242
|
+
"name": "status-bar",
|
|
2243
|
+
"type": "registry:ui",
|
|
2244
|
+
"title": "StatusBar / StatusItem",
|
|
2245
|
+
"description": "VSCode-style status strip (`footer`): `left`/`right` groups, selectable `StatusItem`s, `priority` items survive the mobile breakpoint.",
|
|
2246
|
+
"author": "wmzy <https://github.com/wmzy>",
|
|
2247
|
+
"docs": "VSCode-style status strip (`footer`): `left`/`right` groups, selectable `StatusItem`s, `priority` items survive the mobile breakpoint.\n\nExports: `StatusBar`, `StatusItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/status-bar\n```\n\nThe wrapper lands at `components/ui/haze/status-bar.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/status-bar.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
|
|
2248
|
+
"categories": [
|
|
2249
|
+
"layout"
|
|
2250
|
+
],
|
|
2251
|
+
"dependencies": [
|
|
2252
|
+
"haze-ui"
|
|
2253
|
+
],
|
|
2254
|
+
"files": [
|
|
2255
|
+
{
|
|
2256
|
+
"path": "components/haze/status-bar.tsx",
|
|
2257
|
+
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { StatusBar, StatusItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/status-bar.css';\n\nexport { StatusBar, StatusItem };\nexport type { StatusBarProps, StatusItemProps } from 'haze-ui';\n",
|
|
2258
|
+
"type": "registry:ui"
|
|
2259
|
+
}
|
|
2260
|
+
]
|
|
2261
|
+
},
|
|
2083
2262
|
{
|
|
2084
2263
|
"name": "step-timeline",
|
|
2085
2264
|
"type": "registry:ui",
|
|
@@ -2185,6 +2364,27 @@
|
|
|
2185
2364
|
}
|
|
2186
2365
|
]
|
|
2187
2366
|
},
|
|
2367
|
+
{
|
|
2368
|
+
"name": "tab-bar",
|
|
2369
|
+
"type": "registry:ui",
|
|
2370
|
+
"title": "TabBar / TabBarItem",
|
|
2371
|
+
"description": "Mobile bottom navigation (the ActivityRail viewport peer): 56px safe-area strip, icon+label items, badge, `onSelect`/`onReselect` semantics.",
|
|
2372
|
+
"author": "wmzy <https://github.com/wmzy>",
|
|
2373
|
+
"docs": "Mobile bottom navigation (the ActivityRail viewport peer): 56px safe-area strip, icon+label items, badge, `onSelect`/`onReselect` semantics.\n\nExports: `TabBar`, `TabBarItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tab-bar\n```\n\nThe wrapper lands at `components/ui/haze/tab-bar.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/tab-bar.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
|
|
2374
|
+
"categories": [
|
|
2375
|
+
"layout"
|
|
2376
|
+
],
|
|
2377
|
+
"dependencies": [
|
|
2378
|
+
"haze-ui"
|
|
2379
|
+
],
|
|
2380
|
+
"files": [
|
|
2381
|
+
{
|
|
2382
|
+
"path": "components/haze/tab-bar.tsx",
|
|
2383
|
+
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { TabBar, TabBarItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tab-bar.css';\nimport 'haze-ui/css/badge.css';\n\nexport { TabBar, TabBarItem };\nexport type { TabBarProps, TabBarItemProps } from 'haze-ui';\n",
|
|
2384
|
+
"type": "registry:ui"
|
|
2385
|
+
}
|
|
2386
|
+
]
|
|
2387
|
+
},
|
|
2188
2388
|
{
|
|
2189
2389
|
"name": "table",
|
|
2190
2390
|
"type": "registry:ui",
|
|
@@ -2209,10 +2409,10 @@
|
|
|
2209
2409
|
{
|
|
2210
2410
|
"name": "tabs",
|
|
2211
2411
|
"type": "registry:ui",
|
|
2212
|
-
"title": "Tabs / TabList / Tab / TabPanel",
|
|
2412
|
+
"title": "Tabs / TabList / Tab / TabPanel / SortableTabList",
|
|
2213
2413
|
"description": "Tab panel switcher with controllable active tab (`TabList`, `Tab`, `TabPanel`).",
|
|
2214
2414
|
"author": "wmzy <https://github.com/wmzy>",
|
|
2215
|
-
"docs": "Tab panel switcher with controllable active tab (`TabList`, `Tab`, `TabPanel`).\n\nExports: `Tabs`, `TabList`, `Tab`, `TabPanel`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tabs\n```\n\nThe wrapper lands at `components/ui/haze/tabs.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/tabs.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
|
|
2415
|
+
"docs": "Tab panel switcher with controllable active tab (`TabList`, `Tab`, `TabPanel`).\n\nExports: `Tabs`, `TabList`, `Tab`, `TabPanel`, `SortableTabList`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tabs\n```\n\nThe wrapper lands at `components/ui/haze/tabs.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/tabs.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
|
|
2216
2416
|
"categories": [
|
|
2217
2417
|
"navigation"
|
|
2218
2418
|
],
|
|
@@ -2222,7 +2422,7 @@
|
|
|
2222
2422
|
"files": [
|
|
2223
2423
|
{
|
|
2224
2424
|
"path": "components/haze/tabs.tsx",
|
|
2225
|
-
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Tabs, TabList, Tab, TabPanel } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tabs.css';\n\nexport { Tabs, TabList, Tab, TabPanel };\nexport type { TabsProps, TabsClassNames, TabListProps, TabProps, TabPanelProps } from 'haze-ui';\n",
|
|
2425
|
+
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Tabs, TabList, Tab, TabPanel, SortableTabList } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tabs.css';\nimport 'haze-ui/css/menu.css';\n\nexport { Tabs, TabList, Tab, TabPanel, SortableTabList };\nexport type { TabsProps, TabsClassNames, TabListProps, TabProps, TabPanelProps, TabStatus, SortableTabListProps } from 'haze-ui';\n",
|
|
2226
2426
|
"type": "registry:ui"
|
|
2227
2427
|
}
|
|
2228
2428
|
]
|
|
@@ -2264,7 +2464,7 @@
|
|
|
2264
2464
|
"files": [
|
|
2265
2465
|
{
|
|
2266
2466
|
"path": "components/haze/tag-group.tsx",
|
|
2267
|
-
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { TagGroup, TagGroupItem, SortableTagGroup } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tag-group.css';\n\nexport { TagGroup, TagGroupItem, SortableTagGroup };\nexport type { TagGroupProps, TagGroupItemProps, SortableTagGroupProps } from 'haze-ui';\n",
|
|
2467
|
+
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { TagGroup, TagGroupItem, SortableTagGroup } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tag-group.css';\n\nexport { TagGroup, TagGroupItem, SortableTagGroup };\nexport type { TagGroupProps, TagGroupClassNames, TagGroupItemProps, SortableTagGroupProps } from 'haze-ui';\n",
|
|
2268
2468
|
"type": "registry:ui"
|
|
2269
2469
|
}
|
|
2270
2470
|
]
|
|
@@ -2668,6 +2868,27 @@
|
|
|
2668
2868
|
}
|
|
2669
2869
|
]
|
|
2670
2870
|
},
|
|
2871
|
+
{
|
|
2872
|
+
"name": "visually-hidden",
|
|
2873
|
+
"type": "registry:ui",
|
|
2874
|
+
"title": "VisuallyHidden",
|
|
2875
|
+
"description": "Screen-reader-only content primitive: clipped off every visual axis while staying in the a11y tree (the icon-only-button label soup).",
|
|
2876
|
+
"author": "wmzy <https://github.com/wmzy>",
|
|
2877
|
+
"docs": "Screen-reader-only content primitive: clipped off every visual axis while staying in the a11y tree (the icon-only-button label soup).\n\nExports: `VisuallyHidden`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/visually-hidden\n```\n\nThe wrapper lands at `components/ui/haze/visually-hidden.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/visually-hidden.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
|
|
2878
|
+
"categories": [
|
|
2879
|
+
"utilities"
|
|
2880
|
+
],
|
|
2881
|
+
"dependencies": [
|
|
2882
|
+
"haze-ui"
|
|
2883
|
+
],
|
|
2884
|
+
"files": [
|
|
2885
|
+
{
|
|
2886
|
+
"path": "components/haze/visually-hidden.tsx",
|
|
2887
|
+
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { VisuallyHidden } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/visually-hidden.css';\n\nexport { VisuallyHidden };\nexport type { VisuallyHiddenProps } from 'haze-ui';\n",
|
|
2888
|
+
"type": "registry:ui"
|
|
2889
|
+
}
|
|
2890
|
+
]
|
|
2891
|
+
},
|
|
2671
2892
|
{
|
|
2672
2893
|
"name": "watermark",
|
|
2673
2894
|
"type": "registry:ui",
|
|
@@ -2688,6 +2909,27 @@
|
|
|
2688
2909
|
"type": "registry:ui"
|
|
2689
2910
|
}
|
|
2690
2911
|
]
|
|
2912
|
+
},
|
|
2913
|
+
{
|
|
2914
|
+
"name": "workbench",
|
|
2915
|
+
"type": "registry:ui",
|
|
2916
|
+
"title": "Workbench",
|
|
2917
|
+
"description": "IDE-style application frame (`100dvh`): activityBar/sidebar/auxiliaryBar/panel/statusBar/tabBar slots with px-resizable collapsible regions and a maximizable bottom panel; below 768px sides become overlays and the tabBar takes over.",
|
|
2918
|
+
"author": "wmzy <https://github.com/wmzy>",
|
|
2919
|
+
"docs": "IDE-style application frame (`100dvh`): activityBar/sidebar/auxiliaryBar/panel/statusBar/tabBar slots with px-resizable collapsible regions and a maximizable bottom panel; below 768px sides become overlays and the tabBar takes over.\n\nExports: `Workbench`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/workbench\n```\n\nThe wrapper lands at `components/ui/haze/workbench.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/workbench.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
|
|
2920
|
+
"categories": [
|
|
2921
|
+
"layout"
|
|
2922
|
+
],
|
|
2923
|
+
"dependencies": [
|
|
2924
|
+
"haze-ui"
|
|
2925
|
+
],
|
|
2926
|
+
"files": [
|
|
2927
|
+
{
|
|
2928
|
+
"path": "components/haze/workbench.tsx",
|
|
2929
|
+
"content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n// import { lightTheme, spacing, typography } from 'haze-ui';\n// <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Workbench } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/workbench.css';\nimport 'haze-ui/css/resizable.css';\n\nexport { Workbench };\nexport type { WorkbenchProps } from 'haze-ui';\n",
|
|
2930
|
+
"type": "registry:ui"
|
|
2931
|
+
}
|
|
2932
|
+
]
|
|
2691
2933
|
}
|
|
2692
2934
|
]
|
|
2693
2935
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ComponentPropsWithoutRef, ReactNode } from 'react';
|
|
2
|
+
type ActivityRailProps = {
|
|
3
|
+
/** ActivityRailItem list; items with `slot="end"` sink to the rail
|
|
4
|
+
* bottom (vertical) or trailing edge (horizontal). */
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
/** Track orientation: a vertical side rail (default) or a
|
|
7
|
+
* horizontal strip. Also resolved automatically by
|
|
8
|
+
* container width — any host that wraps the rail in a
|
|
9
|
+
* container wider than the 48px vertical track (Workbench
|
|
10
|
+
* names it rail-track) gets the horizontal layout as pure
|
|
11
|
+
* CSS, no prop needed. */
|
|
12
|
+
orientation?: 'vertical' | 'horizontal';
|
|
13
|
+
} & Omit<ComponentPropsWithoutRef<'nav'>, 'children'>;
|
|
14
|
+
export default function ActivityRail({ orientation, children, className, ...rest }: ActivityRailProps): import("react").JSX.Element;
|
|
15
|
+
type ActivityRailItemProps = {
|
|
16
|
+
/** Icon content; rendered inside a fixed-size, aria-hidden slot. */
|
|
17
|
+
icon: ReactNode;
|
|
18
|
+
/** Accessible name and hover-tooltip content. */
|
|
19
|
+
label: string;
|
|
20
|
+
/** Notification count/dot rendered as a small Badge overlay. */
|
|
21
|
+
badge?: ReactNode;
|
|
22
|
+
/** Marks the item as the current view (aria-current="true"). */
|
|
23
|
+
active?: boolean;
|
|
24
|
+
/** Called when the item is activated (click or Enter/Space). */
|
|
25
|
+
onSelect?: () => void;
|
|
26
|
+
/** `end` sinks the item into the bottom-aligned group. */
|
|
27
|
+
slot?: 'start' | 'end';
|
|
28
|
+
} & Omit<ComponentPropsWithoutRef<'button'>, 'type' | 'children' | 'slot'>;
|
|
29
|
+
export declare function ActivityRailItem({ icon, label, badge, active, onSelect, slot, className, onClick, ...rest }: ActivityRailItemProps): import("react").JSX.Element;
|
|
30
|
+
export type { ActivityRailProps, ActivityRailItemProps };
|