@hanzo/ui 8.27.91 → 8.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (698) hide show
  1. package/NOTICE +25 -0
  2. package/README.md +1 -1
  3. package/dist/backends/gui/alert-dialog.cjs +24 -6
  4. package/dist/backends/gui/alert-dialog.d.ts +11 -3
  5. package/dist/backends/gui/alert-dialog.d.ts.map +1 -1
  6. package/dist/backends/gui/alert-dialog.js +24 -6
  7. package/dist/backends/gui/alert-dialog.js.map +1 -1
  8. package/dist/backends/gui/alert.cjs +32 -1
  9. package/dist/backends/gui/alert.d.ts +36 -3
  10. package/dist/backends/gui/alert.d.ts.map +1 -1
  11. package/dist/backends/gui/alert.js +32 -2
  12. package/dist/backends/gui/alert.js.map +1 -1
  13. package/dist/backends/gui/avatar-group.cjs +28 -0
  14. package/dist/backends/gui/avatar-group.d.ts +33 -0
  15. package/dist/backends/gui/avatar-group.d.ts.map +1 -0
  16. package/dist/backends/gui/avatar-group.js +26 -0
  17. package/dist/backends/gui/avatar-group.js.map +1 -0
  18. package/dist/backends/gui/avatar.cjs +53 -3
  19. package/dist/backends/gui/avatar.d.ts +46 -4
  20. package/dist/backends/gui/avatar.d.ts.map +1 -1
  21. package/dist/backends/gui/avatar.js +52 -3
  22. package/dist/backends/gui/avatar.js.map +1 -1
  23. package/dist/backends/gui/badge.cjs +40 -2
  24. package/dist/backends/gui/badge.d.ts +7 -2
  25. package/dist/backends/gui/badge.d.ts.map +1 -1
  26. package/dist/backends/gui/badge.js +40 -2
  27. package/dist/backends/gui/badge.js.map +1 -1
  28. package/dist/backends/gui/banner.cjs +40 -1
  29. package/dist/backends/gui/banner.d.ts +36 -3
  30. package/dist/backends/gui/banner.d.ts.map +1 -1
  31. package/dist/backends/gui/banner.js +42 -4
  32. package/dist/backends/gui/banner.js.map +1 -1
  33. package/dist/backends/gui/breadcrumb.cjs +28 -10
  34. package/dist/backends/gui/breadcrumb.d.ts +20 -11
  35. package/dist/backends/gui/breadcrumb.d.ts.map +1 -1
  36. package/dist/backends/gui/breadcrumb.js +28 -10
  37. package/dist/backends/gui/breadcrumb.js.map +1 -1
  38. package/dist/backends/gui/button-group.cjs +43 -0
  39. package/dist/backends/gui/button-group.d.ts +48 -0
  40. package/dist/backends/gui/button-group.d.ts.map +1 -0
  41. package/dist/backends/gui/button-group.js +40 -0
  42. package/dist/backends/gui/button-group.js.map +1 -0
  43. package/dist/backends/gui/button.cjs +177 -4
  44. package/dist/backends/gui/button.d.ts +69 -4
  45. package/dist/backends/gui/button.d.ts.map +1 -1
  46. package/dist/backends/gui/button.js +179 -6
  47. package/dist/backends/gui/button.js.map +1 -1
  48. package/dist/backends/gui/card.cjs +50 -21
  49. package/dist/backends/gui/card.d.ts +16 -7
  50. package/dist/backends/gui/card.d.ts.map +1 -1
  51. package/dist/backends/gui/card.js +50 -21
  52. package/dist/backends/gui/card.js.map +1 -1
  53. package/dist/backends/gui/checkbox.cjs +86 -14
  54. package/dist/backends/gui/checkbox.d.ts +30 -2
  55. package/dist/backends/gui/checkbox.d.ts.map +1 -1
  56. package/dist/backends/gui/checkbox.js +87 -15
  57. package/dist/backends/gui/checkbox.js.map +1 -1
  58. package/dist/backends/gui/chip.cjs +51 -0
  59. package/dist/backends/gui/chip.d.ts +47 -0
  60. package/dist/backends/gui/chip.d.ts.map +1 -0
  61. package/dist/backends/gui/chip.js +49 -0
  62. package/dist/backends/gui/chip.js.map +1 -0
  63. package/dist/backends/gui/choice.cjs +18 -3
  64. package/dist/backends/gui/choice.d.ts +10 -2
  65. package/dist/backends/gui/choice.d.ts.map +1 -1
  66. package/dist/backends/gui/choice.js +19 -4
  67. package/dist/backends/gui/choice.js.map +1 -1
  68. package/dist/backends/gui/code-editor.cjs +16 -5
  69. package/dist/backends/gui/code-editor.d.ts +18 -1
  70. package/dist/backends/gui/code-editor.d.ts.map +1 -1
  71. package/dist/backends/gui/code-editor.js +16 -5
  72. package/dist/backends/gui/code-editor.js.map +1 -1
  73. package/dist/backends/gui/color-sample.cjs +24 -0
  74. package/dist/backends/gui/color-sample.d.ts +23 -0
  75. package/dist/backends/gui/color-sample.d.ts.map +1 -0
  76. package/dist/backends/gui/color-sample.js +22 -0
  77. package/dist/backends/gui/color-sample.js.map +1 -0
  78. package/dist/backends/gui/control.cjs +5 -3
  79. package/dist/backends/gui/control.d.ts +13 -3
  80. package/dist/backends/gui/control.d.ts.map +1 -1
  81. package/dist/backends/gui/control.js +5 -3
  82. package/dist/backends/gui/control.js.map +1 -1
  83. package/dist/backends/gui/country-select.cjs +69 -0
  84. package/dist/backends/gui/country-select.d.ts +30 -0
  85. package/dist/backends/gui/country-select.d.ts.map +1 -0
  86. package/dist/backends/gui/country-select.js +67 -0
  87. package/dist/backends/gui/country-select.js.map +1 -0
  88. package/dist/backends/gui/currency-picker.cjs +48 -0
  89. package/dist/backends/gui/currency-picker.d.ts +37 -0
  90. package/dist/backends/gui/currency-picker.d.ts.map +1 -0
  91. package/dist/backends/gui/currency-picker.js +46 -0
  92. package/dist/backends/gui/currency-picker.js.map +1 -0
  93. package/dist/backends/gui/density.cjs +32 -0
  94. package/dist/backends/gui/density.d.ts +27 -0
  95. package/dist/backends/gui/density.d.ts.map +1 -0
  96. package/dist/backends/gui/density.js +27 -0
  97. package/dist/backends/gui/density.js.map +1 -0
  98. package/dist/backends/gui/dialog.cjs +65 -7
  99. package/dist/backends/gui/dialog.d.ts +68 -3
  100. package/dist/backends/gui/dialog.d.ts.map +1 -1
  101. package/dist/backends/gui/dialog.js +63 -7
  102. package/dist/backends/gui/dialog.js.map +1 -1
  103. package/dist/backends/gui/dropdown-menu.cjs +361 -31
  104. package/dist/backends/gui/dropdown-menu.d.ts +151 -15
  105. package/dist/backends/gui/dropdown-menu.d.ts.map +1 -1
  106. package/dist/backends/gui/dropdown-menu.js +353 -34
  107. package/dist/backends/gui/dropdown-menu.js.map +1 -1
  108. package/dist/backends/gui/feedback.cjs +78 -0
  109. package/dist/backends/gui/feedback.d.ts +46 -0
  110. package/dist/backends/gui/feedback.d.ts.map +1 -0
  111. package/dist/backends/gui/feedback.js +74 -0
  112. package/dist/backends/gui/feedback.js.map +1 -0
  113. package/dist/backends/gui/field.cjs +71 -14
  114. package/dist/backends/gui/field.d.ts +43 -3
  115. package/dist/backends/gui/field.d.ts.map +1 -1
  116. package/dist/backends/gui/field.js +69 -14
  117. package/dist/backends/gui/field.js.map +1 -1
  118. package/dist/backends/gui/flag.cjs +17 -0
  119. package/dist/backends/gui/flag.d.ts +9 -0
  120. package/dist/backends/gui/flag.d.ts.map +1 -0
  121. package/dist/backends/gui/flag.js +14 -0
  122. package/dist/backends/gui/flag.js.map +1 -0
  123. package/dist/backends/gui/grip.cjs +35 -3
  124. package/dist/backends/gui/grip.d.ts +16 -1
  125. package/dist/backends/gui/grip.d.ts.map +1 -1
  126. package/dist/backends/gui/grip.js +35 -3
  127. package/dist/backends/gui/grip.js.map +1 -1
  128. package/dist/backends/gui/heading.cjs +27 -0
  129. package/dist/backends/gui/heading.d.ts +8 -0
  130. package/dist/backends/gui/heading.d.ts.map +1 -0
  131. package/dist/backends/gui/heading.js +25 -0
  132. package/dist/backends/gui/heading.js.map +1 -0
  133. package/dist/backends/gui/hue.cjs +49 -0
  134. package/dist/backends/gui/hue.d.ts +18 -0
  135. package/dist/backends/gui/hue.d.ts.map +1 -0
  136. package/dist/backends/gui/hue.js +43 -0
  137. package/dist/backends/gui/hue.js.map +1 -0
  138. package/dist/backends/gui/icon-tile.cjs +36 -0
  139. package/dist/backends/gui/icon-tile.d.ts +26 -0
  140. package/dist/backends/gui/icon-tile.d.ts.map +1 -0
  141. package/dist/backends/gui/icon-tile.js +32 -0
  142. package/dist/backends/gui/icon-tile.js.map +1 -0
  143. package/dist/backends/gui/image-input.cjs +78 -0
  144. package/dist/backends/gui/image-input.d.ts +32 -0
  145. package/dist/backends/gui/image-input.d.ts.map +1 -0
  146. package/dist/backends/gui/image-input.js +74 -0
  147. package/dist/backends/gui/image-input.js.map +1 -0
  148. package/dist/backends/gui/index.cjs +93 -7
  149. package/dist/backends/gui/index.d.ts +45 -2
  150. package/dist/backends/gui/index.d.ts.map +1 -1
  151. package/dist/backends/gui/index.js +35 -1
  152. package/dist/backends/gui/index.js.map +1 -1
  153. package/dist/backends/gui/input-group.cjs +49 -0
  154. package/dist/backends/gui/input-group.d.ts +46 -0
  155. package/dist/backends/gui/input-group.d.ts.map +1 -0
  156. package/dist/backends/gui/input-group.js +46 -0
  157. package/dist/backends/gui/input-group.js.map +1 -0
  158. package/dist/backends/gui/input.cjs +32 -4
  159. package/dist/backends/gui/input.d.ts +5 -1
  160. package/dist/backends/gui/input.d.ts.map +1 -1
  161. package/dist/backends/gui/input.js +33 -5
  162. package/dist/backends/gui/input.js.map +1 -1
  163. package/dist/backends/gui/item.cjs +34 -2
  164. package/dist/backends/gui/item.d.ts +21 -5
  165. package/dist/backends/gui/item.d.ts.map +1 -1
  166. package/dist/backends/gui/item.js +35 -3
  167. package/dist/backends/gui/item.js.map +1 -1
  168. package/dist/backends/gui/json-tree.cjs +103 -15
  169. package/dist/backends/gui/json-tree.d.ts +39 -3
  170. package/dist/backends/gui/json-tree.d.ts.map +1 -1
  171. package/dist/backends/gui/json-tree.js +104 -16
  172. package/dist/backends/gui/json-tree.js.map +1 -1
  173. package/dist/backends/gui/kbd.cjs +18 -2
  174. package/dist/backends/gui/kbd.d.ts +5 -2
  175. package/dist/backends/gui/kbd.d.ts.map +1 -1
  176. package/dist/backends/gui/kbd.js +18 -2
  177. package/dist/backends/gui/kbd.js.map +1 -1
  178. package/dist/backends/gui/label.cjs +14 -3
  179. package/dist/backends/gui/label.d.ts +12 -3
  180. package/dist/backends/gui/label.d.ts.map +1 -1
  181. package/dist/backends/gui/label.js +14 -3
  182. package/dist/backends/gui/label.js.map +1 -1
  183. package/dist/backends/gui/layout.cjs +5 -1
  184. package/dist/backends/gui/layout.d.ts +1 -1
  185. package/dist/backends/gui/layout.d.ts.map +1 -1
  186. package/dist/backends/gui/layout.js +5 -1
  187. package/dist/backends/gui/layout.js.map +1 -1
  188. package/dist/backends/gui/number-field.cjs +163 -0
  189. package/dist/backends/gui/number-field.d.ts +34 -0
  190. package/dist/backends/gui/number-field.d.ts.map +1 -0
  191. package/dist/backends/gui/number-field.js +160 -0
  192. package/dist/backends/gui/number-field.js.map +1 -0
  193. package/dist/backends/gui/overflowing-list.cjs +79 -0
  194. package/dist/backends/gui/overflowing-list.d.ts +42 -0
  195. package/dist/backends/gui/overflowing-list.d.ts.map +1 -0
  196. package/dist/backends/gui/overflowing-list.js +76 -0
  197. package/dist/backends/gui/overflowing-list.js.map +1 -0
  198. package/dist/backends/gui/phone-country-picker.cjs +60 -0
  199. package/dist/backends/gui/phone-country-picker.d.ts +34 -0
  200. package/dist/backends/gui/phone-country-picker.d.ts.map +1 -0
  201. package/dist/backends/gui/phone-country-picker.js +57 -0
  202. package/dist/backends/gui/phone-country-picker.js.map +1 -0
  203. package/dist/backends/gui/popover.cjs +20 -4
  204. package/dist/backends/gui/popover.d.ts +12 -1
  205. package/dist/backends/gui/popover.d.ts.map +1 -1
  206. package/dist/backends/gui/popover.js +21 -5
  207. package/dist/backends/gui/popover.js.map +1 -1
  208. package/dist/backends/gui/progress-ring.cjs +38 -0
  209. package/dist/backends/gui/progress-ring.d.ts +37 -0
  210. package/dist/backends/gui/progress-ring.d.ts.map +1 -0
  211. package/dist/backends/gui/progress-ring.js +36 -0
  212. package/dist/backends/gui/progress-ring.js.map +1 -0
  213. package/dist/backends/gui/progress.cjs +31 -7
  214. package/dist/backends/gui/progress.d.ts +25 -3
  215. package/dist/backends/gui/progress.d.ts.map +1 -1
  216. package/dist/backends/gui/progress.js +32 -8
  217. package/dist/backends/gui/progress.js.map +1 -1
  218. package/dist/backends/gui/radio-group.cjs +28 -2
  219. package/dist/backends/gui/radio-group.d.ts +20 -2
  220. package/dist/backends/gui/radio-group.d.ts.map +1 -1
  221. package/dist/backends/gui/radio-group.js +28 -2
  222. package/dist/backends/gui/radio-group.js.map +1 -1
  223. package/dist/backends/gui/search-list.cjs +62 -0
  224. package/dist/backends/gui/search-list.d.ts +65 -0
  225. package/dist/backends/gui/search-list.d.ts.map +1 -0
  226. package/dist/backends/gui/search-list.js +58 -0
  227. package/dist/backends/gui/search-list.js.map +1 -0
  228. package/dist/backends/gui/select.cjs +50 -16
  229. package/dist/backends/gui/select.d.ts +12 -3
  230. package/dist/backends/gui/select.d.ts.map +1 -1
  231. package/dist/backends/gui/select.js +51 -17
  232. package/dist/backends/gui/select.js.map +1 -1
  233. package/dist/backends/gui/shortcut.cjs +122 -0
  234. package/dist/backends/gui/shortcut.d.ts +58 -0
  235. package/dist/backends/gui/shortcut.d.ts.map +1 -0
  236. package/dist/backends/gui/shortcut.js +115 -0
  237. package/dist/backends/gui/shortcut.js.map +1 -0
  238. package/dist/backends/gui/skeleton.cjs +41 -10
  239. package/dist/backends/gui/skeleton.d.ts +46 -8
  240. package/dist/backends/gui/skeleton.d.ts.map +1 -1
  241. package/dist/backends/gui/skeleton.js +39 -8
  242. package/dist/backends/gui/skeleton.js.map +1 -1
  243. package/dist/backends/gui/snippet.cjs +12 -1
  244. package/dist/backends/gui/snippet.d.ts +4 -2
  245. package/dist/backends/gui/snippet.d.ts.map +1 -1
  246. package/dist/backends/gui/snippet.js +12 -1
  247. package/dist/backends/gui/snippet.js.map +1 -1
  248. package/dist/backends/gui/spinner.cjs +8 -1
  249. package/dist/backends/gui/spinner.d.ts +11 -2
  250. package/dist/backends/gui/spinner.d.ts.map +1 -1
  251. package/dist/backends/gui/spinner.js +9 -2
  252. package/dist/backends/gui/spinner.js.map +1 -1
  253. package/dist/backends/gui/stack-icon.cjs +17 -0
  254. package/dist/backends/gui/stack-icon.d.ts +15 -0
  255. package/dist/backends/gui/stack-icon.d.ts.map +1 -0
  256. package/dist/backends/gui/stack-icon.js +15 -0
  257. package/dist/backends/gui/stack-icon.js.map +1 -0
  258. package/dist/backends/gui/status.cjs +38 -1
  259. package/dist/backends/gui/status.d.ts +16 -2
  260. package/dist/backends/gui/status.d.ts.map +1 -1
  261. package/dist/backends/gui/status.js +38 -2
  262. package/dist/backends/gui/status.js.map +1 -1
  263. package/dist/backends/gui/stepper.cjs +73 -3
  264. package/dist/backends/gui/stepper.d.ts +25 -1
  265. package/dist/backends/gui/stepper.d.ts.map +1 -1
  266. package/dist/backends/gui/stepper.js +71 -5
  267. package/dist/backends/gui/stepper.js.map +1 -1
  268. package/dist/backends/gui/switch.cjs +35 -20
  269. package/dist/backends/gui/switch.d.ts +12 -2
  270. package/dist/backends/gui/switch.d.ts.map +1 -1
  271. package/dist/backends/gui/switch.js +35 -20
  272. package/dist/backends/gui/switch.js.map +1 -1
  273. package/dist/backends/gui/tabs.cjs +63 -17
  274. package/dist/backends/gui/tabs.d.ts +35 -6
  275. package/dist/backends/gui/tabs.d.ts.map +1 -1
  276. package/dist/backends/gui/tabs.js +65 -19
  277. package/dist/backends/gui/tabs.js.map +1 -1
  278. package/dist/backends/gui/tag.cjs +48 -0
  279. package/dist/backends/gui/tag.d.ts +53 -0
  280. package/dist/backends/gui/tag.d.ts.map +1 -0
  281. package/dist/backends/gui/tag.js +46 -0
  282. package/dist/backends/gui/tag.js.map +1 -0
  283. package/dist/backends/gui/tags.cjs +9 -2
  284. package/dist/backends/gui/tags.d.ts +6 -5
  285. package/dist/backends/gui/tags.d.ts.map +1 -1
  286. package/dist/backends/gui/tags.js +9 -2
  287. package/dist/backends/gui/tags.js.map +1 -1
  288. package/dist/backends/gui/textarea.cjs +22 -6
  289. package/dist/backends/gui/textarea.d.ts +10 -1
  290. package/dist/backends/gui/textarea.d.ts.map +1 -1
  291. package/dist/backends/gui/textarea.js +22 -6
  292. package/dist/backends/gui/textarea.js.map +1 -1
  293. package/dist/backends/gui/toaster.cjs +167 -3
  294. package/dist/backends/gui/toaster.d.ts +28 -2
  295. package/dist/backends/gui/toaster.d.ts.map +1 -1
  296. package/dist/backends/gui/toaster.js +167 -5
  297. package/dist/backends/gui/toaster.js.map +1 -1
  298. package/dist/backends/gui/toggle-group.cjs +13 -0
  299. package/dist/backends/gui/toggle-group.d.ts +7 -1
  300. package/dist/backends/gui/toggle-group.d.ts.map +1 -1
  301. package/dist/backends/gui/toggle-group.js +13 -0
  302. package/dist/backends/gui/toggle-group.js.map +1 -1
  303. package/dist/backends/gui/tooltip.cjs +29 -6
  304. package/dist/backends/gui/tooltip.d.ts +23 -4
  305. package/dist/backends/gui/tooltip.d.ts.map +1 -1
  306. package/dist/backends/gui/tooltip.js +31 -8
  307. package/dist/backends/gui/tooltip.js.map +1 -1
  308. package/dist/backends/gui/truncated-text.cjs +102 -0
  309. package/dist/backends/gui/truncated-text.d.ts +55 -0
  310. package/dist/backends/gui/truncated-text.d.ts.map +1 -0
  311. package/dist/backends/gui/truncated-text.js +97 -0
  312. package/dist/backends/gui/truncated-text.js.map +1 -0
  313. package/dist/gallery/compound.cjs +60 -0
  314. package/dist/gallery/compound.d.ts +2 -0
  315. package/dist/gallery/compound.d.ts.map +1 -0
  316. package/dist/gallery/compound.js +58 -0
  317. package/dist/gallery/compound.js.map +1 -0
  318. package/dist/gallery/display.cjs +47 -0
  319. package/dist/gallery/display.d.ts +3 -0
  320. package/dist/gallery/display.d.ts.map +1 -0
  321. package/dist/gallery/display.js +45 -0
  322. package/dist/gallery/display.js.map +1 -0
  323. package/dist/gallery/feedback.cjs +38 -0
  324. package/dist/gallery/feedback.d.ts +2 -0
  325. package/dist/gallery/feedback.d.ts.map +1 -0
  326. package/dist/gallery/feedback.js +36 -0
  327. package/dist/gallery/feedback.js.map +1 -0
  328. package/dist/gallery/fields.cjs +53 -0
  329. package/dist/gallery/fields.d.ts +2 -0
  330. package/dist/gallery/fields.d.ts.map +1 -0
  331. package/dist/gallery/fields.js +51 -0
  332. package/dist/gallery/fields.js.map +1 -0
  333. package/dist/gallery/frames.cjs +47 -0
  334. package/dist/gallery/frames.d.ts +2 -0
  335. package/dist/gallery/frames.d.ts.map +1 -0
  336. package/dist/gallery/frames.js +45 -0
  337. package/dist/gallery/frames.js.map +1 -0
  338. package/dist/gallery/menus.cjs +64 -0
  339. package/dist/gallery/menus.d.ts +15 -0
  340. package/dist/gallery/menus.d.ts.map +1 -0
  341. package/dist/gallery/menus.js +58 -0
  342. package/dist/gallery/menus.js.map +1 -0
  343. package/dist/gallery/records.cjs +33 -0
  344. package/dist/gallery/records.d.ts +2 -0
  345. package/dist/gallery/records.d.ts.map +1 -0
  346. package/dist/gallery/records.js +31 -0
  347. package/dist/gallery/records.js.map +1 -0
  348. package/dist/gallery/section.cjs +17 -0
  349. package/dist/gallery/section.d.ts +10 -0
  350. package/dist/gallery/section.d.ts.map +1 -0
  351. package/dist/gallery/section.js +14 -0
  352. package/dist/gallery/section.js.map +1 -0
  353. package/dist/gallery.cjs +8 -14
  354. package/dist/gallery.d.ts.map +1 -1
  355. package/dist/gallery.html +1594 -256
  356. package/dist/gallery.js +3 -9
  357. package/dist/gallery.js.map +1 -1
  358. package/dist/gui-config.cjs +33 -4
  359. package/dist/gui-config.d.ts +11 -3
  360. package/dist/gui-config.d.ts.map +1 -1
  361. package/dist/gui-config.js +33 -4
  362. package/dist/gui-config.js.map +1 -1
  363. package/dist/index.cjs +61 -2
  364. package/dist/index.d.ts +4 -2
  365. package/dist/index.d.ts.map +1 -1
  366. package/dist/index.js +7 -1
  367. package/dist/index.js.map +1 -1
  368. package/dist/index.node.cjs +61 -2
  369. package/dist/index.node.js +7 -1
  370. package/dist/motion.cjs +25 -1
  371. package/dist/motion.d.ts +16 -1
  372. package/dist/motion.d.ts.map +1 -1
  373. package/dist/motion.js +24 -1
  374. package/dist/motion.js.map +1 -1
  375. package/dist/primitives/AvatarGroup.cjs +8 -0
  376. package/dist/primitives/AvatarGroup.d.ts +2 -0
  377. package/dist/primitives/AvatarGroup.d.ts.map +1 -0
  378. package/dist/primitives/AvatarGroup.js +5 -0
  379. package/dist/primitives/AvatarGroup.js.map +1 -0
  380. package/dist/primitives/BannerAction.cjs +8 -0
  381. package/dist/primitives/BannerAction.d.ts +2 -0
  382. package/dist/primitives/BannerAction.d.ts.map +1 -0
  383. package/dist/primitives/BannerAction.js +5 -0
  384. package/dist/primitives/BannerAction.js.map +1 -0
  385. package/dist/primitives/ButtonGroup.cjs +8 -0
  386. package/dist/primitives/ButtonGroup.d.ts +2 -0
  387. package/dist/primitives/ButtonGroup.d.ts.map +1 -0
  388. package/dist/primitives/ButtonGroup.js +5 -0
  389. package/dist/primitives/ButtonGroup.js.map +1 -0
  390. package/dist/primitives/ButtonGroupContext.cjs +8 -0
  391. package/dist/primitives/ButtonGroupContext.d.ts +2 -0
  392. package/dist/primitives/ButtonGroupContext.d.ts.map +1 -0
  393. package/dist/primitives/ButtonGroupContext.js +5 -0
  394. package/dist/primitives/ButtonGroupContext.js.map +1 -0
  395. package/dist/primitives/CalloutAction.cjs +8 -0
  396. package/dist/primitives/CalloutAction.d.ts +2 -0
  397. package/dist/primitives/CalloutAction.d.ts.map +1 -0
  398. package/dist/primitives/CalloutAction.js +5 -0
  399. package/dist/primitives/CalloutAction.js.map +1 -0
  400. package/dist/primitives/Chip.cjs +8 -0
  401. package/dist/primitives/Chip.d.ts +2 -0
  402. package/dist/primitives/Chip.d.ts.map +1 -0
  403. package/dist/primitives/Chip.js +5 -0
  404. package/dist/primitives/Chip.js.map +1 -0
  405. package/dist/primitives/ColorSample.cjs +8 -0
  406. package/dist/primitives/ColorSample.d.ts +2 -0
  407. package/dist/primitives/ColorSample.d.ts.map +1 -0
  408. package/dist/primitives/ColorSample.js +5 -0
  409. package/dist/primitives/ColorSample.js.map +1 -0
  410. package/dist/primitives/CountrySelect.cjs +8 -0
  411. package/dist/primitives/CountrySelect.d.ts +2 -0
  412. package/dist/primitives/CountrySelect.d.ts.map +1 -0
  413. package/dist/primitives/CountrySelect.js +5 -0
  414. package/dist/primitives/CountrySelect.js.map +1 -0
  415. package/dist/primitives/CurrencyPicker.cjs +8 -0
  416. package/dist/primitives/CurrencyPicker.d.ts +2 -0
  417. package/dist/primitives/CurrencyPicker.d.ts.map +1 -0
  418. package/dist/primitives/CurrencyPicker.js +5 -0
  419. package/dist/primitives/CurrencyPicker.js.map +1 -0
  420. package/dist/primitives/Density.cjs +8 -0
  421. package/dist/primitives/Density.d.ts +2 -0
  422. package/dist/primitives/Density.d.ts.map +1 -0
  423. package/dist/primitives/Density.js +5 -0
  424. package/dist/primitives/Density.js.map +1 -0
  425. package/dist/primitives/DialogBody.cjs +8 -0
  426. package/dist/primitives/DialogBody.d.ts +2 -0
  427. package/dist/primitives/DialogBody.d.ts.map +1 -0
  428. package/dist/primitives/DialogBody.js +5 -0
  429. package/dist/primitives/DialogBody.js.map +1 -0
  430. package/dist/primitives/DropdownMenuBack.cjs +8 -0
  431. package/dist/primitives/DropdownMenuBack.d.ts +2 -0
  432. package/dist/primitives/DropdownMenuBack.d.ts.map +1 -0
  433. package/dist/primitives/DropdownMenuBack.js +5 -0
  434. package/dist/primitives/DropdownMenuBack.js.map +1 -0
  435. package/dist/primitives/DropdownMenuClose.cjs +8 -0
  436. package/dist/primitives/DropdownMenuClose.d.ts +2 -0
  437. package/dist/primitives/DropdownMenuClose.d.ts.map +1 -0
  438. package/dist/primitives/DropdownMenuClose.js +5 -0
  439. package/dist/primitives/DropdownMenuClose.js.map +1 -0
  440. package/dist/primitives/DropdownMenuEmpty.cjs +8 -0
  441. package/dist/primitives/DropdownMenuEmpty.d.ts +2 -0
  442. package/dist/primitives/DropdownMenuEmpty.d.ts.map +1 -0
  443. package/dist/primitives/DropdownMenuEmpty.js +5 -0
  444. package/dist/primitives/DropdownMenuEmpty.js.map +1 -0
  445. package/dist/primitives/DropdownMenuHeader.cjs +8 -0
  446. package/dist/primitives/DropdownMenuHeader.d.ts +2 -0
  447. package/dist/primitives/DropdownMenuHeader.d.ts.map +1 -0
  448. package/dist/primitives/DropdownMenuHeader.js +5 -0
  449. package/dist/primitives/DropdownMenuHeader.js.map +1 -0
  450. package/dist/primitives/DropdownMenuLoading.cjs +8 -0
  451. package/dist/primitives/DropdownMenuLoading.d.ts +2 -0
  452. package/dist/primitives/DropdownMenuLoading.d.ts.map +1 -0
  453. package/dist/primitives/DropdownMenuLoading.js +5 -0
  454. package/dist/primitives/DropdownMenuLoading.js.map +1 -0
  455. package/dist/primitives/DropdownMenuOptionItem.cjs +8 -0
  456. package/dist/primitives/DropdownMenuOptionItem.d.ts +2 -0
  457. package/dist/primitives/DropdownMenuOptionItem.d.ts.map +1 -0
  458. package/dist/primitives/DropdownMenuOptionItem.js +5 -0
  459. package/dist/primitives/DropdownMenuOptionItem.js.map +1 -0
  460. package/dist/primitives/DropdownMenuPage.cjs +8 -0
  461. package/dist/primitives/DropdownMenuPage.d.ts +2 -0
  462. package/dist/primitives/DropdownMenuPage.d.ts.map +1 -0
  463. package/dist/primitives/DropdownMenuPage.js +5 -0
  464. package/dist/primitives/DropdownMenuPage.js.map +1 -0
  465. package/dist/primitives/DropdownMenuSearch.cjs +8 -0
  466. package/dist/primitives/DropdownMenuSearch.d.ts +2 -0
  467. package/dist/primitives/DropdownMenuSearch.d.ts.map +1 -0
  468. package/dist/primitives/DropdownMenuSearch.js +5 -0
  469. package/dist/primitives/DropdownMenuSearch.js.map +1 -0
  470. package/dist/primitives/DropdownMenuSection.cjs +8 -0
  471. package/dist/primitives/DropdownMenuSection.d.ts +2 -0
  472. package/dist/primitives/DropdownMenuSection.d.ts.map +1 -0
  473. package/dist/primitives/DropdownMenuSection.js +5 -0
  474. package/dist/primitives/DropdownMenuSection.js.map +1 -0
  475. package/dist/primitives/DropdownMenuSelectionGroup.cjs +8 -0
  476. package/dist/primitives/DropdownMenuSelectionGroup.d.ts +2 -0
  477. package/dist/primitives/DropdownMenuSelectionGroup.d.ts.map +1 -0
  478. package/dist/primitives/DropdownMenuSelectionGroup.js +5 -0
  479. package/dist/primitives/DropdownMenuSelectionGroup.js.map +1 -0
  480. package/dist/primitives/DropdownMenuTitle.cjs +8 -0
  481. package/dist/primitives/DropdownMenuTitle.d.ts +2 -0
  482. package/dist/primitives/DropdownMenuTitle.d.ts.map +1 -0
  483. package/dist/primitives/DropdownMenuTitle.js +5 -0
  484. package/dist/primitives/DropdownMenuTitle.js.map +1 -0
  485. package/dist/primitives/Heading.cjs +2 -2
  486. package/dist/primitives/Heading.d.ts +1 -1
  487. package/dist/primitives/Heading.d.ts.map +1 -1
  488. package/dist/primitives/Heading.js +1 -1
  489. package/dist/primitives/Heading.js.map +1 -1
  490. package/dist/primitives/IconTile.cjs +8 -0
  491. package/dist/primitives/IconTile.d.ts +2 -0
  492. package/dist/primitives/IconTile.d.ts.map +1 -0
  493. package/dist/primitives/IconTile.js +5 -0
  494. package/dist/primitives/IconTile.js.map +1 -0
  495. package/dist/primitives/ImageInput.cjs +8 -0
  496. package/dist/primitives/ImageInput.d.ts +2 -0
  497. package/dist/primitives/ImageInput.d.ts.map +1 -0
  498. package/dist/primitives/ImageInput.js +5 -0
  499. package/dist/primitives/ImageInput.js.map +1 -0
  500. package/dist/primitives/InputGroup.cjs +8 -0
  501. package/dist/primitives/InputGroup.d.ts +2 -0
  502. package/dist/primitives/InputGroup.d.ts.map +1 -0
  503. package/dist/primitives/InputGroup.js +5 -0
  504. package/dist/primitives/InputGroup.js.map +1 -0
  505. package/dist/primitives/NumberField.cjs +8 -0
  506. package/dist/primitives/NumberField.d.ts +2 -0
  507. package/dist/primitives/NumberField.d.ts.map +1 -0
  508. package/dist/primitives/NumberField.js +5 -0
  509. package/dist/primitives/NumberField.js.map +1 -0
  510. package/dist/primitives/OverflowingList.cjs +8 -0
  511. package/dist/primitives/OverflowingList.d.ts +2 -0
  512. package/dist/primitives/OverflowingList.d.ts.map +1 -0
  513. package/dist/primitives/OverflowingList.js +5 -0
  514. package/dist/primitives/OverflowingList.js.map +1 -0
  515. package/dist/primitives/PhoneCountryPicker.cjs +8 -0
  516. package/dist/primitives/PhoneCountryPicker.d.ts +2 -0
  517. package/dist/primitives/PhoneCountryPicker.d.ts.map +1 -0
  518. package/dist/primitives/PhoneCountryPicker.js +5 -0
  519. package/dist/primitives/PhoneCountryPicker.js.map +1 -0
  520. package/dist/primitives/ProgressRing.cjs +8 -0
  521. package/dist/primitives/ProgressRing.d.ts +2 -0
  522. package/dist/primitives/ProgressRing.d.ts.map +1 -0
  523. package/dist/primitives/ProgressRing.js +5 -0
  524. package/dist/primitives/ProgressRing.js.map +1 -0
  525. package/dist/primitives/RadioCircle.cjs +8 -0
  526. package/dist/primitives/RadioCircle.d.ts +2 -0
  527. package/dist/primitives/RadioCircle.d.ts.map +1 -0
  528. package/dist/primitives/RadioCircle.js +5 -0
  529. package/dist/primitives/RadioCircle.js.map +1 -0
  530. package/dist/primitives/SKELETON_HEIGHT.cjs +8 -0
  531. package/dist/primitives/SKELETON_HEIGHT.d.ts +2 -0
  532. package/dist/primitives/SKELETON_HEIGHT.d.ts.map +1 -0
  533. package/dist/primitives/SKELETON_HEIGHT.js +5 -0
  534. package/dist/primitives/SKELETON_HEIGHT.js.map +1 -0
  535. package/dist/primitives/STATUS_COLOR.cjs +8 -0
  536. package/dist/primitives/STATUS_COLOR.d.ts +2 -0
  537. package/dist/primitives/STATUS_COLOR.d.ts.map +1 -0
  538. package/dist/primitives/STATUS_COLOR.js +5 -0
  539. package/dist/primitives/STATUS_COLOR.js.map +1 -0
  540. package/dist/primitives/STATUS_HUE.cjs +8 -0
  541. package/dist/primitives/STATUS_HUE.d.ts +2 -0
  542. package/dist/primitives/STATUS_HUE.d.ts.map +1 -0
  543. package/dist/primitives/STATUS_HUE.js +5 -0
  544. package/dist/primitives/STATUS_HUE.js.map +1 -0
  545. package/dist/primitives/STATUS_PAINT.cjs +8 -0
  546. package/dist/primitives/STATUS_PAINT.d.ts +2 -0
  547. package/dist/primitives/STATUS_PAINT.d.ts.map +1 -0
  548. package/dist/primitives/STATUS_PAINT.js +5 -0
  549. package/dist/primitives/STATUS_PAINT.js.map +1 -0
  550. package/dist/primitives/Shortcut.cjs +8 -0
  551. package/dist/primitives/Shortcut.d.ts +2 -0
  552. package/dist/primitives/Shortcut.d.ts.map +1 -0
  553. package/dist/primitives/Shortcut.js +5 -0
  554. package/dist/primitives/Shortcut.js.map +1 -0
  555. package/dist/primitives/StackIcon.cjs +8 -0
  556. package/dist/primitives/StackIcon.d.ts +2 -0
  557. package/dist/primitives/StackIcon.d.ts.map +1 -0
  558. package/dist/primitives/StackIcon.js +5 -0
  559. package/dist/primitives/StackIcon.js.map +1 -0
  560. package/dist/primitives/TOAST_DURATION.cjs +8 -0
  561. package/dist/primitives/TOAST_DURATION.d.ts +2 -0
  562. package/dist/primitives/TOAST_DURATION.d.ts.map +1 -0
  563. package/dist/primitives/TOAST_DURATION.js +5 -0
  564. package/dist/primitives/TOAST_DURATION.js.map +1 -0
  565. package/dist/primitives/Tag.cjs +8 -0
  566. package/dist/primitives/Tag.d.ts +2 -0
  567. package/dist/primitives/Tag.d.ts.map +1 -0
  568. package/dist/primitives/Tag.js +5 -0
  569. package/dist/primitives/Tag.js.map +1 -0
  570. package/dist/primitives/ToastCard.cjs +8 -0
  571. package/dist/primitives/ToastCard.d.ts +2 -0
  572. package/dist/primitives/ToastCard.d.ts.map +1 -0
  573. package/dist/primitives/ToastCard.js +5 -0
  574. package/dist/primitives/ToastCard.js.map +1 -0
  575. package/dist/primitives/ToastFace.cjs +8 -0
  576. package/dist/primitives/ToastFace.d.ts +2 -0
  577. package/dist/primitives/ToastFace.d.ts.map +1 -0
  578. package/dist/primitives/ToastFace.js +5 -0
  579. package/dist/primitives/ToastFace.js.map +1 -0
  580. package/dist/primitives/TruncatedText.cjs +8 -0
  581. package/dist/primitives/TruncatedText.d.ts +2 -0
  582. package/dist/primitives/TruncatedText.d.ts.map +1 -0
  583. package/dist/primitives/TruncatedText.js +5 -0
  584. package/dist/primitives/TruncatedText.js.map +1 -0
  585. package/dist/primitives/TruncatedTextProvider.cjs +8 -0
  586. package/dist/primitives/TruncatedTextProvider.d.ts +2 -0
  587. package/dist/primitives/TruncatedTextProvider.d.ts.map +1 -0
  588. package/dist/primitives/TruncatedTextProvider.js +5 -0
  589. package/dist/primitives/TruncatedTextProvider.js.map +1 -0
  590. package/dist/primitives/VisuallyHidden.cjs +8 -0
  591. package/dist/primitives/VisuallyHidden.d.ts +2 -0
  592. package/dist/primitives/VisuallyHidden.d.ts.map +1 -0
  593. package/dist/primitives/VisuallyHidden.js +5 -0
  594. package/dist/primitives/VisuallyHidden.js.map +1 -0
  595. package/dist/primitives/fieldSize.cjs +8 -0
  596. package/dist/primitives/fieldSize.d.ts +2 -0
  597. package/dist/primitives/fieldSize.d.ts.map +1 -0
  598. package/dist/primitives/fieldSize.js +5 -0
  599. package/dist/primitives/fieldSize.js.map +1 -0
  600. package/dist/primitives/flag.cjs +8 -0
  601. package/dist/primitives/flag.d.ts +2 -0
  602. package/dist/primitives/flag.d.ts.map +1 -0
  603. package/dist/primitives/flag.js +5 -0
  604. package/dist/primitives/flag.js.map +1 -0
  605. package/dist/primitives/formatShortcut.cjs +8 -0
  606. package/dist/primitives/formatShortcut.d.ts +2 -0
  607. package/dist/primitives/formatShortcut.d.ts.map +1 -0
  608. package/dist/primitives/formatShortcut.js +5 -0
  609. package/dist/primitives/formatShortcut.js.map +1 -0
  610. package/dist/primitives/initialOf.cjs +8 -0
  611. package/dist/primitives/initialOf.d.ts +2 -0
  612. package/dist/primitives/initialOf.d.ts.map +1 -0
  613. package/dist/primitives/initialOf.js +5 -0
  614. package/dist/primitives/initialOf.js.map +1 -0
  615. package/dist/primitives/parseNumber.cjs +8 -0
  616. package/dist/primitives/parseNumber.d.ts +2 -0
  617. package/dist/primitives/parseNumber.d.ts.map +1 -0
  618. package/dist/primitives/parseNumber.js +5 -0
  619. package/dist/primitives/parseNumber.js.map +1 -0
  620. package/dist/primitives/speakShortcut.cjs +8 -0
  621. package/dist/primitives/speakShortcut.d.ts +2 -0
  622. package/dist/primitives/speakShortcut.d.ts.map +1 -0
  623. package/dist/primitives/speakShortcut.js +5 -0
  624. package/dist/primitives/speakShortcut.js.map +1 -0
  625. package/dist/primitives/tileTones.cjs +8 -0
  626. package/dist/primitives/tileTones.d.ts +2 -0
  627. package/dist/primitives/tileTones.d.ts.map +1 -0
  628. package/dist/primitives/tileTones.js +5 -0
  629. package/dist/primitives/tileTones.js.map +1 -0
  630. package/dist/primitives/useDensity.cjs +8 -0
  631. package/dist/primitives/useDensity.d.ts +2 -0
  632. package/dist/primitives/useDensity.d.ts.map +1 -0
  633. package/dist/primitives/useDensity.js +5 -0
  634. package/dist/primitives/useDensity.js.map +1 -0
  635. package/dist/primitives/useField.cjs +8 -0
  636. package/dist/primitives/useField.d.ts +2 -0
  637. package/dist/primitives/useField.d.ts.map +1 -0
  638. package/dist/primitives/useField.js +5 -0
  639. package/dist/primitives/useField.js.map +1 -0
  640. package/dist/product/ComboBox.cjs +25 -7
  641. package/dist/product/ComboBox.d.ts +3 -1
  642. package/dist/product/ComboBox.d.ts.map +1 -1
  643. package/dist/product/ComboBox.js +25 -7
  644. package/dist/product/ComboBox.js.map +1 -1
  645. package/dist/product/CommandMenu.cjs +137 -0
  646. package/dist/product/CommandMenu.d.ts +77 -0
  647. package/dist/product/CommandMenu.d.ts.map +1 -0
  648. package/dist/product/CommandMenu.js +134 -0
  649. package/dist/product/CommandMenu.js.map +1 -0
  650. package/dist/product/DetailPane.cjs +154 -12
  651. package/dist/product/DetailPane.d.ts +80 -2
  652. package/dist/product/DetailPane.d.ts.map +1 -1
  653. package/dist/product/DetailPane.js +153 -16
  654. package/dist/product/DetailPane.js.map +1 -1
  655. package/dist/product/Fact.cjs +6 -1
  656. package/dist/product/Fact.d.ts +16 -1
  657. package/dist/product/Fact.d.ts.map +1 -1
  658. package/dist/product/Fact.js +6 -1
  659. package/dist/product/Fact.js.map +1 -1
  660. package/dist/product/Field.cjs +14 -2
  661. package/dist/product/Field.d.ts +16 -1
  662. package/dist/product/Field.d.ts.map +1 -1
  663. package/dist/product/Field.js +14 -2
  664. package/dist/product/Field.js.map +1 -1
  665. package/dist/product/Filters.cjs +61 -9
  666. package/dist/product/Filters.d.ts +37 -6
  667. package/dist/product/Filters.d.ts.map +1 -1
  668. package/dist/product/Filters.js +62 -10
  669. package/dist/product/Filters.js.map +1 -1
  670. package/dist/product/MenuRow.cjs +81 -2
  671. package/dist/product/MenuRow.d.ts +76 -6
  672. package/dist/product/MenuRow.d.ts.map +1 -1
  673. package/dist/product/MenuRow.js +81 -4
  674. package/dist/product/MenuRow.js.map +1 -1
  675. package/dist/product/PrimaryButton.cjs +5 -1
  676. package/dist/product/PrimaryButton.d.ts +8 -0
  677. package/dist/product/PrimaryButton.d.ts.map +1 -1
  678. package/dist/product/PrimaryButton.js +5 -1
  679. package/dist/product/PrimaryButton.js.map +1 -1
  680. package/dist/product/Skeleton.cjs +7 -6
  681. package/dist/product/Skeleton.d.ts +3 -20
  682. package/dist/product/Skeleton.d.ts.map +1 -1
  683. package/dist/product/Skeleton.js +8 -7
  684. package/dist/product/Skeleton.js.map +1 -1
  685. package/dist/product/index.cjs +2 -0
  686. package/dist/product/index.d.ts +1 -0
  687. package/dist/product/index.d.ts.map +1 -1
  688. package/dist/product/index.js +2 -0
  689. package/dist/product/index.js.map +1 -1
  690. package/dist/settings/Section.cjs +11 -2
  691. package/dist/settings/Section.d.ts +8 -1
  692. package/dist/settings/Section.d.ts.map +1 -1
  693. package/dist/settings/Section.js +11 -2
  694. package/dist/settings/Section.js.map +1 -1
  695. package/dist/styles/motion.css +70 -0
  696. package/dist/styles.css +1460 -127
  697. package/dist/theme.css +944 -0
  698. package/package.json +2 -1
@@ -7,10 +7,26 @@ import { jsx as _jsx } from "react/jsx-runtime";
7
7
  * and a row is the one box model that also exists on native.
8
8
  */
9
9
  import { SizableText, XStack, YStack, styled, withStaticProperties } from '@hanzo/gui';
10
+ import { createContext, useContext } from 'react';
11
+ import { useDensity } from './density.js';
10
12
  import { AspectRatio } from './aspect-ratio.js';
11
13
  import { ink } from './ink.js';
12
14
  import { slot } from './slot.js';
13
15
  const PAD = 24;
16
+ /**
17
+ * The compact card (twenty-ui's Card, MIT, NOTICE): the settings and record
18
+ * frame. No inset of its own and an 8px corner; a Header and a Footer band at
19
+ * 8×16 in 12px medium on the ground, a Content well at 16 on the panel rung,
20
+ * hairlines between them (`divider` on Content, on by default for the Footer).
21
+ * Asked for with `density="compact"` or given by a compact `<Density>`. The
22
+ * regular card stays the 24px-padded panel.
23
+ */
24
+ const Compact = /* @__PURE__ */ createContext(false);
25
+ const COMPACT = {
26
+ frame: { py: 0, gap: 0, rounded: '$3', overflow: 'hidden', bg: 'transparent' },
27
+ band: { px: 16, py: 8, bg: '$background' },
28
+ content: { p: 16, bg: '$panel' },
29
+ };
14
30
  const CardFrame = styled(YStack, {
15
31
  name: 'Card',
16
32
  bg: '$background',
@@ -38,30 +54,43 @@ const DescriptionFrame = styled(SizableText, { name: 'CardDescription', size: '$
38
54
  const ActionFrame = styled(XStack, { name: 'CardAction', self: 'flex-end', shrink: 0 });
39
55
  const ContentFrame = styled(YStack, { name: 'CardContent', px: PAD });
40
56
  const FooterFrame = styled(XStack, { name: 'CardFooter', px: PAD, items: 'center' });
41
- const Card = ({ interactive, onPress, ...p }) => (_jsx(CardFrame, { ...slot('card'), ...(interactive
42
- ? {
43
- role: 'button',
44
- tabIndex: 0,
45
- cursor: 'pointer',
46
- hoverStyle: { borderColor: '$dim' },
47
- focusStyle: { borderColor: '$dim', outlineWidth: 2, outlineStyle: 'solid', outlineColor: '$dim' },
48
- // A div with role="button" is not a button: the browser gives it no
49
- // keyboard activation, so it has to be spelled out or the card is
50
- // mouse-only. Space must also preventDefault or the page scrolls.
51
- onKeyDown: (e) => {
52
- if (e.key !== 'Enter' && e.key !== ' ')
53
- return;
54
- e.preventDefault();
55
- onPress?.(e);
56
- },
57
- }
58
- : null), onPress: onPress, ...p }));
59
- const CardHeader = (p) => _jsx(HeaderFrame, { ...slot('card-header'), ...p });
57
+ const Card = ({ interactive, onPress, density, children, ...p }) => {
58
+ const near = useDensity();
59
+ const compact = (density ?? near) === 'compact';
60
+ return (_jsx(CardFrame, { ...slot('card'), ...(compact ? { 'data-density': 'compact', ...COMPACT.frame } : null), ...(interactive
61
+ ? {
62
+ role: 'button',
63
+ tabIndex: 0,
64
+ cursor: 'pointer',
65
+ hoverStyle: compact ? { bg: '$hover' } : { borderColor: '$dim' },
66
+ focusStyle: { borderColor: '$dim', outlineWidth: 2, outlineStyle: 'solid', outlineColor: '$dim' },
67
+ // A div with role="button" is not a button: the browser gives it no
68
+ // keyboard activation, so it has to be spelled out or the card is
69
+ // mouse-only. Space must also preventDefault or the page scrolls.
70
+ onKeyDown: (e) => {
71
+ if (e.key !== 'Enter' && e.key !== ' ')
72
+ return;
73
+ e.preventDefault();
74
+ onPress?.(e);
75
+ },
76
+ }
77
+ : null), onPress: onPress, ...p, children: _jsx(Compact.Provider, { value: compact, children: children }) }));
78
+ };
79
+ const CardHeader = ({ children, ...p }) => {
80
+ const compact = useContext(Compact);
81
+ return (_jsx(HeaderFrame, { ...slot('card-header'), ...(compact ? { ...COMPACT.band, gap: '$1', borderBottomWidth: 1, borderColor: '$borderColor' } : null), ...p, children: compact ? ink(children, SizableText, { size: '$1', fontWeight: '500', color: '$aside' }) : children }));
82
+ };
60
83
  const CardTitle = (p) => _jsx(TitleFrame, { ...slot('card-title'), ...p });
61
84
  const CardDescription = (p) => _jsx(DescriptionFrame, { ...slot('card-description'), ...p });
62
85
  const CardAction = (p) => _jsx(ActionFrame, { ...slot('card-action'), ...p });
63
- const CardContent = ({ children, ...p }) => (_jsx(ContentFrame, { ...slot('card-content'), ...p, children: ink(children) }));
64
- const CardFooter = ({ children, ...p }) => (_jsx(FooterFrame, { ...slot('card-footer'), ...p, children: ink(children) }));
86
+ const CardContent = ({ children, divider = false, ...p }) => {
87
+ const compact = useContext(Compact);
88
+ return (_jsx(ContentFrame, { ...slot('card-content'), ...(compact ? { ...COMPACT.content, ...(divider ? { borderBottomWidth: 1, borderColor: '$borderColor' } : null) } : null), ...p, children: ink(children) }));
89
+ };
90
+ const CardFooter = ({ children, divider = true, ...p }) => {
91
+ const compact = useContext(Compact);
92
+ return (_jsx(FooterFrame, { ...slot('card-footer'), ...(compact ? { ...COMPACT.band, ...(divider ? { borderTopWidth: 1, borderColor: '$borderColor' } : null) } : null), ...p, children: compact ? ink(children, SizableText, { size: '$1', color: '$aside' }) : ink(children) }));
93
+ };
65
94
  const CardMedia = ({ ratio = 16 / 10, ...p }) => (_jsx(AspectRatio, { ...slot('card-media'), ratio: ratio, mt: -PAD, ...p }));
66
95
  /**
67
96
  * The dot-namespace. `Card.Media`, `Card.Body`, `Card.Title`, `Card.Meta` are
@@ -1 +1 @@
1
- {"version":3,"file":"card.js","sourceRoot":"","sources":["../../../src/backends/gui/card.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"card.js","sourceRoot":"","sources":["../../../src/backends/gui/card.tsx"],"names":[],"mappings":"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"}
@@ -6,12 +6,28 @@ const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  /**
7
7
  * Checkbox — 16px box, `touch()` to the 44px floor on web and native alike.
8
8
  * @hanzogui/checkbox owns the checked/indeterminate state and a11y.
9
+ *
10
+ * Two looks, one control.
11
+ *
12
+ * `plain` is the box every Hanzo surface has drawn: a 16px well with a control
13
+ * edge and an `$ink` tick, never filled. It is what a Checkbox renders when it
14
+ * names nothing else, so no existing caller moves.
15
+ *
16
+ * The record look is twenty-ui's (MIT, NOTICE), asked for by naming any of
17
+ * `variant` (solid | outline | soft), `size` (sm 12px | md 18px box), `shape`
18
+ * (square | round), `color` (accent | success | warning) or `hoverable`, or by a
19
+ * `<Density value="compact">` around it. The box FILLS when checked — the
20
+ * monochrome accent (`--primary`, which an org's accent restates) under its own
21
+ * foreground for the glyph — and `hoverable` (on by default there) widens the
22
+ * hit area by 5px (sm) or 6px (md) round the box with a hover halo, so a row's
23
+ * select column is a 24px target drawn as a 14px box.
9
24
  */
10
25
  const gui_1 = require("@hanzo/gui");
11
26
  const lucide_icons_2_1 = require("@hanzogui/lucide-icons-2");
12
27
  const react_1 = require("react");
13
28
  const slot_1 = require("./slot.cjs");
14
29
  const gesture_1 = require("./gesture.cjs");
30
+ const density_1 = require("./density.cjs");
15
31
  const BOX = 16;
16
32
  /**
17
33
  * The mark: a tick when checked, a dash when indeterminate. `$ink` on the
@@ -22,18 +38,74 @@ const Mark = () => {
22
38
  const Icon = (0, react_1.useContext)(gui_1.CheckboxContext).checked === 'indeterminate' ? lucide_icons_2_1.Minus : lucide_icons_2_1.Check;
23
39
  return (0, jsx_runtime_1.jsx)(Icon, { size: BOX - 3, color: "$ink", strokeWidth: 3 });
24
40
  };
25
- const Checkbox = (props) => ((0, jsx_runtime_1.jsx)(gui_1.Checkbox, { ...(0, slot_1.slot)('checkbox'), width: BOX, height: BOX, flexShrink: 0,
26
- // The frame is a <button>, which the user agent pads 1px 6px: on a 16px
27
- // border box that leaves a 2px-wide content box and squeezes the 13px mark
28
- // to 2px. Zero padding gives the mark the whole 14px inside the border.
29
- padding: 0, borderRadius: "$2", borderWidth: 1,
30
- // A CONTROL boundary, not a surface hairline. `$borderColor` is 10% white —
31
- // right for a card edge sitting on its own fill, and 1.26:1 against the
32
- // ground, where WCAG 1.4.11 asks 3:1 for the visible boundary of a control.
33
- // An unchecked box was therefore not quiet, it was absent. `$bound` is
34
- // 3.45:1. The two jobs shared one token and only one of them was satisfied.
35
- borderColor: "$bound", backgroundColor: "transparent",
36
- // gui fills a checked box with `$backgroundActive` unless `activeStyle` is
37
- // given; the well stays transparent so the `$ink` mark keeps its contrast.
38
- activeStyle: { bg: 'transparent' }, ...(0, gesture_1.touch)(BOX), ...props, children: (0, jsx_runtime_1.jsx)(gui_1.Checkbox.Indicator, { ...(0, slot_1.slot)('checkbox-indicator'), alignItems: "center", justifyContent: "center", children: (0, jsx_runtime_1.jsx)(Mark, {}) }) }));
41
+ /** The record box per size: the box, its edge, the glyph drawn over it, and the halo's reach. */
42
+ const DIM = {
43
+ sm: { box: 12, edge: 1, glyph: 14, pad: 5 },
44
+ md: { box: 18, edge: 1.5, glyph: 20, pad: 6 },
45
+ };
46
+ /** The unchecked edge per variant (twenty-ui: inverted, secondary-inverted, medium). */
47
+ const EDGE = {
48
+ solid: '$ink',
49
+ outline: '$hint',
50
+ soft: '$borderColor',
51
+ };
52
+ /** Per colour: the checked fill, the glyph on it, and the halo a checked box takes under the pointer. */
53
+ const TONE = {
54
+ accent: { fill: 'var(--primary)', glyph: 'var(--primary-foreground)', tint: '$raised' },
55
+ success: { fill: '$good', glyph: '$background', tint: 'var(--state-success-bg)' },
56
+ warning: { fill: 'var(--state-warning)', glyph: '$background', tint: 'var(--state-warning-bg)' },
57
+ };
58
+ /**
59
+ * The visible box, inside the button. It reads the checked state from the
60
+ * control's context, so the fill follows a controlled AND an uncontrolled
61
+ * checkbox.
62
+ */
63
+ const RecordBox = ({ look }) => {
64
+ const checked = (0, react_1.useContext)(gui_1.CheckboxContext).checked;
65
+ const on = checked === true || checked === 'indeterminate';
66
+ const Icon = checked === 'indeterminate' ? lucide_icons_2_1.Minus : lucide_icons_2_1.Check;
67
+ const { dim, tone } = look;
68
+ return ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('checkbox-box'), position: "relative", width: dim.box + 2 * dim.edge, height: dim.box + 2 * dim.edge, rounded: look.round ? '$10' : '$xs', borderWidth: dim.edge, borderColor: on ? tone.fill : look.disabled ? '$rim' : EDGE[look.variant], bg: on ? tone.fill : 'transparent', opacity: look.disabled && on ? 0.5 : 1, items: "center", justify: "center", pointerEvents: "none", children: on ? (0, jsx_runtime_1.jsx)(Icon, { size: dim.glyph, color: tone.glyph, strokeWidth: 2.5 }) : null }));
69
+ };
70
+ const Checkbox = ({ variant, size, shape, color, hoverable, ...props }) => {
71
+ const compact = (0, density_1.useDensity)() === 'compact';
72
+ const named = size !== undefined || shape !== undefined || color !== undefined || hoverable !== undefined;
73
+ const resolved = variant ?? (compact || named ? 'solid' : 'plain');
74
+ if (resolved !== 'plain') {
75
+ const dim = DIM[size ?? 'sm'];
76
+ const halo = hoverable ?? true;
77
+ const outer = dim.box + 2 * dim.edge;
78
+ const frame = halo ? outer + 2 * dim.pad : outer;
79
+ // The halo is the BUTTON's own hover, not a layer inside it: Chromium hit-
80
+ // tests a <button> as one target, so a child never matched :hover and a
81
+ // halo drawn as one never showed (measured). A checked box takes its
82
+ // colour's tint, read from the controlled value where there is one.
83
+ const lit = props.checked === true || props.checked === 'indeterminate';
84
+ const look = {
85
+ dim,
86
+ variant: resolved,
87
+ tone: TONE[color ?? 'accent'],
88
+ round: shape === 'round',
89
+ hoverable: halo,
90
+ disabled: !!props.disabled,
91
+ };
92
+ return ((0, jsx_runtime_1.jsx)(gui_1.Checkbox, { ...(0, slot_1.slot)('checkbox'), "data-variant": resolved, "data-size": size ?? 'sm', width: frame, height: frame, flexShrink: 0, padding: 0, position: "relative", items: "center", justify: "center", borderWidth: 0, rounded: shape === 'round' ? '$10' : halo ? '$3' : '$xs', backgroundColor: "transparent", ...(halo && !props.disabled ? { hoverStyle: { bg: lit ? look.tone.tint : '$hover' } } : null),
93
+ // The fill is the box's, drawn from context; the button stays a well.
94
+ activeStyle: { bg: 'transparent' }, cursor: props.disabled ? 'not-allowed' : 'pointer', ...(0, gesture_1.touch)(frame), ...props, children: (0, jsx_runtime_1.jsx)(RecordBox, { look: look }) }));
95
+ }
96
+ return ((0, jsx_runtime_1.jsx)(gui_1.Checkbox, { ...(0, slot_1.slot)('checkbox'), width: BOX, height: BOX, flexShrink: 0,
97
+ // The frame is a <button>, which the user agent pads 1px 6px: on a 16px
98
+ // border box that leaves a 2px-wide content box and squeezes the 13px mark
99
+ // to 2px. Zero padding gives the mark the whole 14px inside the border.
100
+ padding: 0, borderRadius: "$2", borderWidth: 1,
101
+ // A CONTROL boundary, not a surface hairline. `$borderColor` is 10% white —
102
+ // right for a card edge sitting on its own fill, and 1.26:1 against the
103
+ // ground, where WCAG 1.4.11 asks 3:1 for the visible boundary of a control.
104
+ // An unchecked box was therefore not quiet, it was absent. `$bound` is
105
+ // 3.45:1. The two jobs shared one token and only one of them was satisfied.
106
+ borderColor: "$bound", backgroundColor: "transparent",
107
+ // gui fills a checked box with `$backgroundActive` unless `activeStyle` is
108
+ // given; the well stays transparent so the `$ink` mark keeps its contrast.
109
+ activeStyle: { bg: 'transparent' }, ...(0, gesture_1.touch)(BOX), ...props, children: (0, jsx_runtime_1.jsx)(gui_1.Checkbox.Indicator, { ...(0, slot_1.slot)('checkbox-indicator'), alignItems: "center", justifyContent: "center", children: (0, jsx_runtime_1.jsx)(Mark, {}) }) }));
110
+ };
39
111
  exports.Checkbox = Checkbox;
@@ -1,10 +1,38 @@
1
1
  /**
2
2
  * Checkbox — 16px box, `touch()` to the 44px floor on web and native alike.
3
3
  * @hanzogui/checkbox owns the checked/indeterminate state and a11y.
4
+ *
5
+ * Two looks, one control.
6
+ *
7
+ * `plain` is the box every Hanzo surface has drawn: a 16px well with a control
8
+ * edge and an `$ink` tick, never filled. It is what a Checkbox renders when it
9
+ * names nothing else, so no existing caller moves.
10
+ *
11
+ * The record look is twenty-ui's (MIT, NOTICE), asked for by naming any of
12
+ * `variant` (solid | outline | soft), `size` (sm 12px | md 18px box), `shape`
13
+ * (square | round), `color` (accent | success | warning) or `hoverable`, or by a
14
+ * `<Density value="compact">` around it. The box FILLS when checked — the
15
+ * monochrome accent (`--primary`, which an org's accent restates) under its own
16
+ * foreground for the glyph — and `hoverable` (on by default there) widens the
17
+ * hit area by 5px (sm) or 6px (md) round the box with a hover halo, so a row's
18
+ * select column is a 24px target drawn as a 14px box.
4
19
  */
5
20
  import { Checkbox as GuiCheckbox } from '@hanzo/gui';
6
21
  import { type ComponentProps } from 'react';
7
- export type CheckboxProps = ComponentProps<typeof GuiCheckbox>;
8
- declare const Checkbox: (props: CheckboxProps) => import("react").JSX.Element;
22
+ export type CheckboxVariant = 'plain' | 'solid' | 'outline' | 'soft';
23
+ export type CheckboxSize = 'sm' | 'md';
24
+ export type CheckboxShape = 'square' | 'round';
25
+ export type CheckboxColor = 'accent' | 'success' | 'warning';
26
+ export type CheckboxProps = Omit<ComponentProps<typeof GuiCheckbox>, 'size' | 'color'> & {
27
+ /** `plain` (the default outside a compact density) or the record looks. */
28
+ variant?: CheckboxVariant;
29
+ /** The record box: `sm` 12px (the default there) or `md` 18px, plus its edge. */
30
+ size?: CheckboxSize;
31
+ shape?: CheckboxShape;
32
+ color?: CheckboxColor;
33
+ /** The halo round the box that widens the hit area. On by default in the record look. */
34
+ hoverable?: boolean;
35
+ };
36
+ declare const Checkbox: ({ variant, size, shape, color, hoverable, ...props }: CheckboxProps) => import("react").JSX.Element;
9
37
  export { Checkbox };
10
38
  //# sourceMappingURL=checkbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/checkbox.tsx"],"names":[],"mappings":"AAEA;;;GAGG;AACH,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAmB,MAAM,YAAY,CAAA;AAErE,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,OAAO,CAAA;AAMvD,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAA;AAY9D,QAAA,MAAM,QAAQ,UAAW,aAAa,gCA6BrC,CAAA;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/checkbox.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,QAAQ,IAAI,WAAW,EAA2B,MAAM,YAAY,CAAA;AAE7E,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,OAAO,CAAA;AAOvD,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;AACpE,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,CAAA;AACtC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAA;AAC9C,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAA;AAE5D,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG;IACvF,2EAA2E;IAC3E,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,iFAAiF;IACjF,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,yFAAyF;IACzF,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAuED,QAAA,MAAM,QAAQ,yDAA0D,aAAa,gCAgFpF,CAAA;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -3,12 +3,28 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  /**
4
4
  * Checkbox — 16px box, `touch()` to the 44px floor on web and native alike.
5
5
  * @hanzogui/checkbox owns the checked/indeterminate state and a11y.
6
+ *
7
+ * Two looks, one control.
8
+ *
9
+ * `plain` is the box every Hanzo surface has drawn: a 16px well with a control
10
+ * edge and an `$ink` tick, never filled. It is what a Checkbox renders when it
11
+ * names nothing else, so no existing caller moves.
12
+ *
13
+ * The record look is twenty-ui's (MIT, NOTICE), asked for by naming any of
14
+ * `variant` (solid | outline | soft), `size` (sm 12px | md 18px box), `shape`
15
+ * (square | round), `color` (accent | success | warning) or `hoverable`, or by a
16
+ * `<Density value="compact">` around it. The box FILLS when checked — the
17
+ * monochrome accent (`--primary`, which an org's accent restates) under its own
18
+ * foreground for the glyph — and `hoverable` (on by default there) widens the
19
+ * hit area by 5px (sm) or 6px (md) round the box with a hover halo, so a row's
20
+ * select column is a 24px target drawn as a 14px box.
6
21
  */
7
- import { Checkbox as GuiCheckbox, CheckboxContext } from '@hanzo/gui';
22
+ import { Checkbox as GuiCheckbox, CheckboxContext, XStack } from '@hanzo/gui';
8
23
  import { Check, Minus } from '@hanzogui/lucide-icons-2';
9
24
  import { useContext } from 'react';
10
25
  import { slot } from './slot.js';
11
26
  import { touch } from './gesture.js';
27
+ import { useDensity } from './density.js';
12
28
  const BOX = 16;
13
29
  /**
14
30
  * The mark: a tick when checked, a dash when indeterminate. `$ink` on the
@@ -19,19 +35,75 @@ const Mark = () => {
19
35
  const Icon = useContext(CheckboxContext).checked === 'indeterminate' ? Minus : Check;
20
36
  return _jsx(Icon, { size: BOX - 3, color: "$ink", strokeWidth: 3 });
21
37
  };
22
- const Checkbox = (props) => (_jsx(GuiCheckbox, { ...slot('checkbox'), width: BOX, height: BOX, flexShrink: 0,
23
- // The frame is a <button>, which the user agent pads 1px 6px: on a 16px
24
- // border box that leaves a 2px-wide content box and squeezes the 13px mark
25
- // to 2px. Zero padding gives the mark the whole 14px inside the border.
26
- padding: 0, borderRadius: "$2", borderWidth: 1,
27
- // A CONTROL boundary, not a surface hairline. `$borderColor` is 10% white —
28
- // right for a card edge sitting on its own fill, and 1.26:1 against the
29
- // ground, where WCAG 1.4.11 asks 3:1 for the visible boundary of a control.
30
- // An unchecked box was therefore not quiet, it was absent. `$bound` is
31
- // 3.45:1. The two jobs shared one token and only one of them was satisfied.
32
- borderColor: "$bound", backgroundColor: "transparent",
33
- // gui fills a checked box with `$backgroundActive` unless `activeStyle` is
34
- // given; the well stays transparent so the `$ink` mark keeps its contrast.
35
- activeStyle: { bg: 'transparent' }, ...touch(BOX), ...props, children: _jsx(GuiCheckbox.Indicator, { ...slot('checkbox-indicator'), alignItems: "center", justifyContent: "center", children: _jsx(Mark, {}) }) }));
38
+ /** The record box per size: the box, its edge, the glyph drawn over it, and the halo's reach. */
39
+ const DIM = {
40
+ sm: { box: 12, edge: 1, glyph: 14, pad: 5 },
41
+ md: { box: 18, edge: 1.5, glyph: 20, pad: 6 },
42
+ };
43
+ /** The unchecked edge per variant (twenty-ui: inverted, secondary-inverted, medium). */
44
+ const EDGE = {
45
+ solid: '$ink',
46
+ outline: '$hint',
47
+ soft: '$borderColor',
48
+ };
49
+ /** Per colour: the checked fill, the glyph on it, and the halo a checked box takes under the pointer. */
50
+ const TONE = {
51
+ accent: { fill: 'var(--primary)', glyph: 'var(--primary-foreground)', tint: '$raised' },
52
+ success: { fill: '$good', glyph: '$background', tint: 'var(--state-success-bg)' },
53
+ warning: { fill: 'var(--state-warning)', glyph: '$background', tint: 'var(--state-warning-bg)' },
54
+ };
55
+ /**
56
+ * The visible box, inside the button. It reads the checked state from the
57
+ * control's context, so the fill follows a controlled AND an uncontrolled
58
+ * checkbox.
59
+ */
60
+ const RecordBox = ({ look }) => {
61
+ const checked = useContext(CheckboxContext).checked;
62
+ const on = checked === true || checked === 'indeterminate';
63
+ const Icon = checked === 'indeterminate' ? Minus : Check;
64
+ const { dim, tone } = look;
65
+ return (_jsx(XStack, { ...slot('checkbox-box'), position: "relative", width: dim.box + 2 * dim.edge, height: dim.box + 2 * dim.edge, rounded: look.round ? '$10' : '$xs', borderWidth: dim.edge, borderColor: on ? tone.fill : look.disabled ? '$rim' : EDGE[look.variant], bg: on ? tone.fill : 'transparent', opacity: look.disabled && on ? 0.5 : 1, items: "center", justify: "center", pointerEvents: "none", children: on ? _jsx(Icon, { size: dim.glyph, color: tone.glyph, strokeWidth: 2.5 }) : null }));
66
+ };
67
+ const Checkbox = ({ variant, size, shape, color, hoverable, ...props }) => {
68
+ const compact = useDensity() === 'compact';
69
+ const named = size !== undefined || shape !== undefined || color !== undefined || hoverable !== undefined;
70
+ const resolved = variant ?? (compact || named ? 'solid' : 'plain');
71
+ if (resolved !== 'plain') {
72
+ const dim = DIM[size ?? 'sm'];
73
+ const halo = hoverable ?? true;
74
+ const outer = dim.box + 2 * dim.edge;
75
+ const frame = halo ? outer + 2 * dim.pad : outer;
76
+ // The halo is the BUTTON's own hover, not a layer inside it: Chromium hit-
77
+ // tests a <button> as one target, so a child never matched :hover and a
78
+ // halo drawn as one never showed (measured). A checked box takes its
79
+ // colour's tint, read from the controlled value where there is one.
80
+ const lit = props.checked === true || props.checked === 'indeterminate';
81
+ const look = {
82
+ dim,
83
+ variant: resolved,
84
+ tone: TONE[color ?? 'accent'],
85
+ round: shape === 'round',
86
+ hoverable: halo,
87
+ disabled: !!props.disabled,
88
+ };
89
+ return (_jsx(GuiCheckbox, { ...slot('checkbox'), "data-variant": resolved, "data-size": size ?? 'sm', width: frame, height: frame, flexShrink: 0, padding: 0, position: "relative", items: "center", justify: "center", borderWidth: 0, rounded: shape === 'round' ? '$10' : halo ? '$3' : '$xs', backgroundColor: "transparent", ...(halo && !props.disabled ? { hoverStyle: { bg: lit ? look.tone.tint : '$hover' } } : null),
90
+ // The fill is the box's, drawn from context; the button stays a well.
91
+ activeStyle: { bg: 'transparent' }, cursor: props.disabled ? 'not-allowed' : 'pointer', ...touch(frame), ...props, children: _jsx(RecordBox, { look: look }) }));
92
+ }
93
+ return (_jsx(GuiCheckbox, { ...slot('checkbox'), width: BOX, height: BOX, flexShrink: 0,
94
+ // The frame is a <button>, which the user agent pads 1px 6px: on a 16px
95
+ // border box that leaves a 2px-wide content box and squeezes the 13px mark
96
+ // to 2px. Zero padding gives the mark the whole 14px inside the border.
97
+ padding: 0, borderRadius: "$2", borderWidth: 1,
98
+ // A CONTROL boundary, not a surface hairline. `$borderColor` is 10% white —
99
+ // right for a card edge sitting on its own fill, and 1.26:1 against the
100
+ // ground, where WCAG 1.4.11 asks 3:1 for the visible boundary of a control.
101
+ // An unchecked box was therefore not quiet, it was absent. `$bound` is
102
+ // 3.45:1. The two jobs shared one token and only one of them was satisfied.
103
+ borderColor: "$bound", backgroundColor: "transparent",
104
+ // gui fills a checked box with `$backgroundActive` unless `activeStyle` is
105
+ // given; the well stays transparent so the `$ink` mark keeps its contrast.
106
+ activeStyle: { bg: 'transparent' }, ...touch(BOX), ...props, children: _jsx(GuiCheckbox.Indicator, { ...slot('checkbox-indicator'), alignItems: "center", justifyContent: "center", children: _jsx(Mark, {}) }) }));
107
+ };
36
108
  export { Checkbox };
37
109
  //# sourceMappingURL=checkbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../../src/backends/gui/checkbox.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;GAGG;AACH,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACrE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,UAAU,EAAuB,MAAM,OAAO,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAEjC,MAAM,GAAG,GAAG,EAAE,CAAA;AAId;;;;GAIG;AACH,MAAM,IAAI,GAAG,GAAG,EAAE;IAChB,MAAM,IAAI,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;IACpF,OAAO,KAAC,IAAI,IAAC,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,KAAK,EAAC,MAAM,EAAC,WAAW,EAAE,CAAC,GAAI,CAAA;AAC7D,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAE,EAAE,CAAC,CACzC,KAAC,WAAW,OACN,IAAI,CAAC,UAAU,CAAC,EACpB,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,CAAC;IACb,wEAAwE;IACxE,2EAA2E;IAC3E,wEAAwE;IACxE,OAAO,EAAE,CAAC,EACV,YAAY,EAAC,IAAI,EACjB,WAAW,EAAE,CAAC;IACd,4EAA4E;IAC5E,wEAAwE;IACxE,4EAA4E;IAC5E,uEAAuE;IACvE,4EAA4E;IAC5E,WAAW,EAAC,QAAQ,EACpB,eAAe,EAAC,aAAa;IAC7B,2EAA2E;IAC3E,2EAA2E;IAC3E,WAAW,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,KAC9B,KAAK,CAAC,GAAG,CAAC,KACV,KAAK,YAET,KAAC,WAAW,CAAC,SAAS,OAAK,IAAI,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,cAAc,EAAC,QAAQ,YAChG,KAAC,IAAI,KAAG,GACc,GACZ,CACf,CAAA;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
1
+ {"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../../src/backends/gui/checkbox.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ 'use client';"use strict";
2
+ 'use client';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Chip = Chip;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ /**
7
+ * Chip — a compact inline label with something before and after it: a record
8
+ * (avatar + name), an actor, an email or a phone, a "Not shared" lock.
9
+ *
10
+ * A chip is chrome, not data — it carries no hue of its own (that is `Tag`'s
11
+ * job) — so its grounds are the surface ladder: ghost takes its parent's, soft
12
+ * and solid lift one and two rungs, and a pressable chip lifts one more under
13
+ * the pointer and once again while pressed. The label truncates with an
14
+ * overflow hint, and the press area meets the 44px floor through `touch()`,
15
+ * never through padding, so the chip keeps its 20px.
16
+ *
17
+ * Re-expressed from twenty-ui's Chip (MIT, see NOTICE): sm 20 / md 24 tall, a
18
+ * 4px gutter and gap, square (4px) or round, an end element behind an optional
19
+ * hairline divider, a max width that shrinks the label and not the padding.
20
+ */
21
+ const gui_1 = require("@hanzo/gui");
22
+ const truncated_text_1 = require("./truncated-text.cjs");
23
+ const ink_1 = require("./ink.cjs");
24
+ const press_1 = require("./press.cjs");
25
+ const gesture_1 = require("./gesture.cjs");
26
+ const slot_1 = require("./slot.cjs");
27
+ const HEIGHT = { sm: 20, md: 24 };
28
+ /** Rest, hover and pressed grounds per variant: each step one rung up the ladder. */
29
+ const GROUND = {
30
+ ghost: { rest: 'transparent', hover: '$hover', down: '$raised' },
31
+ soft: { rest: '$hover', hover: '$raised', down: '$rim' },
32
+ solid: { rest: '$raised', hover: '$rim', down: '$bound' },
33
+ };
34
+ function Chip({ label, size = 'sm', variant = 'ghost', color = 'primary', shape = 'square', weight = 'regular', startElement, endElement, endElementDivider = false, truncate = true, tooltipContent, onPress, href, clickable, disabled = false, children, ...props }) {
35
+ const ground = GROUND[variant];
36
+ const pressable = !disabled && (clickable ?? (onPress != null || href != null));
37
+ const text = {
38
+ size: '$2',
39
+ fontWeight: weight === 'medium' ? '500' : undefined,
40
+ color: disabled ? '$hush' : color === 'secondary' ? '$aside' : '$ink',
41
+ };
42
+ const body = label ?? children;
43
+ return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { ...(0, slot_1.slot)('chip'), "data-size": size, "data-variant": variant, ...(href != null && !disabled ? { render: 'a', href } : onPress != null ? (0, press_1.press)(disabled ? undefined : onPress) : null), ...(disabled ? { 'aria-disabled': true } : null), display: "inline-flex", self: "flex-start", items: "center", gap: "$1", height: HEIGHT[size], px: "$1", maxW: "100%", minW: 0, rounded: shape === 'round' ? '$10' : '$xs', bg: ground.rest, select: "none", cursor: disabled ? 'not-allowed' : pressable ? 'pointer' : undefined, ...(pressable
44
+ ? {
45
+ hoverStyle: { bg: ground.hover },
46
+ pressStyle: { bg: ground.down },
47
+ focusVisibleStyle: press_1.RING,
48
+ ...(0, gesture_1.touch)(HEIGHT[size], 44, 'y'),
49
+ }
50
+ : null), ...props, children: [startElement ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('chip-start'), shrink: 0, items: "center", children: startElement })) : null, typeof body === 'string' || typeof body === 'number' ? (truncate ? ((0, jsx_runtime_1.jsx)(truncated_text_1.TruncatedText, { text: String(body), tooltipContent: tooltipContent, ...text })) : ((0, ink_1.ink)(body, undefined, text))) : (body), endElement ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('chip-end'), shrink: 0, items: "center", self: "stretch", ...(endElementDivider ? { borderLeftWidth: 1, borderColor: '$borderColor', pl: '$1' } : null), children: endElement })) : null] }));
51
+ }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Chip — a compact inline label with something before and after it: a record
3
+ * (avatar + name), an actor, an email or a phone, a "Not shared" lock.
4
+ *
5
+ * A chip is chrome, not data — it carries no hue of its own (that is `Tag`'s
6
+ * job) — so its grounds are the surface ladder: ghost takes its parent's, soft
7
+ * and solid lift one and two rungs, and a pressable chip lifts one more under
8
+ * the pointer and once again while pressed. The label truncates with an
9
+ * overflow hint, and the press area meets the 44px floor through `touch()`,
10
+ * never through padding, so the chip keeps its 20px.
11
+ *
12
+ * Re-expressed from twenty-ui's Chip (MIT, see NOTICE): sm 20 / md 24 tall, a
13
+ * 4px gutter and gap, square (4px) or round, an end element behind an optional
14
+ * hairline divider, a max width that shrinks the label and not the padding.
15
+ */
16
+ import { XStack } from '@hanzo/gui';
17
+ import type { ComponentProps, ReactNode } from 'react';
18
+ export type ChipSize = 'sm' | 'md';
19
+ export type ChipVariant = 'ghost' | 'soft' | 'solid';
20
+ export type ChipProps = Omit<ComponentProps<typeof XStack>, 'children' | 'color'> & {
21
+ label?: ReactNode;
22
+ size?: ChipSize;
23
+ variant?: ChipVariant;
24
+ color?: 'primary' | 'secondary';
25
+ shape?: 'square' | 'round';
26
+ weight?: 'regular' | 'medium';
27
+ /** Before the label: an avatar, an icon. Never shrinks. */
28
+ startElement?: ReactNode;
29
+ /** After the label: a remove button, a count. */
30
+ endElement?: ReactNode;
31
+ /** A hairline between the label and the end element. */
32
+ endElementDivider?: boolean;
33
+ /** One line with an ellipsis and an overflow hint. Default true. */
34
+ truncate?: boolean;
35
+ /** The hint, when it should say more than the label. */
36
+ tooltipContent?: ReactNode;
37
+ /** Makes the chip a button; it lifts under the pointer. */
38
+ onPress?: () => void;
39
+ /** Makes the chip a link — a record chip opens its record. */
40
+ href?: string;
41
+ /** Pressable without `onPress`/`href` — when the host handles the press. */
42
+ clickable?: boolean;
43
+ disabled?: boolean;
44
+ children?: ReactNode;
45
+ };
46
+ export declare function Chip({ label, size, variant, color, shape, weight, startElement, endElement, endElementDivider, truncate, tooltipContent, onPress, href, clickable, disabled, children, ...props }: ChipProps): import("react").JSX.Element;
47
+ //# sourceMappingURL=chip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/chip.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAOtD,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAA;AAClC,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;AAWpD,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG;IAClF,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,KAAK,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;IAC/B,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;IAC1B,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;IAC7B,2DAA2D;IAC3D,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,iDAAiD;IACjD,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,wDAAwD;IACxD,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,4EAA4E;IAC5E,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,wBAAgB,IAAI,CAAC,EACnB,KAAK,EACL,IAAW,EACX,OAAiB,EACjB,KAAiB,EACjB,KAAgB,EAChB,MAAkB,EAClB,YAAY,EACZ,UAAU,EACV,iBAAyB,EACzB,QAAe,EACf,cAAc,EACd,OAAO,EACP,IAAI,EACJ,SAAS,EACT,QAAgB,EAChB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,SAAS,+BAkEX"}
@@ -0,0 +1,49 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * Chip — a compact inline label with something before and after it: a record
5
+ * (avatar + name), an actor, an email or a phone, a "Not shared" lock.
6
+ *
7
+ * A chip is chrome, not data — it carries no hue of its own (that is `Tag`'s
8
+ * job) — so its grounds are the surface ladder: ghost takes its parent's, soft
9
+ * and solid lift one and two rungs, and a pressable chip lifts one more under
10
+ * the pointer and once again while pressed. The label truncates with an
11
+ * overflow hint, and the press area meets the 44px floor through `touch()`,
12
+ * never through padding, so the chip keeps its 20px.
13
+ *
14
+ * Re-expressed from twenty-ui's Chip (MIT, see NOTICE): sm 20 / md 24 tall, a
15
+ * 4px gutter and gap, square (4px) or round, an end element behind an optional
16
+ * hairline divider, a max width that shrinks the label and not the padding.
17
+ */
18
+ import { XStack } from '@hanzo/gui';
19
+ import { TruncatedText } from './truncated-text.js';
20
+ import { ink } from './ink.js';
21
+ import { press, RING } from './press.js';
22
+ import { touch } from './gesture.js';
23
+ import { slot } from './slot.js';
24
+ const HEIGHT = { sm: 20, md: 24 };
25
+ /** Rest, hover and pressed grounds per variant: each step one rung up the ladder. */
26
+ const GROUND = {
27
+ ghost: { rest: 'transparent', hover: '$hover', down: '$raised' },
28
+ soft: { rest: '$hover', hover: '$raised', down: '$rim' },
29
+ solid: { rest: '$raised', hover: '$rim', down: '$bound' },
30
+ };
31
+ export function Chip({ label, size = 'sm', variant = 'ghost', color = 'primary', shape = 'square', weight = 'regular', startElement, endElement, endElementDivider = false, truncate = true, tooltipContent, onPress, href, clickable, disabled = false, children, ...props }) {
32
+ const ground = GROUND[variant];
33
+ const pressable = !disabled && (clickable ?? (onPress != null || href != null));
34
+ const text = {
35
+ size: '$2',
36
+ fontWeight: weight === 'medium' ? '500' : undefined,
37
+ color: disabled ? '$hush' : color === 'secondary' ? '$aside' : '$ink',
38
+ };
39
+ const body = label ?? children;
40
+ return (_jsxs(XStack, { ...slot('chip'), "data-size": size, "data-variant": variant, ...(href != null && !disabled ? { render: 'a', href } : onPress != null ? press(disabled ? undefined : onPress) : null), ...(disabled ? { 'aria-disabled': true } : null), display: "inline-flex", self: "flex-start", items: "center", gap: "$1", height: HEIGHT[size], px: "$1", maxW: "100%", minW: 0, rounded: shape === 'round' ? '$10' : '$xs', bg: ground.rest, select: "none", cursor: disabled ? 'not-allowed' : pressable ? 'pointer' : undefined, ...(pressable
41
+ ? {
42
+ hoverStyle: { bg: ground.hover },
43
+ pressStyle: { bg: ground.down },
44
+ focusVisibleStyle: RING,
45
+ ...touch(HEIGHT[size], 44, 'y'),
46
+ }
47
+ : null), ...props, children: [startElement ? (_jsx(XStack, { ...slot('chip-start'), shrink: 0, items: "center", children: startElement })) : null, typeof body === 'string' || typeof body === 'number' ? (truncate ? (_jsx(TruncatedText, { text: String(body), tooltipContent: tooltipContent, ...text })) : (ink(body, undefined, text))) : (body), endElement ? (_jsx(XStack, { ...slot('chip-end'), shrink: 0, items: "center", self: "stretch", ...(endElementDivider ? { borderLeftWidth: 1, borderColor: '$borderColor', pl: '$1' } : null), children: endElement })) : null] }));
48
+ }
49
+ //# sourceMappingURL=chip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chip.js","sourceRoot":"","sources":["../../../src/backends/gui/chip.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAK7B,MAAM,MAAM,GAA6B,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAA;AAE3D,qFAAqF;AACrF,MAAM,MAAM,GAAuE;IACjF,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;IAChE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;IACxD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;CAC1D,CAAA;AA6BD,MAAM,UAAU,IAAI,CAAC,EACnB,KAAK,EACL,IAAI,GAAG,IAAI,EACX,OAAO,GAAG,OAAO,EACjB,KAAK,GAAG,SAAS,EACjB,KAAK,GAAG,QAAQ,EAChB,MAAM,GAAG,SAAS,EAClB,YAAY,EACZ,UAAU,EACV,iBAAiB,GAAG,KAAK,EACzB,QAAQ,GAAG,IAAI,EACf,cAAc,EACd,OAAO,EACP,IAAI,EACJ,SAAS,EACT,QAAQ,GAAG,KAAK,EAChB,QAAQ,EACR,GAAG,KAAK,EACE;IACV,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAC9B,MAAM,SAAS,GAAG,CAAC,QAAQ,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,CAAA;IAC/E,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QACnD,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;KAC7D,CAAA;IACV,MAAM,IAAI,GAAG,KAAK,IAAI,QAAQ,CAAA;IAE9B,OAAO,CACL,MAAC,MAAM,OACD,IAAI,CAAC,MAAM,CAAC,eACL,IAAI,kBACD,OAAO,KACjB,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KACpH,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACjD,OAAO,EAAC,aAAa,EACrB,IAAI,EAAC,YAAY,EACjB,KAAK,EAAC,QAAQ,EACd,GAAG,EAAC,IAAI,EACR,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EACpB,EAAE,EAAC,IAAI,EACP,IAAI,EAAC,MAAM,EACX,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAC1C,EAAE,EAAE,MAAM,CAAC,IAAI,EACf,MAAM,EAAC,MAAM,EACb,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,KAChE,CAAC,SAAS;YACZ,CAAC,CAAC;gBACE,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE;gBAChC,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE;gBAC/B,iBAAiB,EAAE,IAAI;gBACvB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;aAChC;YACH,CAAC,CAAC,IAAI,CAAC,KACL,KAAK,aAER,YAAY,CAAC,CAAC,CAAC,CACd,KAAC,MAAM,OAAK,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAC,QAAQ,YACtD,YAAY,GACN,CACV,CAAC,CAAC,CAAC,IAAI,EACP,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CACtD,QAAQ,CAAC,CAAC,CAAC,CACT,KAAC,aAAa,IAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,cAAc,KAAM,IAAI,GAAI,CAChF,CAAC,CAAC,CAAC,CACF,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAC3B,CACF,CAAC,CAAC,CAAC,CACF,IAAI,CACL,EACA,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,MAAM,OACD,IAAI,CAAC,UAAU,CAAC,EACpB,MAAM,EAAE,CAAC,EACT,KAAK,EAAC,QAAQ,EACd,IAAI,EAAC,SAAS,KACV,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAE7F,UAAU,GACJ,CACV,CAAC,CAAC,CAAC,IAAI,IACD,CACV,CAAA;AACH,CAAC"}