@hanzo/ui 8.27.90 → 8.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (698) hide show
  1. package/NOTICE +25 -0
  2. package/README.md +1 -1
  3. package/dist/backends/gui/alert-dialog.cjs +24 -6
  4. package/dist/backends/gui/alert-dialog.d.ts +11 -3
  5. package/dist/backends/gui/alert-dialog.d.ts.map +1 -1
  6. package/dist/backends/gui/alert-dialog.js +24 -6
  7. package/dist/backends/gui/alert-dialog.js.map +1 -1
  8. package/dist/backends/gui/alert.cjs +32 -1
  9. package/dist/backends/gui/alert.d.ts +36 -3
  10. package/dist/backends/gui/alert.d.ts.map +1 -1
  11. package/dist/backends/gui/alert.js +32 -2
  12. package/dist/backends/gui/alert.js.map +1 -1
  13. package/dist/backends/gui/avatar-group.cjs +28 -0
  14. package/dist/backends/gui/avatar-group.d.ts +33 -0
  15. package/dist/backends/gui/avatar-group.d.ts.map +1 -0
  16. package/dist/backends/gui/avatar-group.js +26 -0
  17. package/dist/backends/gui/avatar-group.js.map +1 -0
  18. package/dist/backends/gui/avatar.cjs +53 -3
  19. package/dist/backends/gui/avatar.d.ts +46 -4
  20. package/dist/backends/gui/avatar.d.ts.map +1 -1
  21. package/dist/backends/gui/avatar.js +52 -3
  22. package/dist/backends/gui/avatar.js.map +1 -1
  23. package/dist/backends/gui/badge.cjs +40 -2
  24. package/dist/backends/gui/badge.d.ts +7 -2
  25. package/dist/backends/gui/badge.d.ts.map +1 -1
  26. package/dist/backends/gui/badge.js +40 -2
  27. package/dist/backends/gui/badge.js.map +1 -1
  28. package/dist/backends/gui/banner.cjs +40 -1
  29. package/dist/backends/gui/banner.d.ts +36 -3
  30. package/dist/backends/gui/banner.d.ts.map +1 -1
  31. package/dist/backends/gui/banner.js +42 -4
  32. package/dist/backends/gui/banner.js.map +1 -1
  33. package/dist/backends/gui/breadcrumb.cjs +28 -10
  34. package/dist/backends/gui/breadcrumb.d.ts +20 -11
  35. package/dist/backends/gui/breadcrumb.d.ts.map +1 -1
  36. package/dist/backends/gui/breadcrumb.js +28 -10
  37. package/dist/backends/gui/breadcrumb.js.map +1 -1
  38. package/dist/backends/gui/button-group.cjs +43 -0
  39. package/dist/backends/gui/button-group.d.ts +48 -0
  40. package/dist/backends/gui/button-group.d.ts.map +1 -0
  41. package/dist/backends/gui/button-group.js +40 -0
  42. package/dist/backends/gui/button-group.js.map +1 -0
  43. package/dist/backends/gui/button.cjs +177 -4
  44. package/dist/backends/gui/button.d.ts +69 -4
  45. package/dist/backends/gui/button.d.ts.map +1 -1
  46. package/dist/backends/gui/button.js +179 -6
  47. package/dist/backends/gui/button.js.map +1 -1
  48. package/dist/backends/gui/card.cjs +50 -21
  49. package/dist/backends/gui/card.d.ts +16 -7
  50. package/dist/backends/gui/card.d.ts.map +1 -1
  51. package/dist/backends/gui/card.js +50 -21
  52. package/dist/backends/gui/card.js.map +1 -1
  53. package/dist/backends/gui/checkbox.cjs +86 -14
  54. package/dist/backends/gui/checkbox.d.ts +30 -2
  55. package/dist/backends/gui/checkbox.d.ts.map +1 -1
  56. package/dist/backends/gui/checkbox.js +87 -15
  57. package/dist/backends/gui/checkbox.js.map +1 -1
  58. package/dist/backends/gui/chip.cjs +51 -0
  59. package/dist/backends/gui/chip.d.ts +47 -0
  60. package/dist/backends/gui/chip.d.ts.map +1 -0
  61. package/dist/backends/gui/chip.js +49 -0
  62. package/dist/backends/gui/chip.js.map +1 -0
  63. package/dist/backends/gui/choice.cjs +18 -3
  64. package/dist/backends/gui/choice.d.ts +10 -2
  65. package/dist/backends/gui/choice.d.ts.map +1 -1
  66. package/dist/backends/gui/choice.js +19 -4
  67. package/dist/backends/gui/choice.js.map +1 -1
  68. package/dist/backends/gui/code-editor.cjs +16 -5
  69. package/dist/backends/gui/code-editor.d.ts +18 -1
  70. package/dist/backends/gui/code-editor.d.ts.map +1 -1
  71. package/dist/backends/gui/code-editor.js +16 -5
  72. package/dist/backends/gui/code-editor.js.map +1 -1
  73. package/dist/backends/gui/color-sample.cjs +24 -0
  74. package/dist/backends/gui/color-sample.d.ts +23 -0
  75. package/dist/backends/gui/color-sample.d.ts.map +1 -0
  76. package/dist/backends/gui/color-sample.js +22 -0
  77. package/dist/backends/gui/color-sample.js.map +1 -0
  78. package/dist/backends/gui/control.cjs +5 -3
  79. package/dist/backends/gui/control.d.ts +13 -3
  80. package/dist/backends/gui/control.d.ts.map +1 -1
  81. package/dist/backends/gui/control.js +5 -3
  82. package/dist/backends/gui/control.js.map +1 -1
  83. package/dist/backends/gui/country-select.cjs +69 -0
  84. package/dist/backends/gui/country-select.d.ts +30 -0
  85. package/dist/backends/gui/country-select.d.ts.map +1 -0
  86. package/dist/backends/gui/country-select.js +67 -0
  87. package/dist/backends/gui/country-select.js.map +1 -0
  88. package/dist/backends/gui/currency-picker.cjs +48 -0
  89. package/dist/backends/gui/currency-picker.d.ts +37 -0
  90. package/dist/backends/gui/currency-picker.d.ts.map +1 -0
  91. package/dist/backends/gui/currency-picker.js +46 -0
  92. package/dist/backends/gui/currency-picker.js.map +1 -0
  93. package/dist/backends/gui/density.cjs +32 -0
  94. package/dist/backends/gui/density.d.ts +27 -0
  95. package/dist/backends/gui/density.d.ts.map +1 -0
  96. package/dist/backends/gui/density.js +27 -0
  97. package/dist/backends/gui/density.js.map +1 -0
  98. package/dist/backends/gui/dialog.cjs +65 -7
  99. package/dist/backends/gui/dialog.d.ts +68 -3
  100. package/dist/backends/gui/dialog.d.ts.map +1 -1
  101. package/dist/backends/gui/dialog.js +63 -7
  102. package/dist/backends/gui/dialog.js.map +1 -1
  103. package/dist/backends/gui/dropdown-menu.cjs +361 -31
  104. package/dist/backends/gui/dropdown-menu.d.ts +151 -15
  105. package/dist/backends/gui/dropdown-menu.d.ts.map +1 -1
  106. package/dist/backends/gui/dropdown-menu.js +353 -34
  107. package/dist/backends/gui/dropdown-menu.js.map +1 -1
  108. package/dist/backends/gui/feedback.cjs +78 -0
  109. package/dist/backends/gui/feedback.d.ts +46 -0
  110. package/dist/backends/gui/feedback.d.ts.map +1 -0
  111. package/dist/backends/gui/feedback.js +74 -0
  112. package/dist/backends/gui/feedback.js.map +1 -0
  113. package/dist/backends/gui/field.cjs +71 -14
  114. package/dist/backends/gui/field.d.ts +43 -3
  115. package/dist/backends/gui/field.d.ts.map +1 -1
  116. package/dist/backends/gui/field.js +69 -14
  117. package/dist/backends/gui/field.js.map +1 -1
  118. package/dist/backends/gui/flag.cjs +17 -0
  119. package/dist/backends/gui/flag.d.ts +9 -0
  120. package/dist/backends/gui/flag.d.ts.map +1 -0
  121. package/dist/backends/gui/flag.js +14 -0
  122. package/dist/backends/gui/flag.js.map +1 -0
  123. package/dist/backends/gui/grip.cjs +35 -3
  124. package/dist/backends/gui/grip.d.ts +16 -1
  125. package/dist/backends/gui/grip.d.ts.map +1 -1
  126. package/dist/backends/gui/grip.js +35 -3
  127. package/dist/backends/gui/grip.js.map +1 -1
  128. package/dist/backends/gui/heading.cjs +27 -0
  129. package/dist/backends/gui/heading.d.ts +8 -0
  130. package/dist/backends/gui/heading.d.ts.map +1 -0
  131. package/dist/backends/gui/heading.js +25 -0
  132. package/dist/backends/gui/heading.js.map +1 -0
  133. package/dist/backends/gui/hue.cjs +49 -0
  134. package/dist/backends/gui/hue.d.ts +18 -0
  135. package/dist/backends/gui/hue.d.ts.map +1 -0
  136. package/dist/backends/gui/hue.js +43 -0
  137. package/dist/backends/gui/hue.js.map +1 -0
  138. package/dist/backends/gui/icon-tile.cjs +36 -0
  139. package/dist/backends/gui/icon-tile.d.ts +26 -0
  140. package/dist/backends/gui/icon-tile.d.ts.map +1 -0
  141. package/dist/backends/gui/icon-tile.js +32 -0
  142. package/dist/backends/gui/icon-tile.js.map +1 -0
  143. package/dist/backends/gui/image-input.cjs +78 -0
  144. package/dist/backends/gui/image-input.d.ts +32 -0
  145. package/dist/backends/gui/image-input.d.ts.map +1 -0
  146. package/dist/backends/gui/image-input.js +74 -0
  147. package/dist/backends/gui/image-input.js.map +1 -0
  148. package/dist/backends/gui/index.cjs +93 -7
  149. package/dist/backends/gui/index.d.ts +45 -2
  150. package/dist/backends/gui/index.d.ts.map +1 -1
  151. package/dist/backends/gui/index.js +35 -1
  152. package/dist/backends/gui/index.js.map +1 -1
  153. package/dist/backends/gui/input-group.cjs +49 -0
  154. package/dist/backends/gui/input-group.d.ts +46 -0
  155. package/dist/backends/gui/input-group.d.ts.map +1 -0
  156. package/dist/backends/gui/input-group.js +46 -0
  157. package/dist/backends/gui/input-group.js.map +1 -0
  158. package/dist/backends/gui/input.cjs +32 -4
  159. package/dist/backends/gui/input.d.ts +5 -1
  160. package/dist/backends/gui/input.d.ts.map +1 -1
  161. package/dist/backends/gui/input.js +33 -5
  162. package/dist/backends/gui/input.js.map +1 -1
  163. package/dist/backends/gui/item.cjs +34 -2
  164. package/dist/backends/gui/item.d.ts +21 -5
  165. package/dist/backends/gui/item.d.ts.map +1 -1
  166. package/dist/backends/gui/item.js +35 -3
  167. package/dist/backends/gui/item.js.map +1 -1
  168. package/dist/backends/gui/json-tree.cjs +103 -15
  169. package/dist/backends/gui/json-tree.d.ts +39 -3
  170. package/dist/backends/gui/json-tree.d.ts.map +1 -1
  171. package/dist/backends/gui/json-tree.js +104 -16
  172. package/dist/backends/gui/json-tree.js.map +1 -1
  173. package/dist/backends/gui/kbd.cjs +18 -2
  174. package/dist/backends/gui/kbd.d.ts +5 -2
  175. package/dist/backends/gui/kbd.d.ts.map +1 -1
  176. package/dist/backends/gui/kbd.js +18 -2
  177. package/dist/backends/gui/kbd.js.map +1 -1
  178. package/dist/backends/gui/label.cjs +14 -3
  179. package/dist/backends/gui/label.d.ts +12 -3
  180. package/dist/backends/gui/label.d.ts.map +1 -1
  181. package/dist/backends/gui/label.js +14 -3
  182. package/dist/backends/gui/label.js.map +1 -1
  183. package/dist/backends/gui/layout.cjs +5 -1
  184. package/dist/backends/gui/layout.d.ts +1 -1
  185. package/dist/backends/gui/layout.d.ts.map +1 -1
  186. package/dist/backends/gui/layout.js +5 -1
  187. package/dist/backends/gui/layout.js.map +1 -1
  188. package/dist/backends/gui/number-field.cjs +163 -0
  189. package/dist/backends/gui/number-field.d.ts +34 -0
  190. package/dist/backends/gui/number-field.d.ts.map +1 -0
  191. package/dist/backends/gui/number-field.js +160 -0
  192. package/dist/backends/gui/number-field.js.map +1 -0
  193. package/dist/backends/gui/overflowing-list.cjs +79 -0
  194. package/dist/backends/gui/overflowing-list.d.ts +42 -0
  195. package/dist/backends/gui/overflowing-list.d.ts.map +1 -0
  196. package/dist/backends/gui/overflowing-list.js +76 -0
  197. package/dist/backends/gui/overflowing-list.js.map +1 -0
  198. package/dist/backends/gui/phone-country-picker.cjs +60 -0
  199. package/dist/backends/gui/phone-country-picker.d.ts +34 -0
  200. package/dist/backends/gui/phone-country-picker.d.ts.map +1 -0
  201. package/dist/backends/gui/phone-country-picker.js +57 -0
  202. package/dist/backends/gui/phone-country-picker.js.map +1 -0
  203. package/dist/backends/gui/popover.cjs +20 -4
  204. package/dist/backends/gui/popover.d.ts +12 -1
  205. package/dist/backends/gui/popover.d.ts.map +1 -1
  206. package/dist/backends/gui/popover.js +21 -5
  207. package/dist/backends/gui/popover.js.map +1 -1
  208. package/dist/backends/gui/progress-ring.cjs +38 -0
  209. package/dist/backends/gui/progress-ring.d.ts +37 -0
  210. package/dist/backends/gui/progress-ring.d.ts.map +1 -0
  211. package/dist/backends/gui/progress-ring.js +36 -0
  212. package/dist/backends/gui/progress-ring.js.map +1 -0
  213. package/dist/backends/gui/progress.cjs +31 -7
  214. package/dist/backends/gui/progress.d.ts +25 -3
  215. package/dist/backends/gui/progress.d.ts.map +1 -1
  216. package/dist/backends/gui/progress.js +32 -8
  217. package/dist/backends/gui/progress.js.map +1 -1
  218. package/dist/backends/gui/radio-group.cjs +28 -2
  219. package/dist/backends/gui/radio-group.d.ts +20 -2
  220. package/dist/backends/gui/radio-group.d.ts.map +1 -1
  221. package/dist/backends/gui/radio-group.js +28 -2
  222. package/dist/backends/gui/radio-group.js.map +1 -1
  223. package/dist/backends/gui/search-list.cjs +62 -0
  224. package/dist/backends/gui/search-list.d.ts +65 -0
  225. package/dist/backends/gui/search-list.d.ts.map +1 -0
  226. package/dist/backends/gui/search-list.js +58 -0
  227. package/dist/backends/gui/search-list.js.map +1 -0
  228. package/dist/backends/gui/select.cjs +50 -16
  229. package/dist/backends/gui/select.d.ts +12 -3
  230. package/dist/backends/gui/select.d.ts.map +1 -1
  231. package/dist/backends/gui/select.js +51 -17
  232. package/dist/backends/gui/select.js.map +1 -1
  233. package/dist/backends/gui/shortcut.cjs +122 -0
  234. package/dist/backends/gui/shortcut.d.ts +58 -0
  235. package/dist/backends/gui/shortcut.d.ts.map +1 -0
  236. package/dist/backends/gui/shortcut.js +115 -0
  237. package/dist/backends/gui/shortcut.js.map +1 -0
  238. package/dist/backends/gui/skeleton.cjs +41 -10
  239. package/dist/backends/gui/skeleton.d.ts +46 -8
  240. package/dist/backends/gui/skeleton.d.ts.map +1 -1
  241. package/dist/backends/gui/skeleton.js +39 -8
  242. package/dist/backends/gui/skeleton.js.map +1 -1
  243. package/dist/backends/gui/snippet.cjs +12 -1
  244. package/dist/backends/gui/snippet.d.ts +4 -2
  245. package/dist/backends/gui/snippet.d.ts.map +1 -1
  246. package/dist/backends/gui/snippet.js +12 -1
  247. package/dist/backends/gui/snippet.js.map +1 -1
  248. package/dist/backends/gui/spinner.cjs +8 -1
  249. package/dist/backends/gui/spinner.d.ts +11 -2
  250. package/dist/backends/gui/spinner.d.ts.map +1 -1
  251. package/dist/backends/gui/spinner.js +9 -2
  252. package/dist/backends/gui/spinner.js.map +1 -1
  253. package/dist/backends/gui/stack-icon.cjs +17 -0
  254. package/dist/backends/gui/stack-icon.d.ts +15 -0
  255. package/dist/backends/gui/stack-icon.d.ts.map +1 -0
  256. package/dist/backends/gui/stack-icon.js +15 -0
  257. package/dist/backends/gui/stack-icon.js.map +1 -0
  258. package/dist/backends/gui/status.cjs +38 -1
  259. package/dist/backends/gui/status.d.ts +16 -2
  260. package/dist/backends/gui/status.d.ts.map +1 -1
  261. package/dist/backends/gui/status.js +38 -2
  262. package/dist/backends/gui/status.js.map +1 -1
  263. package/dist/backends/gui/stepper.cjs +73 -3
  264. package/dist/backends/gui/stepper.d.ts +25 -1
  265. package/dist/backends/gui/stepper.d.ts.map +1 -1
  266. package/dist/backends/gui/stepper.js +71 -5
  267. package/dist/backends/gui/stepper.js.map +1 -1
  268. package/dist/backends/gui/switch.cjs +35 -20
  269. package/dist/backends/gui/switch.d.ts +12 -2
  270. package/dist/backends/gui/switch.d.ts.map +1 -1
  271. package/dist/backends/gui/switch.js +35 -20
  272. package/dist/backends/gui/switch.js.map +1 -1
  273. package/dist/backends/gui/tabs.cjs +63 -17
  274. package/dist/backends/gui/tabs.d.ts +35 -6
  275. package/dist/backends/gui/tabs.d.ts.map +1 -1
  276. package/dist/backends/gui/tabs.js +65 -19
  277. package/dist/backends/gui/tabs.js.map +1 -1
  278. package/dist/backends/gui/tag.cjs +48 -0
  279. package/dist/backends/gui/tag.d.ts +53 -0
  280. package/dist/backends/gui/tag.d.ts.map +1 -0
  281. package/dist/backends/gui/tag.js +46 -0
  282. package/dist/backends/gui/tag.js.map +1 -0
  283. package/dist/backends/gui/tags.cjs +9 -2
  284. package/dist/backends/gui/tags.d.ts +6 -5
  285. package/dist/backends/gui/tags.d.ts.map +1 -1
  286. package/dist/backends/gui/tags.js +9 -2
  287. package/dist/backends/gui/tags.js.map +1 -1
  288. package/dist/backends/gui/textarea.cjs +22 -6
  289. package/dist/backends/gui/textarea.d.ts +10 -1
  290. package/dist/backends/gui/textarea.d.ts.map +1 -1
  291. package/dist/backends/gui/textarea.js +22 -6
  292. package/dist/backends/gui/textarea.js.map +1 -1
  293. package/dist/backends/gui/toaster.cjs +167 -3
  294. package/dist/backends/gui/toaster.d.ts +28 -2
  295. package/dist/backends/gui/toaster.d.ts.map +1 -1
  296. package/dist/backends/gui/toaster.js +167 -5
  297. package/dist/backends/gui/toaster.js.map +1 -1
  298. package/dist/backends/gui/toggle-group.cjs +13 -0
  299. package/dist/backends/gui/toggle-group.d.ts +7 -1
  300. package/dist/backends/gui/toggle-group.d.ts.map +1 -1
  301. package/dist/backends/gui/toggle-group.js +13 -0
  302. package/dist/backends/gui/toggle-group.js.map +1 -1
  303. package/dist/backends/gui/tooltip.cjs +29 -6
  304. package/dist/backends/gui/tooltip.d.ts +23 -4
  305. package/dist/backends/gui/tooltip.d.ts.map +1 -1
  306. package/dist/backends/gui/tooltip.js +31 -8
  307. package/dist/backends/gui/tooltip.js.map +1 -1
  308. package/dist/backends/gui/truncated-text.cjs +102 -0
  309. package/dist/backends/gui/truncated-text.d.ts +55 -0
  310. package/dist/backends/gui/truncated-text.d.ts.map +1 -0
  311. package/dist/backends/gui/truncated-text.js +97 -0
  312. package/dist/backends/gui/truncated-text.js.map +1 -0
  313. package/dist/gallery/compound.cjs +60 -0
  314. package/dist/gallery/compound.d.ts +2 -0
  315. package/dist/gallery/compound.d.ts.map +1 -0
  316. package/dist/gallery/compound.js +58 -0
  317. package/dist/gallery/compound.js.map +1 -0
  318. package/dist/gallery/display.cjs +47 -0
  319. package/dist/gallery/display.d.ts +3 -0
  320. package/dist/gallery/display.d.ts.map +1 -0
  321. package/dist/gallery/display.js +45 -0
  322. package/dist/gallery/display.js.map +1 -0
  323. package/dist/gallery/feedback.cjs +38 -0
  324. package/dist/gallery/feedback.d.ts +2 -0
  325. package/dist/gallery/feedback.d.ts.map +1 -0
  326. package/dist/gallery/feedback.js +36 -0
  327. package/dist/gallery/feedback.js.map +1 -0
  328. package/dist/gallery/fields.cjs +53 -0
  329. package/dist/gallery/fields.d.ts +2 -0
  330. package/dist/gallery/fields.d.ts.map +1 -0
  331. package/dist/gallery/fields.js +51 -0
  332. package/dist/gallery/fields.js.map +1 -0
  333. package/dist/gallery/frames.cjs +47 -0
  334. package/dist/gallery/frames.d.ts +2 -0
  335. package/dist/gallery/frames.d.ts.map +1 -0
  336. package/dist/gallery/frames.js +45 -0
  337. package/dist/gallery/frames.js.map +1 -0
  338. package/dist/gallery/menus.cjs +64 -0
  339. package/dist/gallery/menus.d.ts +15 -0
  340. package/dist/gallery/menus.d.ts.map +1 -0
  341. package/dist/gallery/menus.js +58 -0
  342. package/dist/gallery/menus.js.map +1 -0
  343. package/dist/gallery/records.cjs +33 -0
  344. package/dist/gallery/records.d.ts +2 -0
  345. package/dist/gallery/records.d.ts.map +1 -0
  346. package/dist/gallery/records.js +31 -0
  347. package/dist/gallery/records.js.map +1 -0
  348. package/dist/gallery/section.cjs +17 -0
  349. package/dist/gallery/section.d.ts +10 -0
  350. package/dist/gallery/section.d.ts.map +1 -0
  351. package/dist/gallery/section.js +14 -0
  352. package/dist/gallery/section.js.map +1 -0
  353. package/dist/gallery.cjs +8 -14
  354. package/dist/gallery.d.ts.map +1 -1
  355. package/dist/gallery.html +1613 -265
  356. package/dist/gallery.js +3 -9
  357. package/dist/gallery.js.map +1 -1
  358. package/dist/gui-config.cjs +37 -7
  359. package/dist/gui-config.d.ts +11 -3
  360. package/dist/gui-config.d.ts.map +1 -1
  361. package/dist/gui-config.js +37 -7
  362. package/dist/gui-config.js.map +1 -1
  363. package/dist/index.cjs +61 -2
  364. package/dist/index.d.ts +4 -2
  365. package/dist/index.d.ts.map +1 -1
  366. package/dist/index.js +7 -1
  367. package/dist/index.js.map +1 -1
  368. package/dist/index.node.cjs +61 -2
  369. package/dist/index.node.js +7 -1
  370. package/dist/motion.cjs +25 -1
  371. package/dist/motion.d.ts +16 -1
  372. package/dist/motion.d.ts.map +1 -1
  373. package/dist/motion.js +24 -1
  374. package/dist/motion.js.map +1 -1
  375. package/dist/primitives/AvatarGroup.cjs +8 -0
  376. package/dist/primitives/AvatarGroup.d.ts +2 -0
  377. package/dist/primitives/AvatarGroup.d.ts.map +1 -0
  378. package/dist/primitives/AvatarGroup.js +5 -0
  379. package/dist/primitives/AvatarGroup.js.map +1 -0
  380. package/dist/primitives/BannerAction.cjs +8 -0
  381. package/dist/primitives/BannerAction.d.ts +2 -0
  382. package/dist/primitives/BannerAction.d.ts.map +1 -0
  383. package/dist/primitives/BannerAction.js +5 -0
  384. package/dist/primitives/BannerAction.js.map +1 -0
  385. package/dist/primitives/ButtonGroup.cjs +8 -0
  386. package/dist/primitives/ButtonGroup.d.ts +2 -0
  387. package/dist/primitives/ButtonGroup.d.ts.map +1 -0
  388. package/dist/primitives/ButtonGroup.js +5 -0
  389. package/dist/primitives/ButtonGroup.js.map +1 -0
  390. package/dist/primitives/ButtonGroupContext.cjs +8 -0
  391. package/dist/primitives/ButtonGroupContext.d.ts +2 -0
  392. package/dist/primitives/ButtonGroupContext.d.ts.map +1 -0
  393. package/dist/primitives/ButtonGroupContext.js +5 -0
  394. package/dist/primitives/ButtonGroupContext.js.map +1 -0
  395. package/dist/primitives/CalloutAction.cjs +8 -0
  396. package/dist/primitives/CalloutAction.d.ts +2 -0
  397. package/dist/primitives/CalloutAction.d.ts.map +1 -0
  398. package/dist/primitives/CalloutAction.js +5 -0
  399. package/dist/primitives/CalloutAction.js.map +1 -0
  400. package/dist/primitives/Chip.cjs +8 -0
  401. package/dist/primitives/Chip.d.ts +2 -0
  402. package/dist/primitives/Chip.d.ts.map +1 -0
  403. package/dist/primitives/Chip.js +5 -0
  404. package/dist/primitives/Chip.js.map +1 -0
  405. package/dist/primitives/ColorSample.cjs +8 -0
  406. package/dist/primitives/ColorSample.d.ts +2 -0
  407. package/dist/primitives/ColorSample.d.ts.map +1 -0
  408. package/dist/primitives/ColorSample.js +5 -0
  409. package/dist/primitives/ColorSample.js.map +1 -0
  410. package/dist/primitives/CountrySelect.cjs +8 -0
  411. package/dist/primitives/CountrySelect.d.ts +2 -0
  412. package/dist/primitives/CountrySelect.d.ts.map +1 -0
  413. package/dist/primitives/CountrySelect.js +5 -0
  414. package/dist/primitives/CountrySelect.js.map +1 -0
  415. package/dist/primitives/CurrencyPicker.cjs +8 -0
  416. package/dist/primitives/CurrencyPicker.d.ts +2 -0
  417. package/dist/primitives/CurrencyPicker.d.ts.map +1 -0
  418. package/dist/primitives/CurrencyPicker.js +5 -0
  419. package/dist/primitives/CurrencyPicker.js.map +1 -0
  420. package/dist/primitives/Density.cjs +8 -0
  421. package/dist/primitives/Density.d.ts +2 -0
  422. package/dist/primitives/Density.d.ts.map +1 -0
  423. package/dist/primitives/Density.js +5 -0
  424. package/dist/primitives/Density.js.map +1 -0
  425. package/dist/primitives/DialogBody.cjs +8 -0
  426. package/dist/primitives/DialogBody.d.ts +2 -0
  427. package/dist/primitives/DialogBody.d.ts.map +1 -0
  428. package/dist/primitives/DialogBody.js +5 -0
  429. package/dist/primitives/DialogBody.js.map +1 -0
  430. package/dist/primitives/DropdownMenuBack.cjs +8 -0
  431. package/dist/primitives/DropdownMenuBack.d.ts +2 -0
  432. package/dist/primitives/DropdownMenuBack.d.ts.map +1 -0
  433. package/dist/primitives/DropdownMenuBack.js +5 -0
  434. package/dist/primitives/DropdownMenuBack.js.map +1 -0
  435. package/dist/primitives/DropdownMenuClose.cjs +8 -0
  436. package/dist/primitives/DropdownMenuClose.d.ts +2 -0
  437. package/dist/primitives/DropdownMenuClose.d.ts.map +1 -0
  438. package/dist/primitives/DropdownMenuClose.js +5 -0
  439. package/dist/primitives/DropdownMenuClose.js.map +1 -0
  440. package/dist/primitives/DropdownMenuEmpty.cjs +8 -0
  441. package/dist/primitives/DropdownMenuEmpty.d.ts +2 -0
  442. package/dist/primitives/DropdownMenuEmpty.d.ts.map +1 -0
  443. package/dist/primitives/DropdownMenuEmpty.js +5 -0
  444. package/dist/primitives/DropdownMenuEmpty.js.map +1 -0
  445. package/dist/primitives/DropdownMenuHeader.cjs +8 -0
  446. package/dist/primitives/DropdownMenuHeader.d.ts +2 -0
  447. package/dist/primitives/DropdownMenuHeader.d.ts.map +1 -0
  448. package/dist/primitives/DropdownMenuHeader.js +5 -0
  449. package/dist/primitives/DropdownMenuHeader.js.map +1 -0
  450. package/dist/primitives/DropdownMenuLoading.cjs +8 -0
  451. package/dist/primitives/DropdownMenuLoading.d.ts +2 -0
  452. package/dist/primitives/DropdownMenuLoading.d.ts.map +1 -0
  453. package/dist/primitives/DropdownMenuLoading.js +5 -0
  454. package/dist/primitives/DropdownMenuLoading.js.map +1 -0
  455. package/dist/primitives/DropdownMenuOptionItem.cjs +8 -0
  456. package/dist/primitives/DropdownMenuOptionItem.d.ts +2 -0
  457. package/dist/primitives/DropdownMenuOptionItem.d.ts.map +1 -0
  458. package/dist/primitives/DropdownMenuOptionItem.js +5 -0
  459. package/dist/primitives/DropdownMenuOptionItem.js.map +1 -0
  460. package/dist/primitives/DropdownMenuPage.cjs +8 -0
  461. package/dist/primitives/DropdownMenuPage.d.ts +2 -0
  462. package/dist/primitives/DropdownMenuPage.d.ts.map +1 -0
  463. package/dist/primitives/DropdownMenuPage.js +5 -0
  464. package/dist/primitives/DropdownMenuPage.js.map +1 -0
  465. package/dist/primitives/DropdownMenuSearch.cjs +8 -0
  466. package/dist/primitives/DropdownMenuSearch.d.ts +2 -0
  467. package/dist/primitives/DropdownMenuSearch.d.ts.map +1 -0
  468. package/dist/primitives/DropdownMenuSearch.js +5 -0
  469. package/dist/primitives/DropdownMenuSearch.js.map +1 -0
  470. package/dist/primitives/DropdownMenuSection.cjs +8 -0
  471. package/dist/primitives/DropdownMenuSection.d.ts +2 -0
  472. package/dist/primitives/DropdownMenuSection.d.ts.map +1 -0
  473. package/dist/primitives/DropdownMenuSection.js +5 -0
  474. package/dist/primitives/DropdownMenuSection.js.map +1 -0
  475. package/dist/primitives/DropdownMenuSelectionGroup.cjs +8 -0
  476. package/dist/primitives/DropdownMenuSelectionGroup.d.ts +2 -0
  477. package/dist/primitives/DropdownMenuSelectionGroup.d.ts.map +1 -0
  478. package/dist/primitives/DropdownMenuSelectionGroup.js +5 -0
  479. package/dist/primitives/DropdownMenuSelectionGroup.js.map +1 -0
  480. package/dist/primitives/DropdownMenuTitle.cjs +8 -0
  481. package/dist/primitives/DropdownMenuTitle.d.ts +2 -0
  482. package/dist/primitives/DropdownMenuTitle.d.ts.map +1 -0
  483. package/dist/primitives/DropdownMenuTitle.js +5 -0
  484. package/dist/primitives/DropdownMenuTitle.js.map +1 -0
  485. package/dist/primitives/Heading.cjs +2 -2
  486. package/dist/primitives/Heading.d.ts +1 -1
  487. package/dist/primitives/Heading.d.ts.map +1 -1
  488. package/dist/primitives/Heading.js +1 -1
  489. package/dist/primitives/Heading.js.map +1 -1
  490. package/dist/primitives/IconTile.cjs +8 -0
  491. package/dist/primitives/IconTile.d.ts +2 -0
  492. package/dist/primitives/IconTile.d.ts.map +1 -0
  493. package/dist/primitives/IconTile.js +5 -0
  494. package/dist/primitives/IconTile.js.map +1 -0
  495. package/dist/primitives/ImageInput.cjs +8 -0
  496. package/dist/primitives/ImageInput.d.ts +2 -0
  497. package/dist/primitives/ImageInput.d.ts.map +1 -0
  498. package/dist/primitives/ImageInput.js +5 -0
  499. package/dist/primitives/ImageInput.js.map +1 -0
  500. package/dist/primitives/InputGroup.cjs +8 -0
  501. package/dist/primitives/InputGroup.d.ts +2 -0
  502. package/dist/primitives/InputGroup.d.ts.map +1 -0
  503. package/dist/primitives/InputGroup.js +5 -0
  504. package/dist/primitives/InputGroup.js.map +1 -0
  505. package/dist/primitives/NumberField.cjs +8 -0
  506. package/dist/primitives/NumberField.d.ts +2 -0
  507. package/dist/primitives/NumberField.d.ts.map +1 -0
  508. package/dist/primitives/NumberField.js +5 -0
  509. package/dist/primitives/NumberField.js.map +1 -0
  510. package/dist/primitives/OverflowingList.cjs +8 -0
  511. package/dist/primitives/OverflowingList.d.ts +2 -0
  512. package/dist/primitives/OverflowingList.d.ts.map +1 -0
  513. package/dist/primitives/OverflowingList.js +5 -0
  514. package/dist/primitives/OverflowingList.js.map +1 -0
  515. package/dist/primitives/PhoneCountryPicker.cjs +8 -0
  516. package/dist/primitives/PhoneCountryPicker.d.ts +2 -0
  517. package/dist/primitives/PhoneCountryPicker.d.ts.map +1 -0
  518. package/dist/primitives/PhoneCountryPicker.js +5 -0
  519. package/dist/primitives/PhoneCountryPicker.js.map +1 -0
  520. package/dist/primitives/ProgressRing.cjs +8 -0
  521. package/dist/primitives/ProgressRing.d.ts +2 -0
  522. package/dist/primitives/ProgressRing.d.ts.map +1 -0
  523. package/dist/primitives/ProgressRing.js +5 -0
  524. package/dist/primitives/ProgressRing.js.map +1 -0
  525. package/dist/primitives/RadioCircle.cjs +8 -0
  526. package/dist/primitives/RadioCircle.d.ts +2 -0
  527. package/dist/primitives/RadioCircle.d.ts.map +1 -0
  528. package/dist/primitives/RadioCircle.js +5 -0
  529. package/dist/primitives/RadioCircle.js.map +1 -0
  530. package/dist/primitives/SKELETON_HEIGHT.cjs +8 -0
  531. package/dist/primitives/SKELETON_HEIGHT.d.ts +2 -0
  532. package/dist/primitives/SKELETON_HEIGHT.d.ts.map +1 -0
  533. package/dist/primitives/SKELETON_HEIGHT.js +5 -0
  534. package/dist/primitives/SKELETON_HEIGHT.js.map +1 -0
  535. package/dist/primitives/STATUS_COLOR.cjs +8 -0
  536. package/dist/primitives/STATUS_COLOR.d.ts +2 -0
  537. package/dist/primitives/STATUS_COLOR.d.ts.map +1 -0
  538. package/dist/primitives/STATUS_COLOR.js +5 -0
  539. package/dist/primitives/STATUS_COLOR.js.map +1 -0
  540. package/dist/primitives/STATUS_HUE.cjs +8 -0
  541. package/dist/primitives/STATUS_HUE.d.ts +2 -0
  542. package/dist/primitives/STATUS_HUE.d.ts.map +1 -0
  543. package/dist/primitives/STATUS_HUE.js +5 -0
  544. package/dist/primitives/STATUS_HUE.js.map +1 -0
  545. package/dist/primitives/STATUS_PAINT.cjs +8 -0
  546. package/dist/primitives/STATUS_PAINT.d.ts +2 -0
  547. package/dist/primitives/STATUS_PAINT.d.ts.map +1 -0
  548. package/dist/primitives/STATUS_PAINT.js +5 -0
  549. package/dist/primitives/STATUS_PAINT.js.map +1 -0
  550. package/dist/primitives/Shortcut.cjs +8 -0
  551. package/dist/primitives/Shortcut.d.ts +2 -0
  552. package/dist/primitives/Shortcut.d.ts.map +1 -0
  553. package/dist/primitives/Shortcut.js +5 -0
  554. package/dist/primitives/Shortcut.js.map +1 -0
  555. package/dist/primitives/StackIcon.cjs +8 -0
  556. package/dist/primitives/StackIcon.d.ts +2 -0
  557. package/dist/primitives/StackIcon.d.ts.map +1 -0
  558. package/dist/primitives/StackIcon.js +5 -0
  559. package/dist/primitives/StackIcon.js.map +1 -0
  560. package/dist/primitives/TOAST_DURATION.cjs +8 -0
  561. package/dist/primitives/TOAST_DURATION.d.ts +2 -0
  562. package/dist/primitives/TOAST_DURATION.d.ts.map +1 -0
  563. package/dist/primitives/TOAST_DURATION.js +5 -0
  564. package/dist/primitives/TOAST_DURATION.js.map +1 -0
  565. package/dist/primitives/Tag.cjs +8 -0
  566. package/dist/primitives/Tag.d.ts +2 -0
  567. package/dist/primitives/Tag.d.ts.map +1 -0
  568. package/dist/primitives/Tag.js +5 -0
  569. package/dist/primitives/Tag.js.map +1 -0
  570. package/dist/primitives/ToastCard.cjs +8 -0
  571. package/dist/primitives/ToastCard.d.ts +2 -0
  572. package/dist/primitives/ToastCard.d.ts.map +1 -0
  573. package/dist/primitives/ToastCard.js +5 -0
  574. package/dist/primitives/ToastCard.js.map +1 -0
  575. package/dist/primitives/ToastFace.cjs +8 -0
  576. package/dist/primitives/ToastFace.d.ts +2 -0
  577. package/dist/primitives/ToastFace.d.ts.map +1 -0
  578. package/dist/primitives/ToastFace.js +5 -0
  579. package/dist/primitives/ToastFace.js.map +1 -0
  580. package/dist/primitives/TruncatedText.cjs +8 -0
  581. package/dist/primitives/TruncatedText.d.ts +2 -0
  582. package/dist/primitives/TruncatedText.d.ts.map +1 -0
  583. package/dist/primitives/TruncatedText.js +5 -0
  584. package/dist/primitives/TruncatedText.js.map +1 -0
  585. package/dist/primitives/TruncatedTextProvider.cjs +8 -0
  586. package/dist/primitives/TruncatedTextProvider.d.ts +2 -0
  587. package/dist/primitives/TruncatedTextProvider.d.ts.map +1 -0
  588. package/dist/primitives/TruncatedTextProvider.js +5 -0
  589. package/dist/primitives/TruncatedTextProvider.js.map +1 -0
  590. package/dist/primitives/VisuallyHidden.cjs +8 -0
  591. package/dist/primitives/VisuallyHidden.d.ts +2 -0
  592. package/dist/primitives/VisuallyHidden.d.ts.map +1 -0
  593. package/dist/primitives/VisuallyHidden.js +5 -0
  594. package/dist/primitives/VisuallyHidden.js.map +1 -0
  595. package/dist/primitives/fieldSize.cjs +8 -0
  596. package/dist/primitives/fieldSize.d.ts +2 -0
  597. package/dist/primitives/fieldSize.d.ts.map +1 -0
  598. package/dist/primitives/fieldSize.js +5 -0
  599. package/dist/primitives/fieldSize.js.map +1 -0
  600. package/dist/primitives/flag.cjs +8 -0
  601. package/dist/primitives/flag.d.ts +2 -0
  602. package/dist/primitives/flag.d.ts.map +1 -0
  603. package/dist/primitives/flag.js +5 -0
  604. package/dist/primitives/flag.js.map +1 -0
  605. package/dist/primitives/formatShortcut.cjs +8 -0
  606. package/dist/primitives/formatShortcut.d.ts +2 -0
  607. package/dist/primitives/formatShortcut.d.ts.map +1 -0
  608. package/dist/primitives/formatShortcut.js +5 -0
  609. package/dist/primitives/formatShortcut.js.map +1 -0
  610. package/dist/primitives/initialOf.cjs +8 -0
  611. package/dist/primitives/initialOf.d.ts +2 -0
  612. package/dist/primitives/initialOf.d.ts.map +1 -0
  613. package/dist/primitives/initialOf.js +5 -0
  614. package/dist/primitives/initialOf.js.map +1 -0
  615. package/dist/primitives/parseNumber.cjs +8 -0
  616. package/dist/primitives/parseNumber.d.ts +2 -0
  617. package/dist/primitives/parseNumber.d.ts.map +1 -0
  618. package/dist/primitives/parseNumber.js +5 -0
  619. package/dist/primitives/parseNumber.js.map +1 -0
  620. package/dist/primitives/speakShortcut.cjs +8 -0
  621. package/dist/primitives/speakShortcut.d.ts +2 -0
  622. package/dist/primitives/speakShortcut.d.ts.map +1 -0
  623. package/dist/primitives/speakShortcut.js +5 -0
  624. package/dist/primitives/speakShortcut.js.map +1 -0
  625. package/dist/primitives/tileTones.cjs +8 -0
  626. package/dist/primitives/tileTones.d.ts +2 -0
  627. package/dist/primitives/tileTones.d.ts.map +1 -0
  628. package/dist/primitives/tileTones.js +5 -0
  629. package/dist/primitives/tileTones.js.map +1 -0
  630. package/dist/primitives/useDensity.cjs +8 -0
  631. package/dist/primitives/useDensity.d.ts +2 -0
  632. package/dist/primitives/useDensity.d.ts.map +1 -0
  633. package/dist/primitives/useDensity.js +5 -0
  634. package/dist/primitives/useDensity.js.map +1 -0
  635. package/dist/primitives/useField.cjs +8 -0
  636. package/dist/primitives/useField.d.ts +2 -0
  637. package/dist/primitives/useField.d.ts.map +1 -0
  638. package/dist/primitives/useField.js +5 -0
  639. package/dist/primitives/useField.js.map +1 -0
  640. package/dist/product/ComboBox.cjs +25 -7
  641. package/dist/product/ComboBox.d.ts +3 -1
  642. package/dist/product/ComboBox.d.ts.map +1 -1
  643. package/dist/product/ComboBox.js +25 -7
  644. package/dist/product/ComboBox.js.map +1 -1
  645. package/dist/product/CommandMenu.cjs +137 -0
  646. package/dist/product/CommandMenu.d.ts +77 -0
  647. package/dist/product/CommandMenu.d.ts.map +1 -0
  648. package/dist/product/CommandMenu.js +134 -0
  649. package/dist/product/CommandMenu.js.map +1 -0
  650. package/dist/product/DetailPane.cjs +154 -12
  651. package/dist/product/DetailPane.d.ts +80 -2
  652. package/dist/product/DetailPane.d.ts.map +1 -1
  653. package/dist/product/DetailPane.js +153 -16
  654. package/dist/product/DetailPane.js.map +1 -1
  655. package/dist/product/Fact.cjs +6 -1
  656. package/dist/product/Fact.d.ts +16 -1
  657. package/dist/product/Fact.d.ts.map +1 -1
  658. package/dist/product/Fact.js +6 -1
  659. package/dist/product/Fact.js.map +1 -1
  660. package/dist/product/Field.cjs +14 -2
  661. package/dist/product/Field.d.ts +16 -1
  662. package/dist/product/Field.d.ts.map +1 -1
  663. package/dist/product/Field.js +14 -2
  664. package/dist/product/Field.js.map +1 -1
  665. package/dist/product/Filters.cjs +61 -9
  666. package/dist/product/Filters.d.ts +37 -6
  667. package/dist/product/Filters.d.ts.map +1 -1
  668. package/dist/product/Filters.js +62 -10
  669. package/dist/product/Filters.js.map +1 -1
  670. package/dist/product/MenuRow.cjs +81 -2
  671. package/dist/product/MenuRow.d.ts +76 -6
  672. package/dist/product/MenuRow.d.ts.map +1 -1
  673. package/dist/product/MenuRow.js +81 -4
  674. package/dist/product/MenuRow.js.map +1 -1
  675. package/dist/product/PrimaryButton.cjs +5 -1
  676. package/dist/product/PrimaryButton.d.ts +8 -0
  677. package/dist/product/PrimaryButton.d.ts.map +1 -1
  678. package/dist/product/PrimaryButton.js +5 -1
  679. package/dist/product/PrimaryButton.js.map +1 -1
  680. package/dist/product/Skeleton.cjs +7 -6
  681. package/dist/product/Skeleton.d.ts +3 -20
  682. package/dist/product/Skeleton.d.ts.map +1 -1
  683. package/dist/product/Skeleton.js +8 -7
  684. package/dist/product/Skeleton.js.map +1 -1
  685. package/dist/product/index.cjs +2 -0
  686. package/dist/product/index.d.ts +1 -0
  687. package/dist/product/index.d.ts.map +1 -1
  688. package/dist/product/index.js +2 -0
  689. package/dist/product/index.js.map +1 -1
  690. package/dist/settings/Section.cjs +11 -2
  691. package/dist/settings/Section.d.ts +8 -1
  692. package/dist/settings/Section.d.ts.map +1 -1
  693. package/dist/settings/Section.js +11 -2
  694. package/dist/settings/Section.js.map +1 -1
  695. package/dist/styles/motion.css +70 -0
  696. package/dist/styles.css +1479 -136
  697. package/dist/theme.css +963 -9
  698. package/package.json +2 -1
@@ -0,0 +1,37 @@
1
+ /**
2
+ * ProgressRing — a small circular progress, for a row that has no room for a
3
+ * bar: the context left in a composer, a sync that is 40% through, a metric.
4
+ *
5
+ * After twenty-ui's ProgressRing (MIT, NOTICE): 14px (`sm`) or 16px (`md`), a
6
+ * 2px stroke starting at 12 o'clock, the track on the strong edge rung and the
7
+ * indicator on the accent (`--primary`, monochrome until an org picks one).
8
+ * The indicator's dash eases over 300ms with round caps (square at 0%, where a
9
+ * round cap would draw a dot). `value={null}` shows a quarter and turns once
10
+ * every 1.5s (`data-motion="orbit"`, still under reduced motion).
11
+ *
12
+ * Children are a label drawn to the LEFT of the ring, 8px from it — a value
13
+ * ("40%") or a name — and also name the progressbar for assistive technology
14
+ * unless `aria-label` says otherwise.
15
+ *
16
+ * A plain <svg>, as Donut and the grid patterns are: the ring is drawn, not
17
+ * laid out, and gui tokens reach it as the custom properties gui emits.
18
+ */
19
+ import { XStack } from '@hanzo/gui';
20
+ import { type ComponentProps, type ReactNode } from 'react';
21
+ declare const SIZE: {
22
+ readonly sm: 14;
23
+ readonly md: 16;
24
+ };
25
+ export type ProgressRingProps = Omit<ComponentProps<typeof XStack>, 'children'> & {
26
+ /** 0–100, or `null` for indeterminate. */
27
+ value: number | null;
28
+ size?: keyof typeof SIZE;
29
+ /** The indicator's colour, any CSS colour or custom property. */
30
+ barColor?: string;
31
+ /** A label drawn left of the ring; names it unless `aria-label` is given. */
32
+ children?: ReactNode;
33
+ 'aria-label'?: string;
34
+ };
35
+ export declare function ProgressRing({ value, size, barColor, children, 'aria-label': label, ...props }: ProgressRingProps): import("react").JSX.Element;
36
+ export {};
37
+ //# sourceMappingURL=progress-ring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress-ring.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/progress-ring.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAe,MAAM,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAS,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGlE,QAAA,MAAM,IAAI;aAAK,EAAE,EAAE,EAAE;aAAE,EAAE,EAAE,EAAE;CAAW,CAAA;AAGxC,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG;IAChF,0CAA0C;IAC1C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,OAAO,IAAI,CAAA;IACxB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,IAAW,EACX,QAA2B,EAC3B,QAAQ,EACR,YAAY,EAAE,KAAK,EACnB,GAAG,KAAK,EACT,EAAE,iBAAiB,+BAoDnB"}
@@ -0,0 +1,36 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * ProgressRing — a small circular progress, for a row that has no room for a
5
+ * bar: the context left in a composer, a sync that is 40% through, a metric.
6
+ *
7
+ * After twenty-ui's ProgressRing (MIT, NOTICE): 14px (`sm`) or 16px (`md`), a
8
+ * 2px stroke starting at 12 o'clock, the track on the strong edge rung and the
9
+ * indicator on the accent (`--primary`, monochrome until an org picks one).
10
+ * The indicator's dash eases over 300ms with round caps (square at 0%, where a
11
+ * round cap would draw a dot). `value={null}` shows a quarter and turns once
12
+ * every 1.5s (`data-motion="orbit"`, still under reduced motion).
13
+ *
14
+ * Children are a label drawn to the LEFT of the ring, 8px from it — a value
15
+ * ("40%") or a name — and also name the progressbar for assistive technology
16
+ * unless `aria-label` says otherwise.
17
+ *
18
+ * A plain <svg>, as Donut and the grid patterns are: the ring is drawn, not
19
+ * laid out, and gui tokens reach it as the custom properties gui emits.
20
+ */
21
+ import { SizableText, XStack } from '@hanzo/gui';
22
+ import { useId } from 'react';
23
+ import { slot } from './slot.js';
24
+ const SIZE = { sm: 14, md: 16 };
25
+ const STROKE = 2;
26
+ export function ProgressRing({ value, size = 'md', barColor = 'var(--primary)', children, 'aria-label': label, ...props }) {
27
+ const id = useId();
28
+ const d = SIZE[size];
29
+ const r = (d - STROKE) / 2;
30
+ const circ = 2 * Math.PI * r;
31
+ const indeterminate = value === null;
32
+ const v = indeterminate ? 25 : Math.max(0, Math.min(100, value));
33
+ const offset = circ * (1 - v / 100);
34
+ return (_jsxs(XStack, { ...slot('progress-ring'), role: "progressbar", "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": indeterminate ? undefined : v, "aria-label": label, "aria-labelledby": label || !children ? undefined : `${id}-label`, display: "inline-flex", items: "center", gap: "$2", shrink: 0, ...props, children: [children ? (_jsx(SizableText, { id: `${id}-label`, size: "$1", color: "$ink", numberOfLines: 1, textAlign: "right", children: children })) : null, _jsxs("svg", { width: d, height: d, viewBox: `0 0 ${d} ${d}`, "aria-hidden": true, "data-motion": indeterminate ? 'orbit' : undefined, style: { flexShrink: 0, transform: 'rotate(-90deg)', transformOrigin: 'center' }, children: [_jsx("circle", { cx: d / 2, cy: d / 2, r: r, fill: "none", stroke: "var(--rim)", strokeWidth: STROKE }), _jsx("circle", { cx: d / 2, cy: d / 2, r: r, fill: "none", stroke: barColor, strokeWidth: STROKE, strokeDasharray: circ, strokeDashoffset: offset, strokeLinecap: v > 0 ? 'round' : 'butt', style: { transition: 'stroke-dashoffset 300ms ease' } })] })] }));
35
+ }
36
+ //# sourceMappingURL=progress-ring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress-ring.js","sourceRoot":"","sources":["../../../src/backends/gui/progress-ring.tsx"],"names":[],"mappings":"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"}
@@ -3,14 +3,38 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.Progress = void 0;
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
- /** Progress — determinate bar; `value` is 0–100. */
6
+ /**
7
+ * Progress — a horizontal bar; `value` is 0–100, or `null` for "working, how
8
+ * far unknown".
9
+ *
10
+ * Two shapes. `pill` (the default, unchanged) is a rounded bar on the edge
11
+ * track. `line` is the record kit's (twenty-ui's ProgressBar, MIT — NOTICE): no
12
+ * track unless asked, square ends unless `ends="round"`, the ink as the fill, and a
13
+ * minimum fill of min(12px, 50%) for any value strictly between 0 and 100 — a
14
+ * job 1% done is visibly started, which a 3px sliver is not. Its width eases
15
+ * over 300ms.
16
+ *
17
+ * `value={null}` on either draws the indeterminate sweep: a quarter-width bar
18
+ * crossing the track every 1.5s (`data-motion="sweep"`, stopped under reduced
19
+ * motion). `size` is the thickness, `md` 8 (both shapes' default) or `sm` 6.
20
+ */
7
21
  const gui_1 = require("@hanzo/gui");
8
22
  const sx_1 = require("../../sx.cjs");
9
23
  const slot_1 = require("./slot.cjs");
10
- const Progress = ({ value, indicatorClassName, indicatorColor, ...props }) => ((0, jsx_runtime_1.jsx)(gui_1.Progress, { ...(0, slot_1.slot)('progress'), value: value ?? 0, height: 8, width: "100%", bg: "$edge", rounded: "$10", overflow: "hidden", ...props, children: (0, jsx_runtime_1.jsx)(gui_1.Progress.Indicator, { ...(0, slot_1.slot)('progress-indicator'),
11
- // Same reason as the slider's fill: `$ink` is the foreground rung, and
12
- // a type colour stretched across a bar is a lit slab. 6.93:1 over the
13
- // track against WCAG 1.4.11's 3:1 — legible with room to spare, and no
14
- // longer competing with the text beside it for attention.
15
- bg: indicatorColor ?? '$soft', ...(0, sx_1.sx)(indicatorClassName) }) }));
24
+ const HEIGHT = { sm: 6, md: 8 };
25
+ const Progress = ({ value, indicatorClassName, indicatorColor, variant = 'pill', size = 'md', ends = 'square', track = false, ...props }) => {
26
+ const indeterminate = value === null;
27
+ const line = variant === 'line';
28
+ const v = Math.max(0, Math.min(100, value ?? 0));
29
+ const rounded = ends === 'round';
30
+ return ((0, jsx_runtime_1.jsx)(gui_1.Progress, { ...(0, slot_1.slot)('progress'), "data-variant": variant, value: indeterminate ? null : v, height: HEIGHT[size], width: "100%", bg: line ? (track ? '$edge' : 'transparent') : '$edge', rounded: line && !rounded ? 0 : '$10', overflow: "hidden", ...props, children: indeterminate ? ((0, jsx_runtime_1.jsx)(gui_1.View, { ...(0, slot_1.slot)('progress-indicator'), "data-motion": "sweep", width: "25%", height: "100%", rounded: line && !rounded ? 0 : '$10', bg: indicatorColor ?? (line ? '$ink' : '$soft'), ...(0, sx_1.sx)(indicatorClassName) })) : line ? ((0, jsx_runtime_1.jsx)(gui_1.View, { ...(0, slot_1.slot)('progress-indicator'), height: "100%", minW: v > 0 && v < 100 ? 'min(12px, 50%)' : 0, rounded: rounded ? '$10' : 0, bg: indicatorColor ?? '$ink',
31
+ // Inline, as Textarea's grown height is: a style prop would mint an
32
+ // atomic class per value, and no sheet can ship a hundred of them.
33
+ style: { width: `${v}%`, transition: 'width 300ms linear' }, ...(0, sx_1.sx)(indicatorClassName) })) : ((0, jsx_runtime_1.jsx)(gui_1.Progress.Indicator, { ...(0, slot_1.slot)('progress-indicator'),
34
+ // Same reason as the slider's fill: `$ink` is the foreground rung, and
35
+ // a type colour stretched across a bar is a lit slab. 6.93:1 over the
36
+ // track against WCAG 1.4.11's 3:1 — legible with room to spare, and no
37
+ // longer competing with the text beside it for attention.
38
+ bg: indicatorColor ?? '$soft', ...(0, sx_1.sx)(indicatorClassName) })) }));
39
+ };
16
40
  exports.Progress = Progress;
@@ -1,7 +1,21 @@
1
- /** Progress — determinate bar; `value` is 0–100. */
1
+ /**
2
+ * Progress — a horizontal bar; `value` is 0–100, or `null` for "working, how
3
+ * far unknown".
4
+ *
5
+ * Two shapes. `pill` (the default, unchanged) is a rounded bar on the edge
6
+ * track. `line` is the record kit's (twenty-ui's ProgressBar, MIT — NOTICE): no
7
+ * track unless asked, square ends unless `ends="round"`, the ink as the fill, and a
8
+ * minimum fill of min(12px, 50%) for any value strictly between 0 and 100 — a
9
+ * job 1% done is visibly started, which a 3px sliver is not. Its width eases
10
+ * over 300ms.
11
+ *
12
+ * `value={null}` on either draws the indeterminate sweep: a quarter-width bar
13
+ * crossing the track every 1.5s (`data-motion="sweep"`, stopped under reduced
14
+ * motion). `size` is the thickness, `md` 8 (both shapes' default) or `sm` 6.
15
+ */
2
16
  import { Progress as GuiProgress } from '@hanzo/gui';
3
17
  import type { ComponentProps } from 'react';
4
- export type ProgressProps = ComponentProps<typeof GuiProgress> & {
18
+ export type ProgressProps = Omit<ComponentProps<typeof GuiProgress>, 'size'> & {
5
19
  /**
6
20
  * Class for the moving bar, not the track. Callers colour the bar by
7
21
  * threshold (green/amber/red), which the track's own className cannot express
@@ -11,7 +25,15 @@ export type ProgressProps = ComponentProps<typeof GuiProgress> & {
11
25
  indicatorClassName?: string;
12
26
  /** The moving bar's colour, a theme token: a status rung where the value is a state. */
13
27
  indicatorColor?: ComponentProps<typeof GuiProgress.Indicator>['bg'];
28
+ /** `pill` (default) or the record kit's `line`. */
29
+ variant?: 'pill' | 'line';
30
+ /** Thickness: `md` 8 (default) or `sm` 6. */
31
+ size?: 'sm' | 'md';
32
+ /** `line` only: `square` ends (default) or `round`. A name of its own, since `rounded` is gui's corner style. */
33
+ ends?: 'square' | 'round';
34
+ /** `line` only: draw the track under the bar. */
35
+ track?: boolean;
14
36
  };
15
- declare const Progress: ({ value, indicatorClassName, indicatorColor, ...props }: ProgressProps) => import("react").JSX.Element;
37
+ declare const Progress: ({ value, indicatorClassName, indicatorColor, variant, size, ends, track, ...props }: ProgressProps) => import("react").JSX.Element;
16
38
  export { Progress };
17
39
  //# sourceMappingURL=progress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/progress.tsx"],"names":[],"mappings":"AAEA,oDAAoD;AACpD,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,YAAY,CAAA;AAEpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAG3C,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,GAAG;IAC/D;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,wFAAwF;IACxF,cAAc,CAAC,EAAE,cAAc,CAAC,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAA;CACpE,CAAA;AAED,QAAA,MAAM,QAAQ,4DAA6D,aAAa,gCAqBvF,CAAA;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/progress.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAQ,MAAM,YAAY,CAAA;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAG3C,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,WAAW,CAAC,EAAE,MAAM,CAAC,GAAG;IAC7E;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,wFAAwF;IACxF,cAAc,CAAC,EAAE,cAAc,CAAC,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAA;IACnE,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IAClB,iHAAiH;IACjH,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;IACzB,iDAAiD;IACjD,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAID,QAAA,MAAM,QAAQ,wFASX,aAAa,gCAoDf,CAAA;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -1,14 +1,38 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- /** Progress — determinate bar; `value` is 0–100. */
4
- import { Progress as GuiProgress } from '@hanzo/gui';
3
+ /**
4
+ * Progress — a horizontal bar; `value` is 0–100, or `null` for "working, how
5
+ * far unknown".
6
+ *
7
+ * Two shapes. `pill` (the default, unchanged) is a rounded bar on the edge
8
+ * track. `line` is the record kit's (twenty-ui's ProgressBar, MIT — NOTICE): no
9
+ * track unless asked, square ends unless `ends="round"`, the ink as the fill, and a
10
+ * minimum fill of min(12px, 50%) for any value strictly between 0 and 100 — a
11
+ * job 1% done is visibly started, which a 3px sliver is not. Its width eases
12
+ * over 300ms.
13
+ *
14
+ * `value={null}` on either draws the indeterminate sweep: a quarter-width bar
15
+ * crossing the track every 1.5s (`data-motion="sweep"`, stopped under reduced
16
+ * motion). `size` is the thickness, `md` 8 (both shapes' default) or `sm` 6.
17
+ */
18
+ import { Progress as GuiProgress, View } from '@hanzo/gui';
5
19
  import { sx } from '../../sx.js';
6
20
  import { slot } from './slot.js';
7
- const Progress = ({ value, indicatorClassName, indicatorColor, ...props }) => (_jsx(GuiProgress, { ...slot('progress'), value: value ?? 0, height: 8, width: "100%", bg: "$edge", rounded: "$10", overflow: "hidden", ...props, children: _jsx(GuiProgress.Indicator, { ...slot('progress-indicator'),
8
- // Same reason as the slider's fill: `$ink` is the foreground rung, and
9
- // a type colour stretched across a bar is a lit slab. 6.93:1 over the
10
- // track against WCAG 1.4.11's 3:1 — legible with room to spare, and no
11
- // longer competing with the text beside it for attention.
12
- bg: indicatorColor ?? '$soft', ...sx(indicatorClassName) }) }));
21
+ const HEIGHT = { sm: 6, md: 8 };
22
+ const Progress = ({ value, indicatorClassName, indicatorColor, variant = 'pill', size = 'md', ends = 'square', track = false, ...props }) => {
23
+ const indeterminate = value === null;
24
+ const line = variant === 'line';
25
+ const v = Math.max(0, Math.min(100, value ?? 0));
26
+ const rounded = ends === 'round';
27
+ return (_jsx(GuiProgress, { ...slot('progress'), "data-variant": variant, value: indeterminate ? null : v, height: HEIGHT[size], width: "100%", bg: line ? (track ? '$edge' : 'transparent') : '$edge', rounded: line && !rounded ? 0 : '$10', overflow: "hidden", ...props, children: indeterminate ? (_jsx(View, { ...slot('progress-indicator'), "data-motion": "sweep", width: "25%", height: "100%", rounded: line && !rounded ? 0 : '$10', bg: indicatorColor ?? (line ? '$ink' : '$soft'), ...sx(indicatorClassName) })) : line ? (_jsx(View, { ...slot('progress-indicator'), height: "100%", minW: v > 0 && v < 100 ? 'min(12px, 50%)' : 0, rounded: rounded ? '$10' : 0, bg: indicatorColor ?? '$ink',
28
+ // Inline, as Textarea's grown height is: a style prop would mint an
29
+ // atomic class per value, and no sheet can ship a hundred of them.
30
+ style: { width: `${v}%`, transition: 'width 300ms linear' }, ...sx(indicatorClassName) })) : (_jsx(GuiProgress.Indicator, { ...slot('progress-indicator'),
31
+ // Same reason as the slider's fill: `$ink` is the foreground rung, and
32
+ // a type colour stretched across a bar is a lit slab. 6.93:1 over the
33
+ // track against WCAG 1.4.11's 3:1 — legible with room to spare, and no
34
+ // longer competing with the text beside it for attention.
35
+ bg: indicatorColor ?? '$soft', ...sx(indicatorClassName) })) }));
36
+ };
13
37
  export { Progress };
14
38
  //# sourceMappingURL=progress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../src/backends/gui/progress.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,oDAAoD;AACpD,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAA;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAc7B,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,GAAG,KAAK,EAAiB,EAAE,EAAE,CAAC,CAC3F,KAAC,WAAW,OACN,IAAI,CAAC,UAAU,CAAC,EACpB,KAAK,EAAE,KAAK,IAAI,CAAC,EACjB,MAAM,EAAE,CAAC,EACT,KAAK,EAAC,MAAM,EACZ,EAAE,EAAC,OAAO,EACV,OAAO,EAAC,KAAK,EACb,QAAQ,EAAC,QAAQ,KACb,KAAK,YAET,KAAC,WAAW,CAAC,SAAS,OAChB,IAAI,CAAC,oBAAoB,CAAC;QAC9B,uEAAuE;QACvE,sEAAsE;QACtE,uEAAuE;QACvE,0DAA0D;QAC1D,EAAE,EAAE,cAAc,IAAI,OAAO,KACzB,EAAE,CAAC,kBAAkB,CAAC,GAC1B,GACU,CACf,CAAA;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../src/backends/gui/progress.tsx"],"names":[],"mappings":"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"}
@@ -30,16 +30,43 @@ const jsx_runtime_1 = require("react/jsx-runtime");
30
30
  * `orientation` for those two and never forwards it, so the frame's own
31
31
  * `orientation` variant never runs and the group stays a COLUMN while
32
32
  * announcing itself a row. The direction is restored here, from the same prop.
33
+ *
34
+ * Two looks. With no `size`, an item is the 16px ring and `$ink` dot it has
35
+ * always been. Naming `size` (sm 16 | md 18), or a `<Density value="compact">`
36
+ * around it, draws twenty-ui's radio (MIT, NOTICE): a quiet ring at rest that
37
+ * FILLS when checked — the monochrome accent (`--primary`, which an org's accent
38
+ * restates) round a dot in its foreground — a 4px hover halo, and the 32%
39
+ * register of a disabled option.
33
40
  */
34
41
  const gui_1 = require("@hanzo/gui");
35
42
  const slot_1 = require("./slot.cjs");
36
43
  const gesture_1 = require("./gesture.cjs");
44
+ const density_1 = require("./density.cjs");
37
45
  /** 16px control, 8px dot — the Checkbox's box, made round. */
38
46
  const BOX = 16;
39
47
  const DOT = 8;
48
+ /** The record radio per size: the ring with its edge, and the dot inside a checked one. */
49
+ const RECORD = { sm: { ring: 16, dot: 6 }, md: { ring: 18, dot: 8 } };
40
50
  const RadioGroup = ({ orientation = 'vertical', ...props }) => ((0, jsx_runtime_1.jsx)(gui_1.RadioGroup, { ...(0, slot_1.slot)('radio-group'), orientation: orientation, flexDirection: orientation === 'horizontal' ? 'row' : 'column', gap: "$2", ...props }));
41
51
  exports.RadioGroup = RadioGroup;
42
- const RadioGroupItem = ({ disabled, children, ...props }) => ((0, jsx_runtime_1.jsxs)(gui_1.RadioGroup.Item, { ...(0, slot_1.slot)('radio-group-item'), width: BOX, height: BOX, flexShrink: 0, borderRadius: 1000, borderWidth: 1,
52
+ const RadioGroupItem = ({ size, ...props }) => {
53
+ const compact = (0, density_1.useDensity)() === 'compact';
54
+ const record = size ?? (compact ? 'sm' : undefined);
55
+ return record ? (0, jsx_runtime_1.jsx)(RecordItem, { size: record, ...props }) : (0, jsx_runtime_1.jsx)(PlainItem, { ...props });
56
+ };
57
+ exports.RadioGroupItem = RadioGroupItem;
58
+ /**
59
+ * The record radio. The fill is the INDICATOR, laid over the ring edge to
60
+ * edge: it mounts only while checked, so presence is the state here too, and
61
+ * no part of the item has to know which state it is in to be drawn.
62
+ */
63
+ const RecordItem = ({ size, disabled, children, ...props }) => {
64
+ const dim = RECORD[size];
65
+ return ((0, jsx_runtime_1.jsxs)(gui_1.RadioGroup.Item, { ...(0, slot_1.slot)('radio-group-item'), "data-size": size, width: dim.ring, height: dim.ring, flexShrink: 0, padding: 0, borderRadius: 1000, borderWidth: 1, borderColor: "$aside", backgroundColor: "transparent", scale: 0.95, disabled: disabled, opacity: disabled ? 0.32 : 1, cursor: disabled ? 'not-allowed' : 'pointer', ...(disabled ? null : { hoverStyle: { bg: '$hover', boxShadow: '0 0 0 4px var(--hover)' } }), ...(0, gesture_1.touch)(dim.ring), ...props, children: [(0, jsx_runtime_1.jsx)(gui_1.RadioGroup.Indicator, { ...(0, slot_1.slot)('radio-group-indicator'), position: "absolute", t: -1, l: -1, width: dim.ring, height: dim.ring, borderRadius: 1000, backgroundColor: "var(--primary)", items: "center", justify: "center",
66
+ // 1.05 at the item's 0.95, as twenty-ui grows a checked radio.
67
+ scale: 1.1, children: (0, jsx_runtime_1.jsx)(gui_1.XStack, { width: dim.dot, height: dim.dot, rounded: 1000, bg: "var(--primary-foreground)" }) }), children] }));
68
+ };
69
+ const PlainItem = ({ disabled, children, ...props }) => ((0, jsx_runtime_1.jsxs)(gui_1.RadioGroup.Item, { ...(0, slot_1.slot)('radio-group-item'), width: BOX, height: BOX, flexShrink: 0, borderRadius: 1000, borderWidth: 1,
43
70
  // A CONTROL boundary, not a surface hairline. `$borderColor` is 10% white —
44
71
  // right for a card edge sitting on its own fill, and 1.26:1 against the
45
72
  // ground, where WCAG 1.4.11 asks 3:1 for the visible boundary of a control.
@@ -50,4 +77,3 @@ const RadioGroupItem = ({ disabled, children, ...props }) => ((0, jsx_runtime_1.
50
77
  // pointer events without dimming: a dead control that looks live invites a
51
78
  // click that does nothing. Same treatment as Switch.
52
79
  disabled: disabled, opacity: disabled ? 0.5 : 1, cursor: disabled ? 'not-allowed' : 'pointer', ...(0, gesture_1.touch)(BOX), ...props, children: [(0, jsx_runtime_1.jsx)(gui_1.RadioGroup.Indicator, { ...(0, slot_1.slot)('radio-group-indicator'), width: DOT, height: DOT, borderRadius: 1000, backgroundColor: "$ink" }), children] }));
53
- exports.RadioGroupItem = RadioGroupItem;
@@ -25,12 +25,30 @@
25
25
  * `orientation` for those two and never forwards it, so the frame's own
26
26
  * `orientation` variant never runs and the group stays a COLUMN while
27
27
  * announcing itself a row. The direction is restored here, from the same prop.
28
+ *
29
+ * Two looks. With no `size`, an item is the 16px ring and `$ink` dot it has
30
+ * always been. Naming `size` (sm 16 | md 18), or a `<Density value="compact">`
31
+ * around it, draws twenty-ui's radio (MIT, NOTICE): a quiet ring at rest that
32
+ * FILLS when checked — the monochrome accent (`--primary`, which an org's accent
33
+ * restates) round a dot in its foreground — a 4px hover halo, and the 32%
34
+ * register of a disabled option.
28
35
  */
29
36
  import { RadioGroup as GuiRadioGroup } from '@hanzo/gui';
30
37
  import type { ComponentProps } from 'react';
38
+ export type RadioSize = 'sm' | 'md';
31
39
  export type RadioGroupProps = ComponentProps<typeof GuiRadioGroup>;
32
- export type RadioGroupItemProps = ComponentProps<typeof GuiRadioGroup.Item>;
40
+ type GuiItemProps = ComponentProps<typeof GuiRadioGroup.Item>;
41
+ /**
42
+ * gui's item props with its `size` (a gui size token) replaced by the record
43
+ * size. `Omit` over gui's props loses `value` from the union it is built from,
44
+ * so `value` is restated — it is the one prop an item cannot do without.
45
+ */
46
+ export type RadioGroupItemProps = Omit<GuiItemProps, 'size' | 'value'> & {
47
+ value: string;
48
+ /** The record radio: `sm` a 16px ring (the default under compact) or `md` 18px. */
49
+ size?: RadioSize;
50
+ };
33
51
  declare const RadioGroup: ({ orientation, ...props }: RadioGroupProps) => import("react").JSX.Element;
34
- declare const RadioGroupItem: ({ disabled, children, ...props }: RadioGroupItemProps) => import("react").JSX.Element;
52
+ declare const RadioGroupItem: ({ size, ...props }: RadioGroupItemProps) => import("react").JSX.Element;
35
53
  export { RadioGroup, RadioGroupItem };
36
54
  //# sourceMappingURL=radio-group.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/radio-group.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAQ3C,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,aAAa,CAAC,CAAA;AAClE,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAA;AAE3E,QAAA,MAAM,UAAU,8BAA4C,eAAe,gCAQ1E,CAAA;AAED,QAAA,MAAM,cAAc,qCAAsC,mBAAmB,gCAqC5E,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/radio-group.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EAAE,UAAU,IAAI,aAAa,EAAU,MAAM,YAAY,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAS3C,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAA;AAEnC,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,aAAa,CAAC,CAAA;AAClE,KAAK,YAAY,GAAG,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAA;AAE7D;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG;IACvE,KAAK,EAAE,MAAM,CAAA;IACb,mFAAmF;IACnF,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB,CAAA;AAKD,QAAA,MAAM,UAAU,8BAA4C,eAAe,gCAQ1E,CAAA;AAED,QAAA,MAAM,cAAc,uBAAwB,mBAAmB,gCAI9D,CAAA;AAyFD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAA"}
@@ -27,15 +27,41 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
27
27
  * `orientation` for those two and never forwards it, so the frame's own
28
28
  * `orientation` variant never runs and the group stays a COLUMN while
29
29
  * announcing itself a row. The direction is restored here, from the same prop.
30
+ *
31
+ * Two looks. With no `size`, an item is the 16px ring and `$ink` dot it has
32
+ * always been. Naming `size` (sm 16 | md 18), or a `<Density value="compact">`
33
+ * around it, draws twenty-ui's radio (MIT, NOTICE): a quiet ring at rest that
34
+ * FILLS when checked — the monochrome accent (`--primary`, which an org's accent
35
+ * restates) round a dot in its foreground — a 4px hover halo, and the 32%
36
+ * register of a disabled option.
30
37
  */
31
- import { RadioGroup as GuiRadioGroup } from '@hanzo/gui';
38
+ import { RadioGroup as GuiRadioGroup, XStack } from '@hanzo/gui';
32
39
  import { slot } from './slot.js';
33
40
  import { touch } from './gesture.js';
41
+ import { useDensity } from './density.js';
34
42
  /** 16px control, 8px dot — the Checkbox's box, made round. */
35
43
  const BOX = 16;
36
44
  const DOT = 8;
45
+ /** The record radio per size: the ring with its edge, and the dot inside a checked one. */
46
+ const RECORD = { sm: { ring: 16, dot: 6 }, md: { ring: 18, dot: 8 } };
37
47
  const RadioGroup = ({ orientation = 'vertical', ...props }) => (_jsx(GuiRadioGroup, { ...slot('radio-group'), orientation: orientation, flexDirection: orientation === 'horizontal' ? 'row' : 'column', gap: "$2", ...props }));
38
- const RadioGroupItem = ({ disabled, children, ...props }) => (_jsxs(GuiRadioGroup.Item, { ...slot('radio-group-item'), width: BOX, height: BOX, flexShrink: 0, borderRadius: 1000, borderWidth: 1,
48
+ const RadioGroupItem = ({ size, ...props }) => {
49
+ const compact = useDensity() === 'compact';
50
+ const record = size ?? (compact ? 'sm' : undefined);
51
+ return record ? _jsx(RecordItem, { size: record, ...props }) : _jsx(PlainItem, { ...props });
52
+ };
53
+ /**
54
+ * The record radio. The fill is the INDICATOR, laid over the ring edge to
55
+ * edge: it mounts only while checked, so presence is the state here too, and
56
+ * no part of the item has to know which state it is in to be drawn.
57
+ */
58
+ const RecordItem = ({ size, disabled, children, ...props }) => {
59
+ const dim = RECORD[size];
60
+ return (_jsxs(GuiRadioGroup.Item, { ...slot('radio-group-item'), "data-size": size, width: dim.ring, height: dim.ring, flexShrink: 0, padding: 0, borderRadius: 1000, borderWidth: 1, borderColor: "$aside", backgroundColor: "transparent", scale: 0.95, disabled: disabled, opacity: disabled ? 0.32 : 1, cursor: disabled ? 'not-allowed' : 'pointer', ...(disabled ? null : { hoverStyle: { bg: '$hover', boxShadow: '0 0 0 4px var(--hover)' } }), ...touch(dim.ring), ...props, children: [_jsx(GuiRadioGroup.Indicator, { ...slot('radio-group-indicator'), position: "absolute", t: -1, l: -1, width: dim.ring, height: dim.ring, borderRadius: 1000, backgroundColor: "var(--primary)", items: "center", justify: "center",
61
+ // 1.05 at the item's 0.95, as twenty-ui grows a checked radio.
62
+ scale: 1.1, children: _jsx(XStack, { width: dim.dot, height: dim.dot, rounded: 1000, bg: "var(--primary-foreground)" }) }), children] }));
63
+ };
64
+ const PlainItem = ({ disabled, children, ...props }) => (_jsxs(GuiRadioGroup.Item, { ...slot('radio-group-item'), width: BOX, height: BOX, flexShrink: 0, borderRadius: 1000, borderWidth: 1,
39
65
  // A CONTROL boundary, not a surface hairline. `$borderColor` is 10% white —
40
66
  // right for a card edge sitting on its own fill, and 1.26:1 against the
41
67
  // ground, where WCAG 1.4.11 asks 3:1 for the visible boundary of a control.
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../../src/backends/gui/radio-group.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,YAAY,CAAA;AAExD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAEjC,8DAA8D;AAC9D,MAAM,GAAG,GAAG,EAAE,CAAA;AACd,MAAM,GAAG,GAAG,CAAC,CAAA;AAKb,MAAM,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,UAAU,EAAE,GAAG,KAAK,EAAmB,EAAE,EAAE,CAAC,CAC9E,KAAC,aAAa,OACR,IAAI,CAAC,aAAa,CAAC,EACvB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAC9D,GAAG,EAAC,IAAI,KACJ,KAAK,GACT,CACH,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAuB,EAAE,EAAE,CAAC,CAChF,MAAC,aAAa,CAAC,IAAI,OACb,IAAI,CAAC,kBAAkB,CAAC,EAC5B,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,CAAC,EACb,YAAY,EAAE,IAAI,EAClB,WAAW,EAAE,CAAC;IACd,4EAA4E;IAC5E,wEAAwE;IACxE,4EAA4E;IAC5E,uEAAuE;IACvE,4EAA4E;IAC5E,WAAW,EAAC,QAAQ,EACpB,eAAe,EAAC,aAAa;IAC7B,uEAAuE;IACvE,2EAA2E;IAC3E,qDAAqD;IACrD,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAC3B,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,KACxC,KAAK,CAAC,GAAG,CAAC,KACV,KAAK,aAMT,KAAC,aAAa,CAAC,SAAS,OAClB,IAAI,CAAC,uBAAuB,CAAC,EACjC,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,GAAG,EACX,YAAY,EAAE,IAAI,EAClB,eAAe,EAAC,MAAM,GACtB,EACD,QAAQ,IACU,CACtB,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"radio-group.js","sourceRoot":"","sources":["../../../src/backends/gui/radio-group.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ 'use client';"use strict";
2
+ 'use client';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Segment = exports.useOpen = void 0;
5
+ exports.SearchList = SearchList;
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ /**
8
+ * SearchList — the searchable list the record kit's pickers open: a currency, a
9
+ * calling code, a country.
10
+ *
11
+ * Composition, as `Combobox` is: `Popover` owns the open state and the panel,
12
+ * `Command` owns the search and the cursor — typed text filters the rows, the
13
+ * arrows move, Enter picks, Escape closes. A row is matched on its label and on
14
+ * its keywords, so "usd", "dollar" and "$" all find the US dollar.
15
+ *
16
+ * The panel is portalled, and a portal does not carry React context across, so
17
+ * the density the trigger sits in is read here and given again inside, as
18
+ * `PortalTheme` does for the theme. Rows are the record row: 32px, 4px corners.
19
+ * After twenty-ui's searchable picker dropdown (MIT, NOTICE).
20
+ */
21
+ const gui_1 = require("@hanzo/gui");
22
+ const lucide_icons_2_1 = require("@hanzogui/lucide-icons-2");
23
+ const react_1 = require("react");
24
+ const command_1 = require("./command.cjs");
25
+ const control_1 = require("./control.cjs");
26
+ const density_1 = require("./density.cjs");
27
+ const gesture_1 = require("./gesture.cjs");
28
+ const input_group_1 = require("./input-group.cjs");
29
+ const popover_1 = require("./popover.cjs");
30
+ const press_1 = require("./press.cjs");
31
+ const slot_1 = require("./slot.cjs");
32
+ /** Open state, controlled or not: `open` wins when given, `onOpenChange` hears every change. */
33
+ const useOpen = (open, defaultOpen = false, onOpenChange) => {
34
+ const [own, setOwn] = (0, react_1.useState)(defaultOpen);
35
+ const shown = open ?? own;
36
+ const set = (next) => {
37
+ if (open === undefined)
38
+ setOwn(next);
39
+ onOpenChange?.(next);
40
+ };
41
+ return [shown, set];
42
+ };
43
+ exports.useOpen = useOpen;
44
+ /**
45
+ * The start segment of an `InputGroup`: a picker trigger that is part of the
46
+ * field rather than a box beside it. Transparent, as tall as the group's inside,
47
+ * flush with its start edge (it takes back the group's gutter), with a hairline
48
+ * divider on its end side and the group's start corners. A real `<button>`, so
49
+ * Enter and Space open it with no key handling of ours; its focus ring is drawn
50
+ * inside, where the group's edge would otherwise cover it.
51
+ */
52
+ exports.Segment = (0, react_1.forwardRef)(function Segment({ disabled, open, label, children, ...props }, ref) {
53
+ const group = (0, react_1.useContext)(input_group_1.GroupContext);
54
+ const density = (0, density_1.useDensity)();
55
+ const box = control_1.BOX[group?.size ?? (0, density_1.fieldSize)(undefined, density)];
56
+ return ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ref: ref, ...(0, slot_1.slot)('field-segment'), render: "button", ...{ type: 'button', disabled, 'aria-expanded': !!open, ...(label ? { 'aria-label': label } : null) }, height: box.h - 2, ml: group ? -box.gutter : 0, shrink: 0, items: "center", gap: "$1", px: "$2", bg: "transparent", borderWidth: 0, borderRightWidth: 1, borderColor: "$borderColor", borderTopLeftRadius: "$3", borderBottomLeftRadius: "$3", cursor: disabled ? 'not-allowed' : 'pointer', opacity: disabled ? 0.5 : 1, hoverStyle: disabled ? undefined : { bg: '$hover' }, focusVisibleStyle: { ...press_1.RING, outlineOffset: -2 }, ...props, children: children }));
57
+ });
58
+ const ROW = 32;
59
+ function SearchList({ trigger, open, onOpenChange, options, value, onPick, searchLabel = 'Search', emptyLabel = 'No results', width = 240, }) {
60
+ const density = (0, density_1.useDensity)();
61
+ return ((0, jsx_runtime_1.jsxs)(popover_1.Popover, { open: open, onOpenChange: onOpenChange, placement: "bottom-start", children: [(0, jsx_runtime_1.jsx)(popover_1.PopoverTrigger, { asChild: true, children: trigger }), (0, jsx_runtime_1.jsx)(popover_1.PopoverContent, { "data-slot": "search-list", p: 0, width: width, sideOffset: 8, overflow: "hidden", children: (0, jsx_runtime_1.jsx)(density_1.Density, { value: density, children: (0, jsx_runtime_1.jsxs)(command_1.Command, { value: value ?? undefined, children: [(0, jsx_runtime_1.jsx)(command_1.CommandInput, { placeholder: searchLabel, "aria-label": searchLabel, autoFocus: true }), (0, jsx_runtime_1.jsxs)(command_1.CommandList, { p: "$1", children: [(0, jsx_runtime_1.jsx)(command_1.CommandEmpty, { children: emptyLabel }), options.map((o) => ((0, jsx_runtime_1.jsxs)(command_1.CommandItem, { value: o.value, keywords: [o.label, ...(o.keywords ?? [])], disabled: o.disabled, minH: ROW, px: "$1", rounded: "$xs", ...(0, gesture_1.touch)(ROW, 44, 'y'), onSelect: (picked) => onPick(picked), ...{ 'aria-selected': o.value === value }, children: [o.start ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { shrink: 0, items: "center", children: o.start })) : null, (0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", color: "$ink", flex: 1, minW: 0, numberOfLines: 1, children: o.label }), o.end != null ? ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", color: "$hint", shrink: 0, children: o.end })) : null, (0, jsx_runtime_1.jsx)(lucide_icons_2_1.Check, { size: 16, opacity: o.value === value ? 1 : 0, shrink: 0 })] }, o.value)))] })] }) }) })] }));
62
+ }
@@ -0,0 +1,65 @@
1
+ /**
2
+ * SearchList — the searchable list the record kit's pickers open: a currency, a
3
+ * calling code, a country.
4
+ *
5
+ * Composition, as `Combobox` is: `Popover` owns the open state and the panel,
6
+ * `Command` owns the search and the cursor — typed text filters the rows, the
7
+ * arrows move, Enter picks, Escape closes. A row is matched on its label and on
8
+ * its keywords, so "usd", "dollar" and "$" all find the US dollar.
9
+ *
10
+ * The panel is portalled, and a portal does not carry React context across, so
11
+ * the density the trigger sits in is read here and given again inside, as
12
+ * `PortalTheme` does for the theme. Rows are the record row: 32px, 4px corners.
13
+ * After twenty-ui's searchable picker dropdown (MIT, NOTICE).
14
+ */
15
+ import { XStack } from '@hanzo/gui';
16
+ import { type ComponentProps, type ReactElement, type ReactNode } from 'react';
17
+ /** Open state, controlled or not: `open` wins when given, `onOpenChange` hears every change. */
18
+ export declare const useOpen: (open?: boolean, defaultOpen?: boolean, onOpenChange?: (open: boolean) => void) => readonly [boolean, (next: boolean) => void];
19
+ export type SegmentProps = Omit<ComponentProps<typeof XStack>, 'children'> & {
20
+ disabled?: boolean;
21
+ /** Whether the list it opens is open. */
22
+ open?: boolean;
23
+ /**
24
+ * Its name to assistive technology: what it picks and what is picked. Omit it
25
+ * when the segment's own (visually hidden) text names it.
26
+ */
27
+ label?: string;
28
+ children?: ReactNode;
29
+ };
30
+ /**
31
+ * The start segment of an `InputGroup`: a picker trigger that is part of the
32
+ * field rather than a box beside it. Transparent, as tall as the group's inside,
33
+ * flush with its start edge (it takes back the group's gutter), with a hairline
34
+ * divider on its end side and the group's start corners. A real `<button>`, so
35
+ * Enter and Space open it with no key handling of ours; its focus ring is drawn
36
+ * inside, where the group's edge would otherwise cover it.
37
+ */
38
+ export declare const Segment: import("react").ForwardRefExoticComponent<Omit<SegmentProps, "ref"> & import("react").RefAttributes<any>>;
39
+ export type SearchOption = {
40
+ value: string;
41
+ label: string;
42
+ /** More text the search matches: a code, a symbol, a calling code. */
43
+ keywords?: string[];
44
+ disabled?: boolean;
45
+ /** Before the label: a flag, an icon. */
46
+ start?: ReactNode;
47
+ /** After the label, dimmed: a code, a calling code. */
48
+ end?: ReactNode;
49
+ };
50
+ export type SearchListProps = {
51
+ /** The element that opens the list. It receives the press and the ref. */
52
+ trigger: ReactElement;
53
+ open: boolean;
54
+ onOpenChange: (open: boolean) => void;
55
+ options: SearchOption[];
56
+ /** The chosen value, marked with a check and highlighted on open. */
57
+ value?: string | null;
58
+ onPick: (value: string) => void;
59
+ searchLabel?: string;
60
+ emptyLabel?: string;
61
+ /** The panel's width; 240 by default. */
62
+ width?: number;
63
+ };
64
+ export declare function SearchList({ trigger, open, onOpenChange, options, value, onPick, searchLabel, emptyLabel, width, }: SearchListProps): import("react").JSX.Element;
65
+ //# sourceMappingURL=search-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-list.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/search-list.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAe,MAAM,EAAmB,MAAM,YAAY,CAAA;AAEjE,OAAO,EAAoC,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAUhH,gGAAgG;AAChG,eAAO,MAAM,OAAO,UAAW,OAAO,wCAAsC,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,+BAG9E,OAAO,UAK3B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG;IAC3E,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,yCAAyC;IACzC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,2GAoClB,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,yCAAyC;IACzC,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,uDAAuD;IACvD,GAAG,CAAC,EAAE,SAAS,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,0EAA0E;IAC1E,OAAO,EAAE,YAAY,CAAA;IACrB,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAID,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,KAAK,EACL,MAAM,EACN,WAAsB,EACtB,UAAyB,EACzB,KAAW,GACZ,EAAE,eAAe,+BA8CjB"}
@@ -0,0 +1,58 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * SearchList — the searchable list the record kit's pickers open: a currency, a
5
+ * calling code, a country.
6
+ *
7
+ * Composition, as `Combobox` is: `Popover` owns the open state and the panel,
8
+ * `Command` owns the search and the cursor — typed text filters the rows, the
9
+ * arrows move, Enter picks, Escape closes. A row is matched on its label and on
10
+ * its keywords, so "usd", "dollar" and "$" all find the US dollar.
11
+ *
12
+ * The panel is portalled, and a portal does not carry React context across, so
13
+ * the density the trigger sits in is read here and given again inside, as
14
+ * `PortalTheme` does for the theme. Rows are the record row: 32px, 4px corners.
15
+ * After twenty-ui's searchable picker dropdown (MIT, NOTICE).
16
+ */
17
+ import { SizableText, XStack } from '@hanzo/gui';
18
+ import { Check } from '@hanzogui/lucide-icons-2';
19
+ import { forwardRef, useContext, useState } from 'react';
20
+ import { Command, CommandEmpty, CommandInput, CommandItem, CommandList } from './command.js';
21
+ import { BOX } from './control.js';
22
+ import { Density, fieldSize, useDensity } from './density.js';
23
+ import { touch } from './gesture.js';
24
+ import { GroupContext } from './input-group.js';
25
+ import { Popover, PopoverContent, PopoverTrigger } from './popover.js';
26
+ import { RING } from './press.js';
27
+ import { slot } from './slot.js';
28
+ /** Open state, controlled or not: `open` wins when given, `onOpenChange` hears every change. */
29
+ export const useOpen = (open, defaultOpen = false, onOpenChange) => {
30
+ const [own, setOwn] = useState(defaultOpen);
31
+ const shown = open ?? own;
32
+ const set = (next) => {
33
+ if (open === undefined)
34
+ setOwn(next);
35
+ onOpenChange?.(next);
36
+ };
37
+ return [shown, set];
38
+ };
39
+ /**
40
+ * The start segment of an `InputGroup`: a picker trigger that is part of the
41
+ * field rather than a box beside it. Transparent, as tall as the group's inside,
42
+ * flush with its start edge (it takes back the group's gutter), with a hairline
43
+ * divider on its end side and the group's start corners. A real `<button>`, so
44
+ * Enter and Space open it with no key handling of ours; its focus ring is drawn
45
+ * inside, where the group's edge would otherwise cover it.
46
+ */
47
+ export const Segment = /* @__PURE__ */ forwardRef(function Segment({ disabled, open, label, children, ...props }, ref) {
48
+ const group = useContext(GroupContext);
49
+ const density = useDensity();
50
+ const box = BOX[group?.size ?? fieldSize(undefined, density)];
51
+ return (_jsx(XStack, { ref: ref, ...slot('field-segment'), render: "button", ...{ type: 'button', disabled, 'aria-expanded': !!open, ...(label ? { 'aria-label': label } : null) }, height: box.h - 2, ml: group ? -box.gutter : 0, shrink: 0, items: "center", gap: "$1", px: "$2", bg: "transparent", borderWidth: 0, borderRightWidth: 1, borderColor: "$borderColor", borderTopLeftRadius: "$3", borderBottomLeftRadius: "$3", cursor: disabled ? 'not-allowed' : 'pointer', opacity: disabled ? 0.5 : 1, hoverStyle: disabled ? undefined : { bg: '$hover' }, focusVisibleStyle: { ...RING, outlineOffset: -2 }, ...props, children: children }));
52
+ });
53
+ const ROW = 32;
54
+ export function SearchList({ trigger, open, onOpenChange, options, value, onPick, searchLabel = 'Search', emptyLabel = 'No results', width = 240, }) {
55
+ const density = useDensity();
56
+ return (_jsxs(Popover, { open: open, onOpenChange: onOpenChange, placement: "bottom-start", children: [_jsx(PopoverTrigger, { asChild: true, children: trigger }), _jsx(PopoverContent, { "data-slot": "search-list", p: 0, width: width, sideOffset: 8, overflow: "hidden", children: _jsx(Density, { value: density, children: _jsxs(Command, { value: value ?? undefined, children: [_jsx(CommandInput, { placeholder: searchLabel, "aria-label": searchLabel, autoFocus: true }), _jsxs(CommandList, { p: "$1", children: [_jsx(CommandEmpty, { children: emptyLabel }), options.map((o) => (_jsxs(CommandItem, { value: o.value, keywords: [o.label, ...(o.keywords ?? [])], disabled: o.disabled, minH: ROW, px: "$1", rounded: "$xs", ...touch(ROW, 44, 'y'), onSelect: (picked) => onPick(picked), ...{ 'aria-selected': o.value === value }, children: [o.start ? (_jsx(XStack, { shrink: 0, items: "center", children: o.start })) : null, _jsx(SizableText, { size: "$2", color: "$ink", flex: 1, minW: 0, numberOfLines: 1, children: o.label }), o.end != null ? (_jsx(SizableText, { size: "$2", color: "$hint", shrink: 0, children: o.end })) : null, _jsx(Check, { size: 16, opacity: o.value === value ? 1 : 0, shrink: 0 })] }, o.value)))] })] }) }) })] }));
57
+ }
58
+ //# sourceMappingURL=search-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-list.js","sourceRoot":"","sources":["../../../src/backends/gui/search-list.tsx"],"names":[],"mappings":"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"}