@hanzo/ui 8.0.25 → 8.0.27

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 (582) hide show
  1. package/README.md +1 -1
  2. package/dist/backends/gui/aspect-ratio.d.ts +14 -0
  3. package/dist/backends/gui/avatar.d.ts +16 -0
  4. package/dist/backends/gui/badge.d.ts +19 -0
  5. package/dist/backends/gui/button.d.ts +50 -0
  6. package/dist/backends/gui/card.d.ts +44 -0
  7. package/dist/backends/gui/checkbox.d.ts +9 -0
  8. package/dist/backends/gui/collapsible.d.ts +10 -0
  9. package/dist/backends/gui/command.d.ts +86 -0
  10. package/dist/backends/gui/command.logic.d.ts +20 -0
  11. package/dist/backends/gui/dialog.d.ts +27 -0
  12. package/dist/backends/gui/dropdown-menu.d.ts +98 -0
  13. package/dist/backends/gui/index.d.ts +24 -2
  14. package/dist/backends/gui/ink.d.ts +7 -0
  15. package/dist/backends/gui/input.d.ts +19 -0
  16. package/dist/backends/gui/label.d.ts +6 -0
  17. package/dist/backends/gui/popover.d.ts +22 -0
  18. package/dist/backends/gui/progress.d.ts +6 -0
  19. package/dist/backends/gui/resizable.d.ts +52 -0
  20. package/dist/backends/gui/resizable.logic.d.ts +23 -0
  21. package/dist/backends/gui/scroll-area.d.ts +45 -0
  22. package/dist/backends/gui/select.d.ts +30 -0
  23. package/dist/backends/gui/separator.d.ts +10 -0
  24. package/dist/backends/gui/slider.d.ts +6 -0
  25. package/dist/backends/gui/slot.d.ts +6 -0
  26. package/dist/backends/gui/switch.d.ts +6 -0
  27. package/dist/backends/gui/tabs.d.ts +12 -0
  28. package/dist/backends/gui/textarea.d.ts +11 -0
  29. package/dist/backends/gui/toaster.d.ts +28 -0
  30. package/dist/backends/gui/tooltip.d.ts +12 -0
  31. package/dist/chunk-2U3MNE4I.js +4 -0
  32. package/dist/chunk-2U3MNE4I.js.map +1 -0
  33. package/dist/chunk-6DDY6XZI.js +53 -0
  34. package/dist/chunk-6DDY6XZI.js.map +1 -0
  35. package/dist/chunk-6KZWRBK2.cjs +1498 -0
  36. package/dist/chunk-6KZWRBK2.cjs.map +1 -0
  37. package/dist/chunk-DC52DQ27.cjs +303 -0
  38. package/dist/chunk-DC52DQ27.cjs.map +1 -0
  39. package/dist/chunk-NQUA5YRQ.cjs +55 -0
  40. package/dist/chunk-NQUA5YRQ.cjs.map +1 -0
  41. package/dist/chunk-PI3GSHLU.js +263 -0
  42. package/dist/chunk-PI3GSHLU.js.map +1 -0
  43. package/dist/chunk-QHC2ZNAF.js +11 -0
  44. package/dist/chunk-QHC2ZNAF.js.map +1 -0
  45. package/dist/chunk-QV52JQHR.cjs +77 -0
  46. package/dist/chunk-QV52JQHR.cjs.map +1 -0
  47. package/dist/chunk-RBS5AYO4.cjs +13 -0
  48. package/dist/chunk-RBS5AYO4.cjs.map +1 -0
  49. package/dist/chunk-RCMDRI6V.js +1401 -0
  50. package/dist/chunk-RCMDRI6V.js.map +1 -0
  51. package/dist/components.d.ts +1 -1
  52. package/dist/core/cn.d.ts +3 -5
  53. package/dist/core/index.cjs +92 -0
  54. package/dist/core/index.cjs.map +1 -0
  55. package/dist/core/index.js +14 -0
  56. package/dist/core/index.js.map +1 -0
  57. package/dist/core/tokens.cjs +77 -0
  58. package/dist/core/tokens.cjs.map +1 -0
  59. package/dist/core/tokens.js +4 -0
  60. package/dist/core/tokens.js.map +1 -0
  61. package/dist/framework/index.cjs +4 -3
  62. package/dist/framework/index.cjs.map +1 -1
  63. package/dist/framework/index.js +2 -1
  64. package/dist/framework/index.js.map +1 -1
  65. package/dist/index.cjs +365 -1136
  66. package/dist/index.cjs.map +1 -1
  67. package/dist/index.d.ts +1 -1
  68. package/dist/index.js +3 -1017
  69. package/dist/index.js.map +1 -1
  70. package/dist/models/catalog.d.ts +1 -1
  71. package/dist/models/index.cjs +225 -0
  72. package/dist/models/index.cjs.map +1 -0
  73. package/dist/models/index.js +218 -0
  74. package/dist/models/index.js.map +1 -0
  75. package/dist/primitives/AspectRatio.cjs +14 -0
  76. package/dist/primitives/AspectRatio.cjs.map +1 -0
  77. package/dist/primitives/AspectRatio.d.ts +1 -1
  78. package/dist/primitives/AspectRatio.js +5 -0
  79. package/dist/primitives/AspectRatio.js.map +1 -0
  80. package/dist/primitives/Avatar.cjs +14 -0
  81. package/dist/primitives/Avatar.cjs.map +1 -0
  82. package/dist/primitives/Avatar.d.ts +1 -1
  83. package/dist/primitives/Avatar.js +5 -0
  84. package/dist/primitives/Avatar.js.map +1 -0
  85. package/dist/primitives/AvatarFallback.cjs +14 -0
  86. package/dist/primitives/AvatarFallback.cjs.map +1 -0
  87. package/dist/primitives/AvatarFallback.d.ts +1 -1
  88. package/dist/primitives/AvatarFallback.js +5 -0
  89. package/dist/primitives/AvatarFallback.js.map +1 -0
  90. package/dist/primitives/AvatarImage.cjs +14 -0
  91. package/dist/primitives/AvatarImage.cjs.map +1 -0
  92. package/dist/primitives/AvatarImage.d.ts +1 -1
  93. package/dist/primitives/AvatarImage.js +5 -0
  94. package/dist/primitives/AvatarImage.js.map +1 -0
  95. package/dist/primitives/Badge.cjs +14 -0
  96. package/dist/primitives/Badge.cjs.map +1 -0
  97. package/dist/primitives/Badge.d.ts +1 -1
  98. package/dist/primitives/Badge.js +5 -0
  99. package/dist/primitives/Badge.js.map +1 -0
  100. package/dist/primitives/Button.cjs +14 -0
  101. package/dist/primitives/Button.cjs.map +1 -0
  102. package/dist/primitives/Button.d.ts +1 -1
  103. package/dist/primitives/Button.js +5 -0
  104. package/dist/primitives/Button.js.map +1 -0
  105. package/dist/primitives/Card.cjs +14 -0
  106. package/dist/primitives/Card.cjs.map +1 -0
  107. package/dist/primitives/Card.d.ts +1 -1
  108. package/dist/primitives/Card.js +5 -0
  109. package/dist/primitives/Card.js.map +1 -0
  110. package/dist/primitives/CardAction.cjs +14 -0
  111. package/dist/primitives/CardAction.cjs.map +1 -0
  112. package/dist/primitives/CardAction.d.ts +1 -1
  113. package/dist/primitives/CardAction.js +5 -0
  114. package/dist/primitives/CardAction.js.map +1 -0
  115. package/dist/primitives/CardContent.cjs +14 -0
  116. package/dist/primitives/CardContent.cjs.map +1 -0
  117. package/dist/primitives/CardContent.d.ts +1 -1
  118. package/dist/primitives/CardContent.js +5 -0
  119. package/dist/primitives/CardContent.js.map +1 -0
  120. package/dist/primitives/CardDescription.cjs +14 -0
  121. package/dist/primitives/CardDescription.cjs.map +1 -0
  122. package/dist/primitives/CardDescription.d.ts +1 -1
  123. package/dist/primitives/CardDescription.js +5 -0
  124. package/dist/primitives/CardDescription.js.map +1 -0
  125. package/dist/primitives/CardFooter.cjs +14 -0
  126. package/dist/primitives/CardFooter.cjs.map +1 -0
  127. package/dist/primitives/CardFooter.d.ts +1 -1
  128. package/dist/primitives/CardFooter.js +5 -0
  129. package/dist/primitives/CardFooter.js.map +1 -0
  130. package/dist/primitives/CardHeader.cjs +14 -0
  131. package/dist/primitives/CardHeader.cjs.map +1 -0
  132. package/dist/primitives/CardHeader.d.ts +1 -1
  133. package/dist/primitives/CardHeader.js +5 -0
  134. package/dist/primitives/CardHeader.js.map +1 -0
  135. package/dist/primitives/CardTitle.cjs +14 -0
  136. package/dist/primitives/CardTitle.cjs.map +1 -0
  137. package/dist/primitives/CardTitle.d.ts +1 -1
  138. package/dist/primitives/CardTitle.js +5 -0
  139. package/dist/primitives/CardTitle.js.map +1 -0
  140. package/dist/primitives/Checkbox.cjs +14 -0
  141. package/dist/primitives/Checkbox.cjs.map +1 -0
  142. package/dist/primitives/Checkbox.d.ts +1 -1
  143. package/dist/primitives/Checkbox.js +5 -0
  144. package/dist/primitives/Checkbox.js.map +1 -0
  145. package/dist/primitives/Collapsible.cjs +14 -0
  146. package/dist/primitives/Collapsible.cjs.map +1 -0
  147. package/dist/primitives/Collapsible.d.ts +1 -1
  148. package/dist/primitives/Collapsible.js +5 -0
  149. package/dist/primitives/Collapsible.js.map +1 -0
  150. package/dist/primitives/CollapsibleContent.cjs +14 -0
  151. package/dist/primitives/CollapsibleContent.cjs.map +1 -0
  152. package/dist/primitives/CollapsibleContent.d.ts +1 -1
  153. package/dist/primitives/CollapsibleContent.js +5 -0
  154. package/dist/primitives/CollapsibleContent.js.map +1 -0
  155. package/dist/primitives/CollapsibleTrigger.cjs +14 -0
  156. package/dist/primitives/CollapsibleTrigger.cjs.map +1 -0
  157. package/dist/primitives/CollapsibleTrigger.d.ts +1 -1
  158. package/dist/primitives/CollapsibleTrigger.js +5 -0
  159. package/dist/primitives/CollapsibleTrigger.js.map +1 -0
  160. package/dist/primitives/Command.cjs +14 -0
  161. package/dist/primitives/Command.cjs.map +1 -0
  162. package/dist/primitives/Command.d.ts +1 -1
  163. package/dist/primitives/Command.js +5 -0
  164. package/dist/primitives/Command.js.map +1 -0
  165. package/dist/primitives/CommandDialog.cjs +14 -0
  166. package/dist/primitives/CommandDialog.cjs.map +1 -0
  167. package/dist/primitives/CommandDialog.d.ts +1 -1
  168. package/dist/primitives/CommandDialog.js +5 -0
  169. package/dist/primitives/CommandDialog.js.map +1 -0
  170. package/dist/primitives/CommandEmpty.cjs +14 -0
  171. package/dist/primitives/CommandEmpty.cjs.map +1 -0
  172. package/dist/primitives/CommandEmpty.d.ts +1 -1
  173. package/dist/primitives/CommandEmpty.js +5 -0
  174. package/dist/primitives/CommandEmpty.js.map +1 -0
  175. package/dist/primitives/CommandGroup.cjs +14 -0
  176. package/dist/primitives/CommandGroup.cjs.map +1 -0
  177. package/dist/primitives/CommandGroup.d.ts +1 -1
  178. package/dist/primitives/CommandGroup.js +5 -0
  179. package/dist/primitives/CommandGroup.js.map +1 -0
  180. package/dist/primitives/CommandInput.cjs +14 -0
  181. package/dist/primitives/CommandInput.cjs.map +1 -0
  182. package/dist/primitives/CommandInput.d.ts +1 -1
  183. package/dist/primitives/CommandInput.js +5 -0
  184. package/dist/primitives/CommandInput.js.map +1 -0
  185. package/dist/primitives/CommandItem.cjs +14 -0
  186. package/dist/primitives/CommandItem.cjs.map +1 -0
  187. package/dist/primitives/CommandItem.d.ts +1 -1
  188. package/dist/primitives/CommandItem.js +5 -0
  189. package/dist/primitives/CommandItem.js.map +1 -0
  190. package/dist/primitives/CommandList.cjs +14 -0
  191. package/dist/primitives/CommandList.cjs.map +1 -0
  192. package/dist/primitives/CommandList.d.ts +1 -1
  193. package/dist/primitives/CommandList.js +5 -0
  194. package/dist/primitives/CommandList.js.map +1 -0
  195. package/dist/primitives/CommandSeparator.cjs +14 -0
  196. package/dist/primitives/CommandSeparator.cjs.map +1 -0
  197. package/dist/primitives/CommandSeparator.d.ts +1 -1
  198. package/dist/primitives/CommandSeparator.js +5 -0
  199. package/dist/primitives/CommandSeparator.js.map +1 -0
  200. package/dist/primitives/CommandShortcut.cjs +14 -0
  201. package/dist/primitives/CommandShortcut.cjs.map +1 -0
  202. package/dist/primitives/CommandShortcut.d.ts +1 -1
  203. package/dist/primitives/CommandShortcut.js +5 -0
  204. package/dist/primitives/CommandShortcut.js.map +1 -0
  205. package/dist/primitives/Dialog.cjs +14 -0
  206. package/dist/primitives/Dialog.cjs.map +1 -0
  207. package/dist/primitives/Dialog.d.ts +1 -1
  208. package/dist/primitives/Dialog.js +5 -0
  209. package/dist/primitives/Dialog.js.map +1 -0
  210. package/dist/primitives/DialogClose.cjs +14 -0
  211. package/dist/primitives/DialogClose.cjs.map +1 -0
  212. package/dist/primitives/DialogClose.d.ts +1 -1
  213. package/dist/primitives/DialogClose.js +5 -0
  214. package/dist/primitives/DialogClose.js.map +1 -0
  215. package/dist/primitives/DialogContent.cjs +14 -0
  216. package/dist/primitives/DialogContent.cjs.map +1 -0
  217. package/dist/primitives/DialogContent.d.ts +1 -1
  218. package/dist/primitives/DialogContent.js +5 -0
  219. package/dist/primitives/DialogContent.js.map +1 -0
  220. package/dist/primitives/DialogDescription.cjs +14 -0
  221. package/dist/primitives/DialogDescription.cjs.map +1 -0
  222. package/dist/primitives/DialogDescription.d.ts +1 -1
  223. package/dist/primitives/DialogDescription.js +5 -0
  224. package/dist/primitives/DialogDescription.js.map +1 -0
  225. package/dist/primitives/DialogFooter.cjs +14 -0
  226. package/dist/primitives/DialogFooter.cjs.map +1 -0
  227. package/dist/primitives/DialogFooter.d.ts +1 -1
  228. package/dist/primitives/DialogFooter.js +5 -0
  229. package/dist/primitives/DialogFooter.js.map +1 -0
  230. package/dist/primitives/DialogHeader.cjs +14 -0
  231. package/dist/primitives/DialogHeader.cjs.map +1 -0
  232. package/dist/primitives/DialogHeader.d.ts +1 -1
  233. package/dist/primitives/DialogHeader.js +5 -0
  234. package/dist/primitives/DialogHeader.js.map +1 -0
  235. package/dist/primitives/DialogOverlay.cjs +14 -0
  236. package/dist/primitives/DialogOverlay.cjs.map +1 -0
  237. package/dist/primitives/DialogOverlay.d.ts +1 -1
  238. package/dist/primitives/DialogOverlay.js +5 -0
  239. package/dist/primitives/DialogOverlay.js.map +1 -0
  240. package/dist/primitives/DialogPortal.cjs +14 -0
  241. package/dist/primitives/DialogPortal.cjs.map +1 -0
  242. package/dist/primitives/DialogPortal.d.ts +1 -1
  243. package/dist/primitives/DialogPortal.js +5 -0
  244. package/dist/primitives/DialogPortal.js.map +1 -0
  245. package/dist/primitives/DialogTitle.cjs +14 -0
  246. package/dist/primitives/DialogTitle.cjs.map +1 -0
  247. package/dist/primitives/DialogTitle.d.ts +1 -1
  248. package/dist/primitives/DialogTitle.js +5 -0
  249. package/dist/primitives/DialogTitle.js.map +1 -0
  250. package/dist/primitives/DialogTrigger.cjs +14 -0
  251. package/dist/primitives/DialogTrigger.cjs.map +1 -0
  252. package/dist/primitives/DialogTrigger.d.ts +1 -1
  253. package/dist/primitives/DialogTrigger.js +5 -0
  254. package/dist/primitives/DialogTrigger.js.map +1 -0
  255. package/dist/primitives/DropdownMenu.cjs +14 -0
  256. package/dist/primitives/DropdownMenu.cjs.map +1 -0
  257. package/dist/primitives/DropdownMenu.d.ts +1 -1
  258. package/dist/primitives/DropdownMenu.js +5 -0
  259. package/dist/primitives/DropdownMenu.js.map +1 -0
  260. package/dist/primitives/DropdownMenuCheckboxItem.cjs +14 -0
  261. package/dist/primitives/DropdownMenuCheckboxItem.cjs.map +1 -0
  262. package/dist/primitives/DropdownMenuCheckboxItem.d.ts +1 -1
  263. package/dist/primitives/DropdownMenuCheckboxItem.js +5 -0
  264. package/dist/primitives/DropdownMenuCheckboxItem.js.map +1 -0
  265. package/dist/primitives/DropdownMenuContent.cjs +14 -0
  266. package/dist/primitives/DropdownMenuContent.cjs.map +1 -0
  267. package/dist/primitives/DropdownMenuContent.d.ts +1 -1
  268. package/dist/primitives/DropdownMenuContent.js +5 -0
  269. package/dist/primitives/DropdownMenuContent.js.map +1 -0
  270. package/dist/primitives/DropdownMenuGroup.cjs +14 -0
  271. package/dist/primitives/DropdownMenuGroup.cjs.map +1 -0
  272. package/dist/primitives/DropdownMenuGroup.d.ts +1 -1
  273. package/dist/primitives/DropdownMenuGroup.js +5 -0
  274. package/dist/primitives/DropdownMenuGroup.js.map +1 -0
  275. package/dist/primitives/DropdownMenuItem.cjs +14 -0
  276. package/dist/primitives/DropdownMenuItem.cjs.map +1 -0
  277. package/dist/primitives/DropdownMenuItem.d.ts +1 -1
  278. package/dist/primitives/DropdownMenuItem.js +5 -0
  279. package/dist/primitives/DropdownMenuItem.js.map +1 -0
  280. package/dist/primitives/DropdownMenuLabel.cjs +14 -0
  281. package/dist/primitives/DropdownMenuLabel.cjs.map +1 -0
  282. package/dist/primitives/DropdownMenuLabel.d.ts +1 -1
  283. package/dist/primitives/DropdownMenuLabel.js +5 -0
  284. package/dist/primitives/DropdownMenuLabel.js.map +1 -0
  285. package/dist/primitives/DropdownMenuPortal.cjs +14 -0
  286. package/dist/primitives/DropdownMenuPortal.cjs.map +1 -0
  287. package/dist/primitives/DropdownMenuPortal.d.ts +1 -1
  288. package/dist/primitives/DropdownMenuPortal.js +5 -0
  289. package/dist/primitives/DropdownMenuPortal.js.map +1 -0
  290. package/dist/primitives/DropdownMenuRadioGroup.cjs +14 -0
  291. package/dist/primitives/DropdownMenuRadioGroup.cjs.map +1 -0
  292. package/dist/primitives/DropdownMenuRadioGroup.d.ts +1 -1
  293. package/dist/primitives/DropdownMenuRadioGroup.js +5 -0
  294. package/dist/primitives/DropdownMenuRadioGroup.js.map +1 -0
  295. package/dist/primitives/DropdownMenuRadioItem.cjs +14 -0
  296. package/dist/primitives/DropdownMenuRadioItem.cjs.map +1 -0
  297. package/dist/primitives/DropdownMenuRadioItem.d.ts +1 -1
  298. package/dist/primitives/DropdownMenuRadioItem.js +5 -0
  299. package/dist/primitives/DropdownMenuRadioItem.js.map +1 -0
  300. package/dist/primitives/DropdownMenuSeparator.cjs +14 -0
  301. package/dist/primitives/DropdownMenuSeparator.cjs.map +1 -0
  302. package/dist/primitives/DropdownMenuSeparator.d.ts +1 -1
  303. package/dist/primitives/DropdownMenuSeparator.js +5 -0
  304. package/dist/primitives/DropdownMenuSeparator.js.map +1 -0
  305. package/dist/primitives/DropdownMenuShortcut.cjs +14 -0
  306. package/dist/primitives/DropdownMenuShortcut.cjs.map +1 -0
  307. package/dist/primitives/DropdownMenuShortcut.d.ts +1 -1
  308. package/dist/primitives/DropdownMenuShortcut.js +5 -0
  309. package/dist/primitives/DropdownMenuShortcut.js.map +1 -0
  310. package/dist/primitives/DropdownMenuSub.cjs +14 -0
  311. package/dist/primitives/DropdownMenuSub.cjs.map +1 -0
  312. package/dist/primitives/DropdownMenuSub.d.ts +1 -1
  313. package/dist/primitives/DropdownMenuSub.js +5 -0
  314. package/dist/primitives/DropdownMenuSub.js.map +1 -0
  315. package/dist/primitives/DropdownMenuSubContent.cjs +14 -0
  316. package/dist/primitives/DropdownMenuSubContent.cjs.map +1 -0
  317. package/dist/primitives/DropdownMenuSubContent.d.ts +1 -1
  318. package/dist/primitives/DropdownMenuSubContent.js +5 -0
  319. package/dist/primitives/DropdownMenuSubContent.js.map +1 -0
  320. package/dist/primitives/DropdownMenuSubTrigger.cjs +14 -0
  321. package/dist/primitives/DropdownMenuSubTrigger.cjs.map +1 -0
  322. package/dist/primitives/DropdownMenuSubTrigger.d.ts +1 -1
  323. package/dist/primitives/DropdownMenuSubTrigger.js +5 -0
  324. package/dist/primitives/DropdownMenuSubTrigger.js.map +1 -0
  325. package/dist/primitives/DropdownMenuTrigger.cjs +14 -0
  326. package/dist/primitives/DropdownMenuTrigger.cjs.map +1 -0
  327. package/dist/primitives/DropdownMenuTrigger.d.ts +1 -1
  328. package/dist/primitives/DropdownMenuTrigger.js +5 -0
  329. package/dist/primitives/DropdownMenuTrigger.js.map +1 -0
  330. package/dist/primitives/Input.cjs +14 -0
  331. package/dist/primitives/Input.cjs.map +1 -0
  332. package/dist/primitives/Input.d.ts +1 -1
  333. package/dist/primitives/Input.js +5 -0
  334. package/dist/primitives/Input.js.map +1 -0
  335. package/dist/primitives/Label.cjs +14 -0
  336. package/dist/primitives/Label.cjs.map +1 -0
  337. package/dist/primitives/Label.d.ts +1 -1
  338. package/dist/primitives/Label.js +5 -0
  339. package/dist/primitives/Label.js.map +1 -0
  340. package/dist/primitives/Popover.cjs +14 -0
  341. package/dist/primitives/Popover.cjs.map +1 -0
  342. package/dist/primitives/Popover.d.ts +1 -1
  343. package/dist/primitives/Popover.js +5 -0
  344. package/dist/primitives/Popover.js.map +1 -0
  345. package/dist/primitives/PopoverAnchor.cjs +14 -0
  346. package/dist/primitives/PopoverAnchor.cjs.map +1 -0
  347. package/dist/primitives/PopoverAnchor.d.ts +1 -1
  348. package/dist/primitives/PopoverAnchor.js +5 -0
  349. package/dist/primitives/PopoverAnchor.js.map +1 -0
  350. package/dist/primitives/PopoverClose.cjs +14 -0
  351. package/dist/primitives/PopoverClose.cjs.map +1 -0
  352. package/dist/primitives/PopoverClose.d.ts +1 -0
  353. package/dist/primitives/PopoverClose.js +5 -0
  354. package/dist/primitives/PopoverClose.js.map +1 -0
  355. package/dist/primitives/PopoverContent.cjs +14 -0
  356. package/dist/primitives/PopoverContent.cjs.map +1 -0
  357. package/dist/primitives/PopoverContent.d.ts +1 -1
  358. package/dist/primitives/PopoverContent.js +5 -0
  359. package/dist/primitives/PopoverContent.js.map +1 -0
  360. package/dist/primitives/PopoverTrigger.cjs +14 -0
  361. package/dist/primitives/PopoverTrigger.cjs.map +1 -0
  362. package/dist/primitives/PopoverTrigger.d.ts +1 -1
  363. package/dist/primitives/PopoverTrigger.js +5 -0
  364. package/dist/primitives/PopoverTrigger.js.map +1 -0
  365. package/dist/primitives/Progress.cjs +14 -0
  366. package/dist/primitives/Progress.cjs.map +1 -0
  367. package/dist/primitives/Progress.d.ts +1 -1
  368. package/dist/primitives/Progress.js +5 -0
  369. package/dist/primitives/Progress.js.map +1 -0
  370. package/dist/primitives/ResizableHandle.cjs +14 -0
  371. package/dist/primitives/ResizableHandle.cjs.map +1 -0
  372. package/dist/primitives/ResizableHandle.d.ts +1 -0
  373. package/dist/primitives/ResizableHandle.js +5 -0
  374. package/dist/primitives/ResizableHandle.js.map +1 -0
  375. package/dist/primitives/ResizablePanel.cjs +14 -0
  376. package/dist/primitives/ResizablePanel.cjs.map +1 -0
  377. package/dist/primitives/ResizablePanel.d.ts +1 -0
  378. package/dist/primitives/ResizablePanel.js +5 -0
  379. package/dist/primitives/ResizablePanel.js.map +1 -0
  380. package/dist/primitives/ResizablePanelGroup.cjs +14 -0
  381. package/dist/primitives/ResizablePanelGroup.cjs.map +1 -0
  382. package/dist/primitives/ResizablePanelGroup.d.ts +1 -0
  383. package/dist/primitives/ResizablePanelGroup.js +5 -0
  384. package/dist/primitives/ResizablePanelGroup.js.map +1 -0
  385. package/dist/primitives/ScrollArea.cjs +14 -0
  386. package/dist/primitives/ScrollArea.cjs.map +1 -0
  387. package/dist/primitives/ScrollArea.d.ts +1 -1
  388. package/dist/primitives/ScrollArea.js +5 -0
  389. package/dist/primitives/ScrollArea.js.map +1 -0
  390. package/dist/primitives/ScrollBar.cjs +14 -0
  391. package/dist/primitives/ScrollBar.cjs.map +1 -0
  392. package/dist/primitives/ScrollBar.d.ts +1 -1
  393. package/dist/primitives/ScrollBar.js +5 -0
  394. package/dist/primitives/ScrollBar.js.map +1 -0
  395. package/dist/primitives/Select.cjs +14 -0
  396. package/dist/primitives/Select.cjs.map +1 -0
  397. package/dist/primitives/Select.d.ts +1 -1
  398. package/dist/primitives/Select.js +5 -0
  399. package/dist/primitives/Select.js.map +1 -0
  400. package/dist/primitives/SelectContent.cjs +14 -0
  401. package/dist/primitives/SelectContent.cjs.map +1 -0
  402. package/dist/primitives/SelectContent.d.ts +1 -1
  403. package/dist/primitives/SelectContent.js +5 -0
  404. package/dist/primitives/SelectContent.js.map +1 -0
  405. package/dist/primitives/SelectGroup.cjs +14 -0
  406. package/dist/primitives/SelectGroup.cjs.map +1 -0
  407. package/dist/primitives/SelectGroup.d.ts +1 -1
  408. package/dist/primitives/SelectGroup.js +5 -0
  409. package/dist/primitives/SelectGroup.js.map +1 -0
  410. package/dist/primitives/SelectItem.cjs +14 -0
  411. package/dist/primitives/SelectItem.cjs.map +1 -0
  412. package/dist/primitives/SelectItem.d.ts +1 -1
  413. package/dist/primitives/SelectItem.js +5 -0
  414. package/dist/primitives/SelectItem.js.map +1 -0
  415. package/dist/primitives/SelectLabel.cjs +14 -0
  416. package/dist/primitives/SelectLabel.cjs.map +1 -0
  417. package/dist/primitives/SelectLabel.d.ts +1 -1
  418. package/dist/primitives/SelectLabel.js +5 -0
  419. package/dist/primitives/SelectLabel.js.map +1 -0
  420. package/dist/primitives/SelectScrollDownButton.cjs +14 -0
  421. package/dist/primitives/SelectScrollDownButton.cjs.map +1 -0
  422. package/dist/primitives/SelectScrollDownButton.d.ts +1 -1
  423. package/dist/primitives/SelectScrollDownButton.js +5 -0
  424. package/dist/primitives/SelectScrollDownButton.js.map +1 -0
  425. package/dist/primitives/SelectScrollUpButton.cjs +14 -0
  426. package/dist/primitives/SelectScrollUpButton.cjs.map +1 -0
  427. package/dist/primitives/SelectScrollUpButton.d.ts +1 -1
  428. package/dist/primitives/SelectScrollUpButton.js +5 -0
  429. package/dist/primitives/SelectScrollUpButton.js.map +1 -0
  430. package/dist/primitives/SelectSeparator.cjs +14 -0
  431. package/dist/primitives/SelectSeparator.cjs.map +1 -0
  432. package/dist/primitives/SelectSeparator.d.ts +1 -1
  433. package/dist/primitives/SelectSeparator.js +5 -0
  434. package/dist/primitives/SelectSeparator.js.map +1 -0
  435. package/dist/primitives/SelectTrigger.cjs +14 -0
  436. package/dist/primitives/SelectTrigger.cjs.map +1 -0
  437. package/dist/primitives/SelectTrigger.d.ts +1 -1
  438. package/dist/primitives/SelectTrigger.js +5 -0
  439. package/dist/primitives/SelectTrigger.js.map +1 -0
  440. package/dist/primitives/SelectValue.cjs +14 -0
  441. package/dist/primitives/SelectValue.cjs.map +1 -0
  442. package/dist/primitives/SelectValue.d.ts +1 -1
  443. package/dist/primitives/SelectValue.js +5 -0
  444. package/dist/primitives/SelectValue.js.map +1 -0
  445. package/dist/primitives/Separator.cjs +14 -0
  446. package/dist/primitives/Separator.cjs.map +1 -0
  447. package/dist/primitives/Separator.d.ts +1 -1
  448. package/dist/primitives/Separator.js +5 -0
  449. package/dist/primitives/Separator.js.map +1 -0
  450. package/dist/primitives/Slider.cjs +14 -0
  451. package/dist/primitives/Slider.cjs.map +1 -0
  452. package/dist/primitives/Slider.d.ts +1 -1
  453. package/dist/primitives/Slider.js +5 -0
  454. package/dist/primitives/Slider.js.map +1 -0
  455. package/dist/primitives/Switch.cjs +14 -0
  456. package/dist/primitives/Switch.cjs.map +1 -0
  457. package/dist/primitives/Switch.d.ts +1 -1
  458. package/dist/primitives/Switch.js +5 -0
  459. package/dist/primitives/Switch.js.map +1 -0
  460. package/dist/primitives/Tabs.cjs +14 -0
  461. package/dist/primitives/Tabs.cjs.map +1 -0
  462. package/dist/primitives/Tabs.d.ts +1 -1
  463. package/dist/primitives/Tabs.js +5 -0
  464. package/dist/primitives/Tabs.js.map +1 -0
  465. package/dist/primitives/TabsContent.cjs +14 -0
  466. package/dist/primitives/TabsContent.cjs.map +1 -0
  467. package/dist/primitives/TabsContent.d.ts +1 -1
  468. package/dist/primitives/TabsContent.js +5 -0
  469. package/dist/primitives/TabsContent.js.map +1 -0
  470. package/dist/primitives/TabsList.cjs +14 -0
  471. package/dist/primitives/TabsList.cjs.map +1 -0
  472. package/dist/primitives/TabsList.d.ts +1 -1
  473. package/dist/primitives/TabsList.js +5 -0
  474. package/dist/primitives/TabsList.js.map +1 -0
  475. package/dist/primitives/TabsTrigger.cjs +14 -0
  476. package/dist/primitives/TabsTrigger.cjs.map +1 -0
  477. package/dist/primitives/TabsTrigger.d.ts +1 -1
  478. package/dist/primitives/TabsTrigger.js +5 -0
  479. package/dist/primitives/TabsTrigger.js.map +1 -0
  480. package/dist/primitives/Textarea.cjs +14 -0
  481. package/dist/primitives/Textarea.cjs.map +1 -0
  482. package/dist/primitives/Textarea.d.ts +1 -1
  483. package/dist/primitives/Textarea.js +5 -0
  484. package/dist/primitives/Textarea.js.map +1 -0
  485. package/dist/primitives/Toaster.cjs +14 -0
  486. package/dist/primitives/Toaster.cjs.map +1 -0
  487. package/dist/primitives/Toaster.d.ts +1 -1
  488. package/dist/primitives/Toaster.js +5 -0
  489. package/dist/primitives/Toaster.js.map +1 -0
  490. package/dist/primitives/Tooltip.cjs +14 -0
  491. package/dist/primitives/Tooltip.cjs.map +1 -0
  492. package/dist/primitives/Tooltip.d.ts +1 -1
  493. package/dist/primitives/Tooltip.js +5 -0
  494. package/dist/primitives/Tooltip.js.map +1 -0
  495. package/dist/primitives/TooltipContent.cjs +14 -0
  496. package/dist/primitives/TooltipContent.cjs.map +1 -0
  497. package/dist/primitives/TooltipContent.d.ts +1 -1
  498. package/dist/primitives/TooltipContent.js +5 -0
  499. package/dist/primitives/TooltipContent.js.map +1 -0
  500. package/dist/primitives/TooltipProvider.cjs +14 -0
  501. package/dist/primitives/TooltipProvider.cjs.map +1 -0
  502. package/dist/primitives/TooltipProvider.d.ts +1 -1
  503. package/dist/primitives/TooltipProvider.js +5 -0
  504. package/dist/primitives/TooltipProvider.js.map +1 -0
  505. package/dist/primitives/TooltipTrigger.cjs +14 -0
  506. package/dist/primitives/TooltipTrigger.cjs.map +1 -0
  507. package/dist/primitives/TooltipTrigger.d.ts +1 -1
  508. package/dist/primitives/TooltipTrigger.js +5 -0
  509. package/dist/primitives/TooltipTrigger.js.map +1 -0
  510. package/dist/primitives/badgeVariants.cjs +14 -0
  511. package/dist/primitives/badgeVariants.cjs.map +1 -0
  512. package/dist/primitives/badgeVariants.d.ts +1 -1
  513. package/dist/primitives/badgeVariants.js +5 -0
  514. package/dist/primitives/badgeVariants.js.map +1 -0
  515. package/dist/primitives/buttonVariants.cjs +14 -0
  516. package/dist/primitives/buttonVariants.cjs.map +1 -0
  517. package/dist/primitives/buttonVariants.d.ts +1 -1
  518. package/dist/primitives/buttonVariants.js +5 -0
  519. package/dist/primitives/buttonVariants.js.map +1 -0
  520. package/dist/primitives/index.cjs +370 -0
  521. package/dist/primitives/index.cjs.map +1 -0
  522. package/dist/primitives/index.d.ts +1 -1
  523. package/dist/primitives/index.js +5 -0
  524. package/dist/primitives/index.js.map +1 -0
  525. package/dist/primitives/toast.cjs +14 -0
  526. package/dist/primitives/toast.cjs.map +1 -0
  527. package/dist/primitives/toast.d.ts +1 -1
  528. package/dist/primitives/toast.js +5 -0
  529. package/dist/primitives/toast.js.map +1 -0
  530. package/dist/product/index.cjs +284 -35
  531. package/dist/product/index.cjs.map +1 -1
  532. package/dist/product/index.d.ts +1 -0
  533. package/dist/product/index.js +264 -9
  534. package/dist/product/index.js.map +1 -1
  535. package/dist/product/menu/index.d.ts +1 -1
  536. package/dist/theme.css +160 -0
  537. package/package.json +32 -84
  538. package/dist/backends/shadcn/aspect-ratio.d.ts +0 -4
  539. package/dist/backends/shadcn/avatar.d.ts +0 -6
  540. package/dist/backends/shadcn/badge.d.ts +0 -9
  541. package/dist/backends/shadcn/button.d.ts +0 -19
  542. package/dist/backends/shadcn/card.d.ts +0 -9
  543. package/dist/backends/shadcn/checkbox.d.ts +0 -9
  544. package/dist/backends/shadcn/collapsible.d.ts +0 -5
  545. package/dist/backends/shadcn/command.d.ts +0 -80
  546. package/dist/backends/shadcn/dialog.d.ts +0 -15
  547. package/dist/backends/shadcn/dropdown-menu.d.ts +0 -34
  548. package/dist/backends/shadcn/index.d.ts +0 -23
  549. package/dist/backends/shadcn/input.d.ts +0 -11
  550. package/dist/backends/shadcn/label.d.ts +0 -4
  551. package/dist/backends/shadcn/popover.d.ts +0 -7
  552. package/dist/backends/shadcn/progress.d.ts +0 -4
  553. package/dist/backends/shadcn/scroll-area.d.ts +0 -5
  554. package/dist/backends/shadcn/select.d.ts +0 -13
  555. package/dist/backends/shadcn/separator.d.ts +0 -4
  556. package/dist/backends/shadcn/slider.d.ts +0 -4
  557. package/dist/backends/shadcn/switch.d.ts +0 -4
  558. package/dist/backends/shadcn/tabs.d.ts +0 -7
  559. package/dist/backends/shadcn/textarea.d.ts +0 -4
  560. package/dist/backends/shadcn/toaster.d.ts +0 -10
  561. package/dist/backends/shadcn/tooltip.d.ts +0 -7
  562. package/dist/backends/shadcn/utils.d.ts +0 -8
  563. package/dist/billing.cjs +0 -15
  564. package/dist/billing.cjs.map +0 -1
  565. package/dist/billing.d.ts +0 -1
  566. package/dist/billing.js +0 -4
  567. package/dist/billing.js.map +0 -1
  568. package/dist/chunk-5CZOYONP.js +0 -343
  569. package/dist/chunk-5CZOYONP.js.map +0 -1
  570. package/dist/chunk-GWNNLYX4.cjs +0 -353
  571. package/dist/chunk-GWNNLYX4.cjs.map +0 -1
  572. package/dist/network.cjs +0 -15
  573. package/dist/network.cjs.map +0 -1
  574. package/dist/network.d.ts +0 -1
  575. package/dist/network.js +0 -4
  576. package/dist/network.js.map +0 -1
  577. package/dist/product/menu/DropdownMenu.d.ts +0 -29
  578. package/dist/wallet.cjs +0 -15
  579. package/dist/wallet.cjs.map +0 -1
  580. package/dist/wallet.d.ts +0 -1
  581. package/dist/wallet.js +0 -4
  582. package/dist/wallet.js.map +0 -1
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  The **one** Hanzo component library, built on [`@hanzo/gui`](https://github.com/hanzoai/gui) (Tamagui) so every component runs on **web, native (iOS), and desktop**. It unifies what used to be three fragmented homes — `@hanzo/data`, the console's in-app `components/ui/*`, and ad-hoc duplicates — into one canonical, presentational, host-agnostic, clean-room library.
4
4
 
5
- > This is the gui-based line (**v8+**). The legacy shadcn/Radix `@hanzo/ui` (v5.x) is a different architecture; it is being retired to `@hanzo/ui-shadcn` so the `@hanzo/ui` name carries the unified gui-based library forward — see `CONSOLIDATION.md` at the repo root.
5
+ > **v8+** is one substrate: every component renders through `@hanzo/gui`, so one import works on web, native and desktop. The v5.x Radix + Tailwind line is a different architecture and is retired — see `CONSOLIDATION.md` at the repo root.
6
6
 
7
7
  ## Install
8
8
 
@@ -0,0 +1,14 @@
1
+ /**
2
+ * AspectRatio — a box that holds a width-to-height ratio.
3
+ *
4
+ * `aspectRatio` is a first-class layout property of the gui/Yoga box model, so
5
+ * there is nothing to compute and no padding-bottom trick: the ratio is the
6
+ * style. That is why this is the whole component on web, native and desktop.
7
+ */
8
+ import { type YStackProps } from '@hanzo/gui';
9
+ export interface AspectRatioProps extends YStackProps {
10
+ /** Width divided by height. Square by default. */
11
+ ratio?: number;
12
+ }
13
+ declare const AspectRatio: ({ ratio, ...props }: AspectRatioProps) => import("react/jsx-runtime").JSX.Element;
14
+ export { AspectRatio };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Avatar — circular image with a text fallback.
3
+ *
4
+ * @hanzogui/avatar owns the load/error state machine and the fallback delay, so
5
+ * this only names the three parts and dresses them in tokens.
6
+ */
7
+ import { Avatar as GuiAvatar } from '@hanzo/gui';
8
+ import type { ComponentProps } from 'react';
9
+ export type AvatarProps = ComponentProps<typeof GuiAvatar>;
10
+ export type AvatarImageProps = ComponentProps<typeof GuiAvatar.Image>;
11
+ export type AvatarFallbackProps = ComponentProps<typeof GuiAvatar.Fallback>;
12
+ declare const Avatar: (props: AvatarProps) => import("react/jsx-runtime").JSX.Element;
13
+ declare const AvatarImage: (props: AvatarImageProps) => import("react/jsx-runtime").JSX.Element;
14
+ /** Bare text needs a Text host to render on native; elements pass through. */
15
+ declare const AvatarFallback: ({ children, ...props }: AvatarFallbackProps) => import("react/jsx-runtime").JSX.Element;
16
+ export { Avatar, AvatarImage, AvatarFallback };
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+ export type BadgeVariant = 'default' | 'secondary' | 'destructive' | 'outline' | 'ghost' | 'link' | 'inputAdornment' | 'tags';
3
+ /**
4
+ * A stable class handle for hosts that hook badges from CSS. Styling lives in
5
+ * the tokens; this only names the variant.
6
+ */
7
+ export declare const badgeVariants: ({ variant }?: {
8
+ variant?: BadgeVariant | null;
9
+ }) => string;
10
+ /**
11
+ * Typed as span props because that is the contract every existing call site was
12
+ * written against; the leftovers are handed to gui, which forwards unknown props
13
+ * to the host element on web and drops them on native.
14
+ */
15
+ export type BadgeProps = React.ComponentProps<'span'> & {
16
+ variant?: BadgeVariant | null;
17
+ asChild?: boolean;
18
+ };
19
+ export declare function Badge({ className, variant, asChild, children, ...props }: BadgeProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,50 @@
1
+ import type { ComponentProps, ReactNode } from 'react';
2
+ export type ButtonVariant = 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link' | 'primary' | 'linkFG' | 'linkMuted';
3
+ export type ButtonSize = 'default' | 'sm' | 'lg' | 'icon' | 'icon-sm' | 'icon-lg';
4
+ declare const Frame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiElement, import("@hanzogui/web").StackNonStyleProps & {
5
+ icon?: import("react").JSX.Element | import("react").FunctionComponent<{
6
+ color?: any;
7
+ size?: any;
8
+ }> | null;
9
+ iconAfter?: import("react").JSX.Element | import("react").FunctionComponent<{
10
+ color?: any;
11
+ size?: any;
12
+ }> | null;
13
+ scaleIcon?: number;
14
+ iconSize?: import("@hanzogui/web").SizeTokens;
15
+ type?: "submit" | "reset" | "button";
16
+ form?: string;
17
+ formAction?: string;
18
+ formEncType?: string;
19
+ formMethod?: string;
20
+ formNoValidate?: boolean;
21
+ formTarget?: string;
22
+ name?: string;
23
+ value?: string | readonly string[] | number;
24
+ }, import("@hanzogui/web").StackStyleBase, {
25
+ elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
26
+ size?: number | "sm" | "lg" | "default" | import("@hanzogui/web").SizeTokens | "icon" | "icon-sm" | "icon-lg" | undefined;
27
+ disabled?: boolean | undefined;
28
+ unstyled?: boolean | undefined;
29
+ variant?: "link" | "outline" | "default" | "secondary" | "destructive" | "ghost" | "primary" | "linkFG" | "linkMuted" | "outlined" | undefined;
30
+ circular?: boolean | undefined;
31
+ chromeless?: boolean | "all" | undefined;
32
+ }, import("@hanzogui/web").StaticConfigPublic>;
33
+ /**
34
+ * A stable class handle for hosts that hook buttons from CSS. Styling lives in
35
+ * the tokens; this only names the variant and size.
36
+ */
37
+ export declare const buttonVariants: ({ variant, size, className, }?: {
38
+ variant?: ButtonVariant | null;
39
+ size?: ButtonSize | null;
40
+ className?: string;
41
+ }) => string;
42
+ export type ButtonProps = Omit<ComponentProps<typeof Frame>, 'variant' | 'size' | 'children'> & {
43
+ variant?: ButtonVariant | null;
44
+ size?: ButtonSize | null;
45
+ asChild?: boolean;
46
+ isLoading?: boolean;
47
+ children?: ReactNode;
48
+ };
49
+ declare function Button({ className, variant, size, asChild, isLoading, disabled, children, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
50
+ export { Button };
@@ -0,0 +1,44 @@
1
+ import type { ComponentProps } from 'react';
2
+ declare const CardFrame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiElement, import("@hanzogui/core").RNViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
3
+ elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
4
+ fullscreen?: boolean | undefined;
5
+ }, import("@hanzogui/web").StaticConfigPublic>;
6
+ declare const HeaderFrame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiElement, import("@hanzogui/core").RNViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
7
+ elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
8
+ fullscreen?: boolean | undefined;
9
+ }, import("@hanzogui/web").StaticConfigPublic>;
10
+ declare const TitleFrame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiTextElement, import("@hanzogui/web").TextNonStyleProps, import("@hanzogui/web").TextStylePropsBase, {
11
+ unstyled?: boolean | undefined;
12
+ size?: import("@hanzogui/web").FontSizeTokens | undefined;
13
+ }, import("@hanzogui/web").StaticConfigPublic>;
14
+ declare const DescriptionFrame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiTextElement, import("@hanzogui/web").TextNonStyleProps, import("@hanzogui/web").TextStylePropsBase, {
15
+ unstyled?: boolean | undefined;
16
+ size?: import("@hanzogui/web").FontSizeTokens | undefined;
17
+ }, import("@hanzogui/web").StaticConfigPublic>;
18
+ declare const ActionFrame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiElement, import("@hanzogui/core").RNViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
19
+ elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
20
+ fullscreen?: boolean | undefined;
21
+ }, import("@hanzogui/web").StaticConfigPublic>;
22
+ declare const ContentFrame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiElement, import("@hanzogui/core").RNViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
23
+ elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
24
+ fullscreen?: boolean | undefined;
25
+ }, import("@hanzogui/web").StaticConfigPublic>;
26
+ declare const FooterFrame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiElement, import("@hanzogui/core").RNViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
27
+ elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
28
+ fullscreen?: boolean | undefined;
29
+ }, import("@hanzogui/web").StaticConfigPublic>;
30
+ export type CardProps = ComponentProps<typeof CardFrame>;
31
+ export type CardHeaderProps = ComponentProps<typeof HeaderFrame>;
32
+ export type CardTitleProps = ComponentProps<typeof TitleFrame>;
33
+ export type CardDescriptionProps = ComponentProps<typeof DescriptionFrame>;
34
+ export type CardActionProps = ComponentProps<typeof ActionFrame>;
35
+ export type CardContentProps = ComponentProps<typeof ContentFrame>;
36
+ export type CardFooterProps = ComponentProps<typeof FooterFrame>;
37
+ declare const Card: (p: CardProps) => import("react/jsx-runtime").JSX.Element;
38
+ declare const CardHeader: (p: CardHeaderProps) => import("react/jsx-runtime").JSX.Element;
39
+ declare const CardTitle: (p: CardTitleProps) => import("react/jsx-runtime").JSX.Element;
40
+ declare const CardDescription: (p: CardDescriptionProps) => import("react/jsx-runtime").JSX.Element;
41
+ declare const CardAction: (p: CardActionProps) => import("react/jsx-runtime").JSX.Element;
42
+ declare const CardContent: (p: CardContentProps) => import("react/jsx-runtime").JSX.Element;
43
+ declare const CardFooter: (p: CardFooterProps) => import("react/jsx-runtime").JSX.Element;
44
+ export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Checkbox — 16px box, `hitSlop` to the 44px touch floor.
3
+ * @hanzogui/checkbox owns the checked/indeterminate state and a11y.
4
+ */
5
+ import { Checkbox as GuiCheckbox } from '@hanzo/gui';
6
+ import type { ComponentProps } from 'react';
7
+ export type CheckboxProps = ComponentProps<typeof GuiCheckbox>;
8
+ declare const Checkbox: (props: CheckboxProps) => import("react/jsx-runtime").JSX.Element;
9
+ export { Checkbox };
@@ -0,0 +1,10 @@
1
+ /** Collapsible — @hanzogui/collapsible's three parts under the flat names. */
2
+ import { Collapsible as GuiCollapsible } from '@hanzo/gui';
3
+ import type { ComponentProps } from 'react';
4
+ export type CollapsibleProps = ComponentProps<typeof GuiCollapsible>;
5
+ export type CollapsibleTriggerProps = ComponentProps<typeof GuiCollapsible.Trigger>;
6
+ export type CollapsibleContentProps = ComponentProps<typeof GuiCollapsible.Content>;
7
+ declare const Collapsible: (p: CollapsibleProps) => import("react/jsx-runtime").JSX.Element;
8
+ declare const CollapsibleTrigger: (p: CollapsibleTriggerProps) => import("react/jsx-runtime").JSX.Element;
9
+ declare const CollapsibleContent: (p: CollapsibleContentProps) => import("react/jsx-runtime").JSX.Element;
10
+ export { Collapsible, CollapsibleTrigger, CollapsibleContent };
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Command — the filterable command palette, native to gui.
3
+ *
4
+ * cmdk is gone. What it gave us was one thing: a list whose items each know
5
+ * whether they match the current search, plus a cursor that walks the ones that
6
+ * do. That is a small state machine over VALUES (a search string, a registry of
7
+ * item values, a selected value) — it does not need a DOM, so it works the same
8
+ * on web, native and desktop.
9
+ *
10
+ * Two decisions carry the whole file:
11
+ *
12
+ * • Filtered-out items are HIDDEN (`display="none"`), never unmounted. `display`
13
+ * is a real Yoga property, so this is one behaviour on both platforms — and
14
+ * because items stay mounted, registration order is fixed at first mount and
15
+ * stays true to source order. Arrow-key traversal therefore needs no DOM query.
16
+ * • An item registers a mutable REF of itself, not a snapshot. Inline props
17
+ * (`keywords={['a']}`, `onSelect={() => …}`) change identity every render;
18
+ * registering the ref means the registry is always fresh without an effect
19
+ * that re-fires forever.
20
+ *
21
+ * Keyboard navigation is web-only by construction (`isWeb` guards `onKeyDown`);
22
+ * on touch the list is driven by press, which is the native idiom anyway.
23
+ */
24
+ import { type ComponentProps, type FC, type ReactNode, type RefAttributes } from 'react';
25
+ import { Dialog, Input, ListItem, ScrollView, Separator, SizableText, YStack, type GuiElement } from '@hanzo/gui';
26
+ import { type CommandFilter } from './command.logic';
27
+ export type { CommandFilter };
28
+ export type CommandProps = Omit<ComponentProps<typeof YStack>, 'onSelect'> & {
29
+ /** Selected item value (controlled). */
30
+ value?: string;
31
+ defaultValue?: string;
32
+ onValueChange?: (value: string) => void;
33
+ filter?: CommandFilter;
34
+ shouldFilter?: boolean;
35
+ /** Arrow keys wrap around at the ends. */
36
+ loop?: boolean;
37
+ label?: string;
38
+ /** ctrl/cmd + n/p/j/k also move the cursor. */
39
+ vimBindings?: boolean;
40
+ /** Hovering an item no longer selects it. */
41
+ disablePointerSelection?: boolean;
42
+ };
43
+ declare const Command: import("react").ForwardRefExoticComponent<Omit<CommandProps, "ref"> & RefAttributes<GuiElement>>;
44
+ export type CommandDialogProps = ComponentProps<typeof Dialog> & {
45
+ title?: string;
46
+ description?: string;
47
+ };
48
+ declare const CommandDialog: ({ title, description, children, ...props }: CommandDialogProps) => import("react/jsx-runtime").JSX.Element;
49
+ export type CommandInputProps = Omit<ComponentProps<typeof Input>, 'value' | 'onChangeText'> & {
50
+ value?: string;
51
+ onValueChange?: (search: string) => void;
52
+ };
53
+ declare const CommandInput: import("react").ForwardRefExoticComponent<Omit<CommandInputProps, "ref"> & RefAttributes<GuiElement>>;
54
+ export type CommandListProps = ComponentProps<typeof ScrollView>;
55
+ declare const CommandList: FC<CommandListProps & RefAttributes<GuiElement>>;
56
+ export type CommandEmptyProps = ComponentProps<typeof YStack>;
57
+ declare const CommandEmpty: import("react").ForwardRefExoticComponent<Omit<Omit<import("@hanzogui/core").RNViewNonStyleProps, "elevation" | keyof import("@hanzogui/web").StackStyleBase | "fullscreen"> & import("@hanzogui/web").WithThemeValues<Omit<import("@hanzogui/web").StackStyleBase, import("@hanzogui/web").Longhands>> & {
58
+ elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
59
+ fullscreen?: boolean | undefined;
60
+ } & import("@hanzogui/web").WithShorthands<import("@hanzogui/web").WithThemeValues<import("@hanzogui/web").StackStyleBase>> & import("@hanzogui/web").WithPseudoProps<import("@hanzogui/web").WithThemeValues<Omit<import("@hanzogui/web").StackStyleBase, import("@hanzogui/web").Longhands>> & {
61
+ elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
62
+ fullscreen?: boolean | undefined;
63
+ } & import("@hanzogui/web").WithShorthands<import("@hanzogui/web").WithThemeValues<import("@hanzogui/web").StackStyleBase>>> & import("@hanzogui/web").WithMediaProps<import("@hanzogui/web").WithThemeShorthandsAndPseudos<import("@hanzogui/web").StackStyleBase, {
64
+ elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
65
+ fullscreen?: boolean | undefined;
66
+ }>> & RefAttributes<GuiElement>, "ref"> & RefAttributes<GuiElement>>;
67
+ export type CommandGroupProps = ComponentProps<typeof YStack> & {
68
+ heading?: ReactNode;
69
+ };
70
+ declare const CommandGroup: import("react").ForwardRefExoticComponent<Omit<CommandGroupProps, "ref"> & RefAttributes<GuiElement>>;
71
+ export type CommandSeparatorProps = ComponentProps<typeof Separator> & {
72
+ /** Keep the rule while a search is active. */
73
+ alwaysRender?: boolean;
74
+ };
75
+ declare const CommandSeparator: FC<CommandSeparatorProps & RefAttributes<GuiElement>>;
76
+ export type CommandItemProps = Omit<ComponentProps<typeof ListItem>, 'onSelect' | 'value'> & {
77
+ value?: string;
78
+ keywords?: string[];
79
+ disabled?: boolean;
80
+ onSelect?: (value: string) => void;
81
+ };
82
+ declare const CommandItem: FC<CommandItemProps & RefAttributes<GuiElement>>;
83
+ /** The trailing key hint. `SizableText` renders a span on web, Text on native. */
84
+ export type CommandShortcutProps = ComponentProps<typeof SizableText>;
85
+ declare const CommandShortcut: (props: CommandShortcutProps) => import("react/jsx-runtime").JSX.Element;
86
+ export { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator, };
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The Command palette's decisions, as pure functions over plain values.
3
+ *
4
+ * cmdk shipped its matcher and its cursor welded to a DOM store. They are neither
5
+ * DOM nor React: `score` answers "does this item survive the search", `step`
6
+ * answers "where does the cursor land". Keeping them here means they are testable
7
+ * in the node env (this module imports no @hanzo/gui runtime), and `command.tsx`
8
+ * is left holding only the view.
9
+ */
10
+ /** `0` hides the item; anything higher keeps it and ranks it. */
11
+ export type CommandFilter = (value: string, search: string, keywords?: string[]) => number;
12
+ /** Exact › prefix › substring (earlier wins) › subsequence › no match. */
13
+ export declare const score: CommandFilter;
14
+ /**
15
+ * Where the cursor goes. `from` is -1 when nothing is selected yet; `count` is
16
+ * the number of REACHABLE (visible, enabled) items, so skipping disabled rows is
17
+ * the caller's filter rather than a second concept in here. Returns -1 for an
18
+ * empty list.
19
+ */
20
+ export declare const step: (count: number, from: number, delta: number, loop?: boolean) => number;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Dialog — modal surface, flattened from @hanzogui/dialog's compound parts.
3
+ *
4
+ * `DialogContent` mounts its OWN portal + overlay (so callers never wrap it) and
5
+ * re-applies the trigger's resolved theme inside the portal via `PortalTheme` —
6
+ * gui portals re-root the subtree, so React theme context does not flow.
7
+ */
8
+ import { Dialog as GuiDialog, XStack, YStack } from '@hanzo/gui';
9
+ import type { ComponentProps, ReactNode } from 'react';
10
+ declare const Dialog: (p: ComponentProps<typeof GuiDialog>) => import("react/jsx-runtime").JSX.Element;
11
+ declare const DialogTrigger: typeof GuiDialog.Trigger;
12
+ declare const DialogPortal: typeof GuiDialog.Portal;
13
+ declare const DialogClose: typeof GuiDialog.Close;
14
+ export type DialogOverlayProps = ComponentProps<typeof GuiDialog.Overlay>;
15
+ declare const DialogOverlay: (props: DialogOverlayProps) => import("react/jsx-runtime").JSX.Element;
16
+ export type DialogContentProps = ComponentProps<typeof GuiDialog.Content> & {
17
+ showCloseButton?: boolean;
18
+ };
19
+ declare const DialogContent: ({ showCloseButton, children, ...props }: DialogContentProps) => import("react/jsx-runtime").JSX.Element;
20
+ export type DialogSectionProps = ComponentProps<typeof YStack> & {
21
+ children?: ReactNode;
22
+ };
23
+ declare const DialogHeader: (props: DialogSectionProps) => import("react/jsx-runtime").JSX.Element;
24
+ declare const DialogFooter: (props: ComponentProps<typeof XStack>) => import("react/jsx-runtime").JSX.Element;
25
+ declare const DialogTitle: (props: ComponentProps<typeof GuiDialog.Title>) => import("react/jsx-runtime").JSX.Element;
26
+ declare const DialogDescription: (props: ComponentProps<typeof GuiDialog.Description>) => import("react/jsx-runtime").JSX.Element;
27
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, };
@@ -0,0 +1,98 @@
1
+ /**
2
+ * DropdownMenu — the ONE compound menu, native to @hanzo/gui.
3
+ *
4
+ * @hanzogui/menu already ships the whole compound surface (Root/Trigger/Portal/
5
+ * Content/Group/Label/Item/CheckboxItem/RadioGroup/RadioItem/ItemIndicator/
6
+ * Separator/Sub/SubTrigger/SubContent) with the a11y, roving focus, popper
7
+ * placement and dismiss behaviour. This file only FLATTENS `Menu.X` into the 15
8
+ * `DropdownMenuX` names and dresses them in the Hanzo tokens, so there is one
9
+ * menu component rather than two shapes of the same idea.
10
+ *
11
+ * Cross-platform: gui style props only — no Tailwind class strings, no Radix, no
12
+ * DOM APIs. Rows are 32px tall (the design density) with a 6px vertical `hitSlop`
13
+ * so the real tap target is 44px on touch hosts.
14
+ *
15
+ * `DropdownMenuContent` mounts its OWN `Menu.Portal`, so callers never wrap it —
16
+ * and re-applies the trigger's resolved theme inside the portal via `PortalTheme`
17
+ * (gui portals re-root the subtree, so React theme context does not flow).
18
+ */
19
+ import * as React from "react";
20
+ import { Menu, Text, type GuiElement } from "@hanzo/gui";
21
+ import type { MenuItemSpec } from "../../product/menu/items";
22
+ export type DropdownMenuProps = Omit<React.ComponentProps<typeof Menu>, "offset"> & {
23
+ offset?: number;
24
+ /**
25
+ * Declarative form. Give a `trigger` element and an `items` spec and the menu
26
+ * builds itself out of the very same compound parts a hand-written `children`
27
+ * tree would use — one component, one API, one rendering, whichever form the
28
+ * call site prefers.
29
+ */
30
+ trigger?: React.ReactElement;
31
+ items?: MenuItemSpec[];
32
+ minWidth?: number;
33
+ maxHeight?: number;
34
+ };
35
+ declare function DropdownMenu({ offset, trigger, items, minWidth, maxHeight, children, ...props }: DropdownMenuProps): import("react/jsx-runtime").JSX.Element;
36
+ declare const DropdownMenuTrigger: typeof Menu.Trigger;
37
+ declare const DropdownMenuGroup: typeof Menu.Group;
38
+ declare const DropdownMenuPortal: typeof Menu.Portal;
39
+ declare const DropdownMenuSub: typeof Menu.Sub;
40
+ declare const DropdownMenuRadioGroup: typeof Menu.RadioGroup;
41
+ type ContentProps = React.ComponentProps<typeof Menu.Content> & {
42
+ sideOffset?: number;
43
+ };
44
+ declare const DropdownMenuContent: React.ForwardRefExoticComponent<Omit<ContentProps, "ref"> & React.RefAttributes<GuiElement>>;
45
+ declare const DropdownMenuSubContent: React.ForwardRefExoticComponent<Omit<import("@hanzo/gui").MenuSubContentProps & {
46
+ scope?: string;
47
+ } & React.RefAttributes<GuiElement> & Partial<Omit<import("@hanzo/gui").NativeMenuSubContentProps, keyof React.RefAttributes<GuiElement> | keyof import("@hanzo/gui").MenuSubContentProps>>, "ref"> & React.RefAttributes<GuiElement>>;
48
+ type ItemProps = Omit<React.ComponentProps<typeof Menu.Item>, "variant"> & {
49
+ inset?: boolean;
50
+ variant?: "default" | "destructive";
51
+ };
52
+ declare const DropdownMenuItem: React.ForwardRefExoticComponent<Omit<ItemProps, "ref"> & React.RefAttributes<GuiElement>>;
53
+ declare const DropdownMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<Omit<import("@hanzogui/web").GetFinalProps<import("@hanzogui/web").StackNonStyleProps, import("@hanzogui/web").StackStyleBase, {
54
+ unstyled?: boolean | undefined;
55
+ }>, "scope" | keyof import("@hanzo/gui").MenuCheckboxItemProps> & import("@hanzo/gui").MenuCheckboxItemProps & {
56
+ scope?: string;
57
+ } & React.RefAttributes<GuiElement> & Partial<Omit<Omit<import("@hanzo/gui").NativeMenuItemProps, "onSelect"> & {
58
+ checked?: boolean;
59
+ onCheckedChange?: (checked: boolean) => void;
60
+ value?: "mixed" | "on" | "off" | boolean;
61
+ onValueChange?: (state: "mixed" | "on" | "off", prevState: "mixed" | "on" | "off") => void;
62
+ key: string;
63
+ }, keyof React.RefAttributes<GuiElement> | "scope" | keyof import("@hanzo/gui").MenuCheckboxItemProps>>, "ref"> & React.RefAttributes<GuiElement>>;
64
+ declare const DropdownMenuRadioItem: React.ForwardRefExoticComponent<Omit<Omit<import("@hanzogui/web").GetFinalProps<import("@hanzogui/web").StackNonStyleProps, import("@hanzogui/web").StackStyleBase, {
65
+ unstyled?: boolean | undefined;
66
+ }>, "scope" | keyof import("@hanzo/gui").MenuRadioItemProps> & import("@hanzo/gui").MenuRadioItemProps & {
67
+ scope?: string;
68
+ } & React.RefAttributes<GuiElement> & Partial<Omit<{
69
+ children: React.ReactNode;
70
+ }, keyof React.RefAttributes<GuiElement> | "scope" | keyof import("@hanzo/gui").MenuRadioItemProps>>, "ref"> & React.RefAttributes<GuiElement>>;
71
+ declare const DropdownMenuSubTrigger: React.ForwardRefExoticComponent<Omit<import("@hanzo/gui").MenuSubTriggerProps & {
72
+ scope?: string;
73
+ } & React.RefAttributes<GuiElement> & Partial<Omit<{
74
+ children: React.ReactNode;
75
+ textValue?: string;
76
+ onSelect?: (event?: Event) => void;
77
+ } & {
78
+ disabled?: boolean;
79
+ hidden?: boolean;
80
+ destructive?: boolean;
81
+ key: string;
82
+ } & {
83
+ key: string;
84
+ }, keyof React.RefAttributes<GuiElement> | "scope" | keyof import("@hanzo/gui").MenuSubTriggerProps>> & {
85
+ inset?: boolean;
86
+ }, "ref"> & React.RefAttributes<GuiElement>>;
87
+ declare const DropdownMenuLabel: React.ForwardRefExoticComponent<Omit<Omit<import("@hanzogui/web").GetFinalProps<import("@hanzogui/web").TextNonStyleProps, import("@hanzogui/web").TextStylePropsBase, {
88
+ unstyled?: boolean | undefined;
89
+ size?: import("@hanzogui/web").FontSizeTokens | undefined;
90
+ }>, keyof import("@hanzo/gui").MenuLabelProps> & import("@hanzo/gui").MenuLabelProps & React.RefAttributes<import("@hanzogui/web").GuiTextElement> & Partial<Omit<import("@hanzo/gui").NativeMenuLabelProps, "color" | "elevation" | "fontFamily" | "fontSize" | "fontStyle" | "fontVariant" | "fontWeight" | "letterSpacing" | "size" | "textAlign" | "lineHeight" | "textTransform" | "textShadowColor" | "allowFontScaling" | "ellipsizeMode" | "lineBreakMode" | "numberOfLines" | "maxFontSizeMultiplier" | "minimumFontScale" | "pressRetentionOffset" | "adjustsFontSizeToFit" | "dynamicTypeRamp" | "suppressHighlighting" | "lineBreakStrategyIOS" | "selectable" | "selectionColor" | "textBreakStrategy" | "dataDetectorType" | "android_hyphenationFrequency" | "textDecorationLine" | "textDecorationStyle" | "textDecorationColor" | "textShadowOffset" | "textShadowRadius" | "writingDirection" | "textAlignVertical" | "includeFontPadding" | "ellipsis" | "textDecorationDistance" | "textOverflow" | "whiteSpace" | "wordWrap" | "textShadow" | keyof import("@hanzo/gui").MenuLabelProps | keyof React.RefAttributes<import("@hanzogui/web").GuiTextElement>>> & {
91
+ inset?: boolean;
92
+ }, "ref"> & React.RefAttributes<GuiElement>>;
93
+ declare const DropdownMenuSeparator: React.ForwardRefExoticComponent<Omit<Omit<import("@hanzogui/web").GetFinalProps<import("@hanzogui/web").StackNonStyleProps, import("@hanzogui/web").StackStyleBase, {
94
+ unstyled?: boolean | undefined;
95
+ }>, keyof import("@hanzo/gui").MenuSeparatorProps> & import("@hanzo/gui").MenuSeparatorProps & React.RefAttributes<GuiElement> & Partial<Omit<import("@hanzo/gui").NativeMenuSeparatorProps, keyof React.RefAttributes<GuiElement> | keyof import("@hanzo/gui").MenuSeparatorProps>>, "ref"> & React.RefAttributes<GuiElement>>;
96
+ /** Right-aligned shortcut hint. gui `Text`, not a raw `<span>`, so it renders on native. */
97
+ declare function DropdownMenuShortcut(props: React.ComponentProps<typeof Text>): import("react/jsx-runtime").JSX.Element;
98
+ export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup, };
@@ -1,2 +1,24 @@
1
- export * from '../../product';
2
- export { tokens, TAG_TONES, tagTone, type TagTone } from '@hanzo/data';
1
+ export { AspectRatio, type AspectRatioProps } from './aspect-ratio';
2
+ export { Avatar, AvatarImage, AvatarFallback } from './avatar';
3
+ export { Badge, badgeVariants, type BadgeProps, type BadgeVariant } from './badge';
4
+ export { Button, buttonVariants, type ButtonProps, type ButtonSize, type ButtonVariant } from './button';
5
+ export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent, } from './card';
6
+ export { Checkbox } from './checkbox';
7
+ export { Collapsible, CollapsibleTrigger, CollapsibleContent } from './collapsible';
8
+ export { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator, type CommandFilter, type CommandProps, } from './command';
9
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, } from './dialog';
10
+ export { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuRadioGroup, type DropdownMenuProps, } from './dropdown-menu';
11
+ export { Input, type InputProps } from './input';
12
+ export { Label } from './label';
13
+ export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverClose } from './popover';
14
+ export { Progress } from './progress';
15
+ export { ResizablePanelGroup, ResizablePanel, ResizableHandle, type ResizablePanelGroupProps, type ResizablePanelProps, type ResizableHandleProps, } from './resizable';
16
+ export { ScrollArea, ScrollBar } from './scroll-area';
17
+ export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, } from './select';
18
+ export { Separator } from './separator';
19
+ export { Slider } from './slider';
20
+ export { Switch } from './switch';
21
+ export { Tabs, TabsList, TabsTrigger, TabsContent } from './tabs';
22
+ export { Textarea } from './textarea';
23
+ export { Toaster, toast } from './toaster';
24
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from './tooltip';
@@ -0,0 +1,7 @@
1
+ import { type ComponentType, type ReactNode } from 'react';
2
+ /**
3
+ * Bare text needs a Text host to render on native; elements pass through.
4
+ * Every component in this backend that accepts free-form children runs them
5
+ * through here, so a string child behaves identically on web and native.
6
+ */
7
+ export declare const ink: (children: ReactNode, Wrap?: ComponentType<Record<string, unknown>>, props?: Record<string, unknown>) => (bigint | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined>)[] | null | undefined;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Input — single-line field with optional adornments and a password reveal.
3
+ *
4
+ * @hanzogui/input owns the field; the adornment wrapper only appears when an
5
+ * adornment (or the password toggle) is actually asked for, so the common path
6
+ * stays one element.
7
+ */
8
+ import { Input as GuiInput } from '@hanzo/gui';
9
+ import { type ComponentProps, type ReactNode } from 'react';
10
+ export type InputProps = Omit<ComponentProps<typeof GuiInput>, 'children'> & {
11
+ /** Optional leading affordance (icon/text) rendered inside the field. */
12
+ startAdornment?: ReactNode;
13
+ /** Optional trailing affordance rendered inside the field. */
14
+ endAdornment?: ReactNode;
15
+ /** Suppress the built-in show/hide control for `secureTextEntry`/`type="password"`. */
16
+ hidePasswordToggle?: boolean;
17
+ };
18
+ declare const Input: import("react").ForwardRefExoticComponent<Omit<InputProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
19
+ export { Input };
@@ -0,0 +1,6 @@
1
+ /** Label — form-control caption bound to its field by @hanzogui/label. */
2
+ import { Label as GuiLabel } from '@hanzo/gui';
3
+ import type { ComponentProps } from 'react';
4
+ export type LabelProps = ComponentProps<typeof GuiLabel>;
5
+ declare const Label: (props: LabelProps) => import("react/jsx-runtime").JSX.Element;
6
+ export { Label };
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Popover — floating panel anchored to a trigger.
3
+ *
4
+ * `PopoverContent` mounts its own portal and re-applies the trigger's resolved
5
+ * theme inside it (gui portals re-root the subtree, so theme context does not
6
+ * flow). `sideOffset` lands on the popper root, which is where gui keeps it.
7
+ */
8
+ import { Popover as GuiPopover } from '@hanzo/gui';
9
+ import { type ComponentProps } from 'react';
10
+ export type PopoverProps = Omit<ComponentProps<typeof GuiPopover>, 'offset'> & {
11
+ offset?: number;
12
+ };
13
+ declare function Popover({ offset, ...props }: PopoverProps): import("react/jsx-runtime").JSX.Element;
14
+ declare const PopoverTrigger: typeof GuiPopover.Trigger;
15
+ declare const PopoverAnchor: typeof GuiPopover.Anchor;
16
+ declare const PopoverClose: typeof GuiPopover.Close;
17
+ export type PopoverContentProps = ComponentProps<typeof GuiPopover.Content> & {
18
+ sideOffset?: number;
19
+ align?: 'start' | 'center' | 'end';
20
+ };
21
+ declare const PopoverContent: ({ sideOffset, align: _align, ...props }: PopoverContentProps) => import("react/jsx-runtime").JSX.Element;
22
+ export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverClose };
@@ -0,0 +1,6 @@
1
+ /** Progress — determinate bar; `value` is 0–100. */
2
+ import { Progress as GuiProgress } from '@hanzo/gui';
3
+ import type { ComponentProps } from 'react';
4
+ export type ProgressProps = ComponentProps<typeof GuiProgress>;
5
+ declare const Progress: ({ value, ...props }: ProgressProps) => import("react/jsx-runtime").JSX.Element;
6
+ export { Progress };
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Resizable panel group — native to @hanzo/gui, no `react-resizable-panels`.
3
+ *
4
+ * The upstream package dropped `PanelGroup`/`PanelResizeHandle` in v4 (it now
5
+ * exports `Group`/`Panel`/`Separator` and renamed `direction` → `orientation`),
6
+ * so every consumer pinned to the old shape is unbuildable. Rather than pin a
7
+ * dead version we own the primitive: it is ~200 lines of percentage arithmetic
8
+ * over a flexbox, which is cheaper to keep than a dependency that renames its
9
+ * public surface.
10
+ *
11
+ * Layout is PERCENTAGES, never pixels: a panel's share becomes its `flexGrow`
12
+ * over a zero `flexBasis`, so the browser/RN layout engine handles container
13
+ * resize for free (and rounding can never leave a gap). The only thing this
14
+ * module owns is "where is the boundary" — pure functions (`defaultLayout`,
15
+ * `resizeAt`) with the min/max/collapse clamping in ONE place.
16
+ *
17
+ * Cross-platform by construction: the group measures itself with `onLayout`
18
+ * (gui implements it on web too), and the handle drives web with Pointer Events
19
+ * + pointer capture and native with the responder system. Both prop sets are
20
+ * typed on gui's stacks, and pointer capture is feature-detected, so nothing
21
+ * here reaches for the DOM on expo. Keyboard resize is arrow keys (Shift for a
22
+ * fine step). Touch target is the 4px handle plus a 20px hitSlop = 44px.
23
+ */
24
+ import { type ReactNode } from "react";
25
+ import { type XStackProps } from "@hanzo/gui";
26
+ import { defaultLayout, resizeAt, type ResizeDirection } from "./resizable.logic";
27
+ export type { ResizeDirection, PanelSpec } from "./resizable.logic";
28
+ export { defaultLayout, resizeAt };
29
+ export type ResizablePanelGroupProps = Omit<XStackProps, "onLayout" | "direction"> & {
30
+ direction: ResizeDirection;
31
+ autoSaveId?: string;
32
+ onLayout?: (sizes: number[]) => void;
33
+ children?: ReactNode;
34
+ };
35
+ export declare function ResizablePanelGroup({ direction, autoSaveId, onLayout, children, ...rest }: ResizablePanelGroupProps): import("react/jsx-runtime").JSX.Element;
36
+ export type ResizablePanelProps = Omit<XStackProps, "id" | "onLayout"> & {
37
+ id?: string;
38
+ order?: number;
39
+ defaultSize?: number;
40
+ minSize?: number;
41
+ maxSize?: number;
42
+ collapsible?: boolean;
43
+ collapsedSize?: number;
44
+ onResize?: (size: number) => void;
45
+ children?: ReactNode;
46
+ };
47
+ export declare function ResizablePanel({ id, order, defaultSize, minSize, maxSize, collapsible, collapsedSize, onResize, children, ...rest }: ResizablePanelProps): import("react/jsx-runtime").JSX.Element;
48
+ export type ResizableHandleProps = Omit<XStackProps, "disabled" | "onLayout"> & {
49
+ withHandle?: boolean;
50
+ disabled?: boolean;
51
+ };
52
+ export declare function ResizableHandle({ withHandle, disabled, ...rest }: ResizableHandleProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * The panel-sizing math — pure values, no React and no @hanzo/gui, so the
3
+ * boundary rules can be reasoned about and tested on their own.
4
+ */
5
+ export type ResizeDirection = "horizontal" | "vertical";
6
+ /** Everything the boundary math needs to know about a panel. */
7
+ export type PanelSpec = {
8
+ id: string;
9
+ defaultSize?: number;
10
+ minSize?: number;
11
+ maxSize?: number;
12
+ collapsible?: boolean;
13
+ collapsedSize?: number;
14
+ onResize?: (size: number) => void;
15
+ };
16
+ /** Starting percentages: honour every `defaultSize`, split the remainder evenly, normalise to 100. PURE. */
17
+ export declare function defaultLayout(specs: PanelSpec[]): number[];
18
+ /**
19
+ * Move the boundary AFTER panel `i` by `delta` percent. Only the two adjacent
20
+ * panels change, so their sum is invariant and the layout always totals 100.
21
+ * Returns the original array when the move is fully clamped. PURE.
22
+ */
23
+ export declare function resizeAt(sizes: number[], specs: PanelSpec[], i: number, delta: number): number[];