@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
@@ -0,0 +1,46 @@
1
+ /**
2
+ * The one status map for feedback: what a status means, and the colour it is
3
+ * drawn in. Banner, Alert (the callout) and the toast read it; Status's semantic
4
+ * aliases (success, warning, error, info) are meant to read it too.
5
+ *
6
+ * After twenty-ui's FeedbackStatusColors (MIT, NOTICE): neutral is gray, info is
7
+ * blue, success green, warning orange, error red. The chrome stays Hanzo's, so
8
+ * the colour a strip, an icon or a solid fill takes is a STATE token wherever
9
+ * one exists — `--state-error`, `--state-warning`, `--state-success` — and info,
10
+ * which this system has no hue for, is the accent (`--primary`, monochrome until
11
+ * an org picks one). The data palette appears only where a callout needs the
12
+ * faint ground and edge of its colour (steps 1 and 6), which the states do not
13
+ * carry.
14
+ *
15
+ * Pure data, no gui import, so a server module can read it.
16
+ */
17
+ /** What a feedback surface reports. */
18
+ export type FeedbackStatus = 'neutral' | 'info' | 'success' | 'warning' | 'error';
19
+ /** The five colours a feedback surface can be drawn in. */
20
+ export type FeedbackColor = 'gray' | 'blue' | 'green' | 'orange' | 'red';
21
+ /** Each status's colour. */
22
+ export declare const STATUS_COLOR: Readonly<Record<FeedbackStatus, FeedbackColor>>;
23
+ /**
24
+ * The tokens a colour paints with, by role:
25
+ *
26
+ * ink the colour itself as text or an icon (a soft strip's message, a toast's icon)
27
+ * fill a solid strip's ground
28
+ * on the text on that solid ground (chosen for contrast, not by theme)
29
+ * tint a soft strip's ground, the countdown fill of a toast
30
+ * ground a callout's ground (data step 1)
31
+ * edge a callout's border (data step 6)
32
+ */
33
+ export type FeedbackPaint = {
34
+ ink: string;
35
+ fill: string;
36
+ on: string;
37
+ tint: string;
38
+ ground: string;
39
+ edge: string;
40
+ };
41
+ export declare const STATUS_PAINT: Readonly<Record<FeedbackColor, FeedbackPaint>>;
42
+ /** The colour a surface draws in: its own `color` if it names one, else its status's. */
43
+ export declare const colorOf: (status: FeedbackStatus | null | undefined, color?: FeedbackColor | null) => FeedbackColor;
44
+ /** A colour's paint. */
45
+ export declare const paint: (status: FeedbackStatus | null | undefined, color?: FeedbackColor | null) => FeedbackPaint;
46
+ //# sourceMappingURL=feedback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/feedback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,uCAAuC;AACvC,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;AAEjF,2DAA2D;AAC3D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;AAExE,4BAA4B;AAC5B,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,CAMxE,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CA4CvE,CAAA;AAED,yFAAyF;AACzF,eAAO,MAAM,OAAO,WAAY,cAAc,GAAG,IAAI,GAAG,SAAS,UAAU,aAAa,GAAG,IAAI,KAAG,aACtD,CAAA;AAE5C,wBAAwB;AACxB,eAAO,MAAM,KAAK,WAAY,cAAc,GAAG,IAAI,GAAG,SAAS,UAAU,aAAa,GAAG,IAAI,KAAG,aAC1D,CAAA"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * The one status map for feedback: what a status means, and the colour it is
3
+ * drawn in. Banner, Alert (the callout) and the toast read it; Status's semantic
4
+ * aliases (success, warning, error, info) are meant to read it too.
5
+ *
6
+ * After twenty-ui's FeedbackStatusColors (MIT, NOTICE): neutral is gray, info is
7
+ * blue, success green, warning orange, error red. The chrome stays Hanzo's, so
8
+ * the colour a strip, an icon or a solid fill takes is a STATE token wherever
9
+ * one exists — `--state-error`, `--state-warning`, `--state-success` — and info,
10
+ * which this system has no hue for, is the accent (`--primary`, monochrome until
11
+ * an org picks one). The data palette appears only where a callout needs the
12
+ * faint ground and edge of its colour (steps 1 and 6), which the states do not
13
+ * carry.
14
+ *
15
+ * Pure data, no gui import, so a server module can read it.
16
+ */
17
+ /** Each status's colour. */
18
+ export const STATUS_COLOR = {
19
+ neutral: 'gray',
20
+ info: 'blue',
21
+ success: 'green',
22
+ warning: 'orange',
23
+ error: 'red',
24
+ };
25
+ export const STATUS_PAINT = {
26
+ gray: {
27
+ ink: '$ink',
28
+ fill: '$raised',
29
+ on: '$ink',
30
+ tint: '$hover',
31
+ ground: 'var(--data-gray-1)',
32
+ edge: 'var(--data-gray-6)',
33
+ },
34
+ blue: {
35
+ ink: 'var(--primary)',
36
+ fill: 'var(--primary)',
37
+ on: 'var(--primary-foreground)',
38
+ tint: 'var(--glass-strong)',
39
+ ground: 'var(--data-blue-1)',
40
+ edge: 'var(--data-blue-6)',
41
+ },
42
+ green: {
43
+ ink: 'var(--state-success)',
44
+ fill: 'var(--state-success)',
45
+ // A light hue in both themes: dark ink reads on it, white does not (2.3:1).
46
+ on: 'var(--neutral-950)',
47
+ tint: 'var(--state-success-bg)',
48
+ ground: 'var(--data-green-1)',
49
+ edge: 'var(--data-green-6)',
50
+ },
51
+ orange: {
52
+ ink: 'var(--state-warning)',
53
+ fill: 'var(--state-warning)',
54
+ on: 'var(--neutral-950)',
55
+ tint: 'var(--state-warning-bg)',
56
+ ground: 'var(--data-orange-1)',
57
+ edge: 'var(--data-orange-6)',
58
+ },
59
+ red: {
60
+ ink: 'var(--state-error)',
61
+ // design's destructive FILL, cut for its foreground at 4.6:1; the error hue
62
+ // itself (#ef4444) carries white at only 3.8:1.
63
+ fill: 'var(--destructive)',
64
+ on: 'var(--destructive-foreground)',
65
+ tint: 'var(--state-error-bg)',
66
+ ground: 'var(--data-red-1)',
67
+ edge: 'var(--data-red-6)',
68
+ },
69
+ };
70
+ /** The colour a surface draws in: its own `color` if it names one, else its status's. */
71
+ export const colorOf = (status, color) => color ?? STATUS_COLOR[status ?? 'neutral'];
72
+ /** A colour's paint. */
73
+ export const paint = (status, color) => STATUS_PAINT[colorOf(status, color)];
74
+ //# sourceMappingURL=feedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../../src/backends/gui/feedback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,4BAA4B;AAC5B,MAAM,CAAC,MAAM,YAAY,GAAoD;IAC3E,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE,KAAK;CACb,CAAA;AAqBD,MAAM,CAAC,MAAM,YAAY,GAAmD;IAC1E,IAAI,EAAE;QACJ,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,oBAAoB;KAC3B;IACD,IAAI,EAAE;QACJ,GAAG,EAAE,gBAAgB;QACrB,IAAI,EAAE,gBAAgB;QACtB,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,oBAAoB;KAC3B;IACD,KAAK,EAAE;QACL,GAAG,EAAE,sBAAsB;QAC3B,IAAI,EAAE,sBAAsB;QAC5B,4EAA4E;QAC5E,EAAE,EAAE,oBAAoB;QACxB,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,qBAAqB;QAC7B,IAAI,EAAE,qBAAqB;KAC5B;IACD,MAAM,EAAE;QACN,GAAG,EAAE,sBAAsB;QAC3B,IAAI,EAAE,sBAAsB;QAC5B,EAAE,EAAE,oBAAoB;QACxB,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,sBAAsB;QAC9B,IAAI,EAAE,sBAAsB;KAC7B;IACD,GAAG,EAAE;QACH,GAAG,EAAE,oBAAoB;QACzB,4EAA4E;QAC5E,gDAAgD;QAChD,IAAI,EAAE,oBAAoB;QAC1B,EAAE,EAAE,+BAA+B;QACnC,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,mBAAmB;KAC1B;CACF,CAAA;AAED,yFAAyF;AACzF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,MAAyC,EAAE,KAA4B,EAAiB,EAAE,CAChH,KAAK,IAAI,YAAY,CAAC,MAAM,IAAI,SAAS,CAAC,CAAA;AAE5C,wBAAwB;AACxB,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,MAAyC,EAAE,KAA4B,EAAiB,EAAE,CAC9G,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA"}
@@ -1,7 +1,7 @@
1
1
  'use client';"use strict";
2
2
  'use client';
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.FieldGroup = exports.FieldContent = void 0;
4
+ exports.FieldGroup = exports.FieldContent = exports.invalidOf = exports.useField = void 0;
5
5
  exports.Field = Field;
6
6
  exports.FieldDescription = FieldDescription;
7
7
  exports.FieldError = FieldError;
@@ -31,19 +31,60 @@ const jsx_runtime_1 = require("react/jsx-runtime");
31
31
  * the compiled `@media (min-width: …)` any `$md` prop emits), so there are no
32
32
  * container queries to reach for and none are needed: the same direction every
33
33
  * other responsive prop in this codebase is written in.
34
+ *
35
+ * Under `<Density value="compact">` the text leaves take the record density
36
+ * twenty-ui's Field draws (MIT, NOTICE): a 12px semibold label in the light ink
37
+ * 4px above its control, a 12px light description and a 12px error, the block's
38
+ * gap 4. Regular density draws exactly what it always did.
39
+ *
40
+ * `invalid` on the root is the one statement of the field's validity: it marks
41
+ * the block (`data-invalid`), and `useField()` hands it to the control inside —
42
+ * Textarea and SelectTrigger read it as their error edge — and to `FieldError`,
43
+ * which a field that says `invalid={false}` keeps hidden.
34
44
  */
35
45
  const gui_1 = require("@hanzo/gui");
36
46
  const react_1 = require("react");
37
- const box_1 = require("../../box.cjs");
38
47
  const label_1 = require("./label.cjs");
39
48
  const layout_1 = require("./layout.cjs");
40
49
  const ink_1 = require("./ink.cjs");
41
50
  const slot_1 = require("./slot.cjs");
51
+ const density_1 = require("./density.cjs");
52
+ /** What a control inside a `Field` reads: whether the field is invalid, when it says. */
53
+ const FieldState = /* @__PURE__ */ (0, react_1.createContext)({});
54
+ /** The nearest `Field`'s stated validity — `undefined` outside one, or where it states none. */
55
+ const useField = () => (0, react_1.useContext)(FieldState);
56
+ exports.useField = useField;
57
+ /**
58
+ * `aria-invalid` as the DOM reads it, or the enclosing field's: anything but
59
+ * absent or the string "false" on the control, else what the Field states.
60
+ */
61
+ const invalidOf = (aria, field) => aria != null ? aria !== false && aria !== 'false' : !!field.invalid;
62
+ exports.invalidOf = invalidOf;
63
+ /**
64
+ * The gui values the old `flex flex-col gap-6` read as through `tw`, stated
65
+ * directly — the same frame `Box` drew (display flex, a 24px column gap, the
66
+ * div's `auto` minimums and its shrink), now through style props rather than a
67
+ * utility string. `field.test.tsx` holds the two renders equal.
68
+ */
42
69
  function FieldSet({ children, ...props }) {
43
- return ((0, jsx_runtime_1.jsx)(box_1.Box, { tag: "fieldset", className: "flex flex-col gap-6", ...(0, slot_1.slot)('field-set'), ...props, children: children }));
70
+ return ((0, jsx_runtime_1.jsx)(gui_1.YStack, { render: "fieldset", display: "flex", flexDirection: "column", gap: 24, minH: "auto", minW: "auto", shrink: 1, ...(0, slot_1.slot)('field-set'), ...props, children: children }));
44
71
  }
45
- function FieldLegend({ variant = 'legend', children, ...props }) {
46
- return ((0, jsx_runtime_1.jsx)(box_1.Box, { tag: "legend", className: variant === 'label' ? 'mb-3 text-sm font-medium' : 'mb-3 text-base font-medium', ...(0, slot_1.slot)('field-legend'), "data-variant": variant, ...props, children: children }));
72
+ /**
73
+ * `mb-3 text-sm|text-base font-medium`, as what it compiled to: a block frame
74
+ * with a 12px margin under it, and the text on design's sm (13) or base (14)
75
+ * rung at the medium weight. The text rides as a plain style, as `Box` carried
76
+ * it: a frame drops a text property, and a legend's text is its children's to
77
+ * inherit. Line-height `normal` is what the utility resolved to
78
+ * (`--text-*--line-height` is not a token anyone ships).
79
+ */
80
+ function FieldLegend({ variant = 'legend', children, style, ...props }) {
81
+ const rung = variant === 'label' ? 'sm' : 'base';
82
+ return ((0, jsx_runtime_1.jsx)(gui_1.YStack, { render: "legend", display: "block", mb: 12, minH: "auto", minW: "auto", shrink: 1, ...(0, slot_1.slot)('field-legend'), "data-variant": variant, ...props, style: {
83
+ fontSize: `var(--text-${rung})`,
84
+ lineHeight: `var(--text-${rung}--line-height, normal)`,
85
+ fontWeight: 500,
86
+ ...style,
87
+ }, children: children }));
47
88
  }
48
89
  const FieldGroup = (0, gui_1.styled)(gui_1.YStack, {
49
90
  name: 'FieldGroup',
@@ -77,9 +118,10 @@ const FieldFrame = (0, gui_1.styled)(gui_1.XStack, {
77
118
  },
78
119
  defaultVariants: { orientation: 'vertical' },
79
120
  });
80
- function Field({ orientation = 'vertical', ...props }) {
81
- const invalid = props['data-invalid'];
82
- return ((0, jsx_runtime_1.jsx)(FieldFrame, { role: "group", ...(0, slot_1.slot)('field'), "data-orientation": orientation, orientation: orientation, invalid: invalid, ...props }));
121
+ function Field({ orientation = 'vertical', invalid: stated, ...props }) {
122
+ const invalid = stated ?? props['data-invalid'];
123
+ const compact = (0, density_1.useDensity)() === 'compact';
124
+ return ((0, jsx_runtime_1.jsx)(FieldState.Provider, { value: { invalid: stated ?? props['data-invalid'] }, children: (0, jsx_runtime_1.jsx)(FieldFrame, { role: "group", ...(0, slot_1.slot)('field'), "data-orientation": orientation, orientation: orientation, ...(stated !== undefined ? { 'data-invalid': stated } : null), invalid: invalid, ...(compact ? { gap: '$1' } : null), ...props }) }));
83
125
  }
84
126
  const FieldContent = (0, gui_1.styled)(gui_1.YStack, {
85
127
  name: 'FieldContent',
@@ -89,9 +131,12 @@ const FieldContent = (0, gui_1.styled)(gui_1.YStack, {
89
131
  exports.FieldContent = FieldContent;
90
132
  /** A `Field` nested directly inside a `FieldLabel` reads as a choice card. */
91
133
  const isFieldChild = (children) => (0, react_1.isValidElement)(children) && children.type === Field;
134
+ /** The record density's caption: 12px semibold in the light ink. */
135
+ const CAPTION = { fontSize: '$1', fontWeight: '600', color: '$hint', lineHeight: '$1' };
92
136
  function FieldLabel({ className, children, ...props }) {
93
137
  const card = isFieldChild(children);
94
- return ((0, jsx_runtime_1.jsx)(label_1.Label, { ...(0, slot_1.slot)('field-label'), gap: "$2", ...(card
138
+ const compact = (0, density_1.useDensity)() === 'compact';
139
+ return ((0, jsx_runtime_1.jsx)(label_1.Label, { ...(0, slot_1.slot)('field-label'), ...(compact && !card ? CAPTION : null), gap: "$2", ...(card
95
140
  ? {
96
141
  width: '100%',
97
142
  flexDirection: 'column',
@@ -103,10 +148,12 @@ function FieldLabel({ className, children, ...props }) {
103
148
  : { self: 'flex-start' }), className: className, ...props, children: children }));
104
149
  }
105
150
  function FieldTitle({ children, ...props }) {
106
- return ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('field-label'), self: "flex-start", items: "center", gap: "$2", ...props, children: (0, ink_1.ink)(children, gui_1.SizableText, { fontSize: '$2', fontWeight: '500' }) }));
151
+ const compact = (0, density_1.useDensity)() === 'compact';
152
+ return ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('field-label'), self: "flex-start", items: "center", gap: "$2", ...props, children: (0, ink_1.ink)(children, gui_1.SizableText, compact ? CAPTION : { fontSize: '$2', fontWeight: '500' }) }));
107
153
  }
108
154
  function FieldDescription({ children, ...props }) {
109
- return ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { ...(0, slot_1.slot)('field-description'), fontSize: "$2", fontWeight: "400", color: "$quiet", ...props, children: children }));
155
+ const compact = (0, density_1.useDensity)() === 'compact';
156
+ return ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { ...(0, slot_1.slot)('field-description'), fontSize: compact ? '$1' : '$2', fontWeight: "400", color: compact ? '$hint' : '$quiet', ...props, children: children }));
110
157
  }
111
158
  function FieldSeparator({ children, ...props }) {
112
159
  return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { ...(0, slot_1.slot)('field-separator'), "data-content": !!children, items: "center", gap: "$2", ...props, children: [(0, jsx_runtime_1.jsx)(layout_1.Separator, { flex: 1 }), children && ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { ...(0, slot_1.slot)('field-separator-content'), color: "$quiet", fontSize: "$2", children: children })), children && (0, jsx_runtime_1.jsx)(layout_1.Separator, { flex: 1 })] }));
@@ -122,11 +169,21 @@ function fieldErrorContent(children, errors, issues) {
122
169
  return null;
123
170
  if (messages.length === 1)
124
171
  return messages[0].message;
125
- return ((0, jsx_runtime_1.jsx)(box_1.Box, { tag: "ul", className: "ml-4 flex flex-col gap-1", style: { listStyleType: 'disc' }, ...(0, slot_1.slot)('field-error-list'), children: messages.map((error, index) => ((0, jsx_runtime_1.jsx)(box_1.Box, { tag: "li", className: "text-sm text-red9", children: error.message }, index))) }));
172
+ return ((0, jsx_runtime_1.jsx)(gui_1.YStack, { render: "ul", ml: 16, display: "flex", flexDirection: "column", gap: 4, minH: "auto", minW: "auto", shrink: 1, style: { listStyleType: 'disc' }, ...(0, slot_1.slot)('field-error-list'), children: messages.map((error, index) => ((0, jsx_runtime_1.jsx)(gui_1.YStack, { render: "li", display: "block", minH: "auto", minW: "auto", shrink: 1, style: {
173
+ display: 'list-item',
174
+ fontSize: 'var(--text-sm)',
175
+ lineHeight: 'var(--text-sm--line-height, normal)',
176
+ color: 'var(--red9)',
177
+ }, children: error.message }, index))) }));
126
178
  }
127
179
  function FieldError({ children, errors, issues, ...props }) {
180
+ const field = (0, exports.useField)();
181
+ const compact = (0, density_1.useDensity)() === 'compact';
128
182
  const content = fieldErrorContent(children, errors, issues);
129
- if (!content)
183
+ // A field that states it is valid shows no error, whatever is passed in.
184
+ if (!content || field.invalid === false)
130
185
  return null;
131
- return ((0, jsx_runtime_1.jsx)(gui_1.XStack, { role: "alert", ...(0, slot_1.slot)('field-error'), ...props, children: (0, ink_1.ink)(content, gui_1.SizableText, { fontSize: '$2', fontWeight: '400', color: '$red9' }) }));
186
+ return ((0, jsx_runtime_1.jsx)(gui_1.XStack, { role: "alert", ...(0, slot_1.slot)('field-error'), ...props, children: (0, ink_1.ink)(content, gui_1.SizableText, compact
187
+ ? { fontSize: '$1', fontWeight: '400', color: '$bad' }
188
+ : { fontSize: '$2', fontWeight: '400', color: '$red9' }) }));
132
189
  }
@@ -18,15 +18,50 @@
18
18
  * the compiled `@media (min-width: …)` any `$md` prop emits), so there are no
19
19
  * container queries to reach for and none are needed: the same direction every
20
20
  * other responsive prop in this codebase is written in.
21
+ *
22
+ * Under `<Density value="compact">` the text leaves take the record density
23
+ * twenty-ui's Field draws (MIT, NOTICE): a 12px semibold label in the light ink
24
+ * 4px above its control, a 12px light description and a 12px error, the block's
25
+ * gap 4. Regular density draws exactly what it always did.
26
+ *
27
+ * `invalid` on the root is the one statement of the field's validity: it marks
28
+ * the block (`data-invalid`), and `useField()` hands it to the control inside —
29
+ * Textarea and SelectTrigger read it as their error edge — and to `FieldError`,
30
+ * which a field that says `invalid={false}` keeps hidden.
21
31
  */
22
32
  import { SizableText, XStack } from '@hanzo/gui';
23
33
  import { type ComponentProps, type ReactNode } from 'react';
24
34
  import { Label } from './label.js';
35
+ /** The nearest `Field`'s stated validity — `undefined` outside one, or where it states none. */
36
+ export declare const useField: () => {
37
+ invalid?: boolean;
38
+ };
39
+ /**
40
+ * `aria-invalid` as the DOM reads it, or the enclosing field's: anything but
41
+ * absent or the string "false" on the control, else what the Field states.
42
+ */
43
+ export declare const invalidOf: (aria: unknown, field: {
44
+ invalid?: boolean;
45
+ }) => boolean;
25
46
  export type FieldOrientation = 'vertical' | 'horizontal' | 'responsive';
26
47
  export type FieldLegendVariant = 'legend' | 'label';
48
+ /**
49
+ * The gui values the old `flex flex-col gap-6` read as through `tw`, stated
50
+ * directly — the same frame `Box` drew (display flex, a 24px column gap, the
51
+ * div's `auto` minimums and its shrink), now through style props rather than a
52
+ * utility string. `field.test.tsx` holds the two renders equal.
53
+ */
27
54
  declare function FieldSet({ children, ...props }: ComponentProps<'fieldset'>): import("react").JSX.Element;
28
55
  export type FieldSetProps = ComponentProps<typeof FieldSet>;
29
- declare function FieldLegend({ variant, children, ...props }: ComponentProps<'legend'> & {
56
+ /**
57
+ * `mb-3 text-sm|text-base font-medium`, as what it compiled to: a block frame
58
+ * with a 12px margin under it, and the text on design's sm (13) or base (14)
59
+ * rung at the medium weight. The text rides as a plain style, as `Box` carried
60
+ * it: a frame drops a text property, and a legend's text is its children's to
61
+ * inherit. Line-height `normal` is what the utility resolved to
62
+ * (`--text-*--line-height` is not a token anyone ships).
63
+ */
64
+ declare function FieldLegend({ variant, children, style, ...props }: ComponentProps<'legend'> & {
30
65
  variant?: FieldLegendVariant;
31
66
  }): import("react").JSX.Element;
32
67
  export type FieldLegendProps = ComponentProps<typeof FieldLegend>;
@@ -41,11 +76,16 @@ declare const FieldFrame: import("@hanzogui/web").GuiComponent<import("@hanzogui
41
76
  invalid?: boolean | undefined;
42
77
  orientation?: "horizontal" | "responsive" | "vertical" | undefined;
43
78
  }, import("@hanzogui/web").StaticConfigPublic>;
44
- export type FieldProps = Omit<ComponentProps<typeof FieldFrame>, 'orientation'> & {
79
+ export type FieldProps = Omit<ComponentProps<typeof FieldFrame>, 'orientation' | 'invalid'> & {
45
80
  orientation?: FieldOrientation;
81
+ /**
82
+ * The field's validity, stated once: the block is marked, the control inside
83
+ * draws its error edge, and `FieldError` shows (or, `false`, stays hidden).
84
+ */
85
+ invalid?: boolean;
46
86
  'data-invalid'?: boolean;
47
87
  };
48
- declare function Field({ orientation, ...props }: FieldProps): import("react").JSX.Element;
88
+ declare function Field({ orientation, invalid: stated, ...props }: FieldProps): import("react").JSX.Element;
49
89
  declare const FieldContent: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, any, import("@hanzogui/core").RNGuiViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
50
90
  elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
51
91
  fullscreen?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/field.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/field.tsx"],"names":[],"mappings":"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"}
@@ -20,19 +20,58 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
20
  * the compiled `@media (min-width: …)` any `$md` prop emits), so there are no
21
21
  * container queries to reach for and none are needed: the same direction every
22
22
  * other responsive prop in this codebase is written in.
23
+ *
24
+ * Under `<Density value="compact">` the text leaves take the record density
25
+ * twenty-ui's Field draws (MIT, NOTICE): a 12px semibold label in the light ink
26
+ * 4px above its control, a 12px light description and a 12px error, the block's
27
+ * gap 4. Regular density draws exactly what it always did.
28
+ *
29
+ * `invalid` on the root is the one statement of the field's validity: it marks
30
+ * the block (`data-invalid`), and `useField()` hands it to the control inside —
31
+ * Textarea and SelectTrigger read it as their error edge — and to `FieldError`,
32
+ * which a field that says `invalid={false}` keeps hidden.
23
33
  */
24
34
  import { SizableText, XStack, YStack, createStyledContext, styled } from '@hanzo/gui';
25
- import { isValidElement } from 'react';
26
- import { Box } from '../../box.js';
35
+ import { createContext, isValidElement, useContext } from 'react';
27
36
  import { Label } from './label.js';
28
37
  import { Separator } from './layout.js';
29
38
  import { ink } from './ink.js';
30
39
  import { slot } from './slot.js';
40
+ import { useDensity } from './density.js';
41
+ /** What a control inside a `Field` reads: whether the field is invalid, when it says. */
42
+ const FieldState = /* @__PURE__ */ createContext({});
43
+ /** The nearest `Field`'s stated validity — `undefined` outside one, or where it states none. */
44
+ export const useField = () => useContext(FieldState);
45
+ /**
46
+ * `aria-invalid` as the DOM reads it, or the enclosing field's: anything but
47
+ * absent or the string "false" on the control, else what the Field states.
48
+ */
49
+ export const invalidOf = (aria, field) => aria != null ? aria !== false && aria !== 'false' : !!field.invalid;
50
+ /**
51
+ * The gui values the old `flex flex-col gap-6` read as through `tw`, stated
52
+ * directly — the same frame `Box` drew (display flex, a 24px column gap, the
53
+ * div's `auto` minimums and its shrink), now through style props rather than a
54
+ * utility string. `field.test.tsx` holds the two renders equal.
55
+ */
31
56
  function FieldSet({ children, ...props }) {
32
- return (_jsx(Box, { tag: "fieldset", className: "flex flex-col gap-6", ...slot('field-set'), ...props, children: children }));
57
+ return (_jsx(YStack, { render: "fieldset", display: "flex", flexDirection: "column", gap: 24, minH: "auto", minW: "auto", shrink: 1, ...slot('field-set'), ...props, children: children }));
33
58
  }
34
- function FieldLegend({ variant = 'legend', children, ...props }) {
35
- return (_jsx(Box, { tag: "legend", className: variant === 'label' ? 'mb-3 text-sm font-medium' : 'mb-3 text-base font-medium', ...slot('field-legend'), "data-variant": variant, ...props, children: children }));
59
+ /**
60
+ * `mb-3 text-sm|text-base font-medium`, as what it compiled to: a block frame
61
+ * with a 12px margin under it, and the text on design's sm (13) or base (14)
62
+ * rung at the medium weight. The text rides as a plain style, as `Box` carried
63
+ * it: a frame drops a text property, and a legend's text is its children's to
64
+ * inherit. Line-height `normal` is what the utility resolved to
65
+ * (`--text-*--line-height` is not a token anyone ships).
66
+ */
67
+ function FieldLegend({ variant = 'legend', children, style, ...props }) {
68
+ const rung = variant === 'label' ? 'sm' : 'base';
69
+ return (_jsx(YStack, { render: "legend", display: "block", mb: 12, minH: "auto", minW: "auto", shrink: 1, ...slot('field-legend'), "data-variant": variant, ...props, style: {
70
+ fontSize: `var(--text-${rung})`,
71
+ lineHeight: `var(--text-${rung}--line-height, normal)`,
72
+ fontWeight: 500,
73
+ ...style,
74
+ }, children: children }));
36
75
  }
37
76
  const FieldGroup = styled(YStack, {
38
77
  name: 'FieldGroup',
@@ -65,9 +104,10 @@ const FieldFrame = styled(XStack, {
65
104
  },
66
105
  defaultVariants: { orientation: 'vertical' },
67
106
  });
68
- function Field({ orientation = 'vertical', ...props }) {
69
- const invalid = props['data-invalid'];
70
- return (_jsx(FieldFrame, { role: "group", ...slot('field'), "data-orientation": orientation, orientation: orientation, invalid: invalid, ...props }));
107
+ function Field({ orientation = 'vertical', invalid: stated, ...props }) {
108
+ const invalid = stated ?? props['data-invalid'];
109
+ const compact = useDensity() === 'compact';
110
+ return (_jsx(FieldState.Provider, { value: { invalid: stated ?? props['data-invalid'] }, children: _jsx(FieldFrame, { role: "group", ...slot('field'), "data-orientation": orientation, orientation: orientation, ...(stated !== undefined ? { 'data-invalid': stated } : null), invalid: invalid, ...(compact ? { gap: '$1' } : null), ...props }) }));
71
111
  }
72
112
  const FieldContent = styled(YStack, {
73
113
  name: 'FieldContent',
@@ -76,9 +116,12 @@ const FieldContent = styled(YStack, {
76
116
  });
77
117
  /** A `Field` nested directly inside a `FieldLabel` reads as a choice card. */
78
118
  const isFieldChild = (children) => isValidElement(children) && children.type === Field;
119
+ /** The record density's caption: 12px semibold in the light ink. */
120
+ const CAPTION = { fontSize: '$1', fontWeight: '600', color: '$hint', lineHeight: '$1' };
79
121
  function FieldLabel({ className, children, ...props }) {
80
122
  const card = isFieldChild(children);
81
- return (_jsx(Label, { ...slot('field-label'), gap: "$2", ...(card
123
+ const compact = useDensity() === 'compact';
124
+ return (_jsx(Label, { ...slot('field-label'), ...(compact && !card ? CAPTION : null), gap: "$2", ...(card
82
125
  ? {
83
126
  width: '100%',
84
127
  flexDirection: 'column',
@@ -90,10 +133,12 @@ function FieldLabel({ className, children, ...props }) {
90
133
  : { self: 'flex-start' }), className: className, ...props, children: children }));
91
134
  }
92
135
  function FieldTitle({ children, ...props }) {
93
- return (_jsx(XStack, { ...slot('field-label'), self: "flex-start", items: "center", gap: "$2", ...props, children: ink(children, SizableText, { fontSize: '$2', fontWeight: '500' }) }));
136
+ const compact = useDensity() === 'compact';
137
+ return (_jsx(XStack, { ...slot('field-label'), self: "flex-start", items: "center", gap: "$2", ...props, children: ink(children, SizableText, compact ? CAPTION : { fontSize: '$2', fontWeight: '500' }) }));
94
138
  }
95
139
  function FieldDescription({ children, ...props }) {
96
- return (_jsx(SizableText, { ...slot('field-description'), fontSize: "$2", fontWeight: "400", color: "$quiet", ...props, children: children }));
140
+ const compact = useDensity() === 'compact';
141
+ return (_jsx(SizableText, { ...slot('field-description'), fontSize: compact ? '$1' : '$2', fontWeight: "400", color: compact ? '$hint' : '$quiet', ...props, children: children }));
97
142
  }
98
143
  function FieldSeparator({ children, ...props }) {
99
144
  return (_jsxs(XStack, { ...slot('field-separator'), "data-content": !!children, items: "center", gap: "$2", ...props, children: [_jsx(Separator, { flex: 1 }), children && (_jsx(SizableText, { ...slot('field-separator-content'), color: "$quiet", fontSize: "$2", children: children })), children && _jsx(Separator, { flex: 1 })] }));
@@ -109,13 +154,23 @@ function fieldErrorContent(children, errors, issues) {
109
154
  return null;
110
155
  if (messages.length === 1)
111
156
  return messages[0].message;
112
- return (_jsx(Box, { tag: "ul", className: "ml-4 flex flex-col gap-1", style: { listStyleType: 'disc' }, ...slot('field-error-list'), children: messages.map((error, index) => (_jsx(Box, { tag: "li", className: "text-sm text-red9", children: error.message }, index))) }));
157
+ return (_jsx(YStack, { render: "ul", ml: 16, display: "flex", flexDirection: "column", gap: 4, minH: "auto", minW: "auto", shrink: 1, style: { listStyleType: 'disc' }, ...slot('field-error-list'), children: messages.map((error, index) => (_jsx(YStack, { render: "li", display: "block", minH: "auto", minW: "auto", shrink: 1, style: {
158
+ display: 'list-item',
159
+ fontSize: 'var(--text-sm)',
160
+ lineHeight: 'var(--text-sm--line-height, normal)',
161
+ color: 'var(--red9)',
162
+ }, children: error.message }, index))) }));
113
163
  }
114
164
  function FieldError({ children, errors, issues, ...props }) {
165
+ const field = useField();
166
+ const compact = useDensity() === 'compact';
115
167
  const content = fieldErrorContent(children, errors, issues);
116
- if (!content)
168
+ // A field that states it is valid shows no error, whatever is passed in.
169
+ if (!content || field.invalid === false)
117
170
  return null;
118
- return (_jsx(XStack, { role: "alert", ...slot('field-error'), ...props, children: ink(content, SizableText, { fontSize: '$2', fontWeight: '400', color: '$red9' }) }));
171
+ return (_jsx(XStack, { role: "alert", ...slot('field-error'), ...props, children: ink(content, SizableText, compact
172
+ ? { fontSize: '$1', fontWeight: '400', color: '$bad' }
173
+ : { fontSize: '$2', fontWeight: '400', color: '$red9' }) }));
119
174
  }
120
175
  export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, };
121
176
  //# sourceMappingURL=field.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"field.js","sourceRoot":"","sources":["../../../src/backends/gui/field.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field.js","sourceRoot":"","sources":["../../../src/backends/gui/field.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACrF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAuC,MAAM,OAAO,CAAA;AACtG,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC,yFAAyF;AACzF,MAAM,UAAU,GAAG,eAAe,CAAC,aAAa,CAAwB,EAAE,CAAC,CAAA;AAE3E,gGAAgG;AAChG,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;AAEpD;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,KAA4B,EAAE,EAAE,CACvE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAA;AAKrE;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAA8B;IAClE,OAAO,CACL,KAAC,MAAM,IACL,MAAM,EAAC,UAAU,EACjB,OAAO,EAAC,MAAM,EACd,aAAa,EAAC,QAAQ,EACtB,GAAG,EAAE,EAAE,EACP,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,CAAC,KACL,IAAI,CAAC,WAAW,CAAC,KAChB,KAAgB,YAEpB,QAAQ,GACF,CACV,CAAA;AACH,CAAC;AAID;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,EAEnE;IACC,MAAM,IAAI,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;IAChD,OAAO,CACL,KAAC,MAAM,IACL,MAAM,EAAC,QAAQ,EACf,OAAO,EAAC,OAAO,EACf,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,CAAC,KACL,IAAI,CAAC,cAAc,CAAC,kBACV,OAAO,KAChB,KAAgB,EACrB,KAAK,EAAE;YACL,QAAQ,EAAE,cAAc,IAAI,GAAG;YAC/B,UAAU,EAAE,cAAc,IAAI,wBAAwB;YACtD,UAAU,EAAE,GAAG;YACf,GAAG,KAAK;SACT,YAEA,QAAQ,GACF,CACV,CAAA;AACH,CAAC;AAID,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE;IAChC,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,MAAM;IACb,GAAG,EAAE,IAAI;CACV,CAAC,CAAA;AAIF,MAAM,YAAY,GAAG,eAAe,CAAC,mBAAmB,CAAoC;IAC1F,WAAW,EAAE,UAAU;CACxB,CAAC,CAAA;AAEF,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE;IAChC,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,YAAY;IACrB,KAAK,EAAE,MAAM;IACb,GAAG,EAAE,IAAI;IAET,QAAQ,EAAE;QACR,WAAW,EAAE;YACX,QAAQ,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE;YACrC,UAAU,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;YACrD,qEAAqE;YACrE,wEAAwE;YACxE,4DAA4D;YAC5D,UAAU,EAAE;gBACV,aAAa,EAAE,QAAQ;gBACvB,GAAG,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;aAC/C;SACF;QACD,OAAO,EAAE;YACP,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;SACzB;KACO;IAEV,eAAe,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;CAC7C,CAAC,CAAA;AAYF,SAAS,KAAK,CAAC,EAAE,WAAW,GAAG,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,EAAc;IAChF,MAAM,OAAO,GAAG,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;IAC/C,MAAM,OAAO,GAAG,UAAU,EAAE,KAAK,SAAS,CAAA;IAC1C,OAAO,CACL,KAAC,UAAU,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,YACtE,KAAC,UAAU,IACT,IAAI,EAAC,OAAO,KACR,IAAI,CAAC,OAAO,CAAC,sBACC,WAAW,EAC7B,WAAW,EAAE,WAAW,KACpB,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAC9D,OAAO,EAAE,OAAO,KAEZ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAChC,KAAK,GACT,GACkB,CACvB,CAAA;AACH,CAAC;AAED,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE;IAClC,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,CAAC;IACP,GAAG,EAAE,MAAM;CACZ,CAAC,CAAA;AAIF,8EAA8E;AAC9E,MAAM,YAAY,GAAG,CAAC,QAAmB,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAA;AAEjG,oEAAoE;AACpE,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAW,CAAA;AAEhG,SAAS,UAAU,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAgC;IACjF,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,UAAU,EAAE,KAAK,SAAS,CAAA;IAC1C,OAAO,CACL,KAAC,KAAK,OACA,IAAI,CAAC,aAAa,CAAC,KACnB,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EACvC,GAAG,EAAC,IAAI,KACJ,CAAC,IAAI;YACP,CAAC,CAAC;gBACE,KAAK,EAAE,MAAe;gBACtB,aAAa,EAAE,QAAiB;gBAChC,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,cAAc;gBAC3B,CAAC,EAAE,IAAI;aACR;YACH,CAAC,CAAC,EAAE,IAAI,EAAE,YAAqB,EAAE,CAAC,EACpC,SAAS,EAAE,SAAS,KAChB,KAAK,YAER,QAAQ,GACH,CACT,CAAA;AACH,CAAC;AAID,SAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAiC;IACvE,MAAM,OAAO,GAAG,UAAU,EAAE,KAAK,SAAS,CAAA;IAC1C,OAAO,CACL,KAAC,MAAM,OAAK,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,KAAK,KAAK,YACjF,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,GAC/E,CACV,CAAA;AACH,CAAC;AAID,SAAS,gBAAgB,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAsC;IAClF,MAAM,OAAO,GAAG,UAAU,EAAE,KAAK,SAAS,CAAA;IAC1C,OAAO,CACL,KAAC,WAAW,OACN,IAAI,CAAC,mBAAmB,CAAC,EAC7B,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAC/B,UAAU,EAAC,KAAK,EAChB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,KAC/B,KAAK,YAER,QAAQ,GACG,CACf,CAAA;AACH,CAAC;AAID,SAAS,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAE3C;IACC,OAAO,CACL,MAAC,MAAM,OAAK,IAAI,CAAC,iBAAiB,CAAC,kBAAgB,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,KAAK,KAAK,aAC9F,KAAC,SAAS,IAAC,IAAI,EAAE,CAAC,GAAI,EACrB,QAAQ,IAAI,CACX,KAAC,WAAW,OAAK,IAAI,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAC,QAAQ,EAAC,QAAQ,EAAC,IAAI,YAC3E,QAAQ,GACG,CACf,EACA,QAAQ,IAAI,KAAC,SAAS,IAAC,IAAI,EAAE,CAAC,GAAI,IAC5B,CACV,CAAA;AACH,CAAC;AAMD,SAAS,iBAAiB,CACxB,QAAmB,EACnB,MAAsD,EACtD,MAAsD;IAEtD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC7B,MAAM,IAAI,GAAG,MAAM,IAAI,MAAM,CAAA;IAC7B,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAwB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IACvE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACtC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IACrD,OAAO,CAOL,KAAC,MAAM,IACL,MAAM,EAAC,IAAI,EACX,EAAE,EAAE,EAAE,EACN,OAAO,EAAC,MAAM,EACd,aAAa,EAAC,QAAQ,EACtB,GAAG,EAAE,CAAC,EACN,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,KAC5B,IAAI,CAAC,kBAAkB,CAAC,YAE3B,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC9B,KAAC,MAAM,IAEL,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,CAAC,EACT,KAAK,EAAE;gBACL,OAAO,EAAE,WAAW;gBACpB,QAAQ,EAAE,gBAAgB;gBAC1B,UAAU,EAAE,qCAAqC;gBACjD,KAAK,EAAE,aAAa;aACrB,YAEA,KAAK,CAAC,OAAO,IAbT,KAAK,CAcH,CACV,CAAC,GACK,CACV,CAAA;AACH,CAAC;AAQD,SAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,EAAmB;IACzE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAA;IACxB,MAAM,OAAO,GAAG,UAAU,EAAE,KAAK,SAAS,CAAA;IAC1C,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3D,yEAAyE;IACzE,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK;QAAE,OAAO,IAAI,CAAA;IACpD,OAAO,CACL,KAAC,MAAM,IAAC,IAAI,EAAC,OAAO,KAAK,IAAI,CAAC,aAAa,CAAC,KAAM,KAAK,YACpD,GAAG,CACF,OAAO,EACP,WAAW,EACX,OAAO;YACL,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;YACtD,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAC1D,GACM,CACV,CAAA;AACH,CAAC;AAED,OAAO,EACL,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,QAAQ,EACR,UAAU,GACX,CAAA"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.flag = void 0;
4
+ /**
5
+ * A country's flag as text: the two regional-indicator letters of its ISO
6
+ * 3166-1 alpha-2 code, which a platform draws as its flag emoji. No assets ship
7
+ * with the package for it; a platform that has no flag glyphs (Windows) draws the
8
+ * two letters, which still name the country. Anything that is not two ASCII
9
+ * letters is not a country code, and has no flag.
10
+ */
11
+ const flag = (iso) => {
12
+ const code = iso?.trim().toUpperCase();
13
+ if (!code || !/^[A-Z]{2}$/.test(code))
14
+ return null;
15
+ return String.fromCodePoint(...[...code].map((c) => 0x1f1e6 + c.charCodeAt(0) - 65));
16
+ };
17
+ exports.flag = flag;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * A country's flag as text: the two regional-indicator letters of its ISO
3
+ * 3166-1 alpha-2 code, which a platform draws as its flag emoji. No assets ship
4
+ * with the package for it; a platform that has no flag glyphs (Windows) draws the
5
+ * two letters, which still name the country. Anything that is not two ASCII
6
+ * letters is not a country code, and has no flag.
7
+ */
8
+ export declare const flag: (iso: string | null | undefined) => string | null;
9
+ //# sourceMappingURL=flag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flag.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/flag.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,QAAS,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,MAAM,GAAG,IAI9D,CAAA"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * A country's flag as text: the two regional-indicator letters of its ISO
3
+ * 3166-1 alpha-2 code, which a platform draws as its flag emoji. No assets ship
4
+ * with the package for it; a platform that has no flag glyphs (Windows) draws the
5
+ * two letters, which still name the country. Anything that is not two ASCII
6
+ * letters is not a country code, and has no flag.
7
+ */
8
+ export const flag = (iso) => {
9
+ const code = iso?.trim().toUpperCase();
10
+ if (!code || !/^[A-Z]{2}$/.test(code))
11
+ return null;
12
+ return String.fromCodePoint(...[...code].map((c) => 0x1f1e6 + c.charCodeAt(0) - 65));
13
+ };
14
+ //# sourceMappingURL=flag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flag.js","sourceRoot":"","sources":["../../../src/backends/gui/flag.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAA8B,EAAiB,EAAE;IACpE,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACtC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAClD,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;AACtF,CAAC,CAAA"}