themelia-react-ui 2.0.5 → 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 (489) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/MIGRATION.md +119 -0
  3. package/README.md +13 -6
  4. package/dist/{accordion-B9MHG0cT.js → accordion-0tQUZ20r.js} +7 -7
  5. package/dist/accordion-0tQUZ20r.js.map +1 -0
  6. package/dist/{action-menu-Dr8K-ghE.js → action-menu-C0gjzLyE.js} +7 -7
  7. package/dist/{action-menu-Dr8K-ghE.js.map → action-menu-C0gjzLyE.js.map} +1 -1
  8. package/dist/{ai-artifact-C58tQcBy.js → ai-artifact-CGGpQryR.js} +172 -157
  9. package/dist/ai-artifact-CGGpQryR.js.map +1 -0
  10. package/dist/{app-shell-B_IuNWOo.js → app-shell-EHuuRDGy.js} +5 -5
  11. package/dist/{app-shell-B_IuNWOo.js.map → app-shell-EHuuRDGy.js.map} +1 -1
  12. package/dist/{attachment-Dg_69lPS.js → attachment-BCpA4e7i.js} +8 -8
  13. package/dist/{attachment-Dg_69lPS.js.map → attachment-BCpA4e7i.js.map} +1 -1
  14. package/dist/{auth-DTkkshS8.js → auth-B0girIk_.js} +15 -15
  15. package/dist/auth-B0girIk_.js.map +1 -0
  16. package/dist/{avatar-CeZaFmNH.js → avatar-B9Jnp-T-.js} +3 -3
  17. package/dist/{avatar-CeZaFmNH.js.map → avatar-B9Jnp-T-.js.map} +1 -1
  18. package/dist/{badge-xIiV_E7f.js → badge-wWauMgAt.js} +3 -3
  19. package/dist/{badge-xIiV_E7f.js.map → badge-wWauMgAt.js.map} +1 -1
  20. package/dist/base/accordion.js +1 -1
  21. package/dist/base/action-menu.js +1 -1
  22. package/dist/base/attachment.js +1 -1
  23. package/dist/base/avatar.js +1 -1
  24. package/dist/base/badge.js +1 -1
  25. package/dist/base/batch-action-bar.js +1 -1
  26. package/dist/base/buttons.js +1 -1
  27. package/dist/base/cards.js +2 -2
  28. package/dist/base/carousel.js +3 -3
  29. package/dist/base/cascader.js +1 -1
  30. package/dist/base/chart.js +1 -1
  31. package/dist/base/choice-inputs.js +2 -2
  32. package/dist/base/code-block.js +1 -1
  33. package/dist/base/combobox.js +1 -1
  34. package/dist/base/command.js +1 -1
  35. package/dist/base/copyable.js +1 -1
  36. package/dist/base/date-pickers.js +2 -2
  37. package/dist/base/display.js +6 -6
  38. package/dist/base/feedback.js +4 -4
  39. package/dist/base/forms-numeric.js +1 -1
  40. package/dist/base/forms.js +2 -2
  41. package/dist/base/inline-edit.js +8 -8
  42. package/dist/base/item.js +1 -1
  43. package/dist/base/media-gallery.js +1 -1
  44. package/dist/base/metadata-list.js +1 -1
  45. package/dist/base/navigation.js +6 -6
  46. package/dist/base/popover-menu.js +1 -1
  47. package/dist/base/popover.js +1 -1
  48. package/dist/base/qr-code.js +1 -1
  49. package/dist/base/repeaters.js +195 -188
  50. package/dist/base/repeaters.js.map +1 -1
  51. package/dist/base/sheet.js +1 -1
  52. package/dist/base/sidebar.js +2 -2
  53. package/dist/base/signature-pad.js +7 -7
  54. package/dist/base/skeleton.js +1 -1
  55. package/dist/base/spinner.js +5 -5
  56. package/dist/base/spinner.js.map +1 -1
  57. package/dist/base/structure.js +1 -1
  58. package/dist/base/table.js +1 -1
  59. package/dist/base/text-inputs.js +2 -2
  60. package/dist/base/toaster.js +1 -1
  61. package/dist/base/tree.js +1 -1
  62. package/dist/base/upload-queue.js +1 -1
  63. package/dist/base/upload.js +3 -3
  64. package/dist/base/value-inputs.js +1 -1
  65. package/dist/{batch-action-bar-Cb8cuvyy.js → batch-action-bar-BoqWIIpV.js} +5 -5
  66. package/dist/{batch-action-bar-Cb8cuvyy.js.map → batch-action-bar-BoqWIIpV.js.map} +1 -1
  67. package/dist/blocks/admin.js +17 -17
  68. package/dist/blocks/ai.js +227 -221
  69. package/dist/blocks/ai.js.map +1 -1
  70. package/dist/blocks/analytics/usage-card.js +1 -1
  71. package/dist/blocks/analytics.js +424 -449
  72. package/dist/blocks/analytics.js.map +1 -1
  73. package/dist/blocks/collaboration.js +1 -1
  74. package/dist/blocks/commerce/receipt.js +1 -1
  75. package/dist/blocks/commerce.js +225 -220
  76. package/dist/blocks/commerce.js.map +1 -1
  77. package/dist/blocks/data-display.js +2 -2
  78. package/dist/blocks/onboarding.js +5 -5
  79. package/dist/blocks/planning.js +11 -11
  80. package/dist/blocks/timelines.js +1 -1
  81. package/dist/{breadcrumbs-J-K2kl4c.js → breadcrumbs-Bp9Ke7kd.js} +4 -4
  82. package/dist/breadcrumbs-Bp9Ke7kd.js.map +1 -0
  83. package/dist/{button-S2Cubiiz.js → button-ChBovTx0.js} +2 -2
  84. package/dist/{button-S2Cubiiz.js.map → button-ChBovTx0.js.map} +1 -1
  85. package/dist/{buttons-BedGfygC.js → buttons-DeW0bQeK.js} +6 -6
  86. package/dist/{buttons-BedGfygC.js.map → buttons-DeW0bQeK.js.map} +1 -1
  87. package/dist/{cards-rNX1M4Xn.js → cards-CNXnmvV5.js} +8 -8
  88. package/dist/{cards-rNX1M4Xn.js.map → cards-CNXnmvV5.js.map} +1 -1
  89. package/dist/{cascader-B1MiqkBq.js → cascader-CrAl9zD5.js} +15 -15
  90. package/dist/{cascader-B1MiqkBq.js.map → cascader-CrAl9zD5.js.map} +1 -1
  91. package/dist/{chart-Darg_0Kv.js → chart-I7ROnsl8.js} +5 -5
  92. package/dist/{chart-Darg_0Kv.js.map → chart-I7ROnsl8.js.map} +1 -1
  93. package/dist/{checkbox-fflqmODR.js → checkbox-MoyHIAPs.js} +3 -3
  94. package/dist/{checkbox-fflqmODR.js.map → checkbox-MoyHIAPs.js.map} +1 -1
  95. package/dist/{choice-inputs-zUgBZfE4.js → choice-inputs-DHGtx0QV.js} +122 -110
  96. package/dist/choice-inputs-DHGtx0QV.js.map +1 -0
  97. package/dist/{code-block-BzmM9Eig.js → code-block-BSJyq9e-.js} +7 -7
  98. package/dist/{code-block-BzmM9Eig.js.map → code-block-BSJyq9e-.js.map} +1 -1
  99. package/dist/{collapsible-BkAI_XD4.js → collapsible-BzJ91LUG.js} +3 -3
  100. package/dist/{collapsible-BkAI_XD4.js.map → collapsible-BzJ91LUG.js.map} +1 -1
  101. package/dist/{collection-content-gDh1v6O4.js → collection-content-CSnwtOTH.js} +3 -3
  102. package/dist/{collection-content-gDh1v6O4.js.map → collection-content-CSnwtOTH.js.map} +1 -1
  103. package/dist/{combobox-BEx0vJgF.js → combobox-Bcvu5J8O.js} +11 -10
  104. package/dist/{combobox-BEx0vJgF.js.map → combobox-Bcvu5J8O.js.map} +1 -1
  105. package/dist/combobox-C2JiSQPc.js +915 -0
  106. package/dist/combobox-C2JiSQPc.js.map +1 -0
  107. package/dist/{command-CrlPIL6m.js → command-9e52NPgK.js} +6 -6
  108. package/dist/{command-CrlPIL6m.js.map → command-9e52NPgK.js.map} +1 -1
  109. package/dist/{comments-Dmpp0YIc.js → comments-BsgErEqd.js} +33 -28
  110. package/dist/comments-BsgErEqd.js.map +1 -0
  111. package/dist/components/base/choice-inputs/choice-types.d.ts +4 -0
  112. package/dist/components/base/choice-inputs/pill-radio-group.d.ts +7 -6
  113. package/dist/components/base/combobox/combobox-field.d.ts +2 -2
  114. package/dist/components/base/date-pickers/date-picker-internals.d.ts +3 -1
  115. package/dist/components/base/date-pickers/datepicker.types.d.ts +10 -4
  116. package/dist/components/base/date-pickers/time-picker.d.ts +17 -3
  117. package/dist/components/base/feedback/state-display.d.ts +5 -1
  118. package/dist/components/base/feedback/state-display.strings.d.ts +9 -0
  119. package/dist/components/base/forms/form-field.d.ts +7 -2
  120. package/dist/components/base/forms-numeric/coordinates-input.d.ts +4 -1
  121. package/dist/components/base/forms-numeric/decimal-input.d.ts +2 -2
  122. package/dist/components/base/forms-numeric/dimensions-input.d.ts +4 -1
  123. package/dist/components/base/forms-numeric/numeric-composite-field.d.ts +12 -0
  124. package/dist/components/base/forms-numeric/weight-input.d.ts +6 -1
  125. package/dist/components/base/navigation/language-switcher.d.ts +12 -4
  126. package/dist/components/base/repeaters/key-value-editor.d.ts +2 -1
  127. package/dist/components/base/sidebar/sidebar.d.ts +2 -0
  128. package/dist/components/base/upload/avatar-upload.d.ts +2 -1
  129. package/dist/components/base/upload/image-upload.d.ts +2 -1
  130. package/dist/components/blocks/ai/ai-citation/types.d.ts +2 -0
  131. package/dist/components/blocks/ai/ai-reasoning/types.d.ts +2 -0
  132. package/dist/components/blocks/ai/ai-sources/types.d.ts +2 -0
  133. package/dist/components/blocks/ai/ai-tool-call/types.d.ts +2 -0
  134. package/dist/components/blocks/analytics/metric/metric.d.ts +4 -0
  135. package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +2 -0
  136. package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +4 -5
  137. package/dist/components/blocks/analytics/types.d.ts +2 -2
  138. package/dist/components/blocks/commerce/order-status/types.d.ts +4 -0
  139. package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +4 -3
  140. package/dist/components/features/activities/activities.types.d.ts +18 -11
  141. package/dist/components/features/activities/hooks/use-activity-resources.d.ts +2 -1
  142. package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +1 -1
  143. package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +1 -1
  144. package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +4 -2
  145. package/dist/components/features/combobox/async-resource-combobox.d.ts +2 -2
  146. package/dist/components/features/combobox/combobox.d.ts +2 -2
  147. package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +2 -1
  148. package/dist/components/features/combobox/hooks/use-combobox-state.d.ts +1 -0
  149. package/dist/components/features/combobox/hooks/use-load-more.d.ts +1 -0
  150. package/dist/components/features/combobox/types.d.ts +37 -8
  151. package/dist/components/features/email-composer/types.d.ts +3 -1
  152. package/dist/components/features/filters/facets/date-facet.d.ts +4 -2
  153. package/dist/components/features/filters/facets/range-facet.d.ts +12 -0
  154. package/dist/components/features/filters/filters.types.d.ts +3 -3
  155. package/dist/components/features/filters/partials/date-filter-content.d.ts +3 -2
  156. package/dist/components/features/filters/partials/filter-popover-content.d.ts +4 -2
  157. package/dist/components/features/filters/partials/range-filter-content.d.ts +12 -0
  158. package/dist/components/features/filters/utils/filter-utils.d.ts +5 -1
  159. package/dist/components/features/media-library/hooks/use-media-library.d.ts +1 -1
  160. package/dist/components/features/media-library/media-library.d.ts +1 -1
  161. package/dist/components/features/media-library/media-library.strings.d.ts +6 -0
  162. package/dist/components/features/media-library/media-library.types.d.ts +36 -8
  163. package/dist/components/features/media-library/partials/media-library-partials.d.ts +3 -3
  164. package/dist/components/features/mentions/hooks/use-mentions.d.ts +16 -1
  165. package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +5 -1
  166. package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +1 -7
  167. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +2 -2
  168. package/dist/components/features/products/products.types.d.ts +2 -2
  169. package/dist/components/features/questionnaire/questionnaire.types.d.ts +3 -0
  170. package/dist/components/features/resource/resource.d.ts +1 -1
  171. package/dist/components/features/resource/resource.types.d.ts +2 -0
  172. package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +1 -1
  173. package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +1 -1
  174. package/dist/components/features/rich-text-editor/partials/editor-field-aria.d.ts +14 -0
  175. package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +3 -1
  176. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +1 -1
  177. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +17 -3
  178. package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +5 -1
  179. package/dist/components/features/schema-form/partials/schema-form-field.d.ts +3 -1
  180. package/dist/components/features/schema-form/schema-form.utils.d.ts +1 -1
  181. package/dist/components/features/suggestions/suggestions.types.d.ts +1 -1
  182. package/dist/components/features/table/data-table.d.ts +1 -1
  183. package/dist/components/features/table/index.d.ts +1 -0
  184. package/dist/components/features/table/table-body.d.ts +1 -1
  185. package/dist/components/features/table/table-helpers.d.ts +6 -3
  186. package/dist/components/features/table/table.strings.d.ts +3 -0
  187. package/dist/components/features/table/table.types.d.ts +17 -1
  188. package/dist/components/layout/header/header.types.d.ts +3 -2
  189. package/dist/components/layout/layout.types.d.ts +5 -3
  190. package/dist/components/layout/navigation/side-nav.d.ts +3 -2
  191. package/dist/components/layout/normalize-layout-path.d.ts +1 -0
  192. package/dist/components/layout/settings/settings.d.ts +1 -1
  193. package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
  194. package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +3 -1
  195. package/dist/components/layout/sidebar/sidebar.context.d.ts +1 -0
  196. package/dist/components/layout/sidebar/sidebar.types.d.ts +2 -0
  197. package/dist/components/primitives/link.d.ts +3 -2
  198. package/dist/components/primitives/money.d.ts +1 -1
  199. package/dist/components/primitives/number.d.ts +1 -1
  200. package/dist/components/typography/rich-text/rich-text-tree.d.ts +7 -5
  201. package/dist/{containers-CIxwbZt5.js → containers-CSdc32h9.js} +2 -2
  202. package/dist/{containers-CIxwbZt5.js.map → containers-CSdc32h9.js.map} +1 -1
  203. package/dist/{copyable-DIznBqiT.js → copyable-3fdHfMR3.js} +4 -4
  204. package/dist/{copyable-DIznBqiT.js.map → copyable-3fdHfMR3.js.map} +1 -1
  205. package/dist/{data-display-BdgCAw8T.js → data-display-Cmj-xZYl.js} +16 -15
  206. package/dist/data-display-Cmj-xZYl.js.map +1 -0
  207. package/dist/{date-Cq8ioE4o.js → date-Br0FicVv.js} +4 -4
  208. package/dist/{date-Cq8ioE4o.js.map → date-Br0FicVv.js.map} +1 -1
  209. package/dist/date-picker-CyQlFYsP.js +1617 -0
  210. package/dist/date-picker-CyQlFYsP.js.map +1 -0
  211. package/dist/date-pickers-tj2MXmXd.js +185 -0
  212. package/dist/date-pickers-tj2MXmXd.js.map +1 -0
  213. package/dist/{display-KsZLw9Ov.js → display-CT_N2a3w.js} +7 -7
  214. package/dist/{display-KsZLw9Ov.js.map → display-CT_N2a3w.js.map} +1 -1
  215. package/dist/{dropdown-menu-CLs8Lihj.js → dropdown-menu-C08iIugv.js} +6 -6
  216. package/dist/{dropdown-menu-CLs8Lihj.js.map → dropdown-menu-C08iIugv.js.map} +1 -1
  217. package/dist/features/activities.js +283 -270
  218. package/dist/features/activities.js.map +1 -1
  219. package/dist/features/ai-chat.js +40 -27
  220. package/dist/features/ai-chat.js.map +1 -1
  221. package/dist/features/appointment-calendar.js +126 -126
  222. package/dist/features/appointment-calendar.js.map +1 -1
  223. package/dist/features/async-preview.js +9 -9
  224. package/dist/features/combobox.js +1 -1
  225. package/dist/features/comments.js +1 -1
  226. package/dist/features/data-view.js +10 -10
  227. package/dist/features/email-composer.js +24 -19
  228. package/dist/features/email-composer.js.map +1 -1
  229. package/dist/features/event-calendar.js +129 -125
  230. package/dist/features/event-calendar.js.map +1 -1
  231. package/dist/features/filters.js +2 -2
  232. package/dist/features/global-search.js +16 -20
  233. package/dist/features/global-search.js.map +1 -1
  234. package/dist/features/kanban.js +18 -28
  235. package/dist/features/kanban.js.map +1 -1
  236. package/dist/features/map/style.css +15 -0
  237. package/dist/features/map.js +331 -314
  238. package/dist/features/map.js.map +1 -1
  239. package/dist/features/media-library.js +1044 -866
  240. package/dist/features/media-library.js.map +1 -1
  241. package/dist/features/mentions.js +2 -2
  242. package/dist/features/overlays.js +1 -1
  243. package/dist/features/products.js +978 -964
  244. package/dist/features/products.js.map +1 -1
  245. package/dist/features/questionnaire.js +159 -152
  246. package/dist/features/questionnaire.js.map +1 -1
  247. package/dist/features/resource-assignment.js +8 -8
  248. package/dist/features/resource.js +74 -71
  249. package/dist/features/resource.js.map +1 -1
  250. package/dist/features/rich-text-editor.js +28 -19
  251. package/dist/features/rich-text-editor.js.map +1 -1
  252. package/dist/features/schema-form.js +297 -256
  253. package/dist/features/schema-form.js.map +1 -1
  254. package/dist/features/suggestions.js +57 -50
  255. package/dist/features/suggestions.js.map +1 -1
  256. package/dist/features/sync.js +3 -3
  257. package/dist/features/table.js +1 -1
  258. package/dist/features/theme-tweaker.js +400 -399
  259. package/dist/features/theme-tweaker.js.map +1 -1
  260. package/dist/feedback-Dzo1xtAU.js +246 -0
  261. package/dist/feedback-Dzo1xtAU.js.map +1 -0
  262. package/dist/{field-affordance-recipes-DWcNcOjh.js → field-affordance-recipes-D6H7tVJi.js} +2 -2
  263. package/dist/{field-affordance-recipes-DWcNcOjh.js.map → field-affordance-recipes-D6H7tVJi.js.map} +1 -1
  264. package/dist/field-control-attributes-B6i335wr.js +18 -0
  265. package/dist/field-control-attributes-B6i335wr.js.map +1 -0
  266. package/dist/{field-state-recipes-BVA2CWHo.js → field-state-recipes-7sza8QbC.js} +4 -2
  267. package/dist/{field-state-recipes-BVA2CWHo.js.map → field-state-recipes-7sza8QbC.js.map} +1 -1
  268. package/dist/{filters-DzgSJpMK.js → filters-Dl80yYtN.js} +763 -605
  269. package/dist/filters-Dl80yYtN.js.map +1 -0
  270. package/dist/form-field-CAPdwdnZ.js +74 -0
  271. package/dist/form-field-CAPdwdnZ.js.map +1 -0
  272. package/dist/{form-sizing-Bs2qFUeE.js → form-sizing-CgcrUbLU.js} +2 -2
  273. package/dist/{form-sizing-Bs2qFUeE.js.map → form-sizing-CgcrUbLU.js.map} +1 -1
  274. package/dist/{forms-C0RGnJTe.js → forms-B3W8CH7-.js} +8 -8
  275. package/dist/{forms-C0RGnJTe.js.map → forms-B3W8CH7-.js.map} +1 -1
  276. package/dist/forms-numeric-CwjQJe-O.js +991 -0
  277. package/dist/forms-numeric-CwjQJe-O.js.map +1 -0
  278. package/dist/{header-DMMxG__r.js → header-ZIIsRKxP.js} +113 -113
  279. package/dist/header-ZIIsRKxP.js.map +1 -0
  280. package/dist/hooks/use-files.d.ts +2 -0
  281. package/dist/{hooks-DB6CJ4MR.js → hooks-BitHSh-Y.js} +3 -3
  282. package/dist/{hooks-DB6CJ4MR.js.map → hooks-BitHSh-Y.js.map} +1 -1
  283. package/dist/{icon-badge-DZF-YjQp.js → icon-badge-npxF1SLX.js} +2 -2
  284. package/dist/{icon-badge-DZF-YjQp.js.map → icon-badge-npxF1SLX.js.map} +1 -1
  285. package/dist/index.js +1 -1
  286. package/dist/{input-CvyDQlY7.js → input-7KAc7XQL.js} +6 -6
  287. package/dist/{input-CvyDQlY7.js.map → input-7KAc7XQL.js.map} +1 -1
  288. package/dist/{input-DMBwAZmr.js → input-DIREVYHs.js} +3 -3
  289. package/dist/{input-DMBwAZmr.js.map → input-DIREVYHs.js.map} +1 -1
  290. package/dist/{interaction-recipes-XR9ZpVYL.js → interaction-recipes-4wZ2tvfb.js} +2 -2
  291. package/dist/{interaction-recipes-XR9ZpVYL.js.map → interaction-recipes-4wZ2tvfb.js.map} +1 -1
  292. package/dist/{item-DjCcM18E.js → item-FfWnaYST.js} +99 -98
  293. package/dist/item-FfWnaYST.js.map +1 -0
  294. package/dist/layout/app-shell.js +1 -1
  295. package/dist/layout/auth.js +1 -1
  296. package/dist/layout/containers.js +1 -1
  297. package/dist/layout/header.js +1 -1
  298. package/dist/layout/hooks.js +1 -1
  299. package/dist/layout/navigation.js +1 -1
  300. package/dist/layout/page.js +1 -1
  301. package/dist/layout/settings.js +1 -1
  302. package/dist/layout/sidebar.js +2 -2
  303. package/dist/layout/workspace.js +1 -1
  304. package/dist/layout.js +11 -11
  305. package/dist/layout.types-E_GAApzO.js +30 -0
  306. package/dist/layout.types-E_GAApzO.js.map +1 -0
  307. package/dist/lib/field-control-attributes.d.ts +11 -0
  308. package/dist/lib/field-state-recipes.d.ts +2 -0
  309. package/dist/lib/format.d.ts +1 -0
  310. package/dist/lib/surface-recipes.d.ts +1 -1
  311. package/dist/lib/token-merge.generated.d.ts +6 -6
  312. package/dist/lib/utils.js +1 -1
  313. package/dist/{media-gallery-C-vChPmE.js → media-gallery-C81DAnKI.js} +6 -6
  314. package/dist/{media-gallery-C-vChPmE.js.map → media-gallery-C81DAnKI.js.map} +1 -1
  315. package/dist/{mentions-0_4nWuI-.js → mentions-qOnedSt4.js} +236 -167
  316. package/dist/mentions-qOnedSt4.js.map +1 -0
  317. package/dist/message-BJHnn43M.js +135 -0
  318. package/dist/message-BJHnn43M.js.map +1 -0
  319. package/dist/{metadata-list-C3MkU-Om.js → metadata-list-XkqZ_UXH.js} +11 -11
  320. package/dist/{metadata-list-C3MkU-Om.js.map → metadata-list-XkqZ_UXH.js.map} +1 -1
  321. package/dist/{navigation-DaRjthVk.js → navigation-BgtPJAhi.js} +119 -119
  322. package/dist/navigation-BgtPJAhi.js.map +1 -0
  323. package/dist/{navigation-C90-oQFq.js → navigation-Bt-v7rWP.js} +52 -46
  324. package/dist/navigation-Bt-v7rWP.js.map +1 -0
  325. package/dist/normalize-layout-path-BmEgg6fu.js +14 -0
  326. package/dist/normalize-layout-path-BmEgg6fu.js.map +1 -0
  327. package/dist/{number-CRU3kGuk.js → number-CYqBcrSj.js} +78 -86
  328. package/dist/number-CYqBcrSj.js.map +1 -0
  329. package/dist/{overflow-tab-bar-IVFVQFV6.js → overflow-tab-bar-BQCA2Zn2.js} +7 -7
  330. package/dist/{overflow-tab-bar-IVFVQFV6.js.map → overflow-tab-bar-BQCA2Zn2.js.map} +1 -1
  331. package/dist/{overlays-BSgCtM2v.js → overlays-CC8zI3Du.js} +264 -260
  332. package/dist/overlays-CC8zI3Du.js.map +1 -0
  333. package/dist/{page-DUUKDAjo.js → page-BoQ1VaFJ.js} +13 -13
  334. package/dist/{page-DUUKDAjo.js.map → page-BoQ1VaFJ.js.map} +1 -1
  335. package/dist/{page-header-commands-7P3sfE9u.js → page-header-commands-DIKspJfx.js} +4 -4
  336. package/dist/{page-header-commands-7P3sfE9u.js.map → page-header-commands-DIKspJfx.js.map} +1 -1
  337. package/dist/{pagination-CgCjElfu.js → pagination-Br8TdV9A.js} +4 -4
  338. package/dist/{pagination-CgCjElfu.js.map → pagination-Br8TdV9A.js.map} +1 -1
  339. package/dist/{popover-B85RenIl.js → popover-k8TdUcAt.js} +10 -10
  340. package/dist/popover-k8TdUcAt.js.map +1 -0
  341. package/dist/{popover-menu-DlnQ2zlR.js → popover-menu-yn-o0kyA.js} +7 -7
  342. package/dist/{popover-menu-DlnQ2zlR.js.map → popover-menu-yn-o0kyA.js.map} +1 -1
  343. package/dist/{popover.recipes-DdiEp0rd.js → popover.recipes-DJ0AkUan.js} +2 -2
  344. package/dist/{popover.recipes-DdiEp0rd.js.map → popover.recipes-DJ0AkUan.js.map} +1 -1
  345. package/dist/{portal-recipes-BpsV_iRw.js → portal-recipes-DyUXqUtD.js} +2 -2
  346. package/dist/{portal-recipes-BpsV_iRw.js.map → portal-recipes-DyUXqUtD.js.map} +1 -1
  347. package/dist/{primitives-ByWgGUgt.js → primitives-BkkQjYl7.js} +22 -17
  348. package/dist/primitives-BkkQjYl7.js.map +1 -0
  349. package/dist/primitives.js +4 -4
  350. package/dist/{progress-BJhQP9WX.js → progress-DZFXXzPs.js} +4 -4
  351. package/dist/{progress-BJhQP9WX.js.map → progress-DZFXXzPs.js.map} +1 -1
  352. package/dist/{receipt-tOc7B3hw.js → receipt-C7LhOg7Q.js} +6 -6
  353. package/dist/{receipt-tOc7B3hw.js.map → receipt-C7LhOg7Q.js.map} +1 -1
  354. package/dist/rich-text-BnTzZjIo.js +45 -0
  355. package/dist/rich-text-BnTzZjIo.js.map +1 -0
  356. package/dist/rich-text-editor-CAurDwT5.js +1273 -0
  357. package/dist/rich-text-editor-CAurDwT5.js.map +1 -0
  358. package/dist/{rich-text-editor-toolbar-laT3tpBT.js → rich-text-editor-toolbar-DbXig7Jk.js} +36 -35
  359. package/dist/rich-text-editor-toolbar-DbXig7Jk.js.map +1 -0
  360. package/dist/rich-text-tree-BqyQ_7-R.js +66 -0
  361. package/dist/rich-text-tree-BqyQ_7-R.js.map +1 -0
  362. package/dist/{sanitize-html-DsQmI48u.js → sanitize-html-BWkH4dLM.js} +29 -16
  363. package/dist/sanitize-html-BWkH4dLM.js.map +1 -0
  364. package/dist/{scroll-area-B0dB2cBi.js → scroll-area-Bj6CRUif.js} +2 -2
  365. package/dist/{scroll-area-B0dB2cBi.js.map → scroll-area-Bj6CRUif.js.map} +1 -1
  366. package/dist/{separator-Bb17I4pu.js → separator-B9ewiCGO.js} +2 -2
  367. package/dist/{separator-Bb17I4pu.js.map → separator-B9ewiCGO.js.map} +1 -1
  368. package/dist/{separator-Ct_WSWTJ.js → separator-DM6gs2vu.js} +3 -3
  369. package/dist/{separator-Ct_WSWTJ.js.map → separator-DM6gs2vu.js.map} +1 -1
  370. package/dist/services/actions.js +1 -1
  371. package/dist/settings-DZPHgpx4.js +155 -0
  372. package/dist/settings-DZPHgpx4.js.map +1 -0
  373. package/dist/{sheet-BGPERY55.js → sheet-C4DHsgLk.js} +6 -6
  374. package/dist/{sheet-BGPERY55.js.map → sheet-C4DHsgLk.js.map} +1 -1
  375. package/dist/sidebar-C8BnDwTH.js +709 -0
  376. package/dist/sidebar-C8BnDwTH.js.map +1 -0
  377. package/dist/{sidebar-f9gRWXIR.js → sidebar-CmD6a-HK.js} +16 -13
  378. package/dist/sidebar-CmD6a-HK.js.map +1 -0
  379. package/dist/{skeleton-BapcJd9C.js → skeleton-DDgdhmu9.js} +5 -5
  380. package/dist/{skeleton-BapcJd9C.js.map → skeleton-DDgdhmu9.js.map} +1 -1
  381. package/dist/{smart-card-CW0hjetE.js → smart-card-B6vLxqa_.js} +8 -8
  382. package/dist/{smart-card-CW0hjetE.js.map → smart-card-B6vLxqa_.js.map} +1 -1
  383. package/dist/{structure-DuxKl954.js → structure-DZJ2wbAU.js} +2 -2
  384. package/dist/{structure-DuxKl954.js.map → structure-DZJ2wbAU.js.map} +1 -1
  385. package/dist/style.css +1 -1
  386. package/dist/{surface-recipes-BKRVW8Os.js → surface-recipes-C8mNycaY.js} +2 -2
  387. package/dist/{surface-recipes-BKRVW8Os.js.map → surface-recipes-C8mNycaY.js.map} +1 -1
  388. package/dist/{table-CFOWY9pQ.js → table-CBonSdTp.js} +534 -486
  389. package/dist/table-CBonSdTp.js.map +1 -0
  390. package/dist/{table-B4TE7iOV.js → table-CXSPHH25.js} +75 -71
  391. package/dist/table-CXSPHH25.js.map +1 -0
  392. package/dist/{tabs-e7ko9S2o.js → tabs-C4Kr_hCr.js} +50 -49
  393. package/dist/tabs-C4Kr_hCr.js.map +1 -0
  394. package/dist/{text-inputs-B1culiSK.js → text-inputs-jdkS3ReG.js} +9 -9
  395. package/dist/{text-inputs-B1culiSK.js.map → text-inputs-jdkS3ReG.js.map} +1 -1
  396. package/dist/{timelines-D3Sl9ueq.js → timelines-CoPwdJP0.js} +10 -10
  397. package/dist/{timelines-D3Sl9ueq.js.map → timelines-CoPwdJP0.js.map} +1 -1
  398. package/dist/{tooltip-8wz5S_Zr.js → tooltip-31NwIpTo.js} +4 -4
  399. package/dist/{tooltip-8wz5S_Zr.js.map → tooltip-31NwIpTo.js.map} +1 -1
  400. package/dist/{tree-CzUJHnFs.js → tree-CeYVzdFE.js} +6 -6
  401. package/dist/{tree-CzUJHnFs.js.map → tree-CeYVzdFE.js.map} +1 -1
  402. package/dist/typography/rich-text.js +1 -1
  403. package/dist/{typography-BQnine1k.js → typography-C7-YMW1S.js} +2 -2
  404. package/dist/{typography-BQnine1k.js.map → typography-C7-YMW1S.js.map} +1 -1
  405. package/dist/typography.js +1 -1
  406. package/dist/{upload-BOW6U2tI.js → upload-Hdm5gObf.js} +303 -291
  407. package/dist/upload-Hdm5gObf.js.map +1 -0
  408. package/dist/{upload-queue-qUXn1ykN.js → upload-queue-D0sYPuqo.js} +8 -8
  409. package/dist/{upload-queue-qUXn1ykN.js.map → upload-queue-D0sYPuqo.js.map} +1 -1
  410. package/dist/{usage-card-BeSLY0i0.js → usage-card-9s8hLDfn.js} +9 -9
  411. package/dist/{usage-card-BeSLY0i0.js.map → usage-card-9s8hLDfn.js.map} +1 -1
  412. package/dist/{utils-B6kKb8jB.js → utils-DhuoqFy4.js} +31 -37
  413. package/dist/utils-DhuoqFy4.js.map +1 -0
  414. package/dist/{value-inputs-skdVB2zh.js → value-inputs-D3aPgq9H.js} +15 -15
  415. package/dist/{value-inputs-skdVB2zh.js.map → value-inputs-D3aPgq9H.js.map} +1 -1
  416. package/dist/{value-typography-uAmWUAL1.js → value-typography-uSzzG9Gf.js} +32 -26
  417. package/dist/value-typography-uSzzG9Gf.js.map +1 -0
  418. package/dist/{workspace-DHeHv0qw.js → workspace-CC8Vchiu.js} +12 -12
  419. package/dist/{workspace-DHeHv0qw.js.map → workspace-CC8Vchiu.js.map} +1 -1
  420. package/docs/consumer-skill/examples/edit.tsx +3 -3
  421. package/docs/consumer-skill/references/agents-md.md +19 -19
  422. package/docs/consumer-skill/references/analytics.md +15 -0
  423. package/docs/consumer-skill/references/component-contracts.json +14724 -13057
  424. package/docs/consumer-skill/references/composition.md +21 -4
  425. package/docs/consumer-skill/references/design-contract.md +1 -0
  426. package/docs/consumer-skill/references/installation.md +51 -8
  427. package/docs/consumer-skill/references/integration.md +24 -1
  428. package/docs/consumer-skill/references/public-api.json +172 -34
  429. package/docs/consumer-skill/references/review.md +51 -11
  430. package/docs/consumer-skill/references/rhf-workflows.md +72 -0
  431. package/docs/consumer-skill/references/theming.md +7 -2
  432. package/docs/consumer-skill/references/tokens.json +1 -1
  433. package/docs/consumer-skill/scripts/composition-policy.mjs +144 -30
  434. package/docs/consumer-skill/scripts/setup-skills.mjs +46 -9
  435. package/package.json +4 -2
  436. package/templates/admin-shell-template.tsx +1 -2
  437. package/templates/customers-template.tsx +18 -16
  438. package/dist/accordion-B9MHG0cT.js.map +0 -1
  439. package/dist/ai-artifact-C58tQcBy.js.map +0 -1
  440. package/dist/auth-DTkkshS8.js.map +0 -1
  441. package/dist/breadcrumbs-J-K2kl4c.js.map +0 -1
  442. package/dist/choice-inputs-zUgBZfE4.js.map +0 -1
  443. package/dist/combobox-BwzoXFSG.js +0 -884
  444. package/dist/combobox-BwzoXFSG.js.map +0 -1
  445. package/dist/comments-Dmpp0YIc.js.map +0 -1
  446. package/dist/data-display-BdgCAw8T.js.map +0 -1
  447. package/dist/date-picker-RlIzKom_.js +0 -1551
  448. package/dist/date-picker-RlIzKom_.js.map +0 -1
  449. package/dist/date-pickers-DY-CpXS1.js +0 -179
  450. package/dist/date-pickers-DY-CpXS1.js.map +0 -1
  451. package/dist/feedback-Dm4izqFn.js +0 -240
  452. package/dist/feedback-Dm4izqFn.js.map +0 -1
  453. package/dist/filters-DzgSJpMK.js.map +0 -1
  454. package/dist/form-field-BriWAXyg.js +0 -63
  455. package/dist/form-field-BriWAXyg.js.map +0 -1
  456. package/dist/forms-numeric-DIhghX1Q.js +0 -910
  457. package/dist/forms-numeric-DIhghX1Q.js.map +0 -1
  458. package/dist/header-DMMxG__r.js.map +0 -1
  459. package/dist/item-DjCcM18E.js.map +0 -1
  460. package/dist/layout.types-Cn7aUzJp.js +0 -20
  461. package/dist/layout.types-Cn7aUzJp.js.map +0 -1
  462. package/dist/mentions-0_4nWuI-.js.map +0 -1
  463. package/dist/message-g8p7eVtN.js +0 -128
  464. package/dist/message-g8p7eVtN.js.map +0 -1
  465. package/dist/navigation-C90-oQFq.js.map +0 -1
  466. package/dist/navigation-DaRjthVk.js.map +0 -1
  467. package/dist/number-CRU3kGuk.js.map +0 -1
  468. package/dist/overlays-BSgCtM2v.js.map +0 -1
  469. package/dist/popover-B85RenIl.js.map +0 -1
  470. package/dist/primitives-ByWgGUgt.js.map +0 -1
  471. package/dist/rich-text-Dth5E882.js +0 -78
  472. package/dist/rich-text-Dth5E882.js.map +0 -1
  473. package/dist/rich-text-editor-C1fOjBTd.js +0 -1195
  474. package/dist/rich-text-editor-C1fOjBTd.js.map +0 -1
  475. package/dist/rich-text-editor-toolbar-laT3tpBT.js.map +0 -1
  476. package/dist/safe-image-src-C6kQSMBZ.js +0 -17
  477. package/dist/safe-image-src-C6kQSMBZ.js.map +0 -1
  478. package/dist/sanitize-html-DsQmI48u.js.map +0 -1
  479. package/dist/settings-Bar5wiSo.js +0 -167
  480. package/dist/settings-Bar5wiSo.js.map +0 -1
  481. package/dist/sidebar-D-JYMMbY.js +0 -686
  482. package/dist/sidebar-D-JYMMbY.js.map +0 -1
  483. package/dist/sidebar-f9gRWXIR.js.map +0 -1
  484. package/dist/table-B4TE7iOV.js.map +0 -1
  485. package/dist/table-CFOWY9pQ.js.map +0 -1
  486. package/dist/tabs-e7ko9S2o.js.map +0 -1
  487. package/dist/upload-BOW6U2tI.js.map +0 -1
  488. package/dist/utils-B6kKb8jB.js.map +0 -1
  489. package/dist/value-typography-uAmWUAL1.js.map +0 -1
@@ -1,67 +1,68 @@
1
1
  "use client";
2
- import { t as e } from "./utils-B6kKb8jB.js";
3
- import { c as t, o as n } from "./typography-BQnine1k.js";
4
- import { t as r } from "./focus-recipes-B653VaLq.js";
5
- import { t as i } from "./row-recipes-DL8n7t_b.js";
6
- import * as a from "react";
7
- import { jsx as o } from "react/jsx-runtime";
2
+ import { t as e } from "./utils-DhuoqFy4.js";
3
+ import { c as t, o as n } from "./typography-C7-YMW1S.js";
4
+ import { i as r } from "./text.styles-B64My8RZ.js";
5
+ import { t as i } from "./focus-recipes-B653VaLq.js";
6
+ import { t as a } from "./row-recipes-DL8n7t_b.js";
7
+ import * as o from "react";
8
+ import { jsx as s } from "react/jsx-runtime";
8
9
  //#region src/components/ui/table.tsx
9
- function s({ className: t, containerClassName: n, containerProps: r, ...i }) {
10
- return /* @__PURE__ */ o("div", {
10
+ function c({ className: t, containerClassName: n, containerProps: r, ...i }) {
11
+ return /* @__PURE__ */ s("div", {
11
12
  ...r,
12
13
  "data-slot": "table-container",
13
14
  className: e("relative w-full overflow-x-auto", n, r?.className),
14
- children: /* @__PURE__ */ o("table", {
15
+ children: /* @__PURE__ */ s("table", {
15
16
  "data-slot": "table",
16
17
  className: e("w-full caption-bottom border-collapse text-sm", t),
17
18
  ...i
18
19
  })
19
20
  });
20
21
  }
21
- function c({ className: t, ...n }) {
22
- return /* @__PURE__ */ o("thead", {
22
+ function l({ className: t, ...n }) {
23
+ return /* @__PURE__ */ s("thead", {
23
24
  "data-slot": "table-header",
24
25
  className: e("border-border [&_tr]:border-b [&_tr]:border-border", t),
25
26
  ...n
26
27
  });
27
28
  }
28
- function l({ className: t, ...n }) {
29
- return /* @__PURE__ */ o("tbody", {
29
+ function u({ className: t, ...n }) {
30
+ return /* @__PURE__ */ s("tbody", {
30
31
  "data-slot": "table-body",
31
32
  className: e("[&_tr:last-child]:border-0", t),
32
33
  ...n
33
34
  });
34
35
  }
35
- function u({ className: t, ...n }) {
36
- return /* @__PURE__ */ o("tfoot", {
36
+ function d({ className: t, ...n }) {
37
+ return /* @__PURE__ */ s("tfoot", {
37
38
  "data-slot": "table-footer",
38
39
  className: e("border-border bg-muted/50 border-t font-medium [&>tr]:last:border-b-0", t),
39
40
  ...n
40
41
  });
41
42
  }
42
- function d({ className: t, ...n }) {
43
- return /* @__PURE__ */ o("tr", {
43
+ function f({ className: t, ...n }) {
44
+ return /* @__PURE__ */ s("tr", {
44
45
  "data-slot": "table-row",
45
46
  className: e("border-border hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors", t),
46
47
  ...n
47
48
  });
48
49
  }
49
- function f({ className: t, ...n }) {
50
- return /* @__PURE__ */ o("th", {
50
+ function p({ className: t, ...n }) {
51
+ return /* @__PURE__ */ s("th", {
51
52
  "data-slot": "table-head",
52
- className: e("text-foreground h-10 px-2 text-start align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pe-0", t),
53
+ className: e("text-foreground h-10 text-start align-middle font-medium whitespace-nowrap", t),
53
54
  ...n
54
55
  });
55
56
  }
56
- function p({ className: t, ...n }) {
57
- return /* @__PURE__ */ o("td", {
57
+ function m({ className: t, ...n }) {
58
+ return /* @__PURE__ */ s("td", {
58
59
  "data-slot": "table-cell",
59
- className: e("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pe-0", t),
60
+ className: e("align-middle whitespace-nowrap", t),
60
61
  ...n
61
62
  });
62
63
  }
63
- function m({ className: t, ...n }) {
64
- return /* @__PURE__ */ o("caption", {
64
+ function h({ className: t, ...n }) {
65
+ return /* @__PURE__ */ s("caption", {
65
66
  "data-slot": "table-caption",
66
67
  className: e("text-muted-foreground mt-space-xl text-sm", t),
67
68
  ...n
@@ -69,18 +70,18 @@ function m({ className: t, ...n }) {
69
70
  }
70
71
  //#endregion
71
72
  //#region src/components/base/table/index.tsx
72
- var h = a.createContext("default"), g = {
73
- compact: i.default,
74
- default: i.comfortable,
75
- comfortable: i.comfortable
73
+ var g = o.createContext("default"), _ = {
74
+ compact: a.default,
75
+ default: a.comfortable,
76
+ comfortable: a.comfortable
76
77
  };
77
- function _(e) {
78
+ function v(e) {
78
79
  return typeof e == "string" || typeof e == "number" || typeof e == "bigint";
79
80
  }
80
- function v() {
81
- let [e, t] = a.useState(!0), n = a.useRef(null);
81
+ function y() {
82
+ let [e, t] = o.useState(!0), n = o.useRef(null);
82
83
  return {
83
- ref: a.useCallback((e) => {
84
+ ref: o.useCallback((e) => {
84
85
  if (n.current?.disconnect(), n.current = null, !e || typeof ResizeObserver > "u") return;
85
86
  let r = () => t(e.scrollWidth > e.clientWidth + 1), i = new ResizeObserver(r);
86
87
  i.observe(e), e.firstElementChild && i.observe(e.firstElementChild), n.current = i, r();
@@ -88,67 +89,70 @@ function v() {
88
89
  overflowing: e
89
90
  };
90
91
  }
91
- function y({ className: t, containerClassName: n, containerProps: i, density: c = "default", ...l }) {
92
- let { ref: u, overflowing: d } = v(), f = i?.ref, p = a.useCallback((e) => {
93
- u(e), typeof f == "function" ? f(e) : f && (f.current = e);
94
- }, [u, f]);
95
- return /* @__PURE__ */ o(h.Provider, {
96
- value: c,
97
- children: /* @__PURE__ */ o(s, {
92
+ function b({ className: t, containerClassName: n, containerProps: a, density: l = "default", ...u }) {
93
+ let { ref: d, overflowing: f } = y(), p = a?.ref, m = o.useCallback((e) => {
94
+ d(e), typeof p == "function" ? p(e) : p && (p.current = e);
95
+ }, [d, p]);
96
+ return /* @__PURE__ */ s(g.Provider, {
97
+ value: l,
98
+ children: /* @__PURE__ */ s(c, {
98
99
  containerProps: {
99
- tabIndex: d ? 0 : void 0,
100
- ...i,
101
- ref: p
100
+ tabIndex: f ? 0 : void 0,
101
+ ...a,
102
+ ref: m
102
103
  },
103
- containerClassName: e(`table--container relative w-full overflow-x-auto focus-visible:outline-none ${r.edge}`, n),
104
- "data-density": c,
105
- className: e("table--component font-sans text-sm", t),
106
- ...l
104
+ containerClassName: e(`table--container relative w-full overflow-x-auto focus-visible:outline-none ${i.edge}`, n),
105
+ "data-table-density": l,
106
+ className: e("table--component", r({
107
+ size: "sm",
108
+ type: "inherit"
109
+ }), t),
110
+ ...u
107
111
  })
108
112
  });
109
113
  }
110
- function b({ className: t, ...n }) {
111
- return /* @__PURE__ */ o(c, {
114
+ function x({ className: t, ...n }) {
115
+ return /* @__PURE__ */ s(l, {
112
116
  className: e("table--header [&_tr]:border-border [&_tr]:hover:bg-transparent", t),
113
117
  ...n
114
118
  });
115
119
  }
116
- function x({ className: t, ...n }) {
117
- return /* @__PURE__ */ o(l, {
120
+ function S({ className: t, ...n }) {
121
+ return /* @__PURE__ */ s(u, {
118
122
  className: e("table--body", t),
119
123
  ...n
120
124
  });
121
125
  }
122
- function S({ className: t, ...n }) {
123
- return /* @__PURE__ */ o(u, {
126
+ function C({ className: t, ...n }) {
127
+ return /* @__PURE__ */ s(d, {
124
128
  className: e("table--footer border-border", t),
125
129
  ...n
126
130
  });
127
131
  }
128
- function C({ className: t, ...n }) {
129
- return /* @__PURE__ */ o(d, {
132
+ function w({ className: t, ...n }) {
133
+ return /* @__PURE__ */ s(f, {
130
134
  className: e("table--row border-border", t),
131
135
  ...n
132
136
  });
133
137
  }
134
- function w({ className: t, children: r, ...i }) {
135
- let s = a.useContext(h);
136
- return /* @__PURE__ */ o(f, {
137
- className: e("table--head h-auto px-row-x text-sm", g[s], t),
138
+ function T({ className: t, children: r, ...i }) {
139
+ let a = o.useContext(g);
140
+ return /* @__PURE__ */ s(p, {
141
+ className: e("table--head box-border h-auto text-sm", _[a], t),
138
142
  ...i,
139
- children: _(r) ? /* @__PURE__ */ o(n, {
143
+ children: v(r) ? /* @__PURE__ */ s(n, {
140
144
  tag: "span",
141
145
  className: "table--head-text",
142
146
  children: r
143
147
  }) : r
144
148
  });
145
149
  }
146
- function T({ className: n, children: r, ...s }) {
147
- let c = a.useContext(h);
148
- return /* @__PURE__ */ o(p, {
149
- className: e("table--cell px-row-x text-sm", i[c], n),
150
- ...s,
151
- children: _(r) ? /* @__PURE__ */ o(t, {
150
+ function E({ className: n, children: r, ...i }) {
151
+ let c = o.useContext(g);
152
+ return /* @__PURE__ */ s(m, {
153
+ className: e("table--cell box-border text-sm", a[c], n),
154
+ ...i,
155
+ children: v(r) ? /* @__PURE__ */ s(t, {
152
156
  tag: "span",
153
157
  size: "inherit",
154
158
  className: "table--cell-text text-inherit",
@@ -156,11 +160,11 @@ function T({ className: n, children: r, ...s }) {
156
160
  }) : r
157
161
  });
158
162
  }
159
- function E({ className: n, children: r, ...i }) {
160
- return /* @__PURE__ */ o(m, {
163
+ function D({ className: n, children: r, ...i }) {
164
+ return /* @__PURE__ */ s(h, {
161
165
  className: e("table--caption", n),
162
166
  ...i,
163
- children: _(r) ? /* @__PURE__ */ o(t, {
167
+ children: v(r) ? /* @__PURE__ */ s(t, {
164
168
  tag: "span",
165
169
  size: "inherit",
166
170
  type: "secondary",
@@ -170,6 +174,6 @@ function E({ className: n, children: r, ...i }) {
170
174
  });
171
175
  }
172
176
  //#endregion
173
- export { S as a, C as c, T as i, x as n, w as o, E as r, b as s, y as t };
177
+ export { C as a, w as c, E as i, S as n, T as o, D as r, x as s, b as t };
174
178
 
175
- //# sourceMappingURL=table-B4TE7iOV.js.map
179
+ //# sourceMappingURL=table-CXSPHH25.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-CXSPHH25.js","names":["Table","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption","React","UITable","UITableHeader","UITableBody","UITableFooter","UITableRow","UITableHead","UITableCell","UITableCaption","cn","Text","DisplayLabel","resolveTextClassNames","focusRecipes","rowBlockPaddingClasses","React$1","Table$1","props","containerProps","containerClassName","className","TableHeader$1","TableBody$1","TableFooter$1","TableRow$1","TableHead$1","TableCell$1","TableCaption$1","TableDensityContext","headBlockPaddingClasses","isSimpleText","value","useHorizontalOverflow","overflowing","setOverflowing","observerRef","node","measure","observer","Table","overflowRef","consumerRef","containerRef","density","TableHeader","TableBody","TableFooter","TableRow","TableHead","children","TableCell","TableCaption"],"sources":["../src/components/ui/table.tsx","../src/components/base/table/index.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\ntype TableProps = React.ComponentProps<\"table\"> & {\n containerClassName?: string\n containerProps?: React.ComponentProps<\"div\">\n}\n\nfunction Table({ className, containerClassName, containerProps, ...props }: TableProps) {\n return (\n <div\n {...containerProps}\n data-slot=\"table-container\"\n className={cn(\"relative w-full overflow-x-auto\", containerClassName, containerProps?.className)}\n >\n <table\n data-slot=\"table\"\n // The package ships no preflight: collapsed borders are what make the\n // row rules visible and remove the native cell spacing in any host.\n className={cn(\"w-full caption-bottom border-collapse text-sm\", className)}\n {...props}\n />\n </div>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"border-border [&_tr]:border-b [&_tr]:border-border\", className)}\n {...props}\n />\n )\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\"border-border bg-muted/50 border-t font-medium [&>tr]:last:border-b-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\"border-border hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors\", className)}\n {...props}\n />\n )\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\"text-foreground h-10 text-start align-middle font-medium whitespace-nowrap\", className)}\n {...props}\n />\n )\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\"align-middle whitespace-nowrap\", className)}\n {...props}\n />\n )\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"text-muted-foreground mt-space-xl text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","import * as React from 'react';\n\nimport {\n\tTable as UITable,\n\tTableBody as UITableBody,\n\tTableCaption as UITableCaption,\n\tTableCell as UITableCell,\n\tTableFooter as UITableFooter,\n\tTableHead as UITableHead,\n\tTableHeader as UITableHeader,\n\tTableRow as UITableRow,\n} from '../../ui/table';\nimport { DisplayLabel, Text } from '../../typography';\nimport { resolveTextClassNames } from '../../typography/text.styles';\nimport { cn } from '../../../lib/utils';\nimport { focusRecipes } from '../../../lib/focus-recipes';\nimport { rowBlockPaddingClasses, type RowDensity } from '../../../lib/row-recipes';\n\nexport type TableProps = React.ComponentProps<typeof UITable> & {\n\t/**\n\t * Vertical row rhythm for every header and body cell. Header cells sit one\n\t * row step above their body rows. Defaults to `default`.\n\t */\n\tdensity?: RowDensity;\n};\nexport type TableHeaderProps = React.ComponentProps<typeof UITableHeader>;\nexport type TableBodyProps = React.ComponentProps<typeof UITableBody>;\nexport type TableFooterProps = React.ComponentProps<typeof UITableFooter>;\nexport type TableRowProps = React.ComponentProps<typeof UITableRow>;\nexport type TableHeadProps = React.ComponentProps<typeof UITableHead>;\nexport type TableCellProps = React.ComponentProps<typeof UITableCell>;\nexport type TableCaptionProps = React.ComponentProps<typeof UITableCaption>;\n\n/**\n * The table owns cell geometry once: `Table` publishes its density and every\n * head and cell takes its block padding from the shared row recipe, so a\n * feature passes a density instead of re-styling descendant cells.\n * The colocated CSS owns inline row/outer-surface insets in the component layer.\n */\nconst TableDensityContext = React.createContext<RowDensity>('default');\n\n/** A header row labels its columns one row step above the body; comfortable is the top step. */\nconst headBlockPaddingClasses: Record<RowDensity, string> = {\n\tcompact: rowBlockPaddingClasses.default,\n\tdefault: rowBlockPaddingClasses.comfortable,\n\tcomfortable: rowBlockPaddingClasses.comfortable,\n};\n\nfunction isSimpleText(value: React.ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\n/**\n * The scroll container joins the Tab order only while the table actually\n * overflows, so keyboard users can scroll a wide table without every table\n * on a page adding an empty tab stop. An explicit `containerProps.tabIndex` wins.\n */\nfunction useHorizontalOverflow() {\n\tconst [overflowing, setOverflowing] = React.useState(true);\n\tconst observerRef = React.useRef<ResizeObserver | null>(null);\n\tconst ref = React.useCallback((node: HTMLDivElement | null) => {\n\t\tobserverRef.current?.disconnect();\n\t\tobserverRef.current = null;\n\t\tif (!node || typeof ResizeObserver === 'undefined') return;\n\t\tconst measure = () => setOverflowing(node.scrollWidth > node.clientWidth + 1);\n\t\tconst observer = new ResizeObserver(measure);\n\t\tobserver.observe(node);\n\t\tif (node.firstElementChild) observer.observe(node.firstElementChild);\n\t\tobserverRef.current = observer;\n\t\tmeasure();\n\t}, []);\n\treturn { ref, overflowing };\n}\n\nexport function Table({ className, containerClassName, containerProps, density = 'default', ...props }: TableProps) {\n\tconst { ref: overflowRef, overflowing } = useHorizontalOverflow();\n\tconst consumerRef = containerProps?.ref;\n\tconst containerRef = React.useCallback((node: HTMLDivElement | null) => {\n\t\toverflowRef(node);\n\t\tif (typeof consumerRef === 'function') consumerRef(node);\n\t\telse if (consumerRef) (consumerRef as React.RefObject<HTMLDivElement | null>).current = node;\n\t}, [overflowRef, consumerRef]);\n\treturn (\n\t\t<TableDensityContext.Provider value={density}>\n\t\t\t<UITable\n\t\t\t\tcontainerProps={{ tabIndex: overflowing ? 0 : undefined, ...containerProps, ref: containerRef }}\n\t\t\t\tcontainerClassName={cn(\n\t\t\t\t\t`table--container relative w-full overflow-x-auto focus-visible:outline-none ${focusRecipes.edge}`,\n\t\t\t\t\tcontainerClassName,\n\t\t\t\t)}\n\t\t\t\tdata-table-density={density}\n\t\t\t\tclassName={cn('table--component', resolveTextClassNames({ size: 'sm', type: 'inherit' }), className)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</TableDensityContext.Provider>\n\t);\n}\n\nexport function TableHeader({ className, ...props }: TableHeaderProps) {\n\treturn (\n\t\t<UITableHeader\n\t\t\t// Header rows label columns; they do not take the body's hover tint.\n\t\t\tclassName={cn('table--header [&_tr]:border-border [&_tr]:hover:bg-transparent', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function TableBody({ className, ...props }: TableBodyProps) {\n\treturn (\n\t\t<UITableBody\n\t\t\tclassName={cn('table--body', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function TableFooter({ className, ...props }: TableFooterProps) {\n\treturn (\n\t\t<UITableFooter\n\t\t\tclassName={cn('table--footer border-border', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function TableRow({ className, ...props }: TableRowProps) {\n\treturn (\n\t\t<UITableRow\n\t\t\tclassName={cn('table--row border-border', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function TableHead({ className, children, ...props }: TableHeadProps) {\n\tconst density = React.useContext(TableDensityContext);\n\treturn (\n\t\t<UITableHead\n\t\t\t// Height comes from the row rhythm plus the label's line, never a fixed box.\n\t\t\tclassName={cn('table--head box-border h-auto text-sm', headBlockPaddingClasses[density], className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<DisplayLabel tag=\"span\" className=\"table--head-text\">\n\t\t\t\t\t{children}\n\t\t\t\t</DisplayLabel>\n\t\t\t) : children}\n\t\t</UITableHead>\n\t);\n}\n\nexport function TableCell({ className, children, ...props }: TableCellProps) {\n\tconst density = React.useContext(TableDensityContext);\n\treturn (\n\t\t<UITableCell\n\t\t\tclassName={cn('table--cell box-border text-sm', rowBlockPaddingClasses[density], className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<Text tag=\"span\" size=\"inherit\" className=\"table--cell-text text-inherit\">\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : children}\n\t\t</UITableCell>\n\t);\n}\n\nexport function TableCaption({ className, children, ...props }: TableCaptionProps) {\n\treturn (\n\t\t<UITableCaption\n\t\t\tclassName={cn('table--caption', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<Text tag=\"span\" size=\"inherit\" type=\"secondary\" className=\"table--caption-text\">\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : children}\n\t\t</UITableCaption>\n\t);\n}\n"],"mappings":"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"}
@@ -1,30 +1,31 @@
1
1
  "use client";
2
2
  import { d as e } from "./ui-provider-C-74NVLc.js";
3
3
  import { useStrings as t } from "./lib/strings.js";
4
- import { t as n } from "./utils-B6kKb8jB.js";
5
- import { n as r } from "./buttons-BedGfygC.js";
6
- import { c as i } from "./typography-BQnine1k.js";
4
+ import { t as n } from "./utils-DhuoqFy4.js";
5
+ import { n as r } from "./buttons-DeW0bQeK.js";
6
+ import { c as i } from "./typography-C7-YMW1S.js";
7
7
  import { t as a } from "./focus-recipes-B653VaLq.js";
8
- import { t as o } from "./structure-DuxKl954.js";
9
- import { t as s } from "./scroll-area-B0dB2cBi.js";
10
- import { useLayoutEffect as c, useRef as l, useState as u } from "react";
11
- import { jsx as d, jsxs as f } from "react/jsx-runtime";
12
- import { ChevronLeft as p, ChevronRight as m } from "lucide-react";
13
- import { cva as h } from "class-variance-authority";
14
- import { Tabs as g } from "@base-ui/react/tabs";
8
+ import { t as o } from "./structure-DZJ2wbAU.js";
9
+ import { t as s } from "./interaction-recipes-4wZ2tvfb.js";
10
+ import { t as c } from "./scroll-area-Bj6CRUif.js";
11
+ import { useLayoutEffect as l, useRef as u, useState as d } from "react";
12
+ import { jsx as f, jsxs as p } from "react/jsx-runtime";
13
+ import { ChevronLeft as m, ChevronRight as h } from "lucide-react";
14
+ import { cva as g } from "class-variance-authority";
15
+ import { Tabs as _ } from "@base-ui/react/tabs";
15
16
  //#region src/components/base/navigation/tab-scroll-viewport.tsx
16
- var _ = {
17
+ var v = {
17
18
  previous: "Previous tabs",
18
19
  next: "Next tabs"
19
20
  };
20
- function v({ children: e, strings: n }) {
21
- let i = t(_, n), a = l(null), h = l(null), [g, v] = u({
21
+ function y({ children: e, strings: n }) {
22
+ let i = t(v, n), a = u(null), s = u(null), [g, _] = d({
22
23
  overflow: !1,
23
24
  start: !0,
24
25
  end: !0
25
26
  });
26
- c(() => {
27
- let e = h.current;
27
+ l(() => {
28
+ let e = s.current;
28
29
  if (!e) return;
29
30
  let t = () => {
30
31
  let t = e.scrollWidth - e.clientWidth, n = Math.abs(e.scrollLeft), r = a.current?.clientWidth || e.clientWidth, i = getComputedStyle(e), o = (parseFloat(i.paddingLeft) || 0) + (parseFloat(i.paddingRight) || 0), s = {
@@ -32,7 +33,7 @@ function v({ children: e, strings: n }) {
32
33
  start: n <= 1,
33
34
  end: n >= t - 1
34
35
  };
35
- v((e) => e.overflow === s.overflow && e.start === s.start && e.end === s.end ? e : s);
36
+ _((e) => e.overflow === s.overflow && e.start === s.start && e.end === s.end ? e : s);
36
37
  }, n = () => {
37
38
  let n = e.querySelector("[aria-selected=\"true\"], [aria-current=\"page\"]");
38
39
  if (n) {
@@ -54,7 +55,7 @@ function v({ children: e, strings: n }) {
54
55
  };
55
56
  }, []);
56
57
  let y = (e) => {
57
- let t = h.current;
58
+ let t = s.current;
58
59
  if (!t) return;
59
60
  let n = getComputedStyle(t).direction === "rtl", r = window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;
60
61
  t.scrollBy({
@@ -62,7 +63,7 @@ function v({ children: e, strings: n }) {
62
63
  behavior: r ? "instant" : "smooth"
63
64
  });
64
65
  };
65
- return /* @__PURE__ */ f(o, {
66
+ return /* @__PURE__ */ p(o, {
66
67
  ref: a,
67
68
  direction: "horizontal",
68
69
  gap: "xs",
@@ -70,10 +71,10 @@ function v({ children: e, strings: n }) {
70
71
  wrap: !1,
71
72
  className: "tab-scroll--component w-full min-w-0",
72
73
  children: [
73
- g.overflow && /* @__PURE__ */ d(r, {
74
+ g.overflow && /* @__PURE__ */ f(r, {
74
75
  size: "sm",
75
76
  iconOnly: !0,
76
- icon: p,
77
+ icon: m,
77
78
  tone: "secondary",
78
79
  buttonStyle: "ghost",
79
80
  "aria-label": i.previous,
@@ -81,18 +82,18 @@ function v({ children: e, strings: n }) {
81
82
  onClick: () => y(-1),
82
83
  className: "shrink-0 rtl:[&_svg]:rotate-180"
83
84
  }),
84
- /* @__PURE__ */ d(s, {
85
+ /* @__PURE__ */ f(c, {
85
86
  orientation: "horizontal",
86
- viewportRef: h,
87
+ viewportRef: s,
87
88
  className: "-m-space-xs min-w-0 flex-1",
88
89
  viewportClassName: "p-space-xs",
89
90
  scrollbarClassName: "hidden",
90
91
  children: e
91
92
  }),
92
- g.overflow && /* @__PURE__ */ d(r, {
93
+ g.overflow && /* @__PURE__ */ f(r, {
93
94
  size: "sm",
94
95
  iconOnly: !0,
95
- icon: m,
96
+ icon: h,
96
97
  tone: "secondary",
97
98
  buttonStyle: "ghost",
98
99
  "aria-label": i.next,
@@ -105,15 +106,15 @@ function v({ children: e, strings: n }) {
105
106
  }
106
107
  //#endregion
107
108
  //#region src/components/ui/tabs.tsx
108
- function y({ className: e, orientation: t = "horizontal", ...r }) {
109
- return /* @__PURE__ */ d(g.Root, {
109
+ function b({ className: e, orientation: t = "horizontal", ...r }) {
110
+ return /* @__PURE__ */ f(_.Root, {
110
111
  "data-slot": "tabs",
111
112
  "data-orientation": t,
112
113
  className: n("gap-space-md group/tabs flex data-[orientation=horizontal]:flex-col", e),
113
114
  ...r
114
115
  });
115
116
  }
116
- var b = h("box-border rounded-radius p-space-2xs h-action data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col", {
117
+ var x = g("box-border rounded-radius p-space-2xs h-action data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col", {
117
118
  variants: { variant: {
118
119
  default: "bg-muted",
119
120
  line: "gap-space-xs bg-transparent",
@@ -121,23 +122,23 @@ var b = h("box-border rounded-radius p-space-2xs h-action data-[variant=line]:ro
121
122
  } },
122
123
  defaultVariants: { variant: "default" }
123
124
  });
124
- function x({ className: e, variant: t = "default", ...r }) {
125
- return /* @__PURE__ */ d(g.List, {
125
+ function S({ className: e, variant: t = "default", ...r }) {
126
+ return /* @__PURE__ */ f(_.List, {
126
127
  "data-slot": "tabs-list",
127
128
  "data-variant": t,
128
- className: n(b({ variant: t }), e),
129
+ className: n(x({ variant: t }), e),
129
130
  ...r
130
131
  });
131
132
  }
132
- function S({ className: e, ...t }) {
133
- return /* @__PURE__ */ d(g.Tab, {
133
+ function C({ className: e, ...t }) {
134
+ return /* @__PURE__ */ f(_.Tab, {
134
135
  "data-slot": "tabs-trigger",
135
- className: n(`box-border font-sans gap-space-sm rounded-radius border border-transparent px-space-md py-space-xs text-sm font-medium group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg:not([class*='size-'])]:size-icon outline-none ${a.frame} text-muted-foreground hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0`, "group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent", "data-active:bg-card data-active:text-foreground", "group-data-[variant=chips]/tabs-list:h-action-sm group-data-[variant=chips]/tabs-list:flex-none group-data-[variant=chips]/tabs-list:px-control-sm group-data-[variant=chips]/tabs-list:py-0 group-data-[variant=chips]/tabs-list:after:hidden group-data-[variant=chips]/tabs-list:hover:bg-muted group-data-[variant=chips]/tabs-list:data-active:bg-accent group-data-[variant=chips]/tabs-list:data-active:text-accent-foreground group-data-[variant=chips]/tabs-list:data-active:hover:bg-accent group-data-[variant=chips]/tabs-list:data-active:hover:text-accent-foreground", "after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100", e),
136
+ className: n(s.nativeButtonReset, `box-border font-sans gap-space-sm rounded-radius border border-transparent px-space-md py-space-xs text-sm font-medium group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg:not([class*='size-'])]:size-icon outline-none ${a.frame} text-muted-foreground hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0`, "group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent", "data-active:bg-card data-active:text-foreground", "group-data-[variant=chips]/tabs-list:h-action-sm group-data-[variant=chips]/tabs-list:flex-none group-data-[variant=chips]/tabs-list:px-control-sm group-data-[variant=chips]/tabs-list:py-0 group-data-[variant=chips]/tabs-list:after:hidden group-data-[variant=chips]/tabs-list:hover:bg-muted group-data-[variant=chips]/tabs-list:data-active:bg-accent group-data-[variant=chips]/tabs-list:data-active:text-accent-foreground group-data-[variant=chips]/tabs-list:data-active:hover:bg-accent group-data-[variant=chips]/tabs-list:data-active:hover:text-accent-foreground", "after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100", e),
136
137
  ...t
137
138
  });
138
139
  }
139
- function C({ className: e, ...t }) {
140
- return /* @__PURE__ */ d(g.Panel, {
140
+ function w({ className: e, ...t }) {
141
+ return /* @__PURE__ */ f(_.Panel, {
141
142
  "data-slot": "tabs-content",
142
143
  className: n("text-sm flex-1 outline-none", e),
143
144
  ...t
@@ -145,30 +146,30 @@ function C({ className: e, ...t }) {
145
146
  }
146
147
  //#endregion
147
148
  //#region src/components/base/navigation/tabs.tsx
148
- function w(e) {
149
+ function T(e) {
149
150
  return typeof e == "string" || typeof e == "number" || typeof e == "bigint";
150
151
  }
151
- function T({ className: e, ...t }) {
152
- return /* @__PURE__ */ d(y, {
152
+ function E({ className: e, ...t }) {
153
+ return /* @__PURE__ */ f(b, {
153
154
  className: n("tabs--component", e),
154
155
  ...t
155
156
  });
156
157
  }
157
- function E({ className: t, scrollable: r = !1, scrollStrings: i, ...a }) {
158
- let { defaultScale: o } = e(), s = a.variant === "chips" ? void 0 : o === "sm" ? "h-action-sm" : o === "lg" ? "h-action-lg" : "h-action", c = /* @__PURE__ */ d(x, {
158
+ function D({ className: t, scrollable: r = !1, scrollStrings: i, ...a }) {
159
+ let { defaultScale: o } = e(), s = a.variant === "chips" ? void 0 : o === "sm" ? "h-action-sm" : o === "lg" ? "h-action-lg" : "h-action", c = /* @__PURE__ */ f(S, {
159
160
  className: n("tabs-list--component", "rounded-radius", s, r && "w-max", t),
160
161
  ...a
161
162
  });
162
- return r ? /* @__PURE__ */ d(v, {
163
+ return r ? /* @__PURE__ */ f(y, {
163
164
  strings: i,
164
165
  children: c
165
166
  }) : c;
166
167
  }
167
- function D({ className: e, children: t, ...r }) {
168
- return /* @__PURE__ */ d(S, {
168
+ function O({ className: e, children: t, ...r }) {
169
+ return /* @__PURE__ */ f(C, {
169
170
  className: n("tabs-trigger--component", "gap-space-sm rounded-radius px-space-md py-space-xs", e),
170
171
  ...r,
171
- children: w(t) ? /* @__PURE__ */ d(i, {
172
+ children: T(t) ? /* @__PURE__ */ f(i, {
172
173
  tag: "span",
173
174
  size: "inherit",
174
175
  weight: "medium",
@@ -178,14 +179,14 @@ function D({ className: e, children: t, ...r }) {
178
179
  }) : t
179
180
  });
180
181
  }
181
- function O({ className: e, children: t, ...r }) {
182
- return /* @__PURE__ */ d(C, {
182
+ function k({ className: e, children: t, ...r }) {
183
+ return /* @__PURE__ */ f(w, {
183
184
  className: n("tabs-content--component", e),
184
185
  ...r,
185
- children: w(t) ? /* @__PURE__ */ d(i, { children: t }) : t
186
+ children: T(t) ? /* @__PURE__ */ f(i, { children: t }) : t
186
187
  });
187
188
  }
188
189
  //#endregion
189
- export { v as a, D as i, O as n, _ as o, E as r, T as t };
190
+ export { y as a, O as i, k as n, v as o, D as r, E as t };
190
191
 
191
- //# sourceMappingURL=tabs-e7ko9S2o.js.map
192
+ //# sourceMappingURL=tabs-C4Kr_hCr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs-C4Kr_hCr.js","names":["Tabs","TabsPrimitive","TabsList","TabsTrigger","TabsContent","Tabs","PrimitiveTabs","PrimitiveTabsList","PrimitiveTabsTrigger","PrimitiveTabsContent","useDensityConfig","cn","Button","Text","focusRecipes","Stack","interactionRecipes","ScrollArea","defaultTabsScrollStrings","TabScrollViewport","stringsProp","strings","useStrings","frameRef","useRef","viewportRef","edges","setEdges","useState","viewport","measure","maximum","offset","available","style","inset","next","current","reveal","selected","bounds","item","resize","selection","scroll","rtl","reduce","direction","ChevronLeft","ChevronRight","Tabs$2","props","Tabs","orientation","className","tabsListVariants","cva","TabsList$1","variant","TabsTrigger$1","TabsContent$1","isSimpleText","value","Tabs$1","TabsList","height","defaultScale","list","scrollable","scrollStrings","TabsTrigger","children","TabsContent"],"sources":["../src/components/base/navigation/tab-scroll-viewport.tsx","../src/components/ui/tabs.tsx","../src/components/base/navigation/tabs.tsx"],"sourcesContent":["import { ChevronLeft, ChevronRight } from 'lucide-react';\nimport { useLayoutEffect, useRef, useState, type ReactNode } from 'react';\n\nimport { Button } from '../buttons';\nimport { ScrollArea } from '../display/scroll-area';\nimport { Stack } from '../structure';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\n\nexport interface TabsScrollStrings {\n\tprevious: string;\n\tnext: string;\n}\n\nexport const defaultTabsScrollStrings: TabsScrollStrings = {\n\tprevious: 'Previous tabs',\n\tnext: 'Next tabs',\n};\n\n/** Shared scroll mechanics for state tabs and route tabs; selection stays with each owner. */\nexport function TabScrollViewport({ children, strings: stringsProp }: {\n\tchildren: ReactNode;\n\tstrings?: StringsProp<TabsScrollStrings>;\n}) {\n\tconst strings = useStrings(defaultTabsScrollStrings, stringsProp);\n\tconst frameRef = useRef<HTMLDivElement>(null);\n\tconst viewportRef = useRef<HTMLDivElement>(null);\n\tconst [edges, setEdges] = useState({ overflow: false, start: true, end: true });\n\n\tuseLayoutEffect(() => {\n\t\tconst viewport = viewportRef.current;\n\t\tif (!viewport) return;\n\t\tconst measure = () => {\n\t\t\tconst maximum = viewport.scrollWidth - viewport.clientWidth;\n\t\t\tconst offset = Math.abs(viewport.scrollLeft);\n\t\t\t// Measure the full row so visible arrows cannot keep themselves alive after a resize.\n\t\t\tconst available = frameRef.current?.clientWidth || viewport.clientWidth;\n\t\t\t// The viewport's ring inset is outside the row (negative margin), so it is not content.\n\t\t\tconst style = getComputedStyle(viewport);\n\t\t\tconst inset = (parseFloat(style.paddingLeft) || 0) + (parseFloat(style.paddingRight) || 0);\n\t\t\tconst next = { overflow: viewport.scrollWidth - inset > available + 1, start: offset <= 1, end: offset >= maximum - 1 };\n\t\t\tsetEdges(current => current.overflow === next.overflow && current.start === next.start && current.end === next.end ? current : next);\n\t\t};\n\t\tconst reveal = () => {\n\t\t\tconst selected = viewport.querySelector<HTMLElement>('[aria-selected=\"true\"], [aria-current=\"page\"]');\n\t\t\tif (selected) {\n\t\t\t\tconst bounds = viewport.getBoundingClientRect();\n\t\t\t\tconst item = selected.getBoundingClientRect();\n\t\t\t\tif (item.left < bounds.left) viewport.scrollLeft += item.left - bounds.left;\n\t\t\t\telse if (item.right > bounds.right) viewport.scrollLeft += item.right - bounds.right;\n\t\t\t}\n\t\t\tmeasure();\n\t\t};\n\t\tmeasure();\n\t\tviewport.addEventListener('scroll', measure, { passive: true });\n\t\tconst resize = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(reveal);\n\t\tresize?.observe(viewport);\n\t\tif (frameRef.current) resize?.observe(frameRef.current);\n\t\tif (viewport.firstElementChild) resize?.observe(viewport.firstElementChild);\n\t\tconst selection = new MutationObserver(reveal);\n\t\tselection.observe(viewport, { subtree: true, attributes: true, attributeFilter: ['aria-selected', 'aria-current'] });\n\t\treveal();\n\t\treturn () => { viewport.removeEventListener('scroll', measure); resize?.disconnect(); selection.disconnect(); };\n\t}, []);\n\n\tconst scroll = (direction: number) => {\n\t\tconst viewport = viewportRef.current;\n\t\tif (!viewport) return;\n\t\tconst rtl = getComputedStyle(viewport).direction === 'rtl';\n\t\tconst reduce = window.matchMedia?.('(prefers-reduced-motion: reduce)').matches;\n\t\tviewport.scrollBy({ left: direction * (rtl ? -1 : 1) * viewport.clientWidth * 0.75, behavior: reduce ? 'instant' : 'smooth' });\n\t};\n\n\treturn <Stack ref={frameRef} direction=\"horizontal\" gap=\"xs\" align=\"center\" wrap={false} className=\"tab-scroll--component w-full min-w-0\">\n\t\t{edges.overflow && <Button size=\"sm\" iconOnly icon={ChevronLeft} tone=\"secondary\" buttonStyle=\"ghost\" aria-label={strings.previous} disabled={edges.start} onClick={() => scroll(-1)} className=\"shrink-0 rtl:[&_svg]:rotate-180\" />}\n\t\t{/* The inset only gives focus rings and the active tab's shadow room inside the\n\t\t clipping viewport; the matching negative margin keeps the list on the\n\t\t container's edge and centred on the arrows. The arrows replace the\n\t\t scrollbar, so it no longer needs reserved space under the tabs. */}\n\t\t<ScrollArea orientation=\"horizontal\" viewportRef={viewportRef} className=\"-m-space-xs min-w-0 flex-1\" viewportClassName=\"p-space-xs\" scrollbarClassName=\"hidden\">{children}</ScrollArea>\n\t\t{edges.overflow && <Button size=\"sm\" iconOnly icon={ChevronRight} tone=\"secondary\" buttonStyle=\"ghost\" aria-label={strings.next} disabled={edges.end} onClick={() => scroll(1)} className=\"shrink-0 rtl:[&_svg]:rotate-180\" />}\n\t</Stack>;\n}\n","import { Tabs as TabsPrimitive } from \"@base-ui/react/tabs\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\nimport { focusRecipes } from \"../../lib/focus-recipes\"\nimport { interactionRecipes } from \"../../lib/interaction-recipes\"\n\nfunction Tabs({\n className,\n orientation = \"horizontal\",\n ...props\n}: TabsPrimitive.Root.Props) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-orientation={orientation}\n className={cn(\n \"gap-space-md group/tabs flex data-[orientation=horizontal]:flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst tabsListVariants = cva(\n \"box-border rounded-radius p-space-2xs h-action data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col\",\n {\n variants: {\n variant: {\n default: \"bg-muted\",\n line: \"gap-space-xs bg-transparent\",\n // Wrapping toggle chips (saved views, filter presets): no track, compact\n // pressed-state triggers that wrap onto further lines.\n chips: \"h-auto flex-wrap justify-start gap-space-xs bg-transparent p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction TabsList({\n className,\n variant = \"default\",\n ...props\n}: TabsPrimitive.List.Props & VariantProps<typeof tabsListVariants>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n data-variant={variant}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction TabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props) {\n return (\n <TabsPrimitive.Tab\n data-slot=\"tabs-trigger\"\n className={cn(\n interactionRecipes.nativeButtonReset,\n `box-border font-sans gap-space-sm rounded-radius border border-transparent px-space-md py-space-xs text-sm font-medium group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg:not([class*='size-'])]:size-icon outline-none ${focusRecipes.frame} text-muted-foreground hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0`,\n \"group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent\",\n // The card fill is lighter than the muted track in both themes; the page\n // background is darker than the track in dark mode and reads as recessed.\n \"data-active:bg-card data-active:text-foreground\",\n // Chips use the toggle recipe: a muted hover and the accent pressed fill.\n \"group-data-[variant=chips]/tabs-list:h-action-sm group-data-[variant=chips]/tabs-list:flex-none group-data-[variant=chips]/tabs-list:px-control-sm group-data-[variant=chips]/tabs-list:py-0 group-data-[variant=chips]/tabs-list:after:hidden group-data-[variant=chips]/tabs-list:hover:bg-muted group-data-[variant=chips]/tabs-list:data-active:bg-accent group-data-[variant=chips]/tabs-list:data-active:text-accent-foreground group-data-[variant=chips]/tabs-list:data-active:hover:bg-accent group-data-[variant=chips]/tabs-list:data-active:hover:text-accent-foreground\",\n \"after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TabsContent({ className, ...props }: TabsPrimitive.Panel.Props) {\n return (\n <TabsPrimitive.Panel\n data-slot=\"tabs-content\"\n className={cn(\"text-sm flex-1 outline-none\", className)}\n {...props}\n />\n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants }\n","/**\n * Typography- and token-aware wrappers around the internal shadcn tabs parts.\n *\n * Raw anatomy and these wrappers share token-backed spacing. The wrappers\n * add stable public hooks, canonical corners, scalar text and scroll controls;\n * the primitive owns tab/list interaction and the nested list inset.\n */\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport {\n\tTabs as PrimitiveTabs,\n\tTabsContent as PrimitiveTabsContent,\n\tTabsList as PrimitiveTabsList,\n\tTabsTrigger as PrimitiveTabsTrigger,\n} from '../../ui/tabs';\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\nimport { useDensityConfig } from '../../../lib/ui-provider';\nimport type { StringsProp } from '../../../lib/strings';\nimport { TabScrollViewport, type TabsScrollStrings } from './tab-scroll-viewport';\n\nfunction isSimpleText(value: ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\nexport function Tabs({ className, ...props }: ComponentProps<typeof PrimitiveTabs>) {\n\treturn <PrimitiveTabs className={cn('tabs--component', className)} {...props} />;\n}\n\nexport type TabsListProps = ComponentProps<typeof PrimitiveTabsList> & {\n\t/** Adds previous/next controls when the tab list exceeds its container. */\n\tscrollable?: boolean;\n\t/** Accessible labels for the previous/next scroll controls. */\n\tscrollStrings?: StringsProp<TabsScrollStrings>;\n};\n\nexport function TabsList({ className, scrollable = false, scrollStrings, ...props }: TabsListProps) {\n\tconst { defaultScale } = useDensityConfig();\n\t// Chips wrap onto further lines, so the list takes its height from them.\n\tconst height = props.variant === 'chips' ? undefined : defaultScale === 'sm' ? 'h-action-sm' : defaultScale === 'lg' ? 'h-action-lg' : 'h-action';\n\tconst list = (\n\t\t<PrimitiveTabsList\n\t\t\tclassName={cn('tabs-list--component', 'rounded-radius', height, scrollable && 'w-max', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n\treturn scrollable ? <TabScrollViewport strings={scrollStrings}>{list}</TabScrollViewport> : list;\n}\n\nexport function TabsTrigger({ className, children, ...props }: ComponentProps<typeof PrimitiveTabsTrigger>) {\n\treturn (\n\t\t<PrimitiveTabsTrigger\n\t\t\tclassName={cn(\n\t\t\t\t'tabs-trigger--component',\n\t\t\t\t'gap-space-sm rounded-radius px-space-md py-space-xs',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"tight\" className=\"text-inherit\">\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : children}\n\t\t</PrimitiveTabsTrigger>\n\t);\n}\n\nexport function TabsContent({ className, children, ...props }: ComponentProps<typeof PrimitiveTabsContent>) {\n\treturn (\n\t\t<PrimitiveTabsContent className={cn('tabs-content--component', className)} {...props}>\n\t\t\t{isSimpleText(children) ? <Text>{children}</Text> : children}\n\t\t</PrimitiveTabsContent>\n\t);\n}\n"],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  "use client";
2
2
  import { d as e } from "./ui-provider-C-74NVLc.js";
3
3
  import { useStrings as t } from "./lib/strings.js";
4
- import { t as n } from "./utils-B6kKb8jB.js";
4
+ import { t as n } from "./utils-DhuoqFy4.js";
5
5
  import { t as r } from "./affordance-geometry.generated-P-aVJisu.js";
6
- import { n as i } from "./buttons-BedGfygC.js";
7
- import { c as a } from "./typography-BQnine1k.js";
8
- import { t as o } from "./field-state-recipes-BVA2CWHo.js";
9
- import { n as s } from "./field-affordance-recipes-DWcNcOjh.js";
6
+ import { n as i } from "./buttons-DeW0bQeK.js";
7
+ import { c as a } from "./typography-C7-YMW1S.js";
8
+ import { t as o } from "./field-state-recipes-7sza8QbC.js";
9
+ import { n as s } from "./field-affordance-recipes-D6H7tVJi.js";
10
10
  import { t as c } from "./editable-text-recipe-Cn61kEcv.js";
11
- import { _ as l, a as u, g as d, o as f, u as p, v as m, y as h } from "./form-sizing-Bs2qFUeE.js";
12
- import { a as g, i as _, o as v, r as y, t as b } from "./input-CvyDQlY7.js";
13
- import { t as x } from "./input-DMBwAZmr.js";
11
+ import { _ as l, a as u, g as d, o as f, u as p, v as m, y as h } from "./form-sizing-CgcrUbLU.js";
12
+ import { a as g, i as _, o as v, r as y, t as b } from "./input-7KAc7XQL.js";
13
+ import { t as x } from "./input-DIREVYHs.js";
14
14
  import * as S from "react";
15
15
  import { useCallback as C, useEffect as w, useRef as T } from "react";
16
16
  import { jsx as E, jsxs as D } from "react/jsx-runtime";
@@ -353,4 +353,4 @@ Q.displayName = "SlugField";
353
353
  //#endregion
354
354
  export { z as a, q as c, j as d, Y as i, K as l, Z as n, U as o, X as r, W as s, Q as t, J as u };
355
355
 
356
- //# sourceMappingURL=text-inputs-B1culiSK.js.map
356
+ //# sourceMappingURL=text-inputs-jdkS3ReG.js.map