@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
@@ -1,20 +1,90 @@
1
1
  'use client';"use strict";
2
2
  'use client';
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.settle = exports.parseCount = exports.formatCount = void 0;
4
5
  exports.Stepper = Stepper;
5
6
  const jsx_runtime_1 = require("react/jsx-runtime");
6
7
  /**
7
- * Stepper — a whole number with a button either side.
8
+ * Stepper — a number with a button either side.
8
9
  *
9
10
  * Both buttons are named for the thing counted (`label`), the count is a live
10
11
  * region, and each button disables at its bound instead of silently clamping.
12
+ *
13
+ * `editable` makes the count a field a person can type into, twenty-ui's
14
+ * NumberStepper (MIT, NOTICE): a 64px centred value at the medium weight that
15
+ * commits on Enter or blur — read leniently (grouping stripped, either decimal
16
+ * mark), held to the bounds, rounded to `step` and to `decimals` — and shows
17
+ * Latin digits, grouped only from five digits up. It is on by default under
18
+ * `<Density value="compact">`, where the buttons are 24px; a regular surface
19
+ * keeps the plain count it always had. `readOnly` keeps the value and the
20
+ * layout but lets neither the buttons nor the field change it.
11
21
  */
12
22
  const gui_1 = require("@hanzo/gui");
13
23
  const lucide_icons_2_1 = require("@hanzogui/lucide-icons-2");
24
+ const react_1 = require("react");
14
25
  const button_1 = require("./button.cjs");
26
+ const input_1 = require("./input.cjs");
15
27
  const layout_1 = require("./layout.cjs");
16
28
  const slot_1 = require("./slot.cjs");
17
- function Stepper({ label, value, onChange, min = 0, max = Number.MAX_SAFE_INTEGER }) {
29
+ const density_1 = require("./density.cjs");
30
+ /** Up to `decimals` fraction digits, Latin digits, grouping from five digits up. */
31
+ const formatCount = (n, decimals = 0) => new Intl.NumberFormat('en-US', {
32
+ maximumFractionDigits: Math.min(Math.max(decimals, 0), 15),
33
+ useGrouping: Math.abs(n) >= 10000,
34
+ }).format(n);
35
+ exports.formatCount = formatCount;
36
+ /**
37
+ * What a person typed, as a number, or `null` when it is not one. Spaces are
38
+ * dropped. With both marks present the LAST is the decimal one (`1,234.5` and
39
+ * `1.234,5` both read 1234.5); a comma alone is a decimal mark unless it groups
40
+ * three digits (`12,345`).
41
+ */
42
+ const parseCount = (text) => {
43
+ const t = text.trim().replace(/[\s_]/g, '');
44
+ if (!t)
45
+ return null;
46
+ const dot = t.lastIndexOf('.');
47
+ const comma = t.lastIndexOf(',');
48
+ const normal = dot >= 0 && comma >= 0
49
+ ? dot > comma
50
+ ? t.replace(/,/g, '')
51
+ : t.replace(/\./g, '').replace(',', '.')
52
+ : comma >= 0
53
+ ? t.replace(/,(?=\d{3}(\D|$))/g, '').replace(',', '.')
54
+ : t;
55
+ if (!/^[-+]?(\d+\.?\d*|\.\d+)$/.test(normal))
56
+ return null;
57
+ const n = Number(normal);
58
+ return Number.isFinite(n) ? n : null;
59
+ };
60
+ exports.parseCount = parseCount;
61
+ /** A value held to the bounds and rounded to the step (from `min`) and the decimals. */
62
+ const settle = (n, { min, max, step, decimals }) => {
63
+ const stepped = step > 0 ? min + Math.round((n - min) / step) * step : n;
64
+ const bounded = Math.min(max, Math.max(min, stepped));
65
+ const f = 10 ** Math.min(Math.max(decimals, 0), 15);
66
+ return Math.round(bounded * f) / f;
67
+ };
68
+ exports.settle = settle;
69
+ function Stepper({ label, value, onChange, min = 0, max = Number.MAX_SAFE_INTEGER, step = 1, decimals = 0, editable, readOnly = false, }) {
18
70
  const what = label.toLowerCase();
19
- return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { ...(0, slot_1.slot)('stepper'), role: "group", "aria-label": label, items: "center", gap: "$1", children: [(0, jsx_runtime_1.jsx)(button_1.Button, { variant: "outline", size: "icon", type: "button", "aria-label": `Fewer ${what}`, disabled: value <= min, onClick: () => onChange(value - 1), children: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.Minus, { size: 16 }) }), (0, jsx_runtime_1.jsx)(layout_1.SizableText, { role: "status", "aria-live": "polite", minW: 32, text: "center", children: value }), (0, jsx_runtime_1.jsx)(button_1.Button, { variant: "outline", size: "icon", type: "button", "aria-label": `More ${what}`, disabled: value >= max, onClick: () => onChange(value + 1), children: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.Plus, { size: 16 }) })] }));
71
+ const compact = (0, density_1.useDensity)() === 'compact';
72
+ const typing = editable ?? compact;
73
+ const size = compact ? 'icon-xs' : 'icon';
74
+ const [draft, setDraft] = (0, react_1.useState)(() => (0, exports.formatCount)(value, decimals));
75
+ (0, react_1.useEffect)(() => setDraft((0, exports.formatCount)(value, decimals)), [value, decimals]);
76
+ const commit = () => {
77
+ const n = (0, exports.parseCount)(draft);
78
+ if (n == null)
79
+ return setDraft((0, exports.formatCount)(value, decimals));
80
+ const next = (0, exports.settle)(n, { min, max, step, decimals });
81
+ setDraft((0, exports.formatCount)(next, decimals));
82
+ if (next !== value)
83
+ onChange(next);
84
+ };
85
+ const move = (dir) => onChange((0, exports.settle)(value + dir * step, { min, max, step, decimals }));
86
+ return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { ...(0, slot_1.slot)('stepper'), role: "group", "aria-label": label, items: "center", gap: "$1", children: [(0, jsx_runtime_1.jsx)(button_1.Button, { variant: "outline", size: size, type: "button", "aria-label": `Fewer ${what}`, disabled: value <= min, ...(readOnly ? { 'aria-disabled': true, opacity: 0.5, pointerEvents: 'none' } : null), onClick: () => move(-1), children: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.Minus, { size: 16 }) }), typing ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(input_1.Input, { ...(0, slot_1.slot)('stepper-value'), "aria-label": label, size: compact ? 'sm' : 'default',
87
+ // 64 holds a short count; a longer one widens the field rather
88
+ // than clipping its own digits (about 8px a character at 13px).
89
+ width: Math.max(64, draft.length * 8 + 20), text: "center", fontWeight: "500", inputMode: decimals > 0 ? 'decimal' : 'numeric', value: draft, readOnly: readOnly, onChangeText: (t) => setDraft(t), onBlur: commit, onSubmitEditing: commit }), (0, jsx_runtime_1.jsx)(gui_1.VisuallyHidden, { children: (0, jsx_runtime_1.jsx)(layout_1.SizableText, { role: "status", "aria-live": "polite", children: (0, exports.formatCount)(value, decimals) }) })] })) : ((0, jsx_runtime_1.jsx)(layout_1.SizableText, { role: "status", "aria-live": "polite", minW: 32, text: "center", children: decimals > 0 ? (0, exports.formatCount)(value, decimals) : value })), (0, jsx_runtime_1.jsx)(button_1.Button, { variant: "outline", size: size, type: "button", "aria-label": `More ${what}`, disabled: value >= max, ...(readOnly ? { 'aria-disabled': true, opacity: 0.5, pointerEvents: 'none' } : null), onClick: () => move(1), children: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.Plus, { size: 16 }) })] }));
20
90
  }
@@ -5,6 +5,30 @@ export interface StepperProps {
5
5
  onChange: (n: number) => void;
6
6
  min?: number;
7
7
  max?: number;
8
+ /** How far one press moves the value. */
9
+ step?: number;
10
+ /** Fraction digits a typed value keeps (0: whole numbers). */
11
+ decimals?: number;
12
+ /** The count is a field. Default: on under a compact density, off elsewhere. */
13
+ editable?: boolean;
14
+ /** Shown and announced, never changed. */
15
+ readOnly?: boolean;
8
16
  }
9
- export declare function Stepper({ label, value, onChange, min, max }: StepperProps): import("react").JSX.Element;
17
+ /** Up to `decimals` fraction digits, Latin digits, grouping from five digits up. */
18
+ export declare const formatCount: (n: number, decimals?: number) => string;
19
+ /**
20
+ * What a person typed, as a number, or `null` when it is not one. Spaces are
21
+ * dropped. With both marks present the LAST is the decimal one (`1,234.5` and
22
+ * `1.234,5` both read 1234.5); a comma alone is a decimal mark unless it groups
23
+ * three digits (`12,345`).
24
+ */
25
+ export declare const parseCount: (text: string) => number | null;
26
+ /** A value held to the bounds and rounded to the step (from `min`) and the decimals. */
27
+ export declare const settle: (n: number, { min, max, step, decimals }: {
28
+ min: number;
29
+ max: number;
30
+ step: number;
31
+ decimals: number;
32
+ }) => number;
33
+ export declare function Stepper({ label, value, onChange, min, max, step, decimals, editable, readOnly, }: StepperProps): import("react").JSX.Element;
10
34
  //# sourceMappingURL=stepper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stepper.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/stepper.tsx"],"names":[],"mappings":"AAcA,MAAM,WAAW,YAAY;IAC3B,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAO,EAAE,GAA6B,EAAE,EAAE,YAAY,+BAevG"}
1
+ {"version":3,"file":"stepper.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/stepper.tsx"],"names":[],"mappings":"AA0BA,MAAM,WAAW,YAAY;IAC3B,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,oFAAoF;AACpF,eAAO,MAAM,WAAW,MAAO,MAAM,8BAIvB,CAAA;AAEd;;;;;GAKG;AACH,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,MAAM,GAAG,IAgBlD,CAAA;AAED,wFAAwF;AACxF,eAAO,MAAM,MAAM,MAAO,MAAM,gCAAgC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,WAK3H,CAAA;AAED,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,GAAO,EACP,GAA6B,EAC7B,IAAQ,EACR,QAAY,EACZ,QAAQ,EACR,QAAgB,GACjB,EAAE,YAAY,+BAyEd"}
@@ -1,18 +1,84 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  /**
4
- * Stepper — a whole number with a button either side.
4
+ * Stepper — a number with a button either side.
5
5
  *
6
6
  * Both buttons are named for the thing counted (`label`), the count is a live
7
7
  * region, and each button disables at its bound instead of silently clamping.
8
+ *
9
+ * `editable` makes the count a field a person can type into, twenty-ui's
10
+ * NumberStepper (MIT, NOTICE): a 64px centred value at the medium weight that
11
+ * commits on Enter or blur — read leniently (grouping stripped, either decimal
12
+ * mark), held to the bounds, rounded to `step` and to `decimals` — and shows
13
+ * Latin digits, grouped only from five digits up. It is on by default under
14
+ * `<Density value="compact">`, where the buttons are 24px; a regular surface
15
+ * keeps the plain count it always had. `readOnly` keeps the value and the
16
+ * layout but lets neither the buttons nor the field change it.
8
17
  */
9
- import { XStack } from '@hanzo/gui';
18
+ import { VisuallyHidden, XStack } from '@hanzo/gui';
10
19
  import { Minus, Plus } from '@hanzogui/lucide-icons-2';
20
+ import { useEffect, useState } from 'react';
11
21
  import { Button } from './button.js';
22
+ import { Input } from './input.js';
12
23
  import { SizableText } from './layout.js';
13
24
  import { slot } from './slot.js';
14
- export function Stepper({ label, value, onChange, min = 0, max = Number.MAX_SAFE_INTEGER }) {
25
+ import { useDensity } from './density.js';
26
+ /** Up to `decimals` fraction digits, Latin digits, grouping from five digits up. */
27
+ export const formatCount = (n, decimals = 0) => new Intl.NumberFormat('en-US', {
28
+ maximumFractionDigits: Math.min(Math.max(decimals, 0), 15),
29
+ useGrouping: Math.abs(n) >= 10000,
30
+ }).format(n);
31
+ /**
32
+ * What a person typed, as a number, or `null` when it is not one. Spaces are
33
+ * dropped. With both marks present the LAST is the decimal one (`1,234.5` and
34
+ * `1.234,5` both read 1234.5); a comma alone is a decimal mark unless it groups
35
+ * three digits (`12,345`).
36
+ */
37
+ export const parseCount = (text) => {
38
+ const t = text.trim().replace(/[\s_]/g, '');
39
+ if (!t)
40
+ return null;
41
+ const dot = t.lastIndexOf('.');
42
+ const comma = t.lastIndexOf(',');
43
+ const normal = dot >= 0 && comma >= 0
44
+ ? dot > comma
45
+ ? t.replace(/,/g, '')
46
+ : t.replace(/\./g, '').replace(',', '.')
47
+ : comma >= 0
48
+ ? t.replace(/,(?=\d{3}(\D|$))/g, '').replace(',', '.')
49
+ : t;
50
+ if (!/^[-+]?(\d+\.?\d*|\.\d+)$/.test(normal))
51
+ return null;
52
+ const n = Number(normal);
53
+ return Number.isFinite(n) ? n : null;
54
+ };
55
+ /** A value held to the bounds and rounded to the step (from `min`) and the decimals. */
56
+ export const settle = (n, { min, max, step, decimals }) => {
57
+ const stepped = step > 0 ? min + Math.round((n - min) / step) * step : n;
58
+ const bounded = Math.min(max, Math.max(min, stepped));
59
+ const f = 10 ** Math.min(Math.max(decimals, 0), 15);
60
+ return Math.round(bounded * f) / f;
61
+ };
62
+ export function Stepper({ label, value, onChange, min = 0, max = Number.MAX_SAFE_INTEGER, step = 1, decimals = 0, editable, readOnly = false, }) {
15
63
  const what = label.toLowerCase();
16
- return (_jsxs(XStack, { ...slot('stepper'), role: "group", "aria-label": label, items: "center", gap: "$1", children: [_jsx(Button, { variant: "outline", size: "icon", type: "button", "aria-label": `Fewer ${what}`, disabled: value <= min, onClick: () => onChange(value - 1), children: _jsx(Minus, { size: 16 }) }), _jsx(SizableText, { role: "status", "aria-live": "polite", minW: 32, text: "center", children: value }), _jsx(Button, { variant: "outline", size: "icon", type: "button", "aria-label": `More ${what}`, disabled: value >= max, onClick: () => onChange(value + 1), children: _jsx(Plus, { size: 16 }) })] }));
64
+ const compact = useDensity() === 'compact';
65
+ const typing = editable ?? compact;
66
+ const size = compact ? 'icon-xs' : 'icon';
67
+ const [draft, setDraft] = useState(() => formatCount(value, decimals));
68
+ useEffect(() => setDraft(formatCount(value, decimals)), [value, decimals]);
69
+ const commit = () => {
70
+ const n = parseCount(draft);
71
+ if (n == null)
72
+ return setDraft(formatCount(value, decimals));
73
+ const next = settle(n, { min, max, step, decimals });
74
+ setDraft(formatCount(next, decimals));
75
+ if (next !== value)
76
+ onChange(next);
77
+ };
78
+ const move = (dir) => onChange(settle(value + dir * step, { min, max, step, decimals }));
79
+ return (_jsxs(XStack, { ...slot('stepper'), role: "group", "aria-label": label, items: "center", gap: "$1", children: [_jsx(Button, { variant: "outline", size: size, type: "button", "aria-label": `Fewer ${what}`, disabled: value <= min, ...(readOnly ? { 'aria-disabled': true, opacity: 0.5, pointerEvents: 'none' } : null), onClick: () => move(-1), children: _jsx(Minus, { size: 16 }) }), typing ? (_jsxs(_Fragment, { children: [_jsx(Input, { ...slot('stepper-value'), "aria-label": label, size: compact ? 'sm' : 'default',
80
+ // 64 holds a short count; a longer one widens the field rather
81
+ // than clipping its own digits (about 8px a character at 13px).
82
+ width: Math.max(64, draft.length * 8 + 20), text: "center", fontWeight: "500", inputMode: decimals > 0 ? 'decimal' : 'numeric', value: draft, readOnly: readOnly, onChangeText: (t) => setDraft(t), onBlur: commit, onSubmitEditing: commit }), _jsx(VisuallyHidden, { children: _jsx(SizableText, { role: "status", "aria-live": "polite", children: formatCount(value, decimals) }) })] })) : (_jsx(SizableText, { role: "status", "aria-live": "polite", minW: 32, text: "center", children: decimals > 0 ? formatCount(value, decimals) : value })), _jsx(Button, { variant: "outline", size: size, type: "button", "aria-label": `More ${what}`, disabled: value >= max, ...(readOnly ? { 'aria-disabled': true, opacity: 0.5, pointerEvents: 'none' } : null), onClick: () => move(1), children: _jsx(Plus, { size: 16 }) })] }));
17
83
  }
18
84
  //# sourceMappingURL=stepper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stepper.js","sourceRoot":"","sources":["../../../src/backends/gui/stepper.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAW7B,MAAM,UAAU,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,gBAAgB,EAAgB;IACtG,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;IAChC,OAAO,CACL,MAAC,MAAM,OAAK,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAC,OAAO,gBAAa,KAAK,EAAE,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,aAClF,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,gBAAa,SAAS,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,IAAI,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,YACzI,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,GAAI,GACZ,EACT,KAAC,WAAW,IAAC,IAAI,EAAC,QAAQ,eAAW,QAAQ,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAC,QAAQ,YAClE,KAAK,GACM,EACd,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,gBAAa,QAAQ,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,IAAI,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,YACxI,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GACX,IACF,CACV,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"stepper.js","sourceRoot":"","sources":["../../../src/backends/gui/stepper.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAmBtC,oFAAoF;AACpF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAS,EAAE,QAAQ,GAAG,CAAC,EAAE,EAAE,CACrD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;IAC7B,qBAAqB,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IAC1D,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK;CAClC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAEd;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAiB,EAAE;IACxD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAC3C,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACnB,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAChC,MAAM,MAAM,GACV,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;QACpB,CAAC,CAAC,GAAG,GAAG,KAAK;YACX,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACrB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;QAC1C,CAAC,CAAC,KAAK,IAAI,CAAC;YACV,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;YACtD,CAAC,CAAC,CAAC,CAAA;IACT,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAA;IACzD,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IACxB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACtC,CAAC,CAAA;AAED,wFAAwF;AACxF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAgE,EAAE,EAAE;IAC9H,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;IACrD,MAAM,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACnD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AACpC,CAAC,CAAA;AAED,MAAM,UAAU,OAAO,CAAC,EACtB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,GAAG,GAAG,CAAC,EACP,GAAG,GAAG,MAAM,CAAC,gBAAgB,EAC7B,IAAI,GAAG,CAAC,EACR,QAAQ,GAAG,CAAC,EACZ,QAAQ,EACR,QAAQ,GAAG,KAAK,GACH;IACb,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;IAChC,MAAM,OAAO,GAAG,UAAU,EAAE,KAAK,SAAS,CAAA;IAC1C,MAAM,MAAM,GAAG,QAAQ,IAAI,OAAO,CAAA;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;IACzC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;IACtE,SAAS,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE1E,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;QAC3B,IAAI,CAAC,IAAI,IAAI;YAAE,OAAO,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;QAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QACpD,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;QACrC,IAAI,IAAI,KAAK,KAAK;YAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC,CAAA;IACD,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;IAEhG,OAAO,CACL,MAAC,MAAM,OAAK,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAC,OAAO,gBAAa,KAAK,EAAE,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,aAClF,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,QAAQ,gBACD,SAAS,IAAI,EAAE,EAC3B,QAAQ,EAAE,KAAK,IAAI,GAAG,KAClB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACtF,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAEvB,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,GAAI,GACZ,EACR,MAAM,CAAC,CAAC,CAAC,CACR,8BACE,KAAC,KAAK,OACA,IAAI,CAAC,eAAe,CAAC,gBACb,KAAK,EACjB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;wBAChC,+DAA+D;wBAC/D,gEAAgE;wBAChE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,EAC1C,IAAI,EAAC,QAAQ,EACb,UAAU,EAAC,KAAK,EAChB,SAAS,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAC/C,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EACxC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GACvB,EAEF,KAAC,cAAc,cACb,KAAC,WAAW,IAAC,IAAI,EAAC,QAAQ,eAAW,QAAQ,YAC1C,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,GACjB,GACC,IAChB,CACJ,CAAC,CAAC,CAAC,CACF,KAAC,WAAW,IAAC,IAAI,EAAC,QAAQ,eAAW,QAAQ,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAC,QAAQ,YAClE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GACxC,CACf,EACD,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,QAAQ,gBACD,QAAQ,IAAI,EAAE,EAC1B,QAAQ,EAAE,KAAK,IAAI,GAAG,KAClB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACtF,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,YAEtB,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GACX,IACF,CACV,CAAA;AACH,CAAC"}
@@ -50,28 +50,43 @@ const jsx_runtime_1 = require("react/jsx-runtime");
50
50
  * this file was measured — both thumbs came out the same colour as the track
51
51
  * behind them, off and on, exactly as 8.0.57 did. A flat name cannot say "and
52
52
  * the opposite of that, one level down", so this file names rungs on purpose.
53
+ *
54
+ * THREE SIZES, and the record two are twenty-ui's (MIT, NOTICE): `md` a 32×20
55
+ * pill with a 16px thumb, `sm` 24×16 with a 12px thumb, each with no edge and
56
+ * the thumb 2px in. `default` stays the 36×20 pill with its hairline; under
57
+ * `<Density value="compact">` a switch that names no size is `md`. The tokens do
58
+ * not change with the size — the inverting thumb works on every one.
53
59
  */
54
60
  const gui_1 = require("@hanzo/gui");
55
61
  const slot_1 = require("./slot.cjs");
56
62
  const gesture_1 = require("./gesture.cjs");
57
- const TRACK_W = 36;
58
- const TRACK_H = 20;
59
- const THUMB = 16;
60
- const Switch = ({ disabled, ...props }) => ((0, jsx_runtime_1.jsx)(gui_1.Switch, { ...(0, slot_1.slot)('switch'), width: TRACK_W, height: TRACK_H, minHeight: TRACK_H, padding: 2, flexShrink: 0, backgroundColor: "$color3",
61
- // Without an explicit border the UA's 2px outset button border shows.
62
- borderWidth: 1, borderColor: "$borderColor", activeStyle: { backgroundColor: '$color12', borderColor: '$color12' },
63
- // Stated rather than left to a `disabledStyle` this backend uses nowhere
64
- // else: a control that ignores its own disabled prop looks identical to a
65
- // live one, and the page this was found on had a disabled switch sitting
66
- // beside eight enabled ones with nothing to tell them apart.
67
- disabled: disabled, opacity: disabled ? 0.5 : 1, cursor: disabled ? 'not-allowed' : 'pointer', ...(0, gesture_1.touch)(TRACK_H, 44, 'y'), ...props, children: (0, jsx_runtime_1.jsx)(gui_1.Switch.Thumb, { ...(0, slot_1.slot)('switch-thumb'), width: THUMB, height: THUMB, backgroundColor: "$color3",
68
- // `bg`, and it is the only one of the three spellings that is both typed
69
- // and correct. The Thumb's activeStyle is typed as the SHORTHAND style set:
70
- // `backgroundColor` paints but is not in that type; `background` is in it
71
- // and compiles to a SEPARATE `_background-` class that races the base
72
- // `_bg-` one on load order rather than replacing it; `bg` replaces it.
73
- // Consumers build with ignoreBuildErrors, so the first would have shipped
74
- // an error nobody sees and the second a colour that lands or does not
75
- // depending on stylesheet order.
76
- activeStyle: { bg: '$color12' } }) }));
63
+ const density_1 = require("./density.cjs");
64
+ /** Each size's track, thumb and edge. The edge is what keeps the UA's button border off. */
65
+ const SIZE = {
66
+ default: { w: 36, h: 20, thumb: 16, edge: 1 },
67
+ md: { w: 32, h: 20, thumb: 16, edge: 0 },
68
+ sm: { w: 24, h: 16, thumb: 12, edge: 0 },
69
+ };
70
+ const Switch = ({ disabled, size, ...props }) => {
71
+ const compact = (0, density_1.useDensity)() === 'compact';
72
+ const box = SIZE[size ?? (compact ? 'md' : 'default')];
73
+ return ((0, jsx_runtime_1.jsx)(gui_1.Switch, { ...(0, slot_1.slot)('switch'), "data-size": size ?? (compact ? 'md' : 'default'), width: box.w, height: box.h, minHeight: box.h, padding: 2, flexShrink: 0, backgroundColor: "$color3",
74
+ // Without an explicit border the UA's 2px outset button border shows; the
75
+ // record sizes draw none and say so with a zero.
76
+ borderWidth: box.edge, borderColor: "$borderColor", activeStyle: { backgroundColor: '$color12', borderColor: '$color12' },
77
+ // Stated rather than left to a `disabledStyle` this backend uses nowhere
78
+ // else: a control that ignores its own disabled prop looks identical to a
79
+ // live one, and the page this was found on had a disabled switch sitting
80
+ // beside eight enabled ones with nothing to tell them apart.
81
+ disabled: disabled, opacity: disabled ? 0.5 : 1, cursor: disabled ? 'not-allowed' : 'pointer', ...(0, gesture_1.touch)(box.h, 44, 'y'), ...props, children: (0, jsx_runtime_1.jsx)(gui_1.Switch.Thumb, { ...(0, slot_1.slot)('switch-thumb'), width: box.thumb, height: box.thumb, backgroundColor: "$color3",
82
+ // `bg`, and it is the only one of the three spellings that is both typed
83
+ // and correct. The Thumb's activeStyle is typed as the SHORTHAND style set:
84
+ // `backgroundColor` paints but is not in that type; `background` is in it
85
+ // and compiles to a SEPARATE `_background-` class that races the base
86
+ // `_bg-` one on load order rather than replacing it; `bg` replaces it.
87
+ // Consumers build with ignoreBuildErrors, so the first would have shipped
88
+ // an error nobody sees and the second a colour that lands or does not
89
+ // depending on stylesheet order.
90
+ activeStyle: { bg: '$color12' } }) }));
91
+ };
77
92
  exports.Switch = Switch;
@@ -45,10 +45,20 @@
45
45
  * this file was measured — both thumbs came out the same colour as the track
46
46
  * behind them, off and on, exactly as 8.0.57 did. A flat name cannot say "and
47
47
  * the opposite of that, one level down", so this file names rungs on purpose.
48
+ *
49
+ * THREE SIZES, and the record two are twenty-ui's (MIT, NOTICE): `md` a 32×20
50
+ * pill with a 16px thumb, `sm` 24×16 with a 12px thumb, each with no edge and
51
+ * the thumb 2px in. `default` stays the 36×20 pill with its hairline; under
52
+ * `<Density value="compact">` a switch that names no size is `md`. The tokens do
53
+ * not change with the size — the inverting thumb works on every one.
48
54
  */
49
55
  import { Switch as GuiSwitch } from '@hanzo/gui';
50
56
  import type { ComponentProps } from 'react';
51
- export type SwitchProps = ComponentProps<typeof GuiSwitch>;
52
- declare const Switch: ({ disabled, ...props }: SwitchProps) => import("react").JSX.Element;
57
+ export type SwitchSize = 'default' | 'md' | 'sm';
58
+ export type SwitchProps = Omit<ComponentProps<typeof GuiSwitch>, 'size'> & {
59
+ /** `default` 36×20; `md` 32×20 and `sm` 24×16, the record pair. Unset, the nearest `<Density>` decides. */
60
+ size?: SwitchSize;
61
+ };
62
+ declare const Switch: ({ disabled, size, ...props }: SwitchProps) => import("react").JSX.Element;
53
63
  export { Switch };
54
64
  //# sourceMappingURL=switch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/switch.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAQ3C,MAAM,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,SAAS,CAAC,CAAA;AAE1D,QAAA,MAAM,MAAM,2BAA4B,WAAW,gCAuClD,CAAA;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
1
+ {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/switch.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAK3C,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAA;AAShD,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,EAAE,MAAM,CAAC,GAAG;IACzE,2GAA2G;IAC3G,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB,CAAA;AAED,QAAA,MAAM,MAAM,iCAAkC,WAAW,gCA6CxD,CAAA;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
@@ -47,29 +47,44 @@ import { jsx as _jsx } from "react/jsx-runtime";
47
47
  * this file was measured — both thumbs came out the same colour as the track
48
48
  * behind them, off and on, exactly as 8.0.57 did. A flat name cannot say "and
49
49
  * the opposite of that, one level down", so this file names rungs on purpose.
50
+ *
51
+ * THREE SIZES, and the record two are twenty-ui's (MIT, NOTICE): `md` a 32×20
52
+ * pill with a 16px thumb, `sm` 24×16 with a 12px thumb, each with no edge and
53
+ * the thumb 2px in. `default` stays the 36×20 pill with its hairline; under
54
+ * `<Density value="compact">` a switch that names no size is `md`. The tokens do
55
+ * not change with the size — the inverting thumb works on every one.
50
56
  */
51
57
  import { Switch as GuiSwitch } from '@hanzo/gui';
52
58
  import { slot } from './slot.js';
53
59
  import { touch } from './gesture.js';
54
- const TRACK_W = 36;
55
- const TRACK_H = 20;
56
- const THUMB = 16;
57
- const Switch = ({ disabled, ...props }) => (_jsx(GuiSwitch, { ...slot('switch'), width: TRACK_W, height: TRACK_H, minHeight: TRACK_H, padding: 2, flexShrink: 0, backgroundColor: "$color3",
58
- // Without an explicit border the UA's 2px outset button border shows.
59
- borderWidth: 1, borderColor: "$borderColor", activeStyle: { backgroundColor: '$color12', borderColor: '$color12' },
60
- // Stated rather than left to a `disabledStyle` this backend uses nowhere
61
- // else: a control that ignores its own disabled prop looks identical to a
62
- // live one, and the page this was found on had a disabled switch sitting
63
- // beside eight enabled ones with nothing to tell them apart.
64
- disabled: disabled, opacity: disabled ? 0.5 : 1, cursor: disabled ? 'not-allowed' : 'pointer', ...touch(TRACK_H, 44, 'y'), ...props, children: _jsx(GuiSwitch.Thumb, { ...slot('switch-thumb'), width: THUMB, height: THUMB, backgroundColor: "$color3",
65
- // `bg`, and it is the only one of the three spellings that is both typed
66
- // and correct. The Thumb's activeStyle is typed as the SHORTHAND style set:
67
- // `backgroundColor` paints but is not in that type; `background` is in it
68
- // and compiles to a SEPARATE `_background-` class that races the base
69
- // `_bg-` one on load order rather than replacing it; `bg` replaces it.
70
- // Consumers build with ignoreBuildErrors, so the first would have shipped
71
- // an error nobody sees and the second a colour that lands or does not
72
- // depending on stylesheet order.
73
- activeStyle: { bg: '$color12' } }) }));
60
+ import { useDensity } from './density.js';
61
+ /** Each size's track, thumb and edge. The edge is what keeps the UA's button border off. */
62
+ const SIZE = {
63
+ default: { w: 36, h: 20, thumb: 16, edge: 1 },
64
+ md: { w: 32, h: 20, thumb: 16, edge: 0 },
65
+ sm: { w: 24, h: 16, thumb: 12, edge: 0 },
66
+ };
67
+ const Switch = ({ disabled, size, ...props }) => {
68
+ const compact = useDensity() === 'compact';
69
+ const box = SIZE[size ?? (compact ? 'md' : 'default')];
70
+ return (_jsx(GuiSwitch, { ...slot('switch'), "data-size": size ?? (compact ? 'md' : 'default'), width: box.w, height: box.h, minHeight: box.h, padding: 2, flexShrink: 0, backgroundColor: "$color3",
71
+ // Without an explicit border the UA's 2px outset button border shows; the
72
+ // record sizes draw none and say so with a zero.
73
+ borderWidth: box.edge, borderColor: "$borderColor", activeStyle: { backgroundColor: '$color12', borderColor: '$color12' },
74
+ // Stated rather than left to a `disabledStyle` this backend uses nowhere
75
+ // else: a control that ignores its own disabled prop looks identical to a
76
+ // live one, and the page this was found on had a disabled switch sitting
77
+ // beside eight enabled ones with nothing to tell them apart.
78
+ disabled: disabled, opacity: disabled ? 0.5 : 1, cursor: disabled ? 'not-allowed' : 'pointer', ...touch(box.h, 44, 'y'), ...props, children: _jsx(GuiSwitch.Thumb, { ...slot('switch-thumb'), width: box.thumb, height: box.thumb, backgroundColor: "$color3",
79
+ // `bg`, and it is the only one of the three spellings that is both typed
80
+ // and correct. The Thumb's activeStyle is typed as the SHORTHAND style set:
81
+ // `backgroundColor` paints but is not in that type; `background` is in it
82
+ // and compiles to a SEPARATE `_background-` class that races the base
83
+ // `_bg-` one on load order rather than replacing it; `bg` replaces it.
84
+ // Consumers build with ignoreBuildErrors, so the first would have shipped
85
+ // an error nobody sees and the second a colour that lands or does not
86
+ // depending on stylesheet order.
87
+ activeStyle: { bg: '$color12' } }) }));
88
+ };
74
89
  export { Switch };
75
90
  //# sourceMappingURL=switch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../src/backends/gui/switch.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,YAAY,CAAA;AAEhD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAEjC,MAAM,OAAO,GAAG,EAAE,CAAA;AAClB,MAAM,OAAO,GAAG,EAAE,CAAA;AAClB,MAAM,KAAK,GAAG,EAAE,CAAA;AAIhB,MAAM,MAAM,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAe,EAAE,EAAE,CAAC,CACtD,KAAC,SAAS,OACJ,IAAI,CAAC,QAAQ,CAAC,EAClB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,CAAC,EACV,UAAU,EAAE,CAAC,EACb,eAAe,EAAC,SAAS;IACzB,sEAAsE;IACtE,WAAW,EAAE,CAAC,EACd,WAAW,EAAC,cAAc,EAC1B,WAAW,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE;IACrE,yEAAyE;IACzE,0EAA0E;IAC1E,yEAAyE;IACzE,6DAA6D;IAC7D,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,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,KACvB,KAAK,YAET,KAAC,SAAS,CAAC,KAAK,OACV,IAAI,CAAC,cAAc,CAAC,EACxB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,KAAK,EACb,eAAe,EAAC,SAAS;QACzB,yEAAyE;QACzE,4EAA4E;QAC5E,0EAA0E;QAC1E,sEAAsE;QACtE,uEAAuE;QACvE,0EAA0E;QAC1E,sEAAsE;QACtE,iCAAiC;QACjC,WAAW,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,GAC/B,GACQ,CACb,CAAA;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
1
+ {"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../src/backends/gui/switch.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,YAAY,CAAA;AAEhD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAItC,4FAA4F;AAC5F,MAAM,IAAI,GAA8E;IACtF,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IAC7C,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;IACxC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;CACzC,CAAA;AAOD,MAAM,MAAM,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,EAAe,EAAE,EAAE;IAC3D,MAAM,OAAO,GAAG,UAAU,EAAE,KAAK,SAAS,CAAA;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;IACtD,OAAO,CACP,KAAC,SAAS,OACJ,IAAI,CAAC,QAAQ,CAAC,eACP,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAC/C,KAAK,EAAE,GAAG,CAAC,CAAC,EACZ,MAAM,EAAE,GAAG,CAAC,CAAC,EACb,SAAS,EAAE,GAAG,CAAC,CAAC,EAChB,OAAO,EAAE,CAAC,EACV,UAAU,EAAE,CAAC,EACb,eAAe,EAAC,SAAS;QACzB,0EAA0E;QAC1E,iDAAiD;QACjD,WAAW,EAAE,GAAG,CAAC,IAAI,EACrB,WAAW,EAAC,cAAc,EAC1B,WAAW,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE;QACrE,yEAAyE;QACzE,0EAA0E;QAC1E,yEAAyE;QACzE,6DAA6D;QAC7D,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,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,KACrB,KAAK,YAET,KAAC,SAAS,CAAC,KAAK,OACV,IAAI,CAAC,cAAc,CAAC,EACxB,KAAK,EAAE,GAAG,CAAC,KAAK,EAChB,MAAM,EAAE,GAAG,CAAC,KAAK,EACjB,eAAe,EAAC,SAAS;YACzB,yEAAyE;YACzE,4EAA4E;YAC5E,0EAA0E;YAC1E,sEAAsE;YACtE,uEAAuE;YACvE,0EAA0E;YAC1E,sEAAsE;YACtE,iCAAiC;YACjC,WAAW,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,GAC/B,GACQ,CACX,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
@@ -3,30 +3,76 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.TabsContent = exports.TabsTrigger = exports.TabsList = exports.Tabs = void 0;
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
- /** Tabs — `TabsTrigger` is gui's `Tabs.Tab`; rows meet the 44px touch floor. */
6
+ /**
7
+ * Tabs — `TabsTrigger` is gui's `Tabs.Tab`; rows meet the 44px touch floor.
8
+ *
9
+ * Two looks. The default is the segmented pill: a 36px track on the hover rung
10
+ * with the chosen tab lifted onto the ground. `variant="line"` is the record
11
+ * page's strip (twenty-ui's Tabs, MIT, NOTICE): a transparent list over a 1px
12
+ * baseline, 40px tabs whose label sits in an inner box (8×8 at `md`, 4×8 at
13
+ * `sm`, 8px corner) that takes the hover rung under the pointer, and a 1px line
14
+ * in the ink under the chosen tab. A tab takes a `startIcon`, an `endIcon` and a
15
+ * `badge`, and `highlighted` rings it (a drop target during a drag). Vertical
16
+ * orientation moves the baseline to the end edge.
17
+ *
18
+ * The variant and the chosen value ride a context from the root, because gui
19
+ * paints a tab's `activeStyle` but tells nothing else inside it which tab is
20
+ * chosen — and the line has to know where to draw.
21
+ */
7
22
  const gui_1 = require("@hanzo/gui");
23
+ const react_1 = require("react");
8
24
  const ink_1 = require("./ink.cjs");
9
25
  const slot_1 = require("./slot.cjs");
10
26
  const gesture_1 = require("./gesture.cjs");
11
27
  const ROW_H = 36;
12
- const Tabs = (p) => (0, jsx_runtime_1.jsx)(gui_1.Tabs, { ...(0, slot_1.slot)('tabs'), flexDirection: "column", gap: "$2", ...p });
28
+ const LINE_H = 40;
29
+ const LineContext = /* @__PURE__ */ (0, react_1.createContext)({ variant: 'default', value: undefined, vertical: false });
30
+ const Tabs = ({ variant = 'default', value, defaultValue, onValueChange, orientation, ...p }) => {
31
+ const [own, setOwn] = (0, react_1.useState)(defaultValue);
32
+ const current = value ?? own;
33
+ return ((0, jsx_runtime_1.jsx)(LineContext.Provider, { value: { variant, value: current, vertical: orientation === 'vertical' }, children: (0, jsx_runtime_1.jsx)(gui_1.Tabs, { ...(0, slot_1.slot)('tabs'), flexDirection: orientation === 'vertical' ? 'row' : 'column', gap: "$2", ...(value !== undefined ? { value } : { defaultValue }), onValueChange: (v) => {
34
+ setOwn(v);
35
+ onValueChange?.(v);
36
+ }, ...(orientation ? { orientation } : null), ...(variant === 'line' ? { 'data-variant': 'line' } : null), ...p }) }));
37
+ };
13
38
  exports.Tabs = Tabs;
14
- const TabsList = (p) => ((0, jsx_runtime_1.jsx)(gui_1.Tabs.List, { ...(0, slot_1.slot)('tabs-list'), items: "center", justify: "center", self: "flex-start", height: ROW_H, p: 3, gap: 2, bg: "$hover", rounded: "$4", ...p }));
39
+ const TabsList = (p) => {
40
+ const { variant, vertical } = (0, react_1.useContext)(LineContext);
41
+ if (variant === 'line')
42
+ return ((0, jsx_runtime_1.jsx)(gui_1.Tabs.List, { ...(0, slot_1.slot)('tabs-list'), ...(vertical
43
+ ? { flexDirection: 'column', borderRightWidth: 1, items: 'stretch' }
44
+ : { flexDirection: 'row', borderBottomWidth: 1, items: 'flex-end' }), borderColor: "$borderColor", bg: "transparent", gap: "$1", p: 0, rounded: 0, justify: "flex-start", ...p }));
45
+ return ((0, jsx_runtime_1.jsx)(gui_1.Tabs.List, { ...(0, slot_1.slot)('tabs-list'), items: "center", justify: "center", self: "flex-start", height: ROW_H, p: 3, gap: 2, bg: "$hover", rounded: "$4", ...p }));
46
+ };
15
47
  exports.TabsList = TabsList;
16
- const TabsTrigger = ({ children, ...p }) => ((0, jsx_runtime_1.jsx)(gui_1.Tabs.Tab, { ...(0, slot_1.slot)('tabs-trigger'), unstyled: true, items: "center", justify: "center", height: "100%", px: "$3", gap: "$1.5", rounded: "$3", cursor: "pointer", ...(0, gesture_1.touch)(ROW_H, 44, 'y'), hoverStyle: { bg: '$edge' }, focusStyle: { bg: '$edge' },
17
- // The selected tab. gui's `Tabs.Tab` spreads `activeStyle` only for the tab
18
- // whose `value` is current, and the `unstyled` frame drops its OWN active
19
- // default (`...!unstyled && !activeStyle && {…}` in the compiled frame) — so
20
- // without this the active tab is painted identically to the rest and the row
21
- // reads as though nothing is chosen. A raised `$background` pill on the
22
- // `$hover` track: shadcn's `data-[state=active]:bg-background shadow-sm`.
23
- activeStyle: {
24
- bg: '$background',
25
- shadowColor: '$shadowColor',
26
- shadowOpacity: 0.12,
27
- shadowRadius: 3,
28
- shadowOffset: { width: 0, height: 1 },
29
- }, ...p, children: (0, ink_1.ink)(children, undefined, { size: '$2', fontWeight: '500' }) }));
48
+ /** The record strip's tab: an inner box that hovers, and the line under the chosen one. */
49
+ const LineTab = ({ children, startIcon, endIcon, badge, size = 'md', highlighted = false, disabled, value, ...p }) => {
50
+ const { value: current, vertical } = (0, react_1.useContext)(LineContext);
51
+ const [hovered, setHovered] = (0, react_1.useState)(false);
52
+ const chosen = current === value;
53
+ const tone = disabled ? '$hush' : chosen ? '$ink' : '$aside';
54
+ return ((0, jsx_runtime_1.jsxs)(gui_1.Tabs.Tab, { ...(0, slot_1.slot)('tabs-trigger'), "data-variant": "line", ...(chosen ? { 'data-chosen': '' } : null), unstyled: true, value: value, disabled: disabled, position: "relative", items: "center", justify: "center", minH: LINE_H, p: 0, bg: "transparent", borderWidth: 0, cursor: disabled ? 'default' : 'pointer', ...(0, gesture_1.touch)(LINE_H, 44, 'y'), onHoverIn: () => setHovered(true), onHoverOut: () => setHovered(false), ...p, children: [(0, jsx_runtime_1.jsxs)(gui_1.XStack, { ...(0, slot_1.slot)('tabs-trigger-box'), items: "center", gap: "$1", px: "$2", py: size === 'sm' ? '$1' : '$2', rounded: highlighted ? '$xs' : '$3', bg: hovered && !disabled ? '$hover' : 'transparent', ...(highlighted ? { outlineWidth: 1, outlineStyle: 'solid', outlineColor: 'var(--primary)', outlineOffset: -1 } : null), children: [startIcon, (0, ink_1.ink)(children, undefined, { size: '$2', fontWeight: '500', color: tone, numberOfLines: 1 }), badge, endIcon] }), chosen ? ((0, jsx_runtime_1.jsx)(gui_1.YStack, { ...(0, slot_1.slot)('tabs-indicator'), position: "absolute", bg: "$ink", ...(vertical ? { r: -1, t: 0, b: 0, width: 1 } : { b: -1, l: 0, r: 0, height: 1 }) })) : null] }));
55
+ };
56
+ const TabsTrigger = (props) => {
57
+ const { variant } = (0, react_1.useContext)(LineContext);
58
+ if (variant === 'line')
59
+ return (0, jsx_runtime_1.jsx)(LineTab, { ...props });
60
+ const { children, startIcon, endIcon, badge, size: _size, highlighted: _highlighted, ...p } = props;
61
+ return ((0, jsx_runtime_1.jsxs)(gui_1.Tabs.Tab, { ...(0, slot_1.slot)('tabs-trigger'), unstyled: true, items: "center", justify: "center", height: "100%", px: "$3", gap: "$1.5", rounded: "$3", cursor: "pointer", ...(0, gesture_1.touch)(ROW_H, 44, 'y'), hoverStyle: { bg: '$edge' }, focusStyle: { bg: '$edge' },
62
+ // The selected tab. gui's `Tabs.Tab` spreads `activeStyle` only for the tab
63
+ // whose `value` is current, and the `unstyled` frame drops its OWN active
64
+ // default (`...!unstyled && !activeStyle && {…}` in the compiled frame) — so
65
+ // without this the active tab is painted identically to the rest and the row
66
+ // reads as though nothing is chosen. A raised `$background` pill on the
67
+ // `$hover` track: shadcn's `data-[state=active]:bg-background shadow-sm`.
68
+ activeStyle: {
69
+ bg: '$background',
70
+ shadowColor: '$shadowColor',
71
+ shadowOpacity: 0.12,
72
+ shadowRadius: 3,
73
+ shadowOffset: { width: 0, height: 1 },
74
+ }, ...p, children: [startIcon, (0, ink_1.ink)(children, undefined, { size: '$2', fontWeight: '500' }), badge, endIcon] }));
75
+ };
30
76
  exports.TabsTrigger = TabsTrigger;
31
77
  const TabsContent = ({ children, ...p }) => ((0, jsx_runtime_1.jsx)(gui_1.Tabs.Content, { ...(0, slot_1.slot)('tabs-content'), flex: 1, ...p, children: (0, ink_1.ink)(children) }));
32
78
  exports.TabsContent = TabsContent;
@@ -1,13 +1,42 @@
1
- /** Tabs — `TabsTrigger` is gui's `Tabs.Tab`; rows meet the 44px touch floor. */
1
+ /**
2
+ * Tabs — `TabsTrigger` is gui's `Tabs.Tab`; rows meet the 44px touch floor.
3
+ *
4
+ * Two looks. The default is the segmented pill: a 36px track on the hover rung
5
+ * with the chosen tab lifted onto the ground. `variant="line"` is the record
6
+ * page's strip (twenty-ui's Tabs, MIT, NOTICE): a transparent list over a 1px
7
+ * baseline, 40px tabs whose label sits in an inner box (8×8 at `md`, 4×8 at
8
+ * `sm`, 8px corner) that takes the hover rung under the pointer, and a 1px line
9
+ * in the ink under the chosen tab. A tab takes a `startIcon`, an `endIcon` and a
10
+ * `badge`, and `highlighted` rings it (a drop target during a drag). Vertical
11
+ * orientation moves the baseline to the end edge.
12
+ *
13
+ * The variant and the chosen value ride a context from the root, because gui
14
+ * paints a tab's `activeStyle` but tells nothing else inside it which tab is
15
+ * chosen — and the line has to know where to draw.
16
+ */
2
17
  import { Tabs as GuiTabs } from '@hanzo/gui';
3
- import type { ComponentProps } from 'react';
4
- export type TabsProps = ComponentProps<typeof GuiTabs>;
18
+ import { type ComponentProps, type ReactNode } from 'react';
19
+ export type TabsProps = ComponentProps<typeof GuiTabs> & {
20
+ /** `line` is the underlined record strip; the default is the segmented pill. */
21
+ variant?: 'default' | 'line';
22
+ };
5
23
  export type TabsListProps = ComponentProps<typeof GuiTabs.List>;
6
- export type TabsTriggerProps = ComponentProps<typeof GuiTabs.Tab>;
24
+ export type TabsTriggerProps = Omit<ComponentProps<typeof GuiTabs.Tab>, 'size'> & {
25
+ /** A 16px icon before the label (line variant). */
26
+ startIcon?: ReactNode;
27
+ /** An icon after the label. */
28
+ endIcon?: ReactNode;
29
+ /** A count or marker after the label. */
30
+ badge?: ReactNode;
31
+ /** `sm` tightens the inner box to 4×8 (line variant). */
32
+ size?: 'sm' | 'md';
33
+ /** Ringed as a drop target. */
34
+ highlighted?: boolean;
35
+ };
7
36
  export type TabsContentProps = ComponentProps<typeof GuiTabs.Content>;
8
- declare const Tabs: (p: TabsProps) => import("react").JSX.Element;
37
+ declare const Tabs: ({ variant, value, defaultValue, onValueChange, orientation, ...p }: TabsProps) => import("react").JSX.Element;
9
38
  declare const TabsList: (p: TabsListProps) => import("react").JSX.Element;
10
- declare const TabsTrigger: ({ children, ...p }: TabsTriggerProps) => import("react").JSX.Element;
39
+ declare const TabsTrigger: (props: TabsTriggerProps) => import("react").JSX.Element;
11
40
  declare const TabsContent: ({ children, ...p }: TabsContentProps) => import("react").JSX.Element;
12
41
  export { Tabs, TabsList, TabsTrigger, TabsContent };
13
42
  //# sourceMappingURL=tabs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/tabs.tsx"],"names":[],"mappings":"AAEA,gFAAgF;AAChF,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAO3C,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,OAAO,CAAC,CAAA;AACtD,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;AAC/D,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;AACjE,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA;AAErE,QAAA,MAAM,IAAI,MAAO,SAAS,gCAAyE,CAAA;AAEnG,QAAA,MAAM,QAAQ,MAAO,aAAa,gCAajC,CAAA;AAED,QAAA,MAAM,WAAW,uBAAwB,gBAAgB,gCA+BxD,CAAA;AAED,QAAA,MAAM,WAAW,uBAAwB,gBAAgB,gCAIxD,CAAA;AAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/tabs.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,IAAI,IAAI,OAAO,EAAkB,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAuC,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAWhG,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,OAAO,CAAC,GAAG;IACvD,gFAAgF;IAChF,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;CAC7B,CAAA;AACD,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;AAC/D,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG;IAChF,mDAAmD;IACnD,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,yCAAyC;IACzC,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,yDAAyD;IACzD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IAClB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAA;AACD,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA;AAErE,QAAA,MAAM,IAAI,uEAAoF,SAAS,gCAoBtG,CAAA;AAED,QAAA,MAAM,QAAQ,MAAO,aAAa,gCAgCjC,CAAA;AAwDD,QAAA,MAAM,WAAW,UAAW,gBAAgB,gCAuC3C,CAAA;AAED,QAAA,MAAM,WAAW,uBAAwB,gBAAgB,gCAIxD,CAAA;AAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAA"}