themelia-ui 3.0.0 → 3.1.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 (709) hide show
  1. package/.agents/skills/themelia-ui/SKILL.md +27 -29
  2. package/.agents/skills/themelia-ui/references/api-compatibility.md +3 -3
  3. package/.agents/skills/themelia-ui/references/composition.md +2 -18
  4. package/.agents/skills/themelia-ui/references/framework-wiring.md +8 -8
  5. package/.agents/skills/themelia-ui/references/imports.md +104 -104
  6. package/.agents/skills/themelia-ui/references/installation.md +55 -27
  7. package/.agents/skills/themelia-ui/references/migration.md +136 -5
  8. package/.agents/skills/themelia-ui/references/provider-and-scoping.md +13 -19
  9. package/.agents/skills/themelia-ui/references/theming.md +170 -131
  10. package/.agents/skills/themelia-ui/references/troubleshooting.md +62 -27
  11. package/.agents/skills/themelia-ui/references/verification.md +2 -3
  12. package/CHANGELOG.md +187 -0
  13. package/README.md +45 -60
  14. package/dist/accordion-CHuzMmWL.js +143 -0
  15. package/dist/{action-menu-BNLURfMK.js → action-menu-BwiL_F6I.js} +35 -33
  16. package/dist/{alert-dialog-BMVo6Z-8.js → alert-dialog-Bmo1YrTm.js} +1 -1
  17. package/dist/avatar-Dc_BNYfB.js +93 -0
  18. package/dist/badge-VlJVZjdm.js +45 -0
  19. package/dist/base/accordion.js +1 -1
  20. package/dist/base/action-menu.js +1 -1
  21. package/dist/base/alert-dialog.js +1 -1
  22. package/dist/base/aspect-ratio.js +3 -1
  23. package/dist/base/avatar.js +1 -1
  24. package/dist/base/badge.js +2 -2
  25. package/dist/base/batch-action-bar.js +1 -1
  26. package/dist/base/buttons.js +1 -1
  27. package/dist/base/cards.js +1 -1
  28. package/dist/base/carousel.js +6 -4
  29. package/dist/base/chart.js +1 -1
  30. package/dist/base/choice-inputs.js +1 -1
  31. package/dist/base/combobox.js +1 -1
  32. package/dist/base/command.js +1 -1
  33. package/dist/base/context-menu.js +22 -21
  34. package/dist/base/copyable.js +1 -1
  35. package/dist/base/date-pickers.js +1 -1
  36. package/dist/base/dialog.js +1 -1
  37. package/dist/base/display.js +1 -1
  38. package/dist/base/dropdown-menu.js +1 -1
  39. package/dist/base/feedback.js +1 -1
  40. package/dist/base/forms-numeric.js +1 -1
  41. package/dist/base/forms.js +1 -1
  42. package/dist/base/hover-card.js +26 -23
  43. package/dist/base/input-group.js +1 -1
  44. package/dist/base/item.js +1 -1
  45. package/dist/base/label.js +1 -1
  46. package/dist/base/menubar.js +20 -14
  47. package/dist/base/navigation-menu.js +47 -38
  48. package/dist/base/navigation.js +1 -1
  49. package/dist/base/otp-input.js +36 -30
  50. package/dist/base/overlay.js +1 -1
  51. package/dist/base/popover-menu.js +1 -1
  52. package/dist/base/popover.js +1 -1
  53. package/dist/base/qr-code.js +51 -47
  54. package/dist/base/repeaters.js +1 -1
  55. package/dist/base/resizable.js +2 -0
  56. package/dist/base/sheet.js +1 -1
  57. package/dist/base/sidebar.js +1 -1
  58. package/dist/base/skeleton.js +1 -1
  59. package/dist/base/spinner.js +1 -1
  60. package/dist/base/structure.js +1 -1
  61. package/dist/base/table.js +1 -1
  62. package/dist/base/text-inputs.js +1 -1
  63. package/dist/base/timeline.js +1 -1
  64. package/dist/base/toaster.js +1 -1
  65. package/dist/base/toggle.js +21 -15
  66. package/dist/base/toolbar.js +1 -1
  67. package/dist/base/tooltip.js +1 -1
  68. package/dist/base/typography.js +2 -2
  69. package/dist/base/upload.js +1 -1
  70. package/dist/base/value-inputs.js +1 -1
  71. package/dist/{batch-action-bar-BZYNKXdV.js → batch-action-bar-DZVMVW83.js} +11 -8
  72. package/dist/{admin/patterns → blocks/admin}/access.js +79 -76
  73. package/dist/blocks/admin/commerce.js +2493 -0
  74. package/dist/{patterns → blocks}/analytics.js +312 -303
  75. package/dist/{patterns → blocks}/onboarding.js +27 -23
  76. package/dist/{patterns → blocks}/timelines.js +1 -1
  77. package/dist/buttons-BX2JfL5X.js +173 -0
  78. package/dist/cards-DdiICdMM.js +279 -0
  79. package/dist/chart-BkK3Xm10.js +201 -0
  80. package/dist/choice-inputs-CCw-0gD6.js +694 -0
  81. package/dist/combobox-Byu8N-Oe.js +274 -0
  82. package/dist/command-CnB_IZSo.js +156 -0
  83. package/dist/comments-C6Y_ddMt.js +1443 -0
  84. package/dist/components/base/action-menu/action-menu.d.ts +1 -1
  85. package/dist/components/base/action-menu/action-menu.types.d.ts +2 -2
  86. package/dist/components/base/avatar/avatar.d.ts +5 -2
  87. package/dist/components/base/badge/badge.d.ts +10 -10
  88. package/dist/components/base/badge/badge.variants.d.ts +1 -2
  89. package/dist/components/base/badge/index.d.ts +1 -2
  90. package/dist/components/base/buttons/button.d.ts +9 -8
  91. package/dist/components/base/buttons/button.types.d.ts +2 -2
  92. package/dist/components/base/buttons/index.d.ts +1 -1
  93. package/dist/components/base/buttons/text-button.d.ts +1 -1
  94. package/dist/components/base/cards/card-actions.d.ts +1 -1
  95. package/dist/components/base/cards/card.d.ts +3 -1
  96. package/dist/components/base/cards/partials/card-header.d.ts +2 -1
  97. package/dist/components/base/choice-inputs/choice.types.d.ts +2 -2
  98. package/dist/components/base/choice-inputs/partials/choice-parts.d.ts +3 -3
  99. package/dist/components/base/command/command.d.ts +5 -2
  100. package/dist/components/base/display/icon-badge.d.ts +5 -3
  101. package/dist/components/base/display/index.d.ts +1 -1
  102. package/dist/components/base/display/metadata-list.d.ts +6 -6
  103. package/dist/components/base/display/metadata-value.d.ts +1 -1
  104. package/dist/components/base/display/separator.d.ts +2 -2
  105. package/dist/components/base/feedback/alert.d.ts +3 -2
  106. package/dist/components/base/feedback/empty.d.ts +5 -4
  107. package/dist/components/base/feedback/progress-circle.d.ts +2 -2
  108. package/dist/components/base/feedback/progress.d.ts +3 -1
  109. package/dist/components/base/input-group/input-group.d.ts +8 -10
  110. package/dist/components/base/item/item.d.ts +2 -2
  111. package/dist/components/base/overlay/index.d.ts +1 -1
  112. package/dist/components/base/overlay/overlay.types.d.ts +7 -5
  113. package/dist/components/base/qr-code/qr-code.d.ts +4 -4
  114. package/dist/components/base/sheet/sheet.d.ts +1 -1
  115. package/dist/components/base/sidebar/sidebar.d.ts +9 -13
  116. package/dist/components/base/spinner/spinner.d.ts +2 -2
  117. package/dist/components/base/structure/adaptive-grid.d.ts +3 -3
  118. package/dist/components/base/structure/bleed.d.ts +3 -2
  119. package/dist/components/base/structure/grid.d.ts +2 -2
  120. package/dist/components/base/structure/index.d.ts +1 -1
  121. package/dist/components/base/structure/split.d.ts +3 -3
  122. package/dist/components/base/structure/stack.d.ts +5 -5
  123. package/dist/components/base/structure/structure.maps.d.ts +2 -1
  124. package/dist/components/base/structure/structure.types.d.ts +10 -4
  125. package/dist/components/base/toggle/toggle.d.ts +2 -2
  126. package/dist/components/base/toolbar/toolbar.d.ts +3 -3
  127. package/dist/components/base/typography/index.d.ts +2 -0
  128. package/dist/components/base/typography/rich-text/rich-text.variants.d.ts +9 -0
  129. package/dist/components/base/typography/text/index.d.ts +1 -0
  130. package/dist/components/base/typography/text/text.d.ts +15 -8
  131. package/dist/components/base/typography/text/text.variants.d.ts +41 -0
  132. package/dist/components/base/value-inputs/color-input.d.ts +1 -7
  133. package/dist/components/base/value-inputs/slider.d.ts +2 -7
  134. package/dist/components/{admin/patterns → blocks/admin}/commerce/vendor-profile.d.ts +2 -1
  135. package/dist/components/{patterns → blocks}/analytics/analytics.strings.d.ts +2 -5
  136. package/dist/components/features/actions/action-adapters.d.ts +3 -3
  137. package/dist/components/features/actions/actions.types.d.ts +3 -5
  138. package/dist/components/features/actions/index.d.ts +1 -1
  139. package/dist/components/features/activities/activities-feed.d.ts +1 -1
  140. package/dist/components/features/activities/activities.types.d.ts +4 -4
  141. package/dist/components/features/activities/activity-parts.d.ts +3 -3
  142. package/dist/components/features/activities/activity-row.d.ts +4 -4
  143. package/dist/components/features/activities/index.d.ts +1 -1
  144. package/dist/components/features/ai-chat/ai-chat.types.d.ts +10 -3
  145. package/dist/components/features/ai-chat/ai-message-surfaces.d.ts +1 -1
  146. package/dist/components/features/ai-chat/ai-work-surfaces.d.ts +1 -1
  147. package/dist/components/features/combobox/combobox.strings.d.ts +2 -2
  148. package/dist/components/features/event-calendar/event-calendar.types.d.ts +3 -0
  149. package/dist/components/features/media-library/index.d.ts +1 -1
  150. package/dist/components/features/media-library/media-library-parts.d.ts +4 -3
  151. package/dist/components/features/media-library/media-library-views.d.ts +4 -3
  152. package/dist/components/features/media-library/media-library.d.ts +1 -1
  153. package/dist/components/features/media-library/media-library.strings.d.ts +12 -13
  154. package/dist/components/features/media-library/media-library.types.d.ts +11 -9
  155. package/dist/components/features/media-library/media-resource-gallery.d.ts +1 -1
  156. package/dist/components/features/media-library/use-media-library.d.ts +1 -4
  157. package/dist/components/features/overlays/action-overlay-frame.d.ts +1 -1
  158. package/dist/components/features/overlays/index.d.ts +1 -1
  159. package/dist/components/features/overlays/overlay-parts.d.ts +3 -3
  160. package/dist/components/features/overlays/overlays.types.d.ts +8 -7
  161. package/dist/components/features/rich-text-editor/index.d.ts +0 -1
  162. package/dist/components/features/table/data-table-body.d.ts +1 -1
  163. package/dist/components/features/table/data-table-expanded-row.d.ts +27 -0
  164. package/dist/components/features/table/data-table-header.d.ts +1 -1
  165. package/dist/components/features/table/data-table-size.d.ts +1 -1
  166. package/dist/components/features/table/data-table.d.ts +1 -1
  167. package/dist/components/features/table/index.d.ts +1 -1
  168. package/dist/components/features/table/table-helpers.d.ts +9 -3
  169. package/dist/components/features/table/table.strings.d.ts +11 -0
  170. package/dist/components/features/table/table.types.d.ts +60 -2
  171. package/dist/components/features/theme-tweaker/index.d.ts +1 -1
  172. package/dist/components/features/theme-tweaker/theme-tweaker.strings.d.ts +1 -1
  173. package/dist/components/features/theme-tweaker/theme-tweaker.types.d.ts +6 -10
  174. package/dist/components/features/theme-tweaker/theme-tweaker.utils.d.ts +22 -6
  175. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
  176. package/dist/components/layout/auth/auth.d.ts +1 -1
  177. package/dist/components/layout/auth/auth.types.d.ts +1 -1
  178. package/dist/components/primitives/value.d.ts +3 -1
  179. package/dist/containers-B8d8U9GS.js +2 -0
  180. package/dist/{copyable-H1TUEY-H.js → copyable-D9Okb1w6.js} +12 -11
  181. package/dist/core.css +2 -2
  182. package/dist/css/access.css +2 -1
  183. package/dist/css/accordion.css +2 -1
  184. package/dist/css/action-menu.css +2 -1
  185. package/dist/css/activities.css +2 -1
  186. package/dist/css/ai-chat.css +2 -1
  187. package/dist/css/analytics.css +2 -1
  188. package/dist/css/app-shell.css +2 -1
  189. package/dist/css/aspect-ratio.css +2 -1
  190. package/dist/css/async-preview.css +2 -1
  191. package/dist/css/auth.css +2 -1
  192. package/dist/css/avatar.css +2 -1
  193. package/dist/css/badge.css +2 -1
  194. package/dist/css/batch-action-bar.css +2 -1
  195. package/dist/css/buttons.css +2 -1
  196. package/dist/css/cards.css +2 -1
  197. package/dist/css/carousel.css +2 -1
  198. package/dist/css/chart.css +2 -1
  199. package/dist/css/choice-inputs.css +2 -1
  200. package/dist/css/combobox.css +2 -1
  201. package/dist/css/combobox2.css +2 -1
  202. package/dist/css/command.css +2 -1
  203. package/dist/css/comments.css +2 -1
  204. package/dist/css/commerce.css +2 -1
  205. package/dist/css/containers.css +2 -1
  206. package/dist/css/copyable.css +2 -1
  207. package/dist/css/data-view.css +2 -1
  208. package/dist/css/date-pickers.css +2 -1
  209. package/dist/css/display.css +2 -1
  210. package/dist/css/dropdown-menu.css +2 -1
  211. package/dist/css/event-calendar.css +2 -1
  212. package/dist/css/feedback.css +2 -1
  213. package/dist/css/filters.css +2 -1
  214. package/dist/css/forms-numeric.css +2 -1
  215. package/dist/css/forms.css +2 -1
  216. package/dist/css/global-search.css +2 -1
  217. package/dist/css/header.css +2 -1
  218. package/dist/css/hover-card.css +2 -1
  219. package/dist/css/input-group.css +2 -1
  220. package/dist/css/item.css +2 -1
  221. package/dist/css/kanban.css +2 -1
  222. package/dist/css/label.css +2 -1
  223. package/dist/css/map.css +2 -1
  224. package/dist/css/media-library.css +2 -1
  225. package/dist/css/mentions.css +2 -1
  226. package/dist/css/menubar.css +2 -1
  227. package/dist/css/navigation-menu.css +2 -1
  228. package/dist/css/navigation.css +2 -1
  229. package/dist/css/navigation2.css +2 -1
  230. package/dist/css/onboarding.css +2 -1
  231. package/dist/css/otp-input.css +2 -1
  232. package/dist/css/overlay.css +2 -1
  233. package/dist/css/overlays.css +2 -1
  234. package/dist/css/page.css +2 -1
  235. package/dist/css/popover-menu.css +2 -1
  236. package/dist/css/popover.css +2 -1
  237. package/dist/css/primitives.css +2 -1
  238. package/dist/css/products.css +2 -1
  239. package/dist/css/qr-code.css +2 -1
  240. package/dist/css/repeaters.css +2 -1
  241. package/dist/css/resizable.css +2 -1
  242. package/dist/css/resource-assignment.css +2 -1
  243. package/dist/css/resource.css +2 -1
  244. package/dist/css/rich-text-editor.css +2 -1
  245. package/dist/css/schema-form.css +2 -1
  246. package/dist/css/sidebar.css +2 -1
  247. package/dist/css/sidebar2.css +2 -1
  248. package/dist/css/skeleton.css +2 -1
  249. package/dist/css/spinner.css +2 -1
  250. package/dist/css/structure.css +2 -1
  251. package/dist/css/sync.css +2 -1
  252. package/dist/css/table.css +2 -1
  253. package/dist/css/table2.css +2 -1
  254. package/dist/css/text-inputs.css +2 -1
  255. package/dist/css/theme-tweaker.css +2 -1
  256. package/dist/css/timeline.css +2 -1
  257. package/dist/css/timelines.css +2 -1
  258. package/dist/css/toaster.css +2 -1
  259. package/dist/css/toggle.css +2 -1
  260. package/dist/css/toolbar.css +2 -1
  261. package/dist/css/tooltip.css +2 -1
  262. package/dist/css/typography.css +2 -1
  263. package/dist/css/upload.css +2 -1
  264. package/dist/css/value-inputs.css +2 -1
  265. package/dist/css/workspace.css +2 -1
  266. package/dist/css-graph.json +1027 -0
  267. package/dist/date-pickers-C2HgjpFU.js +685 -0
  268. package/dist/{dialog-CtFCuTUF.js → dialog-0nRFg5Zs.js} +1 -1
  269. package/dist/display-BGN834xV.js +664 -0
  270. package/dist/dropdown-menu-Br8kvjrF.js +235 -0
  271. package/dist/empty.js +0 -0
  272. package/dist/features/actions.js +6 -6
  273. package/dist/features/activities.js +219 -216
  274. package/dist/features/ai-chat.js +593 -565
  275. package/dist/features/async-preview.js +105 -286
  276. package/dist/features/combobox.js +119 -117
  277. package/dist/features/comments.js +1 -1
  278. package/dist/features/data-view.js +56 -55
  279. package/dist/features/event-calendar.js +189 -185
  280. package/dist/features/filters.js +1 -1
  281. package/dist/features/global-search.js +259 -260
  282. package/dist/features/kanban.js +39 -37
  283. package/dist/features/map.js +357 -354
  284. package/dist/features/media-library.js +931 -931
  285. package/dist/features/mentions.js +1 -1
  286. package/dist/features/overlays.js +1 -1
  287. package/dist/features/products.js +950 -942
  288. package/dist/features/resource-assignment.js +39 -37
  289. package/dist/features/resource.js +70 -71
  290. package/dist/features/rich-text-editor.js +2 -2
  291. package/dist/features/schema-form.js +342 -338
  292. package/dist/features/sync.js +14 -12
  293. package/dist/features/table.js +1 -1
  294. package/dist/features/theme-tweaker.js +1002 -962
  295. package/dist/feedback-D4qVsKlD.js +430 -0
  296. package/dist/{filters-DOLKRSmb.js → filters-geLuSlFL.js} +386 -383
  297. package/dist/forms-NxbJK4Mh.js +250 -0
  298. package/dist/forms-numeric-C6NMdj6G.js +582 -0
  299. package/dist/index.js +2 -2
  300. package/dist/input-group-HS_Z0Ei_.js +119 -0
  301. package/dist/item-CuUJyETl.js +150 -0
  302. package/dist/{label-DumoMDm6.js → label-HOBXAscw.js} +7 -5
  303. package/dist/layout/app-shell.js +4 -2
  304. package/dist/layout/auth.js +102 -100
  305. package/dist/layout/header.js +190 -180
  306. package/dist/layout/navigation.js +1 -1
  307. package/dist/layout/page.js +18 -16
  308. package/dist/layout/settings.js +2 -2
  309. package/dist/layout/sidebar.js +43 -43
  310. package/dist/layout/workspace.js +71 -69
  311. package/dist/lib/action-presentation.d.ts +3 -3
  312. package/dist/lib/component-vocabulary.d.ts +2 -2
  313. package/dist/lib/css-length.d.ts +2 -0
  314. package/dist/lib/responsive.d.ts +1 -1
  315. package/dist/lib/theming/index.d.ts +1 -0
  316. package/dist/lib/theming/recipes.d.ts +2 -2
  317. package/dist/lib/theming/themes/dense.d.ts +3 -0
  318. package/dist/lib/theming/themes/editorial.d.ts +3 -0
  319. package/dist/lib/theming/themes/index.d.ts +8 -0
  320. package/dist/lib/theming/themes/pair.d.ts +7 -0
  321. package/dist/lib/theming/themes/sharp.d.ts +3 -0
  322. package/dist/lib/theming/themes/soft.d.ts +3 -0
  323. package/dist/lib/theming/themes/types.d.ts +12 -0
  324. package/dist/lib/ui-provider/index.d.ts +1 -1
  325. package/dist/lib/ui-provider/scope.d.ts +5 -8
  326. package/dist/lib/ui-provider/tokens.d.ts +11 -3
  327. package/dist/lib/ui-provider/tokens.generated.d.ts +6 -4
  328. package/dist/lib/ui-provider/types.d.ts +17 -19
  329. package/dist/{mentions-BbsEHlcH.js → mentions-oeYNv_j1.js} +113 -111
  330. package/dist/navigation-BTX5Ti0Z.js +622 -0
  331. package/dist/navigation-WYKjDhZq.js +216 -0
  332. package/dist/overlay-C8RAgi2_.js +356 -0
  333. package/dist/{overlays-DvVoS3td.js → overlays-9BxwFTou.js} +77 -75
  334. package/dist/popover-CA7SP_iz.js +127 -0
  335. package/dist/popover-menu-DcLeiw9r.js +192 -0
  336. package/dist/{primitives-D0bdDozz.js → primitives-BskKlf35.js} +181 -178
  337. package/dist/primitives.js +1 -1
  338. package/dist/profiles/admin.json +6 -36
  339. package/dist/profiles/general.json +6 -96
  340. package/dist/repeaters-DfptvbGA.js +445 -0
  341. package/dist/rich-text-editor-D_Ppm8yh.js +491 -0
  342. package/dist/{sheet-CKcmRbJ9.js → sheet-D-DVZH_b.js} +3 -3
  343. package/dist/sidebar-DXQOy_Cb.js +421 -0
  344. package/dist/skeleton-CubvHel9.js +173 -0
  345. package/dist/spinner-Tc1QCnxM.js +30 -0
  346. package/dist/{structure-D0WGQAP3.js → structure-B9Y5NkP_.js} +15 -22
  347. package/dist/style.css +1 -1
  348. package/dist/styles/TOKENS.md +115 -275
  349. package/dist/styles/animation.css +114 -0
  350. package/dist/styles/base.css +7 -6
  351. package/dist/styles/fields.css +45 -63
  352. package/dist/styles/focus.css +12 -0
  353. package/dist/styles/forced-colors.css +11 -10
  354. package/dist/styles/index.css +23 -30
  355. package/dist/styles/map.css +45 -34
  356. package/dist/styles/mentions.css +14 -52
  357. package/dist/styles/overlays.css +7 -7
  358. package/dist/styles/tailwind.css +76 -127
  359. package/dist/styles/targets.css +3 -3
  360. package/dist/styles/theme/colour.css +86 -0
  361. package/dist/styles/theme/density.css +31 -0
  362. package/dist/styles/theme/elevation.css +9 -0
  363. package/dist/styles/theme/layout.css +18 -0
  364. package/dist/styles/theme/motion.css +18 -0
  365. package/dist/styles/theme/shape.css +12 -0
  366. package/dist/styles/theme/size.css +10 -0
  367. package/dist/styles/theme/spacing.css +11 -0
  368. package/dist/styles/theme/typography.css +20 -0
  369. package/dist/styles/tone.css +61 -0
  370. package/dist/table-DT_20ity.js +1262 -0
  371. package/dist/table-Ds_eO9av.js +191 -0
  372. package/dist/tailwind.css +76 -127
  373. package/dist/text-inputs-BboE77nZ.js +395 -0
  374. package/dist/theming-C5ygF5uf.js +292 -0
  375. package/dist/theming.js +2 -2
  376. package/dist/{timeline-BdaGRyj-.js → timeline-BRZbSdhf.js} +57 -49
  377. package/dist/{timelines-BB7550mz.js → timelines-DczZKW5p.js} +69 -67
  378. package/dist/{toaster-bBMgXm8z.js → toaster-CXL8L7Mm.js} +106 -99
  379. package/dist/tokens.json +1027 -636
  380. package/dist/toolbar-DBK-c4yy.js +74 -0
  381. package/dist/tooltip-BPYP-jUm.js +76 -0
  382. package/dist/{typography-BkxEiwQ1.js → typography-DmeR05Er.js} +87 -53
  383. package/dist/{ui-provider-Cmoq6i_D.js → ui-provider-DpzLUD12.js} +117 -69
  384. package/dist/ui-provider.js +1 -1
  385. package/dist/upload-C_6mlbfl.js +968 -0
  386. package/dist/use-async-preview-BFwf9ElY.js +188 -0
  387. package/dist/value-inputs-CnO6RZeT.js +728 -0
  388. package/docs/README.md +2 -2
  389. package/docs/build/recipes.md +10992 -10628
  390. package/docs/generated/component-index.json +11133 -11624
  391. package/docs/generated/components/INDEX.md +5 -5
  392. package/docs/generated/components/base--accordion.md +51 -2
  393. package/docs/generated/components/base--action-menu.md +14 -15
  394. package/docs/generated/components/base--alert-dialog.md +3 -4
  395. package/docs/generated/components/base--aspect-ratio.md +3 -4
  396. package/docs/generated/components/base--avatar.md +7 -7
  397. package/docs/generated/components/base--badge.md +159 -27
  398. package/docs/generated/components/base--batch-action-bar.md +6 -7
  399. package/docs/generated/components/base--buttons.md +151 -47
  400. package/docs/generated/components/base--cards.md +107 -14
  401. package/docs/generated/components/base--carousel.md +1 -2
  402. package/docs/generated/components/base--chart.md +44 -8
  403. package/docs/generated/components/base--choice-inputs.md +10 -11
  404. package/docs/generated/components/base--combobox.md +3 -4
  405. package/docs/generated/components/base--command.md +6 -6
  406. package/docs/generated/components/base--context-menu.md +1 -2
  407. package/docs/generated/components/base--copyable.md +6 -7
  408. package/docs/generated/components/base--date-pickers.md +6 -7
  409. package/docs/generated/components/base--dialog.md +6 -7
  410. package/docs/generated/components/base--direction.md +1 -1
  411. package/docs/generated/components/base--display.md +234 -54
  412. package/docs/generated/components/base--dropdown-menu.md +6 -7
  413. package/docs/generated/components/base--feedback.md +71 -18
  414. package/docs/generated/components/base--forms-numeric.md +6 -7
  415. package/docs/generated/components/base--forms.md +12 -13
  416. package/docs/generated/components/base--hover-card.md +3 -4
  417. package/docs/generated/components/base--input-group.md +27 -30
  418. package/docs/generated/components/base--item.md +8 -9
  419. package/docs/generated/components/base--label.md +2 -3
  420. package/docs/generated/components/base--menubar.md +2 -4
  421. package/docs/generated/components/base--navigation-menu.md +2 -3
  422. package/docs/generated/components/base--navigation.md +2 -3
  423. package/docs/generated/components/base--otp-input.md +3 -4
  424. package/docs/generated/components/base--overlay.md +56 -47
  425. package/docs/generated/components/base--popover-menu.md +7 -8
  426. package/docs/generated/components/base--popover.md +9 -10
  427. package/docs/generated/components/base--qr-code.md +7 -8
  428. package/docs/generated/components/base--repeaters.md +6 -7
  429. package/docs/generated/components/base--resizable.md +2 -3
  430. package/docs/generated/components/base--sheet.md +12 -13
  431. package/docs/generated/components/base--sidebar.md +9 -11
  432. package/docs/generated/components/base--skeleton.md +6 -7
  433. package/docs/generated/components/base--slot.md +1 -1
  434. package/docs/generated/components/base--spinner.md +5 -7
  435. package/docs/generated/components/base--structure.md +264 -65
  436. package/docs/generated/components/base--table.md +61 -3
  437. package/docs/generated/components/base--text-inputs.md +17 -18
  438. package/docs/generated/components/base--timeline.md +45 -4
  439. package/docs/generated/components/base--toaster.md +43 -12
  440. package/docs/generated/components/base--toggle.md +11 -12
  441. package/docs/generated/components/base--toolbar.md +7 -8
  442. package/docs/generated/components/base--tooltip.md +5 -6
  443. package/docs/generated/components/base--typography.md +279 -32
  444. package/docs/generated/components/base--upload.md +8 -9
  445. package/docs/generated/components/base--value-inputs.md +9 -38
  446. package/docs/generated/components/{admin--patterns--access.md → blocks--admin--access.md} +5 -6
  447. package/docs/generated/components/{admin--patterns--commerce.md → blocks--admin--commerce.md} +40 -41
  448. package/docs/generated/components/{patterns--analytics.md → blocks--analytics.md} +13 -14
  449. package/docs/generated/components/{patterns--onboarding.md → blocks--onboarding.md} +6 -7
  450. package/docs/generated/components/{patterns--timelines.md → blocks--timelines.md} +6 -7
  451. package/docs/generated/components/features--actions.md +8 -18
  452. package/docs/generated/components/features--activities.md +31 -32
  453. package/docs/generated/components/features--ai-chat.md +15 -15
  454. package/docs/generated/components/features--async-preview.md +5 -6
  455. package/docs/generated/components/features--combobox.md +4 -5
  456. package/docs/generated/components/features--comments.md +0 -1
  457. package/docs/generated/components/features--data-view.md +4 -5
  458. package/docs/generated/components/features--event-calendar.md +1 -2
  459. package/docs/generated/components/features--filters.md +1 -2
  460. package/docs/generated/components/features--global-search.md +1 -2
  461. package/docs/generated/components/features--kanban.md +1 -2
  462. package/docs/generated/components/features--map.md +1 -2
  463. package/docs/generated/components/features--media-library.md +37 -38
  464. package/docs/generated/components/features--mentions.md +7 -7
  465. package/docs/generated/components/features--overlays.md +21 -22
  466. package/docs/generated/components/features--products.md +10 -11
  467. package/docs/generated/components/features--resource-assignment.md +2 -3
  468. package/docs/generated/components/features--resource.md +3 -4
  469. package/docs/generated/components/features--rich-text-editor.md +4 -13
  470. package/docs/generated/components/features--schema-form.md +1 -2
  471. package/docs/generated/components/features--sync.md +2 -3
  472. package/docs/generated/components/features--table.md +162 -12
  473. package/docs/generated/components/features--theme-tweaker.md +30 -15
  474. package/docs/generated/components/forms.md +2 -2
  475. package/docs/generated/components/layout--app-shell.md +10 -11
  476. package/docs/generated/components/layout--auth.md +8 -9
  477. package/docs/generated/components/layout--containers.md +0 -1
  478. package/docs/generated/components/layout--header.md +2 -3
  479. package/docs/generated/components/layout--navigation.md +0 -1
  480. package/docs/generated/components/layout--page.md +3 -4
  481. package/docs/generated/components/layout--settings.md +0 -1
  482. package/docs/generated/components/layout--sidebar.md +6 -7
  483. package/docs/generated/components/layout--workspace.md +3 -4
  484. package/docs/generated/components/primitives.md +128 -17
  485. package/docs/generated/components/theming.md +147 -4
  486. package/docs/generated/components/ui-provider.md +95 -77
  487. package/docs/generated/imports.md +104 -104
  488. package/docs/generated/migration-broad-imports.json +267 -90
  489. package/docs/generated/migration-broad-imports.md +266 -101
  490. package/docs/generated/migration-codemod.json +365 -70
  491. package/docs/generated/migration.md +665 -95
  492. package/docs/generated/profiles.md +27 -27
  493. package/docs/generated/public-api.md +104 -102
  494. package/docs/generated/recipes.json +585 -810
  495. package/docs/learn/api-compatibility.md +3 -3
  496. package/docs/learn/composition.md +2 -18
  497. package/docs/learn/framework-wiring.md +8 -8
  498. package/docs/learn/installation.md +55 -27
  499. package/docs/learn/migration.md +136 -5
  500. package/docs/learn/provider-and-scoping.md +13 -19
  501. package/docs/learn/theming.md +170 -131
  502. package/docs/learn/troubleshooting.md +62 -27
  503. package/docs/learn/verification.md +2 -3
  504. package/package.json +39 -473
  505. package/scripts/consumer/codemod.mjs +51 -12
  506. package/scripts/consumer/find-component.mjs +2 -4
  507. package/src/styles/TOKENS.md +115 -275
  508. package/dist/accordion-6YPJ9XRO.js +0 -135
  509. package/dist/admin/patterns/access.css +0 -15
  510. package/dist/admin/patterns/commerce.css +0 -29
  511. package/dist/admin/patterns/commerce.js +0 -2493
  512. package/dist/avatar-CS7zow2q.js +0 -85
  513. package/dist/badge-CxOuTfVr.js +0 -63
  514. package/dist/base/accordion.css +0 -3
  515. package/dist/base/action-menu.css +0 -6
  516. package/dist/base/alert-dialog.css +0 -4
  517. package/dist/base/aspect-ratio.css +0 -2
  518. package/dist/base/avatar.css +0 -4
  519. package/dist/base/badge.css +0 -2
  520. package/dist/base/batch-action-bar.css +0 -5
  521. package/dist/base/buttons.css +0 -4
  522. package/dist/base/cards.css +0 -13
  523. package/dist/base/carousel.css +0 -5
  524. package/dist/base/chart.css +0 -2
  525. package/dist/base/choice-inputs.css +0 -10
  526. package/dist/base/combobox.css +0 -3
  527. package/dist/base/command.css +0 -9
  528. package/dist/base/context-menu.css +0 -2
  529. package/dist/base/copyable.css +0 -6
  530. package/dist/base/date-pickers.css +0 -11
  531. package/dist/base/dialog.css +0 -4
  532. package/dist/base/display.css +0 -8
  533. package/dist/base/dropdown-menu.css +0 -2
  534. package/dist/base/feedback.css +0 -5
  535. package/dist/base/forms-numeric.css +0 -12
  536. package/dist/base/forms.css +0 -14
  537. package/dist/base/hover-card.css +0 -2
  538. package/dist/base/input-group.css +0 -6
  539. package/dist/base/item.css +0 -9
  540. package/dist/base/label.css +0 -3
  541. package/dist/base/menubar.css +0 -2
  542. package/dist/base/navigation-menu.css +0 -2
  543. package/dist/base/navigation.css +0 -12
  544. package/dist/base/otp-input.css +0 -9
  545. package/dist/base/overlay.css +0 -4
  546. package/dist/base/popover-menu.css +0 -11
  547. package/dist/base/popover.css +0 -3
  548. package/dist/base/qr-code.css +0 -2
  549. package/dist/base/repeaters.css +0 -18
  550. package/dist/base/resizable.css +0 -2
  551. package/dist/base/sheet.css +0 -4
  552. package/dist/base/sidebar.css +0 -12
  553. package/dist/base/skeleton.css +0 -9
  554. package/dist/base/spinner.css +0 -2
  555. package/dist/base/structure.css +0 -2
  556. package/dist/base/table.css +0 -3
  557. package/dist/base/text-inputs.css +0 -2
  558. package/dist/base/timeline.css +0 -9
  559. package/dist/base/toaster.css +0 -2
  560. package/dist/base/toggle.css +0 -2
  561. package/dist/base/toolbar.css +0 -5
  562. package/dist/base/tooltip.css +0 -2
  563. package/dist/base/typography.css +0 -2
  564. package/dist/base/upload.css +0 -10
  565. package/dist/base/value-inputs.css +0 -14
  566. package/dist/buttons-CqXKWty3.js +0 -179
  567. package/dist/cards-C6Ulbkw7.js +0 -271
  568. package/dist/chart-nomhJ87z.js +0 -193
  569. package/dist/choice-inputs-OUDn0kQw.js +0 -680
  570. package/dist/combobox-C8oP92bT.js +0 -266
  571. package/dist/command-Bp3B6pUu.js +0 -143
  572. package/dist/comments-CAnDlyXO.js +0 -1438
  573. package/dist/components/admin/patterns/index.d.ts +0 -2
  574. package/dist/components/features/rich-text-editor/exec-command-engine.d.ts +0 -2
  575. package/dist/components/patterns/index.d.ts +0 -3
  576. package/dist/css/styles.css +0 -1
  577. package/dist/date-pickers-DOwIT-Nk.js +0 -661
  578. package/dist/display-B3Q17h5z.js +0 -645
  579. package/dist/dropdown-menu-TyNLCLML.js +0 -223
  580. package/dist/features/actions.css +0 -11
  581. package/dist/features/activities.css +0 -25
  582. package/dist/features/ai-chat.css +0 -14
  583. package/dist/features/async-preview.css +0 -10
  584. package/dist/features/combobox.css +0 -12
  585. package/dist/features/comments.css +0 -24
  586. package/dist/features/data-view.css +0 -31
  587. package/dist/features/event-calendar.css +0 -17
  588. package/dist/features/filters.css +0 -24
  589. package/dist/features/global-search.css +0 -19
  590. package/dist/features/kanban.css +0 -7
  591. package/dist/features/map.css +0 -15
  592. package/dist/features/media-library.css +0 -27
  593. package/dist/features/mentions.css +0 -17
  594. package/dist/features/overlays.css +0 -11
  595. package/dist/features/products.css +0 -29
  596. package/dist/features/resource-assignment.css +0 -14
  597. package/dist/features/resource.css +0 -15
  598. package/dist/features/rich-text-editor.css +0 -8
  599. package/dist/features/schema-form.css +0 -22
  600. package/dist/features/sync.css +0 -11
  601. package/dist/features/table.css +0 -20
  602. package/dist/features/theme-tweaker.css +0 -27
  603. package/dist/feedback-DRerHGuV.js +0 -469
  604. package/dist/forms-CPrGGif_.js +0 -242
  605. package/dist/forms-numeric-CPVsL7Vf.js +0 -569
  606. package/dist/index.css +0 -3
  607. package/dist/input-group-BYe0rhoB.js +0 -126
  608. package/dist/item-B3yQ26as.js +0 -146
  609. package/dist/layout/app-shell.css +0 -13
  610. package/dist/layout/auth.css +0 -14
  611. package/dist/layout/containers.css +0 -2
  612. package/dist/layout/header.css +0 -20
  613. package/dist/layout/navigation.css +0 -11
  614. package/dist/layout/page.css +0 -15
  615. package/dist/layout/settings.css +0 -16
  616. package/dist/layout/sidebar.css +0 -16
  617. package/dist/layout/workspace.css +0 -15
  618. package/dist/navigation-CsqTA16F.js +0 -614
  619. package/dist/navigation-DzxzPuwg.js +0 -202
  620. package/dist/overlay-WQOsLd69.js +0 -345
  621. package/dist/patterns/analytics.css +0 -15
  622. package/dist/patterns/onboarding.css +0 -11
  623. package/dist/patterns/timelines.css +0 -11
  624. package/dist/popover-DriLnIFc.js +0 -123
  625. package/dist/popover-menu-C2UCMAe7.js +0 -189
  626. package/dist/primitives.css +0 -3
  627. package/dist/repeaters-DuP1N0nw.js +0 -438
  628. package/dist/rich-text-editor-BQXFe9oN.js +0 -595
  629. package/dist/sidebar-D0N6ckJL.js +0 -412
  630. package/dist/skeleton-DGR9df28.js +0 -172
  631. package/dist/spinner-CUAVFecI.js +0 -52
  632. package/dist/styles/FACTORS.md +0 -36
  633. package/dist/styles/SCOPES.md +0 -86
  634. package/dist/styles/themes/default.css +0 -164
  635. package/dist/styles/theming/animation.css +0 -143
  636. package/dist/styles/theming/colors.css +0 -97
  637. package/dist/styles/theming/feedback.css +0 -17
  638. package/dist/styles/theming/field.css +0 -21
  639. package/dist/styles/theming/focus.css +0 -88
  640. package/dist/styles/theming/layers.css +0 -13
  641. package/dist/styles/theming/layout.css +0 -21
  642. package/dist/styles/theming/motion.css +0 -42
  643. package/dist/styles/theming/overlay.css +0 -52
  644. package/dist/styles/theming/sizing.css +0 -118
  645. package/dist/styles/theming/text.css +0 -30
  646. package/dist/styles/theming/typography.css +0 -26
  647. package/dist/styles/tokens/components.css +0 -22
  648. package/dist/styles/tokens/foundation.css +0 -80
  649. package/dist/styles/tokens/layout.css +0 -19
  650. package/dist/styles/tokens/palette.css +0 -88
  651. package/dist/styles/tokens/primitives.css +0 -18
  652. package/dist/styles/tokens/states.css +0 -77
  653. package/dist/table-BC4qqsUb.js +0 -180
  654. package/dist/table-BHDpjajL.js +0 -982
  655. package/dist/text-inputs-DF_lD7pA.js +0 -385
  656. package/dist/theming-D6KRU7hO.js +0 -104
  657. package/dist/toolbar-DWRywF0R.js +0 -68
  658. package/dist/tooltip-t1VQQ2tZ.js +0 -73
  659. package/dist/upload-B38YZeFJ.js +0 -938
  660. package/dist/value-inputs-Q4ymjXlV.js +0 -716
  661. package/src/styles/FACTORS.md +0 -36
  662. package/src/styles/SCOPES.md +0 -86
  663. /package/dist/components/{admin/patterns → blocks/admin}/access/admin.strings.d.ts +0 -0
  664. /package/dist/components/{admin/patterns → blocks/admin}/access/credential-list.d.ts +0 -0
  665. /package/dist/components/{admin/patterns → blocks/admin}/access/index.d.ts +0 -0
  666. /package/dist/components/{admin/patterns → blocks/admin}/access/role-permissions.d.ts +0 -0
  667. /package/dist/components/{admin/patterns → blocks/admin}/access/sensitive-action.d.ts +0 -0
  668. /package/dist/components/{admin/patterns → blocks/admin}/commerce/account.d.ts +0 -0
  669. /package/dist/components/{admin/patterns → blocks/admin}/commerce/address-lines.d.ts +0 -0
  670. /package/dist/components/{admin/patterns → blocks/admin}/commerce/booking.d.ts +0 -0
  671. /package/dist/components/{admin/patterns → blocks/admin}/commerce/cart.d.ts +0 -0
  672. /package/dist/components/{admin/patterns → blocks/admin}/commerce/commerce.strings.d.ts +0 -0
  673. /package/dist/components/{admin/patterns → blocks/admin}/commerce/commerce.types.d.ts +0 -0
  674. /package/dist/components/{admin/patterns → blocks/admin}/commerce/format-amount.d.ts +0 -0
  675. /package/dist/components/{admin/patterns → blocks/admin}/commerce/index.d.ts +0 -0
  676. /package/dist/components/{admin/patterns → blocks/admin}/commerce/inventory-section.d.ts +0 -0
  677. /package/dist/components/{admin/patterns → blocks/admin}/commerce/invoice.d.ts +0 -0
  678. /package/dist/components/{admin/patterns → blocks/admin}/commerce/loyalty.d.ts +0 -0
  679. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-customer.d.ts +0 -0
  680. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-detail.d.ts +0 -0
  681. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-line-item.d.ts +0 -0
  682. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-transactions.d.ts +0 -0
  683. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order.d.ts +0 -0
  684. /package/dist/components/{admin/patterns → blocks/admin}/commerce/seo-listing.d.ts +0 -0
  685. /package/dist/components/{admin/patterns → blocks/admin}/commerce/seo-score.d.ts +0 -0
  686. /package/dist/components/{admin/patterns → blocks/admin}/commerce/summary-panel.d.ts +0 -0
  687. /package/dist/components/{patterns → blocks}/analytics/activity-heatmap.d.ts +0 -0
  688. /package/dist/components/{patterns → blocks}/analytics/analytics.types.d.ts +0 -0
  689. /package/dist/components/{patterns → blocks}/analytics/chart-card.d.ts +0 -0
  690. /package/dist/components/{patterns → blocks}/analytics/format-metric-value.d.ts +0 -0
  691. /package/dist/components/{patterns → blocks}/analytics/index.d.ts +0 -0
  692. /package/dist/components/{patterns → blocks}/analytics/metric-bar.d.ts +0 -0
  693. /package/dist/components/{patterns → blocks}/analytics/metric-comparison.d.ts +0 -0
  694. /package/dist/components/{patterns → blocks}/analytics/metric-gradient.d.ts +0 -0
  695. /package/dist/components/{patterns → blocks}/analytics/metric-grid.d.ts +0 -0
  696. /package/dist/components/{patterns → blocks}/analytics/metric-micro-grid.d.ts +0 -0
  697. /package/dist/components/{patterns → blocks}/analytics/metric-skeleton.d.ts +0 -0
  698. /package/dist/components/{patterns → blocks}/analytics/metric-trend-chip.d.ts +0 -0
  699. /package/dist/components/{patterns → blocks}/analytics/metric.d.ts +0 -0
  700. /package/dist/components/{patterns → blocks}/analytics/time-ruler.d.ts +0 -0
  701. /package/dist/components/{patterns → blocks}/onboarding/checklist.d.ts +0 -0
  702. /package/dist/components/{patterns → blocks}/onboarding/index.d.ts +0 -0
  703. /package/dist/components/{patterns → blocks}/onboarding/onboarding.strings.d.ts +0 -0
  704. /package/dist/components/{patterns → blocks}/timelines/changelog-timeline.d.ts +0 -0
  705. /package/dist/components/{patterns → blocks}/timelines/index.d.ts +0 -0
  706. /package/dist/components/{patterns → blocks}/timelines/milestones-timeline.d.ts +0 -0
  707. /package/dist/components/{patterns → blocks}/timelines/steps.d.ts +0 -0
  708. /package/dist/components/{patterns → blocks}/timelines/timelines.strings.d.ts +0 -0
  709. /package/dist/styles/{theming/breakpoints.css → breakpoints.css} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,192 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.1.0 — 2026-09-28
4
+
5
+ This release renames and removes public API. Read
6
+ [Upgrading to 3.1](docs/learn/migration.md#upgrading-to-31) before you upgrade, then run the
7
+ packaged codemod from your project, dry first:
8
+
9
+ ```sh
10
+ node node_modules/themelia-ui/scripts/consumer/codemod.mjs --dry-run src/
11
+ ```
12
+
13
+ ### Breaking
14
+
15
+ - Blocks are published under `themelia-ui/blocks/`, the name the documentation, the
16
+ component index and the finder already use. `themelia-ui/patterns/analytics`,
17
+ `onboarding` and `timelines` are now `themelia-ui/blocks/analytics`, `onboarding` and
18
+ `timelines`; `themelia-ui/admin/patterns/access` and `commerce` are
19
+ `themelia-ui/blocks/admin/access` and `commerce`. The codemod rewrites JavaScript imports.
20
+ - Per-module CSS subpaths are removed. Component imports bring their stylesheets in bundled
21
+ apps; direct stylesheet links use `themelia-ui/style.css`.
22
+ - `ColorInputProps.emitHex` is removed; use `format="hex"`. The
23
+ `createExecCommandEngine` adapter is removed; RichTextEditor uses TipTap by default and
24
+ `createTiptapEngine` remains available for custom schemas.
25
+ - Complete `AnalyticsStrings`, `AsyncComboboxStrings` and `MediaLibraryStrings` translations
26
+ must provide all declared keys. `MediaLibraryState` requires its recovery and visible-selection
27
+ controls; `useMediaLibrary` supplies them.
28
+ - The theme is one level: about eighty variables declared once at `:root`, each colour a
29
+ `light-dark(light, dark)` pair, and every length, shadow, tint and duration in twos.
30
+ Components compute everything else where they use it, so a value set anywhere reaches every
31
+ component below it, and a dark region inside a light page needs no second set of values.
32
+ - The palette, the alpha steps (`--primary-10`), the spacing ladder (`--space-*`), the
33
+ control, icon and avatar ladders, the derived role variables, the dark twins, the
34
+ `--scale` and `--density-scale` factors, and `--font-serif`, which nothing read, are gone. The codemod renames each variable that
35
+ has a successor (`--control-h` to `--control-height`, `--size-icon` to `--icon-size`,
36
+ `--link-color` to `--link`) and reports the rest.
37
+ - A theme of your own is one `:root` block; the selector list for re-declaring colours at
38
+ every boundary is not needed.
39
+ - The `theming` cascade layer is gone: the order is `tokens, base, components, utilities`.
40
+ - `--animate-*` are gone. A `--keyframes-*` variable holds a keyframes name and you state
41
+ the timing: `animation: var(--keyframes-spin) 1s linear infinite`. The kit's keyframes
42
+ are named `themelia-*`, so a bare `spin` or `pulse` is no longer the kit's.
43
+ - `tokens.json` has no palette group; each colour is a token per mode, and shadows,
44
+ durations, the easing curve and the font stacks carry their DTCG types.
45
+ - Safari 17.5 or newer is required, for `light-dark()`.
46
+ - Fill style is `appearance` on every component that has one, so `tone` is colour,
47
+ `appearance` is fill and `variant` is structure:
48
+ - `buttonStyle` becomes `appearance` on `Button`, `TextButton`, `LoaderButton`,
49
+ `TooltipButton`, every component that forwards Button props, and action definitions.
50
+ `ButtonStyle` and `ActionButtonStyle` become `ButtonAppearance` and `ActionAppearance`,
51
+ provider defaults read `defaults.button.appearance`, and Button renders
52
+ `data-appearance` instead of `data-style`.
53
+ - `Badge`'s `variant` becomes `appearance` (`BadgeAppearance`); a metadata badge value's
54
+ `badgeVariant` becomes `badgeAppearance`. `badgeVariants` is no longer exported: a badge
55
+ takes its colour from its tone, so render a `Badge` (with `render` for a link) instead.
56
+ - `Toggle`'s and `SidebarMenuButton`'s `variant` become `appearance`; Toggle renders
57
+ `data-appearance` instead of `data-variant`.
58
+ - The overlays' and action modalities' `confirmStyle` becomes `confirmAppearance`
59
+ (`OverlayButtonAppearance`).
60
+ - Every size, padding and gap prop has two steps, `default` and `sm`:
61
+ - `gap`, `rowGap`, `columnGap` and `amount` on `Stack`, `Grid`, `AdaptiveGrid`, `Split` and
62
+ `Bleed` take `none`, `sm` (8px) or `default` (16px), and an unset `Stack` or `Split` gap
63
+ is now 16px instead of 8px.
64
+ - `maxWidth` and `sideWidth` take `default` (the content width), `sm`, `full`, `none` or a
65
+ CSS length; `AdaptiveGrid`'s `minColumnWidth` takes `default`, `sm` or a length. A free
66
+ string is no longer accepted, so a misspelt step cannot pass as a length.
67
+ - `ComponentScale` is `default | sm`: `Spinner`'s `size`, `Empty`'s and
68
+ `ResourceDetailsSection`'s `padding` and `DataTable`'s `size`. `md` is `default`; `lg` is
69
+ gone.
70
+ - `Avatar`, `SidebarMenuButton` and `AuthShell` lose `size="lg"`; `SidebarMenuButton`,
71
+ `SidebarMenuSubButton` and `AuthShell` name their middle step `default`.
72
+ - An overlay's, `SheetContent`'s and `ActionSheet`'s `size` takes `default`, `sm`, `full`
73
+ or a CSS length, and `length` and `inset` take a CSS length.
74
+ - `Slider` and `SliderField` have no `size`: under a finger the track and thumb grow into
75
+ a larger target by themselves. `InputGroupButton` has one size, and `iconOnly` makes it
76
+ square.
77
+ - `ActivityFeed`'s `itemSpacing` is `default | sm`.
78
+ - `density` belongs to the provider. `MetadataList`'s becomes `size` (`default | sm`, and
79
+ `data-size`), `MediaLibrary`'s and its parts' become `size`, `ActivityFeed`'s and its
80
+ rows' become `variant` (`data-variant`), and `AiTask`'s becomes `defaultExpanded`.
81
+ - An action modality's `size` and the `ActionOverlaySize` type are gone: nothing read them.
82
+ - `Text` drops `size="xxs"` and `weight="regular"`; write `xs` and `normal`.
83
+ - The ThemeTweaker writes one block in which each colour is a `light-dark()` pair, so an
84
+ exported theme follows `color-scheme` wherever it is applied:
85
+ - `ThemeSelectors` is `{ shared }`, and `createScopedThemeSelectors` returns it; the `light`
86
+ and `dark` selectors are gone.
87
+ - `themeToStyle(theme)` takes no mode: the style carries both halves.
88
+ - The default fields are the theme's variables, grouped into new `ThemeTweakerSection`s.
89
+ - The theming recipes write the theme's variables: `deriveThemePalette` sets `--link` and no
90
+ sidebar primary, `deriveThemeTypeScale` writes the type steps (Text pairs each step with its
91
+ line height), and `deriveThemeElevation` writes `--shadow` and `--shadow-lg`.
92
+ - The provider's `theme.colors` takes the theme's 38 colours (`SemanticToken`). `link-color`
93
+ is `link`, and `overlay-backdrop` is new. The `inverse-*` colours, `primary-accent`,
94
+ `destructive-accent`, `warning-accent` and `sidebar-primary*` are gone: an inverse region
95
+ is a nested provider with its own `colorScheme`, and a tone's text colour comes from its
96
+ tone. `theme.palette` and the `PaletteToken` type are gone with the palette.
97
+ - `MotionConfig.durations` takes `fast` and `normal`; `instant` is gone.
98
+ - The Tailwind bridge follows the theme. `p-padding`, `p-padding-sm`, `gap-gap` and
99
+ `gap-gap-sm` replace the spacing keys (`p-md` and the rest), `rounded` is the container
100
+ radius, and `animate-*`, `leading-*`, `tracking-*` and the shadow steps other than
101
+ `shadow` and `shadow-lg` are Tailwind's own again.
102
+ - Components bring their own CSS in a bundled app: importing a component from its subpath
103
+ adds its stylesheet, once, with one copy of `core.css`, and a module the application never
104
+ imports adds none. Remove JavaScript imports of `style.css` and of module stylesheets, which
105
+ now load the CSS twice; the codemod does it. Server rendering with Vite (Astro, React
106
+ Router, TanStack Start, Vike) needs the package in `ssr.noExternal`. With Tailwind, keep
107
+ `@import "tailwindcss"` and the bridge, and drop `@import "themelia-ui/style.css"` or
108
+ `@import "themelia-ui/core.css"` from the Tailwind entry. Pages with no bundler link
109
+ `style.css`. See [Upgrading to 3.1](docs/learn/migration.md#upgrading-to-31).
110
+
111
+ ### Added
112
+
113
+ - Four ready-made themes in `themelia-ui/theming`, each a style rather than a colour: Soft,
114
+ Sharp, Dense and Editorial. A theme is a `ThemePreset` (a label, a description and the
115
+ provider config it sets), so it reaches past colour to radii, shadows, density, type, motion
116
+ and component defaults such as the card surface. Every theme's colours hold WCAG AA contrast
117
+ in both modes. The theme editor's `themeFromConfig()` loads a theme's colours and variables to
118
+ edit and export. The documentation site gains a Themes page and a Theme menu in its header.
119
+ - `Text` takes `heading`, the heading face (`--font-heading`) for a title that is not a
120
+ document heading. Card and dialog titles use it, so a theme's heading font reaches them.
121
+ - `DataTable` rows expand. `expandedRow` turns on a toggle at each row's start and the panel it
122
+ opens under the row: `render` draws the panel, and `onLoad` optionally fetches what it shows
123
+ when the row opens, with a skeleton meanwhile, the request aborted when the row closes, Retry
124
+ on failure and the result kept for the next open. `canExpand` leaves a row without a toggle,
125
+ `multiple: false` keeps one row open at a time, and `expanded`, `defaultExpanded` and
126
+ `onExpandedChange` control the open rows. The panel lines up with the first column, stays in
127
+ view on a table scrolled sideways, and keeps a panel that throws or suspends inside its row.
128
+ - `textClassName()` lends Text's classes to an element Text cannot wrap: a native control,
129
+ a button's label, a table cell. `Text` takes `mono` and `caps`.
130
+ - `AiShimmer` takes `size`, a step on the type scale as on `Text`.
131
+ - `richTextClassName()` lends RichText's prose surface to an element RichText cannot render,
132
+ such as an editor's content-editable root.
133
+ - Each block's page shows it composed from the lower tiers (analytics, timelines, onboarding,
134
+ access and commerce), for the case configuration does not reach.
135
+
136
+ ### Changed
137
+
138
+ - `package.json` publishes modules through tier subpath patterns such as `./base/*`.
139
+ - Destructive is lighter in dark mode, so red text holds 4.5:1 on the hover fill, on its own
140
+ tint in a popover, and as a soft badge in a selected row.
141
+ - A framed Card's band is the item inset, and the surface inside it takes the concentric
142
+ corner, so a square-cornered theme keeps the band.
143
+ - `MetricTrendChip` and `MetricComparison` render `data-tone` as `success`, `destructive` or
144
+ `neutral`, the kit's tone names, instead of `positive` and `negative`.
145
+ - Checkboxes, radios and switches keep one size, 1.125rem, at every density.
146
+ - A disabled control shows the not-allowed cursor and dims; it no longer ignores the pointer.
147
+ - Menus take the radius of the control they open from: DropdownMenu, ContextMenu, ActionMenu,
148
+ Menubar, Select, Combobox, PopoverMenu, NavigationMenu and a Command inside a popover draw
149
+ `--radius-sm`, with rows at half of it inset by the other half, so the corners still nest.
150
+ Content popovers, hover cards and dialogs keep the container radius.
151
+ - Table headers are quieter: labels in the muted colour, with the sorted column's in the body
152
+ colour, a lighter band on `DataTable`, and 42px instead of 48px, following density. The whole
153
+ head cell sorts, and an unsorted column's arrow shows on hover or keyboard focus; touch
154
+ screens keep a faint one. `TableSkeleton` reserves the new height.
155
+ - A component used inside another, such as a Button in a menu, looks the same whatever order
156
+ a bundler emits the CSS in, and the same with `style.css` as in a bundled app.
157
+
158
+ ### Fixed
159
+
160
+ - `MonoValue` renders in the monospaced face its documentation promises.
161
+ - `MapTooltip` draws its own surface; Leaflet's stylesheet left bare text on the map, and
162
+ its arrow points at the marker on every side.
163
+ - The fade at a scroll edge of `Carousel` and a scrolling `Table` lifts while the region
164
+ has focus, so it no longer hides the focus outline.
165
+ - `ResizableHandle` shows its active state while dragged again.
166
+ - A vertical `Slider` has its 10rem track; the track collapsed.
167
+ - Text in an `InputGroup` textarea is inset from the frame.
168
+ - A `Card` title with an info button lines up with one without.
169
+ - A default `Sheet` is 384px wide again; it rendered at 472px.
170
+ - Upload file sizes render at the small secondary size.
171
+ - A permission a role lacks, and a refund stage not yet reached, recede again.
172
+ - The AI composer draws one frame; it drew the field's frame inside its own.
173
+ - The breadcrumb bar no longer clips the sidebar trigger's focus outline, and the collapsed
174
+ sidebar rail no longer shows a sliver of each row's label.
175
+ - A nested provider with `density="default"` resets a density set further out; it kept the
176
+ outer one.
177
+ - A nested provider that sets `density` under a scaled one sizes that density at the
178
+ inherited scale; the outer lengths outranked the preset.
179
+ - Map controls sit on a ground and an edge of their own; over the tiles they were
180
+ see-through. An active drawing tool keeps its fill.
181
+ - A scrolling `DataTable`'s focus outline runs round the whole frame; its sticky header and
182
+ pinned columns painted over it.
183
+ - A failed attachment keeps its file name in view: the error shares the row, may widen the
184
+ chip to the tray, and shows in full on hover. Each attachment's link is named by its file;
185
+ every one was named "Download".
186
+ - The kit's animations run on a page that also loads Tailwind or tw-animate-css. Their
187
+ `spin`, `pulse`, `enter` and `exit` replaced the kit's keyframes, or the kit's replaced
188
+ theirs, whichever loaded last.
189
+
3
190
  ## 3.0.0 — 2026-09-27
4
191
 
5
192
  A major release. The package is ES modules whose JavaScript imports no CSS, so each module's
package/README.md CHANGED
@@ -14,7 +14,7 @@ themed through one set of CSS variables.
14
14
  plugin is needed; applications that use Tailwind CSS v4 get a bridge to the theme.
15
15
  - **Overrides without `!important`.** Component rules live in cascade layers, so a utility
16
16
  in `className` or ordinary application CSS wins.
17
- - **Import only what you use.** Every module has its own JavaScript and CSS subpath.
17
+ - **Import only what you use.** Every module has its own subpath and brings only its own CSS.
18
18
  Optional peers such as charts, maps and rich text are needed only by the modules that use
19
19
  them.
20
20
  - **Your application keeps its policy.** Routing, data fetching, persistence, permissions and
@@ -43,18 +43,17 @@ npm install themelia-ui
43
43
  React 19 and `react-dom` are required peers. Every other peer is optional and needed only by
44
44
  the modules that use it; the [import table](https://unpkg.com/themelia-ui/docs/generated/imports.md) lists which.
45
45
 
46
- Themelia supports Chrome and Edge 125, Firefox 121 and Safari 16.4 or newer. Builds and
46
+ Themelia supports Chrome and Edge 125, Firefox 121 and Safari 17.5 or newer. Builds and
47
47
  server rendering need Node 20.19 or newer.
48
48
 
49
49
  ## Quick start
50
50
 
51
- Put `UIProvider` at the root of the application, import the stylesheet once, and import
52
- each component from its module's subpath:
51
+ Put `UIProvider` at the root of the application and import each component from its module's
52
+ subpath. In a bundled app, a component brings its own CSS:
53
53
 
54
54
  ```tsx
55
55
  import { Button } from "themelia-ui/base/buttons"
56
56
  import { UIProvider } from "themelia-ui/ui-provider"
57
- import "themelia-ui/style.css"
58
57
 
59
58
  export function App() {
60
59
  return (
@@ -65,7 +64,7 @@ export function App() {
65
64
  }
66
65
  ```
67
66
 
68
- `style.css` holds the CSS of the whole library. To load only what the application uses, see
67
+ Server rendering with Vite and pages with no bundler need one step more; see
69
68
  [Load the CSS](#load-the-css).
70
69
 
71
70
  ## Load the CSS
@@ -73,42 +72,35 @@ export function App() {
73
72
  The styles are precompiled CSS in cascade layers, declared in this order:
74
73
 
75
74
  ```css
76
- @layer tokens, theming, base, components, utilities;
75
+ @layer tokens, base, components, utilities;
77
76
  ```
78
77
 
79
- Three kinds of stylesheet are published:
78
+ **In a bundled app**, importing a component brings its stylesheet, once, and a module the
79
+ application never imports brings none. Do not also import `style.css` or a module stylesheet
80
+ from JavaScript; that loads the rules twice.
80
81
 
81
- | Import | Contains |
82
- | --- | --- |
83
- | `themelia-ui/style.css` | Everything: `core.css` and the rules of every module. |
84
- | `themelia-ui/<module>.css`, such as `themelia-ui/base/buttons.css` | One module's rules and the stylesheets they build on. It imports `core.css` itself. |
85
- | `themelia-ui/core.css` | The theme variables, the layer order, the Geist typefaces and the base element styles. No component rules. |
86
-
87
- A module whose components draw nothing has no stylesheet. The
88
- [import table](https://unpkg.com/themelia-ui/docs/generated/imports.md) lists the JavaScript and CSS path of every module.
82
+ **Server rendering with Vite** (Astro, React Router, TanStack Start, Vike) lists the package
83
+ in `ssr.noExternal`, or Vite hands it to Node without its CSS:
89
84
 
90
- ### Import the stylesheets
91
-
92
- The JavaScript imports no CSS. Import `style.css` once, or each module's stylesheet beside its
93
- import; a bundler that handles CSS imports, such as Vite, webpack or Rspack, includes each file
94
- once however many modules import it:
95
-
96
- ```tsx
97
- import { Button } from "themelia-ui/base/buttons"
98
- import "themelia-ui/base/buttons.css"
99
- import { Page } from "themelia-ui/layout/page"
100
- import "themelia-ui/layout/page.css"
85
+ ```ts
86
+ // vite.config.ts, or the vite key of astro.config.mjs
87
+ export default { ssr: { noExternal: ["themelia-ui"] } }
101
88
  ```
102
89
 
103
- A component whose stylesheet is not imported renders unstyled. Import `core.css` on its own
104
- only when your own CSS needs the theme variables before any module stylesheet loads.
90
+ **Without a bundler**, link `themelia-ui/style.css`; it includes `core.css`:
91
+
92
+ | Stylesheet | Contains |
93
+ | --- | --- |
94
+ | `themelia-ui/core.css` | The theme variables, the layer order, the Geist typefaces and the base element styles. No component rules. |
95
+ | `themelia-ui/style.css` | Everything: `core.css` and the rules of every module. |
105
96
 
106
97
  ### On the server and in tests
107
98
 
108
- The package is ES modules, and because its JavaScript imports no CSS, Node loads it as it is.
109
- Server rendering and Vitest need no configuration for it, and CommonJS code on Node 20.19 or
110
- later can `require()` it. Jest transforms nothing in `node_modules` by default: exempt the
111
- package in `transformIgnorePatterns`.
99
+ The package is ES modules. Outside a bundler its CSS imports resolve to an empty module, so
100
+ Node loads it without the CSS: Vitest needs no configuration, CommonJS code on Node 20.19 or
101
+ later can `require()` it, and a server render gets the CSS from the client build, or from
102
+ Vite through `ssr.noExternal` as above. Jest needs 29.4 or newer and transforms nothing in
103
+ `node_modules` by default: exempt the package in `transformIgnorePatterns`.
112
104
 
113
105
  ## Imports and tiers
114
106
 
@@ -122,7 +114,7 @@ up to complete blocks:
122
114
  | Base | One control or concept, including `Text` and `Heading` | `themelia-ui/base/<module>` |
123
115
  | Layout | Page and application shells | `themelia-ui/layout/<module>` |
124
116
  | Features | An interaction lifecycle with controlled state | `themelia-ui/features/<module>` |
125
- | Blocks | Subject-shaped compositions of the tiers above | `themelia-ui/patterns/<module>`, `themelia-ui/admin/patterns/<module>` |
117
+ | Blocks | Subject-shaped compositions of the tiers above | `themelia-ui/blocks/<module>`, `themelia-ui/blocks/admin/<module>` |
126
118
 
127
119
  ```ts
128
120
  import { UIProvider } from "themelia-ui/ui-provider"
@@ -130,7 +122,7 @@ import { Money } from "themelia-ui/primitives"
130
122
  import { Button } from "themelia-ui/base/buttons"
131
123
  import { Page } from "themelia-ui/layout/page"
132
124
  import { DataTable } from "themelia-ui/features/table"
133
- import { MetricGrid } from "themelia-ui/patterns/analytics"
125
+ import { MetricGrid } from "themelia-ui/blocks/analytics"
134
126
  ```
135
127
 
136
128
  There are no tier barrels: `themelia-ui/base` does not exist, so one import never pulls in a
@@ -163,25 +155,22 @@ A nested `UIProvider` themes one region, and inherits whatever it does not set.
163
155
  control, `UIRoot`, `UIScope`, `Scope` and `UIPortalHost` each do one of its jobs; see
164
156
  [Provider and scoping](docs/learn/provider-and-scoping.md).
165
157
 
166
- From CSS, set raw values such as radii and fonts on `:root`. Semantic colours such as
167
- `--primary`, `--background` and `--border` are derived again at every theme boundary, so
168
- declare them on the same selector list the package uses:
158
+ From CSS, set any theme variable on `:root`. A colour holds both modes as
159
+ `light-dark(light, dark)`, and each element's `color-scheme` picks the half, so one
160
+ declaration reaches every region, a dark region inside a light page included:
169
161
 
170
162
  ```css
171
163
  :root {
172
164
  --radius: 1rem;
173
165
  --radius-sm: 0.5rem;
174
- }
175
-
176
- :root, [data-ui-scope], [data-density], [data-theme], .light, .dark {
177
- --primary: oklch(0.55 0.19 250);
178
- --primary-foreground: oklch(0.985 0 0);
166
+ --primary: light-dark(oklch(0.55 0.19 250), oklch(0.72 0.14 250));
167
+ --primary-foreground: light-dark(oklch(0.985 0 0), oklch(0.2 0.03 250));
179
168
  }
180
169
  ```
181
170
 
182
- The default theme answers three dark-mode signals: `class="dark"`, `data-theme="dark"` and,
183
- with `colorScheme: "system"`, the operating system's preference. A dark value of your own
184
- should answer all three.
171
+ A colour given one value is used in both modes. Dark mode follows `class="dark"`,
172
+ `data-theme="dark"` or, with `colorScheme: "system"`, the operating system's preference: each
173
+ sets `color-scheme`, and nothing is declared twice.
185
174
 
186
175
  Beyond a few variables:
187
176
 
@@ -202,20 +191,19 @@ the bridge in the CSS entry that loads Tailwind:
202
191
 
203
192
  ```css
204
193
  @import "tailwindcss";
205
- @import "themelia-ui/style.css";
206
194
  @import "themelia-ui/tailwind.css";
207
195
  ```
208
196
 
209
- If the application loads module stylesheets instead of `style.css`, import
210
- `themelia-ui/core.css` in its place.
197
+ The kit's own CSS arrives with its components. Do not `@import` `themelia-ui/style.css` or
198
+ `themelia-ui/core.css` here as well: that inlines a second copy.
211
199
 
212
200
  The bridge is a Tailwind theme declaration generated from Themelia's variables. It does two
213
201
  things:
214
202
 
215
- 1. Utilities read the live theme. `bg-primary`, `text-muted-foreground`, `rounded-sm` (the
216
- item radius), `rounded-(--radius)` (the container radius), `p-md` and `shadow-lg` resolve
217
- through Themelia's variables at the element, so they follow dark mode, nested providers
218
- and density.
203
+ 1. Utilities read the live theme. `bg-primary`, `text-muted-foreground`, `rounded` (the
204
+ container radius), `rounded-sm` (the item radius), `p-padding`, `gap-gap-sm` and
205
+ `shadow-lg` resolve through Themelia's variables at the element, so they follow dark mode,
206
+ nested providers and density.
219
207
  2. It keeps Tailwind's defaults from replacing the variables both define, such as
220
208
  `--radius-sm`, `--text-sm` and `--font-sans`. Import it even if you never write one of
221
209
  its utilities.
@@ -225,7 +213,7 @@ so a utility in `className` overrides a component's own rule. There is no need f
225
213
  `!important` or `tailwind-merge`.
226
214
 
227
215
  ```tsx
228
- <Button className="rounded-pill px-lg shadow-lg">Approve</Button>
216
+ <Button className="rounded-pill px-padding shadow-lg">Approve</Button>
229
217
  ```
230
218
 
231
219
  ## Overrides
@@ -265,11 +253,8 @@ action semantics, focus and the theme:
265
253
 
266
254
  ```tsx
267
255
  import { Button } from "themelia-ui/base/buttons"
268
- import "themelia-ui/base/buttons.css"
269
256
  import { MetadataList } from "themelia-ui/base/display"
270
- import "themelia-ui/base/display.css"
271
257
  import { Page } from "themelia-ui/layout/page"
272
- import "themelia-ui/layout/page.css"
273
258
 
274
259
  function InvoiceDetail({ invoice, onCollectPayment }) {
275
260
  return (
@@ -307,8 +292,8 @@ Search the catalogue that ships with the package, offline, by what the interface
307
292
  node node_modules/themelia-ui/scripts/consumer/find-component.mjs "mobile filters for a table" --explain
308
293
  ```
309
294
 
310
- Each match comes with its exact JavaScript and CSS imports and guidance on when to choose it
311
- and when to avoid it. `--json` prints complete records, and `--help` lists the filters.
295
+ Each match comes with its exact import and guidance on when to choose it and when to avoid
296
+ it. `--json` prints complete records, and `--help` lists the filters.
312
297
 
313
298
  The package also ships a skill for coding assistants, built from the same catalogue:
314
299
 
@@ -340,7 +325,7 @@ under `node_modules/themelia-ui/docs`, and the links open the latest published c
340
325
 
341
326
  - [Component catalogue](https://unpkg.com/themelia-ui/docs/generated/components/INDEX.md)
342
327
  - [Public API index](https://unpkg.com/themelia-ui/docs/generated/public-api.md)
343
- - [JavaScript, CSS and optional-peer imports](https://unpkg.com/themelia-ui/docs/generated/imports.md)
328
+ - [Imports and optional peers](https://unpkg.com/themelia-ui/docs/generated/imports.md)
344
329
  - [Theme variables](src/styles/TOKENS.md)
345
330
  - [Recipes](https://unpkg.com/themelia-ui/docs/build/recipes.md)
346
331
 
@@ -0,0 +1,143 @@
1
+ import "#core.css";
2
+ import { c as e, s as t } from "./typography-DmeR05Er.js";
3
+ import { t as n } from "./cx--CBrhWH0.js";
4
+ import { n as r } from "./ui-provider-DpzLUD12.js";
5
+ import { Accordion as i } from "@base-ui/react/accordion";
6
+ import { ChevronDownIcon as a } from "lucide-react";
7
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
8
+ import "#css/accordion.css";
9
+ var c = {
10
+ root: "accordion__root___hEph1",
11
+ surfaceBordered: "accordion__surfaceBordered___zgX5U",
12
+ surfaceCard: "accordion__surfaceCard___U4Iy7",
13
+ surfaceFlat: "accordion__surfaceFlat___qR6LI",
14
+ item: "accordion__item___3ML8e",
15
+ header: "accordion__header___OH-Pt",
16
+ trigger: "accordion__trigger___uSwje",
17
+ icon: "accordion__icon___LakYD",
18
+ panel: "accordion__panel___08Ioe",
19
+ content: "accordion__content___QPJl8",
20
+ row: "accordion__row___oCO96",
21
+ rowWithMedia: "accordion__rowWithMedia___0tYvT",
22
+ media: "accordion__media___uasy7",
23
+ mediaMedallion: "accordion__mediaMedallion___HST4U",
24
+ heading: "accordion__heading___l_NxV",
25
+ titleLine: "accordion__titleLine___Q0PVI",
26
+ badge: "accordion__badge___PHYok",
27
+ bodyWithMedia: "accordion__bodyWithMedia___jP5Gh",
28
+ bodyWithMedallion: "accordion__bodyWithMedallion___rRwpM"
29
+ }, l = {
30
+ bordered: c.surfaceBordered,
31
+ card: c.surfaceCard,
32
+ flat: c.surfaceFlat
33
+ };
34
+ function u(e) {
35
+ return typeof e == "string" || typeof e == "number" || typeof e == "bigint";
36
+ }
37
+ function d({ className: t, surface: a, items: s, media: u, children: d, ...f }) {
38
+ let p = r("accordion", {
39
+ surface: "bordered",
40
+ media: "inline"
41
+ }), m = a ?? p.surface, g = u ?? p.media;
42
+ return /* @__PURE__ */ o(i.Root, {
43
+ className: n("accordion--component", c.root, l[m], e({ size: "sm" }), t),
44
+ "data-surface": m,
45
+ ...f,
46
+ children: d ?? s?.map((e) => /* @__PURE__ */ o(h, {
47
+ item: e,
48
+ media: g,
49
+ items: s
50
+ }, e.value))
51
+ });
52
+ }
53
+ function f({ className: e, ...t }) {
54
+ return /* @__PURE__ */ o(i.Item, {
55
+ className: n("accordion-item--component", c.item, e),
56
+ ...t
57
+ });
58
+ }
59
+ function p({ className: r, children: l, ...d }) {
60
+ return /* @__PURE__ */ o(i.Header, {
61
+ className: c.header,
62
+ children: /* @__PURE__ */ s(i.Trigger, {
63
+ className: n("accordion-trigger--component", c.trigger, e({
64
+ size: "inherit",
65
+ weight: "medium"
66
+ }), r),
67
+ ...d,
68
+ children: [u(l) ? /* @__PURE__ */ o(t, {
69
+ tag: "span",
70
+ size: "inherit",
71
+ weight: "medium",
72
+ children: l
73
+ }) : l, /* @__PURE__ */ o(a, {
74
+ "aria-hidden": !0,
75
+ className: c.icon
76
+ })]
77
+ })
78
+ });
79
+ }
80
+ function m({ className: r, children: a, ...s }) {
81
+ return /* @__PURE__ */ o(i.Panel, {
82
+ className: n("accordion-content--component", c.panel),
83
+ ...s,
84
+ children: /* @__PURE__ */ o("div", {
85
+ className: n(c.content, e({
86
+ size: "inherit",
87
+ lineHeight: "relaxed"
88
+ }), r),
89
+ children: u(a) ? /* @__PURE__ */ o(t, {
90
+ tag: "div",
91
+ size: "inherit",
92
+ type: "secondary",
93
+ lineHeight: "relaxed",
94
+ children: a
95
+ }) : a
96
+ })
97
+ });
98
+ }
99
+ function h({ item: e, media: r, items: i }) {
100
+ let a = r !== "none" && i.some((e) => e.icon != null), l = a ? r === "medallion" ? c.bodyWithMedallion : c.bodyWithMedia : void 0;
101
+ return /* @__PURE__ */ s(f, {
102
+ value: e.value,
103
+ className: "accordion--item",
104
+ children: [/* @__PURE__ */ o(p, {
105
+ disabled: e.disabled,
106
+ className: "accordion--trigger",
107
+ children: /* @__PURE__ */ s("span", {
108
+ className: n(c.row, a && c.rowWithMedia),
109
+ children: [a && /* @__PURE__ */ o("span", {
110
+ "aria-hidden": !0,
111
+ className: n("accordion--media", c.media, r === "medallion" && e.icon != null && c.mediaMedallion),
112
+ children: e.icon
113
+ }), /* @__PURE__ */ s("span", {
114
+ className: n("accordion--heading", c.heading),
115
+ children: [/* @__PURE__ */ s("span", {
116
+ className: c.titleLine,
117
+ children: [u(e.title) ? /* @__PURE__ */ o(t, {
118
+ tag: "span",
119
+ size: "inherit",
120
+ weight: "medium",
121
+ className: "accordion--title",
122
+ children: e.title
123
+ }) : e.title, e.badge != null && /* @__PURE__ */ o("span", {
124
+ className: c.badge,
125
+ children: e.badge
126
+ })]
127
+ }), e.description != null && (u(e.description) ? /* @__PURE__ */ o(t, {
128
+ tag: "span",
129
+ size: "sm",
130
+ type: "secondary",
131
+ className: "accordion--description",
132
+ children: e.description
133
+ }) : e.description)]
134
+ })]
135
+ })
136
+ }), /* @__PURE__ */ o(m, {
137
+ className: n("accordion--content", l),
138
+ children: e.content
139
+ })]
140
+ });
141
+ }
142
+ //#endregion
143
+ export { p as i, m as n, f as r, d as t };