haze-ui 1.26.0 → 1.28.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.
Files changed (479) hide show
  1. package/README.md +420 -36
  2. package/dist/components/Anchor/Anchor.js +78 -0
  3. package/dist/components/Anchor/index.js +3 -0
  4. package/dist/components/AppShell/AppShell.js +44 -0
  5. package/dist/components/AppShell/index.js +3 -0
  6. package/dist/components/AspectRatio/AspectRatio.js +0 -1
  7. package/dist/components/AspectRatio/index.js +0 -1
  8. package/dist/components/Badge/Badge.js +5 -17
  9. package/dist/components/Badge/badge-styles.js +15 -0
  10. package/dist/components/Badge/index.js +3 -3
  11. package/dist/components/BottomSheet/BottomSheet.js +133 -22
  12. package/dist/components/Button/index.js +4 -3
  13. package/dist/components/Calendar/Calendar.js +525 -78
  14. package/dist/components/Calendar/date.js +35 -2
  15. package/dist/components/Card/Card.js +0 -1
  16. package/dist/components/Card/index.js +0 -1
  17. package/dist/components/Carousel/Carousel.js +64 -41
  18. package/dist/components/Cascader/Cascader.js +222 -140
  19. package/dist/components/Chart/Chart.js +34 -0
  20. package/dist/components/Chart/chart-elements.js +164 -0
  21. package/dist/components/Chart/index.js +3 -0
  22. package/dist/components/ChatContainer/ChatContainer.js +36 -16
  23. package/dist/components/ChatInput/ChatInput.js +49 -29
  24. package/dist/components/ChatMessage/ChatMessage.js +76 -29
  25. package/dist/components/Checkbox/Checkbox.js +6 -5
  26. package/dist/components/Checkbox/CheckboxCore.js +6 -5
  27. package/dist/components/CodeBlock/CodeBlock.js +39 -10
  28. package/dist/components/CodeBlock/index.js +0 -1
  29. package/dist/components/Collapsible/Collapsible.js +23 -10
  30. package/dist/components/ColorPicker/ColorPicker.js +5 -4
  31. package/dist/components/ColorPicker/ColorPickerCore.js +5 -4
  32. package/dist/components/Combobox/Combobox.js +202 -75
  33. package/dist/components/Combobox/ComboboxGroup.js +23 -0
  34. package/dist/components/Combobox/ComboboxOption.js +7 -6
  35. package/dist/components/Combobox/index.js +4 -3
  36. package/dist/components/Command/Command.js +102 -59
  37. package/dist/components/Command/CommandDialog.js +48 -0
  38. package/dist/components/Command/command-filter.js +16 -0
  39. package/dist/components/Command/index.js +3 -2
  40. package/dist/components/ConfirmDialog/ConfirmDialog.js +3 -3
  41. package/dist/components/Container/Container.js +0 -1
  42. package/dist/components/Container/index.js +0 -1
  43. package/dist/components/ContextMenu/ContextMenuContent.js +4 -4
  44. package/dist/components/DataTable/CellEditor.js +38 -0
  45. package/dist/components/DataTable/DataTable.js +394 -143
  46. package/dist/components/DataTable/csv.js +29 -0
  47. package/dist/components/DataTable/features.js +25 -0
  48. package/dist/components/DataTable/index.js +3 -1
  49. package/dist/components/DataTable/summary.js +17 -0
  50. package/dist/components/DateRangePicker/DateRangePicker.js +31 -13
  51. package/dist/components/DateRangePicker/DateRangePickerCore.js +59 -27
  52. package/dist/components/DateRangePicker/presets.js +43 -0
  53. package/dist/components/Datepicker/Datepicker.js +17 -12
  54. package/dist/components/Datepicker/DatepickerCore.js +73 -39
  55. package/dist/components/Datepicker/datetime.js +23 -0
  56. package/dist/components/Descriptions/Descriptions.js +46 -0
  57. package/dist/components/Descriptions/index.js +3 -0
  58. package/dist/components/Dialog/Dialog.js +56 -32
  59. package/dist/components/DiffViewer/DiffViewer.js +31 -30
  60. package/dist/components/Divider/Divider.js +0 -1
  61. package/dist/components/Divider/index.js +0 -1
  62. package/dist/components/Drawer/Drawer.js +49 -29
  63. package/dist/components/DropdownMenu/DropdownMenu.js +38 -26
  64. package/dist/components/DropdownMenu/DropdownMenuSub.js +23 -0
  65. package/dist/components/DropdownMenu/DropdownMenuSubContent.js +24 -0
  66. package/dist/components/DropdownMenu/DropdownMenuSubTrigger.js +30 -0
  67. package/dist/components/DropdownMenu/index.js +4 -1
  68. package/dist/components/FilePreview/FilePreview.js +135 -0
  69. package/dist/components/FilePreview/file-preview-format.js +23 -0
  70. package/dist/components/FilePreview/index.js +3 -0
  71. package/dist/components/Flex/Flex.js +0 -1
  72. package/dist/components/Flex/index.js +0 -1
  73. package/dist/components/FloatButton/FloatButton.js +42 -0
  74. package/dist/components/FloatButton/FloatButtonGroup.js +58 -0
  75. package/dist/components/FloatButton/float-button-context.js +9 -0
  76. package/dist/components/FloatButton/float-button-glyphs.js +26 -0
  77. package/dist/components/FloatButton/float-button-styles.js +14 -0
  78. package/dist/components/FloatButton/index.js +4 -0
  79. package/dist/components/Fullscreen/Fullscreen.js +29 -0
  80. package/dist/components/Fullscreen/index.js +3 -0
  81. package/dist/components/Grid/Grid.js +0 -1
  82. package/dist/components/Grid/GridItem.js +0 -1
  83. package/dist/components/Grid/index.js +0 -1
  84. package/dist/components/Icon/Icon.js +0 -1
  85. package/dist/components/Icon/index.js +0 -1
  86. package/dist/components/Image/Image.js +37 -19
  87. package/dist/components/Image/ImagePreview.js +233 -0
  88. package/dist/components/InlineCompletion/InlineCompletion.js +81 -0
  89. package/dist/components/InlineCompletion/index.js +3 -0
  90. package/dist/components/Input/Input.js +6 -5
  91. package/dist/components/Input/InputCore.js +3 -2
  92. package/dist/components/JsonView/JsonView.js +209 -0
  93. package/dist/components/JsonView/index.js +3 -0
  94. package/dist/components/JsonView/json-view-utils.js +24 -0
  95. package/dist/components/Kbd/Kbd.js +0 -1
  96. package/dist/components/Kbd/index.js +0 -1
  97. package/dist/components/LocaleProvider/LocaleProvider.js +16 -13
  98. package/dist/components/LocaleProvider/index.js +5 -3
  99. package/dist/components/LocaleProvider/ja-jp.js +222 -0
  100. package/dist/components/LocaleProvider/locale.js +99 -5
  101. package/dist/components/LocaleProvider/strings.js +15 -0
  102. package/dist/components/LocaleProvider/useStrings.js +13 -11
  103. package/dist/components/LocaleProvider/zh-cn.js +99 -5
  104. package/dist/components/Masonry/Masonry.js +29 -0
  105. package/dist/components/Masonry/index.js +3 -0
  106. package/dist/components/Masonry/masonry-distribute.js +15 -0
  107. package/dist/components/Mentions/Mentions.js +6 -5
  108. package/dist/components/Mentions/MentionsCore.js +69 -68
  109. package/dist/components/Menu/Menu.js +5 -5
  110. package/dist/components/Menu/MenuSub.js +23 -0
  111. package/dist/components/Menu/MenuSubContent.js +24 -0
  112. package/dist/components/Menu/MenuSubTrigger.js +30 -0
  113. package/dist/components/Menu/index.js +4 -1
  114. package/dist/components/NumberInput/NumberInput.js +6 -5
  115. package/dist/components/NumberInput/NumberInputCore.js +9 -8
  116. package/dist/components/OTPInput/OTPInput.js +5 -4
  117. package/dist/components/OTPInput/OTPInputCore.js +34 -33
  118. package/dist/components/PasswordInput/PasswordInput.js +5 -4
  119. package/dist/components/PasswordInput/PasswordInputCore.js +8 -7
  120. package/dist/components/Popover/Popover.js +43 -31
  121. package/dist/components/PromptInput/PromptInput.js +213 -0
  122. package/dist/components/PromptInput/index.js +3 -0
  123. package/dist/components/Radio/Radio.js +7 -6
  124. package/dist/components/Radio/RadioGroup.js +5 -4
  125. package/dist/components/Radio/RadioGroupCore.js +23 -14
  126. package/dist/components/Rating/Rating.js +5 -4
  127. package/dist/components/Rating/RatingCore.js +62 -28
  128. package/dist/components/Resizable/index.js +1 -1
  129. package/dist/components/Segmented/Segmented.js +5 -4
  130. package/dist/components/Segmented/SegmentedCore.js +22 -18
  131. package/dist/components/Select/OptionGroup.js +12 -0
  132. package/dist/components/Select/Select.js +20 -9
  133. package/dist/components/Select/SelectCore.js +74 -13
  134. package/dist/components/Select/SelectFloating.js +256 -0
  135. package/dist/components/Select/index.js +5 -4
  136. package/dist/components/Select/select-options.js +57 -0
  137. package/dist/components/Sidebar/Sidebar.js +9 -9
  138. package/dist/components/Signature/Signature.js +165 -0
  139. package/dist/components/Signature/index.js +3 -0
  140. package/dist/components/Signature/signature-points.js +28 -0
  141. package/dist/components/Skeleton/Skeleton.js +0 -1
  142. package/dist/components/Skeleton/index.js +0 -1
  143. package/dist/components/Slider/Slider.js +16 -8
  144. package/dist/components/Slider/SliderCore.js +75 -12
  145. package/dist/components/Sources/Sources.js +109 -0
  146. package/dist/components/Sources/index.js +3 -0
  147. package/dist/components/Stat/Stat.js +0 -1
  148. package/dist/components/Stat/index.js +0 -1
  149. package/dist/components/Switch/Switch.js +6 -5
  150. package/dist/components/Switch/SwitchCore.js +3 -2
  151. package/dist/components/Tabs/Tab.js +7 -4
  152. package/dist/components/Tabs/TabList.js +38 -7
  153. package/dist/components/Tabs/TabPanel.js +4 -3
  154. package/dist/components/Tabs/Tabs.js +11 -6
  155. package/dist/components/TagGroup/SortableTagGroup.js +26 -0
  156. package/dist/components/TagGroup/TagGroup.js +4 -6
  157. package/dist/components/TagGroup/TagGroupItem.js +17 -11
  158. package/dist/components/TagGroup/index.js +2 -1
  159. package/dist/components/TagGroup/tag-group-styles.js +7 -0
  160. package/dist/components/TagInput/SortableTagInput.js +24 -0
  161. package/dist/components/TagInput/SortableTagInputCore.js +52 -0
  162. package/dist/components/TagInput/TagInput.js +5 -4
  163. package/dist/components/TagInput/TagInputCore.js +71 -57
  164. package/dist/components/TagInput/index.js +3 -1
  165. package/dist/components/TagInput/tag-input-styles.js +7 -0
  166. package/dist/components/Textarea/Textarea.js +6 -5
  167. package/dist/components/Textarea/TextareaCore.js +3 -2
  168. package/dist/components/TimePicker/TimePicker.js +6 -5
  169. package/dist/components/TimePicker/TimePickerCore.js +3 -2
  170. package/dist/components/Toast/Toast.js +44 -42
  171. package/dist/components/Toast/ToastContainer.js +67 -47
  172. package/dist/components/Toast/ToastContext.js +23 -4
  173. package/dist/components/Toast/toast2.js +63 -28
  174. package/dist/components/Toast/useToast.js +9 -7
  175. package/dist/components/Toggle/Toggle.js +20 -0
  176. package/dist/components/Toggle/ToggleCore.js +31 -0
  177. package/dist/components/Toggle/index.js +4 -0
  178. package/dist/components/Toolbar/Toolbar.js +33 -32
  179. package/dist/components/Toolbar/ToolbarToggle.js +31 -0
  180. package/dist/components/Toolbar/index.js +2 -1
  181. package/dist/components/Tooltip/Tooltip.js +1 -1
  182. package/dist/components/Tour/Tour.js +57 -53
  183. package/dist/components/Tree/Tree.js +265 -80
  184. package/dist/components/Tree/TreeItem.js +91 -55
  185. package/dist/components/Tree/utils.js +82 -10
  186. package/dist/components/Typography/Typography.js +0 -1
  187. package/dist/components/Typography/index.js +0 -1
  188. package/dist/components/Upload/Upload.js +24 -8
  189. package/dist/components/Upload/UploadCore.js +230 -37
  190. package/dist/components/Upload/UploadList.js +300 -0
  191. package/dist/components/Upload/xhr-upload.js +22 -0
  192. package/dist/components/VirtualList/VirtualList.js +84 -56
  193. package/dist/components/Watermark/Watermark.js +55 -0
  194. package/dist/components/Watermark/index.js +3 -0
  195. package/dist/css/anchor.css +2 -0
  196. package/dist/css/app-shell.css +2 -0
  197. package/dist/css/badge.css +1 -1
  198. package/dist/css/bottom-sheet.css +1 -1
  199. package/dist/css/button.css +1 -1
  200. package/dist/css/calendar.css +1 -1
  201. package/dist/css/cascader.css +1 -1
  202. package/dist/css/chart.css +2 -0
  203. package/dist/css/chat-container.css +1 -1
  204. package/dist/css/chat-message.css +1 -1
  205. package/dist/css/combobox.css +3 -2
  206. package/dist/css/command.css +2 -1
  207. package/dist/css/context-menu.css +1 -1
  208. package/dist/css/data-table.css +2 -1
  209. package/dist/css/date-range-picker.css +1 -1
  210. package/dist/css/datepicker.css +2 -2
  211. package/dist/css/descriptions.css +2 -0
  212. package/dist/css/dialog.css +1 -1
  213. package/dist/css/drawer.css +1 -1
  214. package/dist/css/dropdown-menu.css +4 -1
  215. package/dist/css/file-preview.css +2 -0
  216. package/dist/css/float-button.css +2 -0
  217. package/dist/css/image.css +2 -1
  218. package/dist/css/inline-completion.css +2 -0
  219. package/dist/css/json-view.css +2 -0
  220. package/dist/css/masonry.css +2 -0
  221. package/dist/css/menu.css +4 -1
  222. package/dist/css/popover.css +1 -1
  223. package/dist/css/prompt-input.css +2 -0
  224. package/dist/css/rating.css +1 -1
  225. package/dist/css/select.css +3 -1
  226. package/dist/css/signature.css +2 -0
  227. package/dist/css/slider.css +1 -1
  228. package/dist/css/sources.css +2 -0
  229. package/dist/css/tag-group.css +3 -1
  230. package/dist/css/tag-input.css +2 -1
  231. package/dist/css/toggle.css +2 -0
  232. package/dist/css/toolbar.css +1 -0
  233. package/dist/css/tooltip.css +1 -1
  234. package/dist/css/tree.css +2 -2
  235. package/dist/css/upload.css +2 -1
  236. package/dist/css/watermark.css +2 -0
  237. package/dist/css-manifest.json +75 -1
  238. package/dist/form/FormItem.js +55 -50
  239. package/dist/form/FormList.js +79 -0
  240. package/dist/form/index.js +5 -1
  241. package/dist/form/standard-schema.js +16 -0
  242. package/dist/haze-ui.css +61 -30
  243. package/dist/headless/index.js +19 -0
  244. package/dist/hooks/useClickOutside.js +24 -0
  245. package/dist/hooks/useDarkMode.js +27 -0
  246. package/dist/hooks/useFullscreen.js +42 -0
  247. package/dist/hooks/useHotkeys.js +77 -0
  248. package/dist/hooks/useInView.js +27 -0
  249. package/dist/hooks/useLocalStorage.js +8 -0
  250. package/dist/hooks/useMediaQuery.js +2 -1
  251. package/dist/hooks/usePrevious.js +11 -0
  252. package/dist/hooks/useSessionStorage.js +8 -0
  253. package/dist/hooks/useStorageState.js +80 -0
  254. package/dist/index.js +220 -171
  255. package/dist/registry.json +2435 -91
  256. package/dist/tokens/colors.js +0 -1
  257. package/dist/tokens/index.js +0 -1
  258. package/dist/tokens/motion.js +0 -1
  259. package/dist/tokens/oklch.js +0 -1
  260. package/dist/tokens/palette.js +0 -1
  261. package/dist/tokens/registry.js +17 -28
  262. package/dist/tokens/spacing.js +0 -1
  263. package/dist/tokens/typography.js +0 -1
  264. package/dist/types/components/Anchor/Anchor.d.ts +25 -0
  265. package/dist/types/components/Anchor/index.d.ts +2 -0
  266. package/dist/types/components/AppShell/AppShell.d.ts +17 -0
  267. package/dist/types/components/AppShell/index.d.ts +2 -0
  268. package/dist/types/components/Badge/badge-styles.d.ts +21 -0
  269. package/dist/types/components/Badge/index.d.ts +1 -0
  270. package/dist/types/components/BottomSheet/BottomSheet.d.ts +52 -3
  271. package/dist/types/components/BottomSheet/index.d.ts +1 -1
  272. package/dist/types/components/Button/Button.d.ts +7 -0
  273. package/dist/types/components/Button/ButtonLink.d.ts +3 -0
  274. package/dist/types/components/Button/index.d.ts +1 -0
  275. package/dist/types/components/Button/styles.d.ts +17 -0
  276. package/dist/types/components/Calendar/Calendar.d.ts +71 -7
  277. package/dist/types/components/Calendar/date.d.ts +52 -0
  278. package/dist/types/components/Calendar/index.d.ts +1 -1
  279. package/dist/types/components/Cascader/Cascader.d.ts +48 -3
  280. package/dist/types/components/Chart/Chart.d.ts +43 -0
  281. package/dist/types/components/Chart/chart-elements.d.ts +104 -0
  282. package/dist/types/components/Chart/index.d.ts +2 -0
  283. package/dist/types/components/ChatContainer/ChatContainer.d.ts +18 -3
  284. package/dist/types/components/ChatInput/ChatInput.d.ts +11 -1
  285. package/dist/types/components/ChatMessage/ChatMessage.d.ts +13 -1
  286. package/dist/types/components/Checkbox/Checkbox.d.ts +6 -2
  287. package/dist/types/components/Checkbox/CheckboxCore.d.ts +4 -2
  288. package/dist/types/components/CodeBlock/CodeBlock.d.ts +19 -2
  289. package/dist/types/components/CodeBlock/index.d.ts +1 -1
  290. package/dist/types/components/Collapsible/Collapsible.d.ts +24 -2
  291. package/dist/types/components/Collapsible/index.d.ts +1 -1
  292. package/dist/types/components/ColorPicker/ColorPicker.d.ts +7 -1
  293. package/dist/types/components/ColorPicker/ColorPickerCore.d.ts +7 -1
  294. package/dist/types/components/Combobox/Combobox.d.ts +111 -7
  295. package/dist/types/components/Combobox/ComboboxGroup.d.ts +22 -0
  296. package/dist/types/components/Combobox/ComboboxOption.d.ts +7 -2
  297. package/dist/types/components/Combobox/index.d.ts +3 -1
  298. package/dist/types/components/Command/Command.d.ts +70 -6
  299. package/dist/types/components/Command/CommandDialog.d.ts +36 -0
  300. package/dist/types/components/Command/command-filter.d.ts +34 -0
  301. package/dist/types/components/Command/index.d.ts +4 -2
  302. package/dist/types/components/DataTable/CellEditor.d.ts +24 -0
  303. package/dist/types/components/DataTable/DataTable.d.ts +184 -32
  304. package/dist/types/components/DataTable/csv.d.ts +36 -0
  305. package/dist/types/components/DataTable/features.d.ts +124 -0
  306. package/dist/types/components/DataTable/index.d.ts +4 -1
  307. package/dist/types/components/DataTable/summary.d.ts +19 -0
  308. package/dist/types/components/DateRangePicker/DateRangePicker.d.ts +28 -2
  309. package/dist/types/components/DateRangePicker/DateRangePickerCore.d.ts +26 -2
  310. package/dist/types/components/DateRangePicker/index.d.ts +2 -2
  311. package/dist/types/components/DateRangePicker/presets.d.ts +23 -0
  312. package/dist/types/components/Datepicker/Datepicker.d.ts +21 -1
  313. package/dist/types/components/Datepicker/DatepickerCore.d.ts +29 -2
  314. package/dist/types/components/Datepicker/datetime.d.ts +27 -0
  315. package/dist/types/components/Datepicker/index.d.ts +1 -1
  316. package/dist/types/components/Descriptions/Descriptions.d.ts +30 -0
  317. package/dist/types/components/Descriptions/index.d.ts +2 -0
  318. package/dist/types/components/Dialog/Dialog.d.ts +68 -3
  319. package/dist/types/components/Dialog/index.d.ts +1 -1
  320. package/dist/types/components/Drawer/Drawer.d.ts +33 -3
  321. package/dist/types/components/Drawer/index.d.ts +1 -1
  322. package/dist/types/components/DropdownMenu/DropdownMenu.d.ts +23 -3
  323. package/dist/types/components/DropdownMenu/DropdownMenuSub.d.ts +18 -0
  324. package/dist/types/components/DropdownMenu/DropdownMenuSubContent.d.ts +13 -0
  325. package/dist/types/components/DropdownMenu/DropdownMenuSubTrigger.d.ts +14 -0
  326. package/dist/types/components/DropdownMenu/index.d.ts +7 -1
  327. package/dist/types/components/FilePreview/FilePreview.d.ts +35 -0
  328. package/dist/types/components/FilePreview/file-preview-format.d.ts +20 -0
  329. package/dist/types/components/FilePreview/index.d.ts +2 -0
  330. package/dist/types/components/FloatButton/FloatButton.d.ts +43 -0
  331. package/dist/types/components/FloatButton/FloatButtonGroup.d.ts +33 -0
  332. package/dist/types/components/FloatButton/float-button-context.d.ts +11 -0
  333. package/dist/types/components/FloatButton/float-button-glyphs.d.ts +3 -0
  334. package/dist/types/components/FloatButton/float-button-styles.d.ts +58 -0
  335. package/dist/types/components/FloatButton/index.d.ts +4 -0
  336. package/dist/types/components/Fullscreen/Fullscreen.d.ts +34 -0
  337. package/dist/types/components/Fullscreen/index.d.ts +3 -0
  338. package/dist/types/components/Image/Image.d.ts +20 -5
  339. package/dist/types/components/Image/ImagePreview.d.ts +13 -0
  340. package/dist/types/components/Image/index.d.ts +1 -1
  341. package/dist/types/components/InlineCompletion/InlineCompletion.d.ts +29 -0
  342. package/dist/types/components/InlineCompletion/index.d.ts +2 -0
  343. package/dist/types/components/Input/Input.d.ts +5 -2
  344. package/dist/types/components/Input/InputCore.d.ts +4 -2
  345. package/dist/types/components/JsonView/JsonView.d.ts +26 -0
  346. package/dist/types/components/JsonView/index.d.ts +2 -0
  347. package/dist/types/components/JsonView/json-view-utils.d.ts +22 -0
  348. package/dist/types/components/LocaleProvider/LocaleContext.d.ts +9 -0
  349. package/dist/types/components/LocaleProvider/LocaleProvider.d.ts +12 -1
  350. package/dist/types/components/LocaleProvider/index.d.ts +3 -0
  351. package/dist/types/components/LocaleProvider/ja-jp.d.ts +13 -0
  352. package/dist/types/components/LocaleProvider/locale.d.ts +100 -0
  353. package/dist/types/components/LocaleProvider/strings.d.ts +28 -0
  354. package/dist/types/components/Masonry/Masonry.d.ts +34 -0
  355. package/dist/types/components/Masonry/index.d.ts +2 -0
  356. package/dist/types/components/Masonry/masonry-distribute.d.ts +16 -0
  357. package/dist/types/components/Mentions/Mentions.d.ts +5 -2
  358. package/dist/types/components/Mentions/MentionsCore.d.ts +4 -2
  359. package/dist/types/components/Menu/MenuSub.d.ts +18 -0
  360. package/dist/types/components/Menu/MenuSubContent.d.ts +12 -0
  361. package/dist/types/components/Menu/MenuSubTrigger.d.ts +14 -0
  362. package/dist/types/components/Menu/index.d.ts +6 -0
  363. package/dist/types/components/NumberInput/NumberInput.d.ts +5 -2
  364. package/dist/types/components/NumberInput/NumberInputCore.d.ts +4 -2
  365. package/dist/types/components/OTPInput/OTPInput.d.ts +5 -1
  366. package/dist/types/components/OTPInput/OTPInputCore.d.ts +4 -1
  367. package/dist/types/components/PasswordInput/PasswordInput.d.ts +5 -1
  368. package/dist/types/components/PasswordInput/PasswordInputCore.d.ts +4 -1
  369. package/dist/types/components/Popover/Popover.d.ts +41 -3
  370. package/dist/types/components/Popover/index.d.ts +1 -1
  371. package/dist/types/components/PromptInput/PromptInput.d.ts +46 -0
  372. package/dist/types/components/PromptInput/index.d.ts +2 -0
  373. package/dist/types/components/Radio/Radio.d.ts +5 -2
  374. package/dist/types/components/Radio/RadioGroup.d.ts +8 -2
  375. package/dist/types/components/Radio/RadioGroupCore.d.ts +7 -2
  376. package/dist/types/components/Rating/Rating.d.ts +8 -1
  377. package/dist/types/components/Rating/RatingCore.d.ts +7 -1
  378. package/dist/types/components/Resizable/index.d.ts +2 -0
  379. package/dist/types/components/Segmented/Segmented.d.ts +8 -1
  380. package/dist/types/components/Segmented/SegmentedCore.d.ts +7 -2
  381. package/dist/types/components/Select/OptionGroup.d.ts +16 -0
  382. package/dist/types/components/Select/Select.d.ts +78 -4
  383. package/dist/types/components/Select/SelectCore.d.ts +79 -6
  384. package/dist/types/components/Select/SelectFloating.d.ts +94 -0
  385. package/dist/types/components/Select/index.d.ts +2 -0
  386. package/dist/types/components/Select/select-options.d.ts +53 -0
  387. package/dist/types/components/Signature/Signature.d.ts +51 -0
  388. package/dist/types/components/Signature/index.d.ts +2 -0
  389. package/dist/types/components/Signature/signature-points.d.ts +31 -0
  390. package/dist/types/components/Slider/Slider.d.ts +29 -4
  391. package/dist/types/components/Slider/SliderCore.d.ts +35 -6
  392. package/dist/types/components/Sources/Sources.d.ts +37 -0
  393. package/dist/types/components/Sources/index.d.ts +2 -0
  394. package/dist/types/components/Switch/Switch.d.ts +5 -2
  395. package/dist/types/components/Switch/SwitchCore.d.ts +4 -2
  396. package/dist/types/components/Tabs/TabList.d.ts +7 -0
  397. package/dist/types/components/Tabs/Tabs.d.ts +8 -1
  398. package/dist/types/components/Tabs/TabsContext.d.ts +20 -0
  399. package/dist/types/components/Tabs/index.d.ts +1 -0
  400. package/dist/types/components/TagGroup/SortableTagGroup.d.ts +20 -0
  401. package/dist/types/components/TagGroup/TagGroup.d.ts +3 -0
  402. package/dist/types/components/TagGroup/index.d.ts +2 -0
  403. package/dist/types/components/TagGroup/tag-group-styles.d.ts +7 -0
  404. package/dist/types/components/TagInput/SortableTagInput.d.ts +34 -0
  405. package/dist/types/components/TagInput/SortableTagInputCore.d.ts +18 -0
  406. package/dist/types/components/TagInput/TagInput.d.ts +5 -1
  407. package/dist/types/components/TagInput/TagInputCore.d.ts +6 -2
  408. package/dist/types/components/TagInput/index.d.ts +4 -0
  409. package/dist/types/components/TagInput/tag-input-styles.d.ts +12 -0
  410. package/dist/types/components/Textarea/Textarea.d.ts +5 -2
  411. package/dist/types/components/Textarea/TextareaCore.d.ts +4 -2
  412. package/dist/types/components/TimePicker/TimePicker.d.ts +5 -2
  413. package/dist/types/components/TimePicker/TimePickerCore.d.ts +4 -2
  414. package/dist/types/components/Toast/Toast.d.ts +31 -2
  415. package/dist/types/components/Toast/ToastContainer.d.ts +11 -1
  416. package/dist/types/components/Toast/ToastContext.d.ts +44 -3
  417. package/dist/types/components/Toast/index.d.ts +1 -1
  418. package/dist/types/components/Toast/toast.d.ts +35 -4
  419. package/dist/types/components/Toast/useToast.d.ts +16 -4
  420. package/dist/types/components/Toggle/Toggle.d.ts +19 -0
  421. package/dist/types/components/Toggle/ToggleCore.d.ts +23 -0
  422. package/dist/types/components/Toggle/index.d.ts +4 -0
  423. package/dist/types/components/Toolbar/ToolbarToggle.d.ts +19 -0
  424. package/dist/types/components/Toolbar/index.d.ts +2 -0
  425. package/dist/types/components/Tour/Tour.d.ts +3 -3
  426. package/dist/types/components/Tree/Tree.d.ts +3 -3
  427. package/dist/types/components/Tree/TreeItem.d.ts +16 -1
  428. package/dist/types/components/Tree/types.d.ts +51 -0
  429. package/dist/types/components/Tree/utils.d.ts +73 -0
  430. package/dist/types/components/Upload/Upload.d.ts +47 -3
  431. package/dist/types/components/Upload/UploadCore.d.ts +95 -4
  432. package/dist/types/components/Upload/UploadList.d.ts +18 -0
  433. package/dist/types/components/Upload/index.d.ts +1 -0
  434. package/dist/types/components/Upload/types.d.ts +60 -0
  435. package/dist/types/components/Upload/xhr-upload.d.ts +20 -0
  436. package/dist/types/components/VirtualList/VirtualList.d.ts +16 -1
  437. package/dist/types/components/Watermark/Watermark.d.ts +32 -0
  438. package/dist/types/components/Watermark/index.d.ts +2 -0
  439. package/dist/types/form/FormItem.d.ts +33 -8
  440. package/dist/types/form/FormList.d.ts +113 -0
  441. package/dist/types/form/index.d.ts +26 -0
  442. package/dist/types/form/standard-schema.d.ts +30 -0
  443. package/dist/types/headless/index.d.ts +399 -0
  444. package/dist/types/hooks/index.d.ts +13 -0
  445. package/dist/types/hooks/useClickOutside.d.ts +46 -0
  446. package/dist/types/hooks/useDarkMode.d.ts +40 -0
  447. package/dist/types/hooks/useFullscreen.d.ts +33 -0
  448. package/dist/types/hooks/useHotkeys.d.ts +53 -0
  449. package/dist/types/hooks/useInView.d.ts +32 -0
  450. package/dist/types/hooks/useLocalStorage.d.ts +33 -0
  451. package/dist/types/hooks/useMediaQuery.d.ts +3 -0
  452. package/dist/types/hooks/usePrevious.d.ts +18 -0
  453. package/dist/types/hooks/useSessionStorage.d.ts +26 -0
  454. package/dist/types/hooks/useStorageState.d.ts +12 -0
  455. package/dist/types/index.d.ts +79 -37
  456. package/dist/types/utils/collision.d.ts +39 -1
  457. package/dist/types/utils/direction.d.ts +22 -0
  458. package/dist/types/utils/floating.d.ts +32 -4
  459. package/dist/types/utils/focus-scope.d.ts +2 -1
  460. package/dist/types/utils/focus.d.ts +2 -1
  461. package/dist/types/utils/menuKeyboard.d.ts +19 -4
  462. package/dist/types/utils/refs.d.ts +16 -0
  463. package/dist/types/utils/sortable-handle.d.ts +25 -0
  464. package/dist/types/utils/sortable-shared.d.ts +30 -0
  465. package/dist/types/utils/sortable.d.ts +36 -0
  466. package/dist/types/utils/submenu.d.ts +63 -0
  467. package/dist/types/utils/view-transition.d.ts +28 -0
  468. package/dist/utils/classnames.js +0 -1
  469. package/dist/utils/collision.js +37 -26
  470. package/dist/utils/direction.js +34 -0
  471. package/dist/utils/floating.js +163 -143
  472. package/dist/utils/menuKeyboard.js +59 -46
  473. package/dist/utils/refs.js +9 -0
  474. package/dist/utils/sortable-handle.js +12 -0
  475. package/dist/utils/sortable-shared.js +16 -0
  476. package/dist/utils/sortable.js +47 -0
  477. package/dist/utils/submenu.js +106 -0
  478. package/dist/utils/view-transition.js +26 -0
  479. package/package.json +169 -16
@@ -1,245 +1,2589 @@
1
1
  {
2
- "$schema": "https://ui.shadcn.com/schema.json",
2
+ "$schema": "https://ui.shadcn.com/schema/registry.json",
3
3
  "name": "haze-ui",
4
4
  "homepage": "https://github.com/wmzy/haze-ui",
5
5
  "items": [
6
+ {
7
+ "name": "accordion",
8
+ "type": "registry:ui",
9
+ "title": "Accordion / AccordionItem",
10
+ "description": "Collapsible section list with titled `AccordionItem` sections.",
11
+ "author": "wmzy <https://github.com/wmzy>",
12
+ "docs": "Collapsible section list with titled `AccordionItem` sections.\n\nExports: `Accordion`, `AccordionItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/accordion\n```\n\nThe wrapper lands at `components/ui/haze/accordion.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/accordion.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",
13
+ "categories": [
14
+ "data-display"
15
+ ],
16
+ "dependencies": [
17
+ "haze-ui"
18
+ ],
19
+ "files": [
20
+ {
21
+ "path": "components/haze/accordion.tsx",
22
+ "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 { Accordion, AccordionItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/accordion.css';\n\nexport { Accordion, AccordionItem };\nexport type { AccordionProps, AccordionItemProps } from 'haze-ui';\n",
23
+ "type": "registry:ui"
24
+ }
25
+ ]
26
+ },
27
+ {
28
+ "name": "affix",
29
+ "type": "registry:ui",
30
+ "title": "Affix",
31
+ "description": "Fixes children to a viewport edge once scrolled past an offset.",
32
+ "author": "wmzy <https://github.com/wmzy>",
33
+ "docs": "Fixes children to a viewport edge once scrolled past an offset.\n\nExports: `Affix`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/affix\n```\n\nThe wrapper lands at `components/ui/haze/affix.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/affix.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
+ "navigation"
36
+ ],
37
+ "dependencies": [
38
+ "haze-ui"
39
+ ],
40
+ "files": [
41
+ {
42
+ "path": "components/haze/affix.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 { Affix } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/affix.css';\n\nexport { Affix };\nexport type { AffixProps } from 'haze-ui';\n",
44
+ "type": "registry:ui"
45
+ }
46
+ ]
47
+ },
48
+ {
49
+ "name": "alert",
50
+ "type": "registry:ui",
51
+ "title": "Alert",
52
+ "description": "Inline status message box.",
53
+ "author": "wmzy <https://github.com/wmzy>",
54
+ "docs": "Inline status message box.\n\nExports: `Alert`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/alert\n```\n\nThe wrapper lands at `components/ui/haze/alert.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/alert.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",
55
+ "categories": [
56
+ "feedback"
57
+ ],
58
+ "dependencies": [
59
+ "haze-ui"
60
+ ],
61
+ "files": [
62
+ {
63
+ "path": "components/haze/alert.tsx",
64
+ "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 { Alert } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/alert.css';\n\nexport { Alert };\nexport type { AlertProps } from 'haze-ui';\n",
65
+ "type": "registry:ui"
66
+ }
67
+ ]
68
+ },
69
+ {
70
+ "name": "anchor",
71
+ "type": "registry:ui",
72
+ "title": "Anchor",
73
+ "description": "Sticky scroll-spy navigation: an `items` list highlighting the active section, click scrolls with an offset.",
74
+ "author": "wmzy <https://github.com/wmzy>",
75
+ "docs": "Sticky scroll-spy navigation: an `items` list highlighting the active section, click scrolls with an offset.\n\nExports: `Anchor`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/anchor\n```\n\nThe wrapper lands at `components/ui/haze/anchor.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/anchor.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",
76
+ "categories": [
77
+ "navigation"
78
+ ],
79
+ "dependencies": [
80
+ "haze-ui"
81
+ ],
82
+ "files": [
83
+ {
84
+ "path": "components/haze/anchor.tsx",
85
+ "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 { Anchor } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/anchor.css';\n\nexport { Anchor };\nexport type { AnchorProps, AnchorItem } from 'haze-ui';\n",
86
+ "type": "registry:ui"
87
+ }
88
+ ]
89
+ },
90
+ {
91
+ "name": "app-shell",
92
+ "type": "registry:ui",
93
+ "title": "AppShell",
94
+ "description": "Application frame with sticky header, collapsible sidebar, content and footer slots; the sidebar becomes an overlay below 768px.",
95
+ "author": "wmzy <https://github.com/wmzy>",
96
+ "docs": "Application frame with sticky header, collapsible sidebar, content and footer slots; the sidebar becomes an overlay below 768px.\n\nExports: `AppShell`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/app-shell\n```\n\nThe wrapper lands at `components/ui/haze/app-shell.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/app-shell.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",
97
+ "categories": [
98
+ "layout"
99
+ ],
100
+ "dependencies": [
101
+ "haze-ui"
102
+ ],
103
+ "files": [
104
+ {
105
+ "path": "components/haze/app-shell.tsx",
106
+ "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 { AppShell } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/app-shell.css';\n\nexport { AppShell };\nexport type { AppShellProps } from 'haze-ui';\n",
107
+ "type": "registry:ui"
108
+ }
109
+ ]
110
+ },
111
+ {
112
+ "name": "approval-card",
113
+ "type": "registry:ui",
114
+ "title": "ApprovalCard",
115
+ "description": "Approval gate with approve / deny actions for agent-initiated operations.",
116
+ "author": "wmzy <https://github.com/wmzy>",
117
+ "docs": "Approval gate with approve / deny actions for agent-initiated operations.\n\nExports: `ApprovalCard`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/approval-card\n```\n\nThe wrapper lands at `components/ui/haze/approval-card.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/approval-card.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",
118
+ "categories": [
119
+ "agent"
120
+ ],
121
+ "dependencies": [
122
+ "haze-ui"
123
+ ],
124
+ "files": [
125
+ {
126
+ "path": "components/haze/approval-card.tsx",
127
+ "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 { ApprovalCard } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/approval-card.css';\n\nexport { ApprovalCard };\nexport type { ApprovalCardProps } from 'haze-ui';\n",
128
+ "type": "registry:ui"
129
+ }
130
+ ]
131
+ },
132
+ {
133
+ "name": "aspect-ratio",
134
+ "type": "registry:ui",
135
+ "title": "AspectRatio",
136
+ "description": "Boxes children to a fixed width/height ratio.",
137
+ "author": "wmzy <https://github.com/wmzy>",
138
+ "docs": "Boxes children to a fixed width/height ratio.\n\nExports: `AspectRatio`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/aspect-ratio\n```\n\nThe wrapper lands at `components/ui/haze/aspect-ratio.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/aspect-ratio.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",
139
+ "categories": [
140
+ "layout"
141
+ ],
142
+ "dependencies": [
143
+ "haze-ui"
144
+ ],
145
+ "files": [
146
+ {
147
+ "path": "components/haze/aspect-ratio.tsx",
148
+ "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 { AspectRatio } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/aspect-ratio.css';\n\nexport { AspectRatio };\nexport type { AspectRatioProps } from 'haze-ui';\n",
149
+ "type": "registry:ui"
150
+ }
151
+ ]
152
+ },
153
+ {
154
+ "name": "async-section",
155
+ "type": "registry:ui",
156
+ "title": "AsyncSection",
157
+ "description": "Declarative loading / error / content states for async data.",
158
+ "author": "wmzy <https://github.com/wmzy>",
159
+ "docs": "Declarative loading / error / content states for async data.\n\nExports: `AsyncSection`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/async-section\n```\n\nThe wrapper lands at `components/ui/haze/async-section.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/async-section.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",
160
+ "categories": [
161
+ "feedback"
162
+ ],
163
+ "dependencies": [
164
+ "haze-ui"
165
+ ],
166
+ "files": [
167
+ {
168
+ "path": "components/haze/async-section.tsx",
169
+ "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 { AsyncSection } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/async-section.css';\n\nexport { AsyncSection };\nexport type { AsyncSectionProps } from 'haze-ui';\n",
170
+ "type": "registry:ui"
171
+ }
172
+ ]
173
+ },
174
+ {
175
+ "name": "avatar",
176
+ "type": "registry:ui",
177
+ "title": "Avatar",
178
+ "description": "User avatar with image, size variants and fallback content when the image is missing.",
179
+ "author": "wmzy <https://github.com/wmzy>",
180
+ "docs": "User avatar with image, size variants and fallback content when the image is missing.\n\nExports: `Avatar`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/avatar\n```\n\nThe wrapper lands at `components/ui/haze/avatar.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/avatar.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",
181
+ "categories": [
182
+ "general"
183
+ ],
184
+ "dependencies": [
185
+ "haze-ui"
186
+ ],
187
+ "files": [
188
+ {
189
+ "path": "components/haze/avatar.tsx",
190
+ "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 { Avatar } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/avatar.css';\n\nexport { Avatar };\nexport type { AvatarProps } from 'haze-ui';\n",
191
+ "type": "registry:ui"
192
+ }
193
+ ]
194
+ },
195
+ {
196
+ "name": "avatar-group",
197
+ "type": "registry:ui",
198
+ "title": "AvatarGroup",
199
+ "description": "Stacks avatars in overlapping rows with a `+N` overflow chip (`max`/`total`).",
200
+ "author": "wmzy <https://github.com/wmzy>",
201
+ "docs": "Stacks avatars in overlapping rows with a `+N` overflow chip (`max`/`total`).\n\nExports: `AvatarGroup`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/avatar-group\n```\n\nThe wrapper lands at `components/ui/haze/avatar-group.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/avatar-group.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",
202
+ "categories": [
203
+ "general"
204
+ ],
205
+ "dependencies": [
206
+ "haze-ui"
207
+ ],
208
+ "files": [
209
+ {
210
+ "path": "components/haze/avatar-group.tsx",
211
+ "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 { AvatarGroup } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/avatar-group.css';\n\nexport { AvatarGroup };\nexport type { AvatarGroupProps } from 'haze-ui';\n",
212
+ "type": "registry:ui"
213
+ }
214
+ ]
215
+ },
216
+ {
217
+ "name": "back-to-top",
218
+ "type": "registry:ui",
219
+ "title": "BackToTop",
220
+ "description": "Floating scroll-to-top button appearing past a scroll threshold.",
221
+ "author": "wmzy <https://github.com/wmzy>",
222
+ "docs": "Floating scroll-to-top button appearing past a scroll threshold.\n\nExports: `BackToTop`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/back-to-top\n```\n\nThe wrapper lands at `components/ui/haze/back-to-top.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/back-to-top.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",
223
+ "categories": [
224
+ "navigation"
225
+ ],
226
+ "dependencies": [
227
+ "haze-ui"
228
+ ],
229
+ "files": [
230
+ {
231
+ "path": "components/haze/back-to-top.tsx",
232
+ "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 { BackToTop } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/back-to-top.css';\n\nexport { BackToTop };\nexport type { BackToTopProps } from 'haze-ui';\n",
233
+ "type": "registry:ui"
234
+ }
235
+ ]
236
+ },
237
+ {
238
+ "name": "badge",
239
+ "type": "registry:ui",
240
+ "title": "Badge / badgeVariants / badgeSizes",
241
+ "description": "Small inline status label with variant and color options.",
242
+ "author": "wmzy <https://github.com/wmzy>",
243
+ "docs": "Small inline status label with variant and color options.\n\nExports: `Badge`, `badgeVariants`, `badgeSizes`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/badge\n```\n\nThe wrapper lands at `components/ui/haze/badge.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/badge.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",
244
+ "categories": [
245
+ "general"
246
+ ],
247
+ "dependencies": [
248
+ "haze-ui"
249
+ ],
250
+ "files": [
251
+ {
252
+ "path": "components/haze/badge.tsx",
253
+ "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 { Badge, badgeVariants, badgeSizes } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/badge.css';\n\nexport { Badge, badgeVariants, badgeSizes };\nexport type { BadgeProps } from 'haze-ui';\n",
254
+ "type": "registry:ui"
255
+ }
256
+ ]
257
+ },
258
+ {
259
+ "name": "banner",
260
+ "type": "registry:ui",
261
+ "title": "Banner",
262
+ "description": "Dismissible top banner with info/success/warning/danger variants.",
263
+ "author": "wmzy <https://github.com/wmzy>",
264
+ "docs": "Dismissible top banner with info/success/warning/danger variants.\n\nExports: `Banner`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/banner\n```\n\nThe wrapper lands at `components/ui/haze/banner.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/banner.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",
265
+ "categories": [
266
+ "feedback"
267
+ ],
268
+ "dependencies": [
269
+ "haze-ui"
270
+ ],
271
+ "files": [
272
+ {
273
+ "path": "components/haze/banner.tsx",
274
+ "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 { Banner } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/banner.css';\n\nexport { Banner };\nexport type { BannerProps } from 'haze-ui';\n",
275
+ "type": "registry:ui"
276
+ }
277
+ ]
278
+ },
279
+ {
280
+ "name": "base",
281
+ "type": "registry:base",
282
+ "title": "Haze UI base (tokens + every component wrapper)",
283
+ "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
+ "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 — 116 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
+ "categories": [
287
+ "theme",
288
+ "setup"
289
+ ],
290
+ "dependencies": [
291
+ "haze-ui"
292
+ ],
293
+ "registryDependencies": [
294
+ "wmzy/haze-ui/accordion",
295
+ "wmzy/haze-ui/affix",
296
+ "wmzy/haze-ui/alert",
297
+ "wmzy/haze-ui/anchor",
298
+ "wmzy/haze-ui/app-shell",
299
+ "wmzy/haze-ui/approval-card",
300
+ "wmzy/haze-ui/aspect-ratio",
301
+ "wmzy/haze-ui/async-section",
302
+ "wmzy/haze-ui/avatar",
303
+ "wmzy/haze-ui/avatar-group",
304
+ "wmzy/haze-ui/back-to-top",
305
+ "wmzy/haze-ui/badge",
306
+ "wmzy/haze-ui/banner",
307
+ "wmzy/haze-ui/bottom-sheet",
308
+ "wmzy/haze-ui/breadcrumb",
309
+ "wmzy/haze-ui/button",
310
+ "wmzy/haze-ui/calendar",
311
+ "wmzy/haze-ui/card",
312
+ "wmzy/haze-ui/carousel",
313
+ "wmzy/haze-ui/cascader",
314
+ "wmzy/haze-ui/chart",
315
+ "wmzy/haze-ui/chat-container",
316
+ "wmzy/haze-ui/chat-input",
317
+ "wmzy/haze-ui/chat-message",
318
+ "wmzy/haze-ui/checkbox",
319
+ "wmzy/haze-ui/chip",
320
+ "wmzy/haze-ui/code-block",
321
+ "wmzy/haze-ui/collapsible",
322
+ "wmzy/haze-ui/color-picker",
323
+ "wmzy/haze-ui/combobox",
324
+ "wmzy/haze-ui/command",
325
+ "wmzy/haze-ui/confirm-dialog",
326
+ "wmzy/haze-ui/container",
327
+ "wmzy/haze-ui/context-menu",
328
+ "wmzy/haze-ui/conversation-list",
329
+ "wmzy/haze-ui/data-table",
330
+ "wmzy/haze-ui/date-range-picker",
331
+ "wmzy/haze-ui/datepicker",
332
+ "wmzy/haze-ui/descriptions",
333
+ "wmzy/haze-ui/dialog",
334
+ "wmzy/haze-ui/diff-viewer",
335
+ "wmzy/haze-ui/disclosure",
336
+ "wmzy/haze-ui/divider",
337
+ "wmzy/haze-ui/drawer",
338
+ "wmzy/haze-ui/dropdown-menu",
339
+ "wmzy/haze-ui/empty",
340
+ "wmzy/haze-ui/file-input",
341
+ "wmzy/haze-ui/file-preview",
342
+ "wmzy/haze-ui/flex",
343
+ "wmzy/haze-ui/float-button",
344
+ "wmzy/haze-ui/form",
345
+ "wmzy/haze-ui/grid",
346
+ "wmzy/haze-ui/hover-card",
347
+ "wmzy/haze-ui/icon",
348
+ "wmzy/haze-ui/image",
349
+ "wmzy/haze-ui/inline-completion",
350
+ "wmzy/haze-ui/inline-edit",
351
+ "wmzy/haze-ui/input",
352
+ "wmzy/haze-ui/json-view",
353
+ "wmzy/haze-ui/kbd",
354
+ "wmzy/haze-ui/list",
355
+ "wmzy/haze-ui/log-viewer",
356
+ "wmzy/haze-ui/markdown-renderer",
357
+ "wmzy/haze-ui/masonry",
358
+ "wmzy/haze-ui/mentions",
359
+ "wmzy/haze-ui/menu",
360
+ "wmzy/haze-ui/model-picker",
361
+ "wmzy/haze-ui/navigation-bar",
362
+ "wmzy/haze-ui/number-input",
363
+ "wmzy/haze-ui/otp-input",
364
+ "wmzy/haze-ui/pagination",
365
+ "wmzy/haze-ui/password-input",
366
+ "wmzy/haze-ui/popover",
367
+ "wmzy/haze-ui/progress",
368
+ "wmzy/haze-ui/prompt-input",
369
+ "wmzy/haze-ui/radio",
370
+ "wmzy/haze-ui/rating",
371
+ "wmzy/haze-ui/resizable",
372
+ "wmzy/haze-ui/scroll-area",
373
+ "wmzy/haze-ui/segmented",
374
+ "wmzy/haze-ui/select",
375
+ "wmzy/haze-ui/sidebar",
376
+ "wmzy/haze-ui/signature",
377
+ "wmzy/haze-ui/skeleton",
378
+ "wmzy/haze-ui/slider",
379
+ "wmzy/haze-ui/sources",
380
+ "wmzy/haze-ui/spinner",
381
+ "wmzy/haze-ui/stat",
382
+ "wmzy/haze-ui/step-timeline",
383
+ "wmzy/haze-ui/stepper",
384
+ "wmzy/haze-ui/streaming-text",
385
+ "wmzy/haze-ui/swipe-action",
386
+ "wmzy/haze-ui/switch",
387
+ "wmzy/haze-ui/table",
388
+ "wmzy/haze-ui/tabs",
389
+ "wmzy/haze-ui/tag",
390
+ "wmzy/haze-ui/tag-group",
391
+ "wmzy/haze-ui/tag-input",
392
+ "wmzy/haze-ui/textarea",
393
+ "wmzy/haze-ui/thinking-indicator",
394
+ "wmzy/haze-ui/time-picker",
395
+ "wmzy/haze-ui/timeline",
396
+ "wmzy/haze-ui/toast",
397
+ "wmzy/haze-ui/toggle",
398
+ "wmzy/haze-ui/token-counter",
399
+ "wmzy/haze-ui/tokens",
400
+ "wmzy/haze-ui/tool-call-card",
401
+ "wmzy/haze-ui/toolbar",
402
+ "wmzy/haze-ui/tooltip",
403
+ "wmzy/haze-ui/tour",
404
+ "wmzy/haze-ui/transfer",
405
+ "wmzy/haze-ui/tree",
406
+ "wmzy/haze-ui/typography",
407
+ "wmzy/haze-ui/upload",
408
+ "wmzy/haze-ui/virtual-list",
409
+ "wmzy/haze-ui/watermark"
410
+ ],
411
+ "files": [
412
+ {
413
+ "path": "components/haze/base.tsx",
414
+ "content": "// haze-ui registry base — generated by scripts/generate-registry.mjs.\n//\n// Meta item: 'npx shadcn add wmzy/haze-ui/base' installs the entire\n// design system — this theme-activation wrapper plus, through\n// registryDependencies, a thin wrapper for every styled component under\n// components/ui/haze/. The implementation keeps coming from the haze-ui\n// npm package; edit the wrappers to customize.\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).\n\nimport { darkTheme, lightTheme, spacing, typography } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\n\nexport { darkTheme, lightTheme, spacing, typography };\n",
415
+ "type": "registry:base"
416
+ }
417
+ ]
418
+ },
419
+ {
420
+ "name": "bottom-sheet",
421
+ "type": "registry:ui",
422
+ "title": "BottomSheet",
423
+ "description": "Mobile-style sheet sliding from the bottom screen edge.",
424
+ "author": "wmzy <https://github.com/wmzy>",
425
+ "docs": "Mobile-style sheet sliding from the bottom screen edge.\n\nExports: `BottomSheet`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/bottom-sheet\n```\n\nThe wrapper lands at `components/ui/haze/bottom-sheet.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/bottom-sheet.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",
426
+ "categories": [
427
+ "overlay"
428
+ ],
429
+ "dependencies": [
430
+ "haze-ui"
431
+ ],
432
+ "files": [
433
+ {
434
+ "path": "components/haze/bottom-sheet.tsx",
435
+ "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 { BottomSheet } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/bottom-sheet.css';\n\nexport { BottomSheet };\nexport type { BottomSheetProps, BottomSheetHandle } from 'haze-ui';\n",
436
+ "type": "registry:ui"
437
+ }
438
+ ]
439
+ },
440
+ {
441
+ "name": "breadcrumb",
442
+ "type": "registry:ui",
443
+ "title": "Breadcrumb / BreadcrumbItem",
444
+ "description": "Breadcrumb trail nav with configurable separator.",
445
+ "author": "wmzy <https://github.com/wmzy>",
446
+ "docs": "Breadcrumb trail nav with configurable separator.\n\nExports: `Breadcrumb`, `BreadcrumbItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/breadcrumb\n```\n\nThe wrapper lands at `components/ui/haze/breadcrumb.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/breadcrumb.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",
447
+ "categories": [
448
+ "navigation"
449
+ ],
450
+ "dependencies": [
451
+ "haze-ui"
452
+ ],
453
+ "files": [
454
+ {
455
+ "path": "components/haze/breadcrumb.tsx",
456
+ "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 { Breadcrumb, BreadcrumbItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/breadcrumb.css';\n\nexport { Breadcrumb, BreadcrumbItem };\nexport type { BreadcrumbProps, BreadcrumbItemProps } from 'haze-ui';\n",
457
+ "type": "registry:ui"
458
+ }
459
+ ]
460
+ },
461
+ {
462
+ "name": "button",
463
+ "type": "registry:ui",
464
+ "title": "Button / ButtonLink / buttonVariants / buttonSizes",
465
+ "description": "Action button with `variant`/`size`/`square` options over a native `<button>`; `ButtonLink` renders the same styles as an anchor.",
466
+ "author": "wmzy <https://github.com/wmzy>",
467
+ "docs": "Action button with `variant`/`size`/`square` options over a native `<button>`; `ButtonLink` renders the same styles as an anchor.\n\nExports: `Button`, `ButtonLink`, `buttonVariants`, `buttonSizes`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/button\n```\n\nThe wrapper lands at `components/ui/haze/button.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/button.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",
468
+ "categories": [
469
+ "general"
470
+ ],
471
+ "dependencies": [
472
+ "haze-ui"
473
+ ],
474
+ "files": [
475
+ {
476
+ "path": "components/haze/button.tsx",
477
+ "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",
478
+ "type": "registry:ui"
479
+ }
480
+ ]
481
+ },
482
+ {
483
+ "name": "calendar",
484
+ "type": "registry:ui",
485
+ "title": "Calendar",
486
+ "description": "Month-grid date surface with `min`/`max`, locale and `weekStartsOn`.",
487
+ "author": "wmzy <https://github.com/wmzy>",
488
+ "docs": "Month-grid date surface with `min`/`max`, locale and `weekStartsOn`.\n\nExports: `Calendar`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/calendar\n```\n\nThe wrapper lands at `components/ui/haze/calendar.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/calendar.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",
489
+ "categories": [
490
+ "data-display"
491
+ ],
492
+ "dependencies": [
493
+ "haze-ui"
494
+ ],
495
+ "files": [
496
+ {
497
+ "path": "components/haze/calendar.tsx",
498
+ "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 { Calendar } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/calendar.css';\n\nexport { Calendar };\nexport type { CalendarProps, CalendarPickerMode } from 'haze-ui';\n",
499
+ "type": "registry:ui"
500
+ }
501
+ ]
502
+ },
503
+ {
504
+ "name": "card",
505
+ "type": "registry:ui",
506
+ "title": "Card",
507
+ "description": "Content card with `elevated`/`outlined`/`filled` variants.",
508
+ "author": "wmzy <https://github.com/wmzy>",
509
+ "docs": "Content card with `elevated`/`outlined`/`filled` variants.\n\nExports: `Card`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/card\n```\n\nThe wrapper lands at `components/ui/haze/card.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/card.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",
510
+ "categories": [
511
+ "data-display"
512
+ ],
513
+ "dependencies": [
514
+ "haze-ui"
515
+ ],
516
+ "files": [
517
+ {
518
+ "path": "components/haze/card.tsx",
519
+ "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 { Card } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/card.css';\n\nexport { Card };\nexport type { CardProps } from 'haze-ui';\n",
520
+ "type": "registry:ui"
521
+ }
522
+ ]
523
+ },
524
+ {
525
+ "name": "carousel",
526
+ "type": "registry:ui",
527
+ "title": "Carousel / CarouselSlide",
528
+ "description": "Slideshow with controllable active index and autoplay.",
529
+ "author": "wmzy <https://github.com/wmzy>",
530
+ "docs": "Slideshow with controllable active index and autoplay.\n\nExports: `Carousel`, `CarouselSlide`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/carousel\n```\n\nThe wrapper lands at `components/ui/haze/carousel.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/carousel.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",
531
+ "categories": [
532
+ "data-display"
533
+ ],
534
+ "dependencies": [
535
+ "haze-ui"
536
+ ],
537
+ "files": [
538
+ {
539
+ "path": "components/haze/carousel.tsx",
540
+ "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 { Carousel, CarouselSlide } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/carousel.css';\n\nexport { Carousel, CarouselSlide };\nexport type { CarouselProps, CarouselSlideProps } from 'haze-ui';\n",
541
+ "type": "registry:ui"
542
+ }
543
+ ]
544
+ },
545
+ {
546
+ "name": "cascader",
547
+ "type": "registry:ui",
548
+ "title": "Cascader",
549
+ "description": "Multi-level drill-down selector committing a path of option values; `onSearch` filters remotely, `loading` shows the pending state.",
550
+ "author": "wmzy <https://github.com/wmzy>",
551
+ "docs": "Multi-level drill-down selector committing a path of option values; `onSearch` filters remotely, `loading` shows the pending state.\n\nExports: `Cascader`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/cascader\n```\n\nThe wrapper lands at `components/ui/haze/cascader.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/cascader.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",
552
+ "categories": [
553
+ "form"
554
+ ],
555
+ "dependencies": [
556
+ "haze-ui"
557
+ ],
558
+ "files": [
559
+ {
560
+ "path": "components/haze/cascader.tsx",
561
+ "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 { Cascader } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/cascader.css';\n\nexport { Cascader };\nexport type { CascaderProps, CascaderOption } from 'haze-ui';\n",
562
+ "type": "registry:ui"
563
+ }
564
+ ]
565
+ },
566
+ {
567
+ "name": "chart",
568
+ "type": "registry:ui",
569
+ "title": "Chart",
570
+ "description": "Line/area/bar/pie charts over recharts with colors and axes on haze tokens; series cycle the semantic palette, `renderTooltip` customizes the tooltip.",
571
+ "author": "wmzy <https://github.com/wmzy>",
572
+ "docs": "Line/area/bar/pie charts over recharts with colors and axes on haze tokens; series cycle the semantic palette, `renderTooltip` customizes the tooltip.\n\nExports: `Chart`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/chart\n```\n\nThe wrapper lands at `components/ui/haze/chart.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/chart.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",
573
+ "categories": [
574
+ "data-display"
575
+ ],
576
+ "dependencies": [
577
+ "haze-ui",
578
+ "recharts"
579
+ ],
580
+ "files": [
581
+ {
582
+ "path": "components/haze/chart.tsx",
583
+ "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 { Chart } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/chart.css';\n\nexport { Chart };\nexport type { ChartProps, ChartSeries, ChartType, ChartTooltipPayload, ChartTooltipEntry } from 'haze-ui';\n",
584
+ "type": "registry:ui"
585
+ }
586
+ ]
587
+ },
588
+ {
589
+ "name": "chat-container",
590
+ "type": "registry:ui",
591
+ "title": "ChatContainer",
592
+ "description": "Chat transcript scroll container with stick-to-bottom auto-scroll.",
593
+ "author": "wmzy <https://github.com/wmzy>",
594
+ "docs": "Chat transcript scroll container with stick-to-bottom auto-scroll.\n\nExports: `ChatContainer`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/chat-container\n```\n\nThe wrapper lands at `components/ui/haze/chat-container.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/chat-container.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",
595
+ "categories": [
596
+ "agent"
597
+ ],
598
+ "dependencies": [
599
+ "haze-ui"
600
+ ],
601
+ "files": [
602
+ {
603
+ "path": "components/haze/chat-container.tsx",
604
+ "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 { ChatContainer } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/chat-container.css';\n\nexport { ChatContainer };\nexport type { ChatContainerProps } from 'haze-ui';\n",
605
+ "type": "registry:ui"
606
+ }
607
+ ]
608
+ },
609
+ {
610
+ "name": "chat-input",
611
+ "type": "registry:ui",
612
+ "title": "ChatInput",
613
+ "description": "Message composer with a controllable value and onSend callback.",
614
+ "author": "wmzy <https://github.com/wmzy>",
615
+ "docs": "Message composer with a controllable value and onSend callback.\n\nExports: `ChatInput`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/chat-input\n```\n\nThe wrapper lands at `components/ui/haze/chat-input.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/chat-input.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",
616
+ "categories": [
617
+ "agent"
618
+ ],
619
+ "dependencies": [
620
+ "haze-ui"
621
+ ],
622
+ "files": [
623
+ {
624
+ "path": "components/haze/chat-input.tsx",
625
+ "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 { ChatInput } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/chat-input.css';\n\nexport { ChatInput };\nexport type { ChatInputProps } from 'haze-ui';\n",
626
+ "type": "registry:ui"
627
+ }
628
+ ]
629
+ },
6
630
  {
7
631
  "name": "chat-message",
8
- "type": "registry:component",
632
+ "type": "registry:ui",
9
633
  "title": "ChatMessage",
10
634
  "description": "Chat bubble with role-based layout (user / assistant / system), avatar, name, timestamp and delivery status.",
635
+ "author": "wmzy <https://github.com/wmzy>",
636
+ "docs": "Chat bubble with role-based layout (user / assistant / system), avatar, name, timestamp and delivery status.\n\nExports: `ChatMessage`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/chat-message\n```\n\nThe wrapper lands at `components/ui/haze/chat-message.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/chat-message.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",
637
+ "categories": [
638
+ "agent"
639
+ ],
640
+ "dependencies": [
641
+ "haze-ui"
642
+ ],
643
+ "files": [
644
+ {
645
+ "path": "components/haze/chat-message.tsx",
646
+ "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 { ChatMessage } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/chat-message.css';\n\nexport { ChatMessage };\nexport type { ChatMessageProps, ChatMessageRole } from 'haze-ui';\n",
647
+ "type": "registry:ui"
648
+ }
649
+ ]
650
+ },
651
+ {
652
+ "name": "checkbox",
653
+ "type": "registry:ui",
654
+ "title": "Checkbox / CheckboxCore",
655
+ "description": "Checkbox input with controllable `checked` state; `CheckboxCore` is the headless form-bindable core.",
656
+ "author": "wmzy <https://github.com/wmzy>",
657
+ "docs": "Checkbox input with controllable `checked` state; `CheckboxCore` is the headless form-bindable core.\n\nExports: `Checkbox`, `CheckboxCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/checkbox\n```\n\nThe wrapper lands at `components/ui/haze/checkbox.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/checkbox.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",
658
+ "categories": [
659
+ "form"
660
+ ],
661
+ "dependencies": [
662
+ "haze-ui"
663
+ ],
664
+ "files": [
665
+ {
666
+ "path": "components/haze/checkbox.tsx",
667
+ "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 { Checkbox, CheckboxCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/checkbox.css';\n\nexport { Checkbox, CheckboxCore };\nexport type { CheckboxProps, CheckboxCoreProps } from 'haze-ui';\n",
668
+ "type": "registry:ui"
669
+ }
670
+ ]
671
+ },
672
+ {
673
+ "name": "chip",
674
+ "type": "registry:ui",
675
+ "title": "Chip",
676
+ "description": "Rounded status chip with optional icon and close button.",
677
+ "author": "wmzy <https://github.com/wmzy>",
678
+ "docs": "Rounded status chip with optional icon and close button.\n\nExports: `Chip`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/chip\n```\n\nThe wrapper lands at `components/ui/haze/chip.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/chip.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",
679
+ "categories": [
680
+ "data-display"
681
+ ],
682
+ "dependencies": [
683
+ "haze-ui"
684
+ ],
685
+ "files": [
686
+ {
687
+ "path": "components/haze/chip.tsx",
688
+ "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 { Chip } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/chip.css';\n\nexport { Chip };\nexport type { ChipProps } from 'haze-ui';\n",
689
+ "type": "registry:ui"
690
+ }
691
+ ]
692
+ },
693
+ {
694
+ "name": "code-block",
695
+ "type": "registry:ui",
696
+ "title": "CodeBlock",
697
+ "description": "Monospace code container with a language badge; `highlight` plugs in an async syntax highlighter.",
698
+ "author": "wmzy <https://github.com/wmzy>",
699
+ "docs": "Monospace code container with a language badge; `highlight` plugs in an async syntax highlighter.\n\nExports: `CodeBlock`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/code-block\n```\n\nThe wrapper lands at `components/ui/haze/code-block.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/code-block.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",
700
+ "categories": [
701
+ "data-display"
702
+ ],
703
+ "dependencies": [
704
+ "haze-ui"
705
+ ],
706
+ "files": [
707
+ {
708
+ "path": "components/haze/code-block.tsx",
709
+ "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 { CodeBlock } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/code-block.css';\n\nexport { CodeBlock };\nexport type { CodeBlockProps, Highlighter } from 'haze-ui';\n",
710
+ "type": "registry:ui"
711
+ }
712
+ ]
713
+ },
714
+ {
715
+ "name": "collapsible",
716
+ "type": "registry:ui",
717
+ "title": "Collapsible / CollapsibleTrigger / CollapsibleContent",
718
+ "description": "Unstyled open/close container with controllable `open` state (`CollapsibleTrigger`, `CollapsibleContent`).",
719
+ "author": "wmzy <https://github.com/wmzy>",
720
+ "docs": "Unstyled open/close container with controllable `open` state (`CollapsibleTrigger`, `CollapsibleContent`).\n\nExports: `Collapsible`, `CollapsibleTrigger`, `CollapsibleContent`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/collapsible\n```\n\nThe wrapper lands at `components/ui/haze/collapsible.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/collapsible.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",
721
+ "categories": [
722
+ "utilities"
723
+ ],
724
+ "dependencies": [
725
+ "haze-ui"
726
+ ],
727
+ "files": [
728
+ {
729
+ "path": "components/haze/collapsible.tsx",
730
+ "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 { Collapsible, CollapsibleTrigger, CollapsibleContent } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/collapsible.css';\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\nexport type { CollapsibleProps, CollapsibleTriggerProps, CollapsibleContentProps, CollapsibleClassNames } from 'haze-ui';\n",
731
+ "type": "registry:ui"
732
+ }
733
+ ]
734
+ },
735
+ {
736
+ "name": "color-picker",
737
+ "type": "registry:ui",
738
+ "title": "ColorPicker / ColorPickerCore",
739
+ "description": "Color selector with controllable value and preset swatches.",
740
+ "author": "wmzy <https://github.com/wmzy>",
741
+ "docs": "Color selector with controllable value and preset swatches.\n\nExports: `ColorPicker`, `ColorPickerCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/color-picker\n```\n\nThe wrapper lands at `components/ui/haze/color-picker.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/color-picker.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",
742
+ "categories": [
743
+ "form"
744
+ ],
745
+ "dependencies": [
746
+ "haze-ui"
747
+ ],
748
+ "files": [
749
+ {
750
+ "path": "components/haze/color-picker.tsx",
751
+ "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 { ColorPicker, ColorPickerCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/color-picker.css';\n\nexport { ColorPicker, ColorPickerCore };\nexport type { ColorPickerProps, ColorPickerCoreProps } from 'haze-ui';\n",
752
+ "type": "registry:ui"
753
+ }
754
+ ]
755
+ },
756
+ {
757
+ "name": "combobox",
758
+ "type": "registry:ui",
759
+ "title": "Combobox / ComboboxOption / ComboboxGroup",
760
+ "description": "Autocomplete text input with filterable option list; `onSearch` defers filtering to the host.",
761
+ "author": "wmzy <https://github.com/wmzy>",
762
+ "docs": "Autocomplete text input with filterable option list; `onSearch` defers filtering to the host.\n\nExports: `Combobox`, `ComboboxOption`, `ComboboxGroup`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/combobox\n```\n\nThe wrapper lands at `components/ui/haze/combobox.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/combobox.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",
763
+ "categories": [
764
+ "form"
765
+ ],
766
+ "dependencies": [
767
+ "haze-ui"
768
+ ],
769
+ "files": [
770
+ {
771
+ "path": "components/haze/combobox.tsx",
772
+ "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';\n\nexport { Combobox, ComboboxOption, ComboboxGroup };\nexport type { ComboboxProps, ComboboxOptionProps, ComboboxGroupProps, ComboboxOptionData, ComboboxVirtualizedConfig } from 'haze-ui';\n",
773
+ "type": "registry:ui"
774
+ }
775
+ ]
776
+ },
777
+ {
778
+ "name": "command",
779
+ "type": "registry:ui",
780
+ "title": "Command / CommandInput / CommandList / CommandItem / CommandGroup / CommandDialog",
781
+ "description": "Command palette surface: `CommandInput` plus filterable `CommandItem`s in a `CommandList`.",
782
+ "author": "wmzy <https://github.com/wmzy>",
783
+ "docs": "Command palette surface: `CommandInput` plus filterable `CommandItem`s in a `CommandList`.\n\nExports: `Command`, `CommandInput`, `CommandList`, `CommandItem`, `CommandGroup`, `CommandDialog`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/command\n```\n\nThe wrapper lands at `components/ui/haze/command.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/command.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",
784
+ "categories": [
785
+ "navigation"
786
+ ],
787
+ "dependencies": [
788
+ "haze-ui"
789
+ ],
790
+ "files": [
791
+ {
792
+ "path": "components/haze/command.tsx",
793
+ "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 { Command, CommandInput, CommandList, CommandItem, CommandGroup, CommandDialog } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/command.css';\n\nexport { Command, CommandInput, CommandList, CommandItem, CommandGroup, CommandDialog };\nexport type { CommandProps, CommandInputProps, CommandListProps, CommandItemProps, CommandGroupProps, CommandDialogProps } from 'haze-ui';\n",
794
+ "type": "registry:ui"
795
+ }
796
+ ]
797
+ },
798
+ {
799
+ "name": "confirm-dialog",
800
+ "type": "registry:ui",
801
+ "title": "ConfirmDialog",
802
+ "description": "Ready-made confirm dialog with confirm/cancel actions and a danger variant.",
803
+ "author": "wmzy <https://github.com/wmzy>",
804
+ "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",
805
+ "categories": [
806
+ "overlay"
807
+ ],
808
+ "dependencies": [
809
+ "haze-ui"
810
+ ],
811
+ "files": [
812
+ {
813
+ "path": "components/haze/confirm-dialog.tsx",
814
+ "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",
815
+ "type": "registry:ui"
816
+ }
817
+ ]
818
+ },
819
+ {
820
+ "name": "container",
821
+ "type": "registry:ui",
822
+ "title": "Container",
823
+ "description": "Centered max-width page container with horizontal padding.",
824
+ "author": "wmzy <https://github.com/wmzy>",
825
+ "docs": "Centered max-width page container with horizontal padding.\n\nExports: `Container`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/container\n```\n\nThe wrapper lands at `components/ui/haze/container.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/container.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",
826
+ "categories": [
827
+ "layout"
828
+ ],
829
+ "dependencies": [
830
+ "haze-ui"
831
+ ],
832
+ "files": [
833
+ {
834
+ "path": "components/haze/container.tsx",
835
+ "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 { Container } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/container.css';\n\nexport { Container };\nexport type { ContainerProps } from 'haze-ui';\n",
836
+ "type": "registry:ui"
837
+ }
838
+ ]
839
+ },
840
+ {
841
+ "name": "context-menu",
842
+ "type": "registry:ui",
843
+ "title": "ContextMenu / ContextMenuTrigger / ContextMenuContent / ContextMenuItem / ContextMenuSeparator",
844
+ "description": "Floating menu opened on right-click.",
845
+ "author": "wmzy <https://github.com/wmzy>",
846
+ "docs": "Floating menu opened on right-click.\n\nExports: `ContextMenu`, `ContextMenuTrigger`, `ContextMenuContent`, `ContextMenuItem`, `ContextMenuSeparator`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/context-menu\n```\n\nThe wrapper lands at `components/ui/haze/context-menu.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/context-menu.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",
847
+ "categories": [
848
+ "overlay"
849
+ ],
850
+ "dependencies": [
851
+ "haze-ui"
852
+ ],
853
+ "files": [
854
+ {
855
+ "path": "components/haze/context-menu.tsx",
856
+ "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 { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuSeparator } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/context-menu.css';\n\nexport { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuSeparator };\nexport type { ContextMenuProps, ContextMenuTriggerProps, ContextMenuContentProps, ContextMenuItemProps, ContextMenuSeparatorProps } from 'haze-ui';\n",
857
+ "type": "registry:ui"
858
+ }
859
+ ]
860
+ },
861
+ {
862
+ "name": "conversation-list",
863
+ "type": "registry:ui",
864
+ "title": "ConversationList / ConversationItem",
865
+ "description": "Selectable list of conversations for a chat-history sidebar.",
866
+ "author": "wmzy <https://github.com/wmzy>",
867
+ "docs": "Selectable list of conversations for a chat-history sidebar.\n\nExports: `ConversationList`, `ConversationItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/conversation-list\n```\n\nThe wrapper lands at `components/ui/haze/conversation-list.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/conversation-list.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",
868
+ "categories": [
869
+ "agent"
870
+ ],
871
+ "dependencies": [
872
+ "haze-ui"
873
+ ],
874
+ "files": [
875
+ {
876
+ "path": "components/haze/conversation-list.tsx",
877
+ "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 { ConversationList, ConversationItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/conversation-list.css';\n\nexport { ConversationList, ConversationItem };\nexport type { ConversationListProps, ConversationItemProps } from 'haze-ui';\n",
878
+ "type": "registry:ui"
879
+ }
880
+ ]
881
+ },
882
+ {
883
+ "name": "data-table",
884
+ "type": "registry:ui",
885
+ "title": "DataTable / dataTableSum / dataTableAvg / dataTableCount / dataTableToCsv",
886
+ "description": "Feature table on @tanstack/react-table with sorting, (manual) pagination, row selection and `dataTableToCsv` export.",
887
+ "author": "wmzy <https://github.com/wmzy>",
888
+ "docs": "Feature table on @tanstack/react-table with sorting, (manual) pagination, row selection and `dataTableToCsv` export.\n\nExports: `DataTable`, `dataTableSum`, `dataTableAvg`, `dataTableCount`, `dataTableToCsv`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/data-table\n```\n\nThe wrapper lands at `components/ui/haze/data-table.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/data-table.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",
889
+ "categories": [
890
+ "data-display"
891
+ ],
892
+ "dependencies": [
893
+ "haze-ui",
894
+ "@tanstack/react-table"
895
+ ],
896
+ "files": [
897
+ {
898
+ "path": "components/haze/data-table.tsx",
899
+ "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 { DataTable, dataTableSum, dataTableAvg, dataTableCount, dataTableToCsv } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/data-table.css';\n\nexport { DataTable, dataTableSum, dataTableAvg, dataTableCount, dataTableToCsv };\nexport type { DataTableProps, DataTableColumnDef, DataTableColumnMeta, DataTableVirtualized, DataTableSummary, DataTableSummaryCell, DataTableCellEditorProps, DataTableCsvOptions } from 'haze-ui';\n",
900
+ "type": "registry:ui"
901
+ }
902
+ ]
903
+ },
904
+ {
905
+ "name": "date-range-picker",
906
+ "type": "registry:ui",
907
+ "title": "DateRangePicker / DateRangePickerCore",
908
+ "description": "Picks a start/end date range, with built-in or custom `presets` (Today, Last 7 days, …).",
909
+ "author": "wmzy <https://github.com/wmzy>",
910
+ "docs": "Picks a start/end date range, with built-in or custom `presets` (Today, Last 7 days, …).\n\nExports: `DateRangePicker`, `DateRangePickerCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/date-range-picker\n```\n\nThe wrapper lands at `components/ui/haze/date-range-picker.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/date-range-picker.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",
911
+ "categories": [
912
+ "form"
913
+ ],
914
+ "dependencies": [
915
+ "haze-ui"
916
+ ],
917
+ "files": [
918
+ {
919
+ "path": "components/haze/date-range-picker.tsx",
920
+ "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 { DateRangePicker, DateRangePickerCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/date-range-picker.css';\n\nexport { DateRangePicker, DateRangePickerCore };\nexport type { DateRangePickerProps, DateRangePickerCoreProps, DateRangePickerPreset, DateRangePickerPresets } from 'haze-ui';\n",
921
+ "type": "registry:ui"
922
+ }
923
+ ]
924
+ },
925
+ {
926
+ "name": "datepicker",
927
+ "type": "registry:ui",
928
+ "title": "Datepicker / DatepickerCore",
929
+ "description": "Date input with popup calendar (`YYYY-MM-DD` value); `showTime` adds a time-of-day field. `DatepickerCore` is the headless core.",
930
+ "author": "wmzy <https://github.com/wmzy>",
931
+ "docs": "Date input with popup calendar (`YYYY-MM-DD` value); `showTime` adds a time-of-day field. `DatepickerCore` is the headless core.\n\nExports: `Datepicker`, `DatepickerCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/datepicker\n```\n\nThe wrapper lands at `components/ui/haze/datepicker.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/datepicker.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",
932
+ "categories": [
933
+ "form"
934
+ ],
935
+ "dependencies": [
936
+ "haze-ui"
937
+ ],
938
+ "files": [
939
+ {
940
+ "path": "components/haze/datepicker.tsx",
941
+ "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 { Datepicker, DatepickerCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/datepicker.css';\n\nexport { Datepicker, DatepickerCore };\nexport type { DatepickerProps, DatepickerCoreProps, DatepickerPreset } from 'haze-ui';\n",
942
+ "type": "registry:ui"
943
+ }
944
+ ]
945
+ },
946
+ {
947
+ "name": "descriptions",
948
+ "type": "registry:ui",
949
+ "title": "Descriptions",
950
+ "description": "Definition-list description groups (`dl`/`dt`/`dd` over CSS Grid): `items` pairs, `columns`, `bordered`, `size`.",
951
+ "author": "wmzy <https://github.com/wmzy>",
952
+ "docs": "Definition-list description groups (`dl`/`dt`/`dd` over CSS Grid): `items` pairs, `columns`, `bordered`, `size`.\n\nExports: `Descriptions`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/descriptions\n```\n\nThe wrapper lands at `components/ui/haze/descriptions.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/descriptions.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",
953
+ "categories": [
954
+ "data-display"
955
+ ],
956
+ "dependencies": [
957
+ "haze-ui"
958
+ ],
959
+ "files": [
960
+ {
961
+ "path": "components/haze/descriptions.tsx",
962
+ "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 { Descriptions } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/descriptions.css';\n\nexport { Descriptions };\nexport type { DescriptionsProps, DescriptionsItem } from 'haze-ui';\n",
963
+ "type": "registry:ui"
964
+ }
965
+ ]
966
+ },
967
+ {
968
+ "name": "dialog",
969
+ "type": "registry:ui",
970
+ "title": "Dialog",
971
+ "description": "Modal dialog with focus trapping.",
972
+ "author": "wmzy <https://github.com/wmzy>",
973
+ "docs": "Modal dialog with focus trapping.\n\nExports: `Dialog`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/dialog\n```\n\nThe wrapper lands at `components/ui/haze/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/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",
974
+ "categories": [
975
+ "overlay"
976
+ ],
977
+ "dependencies": [
978
+ "haze-ui"
979
+ ],
980
+ "files": [
981
+ {
982
+ "path": "components/haze/dialog.tsx",
983
+ "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 { Dialog } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/dialog.css';\n\nexport { Dialog };\nexport type { DialogProps, DialogHandle, DialogClassNames } from 'haze-ui';\n",
984
+ "type": "registry:ui"
985
+ }
986
+ ]
987
+ },
988
+ {
989
+ "name": "diff-viewer",
990
+ "type": "registry:ui",
991
+ "title": "DiffViewer",
992
+ "description": "Renders the line diff between old and new content for agent-proposed edits.",
993
+ "author": "wmzy <https://github.com/wmzy>",
994
+ "docs": "Renders the line diff between old and new content for agent-proposed edits.\n\nExports: `DiffViewer`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/diff-viewer\n```\n\nThe wrapper lands at `components/ui/haze/diff-viewer.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/diff-viewer.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",
995
+ "categories": [
996
+ "agent"
997
+ ],
998
+ "dependencies": [
999
+ "haze-ui"
1000
+ ],
1001
+ "files": [
1002
+ {
1003
+ "path": "components/haze/diff-viewer.tsx",
1004
+ "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 { DiffViewer } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/diff-viewer.css';\n\nexport { DiffViewer };\nexport type { DiffViewerProps, DiffLine } from 'haze-ui';\n",
1005
+ "type": "registry:ui"
1006
+ }
1007
+ ]
1008
+ },
1009
+ {
1010
+ "name": "disclosure",
1011
+ "type": "registry:ui",
1012
+ "title": "Disclosure",
1013
+ "description": "Summary-header disclosure panel (details/summary semantics).",
1014
+ "author": "wmzy <https://github.com/wmzy>",
1015
+ "docs": "Summary-header disclosure panel (details/summary semantics).\n\nExports: `Disclosure`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/disclosure\n```\n\nThe wrapper lands at `components/ui/haze/disclosure.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/disclosure.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",
1016
+ "categories": [
1017
+ "utilities"
1018
+ ],
1019
+ "dependencies": [
1020
+ "haze-ui"
1021
+ ],
1022
+ "files": [
1023
+ {
1024
+ "path": "components/haze/disclosure.tsx",
1025
+ "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 { Disclosure } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/disclosure.css';\n\nexport { Disclosure };\nexport type { DisclosureProps } from 'haze-ui';\n",
1026
+ "type": "registry:ui"
1027
+ }
1028
+ ]
1029
+ },
1030
+ {
1031
+ "name": "divider",
1032
+ "type": "registry:ui",
1033
+ "title": "Divider",
1034
+ "description": "Content separator line, horizontal or vertical.",
1035
+ "author": "wmzy <https://github.com/wmzy>",
1036
+ "docs": "Content separator line, horizontal or vertical.\n\nExports: `Divider`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/divider\n```\n\nThe wrapper lands at `components/ui/haze/divider.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/divider.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",
1037
+ "categories": [
1038
+ "general"
1039
+ ],
1040
+ "dependencies": [
1041
+ "haze-ui"
1042
+ ],
1043
+ "files": [
1044
+ {
1045
+ "path": "components/haze/divider.tsx",
1046
+ "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 { Divider } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/divider.css';\n\nexport { Divider };\nexport type { DividerProps } from 'haze-ui';\n",
1047
+ "type": "registry:ui"
1048
+ }
1049
+ ]
1050
+ },
1051
+ {
1052
+ "name": "drawer",
1053
+ "type": "registry:ui",
1054
+ "title": "Drawer",
1055
+ "description": "Edge-anchored sliding panel (`placement` left/right).",
1056
+ "author": "wmzy <https://github.com/wmzy>",
1057
+ "docs": "Edge-anchored sliding panel (`placement` left/right).\n\nExports: `Drawer`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/drawer\n```\n\nThe wrapper lands at `components/ui/haze/drawer.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/drawer.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",
1058
+ "categories": [
1059
+ "overlay"
1060
+ ],
1061
+ "dependencies": [
1062
+ "haze-ui"
1063
+ ],
1064
+ "files": [
1065
+ {
1066
+ "path": "components/haze/drawer.tsx",
1067
+ "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",
1068
+ "type": "registry:ui"
1069
+ }
1070
+ ]
1071
+ },
1072
+ {
1073
+ "name": "dropdown-menu",
1074
+ "type": "registry:ui",
1075
+ "title": "DropdownMenu / DropdownMenuTrigger / DropdownMenuContent / DropdownMenuItem / DropdownMenuSeparator / DropdownMenuSub / DropdownMenuSubTrigger / DropdownMenuSubContent",
1076
+ "description": "Click-triggered floating menu with `DropdownMenuTrigger`/`Content`/`Item`/`Separator` parts.",
1077
+ "author": "wmzy <https://github.com/wmzy>",
1078
+ "docs": "Click-triggered floating menu with `DropdownMenuTrigger`/`Content`/`Item`/`Separator` parts.\n\nExports: `DropdownMenu`, `DropdownMenuTrigger`, `DropdownMenuContent`, `DropdownMenuItem`, `DropdownMenuSeparator`, `DropdownMenuSub`, `DropdownMenuSubTrigger`, `DropdownMenuSubContent`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/dropdown-menu\n```\n\nThe wrapper lands at `components/ui/haze/dropdown-menu.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/dropdown-menu.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",
1079
+ "categories": [
1080
+ "overlay"
1081
+ ],
1082
+ "dependencies": [
1083
+ "haze-ui"
1084
+ ],
1085
+ "files": [
1086
+ {
1087
+ "path": "components/haze/dropdown-menu.tsx",
1088
+ "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 { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/dropdown-menu.css';\n\nexport { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent };\nexport type { DropdownMenuProps, DropdownMenuTriggerProps, DropdownMenuContentProps, DropdownMenuItemProps, DropdownMenuSeparatorProps, DropdownMenuSubProps, DropdownMenuSubTriggerProps, DropdownMenuSubContentProps, DropdownMenuHandle } from 'haze-ui';\n",
1089
+ "type": "registry:ui"
1090
+ }
1091
+ ]
1092
+ },
1093
+ {
1094
+ "name": "empty",
1095
+ "type": "registry:ui",
1096
+ "title": "Empty",
1097
+ "description": "Empty-state placeholder with image and description.",
1098
+ "author": "wmzy <https://github.com/wmzy>",
1099
+ "docs": "Empty-state placeholder with image and description.\n\nExports: `Empty`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/empty\n```\n\nThe wrapper lands at `components/ui/haze/empty.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/empty.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",
1100
+ "categories": [
1101
+ "feedback"
1102
+ ],
1103
+ "dependencies": [
1104
+ "haze-ui"
1105
+ ],
1106
+ "files": [
1107
+ {
1108
+ "path": "components/haze/empty.tsx",
1109
+ "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 { Empty } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/empty.css';\n\nexport { Empty };\nexport type { EmptyProps } from 'haze-ui';\n",
1110
+ "type": "registry:ui"
1111
+ }
1112
+ ]
1113
+ },
1114
+ {
1115
+ "name": "file-input",
1116
+ "type": "registry:ui",
1117
+ "title": "FileInput",
1118
+ "description": "Trigger element that opens a hidden native file input.",
1119
+ "author": "wmzy <https://github.com/wmzy>",
1120
+ "docs": "Trigger element that opens a hidden native file input.\n\nExports: `FileInput`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/file-input\n```\n\nThe wrapper lands at `components/ui/haze/file-input.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/file-input.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",
1121
+ "categories": [
1122
+ "form"
1123
+ ],
1124
+ "dependencies": [
1125
+ "haze-ui"
1126
+ ],
1127
+ "files": [
1128
+ {
1129
+ "path": "components/haze/file-input.tsx",
1130
+ "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 { FileInput } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/file-input.css';\n\nexport { FileInput };\nexport type { FileInputProps } from 'haze-ui';\n",
1131
+ "type": "registry:ui"
1132
+ }
1133
+ ]
1134
+ },
1135
+ {
1136
+ "name": "file-preview",
1137
+ "type": "registry:ui",
1138
+ "title": "FilePreview",
1139
+ "description": "Attachment card with image thumbnail or extension badge, size formatting, upload progress and remove/retry actions.",
1140
+ "author": "wmzy <https://github.com/wmzy>",
1141
+ "docs": "Attachment card with image thumbnail or extension badge, size formatting, upload progress and remove/retry actions.\n\nExports: `FilePreview`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/file-preview\n```\n\nThe wrapper lands at `components/ui/haze/file-preview.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/file-preview.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",
1142
+ "categories": [
1143
+ "agent"
1144
+ ],
1145
+ "dependencies": [
1146
+ "haze-ui"
1147
+ ],
1148
+ "files": [
1149
+ {
1150
+ "path": "components/haze/file-preview.tsx",
1151
+ "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 { FilePreview } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/file-preview.css';\n\nexport { FilePreview };\nexport type { FilePreviewProps, FilePreviewFile, FilePreviewStatus } from 'haze-ui';\n",
1152
+ "type": "registry:ui"
1153
+ }
1154
+ ]
1155
+ },
1156
+ {
1157
+ "name": "flex",
1158
+ "type": "registry:ui",
1159
+ "title": "Flex",
1160
+ "description": "Flexbox layout primitive mapping props to flex CSS.",
1161
+ "author": "wmzy <https://github.com/wmzy>",
1162
+ "docs": "Flexbox layout primitive mapping props to flex CSS.\n\nExports: `Flex`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/flex\n```\n\nThe wrapper lands at `components/ui/haze/flex.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/flex.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",
1163
+ "categories": [
1164
+ "layout"
1165
+ ],
1166
+ "dependencies": [
1167
+ "haze-ui"
1168
+ ],
1169
+ "files": [
1170
+ {
1171
+ "path": "components/haze/flex.tsx",
1172
+ "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 { Flex } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/flex.css';\n\nexport { Flex };\nexport type { FlexProps } from 'haze-ui';\n",
1173
+ "type": "registry:ui"
1174
+ }
1175
+ ]
1176
+ },
1177
+ {
1178
+ "name": "float-button",
1179
+ "type": "registry:ui",
1180
+ "title": "FloatButton / FloatButtonGroup",
1181
+ "description": "Floating action button over the page (`FloatButtonGroup` for expandable stacks) with built-in back-to-top and help glyphs.",
1182
+ "author": "wmzy <https://github.com/wmzy>",
1183
+ "docs": "Floating action button over the page (`FloatButtonGroup` for expandable stacks) with built-in back-to-top and help glyphs.\n\nExports: `FloatButton`, `FloatButtonGroup`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/float-button\n```\n\nThe wrapper lands at `components/ui/haze/float-button.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/float-button.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",
1184
+ "categories": [
1185
+ "navigation"
1186
+ ],
1187
+ "dependencies": [
1188
+ "haze-ui"
1189
+ ],
1190
+ "files": [
1191
+ {
1192
+ "path": "components/haze/float-button.tsx",
1193
+ "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 { FloatButton, FloatButtonGroup } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/float-button.css';\n\nexport { FloatButton, FloatButtonGroup };\nexport type { FloatButtonProps, FloatButtonGroupProps } from 'haze-ui';\n",
1194
+ "type": "registry:ui"
1195
+ }
1196
+ ]
1197
+ },
1198
+ {
1199
+ "name": "form",
1200
+ "type": "registry:ui",
1201
+ "title": "FormItem / FormList / FormProvider / useFormContext / useFieldArray / useFieldArrayItem / useWatch / trigger / setFocus / setServerErrors / setValue / getValue / getValues / reset / hasStandardProps / standardSchemaFormValidator / standardSchemaResolver / zodResolver",
1202
+ "description": "react-f0rm field wrapper adding label, error and aria wiring to controlled cores.",
1203
+ "author": "wmzy <https://github.com/wmzy>",
1204
+ "docs": "react-f0rm field wrapper adding label, error and aria wiring to controlled cores.\n\nExports: `FormItem`, `FormList`, `FormProvider`, `useFormContext`, `useFieldArray`, `useFieldArrayItem`, `useWatch`, `trigger`, `setFocus`, `setServerErrors`, `setValue`, `getValue`, `getValues`, `reset`, `hasStandardProps`, `standardSchemaFormValidator`, `standardSchemaResolver`, `zodResolver`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/form\n```\n\nThe wrapper lands at `components/ui/haze/form.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/form.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",
1205
+ "categories": [
1206
+ "form"
1207
+ ],
1208
+ "dependencies": [
1209
+ "haze-ui"
1210
+ ],
1211
+ "files": [
1212
+ {
1213
+ "path": "components/haze/form.tsx",
1214
+ "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 { FormItem, FormList, FormProvider, useFormContext, useFieldArray, useFieldArrayItem, useWatch, trigger, setFocus, setServerErrors, setValue, getValue, getValues, reset, hasStandardProps, standardSchemaFormValidator, standardSchemaResolver, zodResolver } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/form.css';\n\nexport { FormItem, FormList, FormProvider, useFormContext, useFieldArray, useFieldArrayItem, useWatch, trigger, setFocus, setServerErrors, setValue, getValue, getValues, reset, hasStandardProps, standardSchemaFormValidator, standardSchemaResolver, zodResolver };\nexport type { FieldValidator, FormItemAsProps, FormItemBinding, FormItemOwnProps, FormItemProps, FormItemRawElement, FormItemRawElementBinding, FormInstance, FormListProps, FormListBinding, FormListField, PathValueOf, StandardSchemaV1 } from 'haze-ui';\n",
1215
+ "type": "registry:ui"
1216
+ }
1217
+ ]
1218
+ },
1219
+ {
1220
+ "name": "grid",
1221
+ "type": "registry:ui",
1222
+ "title": "Grid / GridItem",
1223
+ "description": "CSS grid layout primitive with `GridItem` children.",
1224
+ "author": "wmzy <https://github.com/wmzy>",
1225
+ "docs": "CSS grid layout primitive with `GridItem` children.\n\nExports: `Grid`, `GridItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/grid\n```\n\nThe wrapper lands at `components/ui/haze/grid.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/grid.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",
1226
+ "categories": [
1227
+ "layout"
1228
+ ],
1229
+ "dependencies": [
1230
+ "haze-ui"
1231
+ ],
1232
+ "files": [
1233
+ {
1234
+ "path": "components/haze/grid.tsx",
1235
+ "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 { Grid, GridItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/grid.css';\n\nexport { Grid, GridItem };\nexport type { GridProps, GridItemProps } from 'haze-ui';\n",
1236
+ "type": "registry:ui"
1237
+ }
1238
+ ]
1239
+ },
1240
+ {
1241
+ "name": "hover-card",
1242
+ "type": "registry:ui",
1243
+ "title": "HoverCard",
1244
+ "description": "Non-modal floating preview (avatar card, link summary) anchored to its trigger.",
1245
+ "author": "wmzy <https://github.com/wmzy>",
1246
+ "docs": "Non-modal floating preview (avatar card, link summary) anchored to its trigger.\n\nExports: `HoverCard`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/hover-card\n```\n\nThe wrapper lands at `components/ui/haze/hover-card.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/hover-card.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",
1247
+ "categories": [
1248
+ "overlay"
1249
+ ],
1250
+ "dependencies": [
1251
+ "haze-ui"
1252
+ ],
1253
+ "files": [
1254
+ {
1255
+ "path": "components/haze/hover-card.tsx",
1256
+ "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 { HoverCard } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/hover-card.css';\n\nexport { HoverCard };\nexport type { HoverCardProps } from 'haze-ui';\n",
1257
+ "type": "registry:ui"
1258
+ }
1259
+ ]
1260
+ },
1261
+ {
1262
+ "name": "icon",
1263
+ "type": "registry:ui",
1264
+ "title": "Icon",
1265
+ "description": "Inline SVG icon wrapper with token-sized `sm`/`md`/`lg` boxes.",
1266
+ "author": "wmzy <https://github.com/wmzy>",
1267
+ "docs": "Inline SVG icon wrapper with token-sized `sm`/`md`/`lg` boxes.\n\nExports: `Icon`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/icon\n```\n\nThe wrapper lands at `components/ui/haze/icon.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/icon.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",
1268
+ "categories": [
1269
+ "general"
1270
+ ],
1271
+ "dependencies": [
1272
+ "haze-ui"
1273
+ ],
1274
+ "files": [
1275
+ {
1276
+ "path": "components/haze/icon.tsx",
1277
+ "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 { Icon } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/icon.css';\n\nexport { Icon };\nexport type { IconProps } from 'haze-ui';\n",
1278
+ "type": "registry:ui"
1279
+ }
1280
+ ]
1281
+ },
1282
+ {
1283
+ "name": "image",
1284
+ "type": "registry:ui",
1285
+ "title": "Image",
1286
+ "description": "Image with fallback and `aspectRatio`/`objectFit` control.",
1287
+ "author": "wmzy <https://github.com/wmzy>",
1288
+ "docs": "Image with fallback and `aspectRatio`/`objectFit` control.\n\nExports: `Image`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/image\n```\n\nThe wrapper lands at `components/ui/haze/image.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/image.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",
1289
+ "categories": [
1290
+ "data-display"
1291
+ ],
1292
+ "dependencies": [
1293
+ "haze-ui"
1294
+ ],
1295
+ "files": [
1296
+ {
1297
+ "path": "components/haze/image.tsx",
1298
+ "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 { Image } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/image.css';\n\nexport { Image };\nexport type { ImageProps, ImagePreviewConfig } from 'haze-ui';\n",
1299
+ "type": "registry:ui"
1300
+ }
1301
+ ]
1302
+ },
1303
+ {
1304
+ "name": "inline-completion",
1305
+ "type": "registry:ui",
1306
+ "title": "InlineCompletion",
1307
+ "description": "Ghost-text completion overlay for input/textarea: Tab accepts the suggestion, Escape dismisses it.",
1308
+ "author": "wmzy <https://github.com/wmzy>",
1309
+ "docs": "Ghost-text completion overlay for input/textarea: Tab accepts the suggestion, Escape dismisses it.\n\nExports: `InlineCompletion`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/inline-completion\n```\n\nThe wrapper lands at `components/ui/haze/inline-completion.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/inline-completion.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",
1310
+ "categories": [
1311
+ "agent"
1312
+ ],
1313
+ "dependencies": [
1314
+ "haze-ui"
1315
+ ],
1316
+ "files": [
1317
+ {
1318
+ "path": "components/haze/inline-completion.tsx",
1319
+ "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 { InlineCompletion } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/inline-completion.css';\n\nexport { InlineCompletion };\nexport type { InlineCompletionProps } from 'haze-ui';\n",
1320
+ "type": "registry:ui"
1321
+ }
1322
+ ]
1323
+ },
1324
+ {
1325
+ "name": "inline-edit",
1326
+ "type": "registry:ui",
1327
+ "title": "InlineEdit",
1328
+ "description": "Click-to-edit text value in place.",
1329
+ "author": "wmzy <https://github.com/wmzy>",
1330
+ "docs": "Click-to-edit text value in place.\n\nExports: `InlineEdit`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/inline-edit\n```\n\nThe wrapper lands at `components/ui/haze/inline-edit.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/inline-edit.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",
1331
+ "categories": [
1332
+ "form"
1333
+ ],
1334
+ "dependencies": [
1335
+ "haze-ui"
1336
+ ],
1337
+ "files": [
1338
+ {
1339
+ "path": "components/haze/inline-edit.tsx",
1340
+ "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 { InlineEdit } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/inline-edit.css';\n\nexport { InlineEdit };\nexport type { InlineEditProps } from 'haze-ui';\n",
1341
+ "type": "registry:ui"
1342
+ }
1343
+ ]
1344
+ },
1345
+ {
1346
+ "name": "input",
1347
+ "type": "registry:ui",
1348
+ "title": "Input / InputCore",
1349
+ "description": "Text input with adornments; `InputCore` is the headless form-bindable core.",
1350
+ "author": "wmzy <https://github.com/wmzy>",
1351
+ "docs": "Text input with adornments; `InputCore` is the headless form-bindable core.\n\nExports: `Input`, `InputCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/input\n```\n\nThe wrapper lands at `components/ui/haze/input.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/input.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",
1352
+ "categories": [
1353
+ "form"
1354
+ ],
1355
+ "dependencies": [
1356
+ "haze-ui"
1357
+ ],
1358
+ "files": [
1359
+ {
1360
+ "path": "components/haze/input.tsx",
1361
+ "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 { Input, InputCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/input.css';\n\nexport { Input, InputCore };\nexport type { InputProps, InputCoreProps } from 'haze-ui';\n",
1362
+ "type": "registry:ui"
1363
+ }
1364
+ ]
1365
+ },
1366
+ {
1367
+ "name": "json-view",
1368
+ "type": "registry:ui",
1369
+ "title": "JsonView",
1370
+ "description": "Collapsible JSON tree viewer with per-kind leaf colors, depth-based default expansion, truncation hints and an optional copy button.",
1371
+ "author": "wmzy <https://github.com/wmzy>",
1372
+ "docs": "Collapsible JSON tree viewer with per-kind leaf colors, depth-based default expansion, truncation hints and an optional copy button.\n\nExports: `JsonView`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/json-view\n```\n\nThe wrapper lands at `components/ui/haze/json-view.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/json-view.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",
1373
+ "categories": [
1374
+ "data-display"
1375
+ ],
1376
+ "dependencies": [
1377
+ "haze-ui"
1378
+ ],
1379
+ "files": [
1380
+ {
1381
+ "path": "components/haze/json-view.tsx",
1382
+ "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 { JsonView } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/json-view.css';\n\nexport { JsonView };\nexport type { JsonViewProps, MoreLabelFn } from 'haze-ui';\n",
1383
+ "type": "registry:ui"
1384
+ }
1385
+ ]
1386
+ },
1387
+ {
1388
+ "name": "kbd",
1389
+ "type": "registry:ui",
1390
+ "title": "Kbd",
1391
+ "description": "Keyboard key-cap styling for shortcuts.",
1392
+ "author": "wmzy <https://github.com/wmzy>",
1393
+ "docs": "Keyboard key-cap styling for shortcuts.\n\nExports: `Kbd`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/kbd\n```\n\nThe wrapper lands at `components/ui/haze/kbd.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/kbd.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",
1394
+ "categories": [
1395
+ "data-display"
1396
+ ],
1397
+ "dependencies": [
1398
+ "haze-ui"
1399
+ ],
1400
+ "files": [
1401
+ {
1402
+ "path": "components/haze/kbd.tsx",
1403
+ "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 { Kbd } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/kbd.css';\n\nexport { Kbd };\nexport type { KbdProps } from 'haze-ui';\n",
1404
+ "type": "registry:ui"
1405
+ }
1406
+ ]
1407
+ },
1408
+ {
1409
+ "name": "list",
1410
+ "type": "registry:ui",
1411
+ "title": "List / ListItem",
1412
+ "description": "Styled `ul`/`ol`/plain list with `ListItem` children.",
1413
+ "author": "wmzy <https://github.com/wmzy>",
1414
+ "docs": "Styled `ul`/`ol`/plain list with `ListItem` children.\n\nExports: `List`, `ListItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/list\n```\n\nThe wrapper lands at `components/ui/haze/list.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/list.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",
1415
+ "categories": [
1416
+ "data-display"
1417
+ ],
1418
+ "dependencies": [
1419
+ "haze-ui"
1420
+ ],
1421
+ "files": [
1422
+ {
1423
+ "path": "components/haze/list.tsx",
1424
+ "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 { List, ListItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/list.css';\n\nexport { List, ListItem };\nexport type { ListProps, ListItemProps } from 'haze-ui';\n",
1425
+ "type": "registry:ui"
1426
+ }
1427
+ ]
1428
+ },
1429
+ {
1430
+ "name": "log-viewer",
1431
+ "type": "registry:ui",
1432
+ "title": "LogViewer",
1433
+ "description": "Scrollable log stream with severity-level filtering.",
1434
+ "author": "wmzy <https://github.com/wmzy>",
1435
+ "docs": "Scrollable log stream with severity-level filtering.\n\nExports: `LogViewer`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/log-viewer\n```\n\nThe wrapper lands at `components/ui/haze/log-viewer.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/log-viewer.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",
1436
+ "categories": [
1437
+ "agent"
1438
+ ],
1439
+ "dependencies": [
1440
+ "haze-ui"
1441
+ ],
1442
+ "files": [
1443
+ {
1444
+ "path": "components/haze/log-viewer.tsx",
1445
+ "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 { LogViewer } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/log-viewer.css';\n\nexport { LogViewer };\nexport type { LogViewerProps, LogEntry, LogLevel } from 'haze-ui';\n",
1446
+ "type": "registry:ui"
1447
+ }
1448
+ ]
1449
+ },
1450
+ {
1451
+ "name": "markdown-renderer",
1452
+ "type": "registry:ui",
1453
+ "title": "MarkdownRenderer",
1454
+ "description": "Renders markdown content (including code blocks) for assistant responses.",
1455
+ "author": "wmzy <https://github.com/wmzy>",
1456
+ "docs": "Renders markdown content (including code blocks) for assistant responses.\n\nExports: `MarkdownRenderer`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/markdown-renderer\n```\n\nThe wrapper lands at `components/ui/haze/markdown-renderer.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/markdown-renderer.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",
1457
+ "categories": [
1458
+ "agent"
1459
+ ],
1460
+ "dependencies": [
1461
+ "haze-ui"
1462
+ ],
1463
+ "files": [
1464
+ {
1465
+ "path": "components/haze/markdown-renderer.tsx",
1466
+ "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 { MarkdownRenderer } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/markdown-renderer.css';\n\nexport { MarkdownRenderer };\nexport type { MarkdownRendererProps } from 'haze-ui';\n",
1467
+ "type": "registry:ui"
1468
+ }
1469
+ ]
1470
+ },
1471
+ {
1472
+ "name": "masonry",
1473
+ "type": "registry:ui",
1474
+ "title": "Masonry",
1475
+ "description": "Masonry (pinboard) layout: JS greedy column distribution balances children across `columns`.",
1476
+ "author": "wmzy <https://github.com/wmzy>",
1477
+ "docs": "Masonry (pinboard) layout: JS greedy column distribution balances children across `columns`.\n\nExports: `Masonry`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/masonry\n```\n\nThe wrapper lands at `components/ui/haze/masonry.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/masonry.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",
1478
+ "categories": [
1479
+ "layout"
1480
+ ],
1481
+ "dependencies": [
1482
+ "haze-ui"
1483
+ ],
1484
+ "files": [
1485
+ {
1486
+ "path": "components/haze/masonry.tsx",
1487
+ "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 { Masonry } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/masonry.css';\n\nexport { Masonry };\nexport type { MasonryProps } from 'haze-ui';\n",
1488
+ "type": "registry:ui"
1489
+ }
1490
+ ]
1491
+ },
1492
+ {
1493
+ "name": "mentions",
1494
+ "type": "registry:ui",
1495
+ "title": "Mentions / MentionsCore",
1496
+ "description": "Mentions input with trigger-character suggestions picked from an option list (`MentionsCore` is the headless core).",
1497
+ "author": "wmzy <https://github.com/wmzy>",
1498
+ "docs": "Mentions input with trigger-character suggestions picked from an option list (`MentionsCore` is the headless core).\n\nExports: `Mentions`, `MentionsCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/mentions\n```\n\nThe wrapper lands at `components/ui/haze/mentions.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/mentions.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",
1499
+ "categories": [
1500
+ "form"
1501
+ ],
1502
+ "dependencies": [
1503
+ "haze-ui"
1504
+ ],
1505
+ "files": [
1506
+ {
1507
+ "path": "components/haze/mentions.tsx",
1508
+ "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 { Mentions, MentionsCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/mentions.css';\n\nexport { Mentions, MentionsCore };\nexport type { MentionsProps, MentionsCoreProps, MentionsOption } from 'haze-ui';\n",
1509
+ "type": "registry:ui"
1510
+ }
1511
+ ]
1512
+ },
1513
+ {
1514
+ "name": "menu",
1515
+ "type": "registry:ui",
1516
+ "title": "Menu / MenuItem / MenuDivider / MenuSub / MenuSubTrigger / MenuSubContent",
1517
+ "description": "Lightweight toggle menu with a trigger and statically positioned panel (`MenuItem`, `MenuDivider`).",
1518
+ "author": "wmzy <https://github.com/wmzy>",
1519
+ "docs": "Lightweight toggle menu with a trigger and statically positioned panel (`MenuItem`, `MenuDivider`).\n\nExports: `Menu`, `MenuItem`, `MenuDivider`, `MenuSub`, `MenuSubTrigger`, `MenuSubContent`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/menu\n```\n\nThe wrapper lands at `components/ui/haze/menu.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/menu.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",
1520
+ "categories": [
1521
+ "overlay"
1522
+ ],
1523
+ "dependencies": [
1524
+ "haze-ui"
1525
+ ],
1526
+ "files": [
1527
+ {
1528
+ "path": "components/haze/menu.tsx",
1529
+ "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 { Menu, MenuItem, MenuDivider, MenuSub, MenuSubTrigger, MenuSubContent } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/menu.css';\n\nexport { Menu, MenuItem, MenuDivider, MenuSub, MenuSubTrigger, MenuSubContent };\nexport type { MenuProps, MenuItemProps, MenuSubProps, MenuSubTriggerProps, MenuSubContentProps } from 'haze-ui';\n",
1530
+ "type": "registry:ui"
1531
+ }
1532
+ ]
1533
+ },
1534
+ {
1535
+ "name": "model-picker",
1536
+ "type": "registry:ui",
1537
+ "title": "ModelPicker",
1538
+ "description": "Controllable dropdown for selecting the active model.",
1539
+ "author": "wmzy <https://github.com/wmzy>",
1540
+ "docs": "Controllable dropdown for selecting the active model.\n\nExports: `ModelPicker`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/model-picker\n```\n\nThe wrapper lands at `components/ui/haze/model-picker.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/model-picker.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",
1541
+ "categories": [
1542
+ "agent"
1543
+ ],
1544
+ "dependencies": [
1545
+ "haze-ui"
1546
+ ],
1547
+ "files": [
1548
+ {
1549
+ "path": "components/haze/model-picker.tsx",
1550
+ "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 { ModelPicker } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/model-picker.css';\n\nexport { ModelPicker };\nexport type { ModelPickerProps, ModelOption } from 'haze-ui';\n",
1551
+ "type": "registry:ui"
1552
+ }
1553
+ ]
1554
+ },
1555
+ {
1556
+ "name": "navigation-bar",
1557
+ "type": "registry:ui",
1558
+ "title": "NavigationBar / NavLink",
1559
+ "description": "Top nav bar with `brand` and `end` slots plus `NavLink` items.",
1560
+ "author": "wmzy <https://github.com/wmzy>",
1561
+ "docs": "Top nav bar with `brand` and `end` slots plus `NavLink` items.\n\nExports: `NavigationBar`, `NavLink`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/navigation-bar\n```\n\nThe wrapper lands at `components/ui/haze/navigation-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/navigation-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",
1562
+ "categories": [
1563
+ "navigation"
1564
+ ],
1565
+ "dependencies": [
1566
+ "haze-ui"
1567
+ ],
1568
+ "files": [
1569
+ {
1570
+ "path": "components/haze/navigation-bar.tsx",
1571
+ "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 { NavigationBar, NavLink } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/navigation-bar.css';\n\nexport { NavigationBar, NavLink };\nexport type { NavigationBarProps, NavLinkProps } from 'haze-ui';\n",
1572
+ "type": "registry:ui"
1573
+ }
1574
+ ]
1575
+ },
1576
+ {
1577
+ "name": "number-input",
1578
+ "type": "registry:ui",
1579
+ "title": "NumberInput / NumberInputCore",
1580
+ "description": "Numeric input with `min`/`max`/`step`.",
1581
+ "author": "wmzy <https://github.com/wmzy>",
1582
+ "docs": "Numeric input with `min`/`max`/`step`.\n\nExports: `NumberInput`, `NumberInputCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/number-input\n```\n\nThe wrapper lands at `components/ui/haze/number-input.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/number-input.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",
1583
+ "categories": [
1584
+ "form"
1585
+ ],
1586
+ "dependencies": [
1587
+ "haze-ui"
1588
+ ],
1589
+ "files": [
1590
+ {
1591
+ "path": "components/haze/number-input.tsx",
1592
+ "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 { NumberInput, NumberInputCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/number-input.css';\n\nexport { NumberInput, NumberInputCore };\nexport type { NumberInputProps, NumberInputCoreProps } from 'haze-ui';\n",
1593
+ "type": "registry:ui"
1594
+ }
1595
+ ]
1596
+ },
1597
+ {
1598
+ "name": "otp-input",
1599
+ "type": "registry:ui",
1600
+ "title": "OTPInput / OTPInputCore",
1601
+ "description": "One-time-password input of `length` segmented character boxes.",
1602
+ "author": "wmzy <https://github.com/wmzy>",
1603
+ "docs": "One-time-password input of `length` segmented character boxes.\n\nExports: `OTPInput`, `OTPInputCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/otp-input\n```\n\nThe wrapper lands at `components/ui/haze/otp-input.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/otp-input.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",
1604
+ "categories": [
1605
+ "form"
1606
+ ],
1607
+ "dependencies": [
1608
+ "haze-ui"
1609
+ ],
1610
+ "files": [
1611
+ {
1612
+ "path": "components/haze/otp-input.tsx",
1613
+ "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 { OTPInput, OTPInputCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/otp-input.css';\n\nexport { OTPInput, OTPInputCore };\nexport type { OTPInputProps, OTPInputCoreProps } from 'haze-ui';\n",
1614
+ "type": "registry:ui"
1615
+ }
1616
+ ]
1617
+ },
1618
+ {
1619
+ "name": "pagination",
1620
+ "type": "registry:ui",
1621
+ "title": "Pagination",
1622
+ "description": "Page navigation with controllable `page` and ellipsis windows.",
1623
+ "author": "wmzy <https://github.com/wmzy>",
1624
+ "docs": "Page navigation with controllable `page` and ellipsis windows.\n\nExports: `Pagination`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/pagination\n```\n\nThe wrapper lands at `components/ui/haze/pagination.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/pagination.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",
1625
+ "categories": [
1626
+ "navigation"
1627
+ ],
1628
+ "dependencies": [
1629
+ "haze-ui"
1630
+ ],
1631
+ "files": [
1632
+ {
1633
+ "path": "components/haze/pagination.tsx",
1634
+ "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 { Pagination } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/pagination.css';\n\nexport { Pagination };\nexport type { PaginationProps } from 'haze-ui';\n",
1635
+ "type": "registry:ui"
1636
+ }
1637
+ ]
1638
+ },
1639
+ {
1640
+ "name": "password-input",
1641
+ "type": "registry:ui",
1642
+ "title": "PasswordInput / PasswordInputCore",
1643
+ "description": "Text input with a visibility reveal toggle.",
1644
+ "author": "wmzy <https://github.com/wmzy>",
1645
+ "docs": "Text input with a visibility reveal toggle.\n\nExports: `PasswordInput`, `PasswordInputCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/password-input\n```\n\nThe wrapper lands at `components/ui/haze/password-input.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/password-input.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",
1646
+ "categories": [
1647
+ "form"
1648
+ ],
1649
+ "dependencies": [
1650
+ "haze-ui"
1651
+ ],
1652
+ "files": [
1653
+ {
1654
+ "path": "components/haze/password-input.tsx",
1655
+ "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",
1656
+ "type": "registry:ui"
1657
+ }
1658
+ ]
1659
+ },
1660
+ {
1661
+ "name": "popover",
1662
+ "type": "registry:ui",
1663
+ "title": "Popover",
1664
+ "description": "Floating popover anchored to a trigger element.",
1665
+ "author": "wmzy <https://github.com/wmzy>",
1666
+ "docs": "Floating popover anchored to a trigger element.\n\nExports: `Popover`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/popover\n```\n\nThe wrapper lands at `components/ui/haze/popover.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/popover.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",
1667
+ "categories": [
1668
+ "overlay"
1669
+ ],
1670
+ "dependencies": [
1671
+ "haze-ui"
1672
+ ],
1673
+ "files": [
1674
+ {
1675
+ "path": "components/haze/popover.tsx",
1676
+ "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 { Popover } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/popover.css';\n\nexport { Popover };\nexport type { PopoverProps, PopoverHandle, PopoverClassNames } from 'haze-ui';\n",
1677
+ "type": "registry:ui"
1678
+ }
1679
+ ]
1680
+ },
1681
+ {
1682
+ "name": "progress",
1683
+ "type": "registry:ui",
1684
+ "title": "Progress",
1685
+ "description": "Progress bar or circle driven by a percentage `value`.",
1686
+ "author": "wmzy <https://github.com/wmzy>",
1687
+ "docs": "Progress bar or circle driven by a percentage `value`.\n\nExports: `Progress`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/progress\n```\n\nThe wrapper lands at `components/ui/haze/progress.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/progress.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",
1688
+ "categories": [
1689
+ "data-display"
1690
+ ],
1691
+ "dependencies": [
1692
+ "haze-ui"
1693
+ ],
1694
+ "files": [
1695
+ {
1696
+ "path": "components/haze/progress.tsx",
1697
+ "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 { Progress } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/progress.css';\n\nexport { Progress };\nexport type { ProgressProps } from 'haze-ui';\n",
1698
+ "type": "registry:ui"
1699
+ }
1700
+ ]
1701
+ },
1702
+ {
1703
+ "name": "prompt-input",
1704
+ "type": "registry:ui",
1705
+ "title": "PromptInput",
1706
+ "description": "AI prompt composer: auto-growing textarea with inline context tags, `@`-trigger suggestions and a configurable submit key.",
1707
+ "author": "wmzy <https://github.com/wmzy>",
1708
+ "docs": "AI prompt composer: auto-growing textarea with inline context tags, `@`-trigger suggestions and a configurable submit key.\n\nExports: `PromptInput`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/prompt-input\n```\n\nThe wrapper lands at `components/ui/haze/prompt-input.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/prompt-input.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",
1709
+ "categories": [
1710
+ "agent"
1711
+ ],
1712
+ "dependencies": [
1713
+ "haze-ui"
1714
+ ],
1715
+ "files": [
1716
+ {
1717
+ "path": "components/haze/prompt-input.tsx",
1718
+ "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 { PromptInput } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/prompt-input.css';\n\nexport { PromptInput };\nexport type { PromptInputProps } from 'haze-ui';\n",
1719
+ "type": "registry:ui"
1720
+ }
1721
+ ]
1722
+ },
1723
+ {
1724
+ "name": "radio",
1725
+ "type": "registry:ui",
1726
+ "title": "Radio / RadioGroup / RadioGroupCore",
1727
+ "description": "Radio option and group with controllable selection (`Radio`, `RadioGroup`, headless `RadioGroupCore`).",
1728
+ "author": "wmzy <https://github.com/wmzy>",
1729
+ "docs": "Radio option and group with controllable selection (`Radio`, `RadioGroup`, headless `RadioGroupCore`).\n\nExports: `Radio`, `RadioGroup`, `RadioGroupCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/radio\n```\n\nThe wrapper lands at `components/ui/haze/radio.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/radio.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",
1730
+ "categories": [
1731
+ "form"
1732
+ ],
1733
+ "dependencies": [
1734
+ "haze-ui"
1735
+ ],
1736
+ "files": [
1737
+ {
1738
+ "path": "components/haze/radio.tsx",
1739
+ "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 { Radio, RadioGroup, RadioGroupCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/radio.css';\n\nexport { Radio, RadioGroup, RadioGroupCore };\nexport type { RadioProps, RadioGroupProps, RadioGroupCoreProps } from 'haze-ui';\n",
1740
+ "type": "registry:ui"
1741
+ }
1742
+ ]
1743
+ },
1744
+ {
1745
+ "name": "rating",
1746
+ "type": "registry:ui",
1747
+ "title": "Rating / RatingCore",
1748
+ "description": "Star rating with half-step support.",
1749
+ "author": "wmzy <https://github.com/wmzy>",
1750
+ "docs": "Star rating with half-step support.\n\nExports: `Rating`, `RatingCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/rating\n```\n\nThe wrapper lands at `components/ui/haze/rating.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/rating.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",
1751
+ "categories": [
1752
+ "form"
1753
+ ],
1754
+ "dependencies": [
1755
+ "haze-ui"
1756
+ ],
1757
+ "files": [
1758
+ {
1759
+ "path": "components/haze/rating.tsx",
1760
+ "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 { Rating, RatingCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/rating.css';\n\nexport { Rating, RatingCore };\nexport type { RatingProps, RatingCoreProps } from 'haze-ui';\n",
1761
+ "type": "registry:ui"
1762
+ }
1763
+ ]
1764
+ },
1765
+ {
1766
+ "name": "resizable",
1767
+ "type": "registry:ui",
1768
+ "title": "ResizableGroup / ResizablePanel / ResizableHandle / SplitterGroup / SplitterPanel / SplitterHandle",
1769
+ "description": "Split-pane group with draggable dividers, horizontal or vertical; also exported as `SplitterGroup`/`SplitterPanel`/`SplitterHandle` (AntD-style naming).",
1770
+ "author": "wmzy <https://github.com/wmzy>",
1771
+ "docs": "Split-pane group with draggable dividers, horizontal or vertical; also exported as `SplitterGroup`/`SplitterPanel`/`SplitterHandle` (AntD-style naming).\n\nExports: `ResizableGroup`, `ResizablePanel`, `ResizableHandle`, `SplitterGroup`, `SplitterPanel`, `SplitterHandle`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/resizable\n```\n\nThe wrapper lands at `components/ui/haze/resizable.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/resizable.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",
1772
+ "categories": [
1773
+ "layout"
1774
+ ],
1775
+ "dependencies": [
1776
+ "haze-ui"
1777
+ ],
1778
+ "files": [
1779
+ {
1780
+ "path": "components/haze/resizable.tsx",
1781
+ "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 { ResizableGroup, ResizablePanel, ResizableHandle, SplitterGroup, SplitterPanel, SplitterHandle } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/resizable.css';\n\nexport { ResizableGroup, ResizablePanel, ResizableHandle, SplitterGroup, SplitterPanel, SplitterHandle };\nexport type { ResizableGroupProps, ResizablePanelProps, ResizableHandleProps, SplitterGroupProps, SplitterPanelProps, SplitterHandleProps } from 'haze-ui';\n",
1782
+ "type": "registry:ui"
1783
+ }
1784
+ ]
1785
+ },
1786
+ {
1787
+ "name": "scroll-area",
1788
+ "type": "registry:ui",
1789
+ "title": "ScrollArea",
1790
+ "description": "Scrollable region with custom-styled thin scrollbars and `maxHeight`.",
1791
+ "author": "wmzy <https://github.com/wmzy>",
1792
+ "docs": "Scrollable region with custom-styled thin scrollbars and `maxHeight`.\n\nExports: `ScrollArea`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/scroll-area\n```\n\nThe wrapper lands at `components/ui/haze/scroll-area.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/scroll-area.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",
1793
+ "categories": [
1794
+ "layout"
1795
+ ],
1796
+ "dependencies": [
1797
+ "haze-ui"
1798
+ ],
1799
+ "files": [
1800
+ {
1801
+ "path": "components/haze/scroll-area.tsx",
1802
+ "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 { ScrollArea } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/scroll-area.css';\n\nexport { ScrollArea };\nexport type { ScrollAreaProps } from 'haze-ui';\n",
1803
+ "type": "registry:ui"
1804
+ }
1805
+ ]
1806
+ },
1807
+ {
1808
+ "name": "segmented",
1809
+ "type": "registry:ui",
1810
+ "title": "Segmented / SegmentedCore",
1811
+ "description": "Segmented control selecting one option from a compact set.",
1812
+ "author": "wmzy <https://github.com/wmzy>",
1813
+ "docs": "Segmented control selecting one option from a compact set.\n\nExports: `Segmented`, `SegmentedCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/segmented\n```\n\nThe wrapper lands at `components/ui/haze/segmented.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/segmented.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",
1814
+ "categories": [
1815
+ "form"
1816
+ ],
1817
+ "dependencies": [
1818
+ "haze-ui"
1819
+ ],
1820
+ "files": [
1821
+ {
1822
+ "path": "components/haze/segmented.tsx",
1823
+ "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 { Segmented, SegmentedCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/segmented.css';\n\nexport { Segmented, SegmentedCore };\nexport type { SegmentedProps, SegmentedCoreProps } from 'haze-ui';\n",
1824
+ "type": "registry:ui"
1825
+ }
1826
+ ]
1827
+ },
1828
+ {
1829
+ "name": "select",
1830
+ "type": "registry:ui",
1831
+ "title": "Select / Option / SelectCore / OptionGroup",
1832
+ "description": "Dropdown select over `SelectCore` with `<option>` children; `onSearch` enables server-side filtering.",
1833
+ "author": "wmzy <https://github.com/wmzy>",
1834
+ "docs": "Dropdown select over `SelectCore` with `<option>` children; `onSearch` enables server-side filtering.\n\nExports: `Select`, `Option`, `SelectCore`, `OptionGroup`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/select\n```\n\nThe wrapper lands at `components/ui/haze/select.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/select.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",
1835
+ "categories": [
1836
+ "form"
1837
+ ],
1838
+ "dependencies": [
1839
+ "haze-ui"
1840
+ ],
1841
+ "files": [
1842
+ {
1843
+ "path": "components/haze/select.tsx",
1844
+ "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';\n\nexport { Select, Option, SelectCore, OptionGroup };\nexport type { SelectProps, OptionProps, SelectCoreProps, OptionGroupProps } from 'haze-ui';\n",
1845
+ "type": "registry:ui"
1846
+ }
1847
+ ]
1848
+ },
1849
+ {
1850
+ "name": "sidebar",
1851
+ "type": "registry:ui",
1852
+ "title": "Sidebar / SidebarGroup / SidebarItem / SidebarFooter / SidebarToggle",
1853
+ "description": "App sidebar shell with controllable collapsed state: `SidebarGroup`/`SidebarItem`/`SidebarFooter`/`SidebarToggle` parts.",
1854
+ "author": "wmzy <https://github.com/wmzy>",
1855
+ "docs": "App sidebar shell with controllable collapsed state: `SidebarGroup`/`SidebarItem`/`SidebarFooter`/`SidebarToggle` parts.\n\nExports: `Sidebar`, `SidebarGroup`, `SidebarItem`, `SidebarFooter`, `SidebarToggle`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/sidebar\n```\n\nThe wrapper lands at `components/ui/haze/sidebar.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/sidebar.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",
1856
+ "categories": [
1857
+ "layout"
1858
+ ],
1859
+ "dependencies": [
1860
+ "haze-ui"
1861
+ ],
1862
+ "files": [
1863
+ {
1864
+ "path": "components/haze/sidebar.tsx",
1865
+ "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 { Sidebar, SidebarGroup, SidebarItem, SidebarFooter, SidebarToggle } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/sidebar.css';\n\nexport { Sidebar, SidebarGroup, SidebarItem, SidebarFooter, SidebarToggle };\nexport type { SidebarProps, SidebarGroupProps, SidebarItemProps, SidebarFooterProps, SidebarToggleProps } from 'haze-ui';\n",
1866
+ "type": "registry:ui"
1867
+ }
1868
+ ]
1869
+ },
1870
+ {
1871
+ "name": "signature",
1872
+ "type": "registry:ui",
1873
+ "title": "Signature",
1874
+ "description": "Canvas signature pad committing a PNG data URL on every stroke, with undo, clear and a no-canvas fallback notice.",
1875
+ "author": "wmzy <https://github.com/wmzy>",
1876
+ "docs": "Canvas signature pad committing a PNG data URL on every stroke, with undo, clear and a no-canvas fallback notice.\n\nExports: `Signature`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/signature\n```\n\nThe wrapper lands at `components/ui/haze/signature.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/signature.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",
1877
+ "categories": [
1878
+ "form"
1879
+ ],
11
1880
  "dependencies": [
12
1881
  "haze-ui"
13
1882
  ],
14
1883
  "files": [
15
1884
  {
16
- "path": "components/haze/chat-message.tsx",
17
- "content": "// haze-ui agent component wrapper — generated by scripts/generate-registry.mjs.\n//\n// This file deliberately contains no component source: haze-ui is compiled\n// CSS-in-JS (linaria) styled against --haze-* design tokens, so vendoring\n// the source would neither build nor style. It re-exports the published\n// component and imports its stylesheet instead — treat this file as your\n// customization layer (wrap, restyle, compose) while haze-ui stays an npm\n// dependency and keeps updating underneath.\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 { ChatMessage } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/chat-message.css';\n\nexport { ChatMessage };\nexport type { ChatMessageProps, ChatMessageRole } from 'haze-ui';\n",
18
- "type": "registry:component"
1885
+ "path": "components/haze/signature.tsx",
1886
+ "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 { Signature } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/signature.css';\n\nexport { Signature };\nexport type { SignatureProps } from 'haze-ui';\n",
1887
+ "type": "registry:ui"
19
1888
  }
20
1889
  ]
21
1890
  },
22
1891
  {
23
- "name": "chat-container",
24
- "type": "registry:component",
25
- "title": "ChatContainer",
26
- "description": "Chat transcript scroll container with stick-to-bottom auto-scroll.",
1892
+ "name": "skeleton",
1893
+ "type": "registry:ui",
1894
+ "title": "Skeleton",
1895
+ "description": "Shimmering loading placeholder (`text`/`circular`/`rectangular`).",
1896
+ "author": "wmzy <https://github.com/wmzy>",
1897
+ "docs": "Shimmering loading placeholder (`text`/`circular`/`rectangular`).\n\nExports: `Skeleton`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/skeleton\n```\n\nThe wrapper lands at `components/ui/haze/skeleton.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/skeleton.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",
1898
+ "categories": [
1899
+ "feedback"
1900
+ ],
27
1901
  "dependencies": [
28
1902
  "haze-ui"
29
1903
  ],
30
1904
  "files": [
31
1905
  {
32
- "path": "components/haze/chat-container.tsx",
33
- "content": "// haze-ui agent component wrapper — generated by scripts/generate-registry.mjs.\n//\n// This file deliberately contains no component source: haze-ui is compiled\n// CSS-in-JS (linaria) styled against --haze-* design tokens, so vendoring\n// the source would neither build nor style. It re-exports the published\n// component and imports its stylesheet instead — treat this file as your\n// customization layer (wrap, restyle, compose) while haze-ui stays an npm\n// dependency and keeps updating underneath.\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 { ChatContainer } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/chat-container.css';\n\nexport { ChatContainer };\nexport type { ChatContainerProps } from 'haze-ui';\n",
34
- "type": "registry:component"
1906
+ "path": "components/haze/skeleton.tsx",
1907
+ "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 { Skeleton } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/skeleton.css';\n\nexport { Skeleton };\nexport type { SkeletonProps } from 'haze-ui';\n",
1908
+ "type": "registry:ui"
35
1909
  }
36
1910
  ]
37
1911
  },
38
1912
  {
39
- "name": "chat-input",
40
- "type": "registry:component",
41
- "title": "ChatInput",
42
- "description": "Message composer with a controllable value and onSend callback.",
1913
+ "name": "slider",
1914
+ "type": "registry:ui",
1915
+ "title": "Slider / SliderCore",
1916
+ "description": "Native range slider with controllable value.",
1917
+ "author": "wmzy <https://github.com/wmzy>",
1918
+ "docs": "Native range slider with controllable value.\n\nExports: `Slider`, `SliderCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/slider\n```\n\nThe wrapper lands at `components/ui/haze/slider.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/slider.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",
1919
+ "categories": [
1920
+ "form"
1921
+ ],
43
1922
  "dependencies": [
44
1923
  "haze-ui"
45
1924
  ],
46
1925
  "files": [
47
1926
  {
48
- "path": "components/haze/chat-input.tsx",
49
- "content": "// haze-ui agent component wrapper — generated by scripts/generate-registry.mjs.\n//\n// This file deliberately contains no component source: haze-ui is compiled\n// CSS-in-JS (linaria) styled against --haze-* design tokens, so vendoring\n// the source would neither build nor style. It re-exports the published\n// component and imports its stylesheet instead — treat this file as your\n// customization layer (wrap, restyle, compose) while haze-ui stays an npm\n// dependency and keeps updating underneath.\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 { ChatInput } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/chat-input.css';\n\nexport { ChatInput };\nexport type { ChatInputProps } from 'haze-ui';\n",
50
- "type": "registry:component"
1927
+ "path": "components/haze/slider.tsx",
1928
+ "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 { Slider, SliderCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/slider.css';\n\nexport { Slider, SliderCore };\nexport type { SliderProps, SliderCoreProps } from 'haze-ui';\n",
1929
+ "type": "registry:ui"
1930
+ }
1931
+ ]
1932
+ },
1933
+ {
1934
+ "name": "sources",
1935
+ "type": "registry:ui",
1936
+ "title": "Sources",
1937
+ "description": "Numbered citation list for RAG answers; excerpts reveal on hover/focus with a controllable `expanded` set, `compact` footnote form included.",
1938
+ "author": "wmzy <https://github.com/wmzy>",
1939
+ "docs": "Numbered citation list for RAG answers; excerpts reveal on hover/focus with a controllable `expanded` set, `compact` footnote form included.\n\nExports: `Sources`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/sources\n```\n\nThe wrapper lands at `components/ui/haze/sources.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/sources.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",
1940
+ "categories": [
1941
+ "agent"
1942
+ ],
1943
+ "dependencies": [
1944
+ "haze-ui"
1945
+ ],
1946
+ "files": [
1947
+ {
1948
+ "path": "components/haze/sources.tsx",
1949
+ "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 { Sources } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/sources.css';\n\nexport { Sources };\nexport type { SourcesProps, SourceItem } from 'haze-ui';\n",
1950
+ "type": "registry:ui"
1951
+ }
1952
+ ]
1953
+ },
1954
+ {
1955
+ "name": "spinner",
1956
+ "type": "registry:ui",
1957
+ "title": "Spinner",
1958
+ "description": "Loading spinner.",
1959
+ "author": "wmzy <https://github.com/wmzy>",
1960
+ "docs": "Loading spinner.\n\nExports: `Spinner`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/spinner\n```\n\nThe wrapper lands at `components/ui/haze/spinner.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/spinner.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",
1961
+ "categories": [
1962
+ "feedback"
1963
+ ],
1964
+ "dependencies": [
1965
+ "haze-ui"
1966
+ ],
1967
+ "files": [
1968
+ {
1969
+ "path": "components/haze/spinner.tsx",
1970
+ "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 { Spinner } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/spinner.css';\n\nexport { Spinner };\nexport type { SpinnerProps } from 'haze-ui';\n",
1971
+ "type": "registry:ui"
1972
+ }
1973
+ ]
1974
+ },
1975
+ {
1976
+ "name": "stat",
1977
+ "type": "registry:ui",
1978
+ "title": "Stat / StatGroup",
1979
+ "description": "Metric display with title, value and trend indicator (`StatGroup` container).",
1980
+ "author": "wmzy <https://github.com/wmzy>",
1981
+ "docs": "Metric display with title, value and trend indicator (`StatGroup` container).\n\nExports: `Stat`, `StatGroup`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/stat\n```\n\nThe wrapper lands at `components/ui/haze/stat.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/stat.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",
1982
+ "categories": [
1983
+ "data-display"
1984
+ ],
1985
+ "dependencies": [
1986
+ "haze-ui"
1987
+ ],
1988
+ "files": [
1989
+ {
1990
+ "path": "components/haze/stat.tsx",
1991
+ "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 { Stat, StatGroup } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/stat.css';\n\nexport { Stat, StatGroup };\nexport type { StatProps, StatGroupProps } from 'haze-ui';\n",
1992
+ "type": "registry:ui"
1993
+ }
1994
+ ]
1995
+ },
1996
+ {
1997
+ "name": "step-timeline",
1998
+ "type": "registry:ui",
1999
+ "title": "StepTimeline / StepTimelineItem",
2000
+ "description": "Vertical timeline of agent execution steps with per-step status.",
2001
+ "author": "wmzy <https://github.com/wmzy>",
2002
+ "docs": "Vertical timeline of agent execution steps with per-step status.\n\nExports: `StepTimeline`, `StepTimelineItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/step-timeline\n```\n\nThe wrapper lands at `components/ui/haze/step-timeline.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/step-timeline.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",
2003
+ "categories": [
2004
+ "agent"
2005
+ ],
2006
+ "dependencies": [
2007
+ "haze-ui"
2008
+ ],
2009
+ "files": [
2010
+ {
2011
+ "path": "components/haze/step-timeline.tsx",
2012
+ "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 { StepTimeline, StepTimelineItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/step-timeline.css';\n\nexport { StepTimeline, StepTimelineItem };\nexport type { StepTimelineProps, StepTimelineItemProps, StepStatus } from 'haze-ui';\n",
2013
+ "type": "registry:ui"
2014
+ }
2015
+ ]
2016
+ },
2017
+ {
2018
+ "name": "stepper",
2019
+ "type": "registry:ui",
2020
+ "title": "Stepper / Step",
2021
+ "description": "Step indicator driven by `activeStep` (`Step` children).",
2022
+ "author": "wmzy <https://github.com/wmzy>",
2023
+ "docs": "Step indicator driven by `activeStep` (`Step` children).\n\nExports: `Stepper`, `Step`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/stepper\n```\n\nThe wrapper lands at `components/ui/haze/stepper.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/stepper.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",
2024
+ "categories": [
2025
+ "navigation"
2026
+ ],
2027
+ "dependencies": [
2028
+ "haze-ui"
2029
+ ],
2030
+ "files": [
2031
+ {
2032
+ "path": "components/haze/stepper.tsx",
2033
+ "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 { Stepper, Step } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/stepper.css';\n\nexport { Stepper, Step };\nexport type { StepperProps, StepProps } from 'haze-ui';\n",
2034
+ "type": "registry:ui"
51
2035
  }
52
2036
  ]
53
2037
  },
54
2038
  {
55
2039
  "name": "streaming-text",
56
- "type": "registry:component",
2040
+ "type": "registry:ui",
57
2041
  "title": "StreamingText",
58
2042
  "description": "Typewriter effect that reveals streaming text character by character, with an optional cursor.",
2043
+ "author": "wmzy <https://github.com/wmzy>",
2044
+ "docs": "Typewriter effect that reveals streaming text character by character, with an optional cursor.\n\nExports: `StreamingText`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/streaming-text\n```\n\nThe wrapper lands at `components/ui/haze/streaming-text.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/streaming-text.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",
2045
+ "categories": [
2046
+ "agent"
2047
+ ],
59
2048
  "dependencies": [
60
2049
  "haze-ui"
61
2050
  ],
62
2051
  "files": [
63
2052
  {
64
2053
  "path": "components/haze/streaming-text.tsx",
65
- "content": "// haze-ui agent component wrapper — generated by scripts/generate-registry.mjs.\n//\n// This file deliberately contains no component source: haze-ui is compiled\n// CSS-in-JS (linaria) styled against --haze-* design tokens, so vendoring\n// the source would neither build nor style. It re-exports the published\n// component and imports its stylesheet instead — treat this file as your\n// customization layer (wrap, restyle, compose) while haze-ui stays an npm\n// dependency and keeps updating underneath.\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 { StreamingText } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/streaming-text.css';\n\nexport { StreamingText };\nexport type { StreamingTextProps } from 'haze-ui';\n",
66
- "type": "registry:component"
2054
+ "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 { StreamingText } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/streaming-text.css';\n\nexport { StreamingText };\nexport type { StreamingTextProps } from 'haze-ui';\n",
2055
+ "type": "registry:ui"
67
2056
  }
68
2057
  ]
69
2058
  },
70
2059
  {
71
- "name": "markdown-renderer",
72
- "type": "registry:component",
73
- "title": "MarkdownRenderer",
74
- "description": "Renders markdown content (including code blocks) for assistant responses.",
2060
+ "name": "swipe-action",
2061
+ "type": "registry:ui",
2062
+ "title": "SwipeAction",
2063
+ "description": "Swipe-to-reveal row actions on left/right edges with a commit threshold.",
2064
+ "author": "wmzy <https://github.com/wmzy>",
2065
+ "docs": "Swipe-to-reveal row actions on left/right edges with a commit threshold.\n\nExports: `SwipeAction`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/swipe-action\n```\n\nThe wrapper lands at `components/ui/haze/swipe-action.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/swipe-action.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",
2066
+ "categories": [
2067
+ "utilities"
2068
+ ],
75
2069
  "dependencies": [
76
2070
  "haze-ui"
77
2071
  ],
78
2072
  "files": [
79
2073
  {
80
- "path": "components/haze/markdown-renderer.tsx",
81
- "content": "// haze-ui agent component wrapper — generated by scripts/generate-registry.mjs.\n//\n// This file deliberately contains no component source: haze-ui is compiled\n// CSS-in-JS (linaria) styled against --haze-* design tokens, so vendoring\n// the source would neither build nor style. It re-exports the published\n// component and imports its stylesheet instead — treat this file as your\n// customization layer (wrap, restyle, compose) while haze-ui stays an npm\n// dependency and keeps updating underneath.\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 { MarkdownRenderer } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/markdown-renderer.css';\n\nexport { MarkdownRenderer };\nexport type { MarkdownRendererProps } from 'haze-ui';\n",
82
- "type": "registry:component"
2074
+ "path": "components/haze/swipe-action.tsx",
2075
+ "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 { SwipeAction } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/swipe-action.css';\n\nexport { SwipeAction };\nexport type { SwipeActionProps } from 'haze-ui';\n",
2076
+ "type": "registry:ui"
83
2077
  }
84
2078
  ]
85
2079
  },
86
2080
  {
87
- "name": "tool-call-card",
88
- "type": "registry:component",
89
- "title": "ToolCallCard",
90
- "description": "Card presenting an agent tool call — name, input, output and running state.",
2081
+ "name": "switch",
2082
+ "type": "registry:ui",
2083
+ "title": "Switch / SwitchCore",
2084
+ "description": "Toggle switch (`role=\"switch\"`) with controllable `checked`.",
2085
+ "author": "wmzy <https://github.com/wmzy>",
2086
+ "docs": "Toggle switch (`role=\"switch\"`) with controllable `checked`.\n\nExports: `Switch`, `SwitchCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/switch\n```\n\nThe wrapper lands at `components/ui/haze/switch.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/switch.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",
2087
+ "categories": [
2088
+ "form"
2089
+ ],
91
2090
  "dependencies": [
92
2091
  "haze-ui"
93
2092
  ],
94
2093
  "files": [
95
2094
  {
96
- "path": "components/haze/tool-call-card.tsx",
97
- "content": "// haze-ui agent component wrapper — generated by scripts/generate-registry.mjs.\n//\n// This file deliberately contains no component source: haze-ui is compiled\n// CSS-in-JS (linaria) styled against --haze-* design tokens, so vendoring\n// the source would neither build nor style. It re-exports the published\n// component and imports its stylesheet instead — treat this file as your\n// customization layer (wrap, restyle, compose) while haze-ui stays an npm\n// dependency and keeps updating underneath.\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 { ToolCallCard } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tool-call-card.css';\n\nexport { ToolCallCard };\nexport type { ToolCallCardProps, ToolCallStatus } from 'haze-ui';\n",
98
- "type": "registry:component"
2095
+ "path": "components/haze/switch.tsx",
2096
+ "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 { Switch, SwitchCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/switch.css';\n\nexport { Switch, SwitchCore };\nexport type { SwitchProps, SwitchCoreProps } from 'haze-ui';\n",
2097
+ "type": "registry:ui"
2098
+ }
2099
+ ]
2100
+ },
2101
+ {
2102
+ "name": "table",
2103
+ "type": "registry:ui",
2104
+ "title": "Table / TableHead / TableBody / TableRow / TableCell",
2105
+ "description": "Styled semantic table (`striped`, `bordered`) with head/body/row/cell parts.",
2106
+ "author": "wmzy <https://github.com/wmzy>",
2107
+ "docs": "Styled semantic table (`striped`, `bordered`) with head/body/row/cell parts.\n\nExports: `Table`, `TableHead`, `TableBody`, `TableRow`, `TableCell`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/table\n```\n\nThe wrapper lands at `components/ui/haze/table.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/table.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",
2108
+ "categories": [
2109
+ "data-display"
2110
+ ],
2111
+ "dependencies": [
2112
+ "haze-ui"
2113
+ ],
2114
+ "files": [
2115
+ {
2116
+ "path": "components/haze/table.tsx",
2117
+ "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 { Table, TableHead, TableBody, TableRow, TableCell } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/table.css';\n\nexport { Table, TableHead, TableBody, TableRow, TableCell };\nexport type { TableProps, TableHeadProps, TableBodyProps, TableRowProps, TableCellProps } from 'haze-ui';\n",
2118
+ "type": "registry:ui"
2119
+ }
2120
+ ]
2121
+ },
2122
+ {
2123
+ "name": "tabs",
2124
+ "type": "registry:ui",
2125
+ "title": "Tabs / TabList / Tab / TabPanel",
2126
+ "description": "Tab panel switcher with controllable active tab (`TabList`, `Tab`, `TabPanel`).",
2127
+ "author": "wmzy <https://github.com/wmzy>",
2128
+ "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",
2129
+ "categories": [
2130
+ "navigation"
2131
+ ],
2132
+ "dependencies": [
2133
+ "haze-ui"
2134
+ ],
2135
+ "files": [
2136
+ {
2137
+ "path": "components/haze/tabs.tsx",
2138
+ "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",
2139
+ "type": "registry:ui"
2140
+ }
2141
+ ]
2142
+ },
2143
+ {
2144
+ "name": "tag",
2145
+ "type": "registry:ui",
2146
+ "title": "Tag",
2147
+ "description": "Compact status label with variant color and optional close button.",
2148
+ "author": "wmzy <https://github.com/wmzy>",
2149
+ "docs": "Compact status label with variant color and optional close button.\n\nExports: `Tag`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tag\n```\n\nThe wrapper lands at `components/ui/haze/tag.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/tag.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",
2150
+ "categories": [
2151
+ "general"
2152
+ ],
2153
+ "dependencies": [
2154
+ "haze-ui"
2155
+ ],
2156
+ "files": [
2157
+ {
2158
+ "path": "components/haze/tag.tsx",
2159
+ "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 { Tag } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tag.css';\n\nexport { Tag };\nexport type { TagProps } from 'haze-ui';\n",
2160
+ "type": "registry:ui"
2161
+ }
2162
+ ]
2163
+ },
2164
+ {
2165
+ "name": "tag-group",
2166
+ "type": "registry:ui",
2167
+ "title": "TagGroup / TagGroupItem / SortableTagGroup",
2168
+ "description": "Flex-wrap container laying out Tag children with consistent gap; `SortableTagGroup` + `onReorder` for dnd-kit drag reordering.",
2169
+ "author": "wmzy <https://github.com/wmzy>",
2170
+ "docs": "Flex-wrap container laying out Tag children with consistent gap; `SortableTagGroup` + `onReorder` for dnd-kit drag reordering.\n\nExports: `TagGroup`, `TagGroupItem`, `SortableTagGroup`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tag-group\n```\n\nThe wrapper lands at `components/ui/haze/tag-group.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/tag-group.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",
2171
+ "categories": [
2172
+ "general"
2173
+ ],
2174
+ "dependencies": [
2175
+ "haze-ui",
2176
+ "@dnd-kit/core",
2177
+ "@dnd-kit/sortable",
2178
+ "@dnd-kit/utilities"
2179
+ ],
2180
+ "files": [
2181
+ {
2182
+ "path": "components/haze/tag-group.tsx",
2183
+ "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",
2184
+ "type": "registry:ui"
2185
+ }
2186
+ ]
2187
+ },
2188
+ {
2189
+ "name": "tag-input",
2190
+ "type": "registry:ui",
2191
+ "title": "TagInput / TagInputCore / SortableTagInput / SortableTagInputCore",
2192
+ "description": "Enter-to-commit token input; `SortableTagInput` enables dnd-kit drag reordering (via `onChange`).",
2193
+ "author": "wmzy <https://github.com/wmzy>",
2194
+ "docs": "Enter-to-commit token input; `SortableTagInput` enables dnd-kit drag reordering (via `onChange`).\n\nExports: `TagInput`, `TagInputCore`, `SortableTagInput`, `SortableTagInputCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tag-input\n```\n\nThe wrapper lands at `components/ui/haze/tag-input.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/tag-input.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",
2195
+ "categories": [
2196
+ "form"
2197
+ ],
2198
+ "dependencies": [
2199
+ "haze-ui",
2200
+ "@dnd-kit/core",
2201
+ "@dnd-kit/sortable",
2202
+ "@dnd-kit/utilities"
2203
+ ],
2204
+ "files": [
2205
+ {
2206
+ "path": "components/haze/tag-input.tsx",
2207
+ "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 { TagInput, TagInputCore, SortableTagInput, SortableTagInputCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tag-input.css';\n\nexport { TagInput, TagInputCore, SortableTagInput, SortableTagInputCore };\nexport type { TagInputProps, TagInputCoreProps, SortableTagInputProps, SortableTagInputCoreProps } from 'haze-ui';\n",
2208
+ "type": "registry:ui"
2209
+ }
2210
+ ]
2211
+ },
2212
+ {
2213
+ "name": "textarea",
2214
+ "type": "registry:ui",
2215
+ "title": "Textarea / TextareaCore",
2216
+ "description": "Multiline text input.",
2217
+ "author": "wmzy <https://github.com/wmzy>",
2218
+ "docs": "Multiline text input.\n\nExports: `Textarea`, `TextareaCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/textarea\n```\n\nThe wrapper lands at `components/ui/haze/textarea.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/textarea.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",
2219
+ "categories": [
2220
+ "form"
2221
+ ],
2222
+ "dependencies": [
2223
+ "haze-ui"
2224
+ ],
2225
+ "files": [
2226
+ {
2227
+ "path": "components/haze/textarea.tsx",
2228
+ "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 { Textarea, TextareaCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/textarea.css';\n\nexport { Textarea, TextareaCore };\nexport type { TextareaProps, TextareaCoreProps } from 'haze-ui';\n",
2229
+ "type": "registry:ui"
99
2230
  }
100
2231
  ]
101
2232
  },
102
2233
  {
103
2234
  "name": "thinking-indicator",
104
- "type": "registry:component",
2235
+ "type": "registry:ui",
105
2236
  "title": "ThinkingIndicator",
106
2237
  "description": "Animated bouncing-dots indicator that the agent is processing.",
2238
+ "author": "wmzy <https://github.com/wmzy>",
2239
+ "docs": "Animated bouncing-dots indicator that the agent is processing.\n\nExports: `ThinkingIndicator`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/thinking-indicator\n```\n\nThe wrapper lands at `components/ui/haze/thinking-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/thinking-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",
2240
+ "categories": [
2241
+ "agent"
2242
+ ],
107
2243
  "dependencies": [
108
2244
  "haze-ui"
109
2245
  ],
110
2246
  "files": [
111
2247
  {
112
2248
  "path": "components/haze/thinking-indicator.tsx",
113
- "content": "// haze-ui agent component wrapper — generated by scripts/generate-registry.mjs.\n//\n// This file deliberately contains no component source: haze-ui is compiled\n// CSS-in-JS (linaria) styled against --haze-* design tokens, so vendoring\n// the source would neither build nor style. It re-exports the published\n// component and imports its stylesheet instead — treat this file as your\n// customization layer (wrap, restyle, compose) while haze-ui stays an npm\n// dependency and keeps updating underneath.\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 { ThinkingIndicator } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/thinking-indicator.css';\n\nexport { ThinkingIndicator };\nexport type { ThinkingIndicatorProps } from 'haze-ui';\n",
114
- "type": "registry:component"
2249
+ "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 { ThinkingIndicator } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/thinking-indicator.css';\n\nexport { ThinkingIndicator };\nexport type { ThinkingIndicatorProps } from 'haze-ui';\n",
2250
+ "type": "registry:ui"
115
2251
  }
116
2252
  ]
117
2253
  },
118
2254
  {
119
- "name": "step-timeline",
120
- "type": "registry:component",
121
- "title": "StepTimeline / StepTimelineItem",
122
- "description": "Vertical timeline of agent execution steps with per-step status.",
2255
+ "name": "time-picker",
2256
+ "type": "registry:ui",
2257
+ "title": "TimePicker / TimePickerCore",
2258
+ "description": "Time-of-day input with controllable value.",
2259
+ "author": "wmzy <https://github.com/wmzy>",
2260
+ "docs": "Time-of-day input with controllable value.\n\nExports: `TimePicker`, `TimePickerCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/time-picker\n```\n\nThe wrapper lands at `components/ui/haze/time-picker.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/time-picker.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",
2261
+ "categories": [
2262
+ "form"
2263
+ ],
123
2264
  "dependencies": [
124
2265
  "haze-ui"
125
2266
  ],
126
2267
  "files": [
127
2268
  {
128
- "path": "components/haze/step-timeline.tsx",
129
- "content": "// haze-ui agent component wrapper — generated by scripts/generate-registry.mjs.\n//\n// This file deliberately contains no component source: haze-ui is compiled\n// CSS-in-JS (linaria) styled against --haze-* design tokens, so vendoring\n// the source would neither build nor style. It re-exports the published\n// component and imports its stylesheet instead — treat this file as your\n// customization layer (wrap, restyle, compose) while haze-ui stays an npm\n// dependency and keeps updating underneath.\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 { StepTimeline, StepTimelineItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/step-timeline.css';\n\nexport { StepTimeline, StepTimelineItem };\nexport type { StepTimelineProps, StepTimelineItemProps, StepStatus } from 'haze-ui';\n",
130
- "type": "registry:component"
2269
+ "path": "components/haze/time-picker.tsx",
2270
+ "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 { TimePicker, TimePickerCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/time-picker.css';\n\nexport { TimePicker, TimePickerCore };\nexport type { TimePickerProps, TimePickerCoreProps } from 'haze-ui';\n",
2271
+ "type": "registry:ui"
131
2272
  }
132
2273
  ]
133
2274
  },
134
2275
  {
135
- "name": "approval-card",
136
- "type": "registry:component",
137
- "title": "ApprovalCard",
138
- "description": "Approval gate with approve / deny actions for agent-initiated operations.",
2276
+ "name": "timeline",
2277
+ "type": "registry:ui",
2278
+ "title": "Timeline / TimelineItem",
2279
+ "description": "Vertical timeline container for `TimelineItem` children.",
2280
+ "author": "wmzy <https://github.com/wmzy>",
2281
+ "docs": "Vertical timeline container for `TimelineItem` children.\n\nExports: `Timeline`, `TimelineItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/timeline\n```\n\nThe wrapper lands at `components/ui/haze/timeline.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/timeline.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",
2282
+ "categories": [
2283
+ "data-display"
2284
+ ],
139
2285
  "dependencies": [
140
2286
  "haze-ui"
141
2287
  ],
142
2288
  "files": [
143
2289
  {
144
- "path": "components/haze/approval-card.tsx",
145
- "content": "// haze-ui agent component wrapper — generated by scripts/generate-registry.mjs.\n//\n// This file deliberately contains no component source: haze-ui is compiled\n// CSS-in-JS (linaria) styled against --haze-* design tokens, so vendoring\n// the source would neither build nor style. It re-exports the published\n// component and imports its stylesheet instead — treat this file as your\n// customization layer (wrap, restyle, compose) while haze-ui stays an npm\n// dependency and keeps updating underneath.\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 { ApprovalCard } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/approval-card.css';\n\nexport { ApprovalCard };\nexport type { ApprovalCardProps } from 'haze-ui';\n",
146
- "type": "registry:component"
2290
+ "path": "components/haze/timeline.tsx",
2291
+ "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 { Timeline, TimelineItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/timeline.css';\n\nexport { Timeline, TimelineItem };\nexport type { TimelineProps, TimelineItemProps } from 'haze-ui';\n",
2292
+ "type": "registry:ui"
2293
+ }
2294
+ ]
2295
+ },
2296
+ {
2297
+ "name": "toast",
2298
+ "type": "registry:ui",
2299
+ "title": "Toast / ToastContainer / useToast / toast",
2300
+ "description": "Toast notifications via `useToast` + `ToastContainer`, with the imperative `toast()` helper.",
2301
+ "author": "wmzy <https://github.com/wmzy>",
2302
+ "docs": "Toast notifications via `useToast` + `ToastContainer`, with the imperative `toast()` helper.\n\nExports: `Toast`, `ToastContainer`, `useToast`, `toast`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/toast\n```\n\nThe wrapper lands at `components/ui/haze/toast.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/toast.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",
2303
+ "categories": [
2304
+ "feedback"
2305
+ ],
2306
+ "dependencies": [
2307
+ "haze-ui"
2308
+ ],
2309
+ "files": [
2310
+ {
2311
+ "path": "components/haze/toast.tsx",
2312
+ "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 { Toast, ToastContainer, useToast, toast } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/toast.css';\n\nexport { Toast, ToastContainer, useToast, toast };\nexport type { ToastProps, ToastContainerProps, ToastOptions, ToastVariant, ToastClassNames } from 'haze-ui';\n",
2313
+ "type": "registry:ui"
2314
+ }
2315
+ ]
2316
+ },
2317
+ {
2318
+ "name": "toggle",
2319
+ "type": "registry:ui",
2320
+ "title": "Toggle / ToggleCore",
2321
+ "description": "Two-state pressed button (`aria-pressed`) with sizes and `square` icon mode.",
2322
+ "author": "wmzy <https://github.com/wmzy>",
2323
+ "docs": "Two-state pressed button (`aria-pressed`) with sizes and `square` icon mode.\n\nExports: `Toggle`, `ToggleCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/toggle\n```\n\nThe wrapper lands at `components/ui/haze/toggle.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/toggle.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",
2324
+ "categories": [
2325
+ "form"
2326
+ ],
2327
+ "dependencies": [
2328
+ "haze-ui"
2329
+ ],
2330
+ "files": [
2331
+ {
2332
+ "path": "components/haze/toggle.tsx",
2333
+ "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 { Toggle, ToggleCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/toggle.css';\n\nexport { Toggle, ToggleCore };\nexport type { ToggleProps, ToggleCoreProps } from 'haze-ui';\n",
2334
+ "type": "registry:ui"
147
2335
  }
148
2336
  ]
149
2337
  },
150
2338
  {
151
2339
  "name": "token-counter",
152
- "type": "registry:component",
2340
+ "type": "registry:ui",
153
2341
  "title": "TokenCounter",
154
2342
  "description": "Context-window token usage counter with budget progress.",
2343
+ "author": "wmzy <https://github.com/wmzy>",
2344
+ "docs": "Context-window token usage counter with budget progress.\n\nExports: `TokenCounter`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/token-counter\n```\n\nThe wrapper lands at `components/ui/haze/token-counter.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/token-counter.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",
2345
+ "categories": [
2346
+ "agent"
2347
+ ],
155
2348
  "dependencies": [
156
2349
  "haze-ui"
157
2350
  ],
158
2351
  "files": [
159
2352
  {
160
2353
  "path": "components/haze/token-counter.tsx",
161
- "content": "// haze-ui agent component wrapper — generated by scripts/generate-registry.mjs.\n//\n// This file deliberately contains no component source: haze-ui is compiled\n// CSS-in-JS (linaria) styled against --haze-* design tokens, so vendoring\n// the source would neither build nor style. It re-exports the published\n// component and imports its stylesheet instead — treat this file as your\n// customization layer (wrap, restyle, compose) while haze-ui stays an npm\n// dependency and keeps updating underneath.\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 { TokenCounter } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/token-counter.css';\n\nexport { TokenCounter };\nexport type { TokenCounterProps } from 'haze-ui';\n",
162
- "type": "registry:component"
2354
+ "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 { TokenCounter } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/token-counter.css';\n\nexport { TokenCounter };\nexport type { TokenCounterProps } from 'haze-ui';\n",
2355
+ "type": "registry:ui"
163
2356
  }
164
2357
  ]
165
2358
  },
166
2359
  {
167
- "name": "model-picker",
168
- "type": "registry:component",
169
- "title": "ModelPicker",
170
- "description": "Controllable dropdown for selecting the active model.",
2360
+ "name": "tokens",
2361
+ "type": "registry:lib",
2362
+ "title": "Theme tokens (lightTheme / darkTheme / spacing / typography)",
2363
+ "description": "Theme classes for haze-ui: `lightTheme`/`darkTheme` plus `spacing` and `typography`, applied to a root element to activate the `--haze-*` design tokens.",
2364
+ "author": "wmzy <https://github.com/wmzy>",
2365
+ "docs": "Theme classes for haze-ui: `lightTheme`/`darkTheme` plus `spacing` and `typography`, applied to a root element to activate the `--haze-*` design tokens.\n\nExports: `lightTheme`, `darkTheme`, `spacing`, `typography`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tokens\n```\n\nThe wrapper lands at `lib/haze/tokens.tsx` (via the `@lib/` target placeholder from `components.json`); the `haze-ui` npm package is installed automatically as a dependency.\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",
2366
+ "categories": [
2367
+ "theme"
2368
+ ],
171
2369
  "dependencies": [
172
2370
  "haze-ui"
173
2371
  ],
174
2372
  "files": [
175
2373
  {
176
- "path": "components/haze/model-picker.tsx",
177
- "content": "// haze-ui agent component wrapper — generated by scripts/generate-registry.mjs.\n//\n// This file deliberately contains no component source: haze-ui is compiled\n// CSS-in-JS (linaria) styled against --haze-* design tokens, so vendoring\n// the source would neither build nor style. It re-exports the published\n// component and imports its stylesheet instead — treat this file as your\n// customization layer (wrap, restyle, compose) while haze-ui stays an npm\n// dependency and keeps updating underneath.\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 { ModelPicker } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/model-picker.css';\n\nexport { ModelPicker };\nexport type { ModelPickerProps, ModelOption } from 'haze-ui';\n",
178
- "type": "registry:component"
2374
+ "path": "components/haze/tokens.tsx",
2375
+ "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 { lightTheme, darkTheme, spacing, typography } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\n\nexport { lightTheme, darkTheme, spacing, typography };\n",
2376
+ "type": "registry:lib"
179
2377
  }
180
2378
  ]
181
2379
  },
182
2380
  {
183
- "name": "conversation-list",
184
- "type": "registry:component",
185
- "title": "ConversationList / ConversationItem",
186
- "description": "Selectable list of conversations for a chat-history sidebar.",
2381
+ "name": "tool-call-card",
2382
+ "type": "registry:ui",
2383
+ "title": "ToolCallCard",
2384
+ "description": "Card presenting an agent tool call — name, input, output and running state.",
2385
+ "author": "wmzy <https://github.com/wmzy>",
2386
+ "docs": "Card presenting an agent tool call — name, input, output and running state.\n\nExports: `ToolCallCard`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tool-call-card\n```\n\nThe wrapper lands at `components/ui/haze/tool-call-card.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/tool-call-card.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",
2387
+ "categories": [
2388
+ "agent"
2389
+ ],
187
2390
  "dependencies": [
188
2391
  "haze-ui"
189
2392
  ],
190
2393
  "files": [
191
2394
  {
192
- "path": "components/haze/conversation-list.tsx",
193
- "content": "// haze-ui agent component wrapper — generated by scripts/generate-registry.mjs.\n//\n// This file deliberately contains no component source: haze-ui is compiled\n// CSS-in-JS (linaria) styled against --haze-* design tokens, so vendoring\n// the source would neither build nor style. It re-exports the published\n// component and imports its stylesheet instead — treat this file as your\n// customization layer (wrap, restyle, compose) while haze-ui stays an npm\n// dependency and keeps updating underneath.\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 { ConversationList, ConversationItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/conversation-list.css';\n\nexport { ConversationList, ConversationItem };\nexport type { ConversationListProps, ConversationItemProps } from 'haze-ui';\n",
194
- "type": "registry:component"
2395
+ "path": "components/haze/tool-call-card.tsx",
2396
+ "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 { ToolCallCard } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tool-call-card.css';\n\nexport { ToolCallCard };\nexport type { ToolCallCardProps, ToolCallStatus } from 'haze-ui';\n",
2397
+ "type": "registry:ui"
195
2398
  }
196
2399
  ]
197
2400
  },
198
2401
  {
199
- "name": "diff-viewer",
200
- "type": "registry:component",
201
- "title": "DiffViewer",
202
- "description": "Renders the line diff between old and new content for agent-proposed edits.",
2402
+ "name": "toolbar",
2403
+ "type": "registry:ui",
2404
+ "title": "Toolbar / ToolbarButton / ToolbarSeparator / ToolbarToggle",
2405
+ "description": "Button group with toolbar a11y (roving tabindex): `ToolbarButton`, `ToolbarSeparator`, `ToolbarToggle`.",
2406
+ "author": "wmzy <https://github.com/wmzy>",
2407
+ "docs": "Button group with toolbar a11y (roving tabindex): `ToolbarButton`, `ToolbarSeparator`, `ToolbarToggle`.\n\nExports: `Toolbar`, `ToolbarButton`, `ToolbarSeparator`, `ToolbarToggle`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/toolbar\n```\n\nThe wrapper lands at `components/ui/haze/toolbar.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/toolbar.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",
2408
+ "categories": [
2409
+ "navigation"
2410
+ ],
203
2411
  "dependencies": [
204
2412
  "haze-ui"
205
2413
  ],
206
2414
  "files": [
207
2415
  {
208
- "path": "components/haze/diff-viewer.tsx",
209
- "content": "// haze-ui agent component wrapper — generated by scripts/generate-registry.mjs.\n//\n// This file deliberately contains no component source: haze-ui is compiled\n// CSS-in-JS (linaria) styled against --haze-* design tokens, so vendoring\n// the source would neither build nor style. It re-exports the published\n// component and imports its stylesheet instead — treat this file as your\n// customization layer (wrap, restyle, compose) while haze-ui stays an npm\n// dependency and keeps updating underneath.\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 { DiffViewer } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/diff-viewer.css';\n\nexport { DiffViewer };\nexport type { DiffViewerProps, DiffLine } from 'haze-ui';\n",
210
- "type": "registry:component"
2416
+ "path": "components/haze/toolbar.tsx",
2417
+ "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 { Toolbar, ToolbarButton, ToolbarSeparator, ToolbarToggle } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/toolbar.css';\n\nexport { Toolbar, ToolbarButton, ToolbarSeparator, ToolbarToggle };\nexport type { ToolbarProps, ToolbarButtonProps, ToolbarSeparatorProps, ToolbarToggleProps } from 'haze-ui';\n",
2418
+ "type": "registry:ui"
211
2419
  }
212
2420
  ]
213
2421
  },
214
2422
  {
215
- "name": "log-viewer",
216
- "type": "registry:component",
217
- "title": "LogViewer",
218
- "description": "Scrollable log stream with severity-level filtering.",
2423
+ "name": "tooltip",
2424
+ "type": "registry:ui",
2425
+ "title": "Tooltip",
2426
+ "description": "Hover/focus hint bubble.",
2427
+ "author": "wmzy <https://github.com/wmzy>",
2428
+ "docs": "Hover/focus hint bubble.\n\nExports: `Tooltip`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tooltip\n```\n\nThe wrapper lands at `components/ui/haze/tooltip.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/tooltip.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",
2429
+ "categories": [
2430
+ "overlay"
2431
+ ],
219
2432
  "dependencies": [
220
2433
  "haze-ui"
221
2434
  ],
222
2435
  "files": [
223
2436
  {
224
- "path": "components/haze/log-viewer.tsx",
225
- "content": "// haze-ui agent component wrapper — generated by scripts/generate-registry.mjs.\n//\n// This file deliberately contains no component source: haze-ui is compiled\n// CSS-in-JS (linaria) styled against --haze-* design tokens, so vendoring\n// the source would neither build nor style. It re-exports the published\n// component and imports its stylesheet instead — treat this file as your\n// customization layer (wrap, restyle, compose) while haze-ui stays an npm\n// dependency and keeps updating underneath.\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 { LogViewer } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/log-viewer.css';\n\nexport { LogViewer };\nexport type { LogViewerProps, LogEntry, LogLevel } from 'haze-ui';\n",
226
- "type": "registry:component"
2437
+ "path": "components/haze/tooltip.tsx",
2438
+ "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 { Tooltip } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tooltip.css';\n\nexport { Tooltip };\nexport type { TooltipProps } from 'haze-ui';\n",
2439
+ "type": "registry:ui"
227
2440
  }
228
2441
  ]
229
2442
  },
230
2443
  {
231
- "name": "async-section",
232
- "type": "registry:component",
233
- "title": "AsyncSection",
234
- "description": "Declarative loading / error / content states for async data.",
2444
+ "name": "tour",
2445
+ "type": "registry:ui",
2446
+ "title": "Tour",
2447
+ "description": "Guided walkthrough spotlighting `steps` behind a mask, controllable `current`.",
2448
+ "author": "wmzy <https://github.com/wmzy>",
2449
+ "docs": "Guided walkthrough spotlighting `steps` behind a mask, controllable `current`.\n\nExports: `Tour`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tour\n```\n\nThe wrapper lands at `components/ui/haze/tour.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/tour.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",
2450
+ "categories": [
2451
+ "navigation"
2452
+ ],
235
2453
  "dependencies": [
236
2454
  "haze-ui"
237
2455
  ],
238
2456
  "files": [
239
2457
  {
240
- "path": "components/haze/async-section.tsx",
241
- "content": "// haze-ui agent component wrapper — generated by scripts/generate-registry.mjs.\n//\n// This file deliberately contains no component source: haze-ui is compiled\n// CSS-in-JS (linaria) styled against --haze-* design tokens, so vendoring\n// the source would neither build nor style. It re-exports the published\n// component and imports its stylesheet instead — treat this file as your\n// customization layer (wrap, restyle, compose) while haze-ui stays an npm\n// dependency and keeps updating underneath.\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 { AsyncSection } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/async-section.css';\n\nexport { AsyncSection };\nexport type { AsyncSectionProps } from 'haze-ui';\n",
242
- "type": "registry:component"
2458
+ "path": "components/haze/tour.tsx",
2459
+ "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 { Tour } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tour.css';\n\nexport { Tour };\nexport type { TourProps, TourStep, TourCloseReason, TourPlacement } from 'haze-ui';\n",
2460
+ "type": "registry:ui"
2461
+ }
2462
+ ]
2463
+ },
2464
+ {
2465
+ "name": "transfer",
2466
+ "type": "registry:ui",
2467
+ "title": "Transfer / TransferCore",
2468
+ "description": "Two-column shuttle moving options between source and target lists.",
2469
+ "author": "wmzy <https://github.com/wmzy>",
2470
+ "docs": "Two-column shuttle moving options between source and target lists.\n\nExports: `Transfer`, `TransferCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/transfer\n```\n\nThe wrapper lands at `components/ui/haze/transfer.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/transfer.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",
2471
+ "categories": [
2472
+ "form"
2473
+ ],
2474
+ "dependencies": [
2475
+ "haze-ui"
2476
+ ],
2477
+ "files": [
2478
+ {
2479
+ "path": "components/haze/transfer.tsx",
2480
+ "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 { Transfer, TransferCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/transfer.css';\n\nexport { Transfer, TransferCore };\nexport type { TransferProps, TransferItem, TransferCoreProps } from 'haze-ui';\n",
2481
+ "type": "registry:ui"
2482
+ }
2483
+ ]
2484
+ },
2485
+ {
2486
+ "name": "tree",
2487
+ "type": "registry:ui",
2488
+ "title": "Tree",
2489
+ "description": "Hierarchical tree with expand, select, check state, async `loadData` and `searchValue` filtering.",
2490
+ "author": "wmzy <https://github.com/wmzy>",
2491
+ "docs": "Hierarchical tree with expand, select, check state, async `loadData` and `searchValue` filtering.\n\nExports: `Tree`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tree\n```\n\nThe wrapper lands at `components/ui/haze/tree.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/tree.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",
2492
+ "categories": [
2493
+ "data-display"
2494
+ ],
2495
+ "dependencies": [
2496
+ "haze-ui"
2497
+ ],
2498
+ "files": [
2499
+ {
2500
+ "path": "components/haze/tree.tsx",
2501
+ "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 { Tree } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tree.css';\n\nexport { Tree };\nexport type { TreeProps, TreeNodeData } from 'haze-ui';\n",
2502
+ "type": "registry:ui"
2503
+ }
2504
+ ]
2505
+ },
2506
+ {
2507
+ "name": "typography",
2508
+ "type": "registry:ui",
2509
+ "title": "Title / Text / Paragraph",
2510
+ "description": "Text primitives: `Title`, `Text`, `Paragraph` on typography tokens.",
2511
+ "author": "wmzy <https://github.com/wmzy>",
2512
+ "docs": "Text primitives: `Title`, `Text`, `Paragraph` on typography tokens.\n\nExports: `Title`, `Text`, `Paragraph`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/typography\n```\n\nThe wrapper lands at `components/ui/haze/typography.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/typography.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",
2513
+ "categories": [
2514
+ "general"
2515
+ ],
2516
+ "dependencies": [
2517
+ "haze-ui"
2518
+ ],
2519
+ "files": [
2520
+ {
2521
+ "path": "components/haze/typography.tsx",
2522
+ "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 { Title, Text, Paragraph } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/typography.css';\n\nexport { Title, Text, Paragraph };\nexport type { TitleProps, TextProps, ParagraphProps } from 'haze-ui';\n",
2523
+ "type": "registry:ui"
2524
+ }
2525
+ ]
2526
+ },
2527
+ {
2528
+ "name": "upload",
2529
+ "type": "registry:ui",
2530
+ "title": "Upload / UploadCore",
2531
+ "description": "File picker with accumulating `File[]` value, `accept`/`multiple`, `directory` picking and `listType` rendering.",
2532
+ "author": "wmzy <https://github.com/wmzy>",
2533
+ "docs": "File picker with accumulating `File[]` value, `accept`/`multiple`, `directory` picking and `listType` rendering.\n\nExports: `Upload`, `UploadCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/upload\n```\n\nThe wrapper lands at `components/ui/haze/upload.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/upload.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",
2534
+ "categories": [
2535
+ "form"
2536
+ ],
2537
+ "dependencies": [
2538
+ "haze-ui"
2539
+ ],
2540
+ "files": [
2541
+ {
2542
+ "path": "components/haze/upload.tsx",
2543
+ "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 { Upload, UploadCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/upload.css';\n\nexport { Upload, UploadCore };\nexport type { UploadProps, UploadCoreProps, UploadHandle, UploadStatus, UploadFileStatus, UploadRequest, UploadRequestOptions, UploadListItemActions, UploadListItemRender } from 'haze-ui';\n",
2544
+ "type": "registry:ui"
2545
+ }
2546
+ ]
2547
+ },
2548
+ {
2549
+ "name": "virtual-list",
2550
+ "type": "registry:ui",
2551
+ "title": "VirtualList",
2552
+ "description": "Windowed list rendering only visible rows; fixed or measured dynamic heights.",
2553
+ "author": "wmzy <https://github.com/wmzy>",
2554
+ "docs": "Windowed list rendering only visible rows; fixed or measured dynamic heights.\n\nExports: `VirtualList`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/virtual-list\n```\n\nThe wrapper lands at `components/ui/haze/virtual-list.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/virtual-list.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",
2555
+ "categories": [
2556
+ "data-display"
2557
+ ],
2558
+ "dependencies": [
2559
+ "haze-ui"
2560
+ ],
2561
+ "files": [
2562
+ {
2563
+ "path": "components/haze/virtual-list.tsx",
2564
+ "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 { VirtualList } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/virtual-list.css';\n\nexport { VirtualList };\nexport type { VirtualListProps, VirtualListHandle, VirtualListGroup, VirtualListAlign } from 'haze-ui';\n",
2565
+ "type": "registry:ui"
2566
+ }
2567
+ ]
2568
+ },
2569
+ {
2570
+ "name": "watermark",
2571
+ "type": "registry:ui",
2572
+ "title": "Watermark",
2573
+ "description": "Tiled canvas watermark layer over children (or `fullscreen`), theme-aware color.",
2574
+ "author": "wmzy <https://github.com/wmzy>",
2575
+ "docs": "Tiled canvas watermark layer over children (or `fullscreen`), theme-aware color.\n\nExports: `Watermark`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/watermark\n```\n\nThe wrapper lands at `components/ui/haze/watermark.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/watermark.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",
2576
+ "categories": [
2577
+ "data-display"
2578
+ ],
2579
+ "dependencies": [
2580
+ "haze-ui"
2581
+ ],
2582
+ "files": [
2583
+ {
2584
+ "path": "components/haze/watermark.tsx",
2585
+ "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 { Watermark } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/watermark.css';\n\nexport { Watermark };\nexport type { WatermarkProps, WatermarkFont } from 'haze-ui';\n",
2586
+ "type": "registry:ui"
243
2587
  }
244
2588
  ]
245
2589
  }