themelia-react-ui 1.0.0 → 1.0.1

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 (257) hide show
  1. package/CHANGELOG.md +53 -1
  2. package/README.md +39 -6
  3. package/dist/{accordion-BRWh3BM1.js → accordion-B-5Focs8.js} +2 -2
  4. package/dist/{accordion-BRWh3BM1.js.map → accordion-B-5Focs8.js.map} +1 -1
  5. package/dist/{affordance-geometry.generated-DXl-Zb3Z.js → affordance-geometry.generated-D8Jcfb0G.js} +10 -1
  6. package/dist/affordance-geometry.generated-D8Jcfb0G.js.map +1 -0
  7. package/dist/{ai-artifact-DkOArd3-.js → ai-artifact-B5tPpXnS.js} +5 -5
  8. package/dist/{ai-artifact-DkOArd3-.js.map → ai-artifact-B5tPpXnS.js.map} +1 -1
  9. package/dist/{app-shell-BH_bGcE2.js → app-shell-at8Kt4l_.js} +3 -3
  10. package/dist/{app-shell-BH_bGcE2.js.map → app-shell-at8Kt4l_.js.map} +1 -1
  11. package/dist/{attachment-DsLgNHXt.js → attachment-BO2R47wn.js} +2 -2
  12. package/dist/{attachment-DsLgNHXt.js.map → attachment-BO2R47wn.js.map} +1 -1
  13. package/dist/{auth-BDB1V_2q.js → auth-OFwWSAap.js} +4 -4
  14. package/dist/{auth-BDB1V_2q.js.map → auth-OFwWSAap.js.map} +1 -1
  15. package/dist/{avatar-CsnWaYmt.js → avatar-Bpzty83c.js} +73 -68
  16. package/dist/avatar-Bpzty83c.js.map +1 -0
  17. package/dist/base/accordion.js +1 -1
  18. package/dist/base/attachment.js +1 -1
  19. package/dist/base/avatar.js +1 -1
  20. package/dist/base/cards.js +2 -2
  21. package/dist/base/cascader.js +6 -6
  22. package/dist/base/choice-inputs.js +3 -2
  23. package/dist/base/code-block.js +1 -1
  24. package/dist/base/combobox.js +1 -1
  25. package/dist/base/command.js +1 -1
  26. package/dist/base/date-pickers.js +2 -2
  27. package/dist/base/display.js +1 -1
  28. package/dist/base/feedback.js +4 -3
  29. package/dist/base/forms-numeric.js +1 -1
  30. package/dist/base/forms.js +2 -2
  31. package/dist/base/inline-edit.js +236 -0
  32. package/dist/base/inline-edit.js.map +1 -0
  33. package/dist/base/media-gallery.js +1 -1
  34. package/dist/base/navigation.js +3 -3
  35. package/dist/base/popover-menu.js +1 -1
  36. package/dist/base/popover.js +1 -1
  37. package/dist/base/repeaters.js +4 -4
  38. package/dist/base/sheet.js +1 -1
  39. package/dist/base/sidebar.js +1 -1
  40. package/dist/base/signature-pad.js +3 -3
  41. package/dist/base/skeleton.js +1 -1
  42. package/dist/base/spinner.js +1 -1
  43. package/dist/base/structure.js +1 -1
  44. package/dist/base/text-inputs.js +2 -2
  45. package/dist/base/tree.js +1 -1
  46. package/dist/base/upload-queue.js +1 -1
  47. package/dist/base/upload.js +3 -3
  48. package/dist/base/value-inputs.js +1 -1
  49. package/dist/blocks/admin.js +6 -6
  50. package/dist/blocks/ai.js +6 -6
  51. package/dist/blocks/analytics/usage-card.js +3 -0
  52. package/dist/blocks/analytics.js +361 -360
  53. package/dist/blocks/analytics.js.map +1 -1
  54. package/dist/blocks/collaboration.js +1 -1
  55. package/dist/blocks/commerce/receipt.js +1 -1
  56. package/dist/blocks/commerce.js +15 -15
  57. package/dist/blocks/data-display.js +1 -1
  58. package/dist/blocks/onboarding.js +3 -3
  59. package/dist/blocks/planning.js +311 -0
  60. package/dist/blocks/planning.js.map +1 -0
  61. package/dist/blocks/timelines.js +1 -1
  62. package/dist/{cards-BMB0laLG.js → cards-Cum56XOF.js} +3 -3
  63. package/dist/{cards-BMB0laLG.js.map → cards-Cum56XOF.js.map} +1 -1
  64. package/dist/checkbox-BavDRjF7.js +34 -0
  65. package/dist/checkbox-BavDRjF7.js.map +1 -0
  66. package/dist/{choice-inputs-CavA-SGV.js → choice-inputs-CC7XqPQO.js} +166 -191
  67. package/dist/choice-inputs-CC7XqPQO.js.map +1 -0
  68. package/dist/{code-block-DIlqzoiD.js → code-block-xHKbAJDj.js} +2 -2
  69. package/dist/{code-block-DIlqzoiD.js.map → code-block-xHKbAJDj.js.map} +1 -1
  70. package/dist/{combobox-HDftpzxt.js → combobox-DEbdr-3u.js} +2 -2
  71. package/dist/{combobox-HDftpzxt.js.map → combobox-DEbdr-3u.js.map} +1 -1
  72. package/dist/{combobox-CHD750do.js → combobox-xv3yJbzl.js} +7 -7
  73. package/dist/{combobox-CHD750do.js.map → combobox-xv3yJbzl.js.map} +1 -1
  74. package/dist/{command-D0kWBZfd.js → command-C0xe7u9B.js} +2 -2
  75. package/dist/{command-D0kWBZfd.js.map → command-C0xe7u9B.js.map} +1 -1
  76. package/dist/{comments-CvYeglMS.js → comments-DviPLnwy.js} +8 -8
  77. package/dist/{comments-CvYeglMS.js.map → comments-DviPLnwy.js.map} +1 -1
  78. package/dist/components/base/cards/smart-card.types.d.ts +2 -0
  79. package/dist/components/base/inline-edit/index.d.ts +2 -0
  80. package/dist/components/base/inline-edit/inline-edit.d.ts +81 -0
  81. package/dist/components/base/inline-edit/inline-edit.recipes.d.ts +6 -0
  82. package/dist/components/base/structure/structure.recipes.d.ts +6 -0
  83. package/dist/components/blocks/analytics/index.d.ts +1 -0
  84. package/dist/components/blocks/analytics/usage-card/index.d.ts +3 -0
  85. package/dist/components/blocks/analytics/usage-card/types.d.ts +52 -0
  86. package/dist/components/blocks/analytics/usage-card/usage-card.d.ts +6 -0
  87. package/dist/components/blocks/analytics/usage-card/usage-card.data.d.ts +19 -0
  88. package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +22 -0
  89. package/dist/components/blocks/planning/index.d.ts +3 -0
  90. package/dist/components/blocks/planning/task-card.d.ts +3 -0
  91. package/dist/components/blocks/planning/task-card.strings.d.ts +15 -0
  92. package/dist/components/blocks/planning/task-card.types.d.ts +66 -0
  93. package/dist/{containers-CPNyNo1_.js → containers-6s-ucRQQ.js} +3 -2
  94. package/dist/containers-6s-ucRQQ.js.map +1 -0
  95. package/dist/{data-display-b3d1TfL4.js → data-display-cWIRdeaf.js} +8 -8
  96. package/dist/{data-display-b3d1TfL4.js.map → data-display-cWIRdeaf.js.map} +1 -1
  97. package/dist/{date-picker-DI6kPNof.js → date-picker-CA6ogMQB.js} +5 -5
  98. package/dist/{date-picker-DI6kPNof.js.map → date-picker-CA6ogMQB.js.map} +1 -1
  99. package/dist/{date-pickers-ByP6Cv2z.js → date-pickers-BPIKLdsD.js} +4 -4
  100. package/dist/{date-pickers-ByP6Cv2z.js.map → date-pickers-BPIKLdsD.js.map} +1 -1
  101. package/dist/{display-ByI5tkqy.js → display-CFM5myut.js} +3 -3
  102. package/dist/{display-ByI5tkqy.js.map → display-CFM5myut.js.map} +1 -1
  103. package/dist/features/activities.js +4 -4
  104. package/dist/features/ai-chat.js +4 -4
  105. package/dist/features/async-preview.js +4 -4
  106. package/dist/features/combobox.js +1 -1
  107. package/dist/features/comments.js +1 -1
  108. package/dist/features/data-view.js +5 -5
  109. package/dist/features/email-composer.js +11 -11
  110. package/dist/features/event-calendar.js +2 -2
  111. package/dist/features/event-calendar.js.map +1 -1
  112. package/dist/features/filters.js +1 -1
  113. package/dist/features/global-search.js +6 -6
  114. package/dist/features/map.js +3 -3
  115. package/dist/features/media-library.js +8 -8
  116. package/dist/features/mentions.js +1 -1
  117. package/dist/features/overlays.js +1 -1
  118. package/dist/features/products.js +43 -42
  119. package/dist/features/products.js.map +1 -1
  120. package/dist/features/questionnaire.js +107 -106
  121. package/dist/features/questionnaire.js.map +1 -1
  122. package/dist/features/resource-assignment.js +5 -5
  123. package/dist/features/resource.js +7 -7
  124. package/dist/features/rich-text-editor.js +1 -1
  125. package/dist/features/schema-form.js +11 -11
  126. package/dist/features/schema-form.js.map +1 -1
  127. package/dist/features/suggestions.js +2 -2
  128. package/dist/features/sync.js +2 -2
  129. package/dist/features/table.js +1 -1
  130. package/dist/features/theme-tweaker.js +11 -11
  131. package/dist/feedback-DWUkgEjR.js +233 -0
  132. package/dist/feedback-DWUkgEjR.js.map +1 -0
  133. package/dist/{field-affordance-recipes-CHdUtn2Z.js → field-affordance-recipes-IjzPrCTw.js} +2 -2
  134. package/dist/{field-affordance-recipes-CHdUtn2Z.js.map → field-affordance-recipes-IjzPrCTw.js.map} +1 -1
  135. package/dist/{filters-qtrcv1hf.js → filters-BhsUtsxW.js} +9 -9
  136. package/dist/{filters-qtrcv1hf.js.map → filters-BhsUtsxW.js.map} +1 -1
  137. package/dist/{form-field-C6W-y2hR.js → form-field-Bn7ZH1rA.js} +2 -2
  138. package/dist/{form-field-C6W-y2hR.js.map → form-field-Bn7ZH1rA.js.map} +1 -1
  139. package/dist/{form-sizing-39NohSqn.js → form-sizing-BWs70_a2.js} +4 -3
  140. package/dist/{form-sizing-39NohSqn.js.map → form-sizing-BWs70_a2.js.map} +1 -1
  141. package/dist/{forms-BF-HSbff.js → forms-B7pzS25o.js} +5 -5
  142. package/dist/{forms-BF-HSbff.js.map → forms-B7pzS25o.js.map} +1 -1
  143. package/dist/{forms-numeric-Y15Bg5Nr.js → forms-numeric-BUBxELBv.js} +18 -18
  144. package/dist/{forms-numeric-Y15Bg5Nr.js.map → forms-numeric-BUBxELBv.js.map} +1 -1
  145. package/dist/{header-B8ex54cY.js → header-C59QZyxV.js} +6 -6
  146. package/dist/{header-B8ex54cY.js.map → header-C59QZyxV.js.map} +1 -1
  147. package/dist/{hooks-D6UBVzf2.js → hooks-CM1Vp9Pe.js} +2 -2
  148. package/dist/{hooks-D6UBVzf2.js.map → hooks-CM1Vp9Pe.js.map} +1 -1
  149. package/dist/{input-DMorJiTI.js → input-WwYQZJzG.js} +3 -3
  150. package/dist/{input-DMorJiTI.js.map → input-WwYQZJzG.js.map} +1 -1
  151. package/dist/layout/app-shell.js +1 -1
  152. package/dist/layout/auth.js +1 -1
  153. package/dist/layout/containers.js +1 -1
  154. package/dist/layout/header.js +1 -1
  155. package/dist/layout/hooks.js +1 -1
  156. package/dist/layout/navigation.js +1 -1
  157. package/dist/layout/page.js +1 -1
  158. package/dist/layout/settings.js +1 -1
  159. package/dist/layout/sidebar.js +2 -2
  160. package/dist/layout/workspace.js +1 -1
  161. package/dist/layout.js +10 -10
  162. package/dist/lib/affordance-geometry.generated.d.ts +9 -0
  163. package/dist/{media-gallery-Ca4YmvBi.js → media-gallery-DhDRgnVZ.js} +2 -2
  164. package/dist/{media-gallery-Ca4YmvBi.js.map → media-gallery-DhDRgnVZ.js.map} +1 -1
  165. package/dist/{mentions-CRio8mTm.js → mentions-B8Ko-fhS.js} +4 -4
  166. package/dist/{mentions-CRio8mTm.js.map → mentions-B8Ko-fhS.js.map} +1 -1
  167. package/dist/{message-B5-6LeYl.js → message-COsdEvXT.js} +2 -2
  168. package/dist/{message-B5-6LeYl.js.map → message-COsdEvXT.js.map} +1 -1
  169. package/dist/{navigation-DqEITuD2.js → navigation-BUIn2Qxx.js} +2 -2
  170. package/dist/{navigation-DqEITuD2.js.map → navigation-BUIn2Qxx.js.map} +1 -1
  171. package/dist/{navigation-BTrEb5u4.js → navigation-DBEu4POU.js} +3 -3
  172. package/dist/{navigation-BTrEb5u4.js.map → navigation-DBEu4POU.js.map} +1 -1
  173. package/dist/{navigation-row-recipes-BFpvGPGE.js → navigation-row-recipes-GVh11KiT.js} +2 -2
  174. package/dist/{navigation-row-recipes-BFpvGPGE.js.map → navigation-row-recipes-GVh11KiT.js.map} +1 -1
  175. package/dist/{overlays-DBqV0J_V.js → overlays-B11wZka6.js} +4 -4
  176. package/dist/{overlays-DBqV0J_V.js.map → overlays-B11wZka6.js.map} +1 -1
  177. package/dist/{page-BMBGjJY8.js → page-BV6ioQg3.js} +5 -5
  178. package/dist/{page-BMBGjJY8.js.map → page-BV6ioQg3.js.map} +1 -1
  179. package/dist/{page-header-BH41wCyY.js → page-header-DQRa0jug.js} +2 -2
  180. package/dist/{page-header-BH41wCyY.js.map → page-header-DQRa0jug.js.map} +1 -1
  181. package/dist/{popover-TInGXsjg.js → popover-CoLDEg19.js} +2 -2
  182. package/dist/{popover-TInGXsjg.js.map → popover-CoLDEg19.js.map} +1 -1
  183. package/dist/{popover-menu-BzqXqE72.js → popover-menu-GLIQTJTx.js} +4 -4
  184. package/dist/{popover-menu-BzqXqE72.js.map → popover-menu-GLIQTJTx.js.map} +1 -1
  185. package/dist/progress-BOe8l_FZ.js +168 -0
  186. package/dist/progress-BOe8l_FZ.js.map +1 -0
  187. package/dist/{receipt-DYWTQGEc.js → receipt-BM8xsGFy.js} +3 -3
  188. package/dist/{receipt-DYWTQGEc.js.map → receipt-BM8xsGFy.js.map} +1 -1
  189. package/dist/{rich-text-editor-BZSJchAF.js → rich-text-editor-CoVrTiSv.js} +2 -2
  190. package/dist/{rich-text-editor-BZSJchAF.js.map → rich-text-editor-CoVrTiSv.js.map} +1 -1
  191. package/dist/services/actions.js +1 -1
  192. package/dist/{settings-D9f_wdIC.js → settings-BnCyyPOJ.js} +3 -3
  193. package/dist/{settings-D9f_wdIC.js.map → settings-BnCyyPOJ.js.map} +1 -1
  194. package/dist/{sheet-vOUloJ4O.js → sheet-B-q914Ad.js} +2 -2
  195. package/dist/{sheet-vOUloJ4O.js.map → sheet-B-q914Ad.js.map} +1 -1
  196. package/dist/{sidebar-C3UKkbC5.js → sidebar-C_2p3Tfj.js} +6 -6
  197. package/dist/{sidebar-C3UKkbC5.js.map → sidebar-C_2p3Tfj.js.map} +1 -1
  198. package/dist/{sidebar-CNBKFDRW.js → sidebar-DPR7fmqN.js} +4 -4
  199. package/dist/{sidebar-CNBKFDRW.js.map → sidebar-DPR7fmqN.js.map} +1 -1
  200. package/dist/{skeleton-BvRhK8y-.js → skeleton-CmT1ppqb.js} +2 -2
  201. package/dist/{skeleton-BvRhK8y-.js.map → skeleton-CmT1ppqb.js.map} +1 -1
  202. package/dist/{smart-card-B5FcKODh.js → smart-card-CYLn46e6.js} +119 -118
  203. package/dist/smart-card-CYLn46e6.js.map +1 -0
  204. package/dist/{spinner-JtlFJ7Nc.js → spinner-BY9HbUEh.js} +2 -2
  205. package/dist/{spinner-JtlFJ7Nc.js.map → spinner-BY9HbUEh.js.map} +1 -1
  206. package/dist/{structure-BvW4vG4H.js → structure-MvKVq-oL.js} +13 -13
  207. package/dist/{structure-BvW4vG4H.js.map → structure-MvKVq-oL.js.map} +1 -1
  208. package/dist/{structure.recipes-DjqnBpwz.js → structure.recipes-Bqhf9oIh.js} +2 -2
  209. package/dist/structure.recipes-Bqhf9oIh.js.map +1 -0
  210. package/dist/style.css +1 -1
  211. package/dist/{table-ghtAQ-JJ.js → table-BS39xnlq.js} +6 -6
  212. package/dist/{table-ghtAQ-JJ.js.map → table-BS39xnlq.js.map} +1 -1
  213. package/dist/{tabs-DY09eoZg.js → tabs-B5cNMWiP.js} +2 -2
  214. package/dist/{tabs-DY09eoZg.js.map → tabs-B5cNMWiP.js.map} +1 -1
  215. package/dist/{text-inputs-BhOcedTo.js → text-inputs-Dh9XGyiS.js} +4 -4
  216. package/dist/{text-inputs-BhOcedTo.js.map → text-inputs-Dh9XGyiS.js.map} +1 -1
  217. package/dist/{timelines-CnZ2S_Gr.js → timelines-B9ICkQcV.js} +2 -2
  218. package/dist/{timelines-CnZ2S_Gr.js.map → timelines-B9ICkQcV.js.map} +1 -1
  219. package/dist/{tree-COD9BGdU.js → tree-BdWSaoFT.js} +2 -2
  220. package/dist/{tree-COD9BGdU.js.map → tree-BdWSaoFT.js.map} +1 -1
  221. package/dist/{upload-DIzw1dx1.js → upload-D8Za5x_c.js} +4 -4
  222. package/dist/{upload-DIzw1dx1.js.map → upload-D8Za5x_c.js.map} +1 -1
  223. package/dist/{upload-queue-xRJ3qDmd.js → upload-queue-hIIYBLS7.js} +3 -3
  224. package/dist/{upload-queue-xRJ3qDmd.js.map → upload-queue-hIIYBLS7.js.map} +1 -1
  225. package/dist/usage-card-DnmnJ58D.js +458 -0
  226. package/dist/usage-card-DnmnJ58D.js.map +1 -0
  227. package/dist/{value-inputs-Co1fu-xv.js → value-inputs-DX2dbxjj.js} +7 -7
  228. package/dist/{value-inputs-Co1fu-xv.js.map → value-inputs-DX2dbxjj.js.map} +1 -1
  229. package/dist/{workspace-Cbqz4FzN.js → workspace-C1PZmk8L.js} +4 -4
  230. package/dist/{workspace-Cbqz4FzN.js.map → workspace-C1PZmk8L.js.map} +1 -1
  231. package/docs/consumer-skill/SKILL.md +120 -17
  232. package/docs/consumer-skill/examples/detail.tsx +7 -8
  233. package/docs/consumer-skill/examples/manifest.json +14 -0
  234. package/docs/consumer-skill/examples/planning-usage-edit.tsx +29 -0
  235. package/docs/consumer-skill/examples/scoped-directory.tsx +77 -0
  236. package/docs/consumer-skill/references/composition.md +103 -0
  237. package/docs/consumer-skill/references/design-contract.md +4 -3
  238. package/docs/consumer-skill/references/discovery.md +17 -0
  239. package/docs/consumer-skill/references/installation.md +20 -3
  240. package/docs/consumer-skill/references/integration.md +12 -0
  241. package/docs/consumer-skill/references/public-api.json +452 -229
  242. package/docs/consumer-skill/references/review.md +74 -0
  243. package/docs/consumer-skill/references/tokens.json +1 -1
  244. package/docs/consumer-skill/references/workflows.md +97 -1
  245. package/docs/consumer-skill/scripts/check-composition.mjs +31 -0
  246. package/docs/consumer-skill/scripts/composition-policy.mjs +155 -0
  247. package/docs/consumer-skill/scripts/discovery.mjs +6 -1
  248. package/docs/consumer-skill/scripts/surface-policy.mjs +22 -0
  249. package/package.json +24 -3
  250. package/dist/affordance-geometry.generated-DXl-Zb3Z.js.map +0 -1
  251. package/dist/avatar-CsnWaYmt.js.map +0 -1
  252. package/dist/choice-inputs-CavA-SGV.js.map +0 -1
  253. package/dist/containers-CPNyNo1_.js.map +0 -1
  254. package/dist/feedback-a9j9J-9A.js +0 -391
  255. package/dist/feedback-a9j9J-9A.js.map +0 -1
  256. package/dist/smart-card-B5FcKODh.js.map +0 -1
  257. package/dist/structure.recipes-DjqnBpwz.js.map +0 -1
@@ -0,0 +1,81 @@
1
+ import * as React from 'react';
2
+ import { type StringsProp } from '../../../lib/strings';
3
+ import { type InputProps, type TextareaProps } from '../text-inputs';
4
+ export interface InlineEditStrings {
5
+ /** Accessible name of the edit action when editLabel is absent. */
6
+ edit: string;
7
+ /** Accessible name of the save action. */
8
+ save: string;
9
+ /** Accessible name of the cancel action, including while saving. */
10
+ cancel: string;
11
+ /** Live announcement and save action name during persistence. */
12
+ saving: string;
13
+ /** Validation copy for a required empty value. */
14
+ required: string;
15
+ /** Fallback copy for a rejected save without an Error message. */
16
+ saveError: string;
17
+ /** Display copy for an empty value when placeholder is absent. */
18
+ empty: string;
19
+ }
20
+ export declare const defaultInlineEditStrings: InlineEditStrings;
21
+ export interface InlineEditSaveContext {
22
+ /** Aborted on cancel, unmount, external value replacement, or external dismissal. */
23
+ signal: AbortSignal;
24
+ }
25
+ type SharedControlProps = Pick<InputProps, 'size' | 'invalid' | 'loading' | 'clearable' | 'onClear' | 'showCharacterCount'>;
26
+ type OwnedEditorProps = keyof SharedControlProps | 'value' | 'defaultValue' | 'onChange' | 'ref' | 'id' | 'name' | 'form' | 'required' | 'disabled' | 'readOnly' | 'placeholder' | 'autoComplete' | 'maxLength' | 'rows' | 'returnValueWithAddons';
27
+ export interface InlineEditProps extends SharedControlProps, Omit<React.ComponentPropsWithoutRef<'div'>, 'children' | 'defaultValue' | 'onChange'> {
28
+ /** Native Input attributes, adornments and strings. Draft/state ownership stays with InlineEdit. */
29
+ inputProps?: Omit<InputProps, OwnedEditorProps>;
30
+ /** Native Textarea attributes, resizing options and strings. Draft/state ownership stays with InlineEdit. */
31
+ textareaProps?: Omit<TextareaProps, OwnedEditorProps>;
32
+ /** Committed value. Draft edits remain local until save succeeds. */
33
+ value?: string;
34
+ /** Initial committed value for uncontrolled usage. */
35
+ defaultValue?: string;
36
+ /** Called with the new committed value after a successful changed save. */
37
+ onValueChange?: (value: string) => void;
38
+ /** Controlled editor visibility. */
39
+ editing?: boolean;
40
+ /** Initial visibility for uncontrolled usage. */
41
+ defaultEditing?: boolean;
42
+ /** Requests a visibility change; controlled parents must update editing. */
43
+ onEditingChange?: (editing: boolean) => void;
44
+ /** Uses Textarea. Plain Enter inserts a newline; Ctrl/Cmd+Enter saves. */
45
+ multiline?: boolean;
46
+ /** Field caption above both presentation and editing states. */
47
+ label?: React.ReactNode;
48
+ /** Supporting copy, replaced by a validation or save error when present. */
49
+ description?: React.ReactNode;
50
+ /** Empty display copy and editor placeholder. */
51
+ placeholder?: string;
52
+ /** Accessible edit action name, useful when the display is a title. */
53
+ editLabel?: string;
54
+ /** Custom passive display content. Do not nest interactive elements. */
55
+ renderValue?: (value: string) => React.ReactNode;
56
+ /** Prevents editing and disables the edit action. */
57
+ disabled?: boolean;
58
+ /** Renders passive content with no edit action. */
59
+ readOnly?: boolean;
60
+ /** Save-time validation for an empty draft; marks the editor aria-required without constraining the parent form. */
61
+ required?: boolean;
62
+ /** Return an error message to keep the draft open without calling onSave. */
63
+ validate?: (value: string) => string | undefined | null;
64
+ /** Persist the draft; rejection keeps it open for correction or retry. */
65
+ onSave?: (value: string, context: InlineEditSaveContext) => void | Promise<void>;
66
+ /** Native form field name. Only the committed value is submitted. */
67
+ name?: string;
68
+ /** Associates the committed hidden field with a native form. */
69
+ form?: string;
70
+ /** Native editor autocomplete hint. */
71
+ autoComplete?: string;
72
+ /** Maximum editor character count. */
73
+ maxLength?: number;
74
+ /** Native Textarea row count. */
75
+ rows?: number;
76
+ /** Localized component copy. */
77
+ strings?: StringsProp<InlineEditStrings>;
78
+ }
79
+ /** Inline text editing with an isolated draft and explicit, cancellable saves. */
80
+ export declare const InlineEdit: React.ForwardRefExoticComponent<InlineEditProps & React.RefAttributes<HTMLDivElement>>;
81
+ export {};
@@ -0,0 +1,6 @@
1
+ /** Private field/action layout; geometry remains generated from shared roots. */
2
+ export declare const inlineEditRecipes: {
3
+ readonly frame: "transition-[grid-template-columns,column-gap] duration-180 ease-[cubic-bezier(0.22,1,0.36,1)] motion-reduce:transition-none";
4
+ readonly closedColumns: "grid-cols-[minmax(0,1fr)_0px]";
5
+ readonly actionsTrack: "min-w-0 flex items-center justify-end overflow-hidden focus-within:overflow-visible transition-opacity duration-180 ease-[cubic-bezier(0.22,1,0.36,1)] motion-reduce:transition-none";
6
+ };
@@ -1,4 +1,10 @@
1
1
  import type { AdaptiveGridMinimum, GridColumnLadder, ResponsiveValue, StructureAlign, StructureGap, StructureJustify } from './structure.types';
2
+ /** Shared region/peer rhythm for structures and composed surface owners. */
3
+ export declare function gapRecipe({ gap, rowGap, columnGap, }: {
4
+ gap?: ResponsiveValue<StructureGap>;
5
+ rowGap?: ResponsiveValue<StructureGap>;
6
+ columnGap?: ResponsiveValue<StructureGap>;
7
+ }): string[];
2
8
  export declare function stackRecipe({ direction, gap, align, justify, wrap, }: {
3
9
  direction?: ResponsiveValue<'vertical' | 'horizontal'>;
4
10
  gap?: ResponsiveValue<StructureGap>;
@@ -32,3 +32,4 @@ export { MetricGradient, type MetricGradientProps, type MetricGradientTheme, } f
32
32
  export { ActivityHeatmap, type ActivityHeatmapDay, type ActivityHeatmapProps, type ActivityHeatmapStrings, type ActivityLevel, } from './activity-heatmap';
33
33
  export { ChartCard, type ChartCardProps } from './chart-card';
34
34
  export { TimeDistributionRuler, defaultTimeDistributionRulerStrings, type TimeDistributionRulerProps, type TimeDistributionRulerStrings, } from './time-ruler';
35
+ export * from './usage-card';
@@ -0,0 +1,3 @@
1
+ export { UsageCard } from './usage-card';
2
+ export { defaultUsageCardStrings, type UsageCardStrings } from './usage-card.strings';
3
+ export type { UsageCardProps, UsageCardData, UsageCardQuota, UsageCardCategory, UsageCardDay, UsageCardResource, UsageCardPeriod } from './types';
@@ -0,0 +1,52 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { CardProps } from '../../../base/cards';
3
+ import type { StringsProp } from '../../../../lib/strings';
4
+ import type { UsageCardStrings } from './usage-card.strings';
5
+ /** Explicit `null` limit means unlimited; omitted limit means unavailable. */
6
+ export interface UsageCardQuota {
7
+ used: number | null;
8
+ limit?: number | null;
9
+ unit?: string;
10
+ }
11
+ export interface UsageCardCategory {
12
+ id: string;
13
+ label: string;
14
+ value: number | null;
15
+ /** Semantic chart role; defaults to cycling through the five chart roles. */
16
+ color?: 1 | 2 | 3 | 4 | 5;
17
+ }
18
+ export interface UsageCardDay {
19
+ /** App-formatted date or day label, in chronological order. */
20
+ label: string;
21
+ value: number | null;
22
+ }
23
+ export interface UsageCardResource extends UsageCardQuota {
24
+ id: string;
25
+ label: string;
26
+ }
27
+ export interface UsageCardData extends UsageCardQuota {
28
+ categories?: readonly UsageCardCategory[];
29
+ daily?: readonly UsageCardDay[];
30
+ resources?: readonly UsageCardResource[];
31
+ }
32
+ export interface UsageCardPeriod {
33
+ value: string;
34
+ label: string;
35
+ disabled?: boolean;
36
+ }
37
+ export interface UsageCardProps extends Pick<CardProps, 'title' | 'description' | 'icon' | 'titleSuffix' | 'headerAction' | 'surface' | 'padding' | 'className'> {
38
+ data?: UsageCardData | null;
39
+ /** Loading and error replace stale data; fetching stays in the application. */
40
+ status?: 'ready' | 'loading' | 'error' | 'empty';
41
+ periods?: readonly UsageCardPeriod[];
42
+ /** Controlled selection. Defaults visually to the first period when omitted. */
43
+ period?: string;
44
+ onPeriodChange?: (value: string) => void;
45
+ onRetry?: () => void;
46
+ loadingSlot?: ReactNode;
47
+ errorSlot?: ReactNode;
48
+ emptySlot?: ReactNode;
49
+ /** App-owned billing/navigation action in the Card footer. */
50
+ footerAction?: ReactNode;
51
+ strings?: StringsProp<UsageCardStrings>;
52
+ }
@@ -0,0 +1,6 @@
1
+ import type { UsageCardProps } from './types';
2
+ /** App-owned usage data and period callbacks in the canonical Card composition. */
3
+ export declare function UsageCard({ data, status, periods, period, onPeriodChange, onRetry, loadingSlot, errorSlot, emptySlot, footerAction, strings: stringsProp, ...cardProps }: UsageCardProps): import("react").JSX.Element;
4
+ export declare namespace UsageCard {
5
+ var displayName: string;
6
+ }
@@ -0,0 +1,19 @@
1
+ import type { UsageCardDay } from './types';
2
+ export declare function validUsage(value: number | null | undefined): number | null;
3
+ /** Account only for rounding accumulated by positive finite category additions. */
4
+ export declare function usageExceeds(actual: number, expected: number, terms?: number): boolean;
5
+ /** Retain actual numbers; cap only geometry. Zero quota has no finite percentage. */
6
+ export declare function quotaSummary(usedValue: number | null, limitValue: number | null | undefined): {
7
+ readonly kind: "unavailable" | "unlimited" | "limited";
8
+ readonly used: number | null;
9
+ readonly limit: number | null;
10
+ readonly percent: number | null;
11
+ readonly progress: number | null;
12
+ readonly remaining: number | null;
13
+ readonly excess: number | null;
14
+ };
15
+ export declare function dailySummary(days: readonly UsageCardDay[]): {
16
+ values: (number | null)[];
17
+ average: number | null;
18
+ maximum: number;
19
+ };
@@ -0,0 +1,22 @@
1
+ export interface UsageCardStrings {
2
+ title: string;
3
+ usage: string;
4
+ used: string;
5
+ of: string;
6
+ unlimited: string;
7
+ unavailable: string;
8
+ remaining: string;
9
+ overLimit: string;
10
+ breakdown: string;
11
+ inconsistentBreakdown: string;
12
+ daily: string;
13
+ average: string;
14
+ perDay: string;
15
+ resources: string;
16
+ periods: string;
17
+ loading: string;
18
+ error: string;
19
+ empty: string;
20
+ retry: string;
21
+ }
22
+ export declare const defaultUsageCardStrings: UsageCardStrings;
@@ -0,0 +1,3 @@
1
+ export { TaskCard } from './task-card';
2
+ export { defaultTaskCardStrings, type TaskCardStrings } from './task-card.strings';
3
+ export type { TaskCardProps, TaskCardItem, TaskCardStatus, TaskCardDueDate } from './task-card.types';
@@ -0,0 +1,3 @@
1
+ import type { TaskCardProps } from './task-card.types';
2
+ /** Compact task summary with explicit keyboard disclosure and controlled subtasks. */
3
+ export declare const TaskCard: import("react").ForwardRefExoticComponent<TaskCardProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,15 @@
1
+ export interface TaskCardStrings {
2
+ expand: string;
3
+ collapse: string;
4
+ subtasks: string;
5
+ completion: string;
6
+ due: string;
7
+ open: string;
8
+ empty: string;
9
+ saving: string;
10
+ /** Compact visible count; the full completion formatter remains the accessible value. */
11
+ formatCompletionCount: (completed: number, total: number) => string;
12
+ formatCompletion: (completed: number, total: number) => string;
13
+ formatAssignedTo: (name: string) => string;
14
+ }
15
+ export declare const defaultTaskCardStrings: TaskCardStrings;
@@ -0,0 +1,66 @@
1
+ import type { ComponentPropsWithoutRef } from 'react';
2
+ import type { StackedAvatarUser } from '../../base/avatar';
3
+ import type { BadgeProps } from '../../base/badge';
4
+ import type { CardProps } from '../../base/cards';
5
+ import type { StringsProp } from '../../../lib/strings';
6
+ import type { TaskCardStrings } from './task-card.strings';
7
+ export interface TaskCardItem {
8
+ /** Stable identity emitted by the completion callback. */
9
+ id: string;
10
+ /** Task copy supplied by the application. */
11
+ title: string;
12
+ /** Controlled completion state. */
13
+ completed: boolean;
14
+ /** Optional individual assignee. */
15
+ assignee?: StackedAvatarUser;
16
+ /** Prevents completion changes for this item. */
17
+ disabled?: boolean;
18
+ /** Application-owned saving state; keeps the checkbox inert. */
19
+ busy?: boolean;
20
+ /** Application-owned error; connected to the checkbox and announced. */
21
+ error?: string;
22
+ }
23
+ export interface TaskCardStatus {
24
+ /** Application-owned workflow status, independent of subtask completion. */
25
+ label: string;
26
+ /** Semantic badge tone. Defaults to neutral. */
27
+ tone?: BadgeProps['tone'];
28
+ }
29
+ export interface TaskCardDueDate {
30
+ /** Application-formatted date; the library adds the localized Due label. */
31
+ label: string;
32
+ /** Optional machine-readable ISO date for native time semantics. */
33
+ dateTime?: string;
34
+ }
35
+ export interface TaskCardProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children' | 'title'> {
36
+ /** Task title. */
37
+ title: string;
38
+ /** Controlled subtasks. Completion is read-only without its callback. */
39
+ items: readonly TaskCardItem[];
40
+ /** Application-owned workflow status. */
41
+ status?: TaskCardStatus;
42
+ /** Optional due date. */
43
+ dueDate?: TaskCardDueDate;
44
+ /** People shown in the compact summary. */
45
+ assignees?: StackedAvatarUser[];
46
+ /** Task owner shown in the expanded footer. */
47
+ assignedTo?: StackedAvatarUser;
48
+ /** Controlled disclosure state. */
49
+ expanded?: boolean;
50
+ /** Initial disclosure state. Defaults to false. */
51
+ defaultExpanded?: boolean;
52
+ /** Called for pointer and keyboard disclosure changes. */
53
+ onExpandedChange?: (expanded: boolean) => void;
54
+ /** Completion request; update items to accept the change. */
55
+ onItemCompletedChange?: (id: string, completed: boolean) => void;
56
+ /** Open action supplied by the application. */
57
+ onOpen?: () => void;
58
+ /** Native navigation destination for the Open action. */
59
+ href?: string;
60
+ /** Disables disclosure, completion and the Open action. */
61
+ disabled?: boolean;
62
+ /** Canonical Card surface; inherits the provider default. */
63
+ surface?: CardProps['surface'];
64
+ /** Overrides this block's labels and formatters. */
65
+ strings?: StringsProp<TaskCardStrings>;
66
+ }
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { t as e } from "./utils-C2EKeIw3.js";
3
- import { a as t } from "./structure.recipes-DjqnBpwz.js";
3
+ import { o as t } from "./structure.recipes-Bqhf9oIh.js";
4
4
  import { forwardRef as n } from "react";
5
5
  import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
6
6
  import { useRender as o } from "@base-ui/react/use-render";
@@ -20,6 +20,7 @@ var s = {
20
20
  };
21
21
  function l({ maxWidth: e = "xl", gutter: t = "md" }) {
22
22
  return [
23
+ "box-border",
23
24
  "mx-auto",
24
25
  "w-full",
25
26
  s[e],
@@ -121,4 +122,4 @@ p.displayName = "TwoColumnLayout";
121
122
  //#endregion
122
123
  export { u as i, f as n, d as r, p as t };
123
124
 
124
- //# sourceMappingURL=containers-CPNyNo1_.js.map
125
+ //# sourceMappingURL=containers-6s-ucRQQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containers-6s-ucRQQ.js","names":["_Fragment","cn","stackRecipe","Fragment$1","maxWidthClasses","gutterClasses","containerRecipe","maxWidth","gutter","Container","forwardRef","props","useRender","className","PageViewport","Section","gap","TwoColumnLayout","headerClassName","headerProps","slotProps","mainClassName","mainProps","asideClassName","asideProps","footerClassName","footerProps","adaptTo","header","main","stickyAside","aside","footer"],"sources":["../src/components/layout/containers/container.recipes.ts","../src/components/layout/containers/content-container.tsx","../src/components/layout/containers/page-viewport.tsx","../src/components/layout/containers/section.tsx","../src/components/layout/containers/two-column-layout.tsx"],"sourcesContent":["import type { ContainerGutter, ContainerMaxWidth } from './containers.types';\n\nconst maxWidthClasses: Record<ContainerMaxWidth, string> = {\n\tsm: 'max-w-content-sm',\n\tmd: 'max-w-content-md',\n\tlg: 'max-w-content-lg',\n\txl: 'max-w-content-xl',\n\t'2xl': 'max-w-content-2xl',\n\tfull: 'max-w-none',\n};\n\nconst gutterClasses: Record<ContainerGutter, string> = {\n\tnone: 'px-0',\n\tsm: 'px-surface-xs',\n\tmd: 'px-surface',\n\tlg: 'px-surface-lg',\n};\n\nexport function containerRecipe({\n\tmaxWidth = 'xl',\n\tgutter = 'md',\n}: {\n\tmaxWidth?: ContainerMaxWidth;\n\tgutter?: ContainerGutter;\n}): string[] {\n\treturn ['box-border', 'mx-auto', 'w-full', maxWidthClasses[maxWidth], gutterClasses[gutter]];\n}\n","import { useRender } from '@base-ui/react/use-render';\nimport { forwardRef } from 'react';\n\nimport { cn } from '../../../lib/utils';\n\nimport { containerRecipe } from './container.recipes';\nimport type { ContainerProps } from './containers.types';\n\n/** Container — one centered content-width and inline-gutter owner. */\nexport const Container = forwardRef<HTMLDivElement, ContainerProps>(function Container(\n\t{ className, maxWidth, gutter, render, ...props },\n\tref,\n) {\n\treturn useRender({\n\t\tdefaultTagName: 'div',\n\t\tref,\n\t\trender,\n\t\tprops: {\n\t\t\t...props,\n\t\t\tclassName: cn('container--component @container/content', containerRecipe({ maxWidth, gutter }), className),\n\t\t},\n\t\tstate: {},\n\t});\n});\n\nContainer.displayName = 'Container';\n","import { useRender } from '@base-ui/react/use-render';\nimport { forwardRef } from 'react';\n\nimport { cn } from '../../../lib/utils';\n\nimport type { PageViewportProps } from './containers.types';\n\n/** PageViewport — the single page-scroll and page-container-query owner. */\nexport const PageViewport = forwardRef<HTMLDivElement, PageViewportProps>(function PageViewport(\n\t{ className, render, tabIndex = 0, ...props },\n\tref,\n) {\n\treturn useRender({\n\t\tdefaultTagName: 'div',\n\t\tref,\n\t\trender,\n\t\tprops: {\n\t\t\t...props,\n\t\t\ttabIndex,\n\t\t\tclassName: cn(\n\t\t\t\t'page-viewport--component min-h-0 min-w-0 flex-1 overflow-auto overscroll-contain [scrollbar-gutter:stable] @container/page focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/70 focus-visible:ring-inset',\n\t\t\t\tclassName,\n\t\t\t),\n\t\t},\n\t\tstate: {},\n\t});\n});\n\nPageViewport.displayName = 'PageViewport';\n","import { useRender } from '@base-ui/react/use-render';\nimport { forwardRef } from 'react';\n\nimport { stackRecipe } from '../../base/structure/structure.recipes';\nimport { cn } from '../../../lib/utils';\n\nimport type { SectionProps } from './containers.types';\n\n/** Section — a semantic vertical-rhythm owner for page content groups. */\nexport const Section = forwardRef<HTMLElement, SectionProps>(function Section(\n\t{ className, gap, render, ...props },\n\tref,\n) {\n\treturn useRender({\n\t\tdefaultTagName: 'section',\n\t\tref,\n\t\trender,\n\t\tprops: {\n\t\t\t...props,\n\t\t\tclassName: cn('section--component', stackRecipe({ gap: gap ?? 'xl' }), className),\n\t\t},\n\t\tstate: {},\n\t});\n});\n\nSection.displayName = 'Section';\n","import { useRender } from '@base-ui/react/use-render';\nimport { forwardRef } from 'react';\nimport type { ReactNode } from 'react';\n\nimport { cn } from '../../../lib/utils';\nimport type { LayoutSlotAttributes } from '../layout.types';\n\nexport interface TwoColumnLayoutSlotProps {\n\theader?: LayoutSlotAttributes<HTMLDivElement>;\n\tmain?: LayoutSlotAttributes<HTMLDivElement>;\n\taside?: LayoutSlotAttributes<HTMLElement>;\n\tfooter?: LayoutSlotAttributes<HTMLDivElement>;\n}\n\nexport interface TwoColumnLayoutProps extends useRender.ComponentProps<'div'> {\n\t/** Optional content spanning both columns before the work regions. */\n\theader?: ReactNode;\n\t/** Primary detail, form, or index content. */\n\tmain: ReactNode;\n\t/** Secondary summary, support, or action rail. */\n\taside: ReactNode;\n\t/** Optional content spanning both columns after the work regions. */\n\tfooter?: ReactNode;\n\t/** Keep the aside visible while the nearest page viewport scrolls. */\n\tstickyAside?: boolean;\n\t/** Preserve viewport breakpoints by default, or adapt inside Container/PageViewport. */\n\tadaptTo?: 'viewport' | 'container';\n\t/** Native attributes for each stable region. */\n\tslotProps?: TwoColumnLayoutSlotProps;\n}\n\n/** TwoColumnLayout — one truthful, stable-order main/aside grid. */\nexport const TwoColumnLayout = forwardRef<HTMLDivElement, TwoColumnLayoutProps>(\n\tfunction TwoColumnLayout(\n\t\t{\n\t\t\theader,\n\t\t\tmain,\n\t\t\taside,\n\t\t\tfooter,\n\t\t\tstickyAside = false,\n\t\t\tadaptTo = 'viewport',\n\t\t\tslotProps,\n\t\t\tclassName,\n\t\t\trender,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) {\n\t\tconst { className: headerClassName, ...headerProps } = slotProps?.header ?? {};\n\t\tconst { className: mainClassName, ...mainProps } = slotProps?.main ?? {};\n\t\tconst { className: asideClassName, ...asideProps } = slotProps?.aside ?? {};\n\t\tconst { className: footerClassName, ...footerProps } = slotProps?.footer ?? {};\n\n\t\treturn useRender({\n\t\t\tdefaultTagName: 'div',\n\t\t\tref,\n\t\t\trender,\n\t\t\tprops: {\n\t\t\t\t...props,\n\t\t\t\t'data-slot': 'two-column-layout',\n\t\t\t\tclassName: cn(\n\t\t\t\t\t'two-column-layout--component grid min-w-0 grid-cols-1 gap-space-2xl',\n\t\t\t\t\tadaptTo === 'container' ? '@3xl:grid-cols-[minmax(0,2fr)_minmax(18rem,1fr)]' : 'lg:grid-cols-[minmax(0,2fr)_minmax(18rem,1fr)]',\n\t\t\t\t\tclassName,\n\t\t\t\t),\n\t\t\t\tchildren: (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{header !== undefined && header !== null ? (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t{...headerProps}\n\t\t\t\t\t\t\t\tdata-slot=\"two-column-layout-header\"\n\t\t\t\t\t\t\t\tclassName={cn('two-column-layout--header col-span-full min-w-0', headerClassName)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{header}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t{...mainProps}\n\t\t\t\t\t\t\tdata-slot=\"two-column-layout-main\"\n\t\t\t\t\t\t\tclassName={cn('two-column-layout--main min-h-0 min-w-0', mainClassName)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{main}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<aside\n\t\t\t\t\t\t\t{...asideProps}\n\t\t\t\t\t\t\tdata-slot=\"two-column-layout-aside\"\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'two-column-layout--aside min-h-0 min-w-0',\n\t\t\t\t\t\t\t\tstickyAside && (adaptTo === 'container' ? '@3xl:sticky @3xl:top-space-2xl @3xl:self-start' : 'lg:sticky lg:top-space-2xl lg:self-start'),\n\t\t\t\t\t\t\t\tasideClassName,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{aside}\n\t\t\t\t\t\t</aside>\n\t\t\t\t\t\t{footer !== undefined && footer !== null ? (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t{...footerProps}\n\t\t\t\t\t\t\t\tdata-slot=\"two-column-layout-footer\"\n\t\t\t\t\t\t\t\tclassName={cn('two-column-layout--footer col-span-full min-w-0', footerClassName)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{footer}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t</>\n\t\t\t\t),\n\t\t\t},\n\t\t\tstate: {},\n\t\t});\n\t},\n);\n\nTwoColumnLayout.displayName = 'TwoColumnLayout';\n"],"mappings":";;;;;;;AAEA,IAAMI,IAAqD;CAC1D,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,MAAM;AACP,GAEMC,IAAiD;CACtD,MAAM;CACN,IAAI;CACJ,IAAI;CACJ,IAAI;AACL;AAEA,SAAgBC,EAAgB,EAC/B,cAAW,MACX,YAAS,QAIG;CACZ,OAAO;EAAC;EAAc;EAAW;EAAUF,EAAgBG;EAAWF,EAAcG;CAAO;AAC5F;;;ACjBA,IAAaC,IAAYC,EAA2C,SACnE,EAAE,cAAW,aAAU,WAAQ,WAAQ,GAAGC,KAC1C,GACC;CACD,OAAOC,EAAU;EAChB,gBAAgB;EAChB;EACA;EACA,OAAO;GACN,GAAGD;GACH,WAAWV,EAAG,2CAA2CK,EAAgB;IAAE;IAAU;GAAO,CAAC,GAAGO,CAAS;EAC1G;EACA,OAAO,CAAC;CACT,CAAC;AACF,CAAC;AAED,EAAU,cAAc;;;ACjBxB,IAAaC,IAAeJ,EAA8C,SACzE,EAAE,cAAW,WAAQ,cAAW,GAAG,GAAGC,KACtC,GACC;CACD,OAAOC,EAAU;EAChB,gBAAgB;EAChB;EACA;EACA,OAAO;GACN,GAAGD;GACH;GACA,WAAWV,EACV,kOACAY,CACD;EACD;EACA,OAAO,CAAC;CACT,CAAC;AACF,CAAC;AAED,EAAa,cAAc;;;ACnB3B,IAAaE,IAAUL,EAAsC,SAC5D,EAAE,cAAW,QAAK,WAAQ,GAAGC,KAC7B,GACC;CACD,OAAOC,EAAU;EAChB,gBAAgB;EAChB;EACA;EACA,OAAO;GACN,GAAGD;GACH,WAAWV,EAAG,sBAAsBC,EAAY,EAAE,KAAKc,KAAO,KAAK,CAAC,GAAGH,CAAS;EACjF;EACA,OAAO,CAAC;CACT,CAAC;AACF,CAAC;AAED,EAAQ,cAAc;;;ACOtB,IAAaI,IAAkBP,EAC9B,SACC,EACC,WACA,SACA,UACA,WACA,iBAAc,IACd,aAAU,YACV,cACA,cACA,WACA,GAAGC,KAEJ,GACC;CACD,IAAM,EAAE,WAAWO,GAAiB,GAAGC,MAAgBC,GAAW,UAAU,CAAC,GACvE,EAAE,WAAWC,GAAe,GAAGC,MAAcF,GAAW,QAAQ,CAAC,GACjE,EAAE,WAAWG,GAAgB,GAAGC,MAAeJ,GAAW,SAAS,CAAC,GACpE,EAAE,WAAWK,GAAiB,GAAGC,MAAgBN,GAAW,UAAU,CAAC;CAE7E,OAAOR,EAAU;EAChB,gBAAgB;EAChB;EACA;EACA,OAAO;GACN,GAAGD;GACH,aAAa;GACb,WAAWV,EACV,uEACA0B,MAAY,cAAc,qDAAqD,kDAC/Ed,CACD;GACA,UACC,kBAAAb,GAAA,EAAA,UAAA;IACE4B,KAAmC,OAQhC,OAPH,kBAAC,OAAD;KACC,GAAIT;KACJ,aAAU;KACV,WAAWlB,EAAG,mDAAmDiB,CAAe;KAE/E,UAAAU;IACG,CAAA;IAEN,kBAAC,OAAD;KACC,GAAIN;KACJ,aAAU;KACV,WAAWrB,EAAG,2CAA2CoB,CAAa;KAErE,UAAAQ;IACG,CAAA;IACL,kBAAC,SAAD;KACC,GAAIL;KACJ,aAAU;KACV,WAAWvB,EACV,4CACA6B,MAAgBH,MAAY,cAAc,mDAAmD,6CAC7FJ,CACD;KAEC,UAAAQ;IACK,CAAA;IACNC,KAAmC,OAQhC,OAPH,kBAAC,OAAD;KACC,GAAIN;KACJ,aAAU;KACV,WAAWzB,EAAG,mDAAmDwB,CAAe;KAE/E,UAAAO;IACG,CAAA;GAEL,EAAA,CAAA;EAEJ;EACA,OAAO,CAAC;CACT,CAAC;AACF,CACD;AAEA,EAAgB,cAAc"}
@@ -4,14 +4,14 @@ import { useStrings as t } from "./lib/strings.js";
4
4
  import { t as n } from "./utils-C2EKeIw3.js";
5
5
  import { l as r, n as i, o as a, s as o } from "./buttons-Co6GavvM.js";
6
6
  import { a as s, i as c, r as l } from "./typography-Cv8MT-82.js";
7
- import { r as u, t as d } from "./structure-BvW4vG4H.js";
8
- import { f, l as p, p as m, u as h } from "./feedback-a9j9J-9A.js";
7
+ import { r as u, t as d } from "./structure-MvKVq-oL.js";
8
+ import { i as f, o as p, r as m, s as h } from "./feedback-DWUkgEjR.js";
9
9
  import { _ as g, c as _, l as v, m as y, o as b, p as x, s as S } from "./primitives-DKPOGVpj.js";
10
10
  import { r as C } from "./number-BNT_BIzJ.js";
11
11
  import { a as w, r as T, t as E } from "./date-BFNMnrS5.js";
12
12
  import { t as D } from "./badge-BZXZT9wd.js";
13
13
  import { t as O } from "./separator-Gk_WXH-l.js";
14
- import { n as k } from "./display-ByI5tkqy.js";
14
+ import { n as k } from "./display-CFM5myut.js";
15
15
  import { c as ee, l as te, n as A, o as j, r as ne, t as re, u as M } from "./item-pJ0GsOiJ.js";
16
16
  import N, { forwardRef as ie } from "react";
17
17
  import { Fragment as P, jsx as F, jsxs as I } from "react/jsx-runtime";
@@ -524,15 +524,15 @@ var G = {
524
524
  illustration: "mb-space-xl"
525
525
  }, K = ie(function({ title: r, description: i, media: a, mediaVariant: o = "none", renderMedia: l, actions: u, footer: g, padding: _, border: v = !1, className: y, strings: b, ariaLabel: x }, S) {
526
526
  let C = t(G, b), { defaultScale: w } = e(), T = _ ?? w ?? "md", E = r ?? C.title, D = i === !1 ? null : i ?? C.description, O = l ? l({ mediaVariant: o }) : a, k = !!O;
527
- return /* @__PURE__ */ I(p, {
527
+ return /* @__PURE__ */ I(m, {
528
528
  ref: S,
529
529
  role: "status",
530
530
  "aria-label": x ?? C.ariaLabel,
531
531
  className: n("empty-state--component", de[T], v ? "border-border border border-dashed" : "border-border border-0", y),
532
- children: [/* @__PURE__ */ I(f, {
532
+ children: [/* @__PURE__ */ I(p, {
533
533
  className: "empty-state--header",
534
534
  children: [
535
- !!k && /* @__PURE__ */ F(m, {
535
+ !!k && /* @__PURE__ */ F(h, {
536
536
  variant: fe[o],
537
537
  className: n("empty-state--media", pe[o]),
538
538
  children: O
@@ -550,7 +550,7 @@ var G = {
550
550
  children: D
551
551
  })
552
552
  ]
553
- }), (!!u || !!g) && /* @__PURE__ */ I(h, {
553
+ }), (!!u || !!g) && /* @__PURE__ */ I(f, {
554
554
  className: "empty-state--content",
555
555
  children: [!!u && /* @__PURE__ */ F(d, {
556
556
  direction: "horizontal",
@@ -1126,4 +1126,4 @@ $.displayName = "RelationshipCardFrame";
1126
1126
  //#endregion
1127
1127
  export { R as _, he as a, q as c, W as d, U as f, z as g, B as h, ge as i, K as l, V as m, Te as n, me as o, H as p, Y as r, J as s, $ as t, G as u };
1128
1128
 
1129
- //# sourceMappingURL=data-display-b3d1TfL4.js.map
1129
+ //# sourceMappingURL=data-display-cWIRdeaf.js.map