@hanzo/ui 8.0.25 → 8.0.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (582) hide show
  1. package/README.md +1 -1
  2. package/dist/backends/gui/aspect-ratio.d.ts +14 -0
  3. package/dist/backends/gui/avatar.d.ts +16 -0
  4. package/dist/backends/gui/badge.d.ts +19 -0
  5. package/dist/backends/gui/button.d.ts +50 -0
  6. package/dist/backends/gui/card.d.ts +44 -0
  7. package/dist/backends/gui/checkbox.d.ts +9 -0
  8. package/dist/backends/gui/collapsible.d.ts +10 -0
  9. package/dist/backends/gui/command.d.ts +86 -0
  10. package/dist/backends/gui/command.logic.d.ts +20 -0
  11. package/dist/backends/gui/dialog.d.ts +27 -0
  12. package/dist/backends/gui/dropdown-menu.d.ts +98 -0
  13. package/dist/backends/gui/index.d.ts +24 -2
  14. package/dist/backends/gui/ink.d.ts +7 -0
  15. package/dist/backends/gui/input.d.ts +19 -0
  16. package/dist/backends/gui/label.d.ts +6 -0
  17. package/dist/backends/gui/popover.d.ts +22 -0
  18. package/dist/backends/gui/progress.d.ts +6 -0
  19. package/dist/backends/gui/resizable.d.ts +52 -0
  20. package/dist/backends/gui/resizable.logic.d.ts +23 -0
  21. package/dist/backends/gui/scroll-area.d.ts +45 -0
  22. package/dist/backends/gui/select.d.ts +30 -0
  23. package/dist/backends/gui/separator.d.ts +10 -0
  24. package/dist/backends/gui/slider.d.ts +6 -0
  25. package/dist/backends/gui/slot.d.ts +6 -0
  26. package/dist/backends/gui/switch.d.ts +6 -0
  27. package/dist/backends/gui/tabs.d.ts +12 -0
  28. package/dist/backends/gui/textarea.d.ts +11 -0
  29. package/dist/backends/gui/toaster.d.ts +28 -0
  30. package/dist/backends/gui/tooltip.d.ts +12 -0
  31. package/dist/chunk-2U3MNE4I.js +4 -0
  32. package/dist/chunk-2U3MNE4I.js.map +1 -0
  33. package/dist/chunk-6DDY6XZI.js +53 -0
  34. package/dist/chunk-6DDY6XZI.js.map +1 -0
  35. package/dist/chunk-6KZWRBK2.cjs +1498 -0
  36. package/dist/chunk-6KZWRBK2.cjs.map +1 -0
  37. package/dist/chunk-DC52DQ27.cjs +303 -0
  38. package/dist/chunk-DC52DQ27.cjs.map +1 -0
  39. package/dist/chunk-NQUA5YRQ.cjs +55 -0
  40. package/dist/chunk-NQUA5YRQ.cjs.map +1 -0
  41. package/dist/chunk-PI3GSHLU.js +263 -0
  42. package/dist/chunk-PI3GSHLU.js.map +1 -0
  43. package/dist/chunk-QHC2ZNAF.js +11 -0
  44. package/dist/chunk-QHC2ZNAF.js.map +1 -0
  45. package/dist/chunk-QV52JQHR.cjs +77 -0
  46. package/dist/chunk-QV52JQHR.cjs.map +1 -0
  47. package/dist/chunk-RBS5AYO4.cjs +13 -0
  48. package/dist/chunk-RBS5AYO4.cjs.map +1 -0
  49. package/dist/chunk-RCMDRI6V.js +1401 -0
  50. package/dist/chunk-RCMDRI6V.js.map +1 -0
  51. package/dist/components.d.ts +1 -1
  52. package/dist/core/cn.d.ts +3 -5
  53. package/dist/core/index.cjs +92 -0
  54. package/dist/core/index.cjs.map +1 -0
  55. package/dist/core/index.js +14 -0
  56. package/dist/core/index.js.map +1 -0
  57. package/dist/core/tokens.cjs +77 -0
  58. package/dist/core/tokens.cjs.map +1 -0
  59. package/dist/core/tokens.js +4 -0
  60. package/dist/core/tokens.js.map +1 -0
  61. package/dist/framework/index.cjs +4 -3
  62. package/dist/framework/index.cjs.map +1 -1
  63. package/dist/framework/index.js +2 -1
  64. package/dist/framework/index.js.map +1 -1
  65. package/dist/index.cjs +365 -1136
  66. package/dist/index.cjs.map +1 -1
  67. package/dist/index.d.ts +1 -1
  68. package/dist/index.js +3 -1017
  69. package/dist/index.js.map +1 -1
  70. package/dist/models/catalog.d.ts +1 -1
  71. package/dist/models/index.cjs +225 -0
  72. package/dist/models/index.cjs.map +1 -0
  73. package/dist/models/index.js +218 -0
  74. package/dist/models/index.js.map +1 -0
  75. package/dist/primitives/AspectRatio.cjs +14 -0
  76. package/dist/primitives/AspectRatio.cjs.map +1 -0
  77. package/dist/primitives/AspectRatio.d.ts +1 -1
  78. package/dist/primitives/AspectRatio.js +5 -0
  79. package/dist/primitives/AspectRatio.js.map +1 -0
  80. package/dist/primitives/Avatar.cjs +14 -0
  81. package/dist/primitives/Avatar.cjs.map +1 -0
  82. package/dist/primitives/Avatar.d.ts +1 -1
  83. package/dist/primitives/Avatar.js +5 -0
  84. package/dist/primitives/Avatar.js.map +1 -0
  85. package/dist/primitives/AvatarFallback.cjs +14 -0
  86. package/dist/primitives/AvatarFallback.cjs.map +1 -0
  87. package/dist/primitives/AvatarFallback.d.ts +1 -1
  88. package/dist/primitives/AvatarFallback.js +5 -0
  89. package/dist/primitives/AvatarFallback.js.map +1 -0
  90. package/dist/primitives/AvatarImage.cjs +14 -0
  91. package/dist/primitives/AvatarImage.cjs.map +1 -0
  92. package/dist/primitives/AvatarImage.d.ts +1 -1
  93. package/dist/primitives/AvatarImage.js +5 -0
  94. package/dist/primitives/AvatarImage.js.map +1 -0
  95. package/dist/primitives/Badge.cjs +14 -0
  96. package/dist/primitives/Badge.cjs.map +1 -0
  97. package/dist/primitives/Badge.d.ts +1 -1
  98. package/dist/primitives/Badge.js +5 -0
  99. package/dist/primitives/Badge.js.map +1 -0
  100. package/dist/primitives/Button.cjs +14 -0
  101. package/dist/primitives/Button.cjs.map +1 -0
  102. package/dist/primitives/Button.d.ts +1 -1
  103. package/dist/primitives/Button.js +5 -0
  104. package/dist/primitives/Button.js.map +1 -0
  105. package/dist/primitives/Card.cjs +14 -0
  106. package/dist/primitives/Card.cjs.map +1 -0
  107. package/dist/primitives/Card.d.ts +1 -1
  108. package/dist/primitives/Card.js +5 -0
  109. package/dist/primitives/Card.js.map +1 -0
  110. package/dist/primitives/CardAction.cjs +14 -0
  111. package/dist/primitives/CardAction.cjs.map +1 -0
  112. package/dist/primitives/CardAction.d.ts +1 -1
  113. package/dist/primitives/CardAction.js +5 -0
  114. package/dist/primitives/CardAction.js.map +1 -0
  115. package/dist/primitives/CardContent.cjs +14 -0
  116. package/dist/primitives/CardContent.cjs.map +1 -0
  117. package/dist/primitives/CardContent.d.ts +1 -1
  118. package/dist/primitives/CardContent.js +5 -0
  119. package/dist/primitives/CardContent.js.map +1 -0
  120. package/dist/primitives/CardDescription.cjs +14 -0
  121. package/dist/primitives/CardDescription.cjs.map +1 -0
  122. package/dist/primitives/CardDescription.d.ts +1 -1
  123. package/dist/primitives/CardDescription.js +5 -0
  124. package/dist/primitives/CardDescription.js.map +1 -0
  125. package/dist/primitives/CardFooter.cjs +14 -0
  126. package/dist/primitives/CardFooter.cjs.map +1 -0
  127. package/dist/primitives/CardFooter.d.ts +1 -1
  128. package/dist/primitives/CardFooter.js +5 -0
  129. package/dist/primitives/CardFooter.js.map +1 -0
  130. package/dist/primitives/CardHeader.cjs +14 -0
  131. package/dist/primitives/CardHeader.cjs.map +1 -0
  132. package/dist/primitives/CardHeader.d.ts +1 -1
  133. package/dist/primitives/CardHeader.js +5 -0
  134. package/dist/primitives/CardHeader.js.map +1 -0
  135. package/dist/primitives/CardTitle.cjs +14 -0
  136. package/dist/primitives/CardTitle.cjs.map +1 -0
  137. package/dist/primitives/CardTitle.d.ts +1 -1
  138. package/dist/primitives/CardTitle.js +5 -0
  139. package/dist/primitives/CardTitle.js.map +1 -0
  140. package/dist/primitives/Checkbox.cjs +14 -0
  141. package/dist/primitives/Checkbox.cjs.map +1 -0
  142. package/dist/primitives/Checkbox.d.ts +1 -1
  143. package/dist/primitives/Checkbox.js +5 -0
  144. package/dist/primitives/Checkbox.js.map +1 -0
  145. package/dist/primitives/Collapsible.cjs +14 -0
  146. package/dist/primitives/Collapsible.cjs.map +1 -0
  147. package/dist/primitives/Collapsible.d.ts +1 -1
  148. package/dist/primitives/Collapsible.js +5 -0
  149. package/dist/primitives/Collapsible.js.map +1 -0
  150. package/dist/primitives/CollapsibleContent.cjs +14 -0
  151. package/dist/primitives/CollapsibleContent.cjs.map +1 -0
  152. package/dist/primitives/CollapsibleContent.d.ts +1 -1
  153. package/dist/primitives/CollapsibleContent.js +5 -0
  154. package/dist/primitives/CollapsibleContent.js.map +1 -0
  155. package/dist/primitives/CollapsibleTrigger.cjs +14 -0
  156. package/dist/primitives/CollapsibleTrigger.cjs.map +1 -0
  157. package/dist/primitives/CollapsibleTrigger.d.ts +1 -1
  158. package/dist/primitives/CollapsibleTrigger.js +5 -0
  159. package/dist/primitives/CollapsibleTrigger.js.map +1 -0
  160. package/dist/primitives/Command.cjs +14 -0
  161. package/dist/primitives/Command.cjs.map +1 -0
  162. package/dist/primitives/Command.d.ts +1 -1
  163. package/dist/primitives/Command.js +5 -0
  164. package/dist/primitives/Command.js.map +1 -0
  165. package/dist/primitives/CommandDialog.cjs +14 -0
  166. package/dist/primitives/CommandDialog.cjs.map +1 -0
  167. package/dist/primitives/CommandDialog.d.ts +1 -1
  168. package/dist/primitives/CommandDialog.js +5 -0
  169. package/dist/primitives/CommandDialog.js.map +1 -0
  170. package/dist/primitives/CommandEmpty.cjs +14 -0
  171. package/dist/primitives/CommandEmpty.cjs.map +1 -0
  172. package/dist/primitives/CommandEmpty.d.ts +1 -1
  173. package/dist/primitives/CommandEmpty.js +5 -0
  174. package/dist/primitives/CommandEmpty.js.map +1 -0
  175. package/dist/primitives/CommandGroup.cjs +14 -0
  176. package/dist/primitives/CommandGroup.cjs.map +1 -0
  177. package/dist/primitives/CommandGroup.d.ts +1 -1
  178. package/dist/primitives/CommandGroup.js +5 -0
  179. package/dist/primitives/CommandGroup.js.map +1 -0
  180. package/dist/primitives/CommandInput.cjs +14 -0
  181. package/dist/primitives/CommandInput.cjs.map +1 -0
  182. package/dist/primitives/CommandInput.d.ts +1 -1
  183. package/dist/primitives/CommandInput.js +5 -0
  184. package/dist/primitives/CommandInput.js.map +1 -0
  185. package/dist/primitives/CommandItem.cjs +14 -0
  186. package/dist/primitives/CommandItem.cjs.map +1 -0
  187. package/dist/primitives/CommandItem.d.ts +1 -1
  188. package/dist/primitives/CommandItem.js +5 -0
  189. package/dist/primitives/CommandItem.js.map +1 -0
  190. package/dist/primitives/CommandList.cjs +14 -0
  191. package/dist/primitives/CommandList.cjs.map +1 -0
  192. package/dist/primitives/CommandList.d.ts +1 -1
  193. package/dist/primitives/CommandList.js +5 -0
  194. package/dist/primitives/CommandList.js.map +1 -0
  195. package/dist/primitives/CommandSeparator.cjs +14 -0
  196. package/dist/primitives/CommandSeparator.cjs.map +1 -0
  197. package/dist/primitives/CommandSeparator.d.ts +1 -1
  198. package/dist/primitives/CommandSeparator.js +5 -0
  199. package/dist/primitives/CommandSeparator.js.map +1 -0
  200. package/dist/primitives/CommandShortcut.cjs +14 -0
  201. package/dist/primitives/CommandShortcut.cjs.map +1 -0
  202. package/dist/primitives/CommandShortcut.d.ts +1 -1
  203. package/dist/primitives/CommandShortcut.js +5 -0
  204. package/dist/primitives/CommandShortcut.js.map +1 -0
  205. package/dist/primitives/Dialog.cjs +14 -0
  206. package/dist/primitives/Dialog.cjs.map +1 -0
  207. package/dist/primitives/Dialog.d.ts +1 -1
  208. package/dist/primitives/Dialog.js +5 -0
  209. package/dist/primitives/Dialog.js.map +1 -0
  210. package/dist/primitives/DialogClose.cjs +14 -0
  211. package/dist/primitives/DialogClose.cjs.map +1 -0
  212. package/dist/primitives/DialogClose.d.ts +1 -1
  213. package/dist/primitives/DialogClose.js +5 -0
  214. package/dist/primitives/DialogClose.js.map +1 -0
  215. package/dist/primitives/DialogContent.cjs +14 -0
  216. package/dist/primitives/DialogContent.cjs.map +1 -0
  217. package/dist/primitives/DialogContent.d.ts +1 -1
  218. package/dist/primitives/DialogContent.js +5 -0
  219. package/dist/primitives/DialogContent.js.map +1 -0
  220. package/dist/primitives/DialogDescription.cjs +14 -0
  221. package/dist/primitives/DialogDescription.cjs.map +1 -0
  222. package/dist/primitives/DialogDescription.d.ts +1 -1
  223. package/dist/primitives/DialogDescription.js +5 -0
  224. package/dist/primitives/DialogDescription.js.map +1 -0
  225. package/dist/primitives/DialogFooter.cjs +14 -0
  226. package/dist/primitives/DialogFooter.cjs.map +1 -0
  227. package/dist/primitives/DialogFooter.d.ts +1 -1
  228. package/dist/primitives/DialogFooter.js +5 -0
  229. package/dist/primitives/DialogFooter.js.map +1 -0
  230. package/dist/primitives/DialogHeader.cjs +14 -0
  231. package/dist/primitives/DialogHeader.cjs.map +1 -0
  232. package/dist/primitives/DialogHeader.d.ts +1 -1
  233. package/dist/primitives/DialogHeader.js +5 -0
  234. package/dist/primitives/DialogHeader.js.map +1 -0
  235. package/dist/primitives/DialogOverlay.cjs +14 -0
  236. package/dist/primitives/DialogOverlay.cjs.map +1 -0
  237. package/dist/primitives/DialogOverlay.d.ts +1 -1
  238. package/dist/primitives/DialogOverlay.js +5 -0
  239. package/dist/primitives/DialogOverlay.js.map +1 -0
  240. package/dist/primitives/DialogPortal.cjs +14 -0
  241. package/dist/primitives/DialogPortal.cjs.map +1 -0
  242. package/dist/primitives/DialogPortal.d.ts +1 -1
  243. package/dist/primitives/DialogPortal.js +5 -0
  244. package/dist/primitives/DialogPortal.js.map +1 -0
  245. package/dist/primitives/DialogTitle.cjs +14 -0
  246. package/dist/primitives/DialogTitle.cjs.map +1 -0
  247. package/dist/primitives/DialogTitle.d.ts +1 -1
  248. package/dist/primitives/DialogTitle.js +5 -0
  249. package/dist/primitives/DialogTitle.js.map +1 -0
  250. package/dist/primitives/DialogTrigger.cjs +14 -0
  251. package/dist/primitives/DialogTrigger.cjs.map +1 -0
  252. package/dist/primitives/DialogTrigger.d.ts +1 -1
  253. package/dist/primitives/DialogTrigger.js +5 -0
  254. package/dist/primitives/DialogTrigger.js.map +1 -0
  255. package/dist/primitives/DropdownMenu.cjs +14 -0
  256. package/dist/primitives/DropdownMenu.cjs.map +1 -0
  257. package/dist/primitives/DropdownMenu.d.ts +1 -1
  258. package/dist/primitives/DropdownMenu.js +5 -0
  259. package/dist/primitives/DropdownMenu.js.map +1 -0
  260. package/dist/primitives/DropdownMenuCheckboxItem.cjs +14 -0
  261. package/dist/primitives/DropdownMenuCheckboxItem.cjs.map +1 -0
  262. package/dist/primitives/DropdownMenuCheckboxItem.d.ts +1 -1
  263. package/dist/primitives/DropdownMenuCheckboxItem.js +5 -0
  264. package/dist/primitives/DropdownMenuCheckboxItem.js.map +1 -0
  265. package/dist/primitives/DropdownMenuContent.cjs +14 -0
  266. package/dist/primitives/DropdownMenuContent.cjs.map +1 -0
  267. package/dist/primitives/DropdownMenuContent.d.ts +1 -1
  268. package/dist/primitives/DropdownMenuContent.js +5 -0
  269. package/dist/primitives/DropdownMenuContent.js.map +1 -0
  270. package/dist/primitives/DropdownMenuGroup.cjs +14 -0
  271. package/dist/primitives/DropdownMenuGroup.cjs.map +1 -0
  272. package/dist/primitives/DropdownMenuGroup.d.ts +1 -1
  273. package/dist/primitives/DropdownMenuGroup.js +5 -0
  274. package/dist/primitives/DropdownMenuGroup.js.map +1 -0
  275. package/dist/primitives/DropdownMenuItem.cjs +14 -0
  276. package/dist/primitives/DropdownMenuItem.cjs.map +1 -0
  277. package/dist/primitives/DropdownMenuItem.d.ts +1 -1
  278. package/dist/primitives/DropdownMenuItem.js +5 -0
  279. package/dist/primitives/DropdownMenuItem.js.map +1 -0
  280. package/dist/primitives/DropdownMenuLabel.cjs +14 -0
  281. package/dist/primitives/DropdownMenuLabel.cjs.map +1 -0
  282. package/dist/primitives/DropdownMenuLabel.d.ts +1 -1
  283. package/dist/primitives/DropdownMenuLabel.js +5 -0
  284. package/dist/primitives/DropdownMenuLabel.js.map +1 -0
  285. package/dist/primitives/DropdownMenuPortal.cjs +14 -0
  286. package/dist/primitives/DropdownMenuPortal.cjs.map +1 -0
  287. package/dist/primitives/DropdownMenuPortal.d.ts +1 -1
  288. package/dist/primitives/DropdownMenuPortal.js +5 -0
  289. package/dist/primitives/DropdownMenuPortal.js.map +1 -0
  290. package/dist/primitives/DropdownMenuRadioGroup.cjs +14 -0
  291. package/dist/primitives/DropdownMenuRadioGroup.cjs.map +1 -0
  292. package/dist/primitives/DropdownMenuRadioGroup.d.ts +1 -1
  293. package/dist/primitives/DropdownMenuRadioGroup.js +5 -0
  294. package/dist/primitives/DropdownMenuRadioGroup.js.map +1 -0
  295. package/dist/primitives/DropdownMenuRadioItem.cjs +14 -0
  296. package/dist/primitives/DropdownMenuRadioItem.cjs.map +1 -0
  297. package/dist/primitives/DropdownMenuRadioItem.d.ts +1 -1
  298. package/dist/primitives/DropdownMenuRadioItem.js +5 -0
  299. package/dist/primitives/DropdownMenuRadioItem.js.map +1 -0
  300. package/dist/primitives/DropdownMenuSeparator.cjs +14 -0
  301. package/dist/primitives/DropdownMenuSeparator.cjs.map +1 -0
  302. package/dist/primitives/DropdownMenuSeparator.d.ts +1 -1
  303. package/dist/primitives/DropdownMenuSeparator.js +5 -0
  304. package/dist/primitives/DropdownMenuSeparator.js.map +1 -0
  305. package/dist/primitives/DropdownMenuShortcut.cjs +14 -0
  306. package/dist/primitives/DropdownMenuShortcut.cjs.map +1 -0
  307. package/dist/primitives/DropdownMenuShortcut.d.ts +1 -1
  308. package/dist/primitives/DropdownMenuShortcut.js +5 -0
  309. package/dist/primitives/DropdownMenuShortcut.js.map +1 -0
  310. package/dist/primitives/DropdownMenuSub.cjs +14 -0
  311. package/dist/primitives/DropdownMenuSub.cjs.map +1 -0
  312. package/dist/primitives/DropdownMenuSub.d.ts +1 -1
  313. package/dist/primitives/DropdownMenuSub.js +5 -0
  314. package/dist/primitives/DropdownMenuSub.js.map +1 -0
  315. package/dist/primitives/DropdownMenuSubContent.cjs +14 -0
  316. package/dist/primitives/DropdownMenuSubContent.cjs.map +1 -0
  317. package/dist/primitives/DropdownMenuSubContent.d.ts +1 -1
  318. package/dist/primitives/DropdownMenuSubContent.js +5 -0
  319. package/dist/primitives/DropdownMenuSubContent.js.map +1 -0
  320. package/dist/primitives/DropdownMenuSubTrigger.cjs +14 -0
  321. package/dist/primitives/DropdownMenuSubTrigger.cjs.map +1 -0
  322. package/dist/primitives/DropdownMenuSubTrigger.d.ts +1 -1
  323. package/dist/primitives/DropdownMenuSubTrigger.js +5 -0
  324. package/dist/primitives/DropdownMenuSubTrigger.js.map +1 -0
  325. package/dist/primitives/DropdownMenuTrigger.cjs +14 -0
  326. package/dist/primitives/DropdownMenuTrigger.cjs.map +1 -0
  327. package/dist/primitives/DropdownMenuTrigger.d.ts +1 -1
  328. package/dist/primitives/DropdownMenuTrigger.js +5 -0
  329. package/dist/primitives/DropdownMenuTrigger.js.map +1 -0
  330. package/dist/primitives/Input.cjs +14 -0
  331. package/dist/primitives/Input.cjs.map +1 -0
  332. package/dist/primitives/Input.d.ts +1 -1
  333. package/dist/primitives/Input.js +5 -0
  334. package/dist/primitives/Input.js.map +1 -0
  335. package/dist/primitives/Label.cjs +14 -0
  336. package/dist/primitives/Label.cjs.map +1 -0
  337. package/dist/primitives/Label.d.ts +1 -1
  338. package/dist/primitives/Label.js +5 -0
  339. package/dist/primitives/Label.js.map +1 -0
  340. package/dist/primitives/Popover.cjs +14 -0
  341. package/dist/primitives/Popover.cjs.map +1 -0
  342. package/dist/primitives/Popover.d.ts +1 -1
  343. package/dist/primitives/Popover.js +5 -0
  344. package/dist/primitives/Popover.js.map +1 -0
  345. package/dist/primitives/PopoverAnchor.cjs +14 -0
  346. package/dist/primitives/PopoverAnchor.cjs.map +1 -0
  347. package/dist/primitives/PopoverAnchor.d.ts +1 -1
  348. package/dist/primitives/PopoverAnchor.js +5 -0
  349. package/dist/primitives/PopoverAnchor.js.map +1 -0
  350. package/dist/primitives/PopoverClose.cjs +14 -0
  351. package/dist/primitives/PopoverClose.cjs.map +1 -0
  352. package/dist/primitives/PopoverClose.d.ts +1 -0
  353. package/dist/primitives/PopoverClose.js +5 -0
  354. package/dist/primitives/PopoverClose.js.map +1 -0
  355. package/dist/primitives/PopoverContent.cjs +14 -0
  356. package/dist/primitives/PopoverContent.cjs.map +1 -0
  357. package/dist/primitives/PopoverContent.d.ts +1 -1
  358. package/dist/primitives/PopoverContent.js +5 -0
  359. package/dist/primitives/PopoverContent.js.map +1 -0
  360. package/dist/primitives/PopoverTrigger.cjs +14 -0
  361. package/dist/primitives/PopoverTrigger.cjs.map +1 -0
  362. package/dist/primitives/PopoverTrigger.d.ts +1 -1
  363. package/dist/primitives/PopoverTrigger.js +5 -0
  364. package/dist/primitives/PopoverTrigger.js.map +1 -0
  365. package/dist/primitives/Progress.cjs +14 -0
  366. package/dist/primitives/Progress.cjs.map +1 -0
  367. package/dist/primitives/Progress.d.ts +1 -1
  368. package/dist/primitives/Progress.js +5 -0
  369. package/dist/primitives/Progress.js.map +1 -0
  370. package/dist/primitives/ResizableHandle.cjs +14 -0
  371. package/dist/primitives/ResizableHandle.cjs.map +1 -0
  372. package/dist/primitives/ResizableHandle.d.ts +1 -0
  373. package/dist/primitives/ResizableHandle.js +5 -0
  374. package/dist/primitives/ResizableHandle.js.map +1 -0
  375. package/dist/primitives/ResizablePanel.cjs +14 -0
  376. package/dist/primitives/ResizablePanel.cjs.map +1 -0
  377. package/dist/primitives/ResizablePanel.d.ts +1 -0
  378. package/dist/primitives/ResizablePanel.js +5 -0
  379. package/dist/primitives/ResizablePanel.js.map +1 -0
  380. package/dist/primitives/ResizablePanelGroup.cjs +14 -0
  381. package/dist/primitives/ResizablePanelGroup.cjs.map +1 -0
  382. package/dist/primitives/ResizablePanelGroup.d.ts +1 -0
  383. package/dist/primitives/ResizablePanelGroup.js +5 -0
  384. package/dist/primitives/ResizablePanelGroup.js.map +1 -0
  385. package/dist/primitives/ScrollArea.cjs +14 -0
  386. package/dist/primitives/ScrollArea.cjs.map +1 -0
  387. package/dist/primitives/ScrollArea.d.ts +1 -1
  388. package/dist/primitives/ScrollArea.js +5 -0
  389. package/dist/primitives/ScrollArea.js.map +1 -0
  390. package/dist/primitives/ScrollBar.cjs +14 -0
  391. package/dist/primitives/ScrollBar.cjs.map +1 -0
  392. package/dist/primitives/ScrollBar.d.ts +1 -1
  393. package/dist/primitives/ScrollBar.js +5 -0
  394. package/dist/primitives/ScrollBar.js.map +1 -0
  395. package/dist/primitives/Select.cjs +14 -0
  396. package/dist/primitives/Select.cjs.map +1 -0
  397. package/dist/primitives/Select.d.ts +1 -1
  398. package/dist/primitives/Select.js +5 -0
  399. package/dist/primitives/Select.js.map +1 -0
  400. package/dist/primitives/SelectContent.cjs +14 -0
  401. package/dist/primitives/SelectContent.cjs.map +1 -0
  402. package/dist/primitives/SelectContent.d.ts +1 -1
  403. package/dist/primitives/SelectContent.js +5 -0
  404. package/dist/primitives/SelectContent.js.map +1 -0
  405. package/dist/primitives/SelectGroup.cjs +14 -0
  406. package/dist/primitives/SelectGroup.cjs.map +1 -0
  407. package/dist/primitives/SelectGroup.d.ts +1 -1
  408. package/dist/primitives/SelectGroup.js +5 -0
  409. package/dist/primitives/SelectGroup.js.map +1 -0
  410. package/dist/primitives/SelectItem.cjs +14 -0
  411. package/dist/primitives/SelectItem.cjs.map +1 -0
  412. package/dist/primitives/SelectItem.d.ts +1 -1
  413. package/dist/primitives/SelectItem.js +5 -0
  414. package/dist/primitives/SelectItem.js.map +1 -0
  415. package/dist/primitives/SelectLabel.cjs +14 -0
  416. package/dist/primitives/SelectLabel.cjs.map +1 -0
  417. package/dist/primitives/SelectLabel.d.ts +1 -1
  418. package/dist/primitives/SelectLabel.js +5 -0
  419. package/dist/primitives/SelectLabel.js.map +1 -0
  420. package/dist/primitives/SelectScrollDownButton.cjs +14 -0
  421. package/dist/primitives/SelectScrollDownButton.cjs.map +1 -0
  422. package/dist/primitives/SelectScrollDownButton.d.ts +1 -1
  423. package/dist/primitives/SelectScrollDownButton.js +5 -0
  424. package/dist/primitives/SelectScrollDownButton.js.map +1 -0
  425. package/dist/primitives/SelectScrollUpButton.cjs +14 -0
  426. package/dist/primitives/SelectScrollUpButton.cjs.map +1 -0
  427. package/dist/primitives/SelectScrollUpButton.d.ts +1 -1
  428. package/dist/primitives/SelectScrollUpButton.js +5 -0
  429. package/dist/primitives/SelectScrollUpButton.js.map +1 -0
  430. package/dist/primitives/SelectSeparator.cjs +14 -0
  431. package/dist/primitives/SelectSeparator.cjs.map +1 -0
  432. package/dist/primitives/SelectSeparator.d.ts +1 -1
  433. package/dist/primitives/SelectSeparator.js +5 -0
  434. package/dist/primitives/SelectSeparator.js.map +1 -0
  435. package/dist/primitives/SelectTrigger.cjs +14 -0
  436. package/dist/primitives/SelectTrigger.cjs.map +1 -0
  437. package/dist/primitives/SelectTrigger.d.ts +1 -1
  438. package/dist/primitives/SelectTrigger.js +5 -0
  439. package/dist/primitives/SelectTrigger.js.map +1 -0
  440. package/dist/primitives/SelectValue.cjs +14 -0
  441. package/dist/primitives/SelectValue.cjs.map +1 -0
  442. package/dist/primitives/SelectValue.d.ts +1 -1
  443. package/dist/primitives/SelectValue.js +5 -0
  444. package/dist/primitives/SelectValue.js.map +1 -0
  445. package/dist/primitives/Separator.cjs +14 -0
  446. package/dist/primitives/Separator.cjs.map +1 -0
  447. package/dist/primitives/Separator.d.ts +1 -1
  448. package/dist/primitives/Separator.js +5 -0
  449. package/dist/primitives/Separator.js.map +1 -0
  450. package/dist/primitives/Slider.cjs +14 -0
  451. package/dist/primitives/Slider.cjs.map +1 -0
  452. package/dist/primitives/Slider.d.ts +1 -1
  453. package/dist/primitives/Slider.js +5 -0
  454. package/dist/primitives/Slider.js.map +1 -0
  455. package/dist/primitives/Switch.cjs +14 -0
  456. package/dist/primitives/Switch.cjs.map +1 -0
  457. package/dist/primitives/Switch.d.ts +1 -1
  458. package/dist/primitives/Switch.js +5 -0
  459. package/dist/primitives/Switch.js.map +1 -0
  460. package/dist/primitives/Tabs.cjs +14 -0
  461. package/dist/primitives/Tabs.cjs.map +1 -0
  462. package/dist/primitives/Tabs.d.ts +1 -1
  463. package/dist/primitives/Tabs.js +5 -0
  464. package/dist/primitives/Tabs.js.map +1 -0
  465. package/dist/primitives/TabsContent.cjs +14 -0
  466. package/dist/primitives/TabsContent.cjs.map +1 -0
  467. package/dist/primitives/TabsContent.d.ts +1 -1
  468. package/dist/primitives/TabsContent.js +5 -0
  469. package/dist/primitives/TabsContent.js.map +1 -0
  470. package/dist/primitives/TabsList.cjs +14 -0
  471. package/dist/primitives/TabsList.cjs.map +1 -0
  472. package/dist/primitives/TabsList.d.ts +1 -1
  473. package/dist/primitives/TabsList.js +5 -0
  474. package/dist/primitives/TabsList.js.map +1 -0
  475. package/dist/primitives/TabsTrigger.cjs +14 -0
  476. package/dist/primitives/TabsTrigger.cjs.map +1 -0
  477. package/dist/primitives/TabsTrigger.d.ts +1 -1
  478. package/dist/primitives/TabsTrigger.js +5 -0
  479. package/dist/primitives/TabsTrigger.js.map +1 -0
  480. package/dist/primitives/Textarea.cjs +14 -0
  481. package/dist/primitives/Textarea.cjs.map +1 -0
  482. package/dist/primitives/Textarea.d.ts +1 -1
  483. package/dist/primitives/Textarea.js +5 -0
  484. package/dist/primitives/Textarea.js.map +1 -0
  485. package/dist/primitives/Toaster.cjs +14 -0
  486. package/dist/primitives/Toaster.cjs.map +1 -0
  487. package/dist/primitives/Toaster.d.ts +1 -1
  488. package/dist/primitives/Toaster.js +5 -0
  489. package/dist/primitives/Toaster.js.map +1 -0
  490. package/dist/primitives/Tooltip.cjs +14 -0
  491. package/dist/primitives/Tooltip.cjs.map +1 -0
  492. package/dist/primitives/Tooltip.d.ts +1 -1
  493. package/dist/primitives/Tooltip.js +5 -0
  494. package/dist/primitives/Tooltip.js.map +1 -0
  495. package/dist/primitives/TooltipContent.cjs +14 -0
  496. package/dist/primitives/TooltipContent.cjs.map +1 -0
  497. package/dist/primitives/TooltipContent.d.ts +1 -1
  498. package/dist/primitives/TooltipContent.js +5 -0
  499. package/dist/primitives/TooltipContent.js.map +1 -0
  500. package/dist/primitives/TooltipProvider.cjs +14 -0
  501. package/dist/primitives/TooltipProvider.cjs.map +1 -0
  502. package/dist/primitives/TooltipProvider.d.ts +1 -1
  503. package/dist/primitives/TooltipProvider.js +5 -0
  504. package/dist/primitives/TooltipProvider.js.map +1 -0
  505. package/dist/primitives/TooltipTrigger.cjs +14 -0
  506. package/dist/primitives/TooltipTrigger.cjs.map +1 -0
  507. package/dist/primitives/TooltipTrigger.d.ts +1 -1
  508. package/dist/primitives/TooltipTrigger.js +5 -0
  509. package/dist/primitives/TooltipTrigger.js.map +1 -0
  510. package/dist/primitives/badgeVariants.cjs +14 -0
  511. package/dist/primitives/badgeVariants.cjs.map +1 -0
  512. package/dist/primitives/badgeVariants.d.ts +1 -1
  513. package/dist/primitives/badgeVariants.js +5 -0
  514. package/dist/primitives/badgeVariants.js.map +1 -0
  515. package/dist/primitives/buttonVariants.cjs +14 -0
  516. package/dist/primitives/buttonVariants.cjs.map +1 -0
  517. package/dist/primitives/buttonVariants.d.ts +1 -1
  518. package/dist/primitives/buttonVariants.js +5 -0
  519. package/dist/primitives/buttonVariants.js.map +1 -0
  520. package/dist/primitives/index.cjs +370 -0
  521. package/dist/primitives/index.cjs.map +1 -0
  522. package/dist/primitives/index.d.ts +1 -1
  523. package/dist/primitives/index.js +5 -0
  524. package/dist/primitives/index.js.map +1 -0
  525. package/dist/primitives/toast.cjs +14 -0
  526. package/dist/primitives/toast.cjs.map +1 -0
  527. package/dist/primitives/toast.d.ts +1 -1
  528. package/dist/primitives/toast.js +5 -0
  529. package/dist/primitives/toast.js.map +1 -0
  530. package/dist/product/index.cjs +284 -35
  531. package/dist/product/index.cjs.map +1 -1
  532. package/dist/product/index.d.ts +1 -0
  533. package/dist/product/index.js +264 -9
  534. package/dist/product/index.js.map +1 -1
  535. package/dist/product/menu/index.d.ts +1 -1
  536. package/dist/theme.css +160 -0
  537. package/package.json +32 -84
  538. package/dist/backends/shadcn/aspect-ratio.d.ts +0 -4
  539. package/dist/backends/shadcn/avatar.d.ts +0 -6
  540. package/dist/backends/shadcn/badge.d.ts +0 -9
  541. package/dist/backends/shadcn/button.d.ts +0 -19
  542. package/dist/backends/shadcn/card.d.ts +0 -9
  543. package/dist/backends/shadcn/checkbox.d.ts +0 -9
  544. package/dist/backends/shadcn/collapsible.d.ts +0 -5
  545. package/dist/backends/shadcn/command.d.ts +0 -80
  546. package/dist/backends/shadcn/dialog.d.ts +0 -15
  547. package/dist/backends/shadcn/dropdown-menu.d.ts +0 -34
  548. package/dist/backends/shadcn/index.d.ts +0 -23
  549. package/dist/backends/shadcn/input.d.ts +0 -11
  550. package/dist/backends/shadcn/label.d.ts +0 -4
  551. package/dist/backends/shadcn/popover.d.ts +0 -7
  552. package/dist/backends/shadcn/progress.d.ts +0 -4
  553. package/dist/backends/shadcn/scroll-area.d.ts +0 -5
  554. package/dist/backends/shadcn/select.d.ts +0 -13
  555. package/dist/backends/shadcn/separator.d.ts +0 -4
  556. package/dist/backends/shadcn/slider.d.ts +0 -4
  557. package/dist/backends/shadcn/switch.d.ts +0 -4
  558. package/dist/backends/shadcn/tabs.d.ts +0 -7
  559. package/dist/backends/shadcn/textarea.d.ts +0 -4
  560. package/dist/backends/shadcn/toaster.d.ts +0 -10
  561. package/dist/backends/shadcn/tooltip.d.ts +0 -7
  562. package/dist/backends/shadcn/utils.d.ts +0 -8
  563. package/dist/billing.cjs +0 -15
  564. package/dist/billing.cjs.map +0 -1
  565. package/dist/billing.d.ts +0 -1
  566. package/dist/billing.js +0 -4
  567. package/dist/billing.js.map +0 -1
  568. package/dist/chunk-5CZOYONP.js +0 -343
  569. package/dist/chunk-5CZOYONP.js.map +0 -1
  570. package/dist/chunk-GWNNLYX4.cjs +0 -353
  571. package/dist/chunk-GWNNLYX4.cjs.map +0 -1
  572. package/dist/network.cjs +0 -15
  573. package/dist/network.cjs.map +0 -1
  574. package/dist/network.d.ts +0 -1
  575. package/dist/network.js +0 -4
  576. package/dist/network.js.map +0 -1
  577. package/dist/product/menu/DropdownMenu.d.ts +0 -29
  578. package/dist/wallet.cjs +0 -15
  579. package/dist/wallet.cjs.map +0 -1
  580. package/dist/wallet.d.ts +0 -1
  581. package/dist/wallet.js +0 -4
  582. package/dist/wallet.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/product/menu/portal-theme.tsx","../src/backends/gui/dropdown-menu.tsx"],"names":["jsx","Theme","XStack","Menu","React","jsxs","YStack","Text","Check","ChevronRight","DropdownMenuContent","useThemeName","DropdownMenuSubContent","DropdownMenuItem","DropdownMenuCheckboxItem","DropdownMenuRadioItem","Circle","DropdownMenuSubTrigger","DropdownMenuLabel","DropdownMenuSeparator"],"mappings":"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","file":"chunk-DC52DQ27.cjs","sourcesContent":["'use client'\n\n/**\n * PortalTheme — the ONE fix for \"themed content escapes its theme through a portal\".\n *\n * @hanzo/gui's `Popover.Content` and `Portal` render their children in a SEPARATE\n * React subtree (a Gorhom-style portal host mounted at the app root), NOT via\n * `ReactDOM.createPortal`. React context therefore does NOT flow from the trigger's\n * location to the host. Under a nested `<Theme name=\"dark\">` the portaled content\n * lands OUTSIDE that theme context and Tamagui throws \"Missing theme\" (or renders\n * unthemed).\n *\n * The fix is two-part and must stay two-part:\n * 1. At the TRIGGER site (theme context still available) capture the resolved\n * theme name with `useThemeName()`.\n * 2. INSIDE the portaled content re-apply it: `<PortalTheme name={captured}>`.\n *\n * Every portal-backed menu in this package (DropdownMenu, ContextMenu, SelectMenu,\n * ComboBox) uses this so a menu renders identically whether it is opened under the\n * root theme or under any nested `<Theme>`, light or dark.\n */\nimport type { ReactNode } from 'react'\nimport { Theme, useThemeName } from '@hanzo/gui'\n\n/** Capture the current resolved theme name at the trigger site. Re-exported so the\n * capture + re-apply pair reads from one module. */\nexport { useThemeName }\n\nexport function PortalTheme({ name, children }: { name: string; children: ReactNode }) {\n // `name` is the resolved theme name (e.g. \"dark\", or a compound \"dark_purple\").\n // Tamagui's `Theme` accepts the resolved name and reconstructs the context.\n return <Theme name={name as never}>{children}</Theme>\n}\n","\"use client\"\n\n/**\n * DropdownMenu — the ONE compound menu, native to @hanzo/gui.\n *\n * @hanzogui/menu already ships the whole compound surface (Root/Trigger/Portal/\n * Content/Group/Label/Item/CheckboxItem/RadioGroup/RadioItem/ItemIndicator/\n * Separator/Sub/SubTrigger/SubContent) with the a11y, roving focus, popper\n * placement and dismiss behaviour. This file only FLATTENS `Menu.X` into the 15\n * `DropdownMenuX` names and dresses them in the Hanzo tokens, so there is one\n * menu component rather than two shapes of the same idea.\n *\n * Cross-platform: gui style props only — no Tailwind class strings, no Radix, no\n * DOM APIs. Rows are 32px tall (the design density) with a 6px vertical `hitSlop`\n * so the real tap target is 44px on touch hosts.\n *\n * `DropdownMenuContent` mounts its OWN `Menu.Portal`, so callers never wrap it —\n * and 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 * as React from \"react\"\nimport { Menu, Text, XStack, YStack, type GuiElement } from \"@hanzo/gui\"\nimport { Check, ChevronRight, Circle } from \"@hanzogui/lucide-icons-2\"\n\nimport type { MenuItemSpec } from \"../../product/menu/items\"\nimport { PortalTheme, useThemeName } from \"../../product/menu/portal-theme\"\n\n// ── Geometry — literal px on the 8-grid; 32px row + 6px hitSlop = 44px tap ──────\nconst ROW_H = 32\nconst TAP_MIN = 44\nconst HIT_SLOP = {\n top: (TAP_MIN - ROW_H) / 2,\n bottom: (TAP_MIN - ROW_H) / 2,\n left: 0,\n right: 0,\n}\nconst ROW_PX = 8\nconst INSET_PL = 32\nconst INDICATOR_SLOT = 14\nconst ICON = 16\n\nconst panel = {\n bg: \"$color2\",\n borderColor: \"$borderColor\",\n borderWidth: 1,\n rounded: \"$4\",\n p: 4,\n minW: 128,\n overflow: \"hidden\",\n shadowColor: \"rgba(0,0,0,0.45)\",\n shadowRadius: 20,\n shadowOffset: { width: 0, height: 10 },\n} as const\n\nconst row = {\n items: \"center\",\n gap: ROW_PX,\n px: ROW_PX,\n minH: ROW_H,\n rounded: \"$3\",\n select: \"none\",\n cursor: \"pointer\",\n hitSlop: HIT_SLOP,\n hoverStyle: { bg: \"$color5\" },\n focusStyle: { bg: \"$color5\" },\n pressStyle: { bg: \"$color6\" },\n} as const\n\n/** Left indicator well shared by checkbox + radio rows. */\nconst Indicator = ({ children }: { children: React.ReactNode }) => (\n <XStack\n position=\"absolute\"\n l={ROW_PX}\n width={INDICATOR_SLOT}\n height={INDICATOR_SLOT}\n items=\"center\"\n justify=\"center\"\n pointerEvents=\"none\"\n >\n <Menu.ItemIndicator>{children}</Menu.ItemIndicator>\n </XStack>\n)\n\n// ── Root — owns popper geometry ─────────────────────────────────────────────────\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__ */ React.createContext<\n ((n: number) => void) | null\n>(null)\nconst DEFAULT_OFFSET = 4\n\nexport type DropdownMenuProps = Omit<\n React.ComponentProps<typeof Menu>,\n \"offset\"\n> & {\n offset?: number\n /**\n * Declarative form. Give a `trigger` element and an `items` spec and the menu\n * builds itself out of the very same compound parts a hand-written `children`\n * tree would use — one component, one API, one rendering, whichever form the\n * call site prefers.\n */\n trigger?: React.ReactElement\n items?: MenuItemSpec[]\n minWidth?: number\n maxHeight?: number\n}\n\nfunction DropdownMenu({\n offset = DEFAULT_OFFSET,\n trigger,\n items,\n minWidth,\n maxHeight,\n children,\n ...props\n}: DropdownMenuProps) {\n const [current, setOffset] = React.useState(offset)\n React.useEffect(() => setOffset(offset), [offset])\n return (\n <OffsetContext.Provider value={setOffset}>\n <Menu offset={current} {...props}>\n {trigger ? (\n <DropdownMenuTrigger asChild>{trigger}</DropdownMenuTrigger>\n ) : null}\n {items ? (\n <DropdownMenuContent minW={minWidth} maxH={maxHeight}>\n {items.map(renderSpec)}\n </DropdownMenuContent>\n ) : null}\n {children}\n </Menu>\n </OffsetContext.Provider>\n )\n}\n\n/** One spec row -> the matching compound part. Never a second row renderer. */\nconst renderSpec = (spec: MenuItemSpec, i: number) => {\n if (spec.type === \"separator\")\n return <DropdownMenuSeparator key={spec.key ?? `sep-${i}`} />\n if (spec.type === \"label\")\n return (\n <DropdownMenuLabel key={spec.key ?? `label-${i}`}>\n {spec.label}\n </DropdownMenuLabel>\n )\n return (\n <DropdownMenuItem\n key={spec.key}\n disabled={spec.disabled}\n variant={spec.destructive ? \"destructive\" : \"default\"}\n onSelect={spec.onSelect}\n >\n {spec.icon ? (\n <XStack\n width={ICON}\n height={ICON}\n items=\"center\"\n justify=\"center\"\n shrink={0}\n >\n {spec.icon}\n </XStack>\n ) : null}\n <YStack flex={1} minW={0}>\n <Text fontSize=\"$2\" color=\"$color12\" numberOfLines={1}>\n {spec.label}\n </Text>\n {spec.description ? (\n <Text fontSize=\"$1\" color=\"$color11\" numberOfLines={1}>\n {spec.description}\n </Text>\n ) : null}\n </YStack>\n {spec.shortcut ? (\n <DropdownMenuShortcut>{spec.shortcut}</DropdownMenuShortcut>\n ) : null}\n {spec.selected ? <Check size={ICON - 2} ml=\"auto\" /> : null}\n {spec.hasSubmenu ? (\n <ChevronRight size={ICON - 2} ml=\"auto\" opacity={0.6} />\n ) : null}\n </DropdownMenuItem>\n )\n}\n\n// ── Passthroughs — the gui part already IS the part ─────────────────────────────\nconst DropdownMenuTrigger: typeof Menu.Trigger = Menu.Trigger\nconst DropdownMenuGroup: typeof Menu.Group = Menu.Group\nconst DropdownMenuPortal: typeof Menu.Portal = Menu.Portal\nconst DropdownMenuSub: typeof Menu.Sub = Menu.Sub\nconst DropdownMenuRadioGroup: typeof Menu.RadioGroup = Menu.RadioGroup\n\n// ── Content — self-portalling, theme-forwarded ──────────────────────────────────\ntype ContentProps = React.ComponentProps<typeof Menu.Content> & {\n sideOffset?: number\n}\n\nconst DropdownMenuContent = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n ContentProps\n>(function DropdownMenuContent(\n { sideOffset = DEFAULT_OFFSET, children, ...props },\n ref\n) {\n const themeName = useThemeName()\n const setOffset = React.useContext(OffsetContext)\n React.useEffect(() => setOffset?.(sideOffset), [setOffset, sideOffset])\n return (\n <Menu.Portal>\n <PortalTheme name={themeName}>\n <Menu.Content\n ref={ref}\n data-slot=\"dropdown-menu-content\"\n {...panel}\n {...props}\n >\n {children}\n </Menu.Content>\n </PortalTheme>\n </Menu.Portal>\n )\n})\n\nconst DropdownMenuSubContent = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n React.ComponentProps<typeof Menu.SubContent>\n>(function DropdownMenuSubContent(props, ref) {\n return (\n <Menu.SubContent\n ref={ref}\n data-slot=\"dropdown-menu-sub-content\"\n {...panel}\n {...props}\n />\n )\n})\n\n// ── Rows ────────────────────────────────────────────────────────────────────────\ntype ItemProps = Omit<React.ComponentProps<typeof Menu.Item>, \"variant\"> & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}\n\nconst DropdownMenuItem = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n ItemProps\n>(function DropdownMenuItem(\n { inset, variant = \"default\", disabled, ...props },\n ref\n) {\n return (\n <Menu.Item\n ref={ref}\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n disabled={disabled}\n {...row}\n pl={inset ? INSET_PL : ROW_PX}\n theme={variant === \"destructive\" ? \"red\" : undefined}\n opacity={disabled ? 0.5 : 1}\n cursor={disabled ? \"default\" : \"pointer\"}\n {...props}\n />\n )\n})\n\nconst DropdownMenuCheckboxItem = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n React.ComponentProps<typeof Menu.CheckboxItem>\n>(function DropdownMenuCheckboxItem({ children, checked, ...props }, ref) {\n return (\n <Menu.CheckboxItem\n ref={ref}\n data-slot=\"dropdown-menu-checkbox-item\"\n checked={checked}\n {...row}\n pl={INSET_PL}\n {...props}\n >\n <Indicator>\n <Check size={ICON} />\n </Indicator>\n {children}\n </Menu.CheckboxItem>\n )\n})\n\nconst DropdownMenuRadioItem = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n React.ComponentProps<typeof Menu.RadioItem>\n>(function DropdownMenuRadioItem({ children, ...props }, ref) {\n return (\n <Menu.RadioItem\n ref={ref}\n data-slot=\"dropdown-menu-radio-item\"\n {...row}\n pl={INSET_PL}\n {...props}\n >\n <Indicator>\n <Circle size={8} fill=\"currentColor\" />\n </Indicator>\n {children}\n </Menu.RadioItem>\n )\n})\n\nconst DropdownMenuSubTrigger = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n React.ComponentProps<typeof Menu.SubTrigger> & { inset?: boolean }\n>(function DropdownMenuSubTrigger({ inset, children, ...props }, ref) {\n return (\n <Menu.SubTrigger\n ref={ref}\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n {...row}\n pl={inset ? INSET_PL : ROW_PX}\n {...props}\n >\n {children}\n <ChevronRight size={ICON} ml=\"auto\" opacity={0.6} />\n </Menu.SubTrigger>\n )\n})\n\n// ── Static rows ─────────────────────────────────────────────────────────────────\nconst DropdownMenuLabel = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n React.ComponentProps<typeof Menu.Label> & { inset?: boolean }\n>(function DropdownMenuLabel({ inset, ...props }, ref) {\n return (\n <Menu.Label\n ref={ref}\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n px={ROW_PX}\n py={4}\n pl={inset ? INSET_PL : ROW_PX}\n fontSize=\"$2\"\n fontWeight=\"500\"\n color=\"$color12\"\n select=\"none\"\n {...props}\n />\n )\n})\n\nconst DropdownMenuSeparator = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n React.ComponentProps<typeof Menu.Separator>\n>(function DropdownMenuSeparator(props, ref) {\n return (\n <Menu.Separator\n ref={ref}\n data-slot=\"dropdown-menu-separator\"\n height={1}\n bg=\"$borderColor\"\n mx={4}\n my={4}\n {...props}\n />\n )\n})\n\n/** Right-aligned shortcut hint. gui `Text`, not a raw `<span>`, so it renders on native. */\nfunction DropdownMenuShortcut(props: React.ComponentProps<typeof Text>) {\n return (\n <Text\n data-slot=\"dropdown-menu-shortcut\"\n ml=\"auto\"\n fontSize=\"$1\"\n letterSpacing={1}\n color=\"$color11\"\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n"]}
@@ -0,0 +1,55 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var chunkDC52DQ27_cjs = require('./chunk-DC52DQ27.cjs');
5
+ var gui = require('@hanzo/gui');
6
+ var lucideIcons2 = require('@hanzogui/lucide-icons-2');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+
9
+ function SelectMenu({
10
+ options,
11
+ value,
12
+ onChange,
13
+ allLabel = "All",
14
+ icon,
15
+ minWidth = 130,
16
+ required,
17
+ minHeight,
18
+ disabled,
19
+ ariaLabel
20
+ }) {
21
+ const active = value === null ? null : options.find((o) => o.key === value) ?? null;
22
+ const triggerLabel = active ? active.label : allLabel;
23
+ const items = [
24
+ ...required ? [] : [{ key: "__all__", label: allLabel, selected: value === null, onSelect: () => onChange(null) }],
25
+ ...options.map((o) => ({ key: o.key, label: o.label, selected: value === o.key, onSelect: () => onChange(o.key) }))
26
+ ];
27
+ return /* @__PURE__ */ jsxRuntime.jsx(
28
+ chunkDC52DQ27_cjs.DropdownMenu,
29
+ {
30
+ minWidth: Math.max(minWidth, 160),
31
+ trigger: /* @__PURE__ */ jsxRuntime.jsx(
32
+ gui.Button,
33
+ {
34
+ size: minHeight && minHeight >= 40 ? "$4" : "$2",
35
+ minW: minWidth,
36
+ minH: minHeight,
37
+ disabled,
38
+ "aria-label": ariaLabel,
39
+ justify: "space-between",
40
+ borderWidth: 1,
41
+ borderColor: "$borderColor",
42
+ bg: !required && value !== null ? "$color5" : "transparent",
43
+ icon,
44
+ iconAfter: /* @__PURE__ */ jsxRuntime.jsx(lucideIcons2.ChevronDown, { size: 14, opacity: 0.6 }),
45
+ children: /* @__PURE__ */ jsxRuntime.jsx(gui.Text, { fontSize: "$2", color: "$color12", numberOfLines: 1, flex: 1, children: triggerLabel })
46
+ }
47
+ ),
48
+ items
49
+ }
50
+ );
51
+ }
52
+
53
+ exports.SelectMenu = SelectMenu;
54
+ //# sourceMappingURL=chunk-NQUA5YRQ.cjs.map
55
+ //# sourceMappingURL=chunk-NQUA5YRQ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/product/SelectMenu.tsx"],"names":["jsx","DropdownMenu","Button","ChevronDown","Text"],"mappings":";;;;;;;AAwBO,SAAS,UAAA,CAA6B;AAAA,EAC3C,OAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,IAAA;AAAA,EACA,QAAA,GAAW,GAAA;AAAA,EACX,QAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAgBG;AACD,EAAA,MAAM,MAAA,GAAS,KAAA,KAAU,IAAA,GAAO,IAAA,GAAO,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,GAAA,KAAQ,KAAK,CAAA,IAAK,IAAA;AAC/E,EAAA,MAAM,YAAA,GAAe,MAAA,GAAS,MAAA,CAAO,KAAA,GAAQ,QAAA;AAE7C,EAAA,MAAM,KAAA,GAAwB;AAAA,IAC5B,GAAI,QAAA,GACA,KACA,CAAC,EAAE,KAAK,SAAA,EAAW,KAAA,EAAO,QAAA,EAAU,QAAA,EAAU,UAAU,IAAA,EAAM,QAAA,EAAU,MAAM,QAAA,CAAS,IAAI,GAAG,CAAA;AAAA,IAClG,GAAG,QAAQ,GAAA,CAAI,CAAC,OAAO,EAAE,GAAA,EAAK,CAAA,CAAE,GAAA,EAAK,KAAA,EAAO,CAAA,CAAE,OAAO,QAAA,EAAU,KAAA,KAAU,EAAE,GAAA,EAAK,QAAA,EAAU,MAAM,QAAA,CAAS,CAAA,CAAE,GAAG,CAAA,EAAE,CAAE;AAAA,GACpH;AAEA,EAAA,uBACEA,cAAA;AAAA,IAACC,8BAAA;AAAA,IAAA;AAAA,MACC,QAAA,EAAU,IAAA,CAAK,GAAA,CAAI,QAAA,EAAU,GAAG,CAAA;AAAA,MAChC,OAAA,kBACED,cAAA;AAAA,QAACE,UAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAM,SAAA,IAAa,SAAA,IAAa,EAAA,GAAK,IAAA,GAAO,IAAA;AAAA,UAC5C,IAAA,EAAM,QAAA;AAAA,UACN,IAAA,EAAM,SAAA;AAAA,UACN,QAAA;AAAA,UACA,YAAA,EAAY,SAAA;AAAA,UACZ,OAAA,EAAQ,eAAA;AAAA,UACR,WAAA,EAAa,CAAA;AAAA,UACb,WAAA,EAAY,cAAA;AAAA,UACZ,EAAA,EAAI,CAAC,QAAA,IAAY,KAAA,KAAU,OAAO,SAAA,GAAY,aAAA;AAAA,UAC9C,IAAA;AAAA,UACA,2BAAWF,cAAA,CAACG,wBAAA,EAAA,EAAY,IAAA,EAAM,EAAA,EAAI,SAAS,GAAA,EAAK,CAAA;AAAA,UAEhD,QAAA,kBAAAH,cAAA,CAACI,QAAA,EAAA,EAAK,QAAA,EAAS,IAAA,EAAK,KAAA,EAAM,YAAW,aAAA,EAAe,CAAA,EAAG,IAAA,EAAM,CAAA,EAC1D,QAAA,EAAA,YAAA,EACH;AAAA;AAAA,OACF;AAAA,MAEF;AAAA;AAAA,GACF;AAEJ","file":"chunk-NQUA5YRQ.cjs","sourcesContent":["'use client'\n\n/**\n * SelectMenu — a compact, reusable dropdown select. Renders a labelled trigger (\"All\n * types\", or the chosen option) and a menu list with a check on the active option.\n * Prop-driven + self-contained. `value === null` is the \"all\"/unfiltered state.\n *\n * `required` turns the same control into a \"pick exactly one of N\": the null row is\n * dropped and the value is never nullable. That is the SAME control, not a second\n * one — a required field picker and a filter differ only in whether \"none\" is an\n * option, so it stays one component rather than growing a fourth select.\n *\n * A thin DropdownMenu (the ONE menu mechanism) so it is pixel-identical to every other\n * menu and rides the same portal-theme-safe Portal path — no gui Popover, no Sheet\n * re-root, works on gui-native hosts.\n */\nimport type { ReactElement } from 'react'\nimport { Button, Text } from '@hanzo/gui'\nimport { ChevronDown } from '@hanzogui/lucide-icons-2'\nimport { DropdownMenu } from '../backends/gui/dropdown-menu'\nimport type { MenuItemSpec } from './menu/items'\n\nexport type SelectOption<T extends string> = { key: T; label: string }\n\nexport function SelectMenu<T extends string>({\n options,\n value,\n onChange,\n allLabel = 'All',\n icon,\n minWidth = 130,\n required,\n minHeight,\n disabled,\n ariaLabel,\n}: {\n options: SelectOption<T>[]\n value: T | null\n onChange: (v: T | null) => void\n /** Label shown (and first menu row) for the unfiltered `null` state. */\n allLabel?: string\n /** Optional leading icon in the trigger. */\n icon?: ReactElement\n minWidth?: number\n /** Exactly one of `options` is always chosen — no \"all\"/none row. */\n required?: boolean\n /** Trigger height floor — pass the 44px tap floor on a phone. */\n minHeight?: number\n disabled?: boolean\n /** Accessible name for an unlabelled trigger. */\n ariaLabel?: string\n}) {\n const active = value === null ? null : options.find((o) => o.key === value) ?? null\n const triggerLabel = active ? active.label : allLabel\n\n const items: MenuItemSpec[] = [\n ...(required\n ? []\n : [{ key: '__all__', label: allLabel, selected: value === null, onSelect: () => onChange(null) }]),\n ...options.map((o) => ({ key: o.key, label: o.label, selected: value === o.key, onSelect: () => onChange(o.key) })),\n ]\n\n return (\n <DropdownMenu\n minWidth={Math.max(minWidth, 160)}\n trigger={\n <Button\n size={minHeight && minHeight >= 40 ? '$4' : '$2'}\n minW={minWidth}\n minH={minHeight}\n disabled={disabled}\n aria-label={ariaLabel}\n justify=\"space-between\"\n borderWidth={1}\n borderColor=\"$borderColor\"\n bg={!required && value !== null ? '$color5' : 'transparent'}\n icon={icon}\n iconAfter={<ChevronDown size={14} opacity={0.6} />}\n >\n <Text fontSize=\"$2\" color=\"$color12\" numberOfLines={1} flex={1}>\n {triggerLabel}\n </Text>\n </Button>\n }\n items={items}\n />\n )\n}\n"]}
@@ -0,0 +1,263 @@
1
+ 'use client';
2
+ import { Menu, Theme, XStack, YStack, Text, useThemeName } from '@hanzo/gui';
3
+ export { useThemeName } from '@hanzo/gui';
4
+ import { jsx, jsxs } from 'react/jsx-runtime';
5
+ import * as React from 'react';
6
+ import { Check, ChevronRight, Circle } from '@hanzogui/lucide-icons-2';
7
+
8
+ // src/product/menu/portal-theme.tsx
9
+ function PortalTheme({ name, children }) {
10
+ return /* @__PURE__ */ jsx(Theme, { name, children });
11
+ }
12
+ var ROW_H = 32;
13
+ var TAP_MIN = 44;
14
+ var HIT_SLOP = {
15
+ top: (TAP_MIN - ROW_H) / 2,
16
+ bottom: (TAP_MIN - ROW_H) / 2,
17
+ left: 0,
18
+ right: 0
19
+ };
20
+ var ROW_PX = 8;
21
+ var INSET_PL = 32;
22
+ var INDICATOR_SLOT = 14;
23
+ var ICON = 16;
24
+ var panel = {
25
+ bg: "$color2",
26
+ borderColor: "$borderColor",
27
+ borderWidth: 1,
28
+ rounded: "$4",
29
+ p: 4,
30
+ minW: 128,
31
+ overflow: "hidden",
32
+ shadowColor: "rgba(0,0,0,0.45)",
33
+ shadowRadius: 20,
34
+ shadowOffset: { width: 0, height: 10 }
35
+ };
36
+ var row = {
37
+ items: "center",
38
+ gap: ROW_PX,
39
+ px: ROW_PX,
40
+ minH: ROW_H,
41
+ rounded: "$3",
42
+ select: "none",
43
+ cursor: "pointer",
44
+ hitSlop: HIT_SLOP,
45
+ hoverStyle: { bg: "$color5" },
46
+ focusStyle: { bg: "$color5" },
47
+ pressStyle: { bg: "$color6" }
48
+ };
49
+ var Indicator = ({ children }) => /* @__PURE__ */ jsx(
50
+ XStack,
51
+ {
52
+ position: "absolute",
53
+ l: ROW_PX,
54
+ width: INDICATOR_SLOT,
55
+ height: INDICATOR_SLOT,
56
+ items: "center",
57
+ justify: "center",
58
+ pointerEvents: "none",
59
+ children: /* @__PURE__ */ jsx(Menu.ItemIndicator, { children })
60
+ }
61
+ );
62
+ var OffsetContext = /* @__PURE__ */ React.createContext(null);
63
+ var DEFAULT_OFFSET = 4;
64
+ function DropdownMenu({
65
+ offset = DEFAULT_OFFSET,
66
+ trigger,
67
+ items,
68
+ minWidth,
69
+ maxHeight,
70
+ children,
71
+ ...props
72
+ }) {
73
+ const [current, setOffset] = React.useState(offset);
74
+ React.useEffect(() => setOffset(offset), [offset]);
75
+ return /* @__PURE__ */ jsx(OffsetContext.Provider, { value: setOffset, children: /* @__PURE__ */ jsxs(Menu, { offset: current, ...props, children: [
76
+ trigger ? /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: trigger }) : null,
77
+ items ? /* @__PURE__ */ jsx(DropdownMenuContent, { minW: minWidth, maxH: maxHeight, children: items.map(renderSpec) }) : null,
78
+ children
79
+ ] }) });
80
+ }
81
+ var renderSpec = (spec, i) => {
82
+ if (spec.type === "separator")
83
+ return /* @__PURE__ */ jsx(DropdownMenuSeparator, {}, spec.key ?? `sep-${i}`);
84
+ if (spec.type === "label")
85
+ return /* @__PURE__ */ jsx(DropdownMenuLabel, { children: spec.label }, spec.key ?? `label-${i}`);
86
+ return /* @__PURE__ */ jsxs(
87
+ DropdownMenuItem,
88
+ {
89
+ disabled: spec.disabled,
90
+ variant: spec.destructive ? "destructive" : "default",
91
+ onSelect: spec.onSelect,
92
+ children: [
93
+ spec.icon ? /* @__PURE__ */ jsx(
94
+ XStack,
95
+ {
96
+ width: ICON,
97
+ height: ICON,
98
+ items: "center",
99
+ justify: "center",
100
+ shrink: 0,
101
+ children: spec.icon
102
+ }
103
+ ) : null,
104
+ /* @__PURE__ */ jsxs(YStack, { flex: 1, minW: 0, children: [
105
+ /* @__PURE__ */ jsx(Text, { fontSize: "$2", color: "$color12", numberOfLines: 1, children: spec.label }),
106
+ spec.description ? /* @__PURE__ */ jsx(Text, { fontSize: "$1", color: "$color11", numberOfLines: 1, children: spec.description }) : null
107
+ ] }),
108
+ spec.shortcut ? /* @__PURE__ */ jsx(DropdownMenuShortcut, { children: spec.shortcut }) : null,
109
+ spec.selected ? /* @__PURE__ */ jsx(Check, { size: ICON - 2, ml: "auto" }) : null,
110
+ spec.hasSubmenu ? /* @__PURE__ */ jsx(ChevronRight, { size: ICON - 2, ml: "auto", opacity: 0.6 }) : null
111
+ ]
112
+ },
113
+ spec.key
114
+ );
115
+ };
116
+ var DropdownMenuTrigger = Menu.Trigger;
117
+ var DropdownMenuGroup = Menu.Group;
118
+ var DropdownMenuPortal = Menu.Portal;
119
+ var DropdownMenuSub = Menu.Sub;
120
+ var DropdownMenuRadioGroup = Menu.RadioGroup;
121
+ var DropdownMenuContent = /* @__PURE__ */ React.forwardRef(function DropdownMenuContent2({ sideOffset = DEFAULT_OFFSET, children, ...props }, ref) {
122
+ const themeName = useThemeName();
123
+ const setOffset = React.useContext(OffsetContext);
124
+ React.useEffect(() => setOffset?.(sideOffset), [setOffset, sideOffset]);
125
+ return /* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(PortalTheme, { name: themeName, children: /* @__PURE__ */ jsx(
126
+ Menu.Content,
127
+ {
128
+ ref,
129
+ "data-slot": "dropdown-menu-content",
130
+ ...panel,
131
+ ...props,
132
+ children
133
+ }
134
+ ) }) });
135
+ });
136
+ var DropdownMenuSubContent = /* @__PURE__ */ React.forwardRef(function DropdownMenuSubContent2(props, ref) {
137
+ return /* @__PURE__ */ jsx(
138
+ Menu.SubContent,
139
+ {
140
+ ref,
141
+ "data-slot": "dropdown-menu-sub-content",
142
+ ...panel,
143
+ ...props
144
+ }
145
+ );
146
+ });
147
+ var DropdownMenuItem = /* @__PURE__ */ React.forwardRef(function DropdownMenuItem2({ inset, variant = "default", disabled, ...props }, ref) {
148
+ return /* @__PURE__ */ jsx(
149
+ Menu.Item,
150
+ {
151
+ ref,
152
+ "data-slot": "dropdown-menu-item",
153
+ "data-inset": inset,
154
+ "data-variant": variant,
155
+ disabled,
156
+ ...row,
157
+ pl: inset ? INSET_PL : ROW_PX,
158
+ theme: variant === "destructive" ? "red" : void 0,
159
+ opacity: disabled ? 0.5 : 1,
160
+ cursor: disabled ? "default" : "pointer",
161
+ ...props
162
+ }
163
+ );
164
+ });
165
+ var DropdownMenuCheckboxItem = /* @__PURE__ */ React.forwardRef(function DropdownMenuCheckboxItem2({ children, checked, ...props }, ref) {
166
+ return /* @__PURE__ */ jsxs(
167
+ Menu.CheckboxItem,
168
+ {
169
+ ref,
170
+ "data-slot": "dropdown-menu-checkbox-item",
171
+ checked,
172
+ ...row,
173
+ pl: INSET_PL,
174
+ ...props,
175
+ children: [
176
+ /* @__PURE__ */ jsx(Indicator, { children: /* @__PURE__ */ jsx(Check, { size: ICON }) }),
177
+ children
178
+ ]
179
+ }
180
+ );
181
+ });
182
+ var DropdownMenuRadioItem = /* @__PURE__ */ React.forwardRef(function DropdownMenuRadioItem2({ children, ...props }, ref) {
183
+ return /* @__PURE__ */ jsxs(
184
+ Menu.RadioItem,
185
+ {
186
+ ref,
187
+ "data-slot": "dropdown-menu-radio-item",
188
+ ...row,
189
+ pl: INSET_PL,
190
+ ...props,
191
+ children: [
192
+ /* @__PURE__ */ jsx(Indicator, { children: /* @__PURE__ */ jsx(Circle, { size: 8, fill: "currentColor" }) }),
193
+ children
194
+ ]
195
+ }
196
+ );
197
+ });
198
+ var DropdownMenuSubTrigger = /* @__PURE__ */ React.forwardRef(function DropdownMenuSubTrigger2({ inset, children, ...props }, ref) {
199
+ return /* @__PURE__ */ jsxs(
200
+ Menu.SubTrigger,
201
+ {
202
+ ref,
203
+ "data-slot": "dropdown-menu-sub-trigger",
204
+ "data-inset": inset,
205
+ ...row,
206
+ pl: inset ? INSET_PL : ROW_PX,
207
+ ...props,
208
+ children: [
209
+ children,
210
+ /* @__PURE__ */ jsx(ChevronRight, { size: ICON, ml: "auto", opacity: 0.6 })
211
+ ]
212
+ }
213
+ );
214
+ });
215
+ var DropdownMenuLabel = /* @__PURE__ */ React.forwardRef(function DropdownMenuLabel2({ inset, ...props }, ref) {
216
+ return /* @__PURE__ */ jsx(
217
+ Menu.Label,
218
+ {
219
+ ref,
220
+ "data-slot": "dropdown-menu-label",
221
+ "data-inset": inset,
222
+ px: ROW_PX,
223
+ py: 4,
224
+ pl: inset ? INSET_PL : ROW_PX,
225
+ fontSize: "$2",
226
+ fontWeight: "500",
227
+ color: "$color12",
228
+ select: "none",
229
+ ...props
230
+ }
231
+ );
232
+ });
233
+ var DropdownMenuSeparator = /* @__PURE__ */ React.forwardRef(function DropdownMenuSeparator2(props, ref) {
234
+ return /* @__PURE__ */ jsx(
235
+ Menu.Separator,
236
+ {
237
+ ref,
238
+ "data-slot": "dropdown-menu-separator",
239
+ height: 1,
240
+ bg: "$borderColor",
241
+ mx: 4,
242
+ my: 4,
243
+ ...props
244
+ }
245
+ );
246
+ });
247
+ function DropdownMenuShortcut(props) {
248
+ return /* @__PURE__ */ jsx(
249
+ Text,
250
+ {
251
+ "data-slot": "dropdown-menu-shortcut",
252
+ ml: "auto",
253
+ fontSize: "$1",
254
+ letterSpacing: 1,
255
+ color: "$color11",
256
+ ...props
257
+ }
258
+ );
259
+ }
260
+
261
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, PortalTheme };
262
+ //# sourceMappingURL=chunk-PI3GSHLU.js.map
263
+ //# sourceMappingURL=chunk-PI3GSHLU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/product/menu/portal-theme.tsx","../src/backends/gui/dropdown-menu.tsx"],"names":["jsx","DropdownMenuContent","DropdownMenuSubContent","DropdownMenuItem","DropdownMenuCheckboxItem","DropdownMenuRadioItem","DropdownMenuSubTrigger","DropdownMenuLabel","DropdownMenuSeparator"],"mappings":"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","file":"chunk-PI3GSHLU.js","sourcesContent":["'use client'\n\n/**\n * PortalTheme — the ONE fix for \"themed content escapes its theme through a portal\".\n *\n * @hanzo/gui's `Popover.Content` and `Portal` render their children in a SEPARATE\n * React subtree (a Gorhom-style portal host mounted at the app root), NOT via\n * `ReactDOM.createPortal`. React context therefore does NOT flow from the trigger's\n * location to the host. Under a nested `<Theme name=\"dark\">` the portaled content\n * lands OUTSIDE that theme context and Tamagui throws \"Missing theme\" (or renders\n * unthemed).\n *\n * The fix is two-part and must stay two-part:\n * 1. At the TRIGGER site (theme context still available) capture the resolved\n * theme name with `useThemeName()`.\n * 2. INSIDE the portaled content re-apply it: `<PortalTheme name={captured}>`.\n *\n * Every portal-backed menu in this package (DropdownMenu, ContextMenu, SelectMenu,\n * ComboBox) uses this so a menu renders identically whether it is opened under the\n * root theme or under any nested `<Theme>`, light or dark.\n */\nimport type { ReactNode } from 'react'\nimport { Theme, useThemeName } from '@hanzo/gui'\n\n/** Capture the current resolved theme name at the trigger site. Re-exported so the\n * capture + re-apply pair reads from one module. */\nexport { useThemeName }\n\nexport function PortalTheme({ name, children }: { name: string; children: ReactNode }) {\n // `name` is the resolved theme name (e.g. \"dark\", or a compound \"dark_purple\").\n // Tamagui's `Theme` accepts the resolved name and reconstructs the context.\n return <Theme name={name as never}>{children}</Theme>\n}\n","\"use client\"\n\n/**\n * DropdownMenu — the ONE compound menu, native to @hanzo/gui.\n *\n * @hanzogui/menu already ships the whole compound surface (Root/Trigger/Portal/\n * Content/Group/Label/Item/CheckboxItem/RadioGroup/RadioItem/ItemIndicator/\n * Separator/Sub/SubTrigger/SubContent) with the a11y, roving focus, popper\n * placement and dismiss behaviour. This file only FLATTENS `Menu.X` into the 15\n * `DropdownMenuX` names and dresses them in the Hanzo tokens, so there is one\n * menu component rather than two shapes of the same idea.\n *\n * Cross-platform: gui style props only — no Tailwind class strings, no Radix, no\n * DOM APIs. Rows are 32px tall (the design density) with a 6px vertical `hitSlop`\n * so the real tap target is 44px on touch hosts.\n *\n * `DropdownMenuContent` mounts its OWN `Menu.Portal`, so callers never wrap it —\n * and 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 * as React from \"react\"\nimport { Menu, Text, XStack, YStack, type GuiElement } from \"@hanzo/gui\"\nimport { Check, ChevronRight, Circle } from \"@hanzogui/lucide-icons-2\"\n\nimport type { MenuItemSpec } from \"../../product/menu/items\"\nimport { PortalTheme, useThemeName } from \"../../product/menu/portal-theme\"\n\n// ── Geometry — literal px on the 8-grid; 32px row + 6px hitSlop = 44px tap ──────\nconst ROW_H = 32\nconst TAP_MIN = 44\nconst HIT_SLOP = {\n top: (TAP_MIN - ROW_H) / 2,\n bottom: (TAP_MIN - ROW_H) / 2,\n left: 0,\n right: 0,\n}\nconst ROW_PX = 8\nconst INSET_PL = 32\nconst INDICATOR_SLOT = 14\nconst ICON = 16\n\nconst panel = {\n bg: \"$color2\",\n borderColor: \"$borderColor\",\n borderWidth: 1,\n rounded: \"$4\",\n p: 4,\n minW: 128,\n overflow: \"hidden\",\n shadowColor: \"rgba(0,0,0,0.45)\",\n shadowRadius: 20,\n shadowOffset: { width: 0, height: 10 },\n} as const\n\nconst row = {\n items: \"center\",\n gap: ROW_PX,\n px: ROW_PX,\n minH: ROW_H,\n rounded: \"$3\",\n select: \"none\",\n cursor: \"pointer\",\n hitSlop: HIT_SLOP,\n hoverStyle: { bg: \"$color5\" },\n focusStyle: { bg: \"$color5\" },\n pressStyle: { bg: \"$color6\" },\n} as const\n\n/** Left indicator well shared by checkbox + radio rows. */\nconst Indicator = ({ children }: { children: React.ReactNode }) => (\n <XStack\n position=\"absolute\"\n l={ROW_PX}\n width={INDICATOR_SLOT}\n height={INDICATOR_SLOT}\n items=\"center\"\n justify=\"center\"\n pointerEvents=\"none\"\n >\n <Menu.ItemIndicator>{children}</Menu.ItemIndicator>\n </XStack>\n)\n\n// ── Root — owns popper geometry ─────────────────────────────────────────────────\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__ */ React.createContext<\n ((n: number) => void) | null\n>(null)\nconst DEFAULT_OFFSET = 4\n\nexport type DropdownMenuProps = Omit<\n React.ComponentProps<typeof Menu>,\n \"offset\"\n> & {\n offset?: number\n /**\n * Declarative form. Give a `trigger` element and an `items` spec and the menu\n * builds itself out of the very same compound parts a hand-written `children`\n * tree would use — one component, one API, one rendering, whichever form the\n * call site prefers.\n */\n trigger?: React.ReactElement\n items?: MenuItemSpec[]\n minWidth?: number\n maxHeight?: number\n}\n\nfunction DropdownMenu({\n offset = DEFAULT_OFFSET,\n trigger,\n items,\n minWidth,\n maxHeight,\n children,\n ...props\n}: DropdownMenuProps) {\n const [current, setOffset] = React.useState(offset)\n React.useEffect(() => setOffset(offset), [offset])\n return (\n <OffsetContext.Provider value={setOffset}>\n <Menu offset={current} {...props}>\n {trigger ? (\n <DropdownMenuTrigger asChild>{trigger}</DropdownMenuTrigger>\n ) : null}\n {items ? (\n <DropdownMenuContent minW={minWidth} maxH={maxHeight}>\n {items.map(renderSpec)}\n </DropdownMenuContent>\n ) : null}\n {children}\n </Menu>\n </OffsetContext.Provider>\n )\n}\n\n/** One spec row -> the matching compound part. Never a second row renderer. */\nconst renderSpec = (spec: MenuItemSpec, i: number) => {\n if (spec.type === \"separator\")\n return <DropdownMenuSeparator key={spec.key ?? `sep-${i}`} />\n if (spec.type === \"label\")\n return (\n <DropdownMenuLabel key={spec.key ?? `label-${i}`}>\n {spec.label}\n </DropdownMenuLabel>\n )\n return (\n <DropdownMenuItem\n key={spec.key}\n disabled={spec.disabled}\n variant={spec.destructive ? \"destructive\" : \"default\"}\n onSelect={spec.onSelect}\n >\n {spec.icon ? (\n <XStack\n width={ICON}\n height={ICON}\n items=\"center\"\n justify=\"center\"\n shrink={0}\n >\n {spec.icon}\n </XStack>\n ) : null}\n <YStack flex={1} minW={0}>\n <Text fontSize=\"$2\" color=\"$color12\" numberOfLines={1}>\n {spec.label}\n </Text>\n {spec.description ? (\n <Text fontSize=\"$1\" color=\"$color11\" numberOfLines={1}>\n {spec.description}\n </Text>\n ) : null}\n </YStack>\n {spec.shortcut ? (\n <DropdownMenuShortcut>{spec.shortcut}</DropdownMenuShortcut>\n ) : null}\n {spec.selected ? <Check size={ICON - 2} ml=\"auto\" /> : null}\n {spec.hasSubmenu ? (\n <ChevronRight size={ICON - 2} ml=\"auto\" opacity={0.6} />\n ) : null}\n </DropdownMenuItem>\n )\n}\n\n// ── Passthroughs — the gui part already IS the part ─────────────────────────────\nconst DropdownMenuTrigger: typeof Menu.Trigger = Menu.Trigger\nconst DropdownMenuGroup: typeof Menu.Group = Menu.Group\nconst DropdownMenuPortal: typeof Menu.Portal = Menu.Portal\nconst DropdownMenuSub: typeof Menu.Sub = Menu.Sub\nconst DropdownMenuRadioGroup: typeof Menu.RadioGroup = Menu.RadioGroup\n\n// ── Content — self-portalling, theme-forwarded ──────────────────────────────────\ntype ContentProps = React.ComponentProps<typeof Menu.Content> & {\n sideOffset?: number\n}\n\nconst DropdownMenuContent = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n ContentProps\n>(function DropdownMenuContent(\n { sideOffset = DEFAULT_OFFSET, children, ...props },\n ref\n) {\n const themeName = useThemeName()\n const setOffset = React.useContext(OffsetContext)\n React.useEffect(() => setOffset?.(sideOffset), [setOffset, sideOffset])\n return (\n <Menu.Portal>\n <PortalTheme name={themeName}>\n <Menu.Content\n ref={ref}\n data-slot=\"dropdown-menu-content\"\n {...panel}\n {...props}\n >\n {children}\n </Menu.Content>\n </PortalTheme>\n </Menu.Portal>\n )\n})\n\nconst DropdownMenuSubContent = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n React.ComponentProps<typeof Menu.SubContent>\n>(function DropdownMenuSubContent(props, ref) {\n return (\n <Menu.SubContent\n ref={ref}\n data-slot=\"dropdown-menu-sub-content\"\n {...panel}\n {...props}\n />\n )\n})\n\n// ── Rows ────────────────────────────────────────────────────────────────────────\ntype ItemProps = Omit<React.ComponentProps<typeof Menu.Item>, \"variant\"> & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}\n\nconst DropdownMenuItem = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n ItemProps\n>(function DropdownMenuItem(\n { inset, variant = \"default\", disabled, ...props },\n ref\n) {\n return (\n <Menu.Item\n ref={ref}\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n disabled={disabled}\n {...row}\n pl={inset ? INSET_PL : ROW_PX}\n theme={variant === \"destructive\" ? \"red\" : undefined}\n opacity={disabled ? 0.5 : 1}\n cursor={disabled ? \"default\" : \"pointer\"}\n {...props}\n />\n )\n})\n\nconst DropdownMenuCheckboxItem = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n React.ComponentProps<typeof Menu.CheckboxItem>\n>(function DropdownMenuCheckboxItem({ children, checked, ...props }, ref) {\n return (\n <Menu.CheckboxItem\n ref={ref}\n data-slot=\"dropdown-menu-checkbox-item\"\n checked={checked}\n {...row}\n pl={INSET_PL}\n {...props}\n >\n <Indicator>\n <Check size={ICON} />\n </Indicator>\n {children}\n </Menu.CheckboxItem>\n )\n})\n\nconst DropdownMenuRadioItem = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n React.ComponentProps<typeof Menu.RadioItem>\n>(function DropdownMenuRadioItem({ children, ...props }, ref) {\n return (\n <Menu.RadioItem\n ref={ref}\n data-slot=\"dropdown-menu-radio-item\"\n {...row}\n pl={INSET_PL}\n {...props}\n >\n <Indicator>\n <Circle size={8} fill=\"currentColor\" />\n </Indicator>\n {children}\n </Menu.RadioItem>\n )\n})\n\nconst DropdownMenuSubTrigger = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n React.ComponentProps<typeof Menu.SubTrigger> & { inset?: boolean }\n>(function DropdownMenuSubTrigger({ inset, children, ...props }, ref) {\n return (\n <Menu.SubTrigger\n ref={ref}\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n {...row}\n pl={inset ? INSET_PL : ROW_PX}\n {...props}\n >\n {children}\n <ChevronRight size={ICON} ml=\"auto\" opacity={0.6} />\n </Menu.SubTrigger>\n )\n})\n\n// ── Static rows ─────────────────────────────────────────────────────────────────\nconst DropdownMenuLabel = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n React.ComponentProps<typeof Menu.Label> & { inset?: boolean }\n>(function DropdownMenuLabel({ inset, ...props }, ref) {\n return (\n <Menu.Label\n ref={ref}\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n px={ROW_PX}\n py={4}\n pl={inset ? INSET_PL : ROW_PX}\n fontSize=\"$2\"\n fontWeight=\"500\"\n color=\"$color12\"\n select=\"none\"\n {...props}\n />\n )\n})\n\nconst DropdownMenuSeparator = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n React.ComponentProps<typeof Menu.Separator>\n>(function DropdownMenuSeparator(props, ref) {\n return (\n <Menu.Separator\n ref={ref}\n data-slot=\"dropdown-menu-separator\"\n height={1}\n bg=\"$borderColor\"\n mx={4}\n my={4}\n {...props}\n />\n )\n})\n\n/** Right-aligned shortcut hint. gui `Text`, not a raw `<span>`, so it renders on native. */\nfunction DropdownMenuShortcut(props: React.ComponentProps<typeof Text>) {\n return (\n <Text\n data-slot=\"dropdown-menu-shortcut\"\n ml=\"auto\"\n fontSize=\"$1\"\n letterSpacing={1}\n color=\"$color11\"\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n"]}
@@ -0,0 +1,11 @@
1
+ 'use client';
2
+ import { clsx } from 'clsx';
3
+
4
+ // src/core/cn.ts
5
+ function cn(...inputs) {
6
+ return clsx(inputs);
7
+ }
8
+
9
+ export { cn };
10
+ //# sourceMappingURL=chunk-QHC2ZNAF.js.map
11
+ //# sourceMappingURL=chunk-QHC2ZNAF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/cn.ts"],"names":[],"mappings":";;;AASO,SAAS,MAAM,MAAA,EAA8B;AAClD,EAAA,OAAO,KAAK,MAAM,CAAA;AACpB","file":"chunk-QHC2ZNAF.js","sourcesContent":["/**\n * `cn` — the one class-name composer.\n *\n * `clsx` resolves conditional/array/object class inputs. There is no Tailwind\n * conflict-resolution step because there are no Tailwind utilities to resolve:\n * components render on @hanzo/gui, which styles through props, not class names.\n */\nimport { clsx, type ClassValue } from 'clsx'\n\nexport function cn(...inputs: ClassValue[]): string {\n return clsx(inputs)\n}\n"]}
@@ -0,0 +1,77 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var tokens = require('@hanzo/tokens');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "colors", {
9
+ enumerable: true,
10
+ get: function () { return tokens.colors; }
11
+ });
12
+ Object.defineProperty(exports, "dark", {
13
+ enumerable: true,
14
+ get: function () { return tokens.dark; }
15
+ });
16
+ Object.defineProperty(exports, "fontFamily", {
17
+ enumerable: true,
18
+ get: function () { return tokens.fontFamily; }
19
+ });
20
+ Object.defineProperty(exports, "fontSize", {
21
+ enumerable: true,
22
+ get: function () { return tokens.fontSize; }
23
+ });
24
+ Object.defineProperty(exports, "fontSizePx", {
25
+ enumerable: true,
26
+ get: function () { return tokens.fontSizePx; }
27
+ });
28
+ Object.defineProperty(exports, "fontWeight", {
29
+ enumerable: true,
30
+ get: function () { return tokens.fontWeight; }
31
+ });
32
+ Object.defineProperty(exports, "hsl", {
33
+ enumerable: true,
34
+ get: function () { return tokens.hsl; }
35
+ });
36
+ Object.defineProperty(exports, "letterSpacing", {
37
+ enumerable: true,
38
+ get: function () { return tokens.letterSpacing; }
39
+ });
40
+ Object.defineProperty(exports, "light", {
41
+ enumerable: true,
42
+ get: function () { return tokens.light; }
43
+ });
44
+ Object.defineProperty(exports, "lineHeight", {
45
+ enumerable: true,
46
+ get: function () { return tokens.lineHeight; }
47
+ });
48
+ Object.defineProperty(exports, "oklch", {
49
+ enumerable: true,
50
+ get: function () { return tokens.oklch; }
51
+ });
52
+ Object.defineProperty(exports, "radii", {
53
+ enumerable: true,
54
+ get: function () { return tokens.radii; }
55
+ });
56
+ Object.defineProperty(exports, "radiiPx", {
57
+ enumerable: true,
58
+ get: function () { return tokens.radiiPx; }
59
+ });
60
+ Object.defineProperty(exports, "spacing", {
61
+ enumerable: true,
62
+ get: function () { return tokens.spacing; }
63
+ });
64
+ Object.defineProperty(exports, "spacingPx", {
65
+ enumerable: true,
66
+ get: function () { return tokens.spacingPx; }
67
+ });
68
+ Object.defineProperty(exports, "themes", {
69
+ enumerable: true,
70
+ get: function () { return tokens.themes; }
71
+ });
72
+ Object.defineProperty(exports, "zinc", {
73
+ enumerable: true,
74
+ get: function () { return tokens.zinc; }
75
+ });
76
+ //# sourceMappingURL=chunk-QV52JQHR.cjs.map
77
+ //# sourceMappingURL=chunk-QV52JQHR.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-QV52JQHR.cjs","sourcesContent":[]}
@@ -0,0 +1,13 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var clsx = require('clsx');
5
+
6
+ // src/core/cn.ts
7
+ function cn(...inputs) {
8
+ return clsx.clsx(inputs);
9
+ }
10
+
11
+ exports.cn = cn;
12
+ //# sourceMappingURL=chunk-RBS5AYO4.cjs.map
13
+ //# sourceMappingURL=chunk-RBS5AYO4.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/cn.ts"],"names":["clsx"],"mappings":";;;;;AASO,SAAS,MAAM,MAAA,EAA8B;AAClD,EAAA,OAAOA,UAAK,MAAM,CAAA;AACpB","file":"chunk-RBS5AYO4.cjs","sourcesContent":["/**\n * `cn` — the one class-name composer.\n *\n * `clsx` resolves conditional/array/object class inputs. There is no Tailwind\n * conflict-resolution step because there are no Tailwind utilities to resolve:\n * components render on @hanzo/gui, which styles through props, not class names.\n */\nimport { clsx, type ClassValue } from 'clsx'\n\nexport function cn(...inputs: ClassValue[]): string {\n return clsx(inputs)\n}\n"]}