@hanzo/ui 8.0.26 → 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 (621) hide show
  1. package/README.md +1 -1
  2. package/dist/ThemeToggleNext-AEDLHX5X.js +1 -0
  3. package/dist/ThemeToggleNext-N6ASYJ6J.cjs +1 -0
  4. package/dist/backends/gui/aspect-ratio.d.ts +14 -0
  5. package/dist/backends/gui/avatar.d.ts +16 -0
  6. package/dist/backends/gui/badge.d.ts +19 -0
  7. package/dist/backends/gui/button.d.ts +50 -0
  8. package/dist/backends/gui/card.d.ts +44 -0
  9. package/dist/backends/gui/checkbox.d.ts +9 -0
  10. package/dist/backends/gui/collapsible.d.ts +10 -0
  11. package/dist/backends/gui/command.d.ts +86 -0
  12. package/dist/backends/gui/command.logic.d.ts +20 -0
  13. package/dist/backends/gui/dialog.d.ts +27 -0
  14. package/dist/backends/gui/dropdown-menu.d.ts +98 -0
  15. package/dist/backends/gui/index.d.ts +24 -2
  16. package/dist/backends/gui/ink.d.ts +7 -0
  17. package/dist/backends/gui/input.d.ts +19 -0
  18. package/dist/backends/gui/label.d.ts +6 -0
  19. package/dist/backends/gui/popover.d.ts +22 -0
  20. package/dist/backends/gui/progress.d.ts +6 -0
  21. package/dist/backends/gui/resizable.d.ts +52 -0
  22. package/dist/backends/gui/resizable.logic.d.ts +23 -0
  23. package/dist/backends/gui/scroll-area.d.ts +45 -0
  24. package/dist/backends/gui/select.d.ts +30 -0
  25. package/dist/backends/gui/separator.d.ts +10 -0
  26. package/dist/backends/gui/slider.d.ts +6 -0
  27. package/dist/backends/gui/slot.d.ts +6 -0
  28. package/dist/backends/gui/switch.d.ts +6 -0
  29. package/dist/backends/gui/tabs.d.ts +12 -0
  30. package/dist/backends/gui/textarea.d.ts +11 -0
  31. package/dist/backends/gui/toaster.d.ts +28 -0
  32. package/dist/backends/gui/tooltip.d.ts +12 -0
  33. package/dist/canvas.cjs +1 -0
  34. package/dist/canvas.js +1 -0
  35. package/dist/chunk-2U3MNE4I.js +4 -0
  36. package/dist/chunk-2U3MNE4I.js.map +1 -0
  37. package/dist/chunk-3NG33DV2.cjs +1 -0
  38. package/dist/chunk-6DDY6XZI.js +53 -0
  39. package/dist/chunk-6DDY6XZI.js.map +1 -0
  40. package/dist/chunk-6KZWRBK2.cjs +1498 -0
  41. package/dist/chunk-6KZWRBK2.cjs.map +1 -0
  42. package/dist/chunk-77AMCLN4.js +1 -0
  43. package/dist/chunk-7XDEUEWI.cjs +1 -0
  44. package/dist/chunk-7ZNK6JSS.js +1 -0
  45. package/dist/chunk-ARV3P4CE.cjs +1 -0
  46. package/dist/chunk-DC52DQ27.cjs +303 -0
  47. package/dist/chunk-DC52DQ27.cjs.map +1 -0
  48. package/dist/chunk-FVQXROBK.js +1 -0
  49. package/dist/chunk-GVCOAJLO.js +1 -0
  50. package/dist/chunk-MWBFAV3D.cjs +1 -0
  51. package/dist/chunk-NQUA5YRQ.cjs +55 -0
  52. package/dist/chunk-NQUA5YRQ.cjs.map +1 -0
  53. package/dist/chunk-ONVERVFG.cjs +1 -0
  54. package/dist/chunk-P2QU5MN5.js +1 -0
  55. package/dist/chunk-PI3GSHLU.js +263 -0
  56. package/dist/chunk-PI3GSHLU.js.map +1 -0
  57. package/dist/chunk-QHC2ZNAF.js +11 -0
  58. package/dist/chunk-QHC2ZNAF.js.map +1 -0
  59. package/dist/chunk-QV52JQHR.cjs +77 -0
  60. package/dist/chunk-QV52JQHR.cjs.map +1 -0
  61. package/dist/chunk-RBS5AYO4.cjs +13 -0
  62. package/dist/chunk-RBS5AYO4.cjs.map +1 -0
  63. package/dist/chunk-RCMDRI6V.js +1401 -0
  64. package/dist/chunk-RCMDRI6V.js.map +1 -0
  65. package/dist/chunk-WHJR5S4L.cjs +1 -0
  66. package/dist/chunk-ZGTJCJ55.js +1 -0
  67. package/dist/components.d.ts +1 -1
  68. package/dist/core/cn.d.ts +3 -5
  69. package/dist/core/index.cjs +92 -0
  70. package/dist/core/index.cjs.map +1 -0
  71. package/dist/core/index.js +14 -0
  72. package/dist/core/index.js.map +1 -0
  73. package/dist/core/tokens.cjs +77 -0
  74. package/dist/core/tokens.cjs.map +1 -0
  75. package/dist/core/tokens.js +4 -0
  76. package/dist/core/tokens.js.map +1 -0
  77. package/dist/dashboard.cjs +1 -0
  78. package/dist/dashboard.js +1 -0
  79. package/dist/data.cjs +1 -0
  80. package/dist/data.js +1 -0
  81. package/dist/framework/core.cjs +1 -0
  82. package/dist/framework/core.js +1 -0
  83. package/dist/framework/index.cjs +5 -3
  84. package/dist/framework/index.cjs.map +1 -1
  85. package/dist/framework/index.js +3 -1
  86. package/dist/framework/index.js.map +1 -1
  87. package/dist/gitops.cjs +1 -0
  88. package/dist/gitops.js +1 -0
  89. package/dist/gui-config.cjs +1 -0
  90. package/dist/gui-config.js +1 -0
  91. package/dist/index.cjs +366 -1136
  92. package/dist/index.cjs.map +1 -1
  93. package/dist/index.d.ts +1 -1
  94. package/dist/index.js +4 -1017
  95. package/dist/index.js.map +1 -1
  96. package/dist/models/catalog.d.ts +1 -1
  97. package/dist/models/index.cjs +225 -0
  98. package/dist/models/index.cjs.map +1 -0
  99. package/dist/models/index.js +218 -0
  100. package/dist/models/index.js.map +1 -0
  101. package/dist/oss.cjs +1 -0
  102. package/dist/oss.js +1 -0
  103. package/dist/primitives/AspectRatio.cjs +14 -0
  104. package/dist/primitives/AspectRatio.cjs.map +1 -0
  105. package/dist/primitives/AspectRatio.d.ts +1 -1
  106. package/dist/primitives/AspectRatio.js +5 -0
  107. package/dist/primitives/AspectRatio.js.map +1 -0
  108. package/dist/primitives/Avatar.cjs +14 -0
  109. package/dist/primitives/Avatar.cjs.map +1 -0
  110. package/dist/primitives/Avatar.d.ts +1 -1
  111. package/dist/primitives/Avatar.js +5 -0
  112. package/dist/primitives/Avatar.js.map +1 -0
  113. package/dist/primitives/AvatarFallback.cjs +14 -0
  114. package/dist/primitives/AvatarFallback.cjs.map +1 -0
  115. package/dist/primitives/AvatarFallback.d.ts +1 -1
  116. package/dist/primitives/AvatarFallback.js +5 -0
  117. package/dist/primitives/AvatarFallback.js.map +1 -0
  118. package/dist/primitives/AvatarImage.cjs +14 -0
  119. package/dist/primitives/AvatarImage.cjs.map +1 -0
  120. package/dist/primitives/AvatarImage.d.ts +1 -1
  121. package/dist/primitives/AvatarImage.js +5 -0
  122. package/dist/primitives/AvatarImage.js.map +1 -0
  123. package/dist/primitives/Badge.cjs +14 -0
  124. package/dist/primitives/Badge.cjs.map +1 -0
  125. package/dist/primitives/Badge.d.ts +1 -1
  126. package/dist/primitives/Badge.js +5 -0
  127. package/dist/primitives/Badge.js.map +1 -0
  128. package/dist/primitives/Button.cjs +14 -0
  129. package/dist/primitives/Button.cjs.map +1 -0
  130. package/dist/primitives/Button.d.ts +1 -1
  131. package/dist/primitives/Button.js +5 -0
  132. package/dist/primitives/Button.js.map +1 -0
  133. package/dist/primitives/Card.cjs +14 -0
  134. package/dist/primitives/Card.cjs.map +1 -0
  135. package/dist/primitives/Card.d.ts +1 -1
  136. package/dist/primitives/Card.js +5 -0
  137. package/dist/primitives/Card.js.map +1 -0
  138. package/dist/primitives/CardAction.cjs +14 -0
  139. package/dist/primitives/CardAction.cjs.map +1 -0
  140. package/dist/primitives/CardAction.d.ts +1 -1
  141. package/dist/primitives/CardAction.js +5 -0
  142. package/dist/primitives/CardAction.js.map +1 -0
  143. package/dist/primitives/CardContent.cjs +14 -0
  144. package/dist/primitives/CardContent.cjs.map +1 -0
  145. package/dist/primitives/CardContent.d.ts +1 -1
  146. package/dist/primitives/CardContent.js +5 -0
  147. package/dist/primitives/CardContent.js.map +1 -0
  148. package/dist/primitives/CardDescription.cjs +14 -0
  149. package/dist/primitives/CardDescription.cjs.map +1 -0
  150. package/dist/primitives/CardDescription.d.ts +1 -1
  151. package/dist/primitives/CardDescription.js +5 -0
  152. package/dist/primitives/CardDescription.js.map +1 -0
  153. package/dist/primitives/CardFooter.cjs +14 -0
  154. package/dist/primitives/CardFooter.cjs.map +1 -0
  155. package/dist/primitives/CardFooter.d.ts +1 -1
  156. package/dist/primitives/CardFooter.js +5 -0
  157. package/dist/primitives/CardFooter.js.map +1 -0
  158. package/dist/primitives/CardHeader.cjs +14 -0
  159. package/dist/primitives/CardHeader.cjs.map +1 -0
  160. package/dist/primitives/CardHeader.d.ts +1 -1
  161. package/dist/primitives/CardHeader.js +5 -0
  162. package/dist/primitives/CardHeader.js.map +1 -0
  163. package/dist/primitives/CardTitle.cjs +14 -0
  164. package/dist/primitives/CardTitle.cjs.map +1 -0
  165. package/dist/primitives/CardTitle.d.ts +1 -1
  166. package/dist/primitives/CardTitle.js +5 -0
  167. package/dist/primitives/CardTitle.js.map +1 -0
  168. package/dist/primitives/Checkbox.cjs +14 -0
  169. package/dist/primitives/Checkbox.cjs.map +1 -0
  170. package/dist/primitives/Checkbox.d.ts +1 -1
  171. package/dist/primitives/Checkbox.js +5 -0
  172. package/dist/primitives/Checkbox.js.map +1 -0
  173. package/dist/primitives/Collapsible.cjs +14 -0
  174. package/dist/primitives/Collapsible.cjs.map +1 -0
  175. package/dist/primitives/Collapsible.d.ts +1 -1
  176. package/dist/primitives/Collapsible.js +5 -0
  177. package/dist/primitives/Collapsible.js.map +1 -0
  178. package/dist/primitives/CollapsibleContent.cjs +14 -0
  179. package/dist/primitives/CollapsibleContent.cjs.map +1 -0
  180. package/dist/primitives/CollapsibleContent.d.ts +1 -1
  181. package/dist/primitives/CollapsibleContent.js +5 -0
  182. package/dist/primitives/CollapsibleContent.js.map +1 -0
  183. package/dist/primitives/CollapsibleTrigger.cjs +14 -0
  184. package/dist/primitives/CollapsibleTrigger.cjs.map +1 -0
  185. package/dist/primitives/CollapsibleTrigger.d.ts +1 -1
  186. package/dist/primitives/CollapsibleTrigger.js +5 -0
  187. package/dist/primitives/CollapsibleTrigger.js.map +1 -0
  188. package/dist/primitives/Command.cjs +14 -0
  189. package/dist/primitives/Command.cjs.map +1 -0
  190. package/dist/primitives/Command.d.ts +1 -1
  191. package/dist/primitives/Command.js +5 -0
  192. package/dist/primitives/Command.js.map +1 -0
  193. package/dist/primitives/CommandDialog.cjs +14 -0
  194. package/dist/primitives/CommandDialog.cjs.map +1 -0
  195. package/dist/primitives/CommandDialog.d.ts +1 -1
  196. package/dist/primitives/CommandDialog.js +5 -0
  197. package/dist/primitives/CommandDialog.js.map +1 -0
  198. package/dist/primitives/CommandEmpty.cjs +14 -0
  199. package/dist/primitives/CommandEmpty.cjs.map +1 -0
  200. package/dist/primitives/CommandEmpty.d.ts +1 -1
  201. package/dist/primitives/CommandEmpty.js +5 -0
  202. package/dist/primitives/CommandEmpty.js.map +1 -0
  203. package/dist/primitives/CommandGroup.cjs +14 -0
  204. package/dist/primitives/CommandGroup.cjs.map +1 -0
  205. package/dist/primitives/CommandGroup.d.ts +1 -1
  206. package/dist/primitives/CommandGroup.js +5 -0
  207. package/dist/primitives/CommandGroup.js.map +1 -0
  208. package/dist/primitives/CommandInput.cjs +14 -0
  209. package/dist/primitives/CommandInput.cjs.map +1 -0
  210. package/dist/primitives/CommandInput.d.ts +1 -1
  211. package/dist/primitives/CommandInput.js +5 -0
  212. package/dist/primitives/CommandInput.js.map +1 -0
  213. package/dist/primitives/CommandItem.cjs +14 -0
  214. package/dist/primitives/CommandItem.cjs.map +1 -0
  215. package/dist/primitives/CommandItem.d.ts +1 -1
  216. package/dist/primitives/CommandItem.js +5 -0
  217. package/dist/primitives/CommandItem.js.map +1 -0
  218. package/dist/primitives/CommandList.cjs +14 -0
  219. package/dist/primitives/CommandList.cjs.map +1 -0
  220. package/dist/primitives/CommandList.d.ts +1 -1
  221. package/dist/primitives/CommandList.js +5 -0
  222. package/dist/primitives/CommandList.js.map +1 -0
  223. package/dist/primitives/CommandSeparator.cjs +14 -0
  224. package/dist/primitives/CommandSeparator.cjs.map +1 -0
  225. package/dist/primitives/CommandSeparator.d.ts +1 -1
  226. package/dist/primitives/CommandSeparator.js +5 -0
  227. package/dist/primitives/CommandSeparator.js.map +1 -0
  228. package/dist/primitives/CommandShortcut.cjs +14 -0
  229. package/dist/primitives/CommandShortcut.cjs.map +1 -0
  230. package/dist/primitives/CommandShortcut.d.ts +1 -1
  231. package/dist/primitives/CommandShortcut.js +5 -0
  232. package/dist/primitives/CommandShortcut.js.map +1 -0
  233. package/dist/primitives/Dialog.cjs +14 -0
  234. package/dist/primitives/Dialog.cjs.map +1 -0
  235. package/dist/primitives/Dialog.d.ts +1 -1
  236. package/dist/primitives/Dialog.js +5 -0
  237. package/dist/primitives/Dialog.js.map +1 -0
  238. package/dist/primitives/DialogClose.cjs +14 -0
  239. package/dist/primitives/DialogClose.cjs.map +1 -0
  240. package/dist/primitives/DialogClose.d.ts +1 -1
  241. package/dist/primitives/DialogClose.js +5 -0
  242. package/dist/primitives/DialogClose.js.map +1 -0
  243. package/dist/primitives/DialogContent.cjs +14 -0
  244. package/dist/primitives/DialogContent.cjs.map +1 -0
  245. package/dist/primitives/DialogContent.d.ts +1 -1
  246. package/dist/primitives/DialogContent.js +5 -0
  247. package/dist/primitives/DialogContent.js.map +1 -0
  248. package/dist/primitives/DialogDescription.cjs +14 -0
  249. package/dist/primitives/DialogDescription.cjs.map +1 -0
  250. package/dist/primitives/DialogDescription.d.ts +1 -1
  251. package/dist/primitives/DialogDescription.js +5 -0
  252. package/dist/primitives/DialogDescription.js.map +1 -0
  253. package/dist/primitives/DialogFooter.cjs +14 -0
  254. package/dist/primitives/DialogFooter.cjs.map +1 -0
  255. package/dist/primitives/DialogFooter.d.ts +1 -1
  256. package/dist/primitives/DialogFooter.js +5 -0
  257. package/dist/primitives/DialogFooter.js.map +1 -0
  258. package/dist/primitives/DialogHeader.cjs +14 -0
  259. package/dist/primitives/DialogHeader.cjs.map +1 -0
  260. package/dist/primitives/DialogHeader.d.ts +1 -1
  261. package/dist/primitives/DialogHeader.js +5 -0
  262. package/dist/primitives/DialogHeader.js.map +1 -0
  263. package/dist/primitives/DialogOverlay.cjs +14 -0
  264. package/dist/primitives/DialogOverlay.cjs.map +1 -0
  265. package/dist/primitives/DialogOverlay.d.ts +1 -1
  266. package/dist/primitives/DialogOverlay.js +5 -0
  267. package/dist/primitives/DialogOverlay.js.map +1 -0
  268. package/dist/primitives/DialogPortal.cjs +14 -0
  269. package/dist/primitives/DialogPortal.cjs.map +1 -0
  270. package/dist/primitives/DialogPortal.d.ts +1 -1
  271. package/dist/primitives/DialogPortal.js +5 -0
  272. package/dist/primitives/DialogPortal.js.map +1 -0
  273. package/dist/primitives/DialogTitle.cjs +14 -0
  274. package/dist/primitives/DialogTitle.cjs.map +1 -0
  275. package/dist/primitives/DialogTitle.d.ts +1 -1
  276. package/dist/primitives/DialogTitle.js +5 -0
  277. package/dist/primitives/DialogTitle.js.map +1 -0
  278. package/dist/primitives/DialogTrigger.cjs +14 -0
  279. package/dist/primitives/DialogTrigger.cjs.map +1 -0
  280. package/dist/primitives/DialogTrigger.d.ts +1 -1
  281. package/dist/primitives/DialogTrigger.js +5 -0
  282. package/dist/primitives/DialogTrigger.js.map +1 -0
  283. package/dist/primitives/DropdownMenu.cjs +14 -0
  284. package/dist/primitives/DropdownMenu.cjs.map +1 -0
  285. package/dist/primitives/DropdownMenu.d.ts +1 -1
  286. package/dist/primitives/DropdownMenu.js +5 -0
  287. package/dist/primitives/DropdownMenu.js.map +1 -0
  288. package/dist/primitives/DropdownMenuCheckboxItem.cjs +14 -0
  289. package/dist/primitives/DropdownMenuCheckboxItem.cjs.map +1 -0
  290. package/dist/primitives/DropdownMenuCheckboxItem.d.ts +1 -1
  291. package/dist/primitives/DropdownMenuCheckboxItem.js +5 -0
  292. package/dist/primitives/DropdownMenuCheckboxItem.js.map +1 -0
  293. package/dist/primitives/DropdownMenuContent.cjs +14 -0
  294. package/dist/primitives/DropdownMenuContent.cjs.map +1 -0
  295. package/dist/primitives/DropdownMenuContent.d.ts +1 -1
  296. package/dist/primitives/DropdownMenuContent.js +5 -0
  297. package/dist/primitives/DropdownMenuContent.js.map +1 -0
  298. package/dist/primitives/DropdownMenuGroup.cjs +14 -0
  299. package/dist/primitives/DropdownMenuGroup.cjs.map +1 -0
  300. package/dist/primitives/DropdownMenuGroup.d.ts +1 -1
  301. package/dist/primitives/DropdownMenuGroup.js +5 -0
  302. package/dist/primitives/DropdownMenuGroup.js.map +1 -0
  303. package/dist/primitives/DropdownMenuItem.cjs +14 -0
  304. package/dist/primitives/DropdownMenuItem.cjs.map +1 -0
  305. package/dist/primitives/DropdownMenuItem.d.ts +1 -1
  306. package/dist/primitives/DropdownMenuItem.js +5 -0
  307. package/dist/primitives/DropdownMenuItem.js.map +1 -0
  308. package/dist/primitives/DropdownMenuLabel.cjs +14 -0
  309. package/dist/primitives/DropdownMenuLabel.cjs.map +1 -0
  310. package/dist/primitives/DropdownMenuLabel.d.ts +1 -1
  311. package/dist/primitives/DropdownMenuLabel.js +5 -0
  312. package/dist/primitives/DropdownMenuLabel.js.map +1 -0
  313. package/dist/primitives/DropdownMenuPortal.cjs +14 -0
  314. package/dist/primitives/DropdownMenuPortal.cjs.map +1 -0
  315. package/dist/primitives/DropdownMenuPortal.d.ts +1 -1
  316. package/dist/primitives/DropdownMenuPortal.js +5 -0
  317. package/dist/primitives/DropdownMenuPortal.js.map +1 -0
  318. package/dist/primitives/DropdownMenuRadioGroup.cjs +14 -0
  319. package/dist/primitives/DropdownMenuRadioGroup.cjs.map +1 -0
  320. package/dist/primitives/DropdownMenuRadioGroup.d.ts +1 -1
  321. package/dist/primitives/DropdownMenuRadioGroup.js +5 -0
  322. package/dist/primitives/DropdownMenuRadioGroup.js.map +1 -0
  323. package/dist/primitives/DropdownMenuRadioItem.cjs +14 -0
  324. package/dist/primitives/DropdownMenuRadioItem.cjs.map +1 -0
  325. package/dist/primitives/DropdownMenuRadioItem.d.ts +1 -1
  326. package/dist/primitives/DropdownMenuRadioItem.js +5 -0
  327. package/dist/primitives/DropdownMenuRadioItem.js.map +1 -0
  328. package/dist/primitives/DropdownMenuSeparator.cjs +14 -0
  329. package/dist/primitives/DropdownMenuSeparator.cjs.map +1 -0
  330. package/dist/primitives/DropdownMenuSeparator.d.ts +1 -1
  331. package/dist/primitives/DropdownMenuSeparator.js +5 -0
  332. package/dist/primitives/DropdownMenuSeparator.js.map +1 -0
  333. package/dist/primitives/DropdownMenuShortcut.cjs +14 -0
  334. package/dist/primitives/DropdownMenuShortcut.cjs.map +1 -0
  335. package/dist/primitives/DropdownMenuShortcut.d.ts +1 -1
  336. package/dist/primitives/DropdownMenuShortcut.js +5 -0
  337. package/dist/primitives/DropdownMenuShortcut.js.map +1 -0
  338. package/dist/primitives/DropdownMenuSub.cjs +14 -0
  339. package/dist/primitives/DropdownMenuSub.cjs.map +1 -0
  340. package/dist/primitives/DropdownMenuSub.d.ts +1 -1
  341. package/dist/primitives/DropdownMenuSub.js +5 -0
  342. package/dist/primitives/DropdownMenuSub.js.map +1 -0
  343. package/dist/primitives/DropdownMenuSubContent.cjs +14 -0
  344. package/dist/primitives/DropdownMenuSubContent.cjs.map +1 -0
  345. package/dist/primitives/DropdownMenuSubContent.d.ts +1 -1
  346. package/dist/primitives/DropdownMenuSubContent.js +5 -0
  347. package/dist/primitives/DropdownMenuSubContent.js.map +1 -0
  348. package/dist/primitives/DropdownMenuSubTrigger.cjs +14 -0
  349. package/dist/primitives/DropdownMenuSubTrigger.cjs.map +1 -0
  350. package/dist/primitives/DropdownMenuSubTrigger.d.ts +1 -1
  351. package/dist/primitives/DropdownMenuSubTrigger.js +5 -0
  352. package/dist/primitives/DropdownMenuSubTrigger.js.map +1 -0
  353. package/dist/primitives/DropdownMenuTrigger.cjs +14 -0
  354. package/dist/primitives/DropdownMenuTrigger.cjs.map +1 -0
  355. package/dist/primitives/DropdownMenuTrigger.d.ts +1 -1
  356. package/dist/primitives/DropdownMenuTrigger.js +5 -0
  357. package/dist/primitives/DropdownMenuTrigger.js.map +1 -0
  358. package/dist/primitives/Input.cjs +14 -0
  359. package/dist/primitives/Input.cjs.map +1 -0
  360. package/dist/primitives/Input.d.ts +1 -1
  361. package/dist/primitives/Input.js +5 -0
  362. package/dist/primitives/Input.js.map +1 -0
  363. package/dist/primitives/Label.cjs +14 -0
  364. package/dist/primitives/Label.cjs.map +1 -0
  365. package/dist/primitives/Label.d.ts +1 -1
  366. package/dist/primitives/Label.js +5 -0
  367. package/dist/primitives/Label.js.map +1 -0
  368. package/dist/primitives/Popover.cjs +14 -0
  369. package/dist/primitives/Popover.cjs.map +1 -0
  370. package/dist/primitives/Popover.d.ts +1 -1
  371. package/dist/primitives/Popover.js +5 -0
  372. package/dist/primitives/Popover.js.map +1 -0
  373. package/dist/primitives/PopoverAnchor.cjs +14 -0
  374. package/dist/primitives/PopoverAnchor.cjs.map +1 -0
  375. package/dist/primitives/PopoverAnchor.d.ts +1 -1
  376. package/dist/primitives/PopoverAnchor.js +5 -0
  377. package/dist/primitives/PopoverAnchor.js.map +1 -0
  378. package/dist/primitives/PopoverClose.cjs +14 -0
  379. package/dist/primitives/PopoverClose.cjs.map +1 -0
  380. package/dist/primitives/PopoverClose.d.ts +1 -0
  381. package/dist/primitives/PopoverClose.js +5 -0
  382. package/dist/primitives/PopoverClose.js.map +1 -0
  383. package/dist/primitives/PopoverContent.cjs +14 -0
  384. package/dist/primitives/PopoverContent.cjs.map +1 -0
  385. package/dist/primitives/PopoverContent.d.ts +1 -1
  386. package/dist/primitives/PopoverContent.js +5 -0
  387. package/dist/primitives/PopoverContent.js.map +1 -0
  388. package/dist/primitives/PopoverTrigger.cjs +14 -0
  389. package/dist/primitives/PopoverTrigger.cjs.map +1 -0
  390. package/dist/primitives/PopoverTrigger.d.ts +1 -1
  391. package/dist/primitives/PopoverTrigger.js +5 -0
  392. package/dist/primitives/PopoverTrigger.js.map +1 -0
  393. package/dist/primitives/Progress.cjs +14 -0
  394. package/dist/primitives/Progress.cjs.map +1 -0
  395. package/dist/primitives/Progress.d.ts +1 -1
  396. package/dist/primitives/Progress.js +5 -0
  397. package/dist/primitives/Progress.js.map +1 -0
  398. package/dist/primitives/ResizableHandle.cjs +14 -0
  399. package/dist/primitives/ResizableHandle.cjs.map +1 -0
  400. package/dist/primitives/ResizableHandle.d.ts +1 -0
  401. package/dist/primitives/ResizableHandle.js +5 -0
  402. package/dist/primitives/ResizableHandle.js.map +1 -0
  403. package/dist/primitives/ResizablePanel.cjs +14 -0
  404. package/dist/primitives/ResizablePanel.cjs.map +1 -0
  405. package/dist/primitives/ResizablePanel.d.ts +1 -0
  406. package/dist/primitives/ResizablePanel.js +5 -0
  407. package/dist/primitives/ResizablePanel.js.map +1 -0
  408. package/dist/primitives/ResizablePanelGroup.cjs +14 -0
  409. package/dist/primitives/ResizablePanelGroup.cjs.map +1 -0
  410. package/dist/primitives/ResizablePanelGroup.d.ts +1 -0
  411. package/dist/primitives/ResizablePanelGroup.js +5 -0
  412. package/dist/primitives/ResizablePanelGroup.js.map +1 -0
  413. package/dist/primitives/ScrollArea.cjs +14 -0
  414. package/dist/primitives/ScrollArea.cjs.map +1 -0
  415. package/dist/primitives/ScrollArea.d.ts +1 -1
  416. package/dist/primitives/ScrollArea.js +5 -0
  417. package/dist/primitives/ScrollArea.js.map +1 -0
  418. package/dist/primitives/ScrollBar.cjs +14 -0
  419. package/dist/primitives/ScrollBar.cjs.map +1 -0
  420. package/dist/primitives/ScrollBar.d.ts +1 -1
  421. package/dist/primitives/ScrollBar.js +5 -0
  422. package/dist/primitives/ScrollBar.js.map +1 -0
  423. package/dist/primitives/Select.cjs +14 -0
  424. package/dist/primitives/Select.cjs.map +1 -0
  425. package/dist/primitives/Select.d.ts +1 -1
  426. package/dist/primitives/Select.js +5 -0
  427. package/dist/primitives/Select.js.map +1 -0
  428. package/dist/primitives/SelectContent.cjs +14 -0
  429. package/dist/primitives/SelectContent.cjs.map +1 -0
  430. package/dist/primitives/SelectContent.d.ts +1 -1
  431. package/dist/primitives/SelectContent.js +5 -0
  432. package/dist/primitives/SelectContent.js.map +1 -0
  433. package/dist/primitives/SelectGroup.cjs +14 -0
  434. package/dist/primitives/SelectGroup.cjs.map +1 -0
  435. package/dist/primitives/SelectGroup.d.ts +1 -1
  436. package/dist/primitives/SelectGroup.js +5 -0
  437. package/dist/primitives/SelectGroup.js.map +1 -0
  438. package/dist/primitives/SelectItem.cjs +14 -0
  439. package/dist/primitives/SelectItem.cjs.map +1 -0
  440. package/dist/primitives/SelectItem.d.ts +1 -1
  441. package/dist/primitives/SelectItem.js +5 -0
  442. package/dist/primitives/SelectItem.js.map +1 -0
  443. package/dist/primitives/SelectLabel.cjs +14 -0
  444. package/dist/primitives/SelectLabel.cjs.map +1 -0
  445. package/dist/primitives/SelectLabel.d.ts +1 -1
  446. package/dist/primitives/SelectLabel.js +5 -0
  447. package/dist/primitives/SelectLabel.js.map +1 -0
  448. package/dist/primitives/SelectScrollDownButton.cjs +14 -0
  449. package/dist/primitives/SelectScrollDownButton.cjs.map +1 -0
  450. package/dist/primitives/SelectScrollDownButton.d.ts +1 -1
  451. package/dist/primitives/SelectScrollDownButton.js +5 -0
  452. package/dist/primitives/SelectScrollDownButton.js.map +1 -0
  453. package/dist/primitives/SelectScrollUpButton.cjs +14 -0
  454. package/dist/primitives/SelectScrollUpButton.cjs.map +1 -0
  455. package/dist/primitives/SelectScrollUpButton.d.ts +1 -1
  456. package/dist/primitives/SelectScrollUpButton.js +5 -0
  457. package/dist/primitives/SelectScrollUpButton.js.map +1 -0
  458. package/dist/primitives/SelectSeparator.cjs +14 -0
  459. package/dist/primitives/SelectSeparator.cjs.map +1 -0
  460. package/dist/primitives/SelectSeparator.d.ts +1 -1
  461. package/dist/primitives/SelectSeparator.js +5 -0
  462. package/dist/primitives/SelectSeparator.js.map +1 -0
  463. package/dist/primitives/SelectTrigger.cjs +14 -0
  464. package/dist/primitives/SelectTrigger.cjs.map +1 -0
  465. package/dist/primitives/SelectTrigger.d.ts +1 -1
  466. package/dist/primitives/SelectTrigger.js +5 -0
  467. package/dist/primitives/SelectTrigger.js.map +1 -0
  468. package/dist/primitives/SelectValue.cjs +14 -0
  469. package/dist/primitives/SelectValue.cjs.map +1 -0
  470. package/dist/primitives/SelectValue.d.ts +1 -1
  471. package/dist/primitives/SelectValue.js +5 -0
  472. package/dist/primitives/SelectValue.js.map +1 -0
  473. package/dist/primitives/Separator.cjs +14 -0
  474. package/dist/primitives/Separator.cjs.map +1 -0
  475. package/dist/primitives/Separator.d.ts +1 -1
  476. package/dist/primitives/Separator.js +5 -0
  477. package/dist/primitives/Separator.js.map +1 -0
  478. package/dist/primitives/Slider.cjs +14 -0
  479. package/dist/primitives/Slider.cjs.map +1 -0
  480. package/dist/primitives/Slider.d.ts +1 -1
  481. package/dist/primitives/Slider.js +5 -0
  482. package/dist/primitives/Slider.js.map +1 -0
  483. package/dist/primitives/Switch.cjs +14 -0
  484. package/dist/primitives/Switch.cjs.map +1 -0
  485. package/dist/primitives/Switch.d.ts +1 -1
  486. package/dist/primitives/Switch.js +5 -0
  487. package/dist/primitives/Switch.js.map +1 -0
  488. package/dist/primitives/Tabs.cjs +14 -0
  489. package/dist/primitives/Tabs.cjs.map +1 -0
  490. package/dist/primitives/Tabs.d.ts +1 -1
  491. package/dist/primitives/Tabs.js +5 -0
  492. package/dist/primitives/Tabs.js.map +1 -0
  493. package/dist/primitives/TabsContent.cjs +14 -0
  494. package/dist/primitives/TabsContent.cjs.map +1 -0
  495. package/dist/primitives/TabsContent.d.ts +1 -1
  496. package/dist/primitives/TabsContent.js +5 -0
  497. package/dist/primitives/TabsContent.js.map +1 -0
  498. package/dist/primitives/TabsList.cjs +14 -0
  499. package/dist/primitives/TabsList.cjs.map +1 -0
  500. package/dist/primitives/TabsList.d.ts +1 -1
  501. package/dist/primitives/TabsList.js +5 -0
  502. package/dist/primitives/TabsList.js.map +1 -0
  503. package/dist/primitives/TabsTrigger.cjs +14 -0
  504. package/dist/primitives/TabsTrigger.cjs.map +1 -0
  505. package/dist/primitives/TabsTrigger.d.ts +1 -1
  506. package/dist/primitives/TabsTrigger.js +5 -0
  507. package/dist/primitives/TabsTrigger.js.map +1 -0
  508. package/dist/primitives/Textarea.cjs +14 -0
  509. package/dist/primitives/Textarea.cjs.map +1 -0
  510. package/dist/primitives/Textarea.d.ts +1 -1
  511. package/dist/primitives/Textarea.js +5 -0
  512. package/dist/primitives/Textarea.js.map +1 -0
  513. package/dist/primitives/Toaster.cjs +14 -0
  514. package/dist/primitives/Toaster.cjs.map +1 -0
  515. package/dist/primitives/Toaster.d.ts +1 -1
  516. package/dist/primitives/Toaster.js +5 -0
  517. package/dist/primitives/Toaster.js.map +1 -0
  518. package/dist/primitives/Tooltip.cjs +14 -0
  519. package/dist/primitives/Tooltip.cjs.map +1 -0
  520. package/dist/primitives/Tooltip.d.ts +1 -1
  521. package/dist/primitives/Tooltip.js +5 -0
  522. package/dist/primitives/Tooltip.js.map +1 -0
  523. package/dist/primitives/TooltipContent.cjs +14 -0
  524. package/dist/primitives/TooltipContent.cjs.map +1 -0
  525. package/dist/primitives/TooltipContent.d.ts +1 -1
  526. package/dist/primitives/TooltipContent.js +5 -0
  527. package/dist/primitives/TooltipContent.js.map +1 -0
  528. package/dist/primitives/TooltipProvider.cjs +14 -0
  529. package/dist/primitives/TooltipProvider.cjs.map +1 -0
  530. package/dist/primitives/TooltipProvider.d.ts +1 -1
  531. package/dist/primitives/TooltipProvider.js +5 -0
  532. package/dist/primitives/TooltipProvider.js.map +1 -0
  533. package/dist/primitives/TooltipTrigger.cjs +14 -0
  534. package/dist/primitives/TooltipTrigger.cjs.map +1 -0
  535. package/dist/primitives/TooltipTrigger.d.ts +1 -1
  536. package/dist/primitives/TooltipTrigger.js +5 -0
  537. package/dist/primitives/TooltipTrigger.js.map +1 -0
  538. package/dist/primitives/badgeVariants.cjs +14 -0
  539. package/dist/primitives/badgeVariants.cjs.map +1 -0
  540. package/dist/primitives/badgeVariants.d.ts +1 -1
  541. package/dist/primitives/badgeVariants.js +5 -0
  542. package/dist/primitives/badgeVariants.js.map +1 -0
  543. package/dist/primitives/bases/data/index.cjs +1 -0
  544. package/dist/primitives/bases/data/index.js +1 -0
  545. package/dist/primitives/buttonVariants.cjs +14 -0
  546. package/dist/primitives/buttonVariants.cjs.map +1 -0
  547. package/dist/primitives/buttonVariants.d.ts +1 -1
  548. package/dist/primitives/buttonVariants.js +5 -0
  549. package/dist/primitives/buttonVariants.js.map +1 -0
  550. package/dist/primitives/index.cjs +370 -0
  551. package/dist/primitives/index.cjs.map +1 -0
  552. package/dist/primitives/index.d.ts +1 -1
  553. package/dist/primitives/index.js +5 -0
  554. package/dist/primitives/index.js.map +1 -0
  555. package/dist/primitives/toast.cjs +14 -0
  556. package/dist/primitives/toast.cjs.map +1 -0
  557. package/dist/primitives/toast.d.ts +1 -1
  558. package/dist/primitives/toast.js +5 -0
  559. package/dist/primitives/toast.js.map +1 -0
  560. package/dist/product/index.cjs +285 -35
  561. package/dist/product/index.cjs.map +1 -1
  562. package/dist/product/index.d.ts +1 -0
  563. package/dist/product/index.js +265 -9
  564. package/dist/product/index.js.map +1 -1
  565. package/dist/product/menu/index.d.ts +1 -1
  566. package/dist/product/social/api.cjs +1 -0
  567. package/dist/product/social/api.js +1 -0
  568. package/dist/product/social/index.cjs +1 -0
  569. package/dist/product/social/index.js +1 -0
  570. package/dist/styles/hanzo-motion.css +188 -0
  571. package/dist/telemetry.cjs +1 -0
  572. package/dist/telemetry.js +1 -0
  573. package/dist/theme.css +160 -0
  574. package/dist/usage.cjs +1 -0
  575. package/dist/usage.js +1 -0
  576. package/package.json +31 -71
  577. package/dist/backends/shadcn/aspect-ratio.d.ts +0 -4
  578. package/dist/backends/shadcn/avatar.d.ts +0 -6
  579. package/dist/backends/shadcn/badge.d.ts +0 -9
  580. package/dist/backends/shadcn/button.d.ts +0 -19
  581. package/dist/backends/shadcn/card.d.ts +0 -9
  582. package/dist/backends/shadcn/checkbox.d.ts +0 -9
  583. package/dist/backends/shadcn/collapsible.d.ts +0 -5
  584. package/dist/backends/shadcn/command.d.ts +0 -80
  585. package/dist/backends/shadcn/dialog.d.ts +0 -15
  586. package/dist/backends/shadcn/dropdown-menu.d.ts +0 -34
  587. package/dist/backends/shadcn/index.d.ts +0 -23
  588. package/dist/backends/shadcn/input.d.ts +0 -11
  589. package/dist/backends/shadcn/label.d.ts +0 -4
  590. package/dist/backends/shadcn/popover.d.ts +0 -7
  591. package/dist/backends/shadcn/progress.d.ts +0 -4
  592. package/dist/backends/shadcn/scroll-area.d.ts +0 -5
  593. package/dist/backends/shadcn/select.d.ts +0 -13
  594. package/dist/backends/shadcn/separator.d.ts +0 -4
  595. package/dist/backends/shadcn/slider.d.ts +0 -4
  596. package/dist/backends/shadcn/switch.d.ts +0 -4
  597. package/dist/backends/shadcn/tabs.d.ts +0 -7
  598. package/dist/backends/shadcn/textarea.d.ts +0 -4
  599. package/dist/backends/shadcn/toaster.d.ts +0 -10
  600. package/dist/backends/shadcn/tooltip.d.ts +0 -7
  601. package/dist/backends/shadcn/utils.d.ts +0 -8
  602. package/dist/billing.cjs +0 -14
  603. package/dist/billing.cjs.map +0 -1
  604. package/dist/billing.d.ts +0 -1
  605. package/dist/billing.js +0 -3
  606. package/dist/billing.js.map +0 -1
  607. package/dist/chunk-5CZOYONP.js +0 -342
  608. package/dist/chunk-5CZOYONP.js.map +0 -1
  609. package/dist/chunk-GWNNLYX4.cjs +0 -352
  610. package/dist/chunk-GWNNLYX4.cjs.map +0 -1
  611. package/dist/network.cjs +0 -14
  612. package/dist/network.cjs.map +0 -1
  613. package/dist/network.d.ts +0 -1
  614. package/dist/network.js +0 -3
  615. package/dist/network.js.map +0 -1
  616. package/dist/product/menu/DropdownMenu.d.ts +0 -29
  617. package/dist/wallet.cjs +0 -14
  618. package/dist/wallet.cjs.map +0 -1
  619. package/dist/wallet.d.ts +0 -1
  620. package/dist/wallet.js +0 -3
  621. package/dist/wallet.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/backends/gui/aspect-ratio.tsx","../src/backends/gui/avatar.tsx","../src/backends/gui/ink.tsx","../src/backends/gui/badge.tsx","../src/backends/gui/button.tsx","../src/backends/gui/slot.ts","../src/backends/gui/card.tsx","../src/backends/gui/checkbox.tsx","../src/backends/gui/collapsible.tsx","../src/backends/gui/command.logic.ts","../src/backends/gui/command.tsx","../src/backends/gui/dialog.tsx","../src/backends/gui/input.tsx","../src/backends/gui/label.tsx","../src/backends/gui/popover.tsx","../src/backends/gui/progress.tsx","../src/backends/gui/resizable.logic.ts","../src/backends/gui/resizable.tsx","../src/backends/gui/scroll-area.tsx","../src/backends/gui/select.tsx","../src/backends/gui/separator.tsx","../src/backends/gui/slider.tsx","../src/backends/gui/switch.tsx","../src/backends/gui/tabs.tsx","../src/backends/gui/textarea.tsx","../src/backends/gui/toaster.tsx","../src/backends/gui/tooltip.tsx"],"names":["jsx","YStack","GuiAvatar","SizableText","Children","createElement","createStyledContext","styled","XStack","HEIGHT","MIN_TOUCH","GuiButton","Spinner","HIT_SLOP","GuiCheckbox","Check","GuiCollapsible","isValidElement","useContext","forwardRef","Command","useRef","useReducer","useState","useCallback","useMemo","useEffect","isWeb","Dialog","DialogPortal","DialogOverlay","jsxs","DialogContent","VisuallyHidden","DialogTitle","DialogDescription","CommandInput","SearchIcon","Input","CommandList","ScrollView","CommandEmpty","CommandGroup","useId","CommandSeparator","Separator","CommandItem","ListItem","PAD","GuiDialog","useThemeName","PortalTheme","X","GuiInput","EyeOff","Eye","GuiLabel","createContext","GuiPopover","GuiProgress","GroupContext","GripVertical","TOUCH","clamp","ScrollBar","ScrollArea","GuiSelect","ChevronDown","cloneElement","ChevronUp","GuiSelectSeparator","GuiSeparator","GuiSlider","THUMB","GuiSwitch","ROW_H","GuiTabs","React","Textarea","TextArea","Toaster","GuiToaster","DEFAULT_OFFSET","GuiTooltip","TooltipGroup"],"mappings":"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","file":"chunk-6KZWRBK2.cjs","sourcesContent":["'use client'\n\n/**\n * AspectRatio — a box that holds a width-to-height ratio.\n *\n * `aspectRatio` is a first-class layout property of the gui/Yoga box model, so\n * there is nothing to compute and no padding-bottom trick: the ratio is the\n * style. That is why this is the whole component on web, native and desktop.\n */\nimport { YStack, type YStackProps } from '@hanzo/gui'\n\nexport interface AspectRatioProps extends YStackProps {\n /** Width divided by height. Square by default. */\n ratio?: number\n}\n\nconst AspectRatio = ({ ratio = 1, ...props }: AspectRatioProps) => (\n <YStack data-slot=\"aspect-ratio\" width=\"100%\" aspectRatio={ratio} {...props} />\n)\n\nexport { AspectRatio }\n","'use client'\n\n/**\n * Avatar — circular image with a text fallback.\n *\n * @hanzogui/avatar owns the load/error state machine and the fallback delay, so\n * this only names the three parts and dresses them in tokens.\n */\nimport { Avatar as GuiAvatar, SizableText } from '@hanzo/gui'\nimport type { ComponentProps } from 'react'\n\nconst SIZE = 32\n\nexport type AvatarProps = ComponentProps<typeof GuiAvatar>\nexport type AvatarImageProps = ComponentProps<typeof GuiAvatar.Image>\nexport type AvatarFallbackProps = ComponentProps<typeof GuiAvatar.Fallback>\n\nconst Avatar = (props: AvatarProps) => (\n <GuiAvatar data-slot=\"avatar\" circular size={SIZE} shrink={0} overflow=\"hidden\" {...props} />\n)\n\nconst AvatarImage = (props: AvatarImageProps) => (\n <GuiAvatar.Image data-slot=\"avatar-image\" width=\"100%\" height=\"100%\" {...props} />\n)\n\n/** Bare text needs a Text host to render on native; elements pass through. */\nconst AvatarFallback = ({ children, ...props }: AvatarFallbackProps) => (\n <GuiAvatar.Fallback\n data-slot=\"avatar-fallback\"\n bg=\"$color4\"\n items=\"center\"\n justify=\"center\"\n {...props}\n >\n {typeof children === 'string' || typeof children === 'number' ? (\n <SizableText size=\"$2\" color=\"$color11\">\n {children}\n </SizableText>\n ) : (\n children\n )}\n </GuiAvatar.Fallback>\n)\n\nexport { Avatar, AvatarImage, AvatarFallback }\n","import { SizableText } from '@hanzo/gui'\nimport { Children, createElement, type ComponentType, type ReactNode } from 'react'\n\n/**\n * Bare text needs a Text host to render on native; elements pass through.\n * Every component in this backend that accepts free-form children runs them\n * through here, so a string child behaves identically on web and native.\n */\nexport const ink = (\n children: ReactNode,\n Wrap: ComponentType<Record<string, unknown>> = SizableText as never,\n props: Record<string, unknown> = {},\n) =>\n Children.map(children, (child) =>\n typeof child === 'string' || typeof child === 'number'\n ? createElement(Wrap, props, child)\n : child,\n )\n","'use client'\n\n/**\n * Badge — the gui-backend original.\n *\n * `Badge`, `badgeVariants`, `data-slot`/`data-variant`, `asChild`. The substrate\n * is @hanzo/gui: `styled()` variants and theme tokens, so it renders on web,\n * native (expo) and Tauri.\n *\n * Surface and ink are two concerns, so they are two styled parts sharing one\n * `variant` through a styled context — the frame owns background/border, the\n * text owns color/weight/case. Nothing reads `variant` twice by hand.\n */\nimport { SizableText, XStack, createStyledContext, styled } from '@hanzo/gui'\nimport * as React from 'react'\nimport { ink } from './ink'\n\nexport type BadgeVariant =\n | 'default'\n | 'secondary'\n | 'destructive'\n | 'outline'\n | 'ghost'\n | 'link'\n | 'inputAdornment'\n | 'tags'\n\n/** A badge is a 24px pill; the slop makes its press area meet the 44px floor. */\nconst MIN_TOUCH = 44\nconst HEIGHT = 24\nconst HIT_SLOP = (MIN_TOUCH - HEIGHT) / 2\n\nconst BadgeContext = /* @__PURE__ */ createStyledContext<{ variant: BadgeVariant }>({ variant: 'default' })\n\nconst BadgeFrame = styled(XStack, {\n name: 'Badge',\n context: BadgeContext,\n self: 'flex-start',\n items: 'center',\n justify: 'center',\n shrink: 0,\n minH: HEIGHT,\n px: '$2.5',\n py: '$1',\n gap: '$1.5',\n rounded: '$2',\n borderWidth: 1,\n borderColor: 'transparent',\n overflow: 'hidden',\n\n variants: {\n variant: {\n default: { bg: '$color12' },\n secondary: { bg: '$color4' },\n destructive: { bg: '$red9' },\n outline: { bg: '$background', borderColor: '$borderColor' },\n ghost: { bg: 'transparent', hoverStyle: { bg: '$color3' } },\n link: { bg: 'transparent' },\n inputAdornment: { bg: '$color3', px: '$2' },\n tags: { bg: '$color3', borderColor: '$borderColor', rounded: '$3' },\n },\n } as const,\n\n defaultVariants: { variant: 'default' },\n})\n\nconst BadgeText = styled(SizableText, {\n name: 'BadgeText',\n context: BadgeContext,\n size: '$1',\n fontWeight: '600',\n\n variants: {\n variant: {\n default: { color: '$color1' },\n secondary: { color: '$color12' },\n destructive: { color: '$white1' },\n outline: { color: '$color12' },\n ghost: { color: '$color12' },\n link: { color: '$color12', textDecorationLine: 'underline' },\n inputAdornment: { color: '$color12', fontWeight: '500' },\n tags: { color: '$color11', fontWeight: '400', textTransform: 'capitalize' },\n },\n } as const,\n})\n\n/**\n * A stable class handle for hosts that hook badges from CSS. Styling lives in\n * the tokens; this only names the variant.\n */\nexport const badgeVariants = ({ variant }: { variant?: BadgeVariant | null } = {}) =>\n `hanzo-badge hanzo-badge--${variant ?? 'default'}`\n\n/**\n * Typed as span props because that is the contract every existing call site was\n * written against; the leftovers are handed to gui, which forwards unknown props\n * to the host element on web and drops them on native.\n */\nexport type BadgeProps = React.ComponentProps<'span'> & {\n variant?: BadgeVariant | null\n asChild?: boolean\n}\n\nexport function Badge({\n className,\n variant = 'default',\n asChild = false,\n children,\n ...props\n}: BadgeProps) {\n return (\n <BadgeFrame\n data-slot=\"badge\"\n data-variant={variant}\n variant={variant ?? 'default'}\n asChild={asChild}\n render={asChild ? undefined : 'span'}\n hitSlop={HIT_SLOP}\n className={[badgeVariants({ variant }), className].filter(Boolean).join(' ')}\n {...(props as React.ComponentProps<typeof BadgeFrame>)}\n >\n {asChild ? children : ink(children, BadgeText)}\n </BadgeFrame>\n )\n}\n","'use client'\n\n/**\n * Button — the gui-backend original.\n *\n * `variant`, `size`, `asChild`, `isLoading`, `buttonVariants`, and the\n * `data-slot`/`data-variant`/`data-size` markers. The substrate is @hanzo/gui:\n * `styled()` variants on the gui `Button` frame.\n *\n * Every size meets the 44px touch floor through `hitSlop`, never through\n * padding — the visual density stays at 36/32/40px.\n */\nimport { Button as GuiButton, Spinner, styled } from '@hanzo/gui'\nimport type { ComponentProps, ReactNode } from 'react'\n\nexport type ButtonVariant =\n | 'default'\n | 'destructive'\n | 'outline'\n | 'secondary'\n | 'ghost'\n | 'link'\n | 'primary'\n | 'linkFG'\n | 'linkMuted'\n\nexport type ButtonSize = 'default' | 'sm' | 'lg' | 'icon' | 'icon-sm' | 'icon-lg'\n\nconst HEIGHT: Record<ButtonSize, number> = {\n default: 36,\n sm: 32,\n lg: 40,\n icon: 36,\n 'icon-sm': 32,\n 'icon-lg': 40,\n}\n\nconst MIN_TOUCH = 44\nconst slop = (size: ButtonSize) => Math.max(0, (MIN_TOUCH - HEIGHT[size]) / 2)\n\nconst Frame = styled(GuiButton, {\n name: 'Button',\n items: 'center',\n justify: 'center',\n gap: '$2',\n shrink: 0,\n rounded: '$3',\n borderWidth: 1,\n borderColor: 'transparent',\n cursor: 'pointer',\n\n variants: {\n variant: {\n default: { bg: '$color12', color: '$color1', hoverStyle: { opacity: 0.9 } },\n primary: { bg: '$color12', color: '$color1', hoverStyle: { opacity: 0.9 } },\n destructive: { bg: '$red9', color: '$white1', hoverStyle: { opacity: 0.9 } },\n outline: {\n bg: '$background',\n color: '$color12',\n borderColor: '$borderColor',\n hoverStyle: { bg: '$color3' },\n },\n secondary: { bg: '$color4', color: '$color12', hoverStyle: { opacity: 0.8 } },\n ghost: { bg: 'transparent', color: '$color12', hoverStyle: { bg: '$color3' } },\n link: { bg: 'transparent', color: '$color12', hoverStyle: { textDecorationLine: 'underline' } },\n linkFG: { bg: 'transparent', color: '$color12', hoverStyle: { textDecorationLine: 'underline' } },\n linkMuted: {\n bg: 'transparent',\n color: '$color11',\n hoverStyle: { color: '$color12', textDecorationLine: 'underline' },\n },\n },\n size: {\n default: { height: HEIGHT.default, px: '$4', fontSize: '$3' },\n sm: { height: HEIGHT.sm, px: '$3', gap: '$1.5', fontSize: '$2' },\n lg: { height: HEIGHT.lg, px: '$6', fontSize: '$3' },\n icon: { height: HEIGHT.icon, width: HEIGHT.icon, px: 0 },\n 'icon-sm': { height: HEIGHT['icon-sm'], width: HEIGHT['icon-sm'], px: 0 },\n 'icon-lg': { height: HEIGHT['icon-lg'], width: HEIGHT['icon-lg'], px: 0 },\n },\n disabled: {\n true: { opacity: 0.5, pointerEvents: 'none', cursor: 'default' },\n },\n } as const,\n\n defaultVariants: { variant: 'default', size: 'default' },\n})\n\n/**\n * A stable class handle for hosts that hook buttons from CSS. Styling lives in\n * the tokens; this only names the variant and size.\n */\nexport const buttonVariants = ({\n variant,\n size,\n className,\n}: { variant?: ButtonVariant | null; size?: ButtonSize | null; className?: string } = {}) =>\n [`hanzo-button`, `hanzo-button--${variant ?? 'default'}`, `hanzo-button--${size ?? 'default'}`, className]\n .filter(Boolean)\n .join(' ')\n\nexport type ButtonProps = Omit<ComponentProps<typeof Frame>, 'variant' | 'size' | 'children'> & {\n variant?: ButtonVariant | null\n size?: ButtonSize | null\n asChild?: boolean\n isLoading?: boolean\n children?: ReactNode\n}\n\nfunction Button({\n className,\n variant = 'default',\n size = 'default',\n asChild = false,\n isLoading = false,\n disabled,\n children,\n ...props\n}: ButtonProps) {\n const resolved = size ?? 'default'\n return (\n <Frame\n data-slot=\"button\"\n data-variant={variant ?? 'default'}\n data-size={resolved}\n variant={variant ?? 'default'}\n size={resolved}\n asChild={asChild}\n disabled={disabled || isLoading}\n hitSlop={slop(resolved)}\n className={buttonVariants({ variant, size, className })}\n icon={isLoading && !asChild ? <Spinner size=\"small\" /> : undefined}\n {...props}\n >\n {children}\n </Frame>\n )\n}\n\nexport { Button }\n","/**\n * Web-only slot marker. gui forwards unrecognised props to the DOM node and\n * native drops them, so this is the cross-platform way to keep the `data-slot`\n * contract that app CSS and tests select on.\n */\nexport const slot = (name: string) => ({ 'data-slot': name }) as object\n","'use client'\n\n/**\n * Card — surface, header, title, description, action, content, footer.\n *\n * The header is a row whose action sits at its end: gui/Yoga has no CSS grid,\n * and a row is the one box model that also exists on native.\n */\nimport { SizableText, XStack, YStack, styled } from '@hanzo/gui'\nimport type { ComponentProps } from 'react'\nimport { slot } from './slot'\n\nconst PAD = 24\n\nconst CardFrame = styled(YStack, {\n name: 'Card',\n bg: '$background',\n borderWidth: 1,\n borderColor: '$borderColor',\n rounded: '$6',\n py: PAD,\n gap: PAD,\n})\n\nconst HeaderFrame = styled(XStack, {\n name: 'CardHeader',\n px: PAD,\n gap: '$2',\n items: 'flex-start',\n justify: 'space-between',\n})\n\nconst TitleFrame = styled(SizableText, { name: 'CardTitle', size: '$4', fontWeight: '600' })\nconst DescriptionFrame = styled(SizableText, { name: 'CardDescription', size: '$2', color: '$color11' })\nconst ActionFrame = styled(XStack, { name: 'CardAction', self: 'flex-start', shrink: 0 })\nconst ContentFrame = styled(YStack, { name: 'CardContent', px: PAD })\nconst FooterFrame = styled(XStack, { name: 'CardFooter', px: PAD, items: 'center' })\n\nexport type CardProps = ComponentProps<typeof CardFrame>\nexport type CardHeaderProps = ComponentProps<typeof HeaderFrame>\nexport type CardTitleProps = ComponentProps<typeof TitleFrame>\nexport type CardDescriptionProps = ComponentProps<typeof DescriptionFrame>\nexport type CardActionProps = ComponentProps<typeof ActionFrame>\nexport type CardContentProps = ComponentProps<typeof ContentFrame>\nexport type CardFooterProps = ComponentProps<typeof FooterFrame>\n\nconst Card = (p: CardProps) => <CardFrame {...slot('card')} {...p} />\nconst CardHeader = (p: CardHeaderProps) => <HeaderFrame {...slot('card-header')} {...p} />\nconst CardTitle = (p: CardTitleProps) => <TitleFrame {...slot('card-title')} {...p} />\nconst CardDescription = (p: CardDescriptionProps) => <DescriptionFrame {...slot('card-description')} {...p} />\nconst CardAction = (p: CardActionProps) => <ActionFrame {...slot('card-action')} {...p} />\nconst CardContent = (p: CardContentProps) => <ContentFrame {...slot('card-content')} {...p} />\nconst CardFooter = (p: CardFooterProps) => <FooterFrame {...slot('card-footer')} {...p} />\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent }\n","'use client'\n\n/**\n * Checkbox — 16px box, `hitSlop` to the 44px touch floor.\n * @hanzogui/checkbox owns the checked/indeterminate state and a11y.\n */\nimport { Checkbox as GuiCheckbox } from '@hanzo/gui'\nimport { Check } from '@hanzogui/lucide-icons-2'\nimport type { ComponentProps } from 'react'\nimport { slot } from './slot'\n\nconst BOX = 16\nconst HIT_SLOP = (44 - BOX) / 2\n\nexport type CheckboxProps = ComponentProps<typeof GuiCheckbox>\n\nconst Checkbox = (props: CheckboxProps) => (\n <GuiCheckbox\n {...slot('checkbox')}\n width={BOX}\n height={BOX}\n shrink={0}\n rounded=\"$2\"\n borderWidth={1}\n borderColor=\"$borderColor\"\n bg=\"transparent\"\n hitSlop={HIT_SLOP}\n {...props}\n >\n <GuiCheckbox.Indicator {...slot('checkbox-indicator')} items=\"center\" justify=\"center\">\n <Check size={BOX - 3} />\n </GuiCheckbox.Indicator>\n </GuiCheckbox>\n)\n\nexport { Checkbox }\n","'use client'\n\n/** Collapsible — @hanzogui/collapsible's three parts under the flat names. */\nimport { Collapsible as GuiCollapsible } from '@hanzo/gui'\nimport type { ComponentProps } from 'react'\nimport { slot } from './slot'\n\nexport type CollapsibleProps = ComponentProps<typeof GuiCollapsible>\nexport type CollapsibleTriggerProps = ComponentProps<typeof GuiCollapsible.Trigger>\nexport type CollapsibleContentProps = ComponentProps<typeof GuiCollapsible.Content>\n\nconst Collapsible = (p: CollapsibleProps) => <GuiCollapsible {...slot('collapsible')} {...p} />\nconst CollapsibleTrigger = (p: CollapsibleTriggerProps) => (\n <GuiCollapsible.Trigger {...slot('collapsible-trigger')} unstyled hitSlop={8} {...p} />\n)\nconst CollapsibleContent = (p: CollapsibleContentProps) => (\n <GuiCollapsible.Content {...slot('collapsible-content')} {...p} />\n)\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","/**\n * The Command palette's decisions, as pure functions over plain values.\n *\n * cmdk shipped its matcher and its cursor welded to a DOM store. They are neither\n * DOM nor React: `score` answers \"does this item survive the search\", `step`\n * answers \"where does the cursor land\". Keeping them here means they are testable\n * in the node env (this module imports no @hanzo/gui runtime), and `command.tsx`\n * is left holding only the view.\n */\n\n/** `0` hides the item; anything higher keeps it and ranks it. */\nexport type CommandFilter = (value: string, search: string, keywords?: string[]) => number\n\n/** Exact › prefix › substring (earlier wins) › subsequence › no match. */\nexport const score: CommandFilter = (value, search, keywords) => {\n const needle = search.trim().toLowerCase()\n if (!needle) return 1\n const hay = (keywords?.length ? `${value} ${keywords.join(' ')}` : value).toLowerCase()\n if (hay === needle) return 1\n if (hay.startsWith(needle)) return 0.9\n const at = hay.indexOf(needle)\n if (at > -1) return 0.8 - at / (hay.length * 100)\n let i = 0\n for (let j = 0; j < hay.length && i < needle.length; j++) if (hay[j] === needle[i]) i++\n return i === needle.length ? 0.4 : 0\n}\n\n/**\n * Where the cursor goes. `from` is -1 when nothing is selected yet; `count` is\n * the number of REACHABLE (visible, enabled) items, so skipping disabled rows is\n * the caller's filter rather than a second concept in here. Returns -1 for an\n * empty list.\n */\nexport const step = (count: number, from: number, delta: number, loop = false): number => {\n if (count <= 0) return -1\n const next = from + delta\n if (next < 0) return loop ? count - 1 : 0\n if (next >= count) return loop ? 0 : count - 1\n return next\n}\n","'use client'\n\n/**\n * Command — the filterable command palette, native to gui.\n *\n * cmdk is gone. What it gave us was one thing: a list whose items each know\n * whether they match the current search, plus a cursor that walks the ones that\n * do. That is a small state machine over VALUES (a search string, a registry of\n * item values, a selected value) — it does not need a DOM, so it works the same\n * on web, native and desktop.\n *\n * Two decisions carry the whole file:\n *\n * • Filtered-out items are HIDDEN (`display=\"none\"`), never unmounted. `display`\n * is a real Yoga property, so this is one behaviour on both platforms — and\n * because items stay mounted, registration order is fixed at first mount and\n * stays true to source order. Arrow-key traversal therefore needs no DOM query.\n * • An item registers a mutable REF of itself, not a snapshot. Inline props\n * (`keywords={['a']}`, `onSelect={() => …}`) change identity every render;\n * registering the ref means the registry is always fresh without an effect\n * that re-fires forever.\n *\n * Keyboard navigation is web-only by construction (`isWeb` guards `onKeyDown`);\n * on touch the list is driven by press, which is the native idiom anyway.\n */\nimport {\n createContext,\n forwardRef,\n isValidElement,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useReducer,\n useRef,\n useState,\n type ComponentProps,\n type ComponentRef,\n type FC,\n type ReactNode,\n type RefAttributes,\n} from 'react'\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n Input,\n ListItem,\n ScrollView,\n Separator,\n SizableText,\n VisuallyHidden,\n XStack,\n YStack,\n isWeb,\n type GuiElement,\n} from '@hanzo/gui'\nimport { Search as SearchIcon } from '@hanzogui/lucide-icons-2'\n\nimport { score, step, type CommandFilter } from './command.logic'\n\nexport type { CommandFilter }\n\n/** The one touch-target floor. A palette row IS the target, so it is its height. */\nconst TOUCH = 44\n\n/** Falls back to the item's rendered text when no explicit `value` is given. */\nconst textOf = (node: ReactNode): string =>\n typeof node === 'string' || typeof node === 'number'\n ? String(node)\n : Array.isArray(node)\n ? node.map(textOf).filter(Boolean).join(' ')\n : isValidElement<{ children?: ReactNode }>(node)\n ? textOf(node.props.children)\n : ''\n\ntype Entry = {\n value: string\n keywords?: string[]\n disabled?: boolean\n group?: string\n onSelect?: (value: string) => void\n}\n\ntype KeyLike = {\n key: string\n ctrlKey?: boolean\n metaKey?: boolean\n preventDefault: () => void\n}\n\ntype CommandContextValue = {\n search: string\n setSearch: (search: string) => void\n selected: string\n select: (value: string) => void\n register: (id: string, entry: { current: Entry }) => () => void\n touch: () => void\n run: (id: string) => void\n onKey: (e: KeyLike) => void\n shows: (id: string) => boolean\n showsGroup: (group: string) => boolean\n empty: boolean\n disablePointerSelection: boolean\n}\n\nconst CommandContext = /* @__PURE__ */ createContext<CommandContextValue | null>(null)\nconst GroupContext = /* @__PURE__ */ createContext<string | undefined>(undefined)\n\nconst useCommand = () => {\n const ctx = useContext(CommandContext)\n if (!ctx) throw new Error('Command parts must be rendered inside <Command>')\n return ctx\n}\n\nexport type CommandProps = Omit<ComponentProps<typeof YStack>, 'onSelect'> & {\n /** Selected item value (controlled). */\n value?: string\n defaultValue?: string\n onValueChange?: (value: string) => void\n filter?: CommandFilter\n shouldFilter?: boolean\n /** Arrow keys wrap around at the ends. */\n loop?: boolean\n label?: string\n /** ctrl/cmd + n/p/j/k also move the cursor. */\n vimBindings?: boolean\n /** Hovering an item no longer selects it. */\n disablePointerSelection?: boolean\n}\n\nconst Command = /* @__PURE__ */ forwardRef<GuiElement, CommandProps>(function Command(\n {\n value,\n defaultValue,\n onValueChange,\n filter = score,\n shouldFilter = true,\n loop = false,\n label,\n vimBindings = true,\n disablePointerSelection = false,\n children,\n ...rest\n },\n ref,\n) {\n const entries = useRef(new Map<string, { current: Entry }>()).current\n const order = useRef<string[]>([]).current\n const [version, touch] = useReducer((n: number) => n + 1, 0)\n const [search, setSearch] = useState('')\n const [uncontrolled, setUncontrolled] = useState(defaultValue ?? '')\n const selected = value ?? uncontrolled\n\n const register = useCallback(\n (id: string, entry: { current: Entry }) => {\n entries.set(id, entry)\n if (!order.includes(id)) order.push(id)\n touch()\n return () => {\n entries.delete(id)\n const at = order.indexOf(id)\n if (at > -1) order.splice(at, 1)\n touch()\n }\n },\n [entries, order],\n )\n\n // The visible slice, in source order — the single derived value every part reads.\n const visible = useMemo(\n () =>\n order.filter((id) => {\n const entry = entries.get(id)?.current\n return !!entry && (!shouldFilter || filter(entry.value, search, entry.keywords) > 0)\n }),\n // `version` is the registry's revision — the registry itself is a mutable ref.\n [version, order, entries, shouldFilter, filter, search],\n )\n\n const shown = useMemo(() => new Set(visible), [visible])\n const shownGroups = useMemo(\n () => new Set(visible.map((id) => entries.get(id)?.current.group).filter(Boolean)),\n [visible, entries],\n )\n\n const select = useCallback(\n (next: string) => {\n if (value === undefined) setUncontrolled(next)\n onValueChange?.(next)\n },\n [value, onValueChange],\n )\n\n // Keep the cursor on something real: when the selection filters out, take the first hit.\n useEffect(() => {\n if (!visible.length) return\n if (selected && visible.some((id) => entries.get(id)?.current.value === selected)) return\n const first = entries.get(visible[0])?.current.value\n if (first) select(first)\n }, [visible, selected, entries, select])\n\n const move = useCallback(\n (delta: number) => {\n const reachable = visible.filter((id) => !entries.get(id)?.current.disabled)\n const at = reachable.findIndex((id) => entries.get(id)?.current.value === selected)\n const next = step(reachable.length, at, delta, loop)\n const target = next < 0 ? undefined : entries.get(reachable[next])?.current.value\n if (target) select(target)\n },\n [visible, entries, selected, loop, select],\n )\n\n const run = useCallback(\n (id: string) => {\n const entry = entries.get(id)?.current\n if (!entry || entry.disabled) return\n select(entry.value)\n entry.onSelect?.(entry.value)\n },\n [entries, select],\n )\n\n const onKey = useCallback(\n (e: KeyLike) => {\n const mod = vimBindings && (e.ctrlKey || e.metaKey)\n const down = e.key === 'ArrowDown' || (mod && (e.key === 'n' || e.key === 'j'))\n const up = e.key === 'ArrowUp' || (mod && (e.key === 'p' || e.key === 'k'))\n if (down || up) {\n e.preventDefault()\n move(down ? 1 : -1)\n } else if (e.key === 'Enter') {\n e.preventDefault()\n const id = visible.find((it) => entries.get(it)?.current.value === selected)\n if (id) run(id)\n }\n },\n [vimBindings, move, visible, entries, selected, run],\n )\n\n const ctx = useMemo<CommandContextValue>(\n () => ({\n search,\n setSearch,\n selected,\n select,\n register,\n touch,\n run,\n onKey,\n shows: (id) => shown.has(id),\n showsGroup: (group) => shownGroups.has(group),\n empty: visible.length === 0,\n disablePointerSelection,\n }),\n [search, selected, select, register, run, onKey, shown, shownGroups, visible.length, disablePointerSelection],\n )\n\n return (\n <CommandContext.Provider value={ctx}>\n <YStack\n ref={ref}\n data-slot=\"command\"\n aria-label={label}\n width=\"100%\"\n overflow=\"hidden\"\n rounded=\"$4\"\n bg=\"$background\"\n {...(isWeb ? { onKeyDown: onKey } : null)}\n {...rest}\n >\n {children}\n </YStack>\n </CommandContext.Provider>\n )\n})\n\nexport type CommandDialogProps = ComponentProps<typeof Dialog> & {\n title?: string\n description?: string\n}\n\nconst CommandDialog = ({\n title = 'Command Palette',\n description = 'Search for a command to run...',\n children,\n ...props\n}: CommandDialogProps) => (\n <Dialog modal {...props}>\n <DialogPortal>\n <DialogOverlay key=\"overlay\" bg=\"rgba(0,0,0,0.5)\" />\n <DialogContent key=\"content\" p={0} width=\"100%\" maxW={640} overflow=\"hidden\">\n {/* The accessible name/description live INSIDE the dialog, hidden but read. */}\n <VisuallyHidden>\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </VisuallyHidden>\n <Command>{children}</Command>\n </DialogContent>\n </DialogPortal>\n </Dialog>\n)\n\nexport type CommandInputProps = Omit<ComponentProps<typeof Input>, 'value' | 'onChangeText'> & {\n value?: string\n onValueChange?: (search: string) => void\n}\n\nconst CommandInput = /* @__PURE__ */ forwardRef<GuiElement, CommandInputProps>(\n function CommandInput({ value, onValueChange, placeholder, ...rest }, ref) {\n const { search, setSearch, onKey } = useCommand()\n\n useEffect(() => {\n if (value !== undefined && value !== search) setSearch(value)\n }, [value, search, setSearch])\n\n return (\n <XStack\n data-slot=\"command-input-wrapper\"\n items=\"center\"\n gap=\"$2\"\n px=\"$3\"\n minH={TOUCH}\n borderBottomWidth={1}\n borderColor=\"$borderColor\"\n >\n <SearchIcon size={16} opacity={0.5} />\n <Input\n ref={ref}\n data-slot=\"command-input\"\n unstyled\n flex={1}\n height={TOUCH}\n borderWidth={0}\n bg=\"transparent\"\n color=\"$color\"\n placeholder={placeholder}\n value={value ?? search}\n onChangeText={(next: string) => {\n setSearch(next)\n onValueChange?.(next)\n }}\n {...(isWeb ? { onKeyDown: onKey } : null)}\n {...rest}\n />\n </XStack>\n )\n },\n)\n\nexport type CommandListProps = ComponentProps<typeof ScrollView>\n\nconst CommandList: FC<CommandListProps & RefAttributes<GuiElement>> = /* @__PURE__ */ forwardRef<GuiElement, CommandListProps>(\n function CommandList(props, ref) {\n return <ScrollView ref={ref as never} data-slot=\"command-list\" maxH={300} {...props} />\n },\n)\n\nexport type CommandEmptyProps = ComponentProps<typeof YStack>\n\nconst CommandEmpty = /* @__PURE__ */ forwardRef<GuiElement, CommandEmptyProps>(\n function CommandEmpty({ children, ...rest }, ref) {\n const { empty } = useCommand()\n if (!empty) return null\n return (\n <YStack ref={ref} data-slot=\"command-empty\" py=\"$4\" items=\"center\" {...rest}>\n {typeof children === 'string' ? (\n <SizableText size=\"$3\" color=\"$color11\">\n {children}\n </SizableText>\n ) : (\n children\n )}\n </YStack>\n )\n },\n)\n\nexport type CommandGroupProps = ComponentProps<typeof YStack> & { heading?: ReactNode }\n\nconst CommandGroup = /* @__PURE__ */ forwardRef<GuiElement, CommandGroupProps>(\n function CommandGroup({ heading, children, ...rest }, ref) {\n const id = useId()\n const { showsGroup } = useCommand()\n return (\n <GroupContext.Provider value={id}>\n <YStack\n ref={ref}\n data-slot=\"command-group\"\n // Never unmounted: the children must stay registered to stay ordered.\n display={showsGroup(id) ? 'flex' : 'none'}\n p=\"$1\"\n {...rest}\n >\n {heading != null ? (\n <SizableText\n size=\"$1\"\n color=\"$color11\"\n fontWeight=\"500\"\n px=\"$2\"\n py=\"$1.5\"\n >\n {heading}\n </SizableText>\n ) : null}\n {children}\n </YStack>\n </GroupContext.Provider>\n )\n },\n)\n\nexport type CommandSeparatorProps = ComponentProps<typeof Separator> & {\n /** Keep the rule while a search is active. */\n alwaysRender?: boolean\n}\n\nconst CommandSeparator: FC<CommandSeparatorProps & RefAttributes<GuiElement>> = /* @__PURE__ */ forwardRef<GuiElement, CommandSeparatorProps>(\n function CommandSeparator({ alwaysRender, ...rest }, ref) {\n const { search } = useCommand()\n if (!alwaysRender && search) return null\n return <Separator ref={ref} data-slot=\"command-separator\" {...rest} />\n },\n)\n\nexport type CommandItemProps = Omit<ComponentProps<typeof ListItem>, 'onSelect' | 'value'> & {\n value?: string\n keywords?: string[]\n disabled?: boolean\n onSelect?: (value: string) => void\n}\n\nconst CommandItem: FC<CommandItemProps & RefAttributes<GuiElement>> = /* @__PURE__ */ forwardRef<GuiElement, CommandItemProps>(\n function CommandItem({ value, keywords, disabled, onSelect, children, ...rest }, ref) {\n const id = useId()\n const { register, touch, run, select, selected, shows, disablePointerSelection } = useCommand()\n const group = useContext(GroupContext)\n const self = value ?? textOf(children)\n\n // A ref, not a snapshot — inline `keywords`/`onSelect` change identity every render.\n const entry = useRef<Entry>({ value: self, keywords, disabled, group, onSelect })\n entry.current = { value: self, keywords, disabled, group, onSelect }\n\n useEffect(() => register(id, entry), [id, register])\n // Only what the filter reads needs to re-derive the visible slice.\n useEffect(touch, [touch, self, disabled, keywords?.join('\u0000')])\n\n const isSelected = !!self && selected === self\n\n return (\n <ListItem\n ref={ref}\n data-slot=\"command-item\"\n data-selected={isSelected}\n data-disabled={!!disabled}\n display={shows(id) ? 'flex' : 'none'}\n disabled={disabled}\n minH={TOUCH}\n gap=\"$2\"\n rounded=\"$2\"\n bg={isSelected ? '$backgroundFocus' : 'transparent'}\n opacity={disabled ? 0.5 : 1}\n onPress={() => run(id)}\n onPointerEnter={disabled || disablePointerSelection ? undefined : () => select(self)}\n {...rest}\n >\n {children}\n </ListItem>\n )\n },\n)\n\n/** The trailing key hint. `SizableText` renders a span on web, Text on native. */\nexport type CommandShortcutProps = ComponentProps<typeof SizableText>\n\nconst CommandShortcut = (props: CommandShortcutProps) => (\n <SizableText\n data-slot=\"command-shortcut\"\n ml=\"auto\"\n size=\"$1\"\n color=\"$color11\"\n letterSpacing={1.5}\n {...props}\n />\n)\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n","'use client'\n\n/**\n * Dialog — modal surface, flattened from @hanzogui/dialog's compound parts.\n *\n * `DialogContent` mounts its OWN portal + overlay (so callers never wrap it) and\n * re-applies the trigger's resolved theme inside the portal via `PortalTheme` —\n * gui portals re-root the subtree, so React theme context does not flow.\n */\nimport { Dialog as GuiDialog, XStack, YStack } from '@hanzo/gui'\nimport { X } from '@hanzogui/lucide-icons-2'\nimport type { ComponentProps, ReactNode } from 'react'\nimport { PortalTheme, useThemeName } from '../../product/menu/portal-theme'\nimport { slot } from './slot'\n\nconst PAD = 24\n\nconst Dialog = (p: ComponentProps<typeof GuiDialog>) => <GuiDialog modal {...p} />\nconst DialogTrigger: typeof GuiDialog.Trigger = GuiDialog.Trigger\nconst DialogPortal: typeof GuiDialog.Portal = GuiDialog.Portal\nconst DialogClose: typeof GuiDialog.Close = GuiDialog.Close\n\nexport type DialogOverlayProps = ComponentProps<typeof GuiDialog.Overlay>\n\nconst DialogOverlay = (props: DialogOverlayProps) => (\n <GuiDialog.Overlay\n {...slot('dialog-overlay')}\n bg=\"rgba(0,0,0,0.5)\"\n opacity={0.5}\n {...props}\n />\n)\n\nexport type DialogContentProps = ComponentProps<typeof GuiDialog.Content> & {\n showCloseButton?: boolean\n}\n\nconst DialogContent = ({ showCloseButton = true, children, ...props }: DialogContentProps) => {\n const themeName = useThemeName()\n return (\n <GuiDialog.Portal>\n <PortalTheme name={themeName}>\n <DialogOverlay />\n <GuiDialog.Content\n {...slot('dialog-content')}\n bg=\"$background\"\n borderWidth={1}\n borderColor=\"$borderColor\"\n rounded=\"$5\"\n p={PAD}\n gap=\"$4\"\n width=\"100%\"\n maxW={512}\n {...props}\n >\n {children}\n {showCloseButton ? (\n <GuiDialog.Close asChild>\n <XStack\n {...slot('dialog-close')}\n position=\"absolute\"\n t={16}\n r={16}\n cursor=\"pointer\"\n opacity={0.7}\n hoverStyle={{ opacity: 1 }}\n hitSlop={14}\n aria-label=\"Close\"\n >\n <X size={16} />\n </XStack>\n </GuiDialog.Close>\n ) : null}\n </GuiDialog.Content>\n </PortalTheme>\n </GuiDialog.Portal>\n )\n}\n\nexport type DialogSectionProps = ComponentProps<typeof YStack> & { children?: ReactNode }\n\nconst DialogHeader = (props: DialogSectionProps) => (\n <YStack {...slot('dialog-header')} gap=\"$2\" {...props} />\n)\n\nconst DialogFooter = (props: ComponentProps<typeof XStack>) => (\n <XStack {...slot('dialog-footer')} gap=\"$2\" justify=\"flex-end\" items=\"center\" {...props} />\n)\n\nconst DialogTitle = (props: ComponentProps<typeof GuiDialog.Title>) => (\n <GuiDialog.Title {...slot('dialog-title')} size=\"$5\" fontWeight=\"600\" {...props} />\n)\n\nconst DialogDescription = (props: ComponentProps<typeof GuiDialog.Description>) => (\n <GuiDialog.Description {...slot('dialog-description')} size=\"$2\" color=\"$color11\" {...props} />\n)\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n","'use client'\n\n/**\n * Input — single-line field with optional adornments and a password reveal.\n *\n * @hanzogui/input owns the field; the adornment wrapper only appears when an\n * adornment (or the password toggle) is actually asked for, so the common path\n * stays one element.\n */\nimport { Input as GuiInput, XStack } from '@hanzo/gui'\nimport { Eye, EyeOff } from '@hanzogui/lucide-icons-2'\nimport { forwardRef, useState, type ComponentProps, type ReactNode } from 'react'\nimport { slot } from './slot'\n\nconst HEIGHT = 36\nconst GUTTER = 12\n/** Width reserved for an adornment inside the field. */\nconst WELL = 36\n\nexport type InputProps = Omit<ComponentProps<typeof GuiInput>, 'children'> & {\n /** Optional leading affordance (icon/text) rendered inside the field. */\n startAdornment?: ReactNode\n /** Optional trailing affordance rendered inside the field. */\n endAdornment?: ReactNode\n /** Suppress the built-in show/hide control for `secureTextEntry`/`type=\"password\"`. */\n hidePasswordToggle?: boolean\n}\n\nconst well = (side: 'l' | 'r') =>\n ({\n position: 'absolute' as const,\n [side]: GUTTER,\n t: 0,\n b: 0,\n items: 'center' as const,\n justify: 'center' as const,\n })\n\nconst Input = /* @__PURE__ */ forwardRef<HTMLInputElement, InputProps>(function Input(\n { startAdornment, endAdornment, hidePasswordToggle, type, secureTextEntry, ...props },\n ref,\n) {\n const [revealed, setRevealed] = useState(false)\n const isPassword = type === 'password' || secureTextEntry === true\n const toggle = isPassword && !hidePasswordToggle\n\n const field = (\n <GuiInput\n ref={ref as never}\n {...slot('input')}\n secureTextEntry={isPassword && !revealed}\n height={HEIGHT}\n width=\"100%\"\n minW={0}\n rounded=\"$3\"\n bg=\"transparent\"\n borderWidth={1}\n borderColor=\"$borderColor\"\n placeholderTextColor=\"$color10\"\n fontSize=\"$3\"\n pl={startAdornment ? WELL : GUTTER}\n pr={endAdornment || toggle ? WELL : GUTTER}\n {...props}\n />\n )\n\n if (!startAdornment && !endAdornment && !toggle) return field\n\n return (\n <XStack position=\"relative\" width=\"100%\" items=\"center\">\n {startAdornment ? (\n <XStack {...well('l')} pointerEvents=\"none\" opacity={0.6}>\n {startAdornment}\n </XStack>\n ) : null}\n {field}\n {toggle ? (\n <XStack\n {...well('r')}\n cursor=\"pointer\"\n hitSlop={8}\n onPress={() => setRevealed((v) => !v)}\n aria-label={revealed ? 'Hide password' : 'Show password'}\n >\n {revealed ? <EyeOff size={16} /> : <Eye size={16} />}\n </XStack>\n ) : endAdornment ? (\n <XStack {...well('r')} opacity={0.6}>\n {endAdornment}\n </XStack>\n ) : null}\n </XStack>\n )\n})\n\nexport { Input }\n","'use client'\n\n/** Label — form-control caption bound to its field by @hanzogui/label. */\nimport { Label as GuiLabel } from '@hanzo/gui'\nimport type { ComponentProps } from 'react'\nimport { slot } from './slot'\n\nexport type LabelProps = ComponentProps<typeof GuiLabel>\n\nconst Label = (props: LabelProps) => (\n <GuiLabel\n {...slot('label')}\n fontSize=\"$2\"\n fontWeight=\"500\"\n color=\"$color12\"\n select=\"none\"\n cursor=\"pointer\"\n {...props}\n />\n)\n\nexport { Label }\n","'use client'\n\n/**\n * Popover — floating panel anchored to a trigger.\n *\n * `PopoverContent` mounts its own portal and re-applies the trigger's resolved\n * theme inside it (gui portals re-root the subtree, so theme context does not\n * flow). `sideOffset` lands on the popper root, which is where gui keeps it.\n */\nimport { Popover as GuiPopover } from '@hanzo/gui'\nimport { createContext, useContext, useEffect, useState, type ComponentProps } from 'react'\nimport { PortalTheme, useThemeName } from '../../product/menu/portal-theme'\nimport { slot } from './slot'\n\nconst DEFAULT_OFFSET = 4\n\n/** gui puts `offset` on the popper ROOT; the compound API puts `sideOffset` on\n * Content. One value, one owner: the root holds it, Content publishes into it. */\nconst OffsetContext = /* @__PURE__ */ createContext<((n: number) => void) | null>(null)\n\nexport type PopoverProps = Omit<ComponentProps<typeof GuiPopover>, 'offset'> & { offset?: number }\n\nfunction Popover({ offset = DEFAULT_OFFSET, ...props }: PopoverProps) {\n const [current, setOffset] = useState(offset)\n useEffect(() => setOffset(offset), [offset])\n return (\n <OffsetContext.Provider value={setOffset}>\n <GuiPopover offset={current} {...props} />\n </OffsetContext.Provider>\n )\n}\n\nconst PopoverTrigger: typeof GuiPopover.Trigger = GuiPopover.Trigger\nconst PopoverAnchor: typeof GuiPopover.Anchor = GuiPopover.Anchor\nconst PopoverClose: typeof GuiPopover.Close = GuiPopover.Close\n\nexport type PopoverContentProps = ComponentProps<typeof GuiPopover.Content> & {\n sideOffset?: number\n align?: 'start' | 'center' | 'end'\n}\n\nconst PopoverContent = ({ sideOffset = DEFAULT_OFFSET, align: _align, ...props }: PopoverContentProps) => {\n const themeName = useThemeName()\n const setOffset = useContext(OffsetContext)\n useEffect(() => setOffset?.(sideOffset), [setOffset, sideOffset])\n return (\n <PortalTheme name={themeName}>\n <GuiPopover.Content\n {...slot('popover-content')}\n bg=\"$color2\"\n borderWidth={1}\n borderColor=\"$borderColor\"\n rounded=\"$4\"\n p=\"$4\"\n width={288}\n {...props}\n />\n </PortalTheme>\n )\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverClose }\n","'use client'\n\n/** Progress — determinate bar; `value` is 0–100. */\nimport { Progress as GuiProgress } from '@hanzo/gui'\nimport type { ComponentProps } from 'react'\nimport { slot } from './slot'\n\nexport type ProgressProps = ComponentProps<typeof GuiProgress>\n\nconst Progress = ({ value, ...props }: ProgressProps) => (\n <GuiProgress\n {...slot('progress')}\n value={value ?? 0}\n height={8}\n width=\"100%\"\n bg=\"$color4\"\n rounded=\"$10\"\n overflow=\"hidden\"\n {...props}\n >\n <GuiProgress.Indicator {...slot('progress-indicator')} bg=\"$color12\" />\n </GuiProgress>\n)\n\nexport { Progress }\n","/**\n * The panel-sizing math — pure values, no React and no @hanzo/gui, so the\n * boundary rules can be reasoned about and tested on their own.\n */\nexport type ResizeDirection = \"horizontal\" | \"vertical\"\n\n/** Everything the boundary math needs to know about a panel. */\nexport type PanelSpec = {\n id: string\n defaultSize?: number\n minSize?: number\n maxSize?: number\n collapsible?: boolean\n collapsedSize?: number\n onResize?: (size: number) => void\n}\n\nconst clamp = (n: number, lo: number, hi: number) =>\n Math.max(lo, Math.min(n, hi))\n\n/** Smallest percentage a panel may take — collapsible panels may go to `collapsedSize`. */\nconst floorOf = (s: PanelSpec) =>\n s.collapsible ? (s.collapsedSize ?? 0) : (s.minSize ?? 0)\nconst ceilOf = (s: PanelSpec) => s.maxSize ?? 100\n\n/** Starting percentages: honour every `defaultSize`, split the remainder evenly, normalise to 100. PURE. */\nexport function defaultLayout(specs: PanelSpec[]): number[] {\n if (specs.length === 0) return []\n const claimed = specs.reduce((n, s) => n + (s.defaultSize ?? 0), 0)\n const free = specs.filter((s) => s.defaultSize == null).length\n const each = free > 0 ? Math.max(0, 100 - claimed) / free : 0\n const raw = specs.map((s) => s.defaultSize ?? each)\n const sum = raw.reduce((a, b) => a + b, 0)\n return sum > 0\n ? raw.map((v) => (v / sum) * 100)\n : specs.map(() => 100 / specs.length)\n}\n\n/**\n * Move the boundary AFTER panel `i` by `delta` percent. Only the two adjacent\n * panels change, so their sum is invariant and the layout always totals 100.\n * Returns the original array when the move is fully clamped. PURE.\n */\nexport function resizeAt(\n sizes: number[],\n specs: PanelSpec[],\n i: number,\n delta: number\n): number[] {\n const a = sizes[i]\n const b = sizes[i + 1]\n const sa = specs[i]\n const sb = specs[i + 1]\n if (a == null || b == null || !sa || !sb) return sizes\n const pair = a + b\n const lo = Math.max(floorOf(sa), pair - ceilOf(sb))\n const hi = Math.min(ceilOf(sa), pair - floorOf(sb))\n if (lo > hi) return sizes\n const next = clamp(a + delta, lo, hi)\n if (next === a) return sizes\n const out = sizes.slice()\n out[i] = next\n out[i + 1] = pair - next\n return out\n}\n","\"use client\"\n\n/**\n * Resizable panel group — native to @hanzo/gui, no `react-resizable-panels`.\n *\n * The upstream package dropped `PanelGroup`/`PanelResizeHandle` in v4 (it now\n * exports `Group`/`Panel`/`Separator` and renamed `direction` → `orientation`),\n * so every consumer pinned to the old shape is unbuildable. Rather than pin a\n * dead version we own the primitive: it is ~200 lines of percentage arithmetic\n * over a flexbox, which is cheaper to keep than a dependency that renames its\n * public surface.\n *\n * Layout is PERCENTAGES, never pixels: a panel's share becomes its `flexGrow`\n * over a zero `flexBasis`, so the browser/RN layout engine handles container\n * resize for free (and rounding can never leave a gap). The only thing this\n * module owns is \"where is the boundary\" — pure functions (`defaultLayout`,\n * `resizeAt`) with the min/max/collapse clamping in ONE place.\n *\n * Cross-platform by construction: the group measures itself with `onLayout`\n * (gui implements it on web too), and the handle drives web with Pointer Events\n * + pointer capture and native with the responder system. Both prop sets are\n * typed on gui's stacks, and pointer capture is feature-detected, so nothing\n * here reaches for the DOM on expo. Keyboard resize is arrow keys (Shift for a\n * fine step). Touch target is the 4px handle plus a 20px hitSlop = 44px.\n */\nimport {\n Children,\n createContext,\n isValidElement,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ReactElement,\n type ReactNode,\n} from \"react\"\nimport { isWeb, Separator, XStack, type XStackProps } from \"@hanzo/gui\"\nimport { GripVertical } from \"@hanzogui/lucide-icons-2\"\n\nimport {\n defaultLayout,\n resizeAt,\n type PanelSpec,\n type ResizeDirection,\n} from \"./resizable.logic\"\n\nexport type { ResizeDirection, PanelSpec } from \"./resizable.logic\"\n\nexport { defaultLayout, resizeAt }\n\n// ── Persisted layouts (autoSaveId) ────────────────────────────────────────────\n// One blob per autoSaveId, keyed inside by the set of visible panels, so toggling\n// a panel off and back on restores what that arrangement had. Read in an effect,\n// never during render, so SSR markup matches the first client paint.\n\ntype Store = Record<string, number[]>\n\nconst webStorage = () =>\n (\n globalThis as {\n localStorage?: {\n getItem(k: string): string | null\n setItem(k: string, v: string): void\n }\n }\n ).localStorage\n\nconst storeKey = (id: string) => `hanzo.panels.${id}`\n\nfunction loadStore(id?: string): Store {\n if (!id) return {}\n try {\n return JSON.parse(webStorage()?.getItem(storeKey(id)) ?? \"{}\") as Store\n } catch {\n return {}\n }\n}\n\nfunction saveStore(id: string | undefined, store: Store) {\n if (!id) return\n try {\n webStorage()?.setItem(storeKey(id), JSON.stringify(store))\n } catch {\n // No storage (native, private mode, quota) — layout is simply not persisted.\n }\n}\n\n// ── Context ───────────────────────────────────────────────────────────────────\n\ntype GroupValue = {\n direction: ResizeDirection\n specs: PanelSpec[]\n sizes: number[]\n extent: { current: number }\n setLayout: (next: number[]) => void\n}\n\nconst GroupContext = /* @__PURE__ */ createContext<GroupValue | null>(null)\n/** A panel's index, or for a handle the index of the panel it follows. */\nconst SlotContext = /* @__PURE__ */ createContext(-1)\n\n// ── Group ─────────────────────────────────────────────────────────────────────\n\nexport type ResizablePanelGroupProps = Omit<\n XStackProps,\n \"onLayout\" | \"direction\"\n> & {\n direction: ResizeDirection\n autoSaveId?: string\n onLayout?: (sizes: number[]) => void\n children?: ReactNode\n}\n\nexport function ResizablePanelGroup({\n direction,\n autoSaveId,\n onLayout,\n children,\n ...rest\n}: ResizablePanelGroupProps) {\n const axis = direction === \"horizontal\"\n const extent = useRef(0)\n const [store, setStore] = useState<Store>({})\n\n const slots = useMemo(\n () =>\n Children.toArray(children).filter(isValidElement) as ReactElement<\n Record<string, unknown>\n >[],\n [children]\n )\n\n const specs = useMemo<PanelSpec[]>(\n () =>\n slots\n .filter((el) => el.type === ResizablePanel)\n .map((el, i) => {\n const p = el.props as ResizablePanelProps\n return {\n id: p.id ?? String(p.order ?? i),\n defaultSize: p.defaultSize,\n minSize: p.minSize,\n maxSize: p.maxSize,\n collapsible: p.collapsible,\n collapsedSize: p.collapsedSize,\n onResize: p.onResize,\n }\n }),\n [slots]\n )\n\n const key = specs.map((s) => s.id).join(\",\")\n const sizes = store[key] ?? defaultLayout(specs)\n\n useEffect(() => {\n setStore(loadStore(autoSaveId))\n }, [autoSaveId])\n\n const setLayout = useCallback(\n (next: number[]) => {\n const merged = { ...store, [key]: next }\n setStore(merged)\n saveStore(autoSaveId, merged)\n onLayout?.(next)\n },\n [autoSaveId, key, onLayout, store]\n )\n\n const prev = useRef<number[]>([])\n useEffect(() => {\n specs.forEach((s, i) => {\n if (sizes[i] != null && sizes[i] !== prev.current[i])\n s.onResize?.(sizes[i])\n })\n prev.current = sizes\n }, [specs, sizes])\n\n const value = useMemo<GroupValue>(\n () => ({ direction, specs, sizes, extent, setLayout }),\n [direction, specs, sizes, setLayout]\n )\n\n let panel = -1\n return (\n <GroupContext.Provider value={value}>\n <XStack\n width=\"100%\"\n height=\"100%\"\n flexDirection={axis ? \"row\" : \"column\"}\n overflow=\"hidden\"\n data-panel-group-direction={direction}\n onLayout={(e) => {\n extent.current = axis\n ? e.nativeEvent.layout.width\n : e.nativeEvent.layout.height\n }}\n {...rest}\n >\n {slots.map((el, i) => {\n if (el.type === ResizablePanel) panel++\n return (\n <SlotContext.Provider key={el.key ?? i} value={panel}>\n {el}\n </SlotContext.Provider>\n )\n })}\n </XStack>\n </GroupContext.Provider>\n )\n}\n\n// ── Panel ─────────────────────────────────────────────────────────────────────\n\nexport type ResizablePanelProps = Omit<XStackProps, \"id\" | \"onLayout\"> & {\n id?: string\n order?: number\n defaultSize?: number\n minSize?: number\n maxSize?: number\n collapsible?: boolean\n collapsedSize?: number\n onResize?: (size: number) => void\n children?: ReactNode\n}\n\nexport function ResizablePanel({\n id,\n order,\n defaultSize,\n minSize,\n maxSize,\n collapsible,\n collapsedSize,\n onResize,\n children,\n ...rest\n}: ResizablePanelProps) {\n const group = useContext(GroupContext)\n const index = useContext(SlotContext)\n const size = group?.sizes[index]\n\n return (\n <XStack\n flexDirection=\"column\"\n overflow=\"hidden\"\n flexBasis={0}\n grow={size ?? 1}\n shrink={1}\n {...rest}\n >\n {children}\n </XStack>\n )\n}\n\n// ── Handle ────────────────────────────────────────────────────────────────────\n\nconst THICKNESS = 4\n/** 4px + 20px each side = a 44px target without inflating the visual divider. */\nconst HIT_SLOP = 20\nconst KEY_STEP = 5\nconst KEY_STEP_FINE = 1\n\n/** Structural shape shared by a React pointer event and an RN responder event. */\ntype DragEvent = {\n clientX?: number\n clientY?: number\n pointerId?: number\n currentTarget?: unknown\n nativeEvent?: { pageX?: number; pageY?: number }\n}\n\nexport type ResizableHandleProps = Omit<\n XStackProps,\n \"disabled\" | \"onLayout\"\n> & {\n withHandle?: boolean\n disabled?: boolean\n}\n\nexport function ResizableHandle({\n withHandle,\n disabled,\n ...rest\n}: ResizableHandleProps) {\n const group = useContext(GroupContext)\n const boundary = useContext(SlotContext)\n const [state, setState] = useState<\"idle\" | \"hover\" | \"drag\">(\"idle\")\n const start = useRef<{ pos: number; sizes: number[] } | null>(null)\n\n const axis = group?.direction !== \"vertical\"\n const off =\n disabled || !group || boundary < 0 || boundary + 1 >= group.sizes.length\n\n const posOf = useCallback(\n (e: DragEvent) =>\n (axis\n ? (e.clientX ?? e.nativeEvent?.pageX)\n : (e.clientY ?? e.nativeEvent?.pageY)) ?? 0,\n [axis]\n )\n\n const begin = useCallback(\n (e: DragEvent) => {\n if (off || !group) return\n start.current = { pos: posOf(e), sizes: group.sizes }\n setState(\"drag\")\n // Keeps the drag alive once the pointer leaves the 4px handle, without a\n // window listener. Absent on native, where the responder system owns it.\n const target = e.currentTarget as\n | { setPointerCapture?: (id: number) => void }\n | undefined\n if (target?.setPointerCapture && e.pointerId != null)\n target.setPointerCapture(e.pointerId)\n },\n [group, off, posOf]\n )\n\n const move = useCallback(\n (e: DragEvent) => {\n const from = start.current\n if (!from || !group) return\n const px = group.extent.current\n if (px <= 0) return\n group.setLayout(\n resizeAt(\n from.sizes,\n group.specs,\n boundary,\n ((posOf(e) - from.pos) / px) * 100\n )\n )\n },\n [boundary, group, posOf]\n )\n\n const end = useCallback(() => {\n start.current = null\n setState(\"idle\")\n }, [])\n\n const nudge = useCallback(\n (e: { key: string; shiftKey?: boolean; preventDefault: () => void }) => {\n if (off || !group) return\n const dir = axis\n ? e.key === \"ArrowLeft\"\n ? -1\n : e.key === \"ArrowRight\"\n ? 1\n : 0\n : e.key === \"ArrowUp\"\n ? -1\n : e.key === \"ArrowDown\"\n ? 1\n : 0\n if (dir === 0) return\n e.preventDefault()\n group.setLayout(\n resizeAt(\n group.sizes,\n group.specs,\n boundary,\n dir * (e.shiftKey ? KEY_STEP_FINE : KEY_STEP)\n )\n )\n },\n [axis, boundary, group, off]\n )\n\n const hover = useCallback(\n (on: boolean) =>\n setState((s) => (s === \"drag\" ? s : on ? \"hover\" : \"idle\")),\n []\n )\n\n const gesture = isWeb\n ? {\n onPointerDown: begin,\n onPointerMove: move,\n onPointerUp: end,\n onPointerCancel: end,\n onKeyDown: nudge,\n onMouseEnter: () => hover(true),\n onMouseLeave: () => hover(false),\n }\n : {\n onStartShouldSetResponder: () => !off,\n onMoveShouldSetResponder: () => !off,\n onResponderTerminationRequest: () => false,\n onResponderGrant: begin,\n onResponderMove: move,\n onResponderRelease: end,\n onResponderTerminate: end,\n }\n\n return (\n <XStack\n position=\"relative\"\n flexDirection={axis ? \"column\" : \"row\"}\n items=\"center\"\n justify=\"center\"\n shrink={0}\n width={axis ? THICKNESS : \"100%\"}\n height={axis ? \"100%\" : THICKNESS}\n hitSlop={HIT_SLOP}\n cursor={off ? \"default\" : axis ? \"col-resize\" : \"row-resize\"}\n tabIndex={off ? -1 : 0}\n role=\"separator\"\n aria-orientation={axis ? \"vertical\" : \"horizontal\"}\n data-panel-group-direction={group?.direction}\n data-resize-handle-state={state}\n {...gesture}\n {...rest}\n >\n <Separator\n vertical={axis}\n borderColor={state === \"idle\" ? \"$borderColor\" : \"$color8\"}\n />\n {withHandle && (\n <XStack\n position=\"absolute\"\n items=\"center\"\n justify=\"center\"\n width={12}\n height={20}\n rounded=\"$2\"\n bg=\"$color5\"\n borderWidth={1}\n borderColor=\"$borderColor\"\n rotate={axis ? \"0deg\" : \"90deg\"}\n >\n <GripVertical size={10} />\n </XStack>\n )}\n </XStack>\n )\n}\n","\"use client\"\n\n/**\n * ScrollArea — the cross-platform (web + native + desktop) scroll surface.\n *\n * Scrolling itself is the platform's: @hanzogui/scroll-view's `ScrollView` (a\n * styled react-native `ScrollView`), so momentum, keyboard, wheel, and\n * accessibility come from the host and are never reimplemented. What this adds is\n * the ONE custom scrollbar — the platform indicator is suppressed and `ScrollBar`\n * draws it from the scroll metrics the viewport reports, so a thumb looks and\n * drags identically on Chrome, iOS, and Tauri.\n *\n * One area scrolls one axis (`horizontal` picks it), so there is exactly one bar\n * and never a dead one: `ScrollArea` renders `<ScrollBar orientation={axis} />`\n * and a bar for the other axis has nothing to scroll and renders nothing.\n */\nimport {\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n type ReactNode,\n} from \"react\"\nimport {\n ScrollView,\n XStack,\n YStack,\n type GetRef,\n type GuiElement,\n type YStackProps,\n} from \"@hanzo/gui\"\n\nimport { slot } from \"./slot\"\n\n/** Bar thickness, and the thumb's minimum length — both in px. */\nconst BAR = 10\n/** Minimum touch target. The thumb is `BAR` thin, so hitSlop makes up the rest. */\nconst TOUCH = 44\nconst SLOP = (TOUCH - BAR) / 2\n\nexport type ScrollAreaType = \"auto\" | \"always\" | \"scroll\" | \"hover\"\ntype Axis = \"vertical\" | \"horizontal\"\n\n/** What the viewport reports about one axis, in px. */\ntype Track = { offset: number; viewport: number; content: number }\nconst ZERO: Track = { offset: 0, viewport: 0, content: 0 }\n\ntype ScrollAreaCtx = {\n axis: Axis\n track: Track\n type: ScrollAreaType\n /** Scrolling or hovered — what `scroll` and `hover` reveal on. */\n active: boolean\n rtl: boolean\n scrollBy: (delta: number) => void\n}\n\nconst Ctx = /* @__PURE__ */ createContext<ScrollAreaCtx | null>(null)\n\nconst clamp = (n: number, max: number) => (n < 0 ? 0 : n > max ? max : n)\n\nexport type ScrollBarProps = Omit<YStackProps, \"children\"> & {\n orientation?: Axis\n}\n\nconst ScrollBar = /* @__PURE__ */ forwardRef<GuiElement, ScrollBarProps>(\n function ScrollBar({ orientation = \"vertical\", ...props }, ref) {\n const ctx = useContext(Ctx)\n const [len, setLen] = useState(0)\n const from = useRef<number | null>(null)\n\n if (!ctx || ctx.axis !== orientation) return null\n\n const vertical = orientation === \"vertical\"\n const { content, viewport, offset } = ctx.track\n const scrollable = content - viewport\n const overflow = scrollable > 1\n const shown =\n ctx.type === \"always\"\n ? true\n : !overflow\n ? false\n : ctx.type === \"auto\"\n ? true\n : ctx.active\n\n const thumb = Math.max(TOUCH, len * (viewport / Math.max(content, 1)))\n const range = Math.max(len - thumb, 0)\n const at = overflow ? range * clamp(offset / scrollable, 1) : 0\n const coord = (e: { nativeEvent: { pageX: number; pageY: number } }) =>\n vertical ? e.nativeEvent.pageY : e.nativeEvent.pageX\n\n return (\n <XStack\n ref={ref}\n {...slot(\"scroll-area-scrollbar\")}\n position=\"absolute\"\n {...(vertical\n ? {\n t: 0,\n b: 0,\n ...(ctx.rtl ? { l: 0 } : { r: 0 }),\n width: BAR,\n flexDirection: \"column\" as const,\n }\n : { l: 0, r: 0, b: 0, height: BAR, flexDirection: \"row\" as const })}\n p={1}\n opacity={shown ? 1 : 0}\n pointerEvents={shown ? \"auto\" : \"none\"}\n onLayout={(e) =>\n setLen(\n vertical ? e.nativeEvent.layout.height : e.nativeEvent.layout.width\n )\n }\n {...props}\n >\n <YStack\n {...slot(\"scroll-area-thumb\")}\n bg=\"$borderColor\"\n rounded={BAR}\n hitSlop={\n vertical ? { left: SLOP, right: SLOP } : { top: SLOP, bottom: SLOP }\n }\n {...(vertical\n ? { width: \"100%\" as const, height: thumb, y: at }\n : { height: \"100%\" as const, width: thumb, x: at })}\n onStartShouldSetResponder={() => true}\n onMoveShouldSetResponder={() => true}\n onResponderGrant={(e) => {\n from.current = coord(e)\n }}\n onResponderMove={(e) => {\n const start = from.current\n if (start === null || range === 0) return\n const now = coord(e)\n from.current = now\n ctx.scrollBy(((now - start) * scrollable) / range)\n }}\n onResponderRelease={() => {\n from.current = null\n }}\n onResponderTerminate={() => {\n from.current = null\n }}\n />\n </XStack>\n )\n }\n)\n\nexport type ScrollAreaProps = Omit<YStackProps, \"children\"> & {\n /** When the bar shows: on overflow, always, while scrolling, or on hover. */\n type?: ScrollAreaType\n /** ms the bar lingers after scrolling/hover stops (`scroll` and `hover`). */\n scrollHideDelay?: number\n dir?: \"ltr\" | \"rtl\"\n /** Scroll the x axis instead of the y axis (react-native ScrollView semantics). */\n horizontal?: boolean\n children?: ReactNode\n}\n\nconst ScrollArea = /* @__PURE__ */ forwardRef<GuiElement, ScrollAreaProps>(\n function ScrollArea(\n {\n type = \"hover\",\n scrollHideDelay = 600,\n dir,\n horizontal = false,\n children,\n ...props\n },\n ref\n ) {\n const viewport = useRef<GetRef<typeof ScrollView>>(null)\n const live = useRef<Track>(ZERO)\n const [track, setTrack] = useState<Track>(ZERO)\n const [active, setActive] = useState(false)\n const timer = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n const axis: Axis = horizontal ? \"horizontal\" : \"vertical\"\n\n const put = useCallback((patch: Partial<Track>) => {\n const next = { ...live.current, ...patch }\n live.current = next\n setTrack(next)\n }, [])\n\n const clear = () => {\n if (timer.current) clearTimeout(timer.current)\n timer.current = null\n }\n\n const hold = () => {\n clear()\n setActive(true)\n }\n\n /** Show now, then fade after the delay — the shared reveal for scroll + hover. */\n const wake = useCallback(() => {\n setActive(true)\n clear()\n timer.current = setTimeout(() => setActive(false), scrollHideDelay)\n }, [scrollHideDelay])\n\n useEffect(() => clear, [])\n\n const scrollBy = useCallback(\n (delta: number) => {\n const t = live.current\n const next = clamp(\n t.offset + delta,\n Math.max(t.content - t.viewport, 0)\n )\n put({ offset: next })\n viewport.current?.scrollTo(\n horizontal\n ? { x: next, y: 0, animated: false }\n : { x: 0, y: next, animated: false }\n )\n },\n [horizontal, put]\n )\n\n return (\n <YStack\n ref={ref}\n {...slot(\"scroll-area\")}\n position=\"relative\"\n overflow=\"hidden\"\n onMouseEnter={type === \"hover\" ? hold : undefined}\n onMouseLeave={type === \"hover\" ? wake : undefined}\n {...props}\n >\n <ScrollView\n ref={viewport}\n {...slot(\"scroll-area-viewport\")}\n flex={1}\n width=\"100%\"\n height=\"100%\"\n horizontal={horizontal}\n showsVerticalScrollIndicator={false}\n showsHorizontalScrollIndicator={false}\n scrollEventThrottle={16}\n onLayout={(e) =>\n put({\n viewport: horizontal\n ? e.nativeEvent.layout.width\n : e.nativeEvent.layout.height,\n })\n }\n onContentSizeChange={(w, h) => put({ content: horizontal ? w : h })}\n onScroll={(e) => {\n const { contentOffset } = e.nativeEvent\n put({ offset: horizontal ? contentOffset.x : contentOffset.y })\n wake()\n }}\n >\n {children}\n </ScrollView>\n <Ctx.Provider\n value={{ axis, track, type, active, rtl: dir === \"rtl\", scrollBy }}\n >\n <ScrollBar orientation={axis} />\n </Ctx.Provider>\n </YStack>\n )\n }\n)\n\nexport { ScrollArea, ScrollBar }\n","'use client'\n\n/**\n * Select — the compound picker on @hanzogui/select.\n *\n * gui's `Select.Item` needs a positional `index`. Call sites should not have to\n * count, so `SelectContent` walks its subtree once per render and stamps\n * sequential indices on every `SelectItem` it finds — including items nested in a\n * `SelectGroup`. An item is written `<SelectItem value=\"x\">Label</SelectItem>`\n * and the numbering always matches render order.\n */\nimport { Select as GuiSelect, SelectSeparator as GuiSelectSeparator, XStack } from '@hanzo/gui'\nimport { Check, ChevronDown, ChevronUp } from '@hanzogui/lucide-icons-2'\nimport {\n Children,\n cloneElement,\n isValidElement,\n type ComponentProps,\n type ReactNode,\n} from 'react'\nimport { ink } from './ink'\nimport { slot } from './slot'\n\nconst ROW_H = 32\nconst HIT_SLOP = (44 - ROW_H) / 2\n\nconst Select: typeof GuiSelect = GuiSelect\nconst SelectGroup: typeof GuiSelect.Group = GuiSelect.Group\nconst SelectValue: typeof GuiSelect.Value = GuiSelect.Value\n\nexport type SelectTriggerProps = ComponentProps<typeof GuiSelect.Trigger>\nexport type SelectContentProps = ComponentProps<typeof GuiSelect.Content>\nexport type SelectItemProps = Omit<ComponentProps<typeof GuiSelect.Item>, 'index'> & {\n index?: number\n}\nexport type SelectLabelProps = ComponentProps<typeof GuiSelect.Label>\nexport type SelectSeparatorProps = ComponentProps<typeof GuiSelectSeparator>\nexport type SelectScrollButtonProps = ComponentProps<typeof GuiSelect.ScrollUpButton>\n\nconst SelectTrigger = ({ children, ...props }: SelectTriggerProps) => (\n <GuiSelect.Trigger\n {...slot('select-trigger')}\n unstyled\n items=\"center\"\n justify=\"space-between\"\n gap=\"$2\"\n height={36}\n px=\"$3\"\n rounded=\"$3\"\n borderWidth={1}\n borderColor=\"$borderColor\"\n bg=\"transparent\"\n cursor=\"pointer\"\n hitSlop={4}\n {...props}\n >\n {ink(children, undefined, { size: '$2' })}\n <GuiSelect.Icon>\n <ChevronDown size={16} opacity={0.5} />\n </GuiSelect.Icon>\n </GuiSelect.Trigger>\n)\n\nconst SelectItem = ({ children, ...props }: SelectItemProps) => (\n <GuiSelect.Item\n {...slot('select-item')}\n unstyled\n index={props.index ?? 0}\n items=\"center\"\n gap=\"$2\"\n minH={ROW_H}\n pl=\"$2\"\n pr=\"$7\"\n rounded=\"$2\"\n cursor=\"pointer\"\n hitSlop={HIT_SLOP}\n hoverStyle={{ bg: '$color5' }}\n focusStyle={{ bg: '$color5' }}\n {...props}\n >\n <GuiSelect.ItemText>{children}</GuiSelect.ItemText>\n <XStack position=\"absolute\" r=\"$2\" items=\"center\" justify=\"center\" pointerEvents=\"none\">\n <GuiSelect.ItemIndicator>\n <Check size={16} />\n </GuiSelect.ItemIndicator>\n </XStack>\n </GuiSelect.Item>\n)\n\n/** Depth-first stamp of `index` onto every `SelectItem` in render order. */\nconst stampIndices = (children: ReactNode, next: () => number): ReactNode =>\n Children.map(children, (child) => {\n if (!isValidElement(child)) return child\n if (child.type === SelectItem) return cloneElement(child, { index: next() } as never)\n const kids = (child.props as { children?: ReactNode }).children\n return kids === undefined ? child : cloneElement(child, undefined, stampIndices(kids, next))\n })\n\nconst SelectScrollUpButton = (props: SelectScrollButtonProps) => (\n <GuiSelect.ScrollUpButton {...slot('select-scroll-up-button')} items=\"center\" justify=\"center\" py=\"$1\" {...props}>\n <ChevronUp size={16} />\n </GuiSelect.ScrollUpButton>\n)\n\nconst SelectScrollDownButton = (props: SelectScrollButtonProps) => (\n <GuiSelect.ScrollDownButton {...slot('select-scroll-down-button')} items=\"center\" justify=\"center\" py=\"$1\" {...props}>\n <ChevronDown size={16} />\n </GuiSelect.ScrollDownButton>\n)\n\nconst SelectContent = ({ children, ...props }: SelectContentProps) => {\n let n = 0\n return (\n <GuiSelect.Content {...slot('select-content')} {...props}>\n <SelectScrollUpButton />\n <GuiSelect.Viewport\n minW={128}\n p=\"$1\"\n bg=\"$color2\"\n borderWidth={1}\n borderColor=\"$borderColor\"\n rounded=\"$4\"\n >\n {stampIndices(children, () => n++)}\n </GuiSelect.Viewport>\n <SelectScrollDownButton />\n </GuiSelect.Content>\n )\n}\n\nconst SelectLabel = (props: SelectLabelProps) => (\n <GuiSelect.Label {...slot('select-label')} px=\"$2\" py=\"$1.5\" fontSize=\"$1\" color=\"$color11\" {...props} />\n)\n\nconst SelectSeparator = (props: SelectSeparatorProps) => (\n <GuiSelectSeparator {...slot('select-separator')} my=\"$1\" borderColor=\"$borderColor\" {...props} />\n)\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n}\n","'use client'\n\n/** Separator — a 1px rule on either axis. */\nimport { Separator as GuiSeparator } from '@hanzo/gui'\nimport type { ComponentProps } from 'react'\nimport { slot } from './slot'\n\nexport type SeparatorProps = Omit<ComponentProps<typeof GuiSeparator>, 'vertical'> & {\n orientation?: 'horizontal' | 'vertical'\n /** Radix parity — gui separators are always presentational. */\n decorative?: boolean\n}\n\nconst Separator = ({ orientation = 'horizontal', decorative: _decorative, ...props }: SeparatorProps) => (\n <GuiSeparator\n {...slot('separator')}\n data-orientation={orientation}\n vertical={orientation === 'vertical'}\n borderColor=\"$borderColor\"\n {...props}\n />\n)\n\nexport { Separator }\n","'use client'\n\n/** Slider — 6px track, 16px thumb, `hitSlop` to the 44px touch floor. */\nimport { Slider as GuiSlider } from '@hanzo/gui'\nimport type { ComponentProps } from 'react'\nimport { slot } from './slot'\n\nconst TRACK = 6\nconst THUMB = 16\nconst HIT_SLOP = (44 - THUMB) / 2\n\nexport type SliderProps = ComponentProps<typeof GuiSlider>\n\nconst Slider = (props: SliderProps) => (\n <GuiSlider {...slot('slider')} width=\"100%\" {...props}>\n <GuiSlider.Track {...slot('slider-track')} height={TRACK} bg=\"$color4\" rounded=\"$10\">\n <GuiSlider.TrackActive {...slot('slider-range')} bg=\"$color12\" />\n </GuiSlider.Track>\n <GuiSlider.Thumb\n {...slot('slider-thumb')}\n index={0}\n circular\n size={THUMB}\n bg=\"$background\"\n borderWidth={1}\n borderColor=\"$color12\"\n hitSlop={HIT_SLOP}\n />\n </GuiSlider>\n)\n\nexport { Slider }\n","'use client'\n\n/** Switch — 36×20 track, 16px thumb, `hitSlop` to the 44px touch floor. */\nimport { Switch as GuiSwitch } from '@hanzo/gui'\nimport type { ComponentProps } from 'react'\nimport { slot } from './slot'\n\nconst TRACK_H = 20\nconst THUMB = 16\nconst HIT_SLOP = (44 - TRACK_H) / 2\n\nexport type SwitchProps = ComponentProps<typeof GuiSwitch>\n\nconst Switch = (props: SwitchProps) => (\n <GuiSwitch\n {...slot('switch')}\n width={36}\n height={TRACK_H}\n p={2}\n shrink={0}\n hitSlop={HIT_SLOP}\n {...props}\n >\n <GuiSwitch.Thumb\n {...slot('switch-thumb')}\n width={THUMB}\n height={THUMB}\n />\n </GuiSwitch>\n)\n\nexport { Switch }\n","'use client'\n\n/** Tabs — `TabsTrigger` is gui's `Tabs.Tab`; rows meet the 44px touch floor. */\nimport { Tabs as GuiTabs } from '@hanzo/gui'\nimport type { ComponentProps } from 'react'\nimport { ink } from './ink'\nimport { slot } from './slot'\n\nconst ROW_H = 36\nconst HIT_SLOP = (44 - ROW_H) / 2\n\nexport type TabsProps = ComponentProps<typeof GuiTabs>\nexport type TabsListProps = ComponentProps<typeof GuiTabs.List>\nexport type TabsTriggerProps = ComponentProps<typeof GuiTabs.Tab>\nexport type TabsContentProps = ComponentProps<typeof GuiTabs.Content>\n\nconst Tabs = (p: TabsProps) => <GuiTabs {...slot('tabs')} flexDirection=\"column\" gap=\"$2\" {...p} />\n\nconst TabsList = (p: TabsListProps) => (\n <GuiTabs.List\n {...slot('tabs-list')}\n items=\"center\"\n justify=\"center\"\n self=\"flex-start\"\n height={ROW_H}\n p={3}\n gap={2}\n bg=\"$color3\"\n rounded=\"$4\"\n {...p}\n />\n)\n\nconst TabsTrigger = ({ children, ...p }: TabsTriggerProps) => (\n <GuiTabs.Tab\n {...slot('tabs-trigger')}\n unstyled\n items=\"center\"\n justify=\"center\"\n height=\"100%\"\n px=\"$3\"\n gap=\"$1.5\"\n rounded=\"$3\"\n cursor=\"pointer\"\n hitSlop={HIT_SLOP}\n hoverStyle={{ bg: '$color4' }}\n focusStyle={{ bg: '$color4' }}\n {...p}\n >\n {ink(children, undefined, { size: '$2', fontWeight: '500' })}\n </GuiTabs.Tab>\n)\n\nconst TabsContent = (p: TabsContentProps) => <GuiTabs.Content {...slot('tabs-content')} flex={1} {...p} />\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { TextArea } from \"@hanzo/gui\"\n\n/** Floor for the grown row count. */\nconst MIN_ROWS = 3\n\nconst rowsOf = (v: unknown) =>\n typeof v === \"string\" ? v.split(\"\\n\").length : 0\n\n/**\n * Textarea — standard-token multiline field.\n *\n * Auto-grow is line-driven rather than DOM-measured, so web, native and desktop\n * grow identically: the row count follows the value and gui's\n * `textAreaSizeVariant` turns rows into height.\n * `rows` is the floor, not a fixed size.\n */\nconst Textarea = /* @__PURE__ */ React.forwardRef<\n HTMLTextAreaElement,\n React.ComponentProps<\"textarea\">\n>(function Textarea({ rows, value, defaultValue, ...props }, ref) {\n const [typed, setTyped] = React.useState(() => rowsOf(defaultValue))\n const uncontrolled = value === undefined\n const invalid = props[\"aria-invalid\"]\n return (\n <TextArea\n ref={ref as never}\n data-slot=\"textarea\"\n rows={Math.max(rows ?? MIN_ROWS, uncontrolled ? typed : rowsOf(value))}\n value={value as string | undefined}\n defaultValue={defaultValue as string | undefined}\n onChangeText={uncontrolled ? (t) => setTyped(rowsOf(t)) : undefined}\n width=\"100%\"\n minH={64}\n rounded=\"$4\"\n bg=\"transparent\"\n borderWidth={1}\n borderColor={invalid && invalid !== \"false\" ? \"$red7\" : \"$borderColor\"}\n placeholderTextColor=\"$color10\"\n fontSize=\"$3\"\n opacity={props.disabled ? 0.5 : 1}\n {...(props as Record<string, unknown>)}\n />\n )\n})\n\nexport { Textarea }\n","'use client'\n\n/**\n * Toaster — the toast viewport, mounted once near the root of an app.\n *\n * gui already owns the whole thing: `@hanzogui/toast/v2` ships a sonner-shaped\n * `toast()` observer and a `Toaster` that portals a themed, swipe-dismissable\n * stack on web, native and desktop. So this is a prop translation, not a\n * reimplementation.\n *\n * `className`, `style` and the per-part `classNames` are accepted and ignored:\n * gui paints from theme tokens (`$background`, `$color`, `$borderColor`), the one\n * styling channel that also exists on native. They stay in the type so existing\n * call sites keep compiling.\n */\nimport type { GuiElement } from '@hanzogui/core'\nimport {\n Toaster as GuiToaster,\n toast,\n type ExternalToast,\n type ToasterProps as GuiToasterProps,\n} from '@hanzogui/toast/v2'\nimport { forwardRef } from 'react'\n\n/** Sonner's per-part class hooks. Inert — see the note above. */\nexport type ToasterClassNames = Partial<\n Record<\n | 'toast'\n | 'title'\n | 'description'\n | 'icon'\n | 'actionButton'\n | 'cancelButton'\n | 'closeButton',\n string\n >\n>\n\nexport interface ToasterProps extends Omit<GuiToasterProps, 'toastOptions'> {\n /** Inert. gui themes the viewport from tokens. */\n className?: string\n /** Inert. gui themes the viewport from tokens. */\n style?: Record<string, string | number>\n toastOptions?: ExternalToast & { classNames?: ToasterClassNames }\n}\n\nconst Toaster = /* @__PURE__ */ forwardRef<GuiElement, ToasterProps>(function Toaster(props, ref) {\n const { theme = 'system', toastOptions, ...rest } = props\n return <GuiToaster ref={ref} theme={theme} toastOptions={toastOptions} {...rest} />\n})\n\nexport { Toaster, toast }\n","'use client'\n\n/** Tooltip — hover/focus hint. `TooltipProvider` is gui's `TooltipGroup`. */\nimport { Tooltip as GuiTooltip, TooltipGroup } from '@hanzo/gui'\nimport { useEffect, type ComponentProps } from 'react'\nimport { PortalTheme, useThemeName } from '../../product/menu/portal-theme'\nimport { ink } from './ink'\nimport { slot } from './slot'\n\nconst DEFAULT_OFFSET = 4\n\nexport type TooltipProps = ComponentProps<typeof GuiTooltip>\nexport type TooltipContentProps = ComponentProps<typeof GuiTooltip.Content> & { sideOffset?: number }\n\nconst Tooltip = (props: TooltipProps) => <GuiTooltip offset={DEFAULT_OFFSET} {...props} />\nconst TooltipTrigger: typeof GuiTooltip.Trigger = GuiTooltip.Trigger\nconst TooltipProvider: typeof TooltipGroup = TooltipGroup\n\nconst TooltipContent = ({ sideOffset: _sideOffset, children, ...props }: TooltipContentProps) => {\n const themeName = useThemeName()\n return (\n <PortalTheme name={themeName}>\n <GuiTooltip.Content\n {...slot('tooltip-content')}\n bg=\"$color2\"\n borderWidth={1}\n borderColor=\"$borderColor\"\n rounded=\"$3\"\n px=\"$3\"\n py=\"$1.5\"\n {...props}\n >\n {ink(children, undefined, { size: '$1' })}\n </GuiTooltip.Content>\n </PortalTheme>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"]}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { useEmit } from './chunk-FVQXROBK.js';
2
3
  import { useThemeSetting } from '@hanzogui/next-theme';
3
4
  import { lazy, useState, Suspense, Component } from 'react';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  var react = require('react');
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { PROVIDERS } from './chunk-ZGTJCJ55.js';
2
3
  import { EmptyState, FieldRow, FieldTextArea, FieldSelect, FieldText, PrimaryButton, classifyBackend, PageHeader, BackendStateCard } from './chunk-GVCOAJLO.js';
3
4
  import { useEmit } from './chunk-FVQXROBK.js';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  var chunk7XDEUEWI_cjs = require('./chunk-7XDEUEWI.cjs');