themelia-react-ui 1.0.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (640) hide show
  1. package/CHANGELOG.md +417 -0
  2. package/README.md +67 -16
  3. package/dist/{accordion-B-5Focs8.js → accordion-CQXVcd7Q.js} +15 -15
  4. package/dist/accordion-CQXVcd7Q.js.map +1 -0
  5. package/dist/action-menu-BTpyPWJ2.js +264 -0
  6. package/dist/action-menu-BTpyPWJ2.js.map +1 -0
  7. package/dist/affordance-geometry.generated-CCIXb2A1.js +68 -0
  8. package/dist/affordance-geometry.generated-CCIXb2A1.js.map +1 -0
  9. package/dist/{ai-artifact-B5tPpXnS.js → ai-artifact-2PQ2fItc.js} +206 -215
  10. package/dist/ai-artifact-2PQ2fItc.js.map +1 -0
  11. package/dist/{app-shell-at8Kt4l_.js → app-shell-BE_j8-AT.js} +11 -10
  12. package/dist/app-shell-BE_j8-AT.js.map +1 -0
  13. package/dist/{attachment-BO2R47wn.js → attachment-q69dlt5Y.js} +14 -14
  14. package/dist/attachment-q69dlt5Y.js.map +1 -0
  15. package/dist/auth-M3vGMgDR.js +723 -0
  16. package/dist/auth-M3vGMgDR.js.map +1 -0
  17. package/dist/{avatar-Bpzty83c.js → avatar-djdaaQ_s.js} +15 -13
  18. package/dist/avatar-djdaaQ_s.js.map +1 -0
  19. package/dist/{badge-BZXZT9wd.js → badge-0tATj-tW.js} +9 -9
  20. package/dist/badge-0tATj-tW.js.map +1 -0
  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/buttons.js +3 -2
  27. package/dist/base/cards.js +3 -3
  28. package/dist/base/carousel.js +33 -35
  29. package/dist/base/carousel.js.map +1 -1
  30. package/dist/base/cascader.js +246 -222
  31. package/dist/base/cascader.js.map +1 -1
  32. package/dist/base/chart.js +1 -1
  33. package/dist/base/choice-inputs.js +2 -2
  34. package/dist/base/code-block.js +1 -1
  35. package/dist/base/combobox.js +1 -1
  36. package/dist/base/command.js +1 -1
  37. package/dist/base/copyable.js +1 -1
  38. package/dist/base/date-pickers.js +3 -3
  39. package/dist/base/display.js +7 -7
  40. package/dist/base/feedback.js +4 -4
  41. package/dist/base/forms-numeric.js +1 -1
  42. package/dist/base/forms.js +2 -2
  43. package/dist/base/inline-edit.js +94 -92
  44. package/dist/base/inline-edit.js.map +1 -1
  45. package/dist/base/item.js +1 -1
  46. package/dist/base/media-gallery.js +1 -1
  47. package/dist/base/navigation.js +6 -6
  48. package/dist/base/popover-menu.js +1 -1
  49. package/dist/base/popover.js +1 -1
  50. package/dist/base/qr-code.js +7 -4
  51. package/dist/base/qr-code.js.map +1 -1
  52. package/dist/base/repeaters.js +53 -53
  53. package/dist/base/repeaters.js.map +1 -1
  54. package/dist/base/sheet.js +1 -1
  55. package/dist/base/sidebar.js +1 -1
  56. package/dist/base/signature-pad.js +84 -82
  57. package/dist/base/signature-pad.js.map +1 -1
  58. package/dist/base/skeleton.js +1 -1
  59. package/dist/base/spinner.js +1 -1
  60. package/dist/base/structure.js +1 -1
  61. package/dist/base/table.js +1 -1
  62. package/dist/base/text-inputs.js +2 -2
  63. package/dist/base/toaster.js +7 -7
  64. package/dist/base/toaster.js.map +1 -1
  65. package/dist/base/tree.js +1 -1
  66. package/dist/base/upload-queue.js +1 -1
  67. package/dist/base/upload.js +3 -3
  68. package/dist/base/value-inputs.js +1 -1
  69. package/dist/blocks/admin.js +228 -219
  70. package/dist/blocks/admin.js.map +1 -1
  71. package/dist/blocks/ai.js +182 -212
  72. package/dist/blocks/ai.js.map +1 -1
  73. package/dist/blocks/analytics/usage-card.js +1 -1
  74. package/dist/blocks/analytics.js +665 -620
  75. package/dist/blocks/analytics.js.map +1 -1
  76. package/dist/blocks/collaboration.js +2 -2
  77. package/dist/blocks/commerce/receipt.js +1 -1
  78. package/dist/blocks/commerce.js +1439 -1553
  79. package/dist/blocks/commerce.js.map +1 -1
  80. package/dist/blocks/data-display.js +1 -1
  81. package/dist/blocks/onboarding.js +6 -6
  82. package/dist/blocks/onboarding.js.map +1 -1
  83. package/dist/blocks/planning.js +88 -97
  84. package/dist/blocks/planning.js.map +1 -1
  85. package/dist/blocks/timelines.js +1 -1
  86. package/dist/{breadcrumbs-DdQ_I5ra.js → breadcrumbs-BG_FfMK4.js} +10 -9
  87. package/dist/breadcrumbs-BG_FfMK4.js.map +1 -0
  88. package/dist/button-BS3KDg00.js +674 -0
  89. package/dist/button-BS3KDg00.js.map +1 -0
  90. package/dist/{button-BS6l5JUw.js → button-R9CCoH7A.js} +3 -3
  91. package/dist/button-R9CCoH7A.js.map +1 -0
  92. package/dist/buttons-DS0ZIwJ_.js +99 -0
  93. package/dist/buttons-DS0ZIwJ_.js.map +1 -0
  94. package/dist/{cards-Cum56XOF.js → cards-QoJ4syG9.js} +12 -12
  95. package/dist/{cards-Cum56XOF.js.map → cards-QoJ4syG9.js.map} +1 -1
  96. package/dist/chart-DwYRKKc-.js +152 -0
  97. package/dist/chart-DwYRKKc-.js.map +1 -0
  98. package/dist/checkbox-B7ygNTYp.js +35 -0
  99. package/dist/checkbox-B7ygNTYp.js.map +1 -0
  100. package/dist/choice-inputs-DrJ17tpL.js +752 -0
  101. package/dist/choice-inputs-DrJ17tpL.js.map +1 -0
  102. package/dist/{code-block-xHKbAJDj.js → code-block-CD0B7M93.js} +27 -27
  103. package/dist/code-block-CD0B7M93.js.map +1 -0
  104. package/dist/{collapsible-DsnktFNv.js → collapsible-oMUGM4tr.js} +3 -3
  105. package/dist/{collapsible-DsnktFNv.js.map → collapsible-oMUGM4tr.js.map} +1 -1
  106. package/dist/{collection-content-C4fthJV_.js → collection-content-Ys-OZOkY.js} +3 -3
  107. package/dist/{collection-content-C4fthJV_.js.map → collection-content-Ys-OZOkY.js.map} +1 -1
  108. package/dist/combobox-6dvVny2q.js +272 -0
  109. package/dist/combobox-6dvVny2q.js.map +1 -0
  110. package/dist/combobox-CB7039j7.js +865 -0
  111. package/dist/combobox-CB7039j7.js.map +1 -0
  112. package/dist/{command-C0xe7u9B.js → command-kPMPjIxJ.js} +35 -31
  113. package/dist/command-kPMPjIxJ.js.map +1 -0
  114. package/dist/{comments-DviPLnwy.js → comments-You0Bzbr.js} +434 -409
  115. package/dist/comments-You0Bzbr.js.map +1 -0
  116. package/dist/components/base/accordion/accordion-variants.d.ts +3 -3
  117. package/dist/components/base/action-menu/action-menu.d.ts +7 -2
  118. package/dist/components/base/avatar/stacked-avatars.d.ts +5 -4
  119. package/dist/components/base/badge/badge.d.ts +1 -1
  120. package/dist/components/base/badge/badge.recipes.d.ts +4 -4
  121. package/dist/components/base/buttons/base-button.d.ts +7 -0
  122. package/dist/components/base/buttons/button-group.recipes.d.ts +2 -2
  123. package/dist/components/base/buttons/button.recipes.d.ts +10 -19
  124. package/dist/components/base/buttons/button.variants.d.ts +1 -0
  125. package/dist/components/base/buttons/loader-button.d.ts +3 -1
  126. package/dist/components/base/buttons/text-button.d.ts +2 -2
  127. package/dist/components/base/buttons/use-pending-button-focus.d.ts +3 -0
  128. package/dist/components/base/cards/card.recipes.d.ts +13 -5
  129. package/dist/components/base/cards/partials/card-primitives.d.ts +9 -4
  130. package/dist/components/base/cards/smart-card.types.d.ts +1 -1
  131. package/dist/components/base/carousel/carousel.d.ts +3 -1
  132. package/dist/components/base/chart/chart.d.ts +7 -7
  133. package/dist/components/base/choice-inputs/checkbox.d.ts +6 -7
  134. package/dist/components/base/choice-inputs/choice-types.d.ts +10 -1
  135. package/dist/components/base/choice-inputs/pill-radio-group.d.ts +9 -0
  136. package/dist/components/base/choice-inputs/select-popup.d.ts +9 -1
  137. package/dist/components/base/choice-inputs/switch-card.d.ts +1 -1
  138. package/dist/components/base/date-pickers/date-picker-field.d.ts +23 -0
  139. package/dist/components/base/date-pickers/date-picker.recipes.d.ts +5 -18
  140. package/dist/components/base/date-pickers/datepicker.types.d.ts +16 -3
  141. package/dist/components/base/display/alert-dialog.d.ts +8 -2
  142. package/dist/components/base/display/content-block.d.ts +4 -2
  143. package/dist/components/base/display/date-block.d.ts +1 -1
  144. package/dist/components/base/display/dialog.d.ts +12 -5
  145. package/dist/components/base/display/surface-title.d.ts +6 -1
  146. package/dist/components/base/feedback/alert.d.ts +1 -1
  147. package/dist/components/base/feedback/state-display.d.ts +5 -4
  148. package/dist/components/base/forms/form-field.d.ts +1 -0
  149. package/dist/components/base/forms/form-sizing.d.ts +35 -3
  150. package/dist/components/base/forms/workflow.d.ts +2 -0
  151. package/dist/components/base/forms-numeric/coordinates-input.d.ts +3 -0
  152. package/dist/components/base/forms-numeric/rounding-mode-select.d.ts +4 -1
  153. package/dist/components/base/navigation/dropdown-menu.d.ts +2 -2
  154. package/dist/components/base/navigation/language-switcher.d.ts +4 -1
  155. package/dist/components/base/navigation/overflow-tab-bar.d.ts +7 -0
  156. package/dist/components/base/navigation/page-header/page-header.d.ts +4 -1
  157. package/dist/components/base/navigation/tabs.d.ts +3 -5
  158. package/dist/components/base/popover/popover.recipes.d.ts +3 -3
  159. package/dist/components/base/qr-code/qr-code.d.ts +2 -0
  160. package/dist/components/base/sheet/index.d.ts +29 -1
  161. package/dist/components/base/sheet/sheet.d.ts +14 -5
  162. package/dist/components/base/spinner/spinner.d.ts +3 -2
  163. package/dist/components/base/structure/structure.types.d.ts +1 -1
  164. package/dist/components/base/table/index.d.ts +1 -1
  165. package/dist/components/base/text-inputs/clear-native-field.d.ts +2 -0
  166. package/dist/components/base/text-inputs/input-group.d.ts +2 -2
  167. package/dist/components/base/text-inputs/input-trailing-action.d.ts +3 -0
  168. package/dist/components/base/upload/upload.recipes.d.ts +11 -0
  169. package/dist/components/base/value-inputs/date-time-input.d.ts +4 -2
  170. package/dist/components/base/value-inputs/tags-input.d.ts +2 -0
  171. package/dist/components/blocks/admin/api-key-list/api-key-list.types.d.ts +1 -1
  172. package/dist/components/blocks/analytics/format-metric-value.d.ts +11 -1
  173. package/dist/components/blocks/analytics/index.d.ts +1 -1
  174. package/dist/components/blocks/analytics/types.d.ts +1 -1
  175. package/dist/components/blocks/analytics/use-metric-format-options.d.ts +3 -0
  176. package/dist/components/blocks/collaboration/message/message.recipes.d.ts +12 -0
  177. package/dist/components/blocks/commerce/address-card/address-card.d.ts +1 -1
  178. package/dist/components/blocks/commerce/address-card/types.d.ts +3 -1
  179. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.d.ts +4 -0
  180. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.types.d.ts +2 -2
  181. package/dist/components/blocks/commerce/discount-stack/types.d.ts +1 -1
  182. package/dist/components/blocks/commerce/inventory-section/types.d.ts +4 -1
  183. package/dist/components/blocks/commerce/loyalty-points/types.d.ts +1 -1
  184. package/dist/components/blocks/commerce/order-status/types.d.ts +4 -0
  185. package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +1 -1
  186. package/dist/components/blocks/commerce/payment-method/types.d.ts +3 -1
  187. package/dist/components/blocks/commerce/seo-listing/seo-listing-card.d.ts +1 -1
  188. package/dist/components/blocks/commerce/seo-listing/types.d.ts +3 -1
  189. package/dist/components/blocks/commerce/vendor-profile/types.d.ts +4 -1
  190. package/dist/components/blocks/data-display/dense-info-card/dense-info.strings.d.ts +4 -1
  191. package/dist/components/blocks/data-display/empty-state/partials/illustrations/document-stack.d.ts +1 -4
  192. package/dist/components/blocks/data-display/empty-state/partials/illustrations/inbox-clean.d.ts +1 -4
  193. package/dist/components/blocks/data-display/empty-state/partials/illustrations/index.d.ts +3 -3
  194. package/dist/components/blocks/data-display/empty-state/partials/illustrations/stacked-cards.d.ts +1 -6
  195. package/dist/components/blocks/data-display/inline-stat/inline-stat.d.ts +4 -1
  196. package/dist/components/features/combobox/components/error-message.d.ts +1 -1
  197. package/dist/components/features/comments/hooks/use-attachment-upload.d.ts +5 -0
  198. package/dist/components/features/filters/facets/search-facet.d.ts +0 -12
  199. package/dist/components/features/filters/facets/tags-facet.d.ts +1 -1
  200. package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +1 -1
  201. package/dist/components/features/media-library/media-library.d.ts +1 -1
  202. package/dist/components/features/media-library/media-library.types.d.ts +9 -1
  203. package/dist/components/features/media-library/partials/media-library-partials.d.ts +1 -1
  204. package/dist/components/features/overlays/alert-dialog.d.ts +1 -1
  205. package/dist/components/features/overlays/drawer.d.ts +1 -1
  206. package/dist/components/features/overlays/hooks/use-overlay-actions.d.ts +2 -2
  207. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +11 -4
  208. package/dist/components/features/overlays/hooks/use-pending-overlay-focus.d.ts +2 -0
  209. package/dist/components/features/overlays/overlay-tone-icon.d.ts +37 -0
  210. package/dist/components/features/overlays/overlays.types.d.ts +46 -22
  211. package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
  212. package/dist/components/features/products/partials/index.d.ts +1 -1
  213. package/dist/components/features/products/partials/product-metric-tile.d.ts +6 -0
  214. package/dist/components/features/products/partials/product-tone.d.ts +11 -1
  215. package/dist/components/features/products/products.types.d.ts +2 -1
  216. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +2 -1
  217. package/dist/components/features/table/data-table.d.ts +1 -1
  218. package/dist/components/features/table/partials/cell-renderers.d.ts +1 -1
  219. package/dist/components/features/table/table.types.d.ts +1 -1
  220. package/dist/components/features/theme-tweaker/theme-provider-settings.d.ts +3 -1
  221. package/dist/components/layout/auth/auth.types.d.ts +1 -0
  222. package/dist/components/layout/page/index.d.ts +1 -1
  223. package/dist/components/layout/page/page.d.ts +0 -1
  224. package/dist/components/layout/page/page.types.d.ts +62 -6
  225. package/dist/components/layout/page/partials/page-header-commands.d.ts +13 -0
  226. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  227. package/dist/components/layout/sidebar/sidebar.context.d.ts +1 -1
  228. package/dist/components/layout/sidebar/sidebar.types.d.ts +4 -0
  229. package/dist/components/layout/workspace/workspace.types.d.ts +3 -0
  230. package/dist/components/primitives/date.d.ts +16 -3
  231. package/dist/components/primitives/dimensions.d.ts +6 -0
  232. package/dist/components/primitives/duration.d.ts +6 -0
  233. package/dist/components/primitives/file-size.d.ts +6 -0
  234. package/dist/components/primitives/index.d.ts +1 -1
  235. package/dist/components/primitives/initials.d.ts +11 -2
  236. package/dist/components/primitives/link.d.ts +7 -0
  237. package/dist/components/primitives/money.d.ts +29 -7
  238. package/dist/components/primitives/number.d.ts +17 -0
  239. package/dist/components/primitives/value-typography.d.ts +54 -0
  240. package/dist/components/primitives/value.d.ts +31 -6
  241. package/dist/components/typography/heading.d.ts +13 -2
  242. package/dist/components/typography/index.d.ts +1 -1
  243. package/dist/components/typography/label.d.ts +3 -0
  244. package/dist/components/typography/running-text.d.ts +12 -0
  245. package/dist/components/typography/text-link.d.ts +23 -1
  246. package/dist/components/typography/text.d.ts +12 -0
  247. package/dist/components/typography/text.styles.d.ts +37 -5
  248. package/dist/components/ui/button.d.ts +1 -1
  249. package/dist/components/ui/checkbox.d.ts +5 -0
  250. package/dist/components/ui/overlay.recipes.d.ts +15 -2
  251. package/dist/components/ui/popover.d.ts +1 -1
  252. package/dist/components/ui/select.d.ts +3 -1
  253. package/dist/components/ui/sidebar.d.ts +1 -1
  254. package/dist/components/ui/switch.d.ts +5 -0
  255. package/dist/components/ui/table.d.ts +2 -1
  256. package/dist/container.recipes-D9t8MHR3.js +27 -0
  257. package/dist/container.recipes-D9t8MHR3.js.map +1 -0
  258. package/dist/{containers-6s-ucRQQ.js → containers-D_L4mTVb.js} +34 -57
  259. package/dist/containers-D_L4mTVb.js.map +1 -0
  260. package/dist/control-group-recipes-DBXmfh2E.js +21 -0
  261. package/dist/control-group-recipes-DBXmfh2E.js.map +1 -0
  262. package/dist/{copyable-B7SBXJMr.js → copyable-DDjTeW_j.js} +6 -6
  263. package/dist/{copyable-B7SBXJMr.js.map → copyable-DDjTeW_j.js.map} +1 -1
  264. package/dist/data-display-3xWQUnMA.js +1335 -0
  265. package/dist/data-display-3xWQUnMA.js.map +1 -0
  266. package/dist/date-picker-DrDFj8Lo.js +1527 -0
  267. package/dist/date-picker-DrDFj8Lo.js.map +1 -0
  268. package/dist/date-pickers-CnFCb0n2.js +174 -0
  269. package/dist/date-pickers-CnFCb0n2.js.map +1 -0
  270. package/dist/date-uf3z37Nm.js +144 -0
  271. package/dist/date-uf3z37Nm.js.map +1 -0
  272. package/dist/{display-CFM5myut.js → display-DrdvPwF0.js} +25 -25
  273. package/dist/display-DrdvPwF0.js.map +1 -0
  274. package/dist/{dropdown-menu-BlnyHr-9.js → dropdown-menu-CURh59jb.js} +22 -15
  275. package/dist/dropdown-menu-CURh59jb.js.map +1 -0
  276. package/dist/features/activities.js +177 -163
  277. package/dist/features/activities.js.map +1 -1
  278. package/dist/features/ai-chat.js +187 -183
  279. package/dist/features/ai-chat.js.map +1 -1
  280. package/dist/features/async-preview.js +9 -9
  281. package/dist/features/async-preview.js.map +1 -1
  282. package/dist/features/combobox.js +1 -1
  283. package/dist/features/comments.js +1 -1
  284. package/dist/features/data-view.js +25 -23
  285. package/dist/features/data-view.js.map +1 -1
  286. package/dist/features/email-composer/engine.js +1 -1
  287. package/dist/features/email-composer.js +353 -355
  288. package/dist/features/email-composer.js.map +1 -1
  289. package/dist/features/event-calendar.js +346 -354
  290. package/dist/features/event-calendar.js.map +1 -1
  291. package/dist/features/filters.js +1 -1
  292. package/dist/features/global-search.js +225 -227
  293. package/dist/features/global-search.js.map +1 -1
  294. package/dist/features/kanban.js +29 -29
  295. package/dist/features/kanban.js.map +1 -1
  296. package/dist/features/map.js +59 -58
  297. package/dist/features/map.js.map +1 -1
  298. package/dist/features/media-library.js +898 -900
  299. package/dist/features/media-library.js.map +1 -1
  300. package/dist/features/mentions.js +1 -1
  301. package/dist/features/overlays.js +1 -1
  302. package/dist/features/products.js +1412 -1444
  303. package/dist/features/products.js.map +1 -1
  304. package/dist/features/questionnaire.js +51 -49
  305. package/dist/features/questionnaire.js.map +1 -1
  306. package/dist/features/resource-assignment.js +103 -97
  307. package/dist/features/resource-assignment.js.map +1 -1
  308. package/dist/features/resource.js +13 -13
  309. package/dist/features/resource.js.map +1 -1
  310. package/dist/features/rich-text-editor.js +2 -2
  311. package/dist/features/schema-form.js +187 -183
  312. package/dist/features/schema-form.js.map +1 -1
  313. package/dist/features/suggestions.js +3 -3
  314. package/dist/features/sync.js +7 -7
  315. package/dist/features/sync.js.map +1 -1
  316. package/dist/features/table.js +1 -1
  317. package/dist/features/theme-tweaker.js +508 -503
  318. package/dist/features/theme-tweaker.js.map +1 -1
  319. package/dist/{feedback-DWUkgEjR.js → feedback-C7nR0UtT.js} +30 -31
  320. package/dist/feedback-C7nR0UtT.js.map +1 -0
  321. package/dist/field-affordance-recipes-CkOCdE2y.js +46 -0
  322. package/dist/field-affordance-recipes-CkOCdE2y.js.map +1 -0
  323. package/dist/{field-state-recipes-CBTRt9Bt.js → field-state-recipes-C-MFBX_8.js} +5 -5
  324. package/dist/field-state-recipes-C-MFBX_8.js.map +1 -0
  325. package/dist/{filters-BhsUtsxW.js → filters-Da-gNPsE.js} +760 -765
  326. package/dist/filters-Da-gNPsE.js.map +1 -0
  327. package/dist/{form-field-Bn7ZH1rA.js → form-field-VZRULhUK.js} +20 -12
  328. package/dist/form-field-VZRULhUK.js.map +1 -0
  329. package/dist/form-sizing-uWP4lzVh.js +126 -0
  330. package/dist/form-sizing-uWP4lzVh.js.map +1 -0
  331. package/dist/{forms-B7pzS25o.js → forms-DDeEnXSY.js} +38 -38
  332. package/dist/forms-DDeEnXSY.js.map +1 -0
  333. package/dist/forms-numeric-D3CO60IF.js +905 -0
  334. package/dist/forms-numeric-D3CO60IF.js.map +1 -0
  335. package/dist/{header-C59QZyxV.js → header-2ycNqGOR.js} +42 -37
  336. package/dist/header-2ycNqGOR.js.map +1 -0
  337. package/dist/{hooks-CM1Vp9Pe.js → hooks-DQ5SPwZw.js} +2 -2
  338. package/dist/{hooks-CM1Vp9Pe.js.map → hooks-DQ5SPwZw.js.map} +1 -1
  339. package/dist/{http-CLTVJc5I.js → http-CdEIHyQf.js} +2 -2
  340. package/dist/http-CdEIHyQf.js.map +1 -0
  341. package/dist/{icon-badge-Dv0RYQwj.js → icon-badge-DKlaKXoo.js} +4 -4
  342. package/dist/{icon-badge-Dv0RYQwj.js.map → icon-badge-DKlaKXoo.js.map} +1 -1
  343. package/dist/index.js +2 -2
  344. package/dist/input-BoLm9Hks.js +20 -0
  345. package/dist/input-BoLm9Hks.js.map +1 -0
  346. package/dist/input-DhQdBnV3.js +255 -0
  347. package/dist/input-DhQdBnV3.js.map +1 -0
  348. package/dist/item-xzh8Df65.js +264 -0
  349. package/dist/item-xzh8Df65.js.map +1 -0
  350. package/dist/layout/app-shell.js +1 -1
  351. package/dist/layout/auth.js +1 -1
  352. package/dist/layout/containers.js +1 -1
  353. package/dist/layout/header.js +1 -1
  354. package/dist/layout/hooks.js +1 -1
  355. package/dist/layout/navigation.js +1 -1
  356. package/dist/layout/page.js +1 -1
  357. package/dist/layout/settings.js +1 -1
  358. package/dist/layout/sidebar.js +2 -2
  359. package/dist/layout/workspace.js +1 -1
  360. package/dist/layout.js +10 -10
  361. package/dist/lib/affordance-geometry.generated.d.ts +46 -10
  362. package/dist/lib/control-group-recipes.d.ts +22 -0
  363. package/dist/lib/field-affordance-recipes.d.ts +70 -2
  364. package/dist/lib/field-state-recipes.d.ts +6 -4
  365. package/dist/lib/format.d.ts +9 -0
  366. package/dist/lib/money-format.d.ts +30 -0
  367. package/dist/lib/navigation-row-recipes.d.ts +3 -2
  368. package/dist/lib/overlay-anatomy-recipes.d.ts +2 -2
  369. package/dist/lib/surface-recipes.d.ts +13 -8
  370. package/dist/lib/token-merge.generated.d.ts +144 -2
  371. package/dist/lib/track-recipes.d.ts +1 -1
  372. package/dist/lib/ui-provider/provider.d.ts +7 -2
  373. package/dist/lib/ui-provider/store.d.ts +6 -2
  374. package/dist/lib/ui-provider/types.d.ts +9 -4
  375. package/dist/lib/use-prefers-reduced-motion.d.ts +2 -0
  376. package/dist/lib/utils.js +1 -1
  377. package/dist/media-gallery-DQUQ0m3O.js +201 -0
  378. package/dist/media-gallery-DQUQ0m3O.js.map +1 -0
  379. package/dist/{mentions-B8Ko-fhS.js → mentions-DwnO1hh4.js} +40 -39
  380. package/dist/{mentions-B8Ko-fhS.js.map → mentions-DwnO1hh4.js.map} +1 -1
  381. package/dist/message-YfFmbXNP.js +127 -0
  382. package/dist/message-YfFmbXNP.js.map +1 -0
  383. package/dist/{navigation-BUIn2Qxx.js → navigation-Cbp5V8gG.js} +27 -28
  384. package/dist/navigation-Cbp5V8gG.js.map +1 -0
  385. package/dist/navigation-Cs1npsPm.js +300 -0
  386. package/dist/navigation-Cs1npsPm.js.map +1 -0
  387. package/dist/{navigation-row-recipes-GVh11KiT.js → navigation-row-recipes-DlU-4QYO.js} +3 -3
  388. package/dist/navigation-row-recipes-DlU-4QYO.js.map +1 -0
  389. package/dist/number-CKRBYmZK.js +352 -0
  390. package/dist/number-CKRBYmZK.js.map +1 -0
  391. package/dist/overlay.recipes-CNO2S9V6.js +34 -0
  392. package/dist/overlay.recipes-CNO2S9V6.js.map +1 -0
  393. package/dist/overlays-DhZO7N-I.js +994 -0
  394. package/dist/overlays-DhZO7N-I.js.map +1 -0
  395. package/dist/page-C6R_8jFt.js +325 -0
  396. package/dist/page-C6R_8jFt.js.map +1 -0
  397. package/dist/{page-header-DQRa0jug.js → page-header-hUTzcRZX.js} +12 -12
  398. package/dist/page-header-hUTzcRZX.js.map +1 -0
  399. package/dist/{pagination-C29vvt3I.js → pagination-Cm0jqa3I.js} +21 -21
  400. package/dist/pagination-Cm0jqa3I.js.map +1 -0
  401. package/dist/{popover-CoLDEg19.js → popover-Dcv_9jxr.js} +23 -22
  402. package/dist/popover-Dcv_9jxr.js.map +1 -0
  403. package/dist/{popover-menu-GLIQTJTx.js → popover-menu-DnRFKnHP.js} +6 -6
  404. package/dist/{popover-menu-GLIQTJTx.js.map → popover-menu-DnRFKnHP.js.map} +1 -1
  405. package/dist/{popover.recipes-zgBhMlUu.js → popover.recipes-wmbvL8Ah.js} +5 -5
  406. package/dist/popover.recipes-wmbvL8Ah.js.map +1 -0
  407. package/dist/primitives-BHrwQXFC.js +379 -0
  408. package/dist/primitives-BHrwQXFC.js.map +1 -0
  409. package/dist/primitives.js +5 -5
  410. package/dist/{progress-BOe8l_FZ.js → progress-Br9WTFya.js} +12 -11
  411. package/dist/progress-Br9WTFya.js.map +1 -0
  412. package/dist/{receipt-BM8xsGFy.js → receipt-CV89q1fs.js} +8 -8
  413. package/dist/{receipt-BM8xsGFy.js.map → receipt-CV89q1fs.js.map} +1 -1
  414. package/dist/rich-text-editor-CF8QYt5p.js +574 -0
  415. package/dist/rich-text-editor-CF8QYt5p.js.map +1 -0
  416. package/dist/{rich-text-editor.recipes-DxvOE0Lp.js → rich-text-editor.recipes-CnrbmTS1.js} +35 -26
  417. package/dist/rich-text-editor.recipes-CnrbmTS1.js.map +1 -0
  418. package/dist/{rich-text-B7sBAdDG.js → rich-text-j-FGAeZW.js} +4 -4
  419. package/dist/{rich-text-B7sBAdDG.js.map → rich-text-j-FGAeZW.js.map} +1 -1
  420. package/dist/{scroll-area-BheMQ270.js → scroll-area-DRdr16Pt.js} +3 -3
  421. package/dist/scroll-area-DRdr16Pt.js.map +1 -0
  422. package/dist/{separator-DO0EbCEm.js → separator-BMEvwnSX.js} +2 -2
  423. package/dist/{separator-DO0EbCEm.js.map → separator-BMEvwnSX.js.map} +1 -1
  424. package/dist/{separator-Gk_WXH-l.js → separator-Do5GWDYi.js} +4 -4
  425. package/dist/separator-Do5GWDYi.js.map +1 -0
  426. package/dist/services/actions/action-adapters.d.ts +4 -0
  427. package/dist/services/actions.js +8 -3
  428. package/dist/services/actions.js.map +1 -1
  429. package/dist/{settings-BnCyyPOJ.js → settings-DHk0L2MF.js} +20 -19
  430. package/dist/settings-DHk0L2MF.js.map +1 -0
  431. package/dist/sheet-DRFNY1_D.js +207 -0
  432. package/dist/sheet-DRFNY1_D.js.map +1 -0
  433. package/dist/sidebar-Cb8WzOvE.js +511 -0
  434. package/dist/sidebar-Cb8WzOvE.js.map +1 -0
  435. package/dist/{sidebar-DPR7fmqN.js → sidebar-Crc9M9JV.js} +220 -201
  436. package/dist/sidebar-Crc9M9JV.js.map +1 -0
  437. package/dist/{skeleton-CmT1ppqb.js → skeleton-DVMXr15h.js} +5 -5
  438. package/dist/{skeleton-CmT1ppqb.js.map → skeleton-DVMXr15h.js.map} +1 -1
  439. package/dist/smart-card-Bek-TwUp.js +599 -0
  440. package/dist/smart-card-Bek-TwUp.js.map +1 -0
  441. package/dist/{spinner-BY9HbUEh.js → spinner-CmTAbEp0.js} +8 -6
  442. package/dist/spinner-CmTAbEp0.js.map +1 -0
  443. package/dist/{structure-MvKVq-oL.js → structure-hzCW-XsV.js} +3 -3
  444. package/dist/{structure-MvKVq-oL.js.map → structure-hzCW-XsV.js.map} +1 -1
  445. package/dist/{structure.recipes-Bqhf9oIh.js → structure.recipes-EPz60cU8.js} +37 -19
  446. package/dist/structure.recipes-EPz60cU8.js.map +1 -0
  447. package/dist/style.css +1 -1
  448. package/dist/surface-recipes-DOdoBXGm.js +28 -0
  449. package/dist/surface-recipes-DOdoBXGm.js.map +1 -0
  450. package/dist/table-D6zKeYQX.js +162 -0
  451. package/dist/table-D6zKeYQX.js.map +1 -0
  452. package/dist/table-Dn4XSrSB.js +1444 -0
  453. package/dist/table-Dn4XSrSB.js.map +1 -0
  454. package/dist/tabs-Dk8E_knt.js +189 -0
  455. package/dist/tabs-Dk8E_knt.js.map +1 -0
  456. package/dist/text-inputs-BFpku0Qd.js +331 -0
  457. package/dist/text-inputs-BFpku0Qd.js.map +1 -0
  458. package/dist/{text.styles-BwB7vAF2.js → text.styles-g4He6UIW.js} +26 -15
  459. package/dist/text.styles-g4He6UIW.js.map +1 -0
  460. package/dist/theme.css +90 -124
  461. package/dist/themes/green.css +24 -0
  462. package/dist/{timelines-B9ICkQcV.js → timelines-CxuAFIc2.js} +97 -104
  463. package/dist/timelines-CxuAFIc2.js.map +1 -0
  464. package/dist/track-recipes-CDcKmndW.js +10 -0
  465. package/dist/track-recipes-CDcKmndW.js.map +1 -0
  466. package/dist/{tree-BdWSaoFT.js → tree-BotPlyiD.js} +13 -13
  467. package/dist/{tree-BdWSaoFT.js.map → tree-BotPlyiD.js.map} +1 -1
  468. package/dist/typography/rich-text.js +1 -1
  469. package/dist/typography-CAr3dQhX.js +116 -0
  470. package/dist/typography-CAr3dQhX.js.map +1 -0
  471. package/dist/typography.js +2 -2
  472. package/dist/{ui-provider-CftIB6TY.js → ui-provider-D2_TeLqw.js} +22 -22
  473. package/dist/ui-provider-D2_TeLqw.js.map +1 -0
  474. package/dist/ui-provider.js +1 -1
  475. package/dist/{upload-D8Za5x_c.js → upload-B0WHW7ak.js} +278 -274
  476. package/dist/upload-B0WHW7ak.js.map +1 -0
  477. package/dist/{upload-queue-hIIYBLS7.js → upload-queue-BHZ_wBfd.js} +72 -75
  478. package/dist/upload-queue-BHZ_wBfd.js.map +1 -0
  479. package/dist/{usage-card-DnmnJ58D.js → usage-card-U0YBLTNT.js} +31 -33
  480. package/dist/usage-card-U0YBLTNT.js.map +1 -0
  481. package/dist/utils-Cospvlj1.js +4445 -0
  482. package/dist/utils-Cospvlj1.js.map +1 -0
  483. package/dist/value-inputs-CjfzGMsN.js +854 -0
  484. package/dist/value-inputs-CjfzGMsN.js.map +1 -0
  485. package/dist/value-typography-Deb3yQZg.js +116 -0
  486. package/dist/value-typography-Deb3yQZg.js.map +1 -0
  487. package/dist/{workspace-C1PZmk8L.js → workspace-YoFjXi6i.js} +97 -105
  488. package/dist/workspace-YoFjXi6i.js.map +1 -0
  489. package/docs/consumer-skill/SKILL.md +123 -119
  490. package/docs/consumer-skill/examples/analytics.tsx +34 -0
  491. package/docs/consumer-skill/examples/app-layout.tsx +42 -14
  492. package/docs/consumer-skill/examples/detail.tsx +20 -5
  493. package/docs/consumer-skill/examples/edit.tsx +1 -1
  494. package/docs/consumer-skill/examples/layout-blocks.tsx +20 -0
  495. package/docs/consumer-skill/examples/manifest.json +37 -3
  496. package/docs/consumer-skill/examples/scoped-directory.tsx +2 -2
  497. package/docs/consumer-skill/examples/website.tsx +56 -0
  498. package/docs/consumer-skill/references/analytics.md +70 -0
  499. package/docs/consumer-skill/references/composition.md +195 -9
  500. package/docs/consumer-skill/references/design-contract.md +33 -7
  501. package/docs/consumer-skill/references/discovery.md +80 -5
  502. package/docs/consumer-skill/references/installation.md +22 -0
  503. package/docs/consumer-skill/references/integration.md +46 -1
  504. package/docs/consumer-skill/references/public-api.json +2083 -237
  505. package/docs/consumer-skill/references/review.md +74 -6
  506. package/docs/consumer-skill/references/theming.md +59 -8
  507. package/docs/consumer-skill/references/tokens.json +180 -9
  508. package/docs/consumer-skill/references/workflows.md +34 -0
  509. package/docs/consumer-skill/scripts/check-composition.mjs +1 -1
  510. package/docs/consumer-skill/scripts/composition-policy.mjs +271 -18
  511. package/docs/consumer-skill/scripts/discovery.mjs +69 -9
  512. package/docs/consumer-skill/scripts/pin-button-defaults.mjs +95 -0
  513. package/docs/consumer-skill/scripts/surface-policy.mjs +44 -0
  514. package/package.json +11 -6
  515. package/dist/accordion-B-5Focs8.js.map +0 -1
  516. package/dist/action-menu-Cx3SdfbN.js +0 -265
  517. package/dist/action-menu-Cx3SdfbN.js.map +0 -1
  518. package/dist/affordance-geometry.generated-D8Jcfb0G.js +0 -32
  519. package/dist/affordance-geometry.generated-D8Jcfb0G.js.map +0 -1
  520. package/dist/ai-artifact-B5tPpXnS.js.map +0 -1
  521. package/dist/app-shell-at8Kt4l_.js.map +0 -1
  522. package/dist/attachment-BO2R47wn.js.map +0 -1
  523. package/dist/auth-OFwWSAap.js +0 -704
  524. package/dist/auth-OFwWSAap.js.map +0 -1
  525. package/dist/avatar-Bpzty83c.js.map +0 -1
  526. package/dist/badge-BZXZT9wd.js.map +0 -1
  527. package/dist/breadcrumbs-DdQ_I5ra.js.map +0 -1
  528. package/dist/button-BS6l5JUw.js.map +0 -1
  529. package/dist/buttons-Co6GavvM.js +0 -674
  530. package/dist/buttons-Co6GavvM.js.map +0 -1
  531. package/dist/chart-DVfcwQu6.js +0 -149
  532. package/dist/chart-DVfcwQu6.js.map +0 -1
  533. package/dist/checkbox-BavDRjF7.js +0 -34
  534. package/dist/checkbox-BavDRjF7.js.map +0 -1
  535. package/dist/choice-inputs-CC7XqPQO.js +0 -619
  536. package/dist/choice-inputs-CC7XqPQO.js.map +0 -1
  537. package/dist/code-block-xHKbAJDj.js.map +0 -1
  538. package/dist/combobox-DEbdr-3u.js +0 -273
  539. package/dist/combobox-DEbdr-3u.js.map +0 -1
  540. package/dist/combobox-xv3yJbzl.js +0 -850
  541. package/dist/combobox-xv3yJbzl.js.map +0 -1
  542. package/dist/command-C0xe7u9B.js.map +0 -1
  543. package/dist/comments-DviPLnwy.js.map +0 -1
  544. package/dist/containers-6s-ucRQQ.js.map +0 -1
  545. package/dist/data-display-cWIRdeaf.js +0 -1129
  546. package/dist/data-display-cWIRdeaf.js.map +0 -1
  547. package/dist/date-BFNMnrS5.js +0 -140
  548. package/dist/date-BFNMnrS5.js.map +0 -1
  549. package/dist/date-picker-CA6ogMQB.js +0 -1521
  550. package/dist/date-picker-CA6ogMQB.js.map +0 -1
  551. package/dist/date-pickers-BPIKLdsD.js +0 -224
  552. package/dist/date-pickers-BPIKLdsD.js.map +0 -1
  553. package/dist/display-CFM5myut.js.map +0 -1
  554. package/dist/dropdown-menu-BlnyHr-9.js.map +0 -1
  555. package/dist/feedback-DWUkgEjR.js.map +0 -1
  556. package/dist/field-affordance-recipes-IjzPrCTw.js +0 -17
  557. package/dist/field-affordance-recipes-IjzPrCTw.js.map +0 -1
  558. package/dist/field-state-recipes-CBTRt9Bt.js.map +0 -1
  559. package/dist/filters-BhsUtsxW.js.map +0 -1
  560. package/dist/form-field-Bn7ZH1rA.js.map +0 -1
  561. package/dist/form-sizing-BWs70_a2.js +0 -100
  562. package/dist/form-sizing-BWs70_a2.js.map +0 -1
  563. package/dist/format-iamDSqs2.js +0 -110
  564. package/dist/format-iamDSqs2.js.map +0 -1
  565. package/dist/forms-B7pzS25o.js.map +0 -1
  566. package/dist/forms-numeric-BUBxELBv.js +0 -867
  567. package/dist/forms-numeric-BUBxELBv.js.map +0 -1
  568. package/dist/header-C59QZyxV.js.map +0 -1
  569. package/dist/http-CLTVJc5I.js.map +0 -1
  570. package/dist/input-WwYQZJzG.js +0 -202
  571. package/dist/input-WwYQZJzG.js.map +0 -1
  572. package/dist/input-ci9fIgFH.js +0 -20
  573. package/dist/input-ci9fIgFH.js.map +0 -1
  574. package/dist/item-pJ0GsOiJ.js +0 -257
  575. package/dist/item-pJ0GsOiJ.js.map +0 -1
  576. package/dist/media-gallery-DhDRgnVZ.js +0 -200
  577. package/dist/media-gallery-DhDRgnVZ.js.map +0 -1
  578. package/dist/message-COsdEvXT.js +0 -108
  579. package/dist/message-COsdEvXT.js.map +0 -1
  580. package/dist/navigation-BUIn2Qxx.js.map +0 -1
  581. package/dist/navigation-DBEu4POU.js +0 -267
  582. package/dist/navigation-DBEu4POU.js.map +0 -1
  583. package/dist/navigation-row-recipes-GVh11KiT.js.map +0 -1
  584. package/dist/number-BNT_BIzJ.js +0 -269
  585. package/dist/number-BNT_BIzJ.js.map +0 -1
  586. package/dist/overlay.recipes-BxW5FIfK.js +0 -6
  587. package/dist/overlay.recipes-BxW5FIfK.js.map +0 -1
  588. package/dist/overlays-B11wZka6.js +0 -982
  589. package/dist/overlays-B11wZka6.js.map +0 -1
  590. package/dist/page-BV6ioQg3.js +0 -202
  591. package/dist/page-BV6ioQg3.js.map +0 -1
  592. package/dist/page-header-DQRa0jug.js.map +0 -1
  593. package/dist/pagination-C29vvt3I.js.map +0 -1
  594. package/dist/popover-CoLDEg19.js.map +0 -1
  595. package/dist/popover.recipes-zgBhMlUu.js.map +0 -1
  596. package/dist/primitives-DKPOGVpj.js +0 -330
  597. package/dist/primitives-DKPOGVpj.js.map +0 -1
  598. package/dist/progress-BOe8l_FZ.js.map +0 -1
  599. package/dist/rich-text-editor-CoVrTiSv.js +0 -575
  600. package/dist/rich-text-editor-CoVrTiSv.js.map +0 -1
  601. package/dist/rich-text-editor.recipes-DxvOE0Lp.js.map +0 -1
  602. package/dist/scroll-area-BheMQ270.js.map +0 -1
  603. package/dist/select-B2mb-qN2.js +0 -108
  604. package/dist/select-B2mb-qN2.js.map +0 -1
  605. package/dist/separator-Gk_WXH-l.js.map +0 -1
  606. package/dist/settings-BnCyyPOJ.js.map +0 -1
  607. package/dist/sheet-B-q914Ad.js +0 -205
  608. package/dist/sheet-B-q914Ad.js.map +0 -1
  609. package/dist/sidebar-C_2p3Tfj.js +0 -501
  610. package/dist/sidebar-C_2p3Tfj.js.map +0 -1
  611. package/dist/sidebar-DPR7fmqN.js.map +0 -1
  612. package/dist/smart-card-CYLn46e6.js +0 -578
  613. package/dist/smart-card-CYLn46e6.js.map +0 -1
  614. package/dist/spinner-BY9HbUEh.js.map +0 -1
  615. package/dist/structure.recipes-Bqhf9oIh.js.map +0 -1
  616. package/dist/surface-recipes-CQfRr-VL.js +0 -27
  617. package/dist/surface-recipes-CQfRr-VL.js.map +0 -1
  618. package/dist/table-BS39xnlq.js +0 -1424
  619. package/dist/table-BS39xnlq.js.map +0 -1
  620. package/dist/table-DnlAJ-xR.js +0 -146
  621. package/dist/table-DnlAJ-xR.js.map +0 -1
  622. package/dist/tabs-B5cNMWiP.js +0 -187
  623. package/dist/tabs-B5cNMWiP.js.map +0 -1
  624. package/dist/text-inputs-Dh9XGyiS.js +0 -331
  625. package/dist/text-inputs-Dh9XGyiS.js.map +0 -1
  626. package/dist/text.styles-BwB7vAF2.js.map +0 -1
  627. package/dist/timelines-B9ICkQcV.js.map +0 -1
  628. package/dist/track-recipes-LLPNVwFg.js +0 -10
  629. package/dist/track-recipes-LLPNVwFg.js.map +0 -1
  630. package/dist/typography-Cv8MT-82.js +0 -96
  631. package/dist/typography-Cv8MT-82.js.map +0 -1
  632. package/dist/ui-provider-CftIB6TY.js.map +0 -1
  633. package/dist/upload-D8Za5x_c.js.map +0 -1
  634. package/dist/upload-queue-hIIYBLS7.js.map +0 -1
  635. package/dist/usage-card-DnmnJ58D.js.map +0 -1
  636. package/dist/utils-C2EKeIw3.js +0 -72
  637. package/dist/utils-C2EKeIw3.js.map +0 -1
  638. package/dist/value-inputs-DX2dbxjj.js +0 -824
  639. package/dist/value-inputs-DX2dbxjj.js.map +0 -1
  640. package/dist/workspace-C1PZmk8L.js.map +0 -1
@@ -1,330 +0,0 @@
1
- "use client";
2
- import { c as e } from "./ui-provider-CftIB6TY.js";
3
- import { t } from "./utils-C2EKeIw3.js";
4
- import { a as n } from "./typography-Cv8MT-82.js";
5
- import { n as r } from "./format-iamDSqs2.js";
6
- import { t as i } from "./initials-format-CDoQEOd_.js";
7
- import "react";
8
- import { Fragment as a, jsx as o, jsxs as s } from "react/jsx-runtime";
9
- //#region src/components/primitives/value.tsx
10
- function c(e, t) {
11
- return e == null || e === "" ? t : e;
12
- }
13
- function l({ children: e, emptyLabel: r = "—", size: i, align: a, weight: s = "regular", type: l = "main", className: u, ref: d, ...f }) {
14
- return /* @__PURE__ */ o(n, {
15
- ref: d,
16
- tag: "span",
17
- size: i,
18
- align: a,
19
- weight: s,
20
- type: l,
21
- className: t("value--component inline min-w-0", u),
22
- ...f,
23
- children: c(e, r)
24
- });
25
- }
26
- function u({ children: e, emptyLabel: r = "—", size: i, align: a, weight: s = "regular", type: l = "secondary", className: u, ref: d, ...f }) {
27
- return /* @__PURE__ */ o(n, {
28
- ref: d,
29
- tag: "span",
30
- size: i,
31
- type: l,
32
- align: a,
33
- weight: s,
34
- className: t("secondary-value--component inline min-w-0", u),
35
- ...f,
36
- children: c(e, r)
37
- });
38
- }
39
- function d({ children: e, emptyLabel: r = "—", size: i, align: a, weight: s = "regular", type: l = "secondary", className: u, ref: d, ...f }) {
40
- return /* @__PURE__ */ o(n, {
41
- ref: d,
42
- tag: "span",
43
- size: i,
44
- type: l,
45
- align: a,
46
- weight: s,
47
- className: t("muted-value--component inline min-w-0 opacity-80", u),
48
- ...f,
49
- children: c(e, r)
50
- });
51
- }
52
- function f({ children: e, emptyLabel: r = "—", size: i, align: a, weight: s = "medium", type: l = "main", className: u, ref: d, ...f }) {
53
- return /* @__PURE__ */ o(n, {
54
- ref: d,
55
- tag: "span",
56
- size: i,
57
- align: a,
58
- weight: s,
59
- type: l,
60
- numeric: !0,
61
- className: t("mono-value--component inline min-w-0 break-words", u),
62
- ...f,
63
- children: c(e, r)
64
- });
65
- }
66
- function p({ children: e = "—", size: r, align: i, weight: a = "regular", type: s = "secondary", className: c, ref: l, ...u }) {
67
- return /* @__PURE__ */ o(n, {
68
- ref: l,
69
- tag: "span",
70
- size: r,
71
- type: s,
72
- align: i,
73
- weight: a,
74
- className: t("empty-value--component inline min-w-0", c),
75
- ...u,
76
- children: e
77
- });
78
- }
79
- //#endregion
80
- //#region src/components/primitives/name.tsx
81
- var m = /(\s+)/u, h = /([-'])/u, g = /\p{L}/u, _ = /\p{L}/gu;
82
- function v(e) {
83
- return e.trim().replace(/\s+/g, " ");
84
- }
85
- function y(e) {
86
- return e.match(_)?.join("") ?? "";
87
- }
88
- function b(e) {
89
- let t = g.exec(e);
90
- return t ? {
91
- index: t.index,
92
- value: t[0]
93
- } : null;
94
- }
95
- function x(e) {
96
- let t = b(e);
97
- if (!t) return !0;
98
- let n = y(e);
99
- if (n.length <= 1) return t.value === t.value.toLocaleUpperCase();
100
- let r = n === n.toLocaleUpperCase(), i = n === n.toLocaleLowerCase();
101
- return t.value === t.value.toLocaleUpperCase() && !r && !i;
102
- }
103
- function S(e) {
104
- return v(e).split(m).filter((e) => e.trim() !== "").every((e) => e.split(h).filter((e) => e !== "-" && e !== "'").every(x));
105
- }
106
- function C(e) {
107
- let t = b(e);
108
- if (!t) return e;
109
- let n = e.slice(0, t.index), r = e.slice(t.index + t.value.length);
110
- return `${n}${t.value.toLocaleUpperCase()}${r.toLocaleLowerCase()}`;
111
- }
112
- function w(e) {
113
- return e.split(h).map((e) => e === "-" || e === "'" ? e : C(e)).join("");
114
- }
115
- function T(e, t = {}) {
116
- if (e == null) return "";
117
- let n = v(e);
118
- return n ? !t.force && S(n) ? n : n.split(m).map((e) => e.trim() === "" ? e : w(e)).join("") : "";
119
- }
120
- function E({ value: e, children: n, force: r, className: i, ref: a, ...s }) {
121
- let c = e ?? (typeof n == "string" ? n : void 0), u = c === void 0 ? n : T(c, { force: r });
122
- return /* @__PURE__ */ o(l, {
123
- ref: a,
124
- className: t("name--component", i),
125
- ...s,
126
- children: u
127
- });
128
- }
129
- //#endregion
130
- //#region src/components/primitives/initials.tsx
131
- function D({ value: e, strategy: n, maxCharacters: r, locale: a, fallback: s, size: c = "inherit", className: u, ref: d, ...f }) {
132
- return /* @__PURE__ */ o(l, {
133
- ref: d,
134
- ...f,
135
- size: c,
136
- className: t("initials--component", u),
137
- children: i(e, {
138
- strategy: n,
139
- maxCharacters: r,
140
- locale: a,
141
- fallback: s
142
- })
143
- });
144
- }
145
- //#endregion
146
- //#region src/components/primitives/link.tsx
147
- function O({ children: e, emptyLabel: n = "—", className: r, ref: i, ...a }) {
148
- let s = e == null || e === "" ? n : e;
149
- return /* @__PURE__ */ o("a", {
150
- ref: i,
151
- "data-typography": "link",
152
- className: t("link--component text-link-color underline-offset-4 transition-colors hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40", r),
153
- ...a,
154
- children: s
155
- });
156
- }
157
- function k({ value: e, display: r, subject: i, body: a, className: s, emptyLabel: c = "—", ref: l, ...u }) {
158
- if (!e) return /* @__PURE__ */ o(n, {
159
- ref: l,
160
- tag: "span",
161
- size: "inherit",
162
- type: "secondary",
163
- className: t("email--component", s),
164
- children: c
165
- });
166
- let d = new URLSearchParams();
167
- i && d.set("subject", i), a && d.set("body", a);
168
- let f = `mailto:${e}${d.size ? `?${d.toString()}` : ""}`;
169
- return /* @__PURE__ */ o(O, {
170
- ref: l,
171
- className: t("email--component", s),
172
- href: f,
173
- emptyLabel: c,
174
- ...u,
175
- children: r ?? e
176
- });
177
- }
178
- function A(e) {
179
- return e.replace(/[^\d+*#;,.]/g, "");
180
- }
181
- function j({ value: e, display: r, className: i, emptyLabel: a = "—", ref: s, ...c }) {
182
- return e ? /* @__PURE__ */ o(O, {
183
- ref: s,
184
- className: t("phone--component", i),
185
- href: `tel:${A(e)}`,
186
- emptyLabel: a,
187
- ...c,
188
- children: r ?? e
189
- }) : /* @__PURE__ */ o(n, {
190
- ref: s,
191
- tag: "span",
192
- size: "inherit",
193
- type: "secondary",
194
- className: t("phone--component", i),
195
- children: a
196
- });
197
- }
198
- function M(e) {
199
- return /^[a-z][a-z\d+\-.]*:/i.test(e) || e.startsWith("/") || e.startsWith("#") ? e : `https://${e}`;
200
- }
201
- function N({ value: e, display: r, external: i, target: a, rel: s, className: c, emptyLabel: l = "—", ref: u, ...d }) {
202
- if (!e) return /* @__PURE__ */ o(n, {
203
- ref: u,
204
- tag: "span",
205
- size: "inherit",
206
- type: "secondary",
207
- className: t("url--component", c),
208
- children: l
209
- });
210
- let f = M(e), p = i ?? /^https?:\/\//i.test(f), m = a ?? (p ? "_blank" : void 0), h = s ?? (p ? "noreferrer" : void 0);
211
- return /* @__PURE__ */ o(O, {
212
- ref: u,
213
- className: t("url--component", c),
214
- href: f,
215
- target: m,
216
- rel: h,
217
- emptyLabel: l,
218
- ...d,
219
- children: r ?? e
220
- });
221
- }
222
- //#endregion
223
- //#region src/components/primitives/file-size.tsx
224
- var P = [
225
- "B",
226
- "KB",
227
- "MB",
228
- "GB",
229
- "TB"
230
- ], F = {
231
- bytes: 1,
232
- kb: 1024,
233
- mb: 1024 ** 2,
234
- gb: 1024 ** 3,
235
- tb: 1024 ** 4
236
- };
237
- function I(e, t = "bytes") {
238
- return typeof e != "number" || !Number.isFinite(e) || e <= 0 ? null : e * F[t];
239
- }
240
- function L(e, t) {
241
- let n = typeof t == "string" ? t : t?.locale, r = I(e, typeof t == "string" ? "bytes" : t?.from ?? "bytes");
242
- if (r === null) return null;
243
- let i = r, a = 0;
244
- for (; i >= 1024 && a < P.length - 1;) i /= 1024, a += 1;
245
- return `${new Intl.NumberFormat(n, {
246
- maximumFractionDigits: a === 0 ? 0 : 1,
247
- minimumFractionDigits: 0
248
- }).format(i)} ${P[a]}`;
249
- }
250
- function R({ value: r, from: i = "bytes", locale: a, emptyLabel: s = "—", size: c, align: l = "right", weight: u = "regular", type: d = "main", className: f, ref: p, ...m }) {
251
- let h = e(), g = L(r, {
252
- from: i,
253
- locale: a ?? h.locale
254
- });
255
- return /* @__PURE__ */ o(n, {
256
- ref: p,
257
- tag: "span",
258
- size: c,
259
- align: l,
260
- weight: u,
261
- type: g === null ? "secondary" : d,
262
- className: t("file-size--component inline tabular-nums", f),
263
- ...m,
264
- children: g ?? s
265
- });
266
- }
267
- //#endregion
268
- //#region src/components/primitives/duration.tsx
269
- function z({ value: i, from: a = "seconds", locale: s, maxParts: c = 2, unitDisplay: l = "narrow", minimumFractionDigits: u, maximumFractionDigits: d, emptyLabel: f = "—", size: p, align: m = "right", weight: h = "regular", type: g = "main", className: _, ref: v, ...y }) {
270
- let b = e(), x = i == null ? null : r(i, {
271
- from: a,
272
- locale: s ?? b.locale,
273
- maxParts: c,
274
- unitDisplay: l,
275
- minimumFractionDigits: u,
276
- maximumFractionDigits: d ?? (a === "milliseconds" ? 1 : void 0)
277
- });
278
- return /* @__PURE__ */ o(n, {
279
- ref: v,
280
- tag: "span",
281
- size: p,
282
- align: m,
283
- weight: h,
284
- type: x === null || x === "—" ? "secondary" : g,
285
- className: t("duration--component inline tabular-nums", _),
286
- ...y,
287
- children: x === null || x === "—" ? f : x
288
- });
289
- }
290
- //#endregion
291
- //#region src/components/primitives/dimensions.tsx
292
- function B(e) {
293
- if (e == null || e === "") return null;
294
- if (typeof e == "number") return Number.isFinite(e) ? e : null;
295
- let t = e.trim().replace(",", ".");
296
- if (!t) return null;
297
- let n = Number(t);
298
- return Number.isFinite(n) ? n : null;
299
- }
300
- function V(e, t, { depth: n, unit: r, separator: i = " × ", locale: a, options: o } = {}) {
301
- let s = B(e), c = B(t), l = B(n);
302
- if (s === null || c === null || n != null && n !== "" && l === null) return null;
303
- let u = new Intl.NumberFormat(a, o), d = [s, c];
304
- l !== null && d.push(l);
305
- let f = d.map((e) => u.format(e)).join(i);
306
- return r ? `${f} ${r}` : f;
307
- }
308
- function H({ width: r, height: i, depth: c, unit: l, separator: u = " × ", locale: d, options: f, emptyLabel: p = "—", size: m, align: h = "right", weight: g = "regular", type: _ = "main", className: v, ref: y, ...b }) {
309
- let x = e(), S = V(r, i, {
310
- depth: c,
311
- separator: typeof u == "string" ? u : " × ",
312
- locale: d ?? x.locale,
313
- options: f
314
- });
315
- return /* @__PURE__ */ o(n, {
316
- ref: y,
317
- tag: "span",
318
- size: m,
319
- align: h,
320
- weight: g,
321
- type: S === null ? "secondary" : _,
322
- className: t("dimensions--component inline tabular-nums", v),
323
- ...b,
324
- children: S === null ? p : /* @__PURE__ */ s(a, { children: [typeof u == "string" ? S : S.split(" × ").map((e, t) => /* @__PURE__ */ s("span", { children: [t > 0 && u, e] }, `${e}-${t}`)), !!l && /* @__PURE__ */ s(a, { children: [" ", l] })] })
325
- });
326
- }
327
- //#endregion
328
- export { l as _, L as a, j as c, E as d, T as f, u as g, d as h, R as i, N as l, f as m, V as n, k as o, p, z as r, O as s, H as t, D as u };
329
-
330
- //# sourceMappingURL=primitives-DKPOGVpj.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"primitives-DKPOGVpj.js","names":["_Fragment","useFormattingConfig","Text","formatDuration","formatInitials","Fragment$1","renderValueChildren","children","emptyLabel","Value","props","cn","className","SecondaryValue","MutedValue","MonoValue","EmptyValue","WORD_SEPARATOR","NAME_CONNECTOR","LETTER_MATCHER","LETTERS_MATCHER","normalizeNameWhitespace","value","getLetters","getFirstLetter","match","isFormattedSegment","first","segment","letters","isAllUpper","isAllLower","isFormattedName","word","formatNameSegment","before","after","formatNameWord","formatName","normalized","options","Name","rawValue","content","Initials","Link","Email","query","subject","body","href","display","normalizeTel","Phone","normalizeUrl","Url","isExternal","external","resolvedTarget","target","resolvedRel","rel","FILE_SIZE_UNITS","FILE_SIZE_UNIT_MULTIPLIER","normalizeFileSizeValue","from","formatFileSize","locale","bytes","displayValue","unitIndex","FileSize","formatting","label","type","Duration","maximumFractionDigits","parseDimensionPart","parsed","formatDimensions","parsedWidth","width","parsedHeight","height","parsedDepth","depth","formatter","values","separator","unit","Dimensions","index","part"],"sources":["../src/components/primitives/value.tsx","../src/components/primitives/name.tsx","../src/components/primitives/initials.tsx","../src/components/primitives/link.tsx","../src/components/primitives/file-size.tsx","../src/components/primitives/duration.tsx","../src/components/primitives/dimensions.tsx"],"sourcesContent":["import { type ComponentPropsWithoutRef, type ReactNode, type Ref } from 'react';\n\nimport { Text, type TextProps } from '../typography';\nimport type { TextSize } from '../../lib/ui-provider';\nimport { EMPTY } from '../../lib/format';\nimport { cn } from '../../lib/utils';\n\ntype SpanProps = Omit<ComponentPropsWithoutRef<'span'>, 'children' | 'color'>;\nexport type ValueType = Extract<TextProps['type'], 'main' | 'secondary'>;\n\nexport interface ValueProps extends SpanProps {\n\tchildren?: ReactNode;\n\temptyLabel?: ReactNode;\n\tsize?: TextSize;\n\talign?: TextProps['align'];\n\tweight?: TextProps['weight'];\n\ttype?: ValueType;\n\tref?: Ref<HTMLSpanElement>;\n}\n\nfunction renderValueChildren(children: ReactNode, emptyLabel: ReactNode) {\n\tif (children === null || children === undefined || children === '') return emptyLabel;\n\treturn children;\n}\n\nexport function Value({\n\tchildren,\n\temptyLabel = EMPTY,\n\tsize,\n\talign,\n\tweight = 'regular',\n\ttype = 'main',\n\tclassName,\n\tref,\n\t...props\n}: ValueProps) {\n\treturn (\n\t\t<Text\n\t\t\tref={ref}\n\t\t\ttag=\"span\"\n\t\t\tsize={size}\n\t\t\talign={align}\n\t\t\tweight={weight}\n\t\t\ttype={type}\n\t\t\tclassName={cn('value--component inline min-w-0', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderValueChildren(children, emptyLabel)}\n\t\t</Text>\n\t);\n}\n\nexport function SecondaryValue({\n\tchildren,\n\temptyLabel = EMPTY,\n\tsize,\n\talign,\n\tweight = 'regular',\n\ttype = 'secondary',\n\tclassName,\n\tref,\n\t...props\n}: ValueProps) {\n\treturn (\n\t\t<Text\n\t\t\tref={ref}\n\t\t\ttag=\"span\"\n\t\t\tsize={size}\n\t\t\ttype={type}\n\t\t\talign={align}\n\t\t\tweight={weight}\n\t\t\tclassName={cn('secondary-value--component inline min-w-0', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderValueChildren(children, emptyLabel)}\n\t\t</Text>\n\t);\n}\n\nexport function MutedValue({\n\tchildren,\n\temptyLabel = EMPTY,\n\tsize,\n\talign,\n\tweight = 'regular',\n\ttype = 'secondary',\n\tclassName,\n\tref,\n\t...props\n}: ValueProps) {\n\treturn (\n\t\t<Text\n\t\t\tref={ref}\n\t\t\ttag=\"span\"\n\t\t\tsize={size}\n\t\t\ttype={type}\n\t\t\talign={align}\n\t\t\tweight={weight}\n\t\t\tclassName={cn('muted-value--component inline min-w-0 opacity-80', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderValueChildren(children, emptyLabel)}\n\t\t</Text>\n\t);\n}\n\nexport function MonoValue({\n\tchildren,\n\temptyLabel = EMPTY,\n\tsize,\n\talign,\n\tweight = 'medium',\n\ttype = 'main',\n\tclassName,\n\tref,\n\t...props\n}: ValueProps) {\n\treturn (\n\t\t<Text\n\t\t\tref={ref}\n\t\t\ttag=\"span\"\n\t\t\tsize={size}\n\t\t\talign={align}\n\t\t\tweight={weight}\n\t\t\ttype={type}\n\t\t\tnumeric\n\t\t\tclassName={cn('mono-value--component inline min-w-0 break-words', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderValueChildren(children, emptyLabel)}\n\t\t</Text>\n\t);\n}\n\nexport interface EmptyValueProps extends Omit<ValueProps, 'emptyLabel'> {\n\tref?: Ref<HTMLSpanElement>;\n}\n\nexport function EmptyValue({\n\tchildren = EMPTY,\n\tsize,\n\talign,\n\tweight = 'regular',\n\ttype = 'secondary',\n\tclassName,\n\tref,\n\t...props\n}: EmptyValueProps) {\n\treturn (\n\t\t<Text\n\t\t\tref={ref}\n\t\t\ttag=\"span\"\n\t\t\tsize={size}\n\t\t\ttype={type}\n\t\t\talign={align}\n\t\t\tweight={weight}\n\t\t\tclassName={cn('empty-value--component inline min-w-0', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</Text>\n\t);\n}\n","import { type ReactNode } from 'react';\n\nimport { cn } from '../../lib/utils';\n\nimport { Value, type ValueProps } from './value';\n\nconst WORD_SEPARATOR = /(\\s+)/u;\nconst NAME_CONNECTOR = /([-'])/u;\nconst LETTER_MATCHER = /\\p{L}/u;\nconst LETTERS_MATCHER = /\\p{L}/gu;\n\nexport interface NameFormatOptions {\n\t/** Force title-casing even when the name already looks intentionally cased. */\n\tforce?: boolean;\n}\n\nexport interface NameProps extends Omit<ValueProps, 'children'> {\n\t/** Raw name value to normalize for display. */\n\tvalue?: string | null;\n\t/** String children are normalized when value is not provided. */\n\tchildren?: ReactNode;\n\t/** Force title-casing even when the name already looks intentionally cased. */\n\tforce?: boolean;\n}\n\nfunction normalizeNameWhitespace(value: string) {\n\treturn value.trim().replace(/\\s+/g, ' ');\n}\n\nfunction getLetters(value: string) {\n\treturn value.match(LETTERS_MATCHER)?.join('') ?? '';\n}\n\nfunction getFirstLetter(value: string) {\n\tconst match = LETTER_MATCHER.exec(value);\n\tif (!match) return null;\n\treturn {\n\t\tindex: match.index,\n\t\tvalue: match[0],\n\t};\n}\n\nfunction isFormattedSegment(segment: string) {\n\tconst first = getFirstLetter(segment);\n\tif (!first) return true;\n\n\tconst letters = getLetters(segment);\n\tif (letters.length <= 1) return first.value === first.value.toLocaleUpperCase();\n\n\tconst isAllUpper = letters === letters.toLocaleUpperCase();\n\tconst isAllLower = letters === letters.toLocaleLowerCase();\n\n\treturn first.value === first.value.toLocaleUpperCase() && !isAllUpper && !isAllLower;\n}\n\nfunction isFormattedName(value: string) {\n\treturn normalizeNameWhitespace(value)\n\t\t.split(WORD_SEPARATOR)\n\t\t.filter((word) => word.trim() !== '')\n\t\t.every((word) =>\n\t\t\tword\n\t\t\t\t.split(NAME_CONNECTOR)\n\t\t\t\t.filter((segment) => segment !== '-' && segment !== \"'\")\n\t\t\t\t.every(isFormattedSegment),\n\t\t);\n}\n\nfunction formatNameSegment(segment: string) {\n\tconst first = getFirstLetter(segment);\n\tif (!first) return segment;\n\n\tconst before = segment.slice(0, first.index);\n\tconst after = segment.slice(first.index + first.value.length);\n\n\treturn `${before}${first.value.toLocaleUpperCase()}${after.toLocaleLowerCase()}`;\n}\n\nfunction formatNameWord(word: string) {\n\treturn word\n\t\t.split(NAME_CONNECTOR)\n\t\t.map((segment) => (segment === '-' || segment === \"'\" ? segment : formatNameSegment(segment)))\n\t\t.join('');\n}\n\nexport function formatName(value: string | null | undefined, options: NameFormatOptions = {}) {\n\tif (value === null || value === undefined) return '';\n\n\tconst normalized = normalizeNameWhitespace(value);\n\tif (!normalized) return '';\n\tif (!options.force && isFormattedName(normalized)) return normalized;\n\n\treturn normalized\n\t\t.split(WORD_SEPARATOR)\n\t\t.map((word) => (word.trim() === '' ? word : formatNameWord(word)))\n\t\t.join('');\n}\n\nexport function Name({\n\tvalue,\n\tchildren,\n\tforce,\n\tclassName,\n\tref,\n\t...props\n}: NameProps) {\n\tconst rawValue = value ?? (typeof children === 'string' ? children : undefined);\n\tconst content = rawValue === undefined ? children : formatName(rawValue, { force });\n\n\treturn (\n\t\t<Value ref={ref} className={cn('name--component', className)} {...props}>\n\t\t\t{content}\n\t\t</Value>\n\t);\n}\n","import { cn } from '../../lib/utils';\n\nimport { Value, type ValueProps } from './value';\nimport {\n\tformatInitials,\n\ttype InitialsMaxCharacters,\n\ttype InitialsStrategy,\n} from './initials-format';\n\nexport interface InitialsProps extends Omit<ValueProps, 'children'> {\n\t/** Person, organization, or resource name used to derive initials. */\n\tvalue?: string | null;\n\t/** First + last word by default; use first-words to preserve the first N words. */\n\tstrategy?: InitialsStrategy;\n\t/** Maximum visible characters. Defaults to 2. */\n\tmaxCharacters?: InitialsMaxCharacters;\n\t/** Optional BCP-47 locale used for locale-sensitive uppercasing. */\n\tlocale?: string;\n\t/** Returned when no usable letter or number exists. Defaults to an empty string. */\n\tfallback?: string;\n}\n\n/** Semantic displayed initials for identities and avatar fallbacks. */\nexport function Initials({\n\tvalue,\n\tstrategy,\n\tmaxCharacters,\n\tlocale,\n\tfallback,\n\tsize = 'inherit',\n\tclassName,\n\tref,\n\t...props\n}: InitialsProps) {\n\treturn (\n\t\t<Value\n\t\t\tref={ref}\n\t\t\t{...props}\n\t\t\tsize={size}\n\t\t\tclassName={cn('initials--component', className)}\n\t\t>\n\t\t\t{formatInitials(value, {\n\t\t\t\tstrategy,\n\t\t\t\tmaxCharacters,\n\t\t\t\tlocale,\n\t\t\t\tfallback,\n\t\t\t})}\n\t\t</Value>\n\t);\n}\n","import { type AnchorHTMLAttributes, type ReactNode, type Ref } from 'react';\n\nimport { Text } from '../typography';\nimport { EMPTY } from '../../lib/format';\nimport { cn } from '../../lib/utils';\n\nexport interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n\tchildren?: ReactNode;\n\temptyLabel?: ReactNode;\n\tref?: Ref<HTMLAnchorElement>;\n}\n\nexport function Link({\n\tchildren,\n\temptyLabel = EMPTY,\n\tclassName,\n\tref,\n\t...props\n}: LinkProps) {\n\tconst content =\n\t\tchildren === null || children === undefined || children === '' ? emptyLabel : children;\n\n\treturn (\n\t\t<a\n\t\t\tref={ref}\n\t\t\tdata-typography=\"link\"\n\t\t\tclassName={cn(\n\t\t\t\t'link--component text-link-color underline-offset-4 transition-colors hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{content}\n\t\t</a>\n\t);\n}\n\nexport interface EmailProps extends Omit<LinkProps, 'href' | 'children' | 'ref'> {\n\tvalue?: string | null;\n\tdisplay?: ReactNode;\n\tsubject?: string;\n\tbody?: string;\n\tref?: Ref<HTMLElement>;\n}\n\nexport function Email({\n\tvalue,\n\tdisplay,\n\tsubject,\n\tbody,\n\tclassName,\n\temptyLabel = EMPTY,\n\tref,\n\t...props\n}: EmailProps) {\n\tif (!value) return <Text ref={ref} tag=\"span\" size=\"inherit\" type=\"secondary\" className={cn('email--component', className)}>{emptyLabel}</Text>;\n\n\tconst query = new URLSearchParams();\n\tif (subject) query.set('subject', subject);\n\tif (body) query.set('body', body);\n\tconst href = `mailto:${value}${query.size ? `?${query.toString()}` : ''}`;\n\n\treturn (\n\t\t<Link ref={ref as Ref<HTMLAnchorElement>} className={cn('email--component', className)} href={href} emptyLabel={emptyLabel} {...props}>\n\t\t\t{display ?? value}\n\t\t</Link>\n\t);\n}\n\nexport interface PhoneProps extends Omit<LinkProps, 'href' | 'children' | 'ref'> {\n\tvalue?: string | null;\n\tdisplay?: ReactNode;\n\tref?: Ref<HTMLElement>;\n}\n\nfunction normalizeTel(value: string) {\n\treturn value.replace(/[^\\d+*#;,.]/g, '');\n}\n\nexport function Phone({\n\tvalue,\n\tdisplay,\n\tclassName,\n\temptyLabel = EMPTY,\n\tref,\n\t...props\n}: PhoneProps) {\n\tif (!value) return <Text ref={ref} tag=\"span\" size=\"inherit\" type=\"secondary\" className={cn('phone--component', className)}>{emptyLabel}</Text>;\n\n\treturn (\n\t\t<Link ref={ref as Ref<HTMLAnchorElement>} className={cn('phone--component', className)} href={`tel:${normalizeTel(value)}`} emptyLabel={emptyLabel} {...props}>\n\t\t\t{display ?? value}\n\t\t</Link>\n\t);\n}\n\nexport interface UrlProps extends Omit<LinkProps, 'href' | 'children' | 'ref'> {\n\tvalue?: string | null;\n\tdisplay?: ReactNode;\n\texternal?: boolean;\n\tref?: Ref<HTMLElement>;\n}\n\nfunction normalizeUrl(value: string) {\n\tif (/^[a-z][a-z\\d+\\-.]*:/i.test(value) || value.startsWith('/') || value.startsWith('#')) return value;\n\treturn `https://${value}`;\n}\n\nexport function Url({\n\tvalue,\n\tdisplay,\n\texternal,\n\ttarget,\n\trel,\n\tclassName,\n\temptyLabel = EMPTY,\n\tref,\n\t...props\n}: UrlProps) {\n\tif (!value) return <Text ref={ref} tag=\"span\" size=\"inherit\" type=\"secondary\" className={cn('url--component', className)}>{emptyLabel}</Text>;\n\n\tconst href = normalizeUrl(value);\n\tconst isExternal = external ?? /^https?:\\/\\//i.test(href);\n\tconst resolvedTarget = target ?? (isExternal ? '_blank' : undefined);\n\tconst resolvedRel = rel ?? (isExternal ? 'noreferrer' : undefined);\n\n\treturn (\n\t\t<Link\n\t\t\tref={ref as Ref<HTMLAnchorElement>}\n\t\t\tclassName={cn('url--component', className)}\n\t\t\thref={href}\n\t\t\ttarget={resolvedTarget}\n\t\t\trel={resolvedRel}\n\t\t\temptyLabel={emptyLabel}\n\t\t\t{...props}\n\t\t>\n\t\t\t{display ?? value}\n\t\t</Link>\n\t);\n}\n","import { type ComponentPropsWithoutRef, type ReactNode, type Ref } from 'react';\n\nimport { Text, type TextProps } from '../typography';\nimport type { TextSize } from '../../lib/ui-provider';\nimport { EMPTY } from '../../lib/format';\nimport { useFormattingConfig } from '../../lib/ui-provider';\nimport { cn } from '../../lib/utils';\n\ntype SpanProps = Omit<ComponentPropsWithoutRef<'span'>, 'children' | 'color'>;\n\nexport type FileSizeUnit = 'bytes' | 'kb' | 'mb' | 'gb' | 'tb';\n\nexport interface FileSizeProps extends SpanProps {\n\tvalue?: number | null;\n\tfrom?: FileSizeUnit;\n\tlocale?: string;\n\temptyLabel?: ReactNode;\n\tsize?: TextSize;\n\talign?: TextProps['align'];\n\tweight?: TextProps['weight'];\n\ttype?: TextProps['type'];\n\tref?: Ref<HTMLSpanElement>;\n}\n\nconst FILE_SIZE_UNITS = ['B', 'KB', 'MB', 'GB', 'TB'] as const;\nconst FILE_SIZE_UNIT_MULTIPLIER: Record<FileSizeUnit, number> = {\n\tbytes: 1,\n\tkb: 1024,\n\tmb: 1024 ** 2,\n\tgb: 1024 ** 3,\n\ttb: 1024 ** 4,\n};\n\nexport interface FileSizeFormatOptions {\n\tfrom?: FileSizeUnit;\n\tlocale?: string;\n}\n\nfunction normalizeFileSizeValue(value?: number | null, from: FileSizeUnit = 'bytes') {\n\tif (typeof value !== 'number' || !Number.isFinite(value) || value <= 0) return null;\n\treturn value * FILE_SIZE_UNIT_MULTIPLIER[from];\n}\n\nexport function formatFileSize(\n\tvalue?: number | null,\n\toptions?: FileSizeFormatOptions | string,\n): string | null {\n\tconst locale = typeof options === 'string' ? options : options?.locale;\n\tconst from = typeof options === 'string' ? 'bytes' : options?.from ?? 'bytes';\n\tconst bytes = normalizeFileSizeValue(value, from);\n\tif (bytes === null) return null;\n\n\tlet displayValue = bytes;\n\tlet unitIndex = 0;\n\twhile (displayValue >= 1024 && unitIndex < FILE_SIZE_UNITS.length - 1) {\n\t\tdisplayValue /= 1024;\n\t\tunitIndex += 1;\n\t}\n\n\tconst formattedValue = new Intl.NumberFormat(locale, {\n\t\tmaximumFractionDigits: unitIndex === 0 ? 0 : 1,\n\t\tminimumFractionDigits: 0,\n\t}).format(displayValue);\n\n\treturn `${formattedValue} ${FILE_SIZE_UNITS[unitIndex]}`;\n}\n\nexport function FileSize({\n\tvalue,\n\tfrom = 'bytes',\n\tlocale,\n\temptyLabel = EMPTY,\n\tsize,\n\talign = 'right',\n\tweight = 'regular',\n\ttype = 'main',\n\tclassName,\n\tref,\n\t...props\n}: FileSizeProps) {\n\tconst formatting = useFormattingConfig();\n\tconst label = formatFileSize(value, { from, locale: locale ?? formatting.locale });\n\n\treturn (\n\t\t<Text\n\t\t\tref={ref}\n\t\t\ttag=\"span\"\n\t\t\tsize={size}\n\t\t\talign={align}\n\t\t\tweight={weight}\n\t\t\ttype={label === null ? 'secondary' : type}\n\t\t\tclassName={cn('file-size--component inline tabular-nums', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{label ?? emptyLabel}\n\t\t</Text>\n\t);\n}\n","import { type ComponentPropsWithoutRef, type ReactNode, type Ref } from 'react';\n\nimport { Text, type TextProps } from '../typography';\nimport type { TextSize } from '../../lib/ui-provider';\nimport {\n\tEMPTY,\n\tformatDuration,\n\ttype DurationUnit,\n\ttype DurationUnitDisplay,\n} from '../../lib/format';\nimport { useFormattingConfig } from '../../lib/ui-provider';\nimport { cn } from '../../lib/utils';\n\ntype SpanProps = Omit<ComponentPropsWithoutRef<'span'>, 'children' | 'color'>;\n\nexport interface DurationProps extends SpanProps {\n\tvalue?: number | null;\n\tfrom?: DurationUnit;\n\tlocale?: string;\n\tmaxParts?: number;\n\tunitDisplay?: DurationUnitDisplay;\n\tminimumFractionDigits?: number;\n\tmaximumFractionDigits?: number;\n\temptyLabel?: ReactNode;\n\tsize?: TextSize;\n\talign?: TextProps['align'];\n\tweight?: TextProps['weight'];\n\ttype?: TextProps['type'];\n\tref?: Ref<HTMLSpanElement>;\n}\n\nexport function Duration({\n\tvalue,\n\tfrom = 'seconds',\n\tlocale,\n\tmaxParts = 2,\n\tunitDisplay = 'narrow',\n\tminimumFractionDigits,\n\tmaximumFractionDigits,\n\temptyLabel = EMPTY,\n\tsize,\n\talign = 'right',\n\tweight = 'regular',\n\ttype = 'main',\n\tclassName,\n\tref,\n\t...props\n}: DurationProps) {\n\tconst formatting = useFormattingConfig();\n\tconst label = value === null || value === undefined\n\t\t? null\n\t\t: formatDuration(value, {\n\t\t\t\tfrom,\n\t\t\t\tlocale: locale ?? formatting.locale,\n\t\t\t\tmaxParts,\n\t\t\t\tunitDisplay,\n\t\t\t\tminimumFractionDigits,\n\t\t\t\tmaximumFractionDigits: maximumFractionDigits ?? (\n\t\t\t\t\tfrom === 'milliseconds' ? 1 : undefined\n\t\t\t\t),\n\t\t\t});\n\n\treturn (\n\t\t<Text\n\t\t\tref={ref}\n\t\t\ttag=\"span\"\n\t\t\tsize={size}\n\t\t\talign={align}\n\t\t\tweight={weight}\n\t\t\ttype={label === null || label === EMPTY ? 'secondary' : type}\n\t\t\tclassName={cn('duration--component inline tabular-nums', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{label === null || label === EMPTY ? emptyLabel : label}\n\t\t</Text>\n\t);\n}\n\nexport { formatDuration } from '../../lib/format';\nexport type { DurationUnit, DurationUnitDisplay, FormatDurationOptions } from '../../lib/format';\n","import { type ComponentPropsWithoutRef, type ReactNode, type Ref } from 'react';\n\nimport { Text, type TextProps } from '../typography';\nimport type { TextSize } from '../../lib/ui-provider';\nimport { EMPTY } from '../../lib/format';\nimport { useFormattingConfig } from '../../lib/ui-provider';\nimport { cn } from '../../lib/utils';\n\ntype SpanProps = Omit<ComponentPropsWithoutRef<'span'>, 'children' | 'color'>;\ntype DimensionPart = number | string | null | undefined;\n\nexport interface FormatDimensionsOptions {\n\tdepth?: DimensionPart;\n\tunit?: string;\n\tseparator?: string;\n\tlocale?: string;\n\toptions?: Intl.NumberFormatOptions;\n}\n\nexport interface DimensionsProps extends SpanProps {\n\twidth?: DimensionPart;\n\theight?: DimensionPart;\n\tdepth?: DimensionPart;\n\tunit?: ReactNode;\n\tseparator?: ReactNode;\n\tlocale?: string;\n\toptions?: Intl.NumberFormatOptions;\n\temptyLabel?: ReactNode;\n\tsize?: TextSize;\n\talign?: TextProps['align'];\n\tweight?: TextProps['weight'];\n\ttype?: TextProps['type'];\n\tref?: Ref<HTMLSpanElement>;\n}\n\nfunction parseDimensionPart(value: DimensionPart): number | null {\n\tif (value === null || value === undefined || value === '') return null;\n\tif (typeof value === 'number') return Number.isFinite(value) ? value : null;\n\tconst normalized = value.trim().replace(',', '.');\n\tif (!normalized) return null;\n\tconst parsed = Number(normalized);\n\treturn Number.isFinite(parsed) ? parsed : null;\n}\n\nexport function formatDimensions(\n\twidth: DimensionPart,\n\theight: DimensionPart,\n\t{\n\t\tdepth,\n\t\tunit,\n\t\tseparator = ' × ',\n\t\tlocale,\n\t\toptions,\n\t}: FormatDimensionsOptions = {},\n): string | null {\n\tconst parsedWidth = parseDimensionPart(width);\n\tconst parsedHeight = parseDimensionPart(height);\n\tconst parsedDepth = parseDimensionPart(depth);\n\tif (parsedWidth === null || parsedHeight === null) return null;\n\tif (depth !== null && depth !== undefined && depth !== '' && parsedDepth === null) return null;\n\n\tconst formatter = new Intl.NumberFormat(locale, options);\n\tconst values = [parsedWidth, parsedHeight];\n\tif (parsedDepth !== null) values.push(parsedDepth);\n\tconst label = values.map((value) => formatter.format(value)).join(separator);\n\treturn unit ? `${label} ${unit}` : label;\n}\n\nexport function Dimensions({\n\twidth,\n\theight,\n\tdepth,\n\tunit,\n\tseparator = ' × ',\n\tlocale,\n\toptions,\n\temptyLabel = EMPTY,\n\tsize,\n\talign = 'right',\n\tweight = 'regular',\n\ttype = 'main',\n\tclassName,\n\tref,\n\t...props\n}: DimensionsProps) {\n\tconst formatting = useFormattingConfig();\n\tconst label = formatDimensions(width, height, {\n\t\tdepth,\n\t\tseparator: typeof separator === 'string' ? separator : ' × ',\n\t\tlocale: locale ?? formatting.locale,\n\t\toptions,\n\t});\n\n\treturn (\n\t\t<Text\n\t\t\tref={ref}\n\t\t\ttag=\"span\"\n\t\t\tsize={size}\n\t\t\talign={align}\n\t\t\tweight={weight}\n\t\t\ttype={label === null ? 'secondary' : type}\n\t\t\tclassName={cn('dimensions--component inline tabular-nums', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{label === null ? emptyLabel : (\n\t\t\t\t<>\n\t\t\t\t\t{typeof separator === 'string' ? label : label.split(' × ').map((part, index) => (\n\t\t\t\t\t\t<span key={`${part}-${index}`}>\n\t\t\t\t\t\t\t{index > 0 && separator}\n\t\t\t\t\t\t\t{part}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t))}\n\t\t\t\t\t{!!unit && <> {unit}</>}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</Text>\n\t);\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"progress-BOe8l_FZ.js","names":["Progress","_Fragment","ProgressPrimitive","resolveComponentScale","useFormattingConfig","useDensityConfig","cn","Stack","trackHeightClasses","Fragment$1","defaultProgressStrings","ProgressContext","createContext","isSimpleText","value","INDICATOR_TONE_CLASSNAMES","mergeStateClassName","className","baseClassName","state","normalizeRange","min","minProp","maxCandidate","maxProp","normalizeValue","max","formatProgressValue","format","locale","normalized","Progress$1","forwardRef","valueProp","showValueProp","sizeProp","stringsProp","ariaDescribedBy","props","strings","useStrings","formatting","size","defaultScale","resolvedLocale","descriptionId","useId","formattedValue","usesGeneratedHeader","headerSlot","children","showValue","label","hasSummary","description","metadata","valueSlot","descriptionIds","resolvedGetAriaValueText","normalizedFormattedValue","currentValue","getAriaValueText","contextValue","useMemo","resolvedHeader","ProgressLabel","Text","ProgressValue","resolvedTrack","trackSlot","ProgressTrack","trackProps","ProgressIndicator","indicatorProps","tone","Progress","context","useContext","primitiveValue","_primitiveFormattedValue","content"],"sources":["../src/components/base/feedback/progress.strings.ts","../src/components/base/feedback/progress.tsx"],"sourcesContent":["export interface ProgressStrings {\n\t/** Screen-reader value announced while progress is indeterminate. */\n\tindeterminateValue: string;\n}\n\nexport const defaultProgressStrings: ProgressStrings = {\n\tindeterminateValue: 'In progress',\n};\n","import { trackHeightClasses } from '../../../lib/track-recipes';\n/**\n * Progress — token-driven Base UI progress wrapper for completion, quota,\n * and long-running task states.\n *\n * The root keeps the Base UI accessibility contract while adding a concise\n * admin summary API (`label`, `description`, `metadata`, `showValue`),\n * semantic tones, structural sizes, stable DOM hooks, and composition slots.\n * Consumers can still assemble `ProgressLabel`, `ProgressValue`,\n * `ProgressTrack`, and `ProgressIndicator` directly.\n */\nimport { Progress as ProgressPrimitive } from '@base-ui/react/progress';\nimport { createContext, forwardRef, useContext, useId, useMemo, type ReactNode } from 'react';\n\nimport { Text } from '../../typography';\nimport { Stack } from '../structure';\nimport { useDensityConfig, useFormattingConfig, type ComponentScale } from '../../../lib/ui-provider';\nimport { resolveComponentScale } from '../../../lib/ui-provider/scale';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\nimport type { SemanticTone } from '../../../lib/component-vocabulary';\n\nimport { defaultProgressStrings, type ProgressStrings } from './progress.strings';\n\nexport type ProgressSize = ComponentScale;\nexport type ProgressTone = SemanticTone;\n\ntype ProgressRootState = ProgressPrimitive.Root.State;\ntype ProgressTrackState = ProgressPrimitive.Track.State;\ntype ProgressIndicatorState = ProgressPrimitive.Indicator.State;\ntype ProgressLabelState = ProgressPrimitive.Label.State;\ntype ProgressValueState = ProgressPrimitive.Value.State;\n\ntype StatefulClassName<TState> = string | ((state: TState) => string | undefined) | undefined;\n\nexport interface ProgressProps extends Omit<\n\tProgressPrimitive.Root.Props,\n\t'children' | 'format' | 'getAriaValueText' | 'locale' | 'max' | 'min' | 'value'\n> {\n\t/** Current value. `null` renders an indeterminate state. */\n\tvalue: number | null;\n\t/** Minimum value used to normalize the visual percentage. @default 0 */\n\tmin?: number;\n\t/** Maximum value used to normalize the visual percentage. @default 100 */\n\tmax?: number;\n\t/** Intl options for formatting the raw value instead of the default normalized percentage. */\n\tformat?: Intl.NumberFormatOptions;\n\t/** Locale forwarded to `Intl.NumberFormat`. */\n\tlocale?: Intl.LocalesArgument;\n\t/** Human-readable text for the current value. Receives the wrapper's normalized display value. */\n\tgetAriaValueText?: (formattedValue: string | null, value: number | null) => string;\n\t/** Low-level compound content. `headerSlot` takes precedence when both are supplied. */\n\tchildren?: ReactNode;\n\t/** Accessible visual label. Supplying it also enables `showValue` by default. */\n\tlabel?: ReactNode;\n\t/** Supporting text automatically connected with `aria-describedby`. */\n\tdescription?: ReactNode;\n\t/** Optional right-aligned task metadata, such as \"18,400 of 25,000 rows\". */\n\tmetadata?: ReactNode;\n\t/** Show the formatted value beside the label. Defaults to `true` when `label` is supplied. */\n\tshowValue?: boolean;\n\t/** Replaces the formatted value while retaining the default summary layout. */\n\tvalueSlot?: ReactNode;\n\t/** Replaces the entire content above the track. */\n\theaderSlot?: ReactNode;\n\t/** Replaces the default track and indicator composition. */\n\ttrackSlot?: ReactNode;\n\t/** Track thickness. @default \"default\" */\n\tsize?: ProgressSize;\n\t/** Semantic indicator color. @default \"primary\" */\n\ttone?: ProgressTone;\n\t/** Props forwarded to the default track. Ignored when `trackSlot` is supplied. */\n\ttrackProps?: ProgressTrackProps;\n\t/** Props forwarded to the default indicator. Ignored when `trackSlot` is supplied. */\n\tindicatorProps?: ProgressIndicatorProps;\n\t/** Override the indeterminate screen-reader copy. */\n\tstrings?: StringsProp<ProgressStrings>;\n}\n\nexport interface ProgressTrackProps extends ProgressPrimitive.Track.Props {\n\t/** Track thickness. @default \"default\" */\n\tsize?: ProgressSize;\n}\n\nexport interface ProgressIndicatorProps extends ProgressPrimitive.Indicator.Props {\n\t/** Semantic fill color. @default \"primary\" */\n\ttone?: ProgressTone;\n}\n\nexport interface ProgressLabelProps extends ProgressPrimitive.Label.Props {\n\t/** Accessible label content. */\n\tchildren?: ReactNode;\n}\n\nexport interface ProgressValueProps extends Omit<ProgressPrimitive.Value.Props, 'children'> {\n\t/** Customize the formatted display while preserving the value semantics. */\n\tchildren?: (formattedValue: string | null, value: number | null) => ReactNode;\n}\n\ninterface ProgressContextValue {\n\tformattedValue: string | null;\n\tvalue: number | null;\n}\n\nconst ProgressContext = createContext<ProgressContextValue | null>(null);\n\nfunction isSimpleText(value: ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\n\n\nconst INDICATOR_TONE_CLASSNAMES: Record<ProgressTone, string> = {\n\tneutral: 'bg-muted-foreground',\n\tprimary: 'bg-primary',\n\tsecondary: 'bg-secondary-foreground',\n\tsuccess: 'bg-success',\n\tinfo: 'bg-info',\n\twarning: 'bg-warning',\n\tdestructive: 'bg-destructive',\n};\n\nfunction mergeStateClassName<TState>(\n\tbaseClassName: string,\n\tclassName: StatefulClassName<TState>,\n): string | ((state: TState) => string) {\n\tif (typeof className === 'function') {\n\t\treturn (state) => cn(baseClassName, className(state));\n\t}\n\n\treturn cn(baseClassName, className);\n}\n\nfunction normalizeRange(minProp: number | undefined, maxProp: number | undefined) {\n\tconst min = Number.isFinite(minProp) ? (minProp as number) : 0;\n\tconst maxCandidate = Number.isFinite(maxProp) ? (maxProp as number) : 100;\n\tconst max = maxCandidate > min ? maxCandidate : min + 100;\n\n\treturn { min, max };\n}\n\nfunction normalizeValue(value: number | null, min: number, max: number): number | null {\n\tif (value === null || !Number.isFinite(value)) return null;\n\treturn Math.min(max, Math.max(min, value));\n}\n\nfunction formatProgressValue(\n\tvalue: number | null,\n\tmin: number,\n\tmax: number,\n\tlocale: Intl.LocalesArgument | undefined,\n\tformat: Intl.NumberFormatOptions | undefined,\n): string | null {\n\tif (value === null) return null;\n\n\tif (format) {\n\t\treturn new Intl.NumberFormat(locale, format).format(value);\n\t}\n\n\tconst normalized = max === min ? 0 : (value - min) / (max - min);\n\treturn new Intl.NumberFormat(locale, {\n\t\tstyle: 'percent',\n\t\tmaximumFractionDigits: 0,\n\t}).format(normalized);\n}\n\nconst Progress = forwardRef<HTMLDivElement, ProgressProps>(function Progress(\n\t{\n\t\tvalue: valueProp,\n\t\tmin: minProp,\n\t\tmax: maxProp,\n\t\tformat,\n\t\tlocale,\n\t\tgetAriaValueText,\n\t\tchildren,\n\t\tlabel,\n\t\tdescription,\n\t\tmetadata,\n\t\tshowValue: showValueProp,\n\t\tvalueSlot,\n\t\theaderSlot,\n\t\ttrackSlot,\n\t\tsize: sizeProp,\n\t\ttone = 'primary',\n\t\ttrackProps,\n\t\tindicatorProps,\n\t\tstrings: stringsProp,\n\t\tclassName,\n\t\t'aria-describedby': ariaDescribedBy,\n\t\t...props\n\t},\n\tref,\n) {\n\tconst strings = useStrings(defaultProgressStrings, stringsProp);\n\tconst formatting = useFormattingConfig();\n\tconst { defaultScale } = useDensityConfig();\n\tconst size = resolveComponentScale(sizeProp, defaultScale);\n\tconst resolvedLocale = locale ?? formatting.locale;\n\tconst descriptionId = useId();\n\tconst { min, max } = normalizeRange(minProp, maxProp);\n\tconst value = normalizeValue(valueProp, min, max);\n\tconst formattedValue = formatProgressValue(value, min, max, resolvedLocale, format);\n\tconst usesGeneratedHeader = headerSlot === undefined && children === undefined;\n\tconst showValue = showValueProp ?? label !== undefined;\n\tconst hasSummary =\n\t\tlabel !== undefined || description !== undefined || metadata !== undefined || valueSlot !== undefined || showValue;\n\tconst descriptionIds =\n\t\t[ariaDescribedBy, usesGeneratedHeader && description !== undefined ? descriptionId : undefined]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ') || undefined;\n\tconst resolvedGetAriaValueText = (_formattedValue: string | null, currentValue: number | null) => {\n\t\tconst normalizedFormattedValue = formatProgressValue(currentValue, min, max, resolvedLocale, format);\n\t\tif (getAriaValueText) {\n\t\t\treturn getAriaValueText(normalizedFormattedValue, currentValue);\n\t\t}\n\t\treturn normalizedFormattedValue ?? strings.indeterminateValue;\n\t};\n\tconst contextValue = useMemo(() => ({ formattedValue, value }), [formattedValue, value]);\n\tconst resolvedHeader =\n\t\theaderSlot ??\n\t\tchildren ??\n\t\t(hasSummary ? (\n\t\t\t<>\n\t\t\t\t<div className=\"progress--summary min-w-0\">\n\t\t\t\t\t{label !== undefined && <ProgressLabel>{label}</ProgressLabel>}\n\t\t\t\t\t{description !== undefined &&\n\t\t\t\t\t\t(isSimpleText(description) ? (\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tid={descriptionId}\n\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\tclassName=\"progress--description mt-space-2xs block\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<div id={descriptionId} className=\"progress--description mt-space-2xs\">\n\t\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t\t{(showValue || valueSlot !== undefined || metadata !== undefined) && (\n\t\t\t\t\t<Stack gap=\"2xs\" align=\"end\" className=\"progress--details text-right\">\n\t\t\t\t\t\t{valueSlot ?? (showValue ? <ProgressValue /> : null)}\n\t\t\t\t\t\t{metadata !== undefined &&\n\t\t\t\t\t\t\t(isSimpleText(metadata) ? (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className=\"progress--metadata tabular-nums\">\n\t\t\t\t\t\t\t\t\t{metadata}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\tmetadata\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</Stack>\n\t\t\t\t)}\n\t\t\t</>\n\t\t) : null);\n\tconst resolvedTrack = trackSlot ?? (\n\t\t<ProgressTrack {...trackProps} size={trackProps?.size ?? size}>\n\t\t\t{trackProps?.children ?? <ProgressIndicator {...indicatorProps} tone={indicatorProps?.tone ?? tone} />}\n\t\t</ProgressTrack>\n\t);\n\n\treturn (\n\t\t<ProgressContext.Provider value={contextValue}>\n\t\t\t<ProgressPrimitive.Root\n\t\t\t\tref={ref}\n\t\t\t\tvalue={value}\n\t\t\t\tmin={min}\n\t\t\t\tmax={max}\n\t\t\t\tformat={format}\n\t\t\t\tlocale={resolvedLocale}\n\t\t\t\tgetAriaValueText={resolvedGetAriaValueText}\n\t\t\t\taria-describedby={descriptionIds}\n\t\t\t\tdata-slot=\"progress\"\n\t\t\t\tdata-size={size}\n\t\t\t\tdata-tone={tone}\n\t\t\t\tclassName={mergeStateClassName<ProgressRootState>(\n\t\t\t\t\t'progress--component grid min-w-0 w-full grid-cols-[minmax(0,1fr)_auto] items-start gap-x-space-lg gap-y-space-sm',\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{resolvedHeader}\n\t\t\t\t{resolvedTrack}\n\t\t\t</ProgressPrimitive.Root>\n\t\t</ProgressContext.Provider>\n\t);\n});\nProgress.displayName = 'Progress';\n\nconst ProgressTrack = forwardRef<HTMLDivElement, ProgressTrackProps>(function ProgressTrack(\n\t{ className, size: sizeProp, ...props },\n\tref,\n) {\n\tconst { defaultScale } = useDensityConfig();\n\tconst size = resolveComponentScale(sizeProp, defaultScale);\n\treturn (\n\t\t<ProgressPrimitive.Track\n\t\t\tref={ref}\n\t\t\tdata-slot=\"progress-track\"\n\t\t\tdata-size={size}\n\t\t\tclassName={mergeStateClassName<ProgressTrackState>(\n\t\t\t\tcn(\n\t\t\t\t\t'progress-track--component progress--track relative col-span-full flex w-full items-center overflow-hidden rounded-full bg-muted',\n\t\t\t\t\ttrackHeightClasses[size],\n\t\t\t\t),\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\nProgressTrack.displayName = 'ProgressTrack';\n\nconst ProgressIndicator = forwardRef<HTMLDivElement, ProgressIndicatorProps>(function ProgressIndicator(\n\t{ className, tone = 'primary', ...props },\n\tref,\n) {\n\treturn (\n\t\t<ProgressPrimitive.Indicator\n\t\t\tref={ref}\n\t\t\tdata-slot=\"progress-indicator\"\n\t\t\tdata-tone={tone}\n\t\t\tclassName={mergeStateClassName<ProgressIndicatorState>(\n\t\t\t\tcn(\n\t\t\t\t\t'progress-indicator--component progress--indicator h-full rounded-full transition-[width] duration-300 ease-out motion-reduce:transition-none',\n\t\t\t\t\t'data-[indeterminate]:w-full motion-safe:data-[indeterminate]:animate-pulse',\n\t\t\t\t\tINDICATOR_TONE_CLASSNAMES[tone],\n\t\t\t\t),\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\nProgressIndicator.displayName = 'ProgressIndicator';\n\nconst ProgressLabel = forwardRef<HTMLSpanElement, ProgressLabelProps>(function ProgressLabel(\n\t{ className, children, ...props },\n\tref,\n) {\n\treturn (\n\t\t<ProgressPrimitive.Label\n\t\t\tref={ref}\n\t\t\tdata-slot=\"progress-label\"\n\t\t\tclassName={mergeStateClassName<ProgressLabelState>(\n\t\t\t\t'progress-label--component progress--label min-w-0',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<Text tag=\"span\" weight=\"medium\" lineHeight=\"tight\" className=\"block\">\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : (\n\t\t\t\tchildren\n\t\t\t)}\n\t\t</ProgressPrimitive.Label>\n\t);\n});\nProgressLabel.displayName = 'ProgressLabel';\n\nconst ProgressValue = forwardRef<HTMLSpanElement, ProgressValueProps>(function ProgressValue(\n\t{ className, children, ...props },\n\tref,\n) {\n\tconst context = useContext(ProgressContext);\n\n\treturn (\n\t\t<ProgressPrimitive.Value\n\t\t\tref={ref}\n\t\t\tdata-slot=\"progress-value\"\n\t\t\tclassName={mergeStateClassName<ProgressValueState>(\n\t\t\t\t'progress-value--component progress--value whitespace-nowrap',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{(_primitiveFormattedValue, primitiveValue) => {\n\t\t\t\tconst value = context?.value ?? primitiveValue;\n\t\t\t\tconst formattedValue = context?.formattedValue ?? _primitiveFormattedValue;\n\t\t\t\tconst content = children ? children(formattedValue, value) : formattedValue;\n\n\t\t\t\tif (content === null || content === undefined) return null;\n\t\t\t\treturn isSimpleText(content) ? (\n\t\t\t\t\t// The percentage is the bar's primary value, so it mirrors\n\t\t\t\t\t// ProgressLabel: provider-default size and medium weight. Pinning\n\t\t\t\t\t// it to `xs`/secondary demoted the headline number below its own\n\t\t\t\t\t// caption and left the two off a shared baseline.\n\t\t\t\t\t<Text tag=\"span\" weight=\"medium\" lineHeight=\"tight\" className=\"block tabular-nums\">\n\t\t\t\t\t\t{content}\n\t\t\t\t\t</Text>\n\t\t\t\t) : (\n\t\t\t\t\tcontent\n\t\t\t\t);\n\t\t\t}}\n\t\t</ProgressPrimitive.Value>\n\t);\n});\nProgressValue.displayName = 'ProgressValue';\n\nexport { Progress, ProgressTrack, ProgressIndicator, ProgressLabel, ProgressValue, defaultProgressStrings };\nexport type { ProgressStrings };\n"],"mappings":"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"}