@viax.io/uxm 4.36.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 (2262) hide show
  1. package/CHANGELOG.md +1019 -0
  2. package/README.md +263 -0
  3. package/dist/helpers/cn.cjs +31 -0
  4. package/dist/helpers/cn.cjs.map +1 -0
  5. package/dist/helpers/cn.d.ts +2 -0
  6. package/dist/helpers/cn.d.ts.map +1 -0
  7. package/dist/helpers/cn.js +7 -0
  8. package/dist/helpers/cn.js.map +1 -0
  9. package/dist/helpers/index.cjs +27 -0
  10. package/dist/helpers/index.cjs.map +1 -0
  11. package/dist/helpers/index.d.ts +4 -0
  12. package/dist/helpers/index.d.ts.map +1 -0
  13. package/dist/helpers/index.js +4 -0
  14. package/dist/helpers/index.js.map +1 -0
  15. package/dist/helpers/merge-described-by.cjs +31 -0
  16. package/dist/helpers/merge-described-by.cjs.map +1 -0
  17. package/dist/helpers/merge-described-by.d.ts +12 -0
  18. package/dist/helpers/merge-described-by.d.ts.map +1 -0
  19. package/dist/helpers/merge-described-by.js +7 -0
  20. package/dist/helpers/merge-described-by.js.map +1 -0
  21. package/dist/helpers/merge-refs.cjs +48 -0
  22. package/dist/helpers/merge-refs.cjs.map +1 -0
  23. package/dist/helpers/merge-refs.d.ts +18 -0
  24. package/dist/helpers/merge-refs.d.ts.map +1 -0
  25. package/dist/helpers/merge-refs.js +24 -0
  26. package/dist/helpers/merge-refs.js.map +1 -0
  27. package/dist/hooks/use-dismiss.cjs +67 -0
  28. package/dist/hooks/use-dismiss.cjs.map +1 -0
  29. package/dist/hooks/use-dismiss.d.ts +53 -0
  30. package/dist/hooks/use-dismiss.d.ts.map +1 -0
  31. package/dist/hooks/use-dismiss.js +43 -0
  32. package/dist/hooks/use-dismiss.js.map +1 -0
  33. package/dist/hooks/use-focus-on-mount.cjs +65 -0
  34. package/dist/hooks/use-focus-on-mount.cjs.map +1 -0
  35. package/dist/hooks/use-focus-on-mount.d.ts +39 -0
  36. package/dist/hooks/use-focus-on-mount.d.ts.map +1 -0
  37. package/dist/hooks/use-focus-on-mount.js +41 -0
  38. package/dist/hooks/use-focus-on-mount.js.map +1 -0
  39. package/dist/hooks/use-focus-trap.cjs +78 -0
  40. package/dist/hooks/use-focus-trap.cjs.map +1 -0
  41. package/dist/hooks/use-focus-trap.d.ts +27 -0
  42. package/dist/hooks/use-focus-trap.d.ts.map +1 -0
  43. package/dist/hooks/use-focus-trap.js +54 -0
  44. package/dist/hooks/use-focus-trap.js.map +1 -0
  45. package/dist/hooks/use-portal.cjs +34 -0
  46. package/dist/hooks/use-portal.cjs.map +1 -0
  47. package/dist/hooks/use-portal.d.ts +14 -0
  48. package/dist/hooks/use-portal.d.ts.map +1 -0
  49. package/dist/hooks/use-portal.js +10 -0
  50. package/dist/hooks/use-portal.js.map +1 -0
  51. package/dist/hooks/use-roving-tab-index.cjs +78 -0
  52. package/dist/hooks/use-roving-tab-index.cjs.map +1 -0
  53. package/dist/hooks/use-roving-tab-index.d.ts +74 -0
  54. package/dist/hooks/use-roving-tab-index.d.ts.map +1 -0
  55. package/dist/hooks/use-roving-tab-index.js +54 -0
  56. package/dist/hooks/use-roving-tab-index.js.map +1 -0
  57. package/dist/hooks/use-scroll-lock.cjs +46 -0
  58. package/dist/hooks/use-scroll-lock.cjs.map +1 -0
  59. package/dist/hooks/use-scroll-lock.d.ts +11 -0
  60. package/dist/hooks/use-scroll-lock.d.ts.map +1 -0
  61. package/dist/hooks/use-scroll-lock.js +22 -0
  62. package/dist/hooks/use-scroll-lock.js.map +1 -0
  63. package/dist/hooks/use-toast-store.cjs +91 -0
  64. package/dist/hooks/use-toast-store.cjs.map +1 -0
  65. package/dist/hooks/use-toast-store.d.ts +59 -0
  66. package/dist/hooks/use-toast-store.d.ts.map +1 -0
  67. package/dist/hooks/use-toast-store.js +66 -0
  68. package/dist/hooks/use-toast-store.js.map +1 -0
  69. package/dist/index.cjs +27 -0
  70. package/dist/index.cjs.map +1 -0
  71. package/dist/index.d.ts +12 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +4 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/lib/calendar-grid.cjs +40 -0
  76. package/dist/lib/calendar-grid.cjs.map +1 -0
  77. package/dist/lib/calendar-grid.d.ts +26 -0
  78. package/dist/lib/calendar-grid.d.ts.map +1 -0
  79. package/dist/lib/calendar-grid.js +16 -0
  80. package/dist/lib/calendar-grid.js.map +1 -0
  81. package/dist/lib/contrast.cjs +225 -0
  82. package/dist/lib/contrast.cjs.map +1 -0
  83. package/dist/lib/contrast.d.ts +40 -0
  84. package/dist/lib/contrast.d.ts.map +1 -0
  85. package/dist/lib/contrast.js +189 -0
  86. package/dist/lib/contrast.js.map +1 -0
  87. package/dist/lib/currencies.cjs +62 -0
  88. package/dist/lib/currencies.cjs.map +1 -0
  89. package/dist/lib/currencies.d.ts +29 -0
  90. package/dist/lib/currencies.d.ts.map +1 -0
  91. package/dist/lib/currencies.js +37 -0
  92. package/dist/lib/currencies.js.map +1 -0
  93. package/dist/lib/icons.cjs +183 -0
  94. package/dist/lib/icons.cjs.map +1 -0
  95. package/dist/lib/icons.d.ts +37 -0
  96. package/dist/lib/icons.d.ts.map +1 -0
  97. package/dist/lib/icons.js +157 -0
  98. package/dist/lib/icons.js.map +1 -0
  99. package/dist/lib/phone-countries.cjs +107 -0
  100. package/dist/lib/phone-countries.cjs.map +1 -0
  101. package/dist/lib/phone-countries.d.ts +40 -0
  102. package/dist/lib/phone-countries.d.ts.map +1 -0
  103. package/dist/lib/phone-countries.js +80 -0
  104. package/dist/lib/phone-countries.js.map +1 -0
  105. package/dist/lib/types.cjs +17 -0
  106. package/dist/lib/types.cjs.map +1 -0
  107. package/dist/lib/types.d.ts +76 -0
  108. package/dist/lib/types.d.ts.map +1 -0
  109. package/dist/lib/types.js +1 -0
  110. package/dist/lib/types.js.map +1 -0
  111. package/dist/previews/composite/brand-settings-preview.cjs +855 -0
  112. package/dist/previews/composite/brand-settings-preview.cjs.map +1 -0
  113. package/dist/previews/composite/brand-settings-preview.d.ts +8 -0
  114. package/dist/previews/composite/brand-settings-preview.d.ts.map +1 -0
  115. package/dist/previews/composite/brand-settings-preview.js +852 -0
  116. package/dist/previews/composite/brand-settings-preview.js.map +1 -0
  117. package/dist/previews/composite/form-preview.cjs +91 -0
  118. package/dist/previews/composite/form-preview.cjs.map +1 -0
  119. package/dist/previews/composite/form-preview.d.ts +22 -0
  120. package/dist/previews/composite/form-preview.d.ts.map +1 -0
  121. package/dist/previews/composite/form-preview.js +67 -0
  122. package/dist/previews/composite/form-preview.js.map +1 -0
  123. package/dist/previews/composite/lifecycle-action-row-preview.cjs +91 -0
  124. package/dist/previews/composite/lifecycle-action-row-preview.cjs.map +1 -0
  125. package/dist/previews/composite/lifecycle-action-row-preview.d.ts +3 -0
  126. package/dist/previews/composite/lifecycle-action-row-preview.d.ts.map +1 -0
  127. package/dist/previews/composite/lifecycle-action-row-preview.js +67 -0
  128. package/dist/previews/composite/lifecycle-action-row-preview.js.map +1 -0
  129. package/dist/previews/composite/lifecycle-connector-knobs-preview.cjs +81 -0
  130. package/dist/previews/composite/lifecycle-connector-knobs-preview.cjs.map +1 -0
  131. package/dist/previews/composite/lifecycle-connector-knobs-preview.d.ts +3 -0
  132. package/dist/previews/composite/lifecycle-connector-knobs-preview.d.ts.map +1 -0
  133. package/dist/previews/composite/lifecycle-connector-knobs-preview.js +57 -0
  134. package/dist/previews/composite/lifecycle-connector-knobs-preview.js.map +1 -0
  135. package/dist/previews/composite/lifecycle-plus-button-preview.cjs +47 -0
  136. package/dist/previews/composite/lifecycle-plus-button-preview.cjs.map +1 -0
  137. package/dist/previews/composite/lifecycle-plus-button-preview.d.ts +3 -0
  138. package/dist/previews/composite/lifecycle-plus-button-preview.d.ts.map +1 -0
  139. package/dist/previews/composite/lifecycle-plus-button-preview.js +23 -0
  140. package/dist/previews/composite/lifecycle-plus-button-preview.js.map +1 -0
  141. package/dist/previews/composite/login-page-preview.cjs +223 -0
  142. package/dist/previews/composite/login-page-preview.cjs.map +1 -0
  143. package/dist/previews/composite/login-page-preview.d.ts +3 -0
  144. package/dist/previews/composite/login-page-preview.d.ts.map +1 -0
  145. package/dist/previews/composite/login-page-preview.js +199 -0
  146. package/dist/previews/composite/login-page-preview.js.map +1 -0
  147. package/dist/previews/composite/multirow-form-preview.cjs +97 -0
  148. package/dist/previews/composite/multirow-form-preview.cjs.map +1 -0
  149. package/dist/previews/composite/multirow-form-preview.d.ts +23 -0
  150. package/dist/previews/composite/multirow-form-preview.d.ts.map +1 -0
  151. package/dist/previews/composite/multirow-form-preview.js +73 -0
  152. package/dist/previews/composite/multirow-form-preview.js.map +1 -0
  153. package/dist/previews/demo-row-actions.cjs +34 -0
  154. package/dist/previews/demo-row-actions.cjs.map +1 -0
  155. package/dist/previews/demo-row-actions.d.ts +8 -0
  156. package/dist/previews/demo-row-actions.d.ts.map +1 -0
  157. package/dist/previews/demo-row-actions.js +10 -0
  158. package/dist/previews/demo-row-actions.js.map +1 -0
  159. package/dist/previews/index.cjs +329 -0
  160. package/dist/previews/index.cjs.map +1 -0
  161. package/dist/previews/index.d.ts +111 -0
  162. package/dist/previews/index.d.ts.map +1 -0
  163. package/dist/previews/index.js +205 -0
  164. package/dist/previews/index.js.map +1 -0
  165. package/dist/previews/types.cjs +17 -0
  166. package/dist/previews/types.cjs.map +1 -0
  167. package/dist/previews/types.d.ts +31 -0
  168. package/dist/previews/types.d.ts.map +1 -0
  169. package/dist/previews/types.js +1 -0
  170. package/dist/previews/types.js.map +1 -0
  171. package/dist/studio/brand-font-styles.cjs +60 -0
  172. package/dist/studio/brand-font-styles.cjs.map +1 -0
  173. package/dist/studio/brand-font-styles.d.ts +35 -0
  174. package/dist/studio/brand-font-styles.d.ts.map +1 -0
  175. package/dist/studio/brand-font-styles.js +36 -0
  176. package/dist/studio/brand-font-styles.js.map +1 -0
  177. package/dist/studio/brand-token-styles.cjs +58 -0
  178. package/dist/studio/brand-token-styles.cjs.map +1 -0
  179. package/dist/studio/brand-token-styles.d.ts +2 -0
  180. package/dist/studio/brand-token-styles.d.ts.map +1 -0
  181. package/dist/studio/brand-token-styles.js +34 -0
  182. package/dist/studio/brand-token-styles.js.map +1 -0
  183. package/dist/studio/editors/code-editor.cjs +510 -0
  184. package/dist/studio/editors/code-editor.cjs.map +1 -0
  185. package/dist/studio/editors/code-editor.d.ts +2 -0
  186. package/dist/studio/editors/code-editor.d.ts.map +1 -0
  187. package/dist/studio/editors/code-editor.js +492 -0
  188. package/dist/studio/editors/code-editor.js.map +1 -0
  189. package/dist/studio/editors/color-picker.cjs +300 -0
  190. package/dist/studio/editors/color-picker.cjs.map +1 -0
  191. package/dist/studio/editors/color-picker.d.ts +8 -0
  192. package/dist/studio/editors/color-picker.d.ts.map +1 -0
  193. package/dist/studio/editors/color-picker.js +276 -0
  194. package/dist/studio/editors/color-picker.js.map +1 -0
  195. package/dist/studio/editors/number-input.cjs +47 -0
  196. package/dist/studio/editors/number-input.cjs.map +1 -0
  197. package/dist/studio/editors/number-input.d.ts +18 -0
  198. package/dist/studio/editors/number-input.d.ts.map +1 -0
  199. package/dist/studio/editors/number-input.js +23 -0
  200. package/dist/studio/editors/number-input.js.map +1 -0
  201. package/dist/studio/editors/select-input.cjs +49 -0
  202. package/dist/studio/editors/select-input.cjs.map +1 -0
  203. package/dist/studio/editors/select-input.d.ts +11 -0
  204. package/dist/studio/editors/select-input.d.ts.map +1 -0
  205. package/dist/studio/editors/select-input.js +25 -0
  206. package/dist/studio/editors/select-input.js.map +1 -0
  207. package/dist/studio/editors/slider-input.cjs +52 -0
  208. package/dist/studio/editors/slider-input.cjs.map +1 -0
  209. package/dist/studio/editors/slider-input.d.ts +18 -0
  210. package/dist/studio/editors/slider-input.d.ts.map +1 -0
  211. package/dist/studio/editors/slider-input.js +28 -0
  212. package/dist/studio/editors/slider-input.js.map +1 -0
  213. package/dist/studio/editors/text-input.cjs +36 -0
  214. package/dist/studio/editors/text-input.cjs.map +1 -0
  215. package/dist/studio/editors/text-input.d.ts +7 -0
  216. package/dist/studio/editors/text-input.d.ts.map +1 -0
  217. package/dist/studio/editors/text-input.js +12 -0
  218. package/dist/studio/editors/text-input.js.map +1 -0
  219. package/dist/studio/editors/toggle-input.cjs +36 -0
  220. package/dist/studio/editors/toggle-input.cjs.map +1 -0
  221. package/dist/studio/editors/toggle-input.d.ts +7 -0
  222. package/dist/studio/editors/toggle-input.d.ts.map +1 -0
  223. package/dist/studio/editors/toggle-input.js +12 -0
  224. package/dist/studio/editors/toggle-input.js.map +1 -0
  225. package/dist/studio/favicon-sync.cjs +48 -0
  226. package/dist/studio/favicon-sync.cjs.map +1 -0
  227. package/dist/studio/favicon-sync.d.ts +8 -0
  228. package/dist/studio/favicon-sync.d.ts.map +1 -0
  229. package/dist/studio/favicon-sync.js +24 -0
  230. package/dist/studio/favicon-sync.js.map +1 -0
  231. package/dist/studio/index.cjs +50 -0
  232. package/dist/studio/index.cjs.map +1 -0
  233. package/dist/studio/index.d.ts +20 -0
  234. package/dist/studio/index.d.ts.map +1 -0
  235. package/dist/studio/index.js +22 -0
  236. package/dist/studio/index.js.map +1 -0
  237. package/dist/studio/lib/context.cjs +207 -0
  238. package/dist/studio/lib/context.cjs.map +1 -0
  239. package/dist/studio/lib/context.d.ts +54 -0
  240. package/dist/studio/lib/context.d.ts.map +1 -0
  241. package/dist/studio/lib/context.js +182 -0
  242. package/dist/studio/lib/context.js.map +1 -0
  243. package/dist/studio/lib/preview-shell.cjs +43 -0
  244. package/dist/studio/lib/preview-shell.cjs.map +1 -0
  245. package/dist/studio/lib/preview-shell.d.ts +13 -0
  246. package/dist/studio/lib/preview-shell.d.ts.map +1 -0
  247. package/dist/studio/lib/preview-shell.js +19 -0
  248. package/dist/studio/lib/preview-shell.js.map +1 -0
  249. package/dist/studio/lib/registry/app.cjs +131 -0
  250. package/dist/studio/lib/registry/app.cjs.map +1 -0
  251. package/dist/studio/lib/registry/app.d.ts +3 -0
  252. package/dist/studio/lib/registry/app.d.ts.map +1 -0
  253. package/dist/studio/lib/registry/app.js +107 -0
  254. package/dist/studio/lib/registry/app.js.map +1 -0
  255. package/dist/studio/lib/registry/buttons.cjs +427 -0
  256. package/dist/studio/lib/registry/buttons.cjs.map +1 -0
  257. package/dist/studio/lib/registry/buttons.d.ts +3 -0
  258. package/dist/studio/lib/registry/buttons.d.ts.map +1 -0
  259. package/dist/studio/lib/registry/buttons.js +403 -0
  260. package/dist/studio/lib/registry/buttons.js.map +1 -0
  261. package/dist/studio/lib/registry/composite.cjs +1732 -0
  262. package/dist/studio/lib/registry/composite.cjs.map +1 -0
  263. package/dist/studio/lib/registry/composite.d.ts +3 -0
  264. package/dist/studio/lib/registry/composite.d.ts.map +1 -0
  265. package/dist/studio/lib/registry/composite.js +1708 -0
  266. package/dist/studio/lib/registry/composite.js.map +1 -0
  267. package/dist/studio/lib/registry/configuration.cjs +148 -0
  268. package/dist/studio/lib/registry/configuration.cjs.map +1 -0
  269. package/dist/studio/lib/registry/configuration.d.ts +3 -0
  270. package/dist/studio/lib/registry/configuration.d.ts.map +1 -0
  271. package/dist/studio/lib/registry/configuration.js +124 -0
  272. package/dist/studio/lib/registry/configuration.js.map +1 -0
  273. package/dist/studio/lib/registry/diagram.cjs +498 -0
  274. package/dist/studio/lib/registry/diagram.cjs.map +1 -0
  275. package/dist/studio/lib/registry/diagram.d.ts +3 -0
  276. package/dist/studio/lib/registry/diagram.d.ts.map +1 -0
  277. package/dist/studio/lib/registry/diagram.js +474 -0
  278. package/dist/studio/lib/registry/diagram.js.map +1 -0
  279. package/dist/studio/lib/registry/display.cjs +522 -0
  280. package/dist/studio/lib/registry/display.cjs.map +1 -0
  281. package/dist/studio/lib/registry/display.d.ts +3 -0
  282. package/dist/studio/lib/registry/display.d.ts.map +1 -0
  283. package/dist/studio/lib/registry/display.js +498 -0
  284. package/dist/studio/lib/registry/display.js.map +1 -0
  285. package/dist/studio/lib/registry/feedback.cjs +331 -0
  286. package/dist/studio/lib/registry/feedback.cjs.map +1 -0
  287. package/dist/studio/lib/registry/feedback.d.ts +3 -0
  288. package/dist/studio/lib/registry/feedback.d.ts.map +1 -0
  289. package/dist/studio/lib/registry/feedback.js +307 -0
  290. package/dist/studio/lib/registry/feedback.js.map +1 -0
  291. package/dist/studio/lib/registry/forms.cjs +66 -0
  292. package/dist/studio/lib/registry/forms.cjs.map +1 -0
  293. package/dist/studio/lib/registry/forms.d.ts +3 -0
  294. package/dist/studio/lib/registry/forms.d.ts.map +1 -0
  295. package/dist/studio/lib/registry/forms.js +42 -0
  296. package/dist/studio/lib/registry/forms.js.map +1 -0
  297. package/dist/studio/lib/registry/icons.cjs +100 -0
  298. package/dist/studio/lib/registry/icons.cjs.map +1 -0
  299. package/dist/studio/lib/registry/icons.d.ts +3 -0
  300. package/dist/studio/lib/registry/icons.d.ts.map +1 -0
  301. package/dist/studio/lib/registry/icons.js +76 -0
  302. package/dist/studio/lib/registry/icons.js.map +1 -0
  303. package/dist/studio/lib/registry/index.cjs +96 -0
  304. package/dist/studio/lib/registry/index.cjs.map +1 -0
  305. package/dist/studio/lib/registry/index.d.ts +7 -0
  306. package/dist/studio/lib/registry/index.d.ts.map +1 -0
  307. package/dist/studio/lib/registry/index.js +68 -0
  308. package/dist/studio/lib/registry/index.js.map +1 -0
  309. package/dist/studio/lib/registry/inputs.cjs +1980 -0
  310. package/dist/studio/lib/registry/inputs.cjs.map +1 -0
  311. package/dist/studio/lib/registry/inputs.d.ts +3 -0
  312. package/dist/studio/lib/registry/inputs.d.ts.map +1 -0
  313. package/dist/studio/lib/registry/inputs.js +1956 -0
  314. package/dist/studio/lib/registry/inputs.js.map +1 -0
  315. package/dist/studio/lib/registry/layout.cjs +104 -0
  316. package/dist/studio/lib/registry/layout.cjs.map +1 -0
  317. package/dist/studio/lib/registry/layout.d.ts +3 -0
  318. package/dist/studio/lib/registry/layout.d.ts.map +1 -0
  319. package/dist/studio/lib/registry/layout.js +80 -0
  320. package/dist/studio/lib/registry/layout.js.map +1 -0
  321. package/dist/studio/lib/types.cjs +17 -0
  322. package/dist/studio/lib/types.cjs.map +1 -0
  323. package/dist/studio/lib/types.d.ts +155 -0
  324. package/dist/studio/lib/types.d.ts.map +1 -0
  325. package/dist/studio/lib/types.js +1 -0
  326. package/dist/studio/lib/types.js.map +1 -0
  327. package/dist/studio/lib/use-global-theme.cjs +42 -0
  328. package/dist/studio/lib/use-global-theme.cjs.map +1 -0
  329. package/dist/studio/lib/use-global-theme.d.ts +7 -0
  330. package/dist/studio/lib/use-global-theme.d.ts.map +1 -0
  331. package/dist/studio/lib/use-global-theme.js +18 -0
  332. package/dist/studio/lib/use-global-theme.js.map +1 -0
  333. package/dist/studio/mobile-gallery.cjs +133 -0
  334. package/dist/studio/mobile-gallery.cjs.map +1 -0
  335. package/dist/studio/mobile-gallery.d.ts +2 -0
  336. package/dist/studio/mobile-gallery.d.ts.map +1 -0
  337. package/dist/studio/mobile-gallery.js +109 -0
  338. package/dist/studio/mobile-gallery.js.map +1 -0
  339. package/dist/studio/persistence/client.cjs +42 -0
  340. package/dist/studio/persistence/client.cjs.map +1 -0
  341. package/dist/studio/persistence/client.d.ts +12 -0
  342. package/dist/studio/persistence/client.d.ts.map +1 -0
  343. package/dist/studio/persistence/client.js +18 -0
  344. package/dist/studio/persistence/client.js.map +1 -0
  345. package/dist/studio/persistence/generate-css.cjs +1051 -0
  346. package/dist/studio/persistence/generate-css.cjs.map +1 -0
  347. package/dist/studio/persistence/generate-css.d.ts +35 -0
  348. package/dist/studio/persistence/generate-css.d.ts.map +1 -0
  349. package/dist/studio/persistence/generate-css.js +1018 -0
  350. package/dist/studio/persistence/generate-css.js.map +1 -0
  351. package/dist/studio/persistence/http.cjs +62 -0
  352. package/dist/studio/persistence/http.cjs.map +1 -0
  353. package/dist/studio/persistence/http.d.ts +10 -0
  354. package/dist/studio/persistence/http.d.ts.map +1 -0
  355. package/dist/studio/persistence/http.js +38 -0
  356. package/dist/studio/persistence/http.js.map +1 -0
  357. package/dist/studio/persistence/index.cjs +38 -0
  358. package/dist/studio/persistence/index.cjs.map +1 -0
  359. package/dist/studio/persistence/index.d.ts +6 -0
  360. package/dist/studio/persistence/index.d.ts.map +1 -0
  361. package/dist/studio/persistence/index.js +11 -0
  362. package/dist/studio/persistence/index.js.map +1 -0
  363. package/dist/studio/persistence/read-only.cjs +39 -0
  364. package/dist/studio/persistence/read-only.cjs.map +1 -0
  365. package/dist/studio/persistence/read-only.d.ts +11 -0
  366. package/dist/studio/persistence/read-only.d.ts.map +1 -0
  367. package/dist/studio/persistence/read-only.js +15 -0
  368. package/dist/studio/persistence/read-only.js.map +1 -0
  369. package/dist/studio/persistence/types.cjs +17 -0
  370. package/dist/studio/persistence/types.cjs.map +1 -0
  371. package/dist/studio/persistence/types.d.ts +38 -0
  372. package/dist/studio/persistence/types.d.ts.map +1 -0
  373. package/dist/studio/persistence/types.js +1 -0
  374. package/dist/studio/persistence/types.js.map +1 -0
  375. package/dist/studio/shell/canvas.cjs +298 -0
  376. package/dist/studio/shell/canvas.cjs.map +1 -0
  377. package/dist/studio/shell/canvas.d.ts +12 -0
  378. package/dist/studio/shell/canvas.d.ts.map +1 -0
  379. package/dist/studio/shell/canvas.js +375 -0
  380. package/dist/studio/shell/canvas.js.map +1 -0
  381. package/dist/studio/shell/preview-modal.cjs +786 -0
  382. package/dist/studio/shell/preview-modal.cjs.map +1 -0
  383. package/dist/studio/shell/preview-modal.d.ts +4 -0
  384. package/dist/studio/shell/preview-modal.d.ts.map +1 -0
  385. package/dist/studio/shell/preview-modal.js +762 -0
  386. package/dist/studio/shell/preview-modal.js.map +1 -0
  387. package/dist/studio/shell/properties-panel.cjs +873 -0
  388. package/dist/studio/shell/properties-panel.cjs.map +1 -0
  389. package/dist/studio/shell/properties-panel.d.ts +12 -0
  390. package/dist/studio/shell/properties-panel.d.ts.map +1 -0
  391. package/dist/studio/shell/properties-panel.js +849 -0
  392. package/dist/studio/shell/properties-panel.js.map +1 -0
  393. package/dist/studio/shell/sidebar.cjs +246 -0
  394. package/dist/studio/shell/sidebar.cjs.map +1 -0
  395. package/dist/studio/shell/sidebar.d.ts +4 -0
  396. package/dist/studio/shell/sidebar.d.ts.map +1 -0
  397. package/dist/studio/shell/sidebar.js +222 -0
  398. package/dist/studio/shell/sidebar.js.map +1 -0
  399. package/dist/studio/shell/wcag-panel.cjs +274 -0
  400. package/dist/studio/shell/wcag-panel.cjs.map +1 -0
  401. package/dist/studio/shell/wcag-panel.d.ts +5 -0
  402. package/dist/studio/shell/wcag-panel.d.ts.map +1 -0
  403. package/dist/studio/shell/wcag-panel.js +257 -0
  404. package/dist/studio/shell/wcag-panel.js.map +1 -0
  405. package/dist/studio/studio.css +2 -0
  406. package/dist/studio/theme-sync.cjs +37 -0
  407. package/dist/studio/theme-sync.cjs.map +1 -0
  408. package/dist/studio/theme-sync.d.ts +8 -0
  409. package/dist/studio/theme-sync.d.ts.map +1 -0
  410. package/dist/studio/theme-sync.js +13 -0
  411. package/dist/studio/theme-sync.js.map +1 -0
  412. package/dist/studio/uxm-app.cjs +180 -0
  413. package/dist/studio/uxm-app.cjs.map +1 -0
  414. package/dist/studio/uxm-app.d.ts +26 -0
  415. package/dist/studio/uxm-app.d.ts.map +1 -0
  416. package/dist/studio/uxm-app.js +156 -0
  417. package/dist/studio/uxm-app.js.map +1 -0
  418. package/dist/tokens/index.cjs +84 -0
  419. package/dist/tokens/index.cjs.map +1 -0
  420. package/dist/tokens/index.css +229 -0
  421. package/dist/tokens/index.d.ts +25 -0
  422. package/dist/tokens/index.d.ts.map +1 -0
  423. package/dist/tokens/index.js +57 -0
  424. package/dist/tokens/index.js.map +1 -0
  425. package/dist/ui/app-sidebar/app-sidebar-preview.cjs +160 -0
  426. package/dist/ui/app-sidebar/app-sidebar-preview.cjs.map +1 -0
  427. package/dist/ui/app-sidebar/app-sidebar-preview.d.ts +3 -0
  428. package/dist/ui/app-sidebar/app-sidebar-preview.d.ts.map +1 -0
  429. package/dist/ui/app-sidebar/app-sidebar-preview.js +136 -0
  430. package/dist/ui/app-sidebar/app-sidebar-preview.js.map +1 -0
  431. package/dist/ui/app-sidebar/app-sidebar.cjs +154 -0
  432. package/dist/ui/app-sidebar/app-sidebar.cjs.map +1 -0
  433. package/dist/ui/app-sidebar/app-sidebar.css +189 -0
  434. package/dist/ui/app-sidebar/app-sidebar.d.ts +127 -0
  435. package/dist/ui/app-sidebar/app-sidebar.d.ts.map +1 -0
  436. package/dist/ui/app-sidebar/app-sidebar.js +129 -0
  437. package/dist/ui/app-sidebar/app-sidebar.js.map +1 -0
  438. package/dist/ui/app-sidebar/index.cjs +23 -0
  439. package/dist/ui/app-sidebar/index.cjs.map +1 -0
  440. package/dist/ui/app-sidebar/index.d.ts +2 -0
  441. package/dist/ui/app-sidebar/index.d.ts.map +1 -0
  442. package/dist/ui/app-sidebar/index.js +2 -0
  443. package/dist/ui/app-sidebar/index.js.map +1 -0
  444. package/dist/ui/app-top-bar/app-top-bar-preview.cjs +64 -0
  445. package/dist/ui/app-top-bar/app-top-bar-preview.cjs.map +1 -0
  446. package/dist/ui/app-top-bar/app-top-bar-preview.d.ts +3 -0
  447. package/dist/ui/app-top-bar/app-top-bar-preview.d.ts.map +1 -0
  448. package/dist/ui/app-top-bar/app-top-bar-preview.js +40 -0
  449. package/dist/ui/app-top-bar/app-top-bar-preview.js.map +1 -0
  450. package/dist/ui/app-top-bar/app-top-bar.cjs +56 -0
  451. package/dist/ui/app-top-bar/app-top-bar.cjs.map +1 -0
  452. package/dist/ui/app-top-bar/app-top-bar.css +57 -0
  453. package/dist/ui/app-top-bar/app-top-bar.d.ts +13 -0
  454. package/dist/ui/app-top-bar/app-top-bar.d.ts.map +1 -0
  455. package/dist/ui/app-top-bar/app-top-bar.js +32 -0
  456. package/dist/ui/app-top-bar/app-top-bar.js.map +1 -0
  457. package/dist/ui/app-top-bar/index.cjs +23 -0
  458. package/dist/ui/app-top-bar/index.cjs.map +1 -0
  459. package/dist/ui/app-top-bar/index.d.ts +2 -0
  460. package/dist/ui/app-top-bar/index.d.ts.map +1 -0
  461. package/dist/ui/app-top-bar/index.js +2 -0
  462. package/dist/ui/app-top-bar/index.js.map +1 -0
  463. package/dist/ui/avatar/avatar-preview.cjs +81 -0
  464. package/dist/ui/avatar/avatar-preview.cjs.map +1 -0
  465. package/dist/ui/avatar/avatar-preview.d.ts +3 -0
  466. package/dist/ui/avatar/avatar-preview.d.ts.map +1 -0
  467. package/dist/ui/avatar/avatar-preview.js +57 -0
  468. package/dist/ui/avatar/avatar-preview.js.map +1 -0
  469. package/dist/ui/avatar/avatar.cjs +64 -0
  470. package/dist/ui/avatar/avatar.cjs.map +1 -0
  471. package/dist/ui/avatar/avatar.css +64 -0
  472. package/dist/ui/avatar/avatar.d.ts +25 -0
  473. package/dist/ui/avatar/avatar.d.ts.map +1 -0
  474. package/dist/ui/avatar/avatar.js +40 -0
  475. package/dist/ui/avatar/avatar.js.map +1 -0
  476. package/dist/ui/avatar/index.cjs +23 -0
  477. package/dist/ui/avatar/index.cjs.map +1 -0
  478. package/dist/ui/avatar/index.d.ts +2 -0
  479. package/dist/ui/avatar/index.d.ts.map +1 -0
  480. package/dist/ui/avatar/index.js +2 -0
  481. package/dist/ui/avatar/index.js.map +1 -0
  482. package/dist/ui/back-link/back-link-preview.cjs +70 -0
  483. package/dist/ui/back-link/back-link-preview.cjs.map +1 -0
  484. package/dist/ui/back-link/back-link-preview.d.ts +3 -0
  485. package/dist/ui/back-link/back-link-preview.d.ts.map +1 -0
  486. package/dist/ui/back-link/back-link-preview.js +46 -0
  487. package/dist/ui/back-link/back-link-preview.js.map +1 -0
  488. package/dist/ui/back-link/back-link.cjs +45 -0
  489. package/dist/ui/back-link/back-link.cjs.map +1 -0
  490. package/dist/ui/back-link/back-link.css +27 -0
  491. package/dist/ui/back-link/back-link.d.ts +14 -0
  492. package/dist/ui/back-link/back-link.d.ts.map +1 -0
  493. package/dist/ui/back-link/back-link.js +21 -0
  494. package/dist/ui/back-link/back-link.js.map +1 -0
  495. package/dist/ui/back-link/index.cjs +23 -0
  496. package/dist/ui/back-link/index.cjs.map +1 -0
  497. package/dist/ui/back-link/index.d.ts +2 -0
  498. package/dist/ui/back-link/index.d.ts.map +1 -0
  499. package/dist/ui/back-link/index.js +2 -0
  500. package/dist/ui/back-link/index.js.map +1 -0
  501. package/dist/ui/badge/badge-preview.cjs +57 -0
  502. package/dist/ui/badge/badge-preview.cjs.map +1 -0
  503. package/dist/ui/badge/badge-preview.d.ts +3 -0
  504. package/dist/ui/badge/badge-preview.d.ts.map +1 -0
  505. package/dist/ui/badge/badge-preview.js +33 -0
  506. package/dist/ui/badge/badge-preview.js.map +1 -0
  507. package/dist/ui/badge/badge.cjs +63 -0
  508. package/dist/ui/badge/badge.cjs.map +1 -0
  509. package/dist/ui/badge/badge.css +91 -0
  510. package/dist/ui/badge/badge.d.ts +11 -0
  511. package/dist/ui/badge/badge.d.ts.map +1 -0
  512. package/dist/ui/badge/badge.js +39 -0
  513. package/dist/ui/badge/badge.js.map +1 -0
  514. package/dist/ui/badge/index.cjs +23 -0
  515. package/dist/ui/badge/index.cjs.map +1 -0
  516. package/dist/ui/badge/index.d.ts +2 -0
  517. package/dist/ui/badge/index.d.ts.map +1 -0
  518. package/dist/ui/badge/index.js +2 -0
  519. package/dist/ui/badge/index.js.map +1 -0
  520. package/dist/ui/banner/banner-preview.cjs +102 -0
  521. package/dist/ui/banner/banner-preview.cjs.map +1 -0
  522. package/dist/ui/banner/banner-preview.d.ts +5 -0
  523. package/dist/ui/banner/banner-preview.d.ts.map +1 -0
  524. package/dist/ui/banner/banner-preview.js +78 -0
  525. package/dist/ui/banner/banner-preview.js.map +1 -0
  526. package/dist/ui/banner/banner.cjs +73 -0
  527. package/dist/ui/banner/banner.cjs.map +1 -0
  528. package/dist/ui/banner/banner.css +87 -0
  529. package/dist/ui/banner/banner.d.ts +31 -0
  530. package/dist/ui/banner/banner.d.ts.map +1 -0
  531. package/dist/ui/banner/banner.js +49 -0
  532. package/dist/ui/banner/banner.js.map +1 -0
  533. package/dist/ui/banner/index.cjs +23 -0
  534. package/dist/ui/banner/index.cjs.map +1 -0
  535. package/dist/ui/banner/index.d.ts +2 -0
  536. package/dist/ui/banner/index.d.ts.map +1 -0
  537. package/dist/ui/banner/index.js +2 -0
  538. package/dist/ui/banner/index.js.map +1 -0
  539. package/dist/ui/breadcrumb/breadcrumb-preview.cjs +152 -0
  540. package/dist/ui/breadcrumb/breadcrumb-preview.cjs.map +1 -0
  541. package/dist/ui/breadcrumb/breadcrumb-preview.d.ts +3 -0
  542. package/dist/ui/breadcrumb/breadcrumb-preview.d.ts.map +1 -0
  543. package/dist/ui/breadcrumb/breadcrumb-preview.js +128 -0
  544. package/dist/ui/breadcrumb/breadcrumb-preview.js.map +1 -0
  545. package/dist/ui/breadcrumb/breadcrumb.cjs +75 -0
  546. package/dist/ui/breadcrumb/breadcrumb.cjs.map +1 -0
  547. package/dist/ui/breadcrumb/breadcrumb.css +62 -0
  548. package/dist/ui/breadcrumb/breadcrumb.d.ts +16 -0
  549. package/dist/ui/breadcrumb/breadcrumb.d.ts.map +1 -0
  550. package/dist/ui/breadcrumb/breadcrumb.js +51 -0
  551. package/dist/ui/breadcrumb/breadcrumb.js.map +1 -0
  552. package/dist/ui/breadcrumb/index.cjs +23 -0
  553. package/dist/ui/breadcrumb/index.cjs.map +1 -0
  554. package/dist/ui/breadcrumb/index.d.ts +2 -0
  555. package/dist/ui/breadcrumb/index.d.ts.map +1 -0
  556. package/dist/ui/breadcrumb/index.js +2 -0
  557. package/dist/ui/breadcrumb/index.js.map +1 -0
  558. package/dist/ui/bulk-action-bar/bulk-action-bar-preview.cjs +85 -0
  559. package/dist/ui/bulk-action-bar/bulk-action-bar-preview.cjs.map +1 -0
  560. package/dist/ui/bulk-action-bar/bulk-action-bar-preview.d.ts +5 -0
  561. package/dist/ui/bulk-action-bar/bulk-action-bar-preview.d.ts.map +1 -0
  562. package/dist/ui/bulk-action-bar/bulk-action-bar-preview.js +61 -0
  563. package/dist/ui/bulk-action-bar/bulk-action-bar-preview.js.map +1 -0
  564. package/dist/ui/bulk-action-bar/bulk-action-bar.cjs +79 -0
  565. package/dist/ui/bulk-action-bar/bulk-action-bar.cjs.map +1 -0
  566. package/dist/ui/bulk-action-bar/bulk-action-bar.css +88 -0
  567. package/dist/ui/bulk-action-bar/bulk-action-bar.d.ts +51 -0
  568. package/dist/ui/bulk-action-bar/bulk-action-bar.d.ts.map +1 -0
  569. package/dist/ui/bulk-action-bar/bulk-action-bar.js +55 -0
  570. package/dist/ui/bulk-action-bar/bulk-action-bar.js.map +1 -0
  571. package/dist/ui/bulk-action-bar/index.cjs +23 -0
  572. package/dist/ui/bulk-action-bar/index.cjs.map +1 -0
  573. package/dist/ui/bulk-action-bar/index.d.ts +2 -0
  574. package/dist/ui/bulk-action-bar/index.d.ts.map +1 -0
  575. package/dist/ui/bulk-action-bar/index.js +2 -0
  576. package/dist/ui/bulk-action-bar/index.js.map +1 -0
  577. package/dist/ui/button/button-preview.cjs +190 -0
  578. package/dist/ui/button/button-preview.cjs.map +1 -0
  579. package/dist/ui/button/button-preview.d.ts +3 -0
  580. package/dist/ui/button/button-preview.d.ts.map +1 -0
  581. package/dist/ui/button/button-preview.js +166 -0
  582. package/dist/ui/button/button-preview.js.map +1 -0
  583. package/dist/ui/button/button.cjs +53 -0
  584. package/dist/ui/button/button.cjs.map +1 -0
  585. package/dist/ui/button/button.css +189 -0
  586. package/dist/ui/button/button.d.ts +9 -0
  587. package/dist/ui/button/button.d.ts.map +1 -0
  588. package/dist/ui/button/button.js +25 -0
  589. package/dist/ui/button/button.js.map +1 -0
  590. package/dist/ui/button/index.cjs +23 -0
  591. package/dist/ui/button/index.cjs.map +1 -0
  592. package/dist/ui/button/index.d.ts +2 -0
  593. package/dist/ui/button/index.d.ts.map +1 -0
  594. package/dist/ui/button/index.js +2 -0
  595. package/dist/ui/button/index.js.map +1 -0
  596. package/dist/ui/button-group/button-group-preview.cjs +110 -0
  597. package/dist/ui/button-group/button-group-preview.cjs.map +1 -0
  598. package/dist/ui/button-group/button-group-preview.d.ts +3 -0
  599. package/dist/ui/button-group/button-group-preview.d.ts.map +1 -0
  600. package/dist/ui/button-group/button-group-preview.js +86 -0
  601. package/dist/ui/button-group/button-group-preview.js.map +1 -0
  602. package/dist/ui/button-group/button-group.cjs +66 -0
  603. package/dist/ui/button-group/button-group.cjs.map +1 -0
  604. package/dist/ui/button-group/button-group.css +45 -0
  605. package/dist/ui/button-group/button-group.d.ts +16 -0
  606. package/dist/ui/button-group/button-group.d.ts.map +1 -0
  607. package/dist/ui/button-group/button-group.js +42 -0
  608. package/dist/ui/button-group/button-group.js.map +1 -0
  609. package/dist/ui/button-group/index.cjs +23 -0
  610. package/dist/ui/button-group/index.cjs.map +1 -0
  611. package/dist/ui/button-group/index.d.ts +2 -0
  612. package/dist/ui/button-group/index.d.ts.map +1 -0
  613. package/dist/ui/button-group/index.js +2 -0
  614. package/dist/ui/button-group/index.js.map +1 -0
  615. package/dist/ui/button-icon/button-icon.cjs +33 -0
  616. package/dist/ui/button-icon/button-icon.cjs.map +1 -0
  617. package/dist/ui/button-icon/button-icon.css +37 -0
  618. package/dist/ui/button-icon/button-icon.d.ts +9 -0
  619. package/dist/ui/button-icon/button-icon.d.ts.map +1 -0
  620. package/dist/ui/button-icon/button-icon.js +9 -0
  621. package/dist/ui/button-icon/button-icon.js.map +1 -0
  622. package/dist/ui/button-icon/index.cjs +23 -0
  623. package/dist/ui/button-icon/index.cjs.map +1 -0
  624. package/dist/ui/button-icon/index.d.ts +2 -0
  625. package/dist/ui/button-icon/index.d.ts.map +1 -0
  626. package/dist/ui/button-icon/index.js +2 -0
  627. package/dist/ui/button-icon/index.js.map +1 -0
  628. package/dist/ui/button-with-icon/button-with-icon-preview.cjs +84 -0
  629. package/dist/ui/button-with-icon/button-with-icon-preview.cjs.map +1 -0
  630. package/dist/ui/button-with-icon/button-with-icon-preview.d.ts +3 -0
  631. package/dist/ui/button-with-icon/button-with-icon-preview.d.ts.map +1 -0
  632. package/dist/ui/button-with-icon/button-with-icon-preview.js +60 -0
  633. package/dist/ui/button-with-icon/button-with-icon-preview.js.map +1 -0
  634. package/dist/ui/button-with-icon/button-with-icon.cjs +42 -0
  635. package/dist/ui/button-with-icon/button-with-icon.cjs.map +1 -0
  636. package/dist/ui/button-with-icon/button-with-icon.css +41 -0
  637. package/dist/ui/button-with-icon/button-with-icon.d.ts +8 -0
  638. package/dist/ui/button-with-icon/button-with-icon.d.ts.map +1 -0
  639. package/dist/ui/button-with-icon/button-with-icon.js +18 -0
  640. package/dist/ui/button-with-icon/button-with-icon.js.map +1 -0
  641. package/dist/ui/button-with-icon/index.cjs +23 -0
  642. package/dist/ui/button-with-icon/index.cjs.map +1 -0
  643. package/dist/ui/button-with-icon/index.d.ts +2 -0
  644. package/dist/ui/button-with-icon/index.d.ts.map +1 -0
  645. package/dist/ui/button-with-icon/index.js +2 -0
  646. package/dist/ui/button-with-icon/index.js.map +1 -0
  647. package/dist/ui/calendar/calendar-preview.cjs +181 -0
  648. package/dist/ui/calendar/calendar-preview.cjs.map +1 -0
  649. package/dist/ui/calendar/calendar-preview.d.ts +3 -0
  650. package/dist/ui/calendar/calendar-preview.d.ts.map +1 -0
  651. package/dist/ui/calendar/calendar-preview.js +157 -0
  652. package/dist/ui/calendar/calendar-preview.js.map +1 -0
  653. package/dist/ui/calendar/calendar.cjs +416 -0
  654. package/dist/ui/calendar/calendar.cjs.map +1 -0
  655. package/dist/ui/calendar/calendar.css +212 -0
  656. package/dist/ui/calendar/calendar.d.ts +34 -0
  657. package/dist/ui/calendar/calendar.d.ts.map +1 -0
  658. package/dist/ui/calendar/calendar.js +392 -0
  659. package/dist/ui/calendar/calendar.js.map +1 -0
  660. package/dist/ui/calendar/index.cjs +23 -0
  661. package/dist/ui/calendar/index.cjs.map +1 -0
  662. package/dist/ui/calendar/index.d.ts +2 -0
  663. package/dist/ui/calendar/index.d.ts.map +1 -0
  664. package/dist/ui/calendar/index.js +2 -0
  665. package/dist/ui/calendar/index.js.map +1 -0
  666. package/dist/ui/card/card-preview.cjs +98 -0
  667. package/dist/ui/card/card-preview.cjs.map +1 -0
  668. package/dist/ui/card/card-preview.d.ts +3 -0
  669. package/dist/ui/card/card-preview.d.ts.map +1 -0
  670. package/dist/ui/card/card-preview.js +74 -0
  671. package/dist/ui/card/card-preview.js.map +1 -0
  672. package/dist/ui/card/card.cjs +63 -0
  673. package/dist/ui/card/card.cjs.map +1 -0
  674. package/dist/ui/card/card.css +54 -0
  675. package/dist/ui/card/card.d.ts +32 -0
  676. package/dist/ui/card/card.d.ts.map +1 -0
  677. package/dist/ui/card/card.js +39 -0
  678. package/dist/ui/card/card.js.map +1 -0
  679. package/dist/ui/card/index.cjs +23 -0
  680. package/dist/ui/card/index.cjs.map +1 -0
  681. package/dist/ui/card/index.d.ts +2 -0
  682. package/dist/ui/card/index.d.ts.map +1 -0
  683. package/dist/ui/card/index.js +2 -0
  684. package/dist/ui/card/index.js.map +1 -0
  685. package/dist/ui/checkbox/checkbox-preview.cjs +144 -0
  686. package/dist/ui/checkbox/checkbox-preview.cjs.map +1 -0
  687. package/dist/ui/checkbox/checkbox-preview.d.ts +3 -0
  688. package/dist/ui/checkbox/checkbox-preview.d.ts.map +1 -0
  689. package/dist/ui/checkbox/checkbox-preview.js +120 -0
  690. package/dist/ui/checkbox/checkbox-preview.js.map +1 -0
  691. package/dist/ui/checkbox/checkbox.cjs +82 -0
  692. package/dist/ui/checkbox/checkbox.cjs.map +1 -0
  693. package/dist/ui/checkbox/checkbox.css +108 -0
  694. package/dist/ui/checkbox/checkbox.d.ts +26 -0
  695. package/dist/ui/checkbox/checkbox.d.ts.map +1 -0
  696. package/dist/ui/checkbox/checkbox.js +58 -0
  697. package/dist/ui/checkbox/checkbox.js.map +1 -0
  698. package/dist/ui/checkbox/index.cjs +23 -0
  699. package/dist/ui/checkbox/index.cjs.map +1 -0
  700. package/dist/ui/checkbox/index.d.ts +2 -0
  701. package/dist/ui/checkbox/index.d.ts.map +1 -0
  702. package/dist/ui/checkbox/index.js +2 -0
  703. package/dist/ui/checkbox/index.js.map +1 -0
  704. package/dist/ui/chip/chip-preview.cjs +117 -0
  705. package/dist/ui/chip/chip-preview.cjs.map +1 -0
  706. package/dist/ui/chip/chip-preview.d.ts +12 -0
  707. package/dist/ui/chip/chip-preview.d.ts.map +1 -0
  708. package/dist/ui/chip/chip-preview.js +93 -0
  709. package/dist/ui/chip/chip-preview.js.map +1 -0
  710. package/dist/ui/chip/chip.cjs +101 -0
  711. package/dist/ui/chip/chip.cjs.map +1 -0
  712. package/dist/ui/chip/chip.css +175 -0
  713. package/dist/ui/chip/chip.d.ts +40 -0
  714. package/dist/ui/chip/chip.d.ts.map +1 -0
  715. package/dist/ui/chip/chip.js +77 -0
  716. package/dist/ui/chip/chip.js.map +1 -0
  717. package/dist/ui/chip/index.cjs +23 -0
  718. package/dist/ui/chip/index.cjs.map +1 -0
  719. package/dist/ui/chip/index.d.ts +2 -0
  720. package/dist/ui/chip/index.d.ts.map +1 -0
  721. package/dist/ui/chip/index.js +2 -0
  722. package/dist/ui/chip/index.js.map +1 -0
  723. package/dist/ui/cluster/cluster-preview.cjs +53 -0
  724. package/dist/ui/cluster/cluster-preview.cjs.map +1 -0
  725. package/dist/ui/cluster/cluster-preview.d.ts +3 -0
  726. package/dist/ui/cluster/cluster-preview.d.ts.map +1 -0
  727. package/dist/ui/cluster/cluster-preview.js +29 -0
  728. package/dist/ui/cluster/cluster-preview.js.map +1 -0
  729. package/dist/ui/cluster/cluster.cjs +58 -0
  730. package/dist/ui/cluster/cluster.cjs.map +1 -0
  731. package/dist/ui/cluster/cluster.css +33 -0
  732. package/dist/ui/cluster/cluster.d.ts +32 -0
  733. package/dist/ui/cluster/cluster.d.ts.map +1 -0
  734. package/dist/ui/cluster/cluster.js +34 -0
  735. package/dist/ui/cluster/cluster.js.map +1 -0
  736. package/dist/ui/cluster/index.cjs +23 -0
  737. package/dist/ui/cluster/index.cjs.map +1 -0
  738. package/dist/ui/cluster/index.d.ts +2 -0
  739. package/dist/ui/cluster/index.d.ts.map +1 -0
  740. package/dist/ui/cluster/index.js +2 -0
  741. package/dist/ui/cluster/index.js.map +1 -0
  742. package/dist/ui/code-editor/code-editor-preview.cjs +100 -0
  743. package/dist/ui/code-editor/code-editor-preview.cjs.map +1 -0
  744. package/dist/ui/code-editor/code-editor-preview.d.ts +3 -0
  745. package/dist/ui/code-editor/code-editor-preview.d.ts.map +1 -0
  746. package/dist/ui/code-editor/code-editor-preview.js +76 -0
  747. package/dist/ui/code-editor/code-editor-preview.js.map +1 -0
  748. package/dist/ui/code-editor/code-editor.cjs +309 -0
  749. package/dist/ui/code-editor/code-editor.cjs.map +1 -0
  750. package/dist/ui/code-editor/code-editor.css +210 -0
  751. package/dist/ui/code-editor/code-editor.d.ts +78 -0
  752. package/dist/ui/code-editor/code-editor.d.ts.map +1 -0
  753. package/dist/ui/code-editor/code-editor.js +291 -0
  754. package/dist/ui/code-editor/code-editor.js.map +1 -0
  755. package/dist/ui/code-editor/index.cjs +23 -0
  756. package/dist/ui/code-editor/index.cjs.map +1 -0
  757. package/dist/ui/code-editor/index.d.ts +2 -0
  758. package/dist/ui/code-editor/index.d.ts.map +1 -0
  759. package/dist/ui/code-editor/index.js +2 -0
  760. package/dist/ui/code-editor/index.js.map +1 -0
  761. package/dist/ui/color-input/color-input-preview.cjs +98 -0
  762. package/dist/ui/color-input/color-input-preview.cjs.map +1 -0
  763. package/dist/ui/color-input/color-input-preview.d.ts +3 -0
  764. package/dist/ui/color-input/color-input-preview.d.ts.map +1 -0
  765. package/dist/ui/color-input/color-input-preview.js +74 -0
  766. package/dist/ui/color-input/color-input-preview.js.map +1 -0
  767. package/dist/ui/color-input/color-input.cjs +536 -0
  768. package/dist/ui/color-input/color-input.cjs.map +1 -0
  769. package/dist/ui/color-input/color-input.css +326 -0
  770. package/dist/ui/color-input/color-input.d.ts +93 -0
  771. package/dist/ui/color-input/color-input.d.ts.map +1 -0
  772. package/dist/ui/color-input/color-input.js +520 -0
  773. package/dist/ui/color-input/color-input.js.map +1 -0
  774. package/dist/ui/color-input/color-model.cjs +174 -0
  775. package/dist/ui/color-input/color-model.cjs.map +1 -0
  776. package/dist/ui/color-input/color-model.d.ts +63 -0
  777. package/dist/ui/color-input/color-model.d.ts.map +1 -0
  778. package/dist/ui/color-input/color-model.js +145 -0
  779. package/dist/ui/color-input/color-model.js.map +1 -0
  780. package/dist/ui/color-input/index.cjs +23 -0
  781. package/dist/ui/color-input/index.cjs.map +1 -0
  782. package/dist/ui/color-input/index.d.ts +2 -0
  783. package/dist/ui/color-input/index.d.ts.map +1 -0
  784. package/dist/ui/color-input/index.js +2 -0
  785. package/dist/ui/color-input/index.js.map +1 -0
  786. package/dist/ui/component-row/component-row-preview.cjs +92 -0
  787. package/dist/ui/component-row/component-row-preview.cjs.map +1 -0
  788. package/dist/ui/component-row/component-row-preview.d.ts +3 -0
  789. package/dist/ui/component-row/component-row-preview.d.ts.map +1 -0
  790. package/dist/ui/component-row/component-row-preview.js +68 -0
  791. package/dist/ui/component-row/component-row-preview.js.map +1 -0
  792. package/dist/ui/component-row/component-row.cjs +66 -0
  793. package/dist/ui/component-row/component-row.cjs.map +1 -0
  794. package/dist/ui/component-row/component-row.css +91 -0
  795. package/dist/ui/component-row/component-row.d.ts +37 -0
  796. package/dist/ui/component-row/component-row.d.ts.map +1 -0
  797. package/dist/ui/component-row/component-row.js +42 -0
  798. package/dist/ui/component-row/component-row.js.map +1 -0
  799. package/dist/ui/component-row/index.cjs +29 -0
  800. package/dist/ui/component-row/index.cjs.map +1 -0
  801. package/dist/ui/component-row/index.d.ts +3 -0
  802. package/dist/ui/component-row/index.d.ts.map +1 -0
  803. package/dist/ui/component-row/index.js +5 -0
  804. package/dist/ui/component-row/index.js.map +1 -0
  805. package/dist/ui/config-component-row/config-component-row-preview.cjs +62 -0
  806. package/dist/ui/config-component-row/config-component-row-preview.cjs.map +1 -0
  807. package/dist/ui/config-component-row/config-component-row-preview.d.ts +3 -0
  808. package/dist/ui/config-component-row/config-component-row-preview.d.ts.map +1 -0
  809. package/dist/ui/config-component-row/config-component-row-preview.js +38 -0
  810. package/dist/ui/config-component-row/config-component-row-preview.js.map +1 -0
  811. package/dist/ui/config-component-row/config-component-row.cjs +69 -0
  812. package/dist/ui/config-component-row/config-component-row.cjs.map +1 -0
  813. package/dist/ui/config-component-row/config-component-row.css +97 -0
  814. package/dist/ui/config-component-row/config-component-row.d.ts +36 -0
  815. package/dist/ui/config-component-row/config-component-row.d.ts.map +1 -0
  816. package/dist/ui/config-component-row/config-component-row.js +45 -0
  817. package/dist/ui/config-component-row/config-component-row.js.map +1 -0
  818. package/dist/ui/config-component-row/index.cjs +23 -0
  819. package/dist/ui/config-component-row/index.cjs.map +1 -0
  820. package/dist/ui/config-component-row/index.d.ts +2 -0
  821. package/dist/ui/config-component-row/index.d.ts.map +1 -0
  822. package/dist/ui/config-component-row/index.js +2 -0
  823. package/dist/ui/config-component-row/index.js.map +1 -0
  824. package/dist/ui/config-segment-item/config-segment-item-preview.cjs +54 -0
  825. package/dist/ui/config-segment-item/config-segment-item-preview.cjs.map +1 -0
  826. package/dist/ui/config-segment-item/config-segment-item-preview.d.ts +3 -0
  827. package/dist/ui/config-segment-item/config-segment-item-preview.d.ts.map +1 -0
  828. package/dist/ui/config-segment-item/config-segment-item-preview.js +30 -0
  829. package/dist/ui/config-segment-item/config-segment-item-preview.js.map +1 -0
  830. package/dist/ui/config-segment-item/config-segment-item.cjs +55 -0
  831. package/dist/ui/config-segment-item/config-segment-item.cjs.map +1 -0
  832. package/dist/ui/config-segment-item/config-segment-item.css +37 -0
  833. package/dist/ui/config-segment-item/config-segment-item.d.ts +21 -0
  834. package/dist/ui/config-segment-item/config-segment-item.d.ts.map +1 -0
  835. package/dist/ui/config-segment-item/config-segment-item.js +31 -0
  836. package/dist/ui/config-segment-item/config-segment-item.js.map +1 -0
  837. package/dist/ui/config-segment-item/index.cjs +23 -0
  838. package/dist/ui/config-segment-item/index.cjs.map +1 -0
  839. package/dist/ui/config-segment-item/index.d.ts +2 -0
  840. package/dist/ui/config-segment-item/index.d.ts.map +1 -0
  841. package/dist/ui/config-segment-item/index.js +2 -0
  842. package/dist/ui/config-segment-item/index.js.map +1 -0
  843. package/dist/ui/currency-input/currency-input-preview.cjs +99 -0
  844. package/dist/ui/currency-input/currency-input-preview.cjs.map +1 -0
  845. package/dist/ui/currency-input/currency-input-preview.d.ts +3 -0
  846. package/dist/ui/currency-input/currency-input-preview.d.ts.map +1 -0
  847. package/dist/ui/currency-input/currency-input-preview.js +75 -0
  848. package/dist/ui/currency-input/currency-input-preview.js.map +1 -0
  849. package/dist/ui/currency-input/currency-input.cjs +265 -0
  850. package/dist/ui/currency-input/currency-input.cjs.map +1 -0
  851. package/dist/ui/currency-input/currency-input.css +189 -0
  852. package/dist/ui/currency-input/currency-input.d.ts +84 -0
  853. package/dist/ui/currency-input/currency-input.d.ts.map +1 -0
  854. package/dist/ui/currency-input/currency-input.js +244 -0
  855. package/dist/ui/currency-input/currency-input.js.map +1 -0
  856. package/dist/ui/currency-input/index.cjs +23 -0
  857. package/dist/ui/currency-input/index.cjs.map +1 -0
  858. package/dist/ui/currency-input/index.d.ts +2 -0
  859. package/dist/ui/currency-input/index.d.ts.map +1 -0
  860. package/dist/ui/currency-input/index.js +2 -0
  861. package/dist/ui/currency-input/index.js.map +1 -0
  862. package/dist/ui/data-table/data-table-preview.cjs +256 -0
  863. package/dist/ui/data-table/data-table-preview.cjs.map +1 -0
  864. package/dist/ui/data-table/data-table-preview.d.ts +5 -0
  865. package/dist/ui/data-table/data-table-preview.d.ts.map +1 -0
  866. package/dist/ui/data-table/data-table-preview.js +238 -0
  867. package/dist/ui/data-table/data-table-preview.js.map +1 -0
  868. package/dist/ui/data-table/data-table.cjs +166 -0
  869. package/dist/ui/data-table/data-table.cjs.map +1 -0
  870. package/dist/ui/data-table/data-table.css +185 -0
  871. package/dist/ui/data-table/data-table.d.ts +82 -0
  872. package/dist/ui/data-table/data-table.d.ts.map +1 -0
  873. package/dist/ui/data-table/data-table.js +142 -0
  874. package/dist/ui/data-table/data-table.js.map +1 -0
  875. package/dist/ui/data-table/index.cjs +23 -0
  876. package/dist/ui/data-table/index.cjs.map +1 -0
  877. package/dist/ui/data-table/index.d.ts +2 -0
  878. package/dist/ui/data-table/index.d.ts.map +1 -0
  879. package/dist/ui/data-table/index.js +2 -0
  880. package/dist/ui/data-table/index.js.map +1 -0
  881. package/dist/ui/date-input/date-input-preview.cjs +113 -0
  882. package/dist/ui/date-input/date-input-preview.cjs.map +1 -0
  883. package/dist/ui/date-input/date-input-preview.d.ts +3 -0
  884. package/dist/ui/date-input/date-input-preview.d.ts.map +1 -0
  885. package/dist/ui/date-input/date-input-preview.js +89 -0
  886. package/dist/ui/date-input/date-input-preview.js.map +1 -0
  887. package/dist/ui/date-input/date-input.cjs +297 -0
  888. package/dist/ui/date-input/date-input.cjs.map +1 -0
  889. package/dist/ui/date-input/date-input.css +121 -0
  890. package/dist/ui/date-input/date-input.d.ts +79 -0
  891. package/dist/ui/date-input/date-input.d.ts.map +1 -0
  892. package/dist/ui/date-input/date-input.js +268 -0
  893. package/dist/ui/date-input/date-input.js.map +1 -0
  894. package/dist/ui/date-input/index.cjs +23 -0
  895. package/dist/ui/date-input/index.cjs.map +1 -0
  896. package/dist/ui/date-input/index.d.ts +2 -0
  897. package/dist/ui/date-input/index.d.ts.map +1 -0
  898. package/dist/ui/date-input/index.js +2 -0
  899. package/dist/ui/date-input/index.js.map +1 -0
  900. package/dist/ui/detail-section/detail-section-preview.cjs +56 -0
  901. package/dist/ui/detail-section/detail-section-preview.cjs.map +1 -0
  902. package/dist/ui/detail-section/detail-section-preview.d.ts +3 -0
  903. package/dist/ui/detail-section/detail-section-preview.d.ts.map +1 -0
  904. package/dist/ui/detail-section/detail-section-preview.js +32 -0
  905. package/dist/ui/detail-section/detail-section-preview.js.map +1 -0
  906. package/dist/ui/detail-section/detail-section.cjs +59 -0
  907. package/dist/ui/detail-section/detail-section.cjs.map +1 -0
  908. package/dist/ui/detail-section/detail-section.css +54 -0
  909. package/dist/ui/detail-section/detail-section.d.ts +9 -0
  910. package/dist/ui/detail-section/detail-section.d.ts.map +1 -0
  911. package/dist/ui/detail-section/detail-section.js +35 -0
  912. package/dist/ui/detail-section/detail-section.js.map +1 -0
  913. package/dist/ui/detail-section/index.cjs +23 -0
  914. package/dist/ui/detail-section/index.cjs.map +1 -0
  915. package/dist/ui/detail-section/index.d.ts +2 -0
  916. package/dist/ui/detail-section/index.d.ts.map +1 -0
  917. package/dist/ui/detail-section/index.js +2 -0
  918. package/dist/ui/detail-section/index.js.map +1 -0
  919. package/dist/ui/dialog/dialog.cjs +104 -0
  920. package/dist/ui/dialog/dialog.cjs.map +1 -0
  921. package/dist/ui/dialog/dialog.css +38 -0
  922. package/dist/ui/dialog/dialog.d.ts +48 -0
  923. package/dist/ui/dialog/dialog.d.ts.map +1 -0
  924. package/dist/ui/dialog/dialog.js +80 -0
  925. package/dist/ui/dialog/dialog.js.map +1 -0
  926. package/dist/ui/dialog/index.cjs +23 -0
  927. package/dist/ui/dialog/index.cjs.map +1 -0
  928. package/dist/ui/dialog/index.d.ts +2 -0
  929. package/dist/ui/dialog/index.d.ts.map +1 -0
  930. package/dist/ui/dialog/index.js +2 -0
  931. package/dist/ui/dialog/index.js.map +1 -0
  932. package/dist/ui/disclosure/disclosure-preview.cjs +127 -0
  933. package/dist/ui/disclosure/disclosure-preview.cjs.map +1 -0
  934. package/dist/ui/disclosure/disclosure-preview.d.ts +3 -0
  935. package/dist/ui/disclosure/disclosure-preview.d.ts.map +1 -0
  936. package/dist/ui/disclosure/disclosure-preview.js +103 -0
  937. package/dist/ui/disclosure/disclosure-preview.js.map +1 -0
  938. package/dist/ui/disclosure/disclosure.cjs +80 -0
  939. package/dist/ui/disclosure/disclosure.cjs.map +1 -0
  940. package/dist/ui/disclosure/disclosure.css +77 -0
  941. package/dist/ui/disclosure/disclosure.d.ts +21 -0
  942. package/dist/ui/disclosure/disclosure.d.ts.map +1 -0
  943. package/dist/ui/disclosure/disclosure.js +56 -0
  944. package/dist/ui/disclosure/disclosure.js.map +1 -0
  945. package/dist/ui/disclosure/index.cjs +23 -0
  946. package/dist/ui/disclosure/index.cjs.map +1 -0
  947. package/dist/ui/disclosure/index.d.ts +2 -0
  948. package/dist/ui/disclosure/index.d.ts.map +1 -0
  949. package/dist/ui/disclosure/index.js +2 -0
  950. package/dist/ui/disclosure/index.js.map +1 -0
  951. package/dist/ui/divider/divider-preview.cjs +51 -0
  952. package/dist/ui/divider/divider-preview.cjs.map +1 -0
  953. package/dist/ui/divider/divider-preview.d.ts +3 -0
  954. package/dist/ui/divider/divider-preview.d.ts.map +1 -0
  955. package/dist/ui/divider/divider-preview.js +27 -0
  956. package/dist/ui/divider/divider-preview.js.map +1 -0
  957. package/dist/ui/divider/divider.cjs +40 -0
  958. package/dist/ui/divider/divider.cjs.map +1 -0
  959. package/dist/ui/divider/divider.css +26 -0
  960. package/dist/ui/divider/divider.d.ts +6 -0
  961. package/dist/ui/divider/divider.d.ts.map +1 -0
  962. package/dist/ui/divider/divider.js +16 -0
  963. package/dist/ui/divider/divider.js.map +1 -0
  964. package/dist/ui/divider/index.cjs +23 -0
  965. package/dist/ui/divider/index.cjs.map +1 -0
  966. package/dist/ui/divider/index.d.ts +2 -0
  967. package/dist/ui/divider/index.d.ts.map +1 -0
  968. package/dist/ui/divider/index.js +2 -0
  969. package/dist/ui/divider/index.js.map +1 -0
  970. package/dist/ui/editable-cell/editable-cell-preview.cjs +238 -0
  971. package/dist/ui/editable-cell/editable-cell-preview.cjs.map +1 -0
  972. package/dist/ui/editable-cell/editable-cell-preview.d.ts +5 -0
  973. package/dist/ui/editable-cell/editable-cell-preview.d.ts.map +1 -0
  974. package/dist/ui/editable-cell/editable-cell-preview.js +216 -0
  975. package/dist/ui/editable-cell/editable-cell-preview.js.map +1 -0
  976. package/dist/ui/editable-cell/editable-cell.cjs +764 -0
  977. package/dist/ui/editable-cell/editable-cell.cjs.map +1 -0
  978. package/dist/ui/editable-cell/editable-cell.css +693 -0
  979. package/dist/ui/editable-cell/editable-cell.d.ts +141 -0
  980. package/dist/ui/editable-cell/editable-cell.d.ts.map +1 -0
  981. package/dist/ui/editable-cell/editable-cell.js +752 -0
  982. package/dist/ui/editable-cell/editable-cell.js.map +1 -0
  983. package/dist/ui/editable-cell/index.cjs +23 -0
  984. package/dist/ui/editable-cell/index.cjs.map +1 -0
  985. package/dist/ui/editable-cell/index.d.ts +2 -0
  986. package/dist/ui/editable-cell/index.d.ts.map +1 -0
  987. package/dist/ui/editable-cell/index.js +2 -0
  988. package/dist/ui/editable-cell/index.js.map +1 -0
  989. package/dist/ui/empty-state/empty-state-preview.cjs +64 -0
  990. package/dist/ui/empty-state/empty-state-preview.cjs.map +1 -0
  991. package/dist/ui/empty-state/empty-state-preview.d.ts +3 -0
  992. package/dist/ui/empty-state/empty-state-preview.d.ts.map +1 -0
  993. package/dist/ui/empty-state/empty-state-preview.js +40 -0
  994. package/dist/ui/empty-state/empty-state-preview.js.map +1 -0
  995. package/dist/ui/empty-state/empty-state.cjs +45 -0
  996. package/dist/ui/empty-state/empty-state.cjs.map +1 -0
  997. package/dist/ui/empty-state/empty-state.css +32 -0
  998. package/dist/ui/empty-state/empty-state.d.ts +9 -0
  999. package/dist/ui/empty-state/empty-state.d.ts.map +1 -0
  1000. package/dist/ui/empty-state/empty-state.js +21 -0
  1001. package/dist/ui/empty-state/empty-state.js.map +1 -0
  1002. package/dist/ui/empty-state/index.cjs +23 -0
  1003. package/dist/ui/empty-state/index.cjs.map +1 -0
  1004. package/dist/ui/empty-state/index.d.ts +2 -0
  1005. package/dist/ui/empty-state/index.d.ts.map +1 -0
  1006. package/dist/ui/empty-state/index.js +2 -0
  1007. package/dist/ui/empty-state/index.js.map +1 -0
  1008. package/dist/ui/error-page/error-page-preview.cjs +116 -0
  1009. package/dist/ui/error-page/error-page-preview.cjs.map +1 -0
  1010. package/dist/ui/error-page/error-page-preview.d.ts +3 -0
  1011. package/dist/ui/error-page/error-page-preview.d.ts.map +1 -0
  1012. package/dist/ui/error-page/error-page-preview.js +92 -0
  1013. package/dist/ui/error-page/error-page-preview.js.map +1 -0
  1014. package/dist/ui/error-page/error-page.cjs +51 -0
  1015. package/dist/ui/error-page/error-page.cjs.map +1 -0
  1016. package/dist/ui/error-page/error-page.css +52 -0
  1017. package/dist/ui/error-page/error-page.d.ts +17 -0
  1018. package/dist/ui/error-page/error-page.d.ts.map +1 -0
  1019. package/dist/ui/error-page/error-page.js +27 -0
  1020. package/dist/ui/error-page/error-page.js.map +1 -0
  1021. package/dist/ui/error-page/index.cjs +23 -0
  1022. package/dist/ui/error-page/index.cjs.map +1 -0
  1023. package/dist/ui/error-page/index.d.ts +2 -0
  1024. package/dist/ui/error-page/index.d.ts.map +1 -0
  1025. package/dist/ui/error-page/index.js +2 -0
  1026. package/dist/ui/error-page/index.js.map +1 -0
  1027. package/dist/ui/explorer-list-item/explorer-list-item-preview.cjs +125 -0
  1028. package/dist/ui/explorer-list-item/explorer-list-item-preview.cjs.map +1 -0
  1029. package/dist/ui/explorer-list-item/explorer-list-item-preview.d.ts +3 -0
  1030. package/dist/ui/explorer-list-item/explorer-list-item-preview.d.ts.map +1 -0
  1031. package/dist/ui/explorer-list-item/explorer-list-item-preview.js +101 -0
  1032. package/dist/ui/explorer-list-item/explorer-list-item-preview.js.map +1 -0
  1033. package/dist/ui/explorer-list-item/explorer-list-item.cjs +57 -0
  1034. package/dist/ui/explorer-list-item/explorer-list-item.cjs.map +1 -0
  1035. package/dist/ui/explorer-list-item/explorer-list-item.css +63 -0
  1036. package/dist/ui/explorer-list-item/explorer-list-item.d.ts +24 -0
  1037. package/dist/ui/explorer-list-item/explorer-list-item.d.ts.map +1 -0
  1038. package/dist/ui/explorer-list-item/explorer-list-item.js +33 -0
  1039. package/dist/ui/explorer-list-item/explorer-list-item.js.map +1 -0
  1040. package/dist/ui/explorer-list-item/index.cjs +23 -0
  1041. package/dist/ui/explorer-list-item/index.cjs.map +1 -0
  1042. package/dist/ui/explorer-list-item/index.d.ts +2 -0
  1043. package/dist/ui/explorer-list-item/index.d.ts.map +1 -0
  1044. package/dist/ui/explorer-list-item/index.js +2 -0
  1045. package/dist/ui/explorer-list-item/index.js.map +1 -0
  1046. package/dist/ui/explorer-section/explorer-section-preview.cjs +156 -0
  1047. package/dist/ui/explorer-section/explorer-section-preview.cjs.map +1 -0
  1048. package/dist/ui/explorer-section/explorer-section-preview.d.ts +3 -0
  1049. package/dist/ui/explorer-section/explorer-section-preview.d.ts.map +1 -0
  1050. package/dist/ui/explorer-section/explorer-section-preview.js +132 -0
  1051. package/dist/ui/explorer-section/explorer-section-preview.js.map +1 -0
  1052. package/dist/ui/explorer-section/explorer-section.cjs +87 -0
  1053. package/dist/ui/explorer-section/explorer-section.cjs.map +1 -0
  1054. package/dist/ui/explorer-section/explorer-section.css +70 -0
  1055. package/dist/ui/explorer-section/explorer-section.d.ts +47 -0
  1056. package/dist/ui/explorer-section/explorer-section.d.ts.map +1 -0
  1057. package/dist/ui/explorer-section/explorer-section.js +63 -0
  1058. package/dist/ui/explorer-section/explorer-section.js.map +1 -0
  1059. package/dist/ui/explorer-section/index.cjs +23 -0
  1060. package/dist/ui/explorer-section/index.cjs.map +1 -0
  1061. package/dist/ui/explorer-section/index.d.ts +2 -0
  1062. package/dist/ui/explorer-section/index.d.ts.map +1 -0
  1063. package/dist/ui/explorer-section/index.js +2 -0
  1064. package/dist/ui/explorer-section/index.js.map +1 -0
  1065. package/dist/ui/field-error/field-error.cjs +36 -0
  1066. package/dist/ui/field-error/field-error.cjs.map +1 -0
  1067. package/dist/ui/field-error/field-error.css +6 -0
  1068. package/dist/ui/field-error/field-error.d.ts +35 -0
  1069. package/dist/ui/field-error/field-error.d.ts.map +1 -0
  1070. package/dist/ui/field-error/field-error.js +12 -0
  1071. package/dist/ui/field-error/field-error.js.map +1 -0
  1072. package/dist/ui/field-error/index.cjs +23 -0
  1073. package/dist/ui/field-error/index.cjs.map +1 -0
  1074. package/dist/ui/field-error/index.d.ts +2 -0
  1075. package/dist/ui/field-error/index.d.ts.map +1 -0
  1076. package/dist/ui/field-error/index.js +2 -0
  1077. package/dist/ui/field-error/index.js.map +1 -0
  1078. package/dist/ui/file-upload/file-upload-preview.cjs +157 -0
  1079. package/dist/ui/file-upload/file-upload-preview.cjs.map +1 -0
  1080. package/dist/ui/file-upload/file-upload-preview.d.ts +3 -0
  1081. package/dist/ui/file-upload/file-upload-preview.d.ts.map +1 -0
  1082. package/dist/ui/file-upload/file-upload-preview.js +133 -0
  1083. package/dist/ui/file-upload/file-upload-preview.js.map +1 -0
  1084. package/dist/ui/file-upload/file-upload.cjs +238 -0
  1085. package/dist/ui/file-upload/file-upload.cjs.map +1 -0
  1086. package/dist/ui/file-upload/file-upload.css +330 -0
  1087. package/dist/ui/file-upload/file-upload.d.ts +184 -0
  1088. package/dist/ui/file-upload/file-upload.d.ts.map +1 -0
  1089. package/dist/ui/file-upload/file-upload.js +218 -0
  1090. package/dist/ui/file-upload/file-upload.js.map +1 -0
  1091. package/dist/ui/file-upload/index.cjs +23 -0
  1092. package/dist/ui/file-upload/index.cjs.map +1 -0
  1093. package/dist/ui/file-upload/index.d.ts +2 -0
  1094. package/dist/ui/file-upload/index.d.ts.map +1 -0
  1095. package/dist/ui/file-upload/index.js +2 -0
  1096. package/dist/ui/file-upload/index.js.map +1 -0
  1097. package/dist/ui/filter-tabs/filter-tabs-preview.cjs +116 -0
  1098. package/dist/ui/filter-tabs/filter-tabs-preview.cjs.map +1 -0
  1099. package/dist/ui/filter-tabs/filter-tabs-preview.d.ts +3 -0
  1100. package/dist/ui/filter-tabs/filter-tabs-preview.d.ts.map +1 -0
  1101. package/dist/ui/filter-tabs/filter-tabs-preview.js +92 -0
  1102. package/dist/ui/filter-tabs/filter-tabs-preview.js.map +1 -0
  1103. package/dist/ui/filter-tabs/filter-tabs.cjs +77 -0
  1104. package/dist/ui/filter-tabs/filter-tabs.cjs.map +1 -0
  1105. package/dist/ui/filter-tabs/filter-tabs.css +44 -0
  1106. package/dist/ui/filter-tabs/filter-tabs.d.ts +16 -0
  1107. package/dist/ui/filter-tabs/filter-tabs.d.ts.map +1 -0
  1108. package/dist/ui/filter-tabs/filter-tabs.js +53 -0
  1109. package/dist/ui/filter-tabs/filter-tabs.js.map +1 -0
  1110. package/dist/ui/filter-tabs/index.cjs +23 -0
  1111. package/dist/ui/filter-tabs/index.cjs.map +1 -0
  1112. package/dist/ui/filter-tabs/index.d.ts +2 -0
  1113. package/dist/ui/filter-tabs/index.d.ts.map +1 -0
  1114. package/dist/ui/filter-tabs/index.js +2 -0
  1115. package/dist/ui/filter-tabs/index.js.map +1 -0
  1116. package/dist/ui/form-field/form-field-preview.cjs +72 -0
  1117. package/dist/ui/form-field/form-field-preview.cjs.map +1 -0
  1118. package/dist/ui/form-field/form-field-preview.d.ts +11 -0
  1119. package/dist/ui/form-field/form-field-preview.d.ts.map +1 -0
  1120. package/dist/ui/form-field/form-field-preview.js +50 -0
  1121. package/dist/ui/form-field/form-field-preview.js.map +1 -0
  1122. package/dist/ui/form-field/form-field.cjs +71 -0
  1123. package/dist/ui/form-field/form-field.cjs.map +1 -0
  1124. package/dist/ui/form-field/form-field.css +159 -0
  1125. package/dist/ui/form-field/form-field.d.ts +66 -0
  1126. package/dist/ui/form-field/form-field.d.ts.map +1 -0
  1127. package/dist/ui/form-field/form-field.js +47 -0
  1128. package/dist/ui/form-field/form-field.js.map +1 -0
  1129. package/dist/ui/form-field/index.cjs +23 -0
  1130. package/dist/ui/form-field/index.cjs.map +1 -0
  1131. package/dist/ui/form-field/index.d.ts +2 -0
  1132. package/dist/ui/form-field/index.d.ts.map +1 -0
  1133. package/dist/ui/form-field/index.js +2 -0
  1134. package/dist/ui/form-field/index.js.map +1 -0
  1135. package/dist/ui/hover-tooltip/hover-tooltip.cjs +117 -0
  1136. package/dist/ui/hover-tooltip/hover-tooltip.cjs.map +1 -0
  1137. package/dist/ui/hover-tooltip/hover-tooltip.css +7 -0
  1138. package/dist/ui/hover-tooltip/hover-tooltip.d.ts +19 -0
  1139. package/dist/ui/hover-tooltip/hover-tooltip.d.ts.map +1 -0
  1140. package/dist/ui/hover-tooltip/hover-tooltip.js +99 -0
  1141. package/dist/ui/hover-tooltip/hover-tooltip.js.map +1 -0
  1142. package/dist/ui/hover-tooltip/index.cjs +23 -0
  1143. package/dist/ui/hover-tooltip/index.cjs.map +1 -0
  1144. package/dist/ui/hover-tooltip/index.d.ts +2 -0
  1145. package/dist/ui/hover-tooltip/index.d.ts.map +1 -0
  1146. package/dist/ui/hover-tooltip/index.js +2 -0
  1147. package/dist/ui/hover-tooltip/index.js.map +1 -0
  1148. package/dist/ui/icon/icon-preview.cjs +128 -0
  1149. package/dist/ui/icon/icon-preview.cjs.map +1 -0
  1150. package/dist/ui/icon/icon-preview.d.ts +21 -0
  1151. package/dist/ui/icon/icon-preview.d.ts.map +1 -0
  1152. package/dist/ui/icon/icon-preview.js +104 -0
  1153. package/dist/ui/icon/icon-preview.js.map +1 -0
  1154. package/dist/ui/icon/icon.cjs +64 -0
  1155. package/dist/ui/icon/icon.cjs.map +1 -0
  1156. package/dist/ui/icon/icon.css +6 -0
  1157. package/dist/ui/icon/icon.d.ts +8 -0
  1158. package/dist/ui/icon/icon.d.ts.map +1 -0
  1159. package/dist/ui/icon/icon.js +40 -0
  1160. package/dist/ui/icon/icon.js.map +1 -0
  1161. package/dist/ui/icon/index.cjs +23 -0
  1162. package/dist/ui/icon/index.cjs.map +1 -0
  1163. package/dist/ui/icon/index.d.ts +2 -0
  1164. package/dist/ui/icon/index.d.ts.map +1 -0
  1165. package/dist/ui/icon/index.js +2 -0
  1166. package/dist/ui/icon/index.js.map +1 -0
  1167. package/dist/ui/icon-button/icon-button-preview.cjs +98 -0
  1168. package/dist/ui/icon-button/icon-button-preview.cjs.map +1 -0
  1169. package/dist/ui/icon-button/icon-button-preview.d.ts +14 -0
  1170. package/dist/ui/icon-button/icon-button-preview.d.ts.map +1 -0
  1171. package/dist/ui/icon-button/icon-button-preview.js +74 -0
  1172. package/dist/ui/icon-button/icon-button-preview.js.map +1 -0
  1173. package/dist/ui/icon-button/icon-button.cjs +33 -0
  1174. package/dist/ui/icon-button/icon-button.cjs.map +1 -0
  1175. package/dist/ui/icon-button/icon-button.css +65 -0
  1176. package/dist/ui/icon-button/icon-button.d.ts +9 -0
  1177. package/dist/ui/icon-button/icon-button.d.ts.map +1 -0
  1178. package/dist/ui/icon-button/icon-button.js +9 -0
  1179. package/dist/ui/icon-button/icon-button.js.map +1 -0
  1180. package/dist/ui/icon-button/index.cjs +23 -0
  1181. package/dist/ui/icon-button/index.cjs.map +1 -0
  1182. package/dist/ui/icon-button/index.d.ts +2 -0
  1183. package/dist/ui/icon-button/index.d.ts.map +1 -0
  1184. package/dist/ui/icon-button/index.js +2 -0
  1185. package/dist/ui/icon-button/index.js.map +1 -0
  1186. package/dist/ui/icon-tile/icon-tile-preview.cjs +41 -0
  1187. package/dist/ui/icon-tile/icon-tile-preview.cjs.map +1 -0
  1188. package/dist/ui/icon-tile/icon-tile-preview.d.ts +3 -0
  1189. package/dist/ui/icon-tile/icon-tile-preview.d.ts.map +1 -0
  1190. package/dist/ui/icon-tile/icon-tile-preview.js +17 -0
  1191. package/dist/ui/icon-tile/icon-tile-preview.js.map +1 -0
  1192. package/dist/ui/icon-tile/icon-tile.cjs +47 -0
  1193. package/dist/ui/icon-tile/icon-tile.cjs.map +1 -0
  1194. package/dist/ui/icon-tile/icon-tile.css +18 -0
  1195. package/dist/ui/icon-tile/icon-tile.d.ts +23 -0
  1196. package/dist/ui/icon-tile/icon-tile.d.ts.map +1 -0
  1197. package/dist/ui/icon-tile/icon-tile.js +23 -0
  1198. package/dist/ui/icon-tile/icon-tile.js.map +1 -0
  1199. package/dist/ui/icon-tile/index.cjs +23 -0
  1200. package/dist/ui/icon-tile/index.cjs.map +1 -0
  1201. package/dist/ui/icon-tile/index.d.ts +2 -0
  1202. package/dist/ui/icon-tile/index.d.ts.map +1 -0
  1203. package/dist/ui/icon-tile/index.js +2 -0
  1204. package/dist/ui/icon-tile/index.js.map +1 -0
  1205. package/dist/ui/index.cjs +355 -0
  1206. package/dist/ui/index.cjs.map +1 -0
  1207. package/dist/ui/index.d.ts +195 -0
  1208. package/dist/ui/index.d.ts.map +1 -0
  1209. package/dist/ui/index.js +216 -0
  1210. package/dist/ui/index.js.map +1 -0
  1211. package/dist/ui/inline-action/index.cjs +23 -0
  1212. package/dist/ui/inline-action/index.cjs.map +1 -0
  1213. package/dist/ui/inline-action/index.d.ts +2 -0
  1214. package/dist/ui/inline-action/index.d.ts.map +1 -0
  1215. package/dist/ui/inline-action/index.js +2 -0
  1216. package/dist/ui/inline-action/index.js.map +1 -0
  1217. package/dist/ui/inline-action/inline-action-preview.cjs +70 -0
  1218. package/dist/ui/inline-action/inline-action-preview.cjs.map +1 -0
  1219. package/dist/ui/inline-action/inline-action-preview.d.ts +3 -0
  1220. package/dist/ui/inline-action/inline-action-preview.d.ts.map +1 -0
  1221. package/dist/ui/inline-action/inline-action-preview.js +46 -0
  1222. package/dist/ui/inline-action/inline-action-preview.js.map +1 -0
  1223. package/dist/ui/inline-action/inline-action.cjs +50 -0
  1224. package/dist/ui/inline-action/inline-action.cjs.map +1 -0
  1225. package/dist/ui/inline-action/inline-action.css +46 -0
  1226. package/dist/ui/inline-action/inline-action.d.ts +20 -0
  1227. package/dist/ui/inline-action/inline-action.d.ts.map +1 -0
  1228. package/dist/ui/inline-action/inline-action.js +26 -0
  1229. package/dist/ui/inline-action/inline-action.js.map +1 -0
  1230. package/dist/ui/inline-filter/index.cjs +23 -0
  1231. package/dist/ui/inline-filter/index.cjs.map +1 -0
  1232. package/dist/ui/inline-filter/index.d.ts +2 -0
  1233. package/dist/ui/inline-filter/index.d.ts.map +1 -0
  1234. package/dist/ui/inline-filter/index.js +2 -0
  1235. package/dist/ui/inline-filter/index.js.map +1 -0
  1236. package/dist/ui/inline-filter/inline-filter-preview.cjs +64 -0
  1237. package/dist/ui/inline-filter/inline-filter-preview.cjs.map +1 -0
  1238. package/dist/ui/inline-filter/inline-filter-preview.d.ts +16 -0
  1239. package/dist/ui/inline-filter/inline-filter-preview.d.ts.map +1 -0
  1240. package/dist/ui/inline-filter/inline-filter-preview.js +40 -0
  1241. package/dist/ui/inline-filter/inline-filter-preview.js.map +1 -0
  1242. package/dist/ui/inline-filter/inline-filter.cjs +43 -0
  1243. package/dist/ui/inline-filter/inline-filter.cjs.map +1 -0
  1244. package/dist/ui/inline-filter/inline-filter.css +17 -0
  1245. package/dist/ui/inline-filter/inline-filter.d.ts +8 -0
  1246. package/dist/ui/inline-filter/inline-filter.d.ts.map +1 -0
  1247. package/dist/ui/inline-filter/inline-filter.js +19 -0
  1248. package/dist/ui/inline-filter/inline-filter.js.map +1 -0
  1249. package/dist/ui/input/clear-field-value.cjs +36 -0
  1250. package/dist/ui/input/clear-field-value.cjs.map +1 -0
  1251. package/dist/ui/input/clear-field-value.d.ts +17 -0
  1252. package/dist/ui/input/clear-field-value.d.ts.map +1 -0
  1253. package/dist/ui/input/clear-field-value.js +12 -0
  1254. package/dist/ui/input/clear-field-value.js.map +1 -0
  1255. package/dist/ui/input/index.cjs +23 -0
  1256. package/dist/ui/input/index.cjs.map +1 -0
  1257. package/dist/ui/input/index.d.ts +2 -0
  1258. package/dist/ui/input/index.d.ts.map +1 -0
  1259. package/dist/ui/input/index.js +2 -0
  1260. package/dist/ui/input/index.js.map +1 -0
  1261. package/dist/ui/input/input-preview.cjs +80 -0
  1262. package/dist/ui/input/input-preview.cjs.map +1 -0
  1263. package/dist/ui/input/input-preview.d.ts +3 -0
  1264. package/dist/ui/input/input-preview.d.ts.map +1 -0
  1265. package/dist/ui/input/input-preview.js +56 -0
  1266. package/dist/ui/input/input-preview.js.map +1 -0
  1267. package/dist/ui/input/input.cjs +517 -0
  1268. package/dist/ui/input/input.cjs.map +1 -0
  1269. package/dist/ui/input/input.css +273 -0
  1270. package/dist/ui/input/input.d.ts +140 -0
  1271. package/dist/ui/input/input.d.ts.map +1 -0
  1272. package/dist/ui/input/input.js +499 -0
  1273. package/dist/ui/input/input.js.map +1 -0
  1274. package/dist/ui/input/select-preview.cjs +124 -0
  1275. package/dist/ui/input/select-preview.cjs.map +1 -0
  1276. package/dist/ui/input/select-preview.d.ts +5 -0
  1277. package/dist/ui/input/select-preview.d.ts.map +1 -0
  1278. package/dist/ui/input/select-preview.js +100 -0
  1279. package/dist/ui/input/select-preview.js.map +1 -0
  1280. package/dist/ui/input/textarea-preview.cjs +81 -0
  1281. package/dist/ui/input/textarea-preview.cjs.map +1 -0
  1282. package/dist/ui/input/textarea-preview.d.ts +3 -0
  1283. package/dist/ui/input/textarea-preview.d.ts.map +1 -0
  1284. package/dist/ui/input/textarea-preview.js +57 -0
  1285. package/dist/ui/input/textarea-preview.js.map +1 -0
  1286. package/dist/ui/input-with-icon/index.cjs +23 -0
  1287. package/dist/ui/input-with-icon/index.cjs.map +1 -0
  1288. package/dist/ui/input-with-icon/index.d.ts +2 -0
  1289. package/dist/ui/input-with-icon/index.d.ts.map +1 -0
  1290. package/dist/ui/input-with-icon/index.js +2 -0
  1291. package/dist/ui/input-with-icon/index.js.map +1 -0
  1292. package/dist/ui/input-with-icon/input-with-icon-preview.cjs +89 -0
  1293. package/dist/ui/input-with-icon/input-with-icon-preview.cjs.map +1 -0
  1294. package/dist/ui/input-with-icon/input-with-icon-preview.d.ts +3 -0
  1295. package/dist/ui/input-with-icon/input-with-icon-preview.d.ts.map +1 -0
  1296. package/dist/ui/input-with-icon/input-with-icon-preview.js +65 -0
  1297. package/dist/ui/input-with-icon/input-with-icon-preview.js.map +1 -0
  1298. package/dist/ui/input-with-icon/input-with-icon.cjs +87 -0
  1299. package/dist/ui/input-with-icon/input-with-icon.cjs.map +1 -0
  1300. package/dist/ui/input-with-icon/input-with-icon.css +94 -0
  1301. package/dist/ui/input-with-icon/input-with-icon.d.ts +29 -0
  1302. package/dist/ui/input-with-icon/input-with-icon.d.ts.map +1 -0
  1303. package/dist/ui/input-with-icon/input-with-icon.js +63 -0
  1304. package/dist/ui/input-with-icon/input-with-icon.js.map +1 -0
  1305. package/dist/ui/lifecycle-connector/index.cjs +23 -0
  1306. package/dist/ui/lifecycle-connector/index.cjs.map +1 -0
  1307. package/dist/ui/lifecycle-connector/index.d.ts +2 -0
  1308. package/dist/ui/lifecycle-connector/index.d.ts.map +1 -0
  1309. package/dist/ui/lifecycle-connector/index.js +2 -0
  1310. package/dist/ui/lifecycle-connector/index.js.map +1 -0
  1311. package/dist/ui/lifecycle-connector/lifecycle-connector-preview.cjs +63 -0
  1312. package/dist/ui/lifecycle-connector/lifecycle-connector-preview.cjs.map +1 -0
  1313. package/dist/ui/lifecycle-connector/lifecycle-connector-preview.d.ts +3 -0
  1314. package/dist/ui/lifecycle-connector/lifecycle-connector-preview.d.ts.map +1 -0
  1315. package/dist/ui/lifecycle-connector/lifecycle-connector-preview.js +41 -0
  1316. package/dist/ui/lifecycle-connector/lifecycle-connector-preview.js.map +1 -0
  1317. package/dist/ui/lifecycle-connector/lifecycle-connector.cjs +205 -0
  1318. package/dist/ui/lifecycle-connector/lifecycle-connector.cjs.map +1 -0
  1319. package/dist/ui/lifecycle-connector/lifecycle-connector.css +65 -0
  1320. package/dist/ui/lifecycle-connector/lifecycle-connector.d.ts +107 -0
  1321. package/dist/ui/lifecycle-connector/lifecycle-connector.d.ts.map +1 -0
  1322. package/dist/ui/lifecycle-connector/lifecycle-connector.js +181 -0
  1323. package/dist/ui/lifecycle-connector/lifecycle-connector.js.map +1 -0
  1324. package/dist/ui/lifecycle-drop-slot/index.cjs +23 -0
  1325. package/dist/ui/lifecycle-drop-slot/index.cjs.map +1 -0
  1326. package/dist/ui/lifecycle-drop-slot/index.d.ts +2 -0
  1327. package/dist/ui/lifecycle-drop-slot/index.d.ts.map +1 -0
  1328. package/dist/ui/lifecycle-drop-slot/index.js +2 -0
  1329. package/dist/ui/lifecycle-drop-slot/index.js.map +1 -0
  1330. package/dist/ui/lifecycle-drop-slot/lifecycle-drop-slot-preview.cjs +51 -0
  1331. package/dist/ui/lifecycle-drop-slot/lifecycle-drop-slot-preview.cjs.map +1 -0
  1332. package/dist/ui/lifecycle-drop-slot/lifecycle-drop-slot-preview.d.ts +3 -0
  1333. package/dist/ui/lifecycle-drop-slot/lifecycle-drop-slot-preview.d.ts.map +1 -0
  1334. package/dist/ui/lifecycle-drop-slot/lifecycle-drop-slot-preview.js +27 -0
  1335. package/dist/ui/lifecycle-drop-slot/lifecycle-drop-slot-preview.js.map +1 -0
  1336. package/dist/ui/lifecycle-drop-slot/lifecycle-drop-slot.cjs +52 -0
  1337. package/dist/ui/lifecycle-drop-slot/lifecycle-drop-slot.cjs.map +1 -0
  1338. package/dist/ui/lifecycle-drop-slot/lifecycle-drop-slot.css +63 -0
  1339. package/dist/ui/lifecycle-drop-slot/lifecycle-drop-slot.d.ts +32 -0
  1340. package/dist/ui/lifecycle-drop-slot/lifecycle-drop-slot.d.ts.map +1 -0
  1341. package/dist/ui/lifecycle-drop-slot/lifecycle-drop-slot.js +28 -0
  1342. package/dist/ui/lifecycle-drop-slot/lifecycle-drop-slot.js.map +1 -0
  1343. package/dist/ui/lifecycle-edge-label/index.cjs +23 -0
  1344. package/dist/ui/lifecycle-edge-label/index.cjs.map +1 -0
  1345. package/dist/ui/lifecycle-edge-label/index.d.ts +2 -0
  1346. package/dist/ui/lifecycle-edge-label/index.d.ts.map +1 -0
  1347. package/dist/ui/lifecycle-edge-label/index.js +2 -0
  1348. package/dist/ui/lifecycle-edge-label/index.js.map +1 -0
  1349. package/dist/ui/lifecycle-edge-label/lifecycle-edge-label-preview.cjs +47 -0
  1350. package/dist/ui/lifecycle-edge-label/lifecycle-edge-label-preview.cjs.map +1 -0
  1351. package/dist/ui/lifecycle-edge-label/lifecycle-edge-label-preview.d.ts +3 -0
  1352. package/dist/ui/lifecycle-edge-label/lifecycle-edge-label-preview.d.ts.map +1 -0
  1353. package/dist/ui/lifecycle-edge-label/lifecycle-edge-label-preview.js +25 -0
  1354. package/dist/ui/lifecycle-edge-label/lifecycle-edge-label-preview.js.map +1 -0
  1355. package/dist/ui/lifecycle-edge-label/lifecycle-edge-label.cjs +49 -0
  1356. package/dist/ui/lifecycle-edge-label/lifecycle-edge-label.cjs.map +1 -0
  1357. package/dist/ui/lifecycle-edge-label/lifecycle-edge-label.css +29 -0
  1358. package/dist/ui/lifecycle-edge-label/lifecycle-edge-label.d.ts +18 -0
  1359. package/dist/ui/lifecycle-edge-label/lifecycle-edge-label.d.ts.map +1 -0
  1360. package/dist/ui/lifecycle-edge-label/lifecycle-edge-label.js +25 -0
  1361. package/dist/ui/lifecycle-edge-label/lifecycle-edge-label.js.map +1 -0
  1362. package/dist/ui/lifecycle-group-box/index.cjs +23 -0
  1363. package/dist/ui/lifecycle-group-box/index.cjs.map +1 -0
  1364. package/dist/ui/lifecycle-group-box/index.d.ts +2 -0
  1365. package/dist/ui/lifecycle-group-box/index.d.ts.map +1 -0
  1366. package/dist/ui/lifecycle-group-box/index.js +2 -0
  1367. package/dist/ui/lifecycle-group-box/index.js.map +1 -0
  1368. package/dist/ui/lifecycle-group-box/lifecycle-group-box-preview.cjs +71 -0
  1369. package/dist/ui/lifecycle-group-box/lifecycle-group-box-preview.cjs.map +1 -0
  1370. package/dist/ui/lifecycle-group-box/lifecycle-group-box-preview.d.ts +3 -0
  1371. package/dist/ui/lifecycle-group-box/lifecycle-group-box-preview.d.ts.map +1 -0
  1372. package/dist/ui/lifecycle-group-box/lifecycle-group-box-preview.js +47 -0
  1373. package/dist/ui/lifecycle-group-box/lifecycle-group-box-preview.js.map +1 -0
  1374. package/dist/ui/lifecycle-group-box/lifecycle-group-box.cjs +51 -0
  1375. package/dist/ui/lifecycle-group-box/lifecycle-group-box.cjs.map +1 -0
  1376. package/dist/ui/lifecycle-group-box/lifecycle-group-box.css +38 -0
  1377. package/dist/ui/lifecycle-group-box/lifecycle-group-box.d.ts +36 -0
  1378. package/dist/ui/lifecycle-group-box/lifecycle-group-box.d.ts.map +1 -0
  1379. package/dist/ui/lifecycle-group-box/lifecycle-group-box.js +27 -0
  1380. package/dist/ui/lifecycle-group-box/lifecycle-group-box.js.map +1 -0
  1381. package/dist/ui/lifecycle-minimap/index.cjs +23 -0
  1382. package/dist/ui/lifecycle-minimap/index.cjs.map +1 -0
  1383. package/dist/ui/lifecycle-minimap/index.d.ts +2 -0
  1384. package/dist/ui/lifecycle-minimap/index.d.ts.map +1 -0
  1385. package/dist/ui/lifecycle-minimap/index.js +2 -0
  1386. package/dist/ui/lifecycle-minimap/index.js.map +1 -0
  1387. package/dist/ui/lifecycle-minimap/lifecycle-minimap-preview.cjs +67 -0
  1388. package/dist/ui/lifecycle-minimap/lifecycle-minimap-preview.cjs.map +1 -0
  1389. package/dist/ui/lifecycle-minimap/lifecycle-minimap-preview.d.ts +3 -0
  1390. package/dist/ui/lifecycle-minimap/lifecycle-minimap-preview.d.ts.map +1 -0
  1391. package/dist/ui/lifecycle-minimap/lifecycle-minimap-preview.js +43 -0
  1392. package/dist/ui/lifecycle-minimap/lifecycle-minimap-preview.js.map +1 -0
  1393. package/dist/ui/lifecycle-minimap/lifecycle-minimap.cjs +96 -0
  1394. package/dist/ui/lifecycle-minimap/lifecycle-minimap.cjs.map +1 -0
  1395. package/dist/ui/lifecycle-minimap/lifecycle-minimap.css +29 -0
  1396. package/dist/ui/lifecycle-minimap/lifecycle-minimap.d.ts +37 -0
  1397. package/dist/ui/lifecycle-minimap/lifecycle-minimap.d.ts.map +1 -0
  1398. package/dist/ui/lifecycle-minimap/lifecycle-minimap.js +72 -0
  1399. package/dist/ui/lifecycle-minimap/lifecycle-minimap.js.map +1 -0
  1400. package/dist/ui/lifecycle-node-card/index.cjs +23 -0
  1401. package/dist/ui/lifecycle-node-card/index.cjs.map +1 -0
  1402. package/dist/ui/lifecycle-node-card/index.d.ts +2 -0
  1403. package/dist/ui/lifecycle-node-card/index.d.ts.map +1 -0
  1404. package/dist/ui/lifecycle-node-card/index.js +2 -0
  1405. package/dist/ui/lifecycle-node-card/index.js.map +1 -0
  1406. package/dist/ui/lifecycle-node-card/lifecycle-node-card-preview.cjs +64 -0
  1407. package/dist/ui/lifecycle-node-card/lifecycle-node-card-preview.cjs.map +1 -0
  1408. package/dist/ui/lifecycle-node-card/lifecycle-node-card-preview.d.ts +3 -0
  1409. package/dist/ui/lifecycle-node-card/lifecycle-node-card-preview.d.ts.map +1 -0
  1410. package/dist/ui/lifecycle-node-card/lifecycle-node-card-preview.js +42 -0
  1411. package/dist/ui/lifecycle-node-card/lifecycle-node-card-preview.js.map +1 -0
  1412. package/dist/ui/lifecycle-node-card/lifecycle-node-card.cjs +85 -0
  1413. package/dist/ui/lifecycle-node-card/lifecycle-node-card.cjs.map +1 -0
  1414. package/dist/ui/lifecycle-node-card/lifecycle-node-card.css +99 -0
  1415. package/dist/ui/lifecycle-node-card/lifecycle-node-card.d.ts +39 -0
  1416. package/dist/ui/lifecycle-node-card/lifecycle-node-card.d.ts.map +1 -0
  1417. package/dist/ui/lifecycle-node-card/lifecycle-node-card.js +61 -0
  1418. package/dist/ui/lifecycle-node-card/lifecycle-node-card.js.map +1 -0
  1419. package/dist/ui/lifecycle-terminal/index.cjs +23 -0
  1420. package/dist/ui/lifecycle-terminal/index.cjs.map +1 -0
  1421. package/dist/ui/lifecycle-terminal/index.d.ts +2 -0
  1422. package/dist/ui/lifecycle-terminal/index.d.ts.map +1 -0
  1423. package/dist/ui/lifecycle-terminal/index.js +2 -0
  1424. package/dist/ui/lifecycle-terminal/index.js.map +1 -0
  1425. package/dist/ui/lifecycle-terminal/lifecycle-terminal-preview.cjs +44 -0
  1426. package/dist/ui/lifecycle-terminal/lifecycle-terminal-preview.cjs.map +1 -0
  1427. package/dist/ui/lifecycle-terminal/lifecycle-terminal-preview.d.ts +3 -0
  1428. package/dist/ui/lifecycle-terminal/lifecycle-terminal-preview.d.ts.map +1 -0
  1429. package/dist/ui/lifecycle-terminal/lifecycle-terminal-preview.js +20 -0
  1430. package/dist/ui/lifecycle-terminal/lifecycle-terminal-preview.js.map +1 -0
  1431. package/dist/ui/lifecycle-terminal/lifecycle-terminal.cjs +33 -0
  1432. package/dist/ui/lifecycle-terminal/lifecycle-terminal.cjs.map +1 -0
  1433. package/dist/ui/lifecycle-terminal/lifecycle-terminal.css +15 -0
  1434. package/dist/ui/lifecycle-terminal/lifecycle-terminal.d.ts +12 -0
  1435. package/dist/ui/lifecycle-terminal/lifecycle-terminal.d.ts.map +1 -0
  1436. package/dist/ui/lifecycle-terminal/lifecycle-terminal.js +9 -0
  1437. package/dist/ui/lifecycle-terminal/lifecycle-terminal.js.map +1 -0
  1438. package/dist/ui/lifecycle-zoom-control/index.cjs +23 -0
  1439. package/dist/ui/lifecycle-zoom-control/index.cjs.map +1 -0
  1440. package/dist/ui/lifecycle-zoom-control/index.d.ts +2 -0
  1441. package/dist/ui/lifecycle-zoom-control/index.d.ts.map +1 -0
  1442. package/dist/ui/lifecycle-zoom-control/index.js +2 -0
  1443. package/dist/ui/lifecycle-zoom-control/index.js.map +1 -0
  1444. package/dist/ui/lifecycle-zoom-control/lifecycle-zoom-control-preview.cjs +42 -0
  1445. package/dist/ui/lifecycle-zoom-control/lifecycle-zoom-control-preview.cjs.map +1 -0
  1446. package/dist/ui/lifecycle-zoom-control/lifecycle-zoom-control-preview.d.ts +3 -0
  1447. package/dist/ui/lifecycle-zoom-control/lifecycle-zoom-control-preview.d.ts.map +1 -0
  1448. package/dist/ui/lifecycle-zoom-control/lifecycle-zoom-control-preview.js +18 -0
  1449. package/dist/ui/lifecycle-zoom-control/lifecycle-zoom-control-preview.js.map +1 -0
  1450. package/dist/ui/lifecycle-zoom-control/lifecycle-zoom-control.cjs +80 -0
  1451. package/dist/ui/lifecycle-zoom-control/lifecycle-zoom-control.cjs.map +1 -0
  1452. package/dist/ui/lifecycle-zoom-control/lifecycle-zoom-control.css +48 -0
  1453. package/dist/ui/lifecycle-zoom-control/lifecycle-zoom-control.d.ts +20 -0
  1454. package/dist/ui/lifecycle-zoom-control/lifecycle-zoom-control.d.ts.map +1 -0
  1455. package/dist/ui/lifecycle-zoom-control/lifecycle-zoom-control.js +56 -0
  1456. package/dist/ui/lifecycle-zoom-control/lifecycle-zoom-control.js.map +1 -0
  1457. package/dist/ui/link/index.cjs +23 -0
  1458. package/dist/ui/link/index.cjs.map +1 -0
  1459. package/dist/ui/link/index.d.ts +2 -0
  1460. package/dist/ui/link/index.d.ts.map +1 -0
  1461. package/dist/ui/link/index.js +2 -0
  1462. package/dist/ui/link/index.js.map +1 -0
  1463. package/dist/ui/link/link-preview.cjs +82 -0
  1464. package/dist/ui/link/link-preview.cjs.map +1 -0
  1465. package/dist/ui/link/link-preview.d.ts +3 -0
  1466. package/dist/ui/link/link-preview.d.ts.map +1 -0
  1467. package/dist/ui/link/link-preview.js +58 -0
  1468. package/dist/ui/link/link-preview.js.map +1 -0
  1469. package/dist/ui/link/link.cjs +65 -0
  1470. package/dist/ui/link/link.cjs.map +1 -0
  1471. package/dist/ui/link/link.css +49 -0
  1472. package/dist/ui/link/link.d.ts +12 -0
  1473. package/dist/ui/link/link.d.ts.map +1 -0
  1474. package/dist/ui/link/link.js +41 -0
  1475. package/dist/ui/link/link.js.map +1 -0
  1476. package/dist/ui/list/index.cjs +23 -0
  1477. package/dist/ui/list/index.cjs.map +1 -0
  1478. package/dist/ui/list/index.d.ts +2 -0
  1479. package/dist/ui/list/index.d.ts.map +1 -0
  1480. package/dist/ui/list/index.js +2 -0
  1481. package/dist/ui/list/index.js.map +1 -0
  1482. package/dist/ui/list/list-item-preview.cjs +162 -0
  1483. package/dist/ui/list/list-item-preview.cjs.map +1 -0
  1484. package/dist/ui/list/list-item-preview.d.ts +3 -0
  1485. package/dist/ui/list/list-item-preview.d.ts.map +1 -0
  1486. package/dist/ui/list/list-item-preview.js +138 -0
  1487. package/dist/ui/list/list-item-preview.js.map +1 -0
  1488. package/dist/ui/list/list.cjs +106 -0
  1489. package/dist/ui/list/list.cjs.map +1 -0
  1490. package/dist/ui/list/list.css +77 -0
  1491. package/dist/ui/list/list.d.ts +54 -0
  1492. package/dist/ui/list/list.d.ts.map +1 -0
  1493. package/dist/ui/list/list.js +80 -0
  1494. package/dist/ui/list/list.js.map +1 -0
  1495. package/dist/ui/listbox/index.cjs +23 -0
  1496. package/dist/ui/listbox/index.cjs.map +1 -0
  1497. package/dist/ui/listbox/index.d.ts +2 -0
  1498. package/dist/ui/listbox/index.d.ts.map +1 -0
  1499. package/dist/ui/listbox/index.js +2 -0
  1500. package/dist/ui/listbox/index.js.map +1 -0
  1501. package/dist/ui/listbox/listbox-preview.cjs +298 -0
  1502. package/dist/ui/listbox/listbox-preview.cjs.map +1 -0
  1503. package/dist/ui/listbox/listbox-preview.d.ts +23 -0
  1504. package/dist/ui/listbox/listbox-preview.d.ts.map +1 -0
  1505. package/dist/ui/listbox/listbox-preview.js +274 -0
  1506. package/dist/ui/listbox/listbox-preview.js.map +1 -0
  1507. package/dist/ui/listbox/listbox.cjs +502 -0
  1508. package/dist/ui/listbox/listbox.cjs.map +1 -0
  1509. package/dist/ui/listbox/listbox.css +213 -0
  1510. package/dist/ui/listbox/listbox.d.ts +242 -0
  1511. package/dist/ui/listbox/listbox.d.ts.map +1 -0
  1512. package/dist/ui/listbox/listbox.js +482 -0
  1513. package/dist/ui/listbox/listbox.js.map +1 -0
  1514. package/dist/ui/loader/index.cjs +23 -0
  1515. package/dist/ui/loader/index.cjs.map +1 -0
  1516. package/dist/ui/loader/index.d.ts +2 -0
  1517. package/dist/ui/loader/index.d.ts.map +1 -0
  1518. package/dist/ui/loader/index.js +2 -0
  1519. package/dist/ui/loader/index.js.map +1 -0
  1520. package/dist/ui/loader/loader-preview.cjs +181 -0
  1521. package/dist/ui/loader/loader-preview.cjs.map +1 -0
  1522. package/dist/ui/loader/loader-preview.d.ts +3 -0
  1523. package/dist/ui/loader/loader-preview.d.ts.map +1 -0
  1524. package/dist/ui/loader/loader-preview.js +157 -0
  1525. package/dist/ui/loader/loader-preview.js.map +1 -0
  1526. package/dist/ui/loader/loader.cjs +67 -0
  1527. package/dist/ui/loader/loader.cjs.map +1 -0
  1528. package/dist/ui/loader/loader.css +118 -0
  1529. package/dist/ui/loader/loader.d.ts +18 -0
  1530. package/dist/ui/loader/loader.d.ts.map +1 -0
  1531. package/dist/ui/loader/loader.js +43 -0
  1532. package/dist/ui/loader/loader.js.map +1 -0
  1533. package/dist/ui/menu/index.cjs +23 -0
  1534. package/dist/ui/menu/index.cjs.map +1 -0
  1535. package/dist/ui/menu/index.d.ts +2 -0
  1536. package/dist/ui/menu/index.d.ts.map +1 -0
  1537. package/dist/ui/menu/index.js +2 -0
  1538. package/dist/ui/menu/index.js.map +1 -0
  1539. package/dist/ui/menu/menu-preview.cjs +251 -0
  1540. package/dist/ui/menu/menu-preview.cjs.map +1 -0
  1541. package/dist/ui/menu/menu-preview.d.ts +5 -0
  1542. package/dist/ui/menu/menu-preview.d.ts.map +1 -0
  1543. package/dist/ui/menu/menu-preview.js +227 -0
  1544. package/dist/ui/menu/menu-preview.js.map +1 -0
  1545. package/dist/ui/menu/menu.cjs +257 -0
  1546. package/dist/ui/menu/menu.cjs.map +1 -0
  1547. package/dist/ui/menu/menu.css +216 -0
  1548. package/dist/ui/menu/menu.d.ts +174 -0
  1549. package/dist/ui/menu/menu.d.ts.map +1 -0
  1550. package/dist/ui/menu/menu.js +240 -0
  1551. package/dist/ui/menu/menu.js.map +1 -0
  1552. package/dist/ui/meta-row/index.cjs +23 -0
  1553. package/dist/ui/meta-row/index.cjs.map +1 -0
  1554. package/dist/ui/meta-row/index.d.ts +2 -0
  1555. package/dist/ui/meta-row/index.d.ts.map +1 -0
  1556. package/dist/ui/meta-row/index.js +2 -0
  1557. package/dist/ui/meta-row/index.js.map +1 -0
  1558. package/dist/ui/meta-row/meta-row-preview.cjs +44 -0
  1559. package/dist/ui/meta-row/meta-row-preview.cjs.map +1 -0
  1560. package/dist/ui/meta-row/meta-row-preview.d.ts +3 -0
  1561. package/dist/ui/meta-row/meta-row-preview.d.ts.map +1 -0
  1562. package/dist/ui/meta-row/meta-row-preview.js +20 -0
  1563. package/dist/ui/meta-row/meta-row-preview.js.map +1 -0
  1564. package/dist/ui/meta-row/meta-row.cjs +38 -0
  1565. package/dist/ui/meta-row/meta-row.cjs.map +1 -0
  1566. package/dist/ui/meta-row/meta-row.css +20 -0
  1567. package/dist/ui/meta-row/meta-row.d.ts +19 -0
  1568. package/dist/ui/meta-row/meta-row.d.ts.map +1 -0
  1569. package/dist/ui/meta-row/meta-row.js +14 -0
  1570. package/dist/ui/meta-row/meta-row.js.map +1 -0
  1571. package/dist/ui/modal/index.cjs +23 -0
  1572. package/dist/ui/modal/index.cjs.map +1 -0
  1573. package/dist/ui/modal/index.d.ts +2 -0
  1574. package/dist/ui/modal/index.d.ts.map +1 -0
  1575. package/dist/ui/modal/index.js +2 -0
  1576. package/dist/ui/modal/index.js.map +1 -0
  1577. package/dist/ui/modal/modal-preview.cjs +152 -0
  1578. package/dist/ui/modal/modal-preview.cjs.map +1 -0
  1579. package/dist/ui/modal/modal-preview.d.ts +15 -0
  1580. package/dist/ui/modal/modal-preview.d.ts.map +1 -0
  1581. package/dist/ui/modal/modal-preview.js +135 -0
  1582. package/dist/ui/modal/modal-preview.js.map +1 -0
  1583. package/dist/ui/modal/modal.cjs +87 -0
  1584. package/dist/ui/modal/modal.cjs.map +1 -0
  1585. package/dist/ui/modal/modal.css +89 -0
  1586. package/dist/ui/modal/modal.d.ts +58 -0
  1587. package/dist/ui/modal/modal.d.ts.map +1 -0
  1588. package/dist/ui/modal/modal.js +69 -0
  1589. package/dist/ui/modal/modal.js.map +1 -0
  1590. package/dist/ui/number-input/index.cjs +23 -0
  1591. package/dist/ui/number-input/index.cjs.map +1 -0
  1592. package/dist/ui/number-input/index.d.ts +2 -0
  1593. package/dist/ui/number-input/index.d.ts.map +1 -0
  1594. package/dist/ui/number-input/index.js +2 -0
  1595. package/dist/ui/number-input/index.js.map +1 -0
  1596. package/dist/ui/number-input/number-input-preview.cjs +96 -0
  1597. package/dist/ui/number-input/number-input-preview.cjs.map +1 -0
  1598. package/dist/ui/number-input/number-input-preview.d.ts +3 -0
  1599. package/dist/ui/number-input/number-input-preview.d.ts.map +1 -0
  1600. package/dist/ui/number-input/number-input-preview.js +72 -0
  1601. package/dist/ui/number-input/number-input-preview.js.map +1 -0
  1602. package/dist/ui/number-input/number-input.cjs +162 -0
  1603. package/dist/ui/number-input/number-input.cjs.map +1 -0
  1604. package/dist/ui/number-input/number-input.css +83 -0
  1605. package/dist/ui/number-input/number-input.d.ts +69 -0
  1606. package/dist/ui/number-input/number-input.d.ts.map +1 -0
  1607. package/dist/ui/number-input/number-input.js +137 -0
  1608. package/dist/ui/number-input/number-input.js.map +1 -0
  1609. package/dist/ui/number-stepper/index.cjs +23 -0
  1610. package/dist/ui/number-stepper/index.cjs.map +1 -0
  1611. package/dist/ui/number-stepper/index.d.ts +2 -0
  1612. package/dist/ui/number-stepper/index.d.ts.map +1 -0
  1613. package/dist/ui/number-stepper/index.js +2 -0
  1614. package/dist/ui/number-stepper/index.js.map +1 -0
  1615. package/dist/ui/number-stepper/number-stepper-preview.cjs +141 -0
  1616. package/dist/ui/number-stepper/number-stepper-preview.cjs.map +1 -0
  1617. package/dist/ui/number-stepper/number-stepper-preview.d.ts +5 -0
  1618. package/dist/ui/number-stepper/number-stepper-preview.d.ts.map +1 -0
  1619. package/dist/ui/number-stepper/number-stepper-preview.js +117 -0
  1620. package/dist/ui/number-stepper/number-stepper-preview.js.map +1 -0
  1621. package/dist/ui/number-stepper/number-stepper.cjs +113 -0
  1622. package/dist/ui/number-stepper/number-stepper.cjs.map +1 -0
  1623. package/dist/ui/number-stepper/number-stepper.css +95 -0
  1624. package/dist/ui/number-stepper/number-stepper.d.ts +77 -0
  1625. package/dist/ui/number-stepper/number-stepper.d.ts.map +1 -0
  1626. package/dist/ui/number-stepper/number-stepper.js +89 -0
  1627. package/dist/ui/number-stepper/number-stepper.js.map +1 -0
  1628. package/dist/ui/option-list/index.cjs +29 -0
  1629. package/dist/ui/option-list/index.cjs.map +1 -0
  1630. package/dist/ui/option-list/index.d.ts +3 -0
  1631. package/dist/ui/option-list/index.d.ts.map +1 -0
  1632. package/dist/ui/option-list/index.js +5 -0
  1633. package/dist/ui/option-list/index.js.map +1 -0
  1634. package/dist/ui/option-list/option-list-preview.cjs +78 -0
  1635. package/dist/ui/option-list/option-list-preview.cjs.map +1 -0
  1636. package/dist/ui/option-list/option-list-preview.d.ts +3 -0
  1637. package/dist/ui/option-list/option-list-preview.d.ts.map +1 -0
  1638. package/dist/ui/option-list/option-list-preview.js +54 -0
  1639. package/dist/ui/option-list/option-list-preview.js.map +1 -0
  1640. package/dist/ui/option-list/option-list.cjs +42 -0
  1641. package/dist/ui/option-list/option-list.cjs.map +1 -0
  1642. package/dist/ui/option-list/option-list.css +83 -0
  1643. package/dist/ui/option-list/option-list.d.ts +32 -0
  1644. package/dist/ui/option-list/option-list.d.ts.map +1 -0
  1645. package/dist/ui/option-list/option-list.js +18 -0
  1646. package/dist/ui/option-list/option-list.js.map +1 -0
  1647. package/dist/ui/page-header/index.cjs +23 -0
  1648. package/dist/ui/page-header/index.cjs.map +1 -0
  1649. package/dist/ui/page-header/index.d.ts +2 -0
  1650. package/dist/ui/page-header/index.d.ts.map +1 -0
  1651. package/dist/ui/page-header/index.js +2 -0
  1652. package/dist/ui/page-header/index.js.map +1 -0
  1653. package/dist/ui/page-header/page-header-preview.cjs +84 -0
  1654. package/dist/ui/page-header/page-header-preview.cjs.map +1 -0
  1655. package/dist/ui/page-header/page-header-preview.d.ts +3 -0
  1656. package/dist/ui/page-header/page-header-preview.d.ts.map +1 -0
  1657. package/dist/ui/page-header/page-header-preview.js +60 -0
  1658. package/dist/ui/page-header/page-header-preview.js.map +1 -0
  1659. package/dist/ui/page-header/page-header.cjs +47 -0
  1660. package/dist/ui/page-header/page-header.cjs.map +1 -0
  1661. package/dist/ui/page-header/page-header.css +38 -0
  1662. package/dist/ui/page-header/page-header.d.ts +9 -0
  1663. package/dist/ui/page-header/page-header.d.ts.map +1 -0
  1664. package/dist/ui/page-header/page-header.js +23 -0
  1665. package/dist/ui/page-header/page-header.js.map +1 -0
  1666. package/dist/ui/page-shell/index.cjs +23 -0
  1667. package/dist/ui/page-shell/index.cjs.map +1 -0
  1668. package/dist/ui/page-shell/index.d.ts +2 -0
  1669. package/dist/ui/page-shell/index.d.ts.map +1 -0
  1670. package/dist/ui/page-shell/index.js +2 -0
  1671. package/dist/ui/page-shell/index.js.map +1 -0
  1672. package/dist/ui/page-shell/page-shell-preview.cjs +138 -0
  1673. package/dist/ui/page-shell/page-shell-preview.cjs.map +1 -0
  1674. package/dist/ui/page-shell/page-shell-preview.d.ts +3 -0
  1675. package/dist/ui/page-shell/page-shell-preview.d.ts.map +1 -0
  1676. package/dist/ui/page-shell/page-shell-preview.js +114 -0
  1677. package/dist/ui/page-shell/page-shell-preview.js.map +1 -0
  1678. package/dist/ui/page-shell/page-shell.cjs +46 -0
  1679. package/dist/ui/page-shell/page-shell.cjs.map +1 -0
  1680. package/dist/ui/page-shell/page-shell.css +31 -0
  1681. package/dist/ui/page-shell/page-shell.d.ts +22 -0
  1682. package/dist/ui/page-shell/page-shell.d.ts.map +1 -0
  1683. package/dist/ui/page-shell/page-shell.js +22 -0
  1684. package/dist/ui/page-shell/page-shell.js.map +1 -0
  1685. package/dist/ui/password-input/index.cjs +23 -0
  1686. package/dist/ui/password-input/index.cjs.map +1 -0
  1687. package/dist/ui/password-input/index.d.ts +2 -0
  1688. package/dist/ui/password-input/index.d.ts.map +1 -0
  1689. package/dist/ui/password-input/index.js +2 -0
  1690. package/dist/ui/password-input/index.js.map +1 -0
  1691. package/dist/ui/password-input/password-input-preview.cjs +94 -0
  1692. package/dist/ui/password-input/password-input-preview.cjs.map +1 -0
  1693. package/dist/ui/password-input/password-input-preview.d.ts +3 -0
  1694. package/dist/ui/password-input/password-input-preview.d.ts.map +1 -0
  1695. package/dist/ui/password-input/password-input-preview.js +70 -0
  1696. package/dist/ui/password-input/password-input-preview.js.map +1 -0
  1697. package/dist/ui/password-input/password-input.cjs +74 -0
  1698. package/dist/ui/password-input/password-input.cjs.map +1 -0
  1699. package/dist/ui/password-input/password-input.css +111 -0
  1700. package/dist/ui/password-input/password-input.d.ts +24 -0
  1701. package/dist/ui/password-input/password-input.d.ts.map +1 -0
  1702. package/dist/ui/password-input/password-input.js +50 -0
  1703. package/dist/ui/password-input/password-input.js.map +1 -0
  1704. package/dist/ui/phone-input/index.cjs +23 -0
  1705. package/dist/ui/phone-input/index.cjs.map +1 -0
  1706. package/dist/ui/phone-input/index.d.ts +2 -0
  1707. package/dist/ui/phone-input/index.d.ts.map +1 -0
  1708. package/dist/ui/phone-input/index.js +2 -0
  1709. package/dist/ui/phone-input/index.js.map +1 -0
  1710. package/dist/ui/phone-input/phone-input-preview.cjs +108 -0
  1711. package/dist/ui/phone-input/phone-input-preview.cjs.map +1 -0
  1712. package/dist/ui/phone-input/phone-input-preview.d.ts +3 -0
  1713. package/dist/ui/phone-input/phone-input-preview.d.ts.map +1 -0
  1714. package/dist/ui/phone-input/phone-input-preview.js +84 -0
  1715. package/dist/ui/phone-input/phone-input-preview.js.map +1 -0
  1716. package/dist/ui/phone-input/phone-input.cjs +176 -0
  1717. package/dist/ui/phone-input/phone-input.cjs.map +1 -0
  1718. package/dist/ui/phone-input/phone-input.css +194 -0
  1719. package/dist/ui/phone-input/phone-input.d.ts +46 -0
  1720. package/dist/ui/phone-input/phone-input.d.ts.map +1 -0
  1721. package/dist/ui/phone-input/phone-input.js +157 -0
  1722. package/dist/ui/phone-input/phone-input.js.map +1 -0
  1723. package/dist/ui/pill-select/index.cjs +23 -0
  1724. package/dist/ui/pill-select/index.cjs.map +1 -0
  1725. package/dist/ui/pill-select/index.d.ts +2 -0
  1726. package/dist/ui/pill-select/index.d.ts.map +1 -0
  1727. package/dist/ui/pill-select/index.js +2 -0
  1728. package/dist/ui/pill-select/index.js.map +1 -0
  1729. package/dist/ui/pill-select/pill-select-preview.cjs +60 -0
  1730. package/dist/ui/pill-select/pill-select-preview.cjs.map +1 -0
  1731. package/dist/ui/pill-select/pill-select-preview.d.ts +29 -0
  1732. package/dist/ui/pill-select/pill-select-preview.d.ts.map +1 -0
  1733. package/dist/ui/pill-select/pill-select-preview.js +36 -0
  1734. package/dist/ui/pill-select/pill-select-preview.js.map +1 -0
  1735. package/dist/ui/pill-select/pill-select.cjs +187 -0
  1736. package/dist/ui/pill-select/pill-select.cjs.map +1 -0
  1737. package/dist/ui/pill-select/pill-select.css +127 -0
  1738. package/dist/ui/pill-select/pill-select.d.ts +68 -0
  1739. package/dist/ui/pill-select/pill-select.d.ts.map +1 -0
  1740. package/dist/ui/pill-select/pill-select.js +163 -0
  1741. package/dist/ui/pill-select/pill-select.js.map +1 -0
  1742. package/dist/ui/popover/index.cjs +23 -0
  1743. package/dist/ui/popover/index.cjs.map +1 -0
  1744. package/dist/ui/popover/index.d.ts +2 -0
  1745. package/dist/ui/popover/index.d.ts.map +1 -0
  1746. package/dist/ui/popover/index.js +2 -0
  1747. package/dist/ui/popover/index.js.map +1 -0
  1748. package/dist/ui/popover/popover.cjs +170 -0
  1749. package/dist/ui/popover/popover.cjs.map +1 -0
  1750. package/dist/ui/popover/popover.css +11 -0
  1751. package/dist/ui/popover/popover.d.ts +62 -0
  1752. package/dist/ui/popover/popover.d.ts.map +1 -0
  1753. package/dist/ui/popover/popover.js +153 -0
  1754. package/dist/ui/popover/popover.js.map +1 -0
  1755. package/dist/ui/progress-bar/index.cjs +29 -0
  1756. package/dist/ui/progress-bar/index.cjs.map +1 -0
  1757. package/dist/ui/progress-bar/index.d.ts +3 -0
  1758. package/dist/ui/progress-bar/index.d.ts.map +1 -0
  1759. package/dist/ui/progress-bar/index.js +5 -0
  1760. package/dist/ui/progress-bar/index.js.map +1 -0
  1761. package/dist/ui/progress-bar/progress-bar-preview.cjs +51 -0
  1762. package/dist/ui/progress-bar/progress-bar-preview.cjs.map +1 -0
  1763. package/dist/ui/progress-bar/progress-bar-preview.d.ts +5 -0
  1764. package/dist/ui/progress-bar/progress-bar-preview.d.ts.map +1 -0
  1765. package/dist/ui/progress-bar/progress-bar-preview.js +27 -0
  1766. package/dist/ui/progress-bar/progress-bar-preview.js.map +1 -0
  1767. package/dist/ui/progress-bar/progress-bar.cjs +89 -0
  1768. package/dist/ui/progress-bar/progress-bar.cjs.map +1 -0
  1769. package/dist/ui/progress-bar/progress-bar.css +90 -0
  1770. package/dist/ui/progress-bar/progress-bar.d.ts +26 -0
  1771. package/dist/ui/progress-bar/progress-bar.d.ts.map +1 -0
  1772. package/dist/ui/progress-bar/progress-bar.js +65 -0
  1773. package/dist/ui/progress-bar/progress-bar.js.map +1 -0
  1774. package/dist/ui/property-field/index.cjs +23 -0
  1775. package/dist/ui/property-field/index.cjs.map +1 -0
  1776. package/dist/ui/property-field/index.d.ts +2 -0
  1777. package/dist/ui/property-field/index.d.ts.map +1 -0
  1778. package/dist/ui/property-field/index.js +2 -0
  1779. package/dist/ui/property-field/index.js.map +1 -0
  1780. package/dist/ui/property-field/property-field-preview.cjs +49 -0
  1781. package/dist/ui/property-field/property-field-preview.cjs.map +1 -0
  1782. package/dist/ui/property-field/property-field-preview.d.ts +3 -0
  1783. package/dist/ui/property-field/property-field-preview.d.ts.map +1 -0
  1784. package/dist/ui/property-field/property-field-preview.js +25 -0
  1785. package/dist/ui/property-field/property-field-preview.js.map +1 -0
  1786. package/dist/ui/property-field/property-field.cjs +41 -0
  1787. package/dist/ui/property-field/property-field.cjs.map +1 -0
  1788. package/dist/ui/property-field/property-field.css +40 -0
  1789. package/dist/ui/property-field/property-field.d.ts +11 -0
  1790. package/dist/ui/property-field/property-field.d.ts.map +1 -0
  1791. package/dist/ui/property-field/property-field.js +16 -0
  1792. package/dist/ui/property-field/property-field.js.map +1 -0
  1793. package/dist/ui/property-field/property-grid-preview.cjs +43 -0
  1794. package/dist/ui/property-field/property-grid-preview.cjs.map +1 -0
  1795. package/dist/ui/property-field/property-grid-preview.d.ts +9 -0
  1796. package/dist/ui/property-field/property-grid-preview.d.ts.map +1 -0
  1797. package/dist/ui/property-field/property-grid-preview.js +19 -0
  1798. package/dist/ui/property-field/property-grid-preview.js.map +1 -0
  1799. package/dist/ui/radio-group/index.cjs +23 -0
  1800. package/dist/ui/radio-group/index.cjs.map +1 -0
  1801. package/dist/ui/radio-group/index.d.ts +2 -0
  1802. package/dist/ui/radio-group/index.d.ts.map +1 -0
  1803. package/dist/ui/radio-group/index.js +2 -0
  1804. package/dist/ui/radio-group/index.js.map +1 -0
  1805. package/dist/ui/radio-group/radio-group-preview.cjs +156 -0
  1806. package/dist/ui/radio-group/radio-group-preview.cjs.map +1 -0
  1807. package/dist/ui/radio-group/radio-group-preview.d.ts +3 -0
  1808. package/dist/ui/radio-group/radio-group-preview.d.ts.map +1 -0
  1809. package/dist/ui/radio-group/radio-group-preview.js +132 -0
  1810. package/dist/ui/radio-group/radio-group-preview.js.map +1 -0
  1811. package/dist/ui/radio-group/radio-group.cjs +112 -0
  1812. package/dist/ui/radio-group/radio-group.cjs.map +1 -0
  1813. package/dist/ui/radio-group/radio-group.css +104 -0
  1814. package/dist/ui/radio-group/radio-group.d.ts +44 -0
  1815. package/dist/ui/radio-group/radio-group.d.ts.map +1 -0
  1816. package/dist/ui/radio-group/radio-group.js +87 -0
  1817. package/dist/ui/radio-group/radio-group.js.map +1 -0
  1818. package/dist/ui/range-slider/index.cjs +23 -0
  1819. package/dist/ui/range-slider/index.cjs.map +1 -0
  1820. package/dist/ui/range-slider/index.d.ts +2 -0
  1821. package/dist/ui/range-slider/index.d.ts.map +1 -0
  1822. package/dist/ui/range-slider/index.js +2 -0
  1823. package/dist/ui/range-slider/index.js.map +1 -0
  1824. package/dist/ui/range-slider/range-slider.cjs +99 -0
  1825. package/dist/ui/range-slider/range-slider.cjs.map +1 -0
  1826. package/dist/ui/range-slider/range-slider.css +95 -0
  1827. package/dist/ui/range-slider/range-slider.d.ts +43 -0
  1828. package/dist/ui/range-slider/range-slider.d.ts.map +1 -0
  1829. package/dist/ui/range-slider/range-slider.js +75 -0
  1830. package/dist/ui/range-slider/range-slider.js.map +1 -0
  1831. package/dist/ui/responsive-grid/index.cjs +23 -0
  1832. package/dist/ui/responsive-grid/index.cjs.map +1 -0
  1833. package/dist/ui/responsive-grid/index.d.ts +2 -0
  1834. package/dist/ui/responsive-grid/index.d.ts.map +1 -0
  1835. package/dist/ui/responsive-grid/index.js +2 -0
  1836. package/dist/ui/responsive-grid/index.js.map +1 -0
  1837. package/dist/ui/responsive-grid/responsive-grid-preview.cjs +56 -0
  1838. package/dist/ui/responsive-grid/responsive-grid-preview.cjs.map +1 -0
  1839. package/dist/ui/responsive-grid/responsive-grid-preview.d.ts +8 -0
  1840. package/dist/ui/responsive-grid/responsive-grid-preview.d.ts.map +1 -0
  1841. package/dist/ui/responsive-grid/responsive-grid-preview.js +32 -0
  1842. package/dist/ui/responsive-grid/responsive-grid-preview.js.map +1 -0
  1843. package/dist/ui/responsive-grid/responsive-grid.cjs +44 -0
  1844. package/dist/ui/responsive-grid/responsive-grid.cjs.map +1 -0
  1845. package/dist/ui/responsive-grid/responsive-grid.css +7 -0
  1846. package/dist/ui/responsive-grid/responsive-grid.d.ts +25 -0
  1847. package/dist/ui/responsive-grid/responsive-grid.d.ts.map +1 -0
  1848. package/dist/ui/responsive-grid/responsive-grid.js +20 -0
  1849. package/dist/ui/responsive-grid/responsive-grid.js.map +1 -0
  1850. package/dist/ui/search-dropdown/index.cjs +23 -0
  1851. package/dist/ui/search-dropdown/index.cjs.map +1 -0
  1852. package/dist/ui/search-dropdown/index.d.ts +2 -0
  1853. package/dist/ui/search-dropdown/index.d.ts.map +1 -0
  1854. package/dist/ui/search-dropdown/index.js +2 -0
  1855. package/dist/ui/search-dropdown/index.js.map +1 -0
  1856. package/dist/ui/search-dropdown/search-dropdown-preview.cjs +92 -0
  1857. package/dist/ui/search-dropdown/search-dropdown-preview.cjs.map +1 -0
  1858. package/dist/ui/search-dropdown/search-dropdown-preview.d.ts +3 -0
  1859. package/dist/ui/search-dropdown/search-dropdown-preview.d.ts.map +1 -0
  1860. package/dist/ui/search-dropdown/search-dropdown-preview.js +68 -0
  1861. package/dist/ui/search-dropdown/search-dropdown-preview.js.map +1 -0
  1862. package/dist/ui/search-dropdown/search-dropdown.cjs +143 -0
  1863. package/dist/ui/search-dropdown/search-dropdown.cjs.map +1 -0
  1864. package/dist/ui/search-dropdown/search-dropdown.css +131 -0
  1865. package/dist/ui/search-dropdown/search-dropdown.d.ts +67 -0
  1866. package/dist/ui/search-dropdown/search-dropdown.d.ts.map +1 -0
  1867. package/dist/ui/search-dropdown/search-dropdown.js +119 -0
  1868. package/dist/ui/search-dropdown/search-dropdown.js.map +1 -0
  1869. package/dist/ui/section-header/index.cjs +23 -0
  1870. package/dist/ui/section-header/index.cjs.map +1 -0
  1871. package/dist/ui/section-header/index.d.ts +2 -0
  1872. package/dist/ui/section-header/index.d.ts.map +1 -0
  1873. package/dist/ui/section-header/index.js +2 -0
  1874. package/dist/ui/section-header/index.js.map +1 -0
  1875. package/dist/ui/section-header/section-header-preview.cjs +56 -0
  1876. package/dist/ui/section-header/section-header-preview.cjs.map +1 -0
  1877. package/dist/ui/section-header/section-header-preview.d.ts +3 -0
  1878. package/dist/ui/section-header/section-header-preview.d.ts.map +1 -0
  1879. package/dist/ui/section-header/section-header-preview.js +32 -0
  1880. package/dist/ui/section-header/section-header-preview.js.map +1 -0
  1881. package/dist/ui/section-header/section-header.cjs +47 -0
  1882. package/dist/ui/section-header/section-header.cjs.map +1 -0
  1883. package/dist/ui/section-header/section-header.css +39 -0
  1884. package/dist/ui/section-header/section-header.d.ts +40 -0
  1885. package/dist/ui/section-header/section-header.d.ts.map +1 -0
  1886. package/dist/ui/section-header/section-header.js +23 -0
  1887. package/dist/ui/section-header/section-header.js.map +1 -0
  1888. package/dist/ui/segment-card/index.cjs +29 -0
  1889. package/dist/ui/segment-card/index.cjs.map +1 -0
  1890. package/dist/ui/segment-card/index.d.ts +3 -0
  1891. package/dist/ui/segment-card/index.d.ts.map +1 -0
  1892. package/dist/ui/segment-card/index.js +5 -0
  1893. package/dist/ui/segment-card/index.js.map +1 -0
  1894. package/dist/ui/segment-card/segment-card-preview.cjs +115 -0
  1895. package/dist/ui/segment-card/segment-card-preview.cjs.map +1 -0
  1896. package/dist/ui/segment-card/segment-card-preview.d.ts +3 -0
  1897. package/dist/ui/segment-card/segment-card-preview.d.ts.map +1 -0
  1898. package/dist/ui/segment-card/segment-card-preview.js +91 -0
  1899. package/dist/ui/segment-card/segment-card-preview.js.map +1 -0
  1900. package/dist/ui/segment-card/segment-card.cjs +39 -0
  1901. package/dist/ui/segment-card/segment-card.cjs.map +1 -0
  1902. package/dist/ui/segment-card/segment-card.css +18 -0
  1903. package/dist/ui/segment-card/segment-card.d.ts +31 -0
  1904. package/dist/ui/segment-card/segment-card.d.ts.map +1 -0
  1905. package/dist/ui/segment-card/segment-card.js +15 -0
  1906. package/dist/ui/segment-card/segment-card.js.map +1 -0
  1907. package/dist/ui/segment-row/index.cjs +29 -0
  1908. package/dist/ui/segment-row/index.cjs.map +1 -0
  1909. package/dist/ui/segment-row/index.d.ts +3 -0
  1910. package/dist/ui/segment-row/index.d.ts.map +1 -0
  1911. package/dist/ui/segment-row/index.js +5 -0
  1912. package/dist/ui/segment-row/index.js.map +1 -0
  1913. package/dist/ui/segment-row/segment-row-preview.cjs +78 -0
  1914. package/dist/ui/segment-row/segment-row-preview.cjs.map +1 -0
  1915. package/dist/ui/segment-row/segment-row-preview.d.ts +8 -0
  1916. package/dist/ui/segment-row/segment-row-preview.d.ts.map +1 -0
  1917. package/dist/ui/segment-row/segment-row-preview.js +54 -0
  1918. package/dist/ui/segment-row/segment-row-preview.js.map +1 -0
  1919. package/dist/ui/segment-row/segment-row.cjs +77 -0
  1920. package/dist/ui/segment-row/segment-row.cjs.map +1 -0
  1921. package/dist/ui/segment-row/segment-row.css +114 -0
  1922. package/dist/ui/segment-row/segment-row.d.ts +42 -0
  1923. package/dist/ui/segment-row/segment-row.d.ts.map +1 -0
  1924. package/dist/ui/segment-row/segment-row.js +53 -0
  1925. package/dist/ui/segment-row/segment-row.js.map +1 -0
  1926. package/dist/ui/side-flexpane/index.cjs +23 -0
  1927. package/dist/ui/side-flexpane/index.cjs.map +1 -0
  1928. package/dist/ui/side-flexpane/index.d.ts +2 -0
  1929. package/dist/ui/side-flexpane/index.d.ts.map +1 -0
  1930. package/dist/ui/side-flexpane/index.js +2 -0
  1931. package/dist/ui/side-flexpane/index.js.map +1 -0
  1932. package/dist/ui/side-flexpane/side-flexpane-preview.cjs +64 -0
  1933. package/dist/ui/side-flexpane/side-flexpane-preview.cjs.map +1 -0
  1934. package/dist/ui/side-flexpane/side-flexpane-preview.d.ts +9 -0
  1935. package/dist/ui/side-flexpane/side-flexpane-preview.d.ts.map +1 -0
  1936. package/dist/ui/side-flexpane/side-flexpane-preview.js +40 -0
  1937. package/dist/ui/side-flexpane/side-flexpane-preview.js.map +1 -0
  1938. package/dist/ui/side-flexpane/side-flexpane.cjs +187 -0
  1939. package/dist/ui/side-flexpane/side-flexpane.cjs.map +1 -0
  1940. package/dist/ui/side-flexpane/side-flexpane.css +134 -0
  1941. package/dist/ui/side-flexpane/side-flexpane.d.ts +63 -0
  1942. package/dist/ui/side-flexpane/side-flexpane.d.ts.map +1 -0
  1943. package/dist/ui/side-flexpane/side-flexpane.js +167 -0
  1944. package/dist/ui/side-flexpane/side-flexpane.js.map +1 -0
  1945. package/dist/ui/sidebar-nav-item/index.cjs +23 -0
  1946. package/dist/ui/sidebar-nav-item/index.cjs.map +1 -0
  1947. package/dist/ui/sidebar-nav-item/index.d.ts +2 -0
  1948. package/dist/ui/sidebar-nav-item/index.d.ts.map +1 -0
  1949. package/dist/ui/sidebar-nav-item/index.js +2 -0
  1950. package/dist/ui/sidebar-nav-item/index.js.map +1 -0
  1951. package/dist/ui/sidebar-nav-item/sidebar-nav-item-preview.cjs +137 -0
  1952. package/dist/ui/sidebar-nav-item/sidebar-nav-item-preview.cjs.map +1 -0
  1953. package/dist/ui/sidebar-nav-item/sidebar-nav-item-preview.d.ts +3 -0
  1954. package/dist/ui/sidebar-nav-item/sidebar-nav-item-preview.d.ts.map +1 -0
  1955. package/dist/ui/sidebar-nav-item/sidebar-nav-item-preview.js +113 -0
  1956. package/dist/ui/sidebar-nav-item/sidebar-nav-item-preview.js.map +1 -0
  1957. package/dist/ui/sidebar-nav-item/sidebar-nav-item.cjs +73 -0
  1958. package/dist/ui/sidebar-nav-item/sidebar-nav-item.cjs.map +1 -0
  1959. package/dist/ui/sidebar-nav-item/sidebar-nav-item.css +94 -0
  1960. package/dist/ui/sidebar-nav-item/sidebar-nav-item.d.ts +49 -0
  1961. package/dist/ui/sidebar-nav-item/sidebar-nav-item.d.ts.map +1 -0
  1962. package/dist/ui/sidebar-nav-item/sidebar-nav-item.js +49 -0
  1963. package/dist/ui/sidebar-nav-item/sidebar-nav-item.js.map +1 -0
  1964. package/dist/ui/sidebar-nav-trigger/index.cjs +23 -0
  1965. package/dist/ui/sidebar-nav-trigger/index.cjs.map +1 -0
  1966. package/dist/ui/sidebar-nav-trigger/index.d.ts +2 -0
  1967. package/dist/ui/sidebar-nav-trigger/index.d.ts.map +1 -0
  1968. package/dist/ui/sidebar-nav-trigger/index.js +2 -0
  1969. package/dist/ui/sidebar-nav-trigger/index.js.map +1 -0
  1970. package/dist/ui/sidebar-nav-trigger/sidebar-nav-trigger-preview.cjs +104 -0
  1971. package/dist/ui/sidebar-nav-trigger/sidebar-nav-trigger-preview.cjs.map +1 -0
  1972. package/dist/ui/sidebar-nav-trigger/sidebar-nav-trigger-preview.d.ts +28 -0
  1973. package/dist/ui/sidebar-nav-trigger/sidebar-nav-trigger-preview.d.ts.map +1 -0
  1974. package/dist/ui/sidebar-nav-trigger/sidebar-nav-trigger-preview.js +80 -0
  1975. package/dist/ui/sidebar-nav-trigger/sidebar-nav-trigger-preview.js.map +1 -0
  1976. package/dist/ui/sidebar-nav-trigger/sidebar-nav-trigger.cjs +74 -0
  1977. package/dist/ui/sidebar-nav-trigger/sidebar-nav-trigger.cjs.map +1 -0
  1978. package/dist/ui/sidebar-nav-trigger/sidebar-nav-trigger.css +202 -0
  1979. package/dist/ui/sidebar-nav-trigger/sidebar-nav-trigger.d.ts +124 -0
  1980. package/dist/ui/sidebar-nav-trigger/sidebar-nav-trigger.d.ts.map +1 -0
  1981. package/dist/ui/sidebar-nav-trigger/sidebar-nav-trigger.js +50 -0
  1982. package/dist/ui/sidebar-nav-trigger/sidebar-nav-trigger.js.map +1 -0
  1983. package/dist/ui/slider/index.cjs +23 -0
  1984. package/dist/ui/slider/index.cjs.map +1 -0
  1985. package/dist/ui/slider/index.d.ts +2 -0
  1986. package/dist/ui/slider/index.d.ts.map +1 -0
  1987. package/dist/ui/slider/index.js +2 -0
  1988. package/dist/ui/slider/index.js.map +1 -0
  1989. package/dist/ui/slider/slider-preview.cjs +129 -0
  1990. package/dist/ui/slider/slider-preview.cjs.map +1 -0
  1991. package/dist/ui/slider/slider-preview.d.ts +3 -0
  1992. package/dist/ui/slider/slider-preview.d.ts.map +1 -0
  1993. package/dist/ui/slider/slider-preview.js +105 -0
  1994. package/dist/ui/slider/slider-preview.js.map +1 -0
  1995. package/dist/ui/slider/slider.cjs +61 -0
  1996. package/dist/ui/slider/slider.cjs.map +1 -0
  1997. package/dist/ui/slider/slider.css +62 -0
  1998. package/dist/ui/slider/slider.d.ts +21 -0
  1999. package/dist/ui/slider/slider.d.ts.map +1 -0
  2000. package/dist/ui/slider/slider.js +37 -0
  2001. package/dist/ui/slider/slider.js.map +1 -0
  2002. package/dist/ui/stack/index.cjs +23 -0
  2003. package/dist/ui/stack/index.cjs.map +1 -0
  2004. package/dist/ui/stack/index.d.ts +2 -0
  2005. package/dist/ui/stack/index.d.ts.map +1 -0
  2006. package/dist/ui/stack/index.js +2 -0
  2007. package/dist/ui/stack/index.js.map +1 -0
  2008. package/dist/ui/stack/stack-preview.cjs +53 -0
  2009. package/dist/ui/stack/stack-preview.cjs.map +1 -0
  2010. package/dist/ui/stack/stack-preview.d.ts +3 -0
  2011. package/dist/ui/stack/stack-preview.d.ts.map +1 -0
  2012. package/dist/ui/stack/stack-preview.js +29 -0
  2013. package/dist/ui/stack/stack-preview.js.map +1 -0
  2014. package/dist/ui/stack/stack.cjs +50 -0
  2015. package/dist/ui/stack/stack.cjs.map +1 -0
  2016. package/dist/ui/stack/stack.css +19 -0
  2017. package/dist/ui/stack/stack.d.ts +21 -0
  2018. package/dist/ui/stack/stack.d.ts.map +1 -0
  2019. package/dist/ui/stack/stack.js +26 -0
  2020. package/dist/ui/stack/stack.js.map +1 -0
  2021. package/dist/ui/stat-card/index.cjs +23 -0
  2022. package/dist/ui/stat-card/index.cjs.map +1 -0
  2023. package/dist/ui/stat-card/index.d.ts +2 -0
  2024. package/dist/ui/stat-card/index.d.ts.map +1 -0
  2025. package/dist/ui/stat-card/index.js +2 -0
  2026. package/dist/ui/stat-card/index.js.map +1 -0
  2027. package/dist/ui/stat-card/stat-card-preview.cjs +84 -0
  2028. package/dist/ui/stat-card/stat-card-preview.cjs.map +1 -0
  2029. package/dist/ui/stat-card/stat-card-preview.d.ts +3 -0
  2030. package/dist/ui/stat-card/stat-card-preview.d.ts.map +1 -0
  2031. package/dist/ui/stat-card/stat-card-preview.js +60 -0
  2032. package/dist/ui/stat-card/stat-card-preview.js.map +1 -0
  2033. package/dist/ui/stat-card/stat-card.cjs +67 -0
  2034. package/dist/ui/stat-card/stat-card.cjs.map +1 -0
  2035. package/dist/ui/stat-card/stat-card.css +47 -0
  2036. package/dist/ui/stat-card/stat-card.d.ts +10 -0
  2037. package/dist/ui/stat-card/stat-card.d.ts.map +1 -0
  2038. package/dist/ui/stat-card/stat-card.js +43 -0
  2039. package/dist/ui/stat-card/stat-card.js.map +1 -0
  2040. package/dist/ui/styles.css +100 -0
  2041. package/dist/ui/tabs/index.cjs +23 -0
  2042. package/dist/ui/tabs/index.cjs.map +1 -0
  2043. package/dist/ui/tabs/index.d.ts +2 -0
  2044. package/dist/ui/tabs/index.d.ts.map +1 -0
  2045. package/dist/ui/tabs/index.js +2 -0
  2046. package/dist/ui/tabs/index.js.map +1 -0
  2047. package/dist/ui/tabs/tabs-preview.cjs +123 -0
  2048. package/dist/ui/tabs/tabs-preview.cjs.map +1 -0
  2049. package/dist/ui/tabs/tabs-preview.d.ts +3 -0
  2050. package/dist/ui/tabs/tabs-preview.d.ts.map +1 -0
  2051. package/dist/ui/tabs/tabs-preview.js +99 -0
  2052. package/dist/ui/tabs/tabs-preview.js.map +1 -0
  2053. package/dist/ui/tabs/tabs.cjs +77 -0
  2054. package/dist/ui/tabs/tabs.cjs.map +1 -0
  2055. package/dist/ui/tabs/tabs.css +69 -0
  2056. package/dist/ui/tabs/tabs.d.ts +17 -0
  2057. package/dist/ui/tabs/tabs.d.ts.map +1 -0
  2058. package/dist/ui/tabs/tabs.js +53 -0
  2059. package/dist/ui/tabs/tabs.js.map +1 -0
  2060. package/dist/ui/tabs-underline/index.cjs +23 -0
  2061. package/dist/ui/tabs-underline/index.cjs.map +1 -0
  2062. package/dist/ui/tabs-underline/index.d.ts +2 -0
  2063. package/dist/ui/tabs-underline/index.d.ts.map +1 -0
  2064. package/dist/ui/tabs-underline/index.js +2 -0
  2065. package/dist/ui/tabs-underline/index.js.map +1 -0
  2066. package/dist/ui/tabs-underline/tabs-underline-preview.cjs +128 -0
  2067. package/dist/ui/tabs-underline/tabs-underline-preview.cjs.map +1 -0
  2068. package/dist/ui/tabs-underline/tabs-underline-preview.d.ts +3 -0
  2069. package/dist/ui/tabs-underline/tabs-underline-preview.d.ts.map +1 -0
  2070. package/dist/ui/tabs-underline/tabs-underline-preview.js +104 -0
  2071. package/dist/ui/tabs-underline/tabs-underline-preview.js.map +1 -0
  2072. package/dist/ui/tabs-underline/tabs-underline.cjs +80 -0
  2073. package/dist/ui/tabs-underline/tabs-underline.cjs.map +1 -0
  2074. package/dist/ui/tabs-underline/tabs-underline.css +59 -0
  2075. package/dist/ui/tabs-underline/tabs-underline.d.ts +17 -0
  2076. package/dist/ui/tabs-underline/tabs-underline.d.ts.map +1 -0
  2077. package/dist/ui/tabs-underline/tabs-underline.js +56 -0
  2078. package/dist/ui/tabs-underline/tabs-underline.js.map +1 -0
  2079. package/dist/ui/tag/index.cjs +23 -0
  2080. package/dist/ui/tag/index.cjs.map +1 -0
  2081. package/dist/ui/tag/index.d.ts +2 -0
  2082. package/dist/ui/tag/index.d.ts.map +1 -0
  2083. package/dist/ui/tag/index.js +2 -0
  2084. package/dist/ui/tag/index.js.map +1 -0
  2085. package/dist/ui/tag/tag-preview.cjs +65 -0
  2086. package/dist/ui/tag/tag-preview.cjs.map +1 -0
  2087. package/dist/ui/tag/tag-preview.d.ts +3 -0
  2088. package/dist/ui/tag/tag-preview.d.ts.map +1 -0
  2089. package/dist/ui/tag/tag-preview.js +41 -0
  2090. package/dist/ui/tag/tag-preview.js.map +1 -0
  2091. package/dist/ui/tag/tag.cjs +36 -0
  2092. package/dist/ui/tag/tag.cjs.map +1 -0
  2093. package/dist/ui/tag/tag.css +85 -0
  2094. package/dist/ui/tag/tag.d.ts +23 -0
  2095. package/dist/ui/tag/tag.d.ts.map +1 -0
  2096. package/dist/ui/tag/tag.js +12 -0
  2097. package/dist/ui/tag/tag.js.map +1 -0
  2098. package/dist/ui/thumbnail/index.cjs +23 -0
  2099. package/dist/ui/thumbnail/index.cjs.map +1 -0
  2100. package/dist/ui/thumbnail/index.d.ts +2 -0
  2101. package/dist/ui/thumbnail/index.d.ts.map +1 -0
  2102. package/dist/ui/thumbnail/index.js +2 -0
  2103. package/dist/ui/thumbnail/index.js.map +1 -0
  2104. package/dist/ui/thumbnail/thumbnail-preview.cjs +61 -0
  2105. package/dist/ui/thumbnail/thumbnail-preview.cjs.map +1 -0
  2106. package/dist/ui/thumbnail/thumbnail-preview.d.ts +3 -0
  2107. package/dist/ui/thumbnail/thumbnail-preview.d.ts.map +1 -0
  2108. package/dist/ui/thumbnail/thumbnail-preview.js +37 -0
  2109. package/dist/ui/thumbnail/thumbnail-preview.js.map +1 -0
  2110. package/dist/ui/thumbnail/thumbnail.cjs +59 -0
  2111. package/dist/ui/thumbnail/thumbnail.cjs.map +1 -0
  2112. package/dist/ui/thumbnail/thumbnail.css +42 -0
  2113. package/dist/ui/thumbnail/thumbnail.d.ts +10 -0
  2114. package/dist/ui/thumbnail/thumbnail.d.ts.map +1 -0
  2115. package/dist/ui/thumbnail/thumbnail.js +35 -0
  2116. package/dist/ui/thumbnail/thumbnail.js.map +1 -0
  2117. package/dist/ui/time-input/index.cjs +23 -0
  2118. package/dist/ui/time-input/index.cjs.map +1 -0
  2119. package/dist/ui/time-input/index.d.ts +2 -0
  2120. package/dist/ui/time-input/index.d.ts.map +1 -0
  2121. package/dist/ui/time-input/index.js +2 -0
  2122. package/dist/ui/time-input/index.js.map +1 -0
  2123. package/dist/ui/time-input/time-input-preview.cjs +101 -0
  2124. package/dist/ui/time-input/time-input-preview.cjs.map +1 -0
  2125. package/dist/ui/time-input/time-input-preview.d.ts +3 -0
  2126. package/dist/ui/time-input/time-input-preview.d.ts.map +1 -0
  2127. package/dist/ui/time-input/time-input-preview.js +77 -0
  2128. package/dist/ui/time-input/time-input-preview.js.map +1 -0
  2129. package/dist/ui/time-input/time-input.cjs +346 -0
  2130. package/dist/ui/time-input/time-input.cjs.map +1 -0
  2131. package/dist/ui/time-input/time-input.css +260 -0
  2132. package/dist/ui/time-input/time-input.d.ts +77 -0
  2133. package/dist/ui/time-input/time-input.d.ts.map +1 -0
  2134. package/dist/ui/time-input/time-input.js +322 -0
  2135. package/dist/ui/time-input/time-input.js.map +1 -0
  2136. package/dist/ui/timeline-entry/index.cjs +23 -0
  2137. package/dist/ui/timeline-entry/index.cjs.map +1 -0
  2138. package/dist/ui/timeline-entry/index.d.ts +2 -0
  2139. package/dist/ui/timeline-entry/index.d.ts.map +1 -0
  2140. package/dist/ui/timeline-entry/index.js +2 -0
  2141. package/dist/ui/timeline-entry/index.js.map +1 -0
  2142. package/dist/ui/timeline-entry/timeline-entry-preview.cjs +174 -0
  2143. package/dist/ui/timeline-entry/timeline-entry-preview.cjs.map +1 -0
  2144. package/dist/ui/timeline-entry/timeline-entry-preview.d.ts +3 -0
  2145. package/dist/ui/timeline-entry/timeline-entry-preview.d.ts.map +1 -0
  2146. package/dist/ui/timeline-entry/timeline-entry-preview.js +150 -0
  2147. package/dist/ui/timeline-entry/timeline-entry-preview.js.map +1 -0
  2148. package/dist/ui/timeline-entry/timeline-entry.cjs +64 -0
  2149. package/dist/ui/timeline-entry/timeline-entry.cjs.map +1 -0
  2150. package/dist/ui/timeline-entry/timeline-entry.css +73 -0
  2151. package/dist/ui/timeline-entry/timeline-entry.d.ts +15 -0
  2152. package/dist/ui/timeline-entry/timeline-entry.d.ts.map +1 -0
  2153. package/dist/ui/timeline-entry/timeline-entry.js +40 -0
  2154. package/dist/ui/timeline-entry/timeline-entry.js.map +1 -0
  2155. package/dist/ui/toast/index.cjs +25 -0
  2156. package/dist/ui/toast/index.cjs.map +1 -0
  2157. package/dist/ui/toast/index.d.ts +3 -0
  2158. package/dist/ui/toast/index.d.ts.map +1 -0
  2159. package/dist/ui/toast/index.js +3 -0
  2160. package/dist/ui/toast/index.js.map +1 -0
  2161. package/dist/ui/toast/toast-preview.cjs +162 -0
  2162. package/dist/ui/toast/toast-preview.cjs.map +1 -0
  2163. package/dist/ui/toast/toast-preview.d.ts +14 -0
  2164. package/dist/ui/toast/toast-preview.d.ts.map +1 -0
  2165. package/dist/ui/toast/toast-preview.js +138 -0
  2166. package/dist/ui/toast/toast-preview.js.map +1 -0
  2167. package/dist/ui/toast/toast.cjs +81 -0
  2168. package/dist/ui/toast/toast.cjs.map +1 -0
  2169. package/dist/ui/toast/toast.css +193 -0
  2170. package/dist/ui/toast/toast.d.ts +38 -0
  2171. package/dist/ui/toast/toast.d.ts.map +1 -0
  2172. package/dist/ui/toast/toast.js +57 -0
  2173. package/dist/ui/toast/toast.js.map +1 -0
  2174. package/dist/ui/toast/toaster.cjs +88 -0
  2175. package/dist/ui/toast/toaster.cjs.map +1 -0
  2176. package/dist/ui/toast/toaster.d.ts +47 -0
  2177. package/dist/ui/toast/toaster.d.ts.map +1 -0
  2178. package/dist/ui/toast/toaster.js +66 -0
  2179. package/dist/ui/toast/toaster.js.map +1 -0
  2180. package/dist/ui/toggle-switch/index.cjs +23 -0
  2181. package/dist/ui/toggle-switch/index.cjs.map +1 -0
  2182. package/dist/ui/toggle-switch/index.d.ts +2 -0
  2183. package/dist/ui/toggle-switch/index.d.ts.map +1 -0
  2184. package/dist/ui/toggle-switch/index.js +2 -0
  2185. package/dist/ui/toggle-switch/index.js.map +1 -0
  2186. package/dist/ui/toggle-switch/toggle-preview.cjs +146 -0
  2187. package/dist/ui/toggle-switch/toggle-preview.cjs.map +1 -0
  2188. package/dist/ui/toggle-switch/toggle-preview.d.ts +3 -0
  2189. package/dist/ui/toggle-switch/toggle-preview.d.ts.map +1 -0
  2190. package/dist/ui/toggle-switch/toggle-preview.js +122 -0
  2191. package/dist/ui/toggle-switch/toggle-preview.js.map +1 -0
  2192. package/dist/ui/toggle-switch/toggle-switch.cjs +85 -0
  2193. package/dist/ui/toggle-switch/toggle-switch.cjs.map +1 -0
  2194. package/dist/ui/toggle-switch/toggle-switch.css +95 -0
  2195. package/dist/ui/toggle-switch/toggle-switch.d.ts +36 -0
  2196. package/dist/ui/toggle-switch/toggle-switch.d.ts.map +1 -0
  2197. package/dist/ui/toggle-switch/toggle-switch.js +61 -0
  2198. package/dist/ui/toggle-switch/toggle-switch.js.map +1 -0
  2199. package/dist/ui/tooltip/content-tooltip-preview.cjs +98 -0
  2200. package/dist/ui/tooltip/content-tooltip-preview.cjs.map +1 -0
  2201. package/dist/ui/tooltip/content-tooltip-preview.d.ts +3 -0
  2202. package/dist/ui/tooltip/content-tooltip-preview.d.ts.map +1 -0
  2203. package/dist/ui/tooltip/content-tooltip-preview.js +74 -0
  2204. package/dist/ui/tooltip/content-tooltip-preview.js.map +1 -0
  2205. package/dist/ui/tooltip/index.cjs +23 -0
  2206. package/dist/ui/tooltip/index.cjs.map +1 -0
  2207. package/dist/ui/tooltip/index.d.ts +2 -0
  2208. package/dist/ui/tooltip/index.d.ts.map +1 -0
  2209. package/dist/ui/tooltip/index.js +2 -0
  2210. package/dist/ui/tooltip/index.js.map +1 -0
  2211. package/dist/ui/tooltip/tooltip-preview.cjs +87 -0
  2212. package/dist/ui/tooltip/tooltip-preview.cjs.map +1 -0
  2213. package/dist/ui/tooltip/tooltip-preview.d.ts +3 -0
  2214. package/dist/ui/tooltip/tooltip-preview.d.ts.map +1 -0
  2215. package/dist/ui/tooltip/tooltip-preview.js +63 -0
  2216. package/dist/ui/tooltip/tooltip-preview.js.map +1 -0
  2217. package/dist/ui/tooltip/tooltip.cjs +63 -0
  2218. package/dist/ui/tooltip/tooltip.cjs.map +1 -0
  2219. package/dist/ui/tooltip/tooltip.css +51 -0
  2220. package/dist/ui/tooltip/tooltip.d.ts +14 -0
  2221. package/dist/ui/tooltip/tooltip.d.ts.map +1 -0
  2222. package/dist/ui/tooltip/tooltip.js +38 -0
  2223. package/dist/ui/tooltip/tooltip.js.map +1 -0
  2224. package/dist/ui/type-overview-card/index.cjs +23 -0
  2225. package/dist/ui/type-overview-card/index.cjs.map +1 -0
  2226. package/dist/ui/type-overview-card/index.d.ts +2 -0
  2227. package/dist/ui/type-overview-card/index.d.ts.map +1 -0
  2228. package/dist/ui/type-overview-card/index.js +2 -0
  2229. package/dist/ui/type-overview-card/index.js.map +1 -0
  2230. package/dist/ui/type-overview-card/type-overview-card-preview.cjs +59 -0
  2231. package/dist/ui/type-overview-card/type-overview-card-preview.cjs.map +1 -0
  2232. package/dist/ui/type-overview-card/type-overview-card-preview.d.ts +3 -0
  2233. package/dist/ui/type-overview-card/type-overview-card-preview.d.ts.map +1 -0
  2234. package/dist/ui/type-overview-card/type-overview-card-preview.js +35 -0
  2235. package/dist/ui/type-overview-card/type-overview-card-preview.js.map +1 -0
  2236. package/dist/ui/type-overview-card/type-overview-card.cjs +67 -0
  2237. package/dist/ui/type-overview-card/type-overview-card.cjs.map +1 -0
  2238. package/dist/ui/type-overview-card/type-overview-card.css +64 -0
  2239. package/dist/ui/type-overview-card/type-overview-card.d.ts +19 -0
  2240. package/dist/ui/type-overview-card/type-overview-card.d.ts.map +1 -0
  2241. package/dist/ui/type-overview-card/type-overview-card.js +43 -0
  2242. package/dist/ui/type-overview-card/type-overview-card.js.map +1 -0
  2243. package/dist/ui/view-switcher/index.cjs +23 -0
  2244. package/dist/ui/view-switcher/index.cjs.map +1 -0
  2245. package/dist/ui/view-switcher/index.d.ts +2 -0
  2246. package/dist/ui/view-switcher/index.d.ts.map +1 -0
  2247. package/dist/ui/view-switcher/index.js +2 -0
  2248. package/dist/ui/view-switcher/index.js.map +1 -0
  2249. package/dist/ui/view-switcher/view-switcher-preview.cjs +122 -0
  2250. package/dist/ui/view-switcher/view-switcher-preview.cjs.map +1 -0
  2251. package/dist/ui/view-switcher/view-switcher-preview.d.ts +3 -0
  2252. package/dist/ui/view-switcher/view-switcher-preview.d.ts.map +1 -0
  2253. package/dist/ui/view-switcher/view-switcher-preview.js +98 -0
  2254. package/dist/ui/view-switcher/view-switcher-preview.js.map +1 -0
  2255. package/dist/ui/view-switcher/view-switcher.cjs +66 -0
  2256. package/dist/ui/view-switcher/view-switcher.cjs.map +1 -0
  2257. package/dist/ui/view-switcher/view-switcher.css +47 -0
  2258. package/dist/ui/view-switcher/view-switcher.d.ts +17 -0
  2259. package/dist/ui/view-switcher/view-switcher.d.ts.map +1 -0
  2260. package/dist/ui/view-switcher/view-switcher.js +42 -0
  2261. package/dist/ui/view-switcher/view-switcher.js.map +1 -0
  2262. package/package.json +134 -0
@@ -0,0 +1,1956 @@
1
+ const inputsDefs = [
2
+ // ── Inputs ──
3
+ {
4
+ id: "input-text",
5
+ name: "Text Input",
6
+ category: "Inputs",
7
+ description: "Standard text input field with label. State knobs cover default / hover / focus / disabled / error \u2014 error replaces the previous standalone `Input with Error` atom (one tone surface, one shape surface).",
8
+ styleProperties: [
9
+ // Default
10
+ { key: "backgroundColor", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "default" } },
11
+ { key: "borderColor", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "default" } },
12
+ { key: "color", label: "Text", control: "color", defaultValue: "var(--color-text)", section: "fieldColors", showWhen: { state: "default" } },
13
+ // Hover
14
+ { key: "hoverBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "hover" } },
15
+ { key: "hoverBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "hover" } },
16
+ // Focus
17
+ { key: "focusBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "focus" } },
18
+ { key: "focusRing", label: "Ring", control: "color", defaultValue: "var(--color-accent)", section: "focusState", showWhen: { state: "focus" } },
19
+ // Disabled
20
+ { key: "disabledBg", label: "Background", control: "color", defaultValue: "var(--color-surface-alt)", section: "fieldColors", showWhen: { state: "disabled" } },
21
+ { key: "disabledBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "disabled" } },
22
+ { key: "disabledColor", label: "Text", control: "color", defaultValue: "var(--color-text-muted)", section: "fieldColors", showWhen: { state: "disabled" } },
23
+ { key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.6, min: 0.1, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
24
+ // Error
25
+ { key: "errorBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "error" } },
26
+ { key: "errorBorder", label: "Border", control: "color", defaultValue: "var(--color-danger-text)", section: "fieldColors", showWhen: { state: "error" } },
27
+ { key: "errorColor", label: "Label + Message", control: "color", defaultValue: "var(--color-danger-text)", section: "errorState", showWhen: { state: "error" } },
28
+ { key: "errorMessageSize", label: "Message Size", control: "number", defaultValue: 12, min: 10, max: 16, step: 1, unit: "px", section: "errorState", showWhen: { state: "error" } },
29
+ // Shared
30
+ { key: "borderRadius", label: "Border Radius", control: "slider", defaultValue: 8, min: 0, max: 16, step: 1, unit: "px" },
31
+ { key: "paddingX", label: "Padding X", control: "number", defaultValue: 12, min: 4, max: 24, step: 2, unit: "px" },
32
+ { key: "paddingY", label: "Padding Y", control: "number", defaultValue: 10, min: 4, max: 20, step: 2, unit: "px" },
33
+ { key: "fontSize", label: "Font Size", control: "number", defaultValue: 14, min: 10, max: 20, step: 1, unit: "px" }
34
+ // Label theming AND label position live on FormField. This atom
35
+ // is just the input element — no label rendered, no labelPosition
36
+ // variant. Wrap with `<FormField>` when you want a label.
37
+ // Previously had `labelColor` knob + shared `labelPositionVariant`
38
+ // here; both only affected the workbench preview's hand-rolled
39
+ // label and have been removed as part of the consolidation pass.
40
+ ],
41
+ layoutVariants: [
42
+ {
43
+ key: "state",
44
+ label: "State",
45
+ options: [
46
+ { value: "default", label: "Default" },
47
+ { value: "hover", label: "Hover" },
48
+ { value: "focus", label: "Focus" },
49
+ { value: "disabled", label: "Disabled" },
50
+ { value: "error", label: "Error" }
51
+ ],
52
+ defaultValue: "default"
53
+ }
54
+ ],
55
+ events: [
56
+ { name: "onChange", description: "Fires after the user commits a change (blur or Enter).", payload: "{ value: string }" },
57
+ { name: "onInput", description: "Fires on every keystroke. High-frequency \u2014 use for live validation, not for save.", payload: "{ value: string }" },
58
+ { name: "onFocus", description: "Fires when the field receives focus (click or Tab).", payload: "FocusEvent" },
59
+ { name: "onBlur", description: "Fires when the field loses focus.", payload: "FocusEvent" }
60
+ ],
61
+ api: {
62
+ importPath: "@viax.io/uxm/ui",
63
+ importNames: "TextInput",
64
+ props: [
65
+ { name: "value", type: "string", description: "Current value (controlled)." },
66
+ { name: "onChange", type: "(e: ChangeEvent<HTMLInputElement>) => void", description: "Change handler. Read `e.target.value`." },
67
+ { name: "placeholder", type: "string", description: "Placeholder shown when empty." },
68
+ { name: "type", type: '"text" | "email" | "tel" | "url" | "password" | "search"', defaultValue: '"text"', description: "Native input type \u2014 affects keyboard and validation hints on mobile." },
69
+ { name: "disabled", type: "boolean", defaultValue: "false", description: "Disables the input." },
70
+ { name: "clearable", type: "boolean", defaultValue: "true", description: 'Show a clear (\u2715) button at the trailing edge when the field has content. On by default; the \u2715 self-clears and fires `onChange` with "", so no wiring is needed for controlled fields. Pass `false` to opt out.' },
71
+ { name: "onClear", type: "() => void", description: "Optional override for the clear action. By default the field clears itself (and notifies via `onChange`); pass `onClear` only for custom reset logic beyond emptying the value." },
72
+ { name: "...rest", type: "InputHTMLAttributes<HTMLInputElement>", description: "All other native input attributes (aria-label, name, autoComplete, etc.) pass through." }
73
+ ]
74
+ }
75
+ },
76
+ {
77
+ id: "editable-cell",
78
+ name: "Editable Cell",
79
+ category: "Inputs",
80
+ description: "Inline-editable cell. Text / number swap the display for an input (Enter or blur commits, Esc cancels); date pairs the input with a Calendar popover \u2014 type a date or pick a day, either commits an ISO date string; select is pick-only \u2014 clicking opens a Listbox dropdown and picking an option commits its value immediately (display can still be a custom Tag/Badge via `format`); multiselect is select's array sibling \u2014 a MultiListbox toggles options with the panel open, the value is a string[] of picked option values shown as joined labels. Problems surface in a popover Banner under the cell \u2014 warning (yellow) for sync validate failures, error (red) for a rejected async `onCommit` \u2014 so the table row never changes height. Designed for DataTable cells but works anywhere an inline-edit pattern fits (PageHeader rename, StatCard label, etc.) \u2014 2 sizes: small (dense table scale, default) / medium (input-family scale for side panels and detail views), each with its own dimension knobs.",
81
+ styleProperties: [
82
+ // Layout — maxWidth and radius are shared across both sizes; the
83
+ // padding/font trio is per-size (gated by the Size variant), one
84
+ // symmetric knob set each, same pattern as Tag. Saves emit as
85
+ // `--uxm-editable-cell-{size}-{kebab(key)}` (fallback path in toCSS),
86
+ // which the matching size modifier re-points the private pipe vars at.
87
+ // There is deliberately NO height knob: the cell's height derives from
88
+ // Font Size × line-height + paddings (a `1lh` floor covers empty
89
+ // cells), so no knob can silently stop mattering.
90
+ { key: "smallPaddingX", label: "Padding X", control: "number", defaultValue: 8, min: 2, max: 16, step: 1, unit: "px", showWhen: { size: "small" } },
91
+ { key: "smallPaddingY", label: "Padding Y", control: "number", defaultValue: 4, min: 0, max: 10, step: 1, unit: "px", showWhen: { size: "small" } },
92
+ // Font Size and Max Width are SELECTS for both sizes, with the same
93
+ // option list either way — only the default differs. Two reasons:
94
+ // 1. Each has a value the CSS genuinely uses that no numeric stepper
95
+ // can express — `small`'s font default is the literal `inherit`
96
+ // (CSS `1em`, so a cell reads like the text around it) and
97
+ // `medium`'s cap default is `none` (fill the container, the
98
+ // input-family behaviour in a side panel).
99
+ // 2. Flipping Size must not change the CONTROL for the same property.
100
+ // A stepper for one size and a dropdown for the other made the
101
+ // panel unpredictable — the property is the same property.
102
+ { key: "smallFontSize", label: "Font Size", control: "select", defaultValue: "inherit", options: ["inherit", "11px", "12px", "13px", "14px", "15px", "16px", "18px"], showWhen: { size: "small" } },
103
+ { key: "mediumPaddingX", label: "Padding X", control: "number", defaultValue: 12, min: 4, max: 20, step: 1, unit: "px", showWhen: { size: "medium" } },
104
+ { key: "mediumPaddingY", label: "Padding Y", control: "number", defaultValue: 6, min: 0, max: 14, step: 1, unit: "px", showWhen: { size: "medium" } },
105
+ { key: "mediumFontSize", label: "Font Size", control: "select", defaultValue: "14px", options: ["inherit", "11px", "12px", "13px", "14px", "15px", "16px", "18px"], showWhen: { size: "medium" } },
106
+ // Per-size, like every other dimension: a table cell needs a cap so one
107
+ // long value can't push its column, a side-panel field should just fill
108
+ // the container. Same control + same options for both sizes (see the
109
+ // Font Size note above) — only the default differs.
110
+ { key: "smallMaxWidth", label: "Max Width", control: "select", defaultValue: "320px", options: ["none", "120px", "160px", "240px", "320px", "400px", "480px", "560px", "640px"], showWhen: { size: "small" } },
111
+ { key: "mediumMaxWidth", label: "Max Width", control: "select", defaultValue: "none", options: ["none", "120px", "160px", "240px", "320px", "400px", "480px", "560px", "640px"], showWhen: { size: "medium" } },
112
+ { key: "radius", label: "Border Radius", control: "slider", defaultValue: 4, min: 0, max: 12, step: 1, unit: "px" },
113
+ // Display chrome — one knob per peer state, matching the input
114
+ // family's default / hover / focus / disabled convention. Each is
115
+ // gated to its own state so the panel shows only what's relevant.
116
+ // The value's own colour: pinned through the component layer (the cell no
117
+ // longer inherits it — a muted column / dimmed row must not bleed in), so
118
+ // it belongs in the panel next to its placeholder twin.
119
+ { key: "color", label: "Text Color", control: "color", defaultValue: "var(--color-text)", section: "cellColors", showWhen: { state: "default" } },
120
+ { key: "placeholderColor", label: "Placeholder Color", control: "color", defaultValue: "var(--color-text-subtle)", section: "cellColors", showWhen: { state: "default" } },
121
+ { key: "hoverBg", label: "Hover Background", control: "color", defaultValue: "var(--color-surface-alt)", section: "cellColors", showWhen: { state: "hover" } },
122
+ // The hover affordance differs by type: text / number / date reveal a pencil,
123
+ // the pickers (select / multiselect) reveal a chevron. Gate each so only the
124
+ // relevant one shows under Hover.
125
+ { key: "pencilColor", label: "Pencil Color", control: "color", defaultValue: "var(--color-text-muted)", section: "cellColors", showWhen: { state: "hover", type: ["text", "number", "date"] } },
126
+ { key: "chevronColor", label: "Chevron Color", control: "color", defaultValue: "var(--color-text-muted)", section: "cellColors", showWhen: { state: "hover", type: ["select", "multiselect"] } },
127
+ { key: "focusBorder", label: "Focus Border", control: "color", defaultValue: "var(--color-accent)", section: "cellColors", showWhen: { state: "focus" } },
128
+ { key: "focusRing", label: "Focus Ring", control: "color", defaultValue: "var(--color-accent)", section: "cellColors", showWhen: { state: "focus" } },
129
+ { key: "disabledOpacity", label: "Disabled Opacity", control: "slider", defaultValue: 0.55, min: 0.2, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
130
+ // Editing — the active input swapped in on click.
131
+ { key: "inputBg", label: "Input Background", control: "color", defaultValue: "var(--color-card)", section: "editingColors", showWhen: { state: ["editing", "open"] } },
132
+ { key: "inputColor", label: "Input Text Color", control: "color", defaultValue: "var(--color-text)", section: "editingColors", showWhen: { state: ["editing", "open"] } },
133
+ { key: "inputBorder", label: "Input Border", control: "color", defaultValue: "var(--color-border)", section: "editingColors", showWhen: { state: "editing" } },
134
+ { key: "inputFocusBorder", label: "Input Focus Border", control: "color", defaultValue: "var(--color-accent)", section: "editingColors", showWhen: { state: ["editing", "open"] } },
135
+ // ONE knob pair for every in-field ✕: the same
136
+ // `--uxm-editable-cell-clear-*` vars theme the editing input's ✕
137
+ // (text / number / date) and the picker trigger's ✕, which is why the
138
+ // gate lists both surfaces' states — `editing` for the input,
139
+ // `open` for a picker (its open panel IS its editing surface). The
140
+ // pickers' dropdown-footer Clear is separate: that one lives on the
141
+ // Listbox atom's surface, not a per-cell knob.
142
+ { key: "clearColor", label: "Clear Color", control: "color", defaultValue: "var(--color-text-muted)", section: "editingColors", showWhen: { state: ["editing", "open"] } },
143
+ { key: "clearHoverBg", label: "Clear Hover Background", control: "color", defaultValue: "var(--color-surface-alt)", section: "editingColors", showWhen: { state: ["editing", "open"] } },
144
+ // Problem severities — each tints the editing input's border; the
145
+ // message itself rides in a popover Banner whose look comes from the
146
+ // Banner atom's own warning / error tokens (not per-cell knobs), so
147
+ // problems read identically everywhere in the product.
148
+ { key: "warningBorder", label: "Input Border", control: "color", defaultValue: "var(--color-warning-text)", section: "warningColors", showWhen: { state: "warning" } },
149
+ { key: "errorBorder", label: "Input Border", control: "color", defaultValue: "var(--color-danger-text)", section: "errorColors", showWhen: { state: "error" } }
150
+ ],
151
+ layoutVariants: [
152
+ {
153
+ // Editor-only state switcher (ephemeral — variants never reach the
154
+ // saved overrides). Peer states mirror the rest of the input family
155
+ // (default / hover / focus / disabled / error); `editing` is
156
+ // EditableCell-specific — the input swapped in on click — and
157
+ // `warning` is the recoverable-validation severity (vs `error` =
158
+ // failed save). The preview forces each state visually so its knobs
159
+ // are tunable without interaction. `submitting` is intentionally
160
+ // absent: it has no knobs of its own (it reuses the editing chrome
161
+ // with a disabled input).
162
+ key: "state",
163
+ label: "State",
164
+ options: [
165
+ { value: "default", label: "Default" },
166
+ { value: "hover", label: "Hover" },
167
+ { value: "focus", label: "Focus" },
168
+ { value: "disabled", label: "Disabled" },
169
+ // Editing is an input-only state — pickers (select/multiselect) have
170
+ // no text-edit mode, so the knob is hidden for them (a stale
171
+ // `editing` selection auto-repairs to Default on type switch).
172
+ { value: "editing", label: "Editing", showWhen: { type: ["text", "number", "date"] } },
173
+ // A picker's editing surface is its OPEN panel, so `open` is the
174
+ // pickers' counterpart to `editing`: it forces the open chrome and
175
+ // reveals the trigger ✕ so both are tunable without live clicking.
176
+ { value: "open", label: "Open", showWhen: { type: ["select", "multiselect"] } },
177
+ { value: "warning", label: "Warning" },
178
+ { value: "error", label: "Error" }
179
+ ],
180
+ defaultValue: "default"
181
+ },
182
+ {
183
+ key: "type",
184
+ label: "Type",
185
+ options: [
186
+ { value: "text", label: "Text" },
187
+ { value: "number", label: "Number" },
188
+ { value: "date", label: "Date" },
189
+ { value: "select", label: "Select" },
190
+ { value: "multiselect", label: "Multi-select" }
191
+ ],
192
+ defaultValue: "text"
193
+ },
194
+ {
195
+ // Small = the dense DataTable scale (the original look, and the
196
+ // default); medium = the input-family scale for standalone use in
197
+ // side panels / detail views. Each size owns its own dimension knobs.
198
+ key: "size",
199
+ label: "Size",
200
+ options: [
201
+ { value: "small", label: "Small" },
202
+ { value: "medium", label: "Medium" }
203
+ ],
204
+ defaultValue: "small"
205
+ },
206
+ {
207
+ // One format drives everything the user sees on a date cell —
208
+ // the rendered value, the empty-cell hint, the input mask, and
209
+ // parsing. Committed values stay ISO regardless.
210
+ key: "dateFormat",
211
+ label: "Date Format",
212
+ options: [
213
+ { value: "ymd", label: "YYYY-MM-DD" },
214
+ { value: "dmy", label: "DD/MM/YYYY" },
215
+ { value: "mdy", label: "MM/DD/YYYY" }
216
+ ],
217
+ defaultValue: "ymd",
218
+ showWhen: { type: "date" }
219
+ },
220
+ {
221
+ key: "align",
222
+ label: "Align",
223
+ options: [
224
+ { value: "left", label: "Left" },
225
+ { value: "center", label: "Center" },
226
+ { value: "right", label: "Right" }
227
+ ],
228
+ defaultValue: "left"
229
+ }
230
+ ],
231
+ events: [
232
+ { name: "onCommit", description: "Fires when the user confirms a change (Enter, or blur with no validation error; for multiselect, each toggle). Async \u2014 the atom shows a submitting state until the returned promise settles.", payload: "(next: string | number | string[]) => void | Promise<void>" }
233
+ ],
234
+ api: {
235
+ importPath: "@viax.io/uxm/ui",
236
+ importNames: "EditableCell",
237
+ props: [
238
+ { name: "value", type: "string | number | string[]", required: true, description: "Current committed value (a string[] of picked option values for multiselect). The atom keeps a draft internally during edit." },
239
+ { name: "onCommit", type: "(next: string | number | string[]) => void | Promise<void>", required: true, description: "Called when the user commits a change. Async \u2014 reject the promise to surface a red error Banner in the cell's popover and keep the cell in edit mode for retry (multiselect reverts its optimistic toggle)." },
240
+ { name: "type", type: '"text" | "number" | "date" | "select" | "multiselect"', defaultValue: '"text"', description: "Editor type. Number coerces to Number on commit; date pairs a masked input with a Calendar popover \u2014 typing and picking both commit a normalized ISO date string; select is pick-only \u2014 a Listbox dropdown whose chosen option's value commits immediately; multiselect toggles options in a MultiListbox and commits a string[]." },
241
+ { name: "dateFormat", type: '"mdy" | "dmy" | "ymd"', defaultValue: '"ymd"', description: "Display / typing format for date cells (same options as DateInput): one format drives the rendered value, the empty-cell hint, the input mask, and parsing. Committed values stay ISO regardless \u2014 presentation, not storage." },
242
+ { name: "options", type: "{ value: string; label: string }[]", description: 'Options for `type="select"` / `"multiselect"`. Picking one commits its `value` (or toggles it into the array); display shows the `label`(s) unless `format` overrides it.' },
243
+ { name: "searchable", type: "boolean", description: "Show a search box in the dropdown. Defaults to auto \u2014 shown only when there are more than 6 options." },
244
+ { name: "clearable", type: "boolean", defaultValue: "true", description: 'Clear affordance, per type. select / multiselect: a "Clear" action in the dropdown footer that commits an empty value ("" / []). text / number / date: a \u2715 inside the EDITING input (mirrors TextInput) that empties the draft and keeps focus \u2014 nothing commits until Enter/blur. `required` never hides the affordance, it guards the outcome: clearing a required cell surfaces the required warning (the value stays), clearing an optional one empties it to the placeholder. On by default (the input-family convention) \u2014 pass `false` to opt out.' },
245
+ { name: "align", type: '"left" | "right" | "center"', defaultValue: '"left"', description: "Text alignment for both display and edit modes \u2014 pass through from a DataTable column's `align`." },
246
+ { name: "size", type: '"small" | "medium"', defaultValue: '"small"', description: "Size preset. `small` is the dense DataTable scale (font inherits until pinned); `medium` steps the cell up to the input-family scale (12/6px padding, 14px font) for standalone use in side panels / detail views. Height always derives from font-size + padding." },
247
+ { name: "format", type: "(value: string | number | string[]) => ReactNode", description: "Display-mode formatter (receives a string[] for multiselect \u2014 e.g. render chips). The raw value is still what gets edited." },
248
+ { name: "validate", type: "(next: string | number | string[]) => string | null | undefined", description: "Synchronous validation. Return a message to block commit \u2014 it surfaces as a yellow warning Banner in the cell's popover (recoverable input problem, vs the red error Banner for a failed save)." },
249
+ { name: "disabled", type: "boolean", description: "Read-only \u2014 clicking does nothing, no edit affordance." },
250
+ { name: "placeholder", type: "string", description: "Shown when value is empty / blank." }
251
+ ]
252
+ }
253
+ },
254
+ {
255
+ id: "input-with-icon",
256
+ name: "Input with Icon",
257
+ category: "Inputs",
258
+ description: "Text input with a leading icon \u2014 search-style field. State knobs cover default / hover / focus / disabled / error.",
259
+ styleProperties: [
260
+ // Default
261
+ { key: "backgroundColor", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "default" } },
262
+ { key: "borderColor", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "default" } },
263
+ { key: "color", label: "Text", control: "color", defaultValue: "var(--color-text)", section: "fieldColors", showWhen: { state: "default" } },
264
+ { key: "iconColor", label: "Icon", control: "color", defaultValue: "var(--color-text-muted)", section: "fieldColors", showWhen: { state: "default" } },
265
+ // Hover
266
+ { key: "hoverBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "hover" } },
267
+ { key: "hoverBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "hover" } },
268
+ // Focus
269
+ { key: "focusBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "focus" } },
270
+ { key: "focusRing", label: "Ring", control: "color", defaultValue: "var(--color-accent)", section: "focusState", showWhen: { state: "focus" } },
271
+ // Disabled
272
+ { key: "disabledBg", label: "Background", control: "color", defaultValue: "var(--color-surface-alt)", section: "fieldColors", showWhen: { state: "disabled" } },
273
+ { key: "disabledBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "disabled" } },
274
+ { key: "disabledColor", label: "Text", control: "color", defaultValue: "var(--color-text-muted)", section: "fieldColors", showWhen: { state: "disabled" } },
275
+ { key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.6, min: 0.1, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
276
+ // Error
277
+ { key: "errorBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "error" } },
278
+ { key: "errorBorder", label: "Border", control: "color", defaultValue: "var(--color-danger-text)", section: "fieldColors", showWhen: { state: "error" } },
279
+ { key: "errorColor", label: "Message", control: "color", defaultValue: "var(--color-danger-text)", section: "errorState", showWhen: { state: "error" } },
280
+ { key: "errorMessageSize", label: "Message Size", control: "number", defaultValue: 12, min: 10, max: 16, step: 1, unit: "px", section: "errorState", showWhen: { state: "error" } },
281
+ // Shared
282
+ { key: "borderRadius", label: "Border Radius", control: "slider", defaultValue: 8, min: 0, max: 99, step: 1, unit: "px" },
283
+ { key: "paddingX", label: "Padding X", control: "number", defaultValue: 12, min: 4, max: 24, step: 2, unit: "px" },
284
+ { key: "paddingY", label: "Padding Y", control: "number", defaultValue: 10, min: 4, max: 20, step: 2, unit: "px" },
285
+ { key: "fontSize", label: "Font Size", control: "number", defaultValue: 14, min: 10, max: 20, step: 1, unit: "px" },
286
+ { key: "iconSize", label: "Icon Size", control: "number", defaultValue: 16, min: 12, max: 24, step: 1, unit: "px" },
287
+ { key: "iconOffset", label: "Icon Offset", control: "number", defaultValue: 12, min: 4, max: 24, step: 1, unit: "px" }
288
+ ],
289
+ layoutVariants: [
290
+ {
291
+ key: "state",
292
+ label: "State",
293
+ options: [
294
+ { value: "default", label: "Default" },
295
+ { value: "hover", label: "Hover" },
296
+ { value: "focus", label: "Focus" },
297
+ { value: "disabled", label: "Disabled" },
298
+ { value: "error", label: "Error" }
299
+ ],
300
+ defaultValue: "default"
301
+ }
302
+ ],
303
+ events: [
304
+ { name: "onChange", description: "Fires after the user commits a change (blur or Enter).", payload: "{ value: string }" },
305
+ { name: "onInput", description: "Fires on every keystroke. High-frequency \u2014 use for live validation, not save.", payload: "{ value: string }" },
306
+ { name: "onClear", description: "Fires when the user clicks the trailing clear (\xD7) affordance.", payload: "void" },
307
+ { name: "onFocus", description: "Fires when the field receives focus.", payload: "FocusEvent" },
308
+ { name: "onBlur", description: "Fires when the field loses focus.", payload: "FocusEvent" }
309
+ ]
310
+ },
311
+ {
312
+ id: "password-input",
313
+ name: "Password Input",
314
+ category: "Inputs",
315
+ description: "Password entry field with a trailing show/hide eye toggle. State knobs cover default / hover / focus / disabled / error; the trailing toggle has its own hover knob since it's an interactive button. The toggle can be disabled per-instance with the `toggle` variant for stricter UX.",
316
+ styleProperties: [
317
+ // Default
318
+ { key: "backgroundColor", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "default" } },
319
+ { key: "borderColor", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "default" } },
320
+ { key: "color", label: "Text", control: "color", defaultValue: "var(--color-text)", section: "fieldColors", showWhen: { state: "default" } },
321
+ { key: "iconColor", label: "Toggle Icon", control: "color", defaultValue: "var(--color-text-muted)", section: "fieldColors", showWhen: { state: "default" } },
322
+ // Hover
323
+ { key: "hoverBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "hover" } },
324
+ { key: "hoverBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "hover" } },
325
+ // Focus
326
+ { key: "focusBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "focus" } },
327
+ { key: "focusRing", label: "Ring", control: "color", defaultValue: "var(--color-accent)", section: "focusState", showWhen: { state: "focus" } },
328
+ // Disabled
329
+ { key: "disabledBg", label: "Background", control: "color", defaultValue: "var(--color-surface-alt)", section: "fieldColors", showWhen: { state: "disabled" } },
330
+ { key: "disabledBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "disabled" } },
331
+ { key: "disabledColor", label: "Text", control: "color", defaultValue: "var(--color-text-muted)", section: "fieldColors", showWhen: { state: "disabled" } },
332
+ { key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.6, min: 0.1, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
333
+ // Error
334
+ { key: "errorBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "error" } },
335
+ { key: "errorBorder", label: "Border", control: "color", defaultValue: "var(--color-danger-text)", section: "fieldColors", showWhen: { state: "error" } },
336
+ { key: "errorColor", label: "Message", control: "color", defaultValue: "var(--color-danger-text)", section: "errorState", showWhen: { state: "error" } },
337
+ { key: "errorMessageSize", label: "Message Size", control: "number", defaultValue: 12, min: 10, max: 16, step: 1, unit: "px", section: "errorState", showWhen: { state: "error" } },
338
+ // Shared
339
+ { key: "borderRadius", label: "Border Radius", control: "slider", defaultValue: 8, min: 0, max: 99, step: 1, unit: "px" },
340
+ { key: "paddingX", label: "Padding X", control: "number", defaultValue: 12, min: 4, max: 24, step: 2, unit: "px" },
341
+ { key: "paddingY", label: "Padding Y", control: "number", defaultValue: 10, min: 4, max: 20, step: 2, unit: "px" },
342
+ { key: "fontSize", label: "Font Size", control: "number", defaultValue: 14, min: 10, max: 20, step: 1, unit: "px" },
343
+ { key: "iconSize", label: "Toggle Size", control: "number", defaultValue: 16, min: 12, max: 24, step: 1, unit: "px" },
344
+ { key: "iconOffset", label: "Toggle Offset", control: "number", defaultValue: 12, min: 4, max: 24, step: 1, unit: "px" },
345
+ { key: "iconHoverColor", label: "Toggle Hover", control: "color", defaultValue: "var(--color-text)" }
346
+ ],
347
+ layoutVariants: [
348
+ // No `toggle` variant. The show/hide eye is a consumer-code decision
349
+ // (the `toggle` prop on PasswordInput), not a design-system decision —
350
+ // turning it off doesn't introduce a new theming surface, the trailing
351
+ // button simply isn't rendered. Same pattern as InputWithIcon's
352
+ // `clearable` prop: exposed on the component, not promoted to a UXM
353
+ // variant. Designers theme the canonical shape (toggle on) and call
354
+ // sites override at the prop layer when policy demands a strict field.
355
+ {
356
+ key: "state",
357
+ label: "State",
358
+ options: [
359
+ { value: "default", label: "Default" },
360
+ { value: "hover", label: "Hover" },
361
+ { value: "focus", label: "Focus" },
362
+ { value: "disabled", label: "Disabled" },
363
+ { value: "error", label: "Error" }
364
+ ],
365
+ defaultValue: "default"
366
+ }
367
+ ],
368
+ events: [
369
+ { name: "onChange", description: "Fires on every keystroke. `e.target.value` is the password text.", payload: "ChangeEvent<HTMLInputElement>" },
370
+ { name: "onToggleVisible", description: "Fires when the user clicks the show/hide eye toggle.", payload: "{ visible: boolean }" },
371
+ { name: "onFocus", description: "Fires when the field receives focus.", payload: "FocusEvent" },
372
+ { name: "onBlur", description: "Fires when the field loses focus.", payload: "FocusEvent" }
373
+ ],
374
+ api: {
375
+ importPath: "@viax.io/uxm/ui",
376
+ importNames: "PasswordInput",
377
+ props: [
378
+ { name: "value", type: "string", description: "Current value (controlled)." },
379
+ { name: "onChange", type: "(e: ChangeEvent<HTMLInputElement>) => void", description: "Change handler \u2014 `e.target.value` is the password." },
380
+ { name: "toggle", type: "boolean", defaultValue: "true", description: "Render the trailing show/hide eye toggle. Pass `false` to suppress." },
381
+ { name: "visible", type: "boolean", description: "Visibility (controlled). Pair with `onToggleVisible` to drive the toggle externally." },
382
+ { name: "defaultVisible", type: "boolean", defaultValue: "false", description: "Initial visibility for uncontrolled toggle usage." },
383
+ { name: "onToggleVisible", type: "(visible: boolean) => void", description: "Fires when the user clicks the eye toggle." },
384
+ { name: "autoComplete", type: "string", defaultValue: '"current-password"', description: "Browser autofill hint \u2014 `current-password` for sign-in, `new-password` for sign-up." },
385
+ { name: "disabled", type: "boolean", defaultValue: "false", description: "Disables the input and the toggle." },
386
+ { name: "...rest", type: "InputHTMLAttributes<HTMLInputElement>", description: "All other native input attributes (placeholder, name, aria-label, etc.) pass through." }
387
+ ]
388
+ }
389
+ },
390
+ {
391
+ id: "color-input",
392
+ name: "Color Input",
393
+ category: "Inputs",
394
+ description: "Color picker with a saturation/brightness area, hue and opacity sliders, a swatch, a screen eyedropper and a format select (HEX/RGB/RGBA/HSL). The value editor adapts to the format \u2014 one hex field, or R/G/B(/A) or H/S/L numeric fields \u2014 and re-derives on switch. Ships inline (ColorInput) and as a swatch-triggered popover (ColorInputPopover). `outputFormat` fixes the emitted format (default hex); Enter commits a field, Escape reverts it, and in the popover both also close the panel.",
395
+ styleProperties: [
396
+ // Default
397
+ { key: "backgroundColor", label: "Field / Panel Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "default" } },
398
+ { key: "borderColor", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "default" } },
399
+ { key: "color", label: "Text", control: "color", defaultValue: "var(--color-text)", section: "fieldColors", showWhen: { state: "default" } },
400
+ // Hover
401
+ { key: "hoverBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "hover" } },
402
+ // Focus
403
+ { key: "focusBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "focus" } },
404
+ { key: "focusRing", label: "Ring", control: "color", defaultValue: "var(--color-accent)", section: "focusState", showWhen: { state: "focus" } },
405
+ // Disabled
406
+ { key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.6, min: 0.1, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
407
+ // Error
408
+ { key: "errorBorder", label: "Border", control: "color", defaultValue: "var(--color-danger-text)", section: "fieldColors", showWhen: { state: "error" } },
409
+ { key: "errorColor", label: "Message", control: "color", defaultValue: "var(--color-danger-text)", section: "errorState", showWhen: { state: "error" } },
410
+ // Shared
411
+ { key: "borderRadius", label: "Border Radius", control: "slider", defaultValue: 8, min: 0, max: 24, step: 1, unit: "px" },
412
+ { key: "areaHeight", label: "Area Height", control: "slider", defaultValue: 160, min: 100, max: 240, step: 4, unit: "px" },
413
+ { key: "paddingX", label: "Padding X", control: "number", defaultValue: 10, min: 4, max: 24, step: 2, unit: "px" },
414
+ { key: "paddingY", label: "Padding Y", control: "number", defaultValue: 8, min: 4, max: 20, step: 2, unit: "px" },
415
+ { key: "fontSize", label: "Font Size", control: "number", defaultValue: 14, min: 10, max: 20, step: 1, unit: "px" }
416
+ ],
417
+ layoutVariants: [
418
+ {
419
+ key: "variant",
420
+ label: "Variant",
421
+ options: [
422
+ { value: "inline", label: "Inline" },
423
+ { value: "popover", label: "Popover" }
424
+ ],
425
+ defaultValue: "inline"
426
+ },
427
+ {
428
+ key: "state",
429
+ label: "State",
430
+ options: [
431
+ { value: "default", label: "Default" },
432
+ { value: "hover", label: "Hover" },
433
+ { value: "focus", label: "Focus" },
434
+ { value: "disabled", label: "Disabled" },
435
+ { value: "error", label: "Error" }
436
+ ],
437
+ defaultValue: "default"
438
+ }
439
+ ],
440
+ events: [
441
+ { name: "onChange", description: "Fires on every commit (drag, eyedropper, or field commit) with the color formatted per `outputFormat`.", payload: "(color: string) => void" },
442
+ { name: "onEnter", description: "Fires when Enter commits a valid text-field draft.", payload: "(color: string) => void" },
443
+ { name: "onEsc", description: "Fires when Escape reverts the text-field draft to the last committed value.", payload: "() => void" },
444
+ { name: "onOpenChange", description: "Popover variant only \u2014 fires when the panel opens or closes.", payload: "(open: boolean) => void", showWhen: { variant: "popover" } }
445
+ ],
446
+ api: {
447
+ importPath: "@viax.io/uxm/ui",
448
+ importNames: ["ColorInput", "ColorInputPopover"],
449
+ props: [
450
+ { name: "value", type: "string", description: "Current color (controlled). Any supported syntax: hex, rgb(a), hsl(a)." },
451
+ { name: "defaultValue", type: "string", defaultValue: "'#000000'", description: "Initial color for uncontrolled usage." },
452
+ { name: "onChange", type: "(color: string) => void", description: "Called with the color formatted per `outputFormat` on every commit." },
453
+ { name: "formats", type: "ColorFormat[]", defaultValue: "['hex','rgb','rgba','hsl']", description: "Representations offered in the in-component format select (what is displayed / edited). A single entry hides the select." },
454
+ { name: "outputFormat", type: "'hex' | 'rgb' | 'rgba' | 'hsl'", defaultValue: "'hex'", description: "Format `onChange` / `onEnter` return \u2014 fixed by this prop, independent of the visible representation. hex + alpha < 1 \u2192 8-digit #rrggbbaa." },
455
+ { name: "onEnter", type: "(color: string) => void", description: "Enter commits the field; in the popover it also closes the panel." },
456
+ { name: "onEsc", type: "() => void", description: "Escape reverts the field draft; in the popover it also closes the panel." },
457
+ { name: "alpha", type: "boolean", defaultValue: "true", description: "Show the opacity slider." },
458
+ { name: "eyedropper", type: "boolean", defaultValue: "true", description: "Show the screen eyedropper button (Chromium only; auto-hidden where the EyeDropper API is unavailable)." },
459
+ { name: "disabled", type: "boolean", defaultValue: "false", description: "Disable all interaction." },
460
+ { name: "error", type: "string", description: "Non-empty string renders the error state and message below the panel." },
461
+ { name: "open", type: "boolean", description: "Popover open state (controlled). ColorInputPopover only." },
462
+ { name: "defaultOpen", type: "boolean", defaultValue: "false", description: "Initial open state for uncontrolled popover usage. ColorInputPopover only." },
463
+ { name: "onOpenChange", type: "(open: boolean) => void", description: "Popover open/close callback. ColorInputPopover only." },
464
+ { name: "placement", type: "PopoverPlacement", defaultValue: "'bottom-start'", description: "Preferred popover placement. ColorInputPopover only." },
465
+ { name: "triggerLabel", type: "string", defaultValue: "'Choose color'", description: "Accessible name for the trigger swatch. ColorInputPopover only." }
466
+ ]
467
+ }
468
+ },
469
+ {
470
+ id: "date-input",
471
+ name: "Date Input",
472
+ category: "Inputs",
473
+ description: "Date entry field with a trailing calendar icon and format-mask placeholder. State knobs cover default / hover / focus / disabled / error; the trailing calendar icon has its own hover knob since it's an interactive button.",
474
+ styleProperties: [
475
+ // Default
476
+ { key: "backgroundColor", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "default" } },
477
+ { key: "borderColor", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "default" } },
478
+ { key: "color", label: "Text", control: "color", defaultValue: "var(--color-text)", section: "fieldColors", showWhen: { state: "default" } },
479
+ { key: "iconColor", label: "Icon", control: "color", defaultValue: "var(--color-text-muted)", section: "fieldColors", showWhen: { state: "default" } },
480
+ // Hover
481
+ { key: "hoverBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "hover" } },
482
+ { key: "hoverBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "hover" } },
483
+ // Focus
484
+ { key: "focusBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "focus" } },
485
+ { key: "focusRing", label: "Ring", control: "color", defaultValue: "var(--color-accent)", section: "focusState", showWhen: { state: "focus" } },
486
+ // Disabled
487
+ { key: "disabledBg", label: "Background", control: "color", defaultValue: "var(--color-surface-alt)", section: "fieldColors", showWhen: { state: "disabled" } },
488
+ { key: "disabledBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "disabled" } },
489
+ { key: "disabledColor", label: "Text", control: "color", defaultValue: "var(--color-text-muted)", section: "fieldColors", showWhen: { state: "disabled" } },
490
+ { key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.6, min: 0.1, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
491
+ // Error
492
+ { key: "errorBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "error" } },
493
+ { key: "errorBorder", label: "Border", control: "color", defaultValue: "var(--color-danger-text)", section: "fieldColors", showWhen: { state: "error" } },
494
+ { key: "errorColor", label: "Message", control: "color", defaultValue: "var(--color-danger-text)", section: "errorState", showWhen: { state: "error" } },
495
+ { key: "errorMessageSize", label: "Message Size", control: "number", defaultValue: 12, min: 10, max: 16, step: 1, unit: "px", section: "errorState", showWhen: { state: "error" } },
496
+ // Shared
497
+ { key: "borderRadius", label: "Border Radius", control: "slider", defaultValue: 8, min: 0, max: 99, step: 1, unit: "px" },
498
+ { key: "paddingX", label: "Padding X", control: "number", defaultValue: 12, min: 4, max: 24, step: 2, unit: "px" },
499
+ { key: "paddingY", label: "Padding Y", control: "number", defaultValue: 10, min: 4, max: 20, step: 2, unit: "px" },
500
+ { key: "fontSize", label: "Font Size", control: "number", defaultValue: 14, min: 10, max: 20, step: 1, unit: "px" },
501
+ { key: "iconSize", label: "Icon Size", control: "number", defaultValue: 16, min: 12, max: 24, step: 1, unit: "px" },
502
+ { key: "iconOffset", label: "Icon Offset", control: "number", defaultValue: 12, min: 4, max: 24, step: 1, unit: "px" },
503
+ { key: "iconHoverColor", label: "Icon Hover", control: "color", defaultValue: "var(--color-text)" }
504
+ ],
505
+ layoutVariants: [
506
+ {
507
+ key: "mode",
508
+ label: "Mode",
509
+ options: [
510
+ { value: "single", label: "Single Date" },
511
+ { value: "range", label: "Range" }
512
+ ],
513
+ defaultValue: "single"
514
+ },
515
+ {
516
+ key: "format",
517
+ label: "Format",
518
+ options: [
519
+ { value: "mdy", label: "MM/DD/YYYY" },
520
+ { value: "dmy", label: "DD/MM/YYYY" },
521
+ { value: "ymd", label: "YYYY-MM-DD" }
522
+ ],
523
+ defaultValue: "mdy"
524
+ },
525
+ {
526
+ key: "state",
527
+ label: "State",
528
+ options: [
529
+ { value: "default", label: "Default" },
530
+ { value: "hover", label: "Hover" },
531
+ { value: "focus", label: "Focus" },
532
+ { value: "disabled", label: "Disabled" },
533
+ { value: "error", label: "Error" }
534
+ ],
535
+ defaultValue: "default"
536
+ }
537
+ ],
538
+ events: [
539
+ { name: "onChange", description: "Fires when the picker selects a date or the user commits a manual edit.", payload: "{ value: Date | null }" },
540
+ { name: "onOpen", description: "Fires when the calendar popover opens.", payload: "void" },
541
+ { name: "onClose", description: "Fires when the calendar popover closes (selection or outside click).", payload: "void" },
542
+ { name: "onFocus", description: "Fires when the field receives focus.", payload: "FocusEvent" },
543
+ { name: "onBlur", description: "Fires when the field loses focus.", payload: "FocusEvent" }
544
+ ]
545
+ },
546
+ {
547
+ id: "time-input",
548
+ name: "Time Input",
549
+ category: "Inputs",
550
+ description: "Time entry field with a trailing clock icon and an HH:MM mask. The `12h` format adds an AM/PM selector at the trailing edge. State knobs cover default / hover / focus / disabled / error.",
551
+ styleProperties: [
552
+ // Default
553
+ { key: "backgroundColor", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "default" } },
554
+ { key: "borderColor", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "default" } },
555
+ { key: "color", label: "Text", control: "color", defaultValue: "var(--color-text)", section: "fieldColors", showWhen: { state: "default" } },
556
+ { key: "iconColor", label: "Icon", control: "color", defaultValue: "var(--color-text-muted)", section: "fieldColors", showWhen: { state: "default" } },
557
+ // Hover
558
+ { key: "hoverBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "hover" } },
559
+ { key: "hoverBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "hover" } },
560
+ // Focus
561
+ { key: "focusBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "focus" } },
562
+ { key: "focusRing", label: "Ring", control: "color", defaultValue: "var(--color-accent)", section: "focusState", showWhen: { state: "focus" } },
563
+ // Disabled
564
+ { key: "disabledBg", label: "Background", control: "color", defaultValue: "var(--color-surface-alt)", section: "fieldColors", showWhen: { state: "disabled" } },
565
+ { key: "disabledBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "disabled" } },
566
+ { key: "disabledColor", label: "Text", control: "color", defaultValue: "var(--color-text-muted)", section: "fieldColors", showWhen: { state: "disabled" } },
567
+ { key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.6, min: 0.1, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
568
+ // Error
569
+ { key: "errorBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "error" } },
570
+ { key: "errorBorder", label: "Border", control: "color", defaultValue: "var(--color-danger-text)", section: "fieldColors", showWhen: { state: "error" } },
571
+ { key: "errorColor", label: "Message", control: "color", defaultValue: "var(--color-danger-text)", section: "errorState", showWhen: { state: "error" } },
572
+ { key: "errorMessageSize", label: "Message Size", control: "number", defaultValue: 12, min: 10, max: 16, step: 1, unit: "px", section: "errorState", showWhen: { state: "error" } },
573
+ // Shared
574
+ { key: "borderRadius", label: "Border Radius", control: "slider", defaultValue: 8, min: 0, max: 99, step: 1, unit: "px" },
575
+ { key: "paddingX", label: "Padding X", control: "number", defaultValue: 12, min: 4, max: 24, step: 2, unit: "px" },
576
+ { key: "paddingY", label: "Padding Y", control: "number", defaultValue: 10, min: 4, max: 20, step: 2, unit: "px" },
577
+ { key: "fontSize", label: "Font Size", control: "number", defaultValue: 14, min: 10, max: 20, step: 1, unit: "px" },
578
+ { key: "iconSize", label: "Icon Size", control: "number", defaultValue: 16, min: 12, max: 24, step: 1, unit: "px" },
579
+ { key: "iconOffset", label: "Icon Offset", control: "number", defaultValue: 12, min: 4, max: 24, step: 1, unit: "px" },
580
+ { key: "iconHoverColor", label: "Icon Hover", control: "color", defaultValue: "var(--color-text)" },
581
+ // 12h-mode-only — the AM/PM suffix is a quiet inline label (no chip
582
+ // background), so only the text color is themable. Gated by `showWhen`
583
+ // so the knob only surfaces in 12h mode, matching DateInput's
584
+ // range-mode-only knobs precedent.
585
+ { key: "meridiemColor", label: "AM/PM Text", control: "color", defaultValue: "var(--color-text-muted)", section: "meridiem", showWhen: { format: "12h" } },
586
+ // Popover knobs — the column-scroll picker that opens when the
587
+ // clock icon is clicked. Grouped into their own section so the
588
+ // panel reads as "the floating surface" distinct from the field.
589
+ { key: "popoverBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "popover" },
590
+ { key: "popoverBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "popover" },
591
+ { key: "popoverRadius", label: "Border Radius", control: "slider", defaultValue: 8, min: 0, max: 24, step: 1, unit: "px", section: "popover" },
592
+ { key: "popoverHeadBg", label: "Column Heading", control: "color", defaultValue: "var(--color-surface-alt)", section: "popover" },
593
+ // Row hover + selected defaults align with the Listbox option
594
+ // tokens (`--uxm-listbox-option-{active,selected}-{bg,color}`) so a
595
+ // selected time visually matches a selected listbox option out of
596
+ // the box. TimeInput keeps its own knobs (the columns aren't a
597
+ // Listbox), but the defaults stay in lockstep — designers can tune
598
+ // them independently if they want a different time-picker palette.
599
+ { key: "popoverRowHoverBg", label: "Row Hover", control: "color", defaultValue: "var(--color-surface-alt)", section: "popover" },
600
+ { key: "popoverRowSelectedBg", label: "Selected Row", control: "color", defaultValue: "var(--color-accent-subtle)", section: "popover" },
601
+ { key: "popoverRowSelectedColor", label: "Selected Text", control: "color", defaultValue: "var(--color-accent-bold)", section: "popover" }
602
+ ],
603
+ layoutVariants: [
604
+ {
605
+ key: "format",
606
+ label: "Format",
607
+ options: [
608
+ { value: "24h", label: "24-hour (HH:MM)" },
609
+ { value: "12h", label: "12-hour (HH:MM AM/PM)" }
610
+ ],
611
+ defaultValue: "24h"
612
+ },
613
+ {
614
+ key: "state",
615
+ label: "State",
616
+ options: [
617
+ { value: "default", label: "Default" },
618
+ { value: "hover", label: "Hover" },
619
+ { value: "focus", label: "Focus" },
620
+ { value: "disabled", label: "Disabled" },
621
+ { value: "error", label: "Error" }
622
+ ],
623
+ defaultValue: "default"
624
+ }
625
+ ],
626
+ events: [
627
+ { name: "onChange", description: "Fires on every keystroke, meridiem flip, or popover column pick. Payload is the masked, joined value (`HH:MM` for 24h, `HH:MM AM/PM` for 12h).", payload: "{ value: string }" },
628
+ { name: "onOpen", description: "Fires when the time-picker popover opens.", payload: "void" },
629
+ { name: "onClose", description: "Fires when the time-picker popover closes (selection or outside click).", payload: "void" },
630
+ { name: "onFocus", description: "Fires when the field receives focus.", payload: "FocusEvent" },
631
+ { name: "onBlur", description: "Fires when the field loses focus.", payload: "FocusEvent" }
632
+ ],
633
+ api: {
634
+ importPath: "@viax.io/uxm/ui",
635
+ importNames: "TimeInput",
636
+ props: [
637
+ { name: "value", type: "string", description: 'Current value (controlled). 24h: `"HH:MM"`. 12h: `"HH:MM AM"` or `"HH:MM PM"`.' },
638
+ { name: "onChange", type: "(value: string) => void", description: "Called with the masked, joined value after each edit." },
639
+ { name: "format", type: '"24h" | "12h"', defaultValue: '"24h"', description: "Clock convention. `12h` adds an AM/PM selector and a third popover column." },
640
+ { name: "clock", type: "boolean", defaultValue: "true", description: "Render the trailing clock icon. Pass `false` for an icon-less field." },
641
+ { name: "picker", type: "boolean", defaultValue: "true", description: "Mount the click-list popover (hour / minute / AM-PM). Pass `false` for a typing-only field \u2014 the clock icon stays decorative." },
642
+ { name: "minuteStep", type: "number", defaultValue: "1", description: "Increment shown in the minute column of the popover. Off-step values typed into the field are still included (sorted), so a typed `09:03` under `minuteStep={5}` doesn't vanish." },
643
+ { name: "clearable", type: "boolean", defaultValue: "true", description: "Show a trailing clear (\u2715) button when the field has a value. The \u2715 sits inboard of the clock icon (and the AM/PM badge in 12h) and resets the value." },
644
+ { name: "disabled", type: "boolean", defaultValue: "false", description: "Disables the input, the AM/PM selector, and the picker trigger." },
645
+ { name: "...rest", type: "InputHTMLAttributes<HTMLInputElement>", description: "All other native input attributes (placeholder, name, aria-label, etc.) pass through." }
646
+ ]
647
+ }
648
+ },
649
+ {
650
+ id: "phone-input",
651
+ name: "Phone Input",
652
+ category: "Inputs",
653
+ description: "International phone field: leading country picker (flag + dial code) with a searchable popover, followed by a national number input with per-country digit masking. Value is an object `{ country, number }` \u2014 `country` is the ISO-3166 alpha-2 code, `number` is raw digits. The component handles display formatting and consumers get clean digits back.",
654
+ styleProperties: [
655
+ // Default
656
+ { key: "backgroundColor", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "default" } },
657
+ { key: "borderColor", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "default" } },
658
+ { key: "color", label: "Text", control: "color", defaultValue: "var(--color-text)", section: "fieldColors", showWhen: { state: "default" } },
659
+ // Hover
660
+ { key: "hoverBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "hover" } },
661
+ { key: "hoverBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "hover" } },
662
+ { key: "countryHoverBg", label: "Country Hover", control: "color", defaultValue: "var(--color-surface-alt)", section: "fieldColors", showWhen: { state: "hover" } },
663
+ // Focus
664
+ { key: "focusBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "focus" } },
665
+ { key: "focusRing", label: "Ring", control: "color", defaultValue: "var(--color-accent)", section: "focusState", showWhen: { state: "focus" } },
666
+ // Disabled
667
+ { key: "disabledBg", label: "Background", control: "color", defaultValue: "var(--color-surface-alt)", section: "fieldColors", showWhen: { state: "disabled" } },
668
+ { key: "disabledBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "disabled" } },
669
+ { key: "disabledColor", label: "Text", control: "color", defaultValue: "var(--color-text-muted)", section: "fieldColors", showWhen: { state: "disabled" } },
670
+ { key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.6, min: 0.1, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
671
+ // Error
672
+ { key: "errorBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "error" } },
673
+ { key: "errorBorder", label: "Border", control: "color", defaultValue: "var(--color-danger-text)", section: "fieldColors", showWhen: { state: "error" } },
674
+ { key: "errorColor", label: "Message", control: "color", defaultValue: "var(--color-danger-text)", section: "errorState", showWhen: { state: "error" } },
675
+ { key: "errorMessageSize", label: "Message Size", control: "number", defaultValue: 12, min: 10, max: 16, step: 1, unit: "px", section: "errorState", showWhen: { state: "error" } },
676
+ // Shared geometry — same across all states
677
+ { key: "borderRadius", label: "Border Radius", control: "slider", defaultValue: 8, min: 0, max: 99, step: 1, unit: "px" },
678
+ { key: "paddingX", label: "Padding X", control: "number", defaultValue: 12, min: 4, max: 24, step: 2, unit: "px" },
679
+ { key: "paddingY", label: "Padding Y", control: "number", defaultValue: 10, min: 4, max: 20, step: 2, unit: "px" },
680
+ { key: "fontSize", label: "Font Size", control: "number", defaultValue: 14, min: 10, max: 20, step: 1, unit: "px" },
681
+ // Shared trim — picker chrome that stays constant across states.
682
+ // Country divider + caret don't morph between hover / focus /
683
+ // disabled in any meaningful way (the field bg + border do all
684
+ // the state work). Keeping them out of the per-state section
685
+ // prevents the misleading "tune these per state" affordance.
686
+ { key: "dividerColor", label: "Country Divider", control: "color", defaultValue: "var(--color-border)" },
687
+ { key: "caretColor", label: "Caret", control: "color", defaultValue: "var(--color-text-muted)" }
688
+ // No popover knobs here: the country picker is the shared Listbox panel,
689
+ // themed once via the `listbox` registry entry (`.uxm-listbox__panel`).
690
+ ],
691
+ layoutVariants: [
692
+ {
693
+ key: "state",
694
+ label: "State",
695
+ options: [
696
+ { value: "default", label: "Default" },
697
+ { value: "hover", label: "Hover" },
698
+ { value: "focus", label: "Focus" },
699
+ { value: "disabled", label: "Disabled" },
700
+ { value: "error", label: "Error" }
701
+ ],
702
+ defaultValue: "default"
703
+ }
704
+ ],
705
+ events: [
706
+ { name: "onChange", description: "Fires on every keystroke and on country pick. Payload is the next `{ country, number }` object.", payload: "{ country: string, number: string }" },
707
+ { name: "onOpen", description: "Fires when the country popover opens.", payload: "void" },
708
+ { name: "onClose", description: "Fires when the country popover closes (selection or outside click).", payload: "void" },
709
+ { name: "onFocus", description: "Fires when either the country button or national-number input receives focus.", payload: "FocusEvent" },
710
+ { name: "onBlur", description: "Fires when focus leaves the field.", payload: "FocusEvent" }
711
+ ],
712
+ api: {
713
+ importPath: "@viax.io/uxm/ui",
714
+ importNames: "PhoneInput",
715
+ props: [
716
+ { name: "value", type: "{ country: string, number: string }", description: "Controlled value. `country` is an ISO-3166 alpha-2 code; `number` is raw digits." },
717
+ { name: "onChange", type: "(value: PhoneValue) => void", description: "Called with the next value after each keystroke or country pick." },
718
+ { name: "defaultValue", type: "PhoneValue", defaultValue: '{ country: "US", number: "" }', description: "Initial value for uncontrolled usage." },
719
+ { name: "countries", type: "PhoneCountry[]", defaultValue: "CURATED_COUNTRIES", description: "Country list shown in the picker. Default is ~30 curated countries; pass a custom list to extend or restrict coverage." },
720
+ { name: "clearable", type: "boolean", defaultValue: "true", description: "Show a trailing clear (\u2715) button when the number has digits. Clearing wipes the number and keeps the selected country." },
721
+ { name: "disabled", type: "boolean", defaultValue: "false", description: "Disables the field and country picker." },
722
+ { name: "...rest", type: "InputHTMLAttributes<HTMLInputElement>", description: "All other native input attributes (placeholder, name, aria-label, etc.) pass through to the national-number input." }
723
+ ]
724
+ }
725
+ },
726
+ {
727
+ id: "slider",
728
+ name: "Slider",
729
+ category: "Inputs",
730
+ description: "Native range slider with themable track and thumb. Two modes: `single` is a one-thumb value picker; `range` is a dual-thumb start/end selector. Both modes share the same theming surface. State knobs cover default / hover / focus / disabled \u2014 only the thumb changes across interaction states; track + accent stay constant.",
731
+ styleProperties: [
732
+ // Default — track + thumb both visible since slider always has both
733
+ { key: "trackColor", label: "Track", control: "color", defaultValue: "var(--color-border)", section: "states", showWhen: { state: "default" } },
734
+ { key: "accentColor", label: "Accent (Filled)", control: "color", defaultValue: "var(--color-accent)", section: "states", showWhen: { state: "default" } },
735
+ { key: "thumbColor", label: "Thumb", control: "color", defaultValue: "var(--color-accent)", section: "states", showWhen: { state: "default" } },
736
+ // Hover — thumb tint when hovered or actively being dragged (one
737
+ // knob covers both since the visual difference is rarely worth
738
+ // exposing as two; the underlying CSS still applies `:active`).
739
+ { key: "hoverThumbColor", label: "Thumb", control: "color", defaultValue: "var(--color-accent-bold)", section: "states", showWhen: { state: "hover" } },
740
+ // Focus — single shared ring around the thumb / track
741
+ { key: "focusRing", label: "Ring Color", control: "color", defaultValue: "var(--color-accent)", section: "focusState", showWhen: { state: "focus" } },
742
+ // Disabled — shared opacity
743
+ { key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
744
+ // Shared style — always visible
745
+ { key: "trackHeight", label: "Track Height", control: "number", defaultValue: 6, min: 2, max: 16, step: 1, unit: "px" },
746
+ { key: "trackRadius", label: "Track Radius", control: "slider", defaultValue: 999, min: 0, max: 999, step: 1, unit: "px" },
747
+ { key: "thumbSize", label: "Thumb Size", control: "number", defaultValue: 14, min: 8, max: 24, step: 1, unit: "px" },
748
+ // Range-mode-only — value labels and show toggles. Grouped into
749
+ // their own section so the panel's auto-derived "Per Mode · Range"
750
+ // scope label applies only to these knobs and doesn't bleed into
751
+ // the truly-shared STYLE section above (Track Height / Radius /
752
+ // Thumb Size, which apply uniformly to both modes).
753
+ { key: "valueColor", label: "Value Label Color", control: "color", defaultValue: "var(--color-text-muted)", section: "rangeOptions", showWhen: { mode: "range" } },
754
+ { key: "valueSize", label: "Value Label Size", control: "number", defaultValue: 11, min: 9, max: 14, step: 1, unit: "px", section: "rangeOptions", showWhen: { mode: "range" } },
755
+ { key: "showStart", label: "Show Start", control: "toggle", defaultValue: false, section: "rangeOptions", showWhen: { mode: "range" } },
756
+ { key: "showEnd", label: "Show End", control: "toggle", defaultValue: false, section: "rangeOptions", showWhen: { mode: "range" } },
757
+ { key: "showRange", label: "Show Range", control: "toggle", defaultValue: false, section: "rangeOptions", showWhen: { mode: "range" } }
758
+ ],
759
+ layoutVariants: [
760
+ {
761
+ key: "state",
762
+ label: "State",
763
+ options: [
764
+ { value: "default", label: "Default" },
765
+ { value: "hover", label: "Hover" },
766
+ { value: "focus", label: "Focus" },
767
+ { value: "disabled", label: "Disabled" }
768
+ ],
769
+ defaultValue: "default"
770
+ },
771
+ {
772
+ key: "mode",
773
+ label: "Mode",
774
+ options: [
775
+ { value: "single", label: "Single" },
776
+ { value: "range", label: "Range" }
777
+ ],
778
+ defaultValue: "single"
779
+ }
780
+ ],
781
+ events: [
782
+ { name: "onChange", description: "Fires continuously while the user drags the thumb. High-frequency \u2014 debounce before persisting.", payload: "{ value: number }", showWhen: { mode: "single" } },
783
+ { name: "onChange", description: "Fires continuously while the user drags either thumb. Payload is the full [start, end] range.", payload: "{ value: [number, number] }", showWhen: { mode: "range" } }
784
+ ],
785
+ api: {
786
+ importPath: "@viax.io/uxm/ui",
787
+ importNames: ["Slider", "RangeSlider"],
788
+ props: [
789
+ { name: "value", type: "number // (Slider) | [number, number] // (RangeSlider)", description: "Current value. Tuple for RangeSlider." },
790
+ { name: "onChange", type: "(value: number) => void // or ([start, end]) => void", description: "Change handler. Already unwrapped from DOM event \u2014 receives the parsed number(s)." },
791
+ { name: "min", type: "number", defaultValue: "0", description: "Lower bound." },
792
+ { name: "max", type: "number", defaultValue: "100", description: "Upper bound." },
793
+ { name: "step", type: "number", defaultValue: "1", description: "Increment per arrow/drag tick." }
794
+ ]
795
+ }
796
+ },
797
+ {
798
+ id: "number-stepper",
799
+ name: "Number Stepper",
800
+ category: "Inputs",
801
+ description: "Numeric input with explicit \xB1 step buttons and an optional unit suffix. Suppresses the native browser spinner \u2014 the explicit buttons own the increment/decrement affordance and theming surface. State knobs cover default / hover / focus / disabled on the input sub-element (mirrors the input-text family pattern). Sister atoms: `Number Input` (plain typing-only, no buttons) and `Currency Input` (typing + locale formatting + currency picker).",
802
+ styleProperties: [
803
+ // ── Per-state input colors. Same shape as input-text: each state
804
+ // owns its bg / border / text colors, plus standalone focus-ring
805
+ // and disabled-opacity. Steppers and unit suffix stay shared
806
+ // across states (separate sub-elements).
807
+ // Default
808
+ { key: "backgroundColor", label: "Background", control: "color", defaultValue: "var(--color-surface)", section: "fieldColors", showWhen: { state: "default" } },
809
+ { key: "borderColor", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "default" } },
810
+ { key: "color", label: "Text", control: "color", defaultValue: "var(--color-text-strong)", section: "fieldColors", showWhen: { state: "default" } },
811
+ // Hover
812
+ { key: "hoverBg", label: "Background", control: "color", defaultValue: "var(--color-surface)", section: "fieldColors", showWhen: { state: "hover" } },
813
+ { key: "hoverBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "hover" } },
814
+ // Focus
815
+ { key: "focusBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "focus" } },
816
+ { key: "focusRing", label: "Ring", control: "color", defaultValue: "var(--color-accent)", section: "focusState", showWhen: { state: "focus" } },
817
+ // Disabled
818
+ { key: "disabledBg", label: "Background", control: "color", defaultValue: "var(--color-surface-alt)", section: "fieldColors", showWhen: { state: "disabled" } },
819
+ { key: "disabledBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "disabled" } },
820
+ { key: "disabledColor", label: "Text", control: "color", defaultValue: "var(--color-text-muted)", section: "fieldColors", showWhen: { state: "disabled" } },
821
+ { key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.6, min: 0.1, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
822
+ // Error — out-of-range typed values, server-side rejection, or
823
+ // custom business-rule failures (step buttons can't be the
824
+ // sole error trigger because they enforce min/max themselves;
825
+ // error mode is for the typing path + external validation).
826
+ { key: "errorBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "error" } },
827
+ { key: "errorBorder", label: "Border", control: "color", defaultValue: "var(--color-danger-text)", section: "fieldColors", showWhen: { state: "error" } },
828
+ { key: "errorColor", label: "Message", control: "color", defaultValue: "var(--color-danger-text)", section: "errorState", showWhen: { state: "error" } },
829
+ { key: "errorMessageSize", label: "Message Size", control: "number", defaultValue: 12, min: 10, max: 16, step: 1, unit: "px", section: "errorState", showWhen: { state: "error" } },
830
+ // ── Shared input geometry (applies to every state)
831
+ { key: "inputWidth", label: "Input Width", control: "number", defaultValue: 64, min: 32, max: 160, step: 4, unit: "px" },
832
+ { key: "borderRadius", label: "Border Radius", control: "slider", defaultValue: 6, min: 0, max: 12, step: 1, unit: "px" },
833
+ { key: "paddingX", label: "Padding X", control: "number", defaultValue: 8, min: 2, max: 16, step: 1, unit: "px" },
834
+ { key: "paddingY", label: "Padding Y", control: "number", defaultValue: 6, min: 2, max: 12, step: 1, unit: "px" },
835
+ { key: "fontSize", label: "Font Size", control: "number", defaultValue: 12, min: 10, max: 18, step: 1, unit: "px" },
836
+ { key: "gap", label: "Gap", control: "number", defaultValue: 4, min: 0, max: 12, step: 1, unit: "px" },
837
+ // ± step buttons compose the `IconButton` atom — their size /
838
+ // radius / hover state / focus ring come from IconButton's own
839
+ // registry knobs, not from NumberStepper. Tune IconButton once
840
+ // in the workbench and every consumer (including this stepper,
841
+ // toolbar icon buttons, etc.) inherits the look automatically.
842
+ // ── Unit suffix (shared)
843
+ { key: "unitColor", label: "Unit Color", control: "color", defaultValue: "var(--color-text-subtle)", section: "unit" },
844
+ { key: "unitSize", label: "Unit Size", control: "number", defaultValue: 11, min: 9, max: 14, step: 1, unit: "px", section: "unit" }
845
+ ],
846
+ layoutVariants: [
847
+ {
848
+ key: "state",
849
+ label: "State",
850
+ options: [
851
+ { value: "default", label: "Default" },
852
+ { value: "hover", label: "Hover" },
853
+ { value: "focus", label: "Focus" },
854
+ { value: "disabled", label: "Disabled" },
855
+ { value: "error", label: "Error" }
856
+ ],
857
+ defaultValue: "default"
858
+ }
859
+ ],
860
+ events: [
861
+ { name: "onChange", description: "Fires when the value changes \u2014 typing, stepper click, or paste.", payload: "{ value: number }" },
862
+ { name: "onIncrement", description: "Fires when the user clicks the up stepper.", payload: "void" },
863
+ { name: "onDecrement", description: "Fires when the user clicks the down stepper.", payload: "void" },
864
+ { name: "onFocus", description: "Fires when the input receives focus.", payload: "FocusEvent" },
865
+ { name: "onBlur", description: "Fires when the input loses focus.", payload: "FocusEvent" }
866
+ ]
867
+ },
868
+ {
869
+ id: "number-input",
870
+ name: "Number Input",
871
+ category: "Inputs",
872
+ description: "Plain typing-only numeric field \u2014 no increment/decrement buttons (use `Number Field` for that, soon to be renamed `Stepper`). Masks non-digits in real time; optional sign and decimal support; min/max clamping on blur. For monetary values use `Currency Input`. State knobs cover default / hover / focus / disabled / error on the input itself (the root IS the visible surface, same shape as `Text Input`).",
873
+ styleProperties: [
874
+ // Default
875
+ { key: "backgroundColor", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "default" } },
876
+ { key: "borderColor", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "default" } },
877
+ { key: "color", label: "Text", control: "color", defaultValue: "var(--color-text)", section: "fieldColors", showWhen: { state: "default" } },
878
+ // Hover
879
+ { key: "hoverBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "hover" } },
880
+ { key: "hoverBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "hover" } },
881
+ // Focus
882
+ { key: "focusBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "focus" } },
883
+ { key: "focusRing", label: "Ring", control: "color", defaultValue: "var(--color-accent)", section: "focusState", showWhen: { state: "focus" } },
884
+ // Disabled
885
+ { key: "disabledBg", label: "Background", control: "color", defaultValue: "var(--color-surface-alt)", section: "fieldColors", showWhen: { state: "disabled" } },
886
+ { key: "disabledBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "disabled" } },
887
+ { key: "disabledColor", label: "Text", control: "color", defaultValue: "var(--color-text-muted)", section: "fieldColors", showWhen: { state: "disabled" } },
888
+ { key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.6, min: 0.1, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
889
+ // Error
890
+ { key: "errorBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "error" } },
891
+ { key: "errorBorder", label: "Border", control: "color", defaultValue: "var(--color-danger-text)", section: "fieldColors", showWhen: { state: "error" } },
892
+ { key: "errorColor", label: "Label + Message", control: "color", defaultValue: "var(--color-danger-text)", section: "errorState", showWhen: { state: "error" } },
893
+ { key: "errorMessageSize", label: "Message Size", control: "number", defaultValue: 12, min: 10, max: 16, step: 1, unit: "px", section: "errorState", showWhen: { state: "error" } },
894
+ // Shared
895
+ { key: "borderRadius", label: "Border Radius", control: "slider", defaultValue: 8, min: 0, max: 16, step: 1, unit: "px" },
896
+ { key: "paddingX", label: "Padding X", control: "number", defaultValue: 12, min: 4, max: 24, step: 2, unit: "px" },
897
+ { key: "paddingY", label: "Padding Y", control: "number", defaultValue: 10, min: 4, max: 20, step: 2, unit: "px" },
898
+ { key: "fontSize", label: "Font Size", control: "number", defaultValue: 14, min: 10, max: 20, step: 1, unit: "px" },
899
+ // Number-specific: digits read more naturally right-aligned in
900
+ // tables and forms with mixed-width numbers, but the default
901
+ // mirrors text-input's left alignment so it drops in next to
902
+ // other fields without surprise.
903
+ { key: "textAlign", label: "Text Align", control: "select", options: ["left", "right"], defaultValue: "left" }
904
+ ],
905
+ layoutVariants: [
906
+ // No label-position variant — NumberInput is intentionally bare
907
+ // (just the field). Labels, hints, and error messages are the
908
+ // FormField atom's concern; consumers compose them together
909
+ // when they need a labeled control.
910
+ {
911
+ key: "state",
912
+ label: "State",
913
+ options: [
914
+ { value: "default", label: "Default" },
915
+ { value: "hover", label: "Hover" },
916
+ { value: "focus", label: "Focus" },
917
+ { value: "disabled", label: "Disabled" },
918
+ { value: "error", label: "Error" }
919
+ ],
920
+ defaultValue: "default"
921
+ }
922
+ ],
923
+ events: [
924
+ { name: "onChange", description: "Fires on every keystroke. Payload is the masked, digit-only string.", payload: "{ value: string }" },
925
+ { name: "onBlur", description: "Fires when the field loses focus. Triggers min/max clamping if bounds are set.", payload: "FocusEvent" },
926
+ { name: "onFocus", description: "Fires when the field receives focus.", payload: "FocusEvent" }
927
+ ],
928
+ api: {
929
+ importPath: "@viax.io/uxm/ui",
930
+ importNames: "NumberInput",
931
+ props: [
932
+ { name: "value", type: "string", description: "Current value as a digit string (controlled)." },
933
+ { name: "onChange", type: "(value: string) => void", description: "Called with the masked, digit-only string on every keystroke." },
934
+ { name: "defaultValue", type: "string", description: "Initial value for uncontrolled usage." },
935
+ { name: "min", type: "number", description: "Lower bound. Clamping fires on blur, not per-keystroke." },
936
+ { name: "max", type: "number", description: "Upper bound. Same blur-clamp behavior." },
937
+ { name: "allowNegative", type: "boolean", defaultValue: "false", description: "Allow a leading `-` sign." },
938
+ { name: "allowDecimal", type: "boolean", defaultValue: "false", description: "Allow a single `.` decimal separator." },
939
+ { name: "decimals", type: "number", defaultValue: "2", description: "Max decimal places when `allowDecimal` is true. Excess digits are dropped during masking." },
940
+ { name: "disabled", type: "boolean", defaultValue: "false", description: "Disables the input." },
941
+ { name: "...rest", type: "InputHTMLAttributes<HTMLInputElement>", description: "All other native input attributes (placeholder, name, aria-label, etc.) pass through." }
942
+ ]
943
+ }
944
+ },
945
+ {
946
+ id: "currency-input",
947
+ name: "Currency Input",
948
+ category: "Inputs",
949
+ description: "Monetary input with a leading interactive currency picker (searchable popover, ~20 curated currencies by default). End users pick the currency at runtime \u2014 there's no design-time currency variant. Value is an object `{ currency, amount }`; amount is the raw digit string (consumers get clean data, the component owns display formatting). Standard finance UX: focus reveals raw digits, blur renders locale-formatted with thousands separators.",
950
+ styleProperties: [
951
+ // Default
952
+ { key: "backgroundColor", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "default" } },
953
+ { key: "borderColor", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "default" } },
954
+ { key: "color", label: "Text", control: "color", defaultValue: "var(--color-text)", section: "fieldColors", showWhen: { state: "default" } },
955
+ // Hover
956
+ { key: "hoverBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "hover" } },
957
+ { key: "hoverBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "hover" } },
958
+ { key: "pickerHoverBg", label: "Picker Hover", control: "color", defaultValue: "var(--color-surface-alt)", section: "fieldColors", showWhen: { state: "hover" } },
959
+ // Focus
960
+ { key: "focusBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "focus" } },
961
+ { key: "focusRing", label: "Ring", control: "color", defaultValue: "var(--color-accent)", section: "focusState", showWhen: { state: "focus" } },
962
+ // Disabled
963
+ { key: "disabledBg", label: "Background", control: "color", defaultValue: "var(--color-surface-alt)", section: "fieldColors", showWhen: { state: "disabled" } },
964
+ { key: "disabledBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "disabled" } },
965
+ { key: "disabledColor", label: "Text", control: "color", defaultValue: "var(--color-text-muted)", section: "fieldColors", showWhen: { state: "disabled" } },
966
+ { key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.6, min: 0.1, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
967
+ // Error
968
+ { key: "errorBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "error" } },
969
+ { key: "errorBorder", label: "Border", control: "color", defaultValue: "var(--color-danger-text)", section: "fieldColors", showWhen: { state: "error" } },
970
+ { key: "errorColor", label: "Message", control: "color", defaultValue: "var(--color-danger-text)", section: "errorState", showWhen: { state: "error" } },
971
+ { key: "errorMessageSize", label: "Message Size", control: "number", defaultValue: 12, min: 10, max: 16, step: 1, unit: "px", section: "errorState", showWhen: { state: "error" } },
972
+ // Shared geometry — same across all states
973
+ { key: "borderRadius", label: "Border Radius", control: "slider", defaultValue: 8, min: 0, max: 16, step: 1, unit: "px" },
974
+ { key: "paddingX", label: "Padding X", control: "number", defaultValue: 12, min: 4, max: 24, step: 2, unit: "px" },
975
+ { key: "paddingY", label: "Padding Y", control: "number", defaultValue: 10, min: 4, max: 20, step: 2, unit: "px" },
976
+ { key: "fontSize", label: "Font Size", control: "number", defaultValue: 14, min: 10, max: 20, step: 1, unit: "px" },
977
+ // Shared trim — picker chrome that stays constant across states.
978
+ // Symbol / caret / divider don't morph between hover / focus /
979
+ // disabled in any meaningful way (the field bg + border do all
980
+ // the state work). Keeping them out of the per-state section
981
+ // prevents the misleading "tune these per state" affordance.
982
+ { key: "dividerColor", label: "Picker Divider", control: "color", defaultValue: "var(--color-border)" },
983
+ { key: "symbolColor", label: "Symbol", control: "color", defaultValue: "var(--color-text)" },
984
+ { key: "caretColor", label: "Caret", control: "color", defaultValue: "var(--color-text-muted)" }
985
+ // No popover knobs here: the currency picker is the shared Listbox panel,
986
+ // themed once via the `listbox` registry entry (`.uxm-listbox__panel`).
987
+ ],
988
+ layoutVariants: [
989
+ // No `currency` variant — that's an end-user runtime choice
990
+ // handled by the picker. The picker always sits on the left
991
+ // (the prefix `$1,234.56` read), so there's no position knob.
992
+ {
993
+ key: "state",
994
+ label: "State",
995
+ options: [
996
+ { value: "default", label: "Default" },
997
+ { value: "hover", label: "Hover" },
998
+ { value: "focus", label: "Focus" },
999
+ { value: "disabled", label: "Disabled" },
1000
+ { value: "error", label: "Error" }
1001
+ ],
1002
+ defaultValue: "default"
1003
+ }
1004
+ ],
1005
+ events: [
1006
+ { name: "onChange", description: "Fires on every keystroke or currency pick. Payload is the next `{ currency, amount }` object.", payload: "{ currency: string, amount: string }" },
1007
+ { name: "onOpen", description: "Fires when the currency popover opens.", payload: "void" },
1008
+ { name: "onClose", description: "Fires when the currency popover closes (selection or outside click).", payload: "void" },
1009
+ { name: "onFocus", description: "Fires when the amount input receives focus. Display flips from formatted to raw digits.", payload: "FocusEvent" },
1010
+ { name: "onBlur", description: "Fires when the amount input loses focus. Triggers min/max clamping AND switches display back to locale-formatted.", payload: "FocusEvent" }
1011
+ ],
1012
+ api: {
1013
+ importPath: "@viax.io/uxm/ui",
1014
+ importNames: "CurrencyInput",
1015
+ props: [
1016
+ { name: "value", type: "{ currency: string, amount: string }", description: "Controlled value. `currency` is an ISO 4217 code; `amount` is the raw digit string." },
1017
+ { name: "onChange", type: "(value: CurrencyValue) => void", description: "Called with the next value after each keystroke or currency pick." },
1018
+ { name: "defaultValue", type: "CurrencyValue", defaultValue: '{ currency: "USD", amount: "" }', description: "Initial value for uncontrolled usage." },
1019
+ { name: "currencies", type: "Currency[]", defaultValue: "CURATED_CURRENCIES", description: "List shown in the picker. Default is ~20 curated currencies. Pass a single-entry array to effectively lock currency selection." },
1020
+ { name: "locale", type: "string", defaultValue: '"en-US"', description: "BCP-47 locale tag. Drives thousands separator style on blur display." },
1021
+ { name: "allowNegative", type: "boolean", defaultValue: "false", description: "Allow a leading `-` sign for refunds / credits." },
1022
+ { name: "clearable", type: "boolean", defaultValue: "true", description: "Show a trailing clear (\u2715) button when the amount has a value. Clearing wipes the amount and keeps the selected currency." },
1023
+ { name: "min", type: "number", description: "Lower bound on the amount. Clamped on blur." },
1024
+ { name: "max", type: "number", description: "Upper bound on the amount. Clamped on blur." },
1025
+ { name: "disabled", type: "boolean", defaultValue: "false", description: "Disables the input and the currency picker." }
1026
+ ]
1027
+ }
1028
+ },
1029
+ {
1030
+ id: "textarea",
1031
+ name: "Textarea",
1032
+ category: "Inputs",
1033
+ description: "Multi-line text area. State knobs cover default / hover / focus / disabled / error.",
1034
+ styleProperties: [
1035
+ // Default
1036
+ { key: "backgroundColor", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "default" } },
1037
+ { key: "borderColor", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "default" } },
1038
+ { key: "color", label: "Text", control: "color", defaultValue: "var(--color-text)", section: "fieldColors", showWhen: { state: "default" } },
1039
+ // Hover
1040
+ { key: "hoverBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "hover" } },
1041
+ { key: "hoverBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "hover" } },
1042
+ // Focus
1043
+ { key: "focusBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "focus" } },
1044
+ { key: "focusRing", label: "Ring", control: "color", defaultValue: "var(--color-accent)", section: "focusState", showWhen: { state: "focus" } },
1045
+ // Disabled
1046
+ { key: "disabledBg", label: "Background", control: "color", defaultValue: "var(--color-surface-alt)", section: "fieldColors", showWhen: { state: "disabled" } },
1047
+ { key: "disabledBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "disabled" } },
1048
+ { key: "disabledColor", label: "Text", control: "color", defaultValue: "var(--color-text-muted)", section: "fieldColors", showWhen: { state: "disabled" } },
1049
+ { key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.6, min: 0.1, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
1050
+ // Error
1051
+ { key: "errorBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "error" } },
1052
+ { key: "errorBorder", label: "Border", control: "color", defaultValue: "var(--color-danger-text)", section: "fieldColors", showWhen: { state: "error" } },
1053
+ { key: "errorColor", label: "Label + Message", control: "color", defaultValue: "var(--color-danger-text)", section: "errorState", showWhen: { state: "error" } },
1054
+ { key: "errorMessageSize", label: "Message Size", control: "number", defaultValue: 12, min: 10, max: 16, step: 1, unit: "px", section: "errorState", showWhen: { state: "error" } },
1055
+ // Shared
1056
+ { key: "borderRadius", label: "Border Radius", control: "slider", defaultValue: 8, min: 0, max: 16, step: 1, unit: "px" },
1057
+ { key: "paddingX", label: "Padding X", control: "number", defaultValue: 12, min: 4, max: 24, step: 2, unit: "px" },
1058
+ { key: "paddingY", label: "Padding Y", control: "number", defaultValue: 10, min: 4, max: 20, step: 2, unit: "px" },
1059
+ { key: "fontSize", label: "Font Size", control: "number", defaultValue: 14, min: 10, max: 20, step: 1, unit: "px" },
1060
+ { key: "minHeight", label: "Min Height", control: "number", defaultValue: 100, min: 60, max: 300, step: 10, unit: "px" }
1061
+ // Label theming + position live on FormField. See input-text for
1062
+ // the same consolidation rationale.
1063
+ ],
1064
+ layoutVariants: [
1065
+ {
1066
+ key: "state",
1067
+ label: "State",
1068
+ options: [
1069
+ { value: "default", label: "Default" },
1070
+ { value: "hover", label: "Hover" },
1071
+ { value: "focus", label: "Focus" },
1072
+ { value: "disabled", label: "Disabled" },
1073
+ { value: "error", label: "Error" }
1074
+ ],
1075
+ defaultValue: "default"
1076
+ }
1077
+ ],
1078
+ events: [
1079
+ { name: "onChange", description: "Fires after the user commits a change (blur or Enter).", payload: "{ value: string }" },
1080
+ { name: "onInput", description: "Fires on every keystroke.", payload: "{ value: string }" },
1081
+ { name: "onFocus", description: "Fires when the textarea receives focus.", payload: "FocusEvent" },
1082
+ { name: "onBlur", description: "Fires when the textarea loses focus.", payload: "FocusEvent" }
1083
+ ]
1084
+ },
1085
+ {
1086
+ id: "code-editor",
1087
+ name: "Code Editor",
1088
+ category: "Inputs",
1089
+ description: "Monospace code surface for developer tooling. Knobs also theme the read-only CodeBlock \u2014 the two are one surface on purpose.",
1090
+ styleProperties: [
1091
+ // Default
1092
+ { key: "backgroundColor", label: "Background", control: "color", defaultValue: "var(--color-surface-alt)", section: "fieldColors", showWhen: { state: "default" } },
1093
+ { key: "borderColor", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "default" } },
1094
+ { key: "color", label: "Text", control: "color", defaultValue: "var(--color-text)", section: "fieldColors", showWhen: { state: "default" } },
1095
+ // Hover
1096
+ { key: "hoverBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "hover" } },
1097
+ // Focus
1098
+ { key: "focusBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "focus" } },
1099
+ { key: "focusRing", label: "Ring", control: "color", defaultValue: "var(--color-accent)", section: "focusState", showWhen: { state: "focus" } },
1100
+ // Disabled
1101
+ { key: "disabledBg", label: "Background", control: "color", defaultValue: "var(--color-surface-alt)", section: "fieldColors", showWhen: { state: "disabled" } },
1102
+ { key: "disabledBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "disabled" } },
1103
+ { key: "disabledColor", label: "Text", control: "color", defaultValue: "var(--color-text-muted)", section: "fieldColors", showWhen: { state: "disabled" } },
1104
+ { key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.6, min: 0.1, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
1105
+ // Error
1106
+ { key: "errorBorder", label: "Border", control: "color", defaultValue: "var(--color-danger-text)", section: "fieldColors", showWhen: { state: "error" } },
1107
+ { key: "errorColor", label: "Message", control: "color", defaultValue: "var(--color-danger-text)", section: "errorState", showWhen: { state: "error" } },
1108
+ { key: "errorMessageSize", label: "Message Size", control: "number", defaultValue: 12, min: 10, max: 16, step: 1, unit: "px", section: "errorState", showWhen: { state: "error" } },
1109
+ // Gutter — the line-number ruler. Its color/gap are the only chrome the
1110
+ // gutter owns; its font and vertical padding are shared with the code so
1111
+ // the two stay aligned, and are therefore NOT separately tunable.
1112
+ { key: "gutterColor", label: "Number Color", control: "color", defaultValue: "var(--color-text-muted)", section: "gutter" },
1113
+ { key: "gutterBg", label: "Gutter Background", control: "color", defaultValue: "transparent", section: "gutter" },
1114
+ { key: "gutterBorder", label: "Gutter Divider", control: "color", defaultValue: "var(--color-border)", section: "gutter" },
1115
+ { key: "gutterGap", label: "Gutter Gap", control: "number", defaultValue: 12, min: 4, max: 24, step: 2, unit: "px", section: "gutter" },
1116
+ // Shared
1117
+ { key: "borderRadius", label: "Border Radius", control: "slider", defaultValue: 8, min: 0, max: 16, step: 1, unit: "px" },
1118
+ { key: "paddingX", label: "Padding X", control: "number", defaultValue: 14, min: 4, max: 24, step: 2, unit: "px" },
1119
+ { key: "paddingY", label: "Padding Y", control: "number", defaultValue: 12, min: 4, max: 20, step: 2, unit: "px" },
1120
+ { key: "fontSize", label: "Font Size", control: "number", defaultValue: 12.5, min: 10, max: 18, step: 0.5, unit: "px" },
1121
+ // Unitless on purpose — a line-height with a unit breaks the gutter's
1122
+ // alignment as soon as the font size changes.
1123
+ { key: "lineHeight", label: "Line Height", control: "slider", defaultValue: 1.6, min: 1.2, max: 2.2, step: 0.1 },
1124
+ { key: "minHeight", label: "Min Height", control: "number", defaultValue: 140, min: 80, max: 480, step: 20, unit: "px" }
1125
+ ],
1126
+ layoutVariants: [
1127
+ {
1128
+ key: "state",
1129
+ label: "State",
1130
+ options: [
1131
+ { value: "default", label: "Default" },
1132
+ { value: "hover", label: "Hover" },
1133
+ { value: "focus", label: "Focus" },
1134
+ { value: "disabled", label: "Disabled" },
1135
+ { value: "error", label: "Error" }
1136
+ ],
1137
+ defaultValue: "default"
1138
+ }
1139
+ ],
1140
+ events: [
1141
+ { name: "onChange", description: "Fires on every edit, including Tab-indent and auto-indent.", payload: "{ value: string }" },
1142
+ { name: "onKeyDown", description: "Runs BEFORE the atom's own key handling \u2014 call preventDefault to claim a key (e.g. \u2318Enter to run).", payload: "KeyboardEvent" },
1143
+ { name: "onFocus", description: "Fires when the editor receives focus.", payload: "FocusEvent" },
1144
+ { name: "onBlur", description: "Fires when the editor loses focus.", payload: "FocusEvent" }
1145
+ ]
1146
+ },
1147
+ {
1148
+ id: "file-upload",
1149
+ name: "File Upload",
1150
+ category: "Inputs",
1151
+ description: "File-upload atom. Click anywhere on the drop area opens the system file picker; dragging files in fires the drag-over state and drop sends them to `onFiles`. Two state spaces: (1) drop-area state covers default / hover / drag-over / focus / disabled / error (page-level errors only), and (2) per-file lifecycle status \u2014 `queued | uploading | done | error` \u2014 lives on each `FileUploadFileMeta.status` and paints each row independently. The drop area never shows an aggregate progress bar; each row has its own. Visual-only atom: no built-in upload; `onFiles` returns native `File[]` for the caller to drive. v2 backlog: image rows render a `Thumbnail` preview keyed off MIME instead of the generic document glyph.",
1152
+ styleProperties: [
1153
+ // ── Per-state drop-area surface colors ──
1154
+ // Note: `dropAreaColors` (not the generic `fieldColors` used by
1155
+ // input-text / textarea / etc.) — the dropzone is a drop area, not
1156
+ // a text field. Same shape as fieldColors otherwise: bg / border /
1157
+ // text per state, gated by `showWhen: { state }`.
1158
+ // Default
1159
+ { key: "backgroundColor", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "dropAreaColors", showWhen: { state: "default" } },
1160
+ { key: "borderColor", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "dropAreaColors", showWhen: { state: "default" } },
1161
+ { key: "color", label: "Text", control: "color", defaultValue: "var(--color-text)", section: "dropAreaColors", showWhen: { state: "default" } },
1162
+ // Hover
1163
+ { key: "hoverBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "dropAreaColors", showWhen: { state: "hover" } },
1164
+ { key: "hoverBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "dropAreaColors", showWhen: { state: "hover" } },
1165
+ // Drag-over — overlay style: only the surface bg / border / icon tint change.
1166
+ { key: "dragBg", label: "Background", control: "color", defaultValue: "color-mix(in srgb, var(--color-accent) 8%, var(--color-card))", section: "dragState", showWhen: { state: "drag-over" } },
1167
+ { key: "dragBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "dragState", showWhen: { state: "drag-over" } },
1168
+ { key: "dragAccent", label: "Icon Tint", control: "color", defaultValue: "var(--color-accent)", section: "dragState", showWhen: { state: "drag-over" } },
1169
+ // Focus — paints via :focus-within on the label (the hidden input owns focus).
1170
+ { key: "focusBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "dropAreaColors", showWhen: { state: "focus" } },
1171
+ { key: "focusRing", label: "Ring", control: "color", defaultValue: "var(--color-accent)", section: "focusState", showWhen: { state: "focus" } },
1172
+ // Error — surface tint + dedicated message slot below the drop area.
1173
+ { key: "errorBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "dropAreaColors", showWhen: { state: "error" } },
1174
+ { key: "errorBorder", label: "Border", control: "color", defaultValue: "var(--color-danger-text)", section: "dropAreaColors", showWhen: { state: "error" } },
1175
+ { key: "errorColor", label: "Message Color", control: "color", defaultValue: "var(--color-danger-text)", section: "errorState", showWhen: { state: "error" } },
1176
+ { key: "errorMessageSize", label: "Message Size", control: "number", defaultValue: 12, min: 10, max: 16, step: 1, unit: "px", section: "errorState", showWhen: { state: "error" } },
1177
+ // Disabled
1178
+ { key: "disabledBg", label: "Background", control: "color", defaultValue: "var(--color-surface-alt)", section: "dropAreaColors", showWhen: { state: "disabled" } },
1179
+ { key: "disabledBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "dropAreaColors", showWhen: { state: "disabled" } },
1180
+ { key: "disabledColor", label: "Text", control: "color", defaultValue: "var(--color-text-muted)", section: "dropAreaColors", showWhen: { state: "disabled" } },
1181
+ { key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.6, min: 0.1, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
1182
+ // ── Shared geometry (always visible) ──
1183
+ { key: "borderRadius", label: "Border Radius", control: "slider", defaultValue: 12, min: 0, max: 24, step: 1, unit: "px" },
1184
+ { key: "borderStyle", label: "Border Style", control: "select", defaultValue: "dashed", options: ["dashed", "solid", "dotted"] },
1185
+ { key: "borderWidth", label: "Border Width", control: "slider", defaultValue: 1.5, min: 1, max: 4, step: 0.5, unit: "px" },
1186
+ { key: "paddingX", label: "Padding X", control: "number", defaultValue: 24, min: 8, max: 48, step: 2, unit: "px" },
1187
+ { key: "paddingY", label: "Padding Y", control: "number", defaultValue: 24, min: 8, max: 64, step: 2, unit: "px" },
1188
+ { key: "minHeight", label: "Min Height", control: "number", defaultValue: 160, min: 80, max: 320, step: 10, unit: "px" },
1189
+ { key: "gap", label: "Gap", control: "number", defaultValue: 8, min: 0, max: 24, step: 1, unit: "px" },
1190
+ // ── Icon sub-element ──
1191
+ { key: "iconSize", label: "Icon Size", control: "number", defaultValue: 40, min: 20, max: 72, step: 2, unit: "px", section: "icon" },
1192
+ { key: "iconColor", label: "Icon Color", control: "color", defaultValue: "var(--color-accent)", section: "icon" },
1193
+ // ── Text sub-elements ──
1194
+ { key: "titleSize", label: "Title Size", control: "number", defaultValue: 15, min: 12, max: 22, step: 1, unit: "px", section: "text" },
1195
+ { key: "helpSize", label: "Help Size", control: "number", defaultValue: 13, min: 10, max: 16, step: 1, unit: "px", section: "text" },
1196
+ { key: "helpColor", label: "Help Color", control: "color", defaultValue: "var(--color-text-muted)", section: "text" },
1197
+ { key: "allowedTypesSize", label: "Allowed-types Size", control: "number", defaultValue: 11, min: 9, max: 14, step: 1, unit: "px", section: "text" },
1198
+ { key: "allowedTypesColor", label: "Allowed-types Color", control: "color", defaultValue: "var(--color-text-subtle)", section: "text" },
1199
+ // ── File-list row knobs (only consumed when `withList: on`) ──
1200
+ { key: "rowBg", label: "Row Background", control: "color", defaultValue: "var(--color-surface)", section: "fileList" },
1201
+ { key: "rowBorder", label: "Row Border", control: "color", defaultValue: "var(--color-border)", section: "fileList" },
1202
+ { key: "rowRadius", label: "Row Radius", control: "slider", defaultValue: 8, min: 0, max: 16, step: 1, unit: "px", section: "fileList" },
1203
+ { key: "rowGap", label: "Row Gap", control: "number", defaultValue: 6, min: 0, max: 16, step: 1, unit: "px", section: "fileList" },
1204
+ { key: "rowPaddingX", label: "Row Padding X", control: "number", defaultValue: 12, min: 4, max: 24, step: 1, unit: "px", section: "fileList" },
1205
+ { key: "rowPaddingY", label: "Row Padding Y", control: "number", defaultValue: 8, min: 2, max: 20, step: 1, unit: "px", section: "fileList" },
1206
+ { key: "rowNameColor", label: "Filename", control: "color", defaultValue: "var(--color-text-strong)", section: "fileList" },
1207
+ { key: "rowMetaColor", label: "Meta Text", control: "color", defaultValue: "var(--color-text-muted)", section: "fileList" },
1208
+ { key: "rowIconColor", label: "File Icon", control: "color", defaultValue: "var(--color-accent)", section: "fileList" },
1209
+ { key: "removeIconColor", label: "Remove Icon", control: "color", defaultValue: "var(--color-text-muted)", section: "fileList" },
1210
+ // Download control. The key does not collide with REAL_CSS_PROPS, so the
1211
+ // generic `--uxm-file-upload-{kebab}` fallback already lands on the name
1212
+ // the stylesheet reads — no PER_COMPONENT_MAPPING entry needed.
1213
+ // No hover knob on purpose: the registry's `state` variants drive the DROP
1214
+ // AREA, not the rows, so a row-hover knob would save a value the canvas
1215
+ // could never show changing. `--uxm-file-upload-download-icon-hover-color`
1216
+ // stays available to consumers, exactly as the remove button's does.
1217
+ { key: "downloadIconColor", label: "Download Icon", control: "color", defaultValue: "var(--color-text-muted)", section: "fileList" },
1218
+ // ── File List · Progress ──
1219
+ // Per-row progress strip (applied during status="uploading"). It's a
1220
+ // single thin colored bar painted directly on the row's bottom edge —
1221
+ // no separate track element, so no `progressTrack` knob (the row's
1222
+ // own background IS the implicit track at 2px height).
1223
+ { key: "progressFill", label: "Progress Fill", control: "color", defaultValue: "var(--color-accent)", section: "fileListProgress" },
1224
+ { key: "progressHeight", label: "Progress Height", control: "number", defaultValue: 2, min: 1, max: 6, step: 1, unit: "px", section: "fileListProgress" },
1225
+ // ── File List · Status ──
1226
+ // Per-status visual overrides — "what changes when a row succeeds or
1227
+ // fails." Grouped together because they're all conditional styling
1228
+ // on the same base row, not standalone properties of any one state.
1229
+ { key: "rowDoneBg", label: "Done Background", control: "color", defaultValue: "var(--color-success-bg)", section: "fileListStatus" },
1230
+ { key: "rowDoneBorderColor", label: "Done Border", control: "color", defaultValue: "var(--color-success-border)", section: "fileListStatus" },
1231
+ { key: "rowDoneIconColor", label: "Done Icon", control: "color", defaultValue: "var(--color-success-text)", section: "fileListStatus" },
1232
+ { key: "rowErrorBg", label: "Error Background", control: "color", defaultValue: "var(--color-danger-bg)", section: "fileListStatus" },
1233
+ { key: "rowErrorBorderColor", label: "Error Border", control: "color", defaultValue: "var(--color-danger-border)", section: "fileListStatus" },
1234
+ { key: "rowErrorIconColor", label: "Error Icon", control: "color", defaultValue: "var(--color-danger-text)", section: "fileListStatus" },
1235
+ { key: "rowErrorMetaColor", label: "Error Text", control: "color", defaultValue: "var(--color-danger-text)", section: "fileListStatus" }
1236
+ ],
1237
+ layoutVariants: [
1238
+ {
1239
+ key: "state",
1240
+ label: "State",
1241
+ options: [
1242
+ { value: "default", label: "Default" },
1243
+ { value: "hover", label: "Hover" },
1244
+ { value: "drag-over", label: "Drag Over" },
1245
+ { value: "focus", label: "Focus" },
1246
+ { value: "uploading", label: "Uploading" },
1247
+ { value: "error", label: "Error" },
1248
+ { value: "disabled", label: "Disabled" }
1249
+ ],
1250
+ defaultValue: "default"
1251
+ }
1252
+ ],
1253
+ events: [
1254
+ { name: "onFiles", description: "Fires when the user picks files (via picker or drop). Receives a native `File[]`.", payload: "File[]" },
1255
+ { name: "onRemove", description: "Fires when a row's remove button is clicked (only when `showFileList` is on).", payload: "{ id: string }" },
1256
+ { name: "onDragEnter", description: "Fires when a drag enters the drop area.", payload: "DragEvent" },
1257
+ { name: "onDragLeave", description: "Fires when a drag leaves the drop area.", payload: "DragEvent" },
1258
+ { name: "onError", description: "Fires when the caller rejects a drop (e.g. wrong MIME). The atom never fires this on its own \u2014 drive it from your validation in `onFiles`.", payload: "{ reason: string }" }
1259
+ ],
1260
+ api: {
1261
+ importPath: "@viax.io/uxm/ui",
1262
+ importNames: "FileUpload",
1263
+ props: [
1264
+ { name: "onFiles", type: "(files: File[]) => void", description: "Receives picked or dropped files." },
1265
+ { name: "onRemove", type: "(id: string) => void", description: "Called when a row's remove button is clicked. Only meaningful with `showFileList`." },
1266
+ { name: "multiple", type: "boolean", defaultValue: "true", description: "Allow selecting more than one file at a time. Maps to `<input multiple>`." },
1267
+ { name: "accept", type: "string", description: 'Standard `<input accept>` filter, e.g. `"image/*"` or `".pdf,.docx"`. Runtime prop \u2014 not a workbench knob.' },
1268
+ { name: "disabled", type: "boolean", defaultValue: "false", description: "Disables click + drop interactions." },
1269
+ { name: "titleText", type: "string", defaultValue: '"Upload a file"', description: "Heading inside the drop area." },
1270
+ { name: "helpText", type: "string", description: "Hint line under the title. Defaults to a `multiple`-aware string if omitted." },
1271
+ { name: "allowedTypesText", type: "string", description: 'Optional constraint line below the help text \u2014 e.g. "PDF, DOCX \xB7 up to 10 MB". Caller-controlled copy: the atom never invents it and never enforces it. Keep it in sync with the `accept` filter and your `onFiles` validation. If omitted, no slot renders.' },
1272
+ { name: "error", type: "string", description: 'Page-level error message (e.g. "Connection lost"). Paints the drop area in the `error` state and renders the message below it. Named `error` to match the rest of the input family. Distinct from per-file errors \u2014 set `status: "error"` + `errorMessage` on a `FileUploadFileMeta` for single-file failures.' },
1273
+ { name: "errorMessage", type: "string", description: "Deprecated alias for `error` (back-compat); `error` wins when both are set." },
1274
+ { name: "files", type: "FileUploadFileMeta[]", description: "Files to display in the inline list under the drop area. Each row: `{ id, name, size, status?, progress?, errorMessage? }`. `status` is `queued | uploading | done | error` and drives row rendering independently. List is always rendered when `files.length > 0` \u2014 to keep the list elsewhere on the page, just don't pass `files` to the atom." },
1275
+ { name: "state", type: '"default" | "drag-over" | "uploading" | "error"', description: 'Drop-area visual state. Caller-controlled \u2014 the atom never auto-derives this from per-file statuses. Set `"uploading"` for batch lockouts / pre-file validation / indeterminate uploads; the help text swaps to "Uploading\u2026" and `aria-busy` is applied. Per-file states (queued/uploading/done/error) live on each `FileUploadFileMeta.status` and are orthogonal to this.' },
1276
+ { name: "iconGlyph", type: "string", defaultValue: '"cloud-arrow-up"', description: "Override the drop-area icon glyph." }
1277
+ ]
1278
+ }
1279
+ },
1280
+ {
1281
+ id: "select-dropdown",
1282
+ name: "Select Dropdown",
1283
+ category: "Inputs",
1284
+ description: 'Dropdown selection field \u2014 internally a Listbox-backed picker. This entry themes the trigger (default / hover / focus / disabled / error); the trigger is identical whether or not the panel searches, so searchability isn\'t a knob here \u2014 it\'s the `searchable` prop (default auto: the panel grows a search box once the option list is long enough), and the search box itself is previewed + themed in the Listbox entry. Clearability isn\'t a knob either: a clear (\u2715) button appears automatically once a value is picked IF the select has a placeholder option (`<option value="" disabled>`), which marks "empty" as a valid state. Mandatory selects (no placeholder \u2014 a value is always chosen) never show it. For a search-first combobox with its own trigger chrome (icon glyphs, dial codes), use the SearchDropdown atom instead.',
1285
+ styleProperties: [
1286
+ // Default
1287
+ { key: "backgroundColor", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "default" } },
1288
+ { key: "borderColor", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "default" } },
1289
+ { key: "color", label: "Text", control: "color", defaultValue: "var(--color-text)", section: "fieldColors", showWhen: { state: "default" } },
1290
+ // Hover
1291
+ { key: "hoverBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "hover" } },
1292
+ { key: "hoverBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "hover" } },
1293
+ // Focus
1294
+ { key: "focusBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "fieldColors", showWhen: { state: "focus" } },
1295
+ { key: "focusRing", label: "Ring", control: "color", defaultValue: "var(--color-accent)", section: "focusState", showWhen: { state: "focus" } },
1296
+ // Disabled
1297
+ { key: "disabledBg", label: "Background", control: "color", defaultValue: "var(--color-surface-alt)", section: "fieldColors", showWhen: { state: "disabled" } },
1298
+ { key: "disabledBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "fieldColors", showWhen: { state: "disabled" } },
1299
+ { key: "disabledColor", label: "Text", control: "color", defaultValue: "var(--color-text-muted)", section: "fieldColors", showWhen: { state: "disabled" } },
1300
+ { key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.6, min: 0.1, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
1301
+ // Error
1302
+ { key: "errorBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "fieldColors", showWhen: { state: "error" } },
1303
+ { key: "errorBorder", label: "Border", control: "color", defaultValue: "var(--color-danger-text)", section: "fieldColors", showWhen: { state: "error" } },
1304
+ { key: "errorColor", label: "Label + Message", control: "color", defaultValue: "var(--color-danger-text)", section: "errorState", showWhen: { state: "error" } },
1305
+ { key: "errorMessageSize", label: "Message Size", control: "number", defaultValue: 12, min: 10, max: 16, step: 1, unit: "px", section: "errorState", showWhen: { state: "error" } },
1306
+ // Shared
1307
+ { key: "borderRadius", label: "Border Radius", control: "slider", defaultValue: 8, min: 0, max: 16, step: 1, unit: "px" },
1308
+ { key: "paddingX", label: "Padding X", control: "number", defaultValue: 12, min: 4, max: 24, step: 2, unit: "px" },
1309
+ { key: "paddingY", label: "Padding Y", control: "number", defaultValue: 10, min: 4, max: 20, step: 2, unit: "px" },
1310
+ { key: "fontSize", label: "Font Size", control: "number", defaultValue: 14, min: 10, max: 20, step: 1, unit: "px" }
1311
+ // Label theming + position live on FormField. See input-text for
1312
+ // the same consolidation rationale.
1313
+ // The search input's placeholder is NOT a workbench knob: its TEXT
1314
+ // is per-instance content the consumer passes at the call site (the
1315
+ // searchable Select renders the shared Listbox panel), and its only
1316
+ // themeable aspect — the placeholder COLOR — lives once on the
1317
+ // `listbox` entry (`searchPlaceholderColor`). A text knob here would
1318
+ // also serialize to a dead `--uxm-…-search-placeholder` CSS var that
1319
+ // paints nothing.
1320
+ ],
1321
+ layoutVariants: [
1322
+ {
1323
+ key: "state",
1324
+ label: "State",
1325
+ options: [
1326
+ { value: "default", label: "Default" },
1327
+ { value: "hover", label: "Hover" },
1328
+ { value: "focus", label: "Focus" },
1329
+ { value: "disabled", label: "Disabled" },
1330
+ { value: "error", label: "Error" }
1331
+ ],
1332
+ defaultValue: "default"
1333
+ },
1334
+ // Behavioral variants — they change WHAT gets shown, not how the
1335
+ // trigger looks. Style knobs (colors, padding, font) apply across
1336
+ // all of these. (Searchability is deliberately NOT here: the trigger
1337
+ // is identical with/without search, and the search box is previewed
1338
+ // in the Listbox entry — see this component's description.)
1339
+ {
1340
+ key: "multiSelect",
1341
+ label: "Mode",
1342
+ options: [
1343
+ { value: "single", label: "Single" },
1344
+ { value: "multi", label: "Multi" }
1345
+ ],
1346
+ defaultValue: "single"
1347
+ }
1348
+ ],
1349
+ events: [
1350
+ { name: "onChange", description: "Fires when the user picks a different option.", payload: "{ value: string }" },
1351
+ { name: "onFocus", description: "Fires when the select receives focus.", payload: "FocusEvent" },
1352
+ { name: "onBlur", description: "Fires when the select loses focus.", payload: "FocusEvent" }
1353
+ ]
1354
+ },
1355
+ {
1356
+ id: "search-dropdown",
1357
+ name: "Search Dropdown",
1358
+ category: "Inputs",
1359
+ description: "Combobox: trigger button opens a popover with a search input + filtered list. Use for long option lists (icon glyphs, country codes, large enums); native Select covers short ones. Keyboard-navigable (ArrowUp/Down, Enter, Escape) and click-outside-aware. Trigger state coverage matches the rest of the input family \u2014 default / hover / focus / disabled / error.",
1360
+ styleProperties: [
1361
+ // Default — trigger
1362
+ { key: "triggerBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "triggerColors", showWhen: { state: "default" } },
1363
+ { key: "triggerBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "triggerColors", showWhen: { state: "default" } },
1364
+ { key: "triggerColor", label: "Text", control: "color", defaultValue: "var(--color-text)", section: "triggerColors", showWhen: { state: "default" } },
1365
+ // Hover — trigger
1366
+ { key: "triggerHoverBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "triggerColors", showWhen: { state: "hover" } },
1367
+ { key: "triggerHoverBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "triggerColors", showWhen: { state: "hover" } },
1368
+ // Focus — trigger
1369
+ { key: "triggerFocusBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "triggerColors", showWhen: { state: "focus" } },
1370
+ { key: "triggerFocusRing", label: "Ring", control: "color", defaultValue: "var(--color-accent)", section: "focusState", showWhen: { state: "focus" } },
1371
+ // Disabled — trigger
1372
+ { key: "triggerDisabledBg", label: "Background", control: "color", defaultValue: "var(--color-surface-alt)", section: "triggerColors", showWhen: { state: "disabled" } },
1373
+ { key: "triggerDisabledBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "triggerColors", showWhen: { state: "disabled" } },
1374
+ { key: "triggerDisabledColor", label: "Text", control: "color", defaultValue: "var(--color-text-muted)", section: "triggerColors", showWhen: { state: "disabled" } },
1375
+ { key: "triggerDisabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.6, min: 0.1, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
1376
+ // Error — trigger
1377
+ { key: "triggerErrorBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "triggerColors", showWhen: { state: "error" } },
1378
+ { key: "triggerErrorBorder", label: "Border", control: "color", defaultValue: "var(--color-danger-text)", section: "triggerColors", showWhen: { state: "error" } },
1379
+ { key: "triggerErrorColor", label: "Message", control: "color", defaultValue: "var(--color-danger-text)", section: "errorState", showWhen: { state: "error" } },
1380
+ { key: "triggerErrorMessageSize", label: "Message Size", control: "number", defaultValue: 12, min: 10, max: 16, step: 1, unit: "px", section: "errorState", showWhen: { state: "error" } },
1381
+ // Shared — trigger
1382
+ { key: "triggerRadius", label: "Trigger Radius", control: "slider", defaultValue: 6, min: 0, max: 16, step: 1, unit: "px" },
1383
+ { key: "triggerPaddingX", label: "Trigger Padding X", control: "number", defaultValue: 12, min: 4, max: 20, step: 1, unit: "px" },
1384
+ { key: "triggerPaddingY", label: "Trigger Padding Y", control: "number", defaultValue: 10, min: 2, max: 14, step: 1, unit: "px" },
1385
+ { key: "triggerFontSize", label: "Trigger Font Size", control: "number", defaultValue: 14, min: 10, max: 18, step: 1, unit: "px" }
1386
+ // SearchDropdown's popover is owned by the shared Listbox atom —
1387
+ // see the `listbox` registry entry for panel chrome (bg, border,
1388
+ // radius, shadow), option row states (hover, selected, disabled),
1389
+ // search input, group headers, empty + footer slots. Tune Listbox
1390
+ // once and every dropdown in the app reflects it.
1391
+ ],
1392
+ layoutVariants: [
1393
+ {
1394
+ key: "state",
1395
+ label: "State",
1396
+ options: [
1397
+ { value: "default", label: "Default" },
1398
+ { value: "hover", label: "Hover" },
1399
+ { value: "focus", label: "Focus" },
1400
+ { value: "disabled", label: "Disabled" },
1401
+ { value: "error", label: "Error" }
1402
+ ],
1403
+ defaultValue: "default"
1404
+ }
1405
+ ],
1406
+ events: [
1407
+ { name: "onChange", description: "Fires when the user picks an option from the dropdown (click or Enter).", payload: "{ value: string }" },
1408
+ { name: "onSearch", description: "Fires as the user types in the search box. Use to debounce server-side filtering.", payload: "{ query: string }" },
1409
+ { name: "onOpen", description: "Fires when the popover opens (trigger click or keyboard activation).", payload: "void" },
1410
+ { name: "onClose", description: "Fires when the popover closes (selection, Escape, or outside click).", payload: "void" }
1411
+ ]
1412
+ },
1413
+ {
1414
+ id: "listbox",
1415
+ name: "Listbox (Dropdown Panel)",
1416
+ category: "Inputs",
1417
+ description: "Shared dropdown panel used by every select / picker in the app (SearchDropdown, PhoneInput country, CurrencyInput, PillSelect, native Select replacement, ColorPicker). The atom is generic over item shape \u2014 consumers pass items + a renderItem and own the trigger entirely. This entry themes the PANEL only: chrome, search input, option rows + states, group headers, empty state, footer. Trigger / field theming lives on each consuming component's own registry entry.",
1418
+ styleProperties: [
1419
+ // Panel chrome — the floating card.
1420
+ { key: "panelBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "panel" },
1421
+ { key: "panelBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "panel" },
1422
+ { key: "panelRadius", label: "Radius", control: "slider", defaultValue: 8, min: 0, max: 16, step: 1, unit: "px", section: "panel" },
1423
+ // Drop shadow — decomposed into Color / Blur / Offset Y (colour picker
1424
+ // + sliders) instead of a raw box-shadow text field. Same pattern as
1425
+ // the Calendar / Menu atoms; the box-shadow is composed from these
1426
+ // three vars in listbox.scss.
1427
+ { key: "shadowColor", label: "Color", control: "color", defaultValue: "rgba(0, 0, 0, 0.10)", section: "shadow" },
1428
+ { key: "shadowBlur", label: "Blur", control: "slider", defaultValue: 20, min: 0, max: 48, step: 1, unit: "px", section: "shadow" },
1429
+ { key: "shadowOffsetY", label: "Offset Y", control: "slider", defaultValue: 6, min: 0, max: 24, step: 1, unit: "px", section: "shadow" },
1430
+ { key: "panelMaxHeight", label: "Max Height", control: "number", defaultValue: 320, min: 120, max: 600, step: 20, unit: "px", section: "panel" },
1431
+ // Search input — only meaningful when the consumer enables search.
1432
+ { key: "searchBorder", label: "Divider", control: "color", defaultValue: "var(--color-border)", section: "search", showWhen: { withSearch: "yes" } },
1433
+ { key: "searchIconColor", label: "Icon", control: "color", defaultValue: "var(--color-text-subtle)", section: "search", showWhen: { withSearch: "yes" } },
1434
+ { key: "searchColor", label: "Text", control: "color", defaultValue: "var(--color-text)", section: "search", showWhen: { withSearch: "yes" } },
1435
+ { key: "searchPlaceholderColor", label: "Placeholder", control: "color", defaultValue: "var(--color-text-subtle)", section: "search", showWhen: { withSearch: "yes" } },
1436
+ { key: "searchFontSize", label: "Font Size", control: "number", defaultValue: 12, min: 10, max: 18, step: 1, unit: "px", section: "search", showWhen: { withSearch: "yes" } },
1437
+ // Option row — sizing knobs apply across all states. The shared
1438
+ // (always-visible) section keeps padding / font / radius next to
1439
+ // the state-specific colours so they're easy to find.
1440
+ { key: "optionPaddingX", label: "Padding X", control: "number", defaultValue: 10, min: 4, max: 20, step: 1, unit: "px", section: "option" },
1441
+ { key: "optionPaddingY", label: "Padding Y", control: "number", defaultValue: 6, min: 2, max: 14, step: 1, unit: "px", section: "option" },
1442
+ { key: "optionFontSize", label: "Font Size", control: "number", defaultValue: 13, min: 10, max: 18, step: 1, unit: "px", section: "option" },
1443
+ { key: "optionRadius", label: "Radius", control: "slider", defaultValue: 4, min: 0, max: 12, step: 1, unit: "px", section: "option" },
1444
+ // Per-state colour knobs — scoped by `state` variant so only the
1445
+ // knobs relevant to the currently-displayed showcase state are
1446
+ // visible. Matches the search-dropdown / select-dropdown / input-text
1447
+ // convention. State labels in showWhen match the variant `value`
1448
+ // strings ("default" / "active" / "selected" / "selected-active" /
1449
+ // "disabled"). Default state has no row background of its own — the
1450
+ // panel bg shows through — so only the text colour is exposed there.
1451
+ // Default state — bg + text. Bg defaults to transparent so the
1452
+ // panel chrome shows through (the common case); tune it if you
1453
+ // want every row to have its own surface (e.g. striped rows).
1454
+ { key: "optionDefaultBg", label: "Background", control: "color", defaultValue: "transparent", section: "optionState", showWhen: { state: "default" } },
1455
+ { key: "optionColor", label: "Text", control: "color", defaultValue: "var(--color-text)", section: "optionState", showWhen: { state: "default" } },
1456
+ // "Hover" state covers both mouse hover and keyboard arrow-key
1457
+ // highlight — they paint the same modifier class (`--active`)
1458
+ // because the atom keeps them visually equivalent. Registry key
1459
+ // names stay `optionActive*` to match the CSS class + var
1460
+ // namespace; the workbench label is "Hover" because that's the
1461
+ // term designers use.
1462
+ { key: "optionActiveBg", label: "Background", control: "color", defaultValue: "var(--color-surface-alt)", section: "optionState", showWhen: { state: "hover" } },
1463
+ { key: "optionActiveColor", label: "Text", control: "color", defaultValue: "var(--color-text)", section: "optionState", showWhen: { state: "hover" } },
1464
+ { key: "optionSelectedBg", label: "Background", control: "color", defaultValue: "var(--color-accent-subtle)", section: "optionState", showWhen: { state: "selected" } },
1465
+ { key: "optionSelectedColor", label: "Text", control: "color", defaultValue: "var(--color-accent-bold)", section: "optionState", showWhen: { state: "selected" } },
1466
+ { key: "optionDisabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: "optionState", showWhen: { state: "disabled" } },
1467
+ // Group headers — only meaningful when the consumer groups items.
1468
+ { key: "groupHeaderFontSize", label: "Font Size", control: "number", defaultValue: 10, min: 9, max: 14, step: 1, unit: "px", section: "groupHeader", showWhen: { withGroups: "yes" } },
1469
+ { key: "groupHeaderColor", label: "Color", control: "color", defaultValue: "var(--color-text-subtle)", section: "groupHeader", showWhen: { withGroups: "yes" } },
1470
+ // Empty-state line (e.g. "No matches").
1471
+ { key: "emptyColor", label: "Color", control: "color", defaultValue: "var(--color-text-muted)", section: "empty" },
1472
+ // Footer divider — only shown when a consumer passes a footer slot
1473
+ // (ColorPicker's custom-hex panel).
1474
+ { key: "footerBorder", label: "Divider", control: "color", defaultValue: "var(--color-border)", section: "footer", showWhen: { withFooter: "yes" } }
1475
+ // No "Selection Indicator" knobs — the atom decides the pattern
1476
+ // (single-select → right-edge ✓ on selected, multi-select → left
1477
+ // checkboxes on every row). The right-edge ✓ inherits the row's
1478
+ // `--selected` text colour (tune via Selected → Text). The
1479
+ // checkbox marker reads `--uxm-checkbox-*` (tune via the Checkbox
1480
+ // atom). No new tuning surface here.
1481
+ ],
1482
+ layoutVariants: [
1483
+ {
1484
+ // Which state's classes to apply to the static showcase row at
1485
+ // the top of the preview. The interactive instance below is
1486
+ // always live — hover / keyboard / selection exercise the real
1487
+ // CSS rules independently. This picker is purely for VISUAL
1488
+ // confirmation of the per-state knobs (active bg, selected
1489
+ // bg/color, disabled opacity) — without it you'd have to hover
1490
+ // / click the interactive instance to verify each state.
1491
+ key: "state",
1492
+ label: "Row State",
1493
+ options: [
1494
+ { value: "default", label: "Default" },
1495
+ { value: "hover", label: "Hover" },
1496
+ { value: "selected", label: "Selected" },
1497
+ { value: "disabled", label: "Disabled" }
1498
+ ],
1499
+ defaultValue: "default"
1500
+ },
1501
+ {
1502
+ key: "withSearch",
1503
+ label: "Search Input",
1504
+ options: [
1505
+ { value: "yes", label: "On" },
1506
+ { value: "no", label: "Off" }
1507
+ ],
1508
+ defaultValue: "yes"
1509
+ },
1510
+ {
1511
+ key: "withGroups",
1512
+ label: "Group Headers",
1513
+ options: [
1514
+ { value: "no", label: "Off" },
1515
+ { value: "yes", label: "On" }
1516
+ ],
1517
+ defaultValue: "no"
1518
+ },
1519
+ {
1520
+ key: "withFooter",
1521
+ label: "Footer Slot",
1522
+ options: [
1523
+ { value: "no", label: "Off" },
1524
+ { value: "yes", label: "On" }
1525
+ ],
1526
+ defaultValue: "no"
1527
+ },
1528
+ {
1529
+ // Wrap a long list into up to two balanced columns to roughly halve
1530
+ // the panel height. Drives `--uxm-listbox-list-columns` on the list
1531
+ // in the preview; a real consumer sets the `columns` prop. The count
1532
+ // is a max (each column keeps a min width, so a narrow panel falls
1533
+ // back to one) — try it with Group Headers on to see headers span.
1534
+ // One vs two — deeper columns get unusable in a dropdown.
1535
+ key: "columns",
1536
+ label: "Columns",
1537
+ options: [
1538
+ { value: "1", label: "One" },
1539
+ { value: "2", label: "Two" }
1540
+ ],
1541
+ defaultValue: "1"
1542
+ },
1543
+ {
1544
+ // Which atom the interactive preview mounts. The indicator
1545
+ // pattern is decided by the atom, not by the workbench:
1546
+ // - `Listbox` (single) → right-edge ✓ on the selected row
1547
+ // - `MultiListbox` (multi) → left-edge checkbox on every row
1548
+ // The static showcase above respects this too — single mode
1549
+ // shows the right-✓ when `state=selected`; multi mode shows
1550
+ // checkboxes on the row regardless of state.
1551
+ key: "mode",
1552
+ label: "Selection",
1553
+ options: [
1554
+ { value: "single", label: "Single" },
1555
+ { value: "multi", label: "Multi" }
1556
+ ],
1557
+ defaultValue: "single"
1558
+ },
1559
+ // Multi-only — the Checkboxes variant shows the with/without
1560
+ // indicator design choice for multi-select panels. `excludeSelected`
1561
+ // (hide picked items from the list) is intentionally NOT exposed
1562
+ // — it's a consumer-level decision baked into atoms like
1563
+ // PillSelect, not a panel-design choice designers should tune.
1564
+ // `showWhen: { mode: "multi" }` keeps it out of single mode.
1565
+ {
1566
+ key: "showCheckbox",
1567
+ label: "Checkboxes",
1568
+ options: [
1569
+ { value: "on", label: "On" },
1570
+ { value: "off", label: "Off" }
1571
+ ],
1572
+ defaultValue: "on",
1573
+ showWhen: { mode: "multi" }
1574
+ }
1575
+ ],
1576
+ events: [
1577
+ { name: "onChange", description: "Fires when the user picks an option (click or Enter). Multi-select toggles items in/out of the array.", payload: "T (single) | T[] (multi)" },
1578
+ { name: "onOpenChange", description: "Fires when the panel opens or closes.", payload: "boolean" }
1579
+ ],
1580
+ api: {
1581
+ importPath: "@viax.io/uxm/ui",
1582
+ importNames: ["Listbox", "MultiListbox"],
1583
+ props: [
1584
+ { name: "items", type: "T[]", required: true, description: "Source data \u2014 the listbox is generic over T and has no knowledge of what's inside." },
1585
+ { name: "getKey", type: "(item: T) => string", required: true, description: "Stable React key per item." },
1586
+ { name: "getLabel", type: "(item: T) => string", required: true, description: "Plain text used for default substring filter and a11y." },
1587
+ { name: "value", type: "T | null // Listbox\nT[] // MultiListbox", required: true, description: "Current selection." },
1588
+ { name: "onChange", type: "(item: T | null) => void // Listbox \u2014 null when consumer clears\n(items: T[]) => void // MultiListbox \u2014 empty array when cleared", required: true, description: "Selection callback. Listbox passes null when the consumer wires up a clear affordance (e.g. \u2715 in their renderTrigger). MultiListbox passes an empty array when all selections are cleared." },
1589
+ { name: "renderTrigger", type: "(state: { open, selected, triggerProps }) => ReactNode", required: true, description: "Render the consumer's trigger. Spread `triggerProps` on a button \u2014 that wires ref + click + ARIA in one go." },
1590
+ { name: "renderItem", type: "(item: T, state: { active, selected }) => ReactNode", required: true, description: "Render each row body \u2014 the atom owns layout + states; consumer owns visuals (icon, flag, swatch, etc.)." },
1591
+ { name: "searchable", type: 'boolean | "auto"', defaultValue: "true", description: 'Show a search input above the list. `"auto"` reveals it only once the option count exceeds the shared threshold (6) \u2014 the one place that rule lives, so every Listbox-backed picker shares it.' },
1592
+ { name: "filterItems", type: "(items: T[], query: string) => T[]", description: "Override the default case-insensitive substring filter on `getLabel`." },
1593
+ { name: "groupBy", type: "(item: T) => string", description: "Group items under section headers in declared order." },
1594
+ { name: "columns", type: "1 | 2", defaultValue: "1", description: "Wrap a long list into up to two balanced columns to roughly halve the panel height. Rows keep source order down column one then continue in column two, so arrow-key nav still reads naturally. A max, not a fixed count \u2014 each column keeps a min width (--uxm-listbox-list-column-min-width), so a narrow panel falls back to one column instead of cramping; widen the panel (wider anchor or matchAnchorWidth={false} + minPanelWidth) to reveal the second. Works with groupBy \u2014 headers span full width above each group." },
1595
+ { name: "footer", type: "ReactNode", description: "Slot below the list (e.g. ColorPicker's custom hex panel)." },
1596
+ { name: "isItemDisabled", type: "(item: T) => boolean", description: "Mark individual items inert (not selectable, skipped by keyboard nav)." },
1597
+ { name: "placement", type: '"bottom-start" | "bottom-end" | "top-start" | "top-end"', defaultValue: '"bottom-start"', description: "Preferred placement; flips on overflow." },
1598
+ { name: "matchAnchorWidth", type: "boolean", defaultValue: "true", description: "Match the positioning anchor's width (the trigger by default, or `anchorRef` if provided)." },
1599
+ { name: "anchorRef", type: "RefObject<HTMLElement | null>", description: "Override what the popover positions / sizes against. Defaults to the trigger element. Use when the trigger is a small affordance inside a larger field (e.g. PhoneInput's country button inside the phone field)." },
1600
+ { name: "showCheckmark", type: "boolean", defaultValue: "true", description: "Listbox only \u2014 show the right-edge \u2713 on the selected row. Set to `false` when row content already has trailing meta (dial codes, currency codes) that would compete for the right edge." },
1601
+ { name: "portal", type: "boolean", defaultValue: "true", description: "Mount the panel into document.body \u2014 escapes clipping parents." },
1602
+ { name: "excludeSelected", type: "boolean", defaultValue: "true", description: "MultiListbox only \u2014 hide items already in `value` from the panel." }
1603
+ ]
1604
+ }
1605
+ },
1606
+ {
1607
+ id: "menu",
1608
+ name: "Menu (Action Menu)",
1609
+ category: "Inputs",
1610
+ description: "Action / dropdown menu \u2014 a list of commands invoked from a consumer-owned trigger (a \u22EE IconButton, a Button, anything). Built on the same headless Popover as Listbox (positioning, portal, outside-click, Escape) but with menu semantics (role=menu / menuitem / separator) and NO selected-value state: pick a row \u2192 run its action \u2192 dismiss. Reach for Listbox/Select when you need to HOLD a chosen value; reach for Menu for row \u22EE actions, overflow menus, and command lists. Supports leading icons (optionally tinted per row via the item's iconColor), trailing hints (e.g. shortcuts), optional two-line rows (a headline label + a supporting subtitle), separators, disabled rows, destructive (danger) items, and a Current row for context switchers \u2014 a workspace / scope / view picker (aria-current + a trailing checkmark + heavier label \u2014 it REFLECTS where the user is, it does not hold a value). Panel width follows the trigger when matchAnchorWidth is set (a field-like switcher trigger) and comes from content otherwise (a kebab trigger). The Shape picker swaps the live panel between the atom's two shapes \u2014 row actions (every row a command, destructive last, kebab trigger, default bottom-end) and a context switcher (sibling contexts plus one command under a separator, exactly one Current row, field trigger, matchAnchorWidth='min' + bottom-start). Both share every knob and class; only the entries differ. This entry themes the PANEL + rows; the trigger is owned entirely by the consumer's renderTrigger.",
1611
+ styleProperties: [
1612
+ // Panel chrome — the floating card.
1613
+ { key: "panelBg", label: "Background", control: "color", defaultValue: "var(--color-card)", section: "panel" },
1614
+ { key: "panelBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "panel" },
1615
+ { key: "panelRadius", label: "Radius", control: "slider", defaultValue: 8, min: 0, max: 16, step: 1, unit: "px", section: "panel" },
1616
+ { key: "panelMaxHeight", label: "Max Height", control: "number", defaultValue: 360, min: 120, max: 600, step: 20, unit: "px", section: "panel" },
1617
+ // Drop shadow — decomposed into Color / Blur / Offset Y instead of a
1618
+ // raw `box-shadow` text field, so designers tune it with a colour
1619
+ // picker + sliders. Same pattern as the Calendar atom; the box-shadow
1620
+ // is composed from these three vars in styles.css. Defaults match the
1621
+ // floating-panel elevation (0 6px 20px rgba(0,0,0,0.10)).
1622
+ { key: "shadowColor", label: "Color", control: "color", defaultValue: "rgba(0, 0, 0, 0.10)", section: "shadow" },
1623
+ { key: "shadowBlur", label: "Blur", control: "slider", defaultValue: 20, min: 0, max: 48, step: 1, unit: "px", section: "shadow" },
1624
+ { key: "shadowOffsetY", label: "Offset Y", control: "slider", defaultValue: 6, min: 0, max: 24, step: 1, unit: "px", section: "shadow" },
1625
+ // Item row — sizing knobs apply across all states.
1626
+ { key: "itemPaddingX", label: "Padding X", control: "number", defaultValue: 10, min: 4, max: 20, step: 1, unit: "px", section: "item" },
1627
+ { key: "itemPaddingY", label: "Padding Y", control: "number", defaultValue: 7, min: 2, max: 14, step: 1, unit: "px", section: "item" },
1628
+ { key: "itemFontSize", label: "Font Size", control: "number", defaultValue: 13, min: 10, max: 18, step: 1, unit: "px", section: "item" },
1629
+ { key: "itemRadius", label: "Radius", control: "slider", defaultValue: 4, min: 0, max: 12, step: 1, unit: "px", section: "item" },
1630
+ // Per-state colours — scoped by the `state` showcase variant so only
1631
+ // the knobs relevant to the displayed row state are visible. Mirrors
1632
+ // the listbox / select-dropdown convention. "Hover" covers both
1633
+ // mouse hover and keyboard arrow-key highlight (same `--active`
1634
+ // class). Default row has no surface of its own (panel bg shows
1635
+ // through), so only text colour is exposed there.
1636
+ { key: "itemColor", label: "Text", control: "color", defaultValue: "var(--color-text)", section: "itemState", showWhen: { state: "default" } },
1637
+ { key: "itemActiveBg", label: "Background", control: "color", defaultValue: "var(--color-surface-alt)", section: "itemState", showWhen: { state: "hover" } },
1638
+ { key: "itemActiveColor", label: "Text", control: "color", defaultValue: "var(--color-text)", section: "itemState", showWhen: { state: "hover" } },
1639
+ { key: "itemDisabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: "itemState", showWhen: { state: "disabled" } },
1640
+ // Destructive rows (Delete etc.) — danger text at rest, danger-tinted
1641
+ // surface when highlighted.
1642
+ { key: "itemDangerColor", label: "Text", control: "color", defaultValue: "var(--color-danger-text)", section: "itemState", showWhen: { state: "danger" } },
1643
+ { key: "itemDangerActiveBg", label: "Hover Background", control: "color", defaultValue: "var(--color-danger-bg)", section: "itemState", showWhen: { state: "danger" } },
1644
+ // The row the user is currently ON (a switcher's active workspace) —
1645
+ // weight + a trailing checkmark, no colour of its own so `itemColor`
1646
+ // and the danger tone keep reaching it and the checkmark inherits the
1647
+ // row. Background defaults to transparent: a resting tint collided
1648
+ // with the hover surface, whose default is the obvious
1649
+ // `--color-surface-alt`. The knob stays so a designer can opt in; the
1650
+ // CSS rule order keeps hover on top of it either way.
1651
+ { key: "itemCurrentBg", label: "Background", control: "color", defaultValue: "transparent", section: "itemState", showWhen: { state: "current" } },
1652
+ { key: "itemCurrentFontWeight", label: "Font Weight", control: "select", defaultValue: "600", options: ["400", "500", "600", "700"], section: "itemState", showWhen: { state: "current" } },
1653
+ // Leading icon colour at rest (tracks the row text colour when
1654
+ // active / danger — no separate knobs for those states).
1655
+ //
1656
+ // `--color-text-strong`, not `--color-text-subtle`: subtle measures
1657
+ // 1.48:1 on the panel in the light theme (2.85:1 dark), below even the
1658
+ // 3:1 non-text floor, and ends up fainter than a disabled row — a live
1659
+ // glyph read as switched off. See the note in menu.scss.
1660
+ { key: "itemIconColor", label: "Color", control: "color", defaultValue: "var(--color-text-strong)", section: "icon", showWhen: { withIcons: "yes" } },
1661
+ // Trailing hint (a shortcut echo like ⌘C). Muted is BELOW the AA floor
1662
+ // for text at 2.54:1 — a deliberate exception because the hint carries
1663
+ // no content the label lacks. The subtitle below refuses the same token
1664
+ // for exactly the opposite reason; see menu.scss.
1665
+ { key: "itemHintFontSize", label: "Font Size", control: "number", defaultValue: 12, min: 9, max: 16, step: 1, unit: "px", section: "hint", showWhen: { withHints: "yes" } },
1666
+ { key: "itemHintColor", label: "Color", control: "color", defaultValue: "var(--color-text-muted)", section: "hint", showWhen: { withHints: "yes" } },
1667
+ // Two-line rows — a headline (label) plus a supporting subtitle
1668
+ // beneath. Only shown when the Subtitles variant is on.
1669
+ { key: "itemSubtitleFontSize", label: "Font Size", control: "number", defaultValue: 11, min: 9, max: 16, step: 1, unit: "px", section: "subtitle", showWhen: { withSubtitles: "yes" } },
1670
+ // Default is text-STRONG, not text-muted: muted fails WCAG AA on the
1671
+ // panel in the light theme (2.54:1) and a subtitle carries real content.
1672
+ // See the note in menu.scss.
1673
+ { key: "itemSubtitleColor", label: "Color", control: "color", defaultValue: "var(--color-text-strong)", section: "subtitle", showWhen: { withSubtitles: "yes" } },
1674
+ { key: "itemSubtitleGap", label: "Row Gap", control: "number", defaultValue: 2, min: 0, max: 8, step: 1, unit: "px", section: "subtitle", showWhen: { withSubtitles: "yes" } },
1675
+ // Separator divider colour. A separator divides ROWS, so the single-row
1676
+ // static showcase has nothing to draw it between — open the live menu to
1677
+ // see this one land.
1678
+ { key: "separatorColor", label: "Color", control: "color", defaultValue: "var(--color-border)", section: "separator", showWhen: { withSeparator: "yes" } }
1679
+ ],
1680
+ layoutVariants: [
1681
+ {
1682
+ // Which state the static showcase rows paint. The interactive
1683
+ // instance (a real ⋮ trigger) below is always live — hover /
1684
+ // keyboard exercise the real CSS independently. This picker is
1685
+ // purely to VISUALLY confirm each per-state knob without having
1686
+ // to hover the live menu.
1687
+ key: "state",
1688
+ label: "Row State",
1689
+ options: [
1690
+ { value: "default", label: "Default" },
1691
+ { value: "hover", label: "Hover" },
1692
+ { value: "disabled", label: "Disabled" },
1693
+ { value: "danger", label: "Danger" },
1694
+ // `current` is ORTHOGONAL to the others — a row can be current and
1695
+ // hovered and disabled at once — so this option is a knob-scoping
1696
+ // device, not a claim of exclusivity (the same licence `hover` and
1697
+ // `disabled` already take here). The showcase paints the picked state
1698
+ // on its single row AT REST and never stacks one state on another:
1699
+ // forcing the highlight under `Current` made it contradict its own
1700
+ // knobs (`itemCurrentBg` defaults to `transparent`) and read as
1701
+ // "current has a background". Hover the current row in the LIVE menu
1702
+ // to see the two compose.
1703
+ { value: "current", label: "Current" }
1704
+ ],
1705
+ defaultValue: "default"
1706
+ },
1707
+ {
1708
+ // Which of the atom's two shapes the LIVE panel demonstrates. Both are
1709
+ // legitimately this atom — they share every knob, every class and the
1710
+ // same ARIA; only the entries differ, plus the trigger and placement a
1711
+ // consumer would pick. Scopes no knobs on purpose: it changes the
1712
+ // example, not the knob set. It exists because collapsing the demo to
1713
+ // one shape hid the other, and mixing them into one list made a
1714
+ // switcher row stick out among commands — telling two stories at once.
1715
+ key: "shape",
1716
+ label: "Shape",
1717
+ options: [
1718
+ { value: "actions", label: "Row actions" },
1719
+ { value: "switcher", label: "Switcher" }
1720
+ ],
1721
+ defaultValue: "actions"
1722
+ },
1723
+ {
1724
+ key: "withIcons",
1725
+ label: "Leading Icons",
1726
+ options: [
1727
+ { value: "yes", label: "On" },
1728
+ { value: "no", label: "Off" }
1729
+ ],
1730
+ defaultValue: "yes"
1731
+ },
1732
+ {
1733
+ key: "withSeparator",
1734
+ label: "Separator",
1735
+ options: [
1736
+ { value: "yes", label: "On" },
1737
+ { value: "no", label: "Off" }
1738
+ ],
1739
+ defaultValue: "yes"
1740
+ },
1741
+ {
1742
+ // Trailing shortcut hints. Off by default: with Subtitles also on, a
1743
+ // row concatenates label + subtitle + hint into one accessible name
1744
+ // — the anti-pattern the README warns about. Worth being able to SEE
1745
+ // (it is also visually tight inside maxWidth 280), not worth
1746
+ // shipping as the baseline.
1747
+ key: "withHints",
1748
+ label: "Hints",
1749
+ options: [
1750
+ { value: "yes", label: "On" },
1751
+ { value: "no", label: "Off" }
1752
+ ],
1753
+ defaultValue: "no"
1754
+ },
1755
+ {
1756
+ // Turns each row into a two-line headline + subtitle item. Off by
1757
+ // default so the classic single-line menu is the baseline.
1758
+ key: "withSubtitles",
1759
+ label: "Subtitles",
1760
+ options: [
1761
+ { value: "yes", label: "On" },
1762
+ { value: "no", label: "Off" }
1763
+ ],
1764
+ defaultValue: "no"
1765
+ }
1766
+ ],
1767
+ events: [
1768
+ { name: "onSelect", description: "Fires when an item is invoked (click / Enter / Space). The menu closes afterward. Per-item \u2014 wired via each item's `onSelect`.", payload: "void" },
1769
+ { name: "onOpenChange", description: "Fires when the menu opens or closes.", payload: "boolean" }
1770
+ ],
1771
+ api: {
1772
+ importPath: "@viax.io/uxm/ui",
1773
+ importNames: "Menu",
1774
+ props: [
1775
+ { name: "items", type: "MenuEntry[]", required: true, description: "Menu entries \u2014 actionable items ({ key, label, subtitle?, icon?, iconColor?, hint?, onSelect?, disabled?, danger?, current? }) and separators ({ separator: true }), in display order. Pass `subtitle` to render a two-line row (label = headline), `iconColor` to tint ONE row's glyph (prefer a `var(--color-*)` reference; raw hex only for entity-identity colours), and `current` to mark the row the user is already on (aria-current + trailing checkmark + heavier label)." },
1776
+ { name: "renderTrigger", type: "(api: { open, triggerProps }) => ReactNode", required: true, description: "Render the trigger. Spread `triggerProps` on your interactive element (an IconButton \u22EE, a Button) \u2014 wires ref + click + ARIA in one go." },
1777
+ { name: "placement", type: '"bottom-start" | "bottom-end" | "top-start" | "top-end"', defaultValue: '"bottom-end"', description: "Preferred placement; flips on overflow. Defaults to bottom-end since menus usually align to a trailing \u22EE." },
1778
+ { name: "open", type: "boolean", description: "Controlled open state. Pair with onOpenChange. Omit for uncontrolled." },
1779
+ { name: "onOpenChange", type: "(open: boolean) => void", description: "Called whenever the menu wants to open/close." },
1780
+ { name: "minWidth", type: "number", defaultValue: "160", description: "Minimum panel width in px." },
1781
+ { name: "maxWidth", type: "number", defaultValue: "280", description: "Maximum panel width in px \u2014 long labels truncate beyond it. The default applies only while matchAnchorWidth is off." },
1782
+ { name: "matchAnchorWidth", type: 'boolean | "min"', defaultValue: "false", description: `Tie the panel width to the trigger: true makes it equal, "min" makes the trigger width a floor the panel can grow past. Use it for a field-like trigger that displays a value (a workspace switcher) \u2014 the panel then reads as a continuation of the control, the native <select> convention; "min" is the forgiving choice since user-authored labels outgrow a fixed width. Never use it with an icon-only / kebab trigger: you would get a 32px panel, which is why the default is false and placement is bottom-end. Setting it also drops the 160/280 defaults, which would otherwise clamp a wide trigger's panel narrower than the trigger. Restoring bounds is asymmetric: maxWidth is always honoured, but minWidth is ignored under 'min' (Popover makes the measured anchor width the floor) \u2014 use true plus an explicit minWidth if you need a floor wider than the trigger.` }
1783
+ ]
1784
+ }
1785
+ },
1786
+ {
1787
+ id: "checkbox",
1788
+ name: "Checkbox",
1789
+ category: "Inputs",
1790
+ description: "Checkbox input with label. State knobs cover unchecked \xD7 checked across default / hover / focus, plus a shared disabled opacity.",
1791
+ styleProperties: [
1792
+ // Default — unchecked
1793
+ { key: "uncheckedBg", label: "Background", control: "color", defaultValue: "transparent", section: "uncheckedColors", showWhen: { state: "default" } },
1794
+ { key: "uncheckedBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "uncheckedColors", showWhen: { state: "default" } },
1795
+ // Default — checked
1796
+ { key: "checkedBg", label: "Background", control: "color", defaultValue: "var(--color-accent)", section: "checkedColors", showWhen: { state: "default" } },
1797
+ { key: "checkedBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "checkedColors", showWhen: { state: "default" } },
1798
+ { key: "checkGlyphColor", label: "Check Glyph", control: "color", defaultValue: "var(--color-text-inverse)", section: "checkedColors", showWhen: { state: "default" } },
1799
+ // Hover — unchecked
1800
+ { key: "hoverUncheckedBg", label: "Background", control: "color", defaultValue: "transparent", section: "uncheckedColors", showWhen: { state: "hover" } },
1801
+ // text-strong, not text-muted: muted is 2.54:1 on card in light — under the 3:1 UI floor (Principle IV)
1802
+ { key: "hoverUncheckedBorder", label: "Border", control: "color", defaultValue: "var(--color-text-strong)", section: "uncheckedColors", showWhen: { state: "hover" } },
1803
+ // Hover — checked
1804
+ { key: "hoverCheckedBg", label: "Background", control: "color", defaultValue: "var(--color-accent-bold)", section: "checkedColors", showWhen: { state: "hover" } },
1805
+ { key: "hoverCheckedBorder", label: "Border", control: "color", defaultValue: "var(--color-accent-bold)", section: "checkedColors", showWhen: { state: "hover" } },
1806
+ { key: "hoverCheckGlyphColor", label: "Check Glyph", control: "color", defaultValue: "var(--color-text-inverse)", section: "checkedColors", showWhen: { state: "hover" } },
1807
+ // Focus — single shared ring color (outline applies the same to
1808
+ // checked and unchecked; splitting it into two knobs was overkill).
1809
+ { key: "focusRing", label: "Ring Color", control: "color", defaultValue: "var(--color-accent)", section: "focusState", showWhen: { state: "focus" } },
1810
+ // Disabled — single shared opacity (no per-mode colors)
1811
+ { key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
1812
+ // Shared — always visible
1813
+ { key: "size", label: "Size", control: "number", defaultValue: 20, min: 14, max: 32, step: 2, unit: "px" },
1814
+ { key: "borderRadius", label: "Border Radius", control: "slider", defaultValue: 4, min: 0, max: 12, step: 1, unit: "px" },
1815
+ { key: "gap", label: "Label Gap", control: "number", defaultValue: 10, min: 4, max: 20, step: 2, unit: "px" },
1816
+ // Error — the box + label stay neutral; the message below is the sole
1817
+ // signal (errorColor colors it, errorMessageSize sizes it). Shared keys
1818
+ // with the input family so the editor's "Match in N" sync applies.
1819
+ { key: "errorColor", label: "Message", control: "color", defaultValue: "var(--color-danger-text)", section: "errorState", showWhen: { state: "error" } },
1820
+ { key: "errorMessageSize", label: "Message Size", control: "number", defaultValue: 12, min: 10, max: 16, step: 1, unit: "px", section: "errorState", showWhen: { state: "error" } }
1821
+ ],
1822
+ layoutVariants: [
1823
+ {
1824
+ key: "state",
1825
+ label: "State",
1826
+ options: [
1827
+ { value: "default", label: "Default" },
1828
+ { value: "hover", label: "Hover" },
1829
+ { value: "focus", label: "Focus" },
1830
+ { value: "disabled", label: "Disabled" },
1831
+ { value: "error", label: "Error" }
1832
+ ],
1833
+ defaultValue: "default"
1834
+ }
1835
+ ],
1836
+ events: [
1837
+ { name: "onChange", description: "Fires when the user toggles the checked state via click or Space.", payload: "{ checked: boolean }" },
1838
+ { name: "onFocus", description: "Fires when the checkbox receives focus.", payload: "FocusEvent" },
1839
+ { name: "onBlur", description: "Fires when the checkbox loses focus.", payload: "FocusEvent" }
1840
+ ]
1841
+ },
1842
+ {
1843
+ id: "toggle-switch",
1844
+ name: "Toggle Switch",
1845
+ category: "Inputs",
1846
+ description: "On/off toggle switch. State knobs cover off \xD7 on across default / hover / focus, plus a shared disabled opacity.",
1847
+ styleProperties: [
1848
+ // Default — off
1849
+ { key: "offTrack", label: "Track", control: "color", defaultValue: "var(--color-border)", section: "offColors", showWhen: { state: "default" } },
1850
+ { key: "offThumb", label: "Thumb", control: "color", defaultValue: "var(--color-card)", section: "offColors", showWhen: { state: "default" } },
1851
+ // Default — on
1852
+ { key: "onTrack", label: "Track", control: "color", defaultValue: "var(--color-accent)", section: "onColors", showWhen: { state: "default" } },
1853
+ { key: "onThumb", label: "Thumb", control: "color", defaultValue: "var(--color-card)", section: "onColors", showWhen: { state: "default" } },
1854
+ // Hover — off
1855
+ // text-strong, not text-muted: muted is 2.54:1 on card in light — under the 3:1 UI floor (Principle IV)
1856
+ { key: "hoverOffTrack", label: "Track", control: "color", defaultValue: "var(--color-text-strong)", section: "offColors", showWhen: { state: "hover" } },
1857
+ { key: "hoverOffThumb", label: "Thumb", control: "color", defaultValue: "var(--color-card)", section: "offColors", showWhen: { state: "hover" } },
1858
+ // Hover — on
1859
+ { key: "hoverOnTrack", label: "Track", control: "color", defaultValue: "var(--color-accent-bold)", section: "onColors", showWhen: { state: "hover" } },
1860
+ { key: "hoverOnThumb", label: "Thumb", control: "color", defaultValue: "var(--color-card)", section: "onColors", showWhen: { state: "hover" } },
1861
+ // Focus — single shared ring color (outline applies the same to
1862
+ // off and on; splitting it into two knobs was overkill).
1863
+ { key: "focusRing", label: "Ring Color", control: "color", defaultValue: "var(--color-accent)", section: "focusState", showWhen: { state: "focus" } },
1864
+ // Disabled — shared opacity
1865
+ { key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
1866
+ // Shared — always visible
1867
+ { key: "width", label: "Width", control: "number", defaultValue: 44, min: 32, max: 64, step: 4, unit: "px" },
1868
+ { key: "height", label: "Height", control: "number", defaultValue: 24, min: 18, max: 36, step: 2, unit: "px" },
1869
+ // Error — the track + label stay neutral; the message below is the sole
1870
+ // signal (errorColor colors it, errorMessageSize sizes it).
1871
+ { key: "errorColor", label: "Message", control: "color", defaultValue: "var(--color-danger-text)", section: "errorState", showWhen: { state: "error" } },
1872
+ { key: "errorMessageSize", label: "Message Size", control: "number", defaultValue: 12, min: 10, max: 16, step: 1, unit: "px", section: "errorState", showWhen: { state: "error" } }
1873
+ ],
1874
+ layoutVariants: [
1875
+ {
1876
+ key: "state",
1877
+ label: "State",
1878
+ options: [
1879
+ { value: "default", label: "Default" },
1880
+ { value: "hover", label: "Hover" },
1881
+ { value: "focus", label: "Focus" },
1882
+ { value: "disabled", label: "Disabled" },
1883
+ { value: "error", label: "Error" }
1884
+ ],
1885
+ defaultValue: "default"
1886
+ }
1887
+ ],
1888
+ events: [
1889
+ { name: "onChange", description: "Fires when the toggle flips on/off.", payload: "{ checked: boolean }" },
1890
+ { name: "onFocus", description: "Fires when the toggle receives focus.", payload: "FocusEvent" },
1891
+ { name: "onBlur", description: "Fires when the toggle loses focus.", payload: "FocusEvent" }
1892
+ ]
1893
+ },
1894
+ {
1895
+ id: "radio-group",
1896
+ name: "Radio Group",
1897
+ category: "Inputs",
1898
+ description: "Radio button group with multiple options. State knobs cover unselected \xD7 selected across default / hover, plus shared focus ring and disabled opacity.",
1899
+ styleProperties: [
1900
+ // Default — unselected
1901
+ { key: "unselectedBg", label: "Background", control: "color", defaultValue: "transparent", section: "unselectedColors", showWhen: { state: "default" } },
1902
+ { key: "unselectedBorder", label: "Border", control: "color", defaultValue: "var(--color-border)", section: "unselectedColors", showWhen: { state: "default" } },
1903
+ // Default — selected
1904
+ { key: "selectedBorder", label: "Border", control: "color", defaultValue: "var(--color-accent)", section: "selectedColors", showWhen: { state: "default" } },
1905
+ { key: "dotColor", label: "Dot", control: "color", defaultValue: "var(--color-accent)", section: "selectedColors", showWhen: { state: "default" } },
1906
+ // Hover — unselected
1907
+ { key: "hoverUnselectedBg", label: "Background", control: "color", defaultValue: "transparent", section: "unselectedColors", showWhen: { state: "hover" } },
1908
+ // text-strong, not text-muted: muted is 2.54:1 on card in light — under the 3:1 UI floor (Principle IV)
1909
+ { key: "hoverUnselectedBorder", label: "Border", control: "color", defaultValue: "var(--color-text-strong)", section: "unselectedColors", showWhen: { state: "hover" } },
1910
+ // Hover — selected
1911
+ { key: "hoverSelectedBorder", label: "Border", control: "color", defaultValue: "var(--color-accent-bold)", section: "selectedColors", showWhen: { state: "hover" } },
1912
+ { key: "hoverDotColor", label: "Dot", control: "color", defaultValue: "var(--color-accent-bold)", section: "selectedColors", showWhen: { state: "hover" } },
1913
+ // Focus — single shared ring color
1914
+ { key: "focusRing", label: "Ring Color", control: "color", defaultValue: "var(--color-accent)", section: "focusState", showWhen: { state: "focus" } },
1915
+ // Disabled — shared opacity
1916
+ { key: "disabledOpacity", label: "Opacity", control: "slider", defaultValue: 0.4, min: 0.1, max: 1, step: 0.05, section: "disabledState", showWhen: { state: "disabled" } },
1917
+ // Shared — always visible
1918
+ { key: "size", label: "Size", control: "number", defaultValue: 20, min: 14, max: 32, step: 2, unit: "px" },
1919
+ { key: "gap", label: "Item Gap", control: "number", defaultValue: 16, min: 4, max: 32, step: 4, unit: "px" },
1920
+ // Error — the circles + option labels stay neutral; the group message
1921
+ // below is the sole signal (errorColor colors it, errorMessageSize sizes it).
1922
+ { key: "errorColor", label: "Message", control: "color", defaultValue: "var(--color-danger-text)", section: "errorState", showWhen: { state: "error" } },
1923
+ { key: "errorMessageSize", label: "Message Size", control: "number", defaultValue: 12, min: 10, max: 16, step: 1, unit: "px", section: "errorState", showWhen: { state: "error" } }
1924
+ ],
1925
+ layoutVariants: [
1926
+ {
1927
+ key: "state",
1928
+ label: "State",
1929
+ options: [
1930
+ { value: "default", label: "Default" },
1931
+ { value: "hover", label: "Hover" },
1932
+ { value: "focus", label: "Focus" },
1933
+ { value: "disabled", label: "Disabled" },
1934
+ { value: "error", label: "Error" }
1935
+ ],
1936
+ defaultValue: "default"
1937
+ },
1938
+ {
1939
+ key: "direction",
1940
+ label: "Direction",
1941
+ options: [
1942
+ { value: "vertical", label: "Vertical" },
1943
+ { value: "horizontal", label: "Horizontal" }
1944
+ ],
1945
+ defaultValue: "vertical"
1946
+ }
1947
+ ],
1948
+ events: [
1949
+ { name: "onChange", description: "Fires when the user picks a different radio option.", payload: "{ value: string }" }
1950
+ ]
1951
+ }
1952
+ ];
1953
+ export {
1954
+ inputsDefs
1955
+ };
1956
+ //# sourceMappingURL=inputs.js.map