themelia-react-ui 2.0.6 → 3.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 (912) hide show
  1. package/CHANGELOG.md +250 -0
  2. package/MIGRATION.md +746 -7
  3. package/README.md +27 -23
  4. package/dist/{accordion-0tQUZ20r.js → accordion-DNVqwEIC.js} +36 -36
  5. package/dist/accordion-DNVqwEIC.js.map +1 -0
  6. package/dist/action-menu-D5343RwT.js +286 -0
  7. package/dist/action-menu-D5343RwT.js.map +1 -0
  8. package/dist/ai-artifact-otrz9ZwS.js +1214 -0
  9. package/dist/ai-artifact-otrz9ZwS.js.map +1 -0
  10. package/dist/anchored-positioning-1U_eBFNx.js +9 -0
  11. package/dist/anchored-positioning-1U_eBFNx.js.map +1 -0
  12. package/dist/app-shell-CPN30Nb1.js +372 -0
  13. package/dist/app-shell-CPN30Nb1.js.map +1 -0
  14. package/dist/{attachment-BCpA4e7i.js → attachment-D2-fpfmv.js} +15 -15
  15. package/dist/{attachment-BCpA4e7i.js.map → attachment-D2-fpfmv.js.map} +1 -1
  16. package/dist/{auth-B0girIk_.js → auth-g_oUTDDC.js} +234 -241
  17. package/dist/auth-g_oUTDDC.js.map +1 -0
  18. package/dist/{avatar-B9Jnp-T-.js → avatar-Ca3Ihrq4.js} +4 -4
  19. package/dist/{avatar-B9Jnp-T-.js.map → avatar-Ca3Ihrq4.js.map} +1 -1
  20. package/dist/{badge-wWauMgAt.js → badge-oGiXblW7.js} +8 -9
  21. package/dist/badge-oGiXblW7.js.map +1 -0
  22. package/dist/base/accordion.js +1 -1
  23. package/dist/base/action-menu.js +1 -1
  24. package/dist/base/attachment.js +1 -1
  25. package/dist/base/avatar.js +1 -1
  26. package/dist/base/badge.js +1 -1
  27. package/dist/base/batch-action-bar.js +1 -1
  28. package/dist/base/buttons.js +2 -2
  29. package/dist/base/cards.js +3 -3
  30. package/dist/base/carousel.js +11 -11
  31. package/dist/base/carousel.js.map +1 -1
  32. package/dist/base/cascader.js +1 -1
  33. package/dist/base/chart.js +1 -1
  34. package/dist/base/choice-inputs.js +2 -2
  35. package/dist/base/code-block.js +1 -1
  36. package/dist/base/combobox.js +1 -1
  37. package/dist/base/command.js +1 -1
  38. package/dist/base/copyable.js +1 -1
  39. package/dist/base/date-pickers.js +2 -2
  40. package/dist/base/display.js +7 -7
  41. package/dist/base/feedback.js +4 -4
  42. package/dist/base/forms-numeric.js +2 -2
  43. package/dist/base/forms.js +2 -2
  44. package/dist/base/inline-edit.js +13 -13
  45. package/dist/base/inline-edit.js.map +1 -1
  46. package/dist/base/item.js +1 -1
  47. package/dist/base/media-gallery.js +203 -2
  48. package/dist/base/media-gallery.js.map +1 -0
  49. package/dist/base/metadata-list.js +1 -1
  50. package/dist/base/navigation.js +7 -7
  51. package/dist/base/popover-menu.js +1 -1
  52. package/dist/base/popover.js +1 -1
  53. package/dist/base/qr-code.js +32 -22
  54. package/dist/base/qr-code.js.map +1 -1
  55. package/dist/base/repeaters.js +91 -88
  56. package/dist/base/repeaters.js.map +1 -1
  57. package/dist/base/sidebar.js +2 -2
  58. package/dist/base/signature-pad.js +14 -14
  59. package/dist/base/signature-pad.js.map +1 -1
  60. package/dist/base/skeleton.js +1 -1
  61. package/dist/base/spinner.js +6 -12
  62. package/dist/base/spinner.js.map +1 -1
  63. package/dist/base/structure.js +1 -1
  64. package/dist/base/table.js +1 -1
  65. package/dist/base/text-inputs.js +3 -3
  66. package/dist/base/toaster.js +2 -2
  67. package/dist/base/tree.js +2 -2
  68. package/dist/base/upload-queue.js +303 -2
  69. package/dist/base/upload-queue.js.map +1 -0
  70. package/dist/base/upload.js +3 -4
  71. package/dist/base/value-inputs.js +1 -1
  72. package/dist/{batch-action-bar-BoqWIIpV.js → batch-action-bar-D6MZQNnC.js} +10 -10
  73. package/dist/{batch-action-bar-BoqWIIpV.js.map → batch-action-bar-D6MZQNnC.js.map} +1 -1
  74. package/dist/blocks/admin.js +242 -228
  75. package/dist/blocks/admin.js.map +1 -1
  76. package/dist/blocks/ai.js +395 -357
  77. package/dist/blocks/ai.js.map +1 -1
  78. package/dist/blocks/analytics/charts.js +1022 -0
  79. package/dist/blocks/analytics/charts.js.map +1 -0
  80. package/dist/blocks/analytics/usage-card.js +1 -1
  81. package/dist/blocks/analytics.js +171 -1365
  82. package/dist/blocks/analytics.js.map +1 -1
  83. package/dist/blocks/collaboration.js +1 -1
  84. package/dist/blocks/commerce/receipt.js +1 -1
  85. package/dist/blocks/commerce.js +1487 -1358
  86. package/dist/blocks/commerce.js.map +1 -1
  87. package/dist/blocks/data-display.js +2 -3
  88. package/dist/blocks/onboarding.js +91 -82
  89. package/dist/blocks/onboarding.js.map +1 -1
  90. package/dist/blocks/planning.js +25 -25
  91. package/dist/blocks/planning.js.map +1 -1
  92. package/dist/blocks/timelines.js +2 -2
  93. package/dist/{breadcrumbs-Bp9Ke7kd.js → breadcrumbs-CQ9JSlez.js} +52 -45
  94. package/dist/breadcrumbs-CQ9JSlez.js.map +1 -0
  95. package/dist/{button-ChBovTx0.js → button-rd6FiHfQ.js} +12 -8
  96. package/dist/button-rd6FiHfQ.js.map +1 -0
  97. package/dist/{buttons-DeW0bQeK.js → buttons-pZVgPTZn.js} +230 -246
  98. package/dist/buttons-pZVgPTZn.js.map +1 -0
  99. package/dist/{cards-CNXnmvV5.js → cards-CgWyqvgZ.js} +25 -22
  100. package/dist/{cards-CNXnmvV5.js.map → cards-CgWyqvgZ.js.map} +1 -1
  101. package/dist/cascader-Cf05pwaq.js +444 -0
  102. package/dist/cascader-Cf05pwaq.js.map +1 -0
  103. package/dist/{chart-I7ROnsl8.js → chart-CygRCyIZ.js} +5 -5
  104. package/dist/{chart-I7ROnsl8.js.map → chart-CygRCyIZ.js.map} +1 -1
  105. package/dist/{checkbox-MoyHIAPs.js → checkbox-Dy5_XBMZ.js} +4 -4
  106. package/dist/{checkbox-MoyHIAPs.js.map → checkbox-Dy5_XBMZ.js.map} +1 -1
  107. package/dist/{choice-inputs-DHGtx0QV.js → choice-inputs-oJEsrb5Y.js} +113 -114
  108. package/dist/choice-inputs-oJEsrb5Y.js.map +1 -0
  109. package/dist/{code-block-BSJyq9e-.js → code-block-BrLD7mCi.js} +44 -60
  110. package/dist/code-block-BrLD7mCi.js.map +1 -0
  111. package/dist/collapsible-CRCCg_bO.js +80 -0
  112. package/dist/collapsible-CRCCg_bO.js.map +1 -0
  113. package/dist/{collection-content-CSnwtOTH.js → collection-content-D7SoDlYd.js} +3 -3
  114. package/dist/{collection-content-CSnwtOTH.js.map → collection-content-D7SoDlYd.js.map} +1 -1
  115. package/dist/combobox-Dl6f6kHz.js +362 -0
  116. package/dist/combobox-Dl6f6kHz.js.map +1 -0
  117. package/dist/combobox-DrDXtSSt.js +929 -0
  118. package/dist/combobox-DrDXtSSt.js.map +1 -0
  119. package/dist/command-CjZ2VzKC.js +432 -0
  120. package/dist/command-CjZ2VzKC.js.map +1 -0
  121. package/dist/comments-C2MZyRmh.js +1214 -0
  122. package/dist/comments-C2MZyRmh.js.map +1 -0
  123. package/dist/components/base/accordion/accordion.d.ts +11 -3
  124. package/dist/components/base/action-menu/action-menu.d.ts +11 -3
  125. package/dist/components/base/buttons/button.d.ts +2 -2
  126. package/dist/components/base/buttons/index.d.ts +1 -1
  127. package/dist/components/base/buttons/loader-button.d.ts +6 -15
  128. package/dist/components/base/cards/index.d.ts +1 -1
  129. package/dist/components/base/cards/partials/card-body-context.d.ts +6 -0
  130. package/dist/components/base/cards/smart-card.d.ts +0 -2
  131. package/dist/components/base/cards/smart-card.types.d.ts +12 -10
  132. package/dist/components/base/cascader/cascader.d.ts +8 -2
  133. package/dist/components/base/cascader/cascader.types.d.ts +24 -2
  134. package/dist/components/base/cascader/index.d.ts +1 -1
  135. package/dist/components/base/choice-inputs/switch.d.ts +1 -1
  136. package/dist/components/base/code-block/use-code-copy.d.ts +2 -6
  137. package/dist/components/base/command/command.d.ts +1 -1
  138. package/dist/components/base/date-pickers/datepicker.types.d.ts +1 -3
  139. package/dist/components/base/display/dialog.d.ts +3 -9
  140. package/dist/components/base/display/index.d.ts +2 -3
  141. package/dist/components/base/display/separator.d.ts +1 -1
  142. package/dist/components/base/feedback/alert.d.ts +2 -1
  143. package/dist/components/base/feedback/empty.d.ts +10 -2
  144. package/dist/components/base/forms/workflow.d.ts +2 -2
  145. package/dist/components/base/forms-numeric/dimensions-input.d.ts +9 -17
  146. package/dist/components/base/forms-numeric/index.d.ts +3 -3
  147. package/dist/components/base/item/item.types.d.ts +6 -2
  148. package/dist/components/base/metadata-list/index.d.ts +1 -3
  149. package/dist/components/base/metadata-list/metadata-list.d.ts +4 -1
  150. package/dist/components/base/navigation/index.d.ts +2 -2
  151. package/dist/components/base/navigation/language-switcher.d.ts +7 -6
  152. package/dist/components/base/navigation/navigation-tabs.d.ts +8 -1
  153. package/dist/components/base/navigation/page-header/index.d.ts +1 -1
  154. package/dist/components/base/navigation/page-header/page-header.d.ts +13 -17
  155. package/dist/components/base/navigation/pagination.d.ts +5 -5
  156. package/dist/components/base/popover/popover.recipes.d.ts +0 -1
  157. package/dist/components/base/qr-code/qr-code.d.ts +4 -0
  158. package/dist/components/base/repeaters/index.d.ts +1 -1
  159. package/dist/components/base/repeaters/key-value-editor.d.ts +4 -0
  160. package/dist/components/base/sheet/sheet.d.ts +6 -15
  161. package/dist/components/base/sidebar/index.d.ts +1 -6
  162. package/dist/components/base/sidebar/sidebar.d.ts +38 -10
  163. package/dist/components/base/skeleton/skeleton.d.ts +1 -1
  164. package/dist/components/base/structure/structure.types.d.ts +11 -2
  165. package/dist/components/base/text-inputs/index.d.ts +1 -1
  166. package/dist/components/base/tree/index.d.ts +1 -0
  167. package/dist/components/base/tree/tree.d.ts +2 -2
  168. package/dist/components/base/tree/tree.types.d.ts +7 -1
  169. package/dist/components/base/upload/file-upload.validation.d.ts +37 -1
  170. package/dist/components/base/upload/image-upload.d.ts +2 -0
  171. package/dist/components/base/upload/index.d.ts +3 -9
  172. package/dist/components/base/value-inputs/date-time-input.d.ts +4 -0
  173. package/dist/components/base/value-inputs/slider.d.ts +5 -2
  174. package/dist/components/blocks/admin/action-surfaces/index.d.ts +17 -4
  175. package/dist/components/blocks/admin/api-key-list/api-key-list.types.d.ts +9 -3
  176. package/dist/components/blocks/admin/index.d.ts +1 -1
  177. package/dist/components/blocks/ai/ai-artifact/ai-artifact.d.ts +1 -1
  178. package/dist/components/blocks/ai/ai-artifact/types.d.ts +9 -4
  179. package/dist/components/blocks/ai/ai-chain-of-thought/ai-chain-of-thought.d.ts +1 -1
  180. package/dist/components/blocks/ai/ai-chain-of-thought/types.d.ts +11 -1
  181. package/dist/components/blocks/ai/ai-citation/ai-citation.d.ts +1 -1
  182. package/dist/components/blocks/ai/ai-citation/types.d.ts +6 -0
  183. package/dist/components/blocks/ai/ai-confirmation/ai-confirmation.d.ts +1 -1
  184. package/dist/components/blocks/ai/ai-confirmation/types.d.ts +21 -5
  185. package/dist/components/blocks/ai/ai-feedback/types.d.ts +7 -2
  186. package/dist/components/blocks/ai/ai-inline-citation/types.d.ts +9 -3
  187. package/dist/components/blocks/ai/ai-package-info/ai-package-info.d.ts +1 -1
  188. package/dist/components/blocks/ai/ai-package-info/types.d.ts +6 -0
  189. package/dist/components/blocks/ai/ai-sources/ai-sources.d.ts +1 -1
  190. package/dist/components/blocks/ai/ai-sources/types.d.ts +8 -2
  191. package/dist/components/blocks/ai/ai-task/ai-task.d.ts +1 -1
  192. package/dist/components/blocks/ai/ai-task/types.d.ts +10 -1
  193. package/dist/components/blocks/ai/ai-tool-call/ai-tool-call.d.ts +1 -1
  194. package/dist/components/blocks/ai/ai-tool-call/types.d.ts +6 -0
  195. package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
  196. package/dist/components/blocks/analytics/activity-heatmap/types.d.ts +1 -1
  197. package/dist/components/blocks/analytics/analytics.strings.d.ts +2 -0
  198. package/dist/components/blocks/analytics/atoms/metric-trend-chip.d.ts +11 -1
  199. package/dist/components/blocks/analytics/chart-card/chart-card.d.ts +7 -5
  200. package/dist/components/blocks/analytics/charts/index.d.ts +27 -0
  201. package/dist/components/blocks/analytics/index.d.ts +17 -24
  202. package/dist/components/blocks/analytics/metric/metric.d.ts +5 -5
  203. package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +2 -2
  204. package/dist/components/blocks/analytics/types.d.ts +12 -3
  205. package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +2 -0
  206. package/dist/components/blocks/commerce/address-card/address-card.d.ts +1 -1
  207. package/dist/components/blocks/commerce/address-card/types.d.ts +5 -16
  208. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.d.ts +2 -2
  209. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.types.d.ts +6 -4
  210. package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +0 -2
  211. package/dist/components/blocks/commerce/cart-summary/index.d.ts +2 -2
  212. package/dist/components/blocks/commerce/cart-summary/types.d.ts +9 -11
  213. package/dist/components/blocks/commerce/coupon-input/coupon-input.d.ts +1 -1
  214. package/dist/components/blocks/commerce/coupon-input/types.d.ts +7 -3
  215. package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +0 -2
  216. package/dist/components/blocks/commerce/discount-stack/index.d.ts +2 -2
  217. package/dist/components/blocks/commerce/discount-stack/types.d.ts +4 -6
  218. package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +1 -1
  219. package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +2 -0
  220. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-balance.d.ts +18 -0
  221. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-compact.d.ts +1 -1
  222. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-copy-button.d.ts +0 -1
  223. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-dark.d.ts +1 -1
  224. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-full.d.ts +1 -1
  225. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-illustrated.d.ts +1 -1
  226. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-minimal.d.ts +1 -1
  227. package/dist/components/blocks/commerce/giftcard-card/types.d.ts +16 -5
  228. package/dist/components/blocks/commerce/index.d.ts +8 -8
  229. package/dist/components/blocks/commerce/inventory-level/inventory-level.strings.d.ts +2 -0
  230. package/dist/components/blocks/commerce/inventory-level/types.d.ts +1 -1
  231. package/dist/components/blocks/commerce/inventory-section/types.d.ts +0 -5
  232. package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +6 -3
  233. package/dist/components/blocks/commerce/loyalty-points/loyalty-points.d.ts +1 -1
  234. package/dist/components/blocks/commerce/loyalty-points/types.d.ts +11 -5
  235. package/dist/components/blocks/commerce/order-status/order-status.d.ts +1 -1
  236. package/dist/components/blocks/commerce/order-status/types.d.ts +8 -8
  237. package/dist/components/blocks/commerce/order-timeline/order-timeline.d.ts +1 -1
  238. package/dist/components/blocks/commerce/order-timeline/types.d.ts +3 -1
  239. package/dist/components/blocks/commerce/payment-method/index.d.ts +2 -2
  240. package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +0 -8
  241. package/dist/components/blocks/commerce/payment-method/types.d.ts +0 -2
  242. package/dist/components/blocks/commerce/receipt/index.d.ts +1 -1
  243. package/dist/components/blocks/commerce/receipt/receipt-items.d.ts +1 -1
  244. package/dist/components/blocks/commerce/receipt/types.d.ts +10 -0
  245. package/dist/components/blocks/commerce/refund-status/index.d.ts +2 -2
  246. package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +0 -2
  247. package/dist/components/blocks/commerce/refund-status/types.d.ts +0 -2
  248. package/dist/components/blocks/commerce/seo-listing/types.d.ts +7 -0
  249. package/dist/components/blocks/commerce/shared/code-entry.d.ts +39 -0
  250. package/dist/components/blocks/commerce/shared/order-status.d.ts +1 -1
  251. package/dist/components/blocks/commerce/subscription-summary/subscription-summary.d.ts +1 -1
  252. package/dist/components/blocks/commerce/subscription-summary/types.d.ts +10 -1
  253. package/dist/components/blocks/commerce/upcoming-booking/index.d.ts +2 -1
  254. package/dist/components/blocks/commerce/upcoming-booking/types.d.ts +8 -0
  255. package/dist/components/blocks/commerce/upcoming-booking/upcoming-booking.d.ts +2 -2
  256. package/dist/components/blocks/commerce/vendor-profile/types.d.ts +4 -5
  257. package/dist/components/blocks/commerce/voucher-entry/types.d.ts +6 -3
  258. package/dist/components/blocks/commerce/voucher-entry/voucher-entry.d.ts +1 -1
  259. package/dist/components/blocks/content-block-hooks.d.ts +22 -0
  260. package/dist/components/blocks/data-display/dense-info-card/dense-info.strings.d.ts +5 -1
  261. package/dist/components/blocks/data-display/dense-info-card/helpers.d.ts +3 -1
  262. package/dist/components/blocks/data-display/dense-info-card/index.d.ts +1 -1
  263. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-classification.d.ts +1 -1
  264. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-dashboard.d.ts +1 -1
  265. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-financial.d.ts +1 -1
  266. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-project.d.ts +1 -1
  267. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-score.d.ts +1 -1
  268. package/dist/components/blocks/data-display/dense-info-card/types.d.ts +12 -5
  269. package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +6 -0
  270. package/dist/components/blocks/data-display/index.d.ts +0 -1
  271. package/dist/components/blocks/data-display/relationship-card-frame.d.ts +1 -1
  272. package/dist/components/blocks/onboarding/checklist/checklist.types.d.ts +5 -3
  273. package/dist/components/blocks/planning/task-card.types.d.ts +7 -3
  274. package/dist/components/blocks/timelines/changelog/types.d.ts +2 -2
  275. package/dist/components/blocks/timelines/index.d.ts +2 -2
  276. package/dist/components/blocks/timelines/milestones/types.d.ts +2 -2
  277. package/dist/components/blocks/timelines/shared/timeline.d.ts +6 -0
  278. package/dist/components/blocks/timelines/steps-card/index.d.ts +2 -1
  279. package/dist/components/blocks/timelines/steps-card/steps-card.d.ts +2 -2
  280. package/dist/components/blocks/timelines/steps-card/types.d.ts +13 -1
  281. package/dist/components/features/activities/activities.strings.d.ts +5 -3
  282. package/dist/components/features/activities/activities.types.d.ts +28 -11
  283. package/dist/components/features/activities/hooks/use-activity-feed.d.ts +6 -0
  284. package/dist/components/features/activities/index.d.ts +1 -1
  285. package/dist/components/features/activities/partials/activity-headline.d.ts +5 -0
  286. package/dist/components/features/activities/partials/activity-row.d.ts +12 -13
  287. package/dist/components/features/activities/partials/row-layers.d.ts +7 -0
  288. package/dist/components/features/activities/relative-time.d.ts +18 -0
  289. package/dist/components/features/ai-chat/ai-chat.d.ts +6 -2
  290. package/dist/components/features/ai-chat/ai-chat.strings.d.ts +41 -2
  291. package/dist/components/features/ai-chat/ai-chat.types.d.ts +6 -0
  292. package/dist/components/features/ai-chat/partials/ai-chat-attachments-strip.d.ts +5 -1
  293. package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts +2 -2
  294. package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts +3 -1
  295. package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts +6 -1
  296. package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +1 -1
  297. package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +19 -5
  298. package/dist/components/features/appointment-calendar/index.d.ts +1 -1
  299. package/dist/components/features/appointment-calendar/partials/appointment-agenda.d.ts +18 -10
  300. package/dist/components/features/async-preview/async-preview.d.ts +2 -2
  301. package/dist/components/features/async-preview/async-preview.types.d.ts +30 -1
  302. package/dist/components/features/async-preview/preview-trigger-cell.d.ts +7 -2
  303. package/dist/components/features/combobox/async-resource-combobox.d.ts +2 -2
  304. package/dist/components/features/combobox/combobox.d.ts +12 -3
  305. package/dist/components/features/combobox/components/error-message.d.ts +3 -1
  306. package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +2 -2
  307. package/dist/components/features/combobox/index.d.ts +1 -1
  308. package/dist/components/features/combobox/types.d.ts +47 -45
  309. package/dist/components/features/comments/comments.strings.d.ts +6 -5
  310. package/dist/components/features/comments/comments.types.d.ts +40 -26
  311. package/dist/components/features/comments/hooks/use-attachment-upload.d.ts +5 -1
  312. package/dist/components/features/comments/hooks/use-comments.d.ts +8 -1
  313. package/dist/components/features/data-view/data-view.strings.d.ts +9 -2
  314. package/dist/components/features/data-view/data-view.types.d.ts +15 -2
  315. package/dist/components/features/email-composer/email-html.d.ts +5 -0
  316. package/dist/components/features/email-composer/http.d.ts +2 -0
  317. package/dist/components/features/email-composer/strings.d.ts +17 -2
  318. package/dist/components/features/email-composer/types.d.ts +17 -2
  319. package/dist/components/features/email-composer/use-composer.d.ts +2 -78
  320. package/dist/components/features/event-calendar/event-calendar-day-cell.d.ts +1 -1
  321. package/dist/components/features/event-calendar/event-calendar-event-badge.d.ts +1 -1
  322. package/dist/components/features/event-calendar/event-calendar-header.d.ts +1 -1
  323. package/dist/components/features/event-calendar/event-calendar-legend.d.ts +2 -2
  324. package/dist/components/features/event-calendar/event-calendar.d.ts +1 -1
  325. package/dist/components/features/event-calendar/event-calendar.types.d.ts +126 -21
  326. package/dist/components/features/filters/facets/range-facet.d.ts +13 -8
  327. package/dist/components/features/filters/filter-context.d.ts +9 -0
  328. package/dist/components/features/filters/filters.strings.d.ts +36 -3
  329. package/dist/components/features/filters/filters.types.d.ts +72 -5
  330. package/dist/components/features/filters/hooks/use-filter-draft.d.ts +1 -0
  331. package/dist/components/features/filters/index.d.ts +2 -2
  332. package/dist/components/features/filters/operator-options.d.ts +25 -2
  333. package/dist/components/features/filters/partials/active-filter-item.d.ts +0 -13
  334. package/dist/components/features/filters/partials/async-options-status.d.ts +32 -0
  335. package/dist/components/features/filters/partials/filter-draft-footer.d.ts +11 -0
  336. package/dist/components/features/filters/partials/filter-operator-select.d.ts +4 -2
  337. package/dist/components/features/filters/partials/filter-pill.d.ts +5 -1
  338. package/dist/components/features/filters/partials/filter-tabs.d.ts +2 -1
  339. package/dist/components/features/filters/partials/regular-filter-content.d.ts +1 -1
  340. package/dist/components/features/filters/utils/filter-utils.d.ts +29 -4
  341. package/dist/components/features/global-search/global-search-dialog.d.ts +7 -1
  342. package/dist/components/features/global-search/global-search.d.ts +7 -1
  343. package/dist/components/features/global-search/global-search.strings.d.ts +19 -3
  344. package/dist/components/features/global-search/global-search.types.d.ts +30 -6
  345. package/dist/components/features/global-search/index.d.ts +1 -1
  346. package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +6 -1
  347. package/dist/components/features/global-search/partials/global-search-input.d.ts +2 -0
  348. package/dist/components/features/kanban/index.d.ts +2 -2
  349. package/dist/components/features/kanban/kanban-context.d.ts +4 -0
  350. package/dist/components/features/kanban/kanban-keyboard.d.ts +7 -2
  351. package/dist/components/features/kanban/kanban.d.ts +10 -1
  352. package/dist/components/features/kanban/kanban.strings.d.ts +11 -2
  353. package/dist/components/features/kanban/kanban.types.d.ts +26 -0
  354. package/dist/components/features/map/map.d.ts +4 -0
  355. package/dist/components/features/map/place-autocomplete.d.ts +10 -1
  356. package/dist/components/features/media-library/hooks/use-media-library.d.ts +3 -1
  357. package/dist/components/features/media-library/media-library.d.ts +1 -1
  358. package/dist/components/features/media-library/media-library.strings.d.ts +33 -3
  359. package/dist/components/features/media-library/media-library.types.d.ts +47 -2
  360. package/dist/components/features/media-library/partials/media-library-partials.d.ts +1 -1
  361. package/dist/components/features/mentions/hooks/use-mentions-search.d.ts +7 -0
  362. package/dist/components/features/mentions/index.d.ts +1 -1
  363. package/dist/components/features/mentions/mentions.strings.d.ts +10 -2
  364. package/dist/components/features/mentions/partials/mention-chip.d.ts +1 -0
  365. package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +8 -1
  366. package/dist/components/features/mentions/partials/mention-picker.d.ts +8 -1
  367. package/dist/components/features/mentions/partials/mention-search-error.d.ts +6 -0
  368. package/dist/components/features/mentions/utils/index.d.ts +0 -1
  369. package/dist/components/features/overlays/alert-dialog.d.ts +1 -1
  370. package/dist/components/features/overlays/dialog.d.ts +1 -1
  371. package/dist/components/features/overlays/drawer.d.ts +1 -1
  372. package/dist/components/features/overlays/index.d.ts +2 -2
  373. package/dist/components/features/overlays/overlays.strings.d.ts +2 -1
  374. package/dist/components/features/overlays/overlays.types.d.ts +27 -10
  375. package/dist/components/features/products/components/index.d.ts +0 -10
  376. package/dist/components/features/products/components/product-contract-overview.d.ts +1 -1
  377. package/dist/components/features/products/components/product-details-card.d.ts +1 -1
  378. package/dist/components/features/products/components/product-operations-card.d.ts +1 -1
  379. package/dist/components/features/products/components/product-option-action-menu.d.ts +1 -1
  380. package/dist/components/features/products/components/product-options-summary.d.ts +1 -1
  381. package/dist/components/features/products/components/product-policies-card.d.ts +1 -1
  382. package/dist/components/features/products/components/product-quote-preview-card.d.ts +1 -1
  383. package/dist/components/features/products/components/product-readiness-card.d.ts +1 -1
  384. package/dist/components/features/products/components/product-structure-card.d.ts +1 -1
  385. package/dist/components/features/products/components/product-variant-action-menu.d.ts +1 -1
  386. package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
  387. package/dist/components/features/products/components/product-variants-table.d.ts +1 -1
  388. package/dist/components/features/products/partials/product-surface.d.ts +15 -0
  389. package/dist/components/features/products/products.strings.d.ts +8 -0
  390. package/dist/components/features/products/products.types.d.ts +25 -7
  391. package/dist/components/features/questionnaire/questionnaire.types.d.ts +6 -4
  392. package/dist/components/features/resource/index.d.ts +2 -3
  393. package/dist/components/features/resource/resource.d.ts +2 -10
  394. package/dist/components/features/resource/resource.types.d.ts +7 -149
  395. package/dist/components/features/resource-assignment/partials/assignment-surface.d.ts +15 -0
  396. package/dist/components/features/resource-assignment/resource-assignment.strings.d.ts +6 -1
  397. package/dist/components/features/resource-assignment/resource-assignment.types.d.ts +6 -0
  398. package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +5 -7
  399. package/dist/components/features/rich-text-editor/partials/html-helpers.d.ts +2 -3
  400. package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +6 -2
  401. package/dist/components/features/rich-text-editor/partials/index.d.ts +2 -3
  402. package/dist/components/features/rich-text-editor/partials/rich-text-editor-tiptap.d.ts +0 -1
  403. package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +2 -3
  404. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +13 -1
  405. package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +5 -0
  406. package/dist/components/features/schema-form/schema-form.d.ts +1 -1
  407. package/dist/components/features/schema-form/schema-form.types.d.ts +13 -5
  408. package/dist/components/features/suggestions/suggestions.strings.d.ts +14 -0
  409. package/dist/components/features/suggestions/suggestions.types.d.ts +12 -4
  410. package/dist/components/features/table/data-table.d.ts +1 -1
  411. package/dist/components/features/table/filter-bar.d.ts +1 -1
  412. package/dist/components/features/table/pagination.d.ts +1 -1
  413. package/dist/components/features/table/partials/cell-value.d.ts +1 -1
  414. package/dist/components/features/table/table-body.d.ts +1 -1
  415. package/dist/components/features/table/table-header.d.ts +1 -1
  416. package/dist/components/features/table/table-helpers.d.ts +31 -9
  417. package/dist/components/features/table/table-region.recipes.d.ts +11 -0
  418. package/dist/components/features/table/table-toolbar.d.ts +1 -1
  419. package/dist/components/features/table/table.strings.d.ts +1 -0
  420. package/dist/components/features/table/table.types.d.ts +74 -48
  421. package/dist/components/features/theme-tweaker/theme-provider-settings.d.ts +4 -0
  422. package/dist/components/features/theme-tweaker/theme-tweaker.strings.d.ts +10 -7
  423. package/dist/components/features/theme-tweaker/theme-tweaker.utils.d.ts +17 -0
  424. package/dist/components/layout/app-shell/app-shell.types.d.ts +46 -49
  425. package/dist/components/layout/app-shell/index.d.ts +2 -2
  426. package/dist/components/layout/app-shell/shell-regions.d.ts +9 -0
  427. package/dist/components/layout/app-shell/shell-skip-link.d.ts +9 -0
  428. package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +1 -1
  429. package/dist/components/layout/app-shell/stacked-layout.d.ts +1 -1
  430. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
  431. package/dist/components/layout/auth/auth-shell.d.ts +1 -1
  432. package/dist/components/layout/auth/auth.types.d.ts +0 -5
  433. package/dist/components/layout/containers/inline-gutter-context.d.ts +7 -0
  434. package/dist/components/layout/containers/main-landmark-context.d.ts +6 -0
  435. package/dist/components/layout/header/header.types.d.ts +16 -6
  436. package/dist/components/layout/header/partials/header-global-search-trigger.d.ts +1 -1
  437. package/dist/components/layout/header/partials/header-notifications.d.ts +1 -1
  438. package/dist/components/layout/header/partials/header-search.d.ts +1 -1
  439. package/dist/components/layout/hooks/use-command-shortcut.d.ts +10 -1
  440. package/dist/components/layout/layout.types.d.ts +2 -2
  441. package/dist/components/layout/navigation/breadcrumb-progress/breadcrumb-progress.d.ts +1 -1
  442. package/dist/components/layout/navigation/breadcrumb-progress/types.d.ts +9 -0
  443. package/dist/components/layout/navigation/section-nav/section-nav.d.ts +8 -1
  444. package/dist/components/layout/page/index.d.ts +2 -3
  445. package/dist/components/layout/page/page.strings.d.ts +12 -0
  446. package/dist/components/layout/page/page.types.d.ts +7 -110
  447. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  448. package/dist/components/layout/settings/index.d.ts +1 -1
  449. package/dist/components/layout/settings/settings.d.ts +3 -5
  450. package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
  451. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
  452. package/dist/components/layout/sidebar/components/sidebar-navigation-footer.d.ts +1 -1
  453. package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +1 -1
  454. package/dist/components/layout/sidebar/index.d.ts +1 -1
  455. package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +15 -7
  456. package/dist/components/layout/sidebar/sidebar.types.d.ts +10 -12
  457. package/dist/components/layout/sidebar/sidebar.utils.d.ts +4 -0
  458. package/dist/components/layout/workspace/workspace.strings.d.ts +2 -2
  459. package/dist/components/layout/workspace/workspace.types.d.ts +13 -7
  460. package/dist/components/primitives/date.d.ts +22 -3
  461. package/dist/components/primitives/file-size.d.ts +8 -2
  462. package/dist/components/primitives/index.d.ts +1 -1
  463. package/dist/components/primitives/initials.d.ts +3 -1
  464. package/dist/components/primitives/link.d.ts +8 -1
  465. package/dist/components/primitives/money.d.ts +1 -1
  466. package/dist/components/primitives/number.d.ts +2 -1
  467. package/dist/components/typography/heading.d.ts +9 -3
  468. package/dist/components/typography/index.d.ts +1 -1
  469. package/dist/components/typography/text-link.d.ts +10 -3
  470. package/dist/components/ui/badge.d.ts +2 -4
  471. package/dist/components/ui/breadcrumb.d.ts +2 -3
  472. package/dist/components/ui/button.d.ts +8 -2
  473. package/dist/components/ui/collapsible.d.ts +1 -4
  474. package/dist/components/ui/command.d.ts +20 -18
  475. package/dist/components/ui/dialog.d.ts +3 -9
  476. package/dist/components/ui/empty.d.ts +2 -2
  477. package/dist/components/ui/input-group.d.ts +3 -3
  478. package/dist/components/ui/item.d.ts +3 -3
  479. package/dist/components/ui/popover.d.ts +3 -7
  480. package/dist/components/ui/sheet.d.ts +4 -12
  481. package/dist/components/ui/sidebar-state.d.ts +6 -1
  482. package/dist/components/ui/sidebar.d.ts +7 -4
  483. package/dist/components/ui/tabs.d.ts +2 -2
  484. package/dist/components/ui/toggle-group.d.ts +3 -3
  485. package/dist/components/ui/toggle.d.ts +2 -2
  486. package/dist/components/ui/tooltip.d.ts +1 -3
  487. package/dist/{containers-CSdc32h9.js → containers-BdfLTP4w.js} +37 -32
  488. package/dist/containers-BdfLTP4w.js.map +1 -0
  489. package/dist/content-block-hooks-Z3iKjqd1.js +17 -0
  490. package/dist/content-block-hooks-Z3iKjqd1.js.map +1 -0
  491. package/dist/{copyable-3fdHfMR3.js → copyable-Bmr14W0d.js} +6 -6
  492. package/dist/{copyable-3fdHfMR3.js.map → copyable-Bmr14W0d.js.map} +1 -1
  493. package/dist/{data-display-Cmj-xZYl.js → data-display-CWe9SOYh.js} +264 -251
  494. package/dist/data-display-CWe9SOYh.js.map +1 -0
  495. package/dist/date-3qsCE1ID.js +209 -0
  496. package/dist/date-3qsCE1ID.js.map +1 -0
  497. package/dist/{date-picker-CyQlFYsP.js → date-picker-D1keJQIG.js} +129 -129
  498. package/dist/date-picker-D1keJQIG.js.map +1 -0
  499. package/dist/date-pickers-D8aJoeHc.js +185 -0
  500. package/dist/date-pickers-D8aJoeHc.js.map +1 -0
  501. package/dist/disclosure-panel-B0HFNZ9x.js.map +1 -1
  502. package/dist/{display-CT_N2a3w.js → display-VlmP1I0i.js} +23 -46
  503. package/dist/display-VlmP1I0i.js.map +1 -0
  504. package/dist/{dropdown-menu-C08iIugv.js → dropdown-menu-B8hjvbkS.js} +9 -9
  505. package/dist/{dropdown-menu-C08iIugv.js.map → dropdown-menu-B8hjvbkS.js.map} +1 -1
  506. package/dist/dropzone-CHBNK3de.js +116 -0
  507. package/dist/dropzone-CHBNK3de.js.map +1 -0
  508. package/dist/features/activities.js +682 -628
  509. package/dist/features/activities.js.map +1 -1
  510. package/dist/features/ai-chat.js +258 -226
  511. package/dist/features/ai-chat.js.map +1 -1
  512. package/dist/features/appointment-calendar.js +436 -340
  513. package/dist/features/appointment-calendar.js.map +1 -1
  514. package/dist/features/async-preview.js +351 -265
  515. package/dist/features/async-preview.js.map +1 -1
  516. package/dist/features/combobox.js +2 -2
  517. package/dist/features/comments.js +1 -1
  518. package/dist/features/data-view.js +212 -151
  519. package/dist/features/data-view.js.map +1 -1
  520. package/dist/features/email-composer/engine.js +1 -1
  521. package/dist/features/email-composer.js +344 -315
  522. package/dist/features/email-composer.js.map +1 -1
  523. package/dist/features/event-calendar.js +504 -355
  524. package/dist/features/event-calendar.js.map +1 -1
  525. package/dist/features/filters.js +2 -2
  526. package/dist/features/global-search.js +250 -206
  527. package/dist/features/global-search.js.map +1 -1
  528. package/dist/features/kanban.js +269 -189
  529. package/dist/features/kanban.js.map +1 -1
  530. package/dist/features/map.js +385 -371
  531. package/dist/features/map.js.map +1 -1
  532. package/dist/features/media-library.js +1571 -1199
  533. package/dist/features/media-library.js.map +1 -1
  534. package/dist/features/mentions.js +2 -2
  535. package/dist/features/overlays.js +2 -2
  536. package/dist/features/products.js +1780 -1691
  537. package/dist/features/products.js.map +1 -1
  538. package/dist/features/questionnaire.js +165 -152
  539. package/dist/features/questionnaire.js.map +1 -1
  540. package/dist/features/resource-assignment.js +223 -191
  541. package/dist/features/resource-assignment.js.map +1 -1
  542. package/dist/features/resource.js +55 -220
  543. package/dist/features/resource.js.map +1 -1
  544. package/dist/features/rich-text-editor.js +3 -3
  545. package/dist/features/schema-form.js +280 -228
  546. package/dist/features/schema-form.js.map +1 -1
  547. package/dist/features/suggestions.js +48 -39
  548. package/dist/features/suggestions.js.map +1 -1
  549. package/dist/features/table.js +2 -2
  550. package/dist/features/theme-tweaker.js +723 -633
  551. package/dist/features/theme-tweaker.js.map +1 -1
  552. package/dist/feedback-DmqmXKLn.js +254 -0
  553. package/dist/feedback-DmqmXKLn.js.map +1 -0
  554. package/dist/{field-affordance-recipes-D6H7tVJi.js → field-affordance-recipes-DfbMadot.js} +13 -9
  555. package/dist/field-affordance-recipes-DfbMadot.js.map +1 -0
  556. package/dist/{field-state-recipes-7sza8QbC.js → field-state-recipes-EtCxpEy3.js} +6 -2
  557. package/dist/field-state-recipes-EtCxpEy3.js.map +1 -0
  558. package/dist/filters-BviMRMLS.js +2692 -0
  559. package/dist/filters-BviMRMLS.js.map +1 -0
  560. package/dist/{focus-recipes-B653VaLq.js → focus-recipes-DSkiUvUp.js} +3 -3
  561. package/dist/focus-recipes-DSkiUvUp.js.map +1 -0
  562. package/dist/{form-field-CAPdwdnZ.js → form-field-BdfCwSoQ.js} +5 -5
  563. package/dist/{form-field-CAPdwdnZ.js.map → form-field-BdfCwSoQ.js.map} +1 -1
  564. package/dist/{form-sizing-CgcrUbLU.js → form-sizing-DE_dZw32.js} +3 -3
  565. package/dist/{form-sizing-CgcrUbLU.js.map → form-sizing-DE_dZw32.js.map} +1 -1
  566. package/dist/{forms-B3W8CH7-.js → forms-B8DzJnBN.js} +35 -35
  567. package/dist/forms-B8DzJnBN.js.map +1 -0
  568. package/dist/forms-numeric-DOBswjKj.js +992 -0
  569. package/dist/forms-numeric-DOBswjKj.js.map +1 -0
  570. package/dist/{header-ZIIsRKxP.js → header-Cq3G0ZRP.js} +100 -95
  571. package/dist/header-Cq3G0ZRP.js.map +1 -0
  572. package/dist/{hooks-BitHSh-Y.js → hooks-DHfeSMAO.js} +34 -14
  573. package/dist/hooks-DHfeSMAO.js.map +1 -0
  574. package/dist/{http-D_6rOnzU.js → http-Cu-GPpss.js} +61 -35
  575. package/dist/http-Cu-GPpss.js.map +1 -0
  576. package/dist/{icon-badge-npxF1SLX.js → icon-badge-B0Kq7wom.js} +3 -3
  577. package/dist/{icon-badge-npxF1SLX.js.map → icon-badge-B0Kq7wom.js.map} +1 -1
  578. package/dist/index.js +6 -6
  579. package/dist/inline-gutter-context-CSqmrMFZ.js +11 -0
  580. package/dist/inline-gutter-context-CSqmrMFZ.js.map +1 -0
  581. package/dist/{input-DIREVYHs.js → input-2YrgTUrz.js} +3 -3
  582. package/dist/{input-DIREVYHs.js.map → input-2YrgTUrz.js.map} +1 -1
  583. package/dist/{input-7KAc7XQL.js → input-DfJyrjoR.js} +6 -6
  584. package/dist/{input-7KAc7XQL.js.map → input-DfJyrjoR.js.map} +1 -1
  585. package/dist/{interaction-recipes-4wZ2tvfb.js → interaction-recipes-DmuS1ase.js} +2 -2
  586. package/dist/{interaction-recipes-4wZ2tvfb.js.map → interaction-recipes-DmuS1ase.js.map} +1 -1
  587. package/dist/item-GJ9mvCcg.js +279 -0
  588. package/dist/item-GJ9mvCcg.js.map +1 -0
  589. package/dist/layout/app-shell.js +1 -1
  590. package/dist/layout/auth.js +1 -1
  591. package/dist/layout/containers.js +1 -1
  592. package/dist/layout/header.js +1 -1
  593. package/dist/layout/hooks.js +1 -1
  594. package/dist/layout/navigation.js +1 -1
  595. package/dist/layout/page.js +2 -2
  596. package/dist/layout/settings.js +2 -2
  597. package/dist/layout/sidebar.js +3 -3
  598. package/dist/layout/workspace.js +1 -1
  599. package/dist/layout.js +12 -12
  600. package/dist/{layout.types-E_GAApzO.js → layout.types-DbtnyAtd.js} +11 -8
  601. package/dist/layout.types-DbtnyAtd.js.map +1 -0
  602. package/dist/lib/anchored-positioning.d.ts +11 -0
  603. package/dist/lib/field-affordance-recipes.d.ts +10 -0
  604. package/dist/lib/field-state-recipes.d.ts +6 -0
  605. package/dist/lib/focus-recipes.d.ts +7 -0
  606. package/dist/lib/format.d.ts +25 -0
  607. package/dist/lib/money-format.d.ts +6 -0
  608. package/dist/lib/motion-recipes.d.ts +6 -0
  609. package/dist/lib/surface-recipes.d.ts +32 -2
  610. package/dist/lib/theme-scope.d.ts +17 -1
  611. package/dist/lib/token-merge.generated.d.ts +13 -19
  612. package/dist/lib/ui-provider/index.d.ts +1 -1
  613. package/dist/lib/ui-provider/types.d.ts +5 -0
  614. package/dist/lib/use-controllable-state.d.ts +16 -0
  615. package/dist/lib/use-copy-feedback.d.ts +15 -0
  616. package/dist/lib/utils.js +1 -1
  617. package/dist/lib/variant-props.d.ts +9 -0
  618. package/dist/main-landmark-context-BAsyqp2I.js +11 -0
  619. package/dist/main-landmark-context-BAsyqp2I.js.map +1 -0
  620. package/dist/mentions-zz0ewNIq.js +670 -0
  621. package/dist/mentions-zz0ewNIq.js.map +1 -0
  622. package/dist/{message-BJHnn43M.js → message-BiiVrRrm.js} +10 -7
  623. package/dist/{message-BJHnn43M.js.map → message-BiiVrRrm.js.map} +1 -1
  624. package/dist/{metadata-list-XkqZ_UXH.js → metadata-list-G85roWjS.js} +13 -12
  625. package/dist/metadata-list-G85roWjS.js.map +1 -0
  626. package/dist/{motion-recipes-DitYv6P2.js → motion-recipes-CUc_aHuG.js} +7 -4
  627. package/dist/motion-recipes-CUc_aHuG.js.map +1 -0
  628. package/dist/navigation-C0Be5C3i.js +304 -0
  629. package/dist/navigation-C0Be5C3i.js.map +1 -0
  630. package/dist/{navigation-Bt-v7rWP.js → navigation-CmqaQR_G.js} +99 -103
  631. package/dist/navigation-CmqaQR_G.js.map +1 -0
  632. package/dist/number-NFWKIoiK.js +340 -0
  633. package/dist/number-NFWKIoiK.js.map +1 -0
  634. package/dist/{overflow-tab-bar-BQCA2Zn2.js → overflow-tab-bar-DV7HE_3t.js} +8 -8
  635. package/dist/{overflow-tab-bar-BQCA2Zn2.js.map → overflow-tab-bar-DV7HE_3t.js.map} +1 -1
  636. package/dist/overlays-D-gAIfPF.js +1018 -0
  637. package/dist/overlays-D-gAIfPF.js.map +1 -0
  638. package/dist/page-D4pQhgSq.js +216 -0
  639. package/dist/page-D4pQhgSq.js.map +1 -0
  640. package/dist/{page-header-commands-DIKspJfx.js → page-header-commands-elelNOfd.js} +29 -29
  641. package/dist/{page-header-commands-DIKspJfx.js.map → page-header-commands-elelNOfd.js.map} +1 -1
  642. package/dist/{pagination-Br8TdV9A.js → pagination-BuSWw1US.js} +22 -23
  643. package/dist/pagination-BuSWw1US.js.map +1 -0
  644. package/dist/{popover-k8TdUcAt.js → popover-BpMxbqEK.js} +73 -69
  645. package/dist/popover-BpMxbqEK.js.map +1 -0
  646. package/dist/{popover-menu-yn-o0kyA.js → popover-menu-CO-_iiuz.js} +7 -7
  647. package/dist/{popover-menu-yn-o0kyA.js.map → popover-menu-CO-_iiuz.js.map} +1 -1
  648. package/dist/{popover.recipes-DJ0AkUan.js → popover.recipes-BqkdvlZn.js} +3 -4
  649. package/dist/{popover.recipes-DJ0AkUan.js.map → popover.recipes-BqkdvlZn.js.map} +1 -1
  650. package/dist/{portal-recipes-DyUXqUtD.js → portal-recipes-BPeS4rGB.js} +2 -2
  651. package/dist/{portal-recipes-DyUXqUtD.js.map → portal-recipes-BPeS4rGB.js.map} +1 -1
  652. package/dist/primitives-BlC1lXBr.js +447 -0
  653. package/dist/primitives-BlC1lXBr.js.map +1 -0
  654. package/dist/primitives.js +4 -4
  655. package/dist/{progress-DZFXXzPs.js → progress-RARK8AjB.js} +5 -5
  656. package/dist/{progress-DZFXXzPs.js.map → progress-RARK8AjB.js.map} +1 -1
  657. package/dist/receipt-CUf2Vegp.js +114 -0
  658. package/dist/receipt-CUf2Vegp.js.map +1 -0
  659. package/dist/{rich-text-BnTzZjIo.js → rich-text-Cypm9__d.js} +7 -8
  660. package/dist/{rich-text-BnTzZjIo.js.map → rich-text-Cypm9__d.js.map} +1 -1
  661. package/dist/rich-text-editor-Z6cQepsA.js +919 -0
  662. package/dist/rich-text-editor-Z6cQepsA.js.map +1 -0
  663. package/dist/rich-text-editor-toolbar-DYbRJARB.js +100 -0
  664. package/dist/rich-text-editor-toolbar-DYbRJARB.js.map +1 -0
  665. package/dist/rich-text-tree-DdKHIJx4.js +154 -0
  666. package/dist/rich-text-tree-DdKHIJx4.js.map +1 -0
  667. package/dist/safe-image-src-C6kQSMBZ.js +17 -0
  668. package/dist/safe-image-src-C6kQSMBZ.js.map +1 -0
  669. package/dist/{scroll-area-Bj6CRUif.js → scroll-area-B9HKbji0.js} +3 -3
  670. package/dist/{scroll-area-Bj6CRUif.js.map → scroll-area-B9HKbji0.js.map} +1 -1
  671. package/dist/{separator-DM6gs2vu.js → separator-DaDe26sf.js} +3 -3
  672. package/dist/separator-DaDe26sf.js.map +1 -0
  673. package/dist/{separator-B9ewiCGO.js → separator-KGsNXt2J.js} +2 -2
  674. package/dist/{separator-B9ewiCGO.js.map → separator-KGsNXt2J.js.map} +1 -1
  675. package/dist/services/actions/action-adapters.d.ts +5 -2
  676. package/dist/services/actions/index.d.ts +1 -1
  677. package/dist/services/actions.js +2 -2
  678. package/dist/services/actions.js.map +1 -1
  679. package/dist/settings-D5j_RJvT.js +160 -0
  680. package/dist/settings-D5j_RJvT.js.map +1 -0
  681. package/dist/sheet-B6j_BE9O.js +241 -0
  682. package/dist/sheet-B6j_BE9O.js.map +1 -0
  683. package/dist/{sidebar-CmD6a-HK.js → sidebar-C-iQ_TJP.js} +377 -351
  684. package/dist/sidebar-C-iQ_TJP.js.map +1 -0
  685. package/dist/sidebar-D5VO2W8S.js +715 -0
  686. package/dist/sidebar-D5VO2W8S.js.map +1 -0
  687. package/dist/{skeleton-DDgdhmu9.js → skeleton-Cab_KgVo.js} +12 -12
  688. package/dist/skeleton-Cab_KgVo.js.map +1 -0
  689. package/dist/{smart-card-B6vLxqa_.js → smart-card-C59z6KFO.js} +217 -210
  690. package/dist/smart-card-C59z6KFO.js.map +1 -0
  691. package/dist/{structure-DZJ2wbAU.js → structure-DElaQwwN.js} +2 -2
  692. package/dist/{structure-DZJ2wbAU.js.map → structure-DElaQwwN.js.map} +1 -1
  693. package/dist/style.css +1 -1
  694. package/dist/{surface-recipes-C8mNycaY.js → surface-recipes-DV6rrOFq.js} +10 -2
  695. package/dist/surface-recipes-DV6rrOFq.js.map +1 -0
  696. package/dist/{table-CXSPHH25.js → table-CSRUgpdK.js} +62 -61
  697. package/dist/table-CSRUgpdK.js.map +1 -0
  698. package/dist/table-DdXDBsR_.js +1657 -0
  699. package/dist/table-DdXDBsR_.js.map +1 -0
  700. package/dist/{tabs-C4Kr_hCr.js → tabs-WnHfV2pM.js} +27 -27
  701. package/dist/tabs-WnHfV2pM.js.map +1 -0
  702. package/dist/{text-inputs-jdkS3ReG.js → text-inputs-ljyBYaCd.js} +112 -112
  703. package/dist/text-inputs-ljyBYaCd.js.map +1 -0
  704. package/dist/theme.css +21 -5
  705. package/dist/timelines-mOmS9Eh3.js +479 -0
  706. package/dist/timelines-mOmS9Eh3.js.map +1 -0
  707. package/dist/tooltip-yjX-Uv-p.js +112 -0
  708. package/dist/tooltip-yjX-Uv-p.js.map +1 -0
  709. package/dist/{tree-CeYVzdFE.js → tree-YpkxUG2Z.js} +80 -72
  710. package/dist/tree-YpkxUG2Z.js.map +1 -0
  711. package/dist/typography/rich-text.js +1 -1
  712. package/dist/{typography-C7-YMW1S.js → typography-C0dELqYV.js} +46 -40
  713. package/dist/typography-C0dELqYV.js.map +1 -0
  714. package/dist/typography.js +1 -1
  715. package/dist/{ui-provider-C-74NVLc.js → ui-provider-Bu1S-o96.js} +4 -3
  716. package/dist/ui-provider-Bu1S-o96.js.map +1 -0
  717. package/dist/ui-provider.js +2 -2
  718. package/dist/{upload-Hdm5gObf.js → upload-DMuMYJFT.js} +276 -268
  719. package/dist/upload-DMuMYJFT.js.map +1 -0
  720. package/dist/{usage-card-9s8hLDfn.js → usage-card-DDPki5P1.js} +57 -54
  721. package/dist/usage-card-DDPki5P1.js.map +1 -0
  722. package/dist/use-controllable-state-BlP8SyBI.js +13 -0
  723. package/dist/use-controllable-state-BlP8SyBI.js.map +1 -0
  724. package/dist/use-copy-feedback-CzcaqlLf.js +28 -0
  725. package/dist/use-copy-feedback-CzcaqlLf.js.map +1 -0
  726. package/dist/use-metric-format-options-Dk4rC1NO.js +251 -0
  727. package/dist/use-metric-format-options-Dk4rC1NO.js.map +1 -0
  728. package/dist/{utils-DhuoqFy4.js → utils-BVbAG2J6.js} +98 -76
  729. package/dist/utils-BVbAG2J6.js.map +1 -0
  730. package/dist/value-inputs-h5MwjGCo.js +982 -0
  731. package/dist/value-inputs-h5MwjGCo.js.map +1 -0
  732. package/dist/value-typography-D15uwfj-.js +154 -0
  733. package/dist/value-typography-D15uwfj-.js.map +1 -0
  734. package/dist/workspace-DIryPqBt.js +400 -0
  735. package/dist/workspace-DIryPqBt.js.map +1 -0
  736. package/docs/consumer-skill/SKILL.md +7 -0
  737. package/docs/consumer-skill/agents/themelia-ui-designer.md +11 -2
  738. package/docs/consumer-skill/examples/analytics.tsx +1 -1
  739. package/docs/consumer-skill/examples/app-layout.tsx +3 -3
  740. package/docs/consumer-skill/examples/commerce-lines.tsx +7 -5
  741. package/docs/consumer-skill/examples/detail.tsx +3 -2
  742. package/docs/consumer-skill/examples/email-composer.tsx +1 -1
  743. package/docs/consumer-skill/examples/index-table.tsx +2 -2
  744. package/docs/consumer-skill/examples/scoped-directory.tsx +7 -6
  745. package/docs/consumer-skill/references/agents-md.md +20 -16
  746. package/docs/consumer-skill/references/analytics.md +20 -6
  747. package/docs/consumer-skill/references/building-views.md +213 -0
  748. package/docs/consumer-skill/references/catalogue.md +617 -0
  749. package/docs/consumer-skill/references/component-contracts.json +10202 -18084
  750. package/docs/consumer-skill/references/composition.md +21 -17
  751. package/docs/consumer-skill/references/discovery.md +8 -5
  752. package/docs/consumer-skill/references/installation.md +10 -4
  753. package/docs/consumer-skill/references/integration.md +5 -5
  754. package/docs/consumer-skill/references/product-composition.md +2 -2
  755. package/docs/consumer-skill/references/public-api.json +580 -633
  756. package/docs/consumer-skill/references/review.md +6 -4
  757. package/docs/consumer-skill/references/screen-archetypes.md +2 -2
  758. package/docs/consumer-skill/references/theming.md +1 -1
  759. package/docs/consumer-skill/references/tokens.json +4 -4
  760. package/docs/consumer-skill/references/workflows.md +7 -7
  761. package/docs/consumer-skill/scripts/composition-policy.mjs +40 -20
  762. package/docs/consumer-skill/scripts/composition.mjs +4 -1
  763. package/docs/consumer-skill/scripts/discovery.mjs +3 -1
  764. package/docs/consumer-skill/scripts/setup-skills.mjs +31 -4
  765. package/docs/consumer-skills/themelia-components/SKILL.md +8 -4
  766. package/docs/consumer-skills/themelia-composition/SKILL.md +7 -3
  767. package/docs/consumer-skills/themelia-design/SKILL.md +7 -1
  768. package/docs/consumer-skills/themelia-tokenization/SKILL.md +1 -1
  769. package/package.json +9 -12
  770. package/templates/README.md +3 -2
  771. package/templates/admin-shell-template.tsx +49 -9
  772. package/templates/analytics-operations-template.tsx +20 -24
  773. package/templates/customers-template.tsx +12 -9
  774. package/templates/index.ts +2 -8
  775. package/templates/orders-template.tsx +28 -24
  776. package/templates/products-template.tsx +14 -4
  777. package/templates/user-permissions-template.tsx +11 -14
  778. package/dist/accordion-0tQUZ20r.js.map +0 -1
  779. package/dist/action-menu-C0gjzLyE.js +0 -284
  780. package/dist/action-menu-C0gjzLyE.js.map +0 -1
  781. package/dist/ai-artifact-CGGpQryR.js +0 -1200
  782. package/dist/ai-artifact-CGGpQryR.js.map +0 -1
  783. package/dist/anchored-positioning-DPnKTvNs.js +0 -6
  784. package/dist/anchored-positioning-DPnKTvNs.js.map +0 -1
  785. package/dist/app-shell-EHuuRDGy.js +0 -321
  786. package/dist/app-shell-EHuuRDGy.js.map +0 -1
  787. package/dist/auth-B0girIk_.js.map +0 -1
  788. package/dist/badge-wWauMgAt.js.map +0 -1
  789. package/dist/base/sheet.js +0 -3
  790. package/dist/breadcrumbs-Bp9Ke7kd.js.map +0 -1
  791. package/dist/button-ChBovTx0.js.map +0 -1
  792. package/dist/buttons-DeW0bQeK.js.map +0 -1
  793. package/dist/cascader-CrAl9zD5.js +0 -439
  794. package/dist/cascader-CrAl9zD5.js.map +0 -1
  795. package/dist/choice-inputs-DHGtx0QV.js.map +0 -1
  796. package/dist/code-block-BSJyq9e-.js.map +0 -1
  797. package/dist/collapsible-BzJ91LUG.js +0 -81
  798. package/dist/collapsible-BzJ91LUG.js.map +0 -1
  799. package/dist/combobox-Bcvu5J8O.js +0 -363
  800. package/dist/combobox-Bcvu5J8O.js.map +0 -1
  801. package/dist/combobox-C2JiSQPc.js +0 -915
  802. package/dist/combobox-C2JiSQPc.js.map +0 -1
  803. package/dist/command-9e52NPgK.js +0 -425
  804. package/dist/command-9e52NPgK.js.map +0 -1
  805. package/dist/comments-BsgErEqd.js +0 -1174
  806. package/dist/comments-BsgErEqd.js.map +0 -1
  807. package/dist/components/base/buttons/tooltip-button.d.ts +0 -7
  808. package/dist/components/base/display/content-block.d.ts +0 -75
  809. package/dist/components/base/display/content-block.strings.d.ts +0 -5
  810. package/dist/components/base/sheet/index.d.ts +0 -29
  811. package/dist/components/blocks/ai/use-copy-feedback.d.ts +0 -6
  812. package/dist/components/blocks/data-display/metadata/index.d.ts +0 -30
  813. package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +0 -10
  814. package/dist/components/features/resource/resource.strings.d.ts +0 -12
  815. package/dist/components/features/rich-text-editor/partials/rich-text-editor-fallback.d.ts +0 -8
  816. package/dist/components/features/sync/index.d.ts +0 -26
  817. package/dist/components/features/sync/sync-range-dialog-form.d.ts +0 -5
  818. package/dist/components/features/sync/sync.strings.d.ts +0 -18
  819. package/dist/components/features/sync/sync.types.d.ts +0 -44
  820. package/dist/components/layout/page/partials/page-actions.d.ts +0 -3
  821. package/dist/components/ui/slot.d.ts +0 -6
  822. package/dist/containers-CSdc32h9.js.map +0 -1
  823. package/dist/data-display-Cmj-xZYl.js.map +0 -1
  824. package/dist/date-Br0FicVv.js +0 -144
  825. package/dist/date-Br0FicVv.js.map +0 -1
  826. package/dist/date-picker-CyQlFYsP.js.map +0 -1
  827. package/dist/date-pickers-tj2MXmXd.js +0 -185
  828. package/dist/date-pickers-tj2MXmXd.js.map +0 -1
  829. package/dist/display-CT_N2a3w.js.map +0 -1
  830. package/dist/features/sync.js +0 -142
  831. package/dist/features/sync.js.map +0 -1
  832. package/dist/feedback-Dzo1xtAU.js +0 -246
  833. package/dist/feedback-Dzo1xtAU.js.map +0 -1
  834. package/dist/field-affordance-recipes-D6H7tVJi.js.map +0 -1
  835. package/dist/field-state-recipes-7sza8QbC.js.map +0 -1
  836. package/dist/filters-Dl80yYtN.js +0 -2415
  837. package/dist/filters-Dl80yYtN.js.map +0 -1
  838. package/dist/focus-recipes-B653VaLq.js.map +0 -1
  839. package/dist/forms-B3W8CH7-.js.map +0 -1
  840. package/dist/forms-numeric-CwjQJe-O.js +0 -991
  841. package/dist/forms-numeric-CwjQJe-O.js.map +0 -1
  842. package/dist/header-ZIIsRKxP.js.map +0 -1
  843. package/dist/hooks-BitHSh-Y.js.map +0 -1
  844. package/dist/http-D_6rOnzU.js.map +0 -1
  845. package/dist/item-FfWnaYST.js +0 -278
  846. package/dist/item-FfWnaYST.js.map +0 -1
  847. package/dist/layout.types-E_GAApzO.js.map +0 -1
  848. package/dist/media-gallery-C81DAnKI.js +0 -203
  849. package/dist/media-gallery-C81DAnKI.js.map +0 -1
  850. package/dist/mentions-qOnedSt4.js +0 -639
  851. package/dist/mentions-qOnedSt4.js.map +0 -1
  852. package/dist/metadata-list-XkqZ_UXH.js.map +0 -1
  853. package/dist/motion-recipes-DitYv6P2.js.map +0 -1
  854. package/dist/navigation-BgtPJAhi.js +0 -288
  855. package/dist/navigation-BgtPJAhi.js.map +0 -1
  856. package/dist/navigation-Bt-v7rWP.js.map +0 -1
  857. package/dist/number-CYqBcrSj.js +0 -346
  858. package/dist/number-CYqBcrSj.js.map +0 -1
  859. package/dist/overlays-CC8zI3Du.js +0 -1017
  860. package/dist/overlays-CC8zI3Du.js.map +0 -1
  861. package/dist/page-BoQ1VaFJ.js +0 -331
  862. package/dist/page-BoQ1VaFJ.js.map +0 -1
  863. package/dist/pagination-Br8TdV9A.js.map +0 -1
  864. package/dist/popover-k8TdUcAt.js.map +0 -1
  865. package/dist/primitives-BkkQjYl7.js +0 -385
  866. package/dist/primitives-BkkQjYl7.js.map +0 -1
  867. package/dist/receipt-C7LhOg7Q.js +0 -116
  868. package/dist/receipt-C7LhOg7Q.js.map +0 -1
  869. package/dist/rich-text-editor-CAurDwT5.js +0 -1273
  870. package/dist/rich-text-editor-CAurDwT5.js.map +0 -1
  871. package/dist/rich-text-editor-toolbar-DbXig7Jk.js +0 -99
  872. package/dist/rich-text-editor-toolbar-DbXig7Jk.js.map +0 -1
  873. package/dist/rich-text-tree-BqyQ_7-R.js +0 -66
  874. package/dist/rich-text-tree-BqyQ_7-R.js.map +0 -1
  875. package/dist/sanitize-html-BWkH4dLM.js +0 -105
  876. package/dist/sanitize-html-BWkH4dLM.js.map +0 -1
  877. package/dist/separator-DM6gs2vu.js.map +0 -1
  878. package/dist/settings-DZPHgpx4.js +0 -155
  879. package/dist/settings-DZPHgpx4.js.map +0 -1
  880. package/dist/sheet-C4DHsgLk.js +0 -250
  881. package/dist/sheet-C4DHsgLk.js.map +0 -1
  882. package/dist/sidebar-C8BnDwTH.js +0 -709
  883. package/dist/sidebar-C8BnDwTH.js.map +0 -1
  884. package/dist/sidebar-CmD6a-HK.js.map +0 -1
  885. package/dist/skeleton-DDgdhmu9.js.map +0 -1
  886. package/dist/slot-CLF9kLrS.js +0 -16
  887. package/dist/slot-CLF9kLrS.js.map +0 -1
  888. package/dist/smart-card-B6vLxqa_.js.map +0 -1
  889. package/dist/surface-recipes-C8mNycaY.js.map +0 -1
  890. package/dist/table-CBonSdTp.js +0 -1584
  891. package/dist/table-CBonSdTp.js.map +0 -1
  892. package/dist/table-CXSPHH25.js.map +0 -1
  893. package/dist/tabs-C4Kr_hCr.js.map +0 -1
  894. package/dist/text-inputs-jdkS3ReG.js.map +0 -1
  895. package/dist/timelines-CoPwdJP0.js +0 -458
  896. package/dist/timelines-CoPwdJP0.js.map +0 -1
  897. package/dist/tooltip-31NwIpTo.js +0 -113
  898. package/dist/tooltip-31NwIpTo.js.map +0 -1
  899. package/dist/tree-CeYVzdFE.js.map +0 -1
  900. package/dist/typography-C7-YMW1S.js.map +0 -1
  901. package/dist/ui-provider-C-74NVLc.js.map +0 -1
  902. package/dist/upload-Hdm5gObf.js.map +0 -1
  903. package/dist/upload-queue-D0sYPuqo.js +0 -409
  904. package/dist/upload-queue-D0sYPuqo.js.map +0 -1
  905. package/dist/usage-card-9s8hLDfn.js.map +0 -1
  906. package/dist/utils-DhuoqFy4.js.map +0 -1
  907. package/dist/value-inputs-D3aPgq9H.js +0 -980
  908. package/dist/value-inputs-D3aPgq9H.js.map +0 -1
  909. package/dist/value-typography-uSzzG9Gf.js +0 -122
  910. package/dist/value-typography-uSzzG9Gf.js.map +0 -1
  911. package/dist/workspace-CC8Vchiu.js +0 -411
  912. package/dist/workspace-CC8Vchiu.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-pickers-D8aJoeHc.js","names":["React","CalendarIcon","useDatesConfig","cn","Text","Button","Stack","popoverWidthRecipes","formControlIconClasses","pickerTriggerClasses","DatePickerFooter","usePickerOpenState","defaultDatePickerStrings","DatePickerField","usePickerTriggerSize","DatePickerHeader","resolvePickerButtonProps","PopoverTrigger","Popover","PopoverContent","FormField","Select","React$1","DEFAULT_YEAR_SPAN","MonthYearPicker","controlledOpen","dateFormat","externalDescription","ariaInvalid","sizeProp","size","presentation","buttonTone","buttonStyle","currentYear","open","setOpen","selection","setSelection","value","defaultValue","previousValueRef","dates","dateFnsLocale","locale","enUS","t","useStrings","strings","generatedTriggerId","triggerId","id","describedBy","ariaDescribedBy","error","isInvalid","invalid","monthSelectId","yearSelectId","yearRange","start","fromYear","end","toYear","i","monthNames","format","createOutput","date","year","month","readableFormat","handleMonthChange","monthValue","handleYearChange","yearValue","handleConfirm","onValueChange","closeOnSelect","buttonText","placeholder","ref","className","triggerRef","triggerProps","iconOnly","Calendar","header","index","disabled","footer"],"sources":["../src/components/base/date-pickers/month-year-picker.tsx"],"sourcesContent":["import { format } from 'date-fns';\nimport { Calendar as CalendarIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '../buttons';\nimport { FormField } from '../forms/form-field';\nimport { Stack } from '../structure';\nimport {\n\tPopover,\n\tPopoverContent,\n\tPopoverTrigger\n} from '../popover';\nimport { Select } from '../choice-inputs';\nimport { Text } from '../../typography';\nimport { useDatesConfig } from '../../../lib/ui-provider';\nimport { cn } from '../../../lib/utils';\n\nimport { useStrings } from '../../../lib/strings';\n\nimport { DatePickerField } from './date-picker-field';\nimport { DatePickerFooter } from './date-picker-footer';\nimport { DatePickerHeader } from './date-picker-header';\nimport { pickerTriggerClasses, usePickerTriggerSize } from './date-picker.recipes';\nimport { resolvePickerButtonProps, usePickerOpenState } from './date-picker-internals';\nimport { formControlIconClasses } from '../forms/form-sizing';\nimport { defaultDatePickerStrings } from './date-pickers.strings';\nimport type { MonthYearPickerProps, MonthYearOutput } from './datepicker.types';\nimport { enUS } from 'date-fns/locale';\nimport { popoverWidthRecipes } from '../popover/popover.recipes';\n\n/** Years offered on either side of the current year when no range is given. */\nconst DEFAULT_YEAR_SPAN = 10;\n\nexport const MonthYearPicker = React.forwardRef<HTMLDivElement, MonthYearPickerProps>(function MonthYearPicker({\n\tvalue,\n\tdefaultValue,\n\tonValueChange,\n\topen: controlledOpen,\n\tdefaultOpen,\n\tonOpenChange,\n\tformat: dateFormat = 'yyyy-MM',\n\treadableFormat = 'MMMM yyyy',\n\tplaceholder,\n\tlabel,\n\thint,\n\terror,\n\tinvalid,\n\tid,\n\ttriggerRef,\n\tonBlur,\n\t'aria-describedby': externalDescription,\n\t'aria-invalid': ariaInvalid,\n\tdisabled = false,\n\tsize: sizeProp,\n\tbuttonTone,\n\tbuttonStyle,\n\tclassName,\n\tcloseOnSelect = true,\n\tstrings,\n\tlocale,\n\theader,\n\tfooter,\n\tfromYear,\n\ttoYear,\n\ticonOnly = false\n}: MonthYearPickerProps, ref) {\n\tconst size = usePickerTriggerSize(sizeProp);\n\tconst presentation = resolvePickerButtonProps(buttonTone, buttonStyle);\n\tconst [currentYear] = React.useState(() => new Date().getFullYear());\n\tconst [open, setOpen] = usePickerOpenState({ open: controlledOpen, defaultOpen, onOpenChange, disabled });\n\tconst [selection, setSelection] = React.useState<{\n\t\tmonth: number;\n\t\tyear: number;\n\t} | undefined>(value ?? defaultValue);\n\tconst previousValueRef = React.useRef(value);\n\n\tconst dates = useDatesConfig();\n\tconst dateFnsLocale = locale ?? dates.locale ?? enUS;\n\tconst t = useStrings(defaultDatePickerStrings, strings);\n\tconst generatedTriggerId = React.useId();\n\tconst triggerId = id ?? generatedTriggerId;\n\t// Mirrors the DatePicker variants: the error line is the trigger's\n\t// description, so screen readers announce it with the control.\n\tconst describedBy = `${triggerId}-description`;\n\tconst ariaDescribedBy = [externalDescription, error ? describedBy : undefined].filter(Boolean).join(' ') || undefined;\n\tconst isInvalid = Boolean(error) || Boolean(invalid || (ariaInvalid && ariaInvalid !== 'false'));\n\t// Derived from useId so several pickers can coexist on one page; these were\n\t// previously the fixed literals \"month-select\" / \"year-select\".\n\tconst monthSelectId = `${triggerId}-month`;\n\tconst yearSelectId = `${triggerId}-year`;\n\n\t// Year range. Anchored to the current year rather than fixed literals: the\n\t// previous 2017–2035 defaults would have stopped offering any future year\n\t// once 2035 arrived.\n\tconst yearRange = React.useMemo(() => {\n\t\tconst start = fromYear ?? currentYear - DEFAULT_YEAR_SPAN;\n\t\tconst end = toYear ?? currentYear + DEFAULT_YEAR_SPAN;\n\t\treturn Array.from({ length: Math.max(end - start + 1, 1) }, (_, i) => start + i);\n\t}, [fromYear, toYear, currentYear]);\n\n\t// Month names (localized)\n\tconst monthNames = React.useMemo(() => {\n\t\treturn Array.from({ length: 12 }, (_, i) => {\n\t\t\tconst date = new Date(2000, i, 1);\n\t\t\treturn format(date, 'MMMM', { locale: dateFnsLocale });\n\t\t});\n\t}, [dateFnsLocale]);\n\n\t// A new controlled value or its release owns selection; unrelated default\n\t// objects must not discard a month being edited before confirmation.\n\tReact.useEffect(() => {\n\t\tif (Object.is(previousValueRef.current, value)) return;\n\t\tpreviousValueRef.current = value;\n\t\tsetSelection(value ?? defaultValue);\n\t}, [value, defaultValue]);\n\n\t// Helper to create the output object\n\tconst createOutput = React.useCallback(\n\t\t(month: number, year: number): MonthYearOutput => {\n\t\t\tconst date = new Date(year, month, 1);\n\t\t\treturn {\n\t\t\t\tmonth,\n\t\t\t\tyear,\n\t\t\t\tformatted: format(date, dateFormat, { locale: dateFnsLocale }),\n\t\t\t\treadable: format(date, readableFormat, { locale: dateFnsLocale }),\n\t\t\t\tdate\n\t\t\t};\n\t\t},\n\t\t[dateFormat, readableFormat, dateFnsLocale]\n\t);\n\n\t// Handle selection change\n\tconst handleMonthChange = React.useCallback(\n\t\t(monthValue: unknown) => {\n\t\t\tconst monthStr = String(monthValue);\n\t\t\tconst month = parseInt(monthStr, 10);\n\t\t\tconst year = selection?.year ?? currentYear;\n\t\t\tsetSelection({ month, year });\n\t\t},\n\t\t[selection?.year, currentYear]\n\t);\n\n\tconst handleYearChange = React.useCallback(\n\t\t(yearValue: unknown) => {\n\t\t\tconst yearStr = String(yearValue);\n\t\t\tconst year = parseInt(yearStr, 10);\n\t\t\tconst month = selection?.month ?? 0;\n\t\t\tsetSelection({ month, year });\n\t\t},\n\t\t[selection?.month]\n\t);\n\n\t// Handle confirm button click\n\tconst handleConfirm = React.useCallback(() => {\n\t\tif (selection) {\n\t\t\tonValueChange?.(createOutput(selection.month, selection.year));\n\t\t\tif (closeOnSelect) {\n\t\t\t\tsetOpen(false);\n\t\t\t}\n\t\t}\n\t}, [selection, onValueChange, createOutput, closeOnSelect, setOpen]);\n\n\t// Button display text\n\tconst buttonText = React.useMemo(() => {\n\t\tif (selection) {\n\t\t\tconst date = new Date(selection.year, selection.month, 1);\n\t\t\treturn format(date, readableFormat, { locale: dateFnsLocale });\n\t\t}\n\t\treturn placeholder ?? t.selectMonthYear;\n\t}, [selection, readableFormat, dateFnsLocale, placeholder, t.selectMonthYear]);\n\n\treturn (\n\t\t<DatePickerField\n\t\t\trootRef={ref}\n\t\t\tclassName={cn('month-year-picker--component', className)}\n\t\t\tlabel={label}\n\t\t\thint={hint}\n\t\t\terror={error}\n\t\t\ttriggerId={triggerId}\n\t\t\tdescribedById={describedBy}\n\t\t>\n\t\t\t<Popover open={open} onOpenChange={setOpen}>\n\t\t\t\t<PopoverTrigger\n\t\t\t\t\tref={triggerRef}\n\t\t\t\t\tonBlur={onBlur}\n\t\t\t\t\trender={(triggerProps) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t{...triggerProps}\n\t\t\t\t\t\t\tid={triggerId}\n\t\t\t\t\t\t\ttone={presentation.tone}\n\t\t\t\t\t\t\tbuttonStyle={presentation.buttonStyle}\n\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t\taria-invalid={isInvalid}\n\t\t\t\t\t\t\taria-describedby={ariaDescribedBy}\n\t\t\t\t\t\t\t// Icon-only drops the visible value, so the action name has to\n\t\t\t\t\t\t\t// carry the button on its own.\n\t\t\t\t\t\t\taria-label={iconOnly ? t.selectMonthYear : undefined}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\tpickerTriggerClasses(size, iconOnly),\n\t\t\t\t\t\t\t\t!selection && 'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t(triggerProps as { className?: string }).className,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CalendarIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n\t\t\t\t\t\t\t{!iconOnly && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" lineHeight=\"tight\" className=\"min-w-0 truncate text-inherit\">\n\t\t\t\t\t\t\t\t\t{buttonText}\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</Button>\n\t\t\t\t\t)}\n\t\t\t\t/>\n\n\t\t\t\t<PopoverContent\n\t\t\t\t\tinset=\"flush\"\n\t\t\t\t\tclassName={cn(popoverWidthRecipes.lg, 'gap-0')}\n\t\t\t\t\talign=\"start\"\n\t\t\t\t>\n\t\t\t\t\t{/* Header */}\n\t\t\t\t\t{!!header && <DatePickerHeader config={header} />}\n\n\t\t\t\t\t{/* Month and Year Selectors: ordinary FormField rows, so the label\n\t\t\t\t\t rhythm matches every other field. */}\n\t\t\t\t\t<div className=\"p-surface\">\n\t\t\t\t\t<Stack gap=\"xl\">\n\t\t\t\t\t\t<FormField label={t.month} htmlFor={monthSelectId}>\n\t\t\t\t\t\t\t<Select id={monthSelectId}\n\t\t\t\t\t\t\t\toptions={monthNames.map((label,index)=>({label,value:index.toString()}))}\n\t\t\t\t\t\t\t\tvalue={selection?.month?.toString()} onValueChange={handleMonthChange}\n\t\t\t\t\t\t\t\tplaceholder={t.month} disabled={disabled}/>\n\t\t\t\t\t\t</FormField>\n\n\t\t\t\t\t\t<FormField label={t.year} htmlFor={yearSelectId}>\n\t\t\t\t\t\t\t<Select id={yearSelectId}\n\t\t\t\t\t\t\t\toptions={yearRange.map(year=>({label:year.toString(),value:year.toString()}))}\n\t\t\t\t\t\t\t\tvalue={selection?.year?.toString()} onValueChange={handleYearChange}\n\t\t\t\t\t\t\t\tplaceholder={t.year} disabled={disabled}/>\n\t\t\t\t\t\t</FormField>\n\t\t\t\t\t</Stack>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Confirm Button */}\n\t\t\t\t\t<div className=\"px-surface pb-surface\">\n\t\t\t\t\t\t<Button tone=\"primary\"\n\t\t\t\t\t\t\tclassName=\"w-full\"\n\t\t\t\t\t\t\tonClick={handleConfirm}\n\t\t\t\t\t\t\tdisabled={disabled || !selection}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t.confirm}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Footer */}\n\t\t\t\t\t{!!footer && !!selection && (\n\t\t\t<DatePickerFooter\n\t\t\t\t\t\t\tconfig={footer}\n\t\t\t\t\t\t\toutput={createOutput(selection.month, selection.year)}\n\t\t\t\t\t\t\thasSelection={!!selection}\n\t\t\t\t\t\t\tautoSummary={buttonText}\n\t\t\t\t\t\t/>\n\t\t)}\n\t\t\t\t</PopoverContent>\n\t\t\t</Popover>\n\n\t\t</DatePickerField>\n\t);\n});\n\n// Convenience export for type\nexport type { MonthYearPickerProps, MonthYearOutput };\n\nMonthYearPicker.displayName = 'MonthYearPicker';\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"disclosure-panel-B0HFNZ9x.js","names":["React","React$1","DisclosurePanelElement","height","props","heightVariable","measure","node","styles","current","authoredStyle","states","name","expanded","value","state","useRender","render","renderProps"],"sources":["../src/components/ui/disclosure-panel.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useRender } from '@base-ui/react/use-render';\n\ntype PanelState = { open: boolean; transitionStatus: string | undefined };\n\n/** Keep the native panel and Base UI lifecycle; correct its collapsed-padding measurement. */\nexport function DisclosurePanelElement<State extends PanelState>({\n props,\n state,\n render,\n heightVariable,\n}: {\n props: React.ComponentPropsWithRef<'div'>;\n state: State;\n render?: useRender.RenderProp<State>;\n heightVariable: '--accordion-panel-height' | '--collapsible-panel-height';\n}) {\n const height = (props.style as Record<string, unknown> | undefined)?.[heightVariable];\n const measure = React.useCallback((node: HTMLDivElement | null) => {\n // Base UI resets this to auto when opening finishes. Leave natural layout alone.\n if (!node || height === 'auto' || height == null || node.hidden) return;\n const styles = getComputedStyle(node);\n const current = {\n height: styles.height,\n 'padding-block-start': styles.paddingBlockStart,\n 'padding-block-end': styles.paddingBlockEnd,\n };\n // Preserve the complete declaration: CSS variable shorthands have empty CSSOM longhands.\n const authoredStyle = node.style.cssText;\n const attributes = ['data-starting-style', 'data-ending-style'] as const;\n const states = attributes.map(name => [name, node.getAttribute(name)] as const);\n node.style.setProperty('transition-property', 'none', 'important');\n node.style.setProperty('height', 'auto', 'important');\n for (const [name] of states) node.removeAttribute(name);\n // Read geometry, never copy theme variables or insets into a second styling system.\n // Computed layout height excludes ancestor transforms (for example, an opening dialog).\n const expanded = parseFloat(getComputedStyle(node).height);\n for (const [name, value] of states) if (value !== null) node.setAttribute(name, value);\n node.style.setProperty(heightVariable, `${expanded}px`);\n // Resume an interrupted transition from its rendered geometry, without a painted jump.\n for (const [name, value] of Object.entries(current)) node.style.setProperty(name, value, 'important');\n void node.offsetHeight;\n node.style.cssText = authoredStyle;\n node.style.setProperty(heightVariable, `${expanded}px`);\n }, [height, heightVariable, state.open]);\n\n return useRender({\n defaultTagName: 'div',\n render: typeof render === 'function' ? (renderProps => render(renderProps, state)) : render,\n props: { ...props },\n ref: measure,\n });\n}\n"],"mappings":";;;;AAMA,SAAgBE,EAAiD,EAChE,UACA,UACA,WACA,qBAME;CACF,IAAMC,IAAUC,EAAM,QAAgDC,IAChEC,IAAUN,EAAM,aAAa,MAAgC;EAElE,IAAI,CAACO,KAAQJ,MAAW,UAAUA,KAAU,QAAQI,EAAK,QAAQ;EACjE,IAAMC,IAAS,iBAAiBD,CAAI,GAC9BE,IAAU;GACf,QAAQD,EAAO;GACf,uBAAuBA,EAAO;GAC9B,qBAAqBA,EAAO;EAC7B,GAEME,IAAgBH,EAAK,MAAM,SAE3BI,IAAS,CADK,uBAAuB,mBAC5B,CAAA,CAAW,KAAI,MAAQ,CAACC,GAAML,EAAK,aAAaK,CAAI,CAAC,CAAU;EAE9E,AADAL,EAAK,MAAM,YAAY,uBAAuB,QAAQ,WAAW,GACjEA,EAAK,MAAM,YAAY,UAAU,QAAQ,WAAW;EACpD,KAAK,IAAM,CAACK,MAASD,GAAQ,EAAK,gBAAgBC,CAAI;EAGtD,IAAMC,IAAW,WAAW,iBAAiBN,CAAI,CAAC,CAAC,MAAM;EACzD,KAAK,IAAM,CAACK,GAAME,MAAUH,GAAQ,AAAIG,MAAU,QAAMP,EAAK,aAAaK,GAAME,CAAK;EACrF,EAAK,MAAM,YAAYT,GAAgB,GAAGQ,EAAS,GAAG;EAEtD,KAAK,IAAM,CAACD,GAAME,MAAU,OAAO,QAAQL,CAAO,GAAG,EAAK,MAAM,YAAYG,GAAME,GAAO,WAAW;EAGpG,AAFAP,EAAU,cACV,EAAK,MAAM,UAAUG,GACrBH,EAAK,MAAM,YAAYF,GAAgB,GAAGQ,EAAS,GAAG;CACvD,GAAG;EAACV;EAAQE;EAAgBU,EAAM;CAAI,CAAC;CAEvC,OAAOC,EAAU;EAChB,gBAAgB;EAChB,QAAQ,OAAOC,KAAW,eAAc,MAAeA,EAAOC,GAAaH,CAAK,KAAKE;EACrF,OAAO,EAAE,GAAGb,EAAM;EAClB,KAAKE;CACN,CAAC;AACF"}
1
+ {"version":3,"file":"disclosure-panel-B0HFNZ9x.js","names":["React","React$1","DisclosurePanelElement","height","props","heightVariable","measure","node","styles","current","authoredStyle","states","name","expanded","value","state","useRender","render","renderProps"],"sources":["../src/components/ui/disclosure-panel.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useRender } from '@base-ui/react/use-render';\n\ntype PanelState = { open: boolean; transitionStatus: string | undefined };\n\n/** Keep the native panel and Base UI lifecycle; correct its collapsed-padding measurement. */\nexport function DisclosurePanelElement<State extends PanelState>({\n props,\n state,\n render,\n heightVariable,\n}: {\n props: React.ComponentPropsWithRef<'div'>;\n state: State;\n render?: useRender.RenderProp<State>;\n heightVariable: '--accordion-panel-height' | '--collapsible-panel-height';\n}) {\n const height = (props.style as Record<string, unknown> | undefined)?.[heightVariable];\n const measure = React.useCallback((node: HTMLDivElement | null) => {\n // Base UI resets this to auto when opening finishes. Leave natural layout alone.\n if (!node || height === 'auto' || height == null || node.hidden) return;\n const styles = getComputedStyle(node);\n const current = {\n height: styles.height,\n 'padding-block-start': styles.paddingBlockStart,\n 'padding-block-end': styles.paddingBlockEnd,\n };\n // Preserve the complete declaration: CSS variable shorthands have empty CSSOM longhands.\n const authoredStyle = node.style.cssText;\n const attributes = ['data-starting-style', 'data-ending-style'] as const;\n const states = attributes.map(name => [name, node.getAttribute(name)] as const);\n node.style.setProperty('transition-property', 'none', 'important');\n node.style.setProperty('height', 'auto', 'important');\n for (const [name] of states) node.removeAttribute(name);\n // Read geometry, never copy theme variables or insets into a second styling system.\n // Computed layout height excludes ancestor transforms (for example, an opening dialog).\n const expanded = parseFloat(getComputedStyle(node).height);\n for (const [name, value] of states) if (value !== null) node.setAttribute(name, value);\n node.style.setProperty(heightVariable, `${expanded}px`);\n // Resume an interrupted transition from its rendered geometry, without a painted jump.\n for (const [name, value] of Object.entries(current)) node.style.setProperty(name, value, 'important');\n void node.offsetHeight;\n node.style.cssText = authoredStyle;\n node.style.setProperty(heightVariable, `${expanded}px`);\n // oxlint-disable-next-line react-hooks/exhaustive-deps -- state.open re-creates the ref callback so the panel is measured again when it opens or closes.\n }, [height, heightVariable, state.open]);\n\n return useRender({\n defaultTagName: 'div',\n render: typeof render === 'function' ? (renderProps => render(renderProps, state)) : render,\n props: { ...props },\n ref: measure,\n });\n}\n"],"mappings":";;;;AAMA,SAAgBE,EAAiD,EAChE,UACA,UACA,WACA,qBAME;CACF,IAAMC,IAAUC,EAAM,QAAgDC,IAChEC,IAAUN,EAAM,aAAa,MAAgC;EAElE,IAAI,CAACO,KAAQJ,MAAW,UAAUA,KAAU,QAAQI,EAAK,QAAQ;EACjE,IAAMC,IAAS,iBAAiBD,CAAI,GAC9BE,IAAU;GACf,QAAQD,EAAO;GACf,uBAAuBA,EAAO;GAC9B,qBAAqBA,EAAO;EAC7B,GAEME,IAAgBH,EAAK,MAAM,SAE3BI,IAAS,CADK,uBAAuB,mBAC5B,CAAA,CAAW,KAAI,MAAQ,CAACC,GAAML,EAAK,aAAaK,CAAI,CAAC,CAAU;EAE9E,AADAL,EAAK,MAAM,YAAY,uBAAuB,QAAQ,WAAW,GACjEA,EAAK,MAAM,YAAY,UAAU,QAAQ,WAAW;EACpD,KAAK,IAAM,CAACK,MAASD,GAAQ,EAAK,gBAAgBC,CAAI;EAGtD,IAAMC,IAAW,WAAW,iBAAiBN,CAAI,CAAC,CAAC,MAAM;EACzD,KAAK,IAAM,CAACK,GAAME,MAAUH,GAAQ,AAAIG,MAAU,QAAMP,EAAK,aAAaK,GAAME,CAAK;EACrF,EAAK,MAAM,YAAYT,GAAgB,GAAGQ,EAAS,GAAG;EAEtD,KAAK,IAAM,CAACD,GAAME,MAAU,OAAO,QAAQL,CAAO,GAAG,EAAK,MAAM,YAAYG,GAAME,GAAO,WAAW;EAGpG,AAFAP,EAAU,cACV,EAAK,MAAM,UAAUG,GACrBH,EAAK,MAAM,YAAYF,GAAgB,GAAGQ,EAAS,GAAG;CAEvD,GAAG;EAACV;EAAQE;EAAgBU,EAAM;CAAI,CAAC;CAEvC,OAAOC,EAAU;EAChB,gBAAgB;EAChB,QAAQ,OAAOC,KAAW,eAAc,MAAeA,EAAOC,GAAaH,CAAK,KAAKE;EACrF,OAAO,EAAE,GAAGb,EAAM;EAClB,KAAKE;CACN,CAAC;AACF"}
@@ -1,13 +1,13 @@
1
1
  "use client";
2
- import { S as e, d as t, u as n } from "./ui-provider-C-74NVLc.js";
2
+ import { C as e, d as t, f as n } from "./ui-provider-Bu1S-o96.js";
3
3
  import { useStrings as r } from "./lib/strings.js";
4
- import { t as i } from "./utils-DhuoqFy4.js";
5
- import { c as a, o } from "./typography-C7-YMW1S.js";
6
- import { t as s } from "./structure-DZJ2wbAU.js";
4
+ import { t as i } from "./utils-BVbAG2J6.js";
5
+ import { c as a, o } from "./typography-C0dELqYV.js";
6
+ import { t as s } from "./structure-DElaQwwN.js";
7
7
  import { i as c } from "./tone-recipes-BPsRAvhu.js";
8
- import { t as l } from "./smart-card-B6vLxqa_.js";
9
- import { s as u } from "./date-Br0FicVv.js";
10
- import { t as d } from "./badge-wWauMgAt.js";
8
+ import { a as l } from "./surface-recipes-DV6rrOFq.js";
9
+ import { s as u } from "./date-3qsCE1ID.js";
10
+ import { t as d } from "./badge-oGiXblW7.js";
11
11
  import { forwardRef as f, useId as p } from "react";
12
12
  import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
13
13
  import { CheckCircle2 as _, XCircle as v } from "lucide-react";
@@ -67,12 +67,12 @@ var S = {
67
67
  }, C = {
68
68
  neutral: {
69
69
  frame: "border-border bg-card",
70
- header: "border-border/60 bg-muted/50 text-card-foreground",
70
+ header: `border-border/60 ${l.band} text-card-foreground`,
71
71
  primary: "text-card-foreground",
72
72
  secondary: "text-muted-foreground"
73
73
  },
74
74
  secondary: {
75
- frame: "border-border bg-muted/30",
75
+ frame: `border-border ${l.wash}`,
76
76
  header: "border-border/60 bg-muted text-foreground",
77
77
  primary: "text-foreground",
78
78
  secondary: "text-muted-foreground"
@@ -115,7 +115,7 @@ var S = {
115
115
  secondary: ""
116
116
  },
117
117
  muted: {
118
- frame: "border-border bg-muted/30",
118
+ frame: `border-border ${l.wash}`,
119
119
  header: "border-border/60 bg-muted text-foreground",
120
120
  primary: "text-foreground",
121
121
  secondary: "text-muted-foreground"
@@ -162,8 +162,8 @@ function ee(e) {
162
162
  function D(e) {
163
163
  return typeof e == "string" || typeof e == "number" || typeof e == "bigint";
164
164
  }
165
- function O({ date: o, time: s, dateTime: c, locale: l, layout: d = "stacked", timePlacement: f, tone: p = "neutral", variant: _ = "default", size: v, boxed: b, showWeekday: x = !0, showMonth: O = !0, showYear: k = !1, emptyLabel: A = "—", dayFormat: j = "d", weekdayFormat: M = "EEE", monthFormat: N = "MMM", yearFormat: te = "yyyy", className: P, strings: ne, "aria-label": re, ...F }) {
166
- let I = n(), { defaultScale: ie } = t(), L = e(v, ie), R = l ?? I.locale, z = r(S, ne), B = u(o), V = C[p], H = w[_], U = b ?? d === "stacked", W = i(V.primary, H.primary, !U && p === "neutral" && _ === "default" && "text-foreground"), G = f ?? (d === "inline" ? "inline" : "below"), K = ee(s) && G !== "hidden", q = R ? { locale: R } : void 0, J = B ? y(B, M, q) : null, Y = B ? y(B, j, q) : null, X = B ? y(B, N, q) : null, Z = B ? y(B, te, q) : null, Q = c ?? (B ? y(B, "yyyy-MM-dd") : void 0), $ = re ?? (B ? void 0 : z.unavailableLabel);
165
+ function O({ date: o, time: s, dateTime: c, locale: l, layout: d = "stacked", timePlacement: f, tone: p = "neutral", variant: _ = "default", size: v, boxed: b, showWeekday: x = !0, showMonth: O = !0, showYear: k = !1, emptyLabel: A = "—", dayFormat: j = "d", weekdayFormat: te = "EEE", monthFormat: ne = "MMM", yearFormat: re = "yyyy", className: M, strings: N, "aria-label": P, ...F }) {
166
+ let I = t(), { defaultScale: ie } = n(), L = e(v, ie), R = l ?? I.locale, z = r(S, N), B = u(o), V = C[p], H = w[_], U = b ?? d === "stacked", W = i(V.primary, H.primary, !U && p === "neutral" && _ === "default" && "text-foreground"), G = f ?? (d === "inline" ? "inline" : "below"), K = ee(s) && G !== "hidden", q = R ? { locale: R } : void 0, J = B ? y(B, te, q) : null, Y = B ? y(B, j, q) : null, X = B ? y(B, ne, q) : null, Z = B ? y(B, re, q) : null, Q = c ?? (B ? y(B, "yyyy-MM-dd") : void 0), $ = P ?? (B ? void 0 : z.unavailableLabel);
167
167
  if (d === "inline") {
168
168
  let e = /* @__PURE__ */ h("span", {
169
169
  className: i("date-block--frame box-border inline-flex min-w-0 items-center rounded-radius tabular-nums", E[L].gap, U && i("border", E[L].padding, V.frame, H.frame)),
@@ -215,7 +215,7 @@ function O({ date: o, time: s, dateTime: c, locale: l, layout: d = "stacked", ti
215
215
  "data-size": L,
216
216
  "data-tone": p,
217
217
  "data-variant": _,
218
- className: i("date-block--component inline-flex min-w-0", G === "below" ? "flex-col items-start gap-space-xs" : "items-center", P),
218
+ className: i("date-block--component inline-flex min-w-0", G === "below" ? "flex-col items-start gap-space-xs" : "items-center", M),
219
219
  ...F,
220
220
  children: [e, K && G === "below" && (D(s) ? /* @__PURE__ */ h(a, {
221
221
  tag: "span",
@@ -265,7 +265,7 @@ function O({ date: o, time: s, dateTime: c, locale: l, layout: d = "stacked", ti
265
265
  "data-size": L,
266
266
  "data-tone": p,
267
267
  "data-variant": _,
268
- className: i("date-block--component inline-flex", K && G === "inline" ? "flex-row items-center gap-space-sm" : "flex-col items-center gap-space-xs", P),
268
+ className: i("date-block--component inline-flex", K && G === "inline" ? "flex-row items-center gap-space-sm" : "flex-col items-center gap-space-xs", M),
269
269
  ...F,
270
270
  children: [ae, K && (D(s) ? /* @__PURE__ */ h(a, {
271
271
  tag: "span",
@@ -278,39 +278,16 @@ function O({ date: o, time: s, dateTime: c, locale: l, layout: d = "stacked", ti
278
278
  }
279
279
  O.displayName = "DateBlock";
280
280
  //#endregion
281
- //#region src/components/base/display/content-block.strings.ts
282
- var k = {
283
- actionsLabel: "More actions",
284
- tooltipLabel: "More information"
285
- }, A = f(function({ padding: e, surface: t, strings: n, className: a, headerClassName: o, contentClassName: s, footerClassName: c, ...u }, d) {
286
- let f = r(k, n);
287
- return /* @__PURE__ */ h(l, {
288
- ...u,
289
- ref: d,
290
- surface: t ?? "flat",
291
- padding: e ?? (t && t !== "flat" ? "md" : "none"),
292
- strings: f,
293
- "data-component": "content-block",
294
- "data-slot": "content-block",
295
- "data-padding": e,
296
- className: i("content-block--component", a),
297
- headerClassName: i("content-block--header", o),
298
- contentClassName: i("content-block--content", s),
299
- footerClassName: i("content-block--footer", c)
300
- });
301
- });
302
- A.displayName = "ContentBlock";
303
- //#endregion
304
281
  //#region src/components/base/display/boolean-indicator.tsx
305
- var j = {
282
+ var k = {
306
283
  true: "Yes",
307
284
  false: "No"
308
285
  };
309
- function M(e) {
286
+ function A(e) {
310
287
  return typeof e == "string" || typeof e == "number" || typeof e == "bigint";
311
288
  }
312
- var N = f(function({ label: e, value: t = !1, showIcon: n = !0, trueTone: c = "success", falseTone: l = "secondary", className: u, badgeClassName: f, strings: p, ...m }, y) {
313
- let b = r(j, p), x = !!t, S = x ? _ : v, C = x ? c : l, w = x ? b.true : b.false;
289
+ var j = f(function({ label: e, value: t = !1, showIcon: n = !0, trueTone: c = "success", falseTone: l = "secondary", className: u, badgeClassName: f, strings: p, ...m }, y) {
290
+ let b = r(k, p), x = !!t, S = x ? _ : v, C = x ? c : l, w = x ? b.true : b.false;
314
291
  return /* @__PURE__ */ g(s, {
315
292
  ref: y,
316
293
  direction: "horizontal",
@@ -320,13 +297,13 @@ var N = f(function({ label: e, value: t = !1, showIcon: n = !0, trueTone: c = "s
320
297
  wrap: !1,
321
298
  className: i("boolean-indicator--component", "min-w-0 px-row-x py-row-y", u),
322
299
  ...m,
323
- children: [M(e) ? /* @__PURE__ */ h(o, {
300
+ children: [A(e) ? /* @__PURE__ */ h(o, {
324
301
  className: "min-w-0 wrap-anywhere",
325
302
  children: e
326
303
  }) : e, /* @__PURE__ */ g(d, {
327
304
  tone: C,
328
305
  className: i("shrink-0 whitespace-nowrap", f),
329
- children: [!!n && /* @__PURE__ */ h(S, { className: "size-icon-sm" }), M(w) ? /* @__PURE__ */ h(a, {
306
+ children: [!!n && /* @__PURE__ */ h(S, { className: "size-icon-sm" }), A(w) ? /* @__PURE__ */ h(a, {
330
307
  tag: "span",
331
308
  size: "inherit",
332
309
  weight: "medium",
@@ -337,8 +314,8 @@ var N = f(function({ label: e, value: t = !1, showIcon: n = !0, trueTone: c = "s
337
314
  })]
338
315
  });
339
316
  });
340
- N.displayName = "BooleanIndicator";
317
+ j.displayName = "BooleanIndicator";
341
318
  //#endregion
342
- export { S as a, O as i, A as n, x as o, k as r, b as s, N as t };
319
+ export { x as a, S as i, k as n, b as o, O as r, j as t };
343
320
 
344
- //# sourceMappingURL=display-CT_N2a3w.js.map
321
+ //# sourceMappingURL=display-VlmP1I0i.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-VlmP1I0i.js","names":["isSimpleText","_Fragment","resolveComponentScale","useDatesConfig","useDensityConfig","cn","Text","Stack","toneRecipes","neutralFillRecipes","parseDateInput","Badge","Fragment$1","PlaceholderPattern","patternId","useId","className","VisuallyHidden","content","children","defaultDateBlockStrings","toneClassMap","variantClassMap","stackedSizeClass","inlineSizeClass","hasContent","value","isSimpleText$1","DateBlock","localeProp","sizeProp","stringsProp","ariaLabel","props","dates","size","defaultScale","locale","strings","useStrings","resolved","date","tones","tone","variants","variant","useBox","boxed","layout","primaryClass","resolvedTimePlacement","timePlacement","showsTime","time","formatOptions","weekday","format","weekdayFormat","day","dayFormat","month","monthFormat","year","yearFormat","machineValue","dateTime","resolvedAriaLabel","dateRow","showWeekday","showMonth","showYear","emptyLabel","tile","defaultBooleanIndicatorStrings","isSimpleText","BooleanIndicator","forwardRef","isTrue","Icon","CheckCircle2","XCircle","badgeTone","trueTone","falseTone","label","DisplayLabel","badgeClassName","showIcon"],"sources":["../src/components/base/display/placeholder-pattern.tsx","../src/components/base/display/visually-hidden.tsx","../src/components/base/display/date-block.tsx","../src/components/base/display/boolean-indicator.tsx"],"sourcesContent":["/**\n * PlaceholderPattern — diagonal-stripe SVG fill suitable as a skeleton or\n * empty-region indicator. Uses a unique pattern id per instance so multiple\n * copies on the same page don't collide.\n */\nimport { useId } from 'react';\n\nimport { cn } from '../../../lib/utils';\nexport interface PlaceholderPatternProps {\n\tclassName?: string;\n}\n\nexport function PlaceholderPattern({ className }: PlaceholderPatternProps) {\n\tconst patternId = useId();\n\n\treturn (\n\t\t<svg\n\t\t\tclassName={cn('placeholder-pattern--component', className)}\n\t\t\tfill=\"none\"\n\t\t\tstroke=\"currentColor\"\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<defs>\n\t\t\t\t<pattern\n\t\t\t\t\tid={patternId}\n\t\t\t\t\tx=\"0\"\n\t\t\t\t\ty=\"0\"\n\t\t\t\t\twidth=\"10\"\n\t\t\t\t\theight=\"10\"\n\t\t\t\t\tpatternUnits=\"userSpaceOnUse\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M-3 13 15-5M-5 5l18-18M-1 21 17 3\"\n\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\tstrokeWidth=\"0.75\"\n\t\t\t\t\t\tstrokeLinecap=\"square\"\n\t\t\t\t\t\tvectorEffect=\"non-scaling-stroke\"\n\t\t\t\t\t/>\n\t\t\t\t</pattern>\n\t\t\t</defs>\n\t\t\t<rect\n\t\t\t\tstroke=\"none\"\n\t\t\t\tfill={`url(#${patternId})`}\n\t\t\t\twidth=\"100%\"\n\t\t\t\theight=\"100%\"\n\t\t\t/>\n\t\t</svg>\n\t);\n}\n\nPlaceholderPattern.displayName = 'PlaceholderPattern';\n\n","/**\n * VisuallyHidden — hides content from sighted users while keeping it readable\n * by assistive tech (screen readers, voice). Use to label icon-only buttons,\n * give context to status changes, or expose extra structure for AT users.\n */\nimport * as React from 'react';\n\nimport { Text } from '../../typography';\nimport { cn } from '../../../lib/utils';\n\nexport interface VisuallyHiddenProps {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n}\n\nexport function VisuallyHidden({ children, className }: VisuallyHiddenProps) {\n\tconst content =\n\t\ttypeof children === 'string' || typeof children === 'number' || typeof children === 'bigint'\n\t\t\t? (\n\t\t\t\t<Text tag=\"span\" size=\"inherit\" lineHeight=\"none\" className=\"text-inherit\">\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t)\n\t\t\t: children;\n\n\treturn (\n\t\t<span\n\t\t\tclassName={cn('visually-hidden--component', \n\t\t\t\t'absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0',\n\t\t\t\t'[clip:rect(0,0,0,0)]',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{content}\n\t\t</span>\n\t);\n}\n\nVisuallyHidden.displayName = 'VisuallyHidden';\n","/**\n * DateBlock — a semantic calendar tile for event, schedule, and timeline rows.\n *\n * The stacked layout owns a compact fixed-format tile; the inline layout is a\n * lower-emphasis date stamp. Both share locale resolution, machine-readable\n * `<time>` semantics, size/tone variants, optional year display, and flexible\n * time metadata (including time ranges supplied as consumer content).\n */\nimport { format, type Locale } from 'date-fns';\nimport type { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport {\n\tparseDateInput,\n\ttype DateInput,\n} from '../../primitives';\nimport { Text } from '../../typography';\nimport {\n\ttype ComponentScale,\n\tuseDatesConfig,\n\tuseDensityConfig,\n} 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';\nimport { toneRecipes } from '../../../lib/tone-recipes';\nimport { neutralFillRecipes } from '../../../lib/surface-recipes';\n\nexport type DateBlockLayout = 'stacked' | 'inline';\nexport type DateBlockTimePlacement = 'inline' | 'below' | 'hidden';\nexport type DateBlockTone = SemanticTone;\nexport type DateBlockVariant = 'default' | 'muted' | 'inverse';\nexport type DateBlockSize = ComponentScale;\n\nexport interface DateBlockStrings {\n\t/** Separator between the inline date and time metadata. */\n\tseparator: string;\n\t/** Accessible name used when `date` is empty or invalid. */\n\tunavailableLabel: string;\n}\n\nexport const defaultDateBlockStrings: DateBlockStrings = {\n\tseparator: '·',\n\tunavailableLabel: 'Date unavailable',\n};\n\nexport interface DateBlockProps\n\textends Omit<ComponentPropsWithoutRef<'time'>, 'children' | 'dateTime'> {\n\t/** Date instance, ISO string, unix timestamp, or an empty value. */\n\tdate?: DateInput;\n\t/** Time or time-range metadata, already formatted by the consumer. */\n\ttime?: ReactNode;\n\t/** Override the machine-readable value placed on the native `<time>`. */\n\tdateTime?: string;\n\t/** date-fns locale. Falls back to `<UIProvider config={{ dates: { locale } }}>`. */\n\tlocale?: Locale;\n\t/** Visual layout. @default \"stacked\" */\n\tlayout?: DateBlockLayout;\n\t/** Where time metadata renders. Defaults to `inline` for inline layout and `below` for stacked. */\n\ttimePlacement?: DateBlockTimePlacement;\n\t/** Semantic color treatment. @default \"neutral\" */\n\ttone?: DateBlockTone;\n\t/** Structural surface treatment. @default \"default\" */\n\tvariant?: DateBlockVariant;\n\t/** Structural scale. Falls back to `UIProvider.density.defaultScale`, then `md`. */\n\tsize?: DateBlockSize;\n\t/** Render a bounded surface. Defaults to `true` for stacked and `false` for inline. */\n\tboxed?: boolean;\n\t/** Show the weekday heading. @default true */\n\tshowWeekday?: boolean;\n\t/** Show the month label. @default true */\n\tshowMonth?: boolean;\n\t/** Show the year label for cross-year schedules and timelines. @default false */\n\tshowYear?: boolean;\n\t/** Visual fallback for an empty or invalid date. @default \"—\" */\n\temptyLabel?: ReactNode;\n\t/** date-fns day-of-month format. @default \"d\" */\n\tdayFormat?: string;\n\t/** date-fns weekday format. @default \"EEE\" */\n\tweekdayFormat?: string;\n\t/** date-fns month format. @default \"MMM\" */\n\tmonthFormat?: string;\n\t/** date-fns year format. @default \"yyyy\" */\n\tyearFormat?: string;\n\t/** Overrides this surface's own copy. */\n\tstrings?: StringsProp<DateBlockStrings>;\n}\n\ninterface DateBlockToneClasses {\n\tframe: string;\n\t/** Content above the body. */\n\theader: string;\n\tprimary: string;\n\tsecondary: string;\n}\n\nconst toneClassMap: Record<DateBlockTone, DateBlockToneClasses> = {\n\tneutral: {\n\t\tframe: 'border-border bg-card',\n\t\theader: `border-border/60 ${neutralFillRecipes.band} text-card-foreground`,\n\t\tprimary: 'text-card-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tsecondary: {\n\t\tframe: `border-border ${neutralFillRecipes.wash}`,\n\t\theader: 'border-border/60 bg-muted text-foreground',\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tprimary: {\n\t\tframe: `${toneRecipes.primary.edge} ${toneRecipes.primary.wash}`,\n\t\theader: `${toneRecipes.primary.edge} ${toneRecipes.primary.tint} ${toneRecipes.primary.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tdestructive: {\n\t\tframe: `${toneRecipes.destructive.edge} ${toneRecipes.destructive.wash}`,\n\t\theader: `${toneRecipes.destructive.edge} ${toneRecipes.destructive.tint} ${toneRecipes.destructive.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tinfo: {\n\t\tframe: `${toneRecipes.info.edge} ${toneRecipes.info.wash}`,\n\t\theader: `${toneRecipes.info.edge} ${toneRecipes.info.tint} ${toneRecipes.info.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tsuccess: {\n\t\tframe: `${toneRecipes.success.edge} ${toneRecipes.success.wash}`,\n\t\theader: `${toneRecipes.success.edge} ${toneRecipes.success.tint} ${toneRecipes.success.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\twarning: {\n\t\tframe: `${toneRecipes.warning.edge} ${toneRecipes.warning.wash}`,\n\t\theader: `${toneRecipes.warning.edge} ${toneRecipes.warning.tint} ${toneRecipes.warning.ink}`,\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n};\n\nconst variantClassMap: Record<DateBlockVariant, DateBlockToneClasses> = {\n\tdefault: { frame: '', header: '', primary: '', secondary: '' },\n\tmuted: {\n\t\tframe: `border-border ${neutralFillRecipes.wash}`,\n\t\theader: 'border-border/60 bg-muted text-foreground',\n\t\tprimary: 'text-foreground',\n\t\tsecondary: 'text-muted-foreground',\n\t},\n\tinverse: {\n\t\tframe: 'border-inverse-border bg-inverse-background',\n\t\theader: 'border-inverse-border bg-inverse-surface text-inverse-muted',\n\t\tprimary: 'text-inverse-foreground',\n\t\tsecondary: 'text-inverse-muted',\n\t},\n};\n\nconst stackedSizeClass: Record<DateBlockSize, { frame: string; header: string; body: string }> = {\n\tsm: {\n\t\tframe: 'w-12',\n\t\theader: 'px-control-xs py-space-2xs',\n\t\tbody: 'min-h-control px-control-xs py-space-xs',\n\t},\n\tmd: {\n\t\tframe: 'w-14',\n\t\theader: 'px-control-sm py-space-xs',\n\t\tbody: 'min-h-control-lg px-control-sm py-space-sm',\n\t},\n\tlg: {\n\t\tframe: 'w-16',\n\t\theader: 'px-control py-space-sm',\n\t\tbody: 'min-h-control-lg px-control py-space-md',\n\t},\n};\n\nconst inlineSizeClass: Record<DateBlockSize, { gap: string; padding: string }> = {\n\tsm: { gap: 'gap-space-sm', padding: 'px-control-xs py-space-xs' },\n\tmd: { gap: 'gap-space-md', padding: 'px-control-sm py-space-sm' },\n\tlg: { gap: 'gap-space-lg', padding: 'px-control py-space-md' },\n};\n\nfunction hasContent(value: ReactNode): boolean {\n\treturn value !== null && value !== undefined && value !== '';\n}\n\nfunction isSimpleText(value: ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\nexport function DateBlock({\n\tdate,\n\ttime,\n\tdateTime,\n\tlocale: localeProp,\n\tlayout = 'stacked',\n\ttimePlacement,\n\ttone = 'neutral',\n\tvariant = 'default',\n\tsize: sizeProp,\n\tboxed,\n\tshowWeekday = true,\n\tshowMonth = true,\n\tshowYear = false,\n\temptyLabel = '—',\n\tdayFormat = 'd',\n\tweekdayFormat = 'EEE',\n\tmonthFormat = 'MMM',\n\tyearFormat = 'yyyy',\n\tclassName,\n\tstrings: stringsProp,\n\t'aria-label': ariaLabel,\n\t...props\n}: DateBlockProps) {\n\tconst dates = useDatesConfig();\n\tconst { defaultScale } = useDensityConfig();\n\tconst size = resolveComponentScale(sizeProp, defaultScale);\n\tconst locale = localeProp ?? dates.locale;\n\tconst strings = useStrings(defaultDateBlockStrings, stringsProp);\n\tconst resolved = parseDateInput(date);\n\tconst tones = toneClassMap[tone];\n\tconst variants = variantClassMap[variant];\n\tconst useBox = boxed ?? layout === 'stacked';\n\tconst primaryClass = cn(tones.primary, variants.primary, !useBox && tone === 'neutral' && variant === 'default' && 'text-foreground');\n\tconst resolvedTimePlacement = timePlacement ?? (layout === 'inline' ? 'inline' : 'below');\n\tconst showsTime = hasContent(time) && resolvedTimePlacement !== 'hidden';\n\tconst formatOptions = locale ? { locale } : undefined;\n\n\tconst weekday = resolved ? format(resolved, weekdayFormat, formatOptions) : null;\n\tconst day = resolved ? format(resolved, dayFormat, formatOptions) : null;\n\tconst month = resolved ? format(resolved, monthFormat, formatOptions) : null;\n\tconst year = resolved ? format(resolved, yearFormat, formatOptions) : null;\n\tconst machineValue = dateTime ?? (resolved ? format(resolved, 'yyyy-MM-dd') : undefined);\n\tconst resolvedAriaLabel = ariaLabel ?? (resolved ? undefined : strings.unavailableLabel);\n\n\tif (layout === 'inline') {\n\t\tconst dateRow = (\n\t\t\t<span\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'date-block--frame box-border inline-flex min-w-0 items-center rounded-radius tabular-nums',\n\t\t\t\t\tinlineSizeClass[size].gap,\n\t\t\t\t\tuseBox && cn('border', inlineSizeClass[size].padding, tones.frame, variants.frame),\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{resolved ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{!!showWeekday && (\n\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"medium\" className={cn('date-block--weekday', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t\t{weekday}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Text tag=\"span\" weight=\"semibold\" className={cn('date-block--day', primaryClass)}>\n\t\t\t\t\t\t\t{day}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{(showMonth || showYear) && (\n\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className={cn('date-block--month-year', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t\t{[showMonth ? month : null, showYear ? year : null].filter(Boolean).join(' ')}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{showsTime && resolvedTimePlacement === 'inline' && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" className={cn(tones.secondary, variants.secondary)} aria-hidden>\n\t\t\t\t\t\t\t\t\t{strings.separator}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t{isSimpleText(time) ? (\n\t\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" weight=\"medium\" className={cn('date-block--time tabular-nums', primaryClass)}>\n\t\t\t\t\t\t\t\t\t\t{time}\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t) : time}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\tisSimpleText(emptyLabel) ? (\n\t\t\t\t\t\t<Text tag=\"span\" type=\"secondary\" className={cn('date-block--empty', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t{emptyLabel}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : emptyLabel\n\t\t\t\t)}\n\t\t\t</span>\n\t\t);\n\n\t\treturn (\n\t\t\t<time\n\t\t\t\tdateTime={machineValue}\n\t\t\t\taria-label={resolvedAriaLabel}\n\t\t\t\tdata-layout={layout}\n\t\t\t\tdata-size={size}\n\t\t\t\tdata-tone={tone}\n\t\t\t\tdata-variant={variant}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'date-block--component inline-flex min-w-0',\n\t\t\t\t\tresolvedTimePlacement === 'below'\n\t\t\t\t\t\t? 'flex-col items-start gap-space-xs'\n\t\t\t\t\t\t: 'items-center',\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{dateRow}\n\t\t\t\t{showsTime && resolvedTimePlacement === 'below' && (\n\t\t\t\t\tisSimpleText(time) ? (\n\t\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className={cn('date-block--time tabular-nums', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t{time}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : time\n\t\t\t\t)}\n\t\t\t</time>\n\t\t);\n\t}\n\n\tconst tile = (\n\t\t<span\n\t\t\tclassName={cn(\n\t\t\t\t'date-block--frame box-border inline-flex shrink-0 flex-col overflow-hidden rounded-radius tabular-nums',\n\t\t\t\tstackedSizeClass[size].frame,\n\t\t\t\tuseBox && cn('border', tones.frame, variants.frame),\n\t\t\t)}\n\t\t>\n\t\t\t{resolved && showWeekday && (\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\tlineHeight=\"tight\"\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t'date-block--weekday block text-center',\n\t\t\t\t\t\tstackedSizeClass[size].header,\n\t\t\t\t\t\tuseBox ? cn('border-b', tones.header, variants.header) : cn(tones.secondary, variants.secondary),\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{weekday}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t\t<span\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'date-block--body box-border flex flex-col items-center justify-center gap-space-2xs text-center',\n\t\t\t\t\tstackedSizeClass[size].body,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{resolved ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\tsize={size === 'sm' ? 'sm' : size === 'lg' ? 'lg' : 'base'}\n\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\tlineHeight=\"none\"\n\t\t\t\t\t\t\tclassName={cn('date-block--day', primaryClass)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{day}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t{(showMonth || showYear) && (\n\t\t\t\t\t\t\t<Text\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\tlineHeight=\"tight\"\n\t\t\t\t\t\t\t\tclassName={cn('date-block--month-year', tones.secondary, variants.secondary)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{[showMonth ? month : null, showYear ? year : null].filter(Boolean).join(' ')}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\tisSimpleText(emptyLabel) ? (\n\t\t\t\t\t\t<Text tag=\"span\" type=\"secondary\" className={cn('date-block--empty', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t\t{emptyLabel}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : emptyLabel\n\t\t\t\t)}\n\t\t\t</span>\n\t\t</span>\n\t);\n\n\treturn (\n\t\t<time\n\t\t\tdateTime={machineValue}\n\t\t\taria-label={resolvedAriaLabel}\n\t\t\tdata-layout={layout}\n\t\t\tdata-size={size}\n\t\t\tdata-tone={tone}\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(\n\t\t\t\t'date-block--component inline-flex',\n\t\t\t\tshowsTime && resolvedTimePlacement === 'inline'\n\t\t\t\t\t? 'flex-row items-center gap-space-sm'\n\t\t\t\t\t: 'flex-col items-center gap-space-xs',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{tile}\n\t\t\t{showsTime && (\n\t\t\t\tisSimpleText(time) ? (\n\t\t\t\t\t<Text tag=\"span\" size=\"xs\" type=\"secondary\" className={cn('date-block--time tabular-nums', tones.secondary, variants.secondary)}>\n\t\t\t\t\t\t{time}\n\t\t\t\t\t</Text>\n\t\t\t\t) : time\n\t\t\t)}\n\t\t</time>\n\t);\n}\n\nDateBlock.displayName = 'DateBlock';\n","/**\n * BooleanIndicator — labelled yes/no chip showing the truth of a value with an\n * optional check/cross icon. Use for compact metadata grids where each row\n * answers a single boolean question. Strings overridable for i18n.\n */\nimport { CheckCircle2, XCircle } from 'lucide-react';\nimport React, { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { Badge, type BadgeTone } from '../badge';\nimport { Stack } from '../structure';\nimport { DisplayLabel, Text } from '../../typography';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { cn } from '../../../lib/utils';\n\nexport interface BooleanIndicatorStrings {\n\ttrue: string;\n\tfalse: string;\n}\n\nexport const defaultBooleanIndicatorStrings: BooleanIndicatorStrings = {\n\ttrue: 'Yes',\n\tfalse: 'No',\n};\n\nexport interface BooleanIndicatorProps extends Omit<ComponentPropsWithoutRef<'div'>, 'children'> {\n\t/** What the flag describes, rendered as the row's `DisplayLabel`. */\n\tlabel: React.ReactNode;\n\t/** The flag. `null` reads as unknown and uses the false presentation. Defaults to `false`. */\n\tvalue?: boolean | null;\n\t/** Shows the check/cross glyph beside the badge text. Defaults to `true`. */\n\tshowIcon?: boolean;\n\t/** Badge tone when `value` is true. Defaults to `success`. */\n\ttrueTone?: BadgeTone;\n\t/** Badge tone when `value` is false. Defaults to `secondary`. */\n\tfalseTone?: BadgeTone;\n\t/** Merged onto the badge. */\n\tbadgeClassName?: string;\n\t/** Overrides the yes/no copy. */\n\tstrings?: StringsProp<BooleanIndicatorStrings>;\n}\n\nfunction isSimpleText(value: React.ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\nexport const BooleanIndicator = forwardRef<HTMLDivElement, BooleanIndicatorProps>(function BooleanIndicator({\n\tlabel,\n\tvalue = false,\n\tshowIcon = true,\n\ttrueTone = 'success',\n\tfalseTone = 'secondary',\n\tclassName,\n\tbadgeClassName,\n\tstrings: stringsProp,\n\t...props\n}, ref) {\n\tconst strings = useStrings(defaultBooleanIndicatorStrings, stringsProp);\n\tconst isTrue = Boolean(value);\n\tconst Icon = isTrue ? CheckCircle2 : XCircle;\n\tconst badgeTone = isTrue ? trueTone : falseTone;\n\tconst content = isTrue ? strings.true : strings.false;\n\n\treturn (\n\t\t<Stack\n\t\t\tref={ref}\n\t\t\tdirection=\"horizontal\"\n\t\t\talign=\"center\"\n\t\t\tgap=\"md\"\n\t\t\tjustify=\"between\"\n\t\t\twrap={false}\n\t\t\tclassName={cn('boolean-indicator--component', \n\t\t\t\t'min-w-0 px-row-x py-row-y',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(label) ? <DisplayLabel className=\"min-w-0 wrap-anywhere\">{label}</DisplayLabel> : label}\n\t\t\t<Badge\n\t\t\t\ttone={badgeTone}\n\t\t\t\tclassName={cn('shrink-0 whitespace-nowrap', badgeClassName)}\n\t\t\t>\n\t\t\t\t{/*\n\t\t\t\t * `size-icon-sm` pairs with the badge's 12px label, matching the\n\t\t\t\t * rest of the package's badge icons. At `size-icon` the glyph\n\t\t\t\t * outgrew the text and pushed this badge to 26px, 4px taller\n\t\t\t\t * than every other badge in the library.\n\t\t\t\t */}\n\t\t\t\t{!!showIcon && <Icon className=\"size-icon-sm\" />}\n\t\t\t\t{isSimpleText(content) ? (\n\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" weight=\"medium\" lineHeight=\"none\" className=\"text-inherit\">\n\t\t\t\t\t\t{content}\n\t\t\t\t\t</Text>\n\t\t\t\t) : content}\n\t\t\t</Badge>\n\t\t</Stack>\n\t);\n});\n\nBooleanIndicator.displayName = 'BooleanIndicator';\n"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  "use client";
2
- import { i as e, v as t } from "./ui-provider-C-74NVLc.js";
3
- import { t as n } from "./utils-DhuoqFy4.js";
4
- import { c as r } from "./typography-C7-YMW1S.js";
2
+ import { a as e, y as t } from "./ui-provider-Bu1S-o96.js";
3
+ import { t as n } from "./utils-BVbAG2J6.js";
4
+ import { c as r } from "./typography-C0dELqYV.js";
5
5
  import { o as i, s as a } from "./text.styles-B64My8RZ.js";
6
- import { t as o } from "./anchored-positioning-DPnKTvNs.js";
7
- import { t as s } from "./portal-recipes-DyUXqUtD.js";
8
- import { t as c } from "./motion-recipes-DitYv6P2.js";
9
- import { i as l, n as u, r as d, t as f } from "./popover.recipes-DJ0AkUan.js";
10
- import { n as p } from "./collection-content-CSnwtOTH.js";
6
+ import { n as o } from "./anchored-positioning-1U_eBFNx.js";
7
+ import { t as s } from "./portal-recipes-BPeS4rGB.js";
8
+ import { t as c } from "./motion-recipes-CUc_aHuG.js";
9
+ import { i as l, n as u, r as d, t as f } from "./popover.recipes-BqkdvlZn.js";
10
+ import { n as p } from "./collection-content-D7SoDlYd.js";
11
11
  import * as m from "react";
12
12
  import { jsx as h, jsxs as g } from "react/jsx-runtime";
13
13
  import { CheckIcon as _, ChevronRightIcon as v } from "lucide-react";
@@ -191,4 +191,4 @@ function R({ className: e, children: t, ...r }) {
191
191
  //#endregion
192
192
  export { k as a, w as c, L as d, R as f, T as g, M as h, D as i, F as l, N as m, P as n, O as o, j as p, E as r, A as s, C as t, I as u };
193
193
 
194
- //# sourceMappingURL=dropdown-menu-C08iIugv.js.map
194
+ //# sourceMappingURL=dropdown-menu-B8hjvbkS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-menu-C08iIugv.js","names":["React","MenuPrimitive","useThemePortalContainer","useTypographyConfig","cn","Text","textLineHeights","textSizes","anchoredPositionMethod","portalClassName","motionRecipes","popoverWidthRecipes","collectionRowClasses","popoverRecipes","collectionRecipes","CollectionLabel","React$1","DropdownMenuDensityContext","useMenuRowClasses","renderMenuText","children","className","DropdownMenu","props","Menu","DropdownMenuPortal","resolvedContainer","container","DropdownMenuTrigger","defaultTextSize","DropdownMenuContent","densityProp","inheritedDensity","density","DropdownMenuGroup","DropdownMenuLabel","content","inset","DropdownMenuItem","rowClasses","variant","DropdownMenuLinkItem","DropdownMenuSub","DropdownMenuSubTrigger","ChevronRightIcon","DropdownMenuSubContent","DropdownMenuCheckboxItem","CheckIcon","DropdownMenuRadioGroup","DropdownMenuRadioItem","DropdownMenuSeparator","DropdownMenuShortcut"],"sources":["../src/components/base/navigation/dropdown-menu.tsx"],"sourcesContent":["import { anchoredPositionMethod } from '../../../lib/anchored-positioning';\nimport { motionRecipes } from '../../../lib/motion-recipes';\nimport * as React from 'react';\nimport { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport { CheckIcon, ChevronRightIcon } from 'lucide-react';\n\nimport { Text } from '../../typography';\nimport { textSizes, textLineHeights } from '../../typography/text.styles';\nimport { useTypographyConfig } from '../../../lib/ui-provider';\nimport { cn } from '../../../lib/utils';\nimport { collectionRecipes, collectionRowClasses, popoverRecipes, popoverWidthRecipes, type CollectionDensity } from '../popover/popover.recipes';\nimport { useThemePortalContainer } from '../../../lib/theme-scope';\nimport { portalClassName } from '../../../lib/portal-recipes';\nimport { CollectionLabel } from '../popover/collection-content';\n\nconst DropdownMenuDensityContext = React.createContext<CollectionDensity>('default');\n\nfunction useMenuRowClasses() {\n\treturn collectionRowClasses(React.useContext(DropdownMenuDensityContext));\n}\n\nfunction renderMenuText(children: React.ReactNode, className?: string) {\n\tif (\n\t\ttypeof children !== 'string'\n\t\t&& typeof children !== 'number'\n\t\t&& typeof children !== 'bigint'\n\t) return children;\n\tif (typeof children === 'string' && children.trim().length === 0) return children;\n\n\treturn (\n\t\t<CollectionLabel className={cn('dropdown-menu--text', className)}>\n\t\t\t{children}\n\t\t</CollectionLabel>\n\t);\n}\n\nfunction DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {\n\treturn <MenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({ container, className, ...props }: MenuPrimitive.Portal.Props) {\n\tconst resolvedContainer = useThemePortalContainer(container);\n\treturn <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" container={resolvedContainer} className={portalClassName(className)} {...props} />;\n}\n\nfunction DropdownMenuTrigger({ children, ...props }: MenuPrimitive.Trigger.Props) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\treturn (\n\t\t<MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props}>\n\t\t\t{renderMenuText(children, textSizes[defaultTextSize ?? 'sm'])}\n\t\t</MenuPrimitive.Trigger>\n\t);\n}\n\nfunction DropdownMenuContent({\n\tpositionMethod = anchoredPositionMethod,\n\talign = 'start',\n\talignOffset = 0,\n\tside = 'bottom',\n\tsideOffset = 4,\n\tclassName,\n\tdensity: densityProp,\n\t...props\n}: MenuPrimitive.Popup.Props &\n\tPick<\n\t\tMenuPrimitive.Positioner.Props,\n\t\t'align' | 'alignOffset' | 'side' | 'sideOffset' | 'positionMethod'\n\t> & {\n\t/** Vertical row rhythm. Inherits in submenus; defaults to default. */\n\tdensity?: CollectionDensity;\n}) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\tconst inheritedDensity = React.useContext(DropdownMenuDensityContext);\n\tconst density = densityProp ?? inheritedDensity;\n\treturn (\n\t\t<DropdownMenuDensityContext.Provider value={density}>\n\t\t\t<DropdownMenuPortal>\n\t\t\t\t<MenuPrimitive.Positioner\n\t\t\t\t\tpositionMethod={positionMethod}\n\t\t\t\t\tclassName=\"isolate z-50 outline-none\"\n\t\t\t\t\talign={align}\n\t\t\t\t\talignOffset={alignOffset}\n\t\t\t\t\tside={side}\n\t\t\t\t\tsideOffset={sideOffset}\n\t\t\t\t>\n\t\t\t\t\t<MenuPrimitive.Popup\n\t\t\t\t\t\tdata-slot=\"dropdown-menu-content\"\n\t\t\t\t\t\tdata-surface-type=\"menu\"\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\tpopoverRecipes.surface,\n\t\t\t\t\t\t\tpopoverRecipes.menu,\n\t\t\t\t\t\t\tpopoverWidthRecipes.menuMin,\n\t\t\t\t\t\t\tmotionRecipes.popup,\n\t\t\t\t\t\t\t'dropdown-menu-content--component z-50 max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto outline-none',\n\t\t\t\t\t\t\ttextSizes[defaultTextSize ?? 'sm'],\n\t\t\t\t\t\t\ttextLineHeights.tight,\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t/>\n\t\t\t\t</MenuPrimitive.Positioner>\n\t\t\t</DropdownMenuPortal>\n\t\t</DropdownMenuDensityContext.Provider>\n\t);\n}\n\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\n\treturn <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuLabel({\n\tclassName,\n\tinset,\n\tchildren,\n\t...props\n}: MenuPrimitive.GroupLabel.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\t// A group caption is supporting copy, not another item: the smaller secondary\n\t// role keeps it from reading as an unclickable row.\n\tconst content =\n\t\ttypeof children === 'string' || typeof children === 'number' || typeof children === 'bigint'\n\t\t\t? <Text tag=\"span\" size=\"xs\" type=\"secondary\" weight=\"medium\" lineHeight=\"tight\">{children}</Text>\n\t\t\t: children;\n\n\treturn (\n\t\t<MenuPrimitive.GroupLabel\n\t\t\tdata-slot=\"dropdown-menu-label\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-label--component px-row-x py-row-y-sm text-muted-foreground data-inset:ps-control-icon',\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</MenuPrimitive.GroupLabel>\n\t);\n}\n\nfunction DropdownMenuItem({\n\tclassName,\n\tinset,\n\tvariant = 'default',\n\tchildren,\n\t...props\n}: MenuPrimitive.Item.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n\t/** Row treatment. `destructive` marks a command that removes or destroys data. Defaults to `default`. */\n\tvariant?: 'default' | 'destructive';\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.Item\n\t\t\tdata-slot=\"dropdown-menu-item\"\n\t\t\tdata-inset={inset}\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-item--component group/dropdown-menu-item whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tcollectionRecipes.destructive,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t</MenuPrimitive.Item>\n\t);\n}\n\nfunction DropdownMenuLinkItem({\n\tclassName,\n\tinset,\n\tvariant = 'default',\n\tchildren,\n\t...props\n}: MenuPrimitive.LinkItem.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n\t/** Row treatment. `destructive` marks a command that removes or destroys data. Defaults to `default`. */\n\tvariant?: 'default' | 'destructive';\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.LinkItem\n\t\t\tdata-slot=\"dropdown-menu-link-item\"\n\t\t\tdata-inset={inset}\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-link-item--component group/dropdown-menu-item whitespace-nowrap text-inherit no-underline data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tcollectionRecipes.destructive,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t</MenuPrimitive.LinkItem>\n\t);\n}\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n\treturn <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n\tclassName,\n\tinset,\n\tchildren,\n\t...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.SubmenuTrigger\n\t\t\tdata-slot=\"dropdown-menu-sub-trigger\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-sub-trigger--component whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\t'data-popup-open:bg-accent data-popup-open:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t\t<ChevronRightIcon className=\"ms-auto rtl:rotate-180\" />\n\t\t</MenuPrimitive.SubmenuTrigger>\n\t);\n}\n\nfunction DropdownMenuSubContent({\n\talign = 'start',\n\talignOffset = -3,\n\tside = 'inline-end',\n\tsideOffset = 0,\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n\treturn (\n\t\t<DropdownMenuContent\n\t\t\tdata-slot=\"dropdown-menu-sub-content\"\n\t\t\tclassName={cn('dropdown-menu-sub-content--component w-auto min-w-32', className)}\n\t\t\talign={align}\n\t\t\talignOffset={alignOffset}\n\t\t\tside={side}\n\t\t\tsideOffset={sideOffset}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuCheckboxItem({\n\tclassName,\n\tchildren,\n\tchecked,\n\tinset,\n\t...props\n}: MenuPrimitive.CheckboxItem.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.CheckboxItem\n\t\t\tdata-slot=\"dropdown-menu-checkbox-item\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-checkbox-item--component whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tchecked={checked}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t\t<span\n\t\t\t\tclassName=\"pointer-events-none ms-auto flex shrink-0 items-center justify-center\"\n\t\t\t\tdata-slot=\"dropdown-menu-checkbox-item-indicator\"\n\t\t\t>\n\t\t\t\t<MenuPrimitive.CheckboxItemIndicator>\n\t\t\t\t\t<CheckIcon />\n\t\t\t\t</MenuPrimitive.CheckboxItemIndicator>\n\t\t\t</span>\n\t\t</MenuPrimitive.CheckboxItem>\n\t);\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n\treturn (\n\t\t<MenuPrimitive.RadioGroup\n\t\t\tdata-slot=\"dropdown-menu-radio-group\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuRadioItem({\n\tclassName,\n\tchildren,\n\tinset,\n\t...props\n}: MenuPrimitive.RadioItem.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.RadioItem\n\t\t\tdata-slot=\"dropdown-menu-radio-item\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-radio-item--component whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t\t<span\n\t\t\t\tclassName=\"pointer-events-none ms-auto flex shrink-0 items-center justify-center\"\n\t\t\t\tdata-slot=\"dropdown-menu-radio-item-indicator\"\n\t\t\t>\n\t\t\t\t<MenuPrimitive.RadioItemIndicator>\n\t\t\t\t\t<CheckIcon />\n\t\t\t\t</MenuPrimitive.RadioItemIndicator>\n\t\t\t</span>\n\t\t</MenuPrimitive.RadioItem>\n\t);\n}\n\nfunction DropdownMenuSeparator({\n\tclassName,\n\t...props\n}: MenuPrimitive.Separator.Props) {\n\treturn (\n\t\t<MenuPrimitive.Separator\n\t\t\tdata-slot=\"dropdown-menu-separator\"\n\t\t\tclassName={cn('dropdown-menu-separator--component', popoverRecipes.separator, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuShortcut({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<'span'>) {\n\treturn (\n\t\t<span\n\t\t\tdata-slot=\"dropdown-menu-shortcut\"\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-shortcut--component ms-auto text-xxs tracking-normal text-muted-foreground group-data-[highlighted]/dropdown-menu-item:text-accent-foreground',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t</span>\n\t);\n}\n\nexport {\n\tDropdownMenu,\n\tDropdownMenuPortal,\n\tDropdownMenuTrigger,\n\tDropdownMenuContent,\n\tDropdownMenuGroup,\n\tDropdownMenuLabel,\n\tDropdownMenuItem,\n\tDropdownMenuLinkItem,\n\tDropdownMenuCheckboxItem,\n\tDropdownMenuRadioGroup,\n\tDropdownMenuRadioItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuShortcut,\n\tDropdownMenuSub,\n\tDropdownMenuSubTrigger,\n\tDropdownMenuSubContent,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"dropdown-menu-B8hjvbkS.js","names":["React","MenuPrimitive","useThemePortalContainer","useTypographyConfig","cn","Text","textLineHeights","textSizes","anchoredPositionMethod","portalClassName","motionRecipes","popoverWidthRecipes","collectionRowClasses","popoverRecipes","collectionRecipes","CollectionLabel","React$1","DropdownMenuDensityContext","useMenuRowClasses","renderMenuText","children","className","DropdownMenu","props","Menu","DropdownMenuPortal","resolvedContainer","container","DropdownMenuTrigger","defaultTextSize","DropdownMenuContent","densityProp","inheritedDensity","density","DropdownMenuGroup","DropdownMenuLabel","content","inset","DropdownMenuItem","rowClasses","variant","DropdownMenuLinkItem","DropdownMenuSub","DropdownMenuSubTrigger","ChevronRightIcon","DropdownMenuSubContent","DropdownMenuCheckboxItem","CheckIcon","DropdownMenuRadioGroup","DropdownMenuRadioItem","DropdownMenuSeparator","DropdownMenuShortcut"],"sources":["../src/components/base/navigation/dropdown-menu.tsx"],"sourcesContent":["import { anchoredPositionMethod } from '../../../lib/anchored-positioning';\nimport { motionRecipes } from '../../../lib/motion-recipes';\nimport * as React from 'react';\nimport { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport { CheckIcon, ChevronRightIcon } from 'lucide-react';\n\nimport { Text } from '../../typography';\nimport { textSizes, textLineHeights } from '../../typography/text.styles';\nimport { useTypographyConfig } from '../../../lib/ui-provider';\nimport { cn } from '../../../lib/utils';\nimport { collectionRecipes, collectionRowClasses, popoverRecipes, popoverWidthRecipes, type CollectionDensity } from '../popover/popover.recipes';\nimport { useThemePortalContainer } from '../../../lib/theme-scope';\nimport { portalClassName } from '../../../lib/portal-recipes';\nimport { CollectionLabel } from '../popover/collection-content';\n\nconst DropdownMenuDensityContext = React.createContext<CollectionDensity>('default');\n\nfunction useMenuRowClasses() {\n\treturn collectionRowClasses(React.useContext(DropdownMenuDensityContext));\n}\n\nfunction renderMenuText(children: React.ReactNode, className?: string) {\n\tif (\n\t\ttypeof children !== 'string'\n\t\t&& typeof children !== 'number'\n\t\t&& typeof children !== 'bigint'\n\t) return children;\n\tif (typeof children === 'string' && children.trim().length === 0) return children;\n\n\treturn (\n\t\t<CollectionLabel className={cn('dropdown-menu--text', className)}>\n\t\t\t{children}\n\t\t</CollectionLabel>\n\t);\n}\n\nfunction DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {\n\treturn <MenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({ container, className, ...props }: MenuPrimitive.Portal.Props) {\n\tconst resolvedContainer = useThemePortalContainer(container);\n\treturn <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" container={resolvedContainer} className={portalClassName(className)} {...props} />;\n}\n\nfunction DropdownMenuTrigger({ children, ...props }: MenuPrimitive.Trigger.Props) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\treturn (\n\t\t<MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props}>\n\t\t\t{renderMenuText(children, textSizes[defaultTextSize ?? 'sm'])}\n\t\t</MenuPrimitive.Trigger>\n\t);\n}\n\nfunction DropdownMenuContent({\n\tpositionMethod = anchoredPositionMethod,\n\talign = 'start',\n\talignOffset = 0,\n\tside = 'bottom',\n\tsideOffset = 4,\n\tclassName,\n\tdensity: densityProp,\n\t...props\n}: MenuPrimitive.Popup.Props &\n\tPick<\n\t\tMenuPrimitive.Positioner.Props,\n\t\t'align' | 'alignOffset' | 'side' | 'sideOffset' | 'positionMethod'\n\t> & {\n\t/** Vertical row rhythm. Inherits in submenus; defaults to default. */\n\tdensity?: CollectionDensity;\n}) {\n\tconst { defaultTextSize } = useTypographyConfig();\n\tconst inheritedDensity = React.useContext(DropdownMenuDensityContext);\n\tconst density = densityProp ?? inheritedDensity;\n\treturn (\n\t\t<DropdownMenuDensityContext.Provider value={density}>\n\t\t\t<DropdownMenuPortal>\n\t\t\t\t<MenuPrimitive.Positioner\n\t\t\t\t\tpositionMethod={positionMethod}\n\t\t\t\t\tclassName=\"isolate z-50 outline-none\"\n\t\t\t\t\talign={align}\n\t\t\t\t\talignOffset={alignOffset}\n\t\t\t\t\tside={side}\n\t\t\t\t\tsideOffset={sideOffset}\n\t\t\t\t>\n\t\t\t\t\t<MenuPrimitive.Popup\n\t\t\t\t\t\tdata-slot=\"dropdown-menu-content\"\n\t\t\t\t\t\tdata-surface-type=\"menu\"\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\tpopoverRecipes.surface,\n\t\t\t\t\t\t\tpopoverRecipes.menu,\n\t\t\t\t\t\t\tpopoverWidthRecipes.menuMin,\n\t\t\t\t\t\t\tmotionRecipes.popup,\n\t\t\t\t\t\t\t'dropdown-menu-content--component z-50 max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto outline-none',\n\t\t\t\t\t\t\ttextSizes[defaultTextSize ?? 'sm'],\n\t\t\t\t\t\t\ttextLineHeights.tight,\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t/>\n\t\t\t\t</MenuPrimitive.Positioner>\n\t\t\t</DropdownMenuPortal>\n\t\t</DropdownMenuDensityContext.Provider>\n\t);\n}\n\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\n\treturn <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuLabel({\n\tclassName,\n\tinset,\n\tchildren,\n\t...props\n}: MenuPrimitive.GroupLabel.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\t// A group caption is supporting copy, not another item: the smaller secondary\n\t// role keeps it from reading as an unclickable row.\n\tconst content =\n\t\ttypeof children === 'string' || typeof children === 'number' || typeof children === 'bigint'\n\t\t\t? <Text tag=\"span\" size=\"xs\" type=\"secondary\" weight=\"medium\" lineHeight=\"tight\">{children}</Text>\n\t\t\t: children;\n\n\treturn (\n\t\t<MenuPrimitive.GroupLabel\n\t\t\tdata-slot=\"dropdown-menu-label\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-label--component px-row-x py-row-y-sm text-muted-foreground data-inset:ps-control-icon',\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</MenuPrimitive.GroupLabel>\n\t);\n}\n\nfunction DropdownMenuItem({\n\tclassName,\n\tinset,\n\tvariant = 'default',\n\tchildren,\n\t...props\n}: MenuPrimitive.Item.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n\t/** Row treatment. `destructive` marks a command that removes or destroys data. Defaults to `default`. */\n\tvariant?: 'default' | 'destructive';\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.Item\n\t\t\tdata-slot=\"dropdown-menu-item\"\n\t\t\tdata-inset={inset}\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-item--component group/dropdown-menu-item whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tcollectionRecipes.destructive,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t</MenuPrimitive.Item>\n\t);\n}\n\nfunction DropdownMenuLinkItem({\n\tclassName,\n\tinset,\n\tvariant = 'default',\n\tchildren,\n\t...props\n}: MenuPrimitive.LinkItem.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n\t/** Row treatment. `destructive` marks a command that removes or destroys data. Defaults to `default`. */\n\tvariant?: 'default' | 'destructive';\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.LinkItem\n\t\t\tdata-slot=\"dropdown-menu-link-item\"\n\t\t\tdata-inset={inset}\n\t\t\tdata-variant={variant}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-link-item--component group/dropdown-menu-item whitespace-nowrap text-inherit no-underline data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tcollectionRecipes.destructive,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t</MenuPrimitive.LinkItem>\n\t);\n}\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n\treturn <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n\tclassName,\n\tinset,\n\tchildren,\n\t...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.SubmenuTrigger\n\t\t\tdata-slot=\"dropdown-menu-sub-trigger\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-sub-trigger--component whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\t'data-popup-open:bg-accent data-popup-open:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t\t<ChevronRightIcon className=\"ms-auto rtl:rotate-180\" />\n\t\t</MenuPrimitive.SubmenuTrigger>\n\t);\n}\n\nfunction DropdownMenuSubContent({\n\talign = 'start',\n\talignOffset = -3,\n\tside = 'inline-end',\n\tsideOffset = 0,\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n\treturn (\n\t\t<DropdownMenuContent\n\t\t\tdata-slot=\"dropdown-menu-sub-content\"\n\t\t\tclassName={cn('dropdown-menu-sub-content--component w-auto min-w-32', className)}\n\t\t\talign={align}\n\t\t\talignOffset={alignOffset}\n\t\t\tside={side}\n\t\t\tsideOffset={sideOffset}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuCheckboxItem({\n\tclassName,\n\tchildren,\n\tchecked,\n\tinset,\n\t...props\n}: MenuPrimitive.CheckboxItem.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.CheckboxItem\n\t\t\tdata-slot=\"dropdown-menu-checkbox-item\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-checkbox-item--component whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tchecked={checked}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t\t<span\n\t\t\t\tclassName=\"pointer-events-none ms-auto flex shrink-0 items-center justify-center\"\n\t\t\t\tdata-slot=\"dropdown-menu-checkbox-item-indicator\"\n\t\t\t>\n\t\t\t\t<MenuPrimitive.CheckboxItemIndicator>\n\t\t\t\t\t<CheckIcon />\n\t\t\t\t</MenuPrimitive.CheckboxItemIndicator>\n\t\t\t</span>\n\t\t</MenuPrimitive.CheckboxItem>\n\t);\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n\treturn (\n\t\t<MenuPrimitive.RadioGroup\n\t\t\tdata-slot=\"dropdown-menu-radio-group\"\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuRadioItem({\n\tclassName,\n\tchildren,\n\tinset,\n\t...props\n}: MenuPrimitive.RadioItem.Props & {\n\t/** Surface inset. */\n\tinset?: boolean;\n}) {\n\tconst rowClasses = useMenuRowClasses();\n\treturn (\n\t\t<MenuPrimitive.RadioItem\n\t\t\tdata-slot=\"dropdown-menu-radio-item\"\n\t\t\tdata-inset={inset}\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-radio-item--component whitespace-nowrap data-inset:ps-control-icon',\n\t\t\t\tcollectionRecipes.interactive,\n\t\t\t\trowClasses,\n\t\t\t\tcollectionRecipes.highlighted,\n\t\t\t\tcollectionRecipes.disabled,\n\t\t\t\tcollectionRecipes.icons,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t\t<span\n\t\t\t\tclassName=\"pointer-events-none ms-auto flex shrink-0 items-center justify-center\"\n\t\t\t\tdata-slot=\"dropdown-menu-radio-item-indicator\"\n\t\t\t>\n\t\t\t\t<MenuPrimitive.RadioItemIndicator>\n\t\t\t\t\t<CheckIcon />\n\t\t\t\t</MenuPrimitive.RadioItemIndicator>\n\t\t\t</span>\n\t\t</MenuPrimitive.RadioItem>\n\t);\n}\n\nfunction DropdownMenuSeparator({\n\tclassName,\n\t...props\n}: MenuPrimitive.Separator.Props) {\n\treturn (\n\t\t<MenuPrimitive.Separator\n\t\t\tdata-slot=\"dropdown-menu-separator\"\n\t\t\tclassName={cn('dropdown-menu-separator--component', popoverRecipes.separator, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction DropdownMenuShortcut({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<'span'>) {\n\treturn (\n\t\t<span\n\t\t\tdata-slot=\"dropdown-menu-shortcut\"\n\t\t\tclassName={cn(\n\t\t\t\t'dropdown-menu-shortcut--component ms-auto text-xxs tracking-normal text-muted-foreground group-data-[highlighted]/dropdown-menu-item:text-accent-foreground',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderMenuText(children)}\n\t\t</span>\n\t);\n}\n\nexport {\n\tDropdownMenu,\n\tDropdownMenuPortal,\n\tDropdownMenuTrigger,\n\tDropdownMenuContent,\n\tDropdownMenuGroup,\n\tDropdownMenuLabel,\n\tDropdownMenuItem,\n\tDropdownMenuLinkItem,\n\tDropdownMenuCheckboxItem,\n\tDropdownMenuRadioGroup,\n\tDropdownMenuRadioItem,\n\tDropdownMenuSeparator,\n\tDropdownMenuShortcut,\n\tDropdownMenuSub,\n\tDropdownMenuSubTrigger,\n\tDropdownMenuSubContent,\n};\n"],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ "use client";
2
+ import { C as e, f as t } from "./ui-provider-Bu1S-o96.js";
3
+ import { useStrings as n } from "./lib/strings.js";
4
+ import { t as r } from "./utils-BVbAG2J6.js";
5
+ import { c as i } from "./typography-C0dELqYV.js";
6
+ import { n as a, t as o } from "./upload.recipes-BbxTqrCT.js";
7
+ import { forwardRef as s, useId as c } from "react";
8
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
9
+ import { UploadCloud as d } from "lucide-react";
10
+ //#region src/components/base/upload/file-picker-input.tsx
11
+ var f = s(function({ className: e, onFiles: t, onClick: n, ...i }, a) {
12
+ let o = (e) => {
13
+ e.stopPropagation(), n?.(e), e.defaultPrevented || (e.currentTarget.value = "");
14
+ }, s = (e) => {
15
+ let n = e.currentTarget.files;
16
+ n?.length && t(Array.from(n)) === !1 && (e.currentTarget.value = "");
17
+ };
18
+ return /* @__PURE__ */ l("input", {
19
+ ...i,
20
+ ref: a,
21
+ type: "file",
22
+ "data-slot": "file-picker-input",
23
+ className: r("file-picker-input--component sr-only", e),
24
+ onClick: o,
25
+ onChange: s
26
+ });
27
+ });
28
+ f.displayName = "FilePickerInput";
29
+ //#endregion
30
+ //#region src/components/base/upload/dropzone.tsx
31
+ var p = {
32
+ instruction: "Drag files here or click to browse",
33
+ helper: "",
34
+ dragOver: "Release to select"
35
+ }, m = {
36
+ sm: {
37
+ padding: "p-surface-xs",
38
+ minHeight: "min-h-24",
39
+ iconSize: "size-icon"
40
+ },
41
+ md: {
42
+ padding: "p-surface",
43
+ minHeight: "min-h-32",
44
+ iconSize: "size-icon-lg"
45
+ },
46
+ lg: {
47
+ padding: "p-surface-lg",
48
+ minHeight: "min-h-40",
49
+ iconSize: "size-icon-lg"
50
+ }
51
+ };
52
+ function h(e, t) {
53
+ typeof t == "function" ? t(e) : t && (t.current = e);
54
+ }
55
+ function g({ onDrop: s, accept: g, multiple: _ = !1, disabled: v = !1, invalid: y = !1, size: b, icon: x, className: S, inputProps: C, children: w, strings: T }, E) {
56
+ let { defaultScale: D } = t(), O = n(p, T), k = c(), A = C?.id ?? `dropzone-${k}`, { isDragging: j, dropTargetProps: M } = a({
57
+ disabled: v,
58
+ onFiles: s
59
+ }), N = m[e(b, D)];
60
+ return /* @__PURE__ */ u("div", {
61
+ ...M,
62
+ "data-disabled": v || void 0,
63
+ "data-invalid": y || void 0,
64
+ "data-dragging": j || void 0,
65
+ className: r("dropzone--component relative flex flex-col items-center justify-center gap-space-md rounded-surface border border-dashed text-center transition-colors duration-150", "has-[[data-slot=file-picker-input]:focus-visible]:ring-3", N.minHeight, N.padding, y ? r(o.invalid, o.focus.filePicker.invalid) : r(o.idle, o.focus.filePicker.valid), y ? !v && o.invalidHover : !v && o.hover, v && "cursor-not-allowed opacity-50", !v && j && (y ? o.invalidDragging : o.dragging), S),
66
+ children: [
67
+ /* @__PURE__ */ l(f, {
68
+ ...C,
69
+ ref: (e) => h(e, E),
70
+ id: A,
71
+ accept: g,
72
+ multiple: _,
73
+ disabled: v,
74
+ "aria-invalid": y || void 0,
75
+ className: r("dropzone--input", C?.className),
76
+ onFiles: s
77
+ }),
78
+ /* @__PURE__ */ u("label", {
79
+ htmlFor: v ? void 0 : A,
80
+ "aria-disabled": v || void 0,
81
+ className: r("dropzone--trigger flex w-full flex-1 cursor-pointer flex-col items-center justify-center gap-space-md", v && "cursor-not-allowed"),
82
+ children: [/* @__PURE__ */ l("span", {
83
+ className: "dropzone--icon inline-flex items-center justify-center text-muted-foreground",
84
+ "aria-hidden": "true",
85
+ children: x ?? /* @__PURE__ */ l(d, { className: N.iconSize })
86
+ }), /* @__PURE__ */ u("span", {
87
+ className: "dropzone--copy grid gap-normal",
88
+ children: [/* @__PURE__ */ l(i, {
89
+ tag: "span",
90
+ weight: "medium",
91
+ align: "center",
92
+ className: "dropzone--instruction",
93
+ children: j ? O.dragOver : O.instruction
94
+ }), !!O.helper && /* @__PURE__ */ l(i, {
95
+ tag: "span",
96
+ size: "xs",
97
+ type: "secondary",
98
+ align: "center",
99
+ className: "dropzone--helper",
100
+ children: O.helper
101
+ })]
102
+ })]
103
+ }),
104
+ !!w && /* @__PURE__ */ l("div", {
105
+ className: "dropzone--action",
106
+ children: w
107
+ })
108
+ ]
109
+ });
110
+ }
111
+ var _ = s(g);
112
+ _.displayName = "Dropzone";
113
+ //#endregion
114
+ export { p as n, f as r, _ as t };
115
+
116
+ //# sourceMappingURL=dropzone-CHBNK3de.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropzone-CHBNK3de.js","names":["resolveComponentScale","useDensityConfig","cn","Text","useFileDropTarget","uploadDropTargetRecipes","FilePickerInput","forwardRef","props","handleClick","event","onClick","handleChange","files","onFiles","className","defaultDropzoneStrings","SIZE_CHROME","assignInputRef","forwardedRef","node","DropzoneImpl","sizeProp","stringsProp","strings","useStrings","generatedId","useId","inputId","inputProps","onDrop","chrome","defaultScale","dropTargetProps","disabled","invalid","isDragging","icon","UploadCloud","children","Dropzone"],"sources":["../src/components/base/upload/file-picker-input.tsx","../src/components/base/upload/dropzone.tsx"],"sourcesContent":["import {\n\tforwardRef,\n\ttype ChangeEvent,\n\ttype InputHTMLAttributes,\n\ttype MouseEvent,\n} from 'react';\n\nimport { cn } from '../../../lib/utils';\n\ntype DataAttributes = {\n\t[key: `data-${string}`]: string | number | boolean | undefined;\n};\n\nexport type FilePickerNativeInputProps = Omit<\n\tInputHTMLAttributes<HTMLInputElement>,\n\t'type' | 'value' | 'defaultValue' | 'onChange' | 'children'\n> & DataAttributes;\n\nexport type FilePickerInputProps = FilePickerNativeInputProps & {\n\t/** Return `false` when the native FileList must be cleared (for example, after rejection). */\n\tonFiles: (files: File[]) => boolean | void;\n};\n\n/** Shared native-input plumbing for FileUpload and Dropzone. Not a public export. */\nexport const FilePickerInput = forwardRef<HTMLInputElement, FilePickerInputProps>(\n\tfunction FilePickerInput(\n\t\t{ className, onFiles, onClick, ...props },\n\t\tref,\n\t) {\n\t\tconst handleClick = (event: MouseEvent<HTMLInputElement>) => {\n\t\t\tevent.stopPropagation();\n\t\t\tonClick?.(event);\n\t\t\tif (!event.defaultPrevented) {\n\t\t\t\t// Clearing before the picker opens makes choosing the same file again\n\t\t\t\t// observable without retaining an opaque native FileList as state.\n\t\t\t\tevent.currentTarget.value = '';\n\t\t\t}\n\t\t};\n\n\t\tconst handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n\t\t\tconst files = event.currentTarget.files;\n\t\t\tif (files?.length && onFiles(Array.from(files)) === false) {\n\t\t\t\tevent.currentTarget.value = '';\n\t\t\t}\n\t\t};\n\n\t\treturn (\n\t\t\t<input\n\t\t\t\t{...props}\n\t\t\t\tref={ref}\n\t\t\t\ttype=\"file\"\n\t\t\t\tdata-slot=\"file-picker-input\"\n\t\t\t\tclassName={cn('file-picker-input--component sr-only', className)}\n\t\t\t\tonClick={handleClick}\n\t\t\t\tonChange={handleChange}\n\t\t\t/>\n\t\t);\n\t},\n);\n\nFilePickerInput.displayName = 'FilePickerInput';\n","/**\n * Dropzone — accessible drag-and-drop chrome with a native file-input fallback.\n * It owns no validation or file state; consumers receive local `File` values.\n */\nimport { forwardRef, useId, type ForwardedRef, type ReactNode } from 'react';\nimport { UploadCloud } from 'lucide-react';\n\nimport { Text } from '../../typography';\nimport { useStrings, type StringsProp } from '../../../lib/strings';\nimport { useDensityConfig, type ComponentScale } from '../../../lib/ui-provider';\nimport { resolveComponentScale } from '../../../lib/ui-provider/scale';\nimport { cn } from '../../../lib/utils';\n\nimport {\n\tFilePickerInput,\n\ttype FilePickerNativeInputProps,\n} from './file-picker-input';\nimport { useFileDropTarget } from './use-file-drop-target';\nimport { uploadDropTargetRecipes } from './upload.recipes';\n\nexport type DropzoneSize = ComponentScale;\n\nexport interface DropzoneStrings {\n\tinstruction: string;\n\thelper: string;\n\tdragOver: string;\n}\n\nexport const defaultDropzoneStrings: DropzoneStrings = {\n\tinstruction: 'Drag files here or click to browse',\n\thelper: '',\n\tdragOver: 'Release to select',\n};\n\nexport type DropzoneInputProps = Omit<\n\tFilePickerNativeInputProps,\n\t'accept' | 'disabled' | 'multiple'\n>;\n\nexport interface DropzoneProps {\n\tonDrop: (files: File[]) => void;\n\t/** Accepted MIME types or extensions. */\n\taccept?: string;\n\t/** Allows more than one file to be dropped. */\n\tmultiple?: boolean;\n\t/** Disables the control and blocks drops. */\n\tdisabled?: boolean;\n\t/** Applies the invalid styling. */\n\tinvalid?: boolean;\n\t/** Height preset for the drop target. */\n\tsize?: DropzoneSize;\n\t/** Glyph shown inside the drop target. */\n\ticon?: ReactNode;\n\tclassName?: string;\n\t/** Native form, ARIA, data, and event attributes forwarded to the file input. */\n\tinputProps?: DropzoneInputProps;\n\t/** Optional action rendered outside the input label, so nested controls remain valid. */\n\tchildren?: ReactNode;\n\t/** Overrides the prompt and constraint copy. */\n\tstrings?: StringsProp<DropzoneStrings>;\n}\n\nconst SIZE_CHROME: Record<\n\tDropzoneSize,\n\t{ padding: string; minHeight: string; iconSize: string }\n> = {\n\tsm: {\n\t\tpadding: 'p-surface-xs',\n\t\tminHeight: 'min-h-24',\n\t\ticonSize: 'size-icon',\n\t},\n\tmd: {\n\t\tpadding: 'p-surface',\n\t\tminHeight: 'min-h-32',\n\t\ticonSize: 'size-icon-lg',\n\t},\n\tlg: {\n\t\tpadding: 'p-surface-lg',\n\t\tminHeight: 'min-h-40',\n\t\ticonSize: 'size-icon-lg',\n\t},\n};\n\nfunction assignInputRef(\n\tnode: HTMLInputElement | null,\n\tforwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n\tif (typeof forwardedRef === 'function') forwardedRef(node);\n\telse if (forwardedRef) forwardedRef.current = node;\n}\n\nfunction DropzoneImpl(\n\t{\n\t\tonDrop,\n\t\taccept,\n\t\tmultiple = false,\n\t\tdisabled = false,\n\t\tinvalid = false,\n\t\tsize: sizeProp,\n\t\ticon,\n\t\tclassName,\n\t\tinputProps,\n\t\tchildren,\n\t\tstrings: stringsProp,\n\t}: DropzoneProps,\n\tforwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n\tconst { defaultScale } = useDensityConfig();\n\tconst strings = useStrings(defaultDropzoneStrings, stringsProp);\n\tconst generatedId = useId();\n\tconst inputId = inputProps?.id ?? `dropzone-${generatedId}`;\n\tconst { isDragging, dropTargetProps } = useFileDropTarget({\n\t\tdisabled,\n\t\tonFiles: onDrop,\n\t});\n\tconst resolvedSize = resolveComponentScale(sizeProp, defaultScale);\n\tconst chrome = SIZE_CHROME[resolvedSize];\n\n\treturn (\n\t\t<div\n\t\t\t{...dropTargetProps}\n\t\t\tdata-disabled={disabled || undefined}\n\t\t\tdata-invalid={invalid || undefined}\n\t\t\tdata-dragging={isDragging || undefined}\n\t\t\tclassName={cn(\n\t\t\t\t'dropzone--component relative flex flex-col items-center justify-center gap-space-md rounded-surface border border-dashed text-center transition-colors duration-150',\n\t\t\t\t'has-[[data-slot=file-picker-input]:focus-visible]:ring-3',\n\t\t\t\tchrome.minHeight,\n\t\t\t\tchrome.padding,\n\t\t\t\tinvalid ? cn(uploadDropTargetRecipes.invalid, uploadDropTargetRecipes.focus.filePicker.invalid) : cn(uploadDropTargetRecipes.idle, uploadDropTargetRecipes.focus.filePicker.valid),\n\t\t\t\tinvalid\n\t\t\t\t\t? !disabled && uploadDropTargetRecipes.invalidHover\n\t\t\t\t\t: !disabled && uploadDropTargetRecipes.hover,\n\t\t\t\tdisabled && 'cursor-not-allowed opacity-50',\n\t\t\t\t!disabled && isDragging && (\n\t\t\t\t\tinvalid\n\t\t\t\t\t\t? uploadDropTargetRecipes.invalidDragging\n\t\t\t\t\t\t: uploadDropTargetRecipes.dragging\n\t\t\t\t),\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<FilePickerInput\n\t\t\t\t{...inputProps}\n\t\t\t\tref={(node) => assignInputRef(node, forwardedRef)}\n\t\t\t\tid={inputId}\n\t\t\t\taccept={accept}\n\t\t\t\tmultiple={multiple}\n\t\t\t\tdisabled={disabled}\n\t\t\t\taria-invalid={invalid || undefined}\n\t\t\t\tclassName={cn('dropzone--input', inputProps?.className)}\n\t\t\t\tonFiles={onDrop}\n\t\t\t/>\n\n\t\t\t<label\n\t\t\t\thtmlFor={disabled ? undefined : inputId}\n\t\t\t\taria-disabled={disabled || undefined}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'dropzone--trigger flex w-full flex-1 cursor-pointer flex-col items-center justify-center gap-space-md',\n\t\t\t\t\tdisabled && 'cursor-not-allowed',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{/* The glyph names the affordance; it needs no tinted tile around it. */}\n\t\t\t\t<span\n\t\t\t\t\tclassName=\"dropzone--icon inline-flex items-center justify-center text-muted-foreground\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t>\n\t\t\t\t\t{icon ?? <UploadCloud className={chrome.iconSize} />}\n\t\t\t\t</span>\n\n\t\t\t\t{/* Text sets its own start alignment, and the copy column is as wide as\n\t\t\t\t its longest line, so each line centres itself. */}\n\t\t\t\t<span className=\"dropzone--copy grid gap-normal\">\n\t\t\t\t\t<Text\n\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\tweight=\"medium\"\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tclassName=\"dropzone--instruction\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{isDragging ? strings.dragOver : strings.instruction}\n\t\t\t\t\t</Text>\n\t\t\t\t\t{!!strings.helper && (\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\tclassName=\"dropzone--helper\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{strings.helper}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t)}\n\t\t\t\t</span>\n\t\t\t</label>\n\n\t\t\t{!!children && <div className=\"dropzone--action\">{children}</div>}\n\t\t</div>\n\t);\n}\n\nconst Dropzone = forwardRef<HTMLInputElement, DropzoneProps>(DropzoneImpl);\nDropzone.displayName = 'Dropzone';\n\nexport { Dropzone };\n"],"mappings":"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"}