@hanzo/ui 8.27.90 → 8.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (698) hide show
  1. package/NOTICE +25 -0
  2. package/README.md +1 -1
  3. package/dist/backends/gui/alert-dialog.cjs +24 -6
  4. package/dist/backends/gui/alert-dialog.d.ts +11 -3
  5. package/dist/backends/gui/alert-dialog.d.ts.map +1 -1
  6. package/dist/backends/gui/alert-dialog.js +24 -6
  7. package/dist/backends/gui/alert-dialog.js.map +1 -1
  8. package/dist/backends/gui/alert.cjs +32 -1
  9. package/dist/backends/gui/alert.d.ts +36 -3
  10. package/dist/backends/gui/alert.d.ts.map +1 -1
  11. package/dist/backends/gui/alert.js +32 -2
  12. package/dist/backends/gui/alert.js.map +1 -1
  13. package/dist/backends/gui/avatar-group.cjs +28 -0
  14. package/dist/backends/gui/avatar-group.d.ts +33 -0
  15. package/dist/backends/gui/avatar-group.d.ts.map +1 -0
  16. package/dist/backends/gui/avatar-group.js +26 -0
  17. package/dist/backends/gui/avatar-group.js.map +1 -0
  18. package/dist/backends/gui/avatar.cjs +53 -3
  19. package/dist/backends/gui/avatar.d.ts +46 -4
  20. package/dist/backends/gui/avatar.d.ts.map +1 -1
  21. package/dist/backends/gui/avatar.js +52 -3
  22. package/dist/backends/gui/avatar.js.map +1 -1
  23. package/dist/backends/gui/badge.cjs +40 -2
  24. package/dist/backends/gui/badge.d.ts +7 -2
  25. package/dist/backends/gui/badge.d.ts.map +1 -1
  26. package/dist/backends/gui/badge.js +40 -2
  27. package/dist/backends/gui/badge.js.map +1 -1
  28. package/dist/backends/gui/banner.cjs +40 -1
  29. package/dist/backends/gui/banner.d.ts +36 -3
  30. package/dist/backends/gui/banner.d.ts.map +1 -1
  31. package/dist/backends/gui/banner.js +42 -4
  32. package/dist/backends/gui/banner.js.map +1 -1
  33. package/dist/backends/gui/breadcrumb.cjs +28 -10
  34. package/dist/backends/gui/breadcrumb.d.ts +20 -11
  35. package/dist/backends/gui/breadcrumb.d.ts.map +1 -1
  36. package/dist/backends/gui/breadcrumb.js +28 -10
  37. package/dist/backends/gui/breadcrumb.js.map +1 -1
  38. package/dist/backends/gui/button-group.cjs +43 -0
  39. package/dist/backends/gui/button-group.d.ts +48 -0
  40. package/dist/backends/gui/button-group.d.ts.map +1 -0
  41. package/dist/backends/gui/button-group.js +40 -0
  42. package/dist/backends/gui/button-group.js.map +1 -0
  43. package/dist/backends/gui/button.cjs +177 -4
  44. package/dist/backends/gui/button.d.ts +69 -4
  45. package/dist/backends/gui/button.d.ts.map +1 -1
  46. package/dist/backends/gui/button.js +179 -6
  47. package/dist/backends/gui/button.js.map +1 -1
  48. package/dist/backends/gui/card.cjs +50 -21
  49. package/dist/backends/gui/card.d.ts +16 -7
  50. package/dist/backends/gui/card.d.ts.map +1 -1
  51. package/dist/backends/gui/card.js +50 -21
  52. package/dist/backends/gui/card.js.map +1 -1
  53. package/dist/backends/gui/checkbox.cjs +86 -14
  54. package/dist/backends/gui/checkbox.d.ts +30 -2
  55. package/dist/backends/gui/checkbox.d.ts.map +1 -1
  56. package/dist/backends/gui/checkbox.js +87 -15
  57. package/dist/backends/gui/checkbox.js.map +1 -1
  58. package/dist/backends/gui/chip.cjs +51 -0
  59. package/dist/backends/gui/chip.d.ts +47 -0
  60. package/dist/backends/gui/chip.d.ts.map +1 -0
  61. package/dist/backends/gui/chip.js +49 -0
  62. package/dist/backends/gui/chip.js.map +1 -0
  63. package/dist/backends/gui/choice.cjs +18 -3
  64. package/dist/backends/gui/choice.d.ts +10 -2
  65. package/dist/backends/gui/choice.d.ts.map +1 -1
  66. package/dist/backends/gui/choice.js +19 -4
  67. package/dist/backends/gui/choice.js.map +1 -1
  68. package/dist/backends/gui/code-editor.cjs +16 -5
  69. package/dist/backends/gui/code-editor.d.ts +18 -1
  70. package/dist/backends/gui/code-editor.d.ts.map +1 -1
  71. package/dist/backends/gui/code-editor.js +16 -5
  72. package/dist/backends/gui/code-editor.js.map +1 -1
  73. package/dist/backends/gui/color-sample.cjs +24 -0
  74. package/dist/backends/gui/color-sample.d.ts +23 -0
  75. package/dist/backends/gui/color-sample.d.ts.map +1 -0
  76. package/dist/backends/gui/color-sample.js +22 -0
  77. package/dist/backends/gui/color-sample.js.map +1 -0
  78. package/dist/backends/gui/control.cjs +5 -3
  79. package/dist/backends/gui/control.d.ts +13 -3
  80. package/dist/backends/gui/control.d.ts.map +1 -1
  81. package/dist/backends/gui/control.js +5 -3
  82. package/dist/backends/gui/control.js.map +1 -1
  83. package/dist/backends/gui/country-select.cjs +69 -0
  84. package/dist/backends/gui/country-select.d.ts +30 -0
  85. package/dist/backends/gui/country-select.d.ts.map +1 -0
  86. package/dist/backends/gui/country-select.js +67 -0
  87. package/dist/backends/gui/country-select.js.map +1 -0
  88. package/dist/backends/gui/currency-picker.cjs +48 -0
  89. package/dist/backends/gui/currency-picker.d.ts +37 -0
  90. package/dist/backends/gui/currency-picker.d.ts.map +1 -0
  91. package/dist/backends/gui/currency-picker.js +46 -0
  92. package/dist/backends/gui/currency-picker.js.map +1 -0
  93. package/dist/backends/gui/density.cjs +32 -0
  94. package/dist/backends/gui/density.d.ts +27 -0
  95. package/dist/backends/gui/density.d.ts.map +1 -0
  96. package/dist/backends/gui/density.js +27 -0
  97. package/dist/backends/gui/density.js.map +1 -0
  98. package/dist/backends/gui/dialog.cjs +65 -7
  99. package/dist/backends/gui/dialog.d.ts +68 -3
  100. package/dist/backends/gui/dialog.d.ts.map +1 -1
  101. package/dist/backends/gui/dialog.js +63 -7
  102. package/dist/backends/gui/dialog.js.map +1 -1
  103. package/dist/backends/gui/dropdown-menu.cjs +361 -31
  104. package/dist/backends/gui/dropdown-menu.d.ts +151 -15
  105. package/dist/backends/gui/dropdown-menu.d.ts.map +1 -1
  106. package/dist/backends/gui/dropdown-menu.js +353 -34
  107. package/dist/backends/gui/dropdown-menu.js.map +1 -1
  108. package/dist/backends/gui/feedback.cjs +78 -0
  109. package/dist/backends/gui/feedback.d.ts +46 -0
  110. package/dist/backends/gui/feedback.d.ts.map +1 -0
  111. package/dist/backends/gui/feedback.js +74 -0
  112. package/dist/backends/gui/feedback.js.map +1 -0
  113. package/dist/backends/gui/field.cjs +71 -14
  114. package/dist/backends/gui/field.d.ts +43 -3
  115. package/dist/backends/gui/field.d.ts.map +1 -1
  116. package/dist/backends/gui/field.js +69 -14
  117. package/dist/backends/gui/field.js.map +1 -1
  118. package/dist/backends/gui/flag.cjs +17 -0
  119. package/dist/backends/gui/flag.d.ts +9 -0
  120. package/dist/backends/gui/flag.d.ts.map +1 -0
  121. package/dist/backends/gui/flag.js +14 -0
  122. package/dist/backends/gui/flag.js.map +1 -0
  123. package/dist/backends/gui/grip.cjs +35 -3
  124. package/dist/backends/gui/grip.d.ts +16 -1
  125. package/dist/backends/gui/grip.d.ts.map +1 -1
  126. package/dist/backends/gui/grip.js +35 -3
  127. package/dist/backends/gui/grip.js.map +1 -1
  128. package/dist/backends/gui/heading.cjs +27 -0
  129. package/dist/backends/gui/heading.d.ts +8 -0
  130. package/dist/backends/gui/heading.d.ts.map +1 -0
  131. package/dist/backends/gui/heading.js +25 -0
  132. package/dist/backends/gui/heading.js.map +1 -0
  133. package/dist/backends/gui/hue.cjs +49 -0
  134. package/dist/backends/gui/hue.d.ts +18 -0
  135. package/dist/backends/gui/hue.d.ts.map +1 -0
  136. package/dist/backends/gui/hue.js +43 -0
  137. package/dist/backends/gui/hue.js.map +1 -0
  138. package/dist/backends/gui/icon-tile.cjs +36 -0
  139. package/dist/backends/gui/icon-tile.d.ts +26 -0
  140. package/dist/backends/gui/icon-tile.d.ts.map +1 -0
  141. package/dist/backends/gui/icon-tile.js +32 -0
  142. package/dist/backends/gui/icon-tile.js.map +1 -0
  143. package/dist/backends/gui/image-input.cjs +78 -0
  144. package/dist/backends/gui/image-input.d.ts +32 -0
  145. package/dist/backends/gui/image-input.d.ts.map +1 -0
  146. package/dist/backends/gui/image-input.js +74 -0
  147. package/dist/backends/gui/image-input.js.map +1 -0
  148. package/dist/backends/gui/index.cjs +93 -7
  149. package/dist/backends/gui/index.d.ts +45 -2
  150. package/dist/backends/gui/index.d.ts.map +1 -1
  151. package/dist/backends/gui/index.js +35 -1
  152. package/dist/backends/gui/index.js.map +1 -1
  153. package/dist/backends/gui/input-group.cjs +49 -0
  154. package/dist/backends/gui/input-group.d.ts +46 -0
  155. package/dist/backends/gui/input-group.d.ts.map +1 -0
  156. package/dist/backends/gui/input-group.js +46 -0
  157. package/dist/backends/gui/input-group.js.map +1 -0
  158. package/dist/backends/gui/input.cjs +32 -4
  159. package/dist/backends/gui/input.d.ts +5 -1
  160. package/dist/backends/gui/input.d.ts.map +1 -1
  161. package/dist/backends/gui/input.js +33 -5
  162. package/dist/backends/gui/input.js.map +1 -1
  163. package/dist/backends/gui/item.cjs +34 -2
  164. package/dist/backends/gui/item.d.ts +21 -5
  165. package/dist/backends/gui/item.d.ts.map +1 -1
  166. package/dist/backends/gui/item.js +35 -3
  167. package/dist/backends/gui/item.js.map +1 -1
  168. package/dist/backends/gui/json-tree.cjs +103 -15
  169. package/dist/backends/gui/json-tree.d.ts +39 -3
  170. package/dist/backends/gui/json-tree.d.ts.map +1 -1
  171. package/dist/backends/gui/json-tree.js +104 -16
  172. package/dist/backends/gui/json-tree.js.map +1 -1
  173. package/dist/backends/gui/kbd.cjs +18 -2
  174. package/dist/backends/gui/kbd.d.ts +5 -2
  175. package/dist/backends/gui/kbd.d.ts.map +1 -1
  176. package/dist/backends/gui/kbd.js +18 -2
  177. package/dist/backends/gui/kbd.js.map +1 -1
  178. package/dist/backends/gui/label.cjs +14 -3
  179. package/dist/backends/gui/label.d.ts +12 -3
  180. package/dist/backends/gui/label.d.ts.map +1 -1
  181. package/dist/backends/gui/label.js +14 -3
  182. package/dist/backends/gui/label.js.map +1 -1
  183. package/dist/backends/gui/layout.cjs +5 -1
  184. package/dist/backends/gui/layout.d.ts +1 -1
  185. package/dist/backends/gui/layout.d.ts.map +1 -1
  186. package/dist/backends/gui/layout.js +5 -1
  187. package/dist/backends/gui/layout.js.map +1 -1
  188. package/dist/backends/gui/number-field.cjs +163 -0
  189. package/dist/backends/gui/number-field.d.ts +34 -0
  190. package/dist/backends/gui/number-field.d.ts.map +1 -0
  191. package/dist/backends/gui/number-field.js +160 -0
  192. package/dist/backends/gui/number-field.js.map +1 -0
  193. package/dist/backends/gui/overflowing-list.cjs +79 -0
  194. package/dist/backends/gui/overflowing-list.d.ts +42 -0
  195. package/dist/backends/gui/overflowing-list.d.ts.map +1 -0
  196. package/dist/backends/gui/overflowing-list.js +76 -0
  197. package/dist/backends/gui/overflowing-list.js.map +1 -0
  198. package/dist/backends/gui/phone-country-picker.cjs +60 -0
  199. package/dist/backends/gui/phone-country-picker.d.ts +34 -0
  200. package/dist/backends/gui/phone-country-picker.d.ts.map +1 -0
  201. package/dist/backends/gui/phone-country-picker.js +57 -0
  202. package/dist/backends/gui/phone-country-picker.js.map +1 -0
  203. package/dist/backends/gui/popover.cjs +20 -4
  204. package/dist/backends/gui/popover.d.ts +12 -1
  205. package/dist/backends/gui/popover.d.ts.map +1 -1
  206. package/dist/backends/gui/popover.js +21 -5
  207. package/dist/backends/gui/popover.js.map +1 -1
  208. package/dist/backends/gui/progress-ring.cjs +38 -0
  209. package/dist/backends/gui/progress-ring.d.ts +37 -0
  210. package/dist/backends/gui/progress-ring.d.ts.map +1 -0
  211. package/dist/backends/gui/progress-ring.js +36 -0
  212. package/dist/backends/gui/progress-ring.js.map +1 -0
  213. package/dist/backends/gui/progress.cjs +31 -7
  214. package/dist/backends/gui/progress.d.ts +25 -3
  215. package/dist/backends/gui/progress.d.ts.map +1 -1
  216. package/dist/backends/gui/progress.js +32 -8
  217. package/dist/backends/gui/progress.js.map +1 -1
  218. package/dist/backends/gui/radio-group.cjs +28 -2
  219. package/dist/backends/gui/radio-group.d.ts +20 -2
  220. package/dist/backends/gui/radio-group.d.ts.map +1 -1
  221. package/dist/backends/gui/radio-group.js +28 -2
  222. package/dist/backends/gui/radio-group.js.map +1 -1
  223. package/dist/backends/gui/search-list.cjs +62 -0
  224. package/dist/backends/gui/search-list.d.ts +65 -0
  225. package/dist/backends/gui/search-list.d.ts.map +1 -0
  226. package/dist/backends/gui/search-list.js +58 -0
  227. package/dist/backends/gui/search-list.js.map +1 -0
  228. package/dist/backends/gui/select.cjs +50 -16
  229. package/dist/backends/gui/select.d.ts +12 -3
  230. package/dist/backends/gui/select.d.ts.map +1 -1
  231. package/dist/backends/gui/select.js +51 -17
  232. package/dist/backends/gui/select.js.map +1 -1
  233. package/dist/backends/gui/shortcut.cjs +122 -0
  234. package/dist/backends/gui/shortcut.d.ts +58 -0
  235. package/dist/backends/gui/shortcut.d.ts.map +1 -0
  236. package/dist/backends/gui/shortcut.js +115 -0
  237. package/dist/backends/gui/shortcut.js.map +1 -0
  238. package/dist/backends/gui/skeleton.cjs +41 -10
  239. package/dist/backends/gui/skeleton.d.ts +46 -8
  240. package/dist/backends/gui/skeleton.d.ts.map +1 -1
  241. package/dist/backends/gui/skeleton.js +39 -8
  242. package/dist/backends/gui/skeleton.js.map +1 -1
  243. package/dist/backends/gui/snippet.cjs +12 -1
  244. package/dist/backends/gui/snippet.d.ts +4 -2
  245. package/dist/backends/gui/snippet.d.ts.map +1 -1
  246. package/dist/backends/gui/snippet.js +12 -1
  247. package/dist/backends/gui/snippet.js.map +1 -1
  248. package/dist/backends/gui/spinner.cjs +8 -1
  249. package/dist/backends/gui/spinner.d.ts +11 -2
  250. package/dist/backends/gui/spinner.d.ts.map +1 -1
  251. package/dist/backends/gui/spinner.js +9 -2
  252. package/dist/backends/gui/spinner.js.map +1 -1
  253. package/dist/backends/gui/stack-icon.cjs +17 -0
  254. package/dist/backends/gui/stack-icon.d.ts +15 -0
  255. package/dist/backends/gui/stack-icon.d.ts.map +1 -0
  256. package/dist/backends/gui/stack-icon.js +15 -0
  257. package/dist/backends/gui/stack-icon.js.map +1 -0
  258. package/dist/backends/gui/status.cjs +38 -1
  259. package/dist/backends/gui/status.d.ts +16 -2
  260. package/dist/backends/gui/status.d.ts.map +1 -1
  261. package/dist/backends/gui/status.js +38 -2
  262. package/dist/backends/gui/status.js.map +1 -1
  263. package/dist/backends/gui/stepper.cjs +73 -3
  264. package/dist/backends/gui/stepper.d.ts +25 -1
  265. package/dist/backends/gui/stepper.d.ts.map +1 -1
  266. package/dist/backends/gui/stepper.js +71 -5
  267. package/dist/backends/gui/stepper.js.map +1 -1
  268. package/dist/backends/gui/switch.cjs +35 -20
  269. package/dist/backends/gui/switch.d.ts +12 -2
  270. package/dist/backends/gui/switch.d.ts.map +1 -1
  271. package/dist/backends/gui/switch.js +35 -20
  272. package/dist/backends/gui/switch.js.map +1 -1
  273. package/dist/backends/gui/tabs.cjs +63 -17
  274. package/dist/backends/gui/tabs.d.ts +35 -6
  275. package/dist/backends/gui/tabs.d.ts.map +1 -1
  276. package/dist/backends/gui/tabs.js +65 -19
  277. package/dist/backends/gui/tabs.js.map +1 -1
  278. package/dist/backends/gui/tag.cjs +48 -0
  279. package/dist/backends/gui/tag.d.ts +53 -0
  280. package/dist/backends/gui/tag.d.ts.map +1 -0
  281. package/dist/backends/gui/tag.js +46 -0
  282. package/dist/backends/gui/tag.js.map +1 -0
  283. package/dist/backends/gui/tags.cjs +9 -2
  284. package/dist/backends/gui/tags.d.ts +6 -5
  285. package/dist/backends/gui/tags.d.ts.map +1 -1
  286. package/dist/backends/gui/tags.js +9 -2
  287. package/dist/backends/gui/tags.js.map +1 -1
  288. package/dist/backends/gui/textarea.cjs +22 -6
  289. package/dist/backends/gui/textarea.d.ts +10 -1
  290. package/dist/backends/gui/textarea.d.ts.map +1 -1
  291. package/dist/backends/gui/textarea.js +22 -6
  292. package/dist/backends/gui/textarea.js.map +1 -1
  293. package/dist/backends/gui/toaster.cjs +167 -3
  294. package/dist/backends/gui/toaster.d.ts +28 -2
  295. package/dist/backends/gui/toaster.d.ts.map +1 -1
  296. package/dist/backends/gui/toaster.js +167 -5
  297. package/dist/backends/gui/toaster.js.map +1 -1
  298. package/dist/backends/gui/toggle-group.cjs +13 -0
  299. package/dist/backends/gui/toggle-group.d.ts +7 -1
  300. package/dist/backends/gui/toggle-group.d.ts.map +1 -1
  301. package/dist/backends/gui/toggle-group.js +13 -0
  302. package/dist/backends/gui/toggle-group.js.map +1 -1
  303. package/dist/backends/gui/tooltip.cjs +29 -6
  304. package/dist/backends/gui/tooltip.d.ts +23 -4
  305. package/dist/backends/gui/tooltip.d.ts.map +1 -1
  306. package/dist/backends/gui/tooltip.js +31 -8
  307. package/dist/backends/gui/tooltip.js.map +1 -1
  308. package/dist/backends/gui/truncated-text.cjs +102 -0
  309. package/dist/backends/gui/truncated-text.d.ts +55 -0
  310. package/dist/backends/gui/truncated-text.d.ts.map +1 -0
  311. package/dist/backends/gui/truncated-text.js +97 -0
  312. package/dist/backends/gui/truncated-text.js.map +1 -0
  313. package/dist/gallery/compound.cjs +60 -0
  314. package/dist/gallery/compound.d.ts +2 -0
  315. package/dist/gallery/compound.d.ts.map +1 -0
  316. package/dist/gallery/compound.js +58 -0
  317. package/dist/gallery/compound.js.map +1 -0
  318. package/dist/gallery/display.cjs +47 -0
  319. package/dist/gallery/display.d.ts +3 -0
  320. package/dist/gallery/display.d.ts.map +1 -0
  321. package/dist/gallery/display.js +45 -0
  322. package/dist/gallery/display.js.map +1 -0
  323. package/dist/gallery/feedback.cjs +38 -0
  324. package/dist/gallery/feedback.d.ts +2 -0
  325. package/dist/gallery/feedback.d.ts.map +1 -0
  326. package/dist/gallery/feedback.js +36 -0
  327. package/dist/gallery/feedback.js.map +1 -0
  328. package/dist/gallery/fields.cjs +53 -0
  329. package/dist/gallery/fields.d.ts +2 -0
  330. package/dist/gallery/fields.d.ts.map +1 -0
  331. package/dist/gallery/fields.js +51 -0
  332. package/dist/gallery/fields.js.map +1 -0
  333. package/dist/gallery/frames.cjs +47 -0
  334. package/dist/gallery/frames.d.ts +2 -0
  335. package/dist/gallery/frames.d.ts.map +1 -0
  336. package/dist/gallery/frames.js +45 -0
  337. package/dist/gallery/frames.js.map +1 -0
  338. package/dist/gallery/menus.cjs +64 -0
  339. package/dist/gallery/menus.d.ts +15 -0
  340. package/dist/gallery/menus.d.ts.map +1 -0
  341. package/dist/gallery/menus.js +58 -0
  342. package/dist/gallery/menus.js.map +1 -0
  343. package/dist/gallery/records.cjs +33 -0
  344. package/dist/gallery/records.d.ts +2 -0
  345. package/dist/gallery/records.d.ts.map +1 -0
  346. package/dist/gallery/records.js +31 -0
  347. package/dist/gallery/records.js.map +1 -0
  348. package/dist/gallery/section.cjs +17 -0
  349. package/dist/gallery/section.d.ts +10 -0
  350. package/dist/gallery/section.d.ts.map +1 -0
  351. package/dist/gallery/section.js +14 -0
  352. package/dist/gallery/section.js.map +1 -0
  353. package/dist/gallery.cjs +8 -14
  354. package/dist/gallery.d.ts.map +1 -1
  355. package/dist/gallery.html +1613 -265
  356. package/dist/gallery.js +3 -9
  357. package/dist/gallery.js.map +1 -1
  358. package/dist/gui-config.cjs +37 -7
  359. package/dist/gui-config.d.ts +11 -3
  360. package/dist/gui-config.d.ts.map +1 -1
  361. package/dist/gui-config.js +37 -7
  362. package/dist/gui-config.js.map +1 -1
  363. package/dist/index.cjs +61 -2
  364. package/dist/index.d.ts +4 -2
  365. package/dist/index.d.ts.map +1 -1
  366. package/dist/index.js +7 -1
  367. package/dist/index.js.map +1 -1
  368. package/dist/index.node.cjs +61 -2
  369. package/dist/index.node.js +7 -1
  370. package/dist/motion.cjs +25 -1
  371. package/dist/motion.d.ts +16 -1
  372. package/dist/motion.d.ts.map +1 -1
  373. package/dist/motion.js +24 -1
  374. package/dist/motion.js.map +1 -1
  375. package/dist/primitives/AvatarGroup.cjs +8 -0
  376. package/dist/primitives/AvatarGroup.d.ts +2 -0
  377. package/dist/primitives/AvatarGroup.d.ts.map +1 -0
  378. package/dist/primitives/AvatarGroup.js +5 -0
  379. package/dist/primitives/AvatarGroup.js.map +1 -0
  380. package/dist/primitives/BannerAction.cjs +8 -0
  381. package/dist/primitives/BannerAction.d.ts +2 -0
  382. package/dist/primitives/BannerAction.d.ts.map +1 -0
  383. package/dist/primitives/BannerAction.js +5 -0
  384. package/dist/primitives/BannerAction.js.map +1 -0
  385. package/dist/primitives/ButtonGroup.cjs +8 -0
  386. package/dist/primitives/ButtonGroup.d.ts +2 -0
  387. package/dist/primitives/ButtonGroup.d.ts.map +1 -0
  388. package/dist/primitives/ButtonGroup.js +5 -0
  389. package/dist/primitives/ButtonGroup.js.map +1 -0
  390. package/dist/primitives/ButtonGroupContext.cjs +8 -0
  391. package/dist/primitives/ButtonGroupContext.d.ts +2 -0
  392. package/dist/primitives/ButtonGroupContext.d.ts.map +1 -0
  393. package/dist/primitives/ButtonGroupContext.js +5 -0
  394. package/dist/primitives/ButtonGroupContext.js.map +1 -0
  395. package/dist/primitives/CalloutAction.cjs +8 -0
  396. package/dist/primitives/CalloutAction.d.ts +2 -0
  397. package/dist/primitives/CalloutAction.d.ts.map +1 -0
  398. package/dist/primitives/CalloutAction.js +5 -0
  399. package/dist/primitives/CalloutAction.js.map +1 -0
  400. package/dist/primitives/Chip.cjs +8 -0
  401. package/dist/primitives/Chip.d.ts +2 -0
  402. package/dist/primitives/Chip.d.ts.map +1 -0
  403. package/dist/primitives/Chip.js +5 -0
  404. package/dist/primitives/Chip.js.map +1 -0
  405. package/dist/primitives/ColorSample.cjs +8 -0
  406. package/dist/primitives/ColorSample.d.ts +2 -0
  407. package/dist/primitives/ColorSample.d.ts.map +1 -0
  408. package/dist/primitives/ColorSample.js +5 -0
  409. package/dist/primitives/ColorSample.js.map +1 -0
  410. package/dist/primitives/CountrySelect.cjs +8 -0
  411. package/dist/primitives/CountrySelect.d.ts +2 -0
  412. package/dist/primitives/CountrySelect.d.ts.map +1 -0
  413. package/dist/primitives/CountrySelect.js +5 -0
  414. package/dist/primitives/CountrySelect.js.map +1 -0
  415. package/dist/primitives/CurrencyPicker.cjs +8 -0
  416. package/dist/primitives/CurrencyPicker.d.ts +2 -0
  417. package/dist/primitives/CurrencyPicker.d.ts.map +1 -0
  418. package/dist/primitives/CurrencyPicker.js +5 -0
  419. package/dist/primitives/CurrencyPicker.js.map +1 -0
  420. package/dist/primitives/Density.cjs +8 -0
  421. package/dist/primitives/Density.d.ts +2 -0
  422. package/dist/primitives/Density.d.ts.map +1 -0
  423. package/dist/primitives/Density.js +5 -0
  424. package/dist/primitives/Density.js.map +1 -0
  425. package/dist/primitives/DialogBody.cjs +8 -0
  426. package/dist/primitives/DialogBody.d.ts +2 -0
  427. package/dist/primitives/DialogBody.d.ts.map +1 -0
  428. package/dist/primitives/DialogBody.js +5 -0
  429. package/dist/primitives/DialogBody.js.map +1 -0
  430. package/dist/primitives/DropdownMenuBack.cjs +8 -0
  431. package/dist/primitives/DropdownMenuBack.d.ts +2 -0
  432. package/dist/primitives/DropdownMenuBack.d.ts.map +1 -0
  433. package/dist/primitives/DropdownMenuBack.js +5 -0
  434. package/dist/primitives/DropdownMenuBack.js.map +1 -0
  435. package/dist/primitives/DropdownMenuClose.cjs +8 -0
  436. package/dist/primitives/DropdownMenuClose.d.ts +2 -0
  437. package/dist/primitives/DropdownMenuClose.d.ts.map +1 -0
  438. package/dist/primitives/DropdownMenuClose.js +5 -0
  439. package/dist/primitives/DropdownMenuClose.js.map +1 -0
  440. package/dist/primitives/DropdownMenuEmpty.cjs +8 -0
  441. package/dist/primitives/DropdownMenuEmpty.d.ts +2 -0
  442. package/dist/primitives/DropdownMenuEmpty.d.ts.map +1 -0
  443. package/dist/primitives/DropdownMenuEmpty.js +5 -0
  444. package/dist/primitives/DropdownMenuEmpty.js.map +1 -0
  445. package/dist/primitives/DropdownMenuHeader.cjs +8 -0
  446. package/dist/primitives/DropdownMenuHeader.d.ts +2 -0
  447. package/dist/primitives/DropdownMenuHeader.d.ts.map +1 -0
  448. package/dist/primitives/DropdownMenuHeader.js +5 -0
  449. package/dist/primitives/DropdownMenuHeader.js.map +1 -0
  450. package/dist/primitives/DropdownMenuLoading.cjs +8 -0
  451. package/dist/primitives/DropdownMenuLoading.d.ts +2 -0
  452. package/dist/primitives/DropdownMenuLoading.d.ts.map +1 -0
  453. package/dist/primitives/DropdownMenuLoading.js +5 -0
  454. package/dist/primitives/DropdownMenuLoading.js.map +1 -0
  455. package/dist/primitives/DropdownMenuOptionItem.cjs +8 -0
  456. package/dist/primitives/DropdownMenuOptionItem.d.ts +2 -0
  457. package/dist/primitives/DropdownMenuOptionItem.d.ts.map +1 -0
  458. package/dist/primitives/DropdownMenuOptionItem.js +5 -0
  459. package/dist/primitives/DropdownMenuOptionItem.js.map +1 -0
  460. package/dist/primitives/DropdownMenuPage.cjs +8 -0
  461. package/dist/primitives/DropdownMenuPage.d.ts +2 -0
  462. package/dist/primitives/DropdownMenuPage.d.ts.map +1 -0
  463. package/dist/primitives/DropdownMenuPage.js +5 -0
  464. package/dist/primitives/DropdownMenuPage.js.map +1 -0
  465. package/dist/primitives/DropdownMenuSearch.cjs +8 -0
  466. package/dist/primitives/DropdownMenuSearch.d.ts +2 -0
  467. package/dist/primitives/DropdownMenuSearch.d.ts.map +1 -0
  468. package/dist/primitives/DropdownMenuSearch.js +5 -0
  469. package/dist/primitives/DropdownMenuSearch.js.map +1 -0
  470. package/dist/primitives/DropdownMenuSection.cjs +8 -0
  471. package/dist/primitives/DropdownMenuSection.d.ts +2 -0
  472. package/dist/primitives/DropdownMenuSection.d.ts.map +1 -0
  473. package/dist/primitives/DropdownMenuSection.js +5 -0
  474. package/dist/primitives/DropdownMenuSection.js.map +1 -0
  475. package/dist/primitives/DropdownMenuSelectionGroup.cjs +8 -0
  476. package/dist/primitives/DropdownMenuSelectionGroup.d.ts +2 -0
  477. package/dist/primitives/DropdownMenuSelectionGroup.d.ts.map +1 -0
  478. package/dist/primitives/DropdownMenuSelectionGroup.js +5 -0
  479. package/dist/primitives/DropdownMenuSelectionGroup.js.map +1 -0
  480. package/dist/primitives/DropdownMenuTitle.cjs +8 -0
  481. package/dist/primitives/DropdownMenuTitle.d.ts +2 -0
  482. package/dist/primitives/DropdownMenuTitle.d.ts.map +1 -0
  483. package/dist/primitives/DropdownMenuTitle.js +5 -0
  484. package/dist/primitives/DropdownMenuTitle.js.map +1 -0
  485. package/dist/primitives/Heading.cjs +2 -2
  486. package/dist/primitives/Heading.d.ts +1 -1
  487. package/dist/primitives/Heading.d.ts.map +1 -1
  488. package/dist/primitives/Heading.js +1 -1
  489. package/dist/primitives/Heading.js.map +1 -1
  490. package/dist/primitives/IconTile.cjs +8 -0
  491. package/dist/primitives/IconTile.d.ts +2 -0
  492. package/dist/primitives/IconTile.d.ts.map +1 -0
  493. package/dist/primitives/IconTile.js +5 -0
  494. package/dist/primitives/IconTile.js.map +1 -0
  495. package/dist/primitives/ImageInput.cjs +8 -0
  496. package/dist/primitives/ImageInput.d.ts +2 -0
  497. package/dist/primitives/ImageInput.d.ts.map +1 -0
  498. package/dist/primitives/ImageInput.js +5 -0
  499. package/dist/primitives/ImageInput.js.map +1 -0
  500. package/dist/primitives/InputGroup.cjs +8 -0
  501. package/dist/primitives/InputGroup.d.ts +2 -0
  502. package/dist/primitives/InputGroup.d.ts.map +1 -0
  503. package/dist/primitives/InputGroup.js +5 -0
  504. package/dist/primitives/InputGroup.js.map +1 -0
  505. package/dist/primitives/NumberField.cjs +8 -0
  506. package/dist/primitives/NumberField.d.ts +2 -0
  507. package/dist/primitives/NumberField.d.ts.map +1 -0
  508. package/dist/primitives/NumberField.js +5 -0
  509. package/dist/primitives/NumberField.js.map +1 -0
  510. package/dist/primitives/OverflowingList.cjs +8 -0
  511. package/dist/primitives/OverflowingList.d.ts +2 -0
  512. package/dist/primitives/OverflowingList.d.ts.map +1 -0
  513. package/dist/primitives/OverflowingList.js +5 -0
  514. package/dist/primitives/OverflowingList.js.map +1 -0
  515. package/dist/primitives/PhoneCountryPicker.cjs +8 -0
  516. package/dist/primitives/PhoneCountryPicker.d.ts +2 -0
  517. package/dist/primitives/PhoneCountryPicker.d.ts.map +1 -0
  518. package/dist/primitives/PhoneCountryPicker.js +5 -0
  519. package/dist/primitives/PhoneCountryPicker.js.map +1 -0
  520. package/dist/primitives/ProgressRing.cjs +8 -0
  521. package/dist/primitives/ProgressRing.d.ts +2 -0
  522. package/dist/primitives/ProgressRing.d.ts.map +1 -0
  523. package/dist/primitives/ProgressRing.js +5 -0
  524. package/dist/primitives/ProgressRing.js.map +1 -0
  525. package/dist/primitives/RadioCircle.cjs +8 -0
  526. package/dist/primitives/RadioCircle.d.ts +2 -0
  527. package/dist/primitives/RadioCircle.d.ts.map +1 -0
  528. package/dist/primitives/RadioCircle.js +5 -0
  529. package/dist/primitives/RadioCircle.js.map +1 -0
  530. package/dist/primitives/SKELETON_HEIGHT.cjs +8 -0
  531. package/dist/primitives/SKELETON_HEIGHT.d.ts +2 -0
  532. package/dist/primitives/SKELETON_HEIGHT.d.ts.map +1 -0
  533. package/dist/primitives/SKELETON_HEIGHT.js +5 -0
  534. package/dist/primitives/SKELETON_HEIGHT.js.map +1 -0
  535. package/dist/primitives/STATUS_COLOR.cjs +8 -0
  536. package/dist/primitives/STATUS_COLOR.d.ts +2 -0
  537. package/dist/primitives/STATUS_COLOR.d.ts.map +1 -0
  538. package/dist/primitives/STATUS_COLOR.js +5 -0
  539. package/dist/primitives/STATUS_COLOR.js.map +1 -0
  540. package/dist/primitives/STATUS_HUE.cjs +8 -0
  541. package/dist/primitives/STATUS_HUE.d.ts +2 -0
  542. package/dist/primitives/STATUS_HUE.d.ts.map +1 -0
  543. package/dist/primitives/STATUS_HUE.js +5 -0
  544. package/dist/primitives/STATUS_HUE.js.map +1 -0
  545. package/dist/primitives/STATUS_PAINT.cjs +8 -0
  546. package/dist/primitives/STATUS_PAINT.d.ts +2 -0
  547. package/dist/primitives/STATUS_PAINT.d.ts.map +1 -0
  548. package/dist/primitives/STATUS_PAINT.js +5 -0
  549. package/dist/primitives/STATUS_PAINT.js.map +1 -0
  550. package/dist/primitives/Shortcut.cjs +8 -0
  551. package/dist/primitives/Shortcut.d.ts +2 -0
  552. package/dist/primitives/Shortcut.d.ts.map +1 -0
  553. package/dist/primitives/Shortcut.js +5 -0
  554. package/dist/primitives/Shortcut.js.map +1 -0
  555. package/dist/primitives/StackIcon.cjs +8 -0
  556. package/dist/primitives/StackIcon.d.ts +2 -0
  557. package/dist/primitives/StackIcon.d.ts.map +1 -0
  558. package/dist/primitives/StackIcon.js +5 -0
  559. package/dist/primitives/StackIcon.js.map +1 -0
  560. package/dist/primitives/TOAST_DURATION.cjs +8 -0
  561. package/dist/primitives/TOAST_DURATION.d.ts +2 -0
  562. package/dist/primitives/TOAST_DURATION.d.ts.map +1 -0
  563. package/dist/primitives/TOAST_DURATION.js +5 -0
  564. package/dist/primitives/TOAST_DURATION.js.map +1 -0
  565. package/dist/primitives/Tag.cjs +8 -0
  566. package/dist/primitives/Tag.d.ts +2 -0
  567. package/dist/primitives/Tag.d.ts.map +1 -0
  568. package/dist/primitives/Tag.js +5 -0
  569. package/dist/primitives/Tag.js.map +1 -0
  570. package/dist/primitives/ToastCard.cjs +8 -0
  571. package/dist/primitives/ToastCard.d.ts +2 -0
  572. package/dist/primitives/ToastCard.d.ts.map +1 -0
  573. package/dist/primitives/ToastCard.js +5 -0
  574. package/dist/primitives/ToastCard.js.map +1 -0
  575. package/dist/primitives/ToastFace.cjs +8 -0
  576. package/dist/primitives/ToastFace.d.ts +2 -0
  577. package/dist/primitives/ToastFace.d.ts.map +1 -0
  578. package/dist/primitives/ToastFace.js +5 -0
  579. package/dist/primitives/ToastFace.js.map +1 -0
  580. package/dist/primitives/TruncatedText.cjs +8 -0
  581. package/dist/primitives/TruncatedText.d.ts +2 -0
  582. package/dist/primitives/TruncatedText.d.ts.map +1 -0
  583. package/dist/primitives/TruncatedText.js +5 -0
  584. package/dist/primitives/TruncatedText.js.map +1 -0
  585. package/dist/primitives/TruncatedTextProvider.cjs +8 -0
  586. package/dist/primitives/TruncatedTextProvider.d.ts +2 -0
  587. package/dist/primitives/TruncatedTextProvider.d.ts.map +1 -0
  588. package/dist/primitives/TruncatedTextProvider.js +5 -0
  589. package/dist/primitives/TruncatedTextProvider.js.map +1 -0
  590. package/dist/primitives/VisuallyHidden.cjs +8 -0
  591. package/dist/primitives/VisuallyHidden.d.ts +2 -0
  592. package/dist/primitives/VisuallyHidden.d.ts.map +1 -0
  593. package/dist/primitives/VisuallyHidden.js +5 -0
  594. package/dist/primitives/VisuallyHidden.js.map +1 -0
  595. package/dist/primitives/fieldSize.cjs +8 -0
  596. package/dist/primitives/fieldSize.d.ts +2 -0
  597. package/dist/primitives/fieldSize.d.ts.map +1 -0
  598. package/dist/primitives/fieldSize.js +5 -0
  599. package/dist/primitives/fieldSize.js.map +1 -0
  600. package/dist/primitives/flag.cjs +8 -0
  601. package/dist/primitives/flag.d.ts +2 -0
  602. package/dist/primitives/flag.d.ts.map +1 -0
  603. package/dist/primitives/flag.js +5 -0
  604. package/dist/primitives/flag.js.map +1 -0
  605. package/dist/primitives/formatShortcut.cjs +8 -0
  606. package/dist/primitives/formatShortcut.d.ts +2 -0
  607. package/dist/primitives/formatShortcut.d.ts.map +1 -0
  608. package/dist/primitives/formatShortcut.js +5 -0
  609. package/dist/primitives/formatShortcut.js.map +1 -0
  610. package/dist/primitives/initialOf.cjs +8 -0
  611. package/dist/primitives/initialOf.d.ts +2 -0
  612. package/dist/primitives/initialOf.d.ts.map +1 -0
  613. package/dist/primitives/initialOf.js +5 -0
  614. package/dist/primitives/initialOf.js.map +1 -0
  615. package/dist/primitives/parseNumber.cjs +8 -0
  616. package/dist/primitives/parseNumber.d.ts +2 -0
  617. package/dist/primitives/parseNumber.d.ts.map +1 -0
  618. package/dist/primitives/parseNumber.js +5 -0
  619. package/dist/primitives/parseNumber.js.map +1 -0
  620. package/dist/primitives/speakShortcut.cjs +8 -0
  621. package/dist/primitives/speakShortcut.d.ts +2 -0
  622. package/dist/primitives/speakShortcut.d.ts.map +1 -0
  623. package/dist/primitives/speakShortcut.js +5 -0
  624. package/dist/primitives/speakShortcut.js.map +1 -0
  625. package/dist/primitives/tileTones.cjs +8 -0
  626. package/dist/primitives/tileTones.d.ts +2 -0
  627. package/dist/primitives/tileTones.d.ts.map +1 -0
  628. package/dist/primitives/tileTones.js +5 -0
  629. package/dist/primitives/tileTones.js.map +1 -0
  630. package/dist/primitives/useDensity.cjs +8 -0
  631. package/dist/primitives/useDensity.d.ts +2 -0
  632. package/dist/primitives/useDensity.d.ts.map +1 -0
  633. package/dist/primitives/useDensity.js +5 -0
  634. package/dist/primitives/useDensity.js.map +1 -0
  635. package/dist/primitives/useField.cjs +8 -0
  636. package/dist/primitives/useField.d.ts +2 -0
  637. package/dist/primitives/useField.d.ts.map +1 -0
  638. package/dist/primitives/useField.js +5 -0
  639. package/dist/primitives/useField.js.map +1 -0
  640. package/dist/product/ComboBox.cjs +25 -7
  641. package/dist/product/ComboBox.d.ts +3 -1
  642. package/dist/product/ComboBox.d.ts.map +1 -1
  643. package/dist/product/ComboBox.js +25 -7
  644. package/dist/product/ComboBox.js.map +1 -1
  645. package/dist/product/CommandMenu.cjs +137 -0
  646. package/dist/product/CommandMenu.d.ts +77 -0
  647. package/dist/product/CommandMenu.d.ts.map +1 -0
  648. package/dist/product/CommandMenu.js +134 -0
  649. package/dist/product/CommandMenu.js.map +1 -0
  650. package/dist/product/DetailPane.cjs +154 -12
  651. package/dist/product/DetailPane.d.ts +80 -2
  652. package/dist/product/DetailPane.d.ts.map +1 -1
  653. package/dist/product/DetailPane.js +153 -16
  654. package/dist/product/DetailPane.js.map +1 -1
  655. package/dist/product/Fact.cjs +6 -1
  656. package/dist/product/Fact.d.ts +16 -1
  657. package/dist/product/Fact.d.ts.map +1 -1
  658. package/dist/product/Fact.js +6 -1
  659. package/dist/product/Fact.js.map +1 -1
  660. package/dist/product/Field.cjs +14 -2
  661. package/dist/product/Field.d.ts +16 -1
  662. package/dist/product/Field.d.ts.map +1 -1
  663. package/dist/product/Field.js +14 -2
  664. package/dist/product/Field.js.map +1 -1
  665. package/dist/product/Filters.cjs +61 -9
  666. package/dist/product/Filters.d.ts +37 -6
  667. package/dist/product/Filters.d.ts.map +1 -1
  668. package/dist/product/Filters.js +62 -10
  669. package/dist/product/Filters.js.map +1 -1
  670. package/dist/product/MenuRow.cjs +81 -2
  671. package/dist/product/MenuRow.d.ts +76 -6
  672. package/dist/product/MenuRow.d.ts.map +1 -1
  673. package/dist/product/MenuRow.js +81 -4
  674. package/dist/product/MenuRow.js.map +1 -1
  675. package/dist/product/PrimaryButton.cjs +5 -1
  676. package/dist/product/PrimaryButton.d.ts +8 -0
  677. package/dist/product/PrimaryButton.d.ts.map +1 -1
  678. package/dist/product/PrimaryButton.js +5 -1
  679. package/dist/product/PrimaryButton.js.map +1 -1
  680. package/dist/product/Skeleton.cjs +7 -6
  681. package/dist/product/Skeleton.d.ts +3 -20
  682. package/dist/product/Skeleton.d.ts.map +1 -1
  683. package/dist/product/Skeleton.js +8 -7
  684. package/dist/product/Skeleton.js.map +1 -1
  685. package/dist/product/index.cjs +2 -0
  686. package/dist/product/index.d.ts +1 -0
  687. package/dist/product/index.d.ts.map +1 -1
  688. package/dist/product/index.js +2 -0
  689. package/dist/product/index.js.map +1 -1
  690. package/dist/settings/Section.cjs +11 -2
  691. package/dist/settings/Section.d.ts +8 -1
  692. package/dist/settings/Section.d.ts.map +1 -1
  693. package/dist/settings/Section.js +11 -2
  694. package/dist/settings/Section.js.map +1 -1
  695. package/dist/styles/motion.css +70 -0
  696. package/dist/styles.css +1479 -136
  697. package/dist/theme.css +963 -9
  698. package/package.json +2 -1
@@ -1,13 +1,28 @@
1
1
  import { type ComponentProps, type MouseEventHandler, type ReactNode } from 'react';
2
2
  import type { Microdata } from './microdata.js';
3
+ import { type ShortcutKeys } from './shortcut.js';
3
4
  export type ButtonVariant = 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link' | 'primary' | 'linkFG' | 'linkMuted';
4
- export type ButtonSize = 'default' | 'sm' | 'lg' | 'icon' | 'icon-sm' | 'icon-lg';
5
+ /**
6
+ * The colour a control speaks in, across its variant: twenty-ui's `color` axis
7
+ * (MIT). Named `tone` because `color` is already the label's colour here.
8
+ *
9
+ * `accent` is the monochrome accent — `--primary`, ink by default and an org's
10
+ * colour once it picks one — never a hue of its own. `danger` and `success` are
11
+ * the two state hues design permits.
12
+ */
13
+ export type ButtonTone = 'neutral' | 'accent' | 'danger' | 'success';
14
+ export type ButtonSize = 'default' | 'sm' | 'xs' | 'lg' | 'icon' | 'icon-sm' | 'icon-xs' | 'icon-2xs' | 'icon-lg';
5
15
  declare const Frame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, any, import("@hanzogui/web").StackNonStyleProps, import("@hanzogui/web").StackStyleBase, {
6
16
  chromeless?: "all" | boolean | undefined;
7
17
  circular?: boolean | undefined;
18
+ compact?: boolean | undefined;
8
19
  disabled?: boolean | undefined;
20
+ elevated?: boolean | undefined;
9
21
  elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
10
- size?: number | "default" | "icon" | "icon-lg" | "icon-sm" | "lg" | "sm" | import("@hanzogui/web").SizeTokens | undefined;
22
+ fullWidth?: boolean | undefined;
23
+ round?: boolean | undefined;
24
+ size?: number | "default" | "icon" | "icon-2xs" | "icon-lg" | "icon-sm" | "icon-xs" | "lg" | "sm" | "xs" | import("@hanzogui/web").SizeTokens | undefined;
25
+ tone?: ButtonTone | undefined;
11
26
  unstyled?: boolean | undefined;
12
27
  variant?: "default" | "destructive" | "ghost" | "link" | "linkFG" | "linkMuted" | "outline" | "outlined" | "primary" | "secondary" | undefined;
13
28
  }, import("@hanzogui/web").StaticConfigPublic>;
@@ -17,10 +32,60 @@ declare const Frame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web"
17
32
  */
18
33
  import { buttonVariants } from '../../style.js';
19
34
  export { buttonVariants };
20
- export type ButtonProps = Omit<ComponentProps<typeof Frame>, 'variant' | 'size' | 'children' | 'onClick'> & {
35
+ export type ButtonProps = Omit<ComponentProps<typeof Frame>, 'variant' | 'size' | 'children' | 'onClick' | 'compact' | 'tone' | 'elevated' | 'fullWidth' | 'round'> & {
21
36
  variant?: ButtonVariant | null;
37
+ /**
38
+ * The box. Unset, it follows the nearest `<Density>`: `default` (36) on a
39
+ * regular surface, `sm` (32) with the 8px record gutter on a compact one.
40
+ */
22
41
  size?: ButtonSize | null;
23
42
  isLoading?: boolean;
43
+ /** An icon before the label, drawn at the size's glyph (14 at `sm`/`xs`, 16 otherwise) unless it names one. */
44
+ startIcon?: ReactNode;
45
+ /** An icon after the label — a chevron on a menu button, an arrow on a link. */
46
+ endIcon?: ReactNode;
47
+ /**
48
+ * The keys that do what the button does, drawn after the label as the quiet
49
+ * `Shortcut variant="button"` hint ("Update view ⌘↵"): one combination
50
+ * (`['Mod', 'Enter']`) or a sequence (`[['G'], ['P']]`). It names the keys;
51
+ * binding them is the host's.
52
+ */
53
+ shortcut?: ShortcutKeys;
54
+ /** The word between a sequence's combinations. Default "then". */
55
+ shortcutJoinLabel?: string;
56
+ /**
57
+ * `subtle` lowers the label to the tertiary rank, `$hint` (design's ink at
58
+ * 55%): the icon button inside a row, a chip or a column header, which is
59
+ * present without asking to be pressed. Not `$quiet`, measured: gui's ramp is
60
+ * not symmetric, and in the light theme `$quiet` is rgb(36,36,36) — the ink by
61
+ * another name. A share of the ink keeps its distance in either scheme.
62
+ */
63
+ emphasis?: 'standard' | 'subtle';
64
+ /** The colour axis across the variant: `accent`, `danger`, `success` (see `ButtonTone`). */
65
+ tone?: ButtonTone;
66
+ /**
67
+ * Where the spinner stands while `isLoading`. `start` (the default) puts it
68
+ * before the label; `end` after it; `center` keeps the label's width but hides
69
+ * it, so a button does not change size when it starts working.
70
+ */
71
+ loadingPosition?: 'start' | 'center' | 'end';
72
+ /** Takes the whole width of its row. */
73
+ fullWidth?: boolean;
74
+ /** Lifted: the small shadow and, on an outline, the ground fill with the stronger edge. */
75
+ elevated?: boolean;
76
+ /** `round` makes an icon size a circle. */
77
+ shape?: 'square' | 'round';
78
+ /**
79
+ * A hint shown under the button after a second's hover or on focus. A string
80
+ * also names an icon-only button for assistive technology when it has no
81
+ * `aria-label`. A disabled button keeps showing it.
82
+ */
83
+ tooltip?: ReactNode;
84
+ /**
85
+ * A disabled button that still takes focus: announced as disabled
86
+ * (`aria-disabled`), not pressable, but reachable — so its tooltip can say why.
87
+ */
88
+ focusableWhenDisabled?: boolean;
24
89
  children?: ReactNode;
25
90
  /**
26
91
  * The DOM click. Frame types this from the cross-platform stack, where the
@@ -73,6 +138,6 @@ export type ButtonProps = Omit<ComponentProps<typeof Frame>, 'variant' | 'size'
73
138
  name?: string;
74
139
  value?: string;
75
140
  } & Microdata;
76
- declare function Button({ className, variant, size, asChild, isLoading, disabled, children, ...props }: ButtonProps): import("react").JSX.Element;
141
+ declare function Button({ tooltip, ...props }: ButtonProps): import("react").JSX.Element;
77
142
  export { Button };
78
143
  //# sourceMappingURL=button.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/button.tsx"],"names":[],"mappings":"AAyBA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AAEd,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAK5C,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,aAAa,GACb,SAAS,GACT,WAAW,GACX,OAAO,GACP,MAAM,GACN,SAAS,GACT,QAAQ,GACR,WAAW,CAAA;AAEf,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;AAoCjF,QAAA,MAAM,KAAK;;;;;;;;8CA2GT,CAAA;AAEF;;;GAGG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB,MAAM,MAAM,WAAW,GAAG,IAAI,CAC5B,cAAc,CAAC,OAAO,KAAK,CAAC,EAC5B,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAC5C,GAAG;IACF,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAA;IAC9B,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IACxB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAA;IACxC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;IACpC;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,SAAS,CAAA;AAEb,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAmB,EACnB,IAAgB,EAChB,OAAe,EACf,SAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,WAAW,+BA4Db;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/button.tsx"],"names":[],"mappings":"AAyBA,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAEtB,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AAEd,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAO5C,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,YAAY,CAAA;AAExD,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,aAAa,GACb,SAAS,GACT,WAAW,GACX,OAAO,GACP,MAAM,GACN,SAAS,GACT,QAAQ,GACR,WAAW,CAAA;AAEf;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;AAEpE,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,MAAM,GACN,SAAS,GACT,SAAS,GACT,UAAU,GACV,SAAS,CAAA;AAgEb,QAAA,MAAM,KAAK;;;;;;;;;;;;;8CAoKT,CAAA;AA2CF;;;GAGG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB,MAAM,MAAM,WAAW,GAAG,IAAI,CAC5B,cAAc,CAAC,OAAO,KAAK,CAAC,EAC5B,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CACtG,GAAG;IACF,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAA;IAC9B;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IACxB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,+GAA+G;IAC/G,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,gFAAgF;IAChF,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAA;IAChC,4FAA4F;IAC5F,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;IAC5C,wCAAwC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAA;IACxC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;IACpC;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,SAAS,CAAA;AAqBb,iBAAS,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,+BAiBjD;AAsID,OAAO,EAAE,MAAM,EAAE,CAAA"}
@@ -22,39 +22,70 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
22
22
  * The 44px touch floor comes from `touch()`, which is platform-correct on web
23
23
  * as well as native — visual density stays at 36/32/40px.
24
24
  */
25
- import { Button as GuiButton, Spinner, styled } from '@hanzo/gui';
26
- import { createElement, isValidElement, } from 'react';
25
+ import { Button as GuiButton, Spinner, XStack, styled } from '@hanzo/gui';
26
+ import { cloneElement, createElement, isValidElement, useContext, } from 'react';
27
27
  import { sx } from '../../sx.js';
28
28
  import { ink } from './ink.js';
29
29
  import { touch } from './gesture.js';
30
+ import { useDensity } from './density.js';
31
+ import { ButtonGroupContext } from './button-group.js';
32
+ import { Tooltip, TooltipContent, TooltipTrigger } from './tooltip.js';
33
+ import { Shortcut } from './shortcut.js';
30
34
  /** The floor every size takes under a coarse pointer: a thumb, not a cursor. */
31
35
  const TOUCH = 44;
36
+ /**
37
+ * `xs` (24), `icon-xs` (24) and `icon-2xs` (20) are the record density: the
38
+ * quiet buttons a table cell, a chip, a kanban header and a menu row hold
39
+ * (twenty-ui's sm and xs, MIT). They sit beside 13px text, carry a 14px icon and
40
+ * keep the 44px press area under a coarse pointer like every other size.
41
+ */
32
42
  const HEIGHT = {
33
43
  default: 36,
34
44
  sm: 32,
45
+ xs: 24,
35
46
  lg: 40,
36
47
  icon: 36,
37
48
  'icon-sm': 32,
49
+ 'icon-xs': 24,
50
+ 'icon-2xs': 20,
38
51
  'icon-lg': 40,
39
52
  };
40
53
  /** Type scale per size — applied to the Text host, which is what renders it. */
41
54
  const TYPE = {
42
55
  default: '$3',
43
56
  sm: '$2',
57
+ xs: '$2',
44
58
  lg: '$3',
45
59
  icon: '$3',
46
60
  'icon-sm': '$2',
61
+ 'icon-xs': '$2',
62
+ 'icon-2xs': '$1',
47
63
  'icon-lg': '$3',
48
64
  };
65
+ /** The icon each size draws a `startIcon`/`endIcon` at, when the icon names no size of its own. */
66
+ const GLYPH = {
67
+ default: 16,
68
+ sm: 14,
69
+ xs: 14,
70
+ lg: 16,
71
+ icon: 16,
72
+ 'icon-sm': 16,
73
+ 'icon-xs': 14,
74
+ 'icon-2xs': 14,
75
+ 'icon-lg': 20,
76
+ };
49
77
  /** The spinner's CEILING, paired 1:1 with TYPE above. A ceiling rather than a
50
78
  * size for the reason the height ladder gives: a pin clips, a bound does not.
51
79
  * A spinner stands in for the label, so it may not outgrow the label's line. */
52
80
  const SPIN = {
53
81
  default: 16,
54
82
  sm: 14,
83
+ xs: 12,
55
84
  lg: 16,
56
85
  icon: 16,
57
86
  'icon-sm': 14,
87
+ 'icon-xs': 12,
88
+ 'icon-2xs': 12,
58
89
  'icon-lg': 16,
59
90
  };
60
91
  const Frame = styled(GuiButton.Frame, {
@@ -152,25 +183,162 @@ const Frame = styled(GuiButton.Frame, {
152
183
  // TOUCH, the target a thumb lands on; a mouse keeps the designed sizes.
153
184
  default: { height: 'auto', minHeight: HEIGHT.default, px: '$4', $touchable: { minHeight: TOUCH } },
154
185
  sm: { height: 'auto', minHeight: HEIGHT.sm, px: '$3', gap: '$1.5', $touchable: { minHeight: TOUCH } },
186
+ xs: { height: 'auto', minHeight: HEIGHT.xs, px: '$2', gap: '$1', $touchable: { minHeight: TOUCH } },
155
187
  lg: { height: 'auto', minHeight: HEIGHT.lg, px: '$6', $touchable: { minHeight: TOUCH } },
156
188
  icon: { height: 'auto', minHeight: HEIGHT.icon, width: 'auto', minWidth: HEIGHT.icon, px: 0, $touchable: { minHeight: TOUCH, minWidth: TOUCH } },
157
189
  'icon-sm': { height: 'auto', minHeight: HEIGHT['icon-sm'], width: 'auto', minWidth: HEIGHT['icon-sm'], px: 0, $touchable: { minHeight: TOUCH, minWidth: TOUCH } },
190
+ 'icon-xs': { height: 'auto', minHeight: HEIGHT['icon-xs'], width: 'auto', minWidth: HEIGHT['icon-xs'], px: 0, $touchable: { minHeight: TOUCH, minWidth: TOUCH } },
191
+ 'icon-2xs': { height: 'auto', minHeight: HEIGHT['icon-2xs'], width: 'auto', minWidth: HEIGHT['icon-2xs'], px: 0, rounded: '$xs', $touchable: { minHeight: TOUCH, minWidth: TOUCH } },
158
192
  'icon-lg': { height: 'auto', minHeight: HEIGHT['icon-lg'], width: 'auto', minWidth: HEIGHT['icon-lg'], px: 0, $touchable: { minHeight: TOUCH, minWidth: TOUCH } },
159
193
  },
194
+ // The record density's gutter: 8 beside the label and 4 between an icon and
195
+ // it, on the 32px box `compact` gives a size-less Button. After `size`, so
196
+ // it wins over the 12 `sm` states; passed only when the density chose the
197
+ // size, so a named size — an icon size, whose gutter is its width, above all
198
+ // — keeps its own.
199
+ compact: {
200
+ true: { px: '$2', gap: '$1' },
201
+ },
202
+ // After `variant`, so a tone restates the variant's colours rather than
203
+ // racing them. A function of the variant because the axis means a different
204
+ // pair per shape: the edge and the ink of an outline, the tint of a soft
205
+ // button, the fill of a solid one. `neutral` is the variant as it is.
206
+ tone: (tone, { props }) => {
207
+ const t = TONES[tone];
208
+ if (!t)
209
+ return {};
210
+ switch (props.variant) {
211
+ case 'primary':
212
+ return { bg: t.fill, color: t.fillInk, borderColor: 'transparent', hoverStyle: { bg: t.fillHover, borderColor: 'transparent' } };
213
+ case 'secondary':
214
+ return { bg: t.soft, color: t.ink, hoverStyle: { bg: t.softHover, opacity: 1 } };
215
+ case 'ghost':
216
+ return { color: t.ink, hoverStyle: { bg: t.tint } };
217
+ case 'default':
218
+ case 'outline':
219
+ case undefined:
220
+ return { color: t.ink, borderColor: t.edge, hoverStyle: { bg: t.tint, borderColor: t.edge } };
221
+ default:
222
+ return { color: t.ink };
223
+ }
224
+ },
225
+ // Lifted off the page: the ladder's first rung (the `elevation-1` class the
226
+ // component adds — lit edge and small drop, owned by glass.css) and, on an
227
+ // outline, the page's ground with the stronger edge, so it reads as raised
228
+ // rather than as a hole (twenty-ui's `elevated`). Never `--shadow-sm`: that
229
+ // size ramp is common property and glass.test holds the ladder off it.
230
+ elevated: (on, { props }) => on
231
+ ? {
232
+ // The page's ground, through `--surface-page`. Neither `$background`
233
+ // nor `var(--background)` will do: gui redeclares `--background` on
234
+ // its Button sub-theme, so inside a button both read gui's button grey
235
+ // (rgb(36,36,36) measured). `--surface-page` is declared on :root as
236
+ // `var(--background)` and inherits RESOLVED, so it is the page's.
237
+ ...(props.variant === 'default' || props.variant === 'outline' || props.variant === undefined
238
+ ? { bg: 'var(--surface-page)', borderColor: '$rim' }
239
+ : null),
240
+ }
241
+ : {},
242
+ fullWidth: {
243
+ true: { width: '100%', self: 'stretch' },
244
+ },
245
+ round: {
246
+ true: { rounded: '$10' },
247
+ },
160
248
  disabled: {
161
249
  true: { opacity: 0.5, pointerEvents: 'none', cursor: 'default' },
162
250
  },
163
251
  },
164
252
  defaultVariants: { variant: 'default', size: 'default' },
165
253
  });
254
+ /** Each tone's pairs: ink and edge for an outline, tint under the pointer, the
255
+ * soft fill and its hover, the solid fill, its ink and its hover. */
256
+ const TONES = {
257
+ accent: {
258
+ ink: 'var(--primary)',
259
+ edge: 'var(--primary)',
260
+ tint: '$hover',
261
+ soft: '$hover',
262
+ softHover: '$raised',
263
+ fill: 'var(--primary)',
264
+ fillInk: 'var(--primary-foreground)',
265
+ fillHover: 'var(--primary-hover)',
266
+ },
267
+ danger: {
268
+ ink: '$bad',
269
+ edge: '$red7',
270
+ tint: 'var(--state-error-bg)',
271
+ soft: 'var(--state-error-bg)',
272
+ softHover: '$red4',
273
+ fill: 'var(--destructive)',
274
+ fillInk: 'var(--destructive-foreground)',
275
+ fillHover: 'var(--destructive-hover)',
276
+ },
277
+ success: {
278
+ ink: '$good',
279
+ edge: '$green7',
280
+ tint: 'var(--state-success-bg)',
281
+ soft: 'var(--state-success-bg)',
282
+ softHover: '$green4',
283
+ fill: '$green9',
284
+ fillInk: '#ffffff',
285
+ fillHover: '$green10',
286
+ },
287
+ };
288
+ /** The ink a tone gives its icons, which read colour from a prop and not from the label's text context. */
289
+ const toneInk = (tone, variant) => {
290
+ if (tone === 'neutral')
291
+ return undefined;
292
+ return variant === 'primary' ? TONES[tone].fillInk : TONES[tone].ink;
293
+ };
166
294
  /**
167
295
  * A stable class handle for hosts that hook buttons from CSS. Styling lives in
168
296
  * the tokens; this only names the variant and size.
169
297
  */
170
298
  import { buttonVariants } from '../../style.js';
171
299
  export { buttonVariants };
172
- function Button({ className, variant = 'default', size = 'default', asChild = false, isLoading = false, disabled, children, ...props }) {
173
- const resolved = size ?? 'default';
300
+ /**
301
+ * A Lucide-style icon element, given the size it is drawn at and the label's
302
+ * colour, each only where it names none of its own. A gui icon reads its colour
303
+ * from a prop, not from the text context the label's colour rides on, so a
304
+ * subtle button's icon would otherwise stay at full ink beside a quiet label.
305
+ */
306
+ const glyph = (icon, size, color) => {
307
+ if (!isValidElement(icon))
308
+ return icon;
309
+ const own = icon.props;
310
+ const next = { ...(own.size == null ? { size } : null), ...(color && own.color == null ? { color } : null) };
311
+ return Object.keys(next).length ? cloneElement(icon, next) : icon;
312
+ };
313
+ /** The two record sizes whose child IS the icon, so the button draws it at its glyph. */
314
+ const SMALL_ICON = new Set(['icon-xs', 'icon-2xs']);
315
+ /** How long a pointer rests on a button before its tooltip shows (twenty-ui's 1000ms). */
316
+ const TOOLTIP_DELAY = 1000;
317
+ function Button({ tooltip, ...props }) {
318
+ if (tooltip == null || tooltip === false)
319
+ return _jsx(Pressable, { ...props });
320
+ const label = typeof tooltip === 'string' && props['aria-label'] == null ? { 'aria-label': tooltip } : null;
321
+ return (_jsxs(Tooltip, { delay: TOOLTIP_DELAY, placement: "bottom", children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx(Pressable, { ...props, ...(props.disabled ? { focusableWhenDisabled: true } : null), ...label }) }), _jsx(TooltipContent, { children: tooltip })] }));
322
+ }
323
+ function Pressable({ className, variant: own, size, asChild = false, isLoading = false, disabled, startIcon, endIcon, shortcut, shortcutJoinLabel, emphasis = 'standard', tone: ownTone, loadingPosition = 'start', fullWidth, elevated, shape, focusableWhenDisabled, children, ...props }) {
324
+ const density = useDensity();
325
+ const group = useContext(ButtonGroupContext);
326
+ const variant = own ?? group?.variant ?? 'default';
327
+ const tone = ownTone ?? group?.tone ?? 'neutral';
328
+ const resolved = size ?? group?.size ?? (density === 'compact' ? 'sm' : 'default');
329
+ // Only the box the density chose takes its gutter: a named size is a decision.
330
+ const compact = density === 'compact' && size == null && group?.size == null;
331
+ const quiet = emphasis === 'subtle' ? { color: '$hint' } : null;
332
+ const tint = emphasis === 'subtle' ? '$hint' : toneInk(tone, variant);
333
+ // The record density's label weight: medium, as twenty-ui sets every button.
334
+ const weight = density === 'compact' ? { fontWeight: '500' } : null;
335
+ // Disabled but focusable: the frame's `disabled` would take pointer events and
336
+ // focus away, so the state is said in ARIA and the press is refused here.
337
+ const inert = !!disabled && !!focusableWhenDisabled;
338
+ const center = isLoading && loadingPosition === 'center';
339
+ // aria-hidden: the label stays the name and `disabled` says it is busy; an
340
+ // unnamed progressbar beside it is what axe reports.
341
+ const spinner = _jsx(Spinner, { "aria-hidden": true, size: "small", maxW: SPIN[resolved], maxH: SPIN[resolved] });
174
342
  // gui's own `asChild` cannot merge into the child here: the Button frame bakes
175
343
  // a `render: <button>`, so asChild WRAPS the child in a button and drops every
176
344
  // compiled style (measured: `<button class="is_View "><a>…</a></button>`).
@@ -184,9 +352,14 @@ function Button({ className, variant = 'default', size = 'default', asChild = fa
184
352
  // default, as `render` below records) so it cannot say otherwise. A caller's
185
353
  // `role` still lands, from the spread after it.
186
354
  const link = host != null && host.props.href != null;
187
- return (_jsxs(Frame, { "data-slot": "button", "data-variant": variant ?? 'default', "data-size": resolved, variant: variant ?? 'default', size: resolved, ...(host
355
+ return (_jsxs(Frame, { "data-slot": "button", "data-variant": variant, "data-size": resolved, ...(tone !== 'neutral' ? { 'data-tone': tone } : null), variant: variant, size: resolved, ...(compact ? { compact: true } : null), ...(tone !== 'neutral' ? { tone } : null), ...(elevated ? { elevated: true } : null), ...(fullWidth ? { fullWidth: true } : null), ...(shape === 'round' ? { round: true } : null), ...(group?.framed ? { rounded: 1 } : null), ...(center ? { position: 'relative' } : null), ...(host
188
356
  ? { render: createElement(host.type, { ...host.props, children: undefined }) }
189
- : null), ...(link ? { role: undefined } : null), disabled: disabled || isLoading, ...touch(HEIGHT[resolved], 44, 'y'), ...sx(buttonVariants({ variant, size, className })), ...props, children: [isLoading && _jsx(Spinner, { size: "small", maxW: SPIN[resolved], maxH: SPIN[resolved] }), ink(body, GuiButton.Text, { fontSize: TYPE[resolved] })] }));
357
+ : null), ...(link ? { role: undefined } : null), disabled: inert ? false : disabled || isLoading, ...(inert ? { 'aria-disabled': true, opacity: 0.5, cursor: 'not-allowed' } : null), ...touch(HEIGHT[resolved], 44, 'y'), ...sx(buttonVariants({ variant, size, className: elevated ? [className, 'elevation-1'].filter(Boolean).join(' ') : className })), ...props, ...(inert ? { onPress: undefined, onClick: (e) => e?.preventDefault?.() } : null), children: [isLoading && loadingPosition === 'start' ? spinner : null, center ? (_jsx(XStack, { position: "absolute", t: 0, b: 0, l: 0, r: 0, items: "center", justify: "center", pointerEvents: "none", children: spinner })) : null, startIcon ? glyph(startIcon, GLYPH[resolved], tint) : null, ink(SMALL_ICON.has(resolved) ? glyph(body, GLYPH[resolved], tint) : body, GuiButton.Text, {
358
+ fontSize: TYPE[resolved],
359
+ ...weight,
360
+ ...quiet,
361
+ ...(center ? { opacity: 0 } : null),
362
+ }), shortcut && shortcut.length ? (_jsx(Shortcut, { keys: shortcut, variant: "button", sequenceJoinLabel: shortcutJoinLabel, ...(center ? { opacity: 0 } : null) })) : null, endIcon ? glyph(endIcon, GLYPH[resolved], tint) : null, isLoading && loadingPosition === 'end' ? spinner : null] }));
190
363
  }
191
364
  export { Button };
192
365
  //# sourceMappingURL=button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/backends/gui/button.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/backends/gui/button.tsx"],"names":[],"mappings":"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"}
@@ -10,10 +10,26 @@ const jsx_runtime_1 = require("react/jsx-runtime");
10
10
  * and a row is the one box model that also exists on native.
11
11
  */
12
12
  const gui_1 = require("@hanzo/gui");
13
+ const react_1 = require("react");
14
+ const density_1 = require("./density.cjs");
13
15
  const aspect_ratio_1 = require("./aspect-ratio.cjs");
14
16
  const ink_1 = require("./ink.cjs");
15
17
  const slot_1 = require("./slot.cjs");
16
18
  const PAD = 24;
19
+ /**
20
+ * The compact card (twenty-ui's Card, MIT, NOTICE): the settings and record
21
+ * frame. No inset of its own and an 8px corner; a Header and a Footer band at
22
+ * 8×16 in 12px medium on the ground, a Content well at 16 on the panel rung,
23
+ * hairlines between them (`divider` on Content, on by default for the Footer).
24
+ * Asked for with `density="compact"` or given by a compact `<Density>`. The
25
+ * regular card stays the 24px-padded panel.
26
+ */
27
+ const Compact = /* @__PURE__ */ (0, react_1.createContext)(false);
28
+ const COMPACT = {
29
+ frame: { py: 0, gap: 0, rounded: '$3', overflow: 'hidden', bg: 'transparent' },
30
+ band: { px: 16, py: 8, bg: '$background' },
31
+ content: { p: 16, bg: '$panel' },
32
+ };
17
33
  const CardFrame = (0, gui_1.styled)(gui_1.YStack, {
18
34
  name: 'Card',
19
35
  bg: '$background',
@@ -41,25 +57,32 @@ const DescriptionFrame = (0, gui_1.styled)(gui_1.SizableText, { name: 'CardDescr
41
57
  const ActionFrame = (0, gui_1.styled)(gui_1.XStack, { name: 'CardAction', self: 'flex-end', shrink: 0 });
42
58
  const ContentFrame = (0, gui_1.styled)(gui_1.YStack, { name: 'CardContent', px: PAD });
43
59
  const FooterFrame = (0, gui_1.styled)(gui_1.XStack, { name: 'CardFooter', px: PAD, items: 'center' });
44
- const Card = ({ interactive, onPress, ...p }) => ((0, jsx_runtime_1.jsx)(CardFrame, { ...(0, slot_1.slot)('card'), ...(interactive
45
- ? {
46
- role: 'button',
47
- tabIndex: 0,
48
- cursor: 'pointer',
49
- hoverStyle: { borderColor: '$dim' },
50
- focusStyle: { borderColor: '$dim', outlineWidth: 2, outlineStyle: 'solid', outlineColor: '$dim' },
51
- // A div with role="button" is not a button: the browser gives it no
52
- // keyboard activation, so it has to be spelled out or the card is
53
- // mouse-only. Space must also preventDefault or the page scrolls.
54
- onKeyDown: (e) => {
55
- if (e.key !== 'Enter' && e.key !== ' ')
56
- return;
57
- e.preventDefault();
58
- onPress?.(e);
59
- },
60
- }
61
- : null), onPress: onPress, ...p }));
62
- const CardHeader = (p) => (0, jsx_runtime_1.jsx)(HeaderFrame, { ...(0, slot_1.slot)('card-header'), ...p });
60
+ const Card = ({ interactive, onPress, density, children, ...p }) => {
61
+ const near = (0, density_1.useDensity)();
62
+ const compact = (density ?? near) === 'compact';
63
+ return ((0, jsx_runtime_1.jsx)(CardFrame, { ...(0, slot_1.slot)('card'), ...(compact ? { 'data-density': 'compact', ...COMPACT.frame } : null), ...(interactive
64
+ ? {
65
+ role: 'button',
66
+ tabIndex: 0,
67
+ cursor: 'pointer',
68
+ hoverStyle: compact ? { bg: '$hover' } : { borderColor: '$dim' },
69
+ focusStyle: { borderColor: '$dim', outlineWidth: 2, outlineStyle: 'solid', outlineColor: '$dim' },
70
+ // A div with role="button" is not a button: the browser gives it no
71
+ // keyboard activation, so it has to be spelled out or the card is
72
+ // mouse-only. Space must also preventDefault or the page scrolls.
73
+ onKeyDown: (e) => {
74
+ if (e.key !== 'Enter' && e.key !== ' ')
75
+ return;
76
+ e.preventDefault();
77
+ onPress?.(e);
78
+ },
79
+ }
80
+ : null), onPress: onPress, ...p, children: (0, jsx_runtime_1.jsx)(Compact.Provider, { value: compact, children: children }) }));
81
+ };
82
+ const CardHeader = ({ children, ...p }) => {
83
+ const compact = (0, react_1.useContext)(Compact);
84
+ return ((0, jsx_runtime_1.jsx)(HeaderFrame, { ...(0, slot_1.slot)('card-header'), ...(compact ? { ...COMPACT.band, gap: '$1', borderBottomWidth: 1, borderColor: '$borderColor' } : null), ...p, children: compact ? (0, ink_1.ink)(children, gui_1.SizableText, { size: '$1', fontWeight: '500', color: '$aside' }) : children }));
85
+ };
63
86
  exports.CardHeader = CardHeader;
64
87
  const CardTitle = (p) => (0, jsx_runtime_1.jsx)(TitleFrame, { ...(0, slot_1.slot)('card-title'), ...p });
65
88
  exports.CardTitle = CardTitle;
@@ -67,9 +90,15 @@ const CardDescription = (p) => (0, jsx_runtime_1.jsx)(DescriptionFrame, { ...(0,
67
90
  exports.CardDescription = CardDescription;
68
91
  const CardAction = (p) => (0, jsx_runtime_1.jsx)(ActionFrame, { ...(0, slot_1.slot)('card-action'), ...p });
69
92
  exports.CardAction = CardAction;
70
- const CardContent = ({ children, ...p }) => ((0, jsx_runtime_1.jsx)(ContentFrame, { ...(0, slot_1.slot)('card-content'), ...p, children: (0, ink_1.ink)(children) }));
93
+ const CardContent = ({ children, divider = false, ...p }) => {
94
+ const compact = (0, react_1.useContext)(Compact);
95
+ return ((0, jsx_runtime_1.jsx)(ContentFrame, { ...(0, slot_1.slot)('card-content'), ...(compact ? { ...COMPACT.content, ...(divider ? { borderBottomWidth: 1, borderColor: '$borderColor' } : null) } : null), ...p, children: (0, ink_1.ink)(children) }));
96
+ };
71
97
  exports.CardContent = CardContent;
72
- const CardFooter = ({ children, ...p }) => ((0, jsx_runtime_1.jsx)(FooterFrame, { ...(0, slot_1.slot)('card-footer'), ...p, children: (0, ink_1.ink)(children) }));
98
+ const CardFooter = ({ children, divider = true, ...p }) => {
99
+ const compact = (0, react_1.useContext)(Compact);
100
+ return ((0, jsx_runtime_1.jsx)(FooterFrame, { ...(0, slot_1.slot)('card-footer'), ...(compact ? { ...COMPACT.band, ...(divider ? { borderTopWidth: 1, borderColor: '$borderColor' } : null) } : null), ...p, children: compact ? (0, ink_1.ink)(children, gui_1.SizableText, { size: '$1', color: '$aside' }) : (0, ink_1.ink)(children) }));
101
+ };
73
102
  exports.CardFooter = CardFooter;
74
103
  const CardMedia = ({ ratio = 16 / 10, ...p }) => ((0, jsx_runtime_1.jsx)(aspect_ratio_1.AspectRatio, { ...(0, slot_1.slot)('card-media'), ratio: ratio, mt: -PAD, ...p }));
75
104
  exports.CardMedia = CardMedia;
@@ -1,4 +1,5 @@
1
- import type { ComponentProps } from 'react';
1
+ import { type ComponentProps } from 'react';
2
+ import { type DensityName } from './density.js';
2
3
  import { type AspectRatioProps } from './aspect-ratio.js';
3
4
  import type { Microdata } from './microdata.js';
4
5
  declare const CardFrame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, any, import("@hanzogui/core").RNGuiViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
@@ -40,20 +41,28 @@ export type CardProps = ComponentProps<typeof CardFrame> & {
40
41
  * it.
41
42
  */
42
43
  interactive?: boolean;
44
+ /** `compact` is the sectioned settings/record card; unset, the nearest `<Density>` decides. */
45
+ density?: DensityName;
43
46
  } & Microdata;
44
47
  export type CardHeaderProps = ComponentProps<typeof HeaderFrame>;
45
48
  export type CardTitleProps = ComponentProps<typeof TitleFrame>;
46
49
  export type CardDescriptionProps = ComponentProps<typeof DescriptionFrame>;
47
50
  export type CardActionProps = ComponentProps<typeof ActionFrame>;
48
- export type CardContentProps = ComponentProps<typeof ContentFrame>;
49
- export type CardFooterProps = ComponentProps<typeof FooterFrame>;
50
- declare const Card: ({ interactive, onPress, ...p }: CardProps) => import("react").JSX.Element;
51
- declare const CardHeader: (p: CardHeaderProps) => import("react").JSX.Element;
51
+ export type CardContentProps = ComponentProps<typeof ContentFrame> & {
52
+ /** A hairline under the content (compact card). */
53
+ divider?: boolean;
54
+ };
55
+ export type CardFooterProps = ComponentProps<typeof FooterFrame> & {
56
+ /** The hairline above the footer (compact card); on by default. */
57
+ divider?: boolean;
58
+ };
59
+ declare const Card: ({ interactive, onPress, density, children, ...p }: CardProps) => import("react").JSX.Element;
60
+ declare const CardHeader: ({ children, ...p }: CardHeaderProps) => import("react").JSX.Element;
52
61
  declare const CardTitle: (p: CardTitleProps) => import("react").JSX.Element;
53
62
  declare const CardDescription: (p: CardDescriptionProps) => import("react").JSX.Element;
54
63
  declare const CardAction: (p: CardActionProps) => import("react").JSX.Element;
55
- declare const CardContent: ({ children, ...p }: CardContentProps) => import("react").JSX.Element;
56
- declare const CardFooter: ({ children, ...p }: CardFooterProps) => import("react").JSX.Element;
64
+ declare const CardContent: ({ children, divider, ...p }: CardContentProps) => import("react").JSX.Element;
65
+ declare const CardFooter: ({ children, divider, ...p }: CardFooterProps) => import("react").JSX.Element;
57
66
  /**
58
67
  * CardMedia — the picture at the top of a card, edge to edge.
59
68
  *
@@ -1 +1 @@
1
- {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/card.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAGnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAI5C,QAAA,MAAM,SAAS;;;8CAQb,CAAA;AASF,QAAA,MAAM,WAAW;;;8CAKf,CAAA;AAEF,QAAA,MAAM,UAAU;;;8CAA4E,CAAA;AAC5F,QAAA,MAAM,gBAAgB;;;8CAAgF,CAAA;AACtG,QAAA,MAAM,WAAW;;;8CAAsE,CAAA;AACvF,QAAA,MAAM,YAAY;;;8CAAmD,CAAA;AACrE,QAAA,MAAM,WAAW;;;8CAAmE,CAAA;AAEpF,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,SAAS,CAAC,GAAG;IACzD;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,GAAG,SAAS,CAAA;AACb,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAA;AAChE,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,CAAA;AAC9D,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAC1E,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAA;AAChE,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,YAAY,CAAC,CAAA;AAClE,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAA;AAEhE,QAAA,MAAM,IAAI,mCAAoC,SAAS,gCAuBtD,CAAA;AACD,QAAA,MAAM,UAAU,MAAO,eAAe,gCAAoD,CAAA;AAC1F,QAAA,MAAM,SAAS,MAAO,cAAc,gCAAkD,CAAA;AACtF,QAAA,MAAM,eAAe,MAAO,oBAAoB,gCAA8D,CAAA;AAC9G,QAAA,MAAM,UAAU,MAAO,eAAe,gCAAoD,CAAA;AAC1F,QAAA,MAAM,WAAW,uBAAwB,gBAAgB,gCAExD,CAAA;AACD,QAAA,MAAM,UAAU,uBAAwB,eAAe,gCAEtD,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAA;AAC7C,QAAA,MAAM,SAAS,oBAA+B,cAAc,gCAE3D,CAAA;AAED;;;;;;;;;GASG;AACH,QAAA,MAAM,aAAa;;;;;;;;CAQjB,CAAA;AAEF,OAAO,EACL,aAAa,IAAI,IAAI,EACrB,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,EACX,SAAS,GACV,CAAA"}
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/card.tsx"],"names":[],"mappings":"AASA,OAAO,EAA6B,KAAK,cAAc,EAAE,MAAM,OAAO,CAAA;AACtE,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,WAAW,CAAA;AACxD,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAGnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAoB5C,QAAA,MAAM,SAAS;;;8CAQb,CAAA;AASF,QAAA,MAAM,WAAW;;;8CAKf,CAAA;AAEF,QAAA,MAAM,UAAU;;;8CAA4E,CAAA;AAC5F,QAAA,MAAM,gBAAgB;;;8CAAgF,CAAA;AACtG,QAAA,MAAM,WAAW;;;8CAAsE,CAAA;AACvF,QAAA,MAAM,YAAY;;;8CAAmD,CAAA;AACrE,QAAA,MAAM,WAAW;;;8CAAmE,CAAA;AAEpF,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,SAAS,CAAC,GAAG;IACzD;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,WAAW,CAAA;CACtB,GAAG,SAAS,CAAA;AACb,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAA;AAChE,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,CAAA;AAC9D,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAC1E,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,CAAA;AAChE,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,YAAY,CAAC,GAAG;IACnE,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AACD,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,WAAW,CAAC,GAAG;IACjE,mEAAmE;IACnE,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,QAAA,MAAM,IAAI,sDAAuD,SAAS,gCA8BzE,CAAA;AAED,QAAA,MAAM,UAAU,uBAAwB,eAAe,gCAWtD,CAAA;AACD,QAAA,MAAM,SAAS,MAAO,cAAc,gCAAkD,CAAA;AACtF,QAAA,MAAM,eAAe,MAAO,oBAAoB,gCAA8D,CAAA;AAC9G,QAAA,MAAM,UAAU,MAAO,eAAe,gCAAoD,CAAA;AAC1F,QAAA,MAAM,WAAW,gCAAyC,gBAAgB,gCAWzE,CAAA;AACD,QAAA,MAAM,UAAU,gCAAwC,eAAe,gCAWtE,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAA;AAC7C,QAAA,MAAM,SAAS,oBAA+B,cAAc,gCAE3D,CAAA;AAED;;;;;;;;;GASG;AACH,QAAA,MAAM,aAAa;;;;;;;;CAQjB,CAAA;AAEF,OAAO,EACL,aAAa,IAAI,IAAI,EACrB,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,EACX,SAAS,GACV,CAAA"}