@hanzo/ui 8.27.91 → 8.29.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 (758) 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-picker.cjs +194 -0
  139. package/dist/backends/gui/icon-picker.d.ts +51 -0
  140. package/dist/backends/gui/icon-picker.d.ts.map +1 -0
  141. package/dist/backends/gui/icon-picker.js +155 -0
  142. package/dist/backends/gui/icon-picker.js.map +1 -0
  143. package/dist/backends/gui/icon-tile.cjs +36 -0
  144. package/dist/backends/gui/icon-tile.d.ts +26 -0
  145. package/dist/backends/gui/icon-tile.d.ts.map +1 -0
  146. package/dist/backends/gui/icon-tile.js +32 -0
  147. package/dist/backends/gui/icon-tile.js.map +1 -0
  148. package/dist/backends/gui/icons.cjs +381 -0
  149. package/dist/backends/gui/icons.d.ts +53 -0
  150. package/dist/backends/gui/icons.d.ts.map +1 -0
  151. package/dist/backends/gui/icons.js +377 -0
  152. package/dist/backends/gui/icons.js.map +1 -0
  153. package/dist/backends/gui/image-input.cjs +78 -0
  154. package/dist/backends/gui/image-input.d.ts +32 -0
  155. package/dist/backends/gui/image-input.d.ts.map +1 -0
  156. package/dist/backends/gui/image-input.js +74 -0
  157. package/dist/backends/gui/image-input.js.map +1 -0
  158. package/dist/backends/gui/index.cjs +105 -7
  159. package/dist/backends/gui/index.d.ts +47 -2
  160. package/dist/backends/gui/index.d.ts.map +1 -1
  161. package/dist/backends/gui/index.js +37 -1
  162. package/dist/backends/gui/index.js.map +1 -1
  163. package/dist/backends/gui/input-group.cjs +49 -0
  164. package/dist/backends/gui/input-group.d.ts +46 -0
  165. package/dist/backends/gui/input-group.d.ts.map +1 -0
  166. package/dist/backends/gui/input-group.js +46 -0
  167. package/dist/backends/gui/input-group.js.map +1 -0
  168. package/dist/backends/gui/input.cjs +32 -4
  169. package/dist/backends/gui/input.d.ts +5 -1
  170. package/dist/backends/gui/input.d.ts.map +1 -1
  171. package/dist/backends/gui/input.js +33 -5
  172. package/dist/backends/gui/input.js.map +1 -1
  173. package/dist/backends/gui/item.cjs +34 -2
  174. package/dist/backends/gui/item.d.ts +21 -5
  175. package/dist/backends/gui/item.d.ts.map +1 -1
  176. package/dist/backends/gui/item.js +35 -3
  177. package/dist/backends/gui/item.js.map +1 -1
  178. package/dist/backends/gui/json-tree.cjs +103 -15
  179. package/dist/backends/gui/json-tree.d.ts +39 -3
  180. package/dist/backends/gui/json-tree.d.ts.map +1 -1
  181. package/dist/backends/gui/json-tree.js +104 -16
  182. package/dist/backends/gui/json-tree.js.map +1 -1
  183. package/dist/backends/gui/kbd.cjs +18 -2
  184. package/dist/backends/gui/kbd.d.ts +5 -2
  185. package/dist/backends/gui/kbd.d.ts.map +1 -1
  186. package/dist/backends/gui/kbd.js +18 -2
  187. package/dist/backends/gui/kbd.js.map +1 -1
  188. package/dist/backends/gui/label.cjs +14 -3
  189. package/dist/backends/gui/label.d.ts +12 -3
  190. package/dist/backends/gui/label.d.ts.map +1 -1
  191. package/dist/backends/gui/label.js +14 -3
  192. package/dist/backends/gui/label.js.map +1 -1
  193. package/dist/backends/gui/layout.cjs +5 -1
  194. package/dist/backends/gui/layout.d.ts +1 -1
  195. package/dist/backends/gui/layout.d.ts.map +1 -1
  196. package/dist/backends/gui/layout.js +5 -1
  197. package/dist/backends/gui/layout.js.map +1 -1
  198. package/dist/backends/gui/number-field.cjs +163 -0
  199. package/dist/backends/gui/number-field.d.ts +34 -0
  200. package/dist/backends/gui/number-field.d.ts.map +1 -0
  201. package/dist/backends/gui/number-field.js +160 -0
  202. package/dist/backends/gui/number-field.js.map +1 -0
  203. package/dist/backends/gui/overflowing-list.cjs +79 -0
  204. package/dist/backends/gui/overflowing-list.d.ts +42 -0
  205. package/dist/backends/gui/overflowing-list.d.ts.map +1 -0
  206. package/dist/backends/gui/overflowing-list.js +76 -0
  207. package/dist/backends/gui/overflowing-list.js.map +1 -0
  208. package/dist/backends/gui/phone-country-picker.cjs +60 -0
  209. package/dist/backends/gui/phone-country-picker.d.ts +34 -0
  210. package/dist/backends/gui/phone-country-picker.d.ts.map +1 -0
  211. package/dist/backends/gui/phone-country-picker.js +57 -0
  212. package/dist/backends/gui/phone-country-picker.js.map +1 -0
  213. package/dist/backends/gui/popover.cjs +20 -4
  214. package/dist/backends/gui/popover.d.ts +12 -1
  215. package/dist/backends/gui/popover.d.ts.map +1 -1
  216. package/dist/backends/gui/popover.js +21 -5
  217. package/dist/backends/gui/popover.js.map +1 -1
  218. package/dist/backends/gui/progress-ring.cjs +38 -0
  219. package/dist/backends/gui/progress-ring.d.ts +37 -0
  220. package/dist/backends/gui/progress-ring.d.ts.map +1 -0
  221. package/dist/backends/gui/progress-ring.js +36 -0
  222. package/dist/backends/gui/progress-ring.js.map +1 -0
  223. package/dist/backends/gui/progress.cjs +31 -7
  224. package/dist/backends/gui/progress.d.ts +25 -3
  225. package/dist/backends/gui/progress.d.ts.map +1 -1
  226. package/dist/backends/gui/progress.js +32 -8
  227. package/dist/backends/gui/progress.js.map +1 -1
  228. package/dist/backends/gui/radio-group.cjs +28 -2
  229. package/dist/backends/gui/radio-group.d.ts +20 -2
  230. package/dist/backends/gui/radio-group.d.ts.map +1 -1
  231. package/dist/backends/gui/radio-group.js +28 -2
  232. package/dist/backends/gui/radio-group.js.map +1 -1
  233. package/dist/backends/gui/search-list.cjs +62 -0
  234. package/dist/backends/gui/search-list.d.ts +65 -0
  235. package/dist/backends/gui/search-list.d.ts.map +1 -0
  236. package/dist/backends/gui/search-list.js +58 -0
  237. package/dist/backends/gui/search-list.js.map +1 -0
  238. package/dist/backends/gui/select.cjs +50 -16
  239. package/dist/backends/gui/select.d.ts +12 -3
  240. package/dist/backends/gui/select.d.ts.map +1 -1
  241. package/dist/backends/gui/select.js +51 -17
  242. package/dist/backends/gui/select.js.map +1 -1
  243. package/dist/backends/gui/shortcut.cjs +122 -0
  244. package/dist/backends/gui/shortcut.d.ts +58 -0
  245. package/dist/backends/gui/shortcut.d.ts.map +1 -0
  246. package/dist/backends/gui/shortcut.js +115 -0
  247. package/dist/backends/gui/shortcut.js.map +1 -0
  248. package/dist/backends/gui/skeleton.cjs +41 -10
  249. package/dist/backends/gui/skeleton.d.ts +46 -8
  250. package/dist/backends/gui/skeleton.d.ts.map +1 -1
  251. package/dist/backends/gui/skeleton.js +39 -8
  252. package/dist/backends/gui/skeleton.js.map +1 -1
  253. package/dist/backends/gui/snippet.cjs +12 -1
  254. package/dist/backends/gui/snippet.d.ts +4 -2
  255. package/dist/backends/gui/snippet.d.ts.map +1 -1
  256. package/dist/backends/gui/snippet.js +12 -1
  257. package/dist/backends/gui/snippet.js.map +1 -1
  258. package/dist/backends/gui/spinner.cjs +8 -1
  259. package/dist/backends/gui/spinner.d.ts +11 -2
  260. package/dist/backends/gui/spinner.d.ts.map +1 -1
  261. package/dist/backends/gui/spinner.js +9 -2
  262. package/dist/backends/gui/spinner.js.map +1 -1
  263. package/dist/backends/gui/stack-icon.cjs +17 -0
  264. package/dist/backends/gui/stack-icon.d.ts +15 -0
  265. package/dist/backends/gui/stack-icon.d.ts.map +1 -0
  266. package/dist/backends/gui/stack-icon.js +15 -0
  267. package/dist/backends/gui/stack-icon.js.map +1 -0
  268. package/dist/backends/gui/status.cjs +38 -1
  269. package/dist/backends/gui/status.d.ts +16 -2
  270. package/dist/backends/gui/status.d.ts.map +1 -1
  271. package/dist/backends/gui/status.js +38 -2
  272. package/dist/backends/gui/status.js.map +1 -1
  273. package/dist/backends/gui/stepper.cjs +73 -3
  274. package/dist/backends/gui/stepper.d.ts +25 -1
  275. package/dist/backends/gui/stepper.d.ts.map +1 -1
  276. package/dist/backends/gui/stepper.js +71 -5
  277. package/dist/backends/gui/stepper.js.map +1 -1
  278. package/dist/backends/gui/switch.cjs +35 -20
  279. package/dist/backends/gui/switch.d.ts +12 -2
  280. package/dist/backends/gui/switch.d.ts.map +1 -1
  281. package/dist/backends/gui/switch.js +35 -20
  282. package/dist/backends/gui/switch.js.map +1 -1
  283. package/dist/backends/gui/tabs.cjs +63 -17
  284. package/dist/backends/gui/tabs.d.ts +35 -6
  285. package/dist/backends/gui/tabs.d.ts.map +1 -1
  286. package/dist/backends/gui/tabs.js +65 -19
  287. package/dist/backends/gui/tabs.js.map +1 -1
  288. package/dist/backends/gui/tag.cjs +48 -0
  289. package/dist/backends/gui/tag.d.ts +53 -0
  290. package/dist/backends/gui/tag.d.ts.map +1 -0
  291. package/dist/backends/gui/tag.js +46 -0
  292. package/dist/backends/gui/tag.js.map +1 -0
  293. package/dist/backends/gui/tags.cjs +9 -2
  294. package/dist/backends/gui/tags.d.ts +6 -5
  295. package/dist/backends/gui/tags.d.ts.map +1 -1
  296. package/dist/backends/gui/tags.js +9 -2
  297. package/dist/backends/gui/tags.js.map +1 -1
  298. package/dist/backends/gui/textarea.cjs +22 -6
  299. package/dist/backends/gui/textarea.d.ts +10 -1
  300. package/dist/backends/gui/textarea.d.ts.map +1 -1
  301. package/dist/backends/gui/textarea.js +22 -6
  302. package/dist/backends/gui/textarea.js.map +1 -1
  303. package/dist/backends/gui/toaster.cjs +167 -3
  304. package/dist/backends/gui/toaster.d.ts +28 -2
  305. package/dist/backends/gui/toaster.d.ts.map +1 -1
  306. package/dist/backends/gui/toaster.js +167 -5
  307. package/dist/backends/gui/toaster.js.map +1 -1
  308. package/dist/backends/gui/toggle-group.cjs +13 -0
  309. package/dist/backends/gui/toggle-group.d.ts +7 -1
  310. package/dist/backends/gui/toggle-group.d.ts.map +1 -1
  311. package/dist/backends/gui/toggle-group.js +13 -0
  312. package/dist/backends/gui/toggle-group.js.map +1 -1
  313. package/dist/backends/gui/tooltip.cjs +29 -6
  314. package/dist/backends/gui/tooltip.d.ts +23 -4
  315. package/dist/backends/gui/tooltip.d.ts.map +1 -1
  316. package/dist/backends/gui/tooltip.js +31 -8
  317. package/dist/backends/gui/tooltip.js.map +1 -1
  318. package/dist/backends/gui/truncated-text.cjs +102 -0
  319. package/dist/backends/gui/truncated-text.d.ts +55 -0
  320. package/dist/backends/gui/truncated-text.d.ts.map +1 -0
  321. package/dist/backends/gui/truncated-text.js +97 -0
  322. package/dist/backends/gui/truncated-text.js.map +1 -0
  323. package/dist/gallery/compound.cjs +60 -0
  324. package/dist/gallery/compound.d.ts +2 -0
  325. package/dist/gallery/compound.d.ts.map +1 -0
  326. package/dist/gallery/compound.js +58 -0
  327. package/dist/gallery/compound.js.map +1 -0
  328. package/dist/gallery/display.cjs +47 -0
  329. package/dist/gallery/display.d.ts +3 -0
  330. package/dist/gallery/display.d.ts.map +1 -0
  331. package/dist/gallery/display.js +45 -0
  332. package/dist/gallery/display.js.map +1 -0
  333. package/dist/gallery/feedback.cjs +38 -0
  334. package/dist/gallery/feedback.d.ts +2 -0
  335. package/dist/gallery/feedback.d.ts.map +1 -0
  336. package/dist/gallery/feedback.js +36 -0
  337. package/dist/gallery/feedback.js.map +1 -0
  338. package/dist/gallery/fields.cjs +53 -0
  339. package/dist/gallery/fields.d.ts +2 -0
  340. package/dist/gallery/fields.d.ts.map +1 -0
  341. package/dist/gallery/fields.js +51 -0
  342. package/dist/gallery/fields.js.map +1 -0
  343. package/dist/gallery/frames.cjs +47 -0
  344. package/dist/gallery/frames.d.ts +2 -0
  345. package/dist/gallery/frames.d.ts.map +1 -0
  346. package/dist/gallery/frames.js +45 -0
  347. package/dist/gallery/frames.js.map +1 -0
  348. package/dist/gallery/icons.cjs +19 -0
  349. package/dist/gallery/icons.d.ts +2 -0
  350. package/dist/gallery/icons.d.ts.map +1 -0
  351. package/dist/gallery/icons.js +17 -0
  352. package/dist/gallery/icons.js.map +1 -0
  353. package/dist/gallery/menus.cjs +64 -0
  354. package/dist/gallery/menus.d.ts +15 -0
  355. package/dist/gallery/menus.d.ts.map +1 -0
  356. package/dist/gallery/menus.js +58 -0
  357. package/dist/gallery/menus.js.map +1 -0
  358. package/dist/gallery/records.cjs +34 -0
  359. package/dist/gallery/records.d.ts +2 -0
  360. package/dist/gallery/records.d.ts.map +1 -0
  361. package/dist/gallery/records.js +32 -0
  362. package/dist/gallery/records.js.map +1 -0
  363. package/dist/gallery/section.cjs +17 -0
  364. package/dist/gallery/section.d.ts +10 -0
  365. package/dist/gallery/section.d.ts.map +1 -0
  366. package/dist/gallery/section.js +14 -0
  367. package/dist/gallery/section.js.map +1 -0
  368. package/dist/gallery.cjs +8 -14
  369. package/dist/gallery.d.ts.map +1 -1
  370. package/dist/gallery.html +1594 -256
  371. package/dist/gallery.js +3 -9
  372. package/dist/gallery.js.map +1 -1
  373. package/dist/gui-config.cjs +33 -4
  374. package/dist/gui-config.d.ts +11 -3
  375. package/dist/gui-config.d.ts.map +1 -1
  376. package/dist/gui-config.js +33 -4
  377. package/dist/gui-config.js.map +1 -1
  378. package/dist/index.cjs +73 -2
  379. package/dist/index.d.ts +5 -2
  380. package/dist/index.d.ts.map +1 -1
  381. package/dist/index.js +10 -1
  382. package/dist/index.js.map +1 -1
  383. package/dist/index.node.cjs +73 -2
  384. package/dist/index.node.js +10 -1
  385. package/dist/motion.cjs +25 -1
  386. package/dist/motion.d.ts +16 -1
  387. package/dist/motion.d.ts.map +1 -1
  388. package/dist/motion.js +24 -1
  389. package/dist/motion.js.map +1 -1
  390. package/dist/primitives/AvatarGroup.cjs +8 -0
  391. package/dist/primitives/AvatarGroup.d.ts +2 -0
  392. package/dist/primitives/AvatarGroup.d.ts.map +1 -0
  393. package/dist/primitives/AvatarGroup.js +5 -0
  394. package/dist/primitives/AvatarGroup.js.map +1 -0
  395. package/dist/primitives/BannerAction.cjs +8 -0
  396. package/dist/primitives/BannerAction.d.ts +2 -0
  397. package/dist/primitives/BannerAction.d.ts.map +1 -0
  398. package/dist/primitives/BannerAction.js +5 -0
  399. package/dist/primitives/BannerAction.js.map +1 -0
  400. package/dist/primitives/ButtonGroup.cjs +8 -0
  401. package/dist/primitives/ButtonGroup.d.ts +2 -0
  402. package/dist/primitives/ButtonGroup.d.ts.map +1 -0
  403. package/dist/primitives/ButtonGroup.js +5 -0
  404. package/dist/primitives/ButtonGroup.js.map +1 -0
  405. package/dist/primitives/ButtonGroupContext.cjs +8 -0
  406. package/dist/primitives/ButtonGroupContext.d.ts +2 -0
  407. package/dist/primitives/ButtonGroupContext.d.ts.map +1 -0
  408. package/dist/primitives/ButtonGroupContext.js +5 -0
  409. package/dist/primitives/ButtonGroupContext.js.map +1 -0
  410. package/dist/primitives/CONCEPTS.cjs +8 -0
  411. package/dist/primitives/CONCEPTS.d.ts +2 -0
  412. package/dist/primitives/CONCEPTS.d.ts.map +1 -0
  413. package/dist/primitives/CONCEPTS.js +5 -0
  414. package/dist/primitives/CONCEPTS.js.map +1 -0
  415. package/dist/primitives/CalloutAction.cjs +8 -0
  416. package/dist/primitives/CalloutAction.d.ts +2 -0
  417. package/dist/primitives/CalloutAction.d.ts.map +1 -0
  418. package/dist/primitives/CalloutAction.js +5 -0
  419. package/dist/primitives/CalloutAction.js.map +1 -0
  420. package/dist/primitives/Chip.cjs +8 -0
  421. package/dist/primitives/Chip.d.ts +2 -0
  422. package/dist/primitives/Chip.d.ts.map +1 -0
  423. package/dist/primitives/Chip.js +5 -0
  424. package/dist/primitives/Chip.js.map +1 -0
  425. package/dist/primitives/ColorSample.cjs +8 -0
  426. package/dist/primitives/ColorSample.d.ts +2 -0
  427. package/dist/primitives/ColorSample.d.ts.map +1 -0
  428. package/dist/primitives/ColorSample.js +5 -0
  429. package/dist/primitives/ColorSample.js.map +1 -0
  430. package/dist/primitives/CountrySelect.cjs +8 -0
  431. package/dist/primitives/CountrySelect.d.ts +2 -0
  432. package/dist/primitives/CountrySelect.d.ts.map +1 -0
  433. package/dist/primitives/CountrySelect.js +5 -0
  434. package/dist/primitives/CountrySelect.js.map +1 -0
  435. package/dist/primitives/CurrencyPicker.cjs +8 -0
  436. package/dist/primitives/CurrencyPicker.d.ts +2 -0
  437. package/dist/primitives/CurrencyPicker.d.ts.map +1 -0
  438. package/dist/primitives/CurrencyPicker.js +5 -0
  439. package/dist/primitives/CurrencyPicker.js.map +1 -0
  440. package/dist/primitives/Density.cjs +8 -0
  441. package/dist/primitives/Density.d.ts +2 -0
  442. package/dist/primitives/Density.d.ts.map +1 -0
  443. package/dist/primitives/Density.js +5 -0
  444. package/dist/primitives/Density.js.map +1 -0
  445. package/dist/primitives/DialogBody.cjs +8 -0
  446. package/dist/primitives/DialogBody.d.ts +2 -0
  447. package/dist/primitives/DialogBody.d.ts.map +1 -0
  448. package/dist/primitives/DialogBody.js +5 -0
  449. package/dist/primitives/DialogBody.js.map +1 -0
  450. package/dist/primitives/DropdownMenuBack.cjs +8 -0
  451. package/dist/primitives/DropdownMenuBack.d.ts +2 -0
  452. package/dist/primitives/DropdownMenuBack.d.ts.map +1 -0
  453. package/dist/primitives/DropdownMenuBack.js +5 -0
  454. package/dist/primitives/DropdownMenuBack.js.map +1 -0
  455. package/dist/primitives/DropdownMenuClose.cjs +8 -0
  456. package/dist/primitives/DropdownMenuClose.d.ts +2 -0
  457. package/dist/primitives/DropdownMenuClose.d.ts.map +1 -0
  458. package/dist/primitives/DropdownMenuClose.js +5 -0
  459. package/dist/primitives/DropdownMenuClose.js.map +1 -0
  460. package/dist/primitives/DropdownMenuEmpty.cjs +8 -0
  461. package/dist/primitives/DropdownMenuEmpty.d.ts +2 -0
  462. package/dist/primitives/DropdownMenuEmpty.d.ts.map +1 -0
  463. package/dist/primitives/DropdownMenuEmpty.js +5 -0
  464. package/dist/primitives/DropdownMenuEmpty.js.map +1 -0
  465. package/dist/primitives/DropdownMenuHeader.cjs +8 -0
  466. package/dist/primitives/DropdownMenuHeader.d.ts +2 -0
  467. package/dist/primitives/DropdownMenuHeader.d.ts.map +1 -0
  468. package/dist/primitives/DropdownMenuHeader.js +5 -0
  469. package/dist/primitives/DropdownMenuHeader.js.map +1 -0
  470. package/dist/primitives/DropdownMenuLoading.cjs +8 -0
  471. package/dist/primitives/DropdownMenuLoading.d.ts +2 -0
  472. package/dist/primitives/DropdownMenuLoading.d.ts.map +1 -0
  473. package/dist/primitives/DropdownMenuLoading.js +5 -0
  474. package/dist/primitives/DropdownMenuLoading.js.map +1 -0
  475. package/dist/primitives/DropdownMenuOptionItem.cjs +8 -0
  476. package/dist/primitives/DropdownMenuOptionItem.d.ts +2 -0
  477. package/dist/primitives/DropdownMenuOptionItem.d.ts.map +1 -0
  478. package/dist/primitives/DropdownMenuOptionItem.js +5 -0
  479. package/dist/primitives/DropdownMenuOptionItem.js.map +1 -0
  480. package/dist/primitives/DropdownMenuPage.cjs +8 -0
  481. package/dist/primitives/DropdownMenuPage.d.ts +2 -0
  482. package/dist/primitives/DropdownMenuPage.d.ts.map +1 -0
  483. package/dist/primitives/DropdownMenuPage.js +5 -0
  484. package/dist/primitives/DropdownMenuPage.js.map +1 -0
  485. package/dist/primitives/DropdownMenuSearch.cjs +8 -0
  486. package/dist/primitives/DropdownMenuSearch.d.ts +2 -0
  487. package/dist/primitives/DropdownMenuSearch.d.ts.map +1 -0
  488. package/dist/primitives/DropdownMenuSearch.js +5 -0
  489. package/dist/primitives/DropdownMenuSearch.js.map +1 -0
  490. package/dist/primitives/DropdownMenuSection.cjs +8 -0
  491. package/dist/primitives/DropdownMenuSection.d.ts +2 -0
  492. package/dist/primitives/DropdownMenuSection.d.ts.map +1 -0
  493. package/dist/primitives/DropdownMenuSection.js +5 -0
  494. package/dist/primitives/DropdownMenuSection.js.map +1 -0
  495. package/dist/primitives/DropdownMenuSelectionGroup.cjs +8 -0
  496. package/dist/primitives/DropdownMenuSelectionGroup.d.ts +2 -0
  497. package/dist/primitives/DropdownMenuSelectionGroup.d.ts.map +1 -0
  498. package/dist/primitives/DropdownMenuSelectionGroup.js +5 -0
  499. package/dist/primitives/DropdownMenuSelectionGroup.js.map +1 -0
  500. package/dist/primitives/DropdownMenuTitle.cjs +8 -0
  501. package/dist/primitives/DropdownMenuTitle.d.ts +2 -0
  502. package/dist/primitives/DropdownMenuTitle.d.ts.map +1 -0
  503. package/dist/primitives/DropdownMenuTitle.js +5 -0
  504. package/dist/primitives/DropdownMenuTitle.js.map +1 -0
  505. package/dist/primitives/FIELD_ICONS.cjs +8 -0
  506. package/dist/primitives/FIELD_ICONS.d.ts +2 -0
  507. package/dist/primitives/FIELD_ICONS.d.ts.map +1 -0
  508. package/dist/primitives/FIELD_ICONS.js +5 -0
  509. package/dist/primitives/FIELD_ICONS.js.map +1 -0
  510. package/dist/primitives/Glyph.cjs +8 -0
  511. package/dist/primitives/Glyph.d.ts +2 -0
  512. package/dist/primitives/Glyph.d.ts.map +1 -0
  513. package/dist/primitives/Glyph.js +5 -0
  514. package/dist/primitives/Glyph.js.map +1 -0
  515. package/dist/primitives/Heading.cjs +2 -2
  516. package/dist/primitives/Heading.d.ts +1 -1
  517. package/dist/primitives/Heading.d.ts.map +1 -1
  518. package/dist/primitives/Heading.js +1 -1
  519. package/dist/primitives/Heading.js.map +1 -1
  520. package/dist/primitives/IconPicker.cjs +8 -0
  521. package/dist/primitives/IconPicker.d.ts +2 -0
  522. package/dist/primitives/IconPicker.d.ts.map +1 -0
  523. package/dist/primitives/IconPicker.js +5 -0
  524. package/dist/primitives/IconPicker.js.map +1 -0
  525. package/dist/primitives/IconTile.cjs +8 -0
  526. package/dist/primitives/IconTile.d.ts +2 -0
  527. package/dist/primitives/IconTile.d.ts.map +1 -0
  528. package/dist/primitives/IconTile.js +5 -0
  529. package/dist/primitives/IconTile.js.map +1 -0
  530. package/dist/primitives/ImageInput.cjs +8 -0
  531. package/dist/primitives/ImageInput.d.ts +2 -0
  532. package/dist/primitives/ImageInput.d.ts.map +1 -0
  533. package/dist/primitives/ImageInput.js +5 -0
  534. package/dist/primitives/ImageInput.js.map +1 -0
  535. package/dist/primitives/InputGroup.cjs +8 -0
  536. package/dist/primitives/InputGroup.d.ts +2 -0
  537. package/dist/primitives/InputGroup.d.ts.map +1 -0
  538. package/dist/primitives/InputGroup.js +5 -0
  539. package/dist/primitives/InputGroup.js.map +1 -0
  540. package/dist/primitives/NumberField.cjs +8 -0
  541. package/dist/primitives/NumberField.d.ts +2 -0
  542. package/dist/primitives/NumberField.d.ts.map +1 -0
  543. package/dist/primitives/NumberField.js +5 -0
  544. package/dist/primitives/NumberField.js.map +1 -0
  545. package/dist/primitives/OverflowingList.cjs +8 -0
  546. package/dist/primitives/OverflowingList.d.ts +2 -0
  547. package/dist/primitives/OverflowingList.d.ts.map +1 -0
  548. package/dist/primitives/OverflowingList.js +5 -0
  549. package/dist/primitives/OverflowingList.js.map +1 -0
  550. package/dist/primitives/PhoneCountryPicker.cjs +8 -0
  551. package/dist/primitives/PhoneCountryPicker.d.ts +2 -0
  552. package/dist/primitives/PhoneCountryPicker.d.ts.map +1 -0
  553. package/dist/primitives/PhoneCountryPicker.js +5 -0
  554. package/dist/primitives/PhoneCountryPicker.js.map +1 -0
  555. package/dist/primitives/ProgressRing.cjs +8 -0
  556. package/dist/primitives/ProgressRing.d.ts +2 -0
  557. package/dist/primitives/ProgressRing.d.ts.map +1 -0
  558. package/dist/primitives/ProgressRing.js +5 -0
  559. package/dist/primitives/ProgressRing.js.map +1 -0
  560. package/dist/primitives/RadioCircle.cjs +8 -0
  561. package/dist/primitives/RadioCircle.d.ts +2 -0
  562. package/dist/primitives/RadioCircle.d.ts.map +1 -0
  563. package/dist/primitives/RadioCircle.js +5 -0
  564. package/dist/primitives/RadioCircle.js.map +1 -0
  565. package/dist/primitives/SKELETON_HEIGHT.cjs +8 -0
  566. package/dist/primitives/SKELETON_HEIGHT.d.ts +2 -0
  567. package/dist/primitives/SKELETON_HEIGHT.d.ts.map +1 -0
  568. package/dist/primitives/SKELETON_HEIGHT.js +5 -0
  569. package/dist/primitives/SKELETON_HEIGHT.js.map +1 -0
  570. package/dist/primitives/STATUS_COLOR.cjs +8 -0
  571. package/dist/primitives/STATUS_COLOR.d.ts +2 -0
  572. package/dist/primitives/STATUS_COLOR.d.ts.map +1 -0
  573. package/dist/primitives/STATUS_COLOR.js +5 -0
  574. package/dist/primitives/STATUS_COLOR.js.map +1 -0
  575. package/dist/primitives/STATUS_HUE.cjs +8 -0
  576. package/dist/primitives/STATUS_HUE.d.ts +2 -0
  577. package/dist/primitives/STATUS_HUE.d.ts.map +1 -0
  578. package/dist/primitives/STATUS_HUE.js +5 -0
  579. package/dist/primitives/STATUS_HUE.js.map +1 -0
  580. package/dist/primitives/STATUS_PAINT.cjs +8 -0
  581. package/dist/primitives/STATUS_PAINT.d.ts +2 -0
  582. package/dist/primitives/STATUS_PAINT.d.ts.map +1 -0
  583. package/dist/primitives/STATUS_PAINT.js +5 -0
  584. package/dist/primitives/STATUS_PAINT.js.map +1 -0
  585. package/dist/primitives/Shortcut.cjs +8 -0
  586. package/dist/primitives/Shortcut.d.ts +2 -0
  587. package/dist/primitives/Shortcut.d.ts.map +1 -0
  588. package/dist/primitives/Shortcut.js +5 -0
  589. package/dist/primitives/Shortcut.js.map +1 -0
  590. package/dist/primitives/StackIcon.cjs +8 -0
  591. package/dist/primitives/StackIcon.d.ts +2 -0
  592. package/dist/primitives/StackIcon.d.ts.map +1 -0
  593. package/dist/primitives/StackIcon.js +5 -0
  594. package/dist/primitives/StackIcon.js.map +1 -0
  595. package/dist/primitives/TABLER.cjs +8 -0
  596. package/dist/primitives/TABLER.d.ts +2 -0
  597. package/dist/primitives/TABLER.d.ts.map +1 -0
  598. package/dist/primitives/TABLER.js +5 -0
  599. package/dist/primitives/TABLER.js.map +1 -0
  600. package/dist/primitives/TOAST_DURATION.cjs +8 -0
  601. package/dist/primitives/TOAST_DURATION.d.ts +2 -0
  602. package/dist/primitives/TOAST_DURATION.d.ts.map +1 -0
  603. package/dist/primitives/TOAST_DURATION.js +5 -0
  604. package/dist/primitives/TOAST_DURATION.js.map +1 -0
  605. package/dist/primitives/Tag.cjs +8 -0
  606. package/dist/primitives/Tag.d.ts +2 -0
  607. package/dist/primitives/Tag.d.ts.map +1 -0
  608. package/dist/primitives/Tag.js +5 -0
  609. package/dist/primitives/Tag.js.map +1 -0
  610. package/dist/primitives/ToastCard.cjs +8 -0
  611. package/dist/primitives/ToastCard.d.ts +2 -0
  612. package/dist/primitives/ToastCard.d.ts.map +1 -0
  613. package/dist/primitives/ToastCard.js +5 -0
  614. package/dist/primitives/ToastCard.js.map +1 -0
  615. package/dist/primitives/ToastFace.cjs +8 -0
  616. package/dist/primitives/ToastFace.d.ts +2 -0
  617. package/dist/primitives/ToastFace.d.ts.map +1 -0
  618. package/dist/primitives/ToastFace.js +5 -0
  619. package/dist/primitives/ToastFace.js.map +1 -0
  620. package/dist/primitives/TruncatedText.cjs +8 -0
  621. package/dist/primitives/TruncatedText.d.ts +2 -0
  622. package/dist/primitives/TruncatedText.d.ts.map +1 -0
  623. package/dist/primitives/TruncatedText.js +5 -0
  624. package/dist/primitives/TruncatedText.js.map +1 -0
  625. package/dist/primitives/TruncatedTextProvider.cjs +8 -0
  626. package/dist/primitives/TruncatedTextProvider.d.ts +2 -0
  627. package/dist/primitives/TruncatedTextProvider.d.ts.map +1 -0
  628. package/dist/primitives/TruncatedTextProvider.js +5 -0
  629. package/dist/primitives/TruncatedTextProvider.js.map +1 -0
  630. package/dist/primitives/VisuallyHidden.cjs +8 -0
  631. package/dist/primitives/VisuallyHidden.d.ts +2 -0
  632. package/dist/primitives/VisuallyHidden.d.ts.map +1 -0
  633. package/dist/primitives/VisuallyHidden.js +5 -0
  634. package/dist/primitives/VisuallyHidden.js.map +1 -0
  635. package/dist/primitives/fieldSize.cjs +8 -0
  636. package/dist/primitives/fieldSize.d.ts +2 -0
  637. package/dist/primitives/fieldSize.d.ts.map +1 -0
  638. package/dist/primitives/fieldSize.js +5 -0
  639. package/dist/primitives/fieldSize.js.map +1 -0
  640. package/dist/primitives/flag.cjs +8 -0
  641. package/dist/primitives/flag.d.ts +2 -0
  642. package/dist/primitives/flag.d.ts.map +1 -0
  643. package/dist/primitives/flag.js +5 -0
  644. package/dist/primitives/flag.js.map +1 -0
  645. package/dist/primitives/formatShortcut.cjs +8 -0
  646. package/dist/primitives/formatShortcut.d.ts +2 -0
  647. package/dist/primitives/formatShortcut.d.ts.map +1 -0
  648. package/dist/primitives/formatShortcut.js +5 -0
  649. package/dist/primitives/formatShortcut.js.map +1 -0
  650. package/dist/primitives/iconWords.cjs +8 -0
  651. package/dist/primitives/iconWords.d.ts +2 -0
  652. package/dist/primitives/iconWords.d.ts.map +1 -0
  653. package/dist/primitives/iconWords.js +5 -0
  654. package/dist/primitives/iconWords.js.map +1 -0
  655. package/dist/primitives/initialOf.cjs +8 -0
  656. package/dist/primitives/initialOf.d.ts +2 -0
  657. package/dist/primitives/initialOf.d.ts.map +1 -0
  658. package/dist/primitives/initialOf.js +5 -0
  659. package/dist/primitives/initialOf.js.map +1 -0
  660. package/dist/primitives/loadIcons.cjs +8 -0
  661. package/dist/primitives/loadIcons.d.ts +2 -0
  662. package/dist/primitives/loadIcons.d.ts.map +1 -0
  663. package/dist/primitives/loadIcons.js +5 -0
  664. package/dist/primitives/loadIcons.js.map +1 -0
  665. package/dist/primitives/parseNumber.cjs +8 -0
  666. package/dist/primitives/parseNumber.d.ts +2 -0
  667. package/dist/primitives/parseNumber.d.ts.map +1 -0
  668. package/dist/primitives/parseNumber.js +5 -0
  669. package/dist/primitives/parseNumber.js.map +1 -0
  670. package/dist/primitives/resolveIcon.cjs +8 -0
  671. package/dist/primitives/resolveIcon.d.ts +2 -0
  672. package/dist/primitives/resolveIcon.d.ts.map +1 -0
  673. package/dist/primitives/resolveIcon.js +5 -0
  674. package/dist/primitives/resolveIcon.js.map +1 -0
  675. package/dist/primitives/speakShortcut.cjs +8 -0
  676. package/dist/primitives/speakShortcut.d.ts +2 -0
  677. package/dist/primitives/speakShortcut.d.ts.map +1 -0
  678. package/dist/primitives/speakShortcut.js +5 -0
  679. package/dist/primitives/speakShortcut.js.map +1 -0
  680. package/dist/primitives/tileTones.cjs +8 -0
  681. package/dist/primitives/tileTones.d.ts +2 -0
  682. package/dist/primitives/tileTones.d.ts.map +1 -0
  683. package/dist/primitives/tileTones.js +5 -0
  684. package/dist/primitives/tileTones.js.map +1 -0
  685. package/dist/primitives/useDensity.cjs +8 -0
  686. package/dist/primitives/useDensity.d.ts +2 -0
  687. package/dist/primitives/useDensity.d.ts.map +1 -0
  688. package/dist/primitives/useDensity.js +5 -0
  689. package/dist/primitives/useDensity.js.map +1 -0
  690. package/dist/primitives/useField.cjs +8 -0
  691. package/dist/primitives/useField.d.ts +2 -0
  692. package/dist/primitives/useField.d.ts.map +1 -0
  693. package/dist/primitives/useField.js +5 -0
  694. package/dist/primitives/useField.js.map +1 -0
  695. package/dist/primitives/useIcons.cjs +8 -0
  696. package/dist/primitives/useIcons.d.ts +2 -0
  697. package/dist/primitives/useIcons.d.ts.map +1 -0
  698. package/dist/primitives/useIcons.js +5 -0
  699. package/dist/primitives/useIcons.js.map +1 -0
  700. package/dist/product/ComboBox.cjs +25 -7
  701. package/dist/product/ComboBox.d.ts +3 -1
  702. package/dist/product/ComboBox.d.ts.map +1 -1
  703. package/dist/product/ComboBox.js +25 -7
  704. package/dist/product/ComboBox.js.map +1 -1
  705. package/dist/product/CommandMenu.cjs +137 -0
  706. package/dist/product/CommandMenu.d.ts +77 -0
  707. package/dist/product/CommandMenu.d.ts.map +1 -0
  708. package/dist/product/CommandMenu.js +134 -0
  709. package/dist/product/CommandMenu.js.map +1 -0
  710. package/dist/product/DetailPane.cjs +154 -12
  711. package/dist/product/DetailPane.d.ts +80 -2
  712. package/dist/product/DetailPane.d.ts.map +1 -1
  713. package/dist/product/DetailPane.js +153 -16
  714. package/dist/product/DetailPane.js.map +1 -1
  715. package/dist/product/Fact.cjs +6 -1
  716. package/dist/product/Fact.d.ts +16 -1
  717. package/dist/product/Fact.d.ts.map +1 -1
  718. package/dist/product/Fact.js +6 -1
  719. package/dist/product/Fact.js.map +1 -1
  720. package/dist/product/Field.cjs +14 -2
  721. package/dist/product/Field.d.ts +16 -1
  722. package/dist/product/Field.d.ts.map +1 -1
  723. package/dist/product/Field.js +14 -2
  724. package/dist/product/Field.js.map +1 -1
  725. package/dist/product/Filters.cjs +61 -9
  726. package/dist/product/Filters.d.ts +37 -6
  727. package/dist/product/Filters.d.ts.map +1 -1
  728. package/dist/product/Filters.js +62 -10
  729. package/dist/product/Filters.js.map +1 -1
  730. package/dist/product/MenuRow.cjs +81 -2
  731. package/dist/product/MenuRow.d.ts +76 -6
  732. package/dist/product/MenuRow.d.ts.map +1 -1
  733. package/dist/product/MenuRow.js +81 -4
  734. package/dist/product/MenuRow.js.map +1 -1
  735. package/dist/product/PrimaryButton.cjs +5 -1
  736. package/dist/product/PrimaryButton.d.ts +8 -0
  737. package/dist/product/PrimaryButton.d.ts.map +1 -1
  738. package/dist/product/PrimaryButton.js +5 -1
  739. package/dist/product/PrimaryButton.js.map +1 -1
  740. package/dist/product/Skeleton.cjs +7 -6
  741. package/dist/product/Skeleton.d.ts +3 -20
  742. package/dist/product/Skeleton.d.ts.map +1 -1
  743. package/dist/product/Skeleton.js +8 -7
  744. package/dist/product/Skeleton.js.map +1 -1
  745. package/dist/product/index.cjs +2 -0
  746. package/dist/product/index.d.ts +1 -0
  747. package/dist/product/index.d.ts.map +1 -1
  748. package/dist/product/index.js +2 -0
  749. package/dist/product/index.js.map +1 -1
  750. package/dist/settings/Section.cjs +11 -2
  751. package/dist/settings/Section.d.ts +8 -1
  752. package/dist/settings/Section.d.ts.map +1 -1
  753. package/dist/settings/Section.js +11 -2
  754. package/dist/settings/Section.js.map +1 -1
  755. package/dist/styles/motion.css +70 -0
  756. package/dist/styles.css +1460 -127
  757. package/dist/theme.css +944 -0
  758. package/package.json +2 -1
@@ -0,0 +1,60 @@
1
+ 'use client';"use strict";
2
+ 'use client';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Flag = Flag;
5
+ exports.PhoneCountryPicker = PhoneCountryPicker;
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ /**
8
+ * PhoneCountryPicker — the calling code at the start of a phone field.
9
+ *
10
+ * <InputGroup>
11
+ * <PhoneCountryPicker countries={list} value={iso} onValueChange={setIso} />
12
+ * <Input value={number} onChangeText={setNumber} inputMode="tel" />
13
+ * </InputGroup>
14
+ *
15
+ * A segment of the field (`Segment`) showing the country's flag and a chevron;
16
+ * the list it opens is found by country name, ISO code and calling code, with
17
+ * or without the "+". The picked country is named in a visually hidden label,
18
+ * since a flag alone says nothing to a screen reader. Parsing and validating the
19
+ * number belong to the field layer, not here. Data-free: the caller passes the
20
+ * countries and their calling codes.
21
+ *
22
+ * Flags are regional-indicator text (`flag`), drawn by the platform. Anatomy
23
+ * after twenty-ui's PhoneCountryPicker (MIT, NOTICE): 8px before the flag and 4
24
+ * after the chevron, a 16×12 flag with 2px corners, a globe when none.
25
+ */
26
+ const gui_1 = require("@hanzo/gui");
27
+ const lucide_icons_2_1 = require("@hanzogui/lucide-icons-2");
28
+ const react_1 = require("react");
29
+ const flag_1 = require("./flag.cjs");
30
+ const search_list_1 = require("./search-list.cjs");
31
+ /** The 16×12 flag box, 2px corners; a globe when there is no country. */
32
+ function Flag({ iso, override }) {
33
+ const glyph = override ?? (0, flag_1.flag)(iso);
34
+ return ((0, jsx_runtime_1.jsx)(gui_1.XStack, { width: 16, height: 12, rounded: "$2xs", overflow: "hidden", items: "center", justify: "center", shrink: 0, "aria-hidden": true, children: glyph == null ? ((0, jsx_runtime_1.jsx)(lucide_icons_2_1.Globe, { size: 14, color: "$hint" })) : typeof glyph === 'string' ? ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", lineHeight: 12, children: glyph })) : (glyph) }));
35
+ }
36
+ function PhoneCountryPicker({ countries, value, defaultValue = null, onValueChange, closeOnSelect = true, open, defaultOpen, onOpenChange, disabled = false, label: name = 'Country calling code', searchLabel = 'Search countries', emptyLabel = 'No country found', }) {
37
+ const [own, setOwn] = (0, react_1.useState)(defaultValue);
38
+ const iso = value !== undefined ? value : own;
39
+ const [shown, setShown] = (0, search_list_1.useOpen)(open, defaultOpen, onOpenChange);
40
+ const picked = countries.find((c) => c.value === iso);
41
+ const options = countries.map((c) => ({
42
+ value: c.value,
43
+ label: c.label,
44
+ keywords: [c.value, c.callingCode, `+${c.callingCode}`],
45
+ disabled: c.disabled,
46
+ start: ((0, jsx_runtime_1.jsx)(gui_1.XStack, { pr: "$1", children: (0, jsx_runtime_1.jsx)(Flag, { iso: c.value, override: c.flag }) })),
47
+ end: `+${c.callingCode}`,
48
+ }));
49
+ return ((0, jsx_runtime_1.jsx)(search_list_1.SearchList, { open: shown && !disabled, onOpenChange: (next) => setShown(disabled ? false : next), options: options, value: iso, searchLabel: searchLabel, emptyLabel: emptyLabel, width: 280, onPick: (next) => {
50
+ if (value === undefined)
51
+ setOwn(next);
52
+ if (next !== iso)
53
+ onValueChange?.(next);
54
+ if (closeOnSelect)
55
+ setShown(false);
56
+ }, trigger: (0, jsx_runtime_1.jsxs)(search_list_1.Segment, { ...{ 'data-slot': 'phone-country-picker' }, disabled: disabled, open: shown,
57
+ // Named by its hidden text, not an aria-label: the flag says nothing to
58
+ // a screen reader, and the words are the ones a translator sees.
59
+ gap: "$0.5", pl: "$2", pr: "$1", children: [(0, jsx_runtime_1.jsx)(Flag, { iso: picked?.value, override: picked?.flag }), (0, jsx_runtime_1.jsx)(lucide_icons_2_1.ChevronDown, { size: 14, color: "$hint" }), (0, jsx_runtime_1.jsx)(gui_1.VisuallyHidden, { children: picked ? `${name}: ${picked.label} +${picked.callingCode}` : name })] }) }));
60
+ }
@@ -0,0 +1,34 @@
1
+ import { type ReactNode } from 'react';
2
+ export type PhoneCountry = {
3
+ /** ISO 3166-1 alpha-2, e.g. "FR". */
4
+ value: string;
5
+ /** The country's name in the reader's language. */
6
+ label: string;
7
+ /** Without the "+", e.g. "33". */
8
+ callingCode: string;
9
+ /** Overrides the regional-indicator flag. */
10
+ flag?: ReactNode;
11
+ disabled?: boolean;
12
+ };
13
+ export type PhoneCountryPickerProps = {
14
+ countries: PhoneCountry[];
15
+ value?: string | null;
16
+ defaultValue?: string | null;
17
+ onValueChange?: (iso: string | null) => void;
18
+ closeOnSelect?: boolean;
19
+ open?: boolean;
20
+ defaultOpen?: boolean;
21
+ onOpenChange?: (open: boolean) => void;
22
+ disabled?: boolean;
23
+ /** The segment's name to assistive technology, before the picked country. */
24
+ label?: string;
25
+ searchLabel?: string;
26
+ emptyLabel?: string;
27
+ };
28
+ /** The 16×12 flag box, 2px corners; a globe when there is no country. */
29
+ export declare function Flag({ iso, override }: {
30
+ iso?: string | null;
31
+ override?: ReactNode;
32
+ }): import("react").JSX.Element;
33
+ export declare function PhoneCountryPicker({ countries, value, defaultValue, onValueChange, closeOnSelect, open, defaultOpen, onOpenChange, disabled, label: name, searchLabel, emptyLabel, }: PhoneCountryPickerProps): import("react").JSX.Element;
34
+ //# sourceMappingURL=phone-country-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phone-country-picker.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/phone-country-picker.tsx"],"names":[],"mappings":"AAuBA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAIhD,MAAM,MAAM,YAAY,GAAG;IACzB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAA;IACb,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,YAAY,EAAE,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,yEAAyE;AACzE,wBAAgB,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,+BAepF;AAED,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,KAAK,EACL,YAAmB,EACnB,aAAa,EACb,aAAoB,EACpB,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,QAAgB,EAChB,KAAK,EAAE,IAA6B,EACpC,WAAgC,EAChC,UAA+B,GAChC,EAAE,uBAAuB,+BAmDzB"}
@@ -0,0 +1,57 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * PhoneCountryPicker — the calling code at the start of a phone field.
5
+ *
6
+ * <InputGroup>
7
+ * <PhoneCountryPicker countries={list} value={iso} onValueChange={setIso} />
8
+ * <Input value={number} onChangeText={setNumber} inputMode="tel" />
9
+ * </InputGroup>
10
+ *
11
+ * A segment of the field (`Segment`) showing the country's flag and a chevron;
12
+ * the list it opens is found by country name, ISO code and calling code, with
13
+ * or without the "+". The picked country is named in a visually hidden label,
14
+ * since a flag alone says nothing to a screen reader. Parsing and validating the
15
+ * number belong to the field layer, not here. Data-free: the caller passes the
16
+ * countries and their calling codes.
17
+ *
18
+ * Flags are regional-indicator text (`flag`), drawn by the platform. Anatomy
19
+ * after twenty-ui's PhoneCountryPicker (MIT, NOTICE): 8px before the flag and 4
20
+ * after the chevron, a 16×12 flag with 2px corners, a globe when none.
21
+ */
22
+ import { SizableText, VisuallyHidden, XStack } from '@hanzo/gui';
23
+ import { ChevronDown, Globe } from '@hanzogui/lucide-icons-2';
24
+ import { useState } from 'react';
25
+ import { flag } from './flag.js';
26
+ import { SearchList, Segment, useOpen } from './search-list.js';
27
+ /** The 16×12 flag box, 2px corners; a globe when there is no country. */
28
+ export function Flag({ iso, override }) {
29
+ const glyph = override ?? flag(iso);
30
+ return (_jsx(XStack, { width: 16, height: 12, rounded: "$2xs", overflow: "hidden", items: "center", justify: "center", shrink: 0, "aria-hidden": true, children: glyph == null ? (_jsx(Globe, { size: 14, color: "$hint" })) : typeof glyph === 'string' ? (_jsx(SizableText, { size: "$2", lineHeight: 12, children: glyph })) : (glyph) }));
31
+ }
32
+ export function PhoneCountryPicker({ countries, value, defaultValue = null, onValueChange, closeOnSelect = true, open, defaultOpen, onOpenChange, disabled = false, label: name = 'Country calling code', searchLabel = 'Search countries', emptyLabel = 'No country found', }) {
33
+ const [own, setOwn] = useState(defaultValue);
34
+ const iso = value !== undefined ? value : own;
35
+ const [shown, setShown] = useOpen(open, defaultOpen, onOpenChange);
36
+ const picked = countries.find((c) => c.value === iso);
37
+ const options = countries.map((c) => ({
38
+ value: c.value,
39
+ label: c.label,
40
+ keywords: [c.value, c.callingCode, `+${c.callingCode}`],
41
+ disabled: c.disabled,
42
+ start: (_jsx(XStack, { pr: "$1", children: _jsx(Flag, { iso: c.value, override: c.flag }) })),
43
+ end: `+${c.callingCode}`,
44
+ }));
45
+ return (_jsx(SearchList, { open: shown && !disabled, onOpenChange: (next) => setShown(disabled ? false : next), options: options, value: iso, searchLabel: searchLabel, emptyLabel: emptyLabel, width: 280, onPick: (next) => {
46
+ if (value === undefined)
47
+ setOwn(next);
48
+ if (next !== iso)
49
+ onValueChange?.(next);
50
+ if (closeOnSelect)
51
+ setShown(false);
52
+ }, trigger: _jsxs(Segment, { ...{ 'data-slot': 'phone-country-picker' }, disabled: disabled, open: shown,
53
+ // Named by its hidden text, not an aria-label: the flag says nothing to
54
+ // a screen reader, and the words are the ones a translator sees.
55
+ gap: "$0.5", pl: "$2", pr: "$1", children: [_jsx(Flag, { iso: picked?.value, override: picked?.flag }), _jsx(ChevronDown, { size: 14, color: "$hint" }), _jsx(VisuallyHidden, { children: picked ? `${name}: ${picked.label} +${picked.callingCode}` : name })] }) }));
56
+ }
57
+ //# sourceMappingURL=phone-country-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phone-country-picker.js","sourceRoot":"","sources":["../../../src/backends/gui/phone-country-picker.tsx"],"names":[],"mappings":"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"}
@@ -14,8 +14,16 @@ const jsx_runtime_1 = require("react/jsx-runtime");
14
14
  * gui keeps BOTH placement facts on the popper ROOT — `offset` and `placement`
15
15
  * — while the compound API spells them on Content, as `sideOffset` and `align`.
16
16
  * One value, one owner: the root holds them, Content publishes into it.
17
+ *
18
+ * `size="sm"` is the record panel (twenty-ui's Popover, MIT, NOTICE): an 8px
19
+ * inset, sized to its content up to the room there is, 8px clear of its anchor.
20
+ * A `<Density value="compact">` makes it the default for a panel that names no
21
+ * size. The default stays the 16px-inset, 288-wide panel every surface has. The
22
+ * fill stays Hanzo's near-opaque panel — not twenty-ui's translucent glass.
23
+ * `arrow` adds a 12×6 pointer in the panel's own fill and edge.
17
24
  */
18
25
  const gui_1 = require("@hanzo/gui");
26
+ const density_1 = require("./density.cjs");
19
27
  const react_1 = require("react");
20
28
  const portal_theme_1 = require("../../product/menu/portal-theme.cjs");
21
29
  const place_1 = require("./place.cjs");
@@ -26,7 +34,9 @@ const Publish = /* @__PURE__ */ (0, react_1.createContext)(null);
26
34
  /** Whether the panel this one opened from is solid. A list opened inside a solid
27
35
  * panel stands on the same ground, so the pair reads as one surface. */
28
36
  const Solid = /* @__PURE__ */ (0, react_1.createContext)(false);
29
- function Popover({ offset = DEFAULT_OFFSET, placement, ...props }) {
37
+ function Popover({ offset, placement, ...props }) {
38
+ const density = (0, density_1.useDensity)();
39
+ offset ??= density === 'compact' ? 8 : DEFAULT_OFFSET;
30
40
  const [placed, setPlaced] = (0, react_1.useState)({});
31
41
  const publish = (0, react_1.useCallback)((p) => setPlaced((prev) => ({ ...prev, ...p })), []);
32
42
  return ((0, jsx_runtime_1.jsx)(Publish.Provider, { value: publish, children: (0, jsx_runtime_1.jsx)(gui_1.Popover, { offset: placed.offset ?? offset, placement: (0, place_1.place)(placement ?? DEFAULT_SIDE, placed.align), ...props }) }));
@@ -37,12 +47,18 @@ const PopoverAnchor = gui_1.Popover.Anchor;
37
47
  exports.PopoverAnchor = PopoverAnchor;
38
48
  const PopoverClose = gui_1.Popover.Close;
39
49
  exports.PopoverClose = PopoverClose;
40
- const PopoverContent = ({ sideOffset = DEFAULT_OFFSET, align, solid, ...props }) => {
50
+ const PopoverContent = ({ sideOffset, align, solid, size, arrow = false, children, ...props }) => {
41
51
  const themeName = (0, portal_theme_1.useThemeName)();
52
+ const density = (0, density_1.useDensity)();
42
53
  const publish = (0, react_1.useContext)(Publish);
43
54
  const inherited = (0, react_1.useContext)(Solid);
44
55
  const opaque = solid ?? inherited;
45
- (0, react_1.useEffect)(() => publish?.({ offset: sideOffset, align }), [publish, sideOffset, align]);
46
- return ((0, jsx_runtime_1.jsx)(Solid.Provider, { value: opaque, children: (0, jsx_runtime_1.jsx)(portal_theme_1.PortalTheme, { name: themeName, children: (0, jsx_runtime_1.jsx)(gui_1.Popover.Content, { ...(0, slot_1.slot)('popover-content'), ...(opaque ? { 'data-material': 'solid' } : null), bg: opaque ? 'var(--popover)' : '$panel', borderWidth: 1, borderColor: "$borderColor", rounded: "$4", p: "$4", width: 288, ...props }) }) }));
56
+ const small = (size ?? (density === 'compact' ? 'sm' : 'default')) === 'sm';
57
+ const offset = sideOffset ?? (density === 'compact' ? 8 : DEFAULT_OFFSET);
58
+ (0, react_1.useEffect)(() => publish?.({ offset, align }), [publish, offset, align]);
59
+ const ground = opaque ? 'var(--popover)' : '$panel';
60
+ return ((0, jsx_runtime_1.jsx)(Solid.Provider, { value: opaque, children: (0, jsx_runtime_1.jsx)(portal_theme_1.PortalTheme, { name: themeName, children: (0, jsx_runtime_1.jsx)(density_1.Density, { value: density, children: (0, jsx_runtime_1.jsxs)(gui_1.Popover.Content, { ...(0, slot_1.slot)('popover-content'), ...(opaque ? { 'data-material': 'solid' } : null), ...(small ? { 'data-size': 'sm' } : null), bg: ground, borderWidth: 1, borderColor: "$borderColor", rounded: "$4", ...(small
61
+ ? { p: '$2', gap: '$1', maxW: 'var(--hanzogui-popper-available-width, 100vw)' }
62
+ : { p: '$4', width: 288 }), ...props, children: [arrow ? (0, jsx_runtime_1.jsx)(gui_1.Popover.Arrow, { ...(0, slot_1.slot)('popover-arrow'), size: 8.5, bg: ground, borderWidth: 1, borderColor: "$borderColor" }) : null, children] }) }) }) }));
47
63
  };
48
64
  exports.PopoverContent = PopoverContent;
@@ -8,6 +8,13 @@
8
8
  * gui keeps BOTH placement facts on the popper ROOT — `offset` and `placement`
9
9
  * — while the compound API spells them on Content, as `sideOffset` and `align`.
10
10
  * One value, one owner: the root holds them, Content publishes into it.
11
+ *
12
+ * `size="sm"` is the record panel (twenty-ui's Popover, MIT, NOTICE): an 8px
13
+ * inset, sized to its content up to the room there is, 8px clear of its anchor.
14
+ * A `<Density value="compact">` makes it the default for a panel that names no
15
+ * size. The default stays the 16px-inset, 288-wide panel every surface has. The
16
+ * fill stays Hanzo's near-opaque panel — not twenty-ui's translucent glass.
17
+ * `arrow` adds a 12×6 pointer in the panel's own fill and edge.
11
18
  */
12
19
  import { Popover as GuiPopover } from '@hanzo/gui';
13
20
  import { type ComponentProps } from 'react';
@@ -30,7 +37,11 @@ export type PopoverContentProps = ComponentProps<typeof GuiPopover.Content> & {
30
37
  * lit edge, and any popover opened from inside it is solid too.
31
38
  */
32
39
  solid?: boolean;
40
+ /** `sm`: an 8px inset, content-sized up to the room there is. Unset, the nearest `<Density>` decides. */
41
+ size?: 'default' | 'sm';
42
+ /** A 12×6 pointer toward the anchor, in the panel's fill (gui's arrow is a turned square: 8.5 across is 12 wide, 6 out). */
43
+ arrow?: boolean;
33
44
  };
34
- declare const PopoverContent: ({ sideOffset, align, solid, ...props }: PopoverContentProps) => import("react").JSX.Element;
45
+ declare const PopoverContent: ({ sideOffset, align, solid, size, arrow, children, ...props }: PopoverContentProps) => import("react").JSX.Element;
35
46
  export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverClose };
36
47
  //# sourceMappingURL=popover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/popover.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,OAAO,CAAA;AAEd,OAAO,EAAS,KAAK,KAAK,EAAE,MAAM,SAAS,CAAA;AAM3C,YAAY,EAAE,KAAK,EAAE,CAAA;AAWrB,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAElG,iBAAS,OAAO,CAAC,EAAE,MAAuB,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,+BAY9E;AAED,QAAA,MAAM,cAAc,EAAE,OAAO,UAAU,CAAC,OAA4B,CAAA;AACpE,QAAA,MAAM,aAAa,EAAE,OAAO,UAAU,CAAC,MAA0B,CAAA;AACjE,QAAA,MAAM,YAAY,EAAE,OAAO,UAAU,CAAC,KAAwB,CAAA;AAE9D,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,QAAA,MAAM,cAAc,2CAA6D,mBAAmB,gCAuBnG,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/popover.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,YAAY,CAAA;AAElD,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,OAAO,CAAA;AAEd,OAAO,EAAS,KAAK,KAAK,EAAE,MAAM,SAAS,CAAA;AAM3C,YAAY,EAAE,KAAK,EAAE,CAAA;AAWrB,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAElG,iBAAS,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,+BAc7D;AAED,QAAA,MAAM,cAAc,EAAE,OAAO,UAAU,CAAC,OAA4B,CAAA;AACpE,QAAA,MAAM,aAAa,EAAE,OAAO,UAAU,CAAC,MAA0B,CAAA;AACjE,QAAA,MAAM,YAAY,EAAE,OAAO,UAAU,CAAC,KAAwB,CAAA;AAE9D,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,yGAAyG;IACzG,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACvB,4HAA4H;IAC5H,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,QAAA,MAAM,cAAc,kEAA2E,mBAAmB,gCAkCjH,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,CAAA"}
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  /**
4
4
  * Popover — floating panel anchored to a trigger.
5
5
  *
@@ -10,8 +10,16 @@ import { jsx as _jsx } from "react/jsx-runtime";
10
10
  * gui keeps BOTH placement facts on the popper ROOT — `offset` and `placement`
11
11
  * — while the compound API spells them on Content, as `sideOffset` and `align`.
12
12
  * One value, one owner: the root holds them, Content publishes into it.
13
+ *
14
+ * `size="sm"` is the record panel (twenty-ui's Popover, MIT, NOTICE): an 8px
15
+ * inset, sized to its content up to the room there is, 8px clear of its anchor.
16
+ * A `<Density value="compact">` makes it the default for a panel that names no
17
+ * size. The default stays the 16px-inset, 288-wide panel every surface has. The
18
+ * fill stays Hanzo's near-opaque panel — not twenty-ui's translucent glass.
19
+ * `arrow` adds a 12×6 pointer in the panel's own fill and edge.
13
20
  */
14
21
  import { Popover as GuiPopover } from '@hanzo/gui';
22
+ import { Density, useDensity } from './density.js';
15
23
  import { createContext, useCallback, useContext, useEffect, useState, } from 'react';
16
24
  import { PortalTheme, useThemeName } from '../../product/menu/portal-theme.js';
17
25
  import { place } from './place.js';
@@ -22,7 +30,9 @@ const Publish = /* @__PURE__ */ createContext(null);
22
30
  /** Whether the panel this one opened from is solid. A list opened inside a solid
23
31
  * panel stands on the same ground, so the pair reads as one surface. */
24
32
  const Solid = /* @__PURE__ */ createContext(false);
25
- function Popover({ offset = DEFAULT_OFFSET, placement, ...props }) {
33
+ function Popover({ offset, placement, ...props }) {
34
+ const density = useDensity();
35
+ offset ??= density === 'compact' ? 8 : DEFAULT_OFFSET;
26
36
  const [placed, setPlaced] = useState({});
27
37
  const publish = useCallback((p) => setPlaced((prev) => ({ ...prev, ...p })), []);
28
38
  return (_jsx(Publish.Provider, { value: publish, children: _jsx(GuiPopover, { offset: placed.offset ?? offset, placement: place(placement ?? DEFAULT_SIDE, placed.align), ...props }) }));
@@ -30,13 +40,19 @@ function Popover({ offset = DEFAULT_OFFSET, placement, ...props }) {
30
40
  const PopoverTrigger = GuiPopover.Trigger;
31
41
  const PopoverAnchor = GuiPopover.Anchor;
32
42
  const PopoverClose = GuiPopover.Close;
33
- const PopoverContent = ({ sideOffset = DEFAULT_OFFSET, align, solid, ...props }) => {
43
+ const PopoverContent = ({ sideOffset, align, solid, size, arrow = false, children, ...props }) => {
34
44
  const themeName = useThemeName();
45
+ const density = useDensity();
35
46
  const publish = useContext(Publish);
36
47
  const inherited = useContext(Solid);
37
48
  const opaque = solid ?? inherited;
38
- useEffect(() => publish?.({ offset: sideOffset, align }), [publish, sideOffset, align]);
39
- return (_jsx(Solid.Provider, { value: opaque, children: _jsx(PortalTheme, { name: themeName, children: _jsx(GuiPopover.Content, { ...slot('popover-content'), ...(opaque ? { 'data-material': 'solid' } : null), bg: opaque ? 'var(--popover)' : '$panel', borderWidth: 1, borderColor: "$borderColor", rounded: "$4", p: "$4", width: 288, ...props }) }) }));
49
+ const small = (size ?? (density === 'compact' ? 'sm' : 'default')) === 'sm';
50
+ const offset = sideOffset ?? (density === 'compact' ? 8 : DEFAULT_OFFSET);
51
+ useEffect(() => publish?.({ offset, align }), [publish, offset, align]);
52
+ const ground = opaque ? 'var(--popover)' : '$panel';
53
+ return (_jsx(Solid.Provider, { value: opaque, children: _jsx(PortalTheme, { name: themeName, children: _jsx(Density, { value: density, children: _jsxs(GuiPopover.Content, { ...slot('popover-content'), ...(opaque ? { 'data-material': 'solid' } : null), ...(small ? { 'data-size': 'sm' } : null), bg: ground, borderWidth: 1, borderColor: "$borderColor", rounded: "$4", ...(small
54
+ ? { p: '$2', gap: '$1', maxW: 'var(--hanzogui-popper-available-width, 100vw)' }
55
+ : { p: '$4', width: 288 }), ...props, children: [arrow ? _jsx(GuiPopover.Arrow, { ...slot('popover-arrow'), size: 8.5, bg: ground, borderWidth: 1, borderColor: "$borderColor" }) : null, children] }) }) }) }));
40
56
  };
41
57
  export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverClose };
42
58
  //# sourceMappingURL=popover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"popover.js","sourceRoot":"","sources":["../../../src/backends/gui/popover.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"popover.js","sourceRoot":"","sources":["../../../src/backends/gui/popover.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ 'use client';"use strict";
2
+ 'use client';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ProgressRing = ProgressRing;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ /**
7
+ * ProgressRing — a small circular progress, for a row that has no room for a
8
+ * bar: the context left in a composer, a sync that is 40% through, a metric.
9
+ *
10
+ * After twenty-ui's ProgressRing (MIT, NOTICE): 14px (`sm`) or 16px (`md`), a
11
+ * 2px stroke starting at 12 o'clock, the track on the strong edge rung and the
12
+ * indicator on the accent (`--primary`, monochrome until an org picks one).
13
+ * The indicator's dash eases over 300ms with round caps (square at 0%, where a
14
+ * round cap would draw a dot). `value={null}` shows a quarter and turns once
15
+ * every 1.5s (`data-motion="orbit"`, still under reduced motion).
16
+ *
17
+ * Children are a label drawn to the LEFT of the ring, 8px from it — a value
18
+ * ("40%") or a name — and also name the progressbar for assistive technology
19
+ * unless `aria-label` says otherwise.
20
+ *
21
+ * A plain <svg>, as Donut and the grid patterns are: the ring is drawn, not
22
+ * laid out, and gui tokens reach it as the custom properties gui emits.
23
+ */
24
+ const gui_1 = require("@hanzo/gui");
25
+ const react_1 = require("react");
26
+ const slot_1 = require("./slot.cjs");
27
+ const SIZE = { sm: 14, md: 16 };
28
+ const STROKE = 2;
29
+ function ProgressRing({ value, size = 'md', barColor = 'var(--primary)', children, 'aria-label': label, ...props }) {
30
+ const id = (0, react_1.useId)();
31
+ const d = SIZE[size];
32
+ const r = (d - STROKE) / 2;
33
+ const circ = 2 * Math.PI * r;
34
+ const indeterminate = value === null;
35
+ const v = indeterminate ? 25 : Math.max(0, Math.min(100, value));
36
+ const offset = circ * (1 - v / 100);
37
+ return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { ...(0, slot_1.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 ? ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { id: `${id}-label`, size: "$1", color: "$ink", numberOfLines: 1, textAlign: "right", children: children })) : null, (0, jsx_runtime_1.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: [(0, jsx_runtime_1.jsx)("circle", { cx: d / 2, cy: d / 2, r: r, fill: "none", stroke: "var(--rim)", strokeWidth: STROKE }), (0, jsx_runtime_1.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' } })] })] }));
38
+ }
@@ -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