themelia-ui 1.0.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 (2156) hide show
  1. package/.agents/skills/themelia-ui/SKILL.md +266 -0
  2. package/.agents/skills/themelia-ui/references/api-compatibility.md +35 -0
  3. package/.agents/skills/themelia-ui/references/components/INDEX.json +8244 -0
  4. package/.agents/skills/themelia-ui/references/components/INDEX.md +107 -0
  5. package/.agents/skills/themelia-ui/references/components/admin--patterns--access.md +231 -0
  6. package/.agents/skills/themelia-ui/references/components/admin--patterns--commerce.md +1973 -0
  7. package/.agents/skills/themelia-ui/references/components/base--accordion.md +74 -0
  8. package/.agents/skills/themelia-ui/references/components/base--action-menu.md +114 -0
  9. package/.agents/skills/themelia-ui/references/components/base--alert-dialog.md +126 -0
  10. package/.agents/skills/themelia-ui/references/components/base--aspect-ratio.md +103 -0
  11. package/.agents/skills/themelia-ui/references/components/base--avatar.md +161 -0
  12. package/.agents/skills/themelia-ui/references/components/base--badge.md +93 -0
  13. package/.agents/skills/themelia-ui/references/components/base--batch-action-bar.md +97 -0
  14. package/.agents/skills/themelia-ui/references/components/base--buttons.md +240 -0
  15. package/.agents/skills/themelia-ui/references/components/base--cards.md +250 -0
  16. package/.agents/skills/themelia-ui/references/components/base--carousel.md +181 -0
  17. package/.agents/skills/themelia-ui/references/components/base--chart.md +198 -0
  18. package/.agents/skills/themelia-ui/references/components/base--choice-inputs.md +517 -0
  19. package/.agents/skills/themelia-ui/references/components/base--combobox.md +265 -0
  20. package/.agents/skills/themelia-ui/references/components/base--command.md +148 -0
  21. package/.agents/skills/themelia-ui/references/components/base--context-menu.md +173 -0
  22. package/.agents/skills/themelia-ui/references/components/base--copyable.md +124 -0
  23. package/.agents/skills/themelia-ui/references/components/base--date-pickers.md +401 -0
  24. package/.agents/skills/themelia-ui/references/components/base--dialog.md +164 -0
  25. package/.agents/skills/themelia-ui/references/components/base--direction.md +105 -0
  26. package/.agents/skills/themelia-ui/references/components/base--display.md +728 -0
  27. package/.agents/skills/themelia-ui/references/components/base--dropdown-menu.md +173 -0
  28. package/.agents/skills/themelia-ui/references/components/base--feedback.md +476 -0
  29. package/.agents/skills/themelia-ui/references/components/base--forms-numeric.md +464 -0
  30. package/.agents/skills/themelia-ui/references/components/base--forms.md +357 -0
  31. package/.agents/skills/themelia-ui/references/components/base--hover-card.md +137 -0
  32. package/.agents/skills/themelia-ui/references/components/base--input-group.md +106 -0
  33. package/.agents/skills/themelia-ui/references/components/base--item.md +154 -0
  34. package/.agents/skills/themelia-ui/references/components/base--label.md +47 -0
  35. package/.agents/skills/themelia-ui/references/components/base--menubar.md +220 -0
  36. package/.agents/skills/themelia-ui/references/components/base--navigation-menu.md +160 -0
  37. package/.agents/skills/themelia-ui/references/components/base--navigation.md +504 -0
  38. package/.agents/skills/themelia-ui/references/components/base--otp-input.md +122 -0
  39. package/.agents/skills/themelia-ui/references/components/base--overlay.md +166 -0
  40. package/.agents/skills/themelia-ui/references/components/base--popover-menu.md +93 -0
  41. package/.agents/skills/themelia-ui/references/components/base--popover.md +130 -0
  42. package/.agents/skills/themelia-ui/references/components/base--qr-code.md +89 -0
  43. package/.agents/skills/themelia-ui/references/components/base--repeaters.md +402 -0
  44. package/.agents/skills/themelia-ui/references/components/base--resizable.md +134 -0
  45. package/.agents/skills/themelia-ui/references/components/base--sheet.md +151 -0
  46. package/.agents/skills/themelia-ui/references/components/base--sidebar.md +309 -0
  47. package/.agents/skills/themelia-ui/references/components/base--skeleton.md +156 -0
  48. package/.agents/skills/themelia-ui/references/components/base--slot.md +96 -0
  49. package/.agents/skills/themelia-ui/references/components/base--spinner.md +74 -0
  50. package/.agents/skills/themelia-ui/references/components/base--structure.md +200 -0
  51. package/.agents/skills/themelia-ui/references/components/base--table.md +160 -0
  52. package/.agents/skills/themelia-ui/references/components/base--text-inputs.md +350 -0
  53. package/.agents/skills/themelia-ui/references/components/base--timeline.md +106 -0
  54. package/.agents/skills/themelia-ui/references/components/base--toaster.md +123 -0
  55. package/.agents/skills/themelia-ui/references/components/base--toggle.md +104 -0
  56. package/.agents/skills/themelia-ui/references/components/base--toolbar.md +143 -0
  57. package/.agents/skills/themelia-ui/references/components/base--tooltip.md +75 -0
  58. package/.agents/skills/themelia-ui/references/components/base--typography.md +184 -0
  59. package/.agents/skills/themelia-ui/references/components/base--upload.md +504 -0
  60. package/.agents/skills/themelia-ui/references/components/base--value-inputs.md +386 -0
  61. package/.agents/skills/themelia-ui/references/components/features--actions.md +882 -0
  62. package/.agents/skills/themelia-ui/references/components/features--activities.md +443 -0
  63. package/.agents/skills/themelia-ui/references/components/features--ai-chat.md +748 -0
  64. package/.agents/skills/themelia-ui/references/components/features--async-preview.md +232 -0
  65. package/.agents/skills/themelia-ui/references/components/features--combobox.md +301 -0
  66. package/.agents/skills/themelia-ui/references/components/features--comments.md +283 -0
  67. package/.agents/skills/themelia-ui/references/components/features--data-view.md +148 -0
  68. package/.agents/skills/themelia-ui/references/components/features--event-calendar.md +218 -0
  69. package/.agents/skills/themelia-ui/references/components/features--filters.md +656 -0
  70. package/.agents/skills/themelia-ui/references/components/features--global-search.md +273 -0
  71. package/.agents/skills/themelia-ui/references/components/features--kanban.md +226 -0
  72. package/.agents/skills/themelia-ui/references/components/features--map.md +683 -0
  73. package/.agents/skills/themelia-ui/references/components/features--media-library.md +423 -0
  74. package/.agents/skills/themelia-ui/references/components/features--mentions.md +370 -0
  75. package/.agents/skills/themelia-ui/references/components/features--overlays.md +245 -0
  76. package/.agents/skills/themelia-ui/references/components/features--products.md +786 -0
  77. package/.agents/skills/themelia-ui/references/components/features--resource-assignment.md +142 -0
  78. package/.agents/skills/themelia-ui/references/components/features--resource.md +165 -0
  79. package/.agents/skills/themelia-ui/references/components/features--rich-text-editor--tiptap.md +58 -0
  80. package/.agents/skills/themelia-ui/references/components/features--rich-text-editor.md +209 -0
  81. package/.agents/skills/themelia-ui/references/components/features--schema-form.md +198 -0
  82. package/.agents/skills/themelia-ui/references/components/features--suggestions.md +133 -0
  83. package/.agents/skills/themelia-ui/references/components/features--sync.md +111 -0
  84. package/.agents/skills/themelia-ui/references/components/features--table.md +545 -0
  85. package/.agents/skills/themelia-ui/references/components/features--theme-tweaker.md +325 -0
  86. package/.agents/skills/themelia-ui/references/components/forms-rhf.md +48 -0
  87. package/.agents/skills/themelia-ui/references/components/forms.md +111 -0
  88. package/.agents/skills/themelia-ui/references/components/layout--app-shell.md +206 -0
  89. package/.agents/skills/themelia-ui/references/components/layout--auth.md +188 -0
  90. package/.agents/skills/themelia-ui/references/components/layout--containers.md +146 -0
  91. package/.agents/skills/themelia-ui/references/components/layout--header.md +220 -0
  92. package/.agents/skills/themelia-ui/references/components/layout--navigation.md +239 -0
  93. package/.agents/skills/themelia-ui/references/components/layout--page.md +223 -0
  94. package/.agents/skills/themelia-ui/references/components/layout--settings.md +86 -0
  95. package/.agents/skills/themelia-ui/references/components/layout--sidebar.md +272 -0
  96. package/.agents/skills/themelia-ui/references/components/layout--workspace.md +286 -0
  97. package/.agents/skills/themelia-ui/references/components/patterns--analytics.md +486 -0
  98. package/.agents/skills/themelia-ui/references/components/patterns--onboarding.md +157 -0
  99. package/.agents/skills/themelia-ui/references/components/patterns--timelines.md +279 -0
  100. package/.agents/skills/themelia-ui/references/components/primitives.md +1077 -0
  101. package/.agents/skills/themelia-ui/references/components/theming.md +91 -0
  102. package/.agents/skills/themelia-ui/references/components/ui-provider.md +302 -0
  103. package/.agents/skills/themelia-ui/references/composition-ladder.md +80 -0
  104. package/.agents/skills/themelia-ui/references/composition.md +174 -0
  105. package/.agents/skills/themelia-ui/references/forms.md +76 -0
  106. package/.agents/skills/themelia-ui/references/framework-wiring.md +78 -0
  107. package/.agents/skills/themelia-ui/references/i18n.md +109 -0
  108. package/.agents/skills/themelia-ui/references/imports.md +142 -0
  109. package/.agents/skills/themelia-ui/references/installation.md +82 -0
  110. package/.agents/skills/themelia-ui/references/migration.md +57 -0
  111. package/.agents/skills/themelia-ui/references/provider-and-scoping.md +204 -0
  112. package/.agents/skills/themelia-ui/references/theming.md +177 -0
  113. package/.agents/skills/themelia-ui/references/troubleshooting.md +75 -0
  114. package/.agents/skills/themelia-ui/references/verification.md +49 -0
  115. package/CHANGELOG.md +241 -0
  116. package/LICENSE +21 -0
  117. package/README.md +543 -0
  118. package/SECURITY.md +79 -0
  119. package/dist/accordion-DnJSCoAA.js +139 -0
  120. package/dist/accordion-Dw6cjtBX.cjs +1 -0
  121. package/dist/action-menu-DcUKnD_n.cjs +1 -0
  122. package/dist/action-menu-jAPdRvbi.js +201 -0
  123. package/dist/admin/patterns/access.cjs +1 -0
  124. package/dist/admin/patterns/access.css +15 -0
  125. package/dist/admin/patterns/access.js +223 -0
  126. package/dist/admin/patterns/commerce.cjs +1 -0
  127. package/dist/admin/patterns/commerce.css +29 -0
  128. package/dist/admin/patterns/commerce.js +2367 -0
  129. package/dist/alert-dialog-B-Ka60lV.js +52 -0
  130. package/dist/alert-dialog-rfI4gtq7.cjs +1 -0
  131. package/dist/avatar-BbLcyt_E.cjs +1 -0
  132. package/dist/avatar-y8bQHcPP.js +88 -0
  133. package/dist/badge-CSoXP1oV.cjs +1 -0
  134. package/dist/badge-DwsR_WXN.js +66 -0
  135. package/dist/base/accordion.cjs +1 -0
  136. package/dist/base/accordion.css +3 -0
  137. package/dist/base/accordion.js +4 -0
  138. package/dist/base/action-menu.cjs +1 -0
  139. package/dist/base/action-menu.css +6 -0
  140. package/dist/base/action-menu.js +4 -0
  141. package/dist/base/alert-dialog.cjs +1 -0
  142. package/dist/base/alert-dialog.css +3 -0
  143. package/dist/base/alert-dialog.js +3 -0
  144. package/dist/base/aspect-ratio.cjs +1 -0
  145. package/dist/base/aspect-ratio.css +2 -0
  146. package/dist/base/aspect-ratio.js +19 -0
  147. package/dist/base/avatar.cjs +1 -0
  148. package/dist/base/avatar.css +4 -0
  149. package/dist/base/avatar.js +4 -0
  150. package/dist/base/badge.cjs +1 -0
  151. package/dist/base/badge.css +2 -0
  152. package/dist/base/badge.js +3 -0
  153. package/dist/base/batch-action-bar.cjs +1 -0
  154. package/dist/base/batch-action-bar.css +5 -0
  155. package/dist/base/batch-action-bar.js +4 -0
  156. package/dist/base/buttons.cjs +1 -0
  157. package/dist/base/buttons.css +4 -0
  158. package/dist/base/buttons.js +4 -0
  159. package/dist/base/cards.cjs +1 -0
  160. package/dist/base/cards.css +9 -0
  161. package/dist/base/cards.js +4 -0
  162. package/dist/base/carousel.cjs +1 -0
  163. package/dist/base/carousel.css +5 -0
  164. package/dist/base/carousel.js +191 -0
  165. package/dist/base/chart.cjs +1 -0
  166. package/dist/base/chart.css +2 -0
  167. package/dist/base/chart.js +4 -0
  168. package/dist/base/choice-inputs.cjs +1 -0
  169. package/dist/base/choice-inputs.css +10 -0
  170. package/dist/base/choice-inputs.js +4 -0
  171. package/dist/base/combobox.cjs +1 -0
  172. package/dist/base/combobox.css +3 -0
  173. package/dist/base/combobox.js +3 -0
  174. package/dist/base/command.cjs +1 -0
  175. package/dist/base/command.css +8 -0
  176. package/dist/base/command.js +4 -0
  177. package/dist/base/context-menu.cjs +1 -0
  178. package/dist/base/context-menu.css +2 -0
  179. package/dist/base/context-menu.js +39 -0
  180. package/dist/base/copyable.cjs +1 -0
  181. package/dist/base/copyable.css +6 -0
  182. package/dist/base/copyable.js +4 -0
  183. package/dist/base/date-pickers.cjs +1 -0
  184. package/dist/base/date-pickers.css +11 -0
  185. package/dist/base/date-pickers.js +4 -0
  186. package/dist/base/dialog.cjs +1 -0
  187. package/dist/base/dialog.css +3 -0
  188. package/dist/base/dialog.js +3 -0
  189. package/dist/base/direction.cjs +1 -0
  190. package/dist/base/direction.js +11 -0
  191. package/dist/base/display.cjs +1 -0
  192. package/dist/base/display.css +8 -0
  193. package/dist/base/display.js +4 -0
  194. package/dist/base/dropdown-menu.cjs +1 -0
  195. package/dist/base/dropdown-menu.css +2 -0
  196. package/dist/base/dropdown-menu.js +4 -0
  197. package/dist/base/feedback.cjs +1 -0
  198. package/dist/base/feedback.css +5 -0
  199. package/dist/base/feedback.js +4 -0
  200. package/dist/base/forms-numeric.cjs +1 -0
  201. package/dist/base/forms-numeric.css +12 -0
  202. package/dist/base/forms-numeric.js +4 -0
  203. package/dist/base/forms.cjs +1 -0
  204. package/dist/base/forms.css +10 -0
  205. package/dist/base/forms.js +4 -0
  206. package/dist/base/hover-card.cjs +1 -0
  207. package/dist/base/hover-card.css +2 -0
  208. package/dist/base/hover-card.js +46 -0
  209. package/dist/base/input-group.cjs +1 -0
  210. package/dist/base/input-group.css +6 -0
  211. package/dist/base/input-group.js +4 -0
  212. package/dist/base/item.cjs +1 -0
  213. package/dist/base/item.css +9 -0
  214. package/dist/base/item.js +4 -0
  215. package/dist/base/label.cjs +1 -0
  216. package/dist/base/label.css +3 -0
  217. package/dist/base/label.js +4 -0
  218. package/dist/base/menubar.cjs +1 -0
  219. package/dist/base/menubar.css +3 -0
  220. package/dist/base/menubar.js +31 -0
  221. package/dist/base/navigation-menu.cjs +1 -0
  222. package/dist/base/navigation-menu.css +2 -0
  223. package/dist/base/navigation-menu.js +83 -0
  224. package/dist/base/navigation.cjs +1 -0
  225. package/dist/base/navigation.css +12 -0
  226. package/dist/base/navigation.js +4 -0
  227. package/dist/base/otp-input.cjs +1 -0
  228. package/dist/base/otp-input.css +9 -0
  229. package/dist/base/otp-input.js +46 -0
  230. package/dist/base/overlay.cjs +1 -0
  231. package/dist/base/overlay.css +3 -0
  232. package/dist/base/overlay.js +4 -0
  233. package/dist/base/popover-menu.cjs +1 -0
  234. package/dist/base/popover-menu.css +10 -0
  235. package/dist/base/popover-menu.js +110 -0
  236. package/dist/base/popover.cjs +1 -0
  237. package/dist/base/popover.css +3 -0
  238. package/dist/base/popover.js +4 -0
  239. package/dist/base/qr-code.cjs +1 -0
  240. package/dist/base/qr-code.css +2 -0
  241. package/dist/base/qr-code.js +96 -0
  242. package/dist/base/repeaters.cjs +1 -0
  243. package/dist/base/repeaters.css +18 -0
  244. package/dist/base/repeaters.js +4 -0
  245. package/dist/base/resizable.cjs +1 -0
  246. package/dist/base/resizable.css +2 -0
  247. package/dist/base/resizable.js +40 -0
  248. package/dist/base/sheet.cjs +1 -0
  249. package/dist/base/sheet.css +3 -0
  250. package/dist/base/sheet.js +4 -0
  251. package/dist/base/sidebar.cjs +1 -0
  252. package/dist/base/sidebar.css +12 -0
  253. package/dist/base/sidebar.js +4 -0
  254. package/dist/base/skeleton.cjs +1 -0
  255. package/dist/base/skeleton.css +2 -0
  256. package/dist/base/skeleton.js +3 -0
  257. package/dist/base/slot.cjs +1 -0
  258. package/dist/base/slot.js +2 -0
  259. package/dist/base/spinner.cjs +1 -0
  260. package/dist/base/spinner.css +2 -0
  261. package/dist/base/spinner.js +3 -0
  262. package/dist/base/structure.cjs +1 -0
  263. package/dist/base/structure.css +2 -0
  264. package/dist/base/structure.js +3 -0
  265. package/dist/base/table.cjs +1 -0
  266. package/dist/base/table.css +3 -0
  267. package/dist/base/table.js +3 -0
  268. package/dist/base/text-inputs.cjs +1 -0
  269. package/dist/base/text-inputs.css +2 -0
  270. package/dist/base/text-inputs.js +4 -0
  271. package/dist/base/timeline.cjs +1 -0
  272. package/dist/base/timeline.css +3 -0
  273. package/dist/base/timeline.js +3 -0
  274. package/dist/base/toaster.cjs +1 -0
  275. package/dist/base/toaster.css +2 -0
  276. package/dist/base/toaster.js +4 -0
  277. package/dist/base/toggle.cjs +1 -0
  278. package/dist/base/toggle.css +2 -0
  279. package/dist/base/toggle.js +31 -0
  280. package/dist/base/toolbar.cjs +1 -0
  281. package/dist/base/toolbar.css +5 -0
  282. package/dist/base/toolbar.js +4 -0
  283. package/dist/base/tooltip.cjs +1 -0
  284. package/dist/base/tooltip.css +2 -0
  285. package/dist/base/tooltip.js +4 -0
  286. package/dist/base/typography.cjs +1 -0
  287. package/dist/base/typography.css +2 -0
  288. package/dist/base/typography.js +3 -0
  289. package/dist/base/upload.cjs +1 -0
  290. package/dist/base/upload.css +9 -0
  291. package/dist/base/upload.js +4 -0
  292. package/dist/base/value-inputs.cjs +1 -0
  293. package/dist/base/value-inputs.css +14 -0
  294. package/dist/base/value-inputs.js +4 -0
  295. package/dist/batch-action-bar-B42CIB6A.js +48 -0
  296. package/dist/batch-action-bar-CjPA1H9i.cjs +1 -0
  297. package/dist/buttons-CQc0AVpb.cjs +1 -0
  298. package/dist/buttons-CabBjPap.js +167 -0
  299. package/dist/cards-BA3hjulA.cjs +1 -0
  300. package/dist/cards-D33v8ZgU.js +259 -0
  301. package/dist/chart-CxZ2pl3K.js +183 -0
  302. package/dist/chart-fNHa-4he.cjs +1 -0
  303. package/dist/choice-inputs-B4fseaKf.js +698 -0
  304. package/dist/choice-inputs-DNcJJXTp.cjs +1 -0
  305. package/dist/combobox-BBMDtymi.cjs +1 -0
  306. package/dist/combobox-CpbPl8He.js +236 -0
  307. package/dist/combobox-DtElGhBC.js +679 -0
  308. package/dist/combobox-yxVK4MN-.cjs +1 -0
  309. package/dist/command-CVX7k9YB.js +126 -0
  310. package/dist/command-stmM9WWi.cjs +1 -0
  311. package/dist/comments-DBw1Y6dX.cjs +1 -0
  312. package/dist/comments-DK-mCVsz.js +1130 -0
  313. package/dist/components/admin/patterns/access/admin.strings.d.cts +24 -0
  314. package/dist/components/admin/patterns/access/admin.strings.d.ts +24 -0
  315. package/dist/components/admin/patterns/access/credential-list.d.cts +30 -0
  316. package/dist/components/admin/patterns/access/credential-list.d.ts +30 -0
  317. package/dist/components/admin/patterns/access/index.d.cts +11 -0
  318. package/dist/components/admin/patterns/access/index.d.ts +11 -0
  319. package/dist/components/admin/patterns/access/role-permissions.d.cts +22 -0
  320. package/dist/components/admin/patterns/access/role-permissions.d.ts +22 -0
  321. package/dist/components/admin/patterns/access/sensitive-action.d.cts +10 -0
  322. package/dist/components/admin/patterns/access/sensitive-action.d.ts +10 -0
  323. package/dist/components/admin/patterns/commerce/account.d.cts +70 -0
  324. package/dist/components/admin/patterns/commerce/account.d.ts +70 -0
  325. package/dist/components/admin/patterns/commerce/address-lines.d.cts +8 -0
  326. package/dist/components/admin/patterns/commerce/address-lines.d.ts +8 -0
  327. package/dist/components/admin/patterns/commerce/booking.d.cts +36 -0
  328. package/dist/components/admin/patterns/commerce/booking.d.ts +36 -0
  329. package/dist/components/admin/patterns/commerce/cart.d.cts +91 -0
  330. package/dist/components/admin/patterns/commerce/cart.d.ts +91 -0
  331. package/dist/components/admin/patterns/commerce/commerce.strings.d.cts +237 -0
  332. package/dist/components/admin/patterns/commerce/commerce.strings.d.ts +237 -0
  333. package/dist/components/admin/patterns/commerce/commerce.types.d.cts +55 -0
  334. package/dist/components/admin/patterns/commerce/commerce.types.d.ts +55 -0
  335. package/dist/components/admin/patterns/commerce/format-amount.d.cts +22 -0
  336. package/dist/components/admin/patterns/commerce/format-amount.d.ts +22 -0
  337. package/dist/components/admin/patterns/commerce/index.d.cts +28 -0
  338. package/dist/components/admin/patterns/commerce/index.d.ts +28 -0
  339. package/dist/components/admin/patterns/commerce/inventory-section.d.cts +37 -0
  340. package/dist/components/admin/patterns/commerce/inventory-section.d.ts +37 -0
  341. package/dist/components/admin/patterns/commerce/invoice.d.cts +50 -0
  342. package/dist/components/admin/patterns/commerce/invoice.d.ts +50 -0
  343. package/dist/components/admin/patterns/commerce/loyalty.d.cts +25 -0
  344. package/dist/components/admin/patterns/commerce/loyalty.d.ts +25 -0
  345. package/dist/components/admin/patterns/commerce/order-customer.d.cts +20 -0
  346. package/dist/components/admin/patterns/commerce/order-customer.d.ts +20 -0
  347. package/dist/components/admin/patterns/commerce/order-detail.d.cts +72 -0
  348. package/dist/components/admin/patterns/commerce/order-detail.d.ts +72 -0
  349. package/dist/components/admin/patterns/commerce/order-line-item.d.cts +29 -0
  350. package/dist/components/admin/patterns/commerce/order-line-item.d.ts +29 -0
  351. package/dist/components/admin/patterns/commerce/order-transactions.d.cts +23 -0
  352. package/dist/components/admin/patterns/commerce/order-transactions.d.ts +23 -0
  353. package/dist/components/admin/patterns/commerce/order.d.cts +90 -0
  354. package/dist/components/admin/patterns/commerce/order.d.ts +90 -0
  355. package/dist/components/admin/patterns/commerce/seo-listing.d.cts +16 -0
  356. package/dist/components/admin/patterns/commerce/seo-listing.d.ts +16 -0
  357. package/dist/components/admin/patterns/commerce/seo-score.d.cts +73 -0
  358. package/dist/components/admin/patterns/commerce/seo-score.d.ts +73 -0
  359. package/dist/components/admin/patterns/commerce/summary-panel.d.cts +22 -0
  360. package/dist/components/admin/patterns/commerce/summary-panel.d.ts +22 -0
  361. package/dist/components/admin/patterns/commerce/vendor-profile.d.cts +38 -0
  362. package/dist/components/admin/patterns/commerce/vendor-profile.d.ts +38 -0
  363. package/dist/components/admin/patterns/index.d.cts +2 -0
  364. package/dist/components/admin/patterns/index.d.ts +2 -0
  365. package/dist/components/base/accordion/accordion.d.cts +21 -0
  366. package/dist/components/base/accordion/accordion.d.ts +21 -0
  367. package/dist/components/base/accordion/accordion.types.d.cts +39 -0
  368. package/dist/components/base/accordion/accordion.types.d.ts +39 -0
  369. package/dist/components/base/accordion/index.d.cts +3 -0
  370. package/dist/components/base/accordion/index.d.ts +3 -0
  371. package/dist/components/base/action-menu/action-menu.d.cts +68 -0
  372. package/dist/components/base/action-menu/action-menu.d.ts +68 -0
  373. package/dist/components/base/action-menu/action-menu.strings.d.cts +7 -0
  374. package/dist/components/base/action-menu/action-menu.strings.d.ts +7 -0
  375. package/dist/components/base/action-menu/action-menu.types.d.cts +68 -0
  376. package/dist/components/base/action-menu/action-menu.types.d.ts +68 -0
  377. package/dist/components/base/action-menu/index.d.cts +4 -0
  378. package/dist/components/base/action-menu/index.d.ts +4 -0
  379. package/dist/components/base/alert-dialog/alert-dialog.d.cts +30 -0
  380. package/dist/components/base/alert-dialog/alert-dialog.d.ts +30 -0
  381. package/dist/components/base/alert-dialog/index.d.cts +1 -0
  382. package/dist/components/base/alert-dialog/index.d.ts +1 -0
  383. package/dist/components/base/aspect-ratio/aspect-ratio.d.cts +19 -0
  384. package/dist/components/base/aspect-ratio/aspect-ratio.d.ts +19 -0
  385. package/dist/components/base/aspect-ratio/index.d.cts +1 -0
  386. package/dist/components/base/aspect-ratio/index.d.ts +1 -0
  387. package/dist/components/base/avatar/avatar.d.cts +14 -0
  388. package/dist/components/base/avatar/avatar.d.ts +14 -0
  389. package/dist/components/base/avatar/avatar.strings.d.cts +15 -0
  390. package/dist/components/base/avatar/avatar.strings.d.ts +15 -0
  391. package/dist/components/base/avatar/index.d.cts +3 -0
  392. package/dist/components/base/avatar/index.d.ts +3 -0
  393. package/dist/components/base/avatar/stacked-avatars.d.cts +22 -0
  394. package/dist/components/base/avatar/stacked-avatars.d.ts +22 -0
  395. package/dist/components/base/badge/badge.d.cts +39 -0
  396. package/dist/components/base/badge/badge.d.ts +39 -0
  397. package/dist/components/base/badge/badge.variants.d.cts +6 -0
  398. package/dist/components/base/badge/badge.variants.d.ts +6 -0
  399. package/dist/components/base/badge/index.d.cts +2 -0
  400. package/dist/components/base/badge/index.d.ts +2 -0
  401. package/dist/components/base/batch-action-bar/batch-action-bar.d.cts +19 -0
  402. package/dist/components/base/batch-action-bar/batch-action-bar.d.ts +19 -0
  403. package/dist/components/base/batch-action-bar/batch-action-bar.strings.d.cts +13 -0
  404. package/dist/components/base/batch-action-bar/batch-action-bar.strings.d.ts +13 -0
  405. package/dist/components/base/batch-action-bar/index.d.cts +2 -0
  406. package/dist/components/base/batch-action-bar/index.d.ts +2 -0
  407. package/dist/components/base/buttons/button-group.d.cts +25 -0
  408. package/dist/components/base/buttons/button-group.d.ts +25 -0
  409. package/dist/components/base/buttons/button.d.cts +41 -0
  410. package/dist/components/base/buttons/button.d.ts +41 -0
  411. package/dist/components/base/buttons/button.strings.d.cts +5 -0
  412. package/dist/components/base/buttons/button.strings.d.ts +5 -0
  413. package/dist/components/base/buttons/button.types.d.cts +16 -0
  414. package/dist/components/base/buttons/button.types.d.ts +16 -0
  415. package/dist/components/base/buttons/index.d.cts +7 -0
  416. package/dist/components/base/buttons/index.d.ts +7 -0
  417. package/dist/components/base/buttons/loader-button.d.cts +38 -0
  418. package/dist/components/base/buttons/loader-button.d.ts +38 -0
  419. package/dist/components/base/buttons/text-button.d.cts +12 -0
  420. package/dist/components/base/buttons/text-button.d.ts +12 -0
  421. package/dist/components/base/buttons/tooltip-button.d.cts +17 -0
  422. package/dist/components/base/buttons/tooltip-button.d.ts +17 -0
  423. package/dist/components/base/cards/card-actions.d.cts +25 -0
  424. package/dist/components/base/cards/card-actions.d.ts +25 -0
  425. package/dist/components/base/cards/card-skeleton.d.cts +11 -0
  426. package/dist/components/base/cards/card-skeleton.d.ts +11 -0
  427. package/dist/components/base/cards/card.d.cts +67 -0
  428. package/dist/components/base/cards/card.d.ts +67 -0
  429. package/dist/components/base/cards/card.strings.d.cts +10 -0
  430. package/dist/components/base/cards/card.strings.d.ts +10 -0
  431. package/dist/components/base/cards/card.types.d.cts +14 -0
  432. package/dist/components/base/cards/card.types.d.ts +14 -0
  433. package/dist/components/base/cards/index.d.cts +6 -0
  434. package/dist/components/base/cards/index.d.ts +6 -0
  435. package/dist/components/base/cards/partials/card-header.d.cts +20 -0
  436. package/dist/components/base/cards/partials/card-header.d.ts +20 -0
  437. package/dist/components/base/cards/partials/card-regions.d.cts +7 -0
  438. package/dist/components/base/cards/partials/card-regions.d.ts +7 -0
  439. package/dist/components/base/cards/partials/index.d.cts +2 -0
  440. package/dist/components/base/cards/partials/index.d.ts +2 -0
  441. package/dist/components/base/carousel/carousel-context.d.cts +17 -0
  442. package/dist/components/base/carousel/carousel-context.d.ts +17 -0
  443. package/dist/components/base/carousel/carousel.d.cts +41 -0
  444. package/dist/components/base/carousel/carousel.d.ts +41 -0
  445. package/dist/components/base/carousel/carousel.strings.d.cts +18 -0
  446. package/dist/components/base/carousel/carousel.strings.d.ts +18 -0
  447. package/dist/components/base/carousel/index.d.cts +3 -0
  448. package/dist/components/base/carousel/index.d.ts +3 -0
  449. package/dist/components/base/chart/chart.d.cts +61 -0
  450. package/dist/components/base/chart/chart.d.ts +61 -0
  451. package/dist/components/base/chart/index.d.cts +6 -0
  452. package/dist/components/base/chart/index.d.ts +6 -0
  453. package/dist/components/base/chart/sparkline.d.cts +17 -0
  454. package/dist/components/base/chart/sparkline.d.ts +17 -0
  455. package/dist/components/base/choice-inputs/card-checkbox-group.d.cts +11 -0
  456. package/dist/components/base/choice-inputs/card-checkbox-group.d.ts +11 -0
  457. package/dist/components/base/choice-inputs/card-group-columns.d.cts +6 -0
  458. package/dist/components/base/choice-inputs/card-group-columns.d.ts +6 -0
  459. package/dist/components/base/choice-inputs/card-radio-group.d.cts +12 -0
  460. package/dist/components/base/choice-inputs/card-radio-group.d.ts +12 -0
  461. package/dist/components/base/choice-inputs/checkbox.d.cts +7 -0
  462. package/dist/components/base/choice-inputs/checkbox.d.ts +7 -0
  463. package/dist/components/base/choice-inputs/choice.types.d.cts +40 -0
  464. package/dist/components/base/choice-inputs/choice.types.d.ts +40 -0
  465. package/dist/components/base/choice-inputs/index.d.cts +13 -0
  466. package/dist/components/base/choice-inputs/index.d.ts +13 -0
  467. package/dist/components/base/choice-inputs/list-radio-group.d.cts +10 -0
  468. package/dist/components/base/choice-inputs/list-radio-group.d.ts +10 -0
  469. package/dist/components/base/choice-inputs/partials/choice-icon.d.cts +6 -0
  470. package/dist/components/base/choice-inputs/partials/choice-icon.d.ts +6 -0
  471. package/dist/components/base/choice-inputs/partials/choice-parts.d.cts +44 -0
  472. package/dist/components/base/choice-inputs/partials/choice-parts.d.ts +44 -0
  473. package/dist/components/base/choice-inputs/partials/index.d.cts +2 -0
  474. package/dist/components/base/choice-inputs/partials/index.d.ts +2 -0
  475. package/dist/components/base/choice-inputs/pill-radio-group.d.cts +13 -0
  476. package/dist/components/base/choice-inputs/pill-radio-group.d.ts +13 -0
  477. package/dist/components/base/choice-inputs/radio.d.cts +11 -0
  478. package/dist/components/base/choice-inputs/radio.d.ts +11 -0
  479. package/dist/components/base/choice-inputs/select-popup.d.cts +21 -0
  480. package/dist/components/base/choice-inputs/select-popup.d.ts +21 -0
  481. package/dist/components/base/choice-inputs/select.d.cts +68 -0
  482. package/dist/components/base/choice-inputs/select.d.ts +68 -0
  483. package/dist/components/base/choice-inputs/select.strings.d.cts +7 -0
  484. package/dist/components/base/choice-inputs/select.strings.d.ts +7 -0
  485. package/dist/components/base/choice-inputs/switch-card.d.cts +19 -0
  486. package/dist/components/base/choice-inputs/switch-card.d.ts +19 -0
  487. package/dist/components/base/choice-inputs/switch.d.cts +12 -0
  488. package/dist/components/base/choice-inputs/switch.d.ts +12 -0
  489. package/dist/components/base/choice-inputs/toggle-field.d.cts +19 -0
  490. package/dist/components/base/choice-inputs/toggle-field.d.ts +19 -0
  491. package/dist/components/base/combobox/combobox-filter.d.cts +2 -0
  492. package/dist/components/base/combobox/combobox-filter.d.ts +2 -0
  493. package/dist/components/base/combobox/combobox.d.cts +52 -0
  494. package/dist/components/base/combobox/combobox.d.ts +52 -0
  495. package/dist/components/base/combobox/combobox.strings.d.cts +14 -0
  496. package/dist/components/base/combobox/combobox.strings.d.ts +14 -0
  497. package/dist/components/base/combobox/index.d.cts +3 -0
  498. package/dist/components/base/combobox/index.d.ts +3 -0
  499. package/dist/components/base/command/command.d.cts +27 -0
  500. package/dist/components/base/command/command.d.ts +27 -0
  501. package/dist/components/base/command/command.strings.d.cts +9 -0
  502. package/dist/components/base/command/command.strings.d.ts +9 -0
  503. package/dist/components/base/command/index.d.cts +3 -0
  504. package/dist/components/base/command/index.d.ts +3 -0
  505. package/dist/components/base/context-menu/context-menu.d.cts +33 -0
  506. package/dist/components/base/context-menu/context-menu.d.ts +33 -0
  507. package/dist/components/base/context-menu/index.d.cts +1 -0
  508. package/dist/components/base/context-menu/index.d.ts +1 -0
  509. package/dist/components/base/copyable/copyable.d.cts +31 -0
  510. package/dist/components/base/copyable/copyable.d.ts +31 -0
  511. package/dist/components/base/copyable/copyable.strings.d.cts +11 -0
  512. package/dist/components/base/copyable/copyable.strings.d.ts +11 -0
  513. package/dist/components/base/copyable/index.d.cts +3 -0
  514. package/dist/components/base/copyable/index.d.ts +3 -0
  515. package/dist/components/base/copyable/use-copy-to-clipboard.d.cts +35 -0
  516. package/dist/components/base/copyable/use-copy-to-clipboard.d.ts +35 -0
  517. package/dist/components/base/date-pickers/calendar.d.cts +19 -0
  518. package/dist/components/base/date-pickers/calendar.d.ts +19 -0
  519. package/dist/components/base/date-pickers/calendar.types.d.cts +18 -0
  520. package/dist/components/base/date-pickers/calendar.types.d.ts +18 -0
  521. package/dist/components/base/date-pickers/date-picker-bands.d.cts +16 -0
  522. package/dist/components/base/date-pickers/date-picker-bands.d.ts +16 -0
  523. package/dist/components/base/date-pickers/date-picker.d.cts +40 -0
  524. package/dist/components/base/date-pickers/date-picker.d.ts +40 -0
  525. package/dist/components/base/date-pickers/date-pickers.strings.d.cts +32 -0
  526. package/dist/components/base/date-pickers/date-pickers.strings.d.ts +32 -0
  527. package/dist/components/base/date-pickers/index.d.cts +11 -0
  528. package/dist/components/base/date-pickers/index.d.ts +11 -0
  529. package/dist/components/base/date-pickers/month-year-picker.d.cts +18 -0
  530. package/dist/components/base/date-pickers/month-year-picker.d.ts +18 -0
  531. package/dist/components/base/date-pickers/presets-pickers.d.cts +19 -0
  532. package/dist/components/base/date-pickers/presets-pickers.d.ts +19 -0
  533. package/dist/components/base/date-pickers/presets.d.cts +42 -0
  534. package/dist/components/base/date-pickers/presets.d.ts +42 -0
  535. package/dist/components/base/date-pickers/time-picker.d.cts +28 -0
  536. package/dist/components/base/date-pickers/time-picker.d.ts +28 -0
  537. package/dist/components/base/date-pickers/time-picker.strings.d.cts +9 -0
  538. package/dist/components/base/date-pickers/time-picker.strings.d.ts +9 -0
  539. package/dist/components/base/dialog/dialog.d.cts +22 -0
  540. package/dist/components/base/dialog/dialog.d.ts +22 -0
  541. package/dist/components/base/dialog/index.d.cts +1 -0
  542. package/dist/components/base/dialog/index.d.ts +1 -0
  543. package/dist/components/base/direction/direction.d.cts +6 -0
  544. package/dist/components/base/direction/direction.d.ts +6 -0
  545. package/dist/components/base/direction/index.d.cts +1 -0
  546. package/dist/components/base/direction/index.d.ts +1 -0
  547. package/dist/components/base/display/boolean-indicator.d.cts +14 -0
  548. package/dist/components/base/display/boolean-indicator.d.ts +14 -0
  549. package/dist/components/base/display/boolean-indicator.strings.d.cts +7 -0
  550. package/dist/components/base/display/boolean-indicator.strings.d.ts +7 -0
  551. package/dist/components/base/display/collapsible.d.cts +16 -0
  552. package/dist/components/base/display/collapsible.d.ts +16 -0
  553. package/dist/components/base/display/content-block.d.cts +33 -0
  554. package/dist/components/base/display/content-block.d.ts +33 -0
  555. package/dist/components/base/display/date-block.d.cts +29 -0
  556. package/dist/components/base/display/date-block.d.ts +29 -0
  557. package/dist/components/base/display/icon-badge.d.cts +17 -0
  558. package/dist/components/base/display/icon-badge.d.ts +17 -0
  559. package/dist/components/base/display/index.d.cts +15 -0
  560. package/dist/components/base/display/index.d.ts +15 -0
  561. package/dist/components/base/display/inline-stat.d.cts +21 -0
  562. package/dist/components/base/display/inline-stat.d.ts +21 -0
  563. package/dist/components/base/display/kbd.d.cts +10 -0
  564. package/dist/components/base/display/kbd.d.ts +10 -0
  565. package/dist/components/base/display/metadata-list.d.cts +59 -0
  566. package/dist/components/base/display/metadata-list.d.ts +59 -0
  567. package/dist/components/base/display/metadata-list.strings.d.cts +12 -0
  568. package/dist/components/base/display/metadata-list.strings.d.ts +12 -0
  569. package/dist/components/base/display/metadata-value.d.cts +91 -0
  570. package/dist/components/base/display/metadata-value.d.ts +91 -0
  571. package/dist/components/base/display/placeholder-pattern.d.cts +3 -0
  572. package/dist/components/base/display/placeholder-pattern.d.ts +3 -0
  573. package/dist/components/base/display/scroll-area.d.cts +12 -0
  574. package/dist/components/base/display/scroll-area.d.ts +12 -0
  575. package/dist/components/base/display/separator.d.cts +23 -0
  576. package/dist/components/base/display/separator.d.ts +23 -0
  577. package/dist/components/base/display/visually-hidden.d.cts +21 -0
  578. package/dist/components/base/display/visually-hidden.d.ts +21 -0
  579. package/dist/components/base/dropdown-menu/dropdown-menu.d.cts +73 -0
  580. package/dist/components/base/dropdown-menu/dropdown-menu.d.ts +73 -0
  581. package/dist/components/base/dropdown-menu/index.d.cts +1 -0
  582. package/dist/components/base/dropdown-menu/index.d.ts +1 -0
  583. package/dist/components/base/feedback/alert-metadata.d.cts +9 -0
  584. package/dist/components/base/feedback/alert-metadata.d.ts +9 -0
  585. package/dist/components/base/feedback/alert.d.cts +29 -0
  586. package/dist/components/base/feedback/alert.d.ts +29 -0
  587. package/dist/components/base/feedback/empty-illustrations.d.cts +13 -0
  588. package/dist/components/base/feedback/empty-illustrations.d.ts +13 -0
  589. package/dist/components/base/feedback/empty.d.cts +63 -0
  590. package/dist/components/base/feedback/empty.d.ts +63 -0
  591. package/dist/components/base/feedback/empty.strings.d.cts +19 -0
  592. package/dist/components/base/feedback/empty.strings.d.ts +19 -0
  593. package/dist/components/base/feedback/index.d.cts +9 -0
  594. package/dist/components/base/feedback/index.d.ts +9 -0
  595. package/dist/components/base/feedback/progress-circle.d.cts +32 -0
  596. package/dist/components/base/feedback/progress-circle.d.ts +32 -0
  597. package/dist/components/base/feedback/progress-range.d.cts +6 -0
  598. package/dist/components/base/feedback/progress-range.d.ts +6 -0
  599. package/dist/components/base/feedback/progress.d.cts +20 -0
  600. package/dist/components/base/feedback/progress.d.ts +20 -0
  601. package/dist/components/base/feedback/states.d.cts +19 -0
  602. package/dist/components/base/feedback/states.d.ts +19 -0
  603. package/dist/components/base/feedback/states.strings.d.cts +10 -0
  604. package/dist/components/base/feedback/states.strings.d.ts +10 -0
  605. package/dist/components/base/forms/field-group.d.cts +13 -0
  606. package/dist/components/base/forms/field-group.d.ts +13 -0
  607. package/dist/components/base/forms/form-field.d.cts +61 -0
  608. package/dist/components/base/forms/form-field.d.ts +61 -0
  609. package/dist/components/base/forms/index.d.cts +4 -0
  610. package/dist/components/base/forms/index.d.ts +4 -0
  611. package/dist/components/base/forms/workflow.d.cts +70 -0
  612. package/dist/components/base/forms/workflow.d.ts +70 -0
  613. package/dist/components/base/forms/workflow.strings.d.cts +16 -0
  614. package/dist/components/base/forms/workflow.strings.d.ts +16 -0
  615. package/dist/components/base/forms-numeric/currency-input.d.cts +21 -0
  616. package/dist/components/base/forms-numeric/currency-input.d.ts +21 -0
  617. package/dist/components/base/forms-numeric/currency-symbols.d.cts +2 -0
  618. package/dist/components/base/forms-numeric/currency-symbols.d.ts +2 -0
  619. package/dist/components/base/forms-numeric/decimal-input.d.cts +34 -0
  620. package/dist/components/base/forms-numeric/decimal-input.d.ts +34 -0
  621. package/dist/components/base/forms-numeric/decimal.format.d.cts +4 -0
  622. package/dist/components/base/forms-numeric/decimal.format.d.ts +4 -0
  623. package/dist/components/base/forms-numeric/forms-numeric.strings.d.cts +29 -0
  624. package/dist/components/base/forms-numeric/forms-numeric.strings.d.ts +29 -0
  625. package/dist/components/base/forms-numeric/index.d.cts +10 -0
  626. package/dist/components/base/forms-numeric/index.d.ts +10 -0
  627. package/dist/components/base/forms-numeric/money-input.d.cts +12 -0
  628. package/dist/components/base/forms-numeric/money-input.d.ts +12 -0
  629. package/dist/components/base/forms-numeric/percentage-input.d.cts +10 -0
  630. package/dist/components/base/forms-numeric/percentage-input.d.ts +10 -0
  631. package/dist/components/base/forms-numeric/rounding-mode-select.d.cts +12 -0
  632. package/dist/components/base/forms-numeric/rounding-mode-select.d.ts +12 -0
  633. package/dist/components/base/forms-numeric/rounding-mode-select.strings.d.cts +4 -0
  634. package/dist/components/base/forms-numeric/rounding-mode-select.strings.d.ts +4 -0
  635. package/dist/components/base/forms-numeric/unit-inputs.d.cts +98 -0
  636. package/dist/components/base/forms-numeric/unit-inputs.d.ts +98 -0
  637. package/dist/components/base/hover-card/hover-card.d.cts +28 -0
  638. package/dist/components/base/hover-card/hover-card.d.ts +28 -0
  639. package/dist/components/base/hover-card/index.d.cts +1 -0
  640. package/dist/components/base/hover-card/index.d.ts +1 -0
  641. package/dist/components/base/index.d.cts +54 -0
  642. package/dist/components/base/index.d.ts +54 -0
  643. package/dist/components/base/input-group/index.d.cts +2 -0
  644. package/dist/components/base/input-group/index.d.ts +2 -0
  645. package/dist/components/base/input-group/input-group.d.cts +29 -0
  646. package/dist/components/base/input-group/input-group.d.ts +29 -0
  647. package/dist/components/base/item/index.d.cts +1 -0
  648. package/dist/components/base/item/index.d.ts +1 -0
  649. package/dist/components/base/item/item.d.cts +47 -0
  650. package/dist/components/base/item/item.d.ts +47 -0
  651. package/dist/components/base/label/index.d.cts +1 -0
  652. package/dist/components/base/label/index.d.ts +1 -0
  653. package/dist/components/base/label/label.d.cts +3 -0
  654. package/dist/components/base/label/label.d.ts +3 -0
  655. package/dist/components/base/menubar/index.d.cts +1 -0
  656. package/dist/components/base/menubar/index.d.ts +1 -0
  657. package/dist/components/base/menubar/menubar.d.cts +23 -0
  658. package/dist/components/base/menubar/menubar.d.ts +23 -0
  659. package/dist/components/base/navigation/breadcrumbs.d.cts +27 -0
  660. package/dist/components/base/navigation/breadcrumbs.d.ts +27 -0
  661. package/dist/components/base/navigation/index.d.cts +10 -0
  662. package/dist/components/base/navigation/index.d.ts +10 -0
  663. package/dist/components/base/navigation/language-switcher.d.cts +20 -0
  664. package/dist/components/base/navigation/language-switcher.d.ts +20 -0
  665. package/dist/components/base/navigation/navigation-tabs.d.cts +22 -0
  666. package/dist/components/base/navigation/navigation-tabs.d.ts +22 -0
  667. package/dist/components/base/navigation/navigation-tabs.strings.d.cts +9 -0
  668. package/dist/components/base/navigation/navigation-tabs.strings.d.ts +9 -0
  669. package/dist/components/base/navigation/navigation.strings.d.cts +26 -0
  670. package/dist/components/base/navigation/navigation.strings.d.ts +26 -0
  671. package/dist/components/base/navigation/overflow-tab-bar.d.cts +21 -0
  672. package/dist/components/base/navigation/overflow-tab-bar.d.ts +21 -0
  673. package/dist/components/base/navigation/page-heading.d.cts +52 -0
  674. package/dist/components/base/navigation/page-heading.d.ts +52 -0
  675. package/dist/components/base/navigation/pagination.d.cts +51 -0
  676. package/dist/components/base/navigation/pagination.d.ts +51 -0
  677. package/dist/components/base/navigation/pagination.range.d.cts +7 -0
  678. package/dist/components/base/navigation/pagination.range.d.ts +7 -0
  679. package/dist/components/base/navigation/tabs.d.cts +29 -0
  680. package/dist/components/base/navigation/tabs.d.ts +29 -0
  681. package/dist/components/base/navigation-menu/index.d.cts +1 -0
  682. package/dist/components/base/navigation-menu/index.d.ts +1 -0
  683. package/dist/components/base/navigation-menu/navigation-menu.d.cts +36 -0
  684. package/dist/components/base/navigation-menu/navigation-menu.d.ts +36 -0
  685. package/dist/components/base/otp-input/index.d.cts +2 -0
  686. package/dist/components/base/otp-input/index.d.ts +2 -0
  687. package/dist/components/base/otp-input/otp-input.d.cts +12 -0
  688. package/dist/components/base/otp-input/otp-input.d.ts +12 -0
  689. package/dist/components/base/otp-input/otp-input.strings.d.cts +26 -0
  690. package/dist/components/base/otp-input/otp-input.strings.d.ts +26 -0
  691. package/dist/components/base/overlay/index.d.cts +3 -0
  692. package/dist/components/base/overlay/index.d.ts +3 -0
  693. package/dist/components/base/overlay/overlay-context.d.cts +16 -0
  694. package/dist/components/base/overlay/overlay-context.d.ts +16 -0
  695. package/dist/components/base/overlay/overlay.d.cts +34 -0
  696. package/dist/components/base/overlay/overlay.d.ts +34 -0
  697. package/dist/components/base/overlay/overlay.strings.d.cts +5 -0
  698. package/dist/components/base/overlay/overlay.strings.d.ts +5 -0
  699. package/dist/components/base/overlay/overlay.types.d.cts +68 -0
  700. package/dist/components/base/overlay/overlay.types.d.ts +68 -0
  701. package/dist/components/base/overlay/partials/index.d.cts +5 -0
  702. package/dist/components/base/overlay/partials/index.d.ts +5 -0
  703. package/dist/components/base/overlay/partials/overlay-body.d.cts +3 -0
  704. package/dist/components/base/overlay/partials/overlay-body.d.ts +3 -0
  705. package/dist/components/base/overlay/partials/overlay-description.d.cts +3 -0
  706. package/dist/components/base/overlay/partials/overlay-description.d.ts +3 -0
  707. package/dist/components/base/overlay/partials/overlay-footer.d.cts +3 -0
  708. package/dist/components/base/overlay/partials/overlay-footer.d.ts +3 -0
  709. package/dist/components/base/overlay/partials/overlay-header.d.cts +3 -0
  710. package/dist/components/base/overlay/partials/overlay-header.d.ts +3 -0
  711. package/dist/components/base/overlay/partials/overlay-title.d.cts +7 -0
  712. package/dist/components/base/overlay/partials/overlay-title.d.ts +7 -0
  713. package/dist/components/base/popover/index.d.cts +2 -0
  714. package/dist/components/base/popover/index.d.ts +2 -0
  715. package/dist/components/base/popover/popover.d.cts +47 -0
  716. package/dist/components/base/popover/popover.d.ts +47 -0
  717. package/dist/components/base/popover-menu/index.d.cts +3 -0
  718. package/dist/components/base/popover-menu/index.d.ts +3 -0
  719. package/dist/components/base/popover-menu/popover-menu.d.cts +46 -0
  720. package/dist/components/base/popover-menu/popover-menu.d.ts +46 -0
  721. package/dist/components/base/popover-menu/popover-menu.strings.d.cts +9 -0
  722. package/dist/components/base/popover-menu/popover-menu.strings.d.ts +9 -0
  723. package/dist/components/base/popover-menu/popover-menu.types.d.cts +16 -0
  724. package/dist/components/base/popover-menu/popover-menu.types.d.ts +16 -0
  725. package/dist/components/base/qr-code/index.d.cts +2 -0
  726. package/dist/components/base/qr-code/index.d.ts +2 -0
  727. package/dist/components/base/qr-code/qr-code.d.cts +32 -0
  728. package/dist/components/base/qr-code/qr-code.d.ts +32 -0
  729. package/dist/components/base/qr-code/qr-code.strings.d.cts +16 -0
  730. package/dist/components/base/qr-code/qr-code.strings.d.ts +16 -0
  731. package/dist/components/base/repeaters/index.d.cts +8 -0
  732. package/dist/components/base/repeaters/index.d.ts +8 -0
  733. package/dist/components/base/repeaters/key-value-editor.d.cts +20 -0
  734. package/dist/components/base/repeaters/key-value-editor.d.ts +20 -0
  735. package/dist/components/base/repeaters/localized-fields.d.cts +45 -0
  736. package/dist/components/base/repeaters/localized-fields.d.ts +45 -0
  737. package/dist/components/base/repeaters/localized-string-repeater.d.cts +20 -0
  738. package/dist/components/base/repeaters/localized-string-repeater.d.ts +20 -0
  739. package/dist/components/base/repeaters/object-repeater.d.cts +45 -0
  740. package/dist/components/base/repeaters/object-repeater.d.ts +45 -0
  741. package/dist/components/base/repeaters/repeater.d.cts +29 -0
  742. package/dist/components/base/repeaters/repeater.d.ts +29 -0
  743. package/dist/components/base/repeaters/repeaters.strings.d.cts +38 -0
  744. package/dist/components/base/repeaters/repeaters.strings.d.ts +38 -0
  745. package/dist/components/base/repeaters/string-repeater.d.cts +16 -0
  746. package/dist/components/base/repeaters/string-repeater.d.ts +16 -0
  747. package/dist/components/base/resizable/index.d.cts +1 -0
  748. package/dist/components/base/resizable/index.d.ts +1 -0
  749. package/dist/components/base/resizable/resizable.d.cts +28 -0
  750. package/dist/components/base/resizable/resizable.d.ts +28 -0
  751. package/dist/components/base/sheet/index.d.cts +1 -0
  752. package/dist/components/base/sheet/index.d.ts +1 -0
  753. package/dist/components/base/sheet/sheet.d.cts +24 -0
  754. package/dist/components/base/sheet/sheet.d.ts +24 -0
  755. package/dist/components/base/sheet/sheet.types.d.cts +21 -0
  756. package/dist/components/base/sheet/sheet.types.d.ts +21 -0
  757. package/dist/components/base/sidebar/index.d.cts +6 -0
  758. package/dist/components/base/sidebar/index.d.ts +6 -0
  759. package/dist/components/base/sidebar/sidebar-context.d.cts +27 -0
  760. package/dist/components/base/sidebar/sidebar-context.d.ts +27 -0
  761. package/dist/components/base/sidebar/sidebar-store.d.cts +22 -0
  762. package/dist/components/base/sidebar/sidebar-store.d.ts +22 -0
  763. package/dist/components/base/sidebar/sidebar.d.cts +120 -0
  764. package/dist/components/base/sidebar/sidebar.d.ts +120 -0
  765. package/dist/components/base/sidebar/sidebar.strings.d.cts +8 -0
  766. package/dist/components/base/sidebar/sidebar.strings.d.ts +8 -0
  767. package/dist/components/base/skeleton/composed-skeletons.d.cts +40 -0
  768. package/dist/components/base/skeleton/composed-skeletons.d.ts +40 -0
  769. package/dist/components/base/skeleton/index.d.cts +3 -0
  770. package/dist/components/base/skeleton/index.d.ts +3 -0
  771. package/dist/components/base/skeleton/skeleton.d.cts +3 -0
  772. package/dist/components/base/skeleton/skeleton.d.ts +3 -0
  773. package/dist/components/base/skeleton/skeleton.strings.d.cts +17 -0
  774. package/dist/components/base/skeleton/skeleton.strings.d.ts +17 -0
  775. package/dist/components/base/slot/index.d.cts +1 -0
  776. package/dist/components/base/slot/index.d.ts +1 -0
  777. package/dist/components/base/slot/slot.d.cts +19 -0
  778. package/dist/components/base/slot/slot.d.ts +19 -0
  779. package/dist/components/base/spinner/index.d.cts +1 -0
  780. package/dist/components/base/spinner/index.d.ts +1 -0
  781. package/dist/components/base/spinner/spinner.d.cts +16 -0
  782. package/dist/components/base/spinner/spinner.d.ts +16 -0
  783. package/dist/components/base/structure/adaptive-grid.d.cts +17 -0
  784. package/dist/components/base/structure/adaptive-grid.d.ts +17 -0
  785. package/dist/components/base/structure/bleed.d.cts +30 -0
  786. package/dist/components/base/structure/bleed.d.ts +30 -0
  787. package/dist/components/base/structure/grid.d.cts +29 -0
  788. package/dist/components/base/structure/grid.d.ts +29 -0
  789. package/dist/components/base/structure/index.d.cts +6 -0
  790. package/dist/components/base/structure/index.d.ts +6 -0
  791. package/dist/components/base/structure/split.d.cts +46 -0
  792. package/dist/components/base/structure/split.d.ts +46 -0
  793. package/dist/components/base/structure/stack.d.cts +30 -0
  794. package/dist/components/base/structure/stack.d.ts +30 -0
  795. package/dist/components/base/structure/structure.maps.d.cts +18 -0
  796. package/dist/components/base/structure/structure.maps.d.ts +18 -0
  797. package/dist/components/base/structure/structure.responsive.d.cts +1 -0
  798. package/dist/components/base/structure/structure.responsive.d.ts +1 -0
  799. package/dist/components/base/structure/structure.types.d.cts +23 -0
  800. package/dist/components/base/structure/structure.types.d.ts +23 -0
  801. package/dist/components/base/table/index.d.cts +2 -0
  802. package/dist/components/base/table/index.d.ts +2 -0
  803. package/dist/components/base/table/table.d.cts +51 -0
  804. package/dist/components/base/table/table.d.ts +51 -0
  805. package/dist/components/base/text-inputs/field-shell.d.cts +24 -0
  806. package/dist/components/base/text-inputs/field-shell.d.ts +24 -0
  807. package/dist/components/base/text-inputs/index.d.cts +11 -0
  808. package/dist/components/base/text-inputs/index.d.ts +11 -0
  809. package/dist/components/base/text-inputs/input.d.cts +37 -0
  810. package/dist/components/base/text-inputs/input.d.ts +37 -0
  811. package/dist/components/base/text-inputs/input.strings.d.cts +7 -0
  812. package/dist/components/base/text-inputs/input.strings.d.ts +7 -0
  813. package/dist/components/base/text-inputs/native-select.d.cts +6 -0
  814. package/dist/components/base/text-inputs/native-select.d.ts +6 -0
  815. package/dist/components/base/text-inputs/password-input.d.cts +15 -0
  816. package/dist/components/base/text-inputs/password-input.d.ts +15 -0
  817. package/dist/components/base/text-inputs/password-input.strings.d.cts +9 -0
  818. package/dist/components/base/text-inputs/password-input.strings.d.ts +9 -0
  819. package/dist/components/base/text-inputs/search-input.d.cts +7 -0
  820. package/dist/components/base/text-inputs/search-input.d.ts +7 -0
  821. package/dist/components/base/text-inputs/slug-field.d.cts +20 -0
  822. package/dist/components/base/text-inputs/slug-field.d.ts +20 -0
  823. package/dist/components/base/text-inputs/slugify.d.cts +12 -0
  824. package/dist/components/base/text-inputs/slugify.d.ts +12 -0
  825. package/dist/components/base/text-inputs/textarea.d.cts +26 -0
  826. package/dist/components/base/text-inputs/textarea.d.ts +26 -0
  827. package/dist/components/base/text-inputs/use-field-value.d.cts +33 -0
  828. package/dist/components/base/text-inputs/use-field-value.d.ts +33 -0
  829. package/dist/components/base/timeline/index.d.cts +1 -0
  830. package/dist/components/base/timeline/index.d.ts +1 -0
  831. package/dist/components/base/timeline/timeline.d.cts +40 -0
  832. package/dist/components/base/timeline/timeline.d.ts +40 -0
  833. package/dist/components/base/toaster/index.d.cts +4 -0
  834. package/dist/components/base/toaster/index.d.ts +4 -0
  835. package/dist/components/base/toaster/toast-store.d.cts +92 -0
  836. package/dist/components/base/toaster/toast-store.d.ts +92 -0
  837. package/dist/components/base/toaster/toaster.d.cts +38 -0
  838. package/dist/components/base/toaster/toaster.d.ts +38 -0
  839. package/dist/components/base/toaster/toaster.strings.d.cts +7 -0
  840. package/dist/components/base/toaster/toaster.strings.d.ts +7 -0
  841. package/dist/components/base/toaster/toaster.types.d.cts +12 -0
  842. package/dist/components/base/toaster/toaster.types.d.ts +12 -0
  843. package/dist/components/base/toggle/index.d.cts +1 -0
  844. package/dist/components/base/toggle/index.d.ts +1 -0
  845. package/dist/components/base/toggle/toggle.d.cts +22 -0
  846. package/dist/components/base/toggle/toggle.d.ts +22 -0
  847. package/dist/components/base/toolbar/index.d.cts +1 -0
  848. package/dist/components/base/toolbar/index.d.ts +1 -0
  849. package/dist/components/base/toolbar/toolbar.d.cts +28 -0
  850. package/dist/components/base/toolbar/toolbar.d.ts +28 -0
  851. package/dist/components/base/tooltip/index.d.cts +1 -0
  852. package/dist/components/base/tooltip/index.d.ts +1 -0
  853. package/dist/components/base/tooltip/tooltip.d.cts +17 -0
  854. package/dist/components/base/tooltip/tooltip.d.ts +17 -0
  855. package/dist/components/base/typography/display-label/display-label.d.cts +8 -0
  856. package/dist/components/base/typography/display-label/display-label.d.ts +8 -0
  857. package/dist/components/base/typography/display-label/index.d.cts +1 -0
  858. package/dist/components/base/typography/display-label/index.d.ts +1 -0
  859. package/dist/components/base/typography/heading/heading.d.cts +24 -0
  860. package/dist/components/base/typography/heading/heading.d.ts +24 -0
  861. package/dist/components/base/typography/heading/index.d.cts +1 -0
  862. package/dist/components/base/typography/heading/index.d.ts +1 -0
  863. package/dist/components/base/typography/index.d.cts +8 -0
  864. package/dist/components/base/typography/index.d.ts +8 -0
  865. package/dist/components/base/typography/rich-text/rich-text.d.cts +15 -0
  866. package/dist/components/base/typography/rich-text/rich-text.d.ts +15 -0
  867. package/dist/components/base/typography/text/index.d.cts +2 -0
  868. package/dist/components/base/typography/text/index.d.ts +2 -0
  869. package/dist/components/base/typography/text/text.d.cts +71 -0
  870. package/dist/components/base/typography/text/text.d.ts +71 -0
  871. package/dist/components/base/typography/text-link/index.d.cts +1 -0
  872. package/dist/components/base/typography/text-link/index.d.ts +1 -0
  873. package/dist/components/base/typography/text-link/text-link.d.cts +22 -0
  874. package/dist/components/base/typography/text-link/text-link.d.ts +22 -0
  875. package/dist/components/base/upload/dropzone.d.cts +27 -0
  876. package/dist/components/base/upload/dropzone.d.ts +27 -0
  877. package/dist/components/base/upload/file-picker-input.d.cts +17 -0
  878. package/dist/components/base/upload/file-picker-input.d.ts +17 -0
  879. package/dist/components/base/upload/file-upload.d.cts +41 -0
  880. package/dist/components/base/upload/file-upload.d.ts +41 -0
  881. package/dist/components/base/upload/file-upload.strings.d.cts +20 -0
  882. package/dist/components/base/upload/file-upload.strings.d.ts +20 -0
  883. package/dist/components/base/upload/index.d.cts +16 -0
  884. package/dist/components/base/upload/index.d.ts +16 -0
  885. package/dist/components/base/upload/media-gallery.d.cts +21 -0
  886. package/dist/components/base/upload/media-gallery.d.ts +21 -0
  887. package/dist/components/base/upload/media-upload.d.cts +29 -0
  888. package/dist/components/base/upload/media-upload.d.ts +29 -0
  889. package/dist/components/base/upload/preview-image.d.cts +9 -0
  890. package/dist/components/base/upload/preview-image.d.ts +9 -0
  891. package/dist/components/base/upload/upload-queue.d.cts +48 -0
  892. package/dist/components/base/upload/upload-queue.d.ts +48 -0
  893. package/dist/components/base/upload/upload.strings.d.cts +71 -0
  894. package/dist/components/base/upload/upload.strings.d.ts +71 -0
  895. package/dist/components/base/upload/upload.types.d.cts +34 -0
  896. package/dist/components/base/upload/upload.types.d.ts +34 -0
  897. package/dist/components/base/upload/use-file-drop-target.d.cts +27 -0
  898. package/dist/components/base/upload/use-file-drop-target.d.ts +27 -0
  899. package/dist/components/base/upload/validate-files.d.cts +21 -0
  900. package/dist/components/base/upload/validate-files.d.ts +21 -0
  901. package/dist/components/base/value-inputs/color-input.d.cts +34 -0
  902. package/dist/components/base/value-inputs/color-input.d.ts +34 -0
  903. package/dist/components/base/value-inputs/country-prefixes.d.cts +22 -0
  904. package/dist/components/base/value-inputs/country-prefixes.d.ts +22 -0
  905. package/dist/components/base/value-inputs/date-time-input.d.cts +16 -0
  906. package/dist/components/base/value-inputs/date-time-input.d.ts +16 -0
  907. package/dist/components/base/value-inputs/index.d.cts +7 -0
  908. package/dist/components/base/value-inputs/index.d.ts +7 -0
  909. package/dist/components/base/value-inputs/phone-input.d.cts +22 -0
  910. package/dist/components/base/value-inputs/phone-input.d.ts +22 -0
  911. package/dist/components/base/value-inputs/slider.d.cts +70 -0
  912. package/dist/components/base/value-inputs/slider.d.ts +70 -0
  913. package/dist/components/base/value-inputs/tags-input.d.cts +53 -0
  914. package/dist/components/base/value-inputs/tags-input.d.ts +53 -0
  915. package/dist/components/base/value-inputs/value-inputs.strings.d.cts +33 -0
  916. package/dist/components/base/value-inputs/value-inputs.strings.d.ts +33 -0
  917. package/dist/components/features/actions/action-adapters.d.cts +77 -0
  918. package/dist/components/features/actions/action-adapters.d.ts +77 -0
  919. package/dist/components/features/actions/action-overlay-outlet.d.cts +2 -0
  920. package/dist/components/features/actions/action-overlay-outlet.d.ts +2 -0
  921. package/dist/components/features/actions/action-provider.d.cts +3 -0
  922. package/dist/components/features/actions/action-provider.d.ts +3 -0
  923. package/dist/components/features/actions/action-scope.d.cts +3 -0
  924. package/dist/components/features/actions/action-scope.d.ts +3 -0
  925. package/dist/components/features/actions/action-store.d.cts +58 -0
  926. package/dist/components/features/actions/action-store.d.ts +58 -0
  927. package/dist/components/features/actions/actions.strings.d.cts +2 -0
  928. package/dist/components/features/actions/actions.strings.d.ts +2 -0
  929. package/dist/components/features/actions/actions.types.d.cts +322 -0
  930. package/dist/components/features/actions/actions.types.d.ts +322 -0
  931. package/dist/components/features/actions/hooks.d.cts +8 -0
  932. package/dist/components/features/actions/hooks.d.ts +8 -0
  933. package/dist/components/features/actions/index.d.cts +9 -0
  934. package/dist/components/features/actions/index.d.ts +9 -0
  935. package/dist/components/features/activities/activities-feed.d.cts +2 -0
  936. package/dist/components/features/activities/activities-feed.d.ts +2 -0
  937. package/dist/components/features/activities/activities.config.d.cts +5 -0
  938. package/dist/components/features/activities/activities.config.d.ts +5 -0
  939. package/dist/components/features/activities/activities.strings.d.cts +35 -0
  940. package/dist/components/features/activities/activities.strings.d.ts +35 -0
  941. package/dist/components/features/activities/activities.types.d.cts +359 -0
  942. package/dist/components/features/activities/activities.types.d.ts +359 -0
  943. package/dist/components/features/activities/activity-event-adapter.d.cts +35 -0
  944. package/dist/components/features/activities/activity-event-adapter.d.ts +35 -0
  945. package/dist/components/features/activities/activity-headline.d.cts +11 -0
  946. package/dist/components/features/activities/activity-headline.d.ts +11 -0
  947. package/dist/components/features/activities/activity-log.d.cts +3 -0
  948. package/dist/components/features/activities/activity-log.d.ts +3 -0
  949. package/dist/components/features/activities/activity-parts.d.cts +58 -0
  950. package/dist/components/features/activities/activity-parts.d.ts +58 -0
  951. package/dist/components/features/activities/activity-row.d.cts +37 -0
  952. package/dist/components/features/activities/activity-row.d.ts +37 -0
  953. package/dist/components/features/activities/index.d.cts +11 -0
  954. package/dist/components/features/activities/index.d.ts +11 -0
  955. package/dist/components/features/activities/use-activity-feed.d.cts +33 -0
  956. package/dist/components/features/activities/use-activity-feed.d.ts +33 -0
  957. package/dist/components/features/activities/use-activity-resources.d.cts +18 -0
  958. package/dist/components/features/activities/use-activity-resources.d.ts +18 -0
  959. package/dist/components/features/ai-chat/ai-chat-parts.d.cts +96 -0
  960. package/dist/components/features/ai-chat/ai-chat-parts.d.ts +96 -0
  961. package/dist/components/features/ai-chat/ai-chat.d.cts +32 -0
  962. package/dist/components/features/ai-chat/ai-chat.d.ts +32 -0
  963. package/dist/components/features/ai-chat/ai-chat.strings.d.cts +131 -0
  964. package/dist/components/features/ai-chat/ai-chat.strings.d.ts +131 -0
  965. package/dist/components/features/ai-chat/ai-chat.types.d.cts +330 -0
  966. package/dist/components/features/ai-chat/ai-chat.types.d.ts +330 -0
  967. package/dist/components/features/ai-chat/ai-content-surfaces.d.cts +5 -0
  968. package/dist/components/features/ai-chat/ai-content-surfaces.d.ts +5 -0
  969. package/dist/components/features/ai-chat/ai-message-surfaces.d.cts +5 -0
  970. package/dist/components/features/ai-chat/ai-message-surfaces.d.ts +5 -0
  971. package/dist/components/features/ai-chat/ai-work-surfaces.d.cts +5 -0
  972. package/dist/components/features/ai-chat/ai-work-surfaces.d.ts +5 -0
  973. package/dist/components/features/ai-chat/index.d.cts +8 -0
  974. package/dist/components/features/ai-chat/index.d.ts +8 -0
  975. package/dist/components/features/ai-chat/use-ai-chat-scroll.d.cts +17 -0
  976. package/dist/components/features/ai-chat/use-ai-chat-scroll.d.ts +17 -0
  977. package/dist/components/features/async-preview/async-preview-bundles.d.cts +27 -0
  978. package/dist/components/features/async-preview/async-preview-bundles.d.ts +27 -0
  979. package/dist/components/features/async-preview/async-preview-context.d.cts +9 -0
  980. package/dist/components/features/async-preview/async-preview-context.d.ts +9 -0
  981. package/dist/components/features/async-preview/async-preview.d.cts +16 -0
  982. package/dist/components/features/async-preview/async-preview.d.ts +16 -0
  983. package/dist/components/features/async-preview/async-preview.strings.d.cts +9 -0
  984. package/dist/components/features/async-preview/async-preview.strings.d.ts +9 -0
  985. package/dist/components/features/async-preview/async-preview.types.d.cts +131 -0
  986. package/dist/components/features/async-preview/async-preview.types.d.ts +131 -0
  987. package/dist/components/features/async-preview/index.d.cts +9 -0
  988. package/dist/components/features/async-preview/index.d.ts +9 -0
  989. package/dist/components/features/async-preview/preview-trigger-cell.d.cts +34 -0
  990. package/dist/components/features/async-preview/preview-trigger-cell.d.ts +34 -0
  991. package/dist/components/features/async-preview/use-async-preview.d.cts +9 -0
  992. package/dist/components/features/async-preview/use-async-preview.d.ts +9 -0
  993. package/dist/components/features/combobox/async-combobox.d.cts +3 -0
  994. package/dist/components/features/combobox/async-combobox.d.ts +3 -0
  995. package/dist/components/features/combobox/combobox-dropdown.d.cts +32 -0
  996. package/dist/components/features/combobox/combobox-dropdown.d.ts +32 -0
  997. package/dist/components/features/combobox/combobox.strings.d.cts +20 -0
  998. package/dist/components/features/combobox/combobox.strings.d.ts +20 -0
  999. package/dist/components/features/combobox/combobox.types.d.cts +123 -0
  1000. package/dist/components/features/combobox/combobox.types.d.ts +123 -0
  1001. package/dist/components/features/combobox/highlighted-text.d.cts +4 -0
  1002. package/dist/components/features/combobox/highlighted-text.d.ts +4 -0
  1003. package/dist/components/features/combobox/index.d.cts +7 -0
  1004. package/dist/components/features/combobox/index.d.ts +7 -0
  1005. package/dist/components/features/combobox/resource-combobox.d.cts +61 -0
  1006. package/dist/components/features/combobox/resource-combobox.d.ts +61 -0
  1007. package/dist/components/features/combobox/use-combobox-core.d.cts +39 -0
  1008. package/dist/components/features/combobox/use-combobox-core.d.ts +39 -0
  1009. package/dist/components/features/comments/comment-attachment-chip.d.cts +13 -0
  1010. package/dist/components/features/comments/comment-attachment-chip.d.ts +13 -0
  1011. package/dist/components/features/comments/comment-composer.d.cts +10 -0
  1012. package/dist/components/features/comments/comment-composer.d.ts +10 -0
  1013. package/dist/components/features/comments/comment-content.d.cts +14 -0
  1014. package/dist/components/features/comments/comment-content.d.ts +14 -0
  1015. package/dist/components/features/comments/comment-item.d.cts +2 -0
  1016. package/dist/components/features/comments/comment-item.d.ts +2 -0
  1017. package/dist/components/features/comments/comment-timeline.d.cts +2 -0
  1018. package/dist/components/features/comments/comment-timeline.d.ts +2 -0
  1019. package/dist/components/features/comments/comments.d.cts +2 -0
  1020. package/dist/components/features/comments/comments.d.ts +2 -0
  1021. package/dist/components/features/comments/comments.strings.d.cts +59 -0
  1022. package/dist/components/features/comments/comments.strings.d.ts +59 -0
  1023. package/dist/components/features/comments/comments.types.d.cts +299 -0
  1024. package/dist/components/features/comments/comments.types.d.ts +299 -0
  1025. package/dist/components/features/comments/index.d.cts +10 -0
  1026. package/dist/components/features/comments/index.d.ts +10 -0
  1027. package/dist/components/features/comments/use-attachment-upload.d.cts +19 -0
  1028. package/dist/components/features/comments/use-attachment-upload.d.ts +19 -0
  1029. package/dist/components/features/comments/use-comments.d.cts +34 -0
  1030. package/dist/components/features/comments/use-comments.d.ts +34 -0
  1031. package/dist/components/features/data-view/data-view-filtering.d.cts +4 -0
  1032. package/dist/components/features/data-view/data-view-filtering.d.ts +4 -0
  1033. package/dist/components/features/data-view/data-view.d.cts +9 -0
  1034. package/dist/components/features/data-view/data-view.d.ts +9 -0
  1035. package/dist/components/features/data-view/data-view.strings.d.cts +9 -0
  1036. package/dist/components/features/data-view/data-view.strings.d.ts +9 -0
  1037. package/dist/components/features/data-view/data-view.types.d.cts +116 -0
  1038. package/dist/components/features/data-view/data-view.types.d.ts +116 -0
  1039. package/dist/components/features/data-view/index.d.cts +5 -0
  1040. package/dist/components/features/data-view/index.d.ts +5 -0
  1041. package/dist/components/features/data-view/use-data-view.d.cts +2 -0
  1042. package/dist/components/features/data-view/use-data-view.d.ts +2 -0
  1043. package/dist/components/features/event-calendar/event-calendar-day-cell.d.cts +2 -0
  1044. package/dist/components/features/event-calendar/event-calendar-day-cell.d.ts +2 -0
  1045. package/dist/components/features/event-calendar/event-calendar-event-badge.d.cts +2 -0
  1046. package/dist/components/features/event-calendar/event-calendar-event-badge.d.ts +2 -0
  1047. package/dist/components/features/event-calendar/event-calendar-event-card.d.cts +7 -0
  1048. package/dist/components/features/event-calendar/event-calendar-event-card.d.ts +7 -0
  1049. package/dist/components/features/event-calendar/event-calendar-header.d.cts +2 -0
  1050. package/dist/components/features/event-calendar/event-calendar-header.d.ts +2 -0
  1051. package/dist/components/features/event-calendar/event-calendar-legend.d.cts +2 -0
  1052. package/dist/components/features/event-calendar/event-calendar-legend.d.ts +2 -0
  1053. package/dist/components/features/event-calendar/event-calendar.d.cts +2 -0
  1054. package/dist/components/features/event-calendar/event-calendar.d.ts +2 -0
  1055. package/dist/components/features/event-calendar/event-calendar.strings.d.cts +38 -0
  1056. package/dist/components/features/event-calendar/event-calendar.strings.d.ts +38 -0
  1057. package/dist/components/features/event-calendar/event-calendar.types.d.cts +171 -0
  1058. package/dist/components/features/event-calendar/event-calendar.types.d.ts +171 -0
  1059. package/dist/components/features/event-calendar/index.d.cts +11 -0
  1060. package/dist/components/features/event-calendar/index.d.ts +11 -0
  1061. package/dist/components/features/event-calendar/use-event-calendar-data.d.cts +7 -0
  1062. package/dist/components/features/event-calendar/use-event-calendar-data.d.ts +7 -0
  1063. package/dist/components/features/event-calendar/use-event-calendar.d.cts +12 -0
  1064. package/dist/components/features/event-calendar/use-event-calendar.d.ts +12 -0
  1065. package/dist/components/features/filters/filter-cache.d.cts +41 -0
  1066. package/dist/components/features/filters/filter-cache.d.ts +41 -0
  1067. package/dist/components/features/filters/filter-context.d.cts +25 -0
  1068. package/dist/components/features/filters/filter-context.d.ts +25 -0
  1069. package/dist/components/features/filters/filter-editors.d.cts +17 -0
  1070. package/dist/components/features/filters/filter-editors.d.ts +17 -0
  1071. package/dist/components/features/filters/filter-error-boundary.d.cts +10 -0
  1072. package/dist/components/features/filters/filter-error-boundary.d.ts +10 -0
  1073. package/dist/components/features/filters/filter-layout.d.cts +12 -0
  1074. package/dist/components/features/filters/filter-layout.d.ts +12 -0
  1075. package/dist/components/features/filters/filter-operator-select.d.cts +7 -0
  1076. package/dist/components/features/filters/filter-operator-select.d.ts +7 -0
  1077. package/dist/components/features/filters/filter-operators.d.cts +16 -0
  1078. package/dist/components/features/filters/filter-operators.d.ts +16 -0
  1079. package/dist/components/features/filters/filter-pill.d.cts +14 -0
  1080. package/dist/components/features/filters/filter-pill.d.ts +14 -0
  1081. package/dist/components/features/filters/filter-query.d.cts +20 -0
  1082. package/dist/components/features/filters/filter-query.d.ts +20 -0
  1083. package/dist/components/features/filters/filter-store.d.cts +3 -0
  1084. package/dist/components/features/filters/filter-store.d.ts +3 -0
  1085. package/dist/components/features/filters/filter-tabs.d.cts +6 -0
  1086. package/dist/components/features/filters/filter-tabs.d.ts +6 -0
  1087. package/dist/components/features/filters/filter-utils.d.cts +13 -0
  1088. package/dist/components/features/filters/filter-utils.d.ts +13 -0
  1089. package/dist/components/features/filters/filter-validators.d.cts +15 -0
  1090. package/dist/components/features/filters/filter-validators.d.ts +15 -0
  1091. package/dist/components/features/filters/filter-value-display.d.cts +7 -0
  1092. package/dist/components/features/filters/filter-value-display.d.ts +7 -0
  1093. package/dist/components/features/filters/filters-button.d.cts +7 -0
  1094. package/dist/components/features/filters/filters-button.d.ts +7 -0
  1095. package/dist/components/features/filters/filters.strings.d.cts +65 -0
  1096. package/dist/components/features/filters/filters.strings.d.ts +65 -0
  1097. package/dist/components/features/filters/filters.types.d.cts +191 -0
  1098. package/dist/components/features/filters/filters.types.d.ts +191 -0
  1099. package/dist/components/features/filters/index.d.cts +21 -0
  1100. package/dist/components/features/filters/index.d.ts +21 -0
  1101. package/dist/components/features/filters/search-filters.d.cts +11 -0
  1102. package/dist/components/features/filters/search-filters.d.ts +11 -0
  1103. package/dist/components/features/filters/use-async-options.d.cts +16 -0
  1104. package/dist/components/features/filters/use-async-options.d.ts +16 -0
  1105. package/dist/components/features/filters/use-filter-groups.d.cts +18 -0
  1106. package/dist/components/features/filters/use-filter-groups.d.ts +18 -0
  1107. package/dist/components/features/global-search/global-search-dialog.d.cts +9 -0
  1108. package/dist/components/features/global-search/global-search-dialog.d.ts +9 -0
  1109. package/dist/components/features/global-search/global-search-empty-state.d.cts +8 -0
  1110. package/dist/components/features/global-search/global-search-empty-state.d.ts +8 -0
  1111. package/dist/components/features/global-search/global-search-footer.d.cts +12 -0
  1112. package/dist/components/features/global-search/global-search-footer.d.ts +12 -0
  1113. package/dist/components/features/global-search/global-search-idle-state.d.cts +15 -0
  1114. package/dist/components/features/global-search/global-search-idle-state.d.ts +15 -0
  1115. package/dist/components/features/global-search/global-search-input.d.cts +13 -0
  1116. package/dist/components/features/global-search/global-search-input.d.ts +13 -0
  1117. package/dist/components/features/global-search/global-search-result-row.d.cts +12 -0
  1118. package/dist/components/features/global-search/global-search-result-row.d.ts +12 -0
  1119. package/dist/components/features/global-search/global-search-tabs.d.cts +10 -0
  1120. package/dist/components/features/global-search/global-search-tabs.d.ts +10 -0
  1121. package/dist/components/features/global-search/global-search.d.cts +2 -0
  1122. package/dist/components/features/global-search/global-search.d.ts +2 -0
  1123. package/dist/components/features/global-search/global-search.strings.d.cts +19 -0
  1124. package/dist/components/features/global-search/global-search.strings.d.ts +19 -0
  1125. package/dist/components/features/global-search/global-search.types.d.cts +97 -0
  1126. package/dist/components/features/global-search/global-search.types.d.ts +97 -0
  1127. package/dist/components/features/global-search/index.d.cts +11 -0
  1128. package/dist/components/features/global-search/index.d.ts +11 -0
  1129. package/dist/components/features/global-search/use-global-search.d.cts +28 -0
  1130. package/dist/components/features/global-search/use-global-search.d.ts +28 -0
  1131. package/dist/components/features/index.d.cts +30 -0
  1132. package/dist/components/features/index.d.ts +30 -0
  1133. package/dist/components/features/kanban/index.d.cts +5 -0
  1134. package/dist/components/features/kanban/index.d.ts +5 -0
  1135. package/dist/components/features/kanban/kanban-context.d.cts +22 -0
  1136. package/dist/components/features/kanban/kanban-context.d.ts +22 -0
  1137. package/dist/components/features/kanban/kanban.d.cts +12 -0
  1138. package/dist/components/features/kanban/kanban.d.ts +12 -0
  1139. package/dist/components/features/kanban/kanban.strings.d.cts +17 -0
  1140. package/dist/components/features/kanban/kanban.strings.d.ts +17 -0
  1141. package/dist/components/features/kanban/kanban.types.d.cts +105 -0
  1142. package/dist/components/features/kanban/kanban.types.d.ts +105 -0
  1143. package/dist/components/features/kanban/use-kanban.d.cts +21 -0
  1144. package/dist/components/features/kanban/use-kanban.d.ts +21 -0
  1145. package/dist/components/features/map/index.d.cts +5 -0
  1146. package/dist/components/features/map/index.d.ts +5 -0
  1147. package/dist/components/features/map/map-draw-globals.d.cts +65 -0
  1148. package/dist/components/features/map/map-draw-globals.d.ts +65 -0
  1149. package/dist/components/features/map/map-runtime.d.cts +42 -0
  1150. package/dist/components/features/map/map-runtime.d.ts +42 -0
  1151. package/dist/components/features/map/map.d.cts +144 -0
  1152. package/dist/components/features/map/map.d.ts +144 -0
  1153. package/dist/components/features/map/map.strings.d.cts +42 -0
  1154. package/dist/components/features/map/map.strings.d.ts +42 -0
  1155. package/dist/components/features/map/place-autocomplete.d.cts +69 -0
  1156. package/dist/components/features/map/place-autocomplete.d.ts +69 -0
  1157. package/dist/components/features/map/place-search.d.cts +15 -0
  1158. package/dist/components/features/map/place-search.d.ts +15 -0
  1159. package/dist/components/features/map/resolve-tile-layer.d.cts +29 -0
  1160. package/dist/components/features/map/resolve-tile-layer.d.ts +29 -0
  1161. package/dist/components/features/media-library/index.d.cts +6 -0
  1162. package/dist/components/features/media-library/index.d.ts +6 -0
  1163. package/dist/components/features/media-library/media-library-parts.d.cts +141 -0
  1164. package/dist/components/features/media-library/media-library-parts.d.ts +141 -0
  1165. package/dist/components/features/media-library/media-library.d.cts +4 -0
  1166. package/dist/components/features/media-library/media-library.d.ts +4 -0
  1167. package/dist/components/features/media-library/media-library.strings.d.cts +102 -0
  1168. package/dist/components/features/media-library/media-library.strings.d.ts +102 -0
  1169. package/dist/components/features/media-library/media-library.types.d.cts +295 -0
  1170. package/dist/components/features/media-library/media-library.types.d.ts +295 -0
  1171. package/dist/components/features/media-library/media-resource-gallery.d.cts +2 -0
  1172. package/dist/components/features/media-library/media-resource-gallery.d.ts +2 -0
  1173. package/dist/components/features/media-library/use-media-library.d.cts +5 -0
  1174. package/dist/components/features/media-library/use-media-library.d.ts +5 -0
  1175. package/dist/components/features/mentions/index.d.cts +10 -0
  1176. package/dist/components/features/mentions/index.d.ts +10 -0
  1177. package/dist/components/features/mentions/mention-chip.d.cts +18 -0
  1178. package/dist/components/features/mentions/mention-chip.d.ts +18 -0
  1179. package/dist/components/features/mentions/mention-content.d.cts +19 -0
  1180. package/dist/components/features/mentions/mention-content.d.ts +19 -0
  1181. package/dist/components/features/mentions/mention-html.d.cts +43 -0
  1182. package/dist/components/features/mentions/mention-html.d.ts +43 -0
  1183. package/dist/components/features/mentions/mention-inline-suggestions.d.cts +22 -0
  1184. package/dist/components/features/mentions/mention-inline-suggestions.d.ts +22 -0
  1185. package/dist/components/features/mentions/mention-picker.d.cts +18 -0
  1186. package/dist/components/features/mentions/mention-picker.d.ts +18 -0
  1187. package/dist/components/features/mentions/mention-suggestion-list.d.cts +22 -0
  1188. package/dist/components/features/mentions/mention-suggestion-list.d.ts +22 -0
  1189. package/dist/components/features/mentions/mentions.strings.d.cts +28 -0
  1190. package/dist/components/features/mentions/mentions.strings.d.ts +28 -0
  1191. package/dist/components/features/mentions/mentions.types.d.cts +82 -0
  1192. package/dist/components/features/mentions/mentions.types.d.ts +82 -0
  1193. package/dist/components/features/mentions/use-mentions-search.d.cts +52 -0
  1194. package/dist/components/features/mentions/use-mentions-search.d.ts +52 -0
  1195. package/dist/components/features/mentions/use-mentions.d.cts +28 -0
  1196. package/dist/components/features/mentions/use-mentions.d.ts +28 -0
  1197. package/dist/components/features/overlays/action-dialog.d.cts +2 -0
  1198. package/dist/components/features/overlays/action-dialog.d.ts +2 -0
  1199. package/dist/components/features/overlays/action-sheet.d.cts +2 -0
  1200. package/dist/components/features/overlays/action-sheet.d.ts +2 -0
  1201. package/dist/components/features/overlays/confirm-dialog.d.cts +2 -0
  1202. package/dist/components/features/overlays/confirm-dialog.d.ts +2 -0
  1203. package/dist/components/features/overlays/index.d.cts +7 -0
  1204. package/dist/components/features/overlays/index.d.ts +7 -0
  1205. package/dist/components/features/overlays/overlay-parts.d.cts +40 -0
  1206. package/dist/components/features/overlays/overlay-parts.d.ts +40 -0
  1207. package/dist/components/features/overlays/overlays.strings.d.cts +14 -0
  1208. package/dist/components/features/overlays/overlays.strings.d.ts +14 -0
  1209. package/dist/components/features/overlays/overlays.types.d.cts +123 -0
  1210. package/dist/components/features/overlays/overlays.types.d.ts +123 -0
  1211. package/dist/components/features/overlays/use-overlay-actions.d.cts +21 -0
  1212. package/dist/components/features/overlays/use-overlay-actions.d.ts +21 -0
  1213. package/dist/components/features/overlays/use-overlay-visibility.d.cts +48 -0
  1214. package/dist/components/features/overlays/use-overlay-visibility.d.ts +48 -0
  1215. package/dist/components/features/products/index.d.cts +10 -0
  1216. package/dist/components/features/products/index.d.ts +10 -0
  1217. package/dist/components/features/products/product-cards.d.cts +10 -0
  1218. package/dist/components/features/products/product-cards.d.ts +10 -0
  1219. package/dist/components/features/products/product-options-matrix.d.cts +2 -0
  1220. package/dist/components/features/products/product-options-matrix.d.ts +2 -0
  1221. package/dist/components/features/products/product-parts.d.cts +85 -0
  1222. package/dist/components/features/products/product-parts.d.ts +85 -0
  1223. package/dist/components/features/products/product-percent.d.cts +2 -0
  1224. package/dist/components/features/products/product-percent.d.ts +2 -0
  1225. package/dist/components/features/products/product-tone.d.cts +4 -0
  1226. package/dist/components/features/products/product-tone.d.ts +4 -0
  1227. package/dist/components/features/products/product-variant-details.d.cts +2 -0
  1228. package/dist/components/features/products/product-variant-details.d.ts +2 -0
  1229. package/dist/components/features/products/product-variant-editor.d.cts +2 -0
  1230. package/dist/components/features/products/product-variant-editor.d.ts +2 -0
  1231. package/dist/components/features/products/product-variants.d.cts +20 -0
  1232. package/dist/components/features/products/product-variants.d.ts +20 -0
  1233. package/dist/components/features/products/products.strings.d.cts +247 -0
  1234. package/dist/components/features/products/products.strings.d.ts +247 -0
  1235. package/dist/components/features/products/products.types.d.cts +467 -0
  1236. package/dist/components/features/products/products.types.d.ts +467 -0
  1237. package/dist/components/features/resource/index.d.cts +3 -0
  1238. package/dist/components/features/resource/index.d.ts +3 -0
  1239. package/dist/components/features/resource/resource.d.cts +8 -0
  1240. package/dist/components/features/resource/resource.d.ts +8 -0
  1241. package/dist/components/features/resource/resource.strings.d.cts +18 -0
  1242. package/dist/components/features/resource/resource.strings.d.ts +18 -0
  1243. package/dist/components/features/resource/resource.types.d.cts +149 -0
  1244. package/dist/components/features/resource/resource.types.d.ts +149 -0
  1245. package/dist/components/features/resource-assignment/index.d.cts +4 -0
  1246. package/dist/components/features/resource-assignment/index.d.ts +4 -0
  1247. package/dist/components/features/resource-assignment/resource-assignment.d.cts +17 -0
  1248. package/dist/components/features/resource-assignment/resource-assignment.d.ts +17 -0
  1249. package/dist/components/features/resource-assignment/resource-assignment.strings.d.cts +9 -0
  1250. package/dist/components/features/resource-assignment/resource-assignment.strings.d.ts +9 -0
  1251. package/dist/components/features/resource-assignment/resource-assignment.types.d.cts +116 -0
  1252. package/dist/components/features/resource-assignment/resource-assignment.types.d.ts +116 -0
  1253. package/dist/components/features/resource-assignment/use-shared-resource-card.d.cts +18 -0
  1254. package/dist/components/features/resource-assignment/use-shared-resource-card.d.ts +18 -0
  1255. package/dist/components/features/rich-text-editor/editor-dom.d.cts +50 -0
  1256. package/dist/components/features/rich-text-editor/editor-dom.d.ts +50 -0
  1257. package/dist/components/features/rich-text-editor/exec-command-engine.d.cts +2 -0
  1258. package/dist/components/features/rich-text-editor/exec-command-engine.d.ts +2 -0
  1259. package/dist/components/features/rich-text-editor/index.d.cts +7 -0
  1260. package/dist/components/features/rich-text-editor/index.d.ts +7 -0
  1261. package/dist/components/features/rich-text-editor/rich-text-editor-toolbar.d.cts +30 -0
  1262. package/dist/components/features/rich-text-editor/rich-text-editor-toolbar.d.ts +30 -0
  1263. package/dist/components/features/rich-text-editor/rich-text-editor.d.cts +5 -0
  1264. package/dist/components/features/rich-text-editor/rich-text-editor.d.ts +5 -0
  1265. package/dist/components/features/rich-text-editor/rich-text-editor.strings.d.cts +27 -0
  1266. package/dist/components/features/rich-text-editor/rich-text-editor.strings.d.ts +27 -0
  1267. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.cts +96 -0
  1268. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +96 -0
  1269. package/dist/components/features/rich-text-editor/rich-text-engine.contract.d.cts +7 -0
  1270. package/dist/components/features/rich-text-editor/rich-text-engine.contract.d.ts +7 -0
  1271. package/dist/components/features/rich-text-editor/rich-text-engine.types.d.cts +43 -0
  1272. package/dist/components/features/rich-text-editor/rich-text-engine.types.d.ts +43 -0
  1273. package/dist/components/features/rich-text-editor/tiptap/index.d.cts +1 -0
  1274. package/dist/components/features/rich-text-editor/tiptap/index.d.ts +1 -0
  1275. package/dist/components/features/rich-text-editor/tiptap/tiptap-engine.d.cts +12 -0
  1276. package/dist/components/features/rich-text-editor/tiptap/tiptap-engine.d.ts +12 -0
  1277. package/dist/components/features/schema-form/index.d.cts +7 -0
  1278. package/dist/components/features/schema-form/index.d.ts +7 -0
  1279. package/dist/components/features/schema-form/schema-form-actions.d.cts +13 -0
  1280. package/dist/components/features/schema-form/schema-form-actions.d.ts +13 -0
  1281. package/dist/components/features/schema-form/schema-form-field.d.cts +7 -0
  1282. package/dist/components/features/schema-form/schema-form-field.d.ts +7 -0
  1283. package/dist/components/features/schema-form/schema-form.d.cts +2 -0
  1284. package/dist/components/features/schema-form/schema-form.d.ts +2 -0
  1285. package/dist/components/features/schema-form/schema-form.strings.d.cts +13 -0
  1286. package/dist/components/features/schema-form/schema-form.strings.d.ts +13 -0
  1287. package/dist/components/features/schema-form/schema-form.types.d.cts +214 -0
  1288. package/dist/components/features/schema-form/schema-form.types.d.ts +214 -0
  1289. package/dist/components/features/schema-form/schema-form.utils.d.cts +36 -0
  1290. package/dist/components/features/schema-form/schema-form.utils.d.ts +36 -0
  1291. package/dist/components/features/schema-form/use-schema-form.d.cts +19 -0
  1292. package/dist/components/features/schema-form/use-schema-form.d.ts +19 -0
  1293. package/dist/components/features/suggestions/index.d.cts +4 -0
  1294. package/dist/components/features/suggestions/index.d.ts +4 -0
  1295. package/dist/components/features/suggestions/suggestions.d.cts +2 -0
  1296. package/dist/components/features/suggestions/suggestions.d.ts +2 -0
  1297. package/dist/components/features/suggestions/suggestions.strings.d.cts +10 -0
  1298. package/dist/components/features/suggestions/suggestions.strings.d.ts +10 -0
  1299. package/dist/components/features/suggestions/suggestions.types.d.cts +67 -0
  1300. package/dist/components/features/suggestions/suggestions.types.d.ts +67 -0
  1301. package/dist/components/features/suggestions/use-suggestions.d.cts +2 -0
  1302. package/dist/components/features/suggestions/use-suggestions.d.ts +2 -0
  1303. package/dist/components/features/sync/index.d.cts +3 -0
  1304. package/dist/components/features/sync/index.d.ts +3 -0
  1305. package/dist/components/features/sync/sync-range-form.d.cts +2 -0
  1306. package/dist/components/features/sync/sync-range-form.d.ts +2 -0
  1307. package/dist/components/features/sync/sync.strings.d.cts +9 -0
  1308. package/dist/components/features/sync/sync.strings.d.ts +9 -0
  1309. package/dist/components/features/sync/sync.types.d.cts +40 -0
  1310. package/dist/components/features/sync/sync.types.d.ts +40 -0
  1311. package/dist/components/features/table/cell-renderers.d.cts +64 -0
  1312. package/dist/components/features/table/cell-renderers.d.ts +64 -0
  1313. package/dist/components/features/table/cell-value.d.cts +54 -0
  1314. package/dist/components/features/table/cell-value.d.ts +54 -0
  1315. package/dist/components/features/table/column-visibility-toggle.d.cts +3 -0
  1316. package/dist/components/features/table/column-visibility-toggle.d.ts +3 -0
  1317. package/dist/components/features/table/data-table-actions.d.cts +3 -0
  1318. package/dist/components/features/table/data-table-actions.d.ts +3 -0
  1319. package/dist/components/features/table/data-table-body.d.cts +3 -0
  1320. package/dist/components/features/table/data-table-body.d.ts +3 -0
  1321. package/dist/components/features/table/data-table-header.d.cts +3 -0
  1322. package/dist/components/features/table/data-table-header.d.ts +3 -0
  1323. package/dist/components/features/table/data-table-size.d.cts +3 -0
  1324. package/dist/components/features/table/data-table-size.d.ts +3 -0
  1325. package/dist/components/features/table/data-table-toolbar.d.cts +3 -0
  1326. package/dist/components/features/table/data-table-toolbar.d.ts +3 -0
  1327. package/dist/components/features/table/data-table.d.cts +5 -0
  1328. package/dist/components/features/table/data-table.d.ts +5 -0
  1329. package/dist/components/features/table/fullscreen-toggle.d.cts +14 -0
  1330. package/dist/components/features/table/fullscreen-toggle.d.ts +14 -0
  1331. package/dist/components/features/table/index.d.cts +16 -0
  1332. package/dist/components/features/table/index.d.ts +16 -0
  1333. package/dist/components/features/table/resource-cell.d.cts +35 -0
  1334. package/dist/components/features/table/resource-cell.d.ts +35 -0
  1335. package/dist/components/features/table/table-helpers.d.cts +26 -0
  1336. package/dist/components/features/table/table-helpers.d.ts +26 -0
  1337. package/dist/components/features/table/table.strings.d.cts +63 -0
  1338. package/dist/components/features/table/table.strings.d.ts +63 -0
  1339. package/dist/components/features/table/table.types.d.cts +218 -0
  1340. package/dist/components/features/table/table.types.d.ts +218 -0
  1341. package/dist/components/features/table/use-fullscreen-modality.d.cts +2 -0
  1342. package/dist/components/features/table/use-fullscreen-modality.d.ts +2 -0
  1343. package/dist/components/features/table/use-table-scroll.d.cts +20 -0
  1344. package/dist/components/features/table/use-table-scroll.d.ts +20 -0
  1345. package/dist/components/features/theme-tweaker/index.d.cts +9 -0
  1346. package/dist/components/features/theme-tweaker/index.d.ts +9 -0
  1347. package/dist/components/features/theme-tweaker/theme-scope.d.cts +2 -0
  1348. package/dist/components/features/theme-tweaker/theme-scope.d.ts +2 -0
  1349. package/dist/components/features/theme-tweaker/theme-tweaker.d.cts +2 -0
  1350. package/dist/components/features/theme-tweaker/theme-tweaker.d.ts +2 -0
  1351. package/dist/components/features/theme-tweaker/theme-tweaker.fields.d.cts +2 -0
  1352. package/dist/components/features/theme-tweaker/theme-tweaker.fields.d.ts +2 -0
  1353. package/dist/components/features/theme-tweaker/theme-tweaker.strings.d.cts +67 -0
  1354. package/dist/components/features/theme-tweaker/theme-tweaker.strings.d.ts +67 -0
  1355. package/dist/components/features/theme-tweaker/theme-tweaker.types.d.cts +115 -0
  1356. package/dist/components/features/theme-tweaker/theme-tweaker.types.d.ts +115 -0
  1357. package/dist/components/features/theme-tweaker/theme-tweaker.utils.d.cts +34 -0
  1358. package/dist/components/features/theme-tweaker/theme-tweaker.utils.d.ts +34 -0
  1359. package/dist/components/features/theme-tweaker/ui-config-settings.d.cts +9 -0
  1360. package/dist/components/features/theme-tweaker/ui-config-settings.d.ts +9 -0
  1361. package/dist/components/features/theme-tweaker/ui-config-settings.strings.d.cts +33 -0
  1362. package/dist/components/features/theme-tweaker/ui-config-settings.strings.d.ts +33 -0
  1363. package/dist/components/features/theme-tweaker/use-applied-theme.d.cts +11 -0
  1364. package/dist/components/features/theme-tweaker/use-applied-theme.d.ts +11 -0
  1365. package/dist/components/layout/app-shell/app-shell.d.cts +48 -0
  1366. package/dist/components/layout/app-shell/app-shell.d.ts +48 -0
  1367. package/dist/components/layout/app-shell/index.d.cts +15 -0
  1368. package/dist/components/layout/app-shell/index.d.ts +15 -0
  1369. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.cts +53 -0
  1370. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +53 -0
  1371. package/dist/components/layout/auth/auth-card.d.cts +17 -0
  1372. package/dist/components/layout/auth/auth-card.d.ts +17 -0
  1373. package/dist/components/layout/auth/auth-footer-links.d.cts +2 -0
  1374. package/dist/components/layout/auth/auth-footer-links.d.ts +2 -0
  1375. package/dist/components/layout/auth/auth.d.cts +78 -0
  1376. package/dist/components/layout/auth/auth.d.ts +78 -0
  1377. package/dist/components/layout/auth/auth.strings.d.cts +12 -0
  1378. package/dist/components/layout/auth/auth.strings.d.ts +12 -0
  1379. package/dist/components/layout/auth/auth.types.d.cts +36 -0
  1380. package/dist/components/layout/auth/auth.types.d.ts +36 -0
  1381. package/dist/components/layout/auth/index.d.cts +5 -0
  1382. package/dist/components/layout/auth/index.d.ts +5 -0
  1383. package/dist/components/layout/containers/containers.d.cts +84 -0
  1384. package/dist/components/layout/containers/containers.d.ts +84 -0
  1385. package/dist/components/layout/containers/index.d.cts +1 -0
  1386. package/dist/components/layout/containers/index.d.ts +1 -0
  1387. package/dist/components/layout/header/header.d.cts +45 -0
  1388. package/dist/components/layout/header/header.d.ts +45 -0
  1389. package/dist/components/layout/header/header.strings.d.cts +48 -0
  1390. package/dist/components/layout/header/header.strings.d.ts +48 -0
  1391. package/dist/components/layout/header/header.types.d.cts +120 -0
  1392. package/dist/components/layout/header/header.types.d.ts +120 -0
  1393. package/dist/components/layout/header/index.d.cts +8 -0
  1394. package/dist/components/layout/header/index.d.ts +8 -0
  1395. package/dist/components/layout/header/partials/header-breadcrumbs.d.cts +2 -0
  1396. package/dist/components/layout/header/partials/header-breadcrumbs.d.ts +2 -0
  1397. package/dist/components/layout/header/partials/header-notifications.d.cts +2 -0
  1398. package/dist/components/layout/header/partials/header-notifications.d.ts +2 -0
  1399. package/dist/components/layout/header/partials/header-search.d.cts +10 -0
  1400. package/dist/components/layout/header/partials/header-search.d.ts +10 -0
  1401. package/dist/components/layout/header/partials/header-tool.d.cts +4 -0
  1402. package/dist/components/layout/header/partials/header-tool.d.ts +4 -0
  1403. package/dist/components/layout/header/partials/header-user-menu.d.cts +2 -0
  1404. package/dist/components/layout/header/partials/header-user-menu.d.ts +2 -0
  1405. package/dist/components/layout/hooks/use-active-path.d.cts +7 -0
  1406. package/dist/components/layout/hooks/use-active-path.d.ts +7 -0
  1407. package/dist/components/layout/index.d.cts +14 -0
  1408. package/dist/components/layout/index.d.ts +14 -0
  1409. package/dist/components/layout/layout.types.d.cts +64 -0
  1410. package/dist/components/layout/layout.types.d.ts +64 -0
  1411. package/dist/components/layout/navigation/breadcrumb-progress.d.cts +22 -0
  1412. package/dist/components/layout/navigation/breadcrumb-progress.d.ts +22 -0
  1413. package/dist/components/layout/navigation/category-nav.d.cts +21 -0
  1414. package/dist/components/layout/navigation/category-nav.d.ts +21 -0
  1415. package/dist/components/layout/navigation/index.d.cts +5 -0
  1416. package/dist/components/layout/navigation/index.d.ts +5 -0
  1417. package/dist/components/layout/navigation/navigation.strings.d.cts +16 -0
  1418. package/dist/components/layout/navigation/navigation.strings.d.ts +16 -0
  1419. package/dist/components/layout/navigation/section-nav.d.cts +33 -0
  1420. package/dist/components/layout/navigation/section-nav.d.ts +33 -0
  1421. package/dist/components/layout/navigation/side-nav.d.cts +59 -0
  1422. package/dist/components/layout/navigation/side-nav.d.ts +59 -0
  1423. package/dist/components/layout/page/index.d.cts +5 -0
  1424. package/dist/components/layout/page/index.d.ts +5 -0
  1425. package/dist/components/layout/page/page-actions.d.cts +30 -0
  1426. package/dist/components/layout/page/page-actions.d.ts +30 -0
  1427. package/dist/components/layout/page/page-actions.strings.d.cts +4 -0
  1428. package/dist/components/layout/page/page-actions.strings.d.ts +4 -0
  1429. package/dist/components/layout/page/page-header.d.cts +37 -0
  1430. package/dist/components/layout/page/page-header.d.ts +37 -0
  1431. package/dist/components/layout/page/page-header.strings.d.cts +7 -0
  1432. package/dist/components/layout/page/page-header.strings.d.ts +7 -0
  1433. package/dist/components/layout/page/page.d.cts +28 -0
  1434. package/dist/components/layout/page/page.d.ts +28 -0
  1435. package/dist/components/layout/settings/index.d.cts +2 -0
  1436. package/dist/components/layout/settings/index.d.ts +2 -0
  1437. package/dist/components/layout/settings/settings.d.cts +35 -0
  1438. package/dist/components/layout/settings/settings.d.ts +35 -0
  1439. package/dist/components/layout/sidebar/app-sidebar.d.cts +70 -0
  1440. package/dist/components/layout/sidebar/app-sidebar.d.ts +70 -0
  1441. package/dist/components/layout/sidebar/index.d.cts +7 -0
  1442. package/dist/components/layout/sidebar/index.d.ts +7 -0
  1443. package/dist/components/layout/sidebar/nav.types.d.cts +22 -0
  1444. package/dist/components/layout/sidebar/nav.types.d.ts +22 -0
  1445. package/dist/components/layout/sidebar/partials/sidebar-logo.d.cts +9 -0
  1446. package/dist/components/layout/sidebar/partials/sidebar-logo.d.ts +9 -0
  1447. package/dist/components/layout/sidebar/partials/sidebar-user.d.cts +15 -0
  1448. package/dist/components/layout/sidebar/partials/sidebar-user.d.ts +15 -0
  1449. package/dist/components/layout/sidebar/partials/sidebar-workspace.d.cts +19 -0
  1450. package/dist/components/layout/sidebar/partials/sidebar-workspace.d.ts +19 -0
  1451. package/dist/components/layout/sidebar/path.d.cts +32 -0
  1452. package/dist/components/layout/sidebar/path.d.ts +32 -0
  1453. package/dist/components/layout/sidebar/sidebar.strings.d.cts +15 -0
  1454. package/dist/components/layout/sidebar/sidebar.strings.d.ts +15 -0
  1455. package/dist/components/layout/workspace/index.d.cts +5 -0
  1456. package/dist/components/layout/workspace/index.d.ts +5 -0
  1457. package/dist/components/layout/workspace/workspace-layout.d.cts +31 -0
  1458. package/dist/components/layout/workspace/workspace-layout.d.ts +31 -0
  1459. package/dist/components/layout/workspace/workspace-locale-strip.d.cts +21 -0
  1460. package/dist/components/layout/workspace/workspace-locale-strip.d.ts +21 -0
  1461. package/dist/components/layout/workspace/workspace-nav.d.cts +40 -0
  1462. package/dist/components/layout/workspace/workspace-nav.d.ts +40 -0
  1463. package/dist/components/layout/workspace/workspace.d.cts +35 -0
  1464. package/dist/components/layout/workspace/workspace.d.ts +35 -0
  1465. package/dist/components/layout/workspace/workspace.strings.d.cts +21 -0
  1466. package/dist/components/layout/workspace/workspace.strings.d.ts +21 -0
  1467. package/dist/components/patterns/analytics/activity-heatmap.d.cts +14 -0
  1468. package/dist/components/patterns/analytics/activity-heatmap.d.ts +14 -0
  1469. package/dist/components/patterns/analytics/analytics.strings.d.cts +63 -0
  1470. package/dist/components/patterns/analytics/analytics.strings.d.ts +63 -0
  1471. package/dist/components/patterns/analytics/analytics.types.d.cts +81 -0
  1472. package/dist/components/patterns/analytics/analytics.types.d.ts +81 -0
  1473. package/dist/components/patterns/analytics/chart-card.d.cts +11 -0
  1474. package/dist/components/patterns/analytics/chart-card.d.ts +11 -0
  1475. package/dist/components/patterns/analytics/format-metric-value.d.cts +9 -0
  1476. package/dist/components/patterns/analytics/format-metric-value.d.ts +9 -0
  1477. package/dist/components/patterns/analytics/index.d.cts +23 -0
  1478. package/dist/components/patterns/analytics/index.d.ts +23 -0
  1479. package/dist/components/patterns/analytics/metric-bar.d.cts +13 -0
  1480. package/dist/components/patterns/analytics/metric-bar.d.ts +13 -0
  1481. package/dist/components/patterns/analytics/metric-comparison.d.cts +12 -0
  1482. package/dist/components/patterns/analytics/metric-comparison.d.ts +12 -0
  1483. package/dist/components/patterns/analytics/metric-gradient.d.cts +14 -0
  1484. package/dist/components/patterns/analytics/metric-gradient.d.ts +14 -0
  1485. package/dist/components/patterns/analytics/metric-grid.d.cts +16 -0
  1486. package/dist/components/patterns/analytics/metric-grid.d.ts +16 -0
  1487. package/dist/components/patterns/analytics/metric-micro-grid.d.cts +15 -0
  1488. package/dist/components/patterns/analytics/metric-micro-grid.d.ts +15 -0
  1489. package/dist/components/patterns/analytics/metric-skeleton.d.cts +6 -0
  1490. package/dist/components/patterns/analytics/metric-skeleton.d.ts +6 -0
  1491. package/dist/components/patterns/analytics/metric-trend-chip.d.cts +9 -0
  1492. package/dist/components/patterns/analytics/metric-trend-chip.d.ts +9 -0
  1493. package/dist/components/patterns/analytics/metric.d.cts +19 -0
  1494. package/dist/components/patterns/analytics/metric.d.ts +19 -0
  1495. package/dist/components/patterns/analytics/time-ruler.d.cts +10 -0
  1496. package/dist/components/patterns/analytics/time-ruler.d.ts +10 -0
  1497. package/dist/components/patterns/index.d.cts +3 -0
  1498. package/dist/components/patterns/index.d.ts +3 -0
  1499. package/dist/components/patterns/onboarding/checklist.d.cts +28 -0
  1500. package/dist/components/patterns/onboarding/checklist.d.ts +28 -0
  1501. package/dist/components/patterns/onboarding/index.d.cts +5 -0
  1502. package/dist/components/patterns/onboarding/index.d.ts +5 -0
  1503. package/dist/components/patterns/onboarding/onboarding.strings.d.cts +15 -0
  1504. package/dist/components/patterns/onboarding/onboarding.strings.d.ts +15 -0
  1505. package/dist/components/patterns/timelines/changelog-timeline.d.cts +19 -0
  1506. package/dist/components/patterns/timelines/changelog-timeline.d.ts +19 -0
  1507. package/dist/components/patterns/timelines/index.d.cts +10 -0
  1508. package/dist/components/patterns/timelines/index.d.ts +10 -0
  1509. package/dist/components/patterns/timelines/milestones-timeline.d.cts +18 -0
  1510. package/dist/components/patterns/timelines/milestones-timeline.d.ts +18 -0
  1511. package/dist/components/patterns/timelines/steps.d.cts +29 -0
  1512. package/dist/components/patterns/timelines/steps.d.ts +29 -0
  1513. package/dist/components/patterns/timelines/timelines.strings.d.cts +32 -0
  1514. package/dist/components/patterns/timelines/timelines.strings.d.ts +32 -0
  1515. package/dist/components/primitives/address.d.cts +27 -0
  1516. package/dist/components/primitives/address.d.ts +27 -0
  1517. package/dist/components/primitives/address.format.d.cts +72 -0
  1518. package/dist/components/primitives/address.format.d.ts +72 -0
  1519. package/dist/components/primitives/coordinates.d.cts +27 -0
  1520. package/dist/components/primitives/coordinates.d.ts +27 -0
  1521. package/dist/components/primitives/date.d.cts +52 -0
  1522. package/dist/components/primitives/date.d.ts +52 -0
  1523. package/dist/components/primitives/date.format.d.cts +15 -0
  1524. package/dist/components/primitives/date.format.d.ts +15 -0
  1525. package/dist/components/primitives/dimensions.d.cts +19 -0
  1526. package/dist/components/primitives/dimensions.d.ts +19 -0
  1527. package/dist/components/primitives/dimensions.format.d.cts +9 -0
  1528. package/dist/components/primitives/dimensions.format.d.ts +9 -0
  1529. package/dist/components/primitives/duration.d.cts +21 -0
  1530. package/dist/components/primitives/duration.d.ts +21 -0
  1531. package/dist/components/primitives/file-size.d.cts +17 -0
  1532. package/dist/components/primitives/file-size.d.ts +17 -0
  1533. package/dist/components/primitives/file-size.format.d.cts +10 -0
  1534. package/dist/components/primitives/file-size.format.d.ts +10 -0
  1535. package/dist/components/primitives/index.d.cts +32 -0
  1536. package/dist/components/primitives/index.d.ts +32 -0
  1537. package/dist/components/primitives/initials-format.d.cts +21 -0
  1538. package/dist/components/primitives/initials-format.d.ts +21 -0
  1539. package/dist/components/primitives/initials.d.cts +15 -0
  1540. package/dist/components/primitives/initials.d.ts +15 -0
  1541. package/dist/components/primitives/inline-list.d.cts +40 -0
  1542. package/dist/components/primitives/inline-list.d.ts +40 -0
  1543. package/dist/components/primitives/link.d.cts +36 -0
  1544. package/dist/components/primitives/link.d.ts +36 -0
  1545. package/dist/components/primitives/money.d.cts +44 -0
  1546. package/dist/components/primitives/money.d.ts +44 -0
  1547. package/dist/components/primitives/name.d.cts +8 -0
  1548. package/dist/components/primitives/name.d.ts +8 -0
  1549. package/dist/components/primitives/name.format.d.cts +5 -0
  1550. package/dist/components/primitives/name.format.d.ts +5 -0
  1551. package/dist/components/primitives/number.d.cts +21 -0
  1552. package/dist/components/primitives/number.d.ts +21 -0
  1553. package/dist/components/primitives/primitives.strings.d.cts +43 -0
  1554. package/dist/components/primitives/primitives.strings.d.ts +43 -0
  1555. package/dist/components/primitives/quantity.d.cts +57 -0
  1556. package/dist/components/primitives/quantity.d.ts +57 -0
  1557. package/dist/components/primitives/range.d.cts +19 -0
  1558. package/dist/components/primitives/range.d.ts +19 -0
  1559. package/dist/components/primitives/ratio.d.cts +42 -0
  1560. package/dist/components/primitives/ratio.d.ts +42 -0
  1561. package/dist/components/primitives/value-children.d.cts +2 -0
  1562. package/dist/components/primitives/value-children.d.ts +2 -0
  1563. package/dist/components/primitives/value.d.cts +38 -0
  1564. package/dist/components/primitives/value.d.ts +38 -0
  1565. package/dist/containers-BRpJt5S4.cjs +1 -0
  1566. package/dist/containers-wQ0_fDyL.js +92 -0
  1567. package/dist/copyable-BCzl5xJE.js +93 -0
  1568. package/dist/copyable-D6xnngEz.cjs +1 -0
  1569. package/dist/core.css +2 -0
  1570. package/dist/css/access.css +1 -0
  1571. package/dist/css/accordion.css +1 -0
  1572. package/dist/css/action-menu.css +1 -0
  1573. package/dist/css/activities.css +1 -0
  1574. package/dist/css/ai-chat.css +1 -0
  1575. package/dist/css/analytics.css +1 -0
  1576. package/dist/css/app-shell.css +1 -0
  1577. package/dist/css/aspect-ratio.css +1 -0
  1578. package/dist/css/async-preview.css +1 -0
  1579. package/dist/css/auth.css +1 -0
  1580. package/dist/css/avatar.css +1 -0
  1581. package/dist/css/badge.css +1 -0
  1582. package/dist/css/batch-action-bar.css +1 -0
  1583. package/dist/css/buttons.css +1 -0
  1584. package/dist/css/cards.css +1 -0
  1585. package/dist/css/carousel.css +1 -0
  1586. package/dist/css/chart.css +1 -0
  1587. package/dist/css/choice-inputs.css +1 -0
  1588. package/dist/css/combobox.css +1 -0
  1589. package/dist/css/combobox2.css +1 -0
  1590. package/dist/css/command.css +1 -0
  1591. package/dist/css/comments.css +1 -0
  1592. package/dist/css/commerce.css +1 -0
  1593. package/dist/css/containers.css +1 -0
  1594. package/dist/css/copyable.css +1 -0
  1595. package/dist/css/data-view.css +1 -0
  1596. package/dist/css/date-pickers.css +1 -0
  1597. package/dist/css/display.css +1 -0
  1598. package/dist/css/dropdown-menu.css +1 -0
  1599. package/dist/css/event-calendar.css +1 -0
  1600. package/dist/css/feedback.css +1 -0
  1601. package/dist/css/filters.css +1 -0
  1602. package/dist/css/forms-numeric.css +1 -0
  1603. package/dist/css/forms.css +1 -0
  1604. package/dist/css/global-search.css +1 -0
  1605. package/dist/css/header.css +1 -0
  1606. package/dist/css/hover-card.css +1 -0
  1607. package/dist/css/input-group.css +1 -0
  1608. package/dist/css/item.css +1 -0
  1609. package/dist/css/kanban.css +1 -0
  1610. package/dist/css/label.css +1 -0
  1611. package/dist/css/map.css +1 -0
  1612. package/dist/css/media-library.css +1 -0
  1613. package/dist/css/mentions.css +1 -0
  1614. package/dist/css/menubar.css +1 -0
  1615. package/dist/css/navigation-menu.css +1 -0
  1616. package/dist/css/navigation.css +1 -0
  1617. package/dist/css/navigation2.css +1 -0
  1618. package/dist/css/onboarding.css +1 -0
  1619. package/dist/css/otp-input.css +1 -0
  1620. package/dist/css/overlay.css +1 -0
  1621. package/dist/css/overlays.css +1 -0
  1622. package/dist/css/page.css +1 -0
  1623. package/dist/css/popover-menu.css +1 -0
  1624. package/dist/css/popover.css +1 -0
  1625. package/dist/css/primitives.css +1 -0
  1626. package/dist/css/products.css +1 -0
  1627. package/dist/css/qr-code.css +1 -0
  1628. package/dist/css/repeaters.css +1 -0
  1629. package/dist/css/resizable.css +1 -0
  1630. package/dist/css/resource-assignment.css +1 -0
  1631. package/dist/css/resource.css +1 -0
  1632. package/dist/css/rich-text-editor.css +1 -0
  1633. package/dist/css/schema-form.css +1 -0
  1634. package/dist/css/sidebar.css +1 -0
  1635. package/dist/css/sidebar2.css +1 -0
  1636. package/dist/css/skeleton.css +1 -0
  1637. package/dist/css/spinner.css +1 -0
  1638. package/dist/css/structure.css +1 -0
  1639. package/dist/css/styles.css +1 -0
  1640. package/dist/css/suggestions.css +1 -0
  1641. package/dist/css/sync.css +1 -0
  1642. package/dist/css/table.css +1 -0
  1643. package/dist/css/table2.css +1 -0
  1644. package/dist/css/text-inputs.css +1 -0
  1645. package/dist/css/theme-tweaker.css +1 -0
  1646. package/dist/css/timeline.css +1 -0
  1647. package/dist/css/timelines.css +1 -0
  1648. package/dist/css/toaster.css +1 -0
  1649. package/dist/css/toggle.css +1 -0
  1650. package/dist/css/toolbar.css +1 -0
  1651. package/dist/css/tooltip.css +1 -0
  1652. package/dist/css/typography.css +1 -0
  1653. package/dist/css/upload.css +1 -0
  1654. package/dist/css/value-inputs.css +1 -0
  1655. package/dist/css/workspace.css +1 -0
  1656. package/dist/cvm-CHrYqf6y.cjs +1 -0
  1657. package/dist/cvm-DtsCA8iZ.js +27 -0
  1658. package/dist/cx--CBrhWH0.js +2 -0
  1659. package/dist/date-pickers-BpGrG0Bf.js +595 -0
  1660. package/dist/date-pickers-DgAsQIRq.cjs +1 -0
  1661. package/dist/dialog-BNVm-pF4.cjs +1 -0
  1662. package/dist/dialog-CwOfwsHr.js +27 -0
  1663. package/dist/display-BPuD0OAo.cjs +1 -0
  1664. package/dist/display-DTWjv_bB.js +634 -0
  1665. package/dist/dropdown-menu-Dg8jpvqM.js +217 -0
  1666. package/dist/dropdown-menu-yJ7XUydU.cjs +1 -0
  1667. package/dist/favicon.svg +1 -0
  1668. package/dist/features/actions.cjs +1 -0
  1669. package/dist/features/actions.css +6 -0
  1670. package/dist/features/actions.js +816 -0
  1671. package/dist/features/activities.cjs +1 -0
  1672. package/dist/features/activities.css +24 -0
  1673. package/dist/features/activities.js +1224 -0
  1674. package/dist/features/ai-chat.cjs +3 -0
  1675. package/dist/features/ai-chat.css +14 -0
  1676. package/dist/features/ai-chat.js +1670 -0
  1677. package/dist/features/async-preview.cjs +1 -0
  1678. package/dist/features/async-preview.css +9 -0
  1679. package/dist/features/async-preview.js +383 -0
  1680. package/dist/features/combobox.cjs +1 -0
  1681. package/dist/features/combobox.css +12 -0
  1682. package/dist/features/combobox.js +4 -0
  1683. package/dist/features/comments.cjs +1 -0
  1684. package/dist/features/comments.css +21 -0
  1685. package/dist/features/comments.js +4 -0
  1686. package/dist/features/data-view.cjs +1 -0
  1687. package/dist/features/data-view.css +29 -0
  1688. package/dist/features/data-view.js +349 -0
  1689. package/dist/features/event-calendar.cjs +1 -0
  1690. package/dist/features/event-calendar.css +17 -0
  1691. package/dist/features/event-calendar.js +725 -0
  1692. package/dist/features/filters.cjs +1 -0
  1693. package/dist/features/filters.css +21 -0
  1694. package/dist/features/filters.js +4 -0
  1695. package/dist/features/global-search.cjs +1 -0
  1696. package/dist/features/global-search.css +19 -0
  1697. package/dist/features/global-search.js +556 -0
  1698. package/dist/features/kanban.cjs +1 -0
  1699. package/dist/features/kanban.css +7 -0
  1700. package/dist/features/kanban.js +316 -0
  1701. package/dist/features/map.cjs +1 -0
  1702. package/dist/features/map.css +15 -0
  1703. package/dist/features/map.js +1042 -0
  1704. package/dist/features/media-library.cjs +1 -0
  1705. package/dist/features/media-library.css +27 -0
  1706. package/dist/features/media-library.js +1583 -0
  1707. package/dist/features/mentions.cjs +1 -0
  1708. package/dist/features/mentions.css +11 -0
  1709. package/dist/features/mentions.js +4 -0
  1710. package/dist/features/overlays.cjs +1 -0
  1711. package/dist/features/overlays.css +11 -0
  1712. package/dist/features/overlays.js +4 -0
  1713. package/dist/features/products.cjs +1 -0
  1714. package/dist/features/products.css +29 -0
  1715. package/dist/features/products.js +2060 -0
  1716. package/dist/features/resource-assignment.cjs +1 -0
  1717. package/dist/features/resource-assignment.css +14 -0
  1718. package/dist/features/resource-assignment.js +306 -0
  1719. package/dist/features/resource.cjs +1 -0
  1720. package/dist/features/resource.css +15 -0
  1721. package/dist/features/resource.js +250 -0
  1722. package/dist/features/rich-text-editor/tiptap.cjs +1 -0
  1723. package/dist/features/rich-text-editor/tiptap.js +69 -0
  1724. package/dist/features/rich-text-editor.cjs +1 -0
  1725. package/dist/features/rich-text-editor.css +8 -0
  1726. package/dist/features/rich-text-editor.js +4 -0
  1727. package/dist/features/schema-form.cjs +1 -0
  1728. package/dist/features/schema-form.css +22 -0
  1729. package/dist/features/schema-form.js +702 -0
  1730. package/dist/features/suggestions.cjs +1 -0
  1731. package/dist/features/suggestions.css +13 -0
  1732. package/dist/features/suggestions.js +155 -0
  1733. package/dist/features/sync.cjs +1 -0
  1734. package/dist/features/sync.css +11 -0
  1735. package/dist/features/sync.js +140 -0
  1736. package/dist/features/table.cjs +1 -0
  1737. package/dist/features/table.css +20 -0
  1738. package/dist/features/table.js +4 -0
  1739. package/dist/features/theme-tweaker.cjs +5 -0
  1740. package/dist/features/theme-tweaker.css +27 -0
  1741. package/dist/features/theme-tweaker.js +1699 -0
  1742. package/dist/feedback-DHdvxang.js +475 -0
  1743. package/dist/feedback-lBKIc2cQ.cjs +1 -0
  1744. package/dist/filters-CN9jMiPW.cjs +1 -0
  1745. package/dist/filters-D8DV5OkK.js +1274 -0
  1746. package/dist/forms-BjJns3n7.js +210 -0
  1747. package/dist/forms-numeric-B-LSrgFy.cjs +1 -0
  1748. package/dist/forms-numeric-BZUekO3C.js +504 -0
  1749. package/dist/forms-rhf.cjs +1 -0
  1750. package/dist/forms-rhf.js +20 -0
  1751. package/dist/forms-v1IKhZJj.cjs +1 -0
  1752. package/dist/forms.cjs +1 -0
  1753. package/dist/forms.js +39 -0
  1754. package/dist/hooks/index.d.cts +8 -0
  1755. package/dist/hooks/index.d.ts +8 -0
  1756. package/dist/hooks/use-command-shortcut.d.cts +16 -0
  1757. package/dist/hooks/use-command-shortcut.d.ts +16 -0
  1758. package/dist/hooks/use-controllable-state.d.cts +24 -0
  1759. package/dist/hooks/use-controllable-state.d.ts +24 -0
  1760. package/dist/hooks/use-debounce.d.cts +10 -0
  1761. package/dist/hooks/use-debounce.d.ts +10 -0
  1762. package/dist/hooks/use-debounced-callback.d.cts +24 -0
  1763. package/dist/hooks/use-debounced-callback.d.ts +24 -0
  1764. package/dist/hooks/use-files.d.cts +54 -0
  1765. package/dist/hooks/use-files.d.ts +54 -0
  1766. package/dist/hooks/use-form-errors.d.cts +25 -0
  1767. package/dist/hooks/use-form-errors.d.ts +25 -0
  1768. package/dist/hooks/use-hydrated.d.cts +1 -0
  1769. package/dist/hooks/use-hydrated.d.ts +1 -0
  1770. package/dist/hooks/use-latest.d.cts +17 -0
  1771. package/dist/hooks/use-latest.d.ts +17 -0
  1772. package/dist/hooks/use-mobile.d.cts +1 -0
  1773. package/dist/hooks/use-mobile.d.ts +1 -0
  1774. package/dist/hooks/use-native-dialog.d.cts +52 -0
  1775. package/dist/hooks/use-native-dialog.d.ts +52 -0
  1776. package/dist/hooks/use-object-urls.d.cts +20 -0
  1777. package/dist/hooks/use-object-urls.d.ts +20 -0
  1778. package/dist/hooks/use-synced-state.d.cts +15 -0
  1779. package/dist/hooks/use-synced-state.d.ts +15 -0
  1780. package/dist/icons.svg +24 -0
  1781. package/dist/index.cjs +1 -0
  1782. package/dist/index.css +3 -0
  1783. package/dist/index.d.cts +2 -0
  1784. package/dist/index.d.ts +2 -0
  1785. package/dist/index.js +5 -0
  1786. package/dist/input-group-BOAOqzrn.cjs +1 -0
  1787. package/dist/input-group-D0KxyK9W.js +104 -0
  1788. package/dist/item-BXtuvlig.cjs +1 -0
  1789. package/dist/item-CVi-_7OU.js +149 -0
  1790. package/dist/label-D4Rzt9vL.js +20 -0
  1791. package/dist/label-i-3ieEsj.cjs +1 -0
  1792. package/dist/layout/app-shell.cjs +1 -0
  1793. package/dist/layout/app-shell.css +13 -0
  1794. package/dist/layout/app-shell.js +150 -0
  1795. package/dist/layout/auth.cjs +1 -0
  1796. package/dist/layout/auth.css +3 -0
  1797. package/dist/layout/auth.js +256 -0
  1798. package/dist/layout/containers.cjs +1 -0
  1799. package/dist/layout/containers.css +2 -0
  1800. package/dist/layout/containers.js +3 -0
  1801. package/dist/layout/header.cjs +1 -0
  1802. package/dist/layout/header.css +20 -0
  1803. package/dist/layout/header.js +435 -0
  1804. package/dist/layout/navigation.cjs +1 -0
  1805. package/dist/layout/navigation.css +10 -0
  1806. package/dist/layout/navigation.js +4 -0
  1807. package/dist/layout/page.cjs +1 -0
  1808. package/dist/layout/page.css +15 -0
  1809. package/dist/layout/page.js +160 -0
  1810. package/dist/layout/settings.cjs +1 -0
  1811. package/dist/layout/settings.css +15 -0
  1812. package/dist/layout/settings.js +36 -0
  1813. package/dist/layout/sidebar.cjs +1 -0
  1814. package/dist/layout/sidebar.css +16 -0
  1815. package/dist/layout/sidebar.js +266 -0
  1816. package/dist/layout/workspace.cjs +1 -0
  1817. package/dist/layout/workspace.css +11 -0
  1818. package/dist/layout/workspace.js +327 -0
  1819. package/dist/layout.types-CMzK1wjV.cjs +1 -0
  1820. package/dist/layout.types-CTDrZCGP.js +17 -0
  1821. package/dist/lib/action-presentation.d.cts +21 -0
  1822. package/dist/lib/action-presentation.d.ts +21 -0
  1823. package/dist/lib/component-vocabulary.d.cts +12 -0
  1824. package/dist/lib/component-vocabulary.d.ts +12 -0
  1825. package/dist/lib/cvm.d.cts +27 -0
  1826. package/dist/lib/cvm.d.ts +27 -0
  1827. package/dist/lib/cx.d.cts +2 -0
  1828. package/dist/lib/cx.d.ts +2 -0
  1829. package/dist/lib/format.d.cts +53 -0
  1830. package/dist/lib/format.d.ts +53 -0
  1831. package/dist/lib/forms/field-binding.d.cts +47 -0
  1832. package/dist/lib/forms/field-binding.d.ts +47 -0
  1833. package/dist/lib/forms/index.d.cts +1 -0
  1834. package/dist/lib/forms/index.d.ts +1 -0
  1835. package/dist/lib/forms-rhf/index.d.cts +9 -0
  1836. package/dist/lib/forms-rhf/index.d.ts +9 -0
  1837. package/dist/lib/observers.d.cts +23 -0
  1838. package/dist/lib/observers.d.ts +23 -0
  1839. package/dist/lib/render-with-children.d.cts +2 -0
  1840. package/dist/lib/render-with-children.d.ts +2 -0
  1841. package/dist/lib/responsive.d.cts +24 -0
  1842. package/dist/lib/responsive.d.ts +24 -0
  1843. package/dist/lib/sanitize-html.d.cts +1 -0
  1844. package/dist/lib/sanitize-html.d.ts +1 -0
  1845. package/dist/lib/ssr-surface-test-utils.d.cts +24 -0
  1846. package/dist/lib/ssr-surface-test-utils.d.ts +24 -0
  1847. package/dist/lib/strings.d.cts +57 -0
  1848. package/dist/lib/strings.d.ts +57 -0
  1849. package/dist/lib/theming/contrast.d.cts +28 -0
  1850. package/dist/lib/theming/contrast.d.ts +28 -0
  1851. package/dist/lib/theming/index.d.cts +4 -0
  1852. package/dist/lib/theming/index.d.ts +4 -0
  1853. package/dist/lib/theming/recipes.d.cts +20 -0
  1854. package/dist/lib/theming/recipes.d.ts +20 -0
  1855. package/dist/lib/theming/types.d.cts +12 -0
  1856. package/dist/lib/theming/types.d.ts +12 -0
  1857. package/dist/lib/ui-provider/context.d.cts +43 -0
  1858. package/dist/lib/ui-provider/context.d.ts +43 -0
  1859. package/dist/lib/ui-provider/csp-provider.d.cts +10 -0
  1860. package/dist/lib/ui-provider/csp-provider.d.ts +10 -0
  1861. package/dist/lib/ui-provider/defaults.d.cts +9 -0
  1862. package/dist/lib/ui-provider/defaults.d.ts +9 -0
  1863. package/dist/lib/ui-provider/hooks.d.cts +38 -0
  1864. package/dist/lib/ui-provider/hooks.d.ts +38 -0
  1865. package/dist/lib/ui-provider/index.d.cts +11 -0
  1866. package/dist/lib/ui-provider/index.d.ts +11 -0
  1867. package/dist/lib/ui-provider/portal-host.d.cts +31 -0
  1868. package/dist/lib/ui-provider/portal-host.d.ts +31 -0
  1869. package/dist/lib/ui-provider/provider.d.cts +35 -0
  1870. package/dist/lib/ui-provider/provider.d.ts +35 -0
  1871. package/dist/lib/ui-provider/root.d.cts +28 -0
  1872. package/dist/lib/ui-provider/root.d.ts +28 -0
  1873. package/dist/lib/ui-provider/scope.d.cts +27 -0
  1874. package/dist/lib/ui-provider/scope.d.ts +27 -0
  1875. package/dist/lib/ui-provider/tokens.d.cts +25 -0
  1876. package/dist/lib/ui-provider/tokens.d.ts +25 -0
  1877. package/dist/lib/ui-provider/tokens.generated.d.cts +4 -0
  1878. package/dist/lib/ui-provider/tokens.generated.d.ts +4 -0
  1879. package/dist/lib/ui-provider/types.d.cts +180 -0
  1880. package/dist/lib/ui-provider/types.d.ts +180 -0
  1881. package/dist/lib/ui-provider/ui-scope.d.cts +24 -0
  1882. package/dist/lib/ui-provider/ui-scope.d.ts +24 -0
  1883. package/dist/mentions-DVk3k6V4.cjs +1 -0
  1884. package/dist/mentions-Dw2DfREO.js +546 -0
  1885. package/dist/navigation-36v_IMTz.cjs +1 -0
  1886. package/dist/navigation-CRCc8lpn.js +509 -0
  1887. package/dist/navigation-DD2Psc66.js +234 -0
  1888. package/dist/navigation-Zce9nqTO.cjs +1 -0
  1889. package/dist/observers-DpvUQ04h.cjs +1 -0
  1890. package/dist/observers-YT66Ljx4.js +21 -0
  1891. package/dist/overlay-BNubOCUj.cjs +1 -0
  1892. package/dist/overlay-Coj3d-6S.js +291 -0
  1893. package/dist/overlays-BN7GOm51.js +396 -0
  1894. package/dist/overlays-SoQf4DDt.cjs +1 -0
  1895. package/dist/path-_-vHPVht.js +24 -0
  1896. package/dist/path-ffsmozp3.cjs +1 -0
  1897. package/dist/patterns/analytics.cjs +1 -0
  1898. package/dist/patterns/analytics.css +15 -0
  1899. package/dist/patterns/analytics.js +1122 -0
  1900. package/dist/patterns/onboarding.cjs +1 -0
  1901. package/dist/patterns/onboarding.css +11 -0
  1902. package/dist/patterns/onboarding.js +108 -0
  1903. package/dist/patterns/timelines.cjs +1 -0
  1904. package/dist/patterns/timelines.css +11 -0
  1905. package/dist/patterns/timelines.js +4 -0
  1906. package/dist/popover-1YaYvaYu.cjs +1 -0
  1907. package/dist/popover-BpUGuOeI.js +117 -0
  1908. package/dist/primitives-Bcjsjg7A.cjs +1 -0
  1909. package/dist/primitives-D-cyAv5O.js +941 -0
  1910. package/dist/primitives.cjs +1 -0
  1911. package/dist/primitives.css +3 -0
  1912. package/dist/primitives.js +4 -0
  1913. package/dist/profiles/admin.json +97 -0
  1914. package/dist/profiles/general.json +310 -0
  1915. package/dist/render-with-children-BZwzInAH.cjs +1 -0
  1916. package/dist/render-with-children-Clu_g9wb.js +7 -0
  1917. package/dist/repeaters-DPPDOeoh.cjs +1 -0
  1918. package/dist/repeaters-birDhmqY.js +371 -0
  1919. package/dist/responsive-Bjwj2E12.js +24 -0
  1920. package/dist/responsive-DWfECgXA.cjs +1 -0
  1921. package/dist/rich-text-editor-Cws3YEgp.cjs +1 -0
  1922. package/dist/rich-text-editor-DTe5uxVK.js +524 -0
  1923. package/dist/rolldown-runtime-BocRIvOZ.cjs +1 -0
  1924. package/dist/sheet-CEc-CIEZ.js +37 -0
  1925. package/dist/sheet-CRw6LDWn.cjs +1 -0
  1926. package/dist/sidebar-CBUzwh44.js +382 -0
  1927. package/dist/sidebar-D6SWxO0h.cjs +1 -0
  1928. package/dist/skeleton-88qeIN6y.js +123 -0
  1929. package/dist/skeleton-CjH6hXHb.cjs +1 -0
  1930. package/dist/slot-CU_R6dAe.cjs +1 -0
  1931. package/dist/slot-Cj7UGQH-.js +16 -0
  1932. package/dist/spinner-4Z1vjSiH.js +55 -0
  1933. package/dist/spinner-Bc_A0cRc.cjs +1 -0
  1934. package/dist/strings-BiKL6k6b.cjs +1 -0
  1935. package/dist/strings-Co9_qArR.js +14 -0
  1936. package/dist/structure-C4IX5OuO.cjs +1 -0
  1937. package/dist/structure-es_UqqmD.js +105 -0
  1938. package/dist/style.css +1 -0
  1939. package/dist/styles/FACTORS.md +65 -0
  1940. package/dist/styles/SCOPES.md +37 -0
  1941. package/dist/styles/TOKENS.md +143 -0
  1942. package/dist/styles/base.css +160 -0
  1943. package/dist/styles/fields.css +166 -0
  1944. package/dist/styles/forced-colors.css +45 -0
  1945. package/dist/styles/index.css +96 -0
  1946. package/dist/styles/map.css +160 -0
  1947. package/dist/styles/mentions.css +152 -0
  1948. package/dist/styles/overlays.css +86 -0
  1949. package/dist/styles/tailwind.css +149 -0
  1950. package/dist/styles/targets.css +34 -0
  1951. package/dist/styles/themes/default.css +166 -0
  1952. package/dist/styles/theming/animation.css +207 -0
  1953. package/dist/styles/theming/breakpoints.css +48 -0
  1954. package/dist/styles/theming/colors.css +90 -0
  1955. package/dist/styles/theming/feedback.css +20 -0
  1956. package/dist/styles/theming/field.css +38 -0
  1957. package/dist/styles/theming/focus.css +102 -0
  1958. package/dist/styles/theming/layers.css +32 -0
  1959. package/dist/styles/theming/layout.css +27 -0
  1960. package/dist/styles/theming/mentions.css +44 -0
  1961. package/dist/styles/theming/motion.css +53 -0
  1962. package/dist/styles/theming/overlay.css +64 -0
  1963. package/dist/styles/theming/sizing.css +204 -0
  1964. package/dist/styles/theming/text.css +47 -0
  1965. package/dist/styles/theming/typography.css +64 -0
  1966. package/dist/styles/tokens/components.css +24 -0
  1967. package/dist/styles/tokens/foundation.css +132 -0
  1968. package/dist/styles/tokens/layout.css +20 -0
  1969. package/dist/styles/tokens/palette.css +112 -0
  1970. package/dist/styles/tokens/primitives.css +29 -0
  1971. package/dist/styles/tokens/states.css +74 -0
  1972. package/dist/styles/utilities.css +39 -0
  1973. package/dist/styles.cjs +0 -0
  1974. package/dist/styles.d.cts +0 -0
  1975. package/dist/styles.d.ts +0 -0
  1976. package/dist/styles.js +1 -0
  1977. package/dist/table-CETsJblc.cjs +1 -0
  1978. package/dist/table-CfRaDAdJ.cjs +1 -0
  1979. package/dist/table-DTaGJ0WS.js +996 -0
  1980. package/dist/table-MIC6hYQ7.js +132 -0
  1981. package/dist/tailwind.css +149 -0
  1982. package/dist/text-inputs-BMW3hP0R.js +372 -0
  1983. package/dist/text-inputs-Dp4Fczk4.cjs +1 -0
  1984. package/dist/theming-CE6lkbbb.js +112 -0
  1985. package/dist/theming-ak8N63kI.cjs +1 -0
  1986. package/dist/theming.cjs +1 -0
  1987. package/dist/theming.js +2 -0
  1988. package/dist/timeline-BgYt7lmn.cjs +1 -0
  1989. package/dist/timeline-C1iIrqIM.js +71 -0
  1990. package/dist/timelines-BA7Fe__3.js +258 -0
  1991. package/dist/timelines-Bfe2dePP.cjs +1 -0
  1992. package/dist/toaster-Br5IqAjM.js +230 -0
  1993. package/dist/toaster-CzYO85os.cjs +1 -0
  1994. package/dist/tokens.json +1067 -0
  1995. package/dist/toolbar-BOe4O8pW.cjs +1 -0
  1996. package/dist/toolbar-C9GRWaUJ.js +69 -0
  1997. package/dist/tooltip-C6LpEyYB.js +60 -0
  1998. package/dist/tooltip-oXbyn0gC.cjs +1 -0
  1999. package/dist/types/index.d.cts +12 -0
  2000. package/dist/types/index.d.ts +12 -0
  2001. package/dist/types/locale.types.d.cts +19 -0
  2002. package/dist/types/locale.types.d.ts +19 -0
  2003. package/dist/types/navigation.types.d.cts +17 -0
  2004. package/dist/types/navigation.types.d.ts +17 -0
  2005. package/dist/types/pagination.types.d.cts +34 -0
  2006. package/dist/types/pagination.types.d.ts +34 -0
  2007. package/dist/typography-kBzTy-jM.cjs +1 -0
  2008. package/dist/typography-vC_wwEBm.js +284 -0
  2009. package/dist/ui-provider-BS7QPJVb.cjs +1 -0
  2010. package/dist/ui-provider-DvO3G7xp.js +275 -0
  2011. package/dist/ui-provider.cjs +1 -0
  2012. package/dist/ui-provider.js +3 -0
  2013. package/dist/upload-4YDU7od8.js +918 -0
  2014. package/dist/upload-CO0k8Nbo.cjs +1 -0
  2015. package/dist/use-controllable-state-BdbrdEWI.cjs +1 -0
  2016. package/dist/use-controllable-state-HHu2LRI-.js +10 -0
  2017. package/dist/use-debounce-CKfx87CG.cjs +1 -0
  2018. package/dist/use-debounce-yN5BxUpQ.js +10 -0
  2019. package/dist/use-debounced-callback-BcKYwxqp.js +28 -0
  2020. package/dist/use-debounced-callback-BiZB-QB2.cjs +1 -0
  2021. package/dist/use-hydrated-DwqJ02th.cjs +1 -0
  2022. package/dist/use-hydrated-lyN9MFHH.js +8 -0
  2023. package/dist/use-latest-BT2X4Opg.cjs +1 -0
  2024. package/dist/use-latest-CF0678ae.js +10 -0
  2025. package/dist/use-synced-state-CoPfjLRG.cjs +1 -0
  2026. package/dist/use-synced-state-DnZ4lW4g.js +8 -0
  2027. package/dist/value-inputs-DA-f9CJK.cjs +1 -0
  2028. package/dist/value-inputs-okQ1S7CX.js +634 -0
  2029. package/docs/README.md +46 -0
  2030. package/docs/build/recipes.md +4392 -0
  2031. package/docs/generated/component-index.json +8346 -0
  2032. package/docs/generated/components/INDEX.md +107 -0
  2033. package/docs/generated/components/admin--patterns--access.md +231 -0
  2034. package/docs/generated/components/admin--patterns--commerce.md +1973 -0
  2035. package/docs/generated/components/base--accordion.md +74 -0
  2036. package/docs/generated/components/base--action-menu.md +114 -0
  2037. package/docs/generated/components/base--alert-dialog.md +126 -0
  2038. package/docs/generated/components/base--aspect-ratio.md +103 -0
  2039. package/docs/generated/components/base--avatar.md +161 -0
  2040. package/docs/generated/components/base--badge.md +93 -0
  2041. package/docs/generated/components/base--batch-action-bar.md +97 -0
  2042. package/docs/generated/components/base--buttons.md +240 -0
  2043. package/docs/generated/components/base--cards.md +250 -0
  2044. package/docs/generated/components/base--carousel.md +181 -0
  2045. package/docs/generated/components/base--chart.md +198 -0
  2046. package/docs/generated/components/base--choice-inputs.md +517 -0
  2047. package/docs/generated/components/base--combobox.md +265 -0
  2048. package/docs/generated/components/base--command.md +148 -0
  2049. package/docs/generated/components/base--context-menu.md +173 -0
  2050. package/docs/generated/components/base--copyable.md +124 -0
  2051. package/docs/generated/components/base--date-pickers.md +401 -0
  2052. package/docs/generated/components/base--dialog.md +164 -0
  2053. package/docs/generated/components/base--direction.md +105 -0
  2054. package/docs/generated/components/base--display.md +728 -0
  2055. package/docs/generated/components/base--dropdown-menu.md +173 -0
  2056. package/docs/generated/components/base--feedback.md +476 -0
  2057. package/docs/generated/components/base--forms-numeric.md +464 -0
  2058. package/docs/generated/components/base--forms.md +357 -0
  2059. package/docs/generated/components/base--hover-card.md +137 -0
  2060. package/docs/generated/components/base--input-group.md +106 -0
  2061. package/docs/generated/components/base--item.md +154 -0
  2062. package/docs/generated/components/base--label.md +47 -0
  2063. package/docs/generated/components/base--menubar.md +220 -0
  2064. package/docs/generated/components/base--navigation-menu.md +160 -0
  2065. package/docs/generated/components/base--navigation.md +504 -0
  2066. package/docs/generated/components/base--otp-input.md +122 -0
  2067. package/docs/generated/components/base--overlay.md +166 -0
  2068. package/docs/generated/components/base--popover-menu.md +93 -0
  2069. package/docs/generated/components/base--popover.md +130 -0
  2070. package/docs/generated/components/base--qr-code.md +89 -0
  2071. package/docs/generated/components/base--repeaters.md +402 -0
  2072. package/docs/generated/components/base--resizable.md +134 -0
  2073. package/docs/generated/components/base--sheet.md +151 -0
  2074. package/docs/generated/components/base--sidebar.md +309 -0
  2075. package/docs/generated/components/base--skeleton.md +156 -0
  2076. package/docs/generated/components/base--slot.md +96 -0
  2077. package/docs/generated/components/base--spinner.md +74 -0
  2078. package/docs/generated/components/base--structure.md +200 -0
  2079. package/docs/generated/components/base--table.md +160 -0
  2080. package/docs/generated/components/base--text-inputs.md +350 -0
  2081. package/docs/generated/components/base--timeline.md +106 -0
  2082. package/docs/generated/components/base--toaster.md +123 -0
  2083. package/docs/generated/components/base--toggle.md +104 -0
  2084. package/docs/generated/components/base--toolbar.md +143 -0
  2085. package/docs/generated/components/base--tooltip.md +75 -0
  2086. package/docs/generated/components/base--typography.md +184 -0
  2087. package/docs/generated/components/base--upload.md +504 -0
  2088. package/docs/generated/components/base--value-inputs.md +386 -0
  2089. package/docs/generated/components/features--actions.md +882 -0
  2090. package/docs/generated/components/features--activities.md +443 -0
  2091. package/docs/generated/components/features--ai-chat.md +748 -0
  2092. package/docs/generated/components/features--async-preview.md +232 -0
  2093. package/docs/generated/components/features--combobox.md +301 -0
  2094. package/docs/generated/components/features--comments.md +283 -0
  2095. package/docs/generated/components/features--data-view.md +148 -0
  2096. package/docs/generated/components/features--event-calendar.md +218 -0
  2097. package/docs/generated/components/features--filters.md +656 -0
  2098. package/docs/generated/components/features--global-search.md +273 -0
  2099. package/docs/generated/components/features--kanban.md +226 -0
  2100. package/docs/generated/components/features--map.md +683 -0
  2101. package/docs/generated/components/features--media-library.md +423 -0
  2102. package/docs/generated/components/features--mentions.md +370 -0
  2103. package/docs/generated/components/features--overlays.md +245 -0
  2104. package/docs/generated/components/features--products.md +786 -0
  2105. package/docs/generated/components/features--resource-assignment.md +142 -0
  2106. package/docs/generated/components/features--resource.md +165 -0
  2107. package/docs/generated/components/features--rich-text-editor--tiptap.md +58 -0
  2108. package/docs/generated/components/features--rich-text-editor.md +209 -0
  2109. package/docs/generated/components/features--schema-form.md +198 -0
  2110. package/docs/generated/components/features--suggestions.md +133 -0
  2111. package/docs/generated/components/features--sync.md +111 -0
  2112. package/docs/generated/components/features--table.md +545 -0
  2113. package/docs/generated/components/features--theme-tweaker.md +325 -0
  2114. package/docs/generated/components/forms-rhf.md +48 -0
  2115. package/docs/generated/components/forms.md +111 -0
  2116. package/docs/generated/components/layout--app-shell.md +206 -0
  2117. package/docs/generated/components/layout--auth.md +188 -0
  2118. package/docs/generated/components/layout--containers.md +146 -0
  2119. package/docs/generated/components/layout--header.md +220 -0
  2120. package/docs/generated/components/layout--navigation.md +239 -0
  2121. package/docs/generated/components/layout--page.md +223 -0
  2122. package/docs/generated/components/layout--settings.md +86 -0
  2123. package/docs/generated/components/layout--sidebar.md +272 -0
  2124. package/docs/generated/components/layout--workspace.md +286 -0
  2125. package/docs/generated/components/patterns--analytics.md +486 -0
  2126. package/docs/generated/components/patterns--onboarding.md +157 -0
  2127. package/docs/generated/components/patterns--timelines.md +279 -0
  2128. package/docs/generated/components/primitives.md +1077 -0
  2129. package/docs/generated/components/theming.md +91 -0
  2130. package/docs/generated/components/ui-provider.md +302 -0
  2131. package/docs/generated/composition-ladder.md +80 -0
  2132. package/docs/generated/imports.md +142 -0
  2133. package/docs/generated/migration-broad-imports.json +2137 -0
  2134. package/docs/generated/migration-broad-imports.md +2157 -0
  2135. package/docs/generated/migration.md +146 -0
  2136. package/docs/generated/profiles.md +140 -0
  2137. package/docs/generated/public-api.md +1105 -0
  2138. package/docs/generated/recipes.json +4946 -0
  2139. package/docs/learn/api-compatibility.md +35 -0
  2140. package/docs/learn/composition.md +174 -0
  2141. package/docs/learn/forms.md +76 -0
  2142. package/docs/learn/framework-wiring.md +78 -0
  2143. package/docs/learn/guidelines.md +354 -0
  2144. package/docs/learn/i18n.md +109 -0
  2145. package/docs/learn/installation.md +82 -0
  2146. package/docs/learn/migration.md +57 -0
  2147. package/docs/learn/provider-and-scoping.md +204 -0
  2148. package/docs/learn/theming.md +177 -0
  2149. package/docs/learn/troubleshooting.md +75 -0
  2150. package/docs/learn/verification.md +49 -0
  2151. package/package.json +1393 -0
  2152. package/scripts/consumer/find-component.mjs +266 -0
  2153. package/scripts/consumer/install-skill.mjs +162 -0
  2154. package/src/styles/FACTORS.md +65 -0
  2155. package/src/styles/SCOPES.md +37 -0
  2156. package/src/styles/TOKENS.md +143 -0
@@ -0,0 +1,4392 @@
1
+ <!-- GENERATED by scripts/gen-consumer-docs.mjs — do not edit. -->
2
+
3
+ # Recipes
4
+
5
+ 374 adaptable live-preview snippets, taken from the pages that render them —
6
+ so a recipe here and the example on the page cannot drift apart. Excerpts may depend on
7
+ surrounding values supplied by the application. Each section names the exact
8
+ import and stylesheet for the family.
9
+
10
+ **What the application still owns:** data fetching, routing, persistence, translation and
11
+ domain state. Every snippet below assumes those arrive as props, callbacks or accessors.
12
+
13
+ ## (no family)
14
+
15
+ Preview route: Scale & density — `/scale`
16
+
17
+ ### The factor
18
+
19
+ ```tsx
20
+ <UIProvider config={{ scale: 0.875 }}>
21
+ <Toolbar />
22
+ </UIProvider>
23
+ ```
24
+
25
+ ### Why not size props
26
+
27
+ ```tsx
28
+ {/* smaller type, control geometry untouched */}
29
+ <UIProvider config={{ typography: { scale: 0.875 } }}>…</UIProvider>
30
+
31
+ {/* denser geometry, type held at its default */}
32
+ <UIProvider config={{ scale: 0.875, typography: { scale: 1 } }}>…</UIProvider>
33
+ ```
34
+
35
+ ### Two levels of control
36
+
37
+ ```tsx
38
+ /* everything denser */
39
+ <UIProvider config={{ scale: 0.875 }}>
40
+
41
+ /* heights and rows only — gaps untouched */
42
+ <Scope vars={{ "--density-scale": 0.875 }}>
43
+
44
+ /* gaps and padding only — control heights untouched */
45
+ <Scope vars={{ "--space-scale": 0.875 }}>
46
+
47
+ /* one measurement, leaving everything else alone */
48
+ <Scope vars={{ "--button-px": "1.5rem" }}>
49
+
50
+ /* a plain div does NOT work: overriding a factor needs a scope
51
+ boundary, or the measurements above it have already resolved. */
52
+ ```
53
+
54
+ ### Why a factor and not a size prop
55
+
56
+ ```tsx
57
+ <UIProvider config={{ scale: 1.125 }}>
58
+ <Page>
59
+ <UIProvider config={{ scale: 0.875 }}>
60
+ <Toolbar />
61
+ </UIProvider>
62
+ </Page>
63
+ </UIProvider>
64
+ ```
65
+
66
+ ### Density presets
67
+
68
+ ```tsx
69
+ <UIProvider config={{ density: "compact" }}>…</UIProvider>
70
+
71
+ {/* or, with no provider at all */}
72
+ <div data-density="compact">…</div>
73
+ ```
74
+
75
+ ### Semantic tier
76
+
77
+ ```tsx
78
+ <UIProvider config={{ theme: { colors: { primary: "oklch(0.55 0.2 25)" } } }}>
79
+ ```
80
+
81
+ ## admin/patterns/commerce
82
+
83
+ ```tsx
84
+ import { … } from "themelia-ui/admin/patterns/commerce"
85
+ import "themelia-ui/admin/patterns/commerce.css"
86
+ ```
87
+
88
+ Preview route: Catalogue & partners — `/blocks-catalogue`
89
+
90
+ ### SeoListing
91
+
92
+ ```tsx
93
+ import { calculateSeoScore } from "themelia-ui/admin/patterns/commerce"
94
+
95
+ const score = calculateSeoScore({ title, description, permalink, baseUrl, keyword })
96
+ <SeoListing listing={listing} score={score} onEdit={edit} />
97
+ ```
98
+
99
+ ### InventorySection
100
+
101
+ ```tsx
102
+ <InventorySection
103
+ value={value}
104
+ sections={["summary", "identity", "tracking"]}
105
+ onFieldChange={({ field, value }) => update(field, value)}
106
+ />
107
+ ```
108
+
109
+ ### VendorProfile
110
+
111
+ ```tsx
112
+ <VendorProfile name="Northwind Traders" earnings="48,200.00 EUR" metrics={metrics} stats={stats} />
113
+ ```
114
+
115
+ ### BookingCard
116
+
117
+ ```tsx
118
+ <BookingCard title="Reservation #4417" details={details} actionLabel="Open booking" onAction={open} />
119
+ ```
120
+
121
+ ### CartSummary
122
+
123
+ ```tsx
124
+ <CartSummary items={items} subtotal="258.00 EUR" discount="50.00 EUR" total="264.40 EUR" />
125
+ ```
126
+
127
+ ### TaxBreakdown
128
+
129
+ ```tsx
130
+ <TaxBreakdown subtotal="258.00 EUR" taxes={taxes} totalTax="52.89 EUR" total="310.89 EUR" />
131
+ ```
132
+
133
+ ### DiscountStack
134
+
135
+ ```tsx
136
+ <DiscountStack discounts={discounts} totalSavings="50.00 EUR" />
137
+ ```
138
+
139
+ ### CodeEntry
140
+
141
+ ```tsx
142
+ <CodeEntry onApply={apply} />
143
+ <CodeEntry kind="gift" appliedCode="GC-4417-92AB" balance="45.00 EUR" onRemove={remove} />
144
+ ```
145
+
146
+ ### OrderStatusCard
147
+
148
+ ```tsx
149
+ <OrderStatusCard orderNumber="#1041" status="shipped" events={events} eta="18 Aug" />
150
+ ```
151
+
152
+ ### ShipmentTracking
153
+
154
+ ```tsx
155
+ <ShipmentTracking trackingNumber="1Z999AA1…" carrier="UPS" status="inTransit" steps={steps} />
156
+ ```
157
+
158
+ ### RefundStatus
159
+
160
+ ```tsx
161
+ <RefundStatus stage="processing" amount="124.00 EUR" reason="Damaged on arrival" />
162
+ ```
163
+
164
+ ### InvoiceHeader
165
+
166
+ ```tsx
167
+ <InvoiceHeader invoiceNumber="INV-2026-0114" status="overdue" from={from} to={to} amountDue="3,120.00 EUR" />
168
+ ```
169
+
170
+ ### InvoiceLineItems
171
+
172
+ ```tsx
173
+ <InvoiceLineItems currency="EUR" taxRate={0.2} lines={lines} />
174
+ ```
175
+
176
+ ### InvoiceMini
177
+
178
+ ```tsx
179
+ <InvoiceMini invoiceNumber="INV-0114" status="overdue" customerName="…" total="3,120.00 EUR" />
180
+ ```
181
+
182
+ ### AddressCard
183
+
184
+ ```tsx
185
+ <AddressCard kind="shipping" name="Alice Mercer" line1="14 Kingsway" city="London" country="United Kingdom" isDefault />
186
+ ```
187
+
188
+ ### PaymentMethodCard
189
+
190
+ ```tsx
191
+ <PaymentMethodCard brand="visa" last4="4417" expiry="09/28" isDefault onChange={change} />
192
+ ```
193
+
194
+ ### PaymentTimeline
195
+
196
+ ```tsx
197
+ <PaymentTimeline events={events} />
198
+ ```
199
+
200
+ ### SubscriptionSummary
201
+
202
+ ```tsx
203
+ <SubscriptionSummary planName="Scale" price="240.00 EUR" cycle="Per month" nextBillingDate="01 Sep 2026" />
204
+ ```
205
+
206
+ ### InventoryLevel
207
+
208
+ ```tsx
209
+ <InventoryLevel productName="Merino crew neck" stock={8} reorderLevel={12} maxStock={120} />
210
+ ```
211
+
212
+ ### UpcomingBookings
213
+
214
+ ```tsx
215
+ <UpcomingBookings bookings={bookings} boxedDate />
216
+ ```
217
+
218
+ ### LoyaltyPoints
219
+
220
+ ```tsx
221
+ <LoyaltyPoints balance={4830} tier="Platinum" movements={movements} onRedeem={redeem} />
222
+ ```
223
+
224
+ ### Two statuses, not one
225
+
226
+ ```tsx
227
+ <OrderHeader
228
+ orderNumber="1036"
229
+ paymentStatus="refunded"
230
+ fulfillmentStatus="unfulfilled"
231
+ placedAt="December 21, 2025 at 10:10 pm"
232
+ source="Simple Sample Data (via import)"
233
+ />
234
+ ```
235
+
236
+ ### Fulfillment groups
237
+
238
+ ```tsx
239
+ <FulfillmentGroup
240
+ status="unfulfilled"
241
+ location="Bul Bulgaria 111"
242
+ notice="Shipping not required"
243
+ items={lines}
244
+ actions={[{ id: "fulfil", label: "Mark as fulfilled", onClick: fulfil }]}
245
+ />
246
+ ```
247
+
248
+ ### A line, and what a consumer attaches to it
249
+
250
+ ```tsx
251
+ <OrderLineItem
252
+ {...line}
253
+ properties={[
254
+ { label: "Engraving", value: "A. MERCER" },
255
+ { label: "Gift message", value: "Happy birthday" },
256
+ ]}
257
+ />
258
+ ```
259
+
260
+ ### OrderSummary
261
+
262
+ ```tsx
263
+ <OrderSummary
264
+ goods={[{ label: "Subtotal", note: "3 items", amount: "€239.95" }]}
265
+ total={{ label: "Total", amount: "€239.95" }}
266
+ payments={[{ label: "Paid", amount: "€0.00" }, { label: "Balance", amount: "€239.95" }]}
267
+ alert="€239.95 of the balance is currently unauthorized"
268
+ />
269
+ ```
270
+
271
+ ### OrderTransactions
272
+
273
+ ```tsx
274
+ <OrderTransactions transactions={transactions} />
275
+ ```
276
+
277
+ ### Customer and addresses
278
+
279
+ ```tsx
280
+ <OrderCustomer
281
+ name="Alice Mercer"
282
+ email="alice@example.test"
283
+ orderCount={4}
284
+ shippingAddress={address}
285
+ billingSameAsShipping
286
+ />
287
+ ```
288
+
289
+ ## base/accordion
290
+
291
+ ```tsx
292
+ import { … } from "themelia-ui/base/accordion"
293
+ import "themelia-ui/base/accordion.css"
294
+ ```
295
+
296
+ Preview route: Accordion — `/accordion`
297
+
298
+ ### Accordion
299
+
300
+ ```tsx
301
+ <Accordion
302
+ items={[
303
+ { value: "billing", title: "Billing", description: "…", content: <…/> },
304
+ ]}
305
+ />
306
+ ```
307
+
308
+ ## base/action-menu
309
+
310
+ ```tsx
311
+ import { … } from "themelia-ui/base/action-menu"
312
+ import "themelia-ui/base/action-menu.css"
313
+ ```
314
+
315
+ Preview route: Action buttons — `/action-buttons`
316
+
317
+ ### ActionButtons
318
+
319
+ ```tsx
320
+ <ActionButtons actions={actions.slice(0, 2)} />
321
+ ```
322
+
323
+ ### Overflow
324
+
325
+ ```tsx
326
+ <ActionButtons actions={toolbar} max={2} />
327
+ ```
328
+
329
+ ### ActionMenu
330
+
331
+ ```tsx
332
+ <ActionMenu
333
+ actions={[
334
+ { label: "Edit", icon: PencilIcon, onClick: … },
335
+ { label: "Archive", icon: ArchiveIcon, onClick: …, group: true },
336
+ { label: "Delete", icon: TrashIcon, onClick: …, tone: "destructive" },
337
+ ]}
338
+ />
339
+ ```
340
+
341
+ ### Destructive last
342
+
343
+ ```tsx
344
+ const declared = [
345
+ { label: "Delete", tone: "destructive", onClick: … },
346
+ { label: "Edit", onClick: … },
347
+ { label: "Duplicate", onClick: … },
348
+ ]
349
+
350
+ <ActionMenu actions={declared} />
351
+ <ActionMenu actions={declared} preserveOrder />
352
+ ```
353
+
354
+ ### Width and row slots
355
+
356
+ ```tsx
357
+ <ActionMenu actions={actions} maxWidth="18rem" />
358
+ <ActionMenu actions={actions} width={280} />
359
+ <ActionMenu actions={actions} width="trigger" label="Matches trigger" />
360
+
361
+ // Rows take slots, so the label is the only part that gives way:
362
+ { label: "Duplicate", icon: CopyIcon, shortcut: "⌘D" }
363
+ { label: "Export", description: "CSV, one row per invoice" }
364
+ ```
365
+
366
+ ## base/alert-dialog
367
+
368
+ ```tsx
369
+ import { … } from "themelia-ui/base/alert-dialog"
370
+ import "themelia-ui/base/alert-dialog.css"
371
+ ```
372
+
373
+ Preview route: Alert dialog — `/alert-dialog`
374
+
375
+ ### Alert dialog
376
+
377
+ ```tsx
378
+ <AlertDialogContent> {/* dismissal={{ backdrop: false, escape: false }} */}
379
+ ```
380
+
381
+ ## base/avatar
382
+
383
+ ```tsx
384
+ import { … } from "themelia-ui/base/avatar"
385
+ import "themelia-ui/base/avatar.css"
386
+ ```
387
+
388
+ Preview route: Avatar — `/avatar`
389
+
390
+ ### Avatar
391
+
392
+ ```tsx
393
+ <Avatar>
394
+ <AvatarImage src={user.photo} alt="" />
395
+ <AvatarFallback>JM</AvatarFallback>
396
+ </Avatar>
397
+ ```
398
+
399
+ ### StackedAvatars
400
+
401
+ ```tsx
402
+ <StackedAvatars users={members} max={4} />
403
+ ```
404
+
405
+ ## base/badge
406
+
407
+ ```tsx
408
+ import { … } from "themelia-ui/base/badge"
409
+ import "themelia-ui/base/badge.css"
410
+ ```
411
+
412
+ Preview route: Badge — `/badge`
413
+
414
+ ### Tones
415
+
416
+ ```tsx
417
+ <Badge tone="success">Paid</Badge>
418
+ <Badge tone="warning" variant="solid">Due</Badge>
419
+ <Badge tone="destructive" variant="outline">Overdue</Badge>
420
+ ```
421
+
422
+ ### Status dot
423
+
424
+ ```tsx
425
+ <Badge tone="success" dot>Live</Badge>
426
+ <Badge tone="warning" dot pending>Queued</Badge>
427
+ <Badge tone="info" dot pulse>Syncing</Badge>
428
+ ```
429
+
430
+ ## base/batch-action-bar
431
+
432
+ ```tsx
433
+ import { … } from "themelia-ui/base/batch-action-bar"
434
+ import "themelia-ui/base/batch-action-bar.css"
435
+ ```
436
+
437
+ Preview route: Batch action bar — `/batch-action-bar`
438
+
439
+ ### Floating
440
+
441
+ ```tsx
442
+ <BatchActionBar selectedCount={selected} totalCount={250} onClear={() => setSelected(0)}>
443
+ <Button tone="neutral" buttonStyle="outline">Export</Button>
444
+ <Button tone="destructive" buttonStyle="outline">Delete</Button>
445
+ </BatchActionBar>
446
+ ```
447
+
448
+ ### Inline
449
+
450
+ ```tsx
451
+ <BatchActionBar placement="inline" selectedCount={12} onClear={clear}>
452
+ <Button tone="neutral" buttonStyle="outline">Assign</Button>
453
+ </BatchActionBar>
454
+ ```
455
+
456
+ ## base/buttons
457
+
458
+ ```tsx
459
+ import { … } from "themelia-ui/base/buttons"
460
+ import "themelia-ui/base/buttons.css"
461
+ ```
462
+
463
+ Preview route: Button — `/button`
464
+
465
+ ### Tone × style
466
+
467
+ ```tsx
468
+ <Button tone="destructive" buttonStyle="ghost">Delete</Button>
469
+ ```
470
+
471
+ ### Scale, not size
472
+
473
+ ```tsx
474
+ {/* not this */}
475
+ <Button>Save</Button>
476
+
477
+ {/* this — the whole region stays in proportion */}
478
+ <UIProvider config={{ scale: 0.875 }}>
479
+ <Toolbar />
480
+ </UIProvider>
481
+ ```
482
+
483
+ ### State
484
+
485
+ ```tsx
486
+ <Button>Save changes</Button>
487
+ <Button loading>Save changes</Button>
488
+ <Button disabled>Disabled</Button>
489
+ ```
490
+
491
+ ### Icon only
492
+
493
+ ```tsx
494
+ <Button iconOnly aria-label="Settings">⚙</Button>
495
+ ```
496
+
497
+ ### Group
498
+
499
+ ```tsx
500
+ <ButtonGroup>
501
+ <Button buttonStyle="outline" tone="neutral">Day</Button>
502
+ <Button buttonStyle="outline" tone="neutral">Week</Button>
503
+ </ButtonGroup>
504
+ ```
505
+
506
+ ### Three buttons that are not styles
507
+
508
+ ```tsx
509
+ <TextButton onClick={undo}>Undo</TextButton>
510
+ <LoaderButton onClick={async () => save()}>Save</LoaderButton>
511
+ <TooltipButton tooltip="Archive" iconOnly><ArchiveIcon /></TooltipButton>
512
+ ```
513
+
514
+ ### Separators and text inside a group
515
+
516
+ ```tsx
517
+ <ButtonGroup>
518
+ <Button>Day</Button>
519
+ <ButtonGroupSeparator />
520
+ <ButtonGroupText>of</ButtonGroupText>
521
+ <Button>Week</Button>
522
+ </ButtonGroup>
523
+ ```
524
+
525
+ ## base/cards
526
+
527
+ ```tsx
528
+ import { … } from "themelia-ui/base/cards"
529
+ import "themelia-ui/base/cards.css"
530
+ ```
531
+
532
+ Preview route: Card — `/card`
533
+
534
+ ### Surfaces
535
+
536
+ ```tsx
537
+ <Card surface="framed" title="Revenue" description="Last 30 days" />
538
+ ```
539
+
540
+ ### Slots
541
+
542
+ ```tsx
543
+ <Card
544
+ icon={<CreditCardIcon />}
545
+ title="Primary card"
546
+ titleSuffix={<Badge>Default</Badge>}
547
+ description="Visa ending 4242"
548
+ actions={[
549
+ { label: "Edit", onClick: … },
550
+ { label: "Remove", onClick: …, tone: "destructive" },
551
+ ]}
552
+ footerText="Updated 3 days ago"
553
+ footerSlot={<Button>Manage</Button>}
554
+ />
555
+ ```
556
+
557
+ ### Expandable
558
+
559
+ ```tsx
560
+ <Card expandable title="Terms">…</Card>
561
+ ```
562
+
563
+ ### One card primitive
564
+
565
+ ```tsx
566
+ <Card
567
+ icon={<CreditCardIcon />}
568
+ title="Payment method"
569
+ titleSuffix={<Badge tone="success">Verified</Badge>}
570
+ tooltip="We store only the last four digits."
571
+ headerAction={<Button buttonStyle="ghost" tone="neutral">Change</Button>}
572
+ description="Charged on the first of the month."
573
+ />
574
+ ```
575
+
576
+ ### Alert band
577
+
578
+ ```tsx
579
+ <Card title="Domain" alert="Verification expires in 3 days." alertTone="warning" />
580
+ ```
581
+
582
+ ### Actions, and the whole card as one
583
+
584
+ ```tsx
585
+ <Card>
586
+ <CardContent>…</CardContent>
587
+ <CardFooter>
588
+ <CardActionStrip actions={[{ id: "open", label: "Open" }, { id: "archive", label: "Archive" }]} />
589
+ </CardFooter>
590
+ </Card>
591
+
592
+ // Or the whole card as one link. The card becomes the anchor's containing
593
+ // block on its own, and a control inside it still takes its own clicks.
594
+ <Card title="Northwind Traders">
595
+ <CardPrimaryAction href="/invoices/4417" label="Open Northwind Traders" />
596
+ <CardFooter>
597
+ <TextLink href="/invoices/4417.pdf">View the invoice instead</TextLink>
598
+ </CardFooter>
599
+ </Card>
600
+ ```
601
+
602
+ ### CardSkeleton
603
+
604
+ ```tsx
605
+ <CardSkeleton surface="bordered" showHeader lines={3} />
606
+ ```
607
+
608
+ ## base/carousel
609
+
610
+ ```tsx
611
+ import { … } from "themelia-ui/base/carousel"
612
+ import "themelia-ui/base/carousel.css"
613
+ ```
614
+
615
+ Preview route: Carousel — `/carousel`
616
+
617
+ ### Carousel
618
+
619
+ ```tsx
620
+ <Carousel showDots dotStyle="pill" label="Recent invoices">
621
+ {invoices.map((name) => (
622
+ <CarouselSlide key={name} size="16rem">
623
+ <Card surface="bordered" title={name} />
624
+ </CarouselSlide>
625
+ ))}
626
+ </Carousel>
627
+ ```
628
+
629
+ ### Control placement
630
+
631
+ ```tsx
632
+ <Carousel controls="overlay" label="Gallery">…</Carousel>
633
+ ```
634
+
635
+ ### Slide width
636
+
637
+ ```tsx
638
+ <CarouselSlide size="50%">…</CarouselSlide>
639
+ <CarouselSlide size="18rem">…</CarouselSlide>
640
+ ```
641
+
642
+ ## base/chart
643
+
644
+ ```tsx
645
+ import { … } from "themelia-ui/base/chart"
646
+ import "themelia-ui/base/chart.css"
647
+ ```
648
+
649
+ Preview route: Chart — `/chart`
650
+
651
+ ### Chart
652
+
653
+ ```tsx
654
+ const config = {
655
+ revenue: { label: "Revenue", color: "var(--chart-1)" },
656
+ expenses: { label: "Expenses", color: "var(--chart-2)" },
657
+ } satisfies ChartConfig
658
+
659
+ <ChartContainer config={config}>
660
+ <BarChart data={data}>
661
+ <CartesianGrid vertical={false} />
662
+ <XAxis dataKey="month" tickLine={false} axisLine={false} />
663
+ <ChartTooltip content={<ChartTooltipContent />} />
664
+ <Bar dataKey="revenue" fill="var(--color-revenue)" radius={4} />
665
+ </BarChart>
666
+ </ChartContainer>
667
+ ```
668
+
669
+ ### Sparkline
670
+
671
+ ```tsx
672
+ <Sparkline data={[4, 9, 6, 12, 10, 17, 15, 22]} tone="success" label="Revenue, last eight weeks" />
673
+ ```
674
+
675
+ ## base/choice-inputs
676
+
677
+ ```tsx
678
+ import { … } from "themelia-ui/base/choice-inputs"
679
+ import "themelia-ui/base/choice-inputs.css"
680
+ ```
681
+
682
+ Preview route: Card radio group — `/card-radio-group`
683
+
684
+ ### CardRadioGroup
685
+
686
+ ```tsx
687
+ <CardRadioGroup
688
+ options={plans}
689
+ value={plan}
690
+ onValueChange={setPlan}
691
+ columns={3}
692
+ />
693
+ ```
694
+
695
+ ### CardCheckboxGroup
696
+
697
+ ```tsx
698
+ <CardCheckboxGroup
699
+ options={channels}
700
+ value={selected}
701
+ onValueChange={setSelected}
702
+ columns={4}
703
+ />
704
+ ```
705
+
706
+ ### Checkbox
707
+
708
+ ```tsx
709
+ <Checkbox label="Checked" defaultChecked />
710
+ <Checkbox label="Indeterminate" indeterminate />
711
+ ```
712
+
713
+ ### ListRadioGroup
714
+
715
+ ```tsx
716
+ <ListRadioGroup options={roles} value={role} onValueChange={setRole} />
717
+ ```
718
+
719
+ ### PillRadioGroup
720
+
721
+ ```tsx
722
+ <PillRadioGroup options={views} value={view} onValueChange={setView} allowClear />
723
+ ```
724
+
725
+ ### Radio group
726
+
727
+ ```tsx
728
+ <RadioGroup name="plan">
729
+ <Radio label="Free" value="free" />
730
+ <Radio label="Pro" value="pro" defaultChecked />
731
+ </RadioGroup>
732
+ ```
733
+
734
+ ### Select
735
+
736
+ ```tsx
737
+ <Select
738
+ options={countries}
739
+ value={country}
740
+ onValueChange={setCountry}
741
+ allowClear
742
+ />
743
+ ```
744
+
745
+ ### Switch
746
+
747
+ ```tsx
748
+ <Switch label="Email notifications" defaultChecked />
749
+ ```
750
+
751
+ ### SwitchCard and ToggleField
752
+
753
+ ```tsx
754
+ <SwitchCard label="Two-factor authentication" icon={ShieldIcon} description="…" />
755
+ <ToggleField label="Email notifications" description="…" />
756
+ ```
757
+
758
+ ## base/combobox
759
+
760
+ ```tsx
761
+ import { … } from "themelia-ui/base/combobox"
762
+ import "themelia-ui/base/combobox.css"
763
+ ```
764
+
765
+ Preview route: Combobox — `/combobox`
766
+
767
+ ### One field surface
768
+
769
+ ```tsx
770
+ <ComboboxInputTrigger placeholder="Search…" showClear />
771
+ ```
772
+
773
+ ### Without free text
774
+
775
+ ```tsx
776
+ <ComboboxTrigger>
777
+ <ComboboxValue placeholder="Choose a country" />
778
+ </ComboboxTrigger>
779
+ ```
780
+
781
+ ### Multiple
782
+
783
+ ```tsx
784
+ <ComboboxChips>
785
+ {value.map((item) => <ComboboxChip key={item}>{item}</ComboboxChip>)}
786
+ <ComboboxChipsInput />
787
+ </ComboboxChips>
788
+ ```
789
+
790
+ ## base/command
791
+
792
+ ```tsx
793
+ import { … } from "themelia-ui/base/command"
794
+ import "themelia-ui/base/command.css"
795
+ ```
796
+
797
+ Preview route: Command — `/command`
798
+
799
+ ### Command
800
+
801
+ ```tsx
802
+ <Command>
803
+ <CommandInput placeholder="Type a command…" />
804
+ <CommandList>
805
+ <CommandEmpty>No results.</CommandEmpty>
806
+ <CommandGroup heading="Pages">
807
+ <CommandItem>Invoices</CommandItem>
808
+ </CommandGroup>
809
+ </CommandList>
810
+ </Command>
811
+ ```
812
+
813
+ ### CommandDialog
814
+
815
+ ```tsx
816
+ useEffect(() => {
817
+ const onKey = (e: KeyboardEvent) => {
818
+ if (e.key === "k" && (e.metaKey || e.ctrlKey)) { e.preventDefault(); setOpen(true) }
819
+ }
820
+ document.addEventListener("keydown", onKey)
821
+ return () => document.removeEventListener("keydown", onKey)
822
+ }, [])
823
+ ```
824
+
825
+ ## base/context-menu
826
+
827
+ ```tsx
828
+ import { … } from "themelia-ui/base/context-menu"
829
+ import "themelia-ui/base/context-menu.css"
830
+ ```
831
+
832
+ Preview route: Context menu — `/context-menu`
833
+
834
+ ### Context menu
835
+
836
+ ```tsx
837
+ <ContextMenu>
838
+ <ContextMenuTrigger render={<div />}>…</ContextMenuTrigger>
839
+ <ContextMenuContent>
840
+ <ContextMenuItem icon={<PencilIcon />}>Edit</ContextMenuItem>
841
+ <ContextMenuSeparator />
842
+ <ContextMenuItem variant="destructive">Delete</ContextMenuItem>
843
+ </ContextMenuContent>
844
+ </ContextMenu>
845
+ ```
846
+
847
+ ## base/copyable
848
+
849
+ ```tsx
850
+ import { … } from "themelia-ui/base/copyable"
851
+ import "themelia-ui/base/copyable.css"
852
+ ```
853
+
854
+ Preview route: Copyable — `/copyable`
855
+
856
+ ### Copyable
857
+
858
+ ```tsx
859
+ {/* truncate keeps the button in view however long the value is */}
860
+ <Copyable value="sk_live_9f2c…" mono truncate />
861
+ <Copyable value="jane@example.com" displayValue={<Email value="jane@example.com" />} />
862
+ ```
863
+
864
+ ### useCopyToClipboard
865
+
866
+ ```tsx
867
+ const { copied, copy } = useCopyToClipboard()
868
+
869
+ <Button onClick={() => void copy(url)}>
870
+ {copied ? "Link copied" : "Copy invite link"}
871
+ </Button>
872
+ ```
873
+
874
+ ## base/date-pickers
875
+
876
+ ```tsx
877
+ import { … } from "themelia-ui/base/date-pickers"
878
+ import "themelia-ui/base/date-pickers.css"
879
+ ```
880
+
881
+ Preview route: Calendar — `/calendar`
882
+
883
+ ### Calendar
884
+
885
+ ```tsx
886
+ <Calendar mode="range" value={range} onValueChange={setRange} numberOfMonths={2} />
887
+ ```
888
+
889
+ ### Another language, another week
890
+
891
+ ```tsx
892
+ import { de } from "date-fns/locale"
893
+
894
+ <UIProvider config={{ dates: { locale: de, weekStartsOn: 0 } }}>
895
+ <Calendar mode="single" />
896
+ </UIProvider>
897
+ ```
898
+
899
+ ### DatePicker
900
+
901
+ ```tsx
902
+ <DatePicker value={day} onValueChange={setDay} clearable />
903
+ <DatePicker mode="range" value={range} onValueChange={setRange} presets={RANGE_PRESETS} />
904
+ ```
905
+
906
+ ### One picker, four fixed modes
907
+
908
+ ```tsx
909
+ <SingleDatePicker value={day} onValueChange={setDay} />
910
+ <RangeDatePicker value={range} onValueChange={setRange} />
911
+ <MonthYearPicker value={month} onValueChange={setMonth} />
912
+ ```
913
+
914
+ ### TimePicker and DateTimeInput
915
+
916
+ ```tsx
917
+ <TimePicker value={time} onValueChange={setTime} minuteStep={15} />
918
+ <DateTimeInput value={iso} onValueChange={setIso} />
919
+ ```
920
+
921
+ ## base/dialog
922
+
923
+ ```tsx
924
+ import { … } from "themelia-ui/base/dialog"
925
+ import "themelia-ui/base/dialog.css"
926
+ ```
927
+
928
+ Preview route: Dialog — `/dialog`
929
+
930
+ ### Dialog
931
+
932
+ ```tsx
933
+ <Dialog>
934
+ <DialogTrigger render={<Button>Open</Button>} />
935
+ <DialogContent>
936
+ <DialogHeader><DialogTitle>Title</DialogTitle></DialogHeader>
937
+ <DialogBody>…</DialogBody>
938
+ <DialogFooter>
939
+ <DialogDismissArea>
940
+ <Button>Cancel</Button><Button>Save</Button>
941
+ </DialogDismissArea>
942
+ </DialogFooter>
943
+ </DialogContent>
944
+ </Dialog>
945
+
946
+ {/* or per-action: */}
947
+ <DialogClose render={<Button>Cancel</Button>} />
948
+ ```
949
+
950
+ ### Bare surface
951
+
952
+ ```tsx
953
+ <DialogContent surface="bare" showCloseButton={false}>
954
+ ```
955
+
956
+ ### Where focus lands
957
+
958
+ ```tsx
959
+ const nameRef = useRef<HTMLInputElement>(null)
960
+
961
+ <DialogContent initialFocusRef={nameRef}>
962
+ <Input ref={nameRef} />
963
+ </DialogContent>
964
+ ```
965
+
966
+ ## base/display
967
+
968
+ ```tsx
969
+ import { … } from "themelia-ui/base/display"
970
+ import "themelia-ui/base/display.css"
971
+ ```
972
+
973
+ Preview route: Collapsible — `/collapsible`
974
+
975
+ ### Collapsible
976
+
977
+ ```tsx
978
+ <Collapsible>
979
+ <CollapsibleTrigger>Advanced options</CollapsibleTrigger>
980
+ <CollapsibleContent>…</CollapsibleContent>
981
+ </Collapsible>
982
+ ```
983
+
984
+ ### Four surfaces
985
+
986
+ ```tsx
987
+ <ContentBlock surface="card" title="Contract" description="…">
988
+ …
989
+ </ContentBlock>
990
+ ```
991
+
992
+ ### flush
993
+
994
+ ```tsx
995
+ <ContentBlock surface="card" flush>
996
+ <ItemGroup ruled>…</ItemGroup>
997
+ </ContentBlock>
998
+ ```
999
+
1000
+ ### The header assembles itself
1001
+
1002
+ ```tsx
1003
+ <ContentBlock
1004
+ icon={<TruckIcon />}
1005
+ title="Shipment"
1006
+ titleSuffix={<Badge tone="info">In transit</Badge>}
1007
+ headerEnd={<Button buttonStyle="ghost">Track</Button>}
1008
+ />
1009
+ ```
1010
+
1011
+ ### IconBadge
1012
+
1013
+ ```tsx
1014
+ <IconBadge icon={CreditCardIcon} tone="success" />
1015
+ <IconBadge icon={CreditCardIcon} tone="success" shape="circle" solid />
1016
+ ```
1017
+
1018
+ ### DateBlock
1019
+
1020
+ ```tsx
1021
+ <DateBlock date="2026-08-16" />
1022
+ ```
1023
+
1024
+ ### PlaceholderPattern
1025
+
1026
+ ```tsx
1027
+ <PlaceholderPattern style={{ height: "8rem" }} />
1028
+ ```
1029
+
1030
+ ### DirectionProvider and Slot
1031
+
1032
+ ```tsx
1033
+ <DirectionProvider direction="rtl">
1034
+ <Stack>…</Stack>
1035
+ </DirectionProvider>
1036
+
1037
+ // render is Slot:
1038
+ <OverlayTrigger render={<Button>Open</Button>} />
1039
+ ```
1040
+
1041
+ ### between
1042
+
1043
+ ```tsx
1044
+ <InlineStat label="Subtotal" value="€ 1,240.00" mono />
1045
+ ```
1046
+
1047
+ ### inline
1048
+
1049
+ ```tsx
1050
+ <InlineStat layout="inline" label="Version" value="v3.2" mono />
1051
+ ```
1052
+
1053
+ ### stacked
1054
+
1055
+ ```tsx
1056
+ <InlineStat layout="stacked" label="Open invoices" value="14" mono />
1057
+ ```
1058
+
1059
+ ### grid
1060
+
1061
+ ```tsx
1062
+ <MetadataList
1063
+ columns={3}
1064
+ items={[
1065
+ { label: "Reference", value: { kind: "mono", value: "INV-4417" } },
1066
+ { label: "Amount", value: { kind: "money", value: 48200, currency: "USD" } },
1067
+ { label: "Status", value: { kind: "badge", value: "Overdue", badgeTone: "destructive" } },
1068
+ ]}
1069
+ />
1070
+ ```
1071
+
1072
+ ### rows
1073
+
1074
+ ```tsx
1075
+ <MetadataList layout="rows" itemSeparator items={facts} />
1076
+ ```
1077
+
1078
+ ### inline
1079
+
1080
+ ```tsx
1081
+ <MetadataList layout="inline" itemSeparator items={summary} />
1082
+ ```
1083
+
1084
+ ### density
1085
+
1086
+ ```tsx
1087
+ <MetadataList density="compact" columns={2} items={facts} />
1088
+ ```
1089
+
1090
+ ### ScrollArea
1091
+
1092
+ ```tsx
1093
+ <ScrollArea style={{ maxHeight: "8rem" }}>…</ScrollArea>
1094
+ ```
1095
+
1096
+ ### BooleanIndicator
1097
+
1098
+ ```tsx
1099
+ <BooleanIndicator value strings={{ true: "Active", false: "Paused" }} />
1100
+ ```
1101
+
1102
+ ### VisuallyHidden
1103
+
1104
+ ```tsx
1105
+ <Text>
1106
+ Saved
1107
+ <VisuallyHidden> at 09:32 by Jane McDonald</VisuallyHidden>
1108
+ </Text>
1109
+ ```
1110
+
1111
+ ### Separator
1112
+
1113
+ ```tsx
1114
+ <Separator />
1115
+ <Separator label="OR" />
1116
+ <Separator orientation="vertical" />
1117
+ ```
1118
+
1119
+ ### Variants and thickness
1120
+
1121
+ ```tsx
1122
+ <Separator variant="dashed" />
1123
+ <Separator variant="dotted" />
1124
+ <Separator thickness={2} />
1125
+ ```
1126
+
1127
+ ## base/dropdown-menu
1128
+
1129
+ ```tsx
1130
+ import { … } from "themelia-ui/base/dropdown-menu"
1131
+ import "themelia-ui/base/dropdown-menu.css"
1132
+ ```
1133
+
1134
+ Preview route: Dropdown menu — `/dropdown-menu`
1135
+
1136
+ ### Dropdown menu
1137
+
1138
+ ```tsx
1139
+ <DropdownMenu>
1140
+ <DropdownMenuTrigger render={<Button />}>Open</DropdownMenuTrigger>
1141
+ <DropdownMenuContent>
1142
+ <DropdownMenuItem>Edit</DropdownMenuItem>
1143
+ <DropdownMenuSeparator />
1144
+ <DropdownMenuSub>…</DropdownMenuSub>
1145
+ </DropdownMenuContent>
1146
+ </DropdownMenu>
1147
+ ```
1148
+
1149
+ ## base/feedback
1150
+
1151
+ ```tsx
1152
+ import { … } from "themelia-ui/base/feedback"
1153
+ import "themelia-ui/base/feedback.css"
1154
+ ```
1155
+
1156
+ Preview route: Alert — `/alert`
1157
+
1158
+ ### Alert
1159
+
1160
+ ```tsx
1161
+ <Alert tone="warning">
1162
+ <AlertTitle>Approaching your limit</AlertTitle>
1163
+ <AlertDescription>You have used 90% of your quota.</AlertDescription>
1164
+ </Alert>
1165
+ ```
1166
+
1167
+ ### Alert layout
1168
+
1169
+ ```tsx
1170
+ <Alert tone="destructive" icon={<TriangleAlertIcon />}>
1171
+ <AlertTitle>Payment failed</AlertTitle>
1172
+ <AlertDescription>…</AlertDescription>
1173
+ <AlertAction><Button>Retry</Button></AlertAction>
1174
+ </Alert>
1175
+ ```
1176
+
1177
+ ### Empty
1178
+
1179
+ ```tsx
1180
+ <Empty
1181
+ media={<InboxIcon />}
1182
+ mediaVariant="icon"
1183
+ title="No invoices yet"
1184
+ description="Invoices appear here once a customer is billed."
1185
+ action={<Button>Create invoice</Button>}
1186
+ />
1187
+ ```
1188
+
1189
+ ### How the media is dressed
1190
+
1191
+ ```tsx
1192
+ <Empty mediaVariant="icon" media={<SearchIcon />} … />
1193
+ <Empty mediaVariant="illustration" media={<SearchGlassIllustration />} … />
1194
+ ```
1195
+
1196
+ ### The illustration set
1197
+
1198
+ ```tsx
1199
+ import { StackedCardsIllustration } from "themelia-ui/base/feedback"
1200
+
1201
+ <Empty
1202
+ mediaVariant="illustration"
1203
+ media={<StackedCardsIllustration />}
1204
+ title="No products yet"
1205
+ />
1206
+ ```
1207
+
1208
+ ### padding and border
1209
+
1210
+ ```tsx
1211
+ <Empty padding="sm" border title="No filters" description="…" />
1212
+ ```
1213
+
1214
+ ### Progress
1215
+
1216
+ ```tsx
1217
+ <Progress value={64} label="Upload" />
1218
+ <Progress label="Working" /> {/* indeterminate */}
1219
+ ```
1220
+
1221
+ ### ProgressCircle
1222
+
1223
+ ```tsx
1224
+ <ProgressCircle value={72} tone="warning" label="Title length">
1225
+ <Text tag="span" size="xs" weight="semibold" numeric>72%</Text>
1226
+ </ProgressCircle>
1227
+ ```
1228
+
1229
+ ## base/forms
1230
+
1231
+ ```tsx
1232
+ import { … } from "themelia-ui/base/forms"
1233
+ import "themelia-ui/base/forms.css"
1234
+ ```
1235
+
1236
+ Preview route: Form field — `/form-field`
1237
+
1238
+ ### FormField
1239
+
1240
+ ```tsx
1241
+ <FormField
1242
+ label="Email"
1243
+ required
1244
+ hint="We only use this for receipts."
1245
+ error={errors.email}
1246
+ >
1247
+ <Input type="email" />
1248
+ </FormField>
1249
+ ```
1250
+
1251
+ ### Custom control composition
1252
+
1253
+ ```tsx
1254
+ <FormField label="Weight" error={errors.weight}>
1255
+ {(fieldProps) => (
1256
+ <FieldShell {...fieldProps} end="kg">
1257
+ {(controlProps) => <WrappedNumberInput controlProps={controlProps} />}
1258
+ </FieldShell>
1259
+ )}
1260
+ </FormField>
1261
+ ```
1262
+
1263
+ ### Horizontal fields
1264
+
1265
+ ```tsx
1266
+ <FormField orientation="horizontal" label="Display name">
1267
+ <Input />
1268
+ </FormField>
1269
+ ```
1270
+
1271
+ ### Scale
1272
+
1273
+ ```tsx
1274
+ <Scope vars={{ "--density-scale": 0.875 }}>…</Scope>
1275
+ ```
1276
+
1277
+ ### FieldGroup
1278
+
1279
+ ```tsx
1280
+ <FieldGroup legend="Reporting period" description="Both ends are inclusive.">
1281
+ <FormField label="From"><Input type="date" /></FormField>
1282
+ <FormField label="To"><Input type="date" /></FormField>
1283
+ </FieldGroup>
1284
+ ```
1285
+
1286
+ ### FormSection
1287
+
1288
+ ```tsx
1289
+ <FormSection title="Billing" description="Where invoices go." actions={<Button>Edit</Button>}>
1290
+ <FormField label="Company">…</FormField>
1291
+ </FormSection>
1292
+ ```
1293
+
1294
+ ### FormActionsBar
1295
+
1296
+ ```tsx
1297
+ <FormActionsBar leading={<Text size="xs" type="secondary">Saved 2 minutes ago</Text>}>
1298
+ <Button buttonStyle="outline">Discard</Button>
1299
+ <Button>Save</Button>
1300
+ </FormActionsBar>
1301
+ ```
1302
+
1303
+ ### ErrorSummary
1304
+
1305
+ ```tsx
1306
+ <ErrorSummary
1307
+ errors={["Name is required.", "Email is not valid."]}
1308
+ action={<Button buttonStyle="outline">Review the first problem</Button>}
1309
+ />
1310
+ ```
1311
+
1312
+ ### DirtyStateBanner
1313
+
1314
+ ```tsx
1315
+ <DirtyStateBanner actions={<><Button buttonStyle="outline">Discard</Button><Button>Save</Button></>} />
1316
+ ```
1317
+
1318
+ ### SubmitStateButton
1319
+
1320
+ ```tsx
1321
+ <SubmitStateButton state={state} />
1322
+ ```
1323
+
1324
+ ### LoadingState and ErrorState
1325
+
1326
+ ```tsx
1327
+ <LoadingState />
1328
+ <ErrorState onRetry={refetch} />
1329
+ ```
1330
+
1331
+ ## base/forms-numeric
1332
+
1333
+ ```tsx
1334
+ import { … } from "themelia-ui/base/forms-numeric"
1335
+ import "themelia-ui/base/forms-numeric.css"
1336
+ ```
1337
+
1338
+ Preview route: Currency input — `/currency-input`
1339
+
1340
+ ### CurrencyInput
1341
+
1342
+ ```tsx
1343
+ <CurrencyInput
1344
+ value={amount}
1345
+ onChange={(e) => setAmount(e.target.value)}
1346
+ currency={currency}
1347
+ onCurrencyChange={setCurrency}
1348
+ />
1349
+ ```
1350
+
1351
+ ### DecimalInput
1352
+
1353
+ ```tsx
1354
+ <DecimalInput decimalPlaces={2} min={0} max={100} step={0.5} />
1355
+ ```
1356
+
1357
+ ### RoundingModeSelect
1358
+
1359
+ ```tsx
1360
+ <RoundingModeSelect value={mode} onValueChange={setMode} />
1361
+ <DecimalInput decimalPlaces={2} roundingMode={mode} />
1362
+ ```
1363
+
1364
+ ### PercentageInput
1365
+
1366
+ ```tsx
1367
+ <PercentageInput defaultValue="21" />
1368
+ ```
1369
+
1370
+ ### Weight, dimensions, coordinates
1371
+
1372
+ ```tsx
1373
+ <WeightInput value={weight} onChange={(e) => setWeight(e.target.value)} />
1374
+ <DimensionsInput value={dimensions} onValueChange={setDimensions} />
1375
+ <CoordinatesInput value={coordinates} onValueChange={setCoordinates} />
1376
+ ```
1377
+
1378
+ ## base/input-group
1379
+
1380
+ ```tsx
1381
+ import { … } from "themelia-ui/base/input-group"
1382
+ import "themelia-ui/base/input-group.css"
1383
+ ```
1384
+
1385
+ Preview route: Input group — `/input-group`
1386
+
1387
+ ### Attached along the line
1388
+
1389
+ ```tsx
1390
+ <InputGroup>
1391
+ <InputGroupAddon><SearchIcon /></InputGroupAddon>
1392
+ <InputGroupInput placeholder="Search orders" />
1393
+ </InputGroup>
1394
+ ```
1395
+
1396
+ ### Attached above or below
1397
+
1398
+ ```tsx
1399
+ <InputGroup>
1400
+ <InputGroupTextarea placeholder="Write a note" />
1401
+ <InputGroupAddon align="block-end">
1402
+ <InputGroupText>Markdown supported</InputGroupText>
1403
+ </InputGroupAddon>
1404
+ </InputGroup>
1405
+ ```
1406
+
1407
+ ### Button sizes inside the shell
1408
+
1409
+ ```tsx
1410
+ <InputGroupButton size="icon-xs" aria-label="Go"><ArrowRightIcon /></InputGroupButton>
1411
+ ```
1412
+
1413
+ ## base/item
1414
+
1415
+ ```tsx
1416
+ import { … } from "themelia-ui/base/item"
1417
+ import "themelia-ui/base/item.css"
1418
+ ```
1419
+
1420
+ Preview route: Item — `/item`
1421
+
1422
+ ### Item
1423
+
1424
+ ```tsx
1425
+ <ItemGroup>
1426
+ <Item>
1427
+ <ItemMedia variant="image"><Avatar /></ItemMedia>
1428
+ <ItemContent>
1429
+ <ItemTitle>Jane McDonald</ItemTitle>
1430
+ <ItemDescription>jane@example.com</ItemDescription>
1431
+ </ItemContent>
1432
+ <ItemActions><Badge>Active</Badge></ItemActions>
1433
+ </Item>
1434
+ </ItemGroup>
1435
+ ```
1436
+
1437
+ ### Density
1438
+
1439
+ ```tsx
1440
+ <Scope vars={{ "--density-scale": 0.85 }}>
1441
+ <ItemGroup>…</ItemGroup>
1442
+ </Scope>
1443
+ ```
1444
+
1445
+ ### A ruled group
1446
+
1447
+ ```tsx
1448
+ <ItemGroup ruled>
1449
+ <Item>…</Item>
1450
+ <Item>…</Item>
1451
+ </ItemGroup>
1452
+ ```
1453
+
1454
+ ## base/label
1455
+
1456
+ ```tsx
1457
+ import { … } from "themelia-ui/base/label"
1458
+ import "themelia-ui/base/label.css"
1459
+ ```
1460
+
1461
+ Preview route: Label — `/label`
1462
+
1463
+ ### Label
1464
+
1465
+ ```tsx
1466
+ <Label htmlFor="email">Email</Label>
1467
+ <Input id="email" />
1468
+ ```
1469
+
1470
+ ## base/menubar
1471
+
1472
+ ```tsx
1473
+ import { … } from "themelia-ui/base/menubar"
1474
+ import "themelia-ui/base/menubar.css"
1475
+ ```
1476
+
1477
+ Preview route: Menubar & hover card — `/menubar`
1478
+
1479
+ ### Menubar
1480
+
1481
+ ```tsx
1482
+ <Menubar>
1483
+ <MenubarMenu>
1484
+ <MenubarTrigger>File</MenubarTrigger>
1485
+ <MenubarContent>
1486
+ <MenubarItem>New <MenubarShortcut>⌘N</MenubarShortcut></MenubarItem>
1487
+ </MenubarContent>
1488
+ </MenubarMenu>
1489
+ </Menubar>
1490
+ ```
1491
+
1492
+ ### HoverCard
1493
+
1494
+ ```tsx
1495
+ <HoverCard>
1496
+ <HoverCardTrigger render={<TextLink />}>@jane</HoverCardTrigger>
1497
+ <HoverCardContent>…</HoverCardContent>
1498
+ </HoverCard>
1499
+ ```
1500
+
1501
+ ### Resizable
1502
+
1503
+ ```tsx
1504
+ <ResizablePanelGroup orientation="horizontal" autoSaveId="inspector">
1505
+ <ResizablePanel defaultSize={65}>…</ResizablePanel>
1506
+ <ResizableHandle withHandle />
1507
+ <ResizablePanel defaultSize={35}>…</ResizablePanel>
1508
+ </ResizablePanelGroup>
1509
+ ```
1510
+
1511
+ ### OtpInput
1512
+
1513
+ ```tsx
1514
+ <OtpInput length={6} groupSize={3} value={code} onValueChange={setCode} />
1515
+ ```
1516
+
1517
+ ### AspectRatio
1518
+
1519
+ ```tsx
1520
+ <AspectRatio ratio={16 / 9}>
1521
+ <img src={cover} alt="" />
1522
+ </AspectRatio>
1523
+ ```
1524
+
1525
+ ### Kbd
1526
+
1527
+ ```tsx
1528
+ <Kbd>⌘K</Kbd>
1529
+ ```
1530
+
1531
+ ## base/navigation
1532
+
1533
+ ```tsx
1534
+ import { … } from "themelia-ui/base/navigation"
1535
+ import "themelia-ui/base/navigation.css"
1536
+ ```
1537
+
1538
+ Preview route: Breadcrumbs — `/breadcrumbs`
1539
+
1540
+ ### Breadcrumbs
1541
+
1542
+ ```tsx
1543
+ <Breadcrumbs
1544
+ items={[
1545
+ { label: "Home", href: "/" },
1546
+ { label: "Orders", href: "/orders" },
1547
+ { label: "Order 4417" },
1548
+ ]}
1549
+ />
1550
+ ```
1551
+
1552
+ ### Pagination
1553
+
1554
+ ```tsx
1555
+ <Pagination page={page} total={128} onPageChange={setPage} />
1556
+ ```
1557
+
1558
+ ### Arrows, and what they are made of
1559
+
1560
+ ```tsx
1561
+ <Pagination labels="text" … />
1562
+ <Pagination labels="icon" … />
1563
+ <Pagination numbers={false} page={3} total={12} … />
1564
+ ```
1565
+
1566
+ ### A pager is navigation
1567
+
1568
+ ```tsx
1569
+ <Pagination
1570
+ page={page}
1571
+ total={128}
1572
+ onPageChange={setPage}
1573
+ renderLink={(page, props) => <Link href={`?page=${page}\
1574
+ ```
1575
+
1576
+ ### Tabs
1577
+
1578
+ ```tsx
1579
+ <Tabs value={tab} onValueChange={setTab}>
1580
+ <TabList label="Sections">
1581
+ <Tab value="overview">Overview</Tab>
1582
+ <Tab value="activity">Activity</Tab>
1583
+ </TabList>
1584
+ <TabPanel value="overview">…</TabPanel>
1585
+ </Tabs>
1586
+ ```
1587
+
1588
+ ### OverflowTabBar
1589
+
1590
+ ```tsx
1591
+ <OverflowTabBar
1592
+ items={[
1593
+ { id: "overview", label: "Overview" },
1594
+ { id: "activity", label: "Activity", badge: <Badge tone="neutral">3</Badge> },
1595
+ { id: "billing", label: "Billing", href: "/billing" },
1596
+ ]}
1597
+ value={tab}
1598
+ onValueChange={setTab}
1599
+ />
1600
+ ```
1601
+
1602
+ ## base/overlay
1603
+
1604
+ ```tsx
1605
+ import { … } from "themelia-ui/base/overlay"
1606
+ import "themelia-ui/base/overlay.css"
1607
+ ```
1608
+
1609
+ Preview route: Overlay — `/overlay`
1610
+
1611
+ ### placement
1612
+
1613
+ ```tsx
1614
+ <Overlay>
1615
+ <OverlayTrigger render={<Button>Open</Button>} />
1616
+ <OverlayContent placement="inline-end">
1617
+ <OverlayHeader>…</OverlayHeader>
1618
+ <OverlayBody>…</OverlayBody>
1619
+ </OverlayContent>
1620
+ </Overlay>
1621
+ ```
1622
+
1623
+ ### modality
1624
+
1625
+ ```tsx
1626
+ <OverlayContent placement="inline-end" modality="trap-focus" />
1627
+ ```
1628
+
1629
+ ### size, length and inset
1630
+
1631
+ ```tsx
1632
+ <OverlayContent placement="inline-end" size="lg" length="95%" inset />
1633
+ ```
1634
+
1635
+ ### dismissal
1636
+
1637
+ ```tsx
1638
+ <OverlayContent dismissal={{ backdrop: false, escape: false }} />
1639
+ ```
1640
+
1641
+ ### Controlled
1642
+
1643
+ ```tsx
1644
+ <Overlay open={open} onOpenChange={setOpen}>
1645
+ <OverlayContent>…</OverlayContent>
1646
+ </Overlay>
1647
+ ```
1648
+
1649
+ ## base/popover
1650
+
1651
+ ```tsx
1652
+ import { … } from "themelia-ui/base/popover"
1653
+ import "themelia-ui/base/popover.css"
1654
+ ```
1655
+
1656
+ Preview route: Popover — `/popover`
1657
+
1658
+ ### Anatomy
1659
+
1660
+ ```tsx
1661
+ <Popover>
1662
+ <PopoverTrigger render={<Button>Filters</Button>} />
1663
+ <PopoverContent>
1664
+ <PopoverHeader>
1665
+ <PopoverTitle>Filters</PopoverTitle>
1666
+ <PopoverDescription>Narrow the list.</PopoverDescription>
1667
+ </PopoverHeader>
1668
+ …
1669
+ <PopoverFooter>…</PopoverFooter>
1670
+ </PopoverContent>
1671
+ </Popover>
1672
+ ```
1673
+
1674
+ ### side, align and width
1675
+
1676
+ ```tsx
1677
+ <PopoverContent side="right" align="start" width="trigger" />
1678
+ ```
1679
+
1680
+ ### PopoverAnchor
1681
+
1682
+ ```tsx
1683
+ <Popover>
1684
+ <PopoverAnchor>
1685
+ <Text>The panel points here…</Text>
1686
+ </PopoverAnchor>
1687
+ <PopoverTrigger render={<Button>…but this opens it</Button>} />
1688
+ <PopoverContent>…</PopoverContent>
1689
+ </Popover>
1690
+ ```
1691
+
1692
+ ## base/popover-menu
1693
+
1694
+ ```tsx
1695
+ import { … } from "themelia-ui/base/popover-menu"
1696
+ import "themelia-ui/base/popover-menu.css"
1697
+ ```
1698
+
1699
+ Preview route: Popover menu — `/popover-menu`
1700
+
1701
+ ### PopoverMenu
1702
+
1703
+ ```tsx
1704
+ <PopoverMenu
1705
+ trigger={<Button buttonStyle="outline">Owner</Button>}
1706
+ items={owners}
1707
+ onSelect={(item) => setOwner(item.value)}
1708
+ />
1709
+ ```
1710
+
1711
+ ## base/qr-code
1712
+
1713
+ ```tsx
1714
+ import { … } from "themelia-ui/base/qr-code"
1715
+ import "themelia-ui/base/qr-code.css"
1716
+ ```
1717
+
1718
+ Preview route: QR code — `/qr-code`
1719
+
1720
+ ### QRCode
1721
+
1722
+ ```tsx
1723
+ <QRCode value={url} robustness="M" />
1724
+ ```
1725
+
1726
+ ## base/repeaters
1727
+
1728
+ ```tsx
1729
+ import { … } from "themelia-ui/base/repeaters"
1730
+ import "themelia-ui/base/repeaters.css"
1731
+ ```
1732
+
1733
+ Preview route: Repeater — `/repeater`
1734
+
1735
+ ### Repeater
1736
+
1737
+ ```tsx
1738
+ <Repeater
1739
+ items={contacts}
1740
+ getKey={(contact) => contact.id}
1741
+ onAdd={() => setContacts([...contacts, blank()])}
1742
+ onRemove={(index) => setContacts(contacts.filter((_, i) => i !== index))}
1743
+ onMove={move}
1744
+ rowVariant="card"
1745
+ >
1746
+ {(contact, { index }) => (
1747
+ <Stack direction="horizontal" gap="md">
1748
+ <Input value={contact.name} onChange={…} aria-label="Name" />
1749
+ <Input value={contact.email} onChange={…} aria-label="Email" />
1750
+ </Stack>
1751
+ )}
1752
+ </Repeater>
1753
+ ```
1754
+
1755
+ ### StringRepeater
1756
+
1757
+ ```tsx
1758
+ <StringRepeater value={domains} onValueChange={setDomains} sortable />
1759
+ ```
1760
+
1761
+ ### KeyValueEditor
1762
+
1763
+ ```tsx
1764
+ <KeyValueEditor value={headers} onValueChange={setHeaders} sortable />
1765
+ ```
1766
+
1767
+ ### LocalizedStringField
1768
+
1769
+ ```tsx
1770
+ <LocalizedStringField
1771
+ locales={[{ value: "en", label: "English" }, { value: "nl", label: "Nederlands" }]}
1772
+ value={name}
1773
+ onValueChange={setName}
1774
+ />
1775
+ ```
1776
+
1777
+ ## base/sheet
1778
+
1779
+ ```tsx
1780
+ import { … } from "themelia-ui/base/sheet"
1781
+ import "themelia-ui/base/sheet.css"
1782
+ ```
1783
+
1784
+ Preview route: Sheet — `/sheet`
1785
+
1786
+ ### Sheet
1787
+
1788
+ ```tsx
1789
+ <SheetContent side="inline-end" />
1790
+ ```
1791
+
1792
+ ### Size, length, and inset
1793
+
1794
+ ```tsx
1795
+ {/* the default: welded to the edge */}
1796
+ <SheetContent side="inline-end" size="md" />
1797
+
1798
+ {/* a tall dialog from the corner — the offset is the whole shape */}
1799
+ <SheetContent side="inline-end" size="28rem" inset />
1800
+
1801
+ {/* shorter still, centred in what the offset left */}
1802
+ <SheetContent side="inline-end" size="28rem" length="70%" inset />
1803
+ ```
1804
+
1805
+ ### Decided once, not per call site
1806
+
1807
+ ```tsx
1808
+ <UIProvider config={{ defaults: { sheet: { size: "26rem", inset: true } } }}>
1809
+ <App />
1810
+ </UIProvider>
1811
+ ```
1812
+
1813
+ ### Modality
1814
+
1815
+ ```tsx
1816
+ <SheetContent modality="non-modal" />
1817
+ ```
1818
+
1819
+ ## base/sidebar
1820
+
1821
+ ```tsx
1822
+ import { … } from "themelia-ui/base/sidebar"
1823
+ import "themelia-ui/base/sidebar.css"
1824
+ ```
1825
+
1826
+ Preview route: Sidebar — `/sidebar`
1827
+
1828
+ ### Anatomy
1829
+
1830
+ ```tsx
1831
+ <SidebarProvider>
1832
+ <Sidebar>
1833
+ <SidebarHeader>…</SidebarHeader>
1834
+ <SidebarContent>
1835
+ <SidebarGroup>
1836
+ <SidebarGroupLabel>Workspace</SidebarGroupLabel>
1837
+ <SidebarGroupContent>
1838
+ <SidebarMenu>
1839
+ <SidebarMenuItem>
1840
+ <SidebarMenuButton active>…</SidebarMenuButton>
1841
+ <SidebarMenuBadge>12</SidebarMenuBadge>
1842
+ </SidebarMenuItem>
1843
+ </SidebarMenu>
1844
+ </SidebarGroupContent>
1845
+ </SidebarGroup>
1846
+ </SidebarContent>
1847
+ <SidebarFooter>…</SidebarFooter>
1848
+ <SidebarRail />
1849
+ </Sidebar>
1850
+ <SidebarInset>…</SidebarInset>
1851
+ </SidebarProvider>
1852
+ ```
1853
+
1854
+ ### variant
1855
+
1856
+ ```tsx
1857
+ <Sidebar variant="floating" />
1858
+ ```
1859
+
1860
+ ### collapsible
1861
+
1862
+ ```tsx
1863
+ <Sidebar collapsible="icon" />
1864
+ ```
1865
+
1866
+ ### Controlled
1867
+
1868
+ ```tsx
1869
+ <SidebarProvider open={open} onOpenChange={setOpen}>…</SidebarProvider>
1870
+ ```
1871
+
1872
+ ## base/skeleton
1873
+
1874
+ ```tsx
1875
+ import { … } from "themelia-ui/base/skeleton"
1876
+ import "themelia-ui/base/skeleton.css"
1877
+ ```
1878
+
1879
+ Preview route: Skeleton — `/skeleton`
1880
+
1881
+ ### Skeleton
1882
+
1883
+ ```tsx
1884
+ <Skeleton style={{ width: "12rem", height: "1rem" }} />
1885
+ ```
1886
+
1887
+ ### Composed skeletons
1888
+
1889
+ ```tsx
1890
+ <ContentSkeleton lines={3} />
1891
+ <TableSkeleton rows={4} columns={3} />
1892
+ <PageSkeleton blocks={2} />
1893
+ <TwoColumnPageSkeleton />
1894
+ ```
1895
+
1896
+ ## base/spinner
1897
+
1898
+ ```tsx
1899
+ import { … } from "themelia-ui/base/spinner"
1900
+ import "themelia-ui/base/spinner.css"
1901
+ ```
1902
+
1903
+ Preview route: Spinner — `/spinner`
1904
+
1905
+ ### Spinner
1906
+
1907
+ ```tsx
1908
+ <Spinner label="Saving…" /> {/* announced */}
1909
+ <Spinner /> {/* decorative, aria-hidden */}
1910
+ ```
1911
+
1912
+ ### Size
1913
+
1914
+ ```tsx
1915
+ <Spinner size="sm" />
1916
+ <Spinner size="md" />
1917
+ <Spinner size="lg" />
1918
+ ```
1919
+
1920
+ ### Tone
1921
+
1922
+ ```tsx
1923
+ <Spinner tone="neutral" />
1924
+ <Spinner tone="success" />
1925
+ ```
1926
+
1927
+ ## base/structure
1928
+
1929
+ ```tsx
1930
+ import { … } from "themelia-ui/base/structure"
1931
+ import "themelia-ui/base/structure.css"
1932
+ ```
1933
+
1934
+ Preview route: Stack & Grid — `/structure`
1935
+
1936
+ ### Stack
1937
+
1938
+ ```tsx
1939
+ <Stack gap="sm">…</Stack>
1940
+ <Stack direction="horizontal" justify="between" align="center">…</Stack>
1941
+ ```
1942
+
1943
+ ### Responsive props
1944
+
1945
+ ```tsx
1946
+ <Stack direction={{ base: "vertical", md: "horizontal" }} gap={{ base: "xs", md: "xl" }}>
1947
+ ```
1948
+
1949
+ ### Grid
1950
+
1951
+ ```tsx
1952
+ <Grid columns={{ base: 1, md: 3 }}>
1953
+ <GridCell span="full">…</GridCell>
1954
+ </Grid>
1955
+ ```
1956
+
1957
+ ### AdaptiveGrid
1958
+
1959
+ ```tsx
1960
+ <AdaptiveGrid minColumnWidth="sm">…</AdaptiveGrid>
1961
+ ```
1962
+
1963
+ ### Split
1964
+
1965
+ ```tsx
1966
+ <Split sideWidth="14rem" gap="md">
1967
+ <Box>main</Box>
1968
+ <Box>side</Box>
1969
+ </Split>
1970
+ ```
1971
+
1972
+ ### Bleed
1973
+
1974
+ ```tsx
1975
+ <Bleed amount="md">
1976
+ <img … />
1977
+ </Bleed>
1978
+ ```
1979
+
1980
+ ## base/table
1981
+
1982
+ ```tsx
1983
+ import { … } from "themelia-ui/base/table"
1984
+ import "themelia-ui/base/table.css"
1985
+ ```
1986
+
1987
+ Preview route: Table — `/table`
1988
+
1989
+ ### Table
1990
+
1991
+ ```tsx
1992
+ <Table>
1993
+ <TableHeader>
1994
+ <TableRow><TableHead>Invoice</TableHead>…</TableRow>
1995
+ </TableHeader>
1996
+ <TableBody>
1997
+ <TableRow>
1998
+ <TableCell>INV-4417</TableCell>
1999
+ <TableCell align="end"><Money amount={1299.5} /></TableCell>
2000
+ </TableRow>
2001
+ </TableBody>
2002
+ </Table>
2003
+ ```
2004
+
2005
+ ### Selection
2006
+
2007
+ ```tsx
2008
+ <TableRow data-state={isSelected ? "selected" : undefined}>
2009
+ <TableCell><Checkbox … /></TableCell>
2010
+ …
2011
+ </TableRow>
2012
+ ```
2013
+
2014
+ ### Overflow
2015
+
2016
+ ```tsx
2017
+ <Scope vars={{ "--density-scale": 0.85 }}>
2018
+ <Table>…</Table>
2019
+ </Scope>
2020
+ ```
2021
+
2022
+ ### Sortable columns
2023
+
2024
+ ```tsx
2025
+ <TableHead
2026
+ sortable
2027
+ sortDirection={sort.key === "amount" ? sort.direction : null}
2028
+ onSort={() => toggleSort("amount")}
2029
+ align="end"
2030
+ >
2031
+ Amount
2032
+ </TableHead>
2033
+ ```
2034
+
2035
+ ### Empty and sticky
2036
+
2037
+ ```tsx
2038
+ <TableBody>
2039
+ {rows.length === 0 ? <TableEmpty colSpan={4} /> : rows.map(…)}
2040
+ </TableBody>
2041
+
2042
+ <Table stickyHeader containerClassName="…max-height…">
2043
+ ```
2044
+
2045
+ ## base/text-inputs
2046
+
2047
+ ```tsx
2048
+ import { … } from "themelia-ui/base/text-inputs"
2049
+ import "themelia-ui/base/text-inputs.css"
2050
+ ```
2051
+
2052
+ Preview route: Input — `/input`
2053
+
2054
+ ### One shared surface
2055
+
2056
+ ```tsx
2057
+ /* styles/fields.css */
2058
+ [data-field-control] {
2059
+ height: var(--field-h);
2060
+ border: 1px solid var(--input);
2061
+ box-shadow: var(--shadow-xs);
2062
+ }
2063
+ [data-field-control]:focus-visible { box-shadow: var(--focus-ring); }
2064
+ [data-field-control][aria-invalid="true"] { box-shadow: var(--invalid-ring); }
2065
+ ```
2066
+
2067
+ ### States
2068
+
2069
+ ```tsx
2070
+ <Input aria-invalid="true" />
2071
+ <Input disabled />
2072
+ ```
2073
+
2074
+ ### Inline affordances
2075
+
2076
+ ```tsx
2077
+ <FieldShell start={<SearchIcon />} end={<Button>Go</Button>}>
2078
+ <Input />
2079
+ </FieldShell>
2080
+
2081
+ <PasswordInput />
2082
+ <SearchInput value={q} onChange={…} onClear={…} />
2083
+ ```
2084
+
2085
+ ### Password input
2086
+
2087
+ ```tsx
2088
+ <PasswordInput placeholder="Password" />
2089
+ ```
2090
+
2091
+ ### Search input
2092
+
2093
+ ```tsx
2094
+ <SearchInput value={query} onChange={(e) => setQuery(e.target.value)} onClear={() => setQuery("")} />
2095
+ ```
2096
+
2097
+ ### SlugField
2098
+
2099
+ ```tsx
2100
+ <SlugField value={title} prefix="acme.com/" />
2101
+ ```
2102
+
2103
+ ### Textarea
2104
+
2105
+ ```tsx
2106
+ <Textarea rows={4} placeholder="Notes" />
2107
+ <Textarea showCharacterCount maxLength={280} />
2108
+ ```
2109
+
2110
+ ## base/timeline
2111
+
2112
+ ```tsx
2113
+ import { … } from "themelia-ui/base/timeline"
2114
+ import "themelia-ui/base/timeline.css"
2115
+ ```
2116
+
2117
+ Preview route: Timeline — `/timeline`
2118
+
2119
+ ### An order's progress
2120
+
2121
+ ```tsx
2122
+ <Timeline
2123
+ items={[
2124
+ { id: "placed", title: "Order placed", timestamp: "14 Aug, 09:12", icon: CheckIcon, status: "completed" },
2125
+ { id: "transit", title: "In transit", timestamp: "16 Aug, 06:02", icon: TruckIcon, status: "current" },
2126
+ { id: "delivered", title: "Delivered", timestamp: "Expected 18 Aug", status: "pending" },
2127
+ ]}
2128
+ />
2129
+ ```
2130
+
2131
+ ### Statuses
2132
+
2133
+ ```tsx
2134
+ <Timeline items={[{ id: "1", title: "Packed", status: "completed" }]} />
2135
+ ```
2136
+
2137
+ ### Entries that carry more than a line
2138
+
2139
+ ```tsx
2140
+ <Timeline
2141
+ items={[
2142
+ {
2143
+ id: "refund",
2144
+ title: "Refund issued",
2145
+ status: "warning",
2146
+ children: <Badge tone="warning">Partial</Badge>,
2147
+ },
2148
+ ]}
2149
+ />
2150
+ ```
2151
+
2152
+ ## base/toaster
2153
+
2154
+ ```tsx
2155
+ import { … } from "themelia-ui/base/toaster"
2156
+ import "themelia-ui/base/toaster.css"
2157
+ ```
2158
+
2159
+ Preview route: Toast — `/toast`
2160
+
2161
+ ### Statuses
2162
+
2163
+ ```tsx
2164
+ toast.success("Invoice sent")
2165
+ toast.error("Could not reach the server")
2166
+ toast.loading("Uploading…", { id: "upload" })
2167
+ ```
2168
+
2169
+ ### Actions
2170
+
2171
+ ```tsx
2172
+ toast("Invoice deleted", {
2173
+ action: { label: "Undo", onClick: restore },
2174
+ duration: 8000,
2175
+ })
2176
+ ```
2177
+
2178
+ ### Promise
2179
+
2180
+ ```tsx
2181
+ toast.promise(saveInvoice(), {
2182
+ loading: "Saving…",
2183
+ success: (invoice) => `Saved ${invoice.id}`,
2184
+ error: "Could not save",
2185
+ })
2186
+ ```
2187
+
2188
+ ## base/toggle
2189
+
2190
+ ```tsx
2191
+ import { … } from "themelia-ui/base/toggle"
2192
+ import "themelia-ui/base/toggle.css"
2193
+ ```
2194
+
2195
+ Preview route: Toggle — `/toggle`
2196
+
2197
+ ### Toggle
2198
+
2199
+ ```tsx
2200
+ <Toggle pressed={bold} onPressedChange={setBold} aria-label="Bold">
2201
+ <BoldIcon />
2202
+ </Toggle>
2203
+ ```
2204
+
2205
+ ### ToggleGroup
2206
+
2207
+ ```tsx
2208
+ {/* several at once */}
2209
+ <ToggleGroup multiple value={marks} onValueChange={setMarks}>
2210
+ <ToggleGroupItem value="bold"><BoldIcon /></ToggleGroupItem>
2211
+ </ToggleGroup>
2212
+
2213
+ {/* one at a time */}
2214
+ <ToggleGroup value={[align]} onValueChange={([next]) => setAlign(next)}>
2215
+ ```
2216
+
2217
+ ## base/toolbar
2218
+
2219
+ ```tsx
2220
+ import { … } from "themelia-ui/base/toolbar"
2221
+ import "themelia-ui/base/toolbar.css"
2222
+ ```
2223
+
2224
+ Preview route: Toolbar — `/toolbar`
2225
+
2226
+ ### Formatting controls
2227
+
2228
+ ```tsx
2229
+ <Toolbar aria-label="Formatting">
2230
+ <ToolbarGroup>
2231
+ <ToolbarButton iconOnly aria-label="Bold"><BoldIcon /></ToolbarButton>
2232
+ <ToolbarButton iconOnly aria-label="Italic"><ItalicIcon /></ToolbarButton>
2233
+ </ToolbarGroup>
2234
+ <ToolbarSeparator />
2235
+ <ToolbarInput aria-label="Font size" defaultValue="14" />
2236
+ </Toolbar>
2237
+ ```
2238
+
2239
+ ## base/tooltip
2240
+
2241
+ ```tsx
2242
+ import { … } from "themelia-ui/base/tooltip"
2243
+ import "themelia-ui/base/tooltip.css"
2244
+ ```
2245
+
2246
+ Preview route: Tooltip — `/tooltip`
2247
+
2248
+ ### Tooltip
2249
+
2250
+ ```tsx
2251
+ <Tooltip>
2252
+ <TooltipTrigger render={<Button buttonStyle="outline" tone="neutral" />}>
2253
+ Hover me
2254
+ </TooltipTrigger>
2255
+ <TooltipContent>Explains the control.</TooltipContent>
2256
+ </Tooltip>
2257
+ ```
2258
+
2259
+ ## base/typography
2260
+
2261
+ ```tsx
2262
+ import { … } from "themelia-ui/base/typography"
2263
+ import "themelia-ui/base/typography.css"
2264
+ ```
2265
+
2266
+ Preview route: Typography — `/typography`
2267
+
2268
+ ### Text roles
2269
+
2270
+ ```tsx
2271
+ <Text type="secondary">Supporting copy</Text>
2272
+ ```
2273
+
2274
+ ### Size
2275
+
2276
+ ```tsx
2277
+ <Text size="xs">Metadata</Text>
2278
+ ```
2279
+
2280
+ ### Heading
2281
+
2282
+ ```tsx
2283
+ <Heading level={2} size="lg" subHeading="Supporting line">Title</Heading>
2284
+ ```
2285
+
2286
+ ### Numeric
2287
+
2288
+ ```tsx
2289
+ <Text numeric>1,234,567.89</Text>
2290
+ ```
2291
+
2292
+ ### Alignment
2293
+
2294
+ ```tsx
2295
+ <Text align="right" numeric>1,234.50</Text>
2296
+ ```
2297
+
2298
+ ### Truncation
2299
+
2300
+ ```tsx
2301
+ {/* Stack sets min-width: 0 on itself, so a nested one can still shrink */}
2302
+ <Stack gap="sm">
2303
+ <Text truncate>{veryLongName}</Text>
2304
+ </Stack>
2305
+ ```
2306
+
2307
+ ### DisplayLabel and TextLink
2308
+
2309
+ ```tsx
2310
+ <TextLink render={<RouterLink to="/x" />}>Go</TextLink>
2311
+ ```
2312
+
2313
+ ## base/upload
2314
+
2315
+ ```tsx
2316
+ import { … } from "themelia-ui/base/upload"
2317
+ import "themelia-ui/base/upload.css"
2318
+ ```
2319
+
2320
+ Preview route: File upload — `/file-upload`
2321
+
2322
+ ### FileUpload
2323
+
2324
+ ```tsx
2325
+ <FileUpload
2326
+ multiple
2327
+ accept=".pdf,image/*"
2328
+ maxSizeBytes={5 * 1024 * 1024}
2329
+ maxFiles={4}
2330
+ value={files}
2331
+ onValueChange={setFiles}
2332
+ onRejectedFiles={setRejected}
2333
+ />
2334
+ ```
2335
+
2336
+ ### AvatarUpload and ImageUpload
2337
+
2338
+ ```tsx
2339
+ <AvatarUpload onValueChange={setAvatar} />
2340
+ <ImageUpload previewUrl={coverUrl} onValueChange={setCover} />
2341
+ ```
2342
+
2343
+ ### Upload progress
2344
+
2345
+ ```tsx
2346
+ <UploadProgressList items={items} onRetry={retry} onRemove={remove} />
2347
+ ```
2348
+
2349
+ ### UploadTray
2350
+
2351
+ ```tsx
2352
+ <UploadTray
2353
+ items={items}
2354
+ onAddFiles={start}
2355
+ onRetry={retry}
2356
+ onRemove={remove}
2357
+ onClearAll={clear}
2358
+ />
2359
+ ```
2360
+
2361
+ ### MediaGallery
2362
+
2363
+ ```tsx
2364
+ <MediaGallery
2365
+ value={images}
2366
+ onValueChange={setImages}
2367
+ maxFiles={6}
2368
+ />
2369
+ ```
2370
+
2371
+ ## base/value-inputs
2372
+
2373
+ ```tsx
2374
+ import { … } from "themelia-ui/base/value-inputs"
2375
+ import "themelia-ui/base/value-inputs.css"
2376
+ ```
2377
+
2378
+ Preview route: Color input — `/color-input`
2379
+
2380
+ ### ColorInput
2381
+
2382
+ ```tsx
2383
+ <ColorInput value={color} onValueChange={setColor} />
2384
+ ```
2385
+
2386
+ ### What the picker hands back
2387
+
2388
+ ```tsx
2389
+ <ColorInput format="hex" … />
2390
+ <ColorInput format="rgb" … />
2391
+ <ColorInput format="hsl" … />
2392
+ ```
2393
+
2394
+ ### PhoneInput
2395
+
2396
+ ```tsx
2397
+ <PhoneInput
2398
+ prefix={prefix}
2399
+ onPrefixChange={setPrefix}
2400
+ value={number}
2401
+ onChange={(e) => setNumber(e.target.value)}
2402
+ />
2403
+ ```
2404
+
2405
+ ### SliderField
2406
+
2407
+ ```tsx
2408
+ <SliderField value={volume} onValueChange={setVolume} showValue unit="%" />
2409
+ ```
2410
+
2411
+ ### Sizes
2412
+
2413
+ ```tsx
2414
+ <SliderField size="sm" /> {/* the default — a row in a form */}
2415
+ <SliderField size="md" /> {/* touch, media controls */}
2416
+ ```
2417
+
2418
+ ### Vertical, and a range
2419
+
2420
+ ```tsx
2421
+ <SliderField orientation="vertical" value={level} onValueChange={setLevel} />
2422
+ <SliderField value={[20, 70]} onValueChange={setRange} />
2423
+ ```
2424
+
2425
+ ### Slider
2426
+
2427
+ ```tsx
2428
+ <Slider defaultValue={40} aria-label="Zoom" />
2429
+ ```
2430
+
2431
+ ### TagsInput
2432
+
2433
+ ```tsx
2434
+ <TagsInput value={tags} onValueChange={setTags} maxTags={5} showCount showClearAll />
2435
+ ```
2436
+
2437
+ ## features/actions
2438
+
2439
+ ```tsx
2440
+ import { … } from "themelia-ui/features/actions"
2441
+ import "themelia-ui/features/actions.css"
2442
+ ```
2443
+
2444
+ Preview route: Actions — `/actions`
2445
+
2446
+ ### One definition, many surfaces
2447
+
2448
+ ```tsx
2449
+ const actions = [defineAction({
2450
+ id: "invoice.delete",
2451
+ label: "Delete invoice",
2452
+ surfaces: ["page", "card"],
2453
+ modality: { type: "alert", title: "Delete this invoice?", tone: "destructive" },
2454
+ run: async ({ payload }) => api.delete(payload),
2455
+ })]
2456
+
2457
+ useRegisterActions(actions, { scope: "invoice" })
2458
+ const pageActions = useActionSurface({ surface: "page", scope: "invoice", payload: id })
2459
+ ```
2460
+
2461
+ ## features/activities
2462
+
2463
+ ```tsx
2464
+ import { … } from "themelia-ui/features/activities"
2465
+ import "themelia-ui/features/activities.css"
2466
+ ```
2467
+
2468
+ Preview route: Activities — `/activities`
2469
+
2470
+ ### ActivityFeed
2471
+
2472
+ ```tsx
2473
+ <ActivityFeed
2474
+ activities={activities}
2475
+ density="rich"
2476
+ currentUserId="u1"
2477
+ resources={registry}
2478
+ onActorClick={(actor) => open(actor)}
2479
+ />
2480
+ ```
2481
+
2482
+ ### ActivityLog
2483
+
2484
+ ```tsx
2485
+ <ActivityLog
2486
+ entries={entries}
2487
+ resources={resources}
2488
+ canModerate
2489
+ composer={{ enabled: true, context, onSubmit }}
2490
+ />
2491
+ ```
2492
+
2493
+ ### createActivityEventAdapter
2494
+
2495
+ ```tsx
2496
+ // Pinned to the page's kind union, so the entries it produces line up with the rest.
2497
+ const toEntry = createActivityEventAdapter<AuditRow, CommentUser, unknown, Kind>({
2498
+ id: (row) => row.uuid,
2499
+ timestamp: (row) => row.at,
2500
+ kind: () => "audit",
2501
+ actor: (row) => row.who,
2502
+ action: (row) => row.verb,
2503
+ target: (row) => row.subject,
2504
+ })
2505
+
2506
+ const entries = auditRows.map(toEntry)
2507
+ ```
2508
+
2509
+ ## features/ai-chat
2510
+
2511
+ ```tsx
2512
+ import { … } from "themelia-ui/features/ai-chat"
2513
+ import "themelia-ui/features/ai-chat.css"
2514
+ ```
2515
+
2516
+ Preview route: AI chat — `/ai-chat`
2517
+
2518
+ ### The chat
2519
+
2520
+ ```tsx
2521
+ <AiChat
2522
+ messages={messages}
2523
+ inputValue={input}
2524
+ onInputChange={setInput}
2525
+ onSubmit={({ text, attachments }) => send(text, attachments)}
2526
+ onStop={() => abort()}
2527
+ streaming={isStreaming}
2528
+ agent={{ name: "Atlas", subtitle: "claude-opus-5", status: "thinking" }}
2529
+ suggestions={suggestions}
2530
+ onPickSuggestion={(s) => setInput(String(s.label))}
2531
+ />
2532
+ ```
2533
+
2534
+ ### A turn
2535
+
2536
+ ```tsx
2537
+ <AiMessageBubble role="assistant" authorName="Atlas" onRegenerate={retry}>
2538
+ The totals are summed as floats.
2539
+ </AiMessageBubble>
2540
+
2541
+ <AiShimmer>Thinking…</AiShimmer>
2542
+ ```
2543
+
2544
+ ### Reasoning and plans
2545
+
2546
+ ```tsx
2547
+ <AiReasoning streaming={isThinking} durationSeconds={4}>
2548
+ {trace}
2549
+ </AiReasoning>
2550
+
2551
+ <AiChainOfThought steps={steps} streaming />
2552
+ <AiTask task={plan} />
2553
+ ```
2554
+
2555
+ ### Tool calls
2556
+
2557
+ ```tsx
2558
+ <AiToolCall
2559
+ name="search_codebase"
2560
+ status="success"
2561
+ durationMs={820}
2562
+ args={JSON.stringify(args, null, 2)}
2563
+ result={summary}
2564
+ />
2565
+ ```
2566
+
2567
+ ### What it produced
2568
+
2569
+ ```tsx
2570
+ <AiArtifact title="totals.ts" subtitle="TypeScript" copyText={code} onDownload={save}>
2571
+ <AiCodeBlock code={code} language="TypeScript" showLineNumbers highlightLines={[2, 8]} />
2572
+ </AiArtifact>
2573
+
2574
+ <AiSources sources={sources} defaultExpanded />
2575
+ <AiSources sources={sources} variant="avatars" />
2576
+ ```
2577
+
2578
+ ### Asking first
2579
+
2580
+ ```tsx
2581
+ <AiConfirmation
2582
+ title="Run the backfill on 4,102 invoices"
2583
+ description="Rewrites every amount into cents. Not reversible."
2584
+ tone="destructive"
2585
+ status={status}
2586
+ onApprove={approve}
2587
+ onReject={reject}
2588
+ />
2589
+ ```
2590
+
2591
+ ## features/async-preview
2592
+
2593
+ ```tsx
2594
+ import { … } from "themelia-ui/features/async-preview"
2595
+ import "themelia-ui/features/async-preview.css"
2596
+ ```
2597
+
2598
+ Preview route: Async preview — `/async-preview`
2599
+
2600
+ ### Fetching on open
2601
+
2602
+ ```tsx
2603
+ <AsyncPreview.Root
2604
+ type="customer"
2605
+ context={{ id }}
2606
+ cacheKey={`customer:${id}\
2607
+ ```
2608
+
2609
+ ### The four states
2610
+
2611
+ ```tsx
2612
+ // null → empty, thrown → error
2613
+ onShow={async ({ signal }) => {
2614
+ const response = await fetch(url, { signal })
2615
+ if (!response.ok) throw new Error(response.statusText)
2616
+ return (await response.json()) ?? null
2617
+ }}
2618
+ ```
2619
+
2620
+ ### PreviewTriggerCell
2621
+
2622
+ ```tsx
2623
+ <PreviewTriggerCell
2624
+ value={row.customerName}
2625
+ secondary={row.reference}
2626
+ hasPreview={row.customerId !== null}
2627
+ disabledReason="Imported without a customer record"
2628
+ />
2629
+ ```
2630
+
2631
+ ## features/combobox
2632
+
2633
+ ```tsx
2634
+ import { … } from "themelia-ui/features/combobox"
2635
+ import "themelia-ui/features/combobox.css"
2636
+ ```
2637
+
2638
+ Preview route: Async combobox — `/async-combobox`
2639
+
2640
+ ### AsyncCombobox
2641
+
2642
+ ```tsx
2643
+ <AsyncCombobox
2644
+ items={items}
2645
+ searchValue={query}
2646
+ onSearchValueChange={setQuery}
2647
+ selectedValue={selected}
2648
+ onSelectedValueChange={setSelected}
2649
+ getItemLabel={(c) => c.name}
2650
+ getItemKey={(c) => c.code}
2651
+ getItemGroup={(c) => c.region}
2652
+ highlightMatch
2653
+ />
2654
+ ```
2655
+
2656
+ ### AsyncMultiCombobox
2657
+
2658
+ ```tsx
2659
+ <AsyncMultiCombobox
2660
+ items={items}
2661
+ selectedValues={selected}
2662
+ onSelectedValuesChange={setSelected}
2663
+ …
2664
+ />
2665
+ ```
2666
+
2667
+ ### applyButton
2668
+
2669
+ ```tsx
2670
+ <AsyncMultiCombobox applyButton onApply={run} … />
2671
+ ```
2672
+
2673
+ ### creatable
2674
+
2675
+ ```tsx
2676
+ <AsyncCombobox creatable onCreate={(name) => create(name)} … />
2677
+ ```
2678
+
2679
+ ### ResourceCombobox
2680
+
2681
+ ```tsx
2682
+ <ResourceCombobox
2683
+ fetcher={({ query, limit, signal }) => api.search(query, { limit, signal })}
2684
+ getKey={(c) => c.code}
2685
+ getLabel={(c) => c.name}
2686
+ getDescription={(c) => c.capital}
2687
+ getMeta={(c) => c.region}
2688
+ />
2689
+ ```
2690
+
2691
+ ### SuggestionsCombobox
2692
+
2693
+ ```tsx
2694
+ const suggestions = useSuggestions({ fetchData, minQueryLength: 1 })
2695
+
2696
+ // or, when it really is a combobox:
2697
+ <SuggestionsCombobox
2698
+ fetchData={(q, { signal }) => api.search(q, { signal })}
2699
+ itemKey={(c) => c.code}
2700
+ itemText={(c) => c.name}
2701
+ />
2702
+ ```
2703
+
2704
+ ## features/comments
2705
+
2706
+ ```tsx
2707
+ import { … } from "themelia-ui/features/comments"
2708
+ import "themelia-ui/features/comments.css"
2709
+ ```
2710
+
2711
+ Preview route: Comments — `/comments`
2712
+
2713
+ ### A thread
2714
+
2715
+ ```tsx
2716
+ <Comments
2717
+ context={{ id: "4417", type: "booking" }}
2718
+ comments={comments}
2719
+ canModerate
2720
+ resources={resources}
2721
+ onSubmit={(values, helpers) => {
2722
+ post(values)
2723
+ helpers.reset()
2724
+ }}
2725
+ onUpdate={update}
2726
+ onDelete={remove}
2727
+ attachments={{ onUpload, maxSize: 5_000_000, maxFiles: 3 }}
2728
+ />
2729
+ ```
2730
+
2731
+ ### Three stored formats
2732
+
2733
+ ```tsx
2734
+ { contentType: "html", content: "<p>…<span data-ref-id='user:1'>@Maria</span></p>" }
2735
+ { contentType: "text", content: "Two lines.\\nKept as written." }
2736
+ { contentType: "rich", content: JSON.stringify({ blocks: [...] }) }
2737
+ ```
2738
+
2739
+ ### Empty, and read-only
2740
+
2741
+ ```tsx
2742
+ <Comments bare canComment={false} comments={[]} … />
2743
+ ```
2744
+
2745
+ ## features/data-view
2746
+
2747
+ ```tsx
2748
+ import { … } from "themelia-ui/features/data-view"
2749
+ import "themelia-ui/features/data-view.css"
2750
+ ```
2751
+
2752
+ Preview route: Data view — `/data-view`
2753
+
2754
+ ### An index
2755
+
2756
+ ```tsx
2757
+ <DataView
2758
+ data={bookings}
2759
+ columns={columns}
2760
+ filtering={{
2761
+ filters,
2762
+ activeFilters: active,
2763
+ onFilterChange: setActive,
2764
+ tabs: savedViews,
2765
+ }}
2766
+ table={{ enableSorting: true, enableColumnVisibility: true }}
2767
+ slots={{ footer: <DataViewPagination page={page} pageCount={4} onPageChange={setPage} /> }}
2768
+ />
2769
+ ```
2770
+
2771
+ ## features/event-calendar
2772
+
2773
+ ```tsx
2774
+ import { … } from "themelia-ui/features/event-calendar"
2775
+ import "themelia-ui/features/event-calendar.css"
2776
+ ```
2777
+
2778
+ Preview route: Event calendar — `/event-calendar`
2779
+
2780
+ ### The grid
2781
+
2782
+ ```tsx
2783
+ <EventCalendar
2784
+ events={events}
2785
+ categories={categories}
2786
+ enableCategoryFilter
2787
+ onEventClick={(event) => open(event.id)}
2788
+ onDayClick={(date, events) => setDay({ date, events })}
2789
+ />
2790
+ ```
2791
+
2792
+ ### The agenda
2793
+
2794
+ ```tsx
2795
+ <EventCalendar viewMode="agenda" events={events} categories={categories} />
2796
+ ```
2797
+
2798
+ ### A week, and a range
2799
+
2800
+ ```tsx
2801
+ <EventCalendar
2802
+ viewMode="week"
2803
+ minDate={new Date(2026, 8, 1)}
2804
+ maxDate={new Date(2026, 8, 30)}
2805
+ disabledDates={(date) => date.getDay() === 0}
2806
+ />
2807
+ ```
2808
+
2809
+ ## features/filters
2810
+
2811
+ ```tsx
2812
+ import { … } from "themelia-ui/features/filters"
2813
+ import "themelia-ui/features/filters.css"
2814
+ ```
2815
+
2816
+ Preview route: Filters — `/filters`
2817
+
2818
+ ### The bar
2819
+
2820
+ ```tsx
2821
+ <FilterProvider
2822
+ filters={filters}
2823
+ activeFilters={active}
2824
+ onFilterChange={setActive}
2825
+ >
2826
+ <FilterLayout tabs={savedViews} showClearFilters />
2827
+ </FilterProvider>
2828
+
2829
+ // And when a change lands, hand the query to your own router:
2830
+ const query = serializeFiltersToQuery(filters, active)
2831
+ ```
2832
+
2833
+ ## features/global-search
2834
+
2835
+ ```tsx
2836
+ import { … } from "themelia-ui/features/global-search"
2837
+ import "themelia-ui/features/global-search.css"
2838
+ ```
2839
+
2840
+ Preview route: Global search — `/global-search`
2841
+
2842
+ ### The panel
2843
+
2844
+ ```tsx
2845
+ <GlobalSearch<Group>
2846
+ query={query}
2847
+ onQueryChange={setQuery}
2848
+ results={results}
2849
+ loading={isFetching}
2850
+ groupLabels={{ people: "People", bookings: "Bookings" }}
2851
+ idleSections={recentAndSuggested}
2852
+ onResultSelect={(result) => navigate(result.data.href)}
2853
+ />
2854
+ ```
2855
+
2856
+ ### The palette
2857
+
2858
+ ```tsx
2859
+ <GlobalSearchDialog
2860
+ open={open}
2861
+ onOpenChange={setOpen}
2862
+ query={query}
2863
+ onQueryChange={setQuery}
2864
+ results={results}
2865
+ onResultSelect={(result) => { setOpen(false); navigate(result.id) }}
2866
+ />
2867
+ ```
2868
+
2869
+ ## features/kanban
2870
+
2871
+ ```tsx
2872
+ import { … } from "themelia-ui/features/kanban"
2873
+ import "themelia-ui/features/kanban.css"
2874
+ ```
2875
+
2876
+ Preview route: Kanban & sync — `/kanban`
2877
+
2878
+ ### The board
2879
+
2880
+ ```tsx
2881
+ <Kanban
2882
+ value={board}
2883
+ onValueChange={setBoard}
2884
+ getItemValue={(card) => card.id}
2885
+ onItemMove={(event) => api.persist(event)}
2886
+ itemActions={(card) => card.done ? [reopen] : [archive]}
2887
+ >
2888
+ <KanbanBoard>
2889
+ {columns.map((column) => (
2890
+ <KanbanColumn key={column.id} value={column.id}>
2891
+ <header>{column.title}</header>
2892
+ <KanbanColumnContent value={column.id}>
2893
+ {board[column.id].map((card) => (
2894
+ <KanbanItem key={card.id} value={card.id}>…</KanbanItem>
2895
+ ))}
2896
+ </KanbanColumnContent>
2897
+ </KanbanColumn>
2898
+ ))}
2899
+ </KanbanBoard>
2900
+ <KanbanOverlay />
2901
+ </Kanban>
2902
+ ```
2903
+
2904
+ ### Where the handle goes
2905
+
2906
+ ```tsx
2907
+ <ActionDialog
2908
+ title="Run a sync"
2909
+ formId="sync-form"
2910
+ trigger={<Button>Sync</Button>}
2911
+ >
2912
+ <SyncRangeForm
2913
+ formId="sync-form"
2914
+ options={windows}
2915
+ syncOptions={families}
2916
+ onSubmit={({ hours, options }) => api.sync(hours, options)}
2917
+ />
2918
+ </ActionDialog>
2919
+ ```
2920
+
2921
+ ## features/map
2922
+
2923
+ ```tsx
2924
+ import { … } from "themelia-ui/features/map"
2925
+ import "themelia-ui/features/map.css"
2926
+ ```
2927
+
2928
+ Preview route: Map — `/map`
2929
+
2930
+ ### A map with controls
2931
+
2932
+ ```tsx
2933
+ <Map center={[51.5687, -0.7746]} zoom={13}>
2934
+ <MapLayers defaultTileLayer="Streets">
2935
+ <MapTileLayer name="Streets" />
2936
+ <MapTileLayer name="Terrain" url="https://tile.opentopomap.org/{z}/{x}/{y}.png" />
2937
+ <MapLayerGroup name="Venues">
2938
+ {venues.map((venue) => (
2939
+ <MapMarker key={venue.id} position={venue.position}>
2940
+ <MapPopup>{venue.name}</MapPopup>
2941
+ </MapMarker>
2942
+ ))}
2943
+ </MapLayerGroup>
2944
+ <MapLayersControl />
2945
+ </MapLayers>
2946
+ <MapZoomControl />
2947
+ <MapFullscreenControl position="bottom-right" />
2948
+ </Map>
2949
+ ```
2950
+
2951
+ ### Drawing
2952
+
2953
+ ```tsx
2954
+ <Map center={center} zoom={13}>
2955
+ <MapTileLayer />
2956
+ <MapDrawControl onLayersChange={(group) => save(group.toGeoJSON())}>
2957
+ <MapDrawMarker />
2958
+ <MapDrawPolyline />
2959
+ <MapDrawPolygon />
2960
+ <MapDrawRectangle />
2961
+ <MapDrawCircle />
2962
+ <MapDrawEdit />
2963
+ <MapDrawDelete />
2964
+ <MapDrawUndo />
2965
+ </MapDrawControl>
2966
+ </Map>
2967
+ ```
2968
+
2969
+ ### Place autocomplete
2970
+
2971
+ ```tsx
2972
+ <PlaceAutocomplete
2973
+ limit={5}
2974
+ onPlaceSelect={(feature) => {
2975
+ const [lon, lat] = feature.geometry.coordinates
2976
+ map.flyTo([lat, lon], 15)
2977
+ }}
2978
+ />
2979
+
2980
+ // Inside a map, as a control:
2981
+ <MapSearchControl position="top-left" />
2982
+ ```
2983
+
2984
+ ## features/media-library
2985
+
2986
+ ```tsx
2987
+ import { … } from "themelia-ui/features/media-library"
2988
+ import "themelia-ui/features/media-library.css"
2989
+ ```
2990
+
2991
+ Preview route: Media library — `/media-library`
2992
+
2993
+ ### The browser
2994
+
2995
+ ```tsx
2996
+ <MediaLibrary
2997
+ items={assets}
2998
+ collections={collections}
2999
+ value={selected}
3000
+ onValueChange={setSelected}
3001
+ onItemUpdate={(item, patch) => api.updateAsset(item.id, patch)}
3002
+ onItemDelete={(item) => api.deleteAsset(item.id)}
3003
+ onUpload={(files, options, { setProgress }) => api.upload(files, options, setProgress)}
3004
+ onConfirm={(items) => attach(items)}
3005
+ />
3006
+ ```
3007
+
3008
+ ### Acting on a selection
3009
+
3010
+ ```tsx
3011
+ <MediaLibrary
3012
+ items={assets}
3013
+ bulkActions={({ selectedItems, clearSelection }) => (
3014
+ <>
3015
+ <Button tone="neutral" buttonStyle="outline">Download</Button>
3016
+ <Button tone="destructive" buttonStyle="outline"
3017
+ onClick={() => { remove(selectedItems); clearSelection() }}>
3018
+ Delete
3019
+ </Button>
3020
+ </>
3021
+ )}
3022
+ />
3023
+ ```
3024
+
3025
+ ### As a picker
3026
+
3027
+ ```tsx
3028
+ <MediaLibraryDialog
3029
+ open={open}
3030
+ onOpenChange={setOpen}
3031
+ items={assets}
3032
+ selectionMode="single"
3033
+ confirmOnSelect
3034
+ onConfirm={([asset]) => setCover(asset)}
3035
+ />
3036
+ ```
3037
+
3038
+ ### Attached to a record
3039
+
3040
+ ```tsx
3041
+ <MediaResourceGallery
3042
+ items={attached}
3043
+ primaryId={coverId}
3044
+ onPrimaryChange={setCoverId}
3045
+ onReorder={(ids, items) => setAttached(items)}
3046
+ onRemove={(id) => detach(id)}
3047
+ onAdd={() => setPickerOpen(true)}
3048
+ maxItems={8}
3049
+ />
3050
+ ```
3051
+
3052
+ ## features/mentions
3053
+
3054
+ ```tsx
3055
+ import { … } from "themelia-ui/features/mentions"
3056
+ import "themelia-ui/features/mentions.css"
3057
+ ```
3058
+
3059
+ Preview route: Mentions — `/mentions`
3060
+
3061
+ ### Typing a mention
3062
+
3063
+ ```tsx
3064
+ const editorRef = useRef<MentionEditorHandle>(null)
3065
+ const mentions = useMentions<"user" | "booking">({ resources, editorRef })
3066
+
3067
+ <div style={{ position: "relative" }}>
3068
+ <Editor ref={editorRef} onCaretChange={mentions.handleCaretChange} />
3069
+ <MentionInlineSuggestions
3070
+ {...mentions}
3071
+ open={mentions.triggerActive && mentions.pickerOpen}
3072
+ loading={mentions.isLoading}
3073
+ onManualKindChange={() => mentions.setManualKindOverride(true)}
3074
+ onSelect={mentions.pickSuggestion}
3075
+ />
3076
+ </div>
3077
+ ```
3078
+
3079
+ ### Rendering a stored body
3080
+
3081
+ ```tsx
3082
+ <MentionContent
3083
+ html={comment.body}
3084
+ mentions={comment.mentions}
3085
+ resources={resources}
3086
+ />
3087
+ ```
3088
+
3089
+ ### Chips
3090
+
3091
+ ```tsx
3092
+ <MentionChip mention={mention} resource={resources[mention.kind]} />
3093
+ ```
3094
+
3095
+ ## features/overlays
3096
+
3097
+ ```tsx
3098
+ import { … } from "themelia-ui/features/overlays"
3099
+ import "themelia-ui/features/overlays.css"
3100
+ ```
3101
+
3102
+ Preview route: Action overlays — `/action-overlays`
3103
+
3104
+ ### ActionDialog
3105
+
3106
+ ```tsx
3107
+ <ActionDialog
3108
+ title="Rename workspace"
3109
+ trigger={<Button>Rename</Button>}
3110
+ onConfirm={save}
3111
+ />
3112
+ ```
3113
+
3114
+ ### ConfirmDialog
3115
+
3116
+ ```tsx
3117
+ <ConfirmDialog
3118
+ destructive
3119
+ title="Delete this invoice?"
3120
+ description="This cannot be undone."
3121
+ trigger={<Button tone="destructive">Delete</Button>}
3122
+ onAsyncConfirm={remove}
3123
+ />
3124
+ ```
3125
+
3126
+ ### ActionSheet
3127
+
3128
+ ```tsx
3129
+ <ActionSheet
3130
+ side="inline-end"
3131
+ title="Filters"
3132
+ modality="non-modal"
3133
+ trigger={<Button>Filter</Button>}
3134
+ />
3135
+ ```
3136
+
3137
+ ### Driving them from elsewhere
3138
+
3139
+ ```tsx
3140
+ const overlays = useOverlayVisibilityGroup(["edit", "remove"], {
3141
+ closeOthersOnOpen: true,
3142
+ })
3143
+
3144
+ <Button onClick={overlays.edit.show}>Edit</Button>
3145
+ <ActionDialog {...overlays.edit.overlayProps} title="Edit" />
3146
+ ```
3147
+
3148
+ ## features/products
3149
+
3150
+ ```tsx
3151
+ import { … } from "themelia-ui/features/products"
3152
+ import "themelia-ui/features/products.css"
3153
+ ```
3154
+
3155
+ Preview route: Options & variants — `/product-variants`
3156
+
3157
+ ### Options and variants together
3158
+
3159
+ ```tsx
3160
+ <ProductVariantsManager
3161
+ optionGroups={options}
3162
+ variants={variants}
3163
+ groupByOptionId="size"
3164
+ cellDisplay="field"
3165
+ onCreateOption={createOption}
3166
+ onSaveEditingOption={(option, draft) => save(option.id, draft)}
3167
+ onAddValue={addValue}
3168
+ onGenerateVariants={generate}
3169
+ onVariantFieldBlur={(variant, field, value) => patch(variant.id, field, value)}
3170
+ />
3171
+ ```
3172
+
3173
+ ### The two option surfaces
3174
+
3175
+ ```tsx
3176
+ <ProductOptionsSummary options={summary} onManageOptions={openMatrix} />
3177
+
3178
+ <ProductOptionsMatrix
3179
+ optionGroups={groups}
3180
+ onSaveEditingOption={(option, draft) => save(option.id, draft)}
3181
+ onAddValue={addValue}
3182
+ onDeleteOption={remove}
3183
+ confirmDelete // on by default — removing an option removes its variants
3184
+ />
3185
+ ```
3186
+
3187
+ ### Variants
3188
+
3189
+ ```tsx
3190
+ <ProductVariantsBulkTable
3191
+ variants={variants}
3192
+ optionGroups={groups}
3193
+ groupByOptionId="size"
3194
+ cellDisplay={{ sku: "field", price: "field", inventory: "text" }}
3195
+ onVariantFieldBlur={(variant, field, value) => api.patch(variant.id, { [field]: value })}
3196
+ onBulkDelete={(rows) => api.removeMany(rows.map((row) => row.id))}
3197
+ />
3198
+ ```
3199
+
3200
+ ### One variant, read and edited
3201
+
3202
+ ```tsx
3203
+ <ProductVariantDetails
3204
+ variant={selected}
3205
+ optionItems={options}
3206
+ onBack={() => setSelected(null)}
3207
+ onEditVariant={(variant) => setEditing(variant)}
3208
+ />
3209
+
3210
+ <ProductVariantEditor
3211
+ defaultValue={{ name: "M · Trail", sku: "TRL-29-M-TR", price: "€1,850" }}
3212
+ optionFields={[{ id: "size", label: "Frame size", choices: sizes }]}
3213
+ statusOptions={statuses}
3214
+ onSubmit={(values) => api.save(values)}
3215
+ onDelete={(values) => api.remove(values)}
3216
+ />
3217
+ ```
3218
+
3219
+ ### Nothing yet
3220
+
3221
+ ```tsx
3222
+ <ProductVariantsBulkTable
3223
+ variants={[]}
3224
+ onGenerateVariants={() => api.generate(productId)}
3225
+ />
3226
+ ```
3227
+
3228
+ ### Overview and quote
3229
+
3230
+ ```tsx
3231
+ <ProductOverview
3232
+ title="Trailhead 29er"
3233
+ status="Live"
3234
+ statusTone="success"
3235
+ metrics={[{ id: "variants", label: "Variants", value: "18" }]}
3236
+ />
3237
+
3238
+ <ProductQuotePreviewCard
3239
+ lines={[…, { id: "total", label: "Total", value: "€2,268", emphasis: true }]}
3240
+ onRecalculate={() => api.quote(id)}
3241
+ />
3242
+ ```
3243
+
3244
+ ### Readiness, structure, operations
3245
+
3246
+ ```tsx
3247
+ <ProductReadinessCard
3248
+ score={72}
3249
+ items={[{ id: "price", label: "Pricing", tone: "warning", value: "1 missing" }]}
3250
+ onSelectReadinessItem={(item) => open(item.id)}
3251
+ />
3252
+ ```
3253
+
3254
+ ### Details, contract, policies
3255
+
3256
+ ```tsx
3257
+ <ProductContractOverview
3258
+ metrics={metrics}
3259
+ terms={terms} // MetadataListItem[]
3260
+ rules={rules}
3261
+ onCreateRule={() => …}
3262
+ />
3263
+ ```
3264
+
3265
+ ## features/resource
3266
+
3267
+ ```tsx
3268
+ import { … } from "themelia-ui/features/resource"
3269
+ import "themelia-ui/features/resource.css"
3270
+ ```
3271
+
3272
+ Preview route: Resource shells — `/resource`
3273
+
3274
+ ### ResourceIndexShell
3275
+
3276
+ ```tsx
3277
+ <ResourceIndexShell
3278
+ title="Invoices"
3279
+ description="Everything billed on this account."
3280
+ actions={<Button>New invoice</Button>}
3281
+ loading={isLoading}
3282
+ error={error}
3283
+ empty={rows.length === 0}
3284
+ onRetry={refetch}
3285
+ toolbar={<ResourceActionBar leading={<SearchInput />} />}
3286
+ >
3287
+ <InvoiceTable rows={rows} />
3288
+ </ResourceIndexShell>
3289
+ ```
3290
+
3291
+ ### ResourceShowShell
3292
+
3293
+ ```tsx
3294
+ <ResourceShowShell
3295
+ title="INV-4417"
3296
+ slots={{ aside: <PaymentPanel /> }}
3297
+ >
3298
+ <ResourceDetailsSection title="Details" metadata={facts} />
3299
+ </ResourceShowShell>
3300
+ ```
3301
+
3302
+ ### TabbedResourceShell
3303
+
3304
+ ```tsx
3305
+ <TabbedResourceShell
3306
+ tabs={tabs}
3307
+ activeTab={tab}
3308
+ onTabChange={setTab}
3309
+ title="INV-4417"
3310
+ >
3311
+ {panelFor(tab)}
3312
+ </TabbedResourceShell>
3313
+ ```
3314
+
3315
+ ### ResourceEmptyState
3316
+
3317
+ ```tsx
3318
+ slots={{ empty: (
3319
+ <ResourceEmptyState
3320
+ mediaVariant="illustration"
3321
+ media={<StackedCardsIllustration />}
3322
+ title="No invoices yet"
3323
+ action={<Button>New invoice</Button>}
3324
+ border
3325
+ />
3326
+ ) }}
3327
+ ```
3328
+
3329
+ ## features/resource-assignment
3330
+
3331
+ ```tsx
3332
+ import { … } from "themelia-ui/features/resource-assignment"
3333
+ import "themelia-ui/features/resource-assignment.css"
3334
+ ```
3335
+
3336
+ Preview route: Resource assignment — `/resource-assignment`
3337
+
3338
+ ### With a resource
3339
+
3340
+ ```tsx
3341
+ <SharedResourceCard<Venue, VenueHit>
3342
+ icon={<MapPinIcon />}
3343
+ title="Venue"
3344
+ resource={venue}
3345
+ sections={[{ id: "facts", Component: ({ context }) => <VenueFacts venue={context.resource!} /> }]}
3346
+ viewLink={{ href: `/venues/${venue.id}`, label: "Open venue" }}
3347
+ selector={{
3348
+ title: "Choose a venue",
3349
+ confirmText: "Assign venue",
3350
+ cancelText: "Cancel",
3351
+ SelectorComponent: VenuePicker,
3352
+ mapInitialSelected: (venue) =>
3353
+ venue ? { id: venue.id, label: venue.name, description: "" } : null,
3354
+ getSelectionLabel: (hit) => hit.label,
3355
+ onConfirmSelection: async (hit) => { await api.assign(hit.id) },
3356
+ }}
3357
+ />
3358
+ ```
3359
+
3360
+ ### With none
3361
+
3362
+ ```tsx
3363
+ <SharedResourceCard resource={null} selector={…} />
3364
+ // no selector — the empty state does not pretend there is something to do
3365
+ <SharedResourceCard resource={null} />
3366
+ ```
3367
+
3368
+ ## features/rich-text-editor
3369
+
3370
+ ```tsx
3371
+ import { … } from "themelia-ui/features/rich-text-editor"
3372
+ import "themelia-ui/features/rich-text-editor.css"
3373
+ ```
3374
+
3375
+ Preview route: Rich text editor — `/rich-text-editor`
3376
+
3377
+ ### The editor
3378
+
3379
+ ```tsx
3380
+ <RichTextEditor
3381
+ value={body}
3382
+ onValueChange={setBody}
3383
+ showCounts
3384
+ maxLength={280}
3385
+ placeholder="Write something…"
3386
+ />
3387
+ ```
3388
+
3389
+ ### compact
3390
+
3391
+ ```tsx
3392
+ <RichTextEditor
3393
+ compact
3394
+ value={note}
3395
+ onValueChange={setNote}
3396
+ hideSourceToggle
3397
+ footerSlot={<><AttachmentChips /><Button>Post</Button></>}
3398
+ />
3399
+ ```
3400
+
3401
+ ### What comes out
3402
+
3403
+ ```tsx
3404
+ <RichText html={body} />
3405
+ ```
3406
+
3407
+ ### On execCommand
3408
+
3409
+ ```tsx
3410
+ // The default. Nothing to install, and no document model.
3411
+ <RichTextEditor value={html} onValueChange={setHtml} />
3412
+
3413
+ // TipTap, behind its own exact subpath — a real undo stack, a selection that
3414
+ // survives a re-render, and commands that are transactions. Install
3415
+ // @tiptap/core, @tiptap/pm and @tiptap/starter-kit; importing the generic
3416
+ // editor resolves none of them.
3417
+ import { createTiptapEngine } from "themelia-ui/features/rich-text-editor/tiptap"
3418
+
3419
+ const engine = useMemo(() => createTiptapEngine({ element, content: html }), [element])
3420
+ <RichTextEditor engine={engine} value={html} onValueChange={setHtml} />
3421
+
3422
+ // Or your own: getState, setHtml, focus, execute, subscribe, destroy.
3423
+ // getState must return the SAME object until something changes — the shell
3424
+ // reads it through useSyncExternalStore, which compares by identity.
3425
+ ```
3426
+
3427
+ ## features/schema-form
3428
+
3429
+ ```tsx
3430
+ import { … } from "themelia-ui/features/schema-form"
3431
+ import "themelia-ui/features/schema-form.css"
3432
+ ```
3433
+
3434
+ Preview route: Schema form — `/schema-form`
3435
+
3436
+ ### One surface
3437
+
3438
+ ```tsx
3439
+ <SchemaForm
3440
+ schema={{
3441
+ sections: [{ id: "identity", title: "Identity", columns: 2 }],
3442
+ fields: [
3443
+ { key: "name", label: "Venue name", sectionId: "identity", required: true },
3444
+ { key: "cutoff", type: "integer", label: "Cut-off",
3445
+ hidden: (values) => values.selfService !== true },
3446
+ ],
3447
+ }}
3448
+ onSubmit={(values) => api.save(values)}
3449
+ onReset={() => undefined}
3450
+ />
3451
+ ```
3452
+
3453
+ ### One surface per section
3454
+
3455
+ ```tsx
3456
+ <SchemaForm schema={schema} layout="cards" onSubmit={save} />
3457
+ ```
3458
+
3459
+ ## features/table
3460
+
3461
+ ```tsx
3462
+ import { … } from "themelia-ui/features/table"
3463
+ import "themelia-ui/features/table.css"
3464
+ ```
3465
+
3466
+ Preview route: Data table — `/data-table`
3467
+
3468
+ ### An index table
3469
+
3470
+ ```tsx
3471
+ <DataTable
3472
+ columns={columns}
3473
+ data={bookings}
3474
+ enableSorting
3475
+ enableRowSelection
3476
+ enableColumnVisibility
3477
+ stickyFirstColumn
3478
+ getRowId={(row) => row.id}
3479
+ rowActions={(row) => [
3480
+ { id: "open", label: "Open", onClick: () => navigate(row.id) },
3481
+ { id: "archive", label: "Archive", tone: "destructive", onClick: () => archive(row) },
3482
+ ]}
3483
+ />
3484
+ ```
3485
+
3486
+ ### Cells
3487
+
3488
+ ```tsx
3489
+ cell: ({ row }) => (
3490
+ <CellStack values={[
3491
+ row.customer,
3492
+ [row.customerEmail, "email"],
3493
+ row.vip && { value: "VIP", kind: "mono" },
3494
+ ]} />
3495
+ )
3496
+ ```
3497
+
3498
+ ### Acting on a selection
3499
+
3500
+ ```tsx
3501
+ <DataTable
3502
+ enableRowSelection
3503
+ initialState={{ rowSelection: { b2: true, b4: true } }}
3504
+ bulkActions={({ selectedRowCount, clearSelection }) => (
3505
+ <Button onClick={() => archive(selectedRowCount)}>Archive selected</Button>
3506
+ )}
3507
+ />
3508
+ ```
3509
+
3510
+ ## features/theme-tweaker
3511
+
3512
+ ```tsx
3513
+ import { … } from "themelia-ui/features/theme-tweaker"
3514
+ import "themelia-ui/features/theme-tweaker.css"
3515
+ ```
3516
+
3517
+ Preview route: Theme tweaker — `/theme-tweaker`
3518
+
3519
+ ### The editor
3520
+
3521
+ ```tsx
3522
+ <ThemeTweaker
3523
+ value={theme}
3524
+ onValueChange={setTheme}
3525
+ target="self"
3526
+ onExport={(artifact) => api.saveTheme(artifact.cssText)}
3527
+ />
3528
+ ```
3529
+
3530
+ ### ThemeScope alone
3531
+
3532
+ ```tsx
3533
+ <ThemeScope theme={createTheme({ mode: "dark", dark: { "--primary": "…" } })}>
3534
+ <YourApp />
3535
+ </ThemeScope>
3536
+ ```
3537
+
3538
+ ## forms
3539
+
3540
+ ```tsx
3541
+ import { … } from "themelia-ui/forms"
3542
+ ```
3543
+
3544
+ Preview route: Form binding — `/form-binding`
3545
+
3546
+ ### useStateFormControl
3547
+
3548
+ ```tsx
3549
+ const control = useStateFormControl({ email: "", workspace: "acme-corp" })
3550
+
3551
+ function BoundInput({ name, label, control }) {
3552
+ const field = useFormFieldBinding<string>({ name, control })
3553
+ return (
3554
+ <FormField label={label} error={field.error}>
3555
+ <Input
3556
+ value={field.value ?? ""}
3557
+ onChange={(event) => field.onValueChange(event.target.value)}
3558
+ onBlur={field.onBlur}
3559
+ />
3560
+ </FormField>
3561
+ )
3562
+ }
3563
+ ```
3564
+
3565
+ ### The contract
3566
+
3567
+ ```tsx
3568
+ import { rhfFormControl } from "themelia-ui/forms-rhf"
3569
+
3570
+ const form = useForm({ defaultValues: { email: "" } })
3571
+ const control = rhfFormControl(form.control)
3572
+
3573
+ const email = useFormFieldBinding<string>({ name: "email", control })
3574
+ ```
3575
+
3576
+ ## layout/app-shell
3577
+
3578
+ ```tsx
3579
+ import { … } from "themelia-ui/layout/app-shell"
3580
+ import "themelia-ui/layout/app-shell.css"
3581
+ ```
3582
+
3583
+ Preview route: App shell — `/app-shell`
3584
+
3585
+ ### The shell
3586
+
3587
+ ```tsx
3588
+ <SidebarProvider>
3589
+ <Sidebar collapsible="icon">
3590
+ <SidebarHeader>…</SidebarHeader>
3591
+ <SidebarContent>
3592
+ <SidebarGroup>
3593
+ <SidebarGroupLabel>Workspace</SidebarGroupLabel>
3594
+ <SidebarMenu>
3595
+ <SidebarMenuItem>
3596
+ <SidebarMenuButton active>
3597
+ <FileTextIcon />
3598
+ <span>Invoices</span>
3599
+ </SidebarMenuButton>
3600
+ <SidebarMenuBadge>12</SidebarMenuBadge>
3601
+ </SidebarMenuItem>
3602
+ </SidebarMenu>
3603
+ </SidebarGroup>
3604
+ </SidebarContent>
3605
+ <SidebarRail />
3606
+ </Sidebar>
3607
+ <SidebarInset>{children}</SidebarInset>
3608
+ </SidebarProvider>
3609
+ ```
3610
+
3611
+ ### TopbarSidebarLayout
3612
+
3613
+ ```tsx
3614
+ <TopbarSidebarLayout
3615
+ logo={<Brand />}
3616
+ slots={{
3617
+ headerCenter: <HeaderSearch onOpen={openPalette} />,
3618
+ headerEnd: (
3619
+ <>
3620
+ <HeaderNotifications notifications={items} unreadCount={3} />
3621
+ <HeaderUserMenu user={user} onLogout={signOut} />
3622
+ </>
3623
+ ),
3624
+ }}
3625
+ sidebar={<AppSidebar navigationGroups={NAVIGATION} currentUrl={url} />}
3626
+ >
3627
+ {children}
3628
+ </TopbarSidebarLayout>
3629
+ ```
3630
+
3631
+ ### StackedLayout
3632
+
3633
+ ```tsx
3634
+ <StackedLayout
3635
+ header={<Nav />}
3636
+ headerEnd={<Account />}
3637
+ >
3638
+ {children}
3639
+ </StackedLayout>
3640
+ ```
3641
+
3642
+ ## layout/auth
3643
+
3644
+ ```tsx
3645
+ import { … } from "themelia-ui/layout/auth"
3646
+ import "themelia-ui/layout/auth.css"
3647
+ ```
3648
+
3649
+ Preview route: Auth shells — `/auth-shell`
3650
+
3651
+ ### AuthShell
3652
+
3653
+ ```tsx
3654
+ <AuthShell
3655
+ brand={{ logo: <Logo />, label: "Acme", description: "Operations console", href: "/" }}
3656
+ title="Sign in"
3657
+ description="Use your work account."
3658
+ banner={<Alert tone="warning">That link has expired.</Alert>}
3659
+ postCard={<Text size="sm">New here? <TextLink>Create an account</TextLink></Text>}
3660
+ footerLinks={help}
3661
+ policyLinks={policy}
3662
+ >
3663
+ {fields}
3664
+ </AuthShell>
3665
+ ```
3666
+
3667
+ ### AuthCard
3668
+
3669
+ ```tsx
3670
+ <AuthCard
3671
+ eyebrow="Step 2 of 3"
3672
+ title="Confirm your email"
3673
+ headerEnd={<Badge>2 / 3</Badge>}
3674
+ media={<Illustration />}
3675
+ footer={<Button buttonStyle="ghost">Back</Button>}
3676
+ >
3677
+ {fields}
3678
+ </AuthCard>
3679
+ ```
3680
+
3681
+ ### Split
3682
+
3683
+ ```tsx
3684
+ <AuthShell
3685
+ variant="split"
3686
+ splitSide="start"
3687
+ splitPanel={<Marketing />}
3688
+ title="Sign in"
3689
+ >
3690
+ {fields}
3691
+ </AuthShell>
3692
+ ```
3693
+
3694
+ ## layout/containers
3695
+
3696
+ ```tsx
3697
+ import { … } from "themelia-ui/layout/containers"
3698
+ import "themelia-ui/layout/containers.css"
3699
+ ```
3700
+
3701
+ Preview route: Containers — `/containers`
3702
+
3703
+ ### The four blocks
3704
+
3705
+ ```tsx
3706
+ <PageViewport>
3707
+ <Container maxWidth="xl" gutter="md">
3708
+ <Section>
3709
+ <PageHeading title="Invoices" />
3710
+ <Card>…</Card>
3711
+ </Section>
3712
+ </Container>
3713
+ </PageViewport>
3714
+ ```
3715
+
3716
+ ### TwoColumnLayout
3717
+
3718
+ ```tsx
3719
+ <TwoColumnLayout
3720
+ main={<InvoiceForm />}
3721
+ aside={<SummaryCard />}
3722
+ asidePosition="end"
3723
+ stickyAside
3724
+ />
3725
+ ```
3726
+
3727
+ ## layout/header
3728
+
3729
+ ```tsx
3730
+ import { … } from "themelia-ui/layout/header"
3731
+ import "themelia-ui/layout/header.css"
3732
+ ```
3733
+
3734
+ Preview route: Header — `/header`
3735
+
3736
+ ### Header
3737
+
3738
+ ```tsx
3739
+ <Header
3740
+ breadcrumbs={[{ label: "Billing", href: "/billing" }, { label: "Invoices" }]}
3741
+ slots={{
3742
+ center: <SearchInput />,
3743
+ right: <><Notifications /><Account /></>,
3744
+ }}
3745
+ />
3746
+ ```
3747
+
3748
+ ### Breadcrumbs are built in
3749
+
3750
+ ```tsx
3751
+ <Header
3752
+ homeCrumb={{ label: "Home", href: "/" }}
3753
+ breadcrumbs={[{ label: "Settings", href: "/settings" }, { label: "Members" }]}
3754
+ />
3755
+ ```
3756
+
3757
+ ## layout/navigation
3758
+
3759
+ ```tsx
3760
+ import { … } from "themelia-ui/layout/navigation"
3761
+ import "themelia-ui/layout/navigation.css"
3762
+ ```
3763
+
3764
+ Preview route: Side nav & section nav — `/side-nav`
3765
+
3766
+ ### SideNav
3767
+
3768
+ ```tsx
3769
+ <SideNav groups={settingsNav} currentPath="/settings/members" />
3770
+ ```
3771
+
3772
+ ### SectionNav
3773
+
3774
+ ```tsx
3775
+ <SectionNav
3776
+ items={[
3777
+ { id: "side-nav", label: "SideNav" },
3778
+ { id: "section-nav", label: "SectionNav", depth: 2 },
3779
+ ]}
3780
+ />
3781
+ ```
3782
+
3783
+ ## layout/page
3784
+
3785
+ ```tsx
3786
+ import { … } from "themelia-ui/layout/page"
3787
+ import "themelia-ui/layout/page.css"
3788
+ ```
3789
+
3790
+ Preview route: Page & page header — `/page`
3791
+
3792
+ ### PageHeading
3793
+
3794
+ ```tsx
3795
+ <PageHeading
3796
+ breadcrumbs={<Breadcrumbs items={trail} />}
3797
+ eyebrow="Workspace"
3798
+ title="Invoices"
3799
+ badges={[{ label: "Live", tone: "success" }]}
3800
+ description="Everything issued in this workspace."
3801
+ actions={<Button>New invoice</Button>}
3802
+ withSeparator
3803
+ />
3804
+ ```
3805
+
3806
+ ### The slots, and why titlePrefix is not leading
3807
+
3808
+ ```tsx
3809
+ <PageHeading
3810
+ titlePrefix={<FileTextIcon />}
3811
+ title="Invoice #4417"
3812
+ titleSuffix={<Text size="xs" type="secondary">v3</Text>}
3813
+ description="Northwind Traders."
3814
+ afterDescription={<Text size="xs" type="discrete">Updated 3 days ago</Text>}
3815
+ />
3816
+ ```
3817
+
3818
+ ### PageHeader
3819
+
3820
+ ```tsx
3821
+ <PageHeader
3822
+ backHref="/invoices"
3823
+ titleIcon={FileTextIcon}
3824
+ title="Invoice #4417"
3825
+ titleBadges={[{ label: "Paid", tone: "success" }]}
3826
+ description="Northwind Traders — issued 1 September 2026."
3827
+ actions={<PageActions actions={actions} />}
3828
+ />
3829
+ ```
3830
+
3831
+ ### PageActions
3832
+
3833
+ ```tsx
3834
+ <PageActions actions={actions} maxInlineActions={3} />
3835
+ <PageActions actions={actions} display="menu" />
3836
+ ```
3837
+
3838
+ ### Page
3839
+
3840
+ ```tsx
3841
+ <Page
3842
+ maxWidth="xl"
3843
+ header={{ title: "Invoices", description: "Newest first." }}
3844
+ >
3845
+ <Card title="September" />
3846
+ </Page>
3847
+ ```
3848
+
3849
+ ## layout/settings
3850
+
3851
+ ```tsx
3852
+ import { … } from "themelia-ui/layout/settings"
3853
+ import "themelia-ui/layout/settings.css"
3854
+ ```
3855
+
3856
+ Preview route: Settings shell — `/settings-shell`
3857
+
3858
+ ### SettingsShell
3859
+
3860
+ ```tsx
3861
+ <SettingsShell
3862
+ title="Settings"
3863
+ groups={settingsNav}
3864
+ currentPath="/settings/members"
3865
+ >
3866
+ <Card title="Members" />
3867
+ </SettingsShell>
3868
+ ```
3869
+
3870
+ ## layout/workspace
3871
+
3872
+ ```tsx
3873
+ import { … } from "themelia-ui/layout/workspace"
3874
+ import "themelia-ui/layout/workspace.css"
3875
+ ```
3876
+
3877
+ Preview route: Workspace record header — `/workspace-header`
3878
+
3879
+ ### WorkspaceRecordHeader
3880
+
3881
+ ```tsx
3882
+ <WorkspaceRecordHeader
3883
+ title="Invoice #4417"
3884
+ media={<Avatar />}
3885
+ badges={<Badge tone="success" dot>Paid</Badge>}
3886
+ metadata={[{ label: "Owner", value: "Jane McDonald" }]}
3887
+ actions={<Button>Edit</Button>}
3888
+ />
3889
+ ```
3890
+
3891
+ ### Two tiers of action
3892
+
3893
+ ```tsx
3894
+ <WorkspaceRecordHeader
3895
+ title="Deployment 41a9c2"
3896
+ actions={<Button>Redeploy</Button>}
3897
+ secondaryActions={<PillRadioGroup options={views} />}
3898
+ />
3899
+ ```
3900
+
3901
+ ## patterns/analytics
3902
+
3903
+ ```tsx
3904
+ import { … } from "themelia-ui/patterns/analytics"
3905
+ import "themelia-ui/patterns/analytics.css"
3906
+ ```
3907
+
3908
+ Preview route: Analytics — `/analytics`
3909
+
3910
+ ### Metric bar
3911
+
3912
+ ```tsx
3913
+ <MetricBar
3914
+ metrics={metrics}
3915
+ period={{ label: "Last 30 days", value: "30d" }}
3916
+ footerText="Updated 10 minutes ago"
3917
+ />
3918
+ ```
3919
+
3920
+ ### Metric grid
3921
+
3922
+ ```tsx
3923
+ <MetricGrid metrics={metrics} variant="card" />
3924
+ ```
3925
+
3926
+ ### Seven variants, one shape
3927
+
3928
+ ```tsx
3929
+ <Metric data={revenue} variant="bordered" />
3930
+ ```
3931
+
3932
+ ### Comparison
3933
+
3934
+ ```tsx
3935
+ <MetricComparison
3936
+ current={{ id: "c", label: "Revenue", value: 48200, valueType: "currency", currency: "EUR" }}
3937
+ previous={{ id: "p", label: "Revenue", value: 42900, valueType: "currency", currency: "EUR" }}
3938
+ currentPeriod="Aug 2026"
3939
+ previousPeriod="Jul 2026"
3940
+ />
3941
+ ```
3942
+
3943
+ ### Gradient hero
3944
+
3945
+ ```tsx
3946
+ <MetricGradient title="Sessions" value="18,204" data={points} theme="ocean" />
3947
+ ```
3948
+
3949
+ ### Micro grid
3950
+
3951
+ ```tsx
3952
+ <MetricMicroGrid cells={cells} />
3953
+ ```
3954
+
3955
+ ### Chart card
3956
+
3957
+ ```tsx
3958
+ <ChartCard title="Sessions" config={config} surface="bordered">
3959
+ <AreaChart data={series}>…</AreaChart>
3960
+ </ChartCard>
3961
+ ```
3962
+
3963
+ ### Activity heatmap
3964
+
3965
+ ```tsx
3966
+ <ActivityHeatmap data={days} />
3967
+ ```
3968
+
3969
+ ### Time ruler
3970
+
3971
+ ```tsx
3972
+ <TimeRuler hours={hours} currentHour={14} />
3973
+ ```
3974
+
3975
+ ## patterns/timelines
3976
+
3977
+ ```tsx
3978
+ import { … } from "themelia-ui/patterns/timelines"
3979
+ import "themelia-ui/patterns/timelines.css"
3980
+ ```
3981
+
3982
+ Preview route: Timelines, onboarding & admin — `/blocks-admin`
3983
+
3984
+ ### Changelog
3985
+
3986
+ ```tsx
3987
+ <ChangelogTimeline
3988
+ entries={[
3989
+ { id: "1", kind: "added", title: "Saved views", version: "v3.4.0", timestamp: "16 Aug" },
3990
+ ]}
3991
+ />
3992
+ ```
3993
+
3994
+ ### Milestones
3995
+
3996
+ ```tsx
3997
+ <MilestonesTimeline
3998
+ milestones={[
3999
+ { id: "3", title: "Token consolidation", status: "inProgress", progress: 68 },
4000
+ ]}
4001
+ />
4002
+ ```
4003
+
4004
+ ### Steps, vertical and horizontal
4005
+
4006
+ ```tsx
4007
+ <Steps steps={steps} />
4008
+ <StepsBar steps={steps} />
4009
+ ```
4010
+
4011
+ ### Onboarding checklist
4012
+
4013
+ ```tsx
4014
+ <Checklist
4015
+ steps={[
4016
+ { id: "3", status: "inProgress", title: "Connect a data source", content: <Form /> },
4017
+ ]}
4018
+ />
4019
+ ```
4020
+
4021
+ ### Credential list
4022
+
4023
+ ```tsx
4024
+ <CredentialList items={keys} onAdd={add} onDelete={remove} />
4025
+ ```
4026
+
4027
+ ### Role permissions
4028
+
4029
+ ```tsx
4030
+ <RolePermissions roleName="Editor" groups={groups} memberCount={12} onEdit={edit} />
4031
+ ```
4032
+
4033
+ ### Sensitive action
4034
+
4035
+ ```tsx
4036
+ <SensitiveAction
4037
+ title="Delete this workspace"
4038
+ confirmation="Every dashboard, source and saved view goes with it."
4039
+ action={<Button tone="destructive">Delete</Button>}
4040
+ />
4041
+ ```
4042
+
4043
+ ## primitives
4044
+
4045
+ ```tsx
4046
+ import { … } from "themelia-ui/primitives"
4047
+ import "themelia-ui/primitives.css"
4048
+ ```
4049
+
4050
+ Preview route: Address — `/primitive-address`
4051
+
4052
+ ### Ordered by country
4053
+
4054
+ ```tsx
4055
+ <Address value={{ line1, city, postalCode, country: "GB" }} />
4056
+ ```
4057
+
4058
+ ### Inline, for a cell
4059
+
4060
+ ```tsx
4061
+ <Address value={value} format="inline" />
4062
+ ```
4063
+
4064
+ ### Missing fields
4065
+
4066
+ ```tsx
4067
+ <Address value={{ line1: "221B Baker Street", city: "London" }} />
4068
+ ```
4069
+
4070
+ ### Coordinates
4071
+
4072
+ ```tsx
4073
+ <Coordinates latitude={48.85837} longitude={2.29448} />
4074
+ <Coordinates latitude={48.85837} longitude={2.29448} format="dms" />
4075
+ ```
4076
+
4077
+ ### DateRange
4078
+
4079
+ ```tsx
4080
+ <DateRange start={MARCH_3} end={MARCH_7} />
4081
+ <DateRange start={MARCH_3} end={APRIL_2} />
4082
+ <DateRange start={MARCH_3} end={NEXT_JAN} />
4083
+ <DateRange start={MARCH_3} end={APRIL_2} separator=" to " />
4084
+ <DateRange start={MARCH_3} end={null} />
4085
+ ```
4086
+
4087
+ ### Dates and times
4088
+
4089
+ ```tsx
4090
+ <DatePrimitive value={WHEN} />
4091
+ <Time value={WHEN} />
4092
+ <DateTime value={WHEN} />
4093
+ <DatePrimitive value={WHEN} pattern="EEEE d MMMM yyyy" />
4094
+ <DatePrimitive value={null} />
4095
+ ```
4096
+
4097
+ ### Localised names
4098
+
4099
+ ```tsx
4100
+ import { de } from "date-fns/locale"
4101
+
4102
+ <UIProvider config={{ formatting: { locale: "de-DE" }, dates: { locale: de } }}>
4103
+ <DatePrimitive value={when} pattern="EEEE d MMMM yyyy" />
4104
+ </UIProvider>
4105
+ ```
4106
+
4107
+ ### Dimensions
4108
+
4109
+ ```tsx
4110
+ <Dimensions width={30} height={20} unit="cm" />
4111
+ <Dimensions width={30} height={20} depth={12} unit="cm" />
4112
+ <Dimensions width={1920} height={1080} unit="px" />
4113
+ <Dimensions width={null} height={null} />
4114
+ ```
4115
+
4116
+ ### Duration
4117
+
4118
+ ```tsx
4119
+ <Duration value={45} />
4120
+ <Duration value={4520} />
4121
+ <Duration value={90} from="minutes" />
4122
+ <Duration value={4520} maxParts={1} />
4123
+ <Duration value={4520} unitDisplay="short" />
4124
+ <Duration value={null} />
4125
+ ```
4126
+
4127
+ ### Email
4128
+
4129
+ ```tsx
4130
+ <Email value="jane@northwind.example" />
4131
+ <Email value="raj@northwind.example" display="Raj Patel" />
4132
+ <Email value={null} />
4133
+ ```
4134
+
4135
+ ### File size
4136
+
4137
+ ```tsx
4138
+ <FileSize value={512} />
4139
+ <FileSize value={1_100_000} />
4140
+ <FileSize value={85_800_000} />
4141
+ <FileSize value={4_100_000_000} />
4142
+ <FileSize value={null} />
4143
+ ```
4144
+
4145
+ ### Which megabyte
4146
+
4147
+ ```tsx
4148
+ <FileSize value={1_100_000} /> {/* 1 MB */}
4149
+ <FileSize value={1_100_000} base="decimal" /> {/* 1.1 MB */}
4150
+ <FileSize value={1_100_000} base="iec" /> {/* 1 MiB */}
4151
+ ```
4152
+
4153
+ ### Initials
4154
+
4155
+ ```tsx
4156
+ <Initials value="Jane McDonald" />
4157
+ <Initials value="Mei Chen" />
4158
+ <Initials value="Jane McDonald" maxCharacters={1} />
4159
+ <Initials value="Ana Sofia Reyes" strategy="first-words" />
4160
+ <Initials value="Ana Sofia Reyes" maxCharacters={3} />
4161
+ <Initials value="—" fallback="?" />
4162
+ <Initials value={null} />
4163
+ ```
4164
+
4165
+ ### Inline list
4166
+
4167
+ ```tsx
4168
+ <InlineList items={["Alice", "Bob", "Carol"]} />
4169
+ <InlineList items={["red", "green", "blue"]} join="or" />
4170
+ <InlineList items={items} max={2} />
4171
+ ```
4172
+
4173
+ ### The same list, three locales
4174
+
4175
+ ```tsx
4176
+ <InlineList items={names} locale="en-GB" />
4177
+ <InlineList items={names} locale="es-ES" />
4178
+ <InlineList items={names} locale="ja-JP" />
4179
+ ```
4180
+
4181
+ ### Money
4182
+
4183
+ ```tsx
4184
+ <Money amount={1299.5} currency="EUR" />
4185
+ <Money amount={1299.5} currency="USD" />
4186
+ <Money amount={-42} currency="GBP" />
4187
+ <Money amount={0} currency="JPY" />
4188
+ <Money amount={null} currency="EUR" />
4189
+ ```
4190
+
4191
+ ### Minor units
4192
+
4193
+ ```tsx
4194
+ <Money amount={129950} currency="EUR" unit="minor" />
4195
+ <Money amount={1299} currency="JPY" unit="minor" minorUnitScale={1} />
4196
+ <Money amount={129950} currency="KWD" unit="minor" minorUnitScale={1000} />
4197
+ ```
4198
+
4199
+ ### How the amount is written
4200
+
4201
+ ```tsx
4202
+ <Money amount={1299.5} currency="EUR" formatMode="with-symbol" />
4203
+ <Money amount={1299.5} currency="EUR" formatMode="with-code" />
4204
+ <Money amount={1299.5} currency="EUR" formatMode="decimal" />
4205
+ ```
4206
+
4207
+ ### Two currencies
4208
+
4209
+ ```tsx
4210
+ <Money
4211
+ amount={1299.5}
4212
+ currency="EUR"
4213
+ secondary={{ amount: 1416.2, currency: "USD" }}
4214
+ />
4215
+ ```
4216
+
4217
+ ### Decided once, not per amount
4218
+
4219
+ ```tsx
4220
+ <UIProvider
4221
+ config={{
4222
+ formatting: { locale: "de-DE" },
4223
+ money: {
4224
+ defaultCurrency: "EUR",
4225
+ displayCurrency: "USD",
4226
+ dualPricingEnabled: true,
4227
+ displayMode: "dynamic",
4228
+ layout: "stacked",
4229
+ },
4230
+ }}
4231
+ >
4232
+ <Money amount={1299.5} secondary={{ amount: 1416.2 }} />
4233
+ </UIProvider>
4234
+ ```
4235
+
4236
+ ### Name
4237
+
4238
+ ```tsx
4239
+ <Name value="Jane McDonald" />
4240
+ <Name value=" jane mcdonald " />
4241
+ <Name value="JANE MCDONALD" force />
4242
+ <Name value={null} />
4243
+ ```
4244
+
4245
+ ### Number and percent
4246
+
4247
+ ```tsx
4248
+ <Number value={1234567.891} />
4249
+ <Number value={-42} />
4250
+ <Percent value={0.214} />
4251
+ <Percent value={1} />
4252
+ <Percent value={21.4} scaled />
4253
+ <Number value={null} />
4254
+ ```
4255
+
4256
+ ### Phone
4257
+
4258
+ ```tsx
4259
+ <Phone value="+31 6 1234 5678" />
4260
+ <Phone value="+1 (555) 010-4417" />
4261
+ <Phone value={null} />
4262
+ ```
4263
+
4264
+ ### Quantity
4265
+
4266
+ ```tsx
4267
+ <Quantity value={1} unit={{ one: "item", other: "items" }} />
4268
+ <Quantity value={0} unit={ITEM} zeroLabel="no items" />
4269
+ ```
4270
+
4271
+ ### Measure
4272
+
4273
+ ```tsx
4274
+ <Measure value={2.5} unit="kilogram" />
4275
+ <Measure value={2.5} unit="kilogram" unitDisplay="long" />
4276
+ ```
4277
+
4278
+ ### Range
4279
+
4280
+ ```tsx
4281
+ <Range from={10} to={50} />
4282
+ <Range from={10} to={50} currency="GBP" />
4283
+ <Range from={2} to={5} unit="day" />
4284
+ ```
4285
+
4286
+ ### Ratio
4287
+
4288
+ ```tsx
4289
+ <Ratio value={3} total={10} />
4290
+ <Ratio value={3} total={10} format="fraction" />
4291
+ <Ratio value={3} />
4292
+ ```
4293
+
4294
+ ### Rating
4295
+
4296
+ ```tsx
4297
+ <Rating value={4.5} />
4298
+ <Rating value={4} hideMax />
4299
+ ```
4300
+
4301
+ ### RelativeTime
4302
+
4303
+ ```tsx
4304
+ <RelativeTime value={HOURS_AGO} now={NOW} />
4305
+ <RelativeTime value={DAYS_AGO} now={NOW} />
4306
+ <RelativeTime value={MONTHS_AGO} now={NOW} />
4307
+ <RelativeTime value={null} />
4308
+ ```
4309
+
4310
+ ### Suffix and precision
4311
+
4312
+ ```tsx
4313
+ <RelativeTime value={date} now={now} addSuffix={false} />
4314
+ <RelativeTime value={date} now={now} includeSeconds />
4315
+ ```
4316
+
4317
+ ### In another language
4318
+
4319
+ ```tsx
4320
+ import { de } from "date-fns/locale"
4321
+
4322
+ <UIProvider config={{ dates: { locale: de } }}>…</UIProvider>
4323
+
4324
+ {/* or hand the wording over completely */}
4325
+ <UIProvider
4326
+ config={{ dates: { formatRelativeTime: (date, now) => t.relative(date, now) } }}
4327
+ />
4328
+ ```
4329
+
4330
+ ### URL
4331
+
4332
+ ```tsx
4333
+ <Url value="https://northwind.example/invoices/4417" />
4334
+ <Url value="https://northwind.example/invoices/4417" external />
4335
+ <Url value="https://northwind.example" display="Northwind" />
4336
+ <Url value={null} />
4337
+ ```
4338
+
4339
+ ### Value
4340
+
4341
+ ```tsx
4342
+ <Value>Northwind Traders</Value>
4343
+ <SecondaryValue>Supporting detail</SecondaryValue>
4344
+ <MutedValue>Quieter still</MutedValue>
4345
+ <MonoValue>req_8f21c440</MonoValue>
4346
+ <EmptyValue />
4347
+ ```
4348
+
4349
+ ## ui-provider
4350
+
4351
+ ```tsx
4352
+ import { … } from "themelia-ui/ui-provider"
4353
+ ```
4354
+
4355
+ Preview route: UIRoot & UIScope — `/ui-root-scope`
4356
+
4357
+ ### A scope is a region
4358
+
4359
+ ```tsx
4360
+ <UIScope config={{ density: "compact" }}>
4361
+ <Toolbar />
4362
+ </UIScope>
4363
+ ```
4364
+
4365
+ ### Nesting merges
4366
+
4367
+ ```tsx
4368
+ <UIScope config={{ colorScheme: "dark" }}>
4369
+ <UIScope config={{ density: "compact" }}>…</UIScope>
4370
+ </UIScope>
4371
+ ```
4372
+
4373
+ ### render decides the element
4374
+
4375
+ ```tsx
4376
+ <UIScope render={<aside />} config={{ density: "compact" }}>…</UIScope>
4377
+ ```
4378
+
4379
+ ### Popups stay inside the scope
4380
+
4381
+ ```tsx
4382
+ <UIScope config={{ density: "compact" }}>
4383
+ <UIPortalHost>
4384
+ <DropdownMenu>
4385
+ <DropdownMenuTrigger render={<Button>Actions</Button>} />
4386
+ <DropdownMenuContent>
4387
+ <DropdownMenuItem>Duplicate</DropdownMenuItem>
4388
+ </DropdownMenuContent>
4389
+ </DropdownMenu>
4390
+ </UIPortalHost>
4391
+ </UIScope>
4392
+ ```