themelia-react-ui 2.0.4 → 2.0.6

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 (715) hide show
  1. package/CHANGELOG.md +211 -0
  2. package/MIGRATION.md +119 -0
  3. package/README.md +122 -20
  4. package/dist/{accordion-96o0pN62.js → accordion-0tQUZ20r.js} +13 -13
  5. package/dist/accordion-0tQUZ20r.js.map +1 -0
  6. package/dist/{action-menu-CHgs8vmj.js → action-menu-C0gjzLyE.js} +48 -45
  7. package/dist/action-menu-C0gjzLyE.js.map +1 -0
  8. package/dist/{affordance-geometry.generated-B8yGOr8-.js → affordance-geometry.generated-P-aVJisu.js} +36 -36
  9. package/dist/affordance-geometry.generated-P-aVJisu.js.map +1 -0
  10. package/dist/{ai-artifact-BZUGwBq6.js → ai-artifact-CGGpQryR.js} +281 -230
  11. package/dist/ai-artifact-CGGpQryR.js.map +1 -0
  12. package/dist/app-shell-EHuuRDGy.js +321 -0
  13. package/dist/app-shell-EHuuRDGy.js.map +1 -0
  14. package/dist/{attachment-DkoqHPPl.js → attachment-BCpA4e7i.js} +10 -10
  15. package/dist/{attachment-DkoqHPPl.js.map → attachment-BCpA4e7i.js.map} +1 -1
  16. package/dist/{auth-D2FVZ1MH.js → auth-B0girIk_.js} +49 -52
  17. package/dist/auth-B0girIk_.js.map +1 -0
  18. package/dist/{avatar-DWO_HHhB.js → avatar-B9Jnp-T-.js} +8 -8
  19. package/dist/avatar-B9Jnp-T-.js.map +1 -0
  20. package/dist/{badge-DErMA7ul.js → badge-wWauMgAt.js} +5 -5
  21. package/dist/{badge-DErMA7ul.js.map → badge-wWauMgAt.js.map} +1 -1
  22. package/dist/base/accordion.js +1 -1
  23. package/dist/base/action-menu.js +1 -1
  24. package/dist/base/attachment.js +1 -1
  25. package/dist/base/avatar.js +1 -1
  26. package/dist/base/badge.js +1 -1
  27. package/dist/base/batch-action-bar.js +1 -1
  28. package/dist/base/buttons.js +1 -1
  29. package/dist/base/cards.js +2 -2
  30. package/dist/base/carousel.js +3 -3
  31. package/dist/base/cascader.js +2 -372
  32. package/dist/base/chart.js +1 -1
  33. package/dist/base/choice-inputs.js +2 -2
  34. package/dist/base/code-block.js +1 -1
  35. package/dist/base/combobox.js +2 -2
  36. package/dist/base/command.js +1 -1
  37. package/dist/base/copyable.js +1 -1
  38. package/dist/base/date-pickers.js +2 -2
  39. package/dist/base/display.js +6 -6
  40. package/dist/base/feedback.js +4 -4
  41. package/dist/base/forms-numeric.js +1 -1
  42. package/dist/base/forms.js +2 -2
  43. package/dist/base/inline-edit.js +10 -10
  44. package/dist/base/item.js +1 -1
  45. package/dist/base/media-gallery.js +1 -1
  46. package/dist/base/metadata-list.js +1 -1
  47. package/dist/base/navigation.js +7 -7
  48. package/dist/base/popover-menu.js +1 -1
  49. package/dist/base/popover.js +1 -1
  50. package/dist/base/qr-code.js +1 -1
  51. package/dist/base/repeaters.js +200 -193
  52. package/dist/base/repeaters.js.map +1 -1
  53. package/dist/base/sheet.js +1 -1
  54. package/dist/base/sidebar.js +2 -2
  55. package/dist/base/signature-pad.js +8 -8
  56. package/dist/base/signature-pad.js.map +1 -1
  57. package/dist/base/skeleton.js +1 -1
  58. package/dist/base/spinner.js +6 -6
  59. package/dist/base/spinner.js.map +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 +2 -2
  63. package/dist/base/toaster.js +36 -36
  64. package/dist/base/toaster.js.map +1 -1
  65. package/dist/base/tree.js +1 -1
  66. package/dist/base/upload-queue.js +1 -1
  67. package/dist/base/upload.js +3 -3
  68. package/dist/base/value-inputs.js +1 -1
  69. package/dist/{batch-action-bar-CdfIkCsV.js → batch-action-bar-BoqWIIpV.js} +7 -7
  70. package/dist/batch-action-bar-BoqWIIpV.js.map +1 -0
  71. package/dist/blocks/admin.js +21 -21
  72. package/dist/blocks/admin.js.map +1 -1
  73. package/dist/blocks/ai.js +267 -247
  74. package/dist/blocks/ai.js.map +1 -1
  75. package/dist/blocks/analytics/usage-card.js +1 -1
  76. package/dist/blocks/analytics.js +537 -543
  77. package/dist/blocks/analytics.js.map +1 -1
  78. package/dist/blocks/collaboration.js +1 -1
  79. package/dist/blocks/commerce/receipt.js +1 -1
  80. package/dist/blocks/commerce.js +1330 -1250
  81. package/dist/blocks/commerce.js.map +1 -1
  82. package/dist/blocks/data-display.js +2 -2
  83. package/dist/blocks/onboarding.js +6 -6
  84. package/dist/blocks/onboarding.js.map +1 -1
  85. package/dist/blocks/planning.js +11 -11
  86. package/dist/blocks/timelines.js +1 -1
  87. package/dist/{breadcrumbs-B-WFKecD.js → breadcrumbs-Bp9Ke7kd.js} +7 -7
  88. package/dist/breadcrumbs-Bp9Ke7kd.js.map +1 -0
  89. package/dist/{button-DkmK-z8E.js → button-ChBovTx0.js} +3 -3
  90. package/dist/button-ChBovTx0.js.map +1 -0
  91. package/dist/{buttons-BbfzgczK.js → buttons-DeW0bQeK.js} +16 -16
  92. package/dist/buttons-DeW0bQeK.js.map +1 -0
  93. package/dist/cards-CNXnmvV5.js +69 -0
  94. package/dist/cards-CNXnmvV5.js.map +1 -0
  95. package/dist/cascader-CrAl9zD5.js +439 -0
  96. package/dist/cascader-CrAl9zD5.js.map +1 -0
  97. package/dist/chart-I7ROnsl8.js +162 -0
  98. package/dist/chart-I7ROnsl8.js.map +1 -0
  99. package/dist/{checkbox-CzYUTPeJ.js → checkbox-MoyHIAPs.js} +3 -3
  100. package/dist/{checkbox-CzYUTPeJ.js.map → checkbox-MoyHIAPs.js.map} +1 -1
  101. package/dist/choice-inputs-DHGtx0QV.js +789 -0
  102. package/dist/choice-inputs-DHGtx0QV.js.map +1 -0
  103. package/dist/{code-block-CGNaUtAE.js → code-block-BSJyq9e-.js} +9 -9
  104. package/dist/code-block-BSJyq9e-.js.map +1 -0
  105. package/dist/{collapsible-Do4G0zcC.js → collapsible-BzJ91LUG.js} +5 -5
  106. package/dist/{collapsible-Do4G0zcC.js.map → collapsible-BzJ91LUG.js.map} +1 -1
  107. package/dist/{collection-content-C0e8SsTm.js → collection-content-CSnwtOTH.js} +3 -3
  108. package/dist/{collection-content-C0e8SsTm.js.map → collection-content-CSnwtOTH.js.map} +1 -1
  109. package/dist/combobox-Bcvu5J8O.js +363 -0
  110. package/dist/combobox-Bcvu5J8O.js.map +1 -0
  111. package/dist/combobox-C2JiSQPc.js +915 -0
  112. package/dist/combobox-C2JiSQPc.js.map +1 -0
  113. package/dist/{command-D8NrBj-b.js → command-9e52NPgK.js} +11 -11
  114. package/dist/command-9e52NPgK.js.map +1 -0
  115. package/dist/{comments-Di4w0H_S.js → comments-BsgErEqd.js} +44 -39
  116. package/dist/comments-BsgErEqd.js.map +1 -0
  117. package/dist/components/base/action-menu/action-menu.d.ts +7 -1
  118. package/dist/components/base/buttons/button-group.recipes.d.ts +2 -2
  119. package/dist/components/base/cards/card.recipes.d.ts +6 -4
  120. package/dist/components/base/cards/partials/card-primitives.d.ts +9 -2
  121. package/dist/components/base/cards/partials/smart-card-header-row.d.ts +3 -1
  122. package/dist/components/base/cards/smart-card.types.d.ts +3 -4
  123. package/dist/components/base/cascader/cascader-panel.d.ts +76 -0
  124. package/dist/components/base/chart/chart.d.ts +6 -1
  125. package/dist/components/base/choice-inputs/choice-types.d.ts +5 -1
  126. package/dist/components/base/choice-inputs/pill-radio-group.d.ts +7 -6
  127. package/dist/components/base/combobox/combobox-field.d.ts +2 -2
  128. package/dist/components/base/combobox/index.d.ts +4 -2
  129. package/dist/components/base/date-pickers/date-picker-internals.d.ts +3 -1
  130. package/dist/components/base/date-pickers/datepicker.types.d.ts +10 -4
  131. package/dist/components/base/date-pickers/time-picker.d.ts +17 -3
  132. package/dist/components/base/feedback/alert.d.ts +1 -1
  133. package/dist/components/base/feedback/state-display.d.ts +5 -1
  134. package/dist/components/base/feedback/state-display.strings.d.ts +9 -0
  135. package/dist/components/base/forms/form-field.d.ts +7 -2
  136. package/dist/components/base/forms/form-sizing.d.ts +7 -7
  137. package/dist/components/base/forms/workflow.d.ts +7 -1
  138. package/dist/components/base/forms-numeric/coordinates-input.d.ts +8 -1
  139. package/dist/components/base/forms-numeric/decimal-input.d.ts +2 -2
  140. package/dist/components/base/forms-numeric/dimensions-input.d.ts +4 -1
  141. package/dist/components/base/forms-numeric/numeric-composite-field.d.ts +12 -0
  142. package/dist/components/base/forms-numeric/weight-input.d.ts +6 -1
  143. package/dist/components/base/metadata-list/metadata-list.d.ts +1 -1
  144. package/dist/components/base/navigation/dropdown-menu.d.ts +1 -1
  145. package/dist/components/base/navigation/language-switcher.d.ts +12 -4
  146. package/dist/components/base/navigation/page-header/page-header-commands.d.ts +14 -7
  147. package/dist/components/base/navigation/page-header/page-header.d.ts +10 -3
  148. package/dist/components/base/popover/popover.d.ts +3 -3
  149. package/dist/components/base/popover/popover.recipes.d.ts +10 -6
  150. package/dist/components/base/repeaters/key-value-editor.d.ts +2 -1
  151. package/dist/components/base/sheet/sheet.d.ts +2 -0
  152. package/dist/components/base/sidebar/index.d.ts +1 -1
  153. package/dist/components/base/sidebar/sidebar.d.ts +29 -5
  154. package/dist/components/base/toaster/index.d.ts +1 -0
  155. package/dist/components/base/upload/avatar-upload.d.ts +2 -1
  156. package/dist/components/base/upload/image-upload.d.ts +2 -1
  157. package/dist/components/blocks/ai/ai-citation/types.d.ts +2 -0
  158. package/dist/components/blocks/ai/ai-file-tree/types.d.ts +1 -1
  159. package/dist/components/blocks/ai/ai-reasoning/types.d.ts +2 -0
  160. package/dist/components/blocks/ai/ai-sources/types.d.ts +2 -0
  161. package/dist/components/blocks/ai/ai-tool-call/types.d.ts +5 -1
  162. package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
  163. package/dist/components/blocks/analytics/metric/metric.d.ts +4 -0
  164. package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +4 -0
  165. package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +4 -5
  166. package/dist/components/blocks/analytics/types.d.ts +2 -2
  167. package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +2 -0
  168. package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +1 -1
  169. package/dist/components/blocks/commerce/cart-summary/types.d.ts +3 -1
  170. package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +1 -1
  171. package/dist/components/blocks/commerce/discount-stack/types.d.ts +3 -1
  172. package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +1 -1
  173. package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +11 -2
  174. package/dist/components/blocks/commerce/index.d.ts +7 -6
  175. package/dist/components/blocks/commerce/inventory-section/inventory-section.d.ts +1 -1
  176. package/dist/components/blocks/commerce/inventory-section/types.d.ts +7 -2
  177. package/dist/components/blocks/commerce/invoice-header/index.d.ts +2 -1
  178. package/dist/components/blocks/commerce/invoice-header/invoice-header.d.ts +1 -1
  179. package/dist/components/blocks/commerce/invoice-header/types.d.ts +20 -6
  180. package/dist/components/blocks/commerce/invoice-line-items/invoice-line-items.d.ts +1 -1
  181. package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +24 -7
  182. package/dist/components/blocks/commerce/invoice-mini/index.d.ts +2 -1
  183. package/dist/components/blocks/commerce/invoice-mini/types.d.ts +7 -1
  184. package/dist/components/blocks/commerce/order-customer/order-customer.d.ts +1 -1
  185. package/dist/components/blocks/commerce/order-customer/types.d.ts +9 -1
  186. package/dist/components/blocks/commerce/order-status/types.d.ts +4 -0
  187. package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +1 -1
  188. package/dist/components/blocks/commerce/refund-status/types.d.ts +3 -1
  189. package/dist/components/blocks/commerce/shipment-tracking/shipment-tracking.d.ts +1 -1
  190. package/dist/components/blocks/commerce/shipment-tracking/types.d.ts +3 -1
  191. package/dist/components/blocks/commerce/tax-breakdown/tax-breakdown.d.ts +1 -1
  192. package/dist/components/blocks/commerce/tax-breakdown/types.d.ts +3 -1
  193. package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +4 -3
  194. package/dist/components/features/activities/activities.types.d.ts +26 -13
  195. package/dist/components/features/activities/hooks/use-activity-resources.d.ts +2 -1
  196. package/dist/components/features/activities/partials/activity-marker.d.ts +7 -3
  197. package/dist/components/features/activities/partials/activity-row.d.ts +24 -0
  198. package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +1 -1
  199. package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +1 -1
  200. package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +4 -2
  201. package/dist/components/features/combobox/async-resource-combobox.d.ts +2 -2
  202. package/dist/components/features/combobox/combobox.d.ts +2 -2
  203. package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +2 -1
  204. package/dist/components/features/combobox/hooks/use-combobox-state.d.ts +1 -0
  205. package/dist/components/features/combobox/hooks/use-load-more.d.ts +1 -0
  206. package/dist/components/features/combobox/types.d.ts +37 -8
  207. package/dist/components/features/email-composer/types.d.ts +3 -1
  208. package/dist/components/features/event-calendar/colors.d.ts +2 -2
  209. package/dist/components/features/event-calendar/event-calendar.types.d.ts +4 -0
  210. package/dist/components/features/filters/facets/date-facet.d.ts +4 -2
  211. package/dist/components/features/filters/facets/range-facet.d.ts +12 -0
  212. package/dist/components/features/filters/facets/select-facet.d.ts +2 -1
  213. package/dist/components/features/filters/filters.strings.d.ts +4 -0
  214. package/dist/components/features/filters/filters.types.d.ts +6 -3
  215. package/dist/components/features/filters/partials/date-filter-content.d.ts +3 -2
  216. package/dist/components/features/filters/partials/filter-editor-header.d.ts +16 -0
  217. package/dist/components/features/filters/partials/filter-popover-content.d.ts +5 -3
  218. package/dist/components/features/filters/partials/nested-filter-options.d.ts +21 -0
  219. package/dist/components/features/filters/partials/range-filter-content.d.ts +12 -0
  220. package/dist/components/features/filters/partials/regular-filter-content.d.ts +2 -1
  221. package/dist/components/features/filters/utils/filter-utils.d.ts +25 -3
  222. package/dist/components/features/global-search/global-search.types.d.ts +2 -0
  223. package/dist/components/features/global-search/partials/global-search-input.d.ts +10 -0
  224. package/dist/components/features/global-search/partials/global-search-result-row.d.ts +7 -1
  225. package/dist/components/features/media-library/hooks/use-media-library.d.ts +1 -1
  226. package/dist/components/features/media-library/media-library.d.ts +1 -1
  227. package/dist/components/features/media-library/media-library.strings.d.ts +8 -0
  228. package/dist/components/features/media-library/media-library.types.d.ts +50 -12
  229. package/dist/components/features/media-library/partials/media-library-partials.d.ts +4 -4
  230. package/dist/components/features/mentions/hooks/use-mentions.d.ts +16 -1
  231. package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +5 -1
  232. package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +1 -7
  233. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +2 -2
  234. package/dist/components/features/products/components/product-options-matrix.d.ts +1 -1
  235. package/dist/components/features/products/components/product-variant-editor.d.ts +1 -1
  236. package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
  237. package/dist/components/features/products/products.strings.d.ts +9 -1
  238. package/dist/components/features/products/products.types.d.ts +45 -8
  239. package/dist/components/features/questionnaire/questionnaire.types.d.ts +3 -0
  240. package/dist/components/features/resource/resource.d.ts +6 -2
  241. package/dist/components/features/resource/resource.types.d.ts +14 -1
  242. package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +1 -1
  243. package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +1 -1
  244. package/dist/components/features/rich-text-editor/partials/editor-field-aria.d.ts +14 -0
  245. package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +1 -1
  246. package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +3 -1
  247. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +12 -2
  248. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +17 -3
  249. package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +5 -1
  250. package/dist/components/features/schema-form/partials/schema-form-field.d.ts +3 -1
  251. package/dist/components/features/schema-form/schema-form.utils.d.ts +1 -1
  252. package/dist/components/features/suggestions/suggestions.types.d.ts +1 -1
  253. package/dist/components/features/table/data-table.d.ts +1 -1
  254. package/dist/components/features/table/index.d.ts +1 -0
  255. package/dist/components/features/table/partials/resource-cell.d.ts +22 -5
  256. package/dist/components/features/table/table-body.d.ts +1 -1
  257. package/dist/components/features/table/table-helpers.d.ts +6 -3
  258. package/dist/components/features/table/table.strings.d.ts +3 -0
  259. package/dist/components/features/table/table.types.d.ts +18 -2
  260. package/dist/components/layout/app-shell/app-shell.types.d.ts +35 -6
  261. package/dist/components/layout/app-shell/index.d.ts +1 -1
  262. package/dist/components/layout/app-shell/shell-regions.d.ts +27 -0
  263. package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +1 -1
  264. package/dist/components/layout/app-shell/stacked-layout.d.ts +1 -1
  265. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
  266. package/dist/components/layout/containers/two-column-layout.d.ts +2 -0
  267. package/dist/components/layout/header/header.recipes.d.ts +6 -0
  268. package/dist/components/layout/header/header.types.d.ts +9 -8
  269. package/dist/components/layout/layout.types.d.ts +5 -3
  270. package/dist/components/layout/navigation/section-nav/section-nav.d.ts +5 -0
  271. package/dist/components/layout/navigation/side-nav.d.ts +3 -2
  272. package/dist/components/layout/normalize-layout-path.d.ts +1 -0
  273. package/dist/components/layout/page/index.d.ts +2 -1
  274. package/dist/components/layout/page/page.d.ts +1 -0
  275. package/dist/components/layout/page/page.strings.d.ts +11 -0
  276. package/dist/components/layout/page/page.types.d.ts +69 -17
  277. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  278. package/dist/components/layout/settings/settings.d.ts +10 -3
  279. package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
  280. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
  281. package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +1 -1
  282. package/dist/components/layout/sidebar/index.d.ts +2 -1
  283. package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +38 -0
  284. package/dist/components/layout/sidebar/sidebar.context.d.ts +6 -7
  285. package/dist/components/layout/sidebar/sidebar.types.d.ts +50 -10
  286. package/dist/components/layout/sidebar/sidebar.utils.d.ts +9 -1
  287. package/dist/components/layout/workspace/workspace.types.d.ts +8 -1
  288. package/dist/components/primitives/link.d.ts +3 -2
  289. package/dist/components/primitives/money.d.ts +1 -1
  290. package/dist/components/primitives/number.d.ts +1 -1
  291. package/dist/components/typography/rich-text/rich-text-tree.d.ts +7 -5
  292. package/dist/components/ui/alert-dialog.d.ts +2 -2
  293. package/dist/components/ui/combobox.d.ts +1 -1
  294. package/dist/components/ui/dialog.d.ts +2 -2
  295. package/dist/components/ui/overlay-layer.d.ts +18 -0
  296. package/dist/components/ui/sheet.d.ts +5 -1
  297. package/dist/components/ui/sidebar-state.d.ts +82 -0
  298. package/dist/components/ui/sidebar.d.ts +5 -17
  299. package/dist/{containers-CRmHf7GP.js → containers-CSdc32h9.js} +26 -18
  300. package/dist/containers-CSdc32h9.js.map +1 -0
  301. package/dist/{control-group-recipes-DBXmfh2E.js → control-group-recipes-fMuFo0H7.js} +6 -6
  302. package/dist/control-group-recipes-fMuFo0H7.js.map +1 -0
  303. package/dist/{copyable-CnGCZdX4.js → copyable-3fdHfMR3.js} +7 -7
  304. package/dist/{copyable-CnGCZdX4.js.map → copyable-3fdHfMR3.js.map} +1 -1
  305. package/dist/{data-display-D4oujtx0.js → data-display-Cmj-xZYl.js} +271 -279
  306. package/dist/data-display-Cmj-xZYl.js.map +1 -0
  307. package/dist/{date-Q7jnXxpk.js → date-Br0FicVv.js} +5 -5
  308. package/dist/{date-Q7jnXxpk.js.map → date-Br0FicVv.js.map} +1 -1
  309. package/dist/date-picker-CyQlFYsP.js +1617 -0
  310. package/dist/date-picker-CyQlFYsP.js.map +1 -0
  311. package/dist/date-pickers-tj2MXmXd.js +185 -0
  312. package/dist/date-pickers-tj2MXmXd.js.map +1 -0
  313. package/dist/{display-BB4BL_-K.js → display-CT_N2a3w.js} +9 -9
  314. package/dist/{display-BB4BL_-K.js.map → display-CT_N2a3w.js.map} +1 -1
  315. package/dist/dropdown-menu-C08iIugv.js +194 -0
  316. package/dist/dropdown-menu-C08iIugv.js.map +1 -0
  317. package/dist/features/activities.js +388 -326
  318. package/dist/features/activities.js.map +1 -1
  319. package/dist/features/ai-chat.js +46 -32
  320. package/dist/features/ai-chat.js.map +1 -1
  321. package/dist/features/appointment-calendar.js +130 -130
  322. package/dist/features/appointment-calendar.js.map +1 -1
  323. package/dist/features/async-preview.js +11 -10
  324. package/dist/features/async-preview.js.map +1 -1
  325. package/dist/features/combobox.js +1 -1
  326. package/dist/features/comments.js +1 -1
  327. package/dist/features/data-view.js +13 -13
  328. package/dist/features/data-view.js.map +1 -1
  329. package/dist/features/email-composer.js +243 -239
  330. package/dist/features/email-composer.js.map +1 -1
  331. package/dist/features/event-calendar.js +197 -199
  332. package/dist/features/event-calendar.js.map +1 -1
  333. package/dist/features/filters.js +2 -2
  334. package/dist/features/global-search.js +168 -143
  335. package/dist/features/global-search.js.map +1 -1
  336. package/dist/features/kanban.js +19 -30
  337. package/dist/features/kanban.js.map +1 -1
  338. package/dist/features/map/style.css +15 -0
  339. package/dist/features/map.js +369 -343
  340. package/dist/features/map.js.map +1 -1
  341. package/dist/features/media-library.js +1202 -975
  342. package/dist/features/media-library.js.map +1 -1
  343. package/dist/features/mentions.js +2 -2
  344. package/dist/features/overlays.js +1 -1
  345. package/dist/features/products.js +1270 -1183
  346. package/dist/features/products.js.map +1 -1
  347. package/dist/features/questionnaire.js +160 -153
  348. package/dist/features/questionnaire.js.map +1 -1
  349. package/dist/features/resource-assignment.js +8 -8
  350. package/dist/features/resource.js +119 -113
  351. package/dist/features/resource.js.map +1 -1
  352. package/dist/features/rich-text-editor.js +28 -19
  353. package/dist/features/rich-text-editor.js.map +1 -1
  354. package/dist/features/schema-form.js +297 -256
  355. package/dist/features/schema-form.js.map +1 -1
  356. package/dist/features/suggestions.js +57 -50
  357. package/dist/features/suggestions.js.map +1 -1
  358. package/dist/features/sync.js +3 -3
  359. package/dist/features/table.js +1 -1
  360. package/dist/features/theme-tweaker.js +470 -470
  361. package/dist/features/theme-tweaker.js.map +1 -1
  362. package/dist/feedback-Dzo1xtAU.js +246 -0
  363. package/dist/feedback-Dzo1xtAU.js.map +1 -0
  364. package/dist/{field-affordance-recipes-DjwGx8eM.js → field-affordance-recipes-D6H7tVJi.js} +5 -5
  365. package/dist/field-affordance-recipes-D6H7tVJi.js.map +1 -0
  366. package/dist/field-control-attributes-B6i335wr.js +18 -0
  367. package/dist/field-control-attributes-B6i335wr.js.map +1 -0
  368. package/dist/{field-state-recipes-BVA2CWHo.js → field-state-recipes-7sza8QbC.js} +4 -2
  369. package/dist/{field-state-recipes-BVA2CWHo.js.map → field-state-recipes-7sza8QbC.js.map} +1 -1
  370. package/dist/filters-Dl80yYtN.js +2415 -0
  371. package/dist/filters-Dl80yYtN.js.map +1 -0
  372. package/dist/form-field-CAPdwdnZ.js +74 -0
  373. package/dist/form-field-CAPdwdnZ.js.map +1 -0
  374. package/dist/{form-sizing-NXgjkmBG.js → form-sizing-CgcrUbLU.js} +5 -5
  375. package/dist/form-sizing-CgcrUbLU.js.map +1 -0
  376. package/dist/{forms-BV5m5aQF.js → forms-B3W8CH7-.js} +17 -13
  377. package/dist/forms-B3W8CH7-.js.map +1 -0
  378. package/dist/forms-numeric-CwjQJe-O.js +991 -0
  379. package/dist/forms-numeric-CwjQJe-O.js.map +1 -0
  380. package/dist/{header-BA697l4a.js → header-ZIIsRKxP.js} +145 -141
  381. package/dist/header-ZIIsRKxP.js.map +1 -0
  382. package/dist/header.recipes-BigdJjw1.js +6 -0
  383. package/dist/header.recipes-BigdJjw1.js.map +1 -0
  384. package/dist/hooks/use-files.d.ts +2 -0
  385. package/dist/{hooks-BQ-L7Uu2.js → hooks-BitHSh-Y.js} +27 -15
  386. package/dist/hooks-BitHSh-Y.js.map +1 -0
  387. package/dist/{icon-badge-COWbCCWu.js → icon-badge-npxF1SLX.js} +4 -4
  388. package/dist/{icon-badge-COWbCCWu.js.map → icon-badge-npxF1SLX.js.map} +1 -1
  389. package/dist/index.js +4 -5
  390. package/dist/{input-Cdw4k0fb.js → input-7KAc7XQL.js} +9 -9
  391. package/dist/{input-Cdw4k0fb.js.map → input-7KAc7XQL.js.map} +1 -1
  392. package/dist/input-DIREVYHs.js +21 -0
  393. package/dist/input-DIREVYHs.js.map +1 -0
  394. package/dist/{interaction-recipes-XR9ZpVYL.js → interaction-recipes-4wZ2tvfb.js} +2 -2
  395. package/dist/{interaction-recipes-XR9ZpVYL.js.map → interaction-recipes-4wZ2tvfb.js.map} +1 -1
  396. package/dist/item-FfWnaYST.js +278 -0
  397. package/dist/item-FfWnaYST.js.map +1 -0
  398. package/dist/layout/app-shell.js +1 -1
  399. package/dist/layout/auth.js +1 -1
  400. package/dist/layout/containers.js +1 -1
  401. package/dist/layout/header.js +1 -1
  402. package/dist/layout/hooks.js +1 -1
  403. package/dist/layout/navigation.js +1 -1
  404. package/dist/layout/page.js +2 -2
  405. package/dist/layout/settings.js +1 -1
  406. package/dist/layout/sidebar.js +3 -3
  407. package/dist/layout/workspace.js +1 -1
  408. package/dist/layout.js +12 -12
  409. package/dist/layout.types-E_GAApzO.js +30 -0
  410. package/dist/layout.types-E_GAApzO.js.map +1 -0
  411. package/dist/lib/affordance-geometry.generated.d.ts +35 -35
  412. package/dist/lib/control-group-recipes.d.ts +5 -5
  413. package/dist/lib/field-affordance-recipes.d.ts +2 -2
  414. package/dist/lib/field-control-attributes.d.ts +11 -0
  415. package/dist/lib/field-state-recipes.d.ts +2 -0
  416. package/dist/lib/format.d.ts +1 -0
  417. package/dist/lib/motion-recipes.d.ts +3 -0
  418. package/dist/lib/navigation-row-recipes.d.ts +7 -7
  419. package/dist/lib/overlay-anatomy-recipes.d.ts +3 -3
  420. package/dist/lib/portal-recipes.d.ts +3 -0
  421. package/dist/lib/surface-recipes.d.ts +1 -1
  422. package/dist/lib/token-merge.generated.d.ts +18 -15
  423. package/dist/lib/utils.js +1 -1
  424. package/dist/map-demo-tile.svg +1 -1
  425. package/dist/{media-gallery-CSl5W1Fy.js → media-gallery-C81DAnKI.js} +6 -6
  426. package/dist/{media-gallery-CSl5W1Fy.js.map → media-gallery-C81DAnKI.js.map} +1 -1
  427. package/dist/{mentions-RKOQaaIB.js → mentions-qOnedSt4.js} +237 -168
  428. package/dist/mentions-qOnedSt4.js.map +1 -0
  429. package/dist/message-BJHnn43M.js +135 -0
  430. package/dist/message-BJHnn43M.js.map +1 -0
  431. package/dist/{metadata-list-qVV7AVxa.js → metadata-list-XkqZ_UXH.js} +64 -64
  432. package/dist/metadata-list-XkqZ_UXH.js.map +1 -0
  433. package/dist/{motion-recipes-ChBg4HBq.js → motion-recipes-DitYv6P2.js} +10 -2
  434. package/dist/motion-recipes-DitYv6P2.js.map +1 -0
  435. package/dist/navigation-BgtPJAhi.js +288 -0
  436. package/dist/navigation-BgtPJAhi.js.map +1 -0
  437. package/dist/navigation-Bt-v7rWP.js +261 -0
  438. package/dist/navigation-Bt-v7rWP.js.map +1 -0
  439. package/dist/{navigation-row-recipes-WZEs-hYo.js → navigation-row-recipes-BGVLvU_O.js} +9 -9
  440. package/dist/navigation-row-recipes-BGVLvU_O.js.map +1 -0
  441. package/dist/normalize-layout-path-BmEgg6fu.js +14 -0
  442. package/dist/normalize-layout-path-BmEgg6fu.js.map +1 -0
  443. package/dist/{number-E_OiIfJz.js → number-CYqBcrSj.js} +79 -87
  444. package/dist/number-CYqBcrSj.js.map +1 -0
  445. package/dist/overflow-tab-bar-BQCA2Zn2.js +172 -0
  446. package/dist/overflow-tab-bar-BQCA2Zn2.js.map +1 -0
  447. package/dist/overlays-CC8zI3Du.js +1017 -0
  448. package/dist/overlays-CC8zI3Du.js.map +1 -0
  449. package/dist/page-BoQ1VaFJ.js +331 -0
  450. package/dist/page-BoQ1VaFJ.js.map +1 -0
  451. package/dist/page-header-commands-DIKspJfx.js +193 -0
  452. package/dist/page-header-commands-DIKspJfx.js.map +1 -0
  453. package/dist/{pagination-Ch8X_47u.js → pagination-Br8TdV9A.js} +7 -7
  454. package/dist/{pagination-Ch8X_47u.js.map → pagination-Br8TdV9A.js.map} +1 -1
  455. package/dist/popover-k8TdUcAt.js +201 -0
  456. package/dist/popover-k8TdUcAt.js.map +1 -0
  457. package/dist/{popover-menu-BYaCdFhf.js → popover-menu-yn-o0kyA.js} +7 -7
  458. package/dist/{popover-menu-BYaCdFhf.js.map → popover-menu-yn-o0kyA.js.map} +1 -1
  459. package/dist/{popover.recipes-D3j8R8Yp.js → popover.recipes-DJ0AkUan.js} +19 -12
  460. package/dist/popover.recipes-DJ0AkUan.js.map +1 -0
  461. package/dist/portal-recipes-DyUXqUtD.js +9 -0
  462. package/dist/portal-recipes-DyUXqUtD.js.map +1 -0
  463. package/dist/{primitives-Du64iDbb.js → primitives-BkkQjYl7.js} +23 -18
  464. package/dist/primitives-BkkQjYl7.js.map +1 -0
  465. package/dist/primitives.js +4 -4
  466. package/dist/{progress-BvF2oCdV.js → progress-DZFXXzPs.js} +9 -9
  467. package/dist/{progress-BvF2oCdV.js.map → progress-DZFXXzPs.js.map} +1 -1
  468. package/dist/{receipt-D789Jwyy.js → receipt-C7LhOg7Q.js} +7 -7
  469. package/dist/receipt-C7LhOg7Q.js.map +1 -0
  470. package/dist/rich-text-BnTzZjIo.js +45 -0
  471. package/dist/rich-text-BnTzZjIo.js.map +1 -0
  472. package/dist/{rich-text-editor-Cm1dpUpQ.js → rich-text-editor-CAurDwT5.js} +501 -424
  473. package/dist/rich-text-editor-CAurDwT5.js.map +1 -0
  474. package/dist/rich-text-editor-toolbar-DbXig7Jk.js +99 -0
  475. package/dist/rich-text-editor-toolbar-DbXig7Jk.js.map +1 -0
  476. package/dist/rich-text-tree-BqyQ_7-R.js +66 -0
  477. package/dist/rich-text-tree-BqyQ_7-R.js.map +1 -0
  478. package/dist/{sanitize-html-DsQmI48u.js → sanitize-html-BWkH4dLM.js} +29 -16
  479. package/dist/sanitize-html-BWkH4dLM.js.map +1 -0
  480. package/dist/{scroll-area-La5RXsEk.js → scroll-area-Bj6CRUif.js} +2 -2
  481. package/dist/{scroll-area-La5RXsEk.js.map → scroll-area-Bj6CRUif.js.map} +1 -1
  482. package/dist/{separator-DAEV0w65.js → separator-B9ewiCGO.js} +2 -2
  483. package/dist/{separator-DAEV0w65.js.map → separator-B9ewiCGO.js.map} +1 -1
  484. package/dist/{separator-GNfPG-90.js → separator-DM6gs2vu.js} +3 -3
  485. package/dist/{separator-GNfPG-90.js.map → separator-DM6gs2vu.js.map} +1 -1
  486. package/dist/services/actions.js +1 -1
  487. package/dist/settings-DZPHgpx4.js +155 -0
  488. package/dist/settings-DZPHgpx4.js.map +1 -0
  489. package/dist/sheet-C4DHsgLk.js +250 -0
  490. package/dist/sheet-C4DHsgLk.js.map +1 -0
  491. package/dist/sidebar-C8BnDwTH.js +709 -0
  492. package/dist/sidebar-C8BnDwTH.js.map +1 -0
  493. package/dist/sidebar-CmD6a-HK.js +1004 -0
  494. package/dist/sidebar-CmD6a-HK.js.map +1 -0
  495. package/dist/skeleton-DDgdhmu9.js +265 -0
  496. package/dist/skeleton-DDgdhmu9.js.map +1 -0
  497. package/dist/smart-card-B6vLxqa_.js +617 -0
  498. package/dist/smart-card-B6vLxqa_.js.map +1 -0
  499. package/dist/{structure-C0V0_Fyf.js → structure-DZJ2wbAU.js} +2 -2
  500. package/dist/{structure-C0V0_Fyf.js.map → structure-DZJ2wbAU.js.map} +1 -1
  501. package/dist/style.css +1 -1
  502. package/dist/{surface-recipes-BKRVW8Os.js → surface-recipes-C8mNycaY.js} +2 -2
  503. package/dist/{surface-recipes-BKRVW8Os.js.map → surface-recipes-C8mNycaY.js.map} +1 -1
  504. package/dist/{table-DH7rozUv.js → table-CBonSdTp.js} +573 -519
  505. package/dist/table-CBonSdTp.js.map +1 -0
  506. package/dist/{table-CpvnzJn9.js → table-CXSPHH25.js} +75 -71
  507. package/dist/table-CXSPHH25.js.map +1 -0
  508. package/dist/tabs-C4Kr_hCr.js +192 -0
  509. package/dist/tabs-C4Kr_hCr.js.map +1 -0
  510. package/dist/{text-inputs-DXItiR0O.js → text-inputs-jdkS3ReG.js} +18 -18
  511. package/dist/text-inputs-jdkS3ReG.js.map +1 -0
  512. package/dist/theme.css +40 -37
  513. package/dist/{timelines-DmtztAY_.js → timelines-CoPwdJP0.js} +13 -12
  514. package/dist/timelines-CoPwdJP0.js.map +1 -0
  515. package/dist/tooltip-31NwIpTo.js +113 -0
  516. package/dist/tooltip-31NwIpTo.js.map +1 -0
  517. package/dist/{tree-CV11PURP.js → tree-CeYVzdFE.js} +9 -9
  518. package/dist/{tree-CV11PURP.js.map → tree-CeYVzdFE.js.map} +1 -1
  519. package/dist/typography/rich-text.js +1 -1
  520. package/dist/{typography-CSyJrh28.js → typography-C7-YMW1S.js} +12 -12
  521. package/dist/{typography-CSyJrh28.js.map → typography-C7-YMW1S.js.map} +1 -1
  522. package/dist/typography.js +1 -1
  523. package/dist/ui-provider-C-74NVLc.js +178 -0
  524. package/dist/ui-provider-C-74NVLc.js.map +1 -0
  525. package/dist/ui-provider.js +2 -3
  526. package/dist/{upload-C9SA0X-8.js → upload-Hdm5gObf.js} +309 -296
  527. package/dist/upload-Hdm5gObf.js.map +1 -0
  528. package/dist/{upload-queue-DhQJiSRc.js → upload-queue-D0sYPuqo.js} +16 -14
  529. package/dist/upload-queue-D0sYPuqo.js.map +1 -0
  530. package/dist/{usage-card-DVTRDmGz.js → usage-card-9s8hLDfn.js} +24 -17
  531. package/dist/usage-card-9s8hLDfn.js.map +1 -0
  532. package/dist/{utils-CF3c95Io.js → utils-DhuoqFy4.js} +255 -165
  533. package/dist/utils-DhuoqFy4.js.map +1 -0
  534. package/dist/value-inputs-D3aPgq9H.js +980 -0
  535. package/dist/value-inputs-D3aPgq9H.js.map +1 -0
  536. package/dist/{value-typography-ClupF0Gz.js → value-typography-uSzzG9Gf.js} +32 -26
  537. package/dist/value-typography-uSzzG9Gf.js.map +1 -0
  538. package/dist/{workspace-9EFVXUyk.js → workspace-CC8Vchiu.js} +51 -50
  539. package/dist/workspace-CC8Vchiu.js.map +1 -0
  540. package/docs/consumer-skill/SKILL.md +4 -3
  541. package/docs/consumer-skill/agents/themelia-ui-designer.md +96 -0
  542. package/docs/consumer-skill/examples/app-layout.tsx +52 -1
  543. package/docs/consumer-skill/examples/commerce-lines.tsx +271 -0
  544. package/docs/consumer-skill/examples/custom-composition.tsx +21 -0
  545. package/docs/consumer-skill/examples/detail.tsx +5 -4
  546. package/docs/consumer-skill/examples/edit.tsx +3 -3
  547. package/docs/consumer-skill/examples/editable-sections.tsx +38 -0
  548. package/docs/consumer-skill/examples/index-table.tsx +4 -4
  549. package/docs/consumer-skill/examples/manifest.json +38 -1
  550. package/docs/consumer-skill/examples/product-media.tsx +41 -0
  551. package/docs/consumer-skill/examples/product-parts.tsx +81 -0
  552. package/docs/consumer-skill/examples/rhf-edit-page.tsx +1 -1
  553. package/docs/consumer-skill/examples/rhf-overlay-form.tsx +24 -11
  554. package/docs/consumer-skill/examples/token-domain-structure.tsx +68 -0
  555. package/docs/consumer-skill/references/agents-md.md +21 -19
  556. package/docs/consumer-skill/references/analytics.md +33 -1
  557. package/docs/consumer-skill/references/commerce-composition.md +97 -0
  558. package/docs/consumer-skill/references/component-contracts.json +21249 -14205
  559. package/docs/consumer-skill/references/composition-mapping.md +17 -3
  560. package/docs/consumer-skill/references/composition.md +177 -32
  561. package/docs/consumer-skill/references/critique-rubric.md +98 -0
  562. package/docs/consumer-skill/references/custom-composition.md +261 -0
  563. package/docs/consumer-skill/references/data-reading.md +79 -0
  564. package/docs/consumer-skill/references/design-contract.md +12 -9
  565. package/docs/consumer-skill/references/discovery.md +27 -3
  566. package/docs/consumer-skill/references/domain-structures.md +124 -0
  567. package/docs/consumer-skill/references/installation.md +62 -8
  568. package/docs/consumer-skill/references/integration.md +59 -1
  569. package/docs/consumer-skill/references/product-composition.md +94 -0
  570. package/docs/consumer-skill/references/public-api.json +3044 -445
  571. package/docs/consumer-skill/references/review.md +87 -10
  572. package/docs/consumer-skill/references/rhf-workflows.md +79 -0
  573. package/docs/consumer-skill/references/screen-archetypes.md +19 -7
  574. package/docs/consumer-skill/references/screen-decisions.md +126 -0
  575. package/docs/consumer-skill/references/theming.md +24 -20
  576. package/docs/consumer-skill/references/tokens.json +9 -9
  577. package/docs/consumer-skill/references/view-craft.md +153 -0
  578. package/docs/consumer-skill/references/view-spec.md +73 -0
  579. package/docs/consumer-skill/references/workflows.md +7 -1
  580. package/docs/consumer-skill/scripts/composition-policy.mjs +176 -26
  581. package/docs/consumer-skill/scripts/composition-schema.mjs +1 -1
  582. package/docs/consumer-skill/scripts/composition.mjs +61 -5
  583. package/docs/consumer-skill/scripts/discovery.mjs +54 -0
  584. package/docs/consumer-skill/scripts/inspect-component.mjs +1 -1
  585. package/docs/consumer-skill/scripts/inspection.mjs +73 -18
  586. package/docs/consumer-skill/scripts/setup-skills.mjs +79 -7
  587. package/docs/consumer-skill/scripts/surface-policy.mjs +5 -5
  588. package/docs/consumer-skills/themelia-components/SKILL.md +14 -13
  589. package/docs/consumer-skills/themelia-composition/SKILL.md +16 -17
  590. package/docs/consumer-skills/themelia-design/SKILL.md +55 -0
  591. package/docs/consumer-skills/themelia-foundation/SKILL.md +2 -1
  592. package/docs/consumer-skills/themelia-tokenization/SKILL.md +24 -17
  593. package/package.json +4 -2
  594. package/templates/admin-shell-template.tsx +1 -2
  595. package/templates/customers-template.tsx +18 -16
  596. package/dist/accordion-96o0pN62.js.map +0 -1
  597. package/dist/action-menu-CHgs8vmj.js.map +0 -1
  598. package/dist/affordance-geometry.generated-B8yGOr8-.js.map +0 -1
  599. package/dist/ai-artifact-BZUGwBq6.js.map +0 -1
  600. package/dist/app-shell-D63ATkIK.js +0 -237
  601. package/dist/app-shell-D63ATkIK.js.map +0 -1
  602. package/dist/auth-D2FVZ1MH.js.map +0 -1
  603. package/dist/avatar-DWO_HHhB.js.map +0 -1
  604. package/dist/base/cascader.js.map +0 -1
  605. package/dist/batch-action-bar-CdfIkCsV.js.map +0 -1
  606. package/dist/breadcrumbs-B-WFKecD.js.map +0 -1
  607. package/dist/button-DkmK-z8E.js.map +0 -1
  608. package/dist/buttons-BbfzgczK.js.map +0 -1
  609. package/dist/cards-4JTWqvVe.js +0 -68
  610. package/dist/cards-4JTWqvVe.js.map +0 -1
  611. package/dist/chart-C19flDQb.js +0 -155
  612. package/dist/chart-C19flDQb.js.map +0 -1
  613. package/dist/choice-inputs-JLtij2y4.js +0 -776
  614. package/dist/choice-inputs-JLtij2y4.js.map +0 -1
  615. package/dist/code-block-CGNaUtAE.js.map +0 -1
  616. package/dist/combobox-CBJDs6w_.js +0 -877
  617. package/dist/combobox-CBJDs6w_.js.map +0 -1
  618. package/dist/combobox-hbhSS18O.js +0 -355
  619. package/dist/combobox-hbhSS18O.js.map +0 -1
  620. package/dist/command-D8NrBj-b.js.map +0 -1
  621. package/dist/comments-Di4w0H_S.js.map +0 -1
  622. package/dist/containers-CRmHf7GP.js.map +0 -1
  623. package/dist/control-group-recipes-DBXmfh2E.js.map +0 -1
  624. package/dist/data-display-D4oujtx0.js.map +0 -1
  625. package/dist/date-picker-zOt1oNss.js +0 -1542
  626. package/dist/date-picker-zOt1oNss.js.map +0 -1
  627. package/dist/date-pickers-cj8IXbDC.js +0 -179
  628. package/dist/date-pickers-cj8IXbDC.js.map +0 -1
  629. package/dist/dropdown-menu-CjY8Vt7W.js +0 -193
  630. package/dist/dropdown-menu-CjY8Vt7W.js.map +0 -1
  631. package/dist/feedback-DZNL5Lg1.js +0 -239
  632. package/dist/feedback-DZNL5Lg1.js.map +0 -1
  633. package/dist/field-affordance-recipes-DjwGx8eM.js.map +0 -1
  634. package/dist/filters-BcT-uoFy.js +0 -2209
  635. package/dist/filters-BcT-uoFy.js.map +0 -1
  636. package/dist/form-field-CsgRmdit.js +0 -63
  637. package/dist/form-field-CsgRmdit.js.map +0 -1
  638. package/dist/form-sizing-NXgjkmBG.js.map +0 -1
  639. package/dist/forms-BV5m5aQF.js.map +0 -1
  640. package/dist/forms-numeric-Cd33AKbD.js +0 -906
  641. package/dist/forms-numeric-Cd33AKbD.js.map +0 -1
  642. package/dist/header-BA697l4a.js.map +0 -1
  643. package/dist/hooks-BQ-L7Uu2.js.map +0 -1
  644. package/dist/input-DOPL5_QE.js +0 -21
  645. package/dist/input-DOPL5_QE.js.map +0 -1
  646. package/dist/item-BvZ2DR_x.js +0 -277
  647. package/dist/item-BvZ2DR_x.js.map +0 -1
  648. package/dist/layout.types-Cn7aUzJp.js +0 -20
  649. package/dist/layout.types-Cn7aUzJp.js.map +0 -1
  650. package/dist/mentions-RKOQaaIB.js.map +0 -1
  651. package/dist/message-INU2xsxu.js +0 -128
  652. package/dist/message-INU2xsxu.js.map +0 -1
  653. package/dist/metadata-list-qVV7AVxa.js.map +0 -1
  654. package/dist/motion-recipes-ChBg4HBq.js.map +0 -1
  655. package/dist/navigation-BQNcg1jT.js +0 -269
  656. package/dist/navigation-BQNcg1jT.js.map +0 -1
  657. package/dist/navigation-DLF3E1IC.js +0 -145
  658. package/dist/navigation-DLF3E1IC.js.map +0 -1
  659. package/dist/navigation-row-recipes-WZEs-hYo.js.map +0 -1
  660. package/dist/number-E_OiIfJz.js.map +0 -1
  661. package/dist/overflow-tab-bar-CrbqMteP.js +0 -284
  662. package/dist/overflow-tab-bar-CrbqMteP.js.map +0 -1
  663. package/dist/overlays-BlKynmde.js +0 -1004
  664. package/dist/overlays-BlKynmde.js.map +0 -1
  665. package/dist/page-CIwNUtGr.js +0 -227
  666. package/dist/page-CIwNUtGr.js.map +0 -1
  667. package/dist/page-header-commands-DFMlNYzN.js +0 -128
  668. package/dist/page-header-commands-DFMlNYzN.js.map +0 -1
  669. package/dist/popover-uwzX2vo7.js +0 -198
  670. package/dist/popover-uwzX2vo7.js.map +0 -1
  671. package/dist/popover.recipes-D3j8R8Yp.js.map +0 -1
  672. package/dist/primitives-Du64iDbb.js.map +0 -1
  673. package/dist/receipt-D789Jwyy.js.map +0 -1
  674. package/dist/rich-text-CLJEf76s.js +0 -78
  675. package/dist/rich-text-CLJEf76s.js.map +0 -1
  676. package/dist/rich-text-editor-Cm1dpUpQ.js.map +0 -1
  677. package/dist/rich-text-editor-toolbar-L__e4x47.js +0 -94
  678. package/dist/rich-text-editor-toolbar-L__e4x47.js.map +0 -1
  679. package/dist/safe-image-src-C6kQSMBZ.js +0 -17
  680. package/dist/safe-image-src-C6kQSMBZ.js.map +0 -1
  681. package/dist/sanitize-html-DsQmI48u.js.map +0 -1
  682. package/dist/settings-BA2iboic.js +0 -174
  683. package/dist/settings-BA2iboic.js.map +0 -1
  684. package/dist/sheet-DoAxTb2J.js +0 -213
  685. package/dist/sheet-DoAxTb2J.js.map +0 -1
  686. package/dist/sidebar-ByqKR_W5.js +0 -512
  687. package/dist/sidebar-ByqKR_W5.js.map +0 -1
  688. package/dist/sidebar-D2iSnGJ7.js +0 -619
  689. package/dist/sidebar-D2iSnGJ7.js.map +0 -1
  690. package/dist/skeleton-CUj8O5Bd.js +0 -264
  691. package/dist/skeleton-CUj8O5Bd.js.map +0 -1
  692. package/dist/smart-card-CqkzQsK-.js +0 -614
  693. package/dist/smart-card-CqkzQsK-.js.map +0 -1
  694. package/dist/table-CpvnzJn9.js.map +0 -1
  695. package/dist/table-DH7rozUv.js.map +0 -1
  696. package/dist/tabs-eqVsJZWO.js +0 -191
  697. package/dist/tabs-eqVsJZWO.js.map +0 -1
  698. package/dist/text-inputs-DXItiR0O.js.map +0 -1
  699. package/dist/theme-scope-BJ6eE2xt.js +0 -50
  700. package/dist/theme-scope-BJ6eE2xt.js.map +0 -1
  701. package/dist/timelines-DmtztAY_.js.map +0 -1
  702. package/dist/tooltip-B4hjKtoV.js +0 -111
  703. package/dist/tooltip-B4hjKtoV.js.map +0 -1
  704. package/dist/ui-provider-CQCuCBcy.js +0 -136
  705. package/dist/ui-provider-CQCuCBcy.js.map +0 -1
  706. package/dist/upload-C9SA0X-8.js.map +0 -1
  707. package/dist/upload-queue-DhQJiSRc.js.map +0 -1
  708. package/dist/usage-card-DVTRDmGz.js.map +0 -1
  709. package/dist/use-mobile-vaLKwgyf.js +0 -15
  710. package/dist/use-mobile-vaLKwgyf.js.map +0 -1
  711. package/dist/utils-CF3c95Io.js.map +0 -1
  712. package/dist/value-inputs-C0o70p-U.js +0 -980
  713. package/dist/value-inputs-C0o70p-U.js.map +0 -1
  714. package/dist/value-typography-ClupF0Gz.js.map +0 -1
  715. package/dist/workspace-9EFVXUyk.js.map +0 -1
@@ -3,6 +3,18 @@ export type TopbarSidebarHeaderTheme = 'light' | 'dark';
3
3
  export type TopbarSidebarSide = 'left' | 'right';
4
4
  export type TopbarSidebarContentElement = 'main' | 'div';
5
5
  export type TopbarSidebarMobileSidebarMode = 'drawer' | 'inline';
6
+ export type AppShellContentSurface = 'plain' | 'inset';
7
+ export type AppShellSidebarPresentation = 'panel' | 'rail';
8
+ export interface AppShellSidebarRegionProps {
9
+ /** Width of contextual navigation; defaults to the shared sidebar width. */
10
+ secondarySidebarWidth?: string;
11
+ /** Width of the opposite-side supporting panel. */
12
+ asideWidth?: string;
13
+ /** Primary navigation geometry, independent of its collapse state. */
14
+ sidebarPresentation?: AppShellSidebarPresentation;
15
+ secondarySidebarClassName?: string;
16
+ asideClassName?: string;
17
+ }
6
18
  export interface TopbarSidebarLayoutSlots {
7
19
  /** Full header replacement inside the themed header region. */
8
20
  header?: ReactNode;
@@ -20,6 +32,10 @@ export interface TopbarSidebarLayoutSlots {
20
32
  headerEnd?: ReactNode;
21
33
  /** Sidebar column content. */
22
34
  sidebar?: ReactNode;
35
+ /** Contextual navigation next to the primary sidebar. */
36
+ secondarySidebar?: ReactNode;
37
+ /** Optional supporting panel on the opposite edge. */
38
+ aside?: ReactNode;
23
39
  /** Full content replacement; falls back to `children`. */
24
40
  content?: ReactNode;
25
41
  }
@@ -27,16 +43,18 @@ export type TopbarSidebarLayoutStyle = CSSProperties & {
27
43
  '--shell-header-height'?: string;
28
44
  '--shell-sidebar-width'?: string;
29
45
  };
30
- export interface TopbarSidebarLayoutProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
46
+ export interface TopbarSidebarLayoutProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, AppShellSidebarRegionProps {
31
47
  /** Page content rendered in the content column. */
32
48
  children?: ReactNode;
33
- /** Header theme. Applies a `.light`/`.dark` token scope to the header so partials use ordinary tokens and invert against the header surface. */
49
+ /** Header theme. Omitted, the header follows the active theme. `light`/`dark` apply a token scope to the header so partials use ordinary tokens and invert against the header surface. */
34
50
  headerTheme?: TopbarSidebarHeaderTheme;
51
+ /** Inset paints the page on a card surface within the secondary shell canvas. */
52
+ contentSurface?: AppShellContentSurface;
35
53
  /** Sidebar side in the body grid. */
36
54
  sidebarSide?: TopbarSidebarSide;
37
- /** Mobile sidebar behavior. `drawer` hides the body column below `md` so `SidebarTrigger` can open the sheet. */
55
+ /** `drawer` adapts navigation to an overlay. `inline` keeps both navigation regions docked; a rail remains beside its collapsible contextual sidebar. */
38
56
  mobileSidebarMode?: TopbarSidebarMobileSidebarMode;
39
- /** Header height CSS value. Defaults to `var(--shell-header-height)`, whose root default is 4.5rem. */
57
+ /** Header height CSS value. Defaults to `var(--shell-header-height)`, whose root default is 4rem. */
40
58
  headerHeight?: string;
41
59
  /** Expanded sidebar column width CSS value. Defaults to `var(--shell-sidebar-width)`, whose root default is 16rem. */
42
60
  sidebarWidth?: string;
@@ -70,6 +88,10 @@ export type SidebarInsetSurface = 'inset' | 'flush';
70
88
  export interface SidebarInsetLayoutSlots {
71
89
  /** Sidebar column content, spanning the full page height. */
72
90
  sidebar?: ReactNode;
91
+ /** Contextual navigation beside the primary sidebar. */
92
+ secondarySidebar?: ReactNode;
93
+ /** Supporting panel on the opposite edge. */
94
+ aside?: ReactNode;
73
95
  /** Full toolbar replacement inside the content column. */
74
96
  toolbar?: ReactNode;
75
97
  /** Sidebar trigger, rendered at the start of the toolbar. */
@@ -81,13 +103,15 @@ export interface SidebarInsetLayoutSlots {
81
103
  /** Full content replacement; falls back to `children`. */
82
104
  content?: ReactNode;
83
105
  }
84
- export interface SidebarInsetLayoutProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
106
+ export interface SidebarInsetLayoutProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, AppShellSidebarRegionProps {
85
107
  /** Page content rendered in the content column. */
86
108
  children?: ReactNode;
87
109
  /** Sidebar side. */
88
110
  sidebarSide?: SidebarInsetSide;
89
111
  /** How the content surface meets the sidebar. */
90
112
  surface?: SidebarInsetSurface;
113
+ /** `drawer` adapts navigation to an overlay. `inline` keeps both navigation regions docked; a rail remains beside its collapsible contextual sidebar. @default 'drawer' */
114
+ mobileSidebarMode?: TopbarSidebarMobileSidebarMode;
91
115
  /** Renders the toolbar row. Set `false` for a shell with no header chrome at all. */
92
116
  toolbar?: boolean;
93
117
  /** Expanded sidebar column width CSS value. */
@@ -121,18 +145,23 @@ export interface StackedLayoutSlots {
121
145
  headerEnd?: ReactNode;
122
146
  /** Secondary row under the header, usually tabs or a breadcrumb. */
123
147
  subheader?: ReactNode;
148
+ /** Optional supporting panel beside the page. */
149
+ aside?: ReactNode;
124
150
  /** Full content replacement; falls back to `children`. */
125
151
  content?: ReactNode;
126
152
  }
127
153
  export interface StackedLayoutProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
128
154
  /** Page content. */
129
155
  children?: ReactNode;
130
- /** Header theme, matching `TopbarSidebarLayout`'s token-scope approach. */
156
+ /** Header theme. Omitted, the header follows the active theme; `light`/`dark` apply `TopbarSidebarLayout`'s token scope. */
131
157
  headerTheme?: TopbarSidebarHeaderTheme;
132
158
  /** Constrains the content to the shell's reading width, or lets it span. */
133
159
  contentWidth?: StackedContentWidth;
134
160
  /** Header height CSS value. */
135
161
  headerHeight?: string;
162
+ /** Width of the optional supporting panel. */
163
+ asideWidth?: string;
164
+ asideClassName?: string;
136
165
  /** Convenience logo slot. */
137
166
  logo?: ReactNode;
138
167
  /** Convenience navigation slot. */
@@ -1,5 +1,5 @@
1
1
  export { TopbarSidebarLayout } from './topbar-sidebar-layout';
2
- export type { TopbarSidebarContentElement, TopbarSidebarHeaderTheme, TopbarSidebarLayoutProps, TopbarSidebarLayoutSlots, TopbarSidebarLayoutStyle, TopbarSidebarSide, } from './app-shell.types';
2
+ export type { AppShellContentSurface, AppShellSidebarPresentation, AppShellSidebarRegionProps, TopbarSidebarContentElement, TopbarSidebarHeaderTheme, TopbarSidebarLayoutProps, TopbarSidebarLayoutSlots, TopbarSidebarLayoutStyle, TopbarSidebarSide, } from './app-shell.types';
3
3
  export { SidebarInsetLayout } from './sidebar-inset-layout';
4
4
  export { StackedLayout } from './stacked-layout';
5
5
  export type { SidebarInsetContentElement, SidebarInsetLayoutProps, SidebarInsetLayoutSlots, SidebarInsetSide, SidebarInsetSurface, StackedContentElement, StackedContentWidth, StackedLayoutProps, StackedLayoutSlots, } from './app-shell.types';
@@ -0,0 +1,27 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { AppShellSidebarPresentation } from './app-shell.types';
3
+ /** One surface recipe; the shell frames the page while Page owns its insets. */
4
+ export declare const shellContentSurface: {
5
+ readonly plain: "bg-background text-foreground";
6
+ readonly inset: "bg-card text-card-foreground md:m-space-md md:overflow-hidden md:rounded-surface md:border md:border-border md:shadow-sm";
7
+ };
8
+ interface ShellRegionGridProps {
9
+ children: ReactNode;
10
+ sidebar?: ReactNode;
11
+ secondarySidebar?: ReactNode;
12
+ aside?: ReactNode;
13
+ side?: 'left' | 'right';
14
+ primaryWidth?: string;
15
+ secondaryWidth?: string;
16
+ asideWidth?: string;
17
+ presentation?: AppShellSidebarPresentation;
18
+ inlinePrimary?: boolean;
19
+ className?: string;
20
+ mainClassName?: string;
21
+ sidebarClassName?: string;
22
+ secondarySidebarClassName?: string;
23
+ asideClassName?: string;
24
+ }
25
+ /** Optional auto tracks collapse independently; the page always owns the flexible track. */
26
+ export declare function ShellRegionGrid({ children, sidebar, secondarySidebar, aside, side, primaryWidth, secondaryWidth, asideWidth, presentation, inlinePrimary, className, mainClassName, sidebarClassName, secondarySidebarClassName, asideClassName }: ShellRegionGridProps): import("react").JSX.Element;
27
+ export {};
@@ -1,2 +1,2 @@
1
1
  import type { SidebarInsetLayoutProps } from './app-shell.types';
2
- export declare function SidebarInsetLayout({ children, sidebarSide, surface, toolbar, sidebarWidth, sidebar, sidebarTrigger, slots, contentAs: Content, className, sidebarClassName, toolbarClassName, contentClassName, style, ...props }: SidebarInsetLayoutProps): import("react").JSX.Element;
2
+ export declare function SidebarInsetLayout({ children, sidebarSide, surface, mobileSidebarMode, toolbar, sidebarWidth, secondarySidebarWidth, asideWidth, sidebarPresentation, secondarySidebarClassName, asideClassName, sidebar, sidebarTrigger, slots, contentAs: Content, className, sidebarClassName, toolbarClassName, contentClassName, style, ...props }: SidebarInsetLayoutProps): import("react").JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import type { StackedLayoutProps } from './app-shell.types';
2
- export declare function StackedLayout({ children, headerTheme, contentWidth, headerHeight, logo, nav, slots, contentAs: Content, className, headerClassName, subheaderClassName, contentClassName, style, ...props }: StackedLayoutProps): import("react").JSX.Element;
2
+ export declare function StackedLayout({ children, headerTheme, contentWidth, headerHeight, asideWidth, asideClassName, logo, nav, slots, contentAs: Content, className, headerClassName, subheaderClassName, contentClassName, style, ...props }: StackedLayoutProps): import("react").JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import type { TopbarSidebarLayoutProps } from './app-shell.types';
2
- export declare function TopbarSidebarLayout({ children, headerTheme, sidebarSide, mobileSidebarMode, headerHeight, sidebarWidth, sidebarTrigger, logo, headerActions, sidebar, slots, contentAs: Content, className, headerClassName, headerInnerClassName, bodyClassName, sidebarClassName, contentClassName, style, ...props }: TopbarSidebarLayoutProps): import("react").JSX.Element;
2
+ export declare function TopbarSidebarLayout({ children, headerTheme, contentSurface, sidebarSide, mobileSidebarMode, headerHeight, sidebarWidth, secondarySidebarWidth, asideWidth, sidebarPresentation, secondarySidebarClassName, asideClassName, sidebarTrigger, logo, headerActions, sidebar, slots, contentAs: Content, className, headerClassName, headerInnerClassName, bodyClassName, sidebarClassName, contentClassName, style, ...props }: TopbarSidebarLayoutProps): import("react").JSX.Element;
@@ -20,6 +20,8 @@ export interface TwoColumnLayoutProps extends useRender.ComponentProps<'div'> {
20
20
  stickyAside?: boolean;
21
21
  /** Preserve viewport breakpoints by default, or adapt inside Container/PageViewport. */
22
22
  adaptTo?: 'viewport' | 'container';
23
+ /** Optional main/aside proportions; omission preserves the established flexible 2/1 split. */
24
+ ratio?: '7/5' | '8/4';
23
25
  /** Native attributes for each stable region. */
24
26
  slotProps?: TwoColumnLayoutSlotProps;
25
27
  }
@@ -0,0 +1,6 @@
1
+ /** Fixed-height inline rules align to header controls rather than stretching
2
+ * from the top edge of a flex row. Separator keeps its general stretch default. */
3
+ export declare const headerInlineDividerAlignment = "[&_[data-slot=separator][data-orientation=vertical]]:self-center";
4
+ /** One unread-count chip for header icon triggers. Counts state no status, so it
5
+ * takes the neutral solid role; it floats over the icon, so it is opaque. */
6
+ export declare const headerCountBadge = "pointer-events-none absolute -end-1 -top-1 flex h-4.5 min-w-4.5 items-center justify-center rounded-full bg-foreground px-space-xs text-background tabular-nums";
@@ -13,8 +13,9 @@ export interface HeaderBreadcrumbsProps extends LayoutNavigationAdapter {
13
13
  breadcrumbs?: BreadcrumbItem[];
14
14
  /** Root entry prepended to the trail. */
15
15
  homeBreadcrumb?: BreadcrumbItem | null;
16
- /** Renders the sidebar collapse control. */
16
+ /** Renders the sidebar control when a provider or a trigger slot is present. @default true */
17
17
  showSidebarTrigger?: boolean;
18
+ /** Custom trigger content. Can be used without a sidebar provider. */
18
19
  triggerSlot?: ReactNode;
19
20
  className?: string;
20
21
  }
@@ -164,15 +165,15 @@ export interface HeaderUserMenuStrings {
164
165
  }
165
166
  export declare const defaultHeaderUserMenuStrings: HeaderUserMenuStrings;
166
167
  export interface HeaderSlots {
167
- /** Leading brand/logo region before breadcrumbs. */
168
+ /** Leading brand/logo before breadcrumbs, visible from the 2xl/app-header container width (42rem by default). Use left for identity that must remain visible at narrow widths. */
168
169
  brand?: ReactNode;
169
- /** Replaces the breadcrumb/sidebar-trigger region. */
170
+ /** Replaces the breadcrumb/sidebar-trigger region, rendered only while showBreadcrumbs is true. */
170
171
  breadcrumbs?: ReactNode;
171
- /** Leading content after breadcrumbs. */
172
+ /** Leading content after breadcrumbs; always rendered when supplied, including narrow container widths. The app owns compact content and overflow. */
172
173
  left?: ReactNode;
173
- /** Center content, usually search or a scope switcher. */
174
+ /** Optional center content, usually search, visible from the 3xl/app-header container width (48rem by default). Essential navigation needs a narrow-width alternative in left or right. */
174
175
  center?: ReactNode;
175
- /** Trailing content, usually notifications/user menu/actions. */
176
+ /** Trailing content, usually tools/account actions; always rendered when supplied and wraps at narrow widths. Its children own their responsive behavior. */
176
177
  right?: ReactNode;
177
178
  }
178
179
  export interface HeaderProps extends LayoutNavigationAdapter, HTMLAttributes<HTMLElement> {
@@ -182,9 +183,9 @@ export interface HeaderProps extends LayoutNavigationAdapter, HTMLAttributes<HTM
182
183
  breadcrumbs?: BreadcrumbItem[];
183
184
  /** Root entry prepended to the trail. */
184
185
  homeBreadcrumb?: BreadcrumbItem | null;
185
- /** Renders the sidebar collapse control. */
186
+ /** Renders the sidebar control when a sidebar provider is present. @default true */
186
187
  showSidebarTrigger?: boolean;
187
- /** Replaces individual regions of the shell. */
188
+ /** Composes shell regions by container width: brand appears from 2xl/app-header (42rem default), center from 3xl/app-header (48rem default); left and right are always rendered when supplied. Keep essential narrow-width identity/navigation in left or right and supply compact/overflow behavior. */
188
189
  slots?: HeaderSlots;
189
190
  className?: string;
190
191
  /** Merged onto the content region. */
@@ -5,13 +5,13 @@
5
5
  * router package. Navigation is delegated to the consumer through
6
6
  * `renderLink`.
7
7
  */
8
- import type { ComponentType, HTMLAttributes, MouseEvent, ReactNode } from 'react';
8
+ import type { AriaAttributes, ComponentType, HTMLAttributes, MouseEvent, ReactNode } from 'react';
9
9
  /** Native region props, including strongly typed consumer `data-*` hooks. */
10
10
  export type LayoutSlotAttributes<ElementType extends HTMLElement> = HTMLAttributes<ElementType> & {
11
11
  [Key in `data-${string}`]?: string | number | boolean | undefined;
12
12
  };
13
13
  export interface LayoutLinkRenderProps {
14
- /** Destination URL. When omitted, render non-interactive content. */
14
+ /** Destination URL. Without a URL, the default renders a button when onClick is supplied. */
15
15
  href?: string;
16
16
  children: ReactNode;
17
17
  className?: string;
@@ -19,6 +19,8 @@ export interface LayoutLinkRenderProps {
19
19
  rel?: string;
20
20
  onClick?: (event: MouseEvent<HTMLAnchorElement>) => void;
21
21
  'aria-label'?: string;
22
+ /** Current-page state supplied by a navigation owner. */
23
+ 'aria-current'?: AriaAttributes['aria-current'];
22
24
  /** Consumer hint for active styling; renderers may ignore it. */
23
25
  active?: boolean;
24
26
  /** Consumer hint to render as muted/non-interactive. */
@@ -40,7 +42,7 @@ export interface LayoutNavigationAdapter {
40
42
  /** Renderer for framework-native links. */
41
43
  renderLink?: LayoutLinkRenderer;
42
44
  }
43
- /** Default link renderer — native anchor with disabled fallback. */
45
+ /** Renders native links, callback buttons and inert entries. */
44
46
  export declare const defaultRenderLink: LayoutLinkRenderer;
45
47
  /** Resolve the consumer renderer or the native-anchor default. */
46
48
  export declare function resolveLayoutLinkRenderer({ renderLink, }?: LayoutNavigationAdapter): LayoutLinkRenderer;
@@ -2,6 +2,11 @@
2
2
  * SectionNav — sticky in-page anchor nav. Pass a list of section ids; the active one
3
3
  * is tracked via IntersectionObserver and the matching item is highlighted. Click to
4
4
  * scroll to that section. Pure JS — no router required.
5
+ *
6
+ * A click owns the current state: the clicked section stays current while the smooth
7
+ * scroll it started passes other sections, after that scroll settles (including when
8
+ * the last sections are too short to reach the top), and until the reader scrolls
9
+ * again. Only then does the observer resume.
5
10
  */
6
11
  import { type ComponentPropsWithoutRef } from 'react';
7
12
  import type { LucideIcon } from 'lucide-react';
@@ -10,6 +10,7 @@
10
10
  import { type LucideIcon } from 'lucide-react';
11
11
  import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
12
12
  import { type StringsProp } from '../../../lib/strings';
13
+ import type { LayoutNavigationAdapter } from '../layout.types';
13
14
  export interface SideNavStrings {
14
15
  navigationLabel: string;
15
16
  }
@@ -36,8 +37,8 @@ export interface SideNavGroup {
36
37
  defaultCollapsed?: boolean;
37
38
  collapsible?: boolean;
38
39
  }
39
- interface SideNavSharedProps extends Omit<ComponentPropsWithoutRef<'nav'>, 'children'> {
40
- /** Path of the active route, used to mark the current entry. */
40
+ interface SideNavSharedProps extends Omit<ComponentPropsWithoutRef<'nav'>, 'children'>, LayoutNavigationAdapter {
41
+ /** Path supplied by the app. Omit it to leave every entry unmarked. */
41
42
  currentPath?: string;
42
43
  itemClassName?: string;
43
44
  activeItemClassName?: string;
@@ -0,0 +1 @@
1
+ export declare function normalizeLayoutPath(rawUrl: string): string;
@@ -1,4 +1,5 @@
1
1
  export { Page } from './page';
2
2
  export { PageHeader } from './partials/page-header';
3
3
  export { PageActions } from './partials/page-actions';
4
- export { defaultPageActionsStrings, type PageHeaderAction, type PageHeaderProps, type PageHeaderSlots, type PageHeaderTabs, type PageActionsProps, type PageActionsDisplay, type PageAction, type PageActionContext, type PageActionsStrings, type PageProps, type PageSlotProps, } from './page.types';
4
+ export { defaultPageActionsStrings, type PageHeaderAction, type PageHeaderProps, type PageHeaderSlots, type PageHeaderRenderContext, type PageHeaderRenderSlot, type PageHeaderTabs, type PageActionsProps, type PageActionsDisplay, type PageAction, type PageActionContext, type PageActionsStrings, type PageProps, type PageSlotProps, type PageSlots, } from './page.types';
5
+ export { defaultPageStrings, type PageStrings } from './page.strings';
@@ -1,2 +1,3 @@
1
1
  import type { PageProps } from './page.types';
2
+ /** Route containment, header, lifecycle states and optional secondary context, without owning scrolling. */
2
3
  export declare const Page: import("react").ForwardRefExoticComponent<Omit<PageProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,11 @@
1
+ /** Copy for Page's primary-body lifecycle states. */
2
+ export interface PageStrings {
3
+ loadingLabel: string;
4
+ loadingDescription: string;
5
+ errorTitle: string;
6
+ errorDescription: string;
7
+ retryLabel: string;
8
+ emptyTitle: string;
9
+ emptyDescription: string;
10
+ }
11
+ export declare const defaultPageStrings: PageStrings;
@@ -13,6 +13,8 @@ import type { BadgeTone } from '../../base/badge';
13
13
  import type { ActionPresentation } from '../../../lib/action-presentation';
14
14
  import type { PageHeaderAction } from '../../base/navigation/page-header';
15
15
  import type { OverflowTabItem } from '../../base/navigation';
16
+ import type { TwoColumnLayoutProps } from '../containers';
17
+ import type { PageStrings } from './page.strings';
16
18
  export interface PageTitleBadge {
17
19
  /** Display label. */
18
20
  label: ReactNode;
@@ -37,15 +39,25 @@ export interface PageHeaderTabs {
37
39
  /** Label of the trigger that holds tabs which do not fit. Default: `'More'`. */
38
40
  moreLabel?: string;
39
41
  }
42
+ export interface PageHeaderRenderContext {
43
+ /** The framework-neutral link renderer used by this header. */
44
+ renderLink: LayoutLinkRenderer;
45
+ /** Existing content for this position; actions includes the responsive command row. */
46
+ defaultContent: ReactNode;
47
+ }
48
+ /** A content node, or a render callback that can keep or replace its default content. */
49
+ export type PageHeaderRenderSlot = ReactNode | ((context: PageHeaderRenderContext) => ReactNode);
40
50
  export interface PageHeaderSlots {
41
- /** Replaces the leading back control entirely. */
51
+ /** @deprecated Use backHref/onBack for navigation. Retained as a custom back-control escape hatch. */
42
52
  back?: ReactNode;
43
- /** Additional content before the title line. */
44
- beforeTitle?: ReactNode;
45
- /** Additional content after the description. */
46
- afterDescription?: ReactNode;
47
- /** Replaces the trailing actions region, including role-based commands. */
48
- actions?: ReactNode;
53
+ /** Context above the title, such as breadcrumbs. */
54
+ beforeTitle?: PageHeaderRenderSlot;
55
+ /** Content beside the title, such as a status or count. */
56
+ titleSuffix?: PageHeaderRenderSlot;
57
+ /** Context below the description. Compose metadata or other content here. */
58
+ afterDescription?: PageHeaderRenderSlot;
59
+ /** Keep, wrap or replace defaultContent's responsive command row. */
60
+ actions?: PageHeaderRenderSlot;
49
61
  }
50
62
  export interface PageHeaderProps extends LayoutNavigationAdapter {
51
63
  /** Surface title. */
@@ -56,35 +68,42 @@ export interface PageHeaderProps extends LayoutNavigationAdapter {
56
68
  textGap?: TextGap;
57
69
  /** Semantic heading level for the title. Defaults to `h1`, the route's main heading; use `h2` when the page sits inside another titled page. */
58
70
  headingTag?: HeadingTag;
59
- /** Optional decorative icon rendered before the title. Pass a Lucide icon component. */
71
+ /** @deprecated Compose custom title content with slots.titleSuffix or a React-node title. */
60
72
  titleIcon?: ComponentType<{
61
73
  className?: string;
62
74
  }>;
63
- /** Optional link target for the title icon. Uses the same framework-neutral renderer as `backHref`. */
75
+ /** @deprecated Compose a linked item in a render slot using its renderLink context. */
64
76
  titleIconHref?: string;
65
- /** Optional click handler for the title icon when it should behave like an action. */
77
+ /** @deprecated Compose a command in slots.actions or describe it with primaryAction/secondaryActions. */
66
78
  onTitleIconClick?: () => void;
67
- /** Accessible label for linked/clickable title icons. */
79
+ /** @deprecated Accessible name for the compatibility title-icon control. */
68
80
  titleIconLabel?: string;
69
81
  /** Destination for the back control. */
70
82
  backHref?: string;
71
83
  onBack?: () => void;
72
84
  /** Copy for the back control. */
73
85
  backLabel?: string;
74
- /** Chips shown beside the page title. */
86
+ /** @deprecated Render title content with slots.titleSuffix. Retained for existing badge definitions. */
75
87
  titleBadges?: PageTitleBadge[];
76
88
  /**
77
89
  * The page's one main command: a solid primary button after the secondary
78
- * commands, visible at every width.
90
+ * commands. Compact headers place it first in the More actions menu.
79
91
  */
80
92
  primaryAction?: PageHeaderAction;
81
93
  /**
82
94
  * Supporting commands in priority order. The first two render as outline
83
95
  * buttons before the primary command; the rest, and every destructive
84
96
  * command, move into the More actions menu, which always closes the row.
85
- * Below `sm`, all secondary commands collapse into that menu.
97
+ * Below 40rem of header width, all commands collapse into that menu.
86
98
  */
87
99
  secondaryActions?: readonly PageHeaderAction[];
100
+ /**
101
+ * How many routine secondary commands render as outline buttons on wide
102
+ * headers; later ones join the More actions menu. Use `1` or `0` when long
103
+ * labels beside the primary command would crowd the header; `Infinity`
104
+ * keeps every routine command inline. @default 2
105
+ */
106
+ maxVisibleSecondaryActions?: number;
88
107
  /** Accessible name of the More actions menu trigger. */
89
108
  moreActionsLabel?: string;
90
109
  /**
@@ -94,8 +113,7 @@ export interface PageHeaderProps extends LayoutNavigationAdapter {
94
113
  */
95
114
  tabs?: PageHeaderTabs;
96
115
  /**
97
- * Custom controls before the role-based commands, such as a period select.
98
- * Prefer `primaryAction` and `secondaryActions` for commands.
116
+ * @deprecated Customize commands with slots.actions; put other controls in Page toolbar.
99
117
  */
100
118
  actions?: ReactNode;
101
119
  /** Replaces individual regions of the shell. */
@@ -173,11 +191,24 @@ export interface PageActionsProps extends LayoutNavigationAdapter {
173
191
  export interface PageSlotProps {
174
192
  /** Native attributes merged onto the page body region. */
175
193
  body?: LayoutSlotAttributes<HTMLDivElement>;
194
+ aside?: LayoutSlotAttributes<HTMLElement>;
195
+ toolbar?: LayoutSlotAttributes<HTMLDivElement>;
196
+ footer?: LayoutSlotAttributes<HTMLDivElement>;
197
+ }
198
+ export interface PageSlots {
199
+ /** Replaces the generated PageHeader. */
200
+ header?: ReactNode;
201
+ toolbar?: ReactNode;
202
+ aside?: ReactNode;
203
+ footer?: ReactNode;
204
+ loading?: ReactNode;
205
+ error?: ReactNode;
206
+ empty?: ReactNode;
176
207
  }
177
208
  export interface PageProps extends LayoutNavigationAdapter, Omit<ContainerProps, 'children'> {
178
209
  /** Header region of the shell. */
179
210
  header?: PageHeaderProps;
180
- /** Maximum content width. Explicit values override narrow. Defaults to `lg`. */
211
+ /** Explicit width wins; otherwise narrow uses md, aside uses xl, and a single column uses lg. */
181
212
  maxWidth?: ContainerMaxWidth;
182
213
  /** Center one resource or form at the existing `md` content measure. */
183
214
  narrow?: boolean;
@@ -185,6 +216,27 @@ export interface PageProps extends LayoutNavigationAdapter, Omit<ContainerProps,
185
216
  gutter?: ContainerGutter;
186
217
  /** Block padding around the whole page. Defaults to `lg`, independent of gutter. */
187
218
  padding?: ContainerGutter;
219
+ /** Secondary context beside the primary body, adapting to the available container width. */
220
+ aside?: ReactNode;
221
+ /** Main/aside proportions. Defaults to 7/5. */
222
+ asideRatio?: TwoColumnLayoutProps['ratio'];
223
+ stickyAside?: boolean;
224
+ /** Query controls or context between header and body. */
225
+ toolbar?: ReactNode;
226
+ /** Content above the header. */
227
+ beforeHeader?: ReactNode;
228
+ /** Compatible toolbar fallback when toolbar and slots.toolbar are omitted. */
229
+ afterHeader?: ReactNode;
230
+ /** Replaces only the primary body; header, toolbar and aside remain mounted. */
231
+ loading?: boolean;
232
+ error?: ReactNode | Error;
233
+ onRetry?: () => void;
234
+ empty?: boolean;
235
+ emptySlot?: ReactNode;
236
+ /** Region overrides take precedence over direct props. */
237
+ slots?: PageSlots;
238
+ /** Copy for the default loading, error and empty states. */
239
+ strings?: StringsProp<PageStrings>;
188
240
  children?: ReactNode;
189
241
  /** Native attributes for stable page regions. */
190
242
  slotProps?: PageSlotProps;
@@ -1,2 +1,2 @@
1
1
  import type { PageHeaderProps } from '../page.types';
2
- export declare function PageHeader({ title, description, textGap, headingTag, titleIcon: TitleIcon, titleIconHref, onTitleIconClick, titleIconLabel, backHref, onBack, backLabel, titleBadges, primaryAction, secondaryActions, moreActionsLabel, tabs, actions, slots, renderLink, className, contentClassName, actionsClassName, titleClassName, titleIconClassName, descriptionClassName, }: PageHeaderProps): import("react").JSX.Element;
2
+ export declare function PageHeader({ title, description, textGap, headingTag, titleIcon: TitleIcon, titleIconHref, onTitleIconClick, titleIconLabel, backHref, onBack, backLabel, titleBadges, primaryAction, secondaryActions, maxVisibleSecondaryActions, moreActionsLabel, tabs, actions, slots, renderLink, className, contentClassName, actionsClassName, titleClassName, titleIconClassName, descriptionClassName, }: PageHeaderProps): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- import type { ComponentType, ReactNode } from 'react';
1
+ import { type ComponentType, type ReactNode } from 'react';
2
2
  import { type PageHeaderAction } from '../../base/navigation/page-header/page-header-commands';
3
3
  import { type StringsProp } from '../../../lib/strings';
4
4
  import { type LayoutNavigationAdapter } from '../layout.types';
@@ -51,7 +51,7 @@ export interface AsideNavShellProps extends LayoutNavigationAdapter {
51
51
  * render before the role-based commands.
52
52
  */
53
53
  actions?: ReactNode;
54
- /** The page's one main command: a solid primary button, visible at every width. */
54
+ /** The page's one main command: a solid primary button, available in the compact header menu. */
55
55
  primaryAction?: PageHeaderAction;
56
56
  /**
57
57
  * Supporting commands in priority order, as in Page headers: the first two
@@ -59,6 +59,13 @@ export interface AsideNavShellProps extends LayoutNavigationAdapter {
59
59
  * destructive command, move into the More actions menu, which closes the row.
60
60
  */
61
61
  secondaryActions?: readonly PageHeaderAction[];
62
+ /**
63
+ * How many routine secondary commands render as outline buttons on wide
64
+ * headers; later ones join the More actions menu. Use `1` or `0` when long
65
+ * labels beside the primary command would crowd the header; `Infinity`
66
+ * keeps every routine command inline. @default 2
67
+ */
68
+ maxVisibleSecondaryActions?: number;
62
69
  /** Accessible name of the More actions menu trigger. Default: `'More actions'`. */
63
70
  moreActionsLabel?: string;
64
71
  /** Content below the body. */
@@ -72,7 +79,7 @@ export interface AsideNavShellProps extends LayoutNavigationAdapter {
72
79
  strings?: StringsProp<AsideNavShellStrings>;
73
80
  }
74
81
  export type SettingsShellProps = AsideNavShellProps;
75
- export declare function AsideNavShell({ title, description, groups, currentId, currentPath, children, aside, actions, primaryAction, secondaryActions, moreActionsLabel, footer, className, navClassName, contentClassName, renderLink, strings: stringsProp, }: AsideNavShellProps): import("react").JSX.Element;
82
+ export declare function AsideNavShell({ title, description, groups, currentId, currentPath, children, aside, actions, primaryAction, secondaryActions, maxVisibleSecondaryActions, moreActionsLabel, footer, className, navClassName, contentClassName, renderLink, strings: stringsProp, }: AsideNavShellProps): import("react").JSX.Element;
76
83
  export declare namespace AsideNavShell {
77
84
  var displayName: string;
78
85
  }
@@ -4,4 +4,4 @@
4
4
  */
5
5
  import * as React from 'react';
6
6
  import type { AppSidebarProps } from './sidebar.types';
7
- export declare function AppSidebar({ navigationGroups, footerNavItems, footerLabel, logo, collapsedLogo, workspaceLinks, workspaceStrings, workspaceContentClassName, headerClassName, logoClassName, iconMap, currentUrl, liveBadges, showBadges, menuDensity, renderLink, loading, collapsible, variant, side, className, surfaceClassName, contentClassName, slots, renderItem, searchable, searchValue, defaultSearchValue, onSearchValueChange, strings: stringsProp, expandedItems, defaultExpandedItems, onExpandedItemsChange, }: AppSidebarProps): React.JSX.Element;
7
+ export declare function AppSidebar({ navigationGroups, 'aria-label': navigationLabel, footerNavItems, footerLabel, logo, collapsedLogo, workspaceLinks, workspaceStrings, workspaceContentClassName, headerClassName, logoClassName, iconMap, currentUrl, closeDrawerOnNavigate, liveBadges, showBadges, menuDensity, renderLink, loading, collapsible, panelId, surface, variant, side, className, surfaceClassName, contentClassName, slots, renderItem, renderItemContent, searchable, searchValue, defaultSearchValue, onSearchValueChange, strings: stringsProp, expandedItems, defaultExpandedItems, onExpandedItemsChange, }: AppSidebarProps): React.JSX.Element;
@@ -1,4 +1,4 @@
1
1
  /** Grouped navigation uses public disclosure and sidebar anatomy; routing stays app-owned. */
2
2
  import * as React from 'react';
3
3
  import { type SidebarGroupedNavigationProps } from '../sidebar.types';
4
- export declare function SidebarGroupedNavigation({ navigationByGroups, currentUrl, iconMap, liveBadges, showBadges, renderLink, emptySlot, renderItem, className, menuDensity, expandedItems, defaultExpandedItems, onExpandedItemsChange, searchValue, strings: stringsProp, }: SidebarGroupedNavigationProps): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null;
4
+ export declare function SidebarGroupedNavigation({ navigationByGroups, currentUrl, iconMap, liveBadges, showBadges, renderLink, emptySlot, renderItem, renderItemContent, className, menuDensity, expandedItems, defaultExpandedItems, onExpandedItemsChange, searchValue, strings: stringsProp, }: SidebarGroupedNavigationProps): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null;
@@ -1,4 +1,4 @@
1
1
  /** SidebarNavigation — flat, framework-neutral sidebar nav list. */
2
2
  import * as React from 'react';
3
3
  import type { SidebarFlatNavigationProps } from '../sidebar.types';
4
- export declare function SidebarNavigation({ items, label, currentUrl, iconMap, liveBadges, showBadges, renderLink, renderItem, className, menuDensity, }: SidebarFlatNavigationProps): React.JSX.Element;
4
+ export declare function SidebarNavigation({ items, label, currentUrl, iconMap, liveBadges, showBadges, renderLink, renderItem, renderItemContent, className, menuDensity, }: SidebarFlatNavigationProps): React.JSX.Element;
@@ -1,6 +1,7 @@
1
1
  export { LayoutSidebar, type LayoutSidebarProps } from './sidebar';
2
2
  export { LayoutSidebarProvider, useLayoutSidebar, type LayoutSidebarContext, type LayoutSidebarProviderProps, } from './sidebar.context';
3
3
  export { AppSidebar } from './app-sidebar';
4
+ export { SidebarNavigationRail, type SidebarNavigationRailItem, type SidebarNavigationRailProps } from './sidebar-navigation-rail';
4
5
  export { SidebarLogo, type SidebarLogoProps } from './components/sidebar-logo';
5
6
  export { SidebarWorkspaceDropdown } from './components/sidebar-workspace-dropdown';
6
7
  export { SidebarNavigation } from './components/sidebar-navigation';
@@ -8,4 +9,4 @@ export { SidebarGroupedNavigation } from './components/sidebar-grouped-navigatio
8
9
  export { SidebarNavigationFooter } from './components/sidebar-navigation-footer';
9
10
  export { SidebarNavigationUser, defaultSidebarNavigationUserStrings, type SidebarNavigationUserProps, type SidebarNavigationUserStrings, } from './components/sidebar-navigation-user';
10
11
  export { toPath, isPathMatch, getNavLabel, getNavKey, DynamicIcon as SidebarIcon, type DynamicIconProps as SidebarIconProps, NavBadge, resolveNavBadge, } from './sidebar.utils';
11
- export { defaultSidebarWorkspaceDropdownStrings, defaultSidebarNavigationStrings, type SidebarNavigationStrings, type SidebarExpansionProps, type AppSidebarProps, type SidebarNavItem, type SidebarFlatNavItem, type SidebarRenderItemContext, type SidebarSlots, type SidebarFlatNavigationProps, type SidebarGroupedNavigationProps, type SidebarFooterNavigationItem, type SidebarNavigationFooterProps, type WorkspaceLink, type SidebarWorkspaceDropdownProps, type SidebarWorkspaceDropdownStrings, } from './sidebar.types';
12
+ export { defaultSidebarWorkspaceDropdownStrings, defaultSidebarNavigationStrings, type SidebarNavigationStrings, type SidebarExpansionProps, type AppSidebarProps, type SidebarNavItem, type SidebarNavigationGroup, type SidebarNavigationGroups, type SidebarFlatNavItem, type SidebarRenderItemContext, type SidebarRenderItemContentContext, type SidebarSlotContext, type SidebarSlot, type SidebarSlots, type SidebarFlatNavigationProps, type SidebarGroupedNavigationProps, type SidebarFooterNavigationItem, type SidebarNavigationFooterProps, type WorkspaceLink, type SidebarWorkspaceDropdownProps, type SidebarWorkspaceDropdownStrings, } from './sidebar.types';
@@ -0,0 +1,38 @@
1
+ /** Primary area navigation, distinct from SidebarRail's collapse affordance. */
2
+ import type { ComponentType } from 'react';
3
+ import type { LayoutIconSource, LayoutNavigationAdapter } from '../layout.types';
4
+ import { type LayoutSidebarProps } from './sidebar';
5
+ import type { SidebarFlatNavItem, SidebarSlot } from './sidebar.types';
6
+ export type SidebarNavigationRailItem = SidebarFlatNavItem & {
7
+ /** Informative area icon; the full label remains accessible. */
8
+ icon: LayoutIconSource;
9
+ } & ({
10
+ id: string;
11
+ } | {
12
+ handle: string;
13
+ });
14
+ export interface SidebarNavigationRailProps extends Omit<LayoutSidebarProps, 'children' | 'collapsible'>, LayoutNavigationAdapter {
15
+ items: readonly SidebarNavigationRailItem[];
16
+ /** Selected item id (or its legacy handle). Controlled. */
17
+ value?: string;
18
+ onValueChange?: (id: string) => void;
19
+ /** Used for native current-route indication when value is omitted. */
20
+ currentUrl?: string;
21
+ /** Close this already-open drawer when currentUrl, or the fallback value, changes. @default true */
22
+ closeDrawerOnNavigate?: boolean;
23
+ iconMap?: Record<string, ComponentType<{
24
+ className?: string;
25
+ }>>;
26
+ /** Structural content seams. Header/footer stay pinned; navigation additions scroll. The rail owns each region's insets. */
27
+ slots?: {
28
+ header?: SidebarSlot;
29
+ beforeNavigation?: SidebarSlot;
30
+ afterNavigation?: SidebarSlot;
31
+ footer?: SidebarSlot;
32
+ };
33
+ /** The rail stays visible by default; offcanvas makes the entire rail hideable. */
34
+ collapsible?: 'none' | 'offcanvas';
35
+ /** Accessible name for this navigation region. @default 'Primary navigation' */
36
+ 'aria-label'?: string;
37
+ }
38
+ export declare function SidebarNavigationRail({ items, value, onValueChange, currentUrl, closeDrawerOnNavigate, renderLink, iconMap, slots, collapsible, 'aria-label': ariaLabel, className, surface, surfaceClassName, style, side, panelId, ...props }: SidebarNavigationRailProps): import("react").JSX.Element;