themelia-react-ui 2.0.3 → 2.0.4

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 (421) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +65 -28
  3. package/dist/{accordion-Cjb6sx0G.js → accordion-96o0pN62.js} +5 -5
  4. package/dist/{accordion-Cjb6sx0G.js.map → accordion-96o0pN62.js.map} +1 -1
  5. package/dist/action-menu-CHgs8vmj.js +281 -0
  6. package/dist/action-menu-CHgs8vmj.js.map +1 -0
  7. package/dist/{affordance-geometry.generated-tF36bREk.js → affordance-geometry.generated-B8yGOr8-.js} +7 -1
  8. package/dist/affordance-geometry.generated-B8yGOr8-.js.map +1 -0
  9. package/dist/{ai-artifact-DvTwDVyL.js → ai-artifact-BZUGwBq6.js} +277 -276
  10. package/dist/ai-artifact-BZUGwBq6.js.map +1 -0
  11. package/dist/{app-shell-C4FhvCqF.js → app-shell-D63ATkIK.js} +84 -83
  12. package/dist/app-shell-D63ATkIK.js.map +1 -0
  13. package/dist/{attachment-BxDfL2mw.js → attachment-DkoqHPPl.js} +7 -7
  14. package/dist/{attachment-BxDfL2mw.js.map → attachment-DkoqHPPl.js.map} +1 -1
  15. package/dist/{auth-BGua8ouh.js → auth-D2FVZ1MH.js} +10 -10
  16. package/dist/{auth-BGua8ouh.js.map → auth-D2FVZ1MH.js.map} +1 -1
  17. package/dist/{avatar-DAPlDvhJ.js → avatar-DWO_HHhB.js} +5 -5
  18. package/dist/{avatar-DAPlDvhJ.js.map → avatar-DWO_HHhB.js.map} +1 -1
  19. package/dist/{badge-HpFqoqSY.js → badge-DErMA7ul.js} +4 -4
  20. package/dist/{badge-HpFqoqSY.js.map → badge-DErMA7ul.js.map} +1 -1
  21. package/dist/base/accordion.js +1 -1
  22. package/dist/base/action-menu.js +1 -1
  23. package/dist/base/attachment.js +1 -1
  24. package/dist/base/avatar.js +1 -1
  25. package/dist/base/badge.js +1 -1
  26. package/dist/base/batch-action-bar.js +1 -1
  27. package/dist/base/buttons.js +1 -1
  28. package/dist/base/cards.js +2 -2
  29. package/dist/base/carousel.js +3 -3
  30. package/dist/base/cascader.js +13 -13
  31. package/dist/base/chart.js +1 -1
  32. package/dist/base/choice-inputs.js +2 -2
  33. package/dist/base/code-block.js +1 -1
  34. package/dist/base/combobox.js +1 -1
  35. package/dist/base/command.js +1 -1
  36. package/dist/base/copyable.js +1 -1
  37. package/dist/base/date-pickers.js +2 -2
  38. package/dist/base/display.js +6 -6
  39. package/dist/base/feedback.js +3 -3
  40. package/dist/base/forms-numeric.js +1 -1
  41. package/dist/base/forms.js +3 -3
  42. package/dist/base/inline-edit.js +10 -10
  43. package/dist/base/item.js +1 -1
  44. package/dist/base/media-gallery.js +1 -1
  45. package/dist/base/metadata-list.js +1 -1
  46. package/dist/base/navigation.js +6 -6
  47. package/dist/base/popover-menu.js +1 -1
  48. package/dist/base/popover.js +1 -1
  49. package/dist/base/qr-code.js +1 -1
  50. package/dist/base/repeaters.js +9 -9
  51. package/dist/base/sheet.js +1 -1
  52. package/dist/base/sidebar.js +1 -1
  53. package/dist/base/signature-pad.js +6 -6
  54. package/dist/base/skeleton.js +1 -1
  55. package/dist/base/spinner.js +4 -4
  56. package/dist/base/structure.js +1 -1
  57. package/dist/base/table.js +1 -1
  58. package/dist/base/text-inputs.js +2 -2
  59. package/dist/base/toaster.js +3 -3
  60. package/dist/base/tree.js +1 -1
  61. package/dist/base/upload-queue.js +1 -1
  62. package/dist/base/upload.js +3 -3
  63. package/dist/base/value-inputs.js +1 -1
  64. package/dist/{batch-action-bar-DnUJ21NQ.js → batch-action-bar-CdfIkCsV.js} +4 -4
  65. package/dist/{batch-action-bar-DnUJ21NQ.js.map → batch-action-bar-CdfIkCsV.js.map} +1 -1
  66. package/dist/blocks/admin.js +20 -20
  67. package/dist/blocks/admin.js.map +1 -1
  68. package/dist/blocks/ai.js +15 -15
  69. package/dist/blocks/analytics/usage-card.js +1 -1
  70. package/dist/blocks/analytics.js +17 -17
  71. package/dist/blocks/analytics.js.map +1 -1
  72. package/dist/blocks/collaboration.js +1 -1
  73. package/dist/blocks/commerce/receipt.js +1 -1
  74. package/dist/blocks/commerce.js +570 -567
  75. package/dist/blocks/commerce.js.map +1 -1
  76. package/dist/blocks/data-display.js +2 -2
  77. package/dist/blocks/onboarding.js +5 -5
  78. package/dist/blocks/planning.js +11 -11
  79. package/dist/blocks/timelines.js +1 -1
  80. package/dist/{breadcrumbs-C-oqs1sQ.js → breadcrumbs-B-WFKecD.js} +4 -4
  81. package/dist/{breadcrumbs-C-oqs1sQ.js.map → breadcrumbs-B-WFKecD.js.map} +1 -1
  82. package/dist/{button-DVzspB_G.js → button-DkmK-z8E.js} +2 -2
  83. package/dist/{button-DVzspB_G.js.map → button-DkmK-z8E.js.map} +1 -1
  84. package/dist/{buttons-DPZekJFu.js → buttons-BbfzgczK.js} +8 -8
  85. package/dist/{buttons-DPZekJFu.js.map → buttons-BbfzgczK.js.map} +1 -1
  86. package/dist/{cards-BaBZR-AU.js → cards-4JTWqvVe.js} +10 -10
  87. package/dist/cards-4JTWqvVe.js.map +1 -0
  88. package/dist/{chart-ZOYyK2xG.js → chart-C19flDQb.js} +4 -4
  89. package/dist/{chart-ZOYyK2xG.js.map → chart-C19flDQb.js.map} +1 -1
  90. package/dist/{checkbox-AWIhNhmo.js → checkbox-CzYUTPeJ.js} +9 -5
  91. package/dist/checkbox-CzYUTPeJ.js.map +1 -0
  92. package/dist/{choice-inputs-CNHvARCJ.js → choice-inputs-JLtij2y4.js} +182 -176
  93. package/dist/choice-inputs-JLtij2y4.js.map +1 -0
  94. package/dist/{code-block-DeneBJR_.js → code-block-CGNaUtAE.js} +7 -7
  95. package/dist/{code-block-DeneBJR_.js.map → code-block-CGNaUtAE.js.map} +1 -1
  96. package/dist/{collapsible-C-_l4hpy.js → collapsible-Do4G0zcC.js} +3 -3
  97. package/dist/{collapsible-C-_l4hpy.js.map → collapsible-Do4G0zcC.js.map} +1 -1
  98. package/dist/{collection-content-By56pLog.js → collection-content-C0e8SsTm.js} +3 -3
  99. package/dist/{collection-content-By56pLog.js.map → collection-content-C0e8SsTm.js.map} +1 -1
  100. package/dist/{combobox-Dxo2fAYQ.js → combobox-CBJDs6w_.js} +12 -12
  101. package/dist/{combobox-Dxo2fAYQ.js.map → combobox-CBJDs6w_.js.map} +1 -1
  102. package/dist/{combobox-DaHESuiL.js → combobox-hbhSS18O.js} +7 -7
  103. package/dist/{combobox-DaHESuiL.js.map → combobox-hbhSS18O.js.map} +1 -1
  104. package/dist/{command-C25VMRII.js → command-D8NrBj-b.js} +7 -7
  105. package/dist/{command-C25VMRII.js.map → command-D8NrBj-b.js.map} +1 -1
  106. package/dist/{comments-DD0DUPwJ.js → comments-Di4w0H_S.js} +383 -382
  107. package/dist/comments-Di4w0H_S.js.map +1 -0
  108. package/dist/components/base/action-menu/action-menu.d.ts +2 -0
  109. package/dist/components/base/cards/card.recipes.d.ts +12 -5
  110. package/dist/components/base/cards/smart-card.types.d.ts +12 -7
  111. package/dist/components/base/choice-inputs/checkbox.d.ts +7 -2
  112. package/dist/components/base/choice-inputs/switch-card.d.ts +7 -0
  113. package/dist/components/base/choice-inputs/toggle-field.d.ts +7 -0
  114. package/dist/components/base/date-pickers/datepicker.types.d.ts +7 -0
  115. package/dist/components/base/forms/controlled-form-field.d.ts +6 -6
  116. package/dist/components/base/forms/form-field.d.ts +5 -3
  117. package/dist/components/base/forms/index.d.ts +1 -0
  118. package/dist/components/base/forms/server-errors.d.ts +16 -0
  119. package/dist/components/base/forms/workflow.d.ts +5 -2
  120. package/dist/components/base/metadata-list/metadata-list.d.ts +3 -1
  121. package/dist/components/base/navigation/page-header/page-header.d.ts +4 -2
  122. package/dist/components/base/structure/composition.recipes.d.ts +17 -0
  123. package/dist/components/base/text-inputs/hooks/use-form-field-state.d.ts +7 -2
  124. package/dist/components/base/text-inputs/input.d.ts +4 -2
  125. package/dist/components/base/text-inputs/textarea.d.ts +4 -2
  126. package/dist/components/base/value-inputs/date-time-input.d.ts +2 -1
  127. package/dist/components/base/value-inputs/slider.d.ts +5 -1
  128. package/dist/components/base/value-inputs/tags-input.d.ts +5 -1
  129. package/dist/components/typography/text.styles.d.ts +26 -1
  130. package/dist/composition.recipes-COdiFhxB.js +19 -0
  131. package/dist/composition.recipes-COdiFhxB.js.map +1 -0
  132. package/dist/containers-CRmHf7GP.js +104 -0
  133. package/dist/containers-CRmHf7GP.js.map +1 -0
  134. package/dist/{copyable-ClBuk_UK.js → copyable-CnGCZdX4.js} +4 -4
  135. package/dist/{copyable-ClBuk_UK.js.map → copyable-CnGCZdX4.js.map} +1 -1
  136. package/dist/{data-display-DT_khPl_.js → data-display-D4oujtx0.js} +239 -238
  137. package/dist/data-display-D4oujtx0.js.map +1 -0
  138. package/dist/{date-DCrsDTZc.js → date-Q7jnXxpk.js} +5 -5
  139. package/dist/{date-DCrsDTZc.js.map → date-Q7jnXxpk.js.map} +1 -1
  140. package/dist/{date-picker-B2K3ucWn.js → date-picker-zOt1oNss.js} +102 -90
  141. package/dist/date-picker-zOt1oNss.js.map +1 -0
  142. package/dist/date-pickers-cj8IXbDC.js +179 -0
  143. package/dist/date-pickers-cj8IXbDC.js.map +1 -0
  144. package/dist/{display-hAc1HjpI.js → display-BB4BL_-K.js} +8 -8
  145. package/dist/{display-hAc1HjpI.js.map → display-BB4BL_-K.js.map} +1 -1
  146. package/dist/{dropdown-menu-Cl4X7L5S.js → dropdown-menu-CjY8Vt7W.js} +8 -8
  147. package/dist/{dropdown-menu-Cl4X7L5S.js.map → dropdown-menu-CjY8Vt7W.js.map} +1 -1
  148. package/dist/features/activities.js +11 -11
  149. package/dist/features/ai-chat.js +9 -9
  150. package/dist/features/appointment-calendar.js +222 -220
  151. package/dist/features/appointment-calendar.js.map +1 -1
  152. package/dist/features/async-preview.js +8 -8
  153. package/dist/features/combobox.js +1 -1
  154. package/dist/features/comments.js +1 -1
  155. package/dist/features/data-view.js +10 -10
  156. package/dist/features/email-composer.js +275 -274
  157. package/dist/features/email-composer.js.map +1 -1
  158. package/dist/features/event-calendar.js +199 -198
  159. package/dist/features/event-calendar.js.map +1 -1
  160. package/dist/features/filters.js +1 -1
  161. package/dist/features/global-search.js +12 -12
  162. package/dist/features/kanban.js +4 -4
  163. package/dist/features/map.js +7 -7
  164. package/dist/features/media-library.js +623 -622
  165. package/dist/features/media-library.js.map +1 -1
  166. package/dist/features/mentions.js +1 -1
  167. package/dist/features/overlays.js +1 -1
  168. package/dist/features/products.js +973 -969
  169. package/dist/features/products.js.map +1 -1
  170. package/dist/features/questionnaire.js +12 -12
  171. package/dist/features/resource-assignment.js +8 -8
  172. package/dist/features/resource.js +113 -112
  173. package/dist/features/resource.js.map +1 -1
  174. package/dist/features/rich-text-editor.js +2 -2
  175. package/dist/features/schema-form.js +254 -253
  176. package/dist/features/schema-form.js.map +1 -1
  177. package/dist/features/suggestions.js +3 -3
  178. package/dist/features/sync.js +3 -3
  179. package/dist/features/table.js +1 -1
  180. package/dist/features/theme-tweaker.js +19 -19
  181. package/dist/features/theme-tweaker.js.map +1 -1
  182. package/dist/{feedback-BYIhtitP.js → feedback-DZNL5Lg1.js} +9 -9
  183. package/dist/{feedback-BYIhtitP.js.map → feedback-DZNL5Lg1.js.map} +1 -1
  184. package/dist/{field-affordance-recipes-DZhnIL_Y.js → field-affordance-recipes-DjwGx8eM.js} +2 -2
  185. package/dist/{field-affordance-recipes-DZhnIL_Y.js.map → field-affordance-recipes-DjwGx8eM.js.map} +1 -1
  186. package/dist/{filters-DJVAveHA.js → filters-BcT-uoFy.js} +19 -19
  187. package/dist/{filters-DJVAveHA.js.map → filters-BcT-uoFy.js.map} +1 -1
  188. package/dist/{form-field-CwH9y77i.js → form-field-CsgRmdit.js} +14 -8
  189. package/dist/form-field-CsgRmdit.js.map +1 -0
  190. package/dist/{form-sizing-BdP_Mf5p.js → form-sizing-NXgjkmBG.js} +3 -3
  191. package/dist/{form-sizing-BdP_Mf5p.js.map → form-sizing-NXgjkmBG.js.map} +1 -1
  192. package/dist/{forms-B9G_xwzi.js → forms-BV5m5aQF.js} +83 -65
  193. package/dist/forms-BV5m5aQF.js.map +1 -0
  194. package/dist/{forms-numeric-B_jraJaQ.js → forms-numeric-Cd33AKbD.js} +288 -288
  195. package/dist/forms-numeric-Cd33AKbD.js.map +1 -0
  196. package/dist/{header-BSfIEWbI.js → header-BA697l4a.js} +14 -14
  197. package/dist/{header-BSfIEWbI.js.map → header-BA697l4a.js.map} +1 -1
  198. package/dist/hooks/useFormErrors.d.ts +1 -1
  199. package/dist/{hooks-ClH9thn4.js → hooks-BQ-L7Uu2.js} +2 -2
  200. package/dist/{hooks-ClH9thn4.js.map → hooks-BQ-L7Uu2.js.map} +1 -1
  201. package/dist/{icon-badge-DYKIwvOV.js → icon-badge-COWbCCWu.js} +3 -3
  202. package/dist/{icon-badge-DYKIwvOV.js.map → icon-badge-COWbCCWu.js.map} +1 -1
  203. package/dist/index.js +2 -2
  204. package/dist/input-Cdw4k0fb.js +289 -0
  205. package/dist/input-Cdw4k0fb.js.map +1 -0
  206. package/dist/{input-CZw8iU99.js → input-DOPL5_QE.js} +3 -3
  207. package/dist/{input-CZw8iU99.js.map → input-DOPL5_QE.js.map} +1 -1
  208. package/dist/item-BvZ2DR_x.js +277 -0
  209. package/dist/item-BvZ2DR_x.js.map +1 -0
  210. package/dist/layout/app-shell.js +1 -1
  211. package/dist/layout/auth.js +1 -1
  212. package/dist/layout/containers.js +1 -1
  213. package/dist/layout/header.js +1 -1
  214. package/dist/layout/hooks.js +1 -1
  215. package/dist/layout/navigation.js +1 -1
  216. package/dist/layout/page.js +1 -1
  217. package/dist/layout/settings.js +1 -1
  218. package/dist/layout/sidebar.js +2 -2
  219. package/dist/layout/workspace.js +1 -1
  220. package/dist/layout.js +10 -10
  221. package/dist/lib/affordance-geometry.generated.d.ts +6 -0
  222. package/dist/lib/ui-provider/types.d.ts +1 -1
  223. package/dist/lib/utils.js +1 -1
  224. package/dist/{media-gallery-3zIVLMWH.js → media-gallery-CSl5W1Fy.js} +6 -6
  225. package/dist/{media-gallery-3zIVLMWH.js.map → media-gallery-CSl5W1Fy.js.map} +1 -1
  226. package/dist/{mentions-CGlEJ15c.js → mentions-RKOQaaIB.js} +8 -8
  227. package/dist/{mentions-CGlEJ15c.js.map → mentions-RKOQaaIB.js.map} +1 -1
  228. package/dist/{message-DZ_ruyUV.js → message-INU2xsxu.js} +4 -4
  229. package/dist/{message-DZ_ruyUV.js.map → message-INU2xsxu.js.map} +1 -1
  230. package/dist/metadata-list-qVV7AVxa.js +443 -0
  231. package/dist/metadata-list-qVV7AVxa.js.map +1 -0
  232. package/dist/{navigation-BzhHI3lo.js → navigation-BQNcg1jT.js} +8 -8
  233. package/dist/{navigation-BzhHI3lo.js.map → navigation-BQNcg1jT.js.map} +1 -1
  234. package/dist/{navigation-Bnotn4AQ.js → navigation-DLF3E1IC.js} +7 -7
  235. package/dist/{navigation-Bnotn4AQ.js.map → navigation-DLF3E1IC.js.map} +1 -1
  236. package/dist/{navigation-row-recipes-BFLCk_Aq.js → navigation-row-recipes-WZEs-hYo.js} +2 -2
  237. package/dist/{navigation-row-recipes-BFLCk_Aq.js.map → navigation-row-recipes-WZEs-hYo.js.map} +1 -1
  238. package/dist/{number-DbV1Dija.js → number-E_OiIfJz.js} +5 -5
  239. package/dist/{number-DbV1Dija.js.map → number-E_OiIfJz.js.map} +1 -1
  240. package/dist/{overflow-tab-bar-CWY7Nogn.js → overflow-tab-bar-CrbqMteP.js} +107 -105
  241. package/dist/overflow-tab-bar-CrbqMteP.js.map +1 -0
  242. package/dist/{overlays-tMkF-VAN.js → overlays-BlKynmde.js} +228 -227
  243. package/dist/overlays-BlKynmde.js.map +1 -0
  244. package/dist/page-CIwNUtGr.js +227 -0
  245. package/dist/page-CIwNUtGr.js.map +1 -0
  246. package/dist/page-header-commands-DFMlNYzN.js +128 -0
  247. package/dist/page-header-commands-DFMlNYzN.js.map +1 -0
  248. package/dist/{pagination-BL25hu2s.js → pagination-Ch8X_47u.js} +5 -5
  249. package/dist/{pagination-BL25hu2s.js.map → pagination-Ch8X_47u.js.map} +1 -1
  250. package/dist/{popover-menu-Cn9rUkdc.js → popover-menu-BYaCdFhf.js} +6 -6
  251. package/dist/{popover-menu-Cn9rUkdc.js.map → popover-menu-BYaCdFhf.js.map} +1 -1
  252. package/dist/{popover-gnTOhbFM.js → popover-uwzX2vo7.js} +4 -4
  253. package/dist/{popover-gnTOhbFM.js.map → popover-uwzX2vo7.js.map} +1 -1
  254. package/dist/{primitives-BFK08r9M.js → primitives-Du64iDbb.js} +6 -6
  255. package/dist/{primitives-BFK08r9M.js.map → primitives-Du64iDbb.js.map} +1 -1
  256. package/dist/primitives.js +4 -4
  257. package/dist/{progress-B1VnCT0K.js → progress-BvF2oCdV.js} +5 -5
  258. package/dist/{progress-B1VnCT0K.js.map → progress-BvF2oCdV.js.map} +1 -1
  259. package/dist/{receipt-BVSOH3Xo.js → receipt-D789Jwyy.js} +6 -6
  260. package/dist/{receipt-BVSOH3Xo.js.map → receipt-D789Jwyy.js.map} +1 -1
  261. package/dist/{rich-text-GOUyKQ-s.js → rich-text-CLJEf76s.js} +4 -4
  262. package/dist/{rich-text-GOUyKQ-s.js.map → rich-text-CLJEf76s.js.map} +1 -1
  263. package/dist/{rich-text-editor-cRLC-eBK.js → rich-text-editor-Cm1dpUpQ.js} +10 -10
  264. package/dist/{rich-text-editor-cRLC-eBK.js.map → rich-text-editor-Cm1dpUpQ.js.map} +1 -1
  265. package/dist/{rich-text-editor-toolbar-DfXg0-VC.js → rich-text-editor-toolbar-L__e4x47.js} +4 -4
  266. package/dist/{rich-text-editor-toolbar-DfXg0-VC.js.map → rich-text-editor-toolbar-L__e4x47.js.map} +1 -1
  267. package/dist/{scroll-area-DcI-M1UT.js → scroll-area-La5RXsEk.js} +2 -2
  268. package/dist/{scroll-area-DcI-M1UT.js.map → scroll-area-La5RXsEk.js.map} +1 -1
  269. package/dist/{separator-Bom7NsGO.js → separator-DAEV0w65.js} +2 -2
  270. package/dist/{separator-Bom7NsGO.js.map → separator-DAEV0w65.js.map} +1 -1
  271. package/dist/{separator-BDV-Y648.js → separator-GNfPG-90.js} +3 -3
  272. package/dist/{separator-BDV-Y648.js.map → separator-GNfPG-90.js.map} +1 -1
  273. package/dist/services/actions.js +1 -1
  274. package/dist/settings-BA2iboic.js +174 -0
  275. package/dist/settings-BA2iboic.js.map +1 -0
  276. package/dist/{sheet-ijlsjq-n.js → sheet-DoAxTb2J.js} +7 -7
  277. package/dist/{sheet-ijlsjq-n.js.map → sheet-DoAxTb2J.js.map} +1 -1
  278. package/dist/{sidebar-DkTO4VTO.js → sidebar-ByqKR_W5.js} +13 -13
  279. package/dist/{sidebar-DkTO4VTO.js.map → sidebar-ByqKR_W5.js.map} +1 -1
  280. package/dist/{sidebar-Db6gkh3U.js → sidebar-D2iSnGJ7.js} +11 -11
  281. package/dist/{sidebar-Db6gkh3U.js.map → sidebar-D2iSnGJ7.js.map} +1 -1
  282. package/dist/{skeleton-Byjnt7qr.js → skeleton-CUj8O5Bd.js} +3 -3
  283. package/dist/{skeleton-Byjnt7qr.js.map → skeleton-CUj8O5Bd.js.map} +1 -1
  284. package/dist/smart-card-CqkzQsK-.js +614 -0
  285. package/dist/smart-card-CqkzQsK-.js.map +1 -0
  286. package/dist/{structure-BmisBK-3.js → structure-C0V0_Fyf.js} +3 -3
  287. package/dist/{structure-BmisBK-3.js.map → structure-C0V0_Fyf.js.map} +1 -1
  288. package/dist/{structure.recipes-EPz60cU8.js → structure.recipes-BB4-n58V.js} +2 -2
  289. package/dist/{structure.recipes-EPz60cU8.js.map → structure.recipes-BB4-n58V.js.map} +1 -1
  290. package/dist/style.css +1 -1
  291. package/dist/{table-DsfzoUia.js → table-CpvnzJn9.js} +3 -3
  292. package/dist/{table-DsfzoUia.js.map → table-CpvnzJn9.js.map} +1 -1
  293. package/dist/{table-BweFy_P9.js → table-DH7rozUv.js} +19 -19
  294. package/dist/{table-BweFy_P9.js.map → table-DH7rozUv.js.map} +1 -1
  295. package/dist/{tabs-CDocW5D1.js → tabs-eqVsJZWO.js} +7 -7
  296. package/dist/{tabs-CDocW5D1.js.map → tabs-eqVsJZWO.js.map} +1 -1
  297. package/dist/{text-inputs-f9Ia-aCi.js → text-inputs-DXItiR0O.js} +101 -98
  298. package/dist/text-inputs-DXItiR0O.js.map +1 -0
  299. package/dist/{text.styles-g4He6UIW.js → text.styles-B64My8RZ.js} +25 -10
  300. package/dist/text.styles-B64My8RZ.js.map +1 -0
  301. package/dist/theme.css +152 -112
  302. package/dist/{timelines-CwM_9IhD.js → timelines-DmtztAY_.js} +10 -10
  303. package/dist/{timelines-CwM_9IhD.js.map → timelines-DmtztAY_.js.map} +1 -1
  304. package/dist/{tooltip-yiRJUFjp.js → tooltip-B4hjKtoV.js} +3 -3
  305. package/dist/{tooltip-yiRJUFjp.js.map → tooltip-B4hjKtoV.js.map} +1 -1
  306. package/dist/{tree-WnKQzwbq.js → tree-CV11PURP.js} +8 -8
  307. package/dist/{tree-WnKQzwbq.js.map → tree-CV11PURP.js.map} +1 -1
  308. package/dist/typography/rich-text.js +1 -1
  309. package/dist/typography-CSyJrh28.js +117 -0
  310. package/dist/typography-CSyJrh28.js.map +1 -0
  311. package/dist/typography.js +1 -1
  312. package/dist/{ui-provider-C_U0Xma4.js → ui-provider-CQCuCBcy.js} +3 -3
  313. package/dist/ui-provider-CQCuCBcy.js.map +1 -0
  314. package/dist/ui-provider.js +1 -1
  315. package/dist/{upload-CXyxmQBP.js → upload-C9SA0X-8.js} +11 -11
  316. package/dist/{upload-CXyxmQBP.js.map → upload-C9SA0X-8.js.map} +1 -1
  317. package/dist/{upload-queue-Boscubn9.js → upload-queue-DhQJiSRc.js} +9 -9
  318. package/dist/{upload-queue-Boscubn9.js.map → upload-queue-DhQJiSRc.js.map} +1 -1
  319. package/dist/{usage-card-BhO5eqkX.js → usage-card-DVTRDmGz.js} +134 -133
  320. package/dist/usage-card-DVTRDmGz.js.map +1 -0
  321. package/dist/{utils-BRhFDwuU.js → utils-CF3c95Io.js} +68 -5
  322. package/dist/utils-CF3c95Io.js.map +1 -0
  323. package/dist/value-inputs-C0o70p-U.js +980 -0
  324. package/dist/value-inputs-C0o70p-U.js.map +1 -0
  325. package/dist/{value-typography-BP8OG6h5.js → value-typography-ClupF0Gz.js} +2 -2
  326. package/dist/{value-typography-BP8OG6h5.js.map → value-typography-ClupF0Gz.js.map} +1 -1
  327. package/dist/workspace-9EFVXUyk.js +410 -0
  328. package/dist/workspace-9EFVXUyk.js.map +1 -0
  329. package/docs/consumer-skill/SKILL.md +14 -129
  330. package/docs/consumer-skill/examples/app-layout.tsx +22 -12
  331. package/docs/consumer-skill/examples/authentication.tsx +77 -0
  332. package/docs/consumer-skill/examples/edit.tsx +30 -38
  333. package/docs/consumer-skill/examples/manifest.json +51 -1
  334. package/docs/consumer-skill/examples/rhf-bindings.tsx +86 -0
  335. package/docs/consumer-skill/examples/rhf-edit-page.tsx +141 -0
  336. package/docs/consumer-skill/examples/rhf-overlay-form.tsx +92 -0
  337. package/docs/consumer-skill/examples/rhf-transport.tsx +28 -0
  338. package/docs/consumer-skill/references/agents-md.md +17 -7
  339. package/docs/consumer-skill/references/authentication.md +42 -0
  340. package/docs/consumer-skill/references/component-contracts.json +319824 -0
  341. package/docs/consumer-skill/references/composition-mapping.md +92 -0
  342. package/docs/consumer-skill/references/composition.md +43 -19
  343. package/docs/consumer-skill/references/design-contract.md +32 -0
  344. package/docs/consumer-skill/references/discovery.md +84 -7
  345. package/docs/consumer-skill/references/installation.md +40 -36
  346. package/docs/consumer-skill/references/integration.md +6 -2
  347. package/docs/consumer-skill/references/public-api.json +1519 -65
  348. package/docs/consumer-skill/references/review.md +9 -4
  349. package/docs/consumer-skill/references/rhf-workflows.md +86 -0
  350. package/docs/consumer-skill/references/screen-archetypes.md +22 -0
  351. package/docs/consumer-skill/references/theming.md +8 -9
  352. package/docs/consumer-skill/references/tokens.json +12 -3
  353. package/docs/consumer-skill/references/workflows.md +2 -1
  354. package/docs/consumer-skill/scripts/composition-schema.d.mts +2 -0
  355. package/docs/consumer-skill/scripts/composition-schema.mjs +32 -0
  356. package/docs/consumer-skill/scripts/composition.mjs +198 -0
  357. package/docs/consumer-skill/scripts/discovery.mjs +42 -10
  358. package/docs/consumer-skill/scripts/inspect-component.mjs +11 -0
  359. package/docs/consumer-skill/scripts/inspect-tokens.mjs +11 -0
  360. package/docs/consumer-skill/scripts/inspection.mjs +138 -0
  361. package/docs/consumer-skill/scripts/map-composition.mjs +12 -0
  362. package/docs/consumer-skill/scripts/setup-skills.mjs +76 -0
  363. package/docs/consumer-skills/themelia-components/SKILL.md +30 -0
  364. package/docs/consumer-skills/themelia-composition/SKILL.md +35 -0
  365. package/docs/consumer-skills/themelia-forms/SKILL.md +12 -0
  366. package/docs/consumer-skills/themelia-foundation/SKILL.md +14 -0
  367. package/docs/consumer-skills/themelia-tokenization/SKILL.md +35 -0
  368. package/package.json +4 -2
  369. package/templates/README.md +39 -0
  370. package/templates/admin-shell-template.tsx +382 -0
  371. package/templates/analytics-operations-template.tsx +376 -0
  372. package/templates/customers-template.tsx +509 -0
  373. package/templates/index.ts +29 -0
  374. package/templates/orders-template.tsx +1102 -0
  375. package/templates/products-template.tsx +834 -0
  376. package/templates/user-permissions-template.tsx +450 -0
  377. package/dist/action-menu-CllU52Mm.js +0 -280
  378. package/dist/action-menu-CllU52Mm.js.map +0 -1
  379. package/dist/affordance-geometry.generated-tF36bREk.js.map +0 -1
  380. package/dist/ai-artifact-DvTwDVyL.js.map +0 -1
  381. package/dist/app-shell-C4FhvCqF.js.map +0 -1
  382. package/dist/cards-BaBZR-AU.js.map +0 -1
  383. package/dist/checkbox-AWIhNhmo.js.map +0 -1
  384. package/dist/choice-inputs-CNHvARCJ.js.map +0 -1
  385. package/dist/comments-DD0DUPwJ.js.map +0 -1
  386. package/dist/containers-Mu1LMGV1.js +0 -103
  387. package/dist/containers-Mu1LMGV1.js.map +0 -1
  388. package/dist/data-display-DT_khPl_.js.map +0 -1
  389. package/dist/date-picker-B2K3ucWn.js.map +0 -1
  390. package/dist/date-pickers-Ds8gLaoP.js +0 -175
  391. package/dist/date-pickers-Ds8gLaoP.js.map +0 -1
  392. package/dist/form-field-CwH9y77i.js.map +0 -1
  393. package/dist/forms-B9G_xwzi.js.map +0 -1
  394. package/dist/forms-numeric-B_jraJaQ.js.map +0 -1
  395. package/dist/input-DQdEd0YD.js +0 -263
  396. package/dist/input-DQdEd0YD.js.map +0 -1
  397. package/dist/item-K5_ghvze.js +0 -275
  398. package/dist/item-K5_ghvze.js.map +0 -1
  399. package/dist/metadata-list-8N16ZMW_.js +0 -405
  400. package/dist/metadata-list-8N16ZMW_.js.map +0 -1
  401. package/dist/overflow-tab-bar-CWY7Nogn.js.map +0 -1
  402. package/dist/overlays-tMkF-VAN.js.map +0 -1
  403. package/dist/page-CL9YeH_V.js +0 -224
  404. package/dist/page-CL9YeH_V.js.map +0 -1
  405. package/dist/page-header-commands-DOb6WsfD.js +0 -126
  406. package/dist/page-header-commands-DOb6WsfD.js.map +0 -1
  407. package/dist/settings-ybnjVwbd.js +0 -171
  408. package/dist/settings-ybnjVwbd.js.map +0 -1
  409. package/dist/smart-card-DiC5aac3.js +0 -604
  410. package/dist/smart-card-DiC5aac3.js.map +0 -1
  411. package/dist/text-inputs-f9Ia-aCi.js.map +0 -1
  412. package/dist/text.styles-g4He6UIW.js.map +0 -1
  413. package/dist/typography-UTnveOEy.js +0 -117
  414. package/dist/typography-UTnveOEy.js.map +0 -1
  415. package/dist/ui-provider-C_U0Xma4.js.map +0 -1
  416. package/dist/usage-card-BhO5eqkX.js.map +0 -1
  417. package/dist/utils-BRhFDwuU.js.map +0 -1
  418. package/dist/value-inputs-TaX4OjNk.js +0 -963
  419. package/dist/value-inputs-TaX4OjNk.js.map +0 -1
  420. package/dist/workspace-B-OEm3Kf.js +0 -408
  421. package/dist/workspace-B-OEm3Kf.js.map +0 -1
@@ -1,26 +1,27 @@
1
1
  "use client";
2
- import { c as e } from "./ui-provider-C_U0Xma4.js";
2
+ import { c as e } from "./ui-provider-CQCuCBcy.js";
3
3
  import { useStrings as t } from "./lib/strings.js";
4
- import { t as n } from "./utils-BRhFDwuU.js";
5
- import { n as r } from "./buttons-DPZekJFu.js";
6
- import { c as i, o as a } from "./typography-UTnveOEy.js";
7
- import { r as o, t as s } from "./structure-BmisBK-3.js";
8
- import { t as c } from "./smart-card-DiC5aac3.js";
9
- import { i as l, t as u } from "./progress-B1VnCT0K.js";
10
- import { n as d, t as f } from "./number-DbV1Dija.js";
11
- import { i as p, n as m, r as h, t as g } from "./tabs-CDocW5D1.js";
12
- import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
4
+ import { t as n } from "./utils-CF3c95Io.js";
5
+ import { n as r } from "./buttons-BbfzgczK.js";
6
+ import { c as i, o as a } from "./typography-CSyJrh28.js";
7
+ import { r as o, t as s } from "./structure-C0V0_Fyf.js";
8
+ import { t as c } from "./smart-card-CqkzQsK-.js";
9
+ import { i as l, t as u } from "./progress-BvF2oCdV.js";
10
+ import { n as d } from "./composition.recipes-COdiFhxB.js";
11
+ import { n as f, t as p } from "./number-E_OiIfJz.js";
12
+ import { i as m, n as h, r as g, t as _ } from "./tabs-eqVsJZWO.js";
13
+ import { Fragment as v, jsx as y, jsxs as b } from "react/jsx-runtime";
13
14
  //#region src/components/blocks/analytics/usage-card/usage-card.data.ts
14
- function b(e) {
15
+ function x(e) {
15
16
  return typeof e == "number" && Number.isFinite(e) && e >= 0 ? e : null;
16
17
  }
17
- function x(e, t, n = 1) {
18
- if (b(e) === null || b(t) === null) return !0;
18
+ function S(e, t, n = 1) {
19
+ if (x(e) === null || x(t) === null) return !0;
19
20
  let r = Math.max(e, t) * 2 ** -52 * Math.max(1, n);
20
21
  return e - t > r;
21
22
  }
22
- function S(e, t) {
23
- let n = b(e), r = b(t), i = n === null ? "unavailable" : t === null ? "unlimited" : r === null ? "unavailable" : "limited", a = n !== null && r !== null && r > 0 ? n / r * 100 : n === 0 && r === 0 ? 0 : null;
23
+ function C(e, t) {
24
+ let n = x(e), r = x(t), i = n === null ? "unavailable" : t === null ? "unlimited" : r === null ? "unavailable" : "limited", a = n !== null && r !== null && r > 0 ? n / r * 100 : n === 0 && r === 0 ? 0 : null;
24
25
  return {
25
26
  kind: i,
26
27
  used: n,
@@ -31,8 +32,8 @@ function S(e, t) {
31
32
  excess: i === "limited" ? Math.max(0, (n ?? 0) - (r ?? 0)) : null
32
33
  };
33
34
  }
34
- function C(e) {
35
- let t = e.map((e) => b(e.value)), n = t.length > 0 && t.every((e) => e !== null), r = t.reduce((e, t) => Math.max(e, t ?? 0), 0);
35
+ function w(e) {
36
+ let t = e.map((e) => x(e.value)), n = t.length > 0 && t.every((e) => e !== null), r = t.reduce((e, t) => Math.max(e, t ?? 0), 0);
36
37
  return {
37
38
  values: t,
38
39
  average: n ? t.reduce((e, n) => e + (n ?? 0) / t.length, 0) : null,
@@ -41,7 +42,7 @@ function C(e) {
41
42
  }
42
43
  //#endregion
43
44
  //#region src/components/blocks/analytics/usage-card/usage-card.strings.ts
44
- var w = {
45
+ var T = {
45
46
  title: "Usage",
46
47
  usage: "Usage",
47
48
  used: "used",
@@ -61,28 +62,28 @@ var w = {
61
62
  error: "Unable to load usage",
62
63
  empty: "No usage data",
63
64
  retry: "Retry"
64
- }, T = [
65
+ }, E = [
65
66
  "bg-chart-1",
66
67
  "bg-chart-2",
67
68
  "bg-chart-3",
68
69
  "bg-chart-4",
69
70
  "bg-chart-5"
70
71
  ];
71
- function E(e, t) {
72
- return T[(e.color === void 0 ? t : e.color - 1) % T.length];
72
+ function D(e, t) {
73
+ return E[(e.color === void 0 ? t : e.color - 1) % E.length];
73
74
  }
74
- function D({ quota: e, strings: t, prominent: n = !1 }) {
75
- let r = S(e.used, e.limit);
76
- return /* @__PURE__ */ y(s, {
75
+ function O({ quota: e, strings: t, prominent: n = !1 }) {
76
+ let r = C(e.used, e.limit);
77
+ return /* @__PURE__ */ b(s, {
77
78
  gap: "dense",
78
79
  className: "usage-card--quota",
79
80
  children: [
80
- /* @__PURE__ */ y(s, {
81
+ /* @__PURE__ */ b(s, {
81
82
  direction: "horizontal",
82
83
  gap: "xs",
83
84
  align: "baseline",
84
85
  children: [
85
- /* @__PURE__ */ v(f, {
86
+ /* @__PURE__ */ y(p, {
86
87
  type: "inherit",
87
88
  value: r.used,
88
89
  emptyLabel: t.unavailable,
@@ -90,21 +91,21 @@ function D({ quota: e, strings: t, prominent: n = !1 }) {
90
91
  weight: n ? "semibold" : "medium",
91
92
  align: "left"
92
93
  }),
93
- !n && r.kind === "limited" && /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(i, {
94
+ !n && r.kind === "limited" && /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y(i, {
94
95
  tag: "span",
95
96
  type: "secondary",
96
97
  children: t.of
97
- }), /* @__PURE__ */ v(f, {
98
+ }), /* @__PURE__ */ y(p, {
98
99
  value: r.limit,
99
100
  type: "secondary",
100
101
  align: "left"
101
102
  })] }),
102
- e.unit && /* @__PURE__ */ v(i, {
103
+ e.unit && /* @__PURE__ */ y(i, {
103
104
  tag: "span",
104
105
  type: "secondary",
105
106
  children: e.unit
106
107
  }),
107
- n && r.used !== null && /* @__PURE__ */ v(i, {
108
+ n && r.used !== null && /* @__PURE__ */ y(i, {
108
109
  tag: "span",
109
110
  size: "xs",
110
111
  type: "secondary",
@@ -112,29 +113,29 @@ function D({ quota: e, strings: t, prominent: n = !1 }) {
112
113
  })
113
114
  ]
114
115
  }),
115
- n && r.kind === "limited" && /* @__PURE__ */ y(s, {
116
+ n && r.kind === "limited" && /* @__PURE__ */ b(s, {
116
117
  direction: "horizontal",
117
118
  gap: "xs",
118
119
  align: "baseline",
119
- children: [/* @__PURE__ */ v(i, {
120
+ children: [/* @__PURE__ */ y(i, {
120
121
  tag: "span",
121
122
  size: "xs",
122
123
  type: "secondary",
123
124
  children: t.of
124
- }), /* @__PURE__ */ v(f, {
125
+ }), /* @__PURE__ */ y(p, {
125
126
  value: r.limit,
126
127
  size: "xs",
127
128
  type: "secondary",
128
129
  align: "left"
129
130
  })]
130
131
  }),
131
- r.kind === "unlimited" && /* @__PURE__ */ v(i, {
132
+ r.kind === "unlimited" && /* @__PURE__ */ y(i, {
132
133
  tag: "span",
133
134
  size: "xs",
134
135
  type: "secondary",
135
136
  children: t.unlimited
136
137
  }),
137
- r.kind === "unavailable" && r.used !== null && /* @__PURE__ */ v(i, {
138
+ r.kind === "unavailable" && r.used !== null && /* @__PURE__ */ y(i, {
138
139
  tag: "span",
139
140
  size: "xs",
140
141
  type: "secondary",
@@ -143,59 +144,59 @@ function D({ quota: e, strings: t, prominent: n = !1 }) {
143
144
  ]
144
145
  });
145
146
  }
146
- function O({ quota: t, label: r, strings: i, categories: a }) {
147
- let o = S(t.used, t.limit), s = e();
147
+ function k({ quota: t, label: r, strings: i, categories: a }) {
148
+ let o = C(t.used, t.limit), s = e();
148
149
  if (o.kind !== "limited") return null;
149
- let c = a?.reduce((e, t) => e + (b(t.value) ?? 0), 0) ?? 0, d = !!a?.length && a.every((e) => b(e.value) !== null) && !x(c, o.used ?? 0, a.length), f = Math.max(o.limit ?? 0, o.used ?? 0), p = f > 0 ? f : 1, m = x(o.used ?? 0, c, a?.length) ? (o.used ?? 0) - c : 0, h = new Intl.NumberFormat(s.locale);
150
- return /* @__PURE__ */ v(u, {
150
+ let c = a?.reduce((e, t) => e + (x(t.value) ?? 0), 0) ?? 0, d = !!a?.length && a.every((e) => x(e.value) !== null) && !S(c, o.used ?? 0, a.length), f = Math.max(o.limit ?? 0, o.used ?? 0), p = f > 0 ? f : 1, m = S(o.used ?? 0, c, a?.length) ? (o.used ?? 0) - c : 0, h = new Intl.NumberFormat(s.locale);
151
+ return /* @__PURE__ */ y(u, {
151
152
  value: o.progress ?? 0,
152
153
  "aria-label": r,
153
154
  getAriaValueText: () => `${h.format(o.used ?? 0)} ${i.of} ${h.format(o.limit ?? 0)} ${t.unit ?? ""} ${i.used}`,
154
155
  tone: o.excess ? "destructive" : "primary",
155
- trackSlot: d ? /* @__PURE__ */ y(l, { children: [a?.map((e, t) => /* @__PURE__ */ v("span", {
156
+ trackSlot: d ? /* @__PURE__ */ b(l, { children: [a?.map((e, t) => /* @__PURE__ */ y("span", {
156
157
  "aria-hidden": "true",
157
- className: n("h-full shrink-0", E(e, t)),
158
+ className: n("h-full shrink-0", D(e, t)),
158
159
  style: { width: `${(e.value ?? 0) / p * 100}%` }
159
- }, e.id)), m > 0 && /* @__PURE__ */ v("span", {
160
+ }, e.id)), m > 0 && /* @__PURE__ */ y("span", {
160
161
  "aria-hidden": "true",
161
162
  className: "h-full shrink-0 bg-primary",
162
163
  style: { width: `${m / p * 100}%` }
163
164
  })] }) : void 0
164
165
  });
165
166
  }
166
- function k({ days: e, unit: t, strings: n }) {
167
- let r = C(e);
168
- return /* @__PURE__ */ y(s, {
167
+ function A({ days: e, unit: t, strings: n }) {
168
+ let r = w(e);
169
+ return /* @__PURE__ */ b(s, {
169
170
  gap: "sm",
170
171
  className: "usage-card--daily",
171
172
  children: [
172
- /* @__PURE__ */ y(s, {
173
+ /* @__PURE__ */ b(s, {
173
174
  direction: "horizontal",
174
175
  justify: "between",
175
176
  align: "baseline",
176
177
  gap: "sm",
177
- children: [/* @__PURE__ */ v(a, {
178
+ children: [/* @__PURE__ */ y(a, {
178
179
  className: "text-inherit",
179
180
  children: n.daily
180
- }), /* @__PURE__ */ y(s, {
181
+ }), /* @__PURE__ */ b(s, {
181
182
  direction: "horizontal",
182
183
  gap: "xs",
183
184
  align: "baseline",
184
185
  children: [
185
- /* @__PURE__ */ v(i, {
186
+ /* @__PURE__ */ y(i, {
186
187
  tag: "span",
187
188
  size: "xs",
188
189
  type: "secondary",
189
190
  children: n.average
190
191
  }),
191
- /* @__PURE__ */ v(f, {
192
+ /* @__PURE__ */ y(p, {
192
193
  type: "inherit",
193
194
  value: r.average,
194
195
  emptyLabel: n.unavailable,
195
196
  options: { maximumFractionDigits: 0 },
196
197
  weight: "medium"
197
198
  }),
198
- /* @__PURE__ */ v(i, {
199
+ /* @__PURE__ */ y(i, {
199
200
  tag: "span",
200
201
  size: "xs",
201
202
  type: "secondary",
@@ -204,42 +205,42 @@ function k({ days: e, unit: t, strings: n }) {
204
205
  ]
205
206
  })]
206
207
  }),
207
- e.length > 0 && /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v("svg", {
208
+ e.length > 0 && /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y("svg", {
208
209
  viewBox: `0 0 ${e.length * 10} 40`,
209
210
  preserveAspectRatio: "none",
210
211
  "aria-hidden": "true",
211
212
  className: "usage-card--daily-chart h-control-lg w-full overflow-visible",
212
- children: r.values.map((e, t) => e === null ? null : /* @__PURE__ */ v("rect", {
213
+ children: r.values.map((e, t) => e === null ? null : /* @__PURE__ */ y("rect", {
213
214
  x: t * 10 + 1,
214
215
  y: 40 - e / r.maximum * 40,
215
216
  width: 8,
216
217
  height: e / r.maximum * 40,
217
218
  className: "fill-chart-1"
218
219
  }, t))
219
- }), /* @__PURE__ */ y(s, {
220
+ }), /* @__PURE__ */ b(s, {
220
221
  direction: "horizontal",
221
222
  justify: "between",
222
223
  gap: "sm",
223
224
  "aria-hidden": "true",
224
- children: [/* @__PURE__ */ v(i, {
225
+ children: [/* @__PURE__ */ y(i, {
225
226
  size: "xs",
226
227
  type: "secondary",
227
228
  children: e[0]?.label
228
- }), e.length > 1 && /* @__PURE__ */ v(i, {
229
+ }), e.length > 1 && /* @__PURE__ */ y(i, {
229
230
  size: "xs",
230
231
  type: "secondary",
231
232
  children: e[e.length - 1]?.label
232
233
  })]
233
234
  })] }),
234
- /* @__PURE__ */ v("ol", {
235
+ /* @__PURE__ */ y("ol", {
235
236
  className: "sr-only",
236
237
  "aria-label": n.daily,
237
- children: e.map((e, r) => /* @__PURE__ */ y("li", { children: [
238
+ children: e.map((e, r) => /* @__PURE__ */ b("li", { children: [
238
239
  e.label,
239
240
  ": ",
240
- /* @__PURE__ */ v(f, {
241
+ /* @__PURE__ */ y(p, {
241
242
  type: "inherit",
242
- value: b(e.value),
243
+ value: x(e.value),
243
244
  emptyLabel: n.unavailable
244
245
  }),
245
246
  " ",
@@ -249,25 +250,25 @@ function k({ days: e, unit: t, strings: n }) {
249
250
  ]
250
251
  });
251
252
  }
252
- function A({ data: e, strings: t }) {
253
- let r = S(e.used, e.limit), c = e.categories?.reduce((e, t) => e + (b(t.value) ?? 0), 0) ?? 0, l = r.used !== null && x(c, r.used, e.categories?.length);
254
- return /* @__PURE__ */ y(s, {
253
+ function j({ data: e, strings: t }) {
254
+ let r = C(e.used, e.limit), c = e.categories?.reduce((e, t) => e + (x(t.value) ?? 0), 0) ?? 0, l = r.used !== null && S(c, r.used, e.categories?.length);
255
+ return /* @__PURE__ */ b(s, {
255
256
  gap: "lg",
256
257
  children: [
257
- /* @__PURE__ */ y(s, {
258
+ /* @__PURE__ */ b(s, {
258
259
  gap: "md",
259
260
  className: "usage-card--summary",
260
261
  children: [
261
- /* @__PURE__ */ y(s, {
262
+ /* @__PURE__ */ b(s, {
262
263
  direction: "horizontal",
263
264
  justify: "between",
264
265
  align: "start",
265
266
  gap: "sm",
266
- children: [/* @__PURE__ */ v(D, {
267
+ children: [/* @__PURE__ */ y(O, {
267
268
  quota: e,
268
269
  strings: t,
269
270
  prominent: !0
270
- }), r.percent !== null && /* @__PURE__ */ v(d, {
271
+ }), r.percent !== null && /* @__PURE__ */ y(f, {
271
272
  value: r.percent,
272
273
  scaled: !0,
273
274
  size: "lg",
@@ -276,46 +277,46 @@ function A({ data: e, strings: t }) {
276
277
  options: { maximumFractionDigits: 0 }
277
278
  })]
278
279
  }),
279
- /* @__PURE__ */ v(O, {
280
+ /* @__PURE__ */ y(k, {
280
281
  quota: e,
281
282
  label: t.usage,
282
283
  strings: t,
283
284
  categories: e.categories
284
285
  }),
285
- !!e.categories?.length && /* @__PURE__ */ v(o, {
286
- render: /* @__PURE__ */ v("ul", { "aria-label": t.breakdown }),
286
+ !!e.categories?.length && /* @__PURE__ */ y(o, {
287
+ render: /* @__PURE__ */ y("ul", { "aria-label": t.breakdown }),
287
288
  columns: 3,
288
289
  gap: "sm",
289
290
  className: "m-0 list-none p-0 font-sans usage-card--categories grid-cols-[minmax(0,1fr)_auto_minmax(5ch,max-content)]",
290
291
  children: e.categories.map((e, a) => {
291
- let o = b(e.value), c = r.used === null || o === null || l ? null : r.used === 0 ? 0 : o / r.used;
292
- return /* @__PURE__ */ y("li", {
292
+ let o = x(e.value), c = r.used === null || o === null || l ? null : r.used === 0 ? 0 : o / r.used;
293
+ return /* @__PURE__ */ b("li", {
293
294
  className: "usage-card--category col-span-full grid grid-cols-subgrid items-baseline",
294
295
  children: [
295
- /* @__PURE__ */ y(s, {
296
+ /* @__PURE__ */ b(s, {
296
297
  direction: "horizontal",
297
298
  gap: "sm",
298
299
  align: "center",
299
300
  wrap: !1,
300
301
  className: "min-w-0",
301
- children: [/* @__PURE__ */ v("span", {
302
+ children: [/* @__PURE__ */ y("span", {
302
303
  "aria-hidden": "true",
303
- className: n("size-icon-sm shrink-0 rounded-full", E(e, a))
304
- }), /* @__PURE__ */ v(i, {
304
+ className: n("size-icon-sm shrink-0 rounded-full", D(e, a))
305
+ }), /* @__PURE__ */ y(i, {
305
306
  type: "inherit",
306
307
  tag: "span",
307
308
  className: "break-words",
308
309
  children: e.label
309
310
  })]
310
311
  }),
311
- /* @__PURE__ */ v(f, {
312
+ /* @__PURE__ */ y(p, {
312
313
  type: "inherit",
313
314
  value: o,
314
315
  emptyLabel: t.unavailable,
315
316
  weight: "medium",
316
317
  className: "usage-card--category-value"
317
318
  }),
318
- /* @__PURE__ */ v(d, {
319
+ /* @__PURE__ */ y(f, {
319
320
  value: c,
320
321
  emptyLabel: t.unavailable,
321
322
  type: "secondary",
@@ -326,44 +327,44 @@ function A({ data: e, strings: t }) {
326
327
  }, e.id);
327
328
  })
328
329
  }),
329
- l && /* @__PURE__ */ v(i, {
330
+ l && /* @__PURE__ */ y(i, {
330
331
  size: "xs",
331
332
  type: "secondary",
332
333
  children: t.inconsistentBreakdown
333
334
  })
334
335
  ]
335
336
  }),
336
- e.daily && /* @__PURE__ */ v(k, {
337
+ e.daily && /* @__PURE__ */ y(A, {
337
338
  days: e.daily,
338
339
  unit: e.unit,
339
340
  strings: t
340
341
  }),
341
- !!e.resources?.length && /* @__PURE__ */ y(s, {
342
+ !!e.resources?.length && /* @__PURE__ */ b(s, {
342
343
  gap: "sm",
343
- children: [/* @__PURE__ */ v(a, {
344
+ children: [/* @__PURE__ */ y(a, {
344
345
  className: "text-inherit",
345
346
  children: t.resources
346
- }), /* @__PURE__ */ v(o, {
347
+ }), /* @__PURE__ */ y(o, {
347
348
  columns: 1,
348
349
  gap: "md",
349
350
  className: "usage-card--resources @sm/card:grid-cols-3",
350
- children: e.resources.map((e) => /* @__PURE__ */ y(s, {
351
+ children: e.resources.map((e) => /* @__PURE__ */ b(s, {
351
352
  gap: "sm",
352
353
  className: "usage-card--resource min-w-0",
353
354
  role: "group",
354
355
  "aria-label": e.label,
355
356
  children: [
356
- /* @__PURE__ */ v(i, {
357
+ /* @__PURE__ */ y(i, {
357
358
  type: "inherit",
358
359
  tag: "span",
359
360
  weight: "medium",
360
361
  children: e.label
361
362
  }),
362
- /* @__PURE__ */ v(D, {
363
+ /* @__PURE__ */ y(O, {
363
364
  quota: e,
364
365
  strings: t
365
366
  }),
366
- /* @__PURE__ */ v(O, {
367
+ /* @__PURE__ */ y(k, {
367
368
  quota: e,
368
369
  label: e.label,
369
370
  strings: t
@@ -375,98 +376,98 @@ function A({ data: e, strings: t }) {
375
376
  ]
376
377
  });
377
378
  }
378
- function j({ data: e, status: a = "ready", periods: o, period: l, onPeriodChange: u, onRetry: d, loadingSlot: _, errorSlot: b, emptySlot: x, footerAction: C, strings: T, ...E }) {
379
- let D = t(w, T), O = a === "ready" && !!e, k = O ? S(e.used, e.limit) : null, j = l ?? o?.[0]?.value ?? "", M = !!o?.length, N;
380
- N = a === "loading" ? /* @__PURE__ */ v("div", {
379
+ function M({ data: e, status: a = "ready", periods: o, period: l, onPeriodChange: u, onRetry: f, loadingSlot: v, errorSlot: x, emptySlot: S, footerAction: w, strings: E, ...D }) {
380
+ let O = t(T, E), k = a === "ready" && !!e, A = k ? C(e.used, e.limit) : null, M = l ?? o?.[0]?.value ?? "", N = !!o?.length, P;
381
+ P = a === "loading" ? /* @__PURE__ */ y("div", {
381
382
  role: "status",
382
- children: _ ?? /* @__PURE__ */ v(i, {
383
+ children: v ?? /* @__PURE__ */ y(i, {
383
384
  type: "secondary",
384
- children: D.loading
385
+ children: O.loading
385
386
  })
386
- }) : a === "error" ? /* @__PURE__ */ y(s, {
387
+ }) : a === "error" ? /* @__PURE__ */ b(s, {
387
388
  role: "alert",
388
389
  gap: "sm",
389
- children: [b ?? /* @__PURE__ */ v(i, {
390
+ children: [x ?? /* @__PURE__ */ y(i, {
390
391
  type: "inherit",
391
- children: D.error
392
- }), d && /* @__PURE__ */ v(r, {
392
+ children: O.error
393
+ }), f && /* @__PURE__ */ y(r, {
393
394
  tone: "secondary",
394
- onClick: d,
395
- children: D.retry
395
+ onClick: f,
396
+ children: O.retry
396
397
  })]
397
- }) : O ? /* @__PURE__ */ v(A, {
398
+ }) : k ? /* @__PURE__ */ y(j, {
398
399
  data: e,
399
- strings: D
400
- }) : /* @__PURE__ */ v("div", { children: x ?? /* @__PURE__ */ v(i, {
400
+ strings: O
401
+ }) : /* @__PURE__ */ y("div", { children: S ?? /* @__PURE__ */ y(i, {
401
402
  type: "secondary",
402
- children: D.empty
403
+ children: O.empty
403
404
  }) });
404
- let P = (k?.kind === "limited" || C) && /* @__PURE__ */ y(s, {
405
+ let F = (A?.kind === "limited" || w) && /* @__PURE__ */ b(s, {
405
406
  direction: "horizontal",
406
407
  justify: "between",
407
408
  align: "center",
408
409
  gap: "md",
409
- children: [k?.kind === "limited" && /* @__PURE__ */ y(s, {
410
+ children: [A?.kind === "limited" && /* @__PURE__ */ b(s, {
410
411
  direction: "horizontal",
411
412
  gap: "xs",
412
413
  align: "baseline",
413
414
  children: [
414
- /* @__PURE__ */ v(f, {
415
+ /* @__PURE__ */ y(p, {
415
416
  type: "inherit",
416
- value: k.excess ? k.excess : k.remaining,
417
+ value: A.excess ? A.excess : A.remaining,
417
418
  weight: "medium"
418
419
  }),
419
- e?.unit && /* @__PURE__ */ v(i, {
420
+ e?.unit && /* @__PURE__ */ y(i, {
420
421
  tag: "span",
421
422
  type: "secondary",
422
423
  children: e.unit
423
424
  }),
424
- /* @__PURE__ */ v(i, {
425
+ /* @__PURE__ */ y(i, {
425
426
  tag: "span",
426
427
  type: "secondary",
427
- children: k.excess ? D.overLimit : D.remaining
428
+ children: A.excess ? O.overLimit : O.remaining
428
429
  })
429
430
  ]
430
- }), C]
431
- }), F = /* @__PURE__ */ v(c, {
432
- ...E,
433
- title: E.title ?? D.title,
434
- className: n("usage-card--component min-w-0", E.className),
431
+ }), w]
432
+ }), I = /* @__PURE__ */ y(c, {
433
+ ...D,
434
+ title: D.title ?? O.title,
435
+ className: n("usage-card--component min-w-0", D.className),
435
436
  "data-component": "usage-card",
436
437
  "data-slot": "usage-card",
437
438
  "aria-busy": a === "loading" || void 0,
438
- headerAction: M ? /* @__PURE__ */ y(s, {
439
+ headerAction: N ? /* @__PURE__ */ b(s, {
439
440
  direction: "horizontal",
440
- gap: "sm",
441
+ gap: d.commands,
441
442
  align: "center",
442
443
  className: "usage-card--header-actions max-w-full",
443
- children: [/* @__PURE__ */ v(h, {
444
+ children: [/* @__PURE__ */ y(g, {
444
445
  scrollable: !0,
445
- "aria-label": D.periods,
446
- children: o.map((e) => /* @__PURE__ */ v(p, {
446
+ "aria-label": O.periods,
447
+ children: o.map((e) => /* @__PURE__ */ y(m, {
447
448
  value: e.value,
448
449
  disabled: e.disabled || !u,
449
450
  children: e.label
450
451
  }, e.value))
451
- }), E.headerAction]
452
- }) : E.headerAction,
453
- footerSlot: P,
454
- children: M ? /* @__PURE__ */ v(m, {
455
- value: j,
456
- children: N
457
- }) : N
452
+ }), D.headerAction]
453
+ }) : D.headerAction,
454
+ footerSlot: F,
455
+ children: N ? /* @__PURE__ */ y(h, {
456
+ value: M,
457
+ children: P
458
+ }) : P
458
459
  });
459
- return M ? /* @__PURE__ */ v(g, {
460
- value: j,
460
+ return N ? /* @__PURE__ */ y(_, {
461
+ value: M,
461
462
  onValueChange: (e) => {
462
463
  typeof e == "string" && u?.(e);
463
464
  },
464
465
  className: "min-w-0",
465
- children: F
466
- }) : F;
466
+ children: I
467
+ }) : I;
467
468
  }
468
- j.displayName = "UsageCard";
469
+ M.displayName = "UsageCard";
469
470
  //#endregion
470
- export { w as n, j as t };
471
+ export { T as n, M as t };
471
472
 
472
- //# sourceMappingURL=usage-card-BhO5eqkX.js.map
473
+ //# sourceMappingURL=usage-card-DVTRDmGz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-card-DVTRDmGz.js","names":["NumberValue","_Fragment","useFormattingConfig","cn","Button","Text","DisplayLabel","Grid","Stack","Card","ProgressTrack","Progress","compositionRhythm","Percent","Number$1","TabsTrigger","TabsContent","TabsList","Tabs","validUsage","value","usageExceeds","actual","expected","tolerance","terms","quotaSummary","used","usedValue","limit","limitValue","kind","ratio","dailySummary","values","days","day","complete","maximum","max","sum","defaultUsageCardStrings","chartColors","categoryColor","category","index","QuotaValue","summary","quota","strings","prominent","Fragment","QuotaProgress","formatting","categories","total","segmented","denominator","unclassified","format","label","DailyUsage","unit","UsageBody","data","categoryTotal","inconsistent","percent","resource","UsageCard","stringsProp","cardProps","useStrings","ready","status","selectedPeriod","period","periods","hasPeriods","body","loadingSlot","errorSlot","onRetry","emptySlot","footer","footerAction","card","item","onPeriodChange"],"sources":["../src/components/blocks/analytics/usage-card/usage-card.data.ts","../src/components/blocks/analytics/usage-card/usage-card.strings.ts","../src/components/blocks/analytics/usage-card/usage-card.tsx"],"sourcesContent":["import type { UsageCardDay } from './types';\n\nexport function validUsage(value: number | null | undefined): number | null {\n\treturn typeof value === 'number' && Number.isFinite(value) && value >= 0 ? value : null;\n}\n\n/** Account only for rounding accumulated by positive finite category additions. */\nexport function usageExceeds(actual: number, expected: number, terms = 1): boolean {\n\tif (validUsage(actual) === null || validUsage(expected) === null) return true;\n\tconst magnitude = Math.max(actual, expected);\n\tconst tolerance = magnitude * Number.EPSILON * Math.max(1, terms);\n\treturn actual - expected > tolerance;\n}\n\n/** Retain actual numbers; cap only geometry. Zero quota has no finite percentage. */\nexport function quotaSummary(usedValue: number | null, limitValue: number | null | undefined) {\n\tconst used = validUsage(usedValue);\n\tconst limit = validUsage(limitValue);\n\tconst kind = used === null ? 'unavailable' : limitValue === null ? 'unlimited' : limit === null ? 'unavailable' : 'limited';\n\tconst ratio = used !== null && limit !== null && limit > 0 ? used / limit * 100 : used === 0 && limit === 0 ? 0 : null;\n\tconst percent = ratio !== null && Number.isFinite(ratio) ? ratio : null;\n\treturn {\n\t\tkind, used, limit, percent,\n\t\tprogress: kind === 'limited' ? limit === 0 ? used === 0 ? 0 : 100 : Math.min(100, ratio ?? 0) : null,\n\t\tremaining: kind === 'limited' ? Math.max(0, (limit ?? 0) - (used ?? 0)) : null,\n\t\texcess: kind === 'limited' ? Math.max(0, (used ?? 0) - (limit ?? 0)) : null,\n\t} as const;\n}\n\nexport function dailySummary(days: readonly UsageCardDay[]) {\n\tconst values = days.map(day => validUsage(day.value));\n\tconst complete = values.length > 0 && values.every(value => value !== null);\n\tconst maximum = values.reduce<number>((max, value) => Math.max(max, value ?? 0), 0);\n\treturn {\n\t\tvalues,\n\t\t// Dividing before summing avoids overflow for finite, very large values.\n\t\taverage: complete ? values.reduce<number>((sum, value) => sum + (value ?? 0) / values.length, 0) : null,\n\t\tmaximum: maximum > 0 ? maximum : 1,\n\t};\n}\n","export interface UsageCardStrings {\n\ttitle: string;\n\tusage: string;\n\tused: string;\n\tof: string;\n\tunlimited: string;\n\tunavailable: string;\n\tremaining: string;\n\toverLimit: string;\n\tbreakdown: string;\n\tinconsistentBreakdown: string;\n\tdaily: string;\n\taverage: string;\n\tperDay: string;\n\tresources: string;\n\tperiods: string;\n\tloading: string;\n\terror: string;\n\tempty: string;\n\tretry: string;\n}\nexport const defaultUsageCardStrings: UsageCardStrings = {\n\ttitle: 'Usage', usage: 'Usage', used: 'used', of: 'of', unlimited: 'Unlimited',\n\tunavailable: 'Unavailable', remaining: 'remaining', overLimit: 'over limit',\n\tbreakdown: 'Usage breakdown', inconsistentBreakdown: 'Category totals exceed reported usage.',\n\tdaily: 'Daily usage', average: 'Average', perDay: 'per day', resources: 'Resources',\n\tperiods: 'Usage period', loading: 'Loading usage', error: 'Unable to load usage',\n\tempty: 'No usage data', retry: 'Retry',\n};\n","import {compositionRhythm} from '../../../base/structure/composition.recipes';\nimport type { ReactNode } from 'react';\n\nimport { Button } from '../../../base/buttons';\nimport { Card } from '../../../base/cards';\nimport { Progress, ProgressTrack } from '../../../base/feedback';\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '../../../base/navigation';\nimport { Grid, Stack } from '../../../base/structure';\nimport { Number as NumberValue, Percent } from '../../../primitives';\nimport { DisplayLabel, Text } from '../../../typography';\nimport { useStrings } from '../../../../lib/strings';\nimport { useFormattingConfig } from '../../../../lib/ui-provider';\nimport { cn } from '../../../../lib/utils';\n\nimport { dailySummary, quotaSummary, usageExceeds, validUsage } from './usage-card.data';\nimport { defaultUsageCardStrings, type UsageCardStrings } from './usage-card.strings';\nimport type { UsageCardCategory, UsageCardData, UsageCardDay, UsageCardProps, UsageCardQuota } from './types';\n\nconst chartColors = ['bg-chart-1', 'bg-chart-2', 'bg-chart-3', 'bg-chart-4', 'bg-chart-5'] as const;\nfunction categoryColor(category: UsageCardCategory, index: number) {\n\treturn chartColors[(category.color === undefined ? index : category.color - 1) % chartColors.length];\n}\n\nfunction QuotaValue({ quota, strings, prominent = false }: { quota: UsageCardQuota; strings: UsageCardStrings; prominent?: boolean }) {\n\tconst summary = quotaSummary(quota.used, quota.limit);\n\treturn <Stack gap=\"dense\" className=\"usage-card--quota\">\n\t\t<Stack direction=\"horizontal\" gap=\"xs\" align=\"baseline\">\n\t\t\t<NumberValue type=\"inherit\" value={summary.used} emptyLabel={strings.unavailable} size={prominent ? 'xl' : undefined} weight={prominent ? 'semibold' : 'medium'} align=\"left\" />\n\t\t\t{!prominent && summary.kind === 'limited' && <>\n\t\t\t\t<Text tag=\"span\" type=\"secondary\">{strings.of}</Text>\n\t\t\t\t<NumberValue value={summary.limit} type=\"secondary\" align=\"left\" />\n\t\t\t</>}\n\t\t\t{quota.unit && <Text tag=\"span\" type=\"secondary\">{quota.unit}</Text>}\n\t\t\t{prominent && summary.used !== null && <Text tag=\"span\" size=\"xs\" type=\"secondary\">{strings.used}</Text>}\n\t\t</Stack>\n\t\t{prominent && summary.kind === 'limited' && <Stack direction=\"horizontal\" gap=\"xs\" align=\"baseline\">\n\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\">{strings.of}</Text>\n\t\t\t<NumberValue value={summary.limit} size=\"xs\" type=\"secondary\" align=\"left\" />\n\t\t</Stack>}\n\t\t{summary.kind === 'unlimited' && <Text tag=\"span\" size=\"xs\" type=\"secondary\">{strings.unlimited}</Text>}\n\t\t{summary.kind === 'unavailable' && summary.used !== null && <Text tag=\"span\" size=\"xs\" type=\"secondary\">{strings.unavailable}</Text>}\n\t</Stack>;\n}\n\nfunction QuotaProgress({ quota, label, strings, categories }: { quota: UsageCardQuota; label: string; strings: UsageCardStrings; categories?: readonly UsageCardCategory[] }) {\n\tconst summary = quotaSummary(quota.used, quota.limit);\n\tconst formatting = useFormattingConfig();\n\tif (summary.kind !== 'limited') return null;\n\tconst sum = categories?.reduce((total, category) => total + (validUsage(category.value) ?? 0), 0) ?? 0;\n\tconst segmented = !!categories?.length && categories.every(category => validUsage(category.value) !== null) && !usageExceeds(sum, summary.used ?? 0, categories.length);\n\tconst maximum = Math.max(summary.limit ?? 0, summary.used ?? 0);\n\tconst denominator = maximum > 0 ? maximum : 1;\n\tconst unclassified = usageExceeds(summary.used ?? 0, sum, categories?.length) ? (summary.used ?? 0) - sum : 0;\n\tconst format = new Intl.NumberFormat(formatting.locale);\n\treturn <Progress\n\t\tvalue={summary.progress ?? 0}\n\t\taria-label={label}\n\t\tgetAriaValueText={() => `${format.format(summary.used ?? 0)} ${strings.of} ${format.format(summary.limit ?? 0)} ${quota.unit ?? ''} ${strings.used}`}\n\t\ttone={summary.excess ? 'destructive' : 'primary'}\n\t\ttrackSlot={segmented ? <ProgressTrack>\n\t\t\t{categories?.map((category, index) => <span key={category.id} aria-hidden=\"true\" className={cn('h-full shrink-0', categoryColor(category, index))} style={{ width: `${(category.value ?? 0) / denominator * 100}%` }} />)}\n\t\t\t{unclassified > 0 && <span aria-hidden=\"true\" className=\"h-full shrink-0 bg-primary\" style={{ width: `${unclassified / denominator * 100}%` }} />}\n\t\t</ProgressTrack> : undefined}\n\t/>;\n}\n\nfunction DailyUsage({ days, unit, strings }: { days: readonly UsageCardDay[]; unit?: string; strings: UsageCardStrings }) {\n\tconst summary = dailySummary(days);\n\treturn <Stack gap=\"sm\" className=\"usage-card--daily\">\n\t\t<Stack direction=\"horizontal\" justify=\"between\" align=\"baseline\" gap=\"sm\">\n\t\t\t<DisplayLabel className=\"text-inherit\">{strings.daily}</DisplayLabel>\n\t\t\t<Stack direction=\"horizontal\" gap=\"xs\" align=\"baseline\">\n\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\">{strings.average}</Text>\n\t\t\t\t<NumberValue type=\"inherit\" value={summary.average} emptyLabel={strings.unavailable} options={{ maximumFractionDigits: 0 }} weight=\"medium\" />\n\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\">{strings.perDay}</Text>\n\t\t\t</Stack>\n\t\t</Stack>\n\t\t{days.length > 0 && <>\n\t\t\t<svg viewBox={`0 0 ${days.length * 10} 40`} preserveAspectRatio=\"none\" aria-hidden=\"true\" className=\"usage-card--daily-chart h-control-lg w-full overflow-visible\">\n\t\t\t\t{summary.values.map((value, index) => value === null ? null : <rect key={index} x={index * 10 + 1} y={40 - value / summary.maximum * 40} width={8} height={value / summary.maximum * 40} className=\"fill-chart-1\" />)}\n\t\t\t</svg>\n\t\t\t<Stack direction=\"horizontal\" justify=\"between\" gap=\"sm\" aria-hidden=\"true\">\n\t\t\t\t<Text size=\"xs\" type=\"secondary\">{days[0]?.label}</Text>\n\t\t\t\t{days.length > 1 && <Text size=\"xs\" type=\"secondary\">{days[days.length - 1]?.label}</Text>}\n\t\t\t</Stack>\n\t\t</>}\n\t\t<ol className=\"sr-only\" aria-label={strings.daily}>\n\t\t\t{days.map((day, index) => <li key={index}>{day.label}: <NumberValue type=\"inherit\" value={validUsage(day.value)} emptyLabel={strings.unavailable} /> {unit}</li>)}\n\t\t</ol>\n\t</Stack>;\n}\n\nfunction UsageBody({ data, strings }: { data: UsageCardData; strings: UsageCardStrings }) {\n\tconst summary = quotaSummary(data.used, data.limit);\n\tconst categoryTotal = data.categories?.reduce((total, category) => total + (validUsage(category.value) ?? 0), 0) ?? 0;\n\tconst inconsistent = summary.used !== null && usageExceeds(categoryTotal, summary.used, data.categories?.length);\n\treturn <Stack gap=\"lg\">\n\t\t<Stack gap=\"md\" className=\"usage-card--summary\">\n\t\t\t<Stack direction=\"horizontal\" justify=\"between\" align=\"start\" gap=\"sm\">\n\t\t\t\t<QuotaValue quota={data} strings={strings} prominent />\n\t\t\t\t{summary.percent !== null && <Percent value={summary.percent} scaled size=\"lg\" weight=\"medium\" type=\"secondary\" options={{ maximumFractionDigits: 0 }} />}\n\t\t\t</Stack>\n\t\t\t<QuotaProgress quota={data} label={strings.usage} strings={strings} categories={data.categories} />\n\t\t\t{!!data.categories?.length && <Grid render={<ul aria-label={strings.breakdown} />} columns={3} gap=\"sm\" className=\"m-0 list-none p-0 font-sans usage-card--categories grid-cols-[minmax(0,1fr)_auto_minmax(5ch,max-content)]\">\n\t\t\t\t{data.categories.map((category, index) => {\n\t\t\t\t\tconst value = validUsage(category.value);\n\t\t\t\t\tconst percent = summary.used === null || value === null || inconsistent ? null : summary.used === 0 ? 0 : value / summary.used;\n\t\t\t\t\treturn <li key={category.id} className=\"usage-card--category col-span-full grid grid-cols-subgrid items-baseline\">\n\t\t\t\t\t\t<Stack direction=\"horizontal\" gap=\"sm\" align=\"center\" wrap={false} className=\"min-w-0\">\n\t\t\t\t\t\t\t<span aria-hidden=\"true\" className={cn('size-icon-sm shrink-0 rounded-full', categoryColor(category, index))} />\n\t\t\t\t\t\t\t<Text type=\"inherit\" tag=\"span\" className=\"break-words\">{category.label}</Text>\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t<NumberValue type=\"inherit\" value={value} emptyLabel={strings.unavailable} weight=\"medium\" className=\"usage-card--category-value\" />\n\t\t\t\t\t\t<Percent value={percent} emptyLabel={strings.unavailable} type=\"secondary\" options={{ maximumFractionDigits: 0 }} className=\"usage-card--category-share\" />\n\t\t\t\t\t</li>;\n\t\t\t\t})}\n\t\t\t</Grid>}\n\t\t\t{inconsistent && <Text size=\"xs\" type=\"secondary\">{strings.inconsistentBreakdown}</Text>}\n\t\t</Stack>\n\t\t{data.daily && <DailyUsage days={data.daily} unit={data.unit} strings={strings} />}\n\t\t{!!data.resources?.length && <Stack gap=\"sm\">\n\t\t\t<DisplayLabel className=\"text-inherit\">{strings.resources}</DisplayLabel>\n\t\t\t<Grid columns={1} gap=\"md\" className=\"usage-card--resources @sm/card:grid-cols-3\">\n\t\t\t\t{data.resources.map(resource => <Stack key={resource.id} gap=\"sm\" className=\"usage-card--resource min-w-0\" role=\"group\" aria-label={resource.label}>\n\t\t\t\t\t<Text type=\"inherit\" tag=\"span\" weight=\"medium\">{resource.label}</Text>\n\t\t\t\t\t<QuotaValue quota={resource} strings={strings} />\n\t\t\t\t\t<QuotaProgress quota={resource} label={resource.label} strings={strings} />\n\t\t\t\t</Stack>)}\n\t\t\t</Grid>\n\t\t</Stack>}\n\t</Stack>;\n}\n\n/** App-owned usage data and period callbacks in the canonical Card composition. */\nexport function UsageCard({ data, status = 'ready', periods, period, onPeriodChange, onRetry, loadingSlot, errorSlot, emptySlot, footerAction, strings: stringsProp, ...cardProps }: UsageCardProps) {\n\tconst strings = useStrings(defaultUsageCardStrings, stringsProp);\n\tconst ready = status === 'ready' && !!data;\n\tconst summary = ready ? quotaSummary(data.used, data.limit) : null;\n\tconst selectedPeriod = period ?? periods?.[0]?.value ?? '';\n\tconst hasPeriods = !!periods?.length;\n\tlet body: ReactNode;\n\tif (status === 'loading') body = <div role=\"status\">{loadingSlot ?? <Text type=\"secondary\">{strings.loading}</Text>}</div>;\n\telse if (status === 'error') body = <Stack role=\"alert\" gap=\"sm\">{errorSlot ?? <Text type=\"inherit\">{strings.error}</Text>}{onRetry && <Button tone=\"secondary\" onClick={onRetry}>{strings.retry}</Button>}</Stack>;\n\telse if (!ready) body = <div>{emptySlot ?? <Text type=\"secondary\">{strings.empty}</Text>}</div>;\n\telse body = <UsageBody data={data} strings={strings} />;\n\tconst footer = (summary?.kind === 'limited' || footerAction) && <Stack direction=\"horizontal\" justify=\"between\" align=\"center\" gap=\"md\">\n\t\t{summary?.kind === 'limited' && <Stack direction=\"horizontal\" gap=\"xs\" align=\"baseline\">\n\t\t\t<NumberValue type=\"inherit\" value={summary.excess ? summary.excess : summary.remaining} weight=\"medium\" />\n\t\t\t{data?.unit && <Text tag=\"span\" type=\"secondary\">{data.unit}</Text>}\n\t\t\t<Text tag=\"span\" type=\"secondary\">{summary.excess ? strings.overLimit : strings.remaining}</Text>\n\t\t</Stack>}\n\t\t{footerAction}\n\t</Stack>;\n\tconst card = <Card\n\t\t{...cardProps}\n\t\ttitle={cardProps.title ?? strings.title}\n\t\tclassName={cn('usage-card--component min-w-0', cardProps.className)}\n\t\tdata-component=\"usage-card\"\n\t\tdata-slot=\"usage-card\"\n\t\taria-busy={status === 'loading' || undefined}\n\t\theaderAction={hasPeriods ? <Stack direction=\"horizontal\" gap={compositionRhythm.commands} align=\"center\" className=\"usage-card--header-actions max-w-full\">\n\t\t\t<TabsList scrollable aria-label={strings.periods}>\n\t\t\t\t{periods.map(item => <TabsTrigger key={item.value} value={item.value} disabled={item.disabled || !onPeriodChange}>{item.label}</TabsTrigger>)}\n\t\t\t</TabsList>\n\t\t\t{cardProps.headerAction}\n\t\t</Stack> : cardProps.headerAction}\n\t\tfooterSlot={footer}\n\t>\n\t\t{hasPeriods ? <TabsContent value={selectedPeriod}>{body}</TabsContent> : body}\n\t</Card>;\n\treturn hasPeriods ? <Tabs value={selectedPeriod} onValueChange={value => { if (typeof value === 'string') onPeriodChange?.(value); }} className=\"min-w-0\">{card}</Tabs> : card;\n}\n\nUsageCard.displayName = 'UsageCard';\n"],"mappings":"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"}