themelia-react-ui 2.0.5 → 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 (968) hide show
  1. package/CHANGELOG.md +326 -0
  2. package/MIGRATION.md +858 -0
  3. package/README.md +35 -24
  4. package/dist/{accordion-B9MHG0cT.js → accordion-DNVqwEIC.js} +37 -37
  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-Dg_69lPS.js → attachment-D2-fpfmv.js} +15 -15
  15. package/dist/{attachment-Dg_69lPS.js.map → attachment-D2-fpfmv.js.map} +1 -1
  16. package/dist/{auth-DTkkshS8.js → auth-g_oUTDDC.js} +236 -243
  17. package/dist/auth-g_oUTDDC.js.map +1 -0
  18. package/dist/{avatar-CeZaFmNH.js → avatar-Ca3Ihrq4.js} +4 -4
  19. package/dist/{avatar-CeZaFmNH.js.map → avatar-Ca3Ihrq4.js.map} +1 -1
  20. package/dist/{badge-xIiV_E7f.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 +208 -198
  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 +8 -14
  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-Cb8cuvyy.js → batch-action-bar-D6MZQNnC.js} +10 -10
  73. package/dist/{batch-action-bar-Cb8cuvyy.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 +398 -354
  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 +173 -1392
  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 +1533 -1399
  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-CQ9JSlez.js +136 -0
  94. package/dist/breadcrumbs-CQ9JSlez.js.map +1 -0
  95. package/dist/{button-S2Cubiiz.js → button-rd6FiHfQ.js} +12 -8
  96. package/dist/button-rd6FiHfQ.js.map +1 -0
  97. package/dist/{buttons-BedGfygC.js → buttons-pZVgPTZn.js} +230 -246
  98. package/dist/buttons-pZVgPTZn.js.map +1 -0
  99. package/dist/{cards-rNX1M4Xn.js → cards-CgWyqvgZ.js} +25 -22
  100. package/dist/{cards-rNX1M4Xn.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-Darg_0Kv.js → chart-CygRCyIZ.js} +5 -5
  104. package/dist/{chart-Darg_0Kv.js.map → chart-CygRCyIZ.js.map} +1 -1
  105. package/dist/{checkbox-fflqmODR.js → checkbox-Dy5_XBMZ.js} +4 -4
  106. package/dist/{checkbox-fflqmODR.js.map → checkbox-Dy5_XBMZ.js.map} +1 -1
  107. package/dist/{choice-inputs-zUgBZfE4.js → choice-inputs-oJEsrb5Y.js} +195 -184
  108. package/dist/choice-inputs-oJEsrb5Y.js.map +1 -0
  109. package/dist/{code-block-BzmM9Eig.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-gDh1v6O4.js → collection-content-D7SoDlYd.js} +3 -3
  114. package/dist/{collection-content-gDh1v6O4.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/choice-types.d.ts +4 -0
  136. package/dist/components/base/choice-inputs/pill-radio-group.d.ts +7 -6
  137. package/dist/components/base/choice-inputs/switch.d.ts +1 -1
  138. package/dist/components/base/code-block/use-code-copy.d.ts +2 -6
  139. package/dist/components/base/combobox/combobox-field.d.ts +2 -2
  140. package/dist/components/base/command/command.d.ts +1 -1
  141. package/dist/components/base/date-pickers/date-picker-internals.d.ts +3 -1
  142. package/dist/components/base/date-pickers/datepicker.types.d.ts +11 -7
  143. package/dist/components/base/date-pickers/time-picker.d.ts +17 -3
  144. package/dist/components/base/display/dialog.d.ts +3 -9
  145. package/dist/components/base/display/index.d.ts +2 -3
  146. package/dist/components/base/display/separator.d.ts +1 -1
  147. package/dist/components/base/feedback/alert.d.ts +2 -1
  148. package/dist/components/base/feedback/empty.d.ts +10 -2
  149. package/dist/components/base/feedback/state-display.d.ts +5 -1
  150. package/dist/components/base/feedback/state-display.strings.d.ts +9 -0
  151. package/dist/components/base/forms/form-field.d.ts +7 -2
  152. package/dist/components/base/forms/workflow.d.ts +2 -2
  153. package/dist/components/base/forms-numeric/coordinates-input.d.ts +4 -1
  154. package/dist/components/base/forms-numeric/decimal-input.d.ts +2 -2
  155. package/dist/components/base/forms-numeric/dimensions-input.d.ts +13 -18
  156. package/dist/components/base/forms-numeric/index.d.ts +3 -3
  157. package/dist/components/base/forms-numeric/numeric-composite-field.d.ts +12 -0
  158. package/dist/components/base/forms-numeric/weight-input.d.ts +6 -1
  159. package/dist/components/base/item/item.types.d.ts +6 -2
  160. package/dist/components/base/metadata-list/index.d.ts +1 -3
  161. package/dist/components/base/metadata-list/metadata-list.d.ts +4 -1
  162. package/dist/components/base/navigation/index.d.ts +2 -2
  163. package/dist/components/base/navigation/language-switcher.d.ts +17 -8
  164. package/dist/components/base/navigation/navigation-tabs.d.ts +8 -1
  165. package/dist/components/base/navigation/page-header/index.d.ts +1 -1
  166. package/dist/components/base/navigation/page-header/page-header.d.ts +13 -17
  167. package/dist/components/base/navigation/pagination.d.ts +5 -5
  168. package/dist/components/base/popover/popover.recipes.d.ts +0 -1
  169. package/dist/components/base/qr-code/qr-code.d.ts +4 -0
  170. package/dist/components/base/repeaters/index.d.ts +1 -1
  171. package/dist/components/base/repeaters/key-value-editor.d.ts +6 -1
  172. package/dist/components/base/sheet/sheet.d.ts +6 -15
  173. package/dist/components/base/sidebar/index.d.ts +1 -6
  174. package/dist/components/base/sidebar/sidebar.d.ts +40 -10
  175. package/dist/components/base/skeleton/skeleton.d.ts +1 -1
  176. package/dist/components/base/structure/structure.types.d.ts +11 -2
  177. package/dist/components/base/text-inputs/index.d.ts +1 -1
  178. package/dist/components/base/tree/index.d.ts +1 -0
  179. package/dist/components/base/tree/tree.d.ts +2 -2
  180. package/dist/components/base/tree/tree.types.d.ts +7 -1
  181. package/dist/components/base/upload/avatar-upload.d.ts +2 -1
  182. package/dist/components/base/upload/file-upload.validation.d.ts +37 -1
  183. package/dist/components/base/upload/image-upload.d.ts +4 -1
  184. package/dist/components/base/upload/index.d.ts +3 -9
  185. package/dist/components/base/value-inputs/date-time-input.d.ts +4 -0
  186. package/dist/components/base/value-inputs/slider.d.ts +5 -2
  187. package/dist/components/blocks/admin/action-surfaces/index.d.ts +17 -4
  188. package/dist/components/blocks/admin/api-key-list/api-key-list.types.d.ts +9 -3
  189. package/dist/components/blocks/admin/index.d.ts +1 -1
  190. package/dist/components/blocks/ai/ai-artifact/ai-artifact.d.ts +1 -1
  191. package/dist/components/blocks/ai/ai-artifact/types.d.ts +9 -4
  192. package/dist/components/blocks/ai/ai-chain-of-thought/ai-chain-of-thought.d.ts +1 -1
  193. package/dist/components/blocks/ai/ai-chain-of-thought/types.d.ts +11 -1
  194. package/dist/components/blocks/ai/ai-citation/ai-citation.d.ts +1 -1
  195. package/dist/components/blocks/ai/ai-citation/types.d.ts +8 -0
  196. package/dist/components/blocks/ai/ai-confirmation/ai-confirmation.d.ts +1 -1
  197. package/dist/components/blocks/ai/ai-confirmation/types.d.ts +21 -5
  198. package/dist/components/blocks/ai/ai-feedback/types.d.ts +7 -2
  199. package/dist/components/blocks/ai/ai-inline-citation/types.d.ts +9 -3
  200. package/dist/components/blocks/ai/ai-package-info/ai-package-info.d.ts +1 -1
  201. package/dist/components/blocks/ai/ai-package-info/types.d.ts +6 -0
  202. package/dist/components/blocks/ai/ai-reasoning/types.d.ts +2 -0
  203. package/dist/components/blocks/ai/ai-sources/ai-sources.d.ts +1 -1
  204. package/dist/components/blocks/ai/ai-sources/types.d.ts +10 -2
  205. package/dist/components/blocks/ai/ai-task/ai-task.d.ts +1 -1
  206. package/dist/components/blocks/ai/ai-task/types.d.ts +10 -1
  207. package/dist/components/blocks/ai/ai-tool-call/ai-tool-call.d.ts +1 -1
  208. package/dist/components/blocks/ai/ai-tool-call/types.d.ts +8 -0
  209. package/dist/components/blocks/ai/ai.strings.d.ts +2 -0
  210. package/dist/components/blocks/analytics/activity-heatmap/types.d.ts +1 -1
  211. package/dist/components/blocks/analytics/analytics.strings.d.ts +2 -0
  212. package/dist/components/blocks/analytics/atoms/metric-trend-chip.d.ts +11 -1
  213. package/dist/components/blocks/analytics/chart-card/chart-card.d.ts +7 -5
  214. package/dist/components/blocks/analytics/charts/index.d.ts +27 -0
  215. package/dist/components/blocks/analytics/index.d.ts +17 -24
  216. package/dist/components/blocks/analytics/metric/metric.d.ts +7 -3
  217. package/dist/components/blocks/analytics/metric-comparison/metric-comparison.d.ts +2 -0
  218. package/dist/components/blocks/analytics/metric-grid/metric-grid.d.ts +4 -5
  219. package/dist/components/blocks/analytics/types.d.ts +13 -4
  220. package/dist/components/blocks/analytics/usage-card/usage-card.strings.d.ts +2 -0
  221. package/dist/components/blocks/commerce/address-card/address-card.d.ts +1 -1
  222. package/dist/components/blocks/commerce/address-card/types.d.ts +5 -16
  223. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.d.ts +2 -2
  224. package/dist/components/blocks/commerce/booking-calendar-event-card/booking-calendar-event-card.types.d.ts +6 -4
  225. package/dist/components/blocks/commerce/cart-summary/cart-summary.d.ts +0 -2
  226. package/dist/components/blocks/commerce/cart-summary/index.d.ts +2 -2
  227. package/dist/components/blocks/commerce/cart-summary/types.d.ts +9 -11
  228. package/dist/components/blocks/commerce/coupon-input/coupon-input.d.ts +1 -1
  229. package/dist/components/blocks/commerce/coupon-input/types.d.ts +7 -3
  230. package/dist/components/blocks/commerce/discount-stack/discount-stack.d.ts +0 -2
  231. package/dist/components/blocks/commerce/discount-stack/index.d.ts +2 -2
  232. package/dist/components/blocks/commerce/discount-stack/types.d.ts +4 -6
  233. package/dist/components/blocks/commerce/fulfillment-group/fulfillment-group.d.ts +1 -1
  234. package/dist/components/blocks/commerce/fulfillment-group/types.d.ts +2 -0
  235. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-balance.d.ts +18 -0
  236. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-compact.d.ts +1 -1
  237. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-copy-button.d.ts +0 -1
  238. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-dark.d.ts +1 -1
  239. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-full.d.ts +1 -1
  240. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-illustrated.d.ts +1 -1
  241. package/dist/components/blocks/commerce/giftcard-card/partials/giftcard-minimal.d.ts +1 -1
  242. package/dist/components/blocks/commerce/giftcard-card/types.d.ts +16 -5
  243. package/dist/components/blocks/commerce/index.d.ts +8 -8
  244. package/dist/components/blocks/commerce/inventory-level/inventory-level.strings.d.ts +2 -0
  245. package/dist/components/blocks/commerce/inventory-level/types.d.ts +1 -1
  246. package/dist/components/blocks/commerce/inventory-section/types.d.ts +0 -5
  247. package/dist/components/blocks/commerce/invoice-line-items/types.d.ts +6 -3
  248. package/dist/components/blocks/commerce/loyalty-points/loyalty-points.d.ts +1 -1
  249. package/dist/components/blocks/commerce/loyalty-points/types.d.ts +11 -5
  250. package/dist/components/blocks/commerce/order-status/order-status.d.ts +1 -1
  251. package/dist/components/blocks/commerce/order-status/types.d.ts +12 -8
  252. package/dist/components/blocks/commerce/order-timeline/order-timeline.d.ts +1 -1
  253. package/dist/components/blocks/commerce/order-timeline/types.d.ts +3 -1
  254. package/dist/components/blocks/commerce/payment-method/index.d.ts +2 -2
  255. package/dist/components/blocks/commerce/payment-method/payment-method.d.ts +0 -8
  256. package/dist/components/blocks/commerce/payment-method/types.d.ts +0 -2
  257. package/dist/components/blocks/commerce/receipt/index.d.ts +1 -1
  258. package/dist/components/blocks/commerce/receipt/receipt-items.d.ts +1 -1
  259. package/dist/components/blocks/commerce/receipt/types.d.ts +10 -0
  260. package/dist/components/blocks/commerce/refund-status/index.d.ts +2 -2
  261. package/dist/components/blocks/commerce/refund-status/refund-status.d.ts +0 -2
  262. package/dist/components/blocks/commerce/refund-status/types.d.ts +0 -2
  263. package/dist/components/blocks/commerce/seo-listing/types.d.ts +7 -0
  264. package/dist/components/blocks/commerce/shared/code-entry.d.ts +39 -0
  265. package/dist/components/blocks/commerce/shared/order-status.d.ts +1 -1
  266. package/dist/components/blocks/commerce/subscription-summary/subscription-summary.d.ts +1 -1
  267. package/dist/components/blocks/commerce/subscription-summary/types.d.ts +10 -1
  268. package/dist/components/blocks/commerce/upcoming-booking/index.d.ts +2 -1
  269. package/dist/components/blocks/commerce/upcoming-booking/types.d.ts +8 -0
  270. package/dist/components/blocks/commerce/upcoming-booking/upcoming-booking.d.ts +2 -2
  271. package/dist/components/blocks/commerce/vendor-profile/types.d.ts +4 -5
  272. package/dist/components/blocks/commerce/voucher-entry/types.d.ts +6 -3
  273. package/dist/components/blocks/commerce/voucher-entry/voucher-entry.d.ts +1 -1
  274. package/dist/components/blocks/content-block-hooks.d.ts +22 -0
  275. package/dist/components/blocks/data-display/dense-info-card/dense-info.strings.d.ts +5 -1
  276. package/dist/components/blocks/data-display/dense-info-card/helpers.d.ts +3 -1
  277. package/dist/components/blocks/data-display/dense-info-card/index.d.ts +1 -1
  278. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-classification.d.ts +1 -1
  279. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-dashboard.d.ts +1 -1
  280. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-financial.d.ts +1 -1
  281. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-project.d.ts +1 -1
  282. package/dist/components/blocks/data-display/dense-info-card/partials/dense-info-score.d.ts +1 -1
  283. package/dist/components/blocks/data-display/dense-info-card/types.d.ts +12 -5
  284. package/dist/components/blocks/data-display/empty-state/empty-state.types.d.ts +10 -3
  285. package/dist/components/blocks/data-display/index.d.ts +0 -1
  286. package/dist/components/blocks/data-display/relationship-card-frame.d.ts +1 -1
  287. package/dist/components/blocks/onboarding/checklist/checklist.types.d.ts +5 -3
  288. package/dist/components/blocks/planning/task-card.types.d.ts +7 -3
  289. package/dist/components/blocks/timelines/changelog/types.d.ts +2 -2
  290. package/dist/components/blocks/timelines/index.d.ts +2 -2
  291. package/dist/components/blocks/timelines/milestones/types.d.ts +2 -2
  292. package/dist/components/blocks/timelines/shared/timeline.d.ts +6 -0
  293. package/dist/components/blocks/timelines/steps-card/index.d.ts +2 -1
  294. package/dist/components/blocks/timelines/steps-card/steps-card.d.ts +2 -2
  295. package/dist/components/blocks/timelines/steps-card/types.d.ts +13 -1
  296. package/dist/components/features/activities/activities.strings.d.ts +5 -3
  297. package/dist/components/features/activities/activities.types.d.ts +46 -22
  298. package/dist/components/features/activities/hooks/use-activity-feed.d.ts +6 -0
  299. package/dist/components/features/activities/hooks/use-activity-resources.d.ts +2 -1
  300. package/dist/components/features/activities/index.d.ts +1 -1
  301. package/dist/components/features/activities/partials/activity-headline.d.ts +5 -0
  302. package/dist/components/features/activities/partials/activity-row.d.ts +12 -13
  303. package/dist/components/features/activities/partials/row-layers.d.ts +7 -0
  304. package/dist/components/features/activities/relative-time.d.ts +18 -0
  305. package/dist/components/features/ai-chat/ai-chat.d.ts +6 -2
  306. package/dist/components/features/ai-chat/ai-chat.strings.d.ts +41 -2
  307. package/dist/components/features/ai-chat/ai-chat.types.d.ts +6 -0
  308. package/dist/components/features/ai-chat/hooks/use-ai-chat-scroll.d.ts +1 -1
  309. package/dist/components/features/ai-chat/partials/ai-chat-attachments-strip.d.ts +5 -1
  310. package/dist/components/features/ai-chat/partials/ai-chat-prompt-input.d.ts +2 -2
  311. package/dist/components/features/ai-chat/partials/ai-chat-queue.d.ts +3 -1
  312. package/dist/components/features/ai-chat/partials/ai-chat-suggestions-row.d.ts +6 -1
  313. package/dist/components/features/appointment-calendar/appointment-calendar.d.ts +1 -1
  314. package/dist/components/features/appointment-calendar/appointment-calendar.types.d.ts +20 -4
  315. package/dist/components/features/appointment-calendar/index.d.ts +1 -1
  316. package/dist/components/features/appointment-calendar/partials/appointment-agenda.d.ts +18 -10
  317. package/dist/components/features/async-preview/async-preview.d.ts +2 -2
  318. package/dist/components/features/async-preview/async-preview.types.d.ts +30 -1
  319. package/dist/components/features/async-preview/preview-trigger-cell.d.ts +7 -2
  320. package/dist/components/features/combobox/async-resource-combobox.d.ts +2 -2
  321. package/dist/components/features/combobox/combobox.d.ts +12 -3
  322. package/dist/components/features/combobox/components/error-message.d.ts +3 -1
  323. package/dist/components/features/combobox/hooks/use-combobox-core.d.ts +4 -3
  324. package/dist/components/features/combobox/hooks/use-combobox-state.d.ts +1 -0
  325. package/dist/components/features/combobox/hooks/use-load-more.d.ts +1 -0
  326. package/dist/components/features/combobox/index.d.ts +1 -1
  327. package/dist/components/features/combobox/types.d.ts +68 -37
  328. package/dist/components/features/comments/comments.strings.d.ts +6 -5
  329. package/dist/components/features/comments/comments.types.d.ts +40 -26
  330. package/dist/components/features/comments/hooks/use-attachment-upload.d.ts +5 -1
  331. package/dist/components/features/comments/hooks/use-comments.d.ts +8 -1
  332. package/dist/components/features/data-view/data-view.strings.d.ts +9 -2
  333. package/dist/components/features/data-view/data-view.types.d.ts +15 -2
  334. package/dist/components/features/email-composer/email-html.d.ts +5 -0
  335. package/dist/components/features/email-composer/http.d.ts +2 -0
  336. package/dist/components/features/email-composer/strings.d.ts +17 -2
  337. package/dist/components/features/email-composer/types.d.ts +19 -2
  338. package/dist/components/features/email-composer/use-composer.d.ts +2 -78
  339. package/dist/components/features/event-calendar/event-calendar-day-cell.d.ts +1 -1
  340. package/dist/components/features/event-calendar/event-calendar-event-badge.d.ts +1 -1
  341. package/dist/components/features/event-calendar/event-calendar-header.d.ts +1 -1
  342. package/dist/components/features/event-calendar/event-calendar-legend.d.ts +2 -2
  343. package/dist/components/features/event-calendar/event-calendar.d.ts +1 -1
  344. package/dist/components/features/event-calendar/event-calendar.types.d.ts +126 -21
  345. package/dist/components/features/filters/facets/date-facet.d.ts +4 -2
  346. package/dist/components/features/filters/facets/range-facet.d.ts +24 -7
  347. package/dist/components/features/filters/filter-context.d.ts +9 -0
  348. package/dist/components/features/filters/filters.strings.d.ts +36 -3
  349. package/dist/components/features/filters/filters.types.d.ts +75 -8
  350. package/dist/components/features/filters/hooks/use-filter-draft.d.ts +1 -0
  351. package/dist/components/features/filters/index.d.ts +2 -2
  352. package/dist/components/features/filters/operator-options.d.ts +25 -2
  353. package/dist/components/features/filters/partials/active-filter-item.d.ts +0 -13
  354. package/dist/components/features/filters/partials/async-options-status.d.ts +32 -0
  355. package/dist/components/features/filters/partials/date-filter-content.d.ts +3 -2
  356. package/dist/components/features/filters/partials/filter-draft-footer.d.ts +11 -0
  357. package/dist/components/features/filters/partials/filter-operator-select.d.ts +4 -2
  358. package/dist/components/features/filters/partials/filter-pill.d.ts +5 -1
  359. package/dist/components/features/filters/partials/filter-popover-content.d.ts +4 -2
  360. package/dist/components/features/filters/partials/filter-tabs.d.ts +2 -1
  361. package/dist/components/features/filters/partials/range-filter-content.d.ts +12 -0
  362. package/dist/components/features/filters/partials/regular-filter-content.d.ts +1 -1
  363. package/dist/components/features/filters/utils/filter-utils.d.ts +34 -5
  364. package/dist/components/features/global-search/global-search-dialog.d.ts +7 -1
  365. package/dist/components/features/global-search/global-search.d.ts +7 -1
  366. package/dist/components/features/global-search/global-search.strings.d.ts +19 -3
  367. package/dist/components/features/global-search/global-search.types.d.ts +30 -6
  368. package/dist/components/features/global-search/index.d.ts +1 -1
  369. package/dist/components/features/global-search/partials/global-search-idle-state.d.ts +6 -1
  370. package/dist/components/features/global-search/partials/global-search-input.d.ts +2 -0
  371. package/dist/components/features/kanban/index.d.ts +2 -2
  372. package/dist/components/features/kanban/kanban-context.d.ts +4 -0
  373. package/dist/components/features/kanban/kanban-keyboard.d.ts +7 -2
  374. package/dist/components/features/kanban/kanban.d.ts +10 -1
  375. package/dist/components/features/kanban/kanban.strings.d.ts +11 -2
  376. package/dist/components/features/kanban/kanban.types.d.ts +26 -0
  377. package/dist/components/features/map/map.d.ts +4 -0
  378. package/dist/components/features/map/place-autocomplete.d.ts +10 -1
  379. package/dist/components/features/media-library/hooks/use-media-library.d.ts +3 -1
  380. package/dist/components/features/media-library/media-library.d.ts +1 -1
  381. package/dist/components/features/media-library/media-library.strings.d.ts +39 -3
  382. package/dist/components/features/media-library/media-library.types.d.ts +82 -9
  383. package/dist/components/features/media-library/partials/media-library-partials.d.ts +3 -3
  384. package/dist/components/features/mentions/hooks/use-mentions-search.d.ts +7 -0
  385. package/dist/components/features/mentions/hooks/use-mentions.d.ts +16 -1
  386. package/dist/components/features/mentions/index.d.ts +1 -1
  387. package/dist/components/features/mentions/mentions.strings.d.ts +10 -2
  388. package/dist/components/features/mentions/partials/mention-chip.d.ts +1 -0
  389. package/dist/components/features/mentions/partials/mention-inline-suggestions.d.ts +12 -1
  390. package/dist/components/features/mentions/partials/mention-picker.d.ts +8 -1
  391. package/dist/components/features/mentions/partials/mention-search-error.d.ts +6 -0
  392. package/dist/components/features/mentions/utils/index.d.ts +0 -1
  393. package/dist/components/features/overlays/alert-dialog.d.ts +1 -1
  394. package/dist/components/features/overlays/dialog.d.ts +1 -1
  395. package/dist/components/features/overlays/drawer.d.ts +1 -1
  396. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +2 -2
  397. package/dist/components/features/overlays/index.d.ts +2 -2
  398. package/dist/components/features/overlays/overlays.strings.d.ts +2 -1
  399. package/dist/components/features/overlays/overlays.types.d.ts +27 -10
  400. package/dist/components/features/products/components/index.d.ts +0 -10
  401. package/dist/components/features/products/components/product-contract-overview.d.ts +1 -1
  402. package/dist/components/features/products/components/product-details-card.d.ts +1 -1
  403. package/dist/components/features/products/components/product-operations-card.d.ts +1 -1
  404. package/dist/components/features/products/components/product-option-action-menu.d.ts +1 -1
  405. package/dist/components/features/products/components/product-options-summary.d.ts +1 -1
  406. package/dist/components/features/products/components/product-policies-card.d.ts +1 -1
  407. package/dist/components/features/products/components/product-quote-preview-card.d.ts +1 -1
  408. package/dist/components/features/products/components/product-readiness-card.d.ts +1 -1
  409. package/dist/components/features/products/components/product-structure-card.d.ts +1 -1
  410. package/dist/components/features/products/components/product-variant-action-menu.d.ts +1 -1
  411. package/dist/components/features/products/components/product-variants-manager.d.ts +1 -1
  412. package/dist/components/features/products/components/product-variants-table.d.ts +1 -1
  413. package/dist/components/features/products/partials/product-surface.d.ts +15 -0
  414. package/dist/components/features/products/products.strings.d.ts +8 -0
  415. package/dist/components/features/products/products.types.d.ts +26 -8
  416. package/dist/components/features/questionnaire/questionnaire.types.d.ts +7 -2
  417. package/dist/components/features/resource/index.d.ts +2 -3
  418. package/dist/components/features/resource/resource.d.ts +2 -10
  419. package/dist/components/features/resource/resource.types.d.ts +7 -147
  420. package/dist/components/features/resource-assignment/partials/assignment-surface.d.ts +15 -0
  421. package/dist/components/features/resource-assignment/resource-assignment.strings.d.ts +6 -1
  422. package/dist/components/features/resource-assignment/resource-assignment.types.d.ts +6 -0
  423. package/dist/components/features/rich-text-editor/form-rich-text-editor.d.ts +1 -1
  424. package/dist/components/features/rich-text-editor/partials/caret-helpers.d.ts +5 -7
  425. package/dist/components/features/rich-text-editor/partials/editor-field-aria.d.ts +14 -0
  426. package/dist/components/features/rich-text-editor/partials/html-helpers.d.ts +2 -3
  427. package/dist/components/features/rich-text-editor/partials/image-uploads.d.ts +6 -2
  428. package/dist/components/features/rich-text-editor/partials/index.d.ts +2 -3
  429. package/dist/components/features/rich-text-editor/partials/rich-text-editor-tiptap.d.ts +0 -1
  430. package/dist/components/features/rich-text-editor/partials/rich-text-editor-toolbar.d.ts +5 -4
  431. package/dist/components/features/rich-text-editor/rich-text-editor.recipes.d.ts +1 -1
  432. package/dist/components/features/rich-text-editor/rich-text-editor.types.d.ts +30 -4
  433. package/dist/components/features/schema-form/hooks/use-schema-form.d.ts +10 -1
  434. package/dist/components/features/schema-form/partials/schema-form-field.d.ts +3 -1
  435. package/dist/components/features/schema-form/schema-form.d.ts +1 -1
  436. package/dist/components/features/schema-form/schema-form.types.d.ts +13 -5
  437. package/dist/components/features/schema-form/schema-form.utils.d.ts +1 -1
  438. package/dist/components/features/suggestions/suggestions.strings.d.ts +14 -0
  439. package/dist/components/features/suggestions/suggestions.types.d.ts +13 -5
  440. package/dist/components/features/table/data-table.d.ts +1 -1
  441. package/dist/components/features/table/filter-bar.d.ts +1 -1
  442. package/dist/components/features/table/index.d.ts +1 -0
  443. package/dist/components/features/table/pagination.d.ts +1 -1
  444. package/dist/components/features/table/partials/cell-value.d.ts +1 -1
  445. package/dist/components/features/table/table-body.d.ts +1 -1
  446. package/dist/components/features/table/table-header.d.ts +1 -1
  447. package/dist/components/features/table/table-helpers.d.ts +37 -12
  448. package/dist/components/features/table/table-region.recipes.d.ts +11 -0
  449. package/dist/components/features/table/table-toolbar.d.ts +1 -1
  450. package/dist/components/features/table/table.strings.d.ts +4 -0
  451. package/dist/components/features/table/table.types.d.ts +91 -49
  452. package/dist/components/features/theme-tweaker/theme-provider-settings.d.ts +4 -0
  453. package/dist/components/features/theme-tweaker/theme-tweaker.strings.d.ts +10 -7
  454. package/dist/components/features/theme-tweaker/theme-tweaker.utils.d.ts +17 -0
  455. package/dist/components/layout/app-shell/app-shell.types.d.ts +46 -49
  456. package/dist/components/layout/app-shell/index.d.ts +2 -2
  457. package/dist/components/layout/app-shell/shell-regions.d.ts +9 -0
  458. package/dist/components/layout/app-shell/shell-skip-link.d.ts +9 -0
  459. package/dist/components/layout/app-shell/sidebar-inset-layout.d.ts +1 -1
  460. package/dist/components/layout/app-shell/stacked-layout.d.ts +1 -1
  461. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
  462. package/dist/components/layout/auth/auth-shell.d.ts +1 -1
  463. package/dist/components/layout/auth/auth.types.d.ts +0 -5
  464. package/dist/components/layout/containers/inline-gutter-context.d.ts +7 -0
  465. package/dist/components/layout/containers/main-landmark-context.d.ts +6 -0
  466. package/dist/components/layout/header/header.types.d.ts +19 -8
  467. package/dist/components/layout/header/partials/header-global-search-trigger.d.ts +1 -1
  468. package/dist/components/layout/header/partials/header-notifications.d.ts +1 -1
  469. package/dist/components/layout/header/partials/header-search.d.ts +1 -1
  470. package/dist/components/layout/hooks/use-command-shortcut.d.ts +10 -1
  471. package/dist/components/layout/layout.types.d.ts +6 -4
  472. package/dist/components/layout/navigation/breadcrumb-progress/breadcrumb-progress.d.ts +1 -1
  473. package/dist/components/layout/navigation/breadcrumb-progress/types.d.ts +9 -0
  474. package/dist/components/layout/navigation/section-nav/section-nav.d.ts +8 -1
  475. package/dist/components/layout/navigation/side-nav.d.ts +3 -2
  476. package/dist/components/layout/normalize-layout-path.d.ts +1 -0
  477. package/dist/components/layout/page/index.d.ts +2 -3
  478. package/dist/components/layout/page/page.strings.d.ts +12 -0
  479. package/dist/components/layout/page/page.types.d.ts +7 -110
  480. package/dist/components/layout/page/partials/page-header.d.ts +1 -1
  481. package/dist/components/layout/settings/index.d.ts +1 -1
  482. package/dist/components/layout/settings/settings.d.ts +4 -6
  483. package/dist/components/layout/sidebar/app-sidebar.d.ts +1 -1
  484. package/dist/components/layout/sidebar/components/sidebar-grouped-navigation.d.ts +1 -1
  485. package/dist/components/layout/sidebar/components/sidebar-navigation-footer.d.ts +1 -1
  486. package/dist/components/layout/sidebar/components/sidebar-navigation.d.ts +1 -1
  487. package/dist/components/layout/sidebar/index.d.ts +1 -1
  488. package/dist/components/layout/sidebar/sidebar-navigation-rail.d.ts +17 -7
  489. package/dist/components/layout/sidebar/sidebar.context.d.ts +1 -0
  490. package/dist/components/layout/sidebar/sidebar.types.d.ts +12 -12
  491. package/dist/components/layout/sidebar/sidebar.utils.d.ts +4 -0
  492. package/dist/components/layout/workspace/workspace.strings.d.ts +2 -2
  493. package/dist/components/layout/workspace/workspace.types.d.ts +13 -7
  494. package/dist/components/primitives/date.d.ts +22 -3
  495. package/dist/components/primitives/file-size.d.ts +8 -2
  496. package/dist/components/primitives/index.d.ts +1 -1
  497. package/dist/components/primitives/initials.d.ts +3 -1
  498. package/dist/components/primitives/link.d.ts +11 -3
  499. package/dist/components/primitives/money.d.ts +2 -2
  500. package/dist/components/primitives/number.d.ts +3 -2
  501. package/dist/components/typography/heading.d.ts +9 -3
  502. package/dist/components/typography/index.d.ts +1 -1
  503. package/dist/components/typography/rich-text/rich-text-tree.d.ts +7 -5
  504. package/dist/components/typography/text-link.d.ts +10 -3
  505. package/dist/components/ui/badge.d.ts +2 -4
  506. package/dist/components/ui/breadcrumb.d.ts +2 -3
  507. package/dist/components/ui/button.d.ts +8 -2
  508. package/dist/components/ui/collapsible.d.ts +1 -4
  509. package/dist/components/ui/command.d.ts +20 -18
  510. package/dist/components/ui/dialog.d.ts +3 -9
  511. package/dist/components/ui/empty.d.ts +2 -2
  512. package/dist/components/ui/input-group.d.ts +3 -3
  513. package/dist/components/ui/item.d.ts +3 -3
  514. package/dist/components/ui/popover.d.ts +3 -7
  515. package/dist/components/ui/sheet.d.ts +4 -12
  516. package/dist/components/ui/sidebar-state.d.ts +6 -1
  517. package/dist/components/ui/sidebar.d.ts +7 -4
  518. package/dist/components/ui/tabs.d.ts +2 -2
  519. package/dist/components/ui/toggle-group.d.ts +3 -3
  520. package/dist/components/ui/toggle.d.ts +2 -2
  521. package/dist/components/ui/tooltip.d.ts +1 -3
  522. package/dist/{containers-CIxwbZt5.js → containers-BdfLTP4w.js} +37 -32
  523. package/dist/containers-BdfLTP4w.js.map +1 -0
  524. package/dist/content-block-hooks-Z3iKjqd1.js +17 -0
  525. package/dist/content-block-hooks-Z3iKjqd1.js.map +1 -0
  526. package/dist/{copyable-DIznBqiT.js → copyable-Bmr14W0d.js} +6 -6
  527. package/dist/{copyable-DIznBqiT.js.map → copyable-Bmr14W0d.js.map} +1 -1
  528. package/dist/{data-display-BdgCAw8T.js → data-display-CWe9SOYh.js} +264 -250
  529. package/dist/data-display-CWe9SOYh.js.map +1 -0
  530. package/dist/date-3qsCE1ID.js +209 -0
  531. package/dist/date-3qsCE1ID.js.map +1 -0
  532. package/dist/date-picker-D1keJQIG.js +1617 -0
  533. package/dist/date-picker-D1keJQIG.js.map +1 -0
  534. package/dist/date-pickers-D8aJoeHc.js +185 -0
  535. package/dist/date-pickers-D8aJoeHc.js.map +1 -0
  536. package/dist/disclosure-panel-B0HFNZ9x.js.map +1 -1
  537. package/dist/{display-KsZLw9Ov.js → display-VlmP1I0i.js} +23 -46
  538. package/dist/display-VlmP1I0i.js.map +1 -0
  539. package/dist/{dropdown-menu-CLs8Lihj.js → dropdown-menu-B8hjvbkS.js} +9 -9
  540. package/dist/{dropdown-menu-CLs8Lihj.js.map → dropdown-menu-B8hjvbkS.js.map} +1 -1
  541. package/dist/dropzone-CHBNK3de.js +116 -0
  542. package/dist/dropzone-CHBNK3de.js.map +1 -0
  543. package/dist/features/activities.js +767 -700
  544. package/dist/features/activities.js.map +1 -1
  545. package/dist/features/ai-chat.js +280 -235
  546. package/dist/features/ai-chat.js.map +1 -1
  547. package/dist/features/appointment-calendar.js +430 -334
  548. package/dist/features/appointment-calendar.js.map +1 -1
  549. package/dist/features/async-preview.js +351 -265
  550. package/dist/features/async-preview.js.map +1 -1
  551. package/dist/features/combobox.js +2 -2
  552. package/dist/features/comments.js +1 -1
  553. package/dist/features/data-view.js +212 -151
  554. package/dist/features/data-view.js.map +1 -1
  555. package/dist/features/email-composer/engine.js +1 -1
  556. package/dist/features/email-composer.js +347 -313
  557. package/dist/features/email-composer.js.map +1 -1
  558. package/dist/features/event-calendar.js +501 -348
  559. package/dist/features/event-calendar.js.map +1 -1
  560. package/dist/features/filters.js +2 -2
  561. package/dist/features/global-search.js +250 -210
  562. package/dist/features/global-search.js.map +1 -1
  563. package/dist/features/kanban.js +280 -210
  564. package/dist/features/kanban.js.map +1 -1
  565. package/dist/features/map/style.css +15 -0
  566. package/dist/features/map.js +435 -404
  567. package/dist/features/map.js.map +1 -1
  568. package/dist/features/media-library.js +1745 -1195
  569. package/dist/features/media-library.js.map +1 -1
  570. package/dist/features/mentions.js +2 -2
  571. package/dist/features/overlays.js +2 -2
  572. package/dist/features/products.js +1862 -1759
  573. package/dist/features/products.js.map +1 -1
  574. package/dist/features/questionnaire.js +188 -168
  575. package/dist/features/questionnaire.js.map +1 -1
  576. package/dist/features/resource-assignment.js +223 -191
  577. package/dist/features/resource-assignment.js.map +1 -1
  578. package/dist/features/resource.js +55 -217
  579. package/dist/features/resource.js.map +1 -1
  580. package/dist/features/rich-text-editor.js +28 -19
  581. package/dist/features/rich-text-editor.js.map +1 -1
  582. package/dist/features/schema-form.js +380 -287
  583. package/dist/features/schema-form.js.map +1 -1
  584. package/dist/features/suggestions.js +90 -74
  585. package/dist/features/suggestions.js.map +1 -1
  586. package/dist/features/table.js +2 -2
  587. package/dist/features/theme-tweaker.js +718 -627
  588. package/dist/features/theme-tweaker.js.map +1 -1
  589. package/dist/feedback-DmqmXKLn.js +254 -0
  590. package/dist/feedback-DmqmXKLn.js.map +1 -0
  591. package/dist/{field-affordance-recipes-DWcNcOjh.js → field-affordance-recipes-DfbMadot.js} +13 -9
  592. package/dist/field-affordance-recipes-DfbMadot.js.map +1 -0
  593. package/dist/field-control-attributes-B6i335wr.js +18 -0
  594. package/dist/field-control-attributes-B6i335wr.js.map +1 -0
  595. package/dist/field-state-recipes-EtCxpEy3.js +18 -0
  596. package/dist/field-state-recipes-EtCxpEy3.js.map +1 -0
  597. package/dist/filters-BviMRMLS.js +2692 -0
  598. package/dist/filters-BviMRMLS.js.map +1 -0
  599. package/dist/{focus-recipes-B653VaLq.js → focus-recipes-DSkiUvUp.js} +3 -3
  600. package/dist/focus-recipes-DSkiUvUp.js.map +1 -0
  601. package/dist/form-field-BdfCwSoQ.js +74 -0
  602. package/dist/form-field-BdfCwSoQ.js.map +1 -0
  603. package/dist/{form-sizing-Bs2qFUeE.js → form-sizing-DE_dZw32.js} +3 -3
  604. package/dist/{form-sizing-Bs2qFUeE.js.map → form-sizing-DE_dZw32.js.map} +1 -1
  605. package/dist/{forms-C0RGnJTe.js → forms-B8DzJnBN.js} +35 -35
  606. package/dist/forms-B8DzJnBN.js.map +1 -0
  607. package/dist/forms-numeric-DOBswjKj.js +992 -0
  608. package/dist/forms-numeric-DOBswjKj.js.map +1 -0
  609. package/dist/{header-DMMxG__r.js → header-Cq3G0ZRP.js} +163 -158
  610. package/dist/header-Cq3G0ZRP.js.map +1 -0
  611. package/dist/hooks/use-files.d.ts +2 -0
  612. package/dist/{hooks-DB6CJ4MR.js → hooks-DHfeSMAO.js} +34 -14
  613. package/dist/hooks-DHfeSMAO.js.map +1 -0
  614. package/dist/{http-D_6rOnzU.js → http-Cu-GPpss.js} +61 -35
  615. package/dist/http-Cu-GPpss.js.map +1 -0
  616. package/dist/{icon-badge-DZF-YjQp.js → icon-badge-B0Kq7wom.js} +3 -3
  617. package/dist/{icon-badge-DZF-YjQp.js.map → icon-badge-B0Kq7wom.js.map} +1 -1
  618. package/dist/index.js +6 -6
  619. package/dist/inline-gutter-context-CSqmrMFZ.js +11 -0
  620. package/dist/inline-gutter-context-CSqmrMFZ.js.map +1 -0
  621. package/dist/{input-DMBwAZmr.js → input-2YrgTUrz.js} +3 -3
  622. package/dist/{input-DMBwAZmr.js.map → input-2YrgTUrz.js.map} +1 -1
  623. package/dist/{input-CvyDQlY7.js → input-DfJyrjoR.js} +7 -7
  624. package/dist/{input-CvyDQlY7.js.map → input-DfJyrjoR.js.map} +1 -1
  625. package/dist/{interaction-recipes-XR9ZpVYL.js → interaction-recipes-DmuS1ase.js} +2 -2
  626. package/dist/{interaction-recipes-XR9ZpVYL.js.map → interaction-recipes-DmuS1ase.js.map} +1 -1
  627. package/dist/item-GJ9mvCcg.js +279 -0
  628. package/dist/item-GJ9mvCcg.js.map +1 -0
  629. package/dist/layout/app-shell.js +1 -1
  630. package/dist/layout/auth.js +1 -1
  631. package/dist/layout/containers.js +1 -1
  632. package/dist/layout/header.js +1 -1
  633. package/dist/layout/hooks.js +1 -1
  634. package/dist/layout/navigation.js +1 -1
  635. package/dist/layout/page.js +2 -2
  636. package/dist/layout/settings.js +2 -2
  637. package/dist/layout/sidebar.js +3 -3
  638. package/dist/layout/workspace.js +1 -1
  639. package/dist/layout.js +12 -12
  640. package/dist/layout.types-DbtnyAtd.js +33 -0
  641. package/dist/layout.types-DbtnyAtd.js.map +1 -0
  642. package/dist/lib/anchored-positioning.d.ts +11 -0
  643. package/dist/lib/field-affordance-recipes.d.ts +10 -0
  644. package/dist/lib/field-control-attributes.d.ts +11 -0
  645. package/dist/lib/field-state-recipes.d.ts +8 -0
  646. package/dist/lib/focus-recipes.d.ts +7 -0
  647. package/dist/lib/format.d.ts +26 -0
  648. package/dist/lib/money-format.d.ts +6 -0
  649. package/dist/lib/motion-recipes.d.ts +6 -0
  650. package/dist/lib/surface-recipes.d.ts +33 -3
  651. package/dist/lib/theme-scope.d.ts +17 -1
  652. package/dist/lib/token-merge.generated.d.ts +19 -25
  653. package/dist/lib/ui-provider/index.d.ts +1 -1
  654. package/dist/lib/ui-provider/types.d.ts +5 -0
  655. package/dist/lib/use-controllable-state.d.ts +16 -0
  656. package/dist/lib/use-copy-feedback.d.ts +15 -0
  657. package/dist/lib/utils.js +1 -1
  658. package/dist/lib/variant-props.d.ts +9 -0
  659. package/dist/main-landmark-context-BAsyqp2I.js +11 -0
  660. package/dist/main-landmark-context-BAsyqp2I.js.map +1 -0
  661. package/dist/mentions-zz0ewNIq.js +670 -0
  662. package/dist/mentions-zz0ewNIq.js.map +1 -0
  663. package/dist/message-BiiVrRrm.js +138 -0
  664. package/dist/message-BiiVrRrm.js.map +1 -0
  665. package/dist/{metadata-list-C3MkU-Om.js → metadata-list-G85roWjS.js} +13 -12
  666. package/dist/metadata-list-G85roWjS.js.map +1 -0
  667. package/dist/{motion-recipes-DitYv6P2.js → motion-recipes-CUc_aHuG.js} +7 -4
  668. package/dist/motion-recipes-CUc_aHuG.js.map +1 -0
  669. package/dist/navigation-C0Be5C3i.js +304 -0
  670. package/dist/navigation-C0Be5C3i.js.map +1 -0
  671. package/dist/navigation-CmqaQR_G.js +257 -0
  672. package/dist/navigation-CmqaQR_G.js.map +1 -0
  673. package/dist/normalize-layout-path-BmEgg6fu.js +14 -0
  674. package/dist/normalize-layout-path-BmEgg6fu.js.map +1 -0
  675. package/dist/number-NFWKIoiK.js +340 -0
  676. package/dist/number-NFWKIoiK.js.map +1 -0
  677. package/dist/{overflow-tab-bar-IVFVQFV6.js → overflow-tab-bar-DV7HE_3t.js} +8 -8
  678. package/dist/{overflow-tab-bar-IVFVQFV6.js.map → overflow-tab-bar-DV7HE_3t.js.map} +1 -1
  679. package/dist/{overlays-BSgCtM2v.js → overlays-D-gAIfPF.js} +369 -364
  680. package/dist/overlays-D-gAIfPF.js.map +1 -0
  681. package/dist/page-D4pQhgSq.js +216 -0
  682. package/dist/page-D4pQhgSq.js.map +1 -0
  683. package/dist/{page-header-commands-7P3sfE9u.js → page-header-commands-elelNOfd.js} +29 -29
  684. package/dist/{page-header-commands-7P3sfE9u.js.map → page-header-commands-elelNOfd.js.map} +1 -1
  685. package/dist/{pagination-CgCjElfu.js → pagination-BuSWw1US.js} +22 -23
  686. package/dist/pagination-BuSWw1US.js.map +1 -0
  687. package/dist/popover-BpMxbqEK.js +205 -0
  688. package/dist/popover-BpMxbqEK.js.map +1 -0
  689. package/dist/{popover-menu-DlnQ2zlR.js → popover-menu-CO-_iiuz.js} +7 -7
  690. package/dist/{popover-menu-DlnQ2zlR.js.map → popover-menu-CO-_iiuz.js.map} +1 -1
  691. package/dist/{popover.recipes-DdiEp0rd.js → popover.recipes-BqkdvlZn.js} +3 -4
  692. package/dist/{popover.recipes-DdiEp0rd.js.map → popover.recipes-BqkdvlZn.js.map} +1 -1
  693. package/dist/{portal-recipes-BpsV_iRw.js → portal-recipes-BPeS4rGB.js} +2 -2
  694. package/dist/{portal-recipes-BpsV_iRw.js.map → portal-recipes-BPeS4rGB.js.map} +1 -1
  695. package/dist/primitives-BlC1lXBr.js +447 -0
  696. package/dist/primitives-BlC1lXBr.js.map +1 -0
  697. package/dist/primitives.js +4 -4
  698. package/dist/{progress-BJhQP9WX.js → progress-RARK8AjB.js} +5 -5
  699. package/dist/{progress-BJhQP9WX.js.map → progress-RARK8AjB.js.map} +1 -1
  700. package/dist/receipt-CUf2Vegp.js +114 -0
  701. package/dist/receipt-CUf2Vegp.js.map +1 -0
  702. package/dist/rich-text-Cypm9__d.js +44 -0
  703. package/dist/rich-text-Cypm9__d.js.map +1 -0
  704. package/dist/rich-text-editor-Z6cQepsA.js +919 -0
  705. package/dist/rich-text-editor-Z6cQepsA.js.map +1 -0
  706. package/dist/rich-text-editor-toolbar-DYbRJARB.js +100 -0
  707. package/dist/rich-text-editor-toolbar-DYbRJARB.js.map +1 -0
  708. package/dist/rich-text-tree-DdKHIJx4.js +154 -0
  709. package/dist/rich-text-tree-DdKHIJx4.js.map +1 -0
  710. package/dist/{scroll-area-B0dB2cBi.js → scroll-area-B9HKbji0.js} +3 -3
  711. package/dist/{scroll-area-B0dB2cBi.js.map → scroll-area-B9HKbji0.js.map} +1 -1
  712. package/dist/{separator-Ct_WSWTJ.js → separator-DaDe26sf.js} +3 -3
  713. package/dist/separator-DaDe26sf.js.map +1 -0
  714. package/dist/{separator-Bb17I4pu.js → separator-KGsNXt2J.js} +2 -2
  715. package/dist/{separator-Bb17I4pu.js.map → separator-KGsNXt2J.js.map} +1 -1
  716. package/dist/services/actions/action-adapters.d.ts +5 -2
  717. package/dist/services/actions/index.d.ts +1 -1
  718. package/dist/services/actions.js +2 -2
  719. package/dist/services/actions.js.map +1 -1
  720. package/dist/settings-D5j_RJvT.js +160 -0
  721. package/dist/settings-D5j_RJvT.js.map +1 -0
  722. package/dist/sheet-B6j_BE9O.js +241 -0
  723. package/dist/sheet-B6j_BE9O.js.map +1 -0
  724. package/dist/{sidebar-f9gRWXIR.js → sidebar-C-iQ_TJP.js} +379 -350
  725. package/dist/sidebar-C-iQ_TJP.js.map +1 -0
  726. package/dist/sidebar-D5VO2W8S.js +715 -0
  727. package/dist/sidebar-D5VO2W8S.js.map +1 -0
  728. package/dist/{skeleton-BapcJd9C.js → skeleton-Cab_KgVo.js} +13 -13
  729. package/dist/skeleton-Cab_KgVo.js.map +1 -0
  730. package/dist/{smart-card-CW0hjetE.js → smart-card-C59z6KFO.js} +217 -210
  731. package/dist/smart-card-C59z6KFO.js.map +1 -0
  732. package/dist/{structure-DuxKl954.js → structure-DElaQwwN.js} +2 -2
  733. package/dist/{structure-DuxKl954.js.map → structure-DElaQwwN.js.map} +1 -1
  734. package/dist/style.css +1 -1
  735. package/dist/{surface-recipes-BKRVW8Os.js → surface-recipes-DV6rrOFq.js} +11 -3
  736. package/dist/surface-recipes-DV6rrOFq.js.map +1 -0
  737. package/dist/table-CSRUgpdK.js +180 -0
  738. package/dist/table-CSRUgpdK.js.map +1 -0
  739. package/dist/table-DdXDBsR_.js +1657 -0
  740. package/dist/table-DdXDBsR_.js.map +1 -0
  741. package/dist/tabs-WnHfV2pM.js +192 -0
  742. package/dist/tabs-WnHfV2pM.js.map +1 -0
  743. package/dist/{text-inputs-B1culiSK.js → text-inputs-ljyBYaCd.js} +112 -112
  744. package/dist/text-inputs-ljyBYaCd.js.map +1 -0
  745. package/dist/theme.css +21 -5
  746. package/dist/timelines-mOmS9Eh3.js +479 -0
  747. package/dist/timelines-mOmS9Eh3.js.map +1 -0
  748. package/dist/tooltip-yjX-Uv-p.js +112 -0
  749. package/dist/tooltip-yjX-Uv-p.js.map +1 -0
  750. package/dist/{tree-CzUJHnFs.js → tree-YpkxUG2Z.js} +80 -72
  751. package/dist/tree-YpkxUG2Z.js.map +1 -0
  752. package/dist/typography/rich-text.js +1 -1
  753. package/dist/{typography-BQnine1k.js → typography-C0dELqYV.js} +46 -40
  754. package/dist/typography-C0dELqYV.js.map +1 -0
  755. package/dist/typography.js +1 -1
  756. package/dist/{ui-provider-C-74NVLc.js → ui-provider-Bu1S-o96.js} +4 -3
  757. package/dist/ui-provider-Bu1S-o96.js.map +1 -0
  758. package/dist/ui-provider.js +2 -2
  759. package/dist/upload-DMuMYJFT.js +875 -0
  760. package/dist/upload-DMuMYJFT.js.map +1 -0
  761. package/dist/{usage-card-BeSLY0i0.js → usage-card-DDPki5P1.js} +57 -54
  762. package/dist/usage-card-DDPki5P1.js.map +1 -0
  763. package/dist/use-controllable-state-BlP8SyBI.js +13 -0
  764. package/dist/use-controllable-state-BlP8SyBI.js.map +1 -0
  765. package/dist/use-copy-feedback-CzcaqlLf.js +28 -0
  766. package/dist/use-copy-feedback-CzcaqlLf.js.map +1 -0
  767. package/dist/use-metric-format-options-Dk4rC1NO.js +251 -0
  768. package/dist/use-metric-format-options-Dk4rC1NO.js.map +1 -0
  769. package/dist/{utils-B6kKb8jB.js → utils-BVbAG2J6.js} +128 -112
  770. package/dist/utils-BVbAG2J6.js.map +1 -0
  771. package/dist/value-inputs-h5MwjGCo.js +982 -0
  772. package/dist/value-inputs-h5MwjGCo.js.map +1 -0
  773. package/dist/value-typography-D15uwfj-.js +154 -0
  774. package/dist/value-typography-D15uwfj-.js.map +1 -0
  775. package/dist/workspace-DIryPqBt.js +400 -0
  776. package/dist/workspace-DIryPqBt.js.map +1 -0
  777. package/docs/consumer-skill/SKILL.md +7 -0
  778. package/docs/consumer-skill/agents/themelia-ui-designer.md +11 -2
  779. package/docs/consumer-skill/examples/analytics.tsx +1 -1
  780. package/docs/consumer-skill/examples/app-layout.tsx +3 -3
  781. package/docs/consumer-skill/examples/commerce-lines.tsx +7 -5
  782. package/docs/consumer-skill/examples/detail.tsx +3 -2
  783. package/docs/consumer-skill/examples/edit.tsx +3 -3
  784. package/docs/consumer-skill/examples/email-composer.tsx +1 -1
  785. package/docs/consumer-skill/examples/index-table.tsx +2 -2
  786. package/docs/consumer-skill/examples/scoped-directory.tsx +7 -6
  787. package/docs/consumer-skill/references/agents-md.md +27 -23
  788. package/docs/consumer-skill/references/analytics.md +33 -4
  789. package/docs/consumer-skill/references/building-views.md +213 -0
  790. package/docs/consumer-skill/references/catalogue.md +617 -0
  791. package/docs/consumer-skill/references/component-contracts.json +25852 -32067
  792. package/docs/consumer-skill/references/composition.md +42 -21
  793. package/docs/consumer-skill/references/design-contract.md +1 -0
  794. package/docs/consumer-skill/references/discovery.md +8 -5
  795. package/docs/consumer-skill/references/installation.md +59 -10
  796. package/docs/consumer-skill/references/integration.md +28 -5
  797. package/docs/consumer-skill/references/product-composition.md +2 -2
  798. package/docs/consumer-skill/references/public-api.json +726 -641
  799. package/docs/consumer-skill/references/review.md +57 -15
  800. package/docs/consumer-skill/references/rhf-workflows.md +72 -0
  801. package/docs/consumer-skill/references/screen-archetypes.md +2 -2
  802. package/docs/consumer-skill/references/theming.md +8 -3
  803. package/docs/consumer-skill/references/tokens.json +4 -4
  804. package/docs/consumer-skill/references/workflows.md +7 -7
  805. package/docs/consumer-skill/scripts/composition-policy.mjs +178 -44
  806. package/docs/consumer-skill/scripts/composition.mjs +4 -1
  807. package/docs/consumer-skill/scripts/discovery.mjs +3 -1
  808. package/docs/consumer-skill/scripts/setup-skills.mjs +74 -10
  809. package/docs/consumer-skills/themelia-components/SKILL.md +8 -4
  810. package/docs/consumer-skills/themelia-composition/SKILL.md +7 -3
  811. package/docs/consumer-skills/themelia-design/SKILL.md +7 -1
  812. package/docs/consumer-skills/themelia-tokenization/SKILL.md +1 -1
  813. package/package.json +12 -13
  814. package/templates/README.md +3 -2
  815. package/templates/admin-shell-template.tsx +50 -11
  816. package/templates/analytics-operations-template.tsx +20 -24
  817. package/templates/customers-template.tsx +30 -25
  818. package/templates/index.ts +2 -8
  819. package/templates/orders-template.tsx +28 -24
  820. package/templates/products-template.tsx +14 -4
  821. package/templates/user-permissions-template.tsx +11 -14
  822. package/dist/accordion-B9MHG0cT.js.map +0 -1
  823. package/dist/action-menu-Dr8K-ghE.js +0 -284
  824. package/dist/action-menu-Dr8K-ghE.js.map +0 -1
  825. package/dist/ai-artifact-C58tQcBy.js +0 -1185
  826. package/dist/ai-artifact-C58tQcBy.js.map +0 -1
  827. package/dist/anchored-positioning-DPnKTvNs.js +0 -6
  828. package/dist/anchored-positioning-DPnKTvNs.js.map +0 -1
  829. package/dist/app-shell-B_IuNWOo.js +0 -321
  830. package/dist/app-shell-B_IuNWOo.js.map +0 -1
  831. package/dist/auth-DTkkshS8.js.map +0 -1
  832. package/dist/badge-xIiV_E7f.js.map +0 -1
  833. package/dist/base/sheet.js +0 -3
  834. package/dist/breadcrumbs-J-K2kl4c.js +0 -129
  835. package/dist/breadcrumbs-J-K2kl4c.js.map +0 -1
  836. package/dist/button-S2Cubiiz.js.map +0 -1
  837. package/dist/buttons-BedGfygC.js.map +0 -1
  838. package/dist/cascader-B1MiqkBq.js +0 -439
  839. package/dist/cascader-B1MiqkBq.js.map +0 -1
  840. package/dist/choice-inputs-zUgBZfE4.js.map +0 -1
  841. package/dist/code-block-BzmM9Eig.js.map +0 -1
  842. package/dist/collapsible-BkAI_XD4.js +0 -81
  843. package/dist/collapsible-BkAI_XD4.js.map +0 -1
  844. package/dist/combobox-BEx0vJgF.js +0 -362
  845. package/dist/combobox-BEx0vJgF.js.map +0 -1
  846. package/dist/combobox-BwzoXFSG.js +0 -884
  847. package/dist/combobox-BwzoXFSG.js.map +0 -1
  848. package/dist/command-CrlPIL6m.js +0 -425
  849. package/dist/command-CrlPIL6m.js.map +0 -1
  850. package/dist/comments-Dmpp0YIc.js +0 -1169
  851. package/dist/comments-Dmpp0YIc.js.map +0 -1
  852. package/dist/components/base/buttons/tooltip-button.d.ts +0 -7
  853. package/dist/components/base/display/content-block.d.ts +0 -75
  854. package/dist/components/base/display/content-block.strings.d.ts +0 -5
  855. package/dist/components/base/sheet/index.d.ts +0 -29
  856. package/dist/components/blocks/ai/use-copy-feedback.d.ts +0 -6
  857. package/dist/components/blocks/data-display/metadata/index.d.ts +0 -30
  858. package/dist/components/features/mentions/utils/split-html-by-mentions.d.ts +0 -16
  859. package/dist/components/features/resource/resource.strings.d.ts +0 -12
  860. package/dist/components/features/rich-text-editor/partials/rich-text-editor-fallback.d.ts +0 -8
  861. package/dist/components/features/sync/index.d.ts +0 -26
  862. package/dist/components/features/sync/sync-range-dialog-form.d.ts +0 -5
  863. package/dist/components/features/sync/sync.strings.d.ts +0 -18
  864. package/dist/components/features/sync/sync.types.d.ts +0 -44
  865. package/dist/components/layout/page/partials/page-actions.d.ts +0 -3
  866. package/dist/components/ui/slot.d.ts +0 -6
  867. package/dist/containers-CIxwbZt5.js.map +0 -1
  868. package/dist/data-display-BdgCAw8T.js.map +0 -1
  869. package/dist/date-Cq8ioE4o.js +0 -144
  870. package/dist/date-Cq8ioE4o.js.map +0 -1
  871. package/dist/date-picker-RlIzKom_.js +0 -1551
  872. package/dist/date-picker-RlIzKom_.js.map +0 -1
  873. package/dist/date-pickers-DY-CpXS1.js +0 -179
  874. package/dist/date-pickers-DY-CpXS1.js.map +0 -1
  875. package/dist/display-KsZLw9Ov.js.map +0 -1
  876. package/dist/features/sync.js +0 -142
  877. package/dist/features/sync.js.map +0 -1
  878. package/dist/feedback-Dm4izqFn.js +0 -240
  879. package/dist/feedback-Dm4izqFn.js.map +0 -1
  880. package/dist/field-affordance-recipes-DWcNcOjh.js.map +0 -1
  881. package/dist/field-state-recipes-BVA2CWHo.js +0 -12
  882. package/dist/field-state-recipes-BVA2CWHo.js.map +0 -1
  883. package/dist/filters-DzgSJpMK.js +0 -2257
  884. package/dist/filters-DzgSJpMK.js.map +0 -1
  885. package/dist/focus-recipes-B653VaLq.js.map +0 -1
  886. package/dist/form-field-BriWAXyg.js +0 -63
  887. package/dist/form-field-BriWAXyg.js.map +0 -1
  888. package/dist/forms-C0RGnJTe.js.map +0 -1
  889. package/dist/forms-numeric-DIhghX1Q.js +0 -910
  890. package/dist/forms-numeric-DIhghX1Q.js.map +0 -1
  891. package/dist/header-DMMxG__r.js.map +0 -1
  892. package/dist/hooks-DB6CJ4MR.js.map +0 -1
  893. package/dist/http-D_6rOnzU.js.map +0 -1
  894. package/dist/item-DjCcM18E.js +0 -277
  895. package/dist/item-DjCcM18E.js.map +0 -1
  896. package/dist/layout.types-Cn7aUzJp.js +0 -20
  897. package/dist/layout.types-Cn7aUzJp.js.map +0 -1
  898. package/dist/media-gallery-C-vChPmE.js +0 -203
  899. package/dist/media-gallery-C-vChPmE.js.map +0 -1
  900. package/dist/mentions-0_4nWuI-.js +0 -570
  901. package/dist/mentions-0_4nWuI-.js.map +0 -1
  902. package/dist/message-g8p7eVtN.js +0 -128
  903. package/dist/message-g8p7eVtN.js.map +0 -1
  904. package/dist/metadata-list-C3MkU-Om.js.map +0 -1
  905. package/dist/motion-recipes-DitYv6P2.js.map +0 -1
  906. package/dist/navigation-C90-oQFq.js +0 -255
  907. package/dist/navigation-C90-oQFq.js.map +0 -1
  908. package/dist/navigation-DaRjthVk.js +0 -288
  909. package/dist/navigation-DaRjthVk.js.map +0 -1
  910. package/dist/number-CRU3kGuk.js +0 -354
  911. package/dist/number-CRU3kGuk.js.map +0 -1
  912. package/dist/overlays-BSgCtM2v.js.map +0 -1
  913. package/dist/page-DUUKDAjo.js +0 -331
  914. package/dist/page-DUUKDAjo.js.map +0 -1
  915. package/dist/pagination-CgCjElfu.js.map +0 -1
  916. package/dist/popover-B85RenIl.js +0 -201
  917. package/dist/popover-B85RenIl.js.map +0 -1
  918. package/dist/primitives-ByWgGUgt.js +0 -380
  919. package/dist/primitives-ByWgGUgt.js.map +0 -1
  920. package/dist/receipt-tOc7B3hw.js +0 -116
  921. package/dist/receipt-tOc7B3hw.js.map +0 -1
  922. package/dist/rich-text-Dth5E882.js +0 -78
  923. package/dist/rich-text-Dth5E882.js.map +0 -1
  924. package/dist/rich-text-editor-C1fOjBTd.js +0 -1195
  925. package/dist/rich-text-editor-C1fOjBTd.js.map +0 -1
  926. package/dist/rich-text-editor-toolbar-laT3tpBT.js +0 -98
  927. package/dist/rich-text-editor-toolbar-laT3tpBT.js.map +0 -1
  928. package/dist/sanitize-html-DsQmI48u.js +0 -92
  929. package/dist/sanitize-html-DsQmI48u.js.map +0 -1
  930. package/dist/separator-Ct_WSWTJ.js.map +0 -1
  931. package/dist/settings-Bar5wiSo.js +0 -167
  932. package/dist/settings-Bar5wiSo.js.map +0 -1
  933. package/dist/sheet-BGPERY55.js +0 -250
  934. package/dist/sheet-BGPERY55.js.map +0 -1
  935. package/dist/sidebar-D-JYMMbY.js +0 -686
  936. package/dist/sidebar-D-JYMMbY.js.map +0 -1
  937. package/dist/sidebar-f9gRWXIR.js.map +0 -1
  938. package/dist/skeleton-BapcJd9C.js.map +0 -1
  939. package/dist/slot-CLF9kLrS.js +0 -16
  940. package/dist/slot-CLF9kLrS.js.map +0 -1
  941. package/dist/smart-card-CW0hjetE.js.map +0 -1
  942. package/dist/surface-recipes-BKRVW8Os.js.map +0 -1
  943. package/dist/table-B4TE7iOV.js +0 -175
  944. package/dist/table-B4TE7iOV.js.map +0 -1
  945. package/dist/table-CFOWY9pQ.js +0 -1536
  946. package/dist/table-CFOWY9pQ.js.map +0 -1
  947. package/dist/tabs-e7ko9S2o.js +0 -191
  948. package/dist/tabs-e7ko9S2o.js.map +0 -1
  949. package/dist/text-inputs-B1culiSK.js.map +0 -1
  950. package/dist/timelines-D3Sl9ueq.js +0 -458
  951. package/dist/timelines-D3Sl9ueq.js.map +0 -1
  952. package/dist/tooltip-8wz5S_Zr.js +0 -113
  953. package/dist/tooltip-8wz5S_Zr.js.map +0 -1
  954. package/dist/tree-CzUJHnFs.js.map +0 -1
  955. package/dist/typography-BQnine1k.js.map +0 -1
  956. package/dist/ui-provider-C-74NVLc.js.map +0 -1
  957. package/dist/upload-BOW6U2tI.js +0 -855
  958. package/dist/upload-BOW6U2tI.js.map +0 -1
  959. package/dist/upload-queue-qUXn1ykN.js +0 -409
  960. package/dist/upload-queue-qUXn1ykN.js.map +0 -1
  961. package/dist/usage-card-BeSLY0i0.js.map +0 -1
  962. package/dist/utils-B6kKb8jB.js.map +0 -1
  963. package/dist/value-inputs-skdVB2zh.js +0 -980
  964. package/dist/value-inputs-skdVB2zh.js.map +0 -1
  965. package/dist/value-typography-uAmWUAL1.js +0 -116
  966. package/dist/value-typography-uAmWUAL1.js.map +0 -1
  967. package/dist/workspace-DHeHv0qw.js +0 -411
  968. package/dist/workspace-DHeHv0qw.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"overlays-BSgCtM2v.js","names":["Dialog","DialogPrimitive","DialogTrigger","DialogClose","DialogContent","Button","DialogHeader","DialogFooter","DialogTitle","DialogDescription","isSimpleText","titleTypography","Dialog","DialogPrimitive","React","DialogTriggerPrimitive","DialogClosePrimitive","DialogContentPrimitive","DialogHeaderPrimitive","DialogFooterPrimitive","DialogTitlePrimitive","DialogDescriptionPrimitive","BaseDialog","AlertDialog","AlertDialogPrimitive","AlertDialogTrigger","AlertDialogContent","AlertDialogFooter","AlertDialogMedia","AlertDialogTitle","AlertDialogDescription","AlertDialogAction","Button","AlertDialogCancel","AlertDialog","AlertDialogPrimitive","React","AlertDialogTriggerPrimitive","AlertDialogContentPrimitive","AlertDialogFooterPrimitive","AlertDialogTitlePrimitive","AlertDialogDescriptionPrimitive","AlertDialogMediaPrimitive","AlertDialogActionPrimitive","AlertDialogCancelPrimitive","BaseAlertDialog","useOverlayConfig","useThemePortalContainer","cn","SheetDescription","SheetTitle","useInsideOverlayLayer","useOpenerFinalFocus","SheetContent","SheetBody","SheetFooter","overlayAnatomyRecipes","SheetClose","SheetHeader","Sheet","OverlayLayer","Button","Text","textWeights","textLineHeights","textSizes","portalClassName","motionRecipes","Slot","Button$1","Stack","toneRecipes","AlertDescription","Alert","surfaceDividerRecipes","modalRegionRecipes","compositionRhythm","modalBackdropRecipe","usePopupFocusRecovery","interactionRecipes","React$1","Dialog$2","props","Dialog","DialogTrigger$1","renderSlot","asChild","DialogPortal","resolvedContainer","container","className","DialogClose$1","DialogOverlay","DialogContent$1","finalFocusProp","recoverFocus","onFocusCapture","insideOverlay","capture","showCloseButton","XIcon","DialogHeader$1","DialogFooter$1","children","DialogTitle$1","DialogDescription$1","isSimpleText$1","value","titleTypography$1","Dialog$1","DialogTrigger","DialogClose","DialogContent","DialogHeader","textGap","DialogBody","DialogFooter","DialogTitle","DialogDescription","defaultOverlayStrings","defaultAlertDialogStrings","useOverlayActions","strings","useStrings","customStrings","isExecuting","setIsExecuting","useState","executingRef","useRef","handleConfirm","useCallback","onConfirm","closeDialog","onAsyncConfirm","closeOnAsyncComplete","error","onError","loading","handleCancel","onCancel","handleFormSubmit","formId","form","useMemo","emphasis","tone","confirmTone","resolveOpenValue","nextOpen","currentOpen","normalizeGroupState","result","key","keys","state","hasGroupStateChanged","previous","next","useOverlayVisibility","controlledOpen","internalOpen","setInternalOpen","defaultOpen","isControlled","open","openRef","setOpen","resolvedOpen","changed","onOpenChange","onOpen","onClose","useOverlayVisibilityGroup","keyList","stateRef","setKeyOpen","previousState","nextState","closeOthersOnOpen","item","usePendingOverlayFocus","popupRef","useLayoutEffect","popup","pending","modal","active","overlayToneGlyphs","HelpCircle","AlertCircle","AlertTriangle","Info","CheckCircle","OverlayToneIcon","Glyph","color","SIZE_CLASSES","ActionDialogImpl","centered","align","defaultDialogAlign","visibility","pendingFocusRef","effectiveLoading","hasContent","alertMessage","hasFooter","showCancel","showConfirm","footer","closeOnBackdropClick","details","closeOnEscape","trigger","isValidElement","surfaceStyle","initialFocusRef","title","size","description","visuallyHideHeader","showIcon","contentClassName","finalConfirmTone","confirmStyle","confirmButtonOnClick","X","ActionDialog","memo","WIDTH_CLASSES","ActionDrawerImpl","isHorizontal","direction","showFooter","SheetTrigger","width","ActionDrawer","AlertDialog$2","AlertDialog","AlertDialogTrigger$1","AlertDialogPortal","AlertDialogOverlay","AlertDialogContent$1","AlertDialogFooter$1","AlertDialogMedia$1","AlertDialogTitle$1","AlertDialogDescription$1","AlertDialogAction$1","AlertDialogCancel$1","isSimpleText","titleTypography","AlertDialog$1","AlertDialogTrigger","AlertDialogContent","AlertDialogHeader","AlertDialogBody","AlertDialogFooter","AlertDialogTitle","AlertDialogDescription","AlertDialogMedia","AlertDialogAction","AlertDialogCancel","ConfirmDialogImpl","resolvedAlign","defaultConfirmAlign","mergedStrings","resolvedConfirmTone","destructive","resolvedTone","toneGlyph","hasHeading","ConfirmDialog"],"sources":["../src/components/ui/dialog.tsx","../src/components/base/display/dialog.tsx","../src/components/features/overlays/overlays.strings.ts","../src/components/features/overlays/hooks/use-overlay-actions.ts","../src/components/features/overlays/hooks/use-overlay-visibility.ts","../src/components/features/overlays/hooks/use-pending-overlay-focus.ts","../src/components/features/overlays/overlay-tone-icon.tsx","../src/components/features/overlays/dialog.tsx","../src/components/features/overlays/drawer.tsx","../src/components/ui/alert-dialog.tsx","../src/components/base/display/alert-dialog.tsx","../src/components/features/overlays/alert-dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport { overlayAnatomyRecipes } from '../../lib/overlay-anatomy-recipes';\nimport { motionRecipes } from '../../lib/motion-recipes';\nimport { portalClassName } from '../../lib/portal-recipes';\nimport { modalBackdropRecipe } from './overlay.recipes';\nimport { OverlayLayer, useInsideOverlayLayer, useOpenerFinalFocus } from './overlay-layer';\nimport { usePopupFocusRecovery } from '../../lib/use-popup-focus-recovery';\n\nimport { useThemePortalContainer, type ThemePortalContainer } from '../../lib/theme-scope';\n\nimport { Dialog as DialogPrimitive } from \"@base-ui/react/dialog\"\nimport { XIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { Button } from \"./button\"\nimport { Slot } from \"./slot\"\nimport { cn } from \"../../lib/utils\"\n\nfunction Dialog({ ...props }: DialogPrimitive.Root.Props) {\n return <DialogPrimitive.Root data-slot=\"dialog\" modal=\"trap-focus\" {...props} />\n}\n\nfunction DialogTrigger({\n asChild = false,\n ...props\n}: DialogPrimitive.Trigger.Props & { asChild?: boolean }) {\n const renderSlot = asChild ? <Slot /> : undefined\n\n return (\n <DialogPrimitive.Trigger\n data-slot=\"dialog-trigger\"\n render={renderSlot}\n {...props}\n />\n )\n}\n\nfunction DialogPortal({ container, className, ...props }: DialogPrimitive.Portal.Props) {\n const resolvedContainer = useThemePortalContainer(container)\n return <DialogPrimitive.Portal container={resolvedContainer} data-slot=\"dialog-portal\" className={portalClassName(className)} {...props} />\n}\n\nfunction DialogClose({ ...props }: DialogPrimitive.Close.Props) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: DialogPrimitive.Backdrop.Props) {\n return (\n <DialogPrimitive.Backdrop\n data-slot=\"dialog-overlay\"\n className={cn(modalBackdropRecipe, motionRecipes.backdrop, \"isolate\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n container,\n children,\n showCloseButton = true,\n onFocusCapture,\n finalFocus: finalFocusProp,\n ...props\n}: DialogPrimitive.Popup.Props & {\n showCloseButton?: boolean\n} & { container?: ThemePortalContainer }) {\n const resolvedContainer = useThemePortalContainer(container)\n const recoverFocus = usePopupFocusRecovery(onFocusCapture)\n const insideOverlay = useInsideOverlayLayer()\n const { capture, finalFocus } = useOpenerFinalFocus(finalFocusProp)\n return (\n <DialogPortal container={resolvedContainer}>\n <DialogOverlay forceRender={!insideOverlay} />\n <DialogPrimitive.Popup\n data-slot=\"dialog-content\"\n className={cn(\n motionRecipes.dialog,\n \"bg-background grid max-w-[calc(100%-2rem)] gap-space-xl rounded-surface p-surface text-sm sm:max-w-md fixed top-1/2 left-1/2 z-50 w-full -translate-x-1/2 -translate-y-1/2 outline-none\",\n className\n )}\n {...props}\n finalFocus={finalFocus}\n onFocusCapture={recoverFocus}\n >\n {capture}\n <OverlayLayer>{children}</OverlayLayer>\n {!!showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n render={\n <Button\n variant=\"ghost\"\n data-overlay-close=\"\"\n className={overlayAnatomyRecipes.close}\n size=\"icon-sm\"\n />\n }\n >\n <XIcon\n />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Popup>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogFooter({\n className,\n showCloseButton = false,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showCloseButton?: boolean\n}) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n >\n {children}\n {!!showCloseButton && (\n <DialogPrimitive.Close render={<Button variant=\"outline\" />}>\n Close\n </DialogPrimitive.Close>\n )}\n </div>\n )\n}\n\nfunction DialogTitle({\n className,\n asChild = false,\n ...props\n}: DialogPrimitive.Title.Props & { asChild?: boolean }) {\n const renderSlot = asChild ? <Slot /> : undefined\n\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n render={renderSlot}\n className={cn(\"leading-none font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogDescription({\n className,\n asChild = false,\n ...props\n}: DialogPrimitive.Description.Props & { asChild?: boolean }) {\n const renderSlot = asChild ? <Slot /> : undefined\n\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n render={renderSlot}\n className={cn(\"text-muted-foreground *:[a]:hover:text-foreground text-sm *:[a]:underline *:[a]:underline-offset-3\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n","import { modalRegionRecipes, surfaceDividerRecipes } from '../../../lib/surface-recipes';\nimport { overlayAnatomyRecipes } from '../../../lib/overlay-anatomy-recipes';\nimport type { TextGap } from '../structure';\n/**\n * Dialog — internal modal anatomy behind `ActionDialog`.\n *\n * Not published from any entrypoint: applications use `ActionDialog` (or\n * `ConfirmDialog`) from `themelia-react-ui/features/overlays`, which owns the\n * lifecycle, focus, dismissal and action contract. This wrapper supplies the\n * modal geometry those features share: one framed popover surface whose\n * header, scrolling body and footer each own their inset, with exactly one rule\n * between adjacent visible regions (`modalRegionRecipes`).\n */\nimport * as React from 'react';\n\nimport {\n\tDialog as DialogPrimitive,\n\tDialogClose as DialogClosePrimitive,\n\tDialogContent as DialogContentPrimitive,\n\tDialogDescription as DialogDescriptionPrimitive,\n\tDialogFooter as DialogFooterPrimitive,\n\tDialogHeader as DialogHeaderPrimitive,\n\tDialogOverlay,\n\tDialogPortal,\n\tDialogTitle as DialogTitlePrimitive,\n\tDialogTrigger as DialogTriggerPrimitive,\n} from '../../ui/dialog';\nimport { Text } from '../../typography';\nimport { textLineHeights, textSizes, textWeights } from '../../typography/text.styles';\nimport { cn } from '../../../lib/utils';\n\nfunction isSimpleText(value: React.ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\n/**\n * The title element carries the canonical title role, so custom title nodes\n * match scalar titles and its line box never differs from the Text inside.\n * Descriptions keep the configurable Text default instead.\n */\nconst titleTypography = cn(textSizes.base, textWeights.semibold, textLineHeights.snug);\n\nexport const Dialog = DialogPrimitive;\n\nexport const DialogTrigger = React.forwardRef<\n\tReact.ElementRef<typeof DialogTriggerPrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof DialogTriggerPrimitive>\n>(function DialogTrigger({ className, ...props }, ref) {\n\treturn (\n\t\t<DialogTriggerPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('dialog-trigger--component', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nDialogTrigger.displayName = 'DialogTrigger';\n\nexport const DialogClose = React.forwardRef<\n\tReact.ElementRef<typeof DialogClosePrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof DialogClosePrimitive>\n>(function DialogClose({ className, ...props }, ref) {\n\treturn (\n\t\t<DialogClosePrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('dialog-close--component', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nDialogClose.displayName = 'DialogClose';\n\nexport const DialogContent = React.forwardRef<\n\tReact.ElementRef<typeof DialogContentPrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof DialogContentPrimitive>\n>(function DialogContent({ className, ...props }, ref) {\n\treturn (\n\t\t<DialogContentPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t// The shell is flush: each region owns its inset once and the rules\n\t\t\t\t// between regions run edge to edge.\n\t\t\t\t'dialog-content--component flex max-h-[min(90vh,48rem)] flex-col gap-0 overflow-hidden rounded-surface bg-popover p-0 text-popover-foreground shadow-xl sm:max-w-lg', surfaceDividerRecipes.modal.shell,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nDialogContent.displayName = 'DialogContent';\n\nexport const DialogHeader = React.forwardRef<\n\tHTMLDivElement,\n\tReact.ComponentPropsWithoutRef<typeof DialogHeaderPrimitive> & { textGap?: TextGap }\n>(function DialogHeader({ className, textGap = 'normal', ...props }, ref) {\n\treturn (\n\t\t<DialogHeaderPrimitive\n\t\t\tref={ref}\n\t\t\tdata-modal-region=\"\"\n\t\t\tclassName={cn(\n\t\t\t\t'dialog-header--component', modalRegionRecipes.header,\n\t\t\t\toverlayAnatomyRecipes.header,\n\t\t\t\ttextGap === 'dense' ? 'gap-dense' : 'gap-normal',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nDialogHeader.displayName = 'DialogHeader';\n\n/** Scroll-owning content region between the pinned dialog header and footer. */\nexport const DialogBody = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n\tfunction DialogBody({ className, ...props }, ref) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tdata-slot=\"dialog-body\"\n\t\t\t\tdata-modal-region=\"\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'dialog-body--component', modalRegionRecipes.body,\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\n\nDialogBody.displayName = 'DialogBody';\n\nexport const DialogFooter = React.forwardRef<\n\tHTMLDivElement,\n\tReact.ComponentPropsWithoutRef<typeof DialogFooterPrimitive>\n>(function DialogFooter({ className, ...props }, ref) {\n\treturn (\n\t\t<DialogFooterPrimitive\n\t\t\tref={ref}\n\t\t\tdata-modal-region=\"\"\n\t\t\tclassName={cn(\n\t\t\t\t'dialog-footer--component', modalRegionRecipes.footer,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nDialogFooter.displayName = 'DialogFooter';\n\nexport const DialogTitle = React.forwardRef<\n\tReact.ElementRef<typeof DialogTitlePrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof DialogTitlePrimitive>\n>(function DialogTitle({ children, className, ...props }, ref) {\n\treturn (\n\t\t<DialogTitlePrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('dialog-title--component m-0', titleTypography, className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\ttype=\"inherit\"\n\t\t\t\t\tsize=\"base\"\n\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\tlineHeight=\"snug\"\n\t\t\t\t\tclassName=\"dialog-title--text\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : children}\n\t\t</DialogTitlePrimitive>\n\t);\n});\n\nDialogTitle.displayName = 'DialogTitle';\n\nexport const DialogDescription = React.forwardRef<\n\tReact.ElementRef<typeof DialogDescriptionPrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof DialogDescriptionPrimitive>\n>(function DialogDescription({ children, className, ...props }, ref) {\n\treturn (\n\t\t<DialogDescriptionPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('dialog-description--component m-0', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<Text\n\t\t\t\t\ttag=\"span\"\n\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\tlineHeight=\"relaxed\"\n\t\t\t\t\tclassName=\"dialog-description--text\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : children}\n\t\t</DialogDescriptionPrimitive>\n\t);\n});\n\nDialogDescription.displayName = 'DialogDescription';\n\nexport { DialogOverlay, DialogPortal };\n","/**\n * Default user-facing strings shared by ActionDialog, ActionDrawer, and\n * ConfirmDialog recipes.\n *\n * Consumers wire backend i18n at the call site:\n *\n * <ActionDialog strings={{ confirm: t('common.confirm') }} … />\n */\n\nexport interface OverlayStrings {\n\tconfirm: string;\n\tcancel: string;\n\tclose: string;\n\tloading: string;\n\tdialogLabel: string;\n\tdrawerLabel: string;\n\talertDialogLabel: string;\n}\n\nexport const defaultOverlayStrings: OverlayStrings = {\n\tconfirm: 'Confirm',\n\tcancel: 'Cancel',\n\tclose: 'Close',\n\tloading: 'Loading...',\n\tdialogLabel: 'Dialog',\n\tdrawerLabel: 'Drawer',\n\talertDialogLabel: 'Confirmation',\n};\n\nexport const defaultAlertDialogStrings: OverlayStrings = {\n\tconfirm: 'Continue',\n\tcancel: 'Cancel',\n\tclose: 'Close',\n\tloading: 'Loading...',\n\tdialogLabel: 'Dialog',\n\tdrawerLabel: 'Drawer',\n\talertDialogLabel: 'Confirmation',\n};\n","import { useCallback, useMemo, useRef, useState } from 'react';\n\nimport { useStrings, type StringsProp } from '../../../../lib/strings';\n\nimport {\n\tdefaultOverlayStrings,\n\ttype OverlayStrings,\n} from '../overlays.strings';\nimport type {\n\tOverlayButtonTone,\n\tOverlayActionProps,\n\tOverlayTone,\n} from '../overlays.types';\n\nexport interface UseOverlayActionsOptions\n\textends Pick<\n\t\tOverlayActionProps,\n\t\t| 'onConfirm'\n\t\t| 'onAsyncConfirm'\n\t\t| 'closeOnAsyncComplete'\n\t\t| 'confirmTone'\n\t\t| 'loading'\n\t\t| 'formId'\n\t> {\n\tcloseDialog: () => void;\n\tonCancel?: () => void;\n\tcustomStrings?: StringsProp<OverlayStrings>;\n\temphasis?: boolean;\n\ttone?: OverlayTone;\n\t/** Called when `onAsyncConfirm` throws; the consumer reports or retries.\n\t * Without it the library logs the rejection in development only. */\n\tonError?: (error: unknown) => void;\n}\n\nexport interface UseOverlayActionsReturn {\n\t/** Overrides this surface's own copy. */\n\tstrings: OverlayStrings;\n\tisExecuting: boolean;\n\thandleConfirm: () => Promise<void>;\n\thandleCancel: () => void;\n\tfinalConfirmTone: OverlayButtonTone;\n\tconfirmButtonOnClick: (() => Promise<void>) | undefined;\n\teffectiveLoading: boolean;\n}\n\nexport function useOverlayActions({\n\tcloseDialog,\n\tonConfirm,\n\tonAsyncConfirm,\n\tcloseOnAsyncComplete = true,\n\tconfirmTone = 'primary',\n\tloading = false,\n\tformId,\n\tonCancel,\n\tcustomStrings,\n\temphasis = false,\n\ttone = 'neutral',\n\tonError,\n}: UseOverlayActionsOptions): UseOverlayActionsReturn {\n\tconst strings = useStrings(defaultOverlayStrings, customStrings);\n\n\tconst [isExecuting, setIsExecuting] = useState(false);\n\tconst executingRef = useRef(false);\n\n\tconst handleConfirm = useCallback(async () => {\n\t\tif (loading || executingRef.current) return;\n\t\tif (onConfirm) {\n\t\t\tonConfirm();\n\t\t\tcloseDialog();\n\t\t\treturn;\n\t\t}\n\n\t\tif (onAsyncConfirm) {\n\t\t\texecutingRef.current = true;\n\t\t\tsetIsExecuting(true);\n\t\t\ttry {\n\t\t\t\tawait onAsyncConfirm();\n\t\t\t\tif (closeOnAsyncComplete) {\n\t\t\t\t\tcloseDialog();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\t// A consumer that handles the failure owns its reporting; only an\n\t\t\t\t// unhandled rejection is surfaced in development.\n\t\t\t\tif (onError) onError(error);\n\t\t\t\telse if (import.meta.env?.DEV) console.error('Overlay async confirm failed:', error);\n\t\t\t} finally {\n\t\t\t\texecutingRef.current = false;\n\t\t\t\tsetIsExecuting(false);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tcloseDialog();\n\t}, [loading, onConfirm, onAsyncConfirm, closeOnAsyncComplete, closeDialog, onError]);\n\n\tconst handleCancel = useCallback(() => {\n\t\tif (loading || executingRef.current) return;\n\t\tonCancel?.();\n\t\tcloseDialog();\n\t}, [loading, onCancel, closeDialog]);\n\n\tconst handleFormSubmit = useCallback(async () => {\n\t\tif (!formId || loading || executingRef.current) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst form = document.getElementById(formId);\n\n\t\tif (!(form instanceof HTMLFormElement)) {\n\t\t\treturn;\n\t\t}\n\n\t\tform.requestSubmit();\n\t}, [formId, loading]);\n\n\tconst finalConfirmTone = useMemo<OverlayButtonTone>(() => {\n\t\tif (!emphasis) return confirmTone ?? 'primary';\n\t\tif (tone === 'destructive') return 'destructive';\n\t\tif (tone === 'warning') return 'warning';\n\t\tif (tone === 'success') return 'success';\n\t\treturn confirmTone ?? 'primary';\n\t}, [emphasis, tone, confirmTone]);\n\n\tconst confirmButtonOnClick = formId ? handleFormSubmit : handleConfirm;\n\n\treturn {\n\t\tstrings,\n\t\tisExecuting,\n\t\thandleConfirm,\n\t\thandleCancel,\n\t\tfinalConfirmTone,\n\t\tconfirmButtonOnClick,\n\t\teffectiveLoading: isExecuting || loading,\n\t};\n}\n","import {\n\tuseCallback,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n\ttype Dispatch,\n\ttype SetStateAction,\n} from 'react';\n\nexport type OverlayOpenSetter = Dispatch<SetStateAction<boolean>>;\n\nexport interface OverlayVisibilityProps {\n\t/** Current visibility. */\n\topen: boolean;\n\t/** Requests a visibility change; spread both onto an overlay. */\n\tonOpenChange: (open: boolean) => void;\n}\n\nexport interface UseOverlayVisibilityOptions {\n\t/** Initial visibility when uncontrolled. Default: `false`. */\n\tdefaultOpen?: boolean;\n\t/** Controlled visibility. Omit to let the hook own it. */\n\topen?: boolean;\n\t/** Fired once for every actual visibility change. */\n\tonOpenChange?: (open: boolean) => void;\n\t/** Fired after a change to open. */\n\tonOpen?: () => void;\n\t/** Fired after a change to closed, whatever dismissed the overlay. */\n\tonClose?: () => void;\n}\n\nexport interface UseOverlayVisibilityReturn {\n\topen: boolean;\n\tisOpen: boolean;\n\tsetOpen: OverlayOpenSetter;\n\tshow: () => void;\n\thide: () => void;\n\ttoggle: () => void;\n\toverlayProps: OverlayVisibilityProps;\n}\n\nexport type OverlayVisibilityGroupState<TKey extends string = string> = Record<TKey, boolean>;\n\nexport interface UseOverlayVisibilityGroupOptions<TKey extends string = string> {\n\t/** Initial visibility per key when uncontrolled. */\n\tdefaultOpen?: Partial<Record<TKey, boolean>>;\n\t/** Controlled visibility per key. */\n\topen?: Partial<Record<TKey, boolean>>;\n\t/** Fired once for every actual change, with the key, its visibility and the next group state. */\n\tonOpenChange?: (\n\t\tkey: TKey,\n\t\topen: boolean,\n\t\tstate: OverlayVisibilityGroupState<TKey>,\n\t) => void;\n\t/** Opening one key closes the others, for one-at-a-time overlays. Default: `false`. */\n\tcloseOthersOnOpen?: boolean;\n}\n\nexport type UseOverlayVisibilityGroupReturn<TKey extends string = string> = Record<\n\tTKey,\n\tUseOverlayVisibilityReturn\n>;\n\nfunction resolveOpenValue(\n\tnextOpen: SetStateAction<boolean>,\n\tcurrentOpen: boolean,\n): boolean {\n\tif (typeof nextOpen === 'function') {\n\t\treturn (nextOpen as (open: boolean) => boolean)(currentOpen);\n\t}\n\treturn nextOpen;\n}\n\nfunction normalizeGroupState<TKey extends string>(\n\tkeys: readonly TKey[],\n\tstate?: Partial<Record<TKey, boolean>>,\n): OverlayVisibilityGroupState<TKey> {\n\tconst result = {} as OverlayVisibilityGroupState<TKey>;\n\tfor (const key of keys) {\n\t\tresult[key] = Boolean(state?.[key]);\n\t}\n\treturn result;\n}\n\nfunction hasGroupStateChanged<TKey extends string>(\n\tprevious: OverlayVisibilityGroupState<TKey>,\n\tnext: OverlayVisibilityGroupState<TKey>,\n\tkeys: readonly TKey[],\n): boolean {\n\treturn keys.some((key) => previous[key] !== next[key]);\n}\n\nexport function useOverlayVisibility({\n\tdefaultOpen = false,\n\topen: controlledOpen,\n\tonOpenChange,\n\tonOpen,\n\tonClose,\n}: UseOverlayVisibilityOptions = {}): UseOverlayVisibilityReturn {\n\tconst [internalOpen, setInternalOpen] = useState(defaultOpen);\n\tconst isControlled = controlledOpen !== undefined;\n\tconst open = isControlled ? controlledOpen : internalOpen;\n\tconst openRef = useRef(open);\n\topenRef.current = open;\n\n\tconst setOpen = useCallback<OverlayOpenSetter>(\n\t\t(nextOpen) => {\n\t\t\tconst resolvedOpen = resolveOpenValue(nextOpen, openRef.current);\n\t\t\tconst changed = openRef.current !== resolvedOpen;\n\n\t\t\tif (!isControlled) {\n\t\t\t\tsetInternalOpen(resolvedOpen);\n\t\t\t}\n\n\t\t\tif (!changed) return;\n\n\t\t\topenRef.current = resolvedOpen;\n\t\t\tonOpenChange?.(resolvedOpen);\n\t\t\tif (resolvedOpen) {\n\t\t\t\tonOpen?.();\n\t\t\t} else {\n\t\t\t\tonClose?.();\n\t\t\t}\n\t\t},\n\t\t[isControlled, onClose, onOpen, onOpenChange],\n\t);\n\n\tconst show = useCallback(() => {\n\t\tsetOpen(true);\n\t}, [setOpen]);\n\n\tconst hide = useCallback(() => {\n\t\tsetOpen(false);\n\t}, [setOpen]);\n\n\tconst toggle = useCallback(() => {\n\t\tsetOpen((currentOpen) => !currentOpen);\n\t}, [setOpen]);\n\n\tconst overlayProps = useMemo(\n\t\t() => ({\n\t\t\topen,\n\t\t\tonOpenChange: setOpen,\n\t\t}),\n\t\t[open, setOpen],\n\t);\n\n\treturn {\n\t\topen,\n\t\tisOpen: open,\n\t\tsetOpen,\n\t\tshow,\n\t\thide,\n\t\ttoggle,\n\t\toverlayProps,\n\t};\n}\n\nexport function useOverlayVisibilityGroup<const TKeys extends readonly string[]>(\n\tkeys: TKeys,\n\t{\n\t\tdefaultOpen,\n\t\topen: controlledOpen,\n\t\tonOpenChange,\n\t\tcloseOthersOnOpen = false,\n\t}: UseOverlayVisibilityGroupOptions<TKeys[number] & string> = {},\n): UseOverlayVisibilityGroupReturn<TKeys[number] & string> {\n\ttype TKey = TKeys[number] & string;\n\n\tconst keyList = keys as readonly TKey[];\n\tconst [internalOpen, setInternalOpen] = useState<OverlayVisibilityGroupState<TKey>>(\n\t\t() => normalizeGroupState(keyList, defaultOpen),\n\t);\n\tconst isControlled = controlledOpen !== undefined;\n\tconst state = normalizeGroupState(keyList, isControlled ? controlledOpen : internalOpen);\n\tconst stateRef = useRef(state);\n\tstateRef.current = state;\n\n\tconst setKeyOpen = useCallback(\n\t\t(key: TKey, nextOpen: SetStateAction<boolean>) => {\n\t\t\tconst previousState = stateRef.current;\n\t\t\tconst resolvedOpen = resolveOpenValue(nextOpen, previousState[key]);\n\t\t\tconst nextState = {\n\t\t\t\t...previousState,\n\t\t\t\t[key]: resolvedOpen,\n\t\t\t} as OverlayVisibilityGroupState<TKey>;\n\n\t\t\tif (closeOthersOnOpen && resolvedOpen) {\n\t\t\t\tfor (const item of keyList) {\n\t\t\t\t\tif (item !== key) {\n\t\t\t\t\t\tnextState[item] = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst changed = hasGroupStateChanged(previousState, nextState, keyList);\n\n\t\t\tif (!isControlled) {\n\t\t\t\tsetInternalOpen(nextState);\n\t\t\t}\n\n\t\t\tif (!changed) return;\n\n\t\t\tstateRef.current = nextState;\n\t\t\tonOpenChange?.(key, resolvedOpen, nextState);\n\t\t},\n\t\t[closeOthersOnOpen, isControlled, keyList, onOpenChange],\n\t);\n\n\treturn useMemo(() => {\n\t\tconst result = {} as UseOverlayVisibilityGroupReturn<TKey>;\n\n\t\tfor (const key of keyList) {\n\t\t\tconst open = state[key];\n\t\t\tconst setOpen: OverlayOpenSetter = (nextOpen) => {\n\t\t\t\tsetKeyOpen(key, nextOpen);\n\t\t\t};\n\n\t\t\tresult[key] = {\n\t\t\t\topen,\n\t\t\t\tisOpen: open,\n\t\t\t\tsetOpen,\n\t\t\t\tshow: () => setKeyOpen(key, true),\n\t\t\t\thide: () => setKeyOpen(key, false),\n\t\t\t\ttoggle: () => setKeyOpen(key, (currentOpen) => !currentOpen),\n\t\t\t\toverlayProps: {\n\t\t\t\t\topen,\n\t\t\t\t\tonOpenChange: setOpen,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn result;\n\t}, [keyList, setKeyOpen, state]);\n}\n","import { useLayoutEffect, useRef } from 'react';\n\n/** Keep modal focus anchored when its focused action becomes disabled. */\nexport function usePendingOverlayFocus(pending: boolean, modal: boolean | 'trap-focus' = true) {\n\tconst popupRef = useRef<HTMLDivElement>(null);\n\tuseLayoutEffect(() => {\n\t\tconst popup = popupRef.current;\n\t\tif (!pending || !modal || !popup) return;\n\t\tconst active = popup.ownerDocument.activeElement;\n\t\t// Preserve enabled fields and consumer-owned custom footer controls.\n\t\tif (active === popup.ownerDocument.body || (active && popup.contains(active) && active.matches(':disabled'))) {\n\t\t\tpopup.focus({ preventScroll: true });\n\t\t}\n\t}, [pending, modal]);\n\treturn popupRef;\n}\n","import { AlertCircle, AlertTriangle, CheckCircle, HelpCircle, Info } from 'lucide-react';\n\nimport { textLineHeights, textSizes } from '../../typography/text.styles';\nimport { cn } from '../../../lib/utils';\n\nimport type { OverlayTone } from './overlays.types';\nimport { toneRecipes } from '../../../lib/tone-recipes';\n\n/** One glyph and colour per tone, shared by every overlay's opt-in `showIcon`. */\nexport const overlayToneGlyphs = {\n\tneutral: { Glyph: HelpCircle, color: 'text-muted-foreground', surface: 'bg-muted' },\n\tdestructive: { Glyph: AlertCircle, color: 'text-destructive', surface: toneRecipes.destructive.tint },\n\twarning: { Glyph: AlertTriangle, color: 'text-warning-accent', surface: toneRecipes.warning.tint },\n\tinfo: { Glyph: Info, color: 'text-info', surface: toneRecipes.info.tint },\n\tsuccess: { Glyph: CheckCircle, color: 'text-success', surface: toneRecipes.success.tint },\n} as const satisfies Record<OverlayTone, { Glyph: typeof Info; color: string; surface: string }>;\n\n/**\n * Inline tone glyph for a heading row. The wrapper takes the title's own line\n * box (base size, snug leading, `h-lh`), so the glyph centres on the first title\n * line at any density instead of relying on an optical offset.\n */\nexport function OverlayToneIcon({ tone }: { tone: OverlayTone }) {\n\tconst { Glyph, color } = overlayToneGlyphs[tone];\n\treturn (\n\t\t<span aria-hidden=\"true\" className={cn('overlay-tone-icon--component flex h-lh shrink-0 items-center', textSizes.base, textLineHeights.snug)}>\n\t\t\t<Glyph className={cn('size-icon', color)} />\n\t\t</span>\n\t);\n}\n","import { overlayAnatomyRecipes } from '../../../lib/overlay-anatomy-recipes';\nimport { X } from 'lucide-react';\nimport { isValidElement, memo } from 'react';\n\nimport { Button } from '../../base/buttons';\nimport { Alert, AlertDescription } from '../../base/feedback';\nimport {\n\tDialog as BaseDialog,\n\tDialogBody,\n\tDialogClose,\n\tDialogContent,\n\tDialogDescription,\n\tDialogFooter,\n\tDialogHeader,\n\tDialogTitle,\n\tDialogTrigger,\n} from '../../base/display/dialog';\nimport { Stack } from '../../base/structure';\nimport { compositionRhythm } from '../../base/structure/composition.recipes';\nimport { useOverlayConfig } from '../../../lib/ui-provider';\nimport { cn } from '../../../lib/utils';\n\nimport { useOverlayActions, useOverlayVisibility } from './hooks';\nimport { usePendingOverlayFocus } from './hooks/use-pending-overlay-focus';\nimport { OverlayToneIcon } from './overlay-tone-icon';\nimport type { ActionDialogProps, OverlaySize } from './overlays.types';\nimport { interactionRecipes } from '../../../lib/interaction-recipes';\n\nconst SIZE_CLASSES: Record<OverlaySize, string> = {\n\txs: 'sm:max-w-xs',\n\tsm: 'sm:max-w-sm',\n\tmd: 'sm:max-w-md',\n\tlg: 'sm:max-w-lg',\n\txl: 'sm:max-w-xl',\n\t'2xl': 'sm:max-w-2xl',\n\t'3xl': 'sm:max-w-3xl',\n\t'4xl': 'sm:max-w-4xl',\n\t'5xl': 'sm:max-w-5xl',\n\tfull: 'sm:max-w-[calc(100vw-2rem)]',\n};\n\nfunction ActionDialogImpl({\n\topen,\n\tonOpenChange,\n\tonClose,\n\tchildren,\n\ttitle,\n\tdescription,\n\tvisuallyHideHeader = false,\n\tclassName,\n\tcontentClassName,\n\tshowCloseButton = true,\n\tsurfaceStyle,\n\tinitialFocusRef,\n\tcloseOnEscape = true,\n\tcloseOnBackdropClick = true,\n\tstrings: customStrings,\n\tshowCancel = true,\n\tshowConfirm = true,\n\tonCancel,\n\tonConfirm,\n\tonAsyncConfirm,\n\tonError,\n\tcloseOnAsyncComplete = true,\n\tconfirmTone = 'primary',\n\tconfirmStyle = 'solid',\n\tloading = false,\n\tformId,\n\tfooter,\n\temphasis = false,\n\ttone = 'neutral',\n\tshowIcon = false,\n\talertMessage,\n\tsize = 'lg',\n\ttrigger,\n\talign,\n}: ActionDialogProps) {\n\tconst { defaultDialogAlign } = useOverlayConfig();\n\tconst centered = (align ?? defaultDialogAlign ?? 'start') === 'center';\n\tconst visibility = useOverlayVisibility({ open, onOpenChange, onClose });\n\tconst {\n\t\tstrings,\n\t\tfinalConfirmTone,\n\t\tconfirmButtonOnClick,\n\t\teffectiveLoading,\n\t\thandleCancel,\n\t} = useOverlayActions({\n\t\tcloseDialog: visibility.hide,\n\t\tonConfirm,\n\t\tonAsyncConfirm,\n\t\tonError,\n\t\tcloseOnAsyncComplete,\n\t\tconfirmTone,\n\t\tloading,\n\t\tformId,\n\t\tonCancel,\n\t\tcustomStrings,\n\t\temphasis,\n\t\ttone,\n\t});\n\n\tconst pendingFocusRef = usePendingOverlayFocus(effectiveLoading);\n\tconst hasContent = Boolean(children || alertMessage);\n\tconst hasFooter = showCancel || showConfirm || footer;\n\n\treturn (\n\t\t<BaseDialog\n\t\t\topen={visibility.open}\n\t\t\tmodal\n\t\t\tdisablePointerDismissal={effectiveLoading || !closeOnBackdropClick}\n\t\t\tonOpenChange={(nextOpen, details) => {\n\t\t\t\tif (!nextOpen && (effectiveLoading || (details.reason === 'escape-key' && !closeOnEscape))) {\n\t\t\t\t\tdetails.cancel();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvisibility.setOpen(nextOpen);\n\t\t\t}}\n\t\t>\n\t\t\t{!!trigger && (isValidElement(trigger) ? (\n\t\t\t\t<DialogTrigger render={trigger} />\n\t\t\t) : (\n\t\t\t\t<DialogTrigger render={<Button type=\"button\" tone=\"secondary\" buttonStyle=\"outline\" />} className=\"overlay-trigger--fallback\">\n\t\t\t\t\t{trigger}\n\t\t\t\t</DialogTrigger>\n\t\t\t))}\n\n\t\t\t<DialogContent\n\t\t\t\tref={pendingFocusRef}\n\t\t\t\tshowCloseButton={false}\n\t\t\t\tstyle={surfaceStyle}\n\t\t\t\tinitialFocus={initialFocusRef}\n\t\t\t\taria-label={title ? undefined : strings.dialogLabel}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'action-dialog--component dialog--component',\n\t\t\t\t\tSIZE_CLASSES[size],\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{!!(title || description) && (\n\t\t\t\t\t<DialogHeader\n\t\t\t\t\t\tdata-align={centered ? 'center' : 'start'}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t'dialog--header',\n\t\t\t\t\t\t\tcentered && cn('text-center', overlayAnatomyRecipes.headerCentered),\n\t\t\t\t\t\t\tvisuallyHideHeader && 'sr-only',\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Stack direction={centered ? 'vertical' : 'horizontal'} gap=\"sm\" align={centered ? 'center' : 'start'} wrap={false}>\n\t\t\t\t\t\t\t{!!showIcon && <OverlayToneIcon tone={tone} />}\n\t\t\t\t\t\t\t<Stack gap=\"normal\" align={centered ? 'center' : undefined} className={cn('min-w-0', centered ? 'w-full' : 'flex-1')}>\n\t\t\t\t\t\t\t\t{!!title && <DialogTitle>{title}</DialogTitle>}\n\t\t\t\t\t\t\t\t{!!description && <DialogDescription>{description}</DialogDescription>}\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t</DialogHeader>\n\t\t\t\t)}\n\n\t\t\t\t{!!hasContent && (\n\t\t\t\t\t<DialogBody className={cn('dialog--body', contentClassName)}>\n\t\t\t\t\t\t{!!alertMessage && (\n\t\t\t\t\t\t\t<Alert tone={tone} className=\"mb-space-md\">\n\t\t\t\t\t\t\t\t<AlertDescription>{alertMessage}</AlertDescription>\n\t\t\t\t\t\t\t</Alert>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</DialogBody>\n\t\t\t\t)}\n\n\t\t\t\t{!!hasFooter && (\n\t\t\t\t\t<DialogFooter className=\"dialog--footer\">\n\t\t\t\t\t\t{footer ?? (\n\t\t\t\t\t\t\t<Stack\n\t\t\t\t\t\t\t\tdirection={{ base: 'vertical', sm: 'horizontal' }}\n\t\t\t\t\t\t\t\tgap={compositionRhythm.commands}\n\t\t\t\t\t\t\t\talign={{ base: 'stretch', sm: 'center' }}\n\t\t\t\t\t\t\t\tjustify={centered ? 'center' : 'end'}\n\t\t\t\t\t\t\t\tclassName=\"w-full\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{!!showCancel && (\n\t\t\t\t\t\t\t\t\t<Button type=\"button\" tone=\"secondary\" buttonStyle=\"outline\" onClick={handleCancel} disabled={effectiveLoading}>\n\t\t\t\t\t\t\t\t\t\t{strings.cancel}\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{!!showConfirm && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\ttone={finalConfirmTone}\n\t\t\t\t\t\t\t\t\t\tbuttonStyle={confirmStyle}\n\t\t\t\t\t\t\t\t\t\tonClick={confirmButtonOnClick}\n\t\t\t\t\t\t\t\t\t\tdisabled={effectiveLoading}\n\t\t\t\t\t\t\t\t\t\tloading={effectiveLoading}\n\t\t\t\t\t\t\t\t\t\tstrings={{ loading: strings.loading }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{strings.confirm}\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</DialogFooter>\n\t\t\t\t)}\n\n\t\t\t\t{/*\n\t\t\t\t * Last in the DOM, drawn in the corner: opening focuses the first\n\t\t\t\t * field or action rather than the dismiss control, and the reading\n\t\t\t\t * order stays title → content → actions.\n\t\t\t\t */}\n\t\t\t\t{!!showCloseButton && (\n\t\t\t\t\t<DialogClose\n\t\t\t\t\t\tdisabled={effectiveLoading}\n\t\t\t\t\t\trender={(\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\ticonOnly\n\t\t\t\t\t\t\t\tdata-overlay-close=\"\"\n\t\t\t\t\t\t\t\tclassName={cn(overlayAnatomyRecipes.close, `z-10 text-muted-foreground ${interactionRecipes.rowHover}`)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<X className=\"size-icon\" />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\taria-label={strings.close}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</DialogContent>\n\t\t</BaseDialog>\n\t);\n}\n\nexport const ActionDialog = memo(ActionDialogImpl);\nActionDialog.displayName = 'ActionDialog';\n","import { overlayAnatomyRecipes } from '../../../lib/overlay-anatomy-recipes';\nimport { X } from 'lucide-react';\nimport { isValidElement, memo } from 'react';\n\nimport { Button } from '../../base/buttons';\nimport { Alert, AlertDescription } from '../../base/feedback';\nimport {\n\tSheet,\n\tSheetBody,\n\tSheetClose,\n\tSheetContent,\n\tSheetDescription,\n\tSheetFooter,\n\tSheetHeader,\n\tSheetTitle,\n\tSheetTrigger,\n} from '../../base/sheet/sheet';\nimport { Stack } from '../../base/structure';\nimport { compositionRhythm } from '../../base/structure/composition.recipes';\nimport { cn } from '../../../lib/utils';\n\nimport { useOverlayActions, useOverlayVisibility } from './hooks';\nimport { usePendingOverlayFocus } from './hooks/use-pending-overlay-focus';\nimport { OverlayToneIcon } from './overlay-tone-icon';\nimport type { ActionDrawerProps, OverlaySize } from './overlays.types';\nimport { interactionRecipes } from '../../../lib/interaction-recipes';\n\nconst WIDTH_CLASSES: Record<OverlaySize, string> = {\n\txs: 'data-[side=left]:sm:max-w-xs data-[side=right]:sm:max-w-xs',\n\tsm: 'data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm',\n\tmd: 'data-[side=left]:sm:max-w-md data-[side=right]:sm:max-w-md',\n\tlg: 'data-[side=left]:sm:max-w-lg data-[side=right]:sm:max-w-lg',\n\txl: 'data-[side=left]:sm:max-w-xl data-[side=right]:sm:max-w-xl',\n\t'2xl': 'data-[side=left]:sm:max-w-2xl data-[side=right]:sm:max-w-2xl',\n\t'3xl': 'data-[side=left]:sm:max-w-3xl data-[side=right]:sm:max-w-3xl',\n\t'4xl': 'data-[side=left]:sm:max-w-4xl data-[side=right]:sm:max-w-4xl',\n\t'5xl': 'data-[side=left]:sm:max-w-5xl data-[side=right]:sm:max-w-5xl',\n\tfull: 'data-[side=left]:sm:max-w-[calc(100vw-2rem)] data-[side=right]:sm:max-w-[calc(100vw-2rem)]',\n};\n\nfunction ActionDrawerImpl({\n\topen,\n\tonOpenChange,\n\tonClose,\n\tchildren,\n\ttitle,\n\tdescription,\n\tvisuallyHideHeader = false,\n\tshowCloseButton = true,\n\tclassName,\n\tcontentClassName,\n\tsurfaceStyle,\n\tinitialFocusRef,\n\tcloseOnEscape = true,\n\tcloseOnBackdropClick = true,\n\tstrings: customStrings,\n\tshowCancel = true,\n\tshowConfirm = true,\n\tonCancel,\n\tonConfirm,\n\tonAsyncConfirm,\n\tonError,\n\tcloseOnAsyncComplete = true,\n\tconfirmTone = 'primary',\n\tconfirmStyle = 'solid',\n\tloading = false,\n\tformId,\n\tfooter,\n\temphasis = false,\n\ttone = 'neutral',\n\tshowIcon = false,\n\talertMessage,\n\tdirection = 'right',\n\twidth = 'lg',\n\tshowFooter = true,\n\tmodal = true,\n\ttrigger,\n}: ActionDrawerProps) {\n\tconst visibility = useOverlayVisibility({ open, onOpenChange, onClose });\n\tconst {\n\t\tstrings,\n\t\tfinalConfirmTone,\n\t\tconfirmButtonOnClick,\n\t\teffectiveLoading,\n\t\thandleCancel,\n\t} = useOverlayActions({\n\t\tcloseDialog: visibility.hide,\n\t\tonConfirm,\n\t\tonAsyncConfirm,\n\t\tonError,\n\t\tcloseOnAsyncComplete,\n\t\tconfirmTone,\n\t\tloading,\n\t\tformId,\n\t\tonCancel,\n\t\tcustomStrings,\n\t\temphasis,\n\t\ttone,\n\t});\n\n\tconst isHorizontal = direction === 'left' || direction === 'right';\n\tconst pendingFocusRef = usePendingOverlayFocus(effectiveLoading, modal);\n\tconst hasContent = Boolean(children || alertMessage);\n\tconst hasFooter = showFooter && (showCancel || showConfirm || footer);\n\n\treturn (\n\t\t<Sheet\n\t\t\topen={visibility.open}\n\t\t\tmodal={modal}\n\t\t\t// A non-modal panel sits beside the page you keep working in, so a page\n\t\t\t// press must not dismiss it; it closes from its own controls or Escape.\n\t\t\tdisablePointerDismissal={effectiveLoading || !closeOnBackdropClick || modal === false}\n\t\t\tonOpenChange={(nextOpen, details) => {\n\t\t\t\tif (!nextOpen && (effectiveLoading || (details.reason === 'escape-key' && !closeOnEscape))) {\n\t\t\t\t\tdetails.cancel();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvisibility.setOpen(nextOpen);\n\t\t\t}}\n\t\t>\n\t\t\t{!!trigger && (isValidElement(trigger) ? (\n\t\t\t\t<SheetTrigger render={trigger} />\n\t\t\t) : (\n\t\t\t\t<SheetTrigger render={<Button type=\"button\" tone=\"secondary\" buttonStyle=\"outline\" />} className=\"overlay-trigger--fallback\">\n\t\t\t\t\t{trigger}\n\t\t\t\t</SheetTrigger>\n\t\t\t))}\n\n\t\t\t<SheetContent\n\t\t\t\tref={pendingFocusRef}\n\t\t\t\tside={direction}\n\t\t\t\tshowCloseButton={false}\n\t\t\t\tstyle={surfaceStyle}\n\t\t\t\tinitialFocus={initialFocusRef}\n\t\t\t\taria-label={title ? undefined : strings.drawerLabel}\n\t\t\t\t// The vendored SheetContent renders its backdrop unconditionally,\n\t\t\t\t// so a non-modal drawer would still sit behind a full-viewport\n\t\t\t\t// scrim. This marks the panel so the token layer can drop it.\n\t\t\t\tdata-modal={modal === false ? 'false' : undefined}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'action-drawer--component drawer--component',\n\t\t\t\t\tisHorizontal && 'data-[side=left]:w-full data-[side=right]:w-full',\n\t\t\t\t\tisHorizontal && WIDTH_CLASSES[width],\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{!!(title || description) && (\n\t\t\t\t\t<SheetHeader className={cn('drawer--header', visuallyHideHeader && 'sr-only')}>\n\t\t\t\t\t\t<Stack direction=\"horizontal\" gap=\"sm\" align=\"start\" wrap={false}>\n\t\t\t\t\t\t\t{!!showIcon && <OverlayToneIcon tone={tone} />}\n\t\t\t\t\t\t\t<Stack gap=\"normal\" className=\"min-w-0 flex-1\">\n\t\t\t\t\t\t\t\t{!!title && <SheetTitle>{title}</SheetTitle>}\n\t\t\t\t\t\t\t\t{!!description && <SheetDescription>{description}</SheetDescription>}\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t</SheetHeader>\n\t\t\t\t)}\n\n\t\t\t\t{!!hasContent && (\n\t\t\t\t\t<SheetBody className={cn('drawer--body', contentClassName)}>\n\t\t\t\t\t\t{!!alertMessage && (\n\t\t\t\t\t\t\t<Alert tone={tone} className=\"mb-space-md\">\n\t\t\t\t\t\t\t\t<AlertDescription>{alertMessage}</AlertDescription>\n\t\t\t\t\t\t\t</Alert>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</SheetBody>\n\t\t\t\t)}\n\n\t\t\t\t{!!hasFooter && (\n\t\t\t\t\t<SheetFooter className=\"drawer--footer\">\n\t\t\t\t\t\t{footer ?? (\n\t\t\t\t\t\t\t<Stack\n\t\t\t\t\t\t\t\tdirection={{ base: 'vertical', sm: 'horizontal' }}\n\t\t\t\t\t\t\t\tgap={compositionRhythm.commands}\n\t\t\t\t\t\t\t\talign={{ base: 'stretch', sm: 'center' }}\n\t\t\t\t\t\t\t\tjustify=\"end\"\n\t\t\t\t\t\t\t\tclassName=\"w-full\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{!!showCancel && (\n\t\t\t\t\t\t\t\t\t<Button type=\"button\" tone=\"secondary\" buttonStyle=\"outline\" onClick={handleCancel} disabled={effectiveLoading}>\n\t\t\t\t\t\t\t\t\t\t{strings.cancel}\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{!!showConfirm && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\ttone={finalConfirmTone}\n\t\t\t\t\t\t\t\t\t\tbuttonStyle={confirmStyle}\n\t\t\t\t\t\t\t\t\t\tonClick={confirmButtonOnClick}\n\t\t\t\t\t\t\t\t\t\tdisabled={effectiveLoading}\n\t\t\t\t\t\t\t\t\t\tloading={effectiveLoading}\n\t\t\t\t\t\t\t\t\t\tstrings={{ loading: strings.loading }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{strings.confirm}\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</SheetFooter>\n\t\t\t\t)}\n\n\t\t\t\t{/*\n\t\t\t\t * Last in the DOM, drawn in the corner: opening focuses the first\n\t\t\t\t * field or action rather than the dismiss control, and the reading\n\t\t\t\t * order stays title → content → actions.\n\t\t\t\t */}\n\t\t\t\t{!!showCloseButton && (\n\t\t\t\t\t<SheetClose\n\t\t\t\t\t\tdisabled={effectiveLoading}\n\t\t\t\t\t\trender={(\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\ttone=\"secondary\"\n\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\ticonOnly\n\t\t\t\t\t\t\t\tdata-overlay-close=\"\"\n\t\t\t\t\t\t\t\tclassName={cn(overlayAnatomyRecipes.close, `z-10 text-muted-foreground ${interactionRecipes.rowHover}`)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<X className=\"size-icon\" />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\taria-label={strings.close}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</SheetContent>\n\t\t</Sheet>\n\t);\n}\n\nexport const ActionDrawer = memo(ActionDrawerImpl);\nActionDrawer.displayName = 'ActionDrawer';\n","\"use client\";\n\nimport { motionRecipes } from '../../lib/motion-recipes';\nimport { portalClassName } from '../../lib/portal-recipes';\nimport { modalBackdropRecipe } from './overlay.recipes';\nimport { OverlayLayer, useInsideOverlayLayer, useOpenerFinalFocus } from './overlay-layer';\n\nimport { useThemePortalContainer, type ThemePortalContainer } from '../../lib/theme-scope';\n\nimport * as React from \"react\"\nimport { AlertDialog as AlertDialogPrimitive } from \"@base-ui/react/alert-dialog\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Button } from \"./button\"\n\nfunction AlertDialog({ ...props }: AlertDialogPrimitive.Root.Props) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />\n}\n\nfunction AlertDialogTrigger({ ...props }: AlertDialogPrimitive.Trigger.Props) {\n return (\n <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n )\n}\n\nfunction AlertDialogPortal({ container, className, ...props }: AlertDialogPrimitive.Portal.Props) {\n const resolvedContainer = useThemePortalContainer(container)\n return (\n <AlertDialogPrimitive.Portal container={resolvedContainer} data-slot=\"alert-dialog-portal\" className={portalClassName(className)} {...props} />\n )\n}\n\nfunction AlertDialogOverlay({\n className,\n ...props\n}: AlertDialogPrimitive.Backdrop.Props) {\n return (\n <AlertDialogPrimitive.Backdrop\n data-slot=\"alert-dialog-overlay\"\n className={cn(modalBackdropRecipe, motionRecipes.backdrop,\n \"isolate\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogContent({\n className,\n container,\n size = \"default\",\n children,\n finalFocus: finalFocusProp,\n ...props\n}: AlertDialogPrimitive.Popup.Props & {\n size?: \"default\" | \"sm\"\n} & { container?: ThemePortalContainer }) {\n const resolvedContainer = useThemePortalContainer(container)\n const insideOverlay = useInsideOverlayLayer()\n const { capture, finalFocus } = useOpenerFinalFocus(finalFocusProp)\n return (\n <AlertDialogPortal container={resolvedContainer}>\n <AlertDialogOverlay forceRender={!insideOverlay} />\n <AlertDialogPrimitive.Popup\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(\n motionRecipes.dialog,\n \"group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-space-xl rounded-surface bg-popover p-surface text-popover-foreground shadow-xl outline-none data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-md\",\n className\n )}\n {...props}\n finalFocus={finalFocus}\n >\n {capture}\n <OverlayLayer>{children}</OverlayLayer>\n </AlertDialogPrimitive.Popup>\n </AlertDialogPortal>\n )\n}\n\nfunction AlertDialogHeader({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\n \"grid grid-rows-[auto_1fr] place-items-center text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-space-2xl sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogFooter({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogMedia({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-media\"\n className={cn(\n \"mb-space-md inline-flex size-16 items-center justify-center rounded-full bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\n \"text-lg font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(\n \"text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogAction({\n className,\n ...props\n}: React.ComponentProps<typeof Button>) {\n return (\n <Button\n data-slot=\"alert-dialog-action\"\n className={cn(className)}\n {...props}\n />\n )\n}\n\nfunction AlertDialogCancel({\n className,\n variant = \"outline\",\n size = \"default\",\n ...props\n}: AlertDialogPrimitive.Close.Props &\n Pick<React.ComponentProps<typeof Button>, \"variant\" | \"size\">) {\n return (\n <AlertDialogPrimitive.Close\n data-slot=\"alert-dialog-cancel\"\n className={cn(className)}\n render={<Button variant={variant} size={size} />}\n {...props}\n />\n )\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogMedia,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n}\n","import { modalRegionRecipes, surfaceDividerRecipes } from '../../../lib/surface-recipes';\nimport type { TextGap } from '../structure';\n/**\n * AlertDialog — internal confirmation anatomy behind `ConfirmDialog`.\n *\n * Not published from any entrypoint: applications use `ConfirmDialog` from\n * `themelia-react-ui/features/overlays`, which owns the decision lifecycle.\n * The surface shares the modal shell, region, rule and typography geometry of\n * the internal Dialog wrapper: a pinned heading region, an optional scrolling\n * body and pinned answers, with one rule between adjacent visible regions.\n */\nimport * as React from 'react';\n\nimport {\n\tAlertDialog as AlertDialogPrimitive,\n\tAlertDialogAction as AlertDialogActionPrimitive,\n\tAlertDialogCancel as AlertDialogCancelPrimitive,\n\tAlertDialogContent as AlertDialogContentPrimitive,\n\tAlertDialogDescription as AlertDialogDescriptionPrimitive,\n\tAlertDialogFooter as AlertDialogFooterPrimitive,\n\tAlertDialogMedia as AlertDialogMediaPrimitive,\n\tAlertDialogOverlay,\n\tAlertDialogPortal,\n\tAlertDialogTitle as AlertDialogTitlePrimitive,\n\tAlertDialogTrigger as AlertDialogTriggerPrimitive,\n} from '../../ui/alert-dialog';\nimport { Text } from '../../typography';\nimport { textLineHeights, textSizes, textWeights } from '../../typography/text.styles';\nimport { cn } from '../../../lib/utils';\n\nfunction isSimpleText(value: React.ReactNode): value is string | number | bigint {\n\treturn typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint';\n}\n\n/** Same title role as Dialog, set on the element so its line box matches the Text inside. */\nconst titleTypography = cn(textSizes.base, textWeights.semibold, textLineHeights.snug);\n\nexport const AlertDialog = AlertDialogPrimitive;\n\nexport const AlertDialogTrigger = React.forwardRef<\n\tReact.ElementRef<typeof AlertDialogTriggerPrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof AlertDialogTriggerPrimitive>\n>(function AlertDialogTrigger({ className, ...props }, ref) {\n\treturn (\n\t\t<AlertDialogTriggerPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('alert-dialog-trigger--component', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nAlertDialogTrigger.displayName = 'AlertDialogTrigger';\n\nexport const AlertDialogContent = React.forwardRef<\n\tReact.ElementRef<typeof AlertDialogContentPrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof AlertDialogContentPrimitive>\n>(function AlertDialogContent({ className, ...props }, ref) {\n\treturn (\n\t\t<AlertDialogContentPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t// Same flush shell as Dialog: regions own their insets and the rules between them.\n\t\t\t\t'alert-dialog-content--component flex max-h-[min(90vh,48rem)] flex-col gap-0 overflow-hidden rounded-surface bg-popover p-0 text-popover-foreground sm:max-w-md', surfaceDividerRecipes.modal.shell,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nAlertDialogContent.displayName = 'AlertDialogContent';\n\nexport const AlertDialogHeader = React.forwardRef<\n\tHTMLDivElement,\n\tReact.HTMLAttributes<HTMLDivElement> & { textGap?: TextGap; align?: 'start' | 'center' }\n>(function AlertDialogHeader({ className, textGap = 'normal', align = 'start', ...props }, ref) {\n\t// Owned here rather than by the raw header, whose responsive variants force\n\t// start alignment from `sm`; a confirmation chooses its own alignment.\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tdata-slot=\"alert-dialog-header\"\n\t\t\tdata-modal-region=\"\"\n\t\t\tdata-align={align}\n\t\t\tclassName={cn(\n\t\t\t\t'alert-dialog-header--component flex flex-col',\n\t\t\t\tmodalRegionRecipes.header,\n\t\t\t\talign === 'center' ? 'items-center text-center' : 'items-start text-start',\n\t\t\t\ttextGap === 'dense' ? 'gap-dense' : 'gap-normal',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nAlertDialogHeader.displayName = 'AlertDialogHeader';\n\n/** Scroll-owning region between the pinned heading and the pinned answers. */\nexport const AlertDialogBody = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n\tfunction AlertDialogBody({ className, ...props }, ref) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tdata-slot=\"alert-dialog-body\"\n\t\t\t\tdata-modal-region=\"\"\n\t\t\t\tclassName={cn('alert-dialog-body--component', modalRegionRecipes.body, className)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\n\nAlertDialogBody.displayName = 'AlertDialogBody';\n\nexport const AlertDialogFooter = React.forwardRef<\n\tHTMLDivElement,\n\tReact.ComponentPropsWithoutRef<typeof AlertDialogFooterPrimitive>\n>(function AlertDialogFooter({ className, ...props }, ref) {\n\treturn (\n\t\t<AlertDialogFooterPrimitive\n\t\t\tref={ref}\n\t\t\tdata-modal-region=\"\"\n\t\t\tclassName={cn(\n\t\t\t\t'alert-dialog-footer--component', modalRegionRecipes.footer,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nAlertDialogFooter.displayName = 'AlertDialogFooter';\n\nexport const AlertDialogTitle = React.forwardRef<\n\tReact.ElementRef<typeof AlertDialogTitlePrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof AlertDialogTitlePrimitive>\n>(function AlertDialogTitle({ children, className, ...props }, ref) {\n\treturn (\n\t\t<AlertDialogTitlePrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('alert-dialog-title--component m-0', titleTypography, className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<Text tag=\"span\" type=\"inherit\" size=\"base\" weight=\"semibold\" lineHeight=\"snug\">\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : children}\n\t\t</AlertDialogTitlePrimitive>\n\t);\n});\n\nAlertDialogTitle.displayName = 'AlertDialogTitle';\n\nexport const AlertDialogDescription = React.forwardRef<\n\tReact.ElementRef<typeof AlertDialogDescriptionPrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof AlertDialogDescriptionPrimitive>\n>(function AlertDialogDescription({ children, className, ...props }, ref) {\n\treturn (\n\t\t<AlertDialogDescriptionPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('alert-dialog-description--component m-0', className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isSimpleText(children) ? (\n\t\t\t\t<Text tag=\"span\" type=\"secondary\" lineHeight=\"relaxed\">\n\t\t\t\t\t{children}\n\t\t\t\t</Text>\n\t\t\t) : children}\n\t\t</AlertDialogDescriptionPrimitive>\n\t);\n});\n\nAlertDialogDescription.displayName = 'AlertDialogDescription';\n\nexport const AlertDialogMedia = React.forwardRef<\n\tHTMLDivElement,\n\tReact.ComponentPropsWithoutRef<typeof AlertDialogMediaPrimitive>\n>(function AlertDialogMedia({ className, ...props }, ref) {\n\treturn (\n\t\t<AlertDialogMediaPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('alert-dialog-media--component', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nAlertDialogMedia.displayName = 'AlertDialogMedia';\n\nexport const AlertDialogAction = React.forwardRef<\n\tReact.ElementRef<typeof AlertDialogActionPrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof AlertDialogActionPrimitive>\n>(function AlertDialogAction({ className, ...props }, ref) {\n\treturn (\n\t\t<AlertDialogActionPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('alert-dialog-action--component', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nAlertDialogAction.displayName = 'AlertDialogAction';\n\nexport const AlertDialogCancel = React.forwardRef<\n\tReact.ElementRef<typeof AlertDialogCancelPrimitive>,\n\tReact.ComponentPropsWithoutRef<typeof AlertDialogCancelPrimitive>\n>(function AlertDialogCancel({ className, ...props }, ref) {\n\treturn (\n\t\t<AlertDialogCancelPrimitive\n\t\t\tref={ref}\n\t\t\tclassName={cn('alert-dialog-cancel--component', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n});\n\nAlertDialogCancel.displayName = 'AlertDialogCancel';\n\nexport { AlertDialogOverlay, AlertDialogPortal };\n","import { isValidElement, memo, useMemo } from 'react';\n\nimport { Button } from '../../base/buttons';\nimport { Alert, AlertDescription } from '../../base/feedback';\nimport {\n\tAlertDialog as BaseAlertDialog,\n\tAlertDialogBody,\n\tAlertDialogContent,\n\tAlertDialogDescription,\n\tAlertDialogFooter,\n\tAlertDialogHeader,\n\tAlertDialogTitle,\n\tAlertDialogTrigger,\n} from '../../base/display/alert-dialog';\nimport { Stack } from '../../base/structure';\nimport { compositionRhythm } from '../../base/structure/composition.recipes';\nimport { useStrings } from '../../../lib/strings';\nimport { useOverlayConfig } from '../../../lib/ui-provider';\nimport { cn } from '../../../lib/utils';\n\nimport { useOverlayActions, useOverlayVisibility } from './hooks';\nimport { usePendingOverlayFocus } from './hooks/use-pending-overlay-focus';\nimport { overlayToneGlyphs } from './overlay-tone-icon';\nimport { defaultAlertDialogStrings } from './overlays.strings';\nimport type { ConfirmDialogProps } from './overlays.types';\n\nfunction ConfirmDialogImpl({\n\topen,\n\tonOpenChange,\n\tonClose,\n\tchildren,\n\ttitle,\n\tdescription,\n\tvisuallyHideHeader = false,\n\tclassName,\n\tcontentClassName,\n\tsurfaceStyle,\n\tinitialFocusRef,\n\tcloseOnEscape = true,\n\tstrings: customStrings,\n\tshowCancel = true,\n\tshowConfirm = true,\n\tonCancel,\n\tonConfirm,\n\tonAsyncConfirm,\n\tonError,\n\tcloseOnAsyncComplete = true,\n\tconfirmTone,\n\tconfirmStyle = 'solid',\n\tloading = false,\n\tformId,\n\tfooter,\n\ttone = 'neutral',\n\tshowIcon = false,\n\talertMessage,\n\ttrigger,\n\tdestructive = false,\n\talign,\n}: ConfirmDialogProps) {\n\tconst { defaultConfirmAlign } = useOverlayConfig();\n\tconst resolvedAlign = align ?? defaultConfirmAlign ?? 'center';\n\tconst visibility = useOverlayVisibility({ open, onOpenChange, onClose });\n\tconst mergedStrings = useStrings(defaultAlertDialogStrings, customStrings);\n\tconst resolvedConfirmTone = useMemo(() => {\n\t\tif (destructive) return 'destructive' as const;\n\t\tif (confirmTone) return confirmTone;\n\t\tconst toneMap = {\n\t\t\tneutral: 'primary',\n\t\t\tdestructive: 'destructive',\n\t\t\twarning: 'warning',\n\t\t\tinfo: 'primary',\n\t\t\tsuccess: 'success',\n\t\t} as const;\n\t\treturn toneMap[tone];\n\t}, [destructive, confirmTone, tone]);\n\n\tconst { strings, confirmButtonOnClick, effectiveLoading, handleCancel } =\n\t\tuseOverlayActions({\n\t\t\tcloseDialog: visibility.hide,\n\t\t\tonConfirm,\n\t\t\tonAsyncConfirm,\n\t\t\tonError,\n\t\t\tcloseOnAsyncComplete,\n\t\t\tconfirmTone: resolvedConfirmTone,\n\t\t\tloading,\n\t\t\tformId,\n\t\t\tonCancel,\n\t\t\tcustomStrings: mergedStrings,\n\t\t});\n\n\t/*\n\t * `destructive` is documented as the destructive *presentation*, but it only\n\t * ever reached the confirm button — the icon and the inline alert still came\n\t * from `tone`, which defaults to neutral. The result was a red confirm button\n\t * beside a grey question mark: two signals disagreeing about how serious the\n\t * action is. An explicit `tone` still wins, so this only fills the gap.\n\t */\n\tconst resolvedTone = destructive && tone === 'neutral' ? ('destructive' as const) : tone;\n\tconst toneGlyph = overlayToneGlyphs[resolvedTone];\n\tconst pendingFocusRef = usePendingOverlayFocus(effectiveLoading);\n\tconst hasHeading = Boolean(title || description || (showIcon && !visuallyHideHeader));\n\tconst hasContent = Boolean(children || alertMessage);\n\n\treturn (\n\t\t<BaseAlertDialog\n\t\t\topen={visibility.open}\n\t\t\tonOpenChange={(nextOpen, details) => {\n\t\t\t\tif (!nextOpen && (effectiveLoading || (details.reason === 'escape-key' && !closeOnEscape))) {\n\t\t\t\t\tdetails.cancel();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvisibility.setOpen(nextOpen);\n\t\t\t}}\n\t\t>\n\t\t\t{!!trigger && (isValidElement(trigger) ? (\n\t\t\t\t<AlertDialogTrigger render={trigger} />\n\t\t\t) : (\n\t\t\t\t<AlertDialogTrigger render={<Button type=\"button\" tone=\"secondary\" buttonStyle=\"outline\" />} className=\"overlay-trigger--fallback\">\n\t\t\t\t\t{trigger}\n\t\t\t\t</AlertDialogTrigger>\n\t\t\t))}\n\n\t\t\t<AlertDialogContent\n\t\t\t\tref={pendingFocusRef}\n\t\t\t\tstyle={surfaceStyle}\n\t\t\t\tinitialFocus={initialFocusRef}\n\t\t\t\taria-label={title ? undefined : strings.alertDialogLabel}\n\t\t\t\tclassName={cn('confirm-dialog--component alert-dialog--component', className)}\n\t\t\t>\n\t\t\t\t{!!hasHeading && (\n\t\t\t\t\t<AlertDialogHeader\n\t\t\t\t\t\talign={resolvedAlign}\n\t\t\t\t\t\tclassName={cn('alert-dialog--header', visuallyHideHeader && 'sr-only')}\n\t\t\t\t\t>\n\t\t\t\t\t\t{!!showIcon && !visuallyHideHeader && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'mb-space-sm flex size-avatar-lg shrink-0 items-center justify-center rounded-full',\n\t\t\t\t\t\t\t\t\ttoneGlyph.surface,\n\t\t\t\t\t\t\t\t\ttoneGlyph.color,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<toneGlyph.Glyph className=\"size-icon-lg\" />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{!!title && <AlertDialogTitle>{title}</AlertDialogTitle>}\n\t\t\t\t\t\t{!!description && <AlertDialogDescription>{description}</AlertDialogDescription>}\n\t\t\t\t\t</AlertDialogHeader>\n\t\t\t\t)}\n\n\t\t\t\t{!!hasContent && (\n\t\t\t\t\t<AlertDialogBody className={cn('alert-dialog--body', contentClassName)}>\n\t\t\t\t\t\t{!!alertMessage && (\n\t\t\t\t\t\t\t<Alert tone={resolvedTone} className={cn(!!children && 'mb-space-md')}>\n\t\t\t\t\t\t\t\t<AlertDescription>{alertMessage}</AlertDescription>\n\t\t\t\t\t\t\t</Alert>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</AlertDialogBody>\n\t\t\t\t)}\n\n\t\t\t\t{!!(showCancel || showConfirm || footer) && (\n\t\t\t\t\t<AlertDialogFooter className=\"alert-dialog--footer\">\n\t\t\t\t\t\t{footer ?? (\n\t\t\t\t\t\t\t<Stack\n\t\t\t\t\t\t\t\tdirection={{ base: 'vertical', sm: 'horizontal' }}\n\t\t\t\t\t\t\t\tgap={compositionRhythm.commands}\n\t\t\t\t\t\t\t\talign={{ base: 'stretch', sm: 'center' }}\n\t\t\t\t\t\t\t\tjustify={resolvedAlign === 'center' ? 'center' : 'end'}\n\t\t\t\t\t\t\t\tclassName=\"w-full\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{!!showCancel && (\n\t\t\t\t\t\t\t\t\t<Button type=\"button\" tone=\"secondary\" buttonStyle=\"outline\" onClick={handleCancel} disabled={effectiveLoading}>\n\t\t\t\t\t\t\t\t\t\t{strings.cancel}\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{!!showConfirm && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\ttone={resolvedConfirmTone}\n\t\t\t\t\t\t\t\t\t\tbuttonStyle={confirmStyle}\n\t\t\t\t\t\t\t\t\t\tonClick={confirmButtonOnClick}\n\t\t\t\t\t\t\t\t\t\tdisabled={effectiveLoading}\n\t\t\t\t\t\t\t\t\t\tloading={effectiveLoading}\n\t\t\t\t\t\t\t\t\t\tstrings={{ loading: strings.loading }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{strings.confirm}\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</AlertDialogFooter>\n\t\t\t\t)}\n\t\t\t</AlertDialogContent>\n\t\t</BaseAlertDialog>\n\t);\n}\n\nexport const ConfirmDialog = memo(ConfirmDialogImpl);\nConfirmDialog.displayName = 'ConfirmDialog';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,SAASA,EAAO,EAAE,GAAGkF,KAAqC;CACxD,OAAO,kBAACjF,EAAgB,MAAjB;EAAsB,aAAU;EAAS,OAAM;EAAa,GAAIiF;CAAQ,CAAA;AACjF;AAEA,SAAShF,EAAc,EACrB,aAAU,IACV,GAAGgF,KACqD;CACxD,IAAMG,IAAaC,IAAU,kBAAClB,GAAD,CAAO,CAAA,IAAI,KAAA;CAExC,OACE,kBAACnE,EAAgB,SAAjB;EACE,aAAU;EACV,QAAQoF;EACR,GAAIH;CACL,CAAA;AAEL;AAEA,SAASK,GAAa,EAAE,cAAW,cAAW,GAAGL,KAAuC;CACtF,IAAMM,IAAoBzC,EAAwB0C,CAAS;CAC3D,OAAO,kBAACxF,EAAgB,QAAjB;EAAwB,WAAWuF;EAAmB,aAAU;EAAgB,WAAWtB,EAAgBwB,CAAS;EAAG,GAAIR;CAAQ,CAAA;AAC5I;AAEA,SAAS/E,EAAY,EAAE,GAAG+E,KAAsC;CAC9D,OAAO,kBAACjF,EAAgB,OAAjB;EAAuB,aAAU;EAAe,GAAIiF;CAAQ,CAAA;AACrE;AAEA,SAASU,GAAc,EACrB,cACA,GAAGV,KAC8B;CACjC,OACE,kBAACjF,EAAgB,UAAjB;EACE,aAAU;EACV,WAAW+C,EAAG6B,GAAqBV,EAAc,UAAU,WAAWuB,CAAS;EAC/E,GAAIR;CACL,CAAA;AAEL;AAEA,SAAS9E,GAAc,EACrB,cACA,cACA,aACA,qBAAkB,IAClB,mBACA,YAAY0F,GACZ,GAAGZ,KAGqC;CACxC,IAAMM,IAAoBzC,EAAwB0C,CAAS,GACrDM,IAAejB,EAAsBkB,CAAc,GACnDC,IAAgB9C,EAAsB,GACtC,EAAE,YAAS,kBAAeC,EAAoB0C,CAAc;CAClE,OACE,kBAACP,IAAD;EAAc,WAAWC;EAAzB,UAAA,CACE,kBAACI,IAAD,EAAe,aAAa,CAACK,EAAgB,CAAA,GAC7C,kBAAChG,EAAgB,OAAjB;GACE,aAAU;GACV,WAAW+C,EACTmB,EAAc,QACd,2LACAuB,CACF;GACA,GAAIR;GACQ;GACZ,gBAAgBa;GATlB,UAAA;IAWGG;IACD,kBAACtC,GAAD,EAAe,YAAuB,CAAA;IACrC,CAAC,CAACuC,KACD,kBAAClG,EAAgB,OAAjB;KACE,aAAU;KACV,QACE,kBAACI,GAAD;MACE,SAAQ;MACR,sBAAmB;MACnB,WAAWmD,EAAsB;MACjC,MAAK;KACN,CAAA;KARL,UAAA,CAWE,kBAAC4C,GAAD,CACC,CAAA,GACD,kBAAC,QAAD;MAAM,WAAU;MAAU,UAAA;KAAW,CAAA,CAChB;;GAEJ;EACX,CAAA,CAAA;;AAElB;AAEA,SAAS9F,EAAa,EAAE,cAAW,GAAG4E,KAAsC;CAC1E,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAWlC,EAAG,iBAAiB0C,CAAS;EACxC,GAAIR;CACL,CAAA;AAEL;AAEA,SAAS3E,GAAa,EACpB,cACA,qBAAkB,IAClB,aACA,GAAG2E,KAGF;CACD,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAWlC,EACT,oDACA0C,CACF;EACA,GAAIR;EANN,UAAA,CAQGqB,GACA,CAAC,CAACJ,KACD,kBAAClG,EAAgB,OAAjB;GAAuB,QAAQ,kBAACI,GAAD,EAAQ,SAAQ,UAAW,CAAA;GAAG,UAAA;EAEtC,CAAA,CAEtB;;AAET;AAEA,SAASG,GAAY,EACnB,cACA,aAAU,IACV,GAAG0E,KACmD;CACtD,IAAMG,IAAaC,IAAU,kBAAClB,GAAD,CAAO,CAAA,IAAI,KAAA;CAExC,OACE,kBAACnE,EAAgB,OAAjB;EACE,aAAU;EACV,QAAQoF;EACR,WAAWrC,EAAG,4BAA4B0C,CAAS;EACnD,GAAIR;CACL,CAAA;AAEL;AAEA,SAASzE,GAAkB,EACzB,cACA,aAAU,IACV,GAAGyE,KACyD;CAC5D,IAAMG,IAAaC,IAAU,kBAAClB,GAAD,CAAO,CAAA,IAAI,KAAA;CAExC,OACE,kBAACnE,EAAgB,aAAjB;EACE,aAAU;EACV,QAAQoF;EACR,WAAWrC,EAAG,sGAAsG0C,CAAS;EAC7H,GAAIR;CACL,CAAA;AAEL;;;ACvJA,SAASxE,GAAa,GAA2D;CAChF,OAAO,OAAOiG,KAAU,YAAY,OAAOA,KAAU,YAAY,OAAOA,KAAU;AACnF;AAOA,IAAMhG,KAAkBqC,EAAGiB,EAAU,MAAMF,EAAY,UAAUC,EAAgB,IAAI,GAExEpD,KAASC,GAETiG,KAAgBhG,EAAM,WAGjC,SAAuB,EAAE,cAAW,GAAGoE,KAAS,GAAK;CACtD,OACC,kBAACnE,GAAD;EACM;EACL,WAAWiC,EAAG,6BAA6B0C,CAAS;EACpD,GAAIR;CACJ,CAAA;AAEH,CAAC;AAED,GAAc,cAAc;AAE5B,IAAa6B,KAAcjG,EAAM,WAG/B,SAAqB,EAAE,cAAW,GAAGoE,KAAS,GAAK;CACpD,OACC,kBAAClE,GAAD;EACM;EACL,WAAWgC,EAAG,2BAA2B0C,CAAS;EAClD,GAAIR;CACJ,CAAA;AAEH,CAAC;AAED,GAAY,cAAc;AAE1B,IAAa8B,KAAgBlG,EAAM,WAGjC,SAAuB,EAAE,cAAW,GAAGoE,KAAS,GAAK;CACtD,OACC,kBAACjE,IAAD;EACM;EACL,WAAW+B,EAGV,sKAAsK0B,EAAsB,MAAM,OAClMgB,CACD;EACA,GAAIR;CACJ,CAAA;AAEH,CAAC;AAED,GAAc,cAAc;AAE5B,IAAa+B,KAAenG,EAAM,WAGhC,SAAsB,EAAE,cAAW,aAAU,UAAU,GAAGoE,KAAS,GAAK;CACzE,OACC,kBAAChE,GAAD;EACM;EACL,qBAAkB;EAClB,WAAW8B,EACV,4BAA4B2B,EAAmB,QAC/CnB,EAAsB,QACtB0D,MAAY,UAAU,cAAc,cACpCxB,CACD;EACA,GAAIR;CACJ,CAAA;AAEH,CAAC;AAED,GAAa,cAAc;AAG3B,IAAaiC,KAAarG,EAAM,WAC/B,SAAoB,EAAE,cAAW,GAAGoE,KAAS,GAAK;CACjD,OACC,kBAAC,OAAD;EACM;EACL,aAAU;EACV,qBAAkB;EAClB,WAAWlC,EACV,0BAA0B2B,EAAmB,MAC7Ce,CACD;EACA,GAAIR;CACJ,CAAA;AAEH,CACD;AAEA,GAAW,cAAc;AAEzB,IAAakC,KAAetG,EAAM,WAGhC,SAAsB,EAAE,cAAW,GAAGoE,KAAS,GAAK;CACrD,OACC,kBAAC/D,IAAD;EACM;EACL,qBAAkB;EAClB,WAAW6B,EACV,4BAA4B2B,EAAmB,QAC/Ce,CACD;EACA,GAAIR;CACJ,CAAA;AAEH,CAAC;AAED,GAAa,cAAc;AAE3B,IAAamC,KAAcvG,EAAM,WAG/B,SAAqB,EAAE,aAAU,cAAW,GAAGoE,KAAS,GAAK;CAC9D,OACC,kBAAC9D,IAAD;EACM;EACL,WAAW4B,EAAG,+BAA+BrC,IAAiB+E,CAAS;EACvE,GAAIR;EAEH,UAAAxE,GAAa6F,CAAQ,IACrB,kBAACzC,GAAD;GACC,KAAI;GACJ,MAAK;GACL,MAAK;GACL,QAAO;GACP,YAAW;GACX,WAAU;GAET;EACI,CAAA,IACHyC;CACiB,CAAA;AAExB,CAAC;AAED,GAAY,cAAc;AAE1B,IAAae,KAAoBxG,EAAM,WAGrC,SAA2B,EAAE,aAAU,cAAW,GAAGoE,KAAS,GAAK;CACpE,OACC,kBAAC7D,IAAD;EACM;EACL,WAAW2B,EAAG,qCAAqC0C,CAAS;EAC5D,GAAIR;EAEH,UAAAxE,GAAa6F,CAAQ,IACrB,kBAACzC,GAAD;GACC,KAAI;GACJ,MAAK;GACL,YAAW;GACX,WAAU;GAET;EACI,CAAA,IACHyC;CACuB,CAAA;AAE9B,CAAC;AAED,GAAkB,cAAc;;;AC3LhC,IAAagB,KAAwC;CACpD,SAAS;CACT,QAAQ;CACR,OAAO;CACP,SAAS;CACT,aAAa;CACb,aAAa;CACb,kBAAkB;AACnB,GAEaC,KAA4C;CACxD,SAAS;CACT,QAAQ;CACR,OAAO;CACP,SAAS;CACT,aAAa;CACb,aAAa;CACb,kBAAkB;AACnB;;;ACQA,SAAgBC,GAAkB,EACjC,gBACA,cACA,mBACA,0BAAuB,IACvB,iBAAc,WACd,aAAU,IACV,WACA,aACA,kBACA,cAAW,IACX,UAAO,WACP,cACqD;CACrD,IAAMC,IAAUC,EAAWJ,IAAuBK,CAAa,GAEzD,CAACC,GAAaC,KAAkBC,EAAS,EAAK,GAC9CC,IAAeC,EAAO,EAAK,GAE3BC,IAAgBC,EAAY,YAAY;EAC7C,IAAI,OAAWH,EAAa,UAC5B;OAAII,GAAW;IAEd,AADAA,EAAU,GACVC,EAAY;IACZ;GACD;GAEA,IAAIC,GAAgB;IAEnB,AADA,EAAa,UAAU,IACvBR,EAAe,EAAI;IACnB,IAAI;KAEH,AADA,MAAMQ,EAAe,GACjBC,KACHF,EAAY;IAEd,SAASG,GAAO;KAGf,AAAIC,KAASA,EAAQD,CAAK;IAE3B,UAAU;KAET,AADA,EAAa,UAAU,IACvBV,EAAe,EAAK;IACrB;IACA;GACD;GAEA,EAAY;EAtBZ;CAuBD,GAAG;EAACY;EAASN;EAAWE;EAAgBC;EAAsBF;EAAaI;CAAO,CAAC,GAE7EE,IAAeR,QAAkB;EACtC,AAAIO,KAAWV,EAAa,YAC5BY,IAAW,GACXP,EAAY;CACb,GAAG;EAACK;EAASE;EAAUP;CAAW,CAAC,GAE7BQ,IAAmBV,EAAY,YAAY;EAChD,IAAI,CAACW,KAAUJ,KAAWV,EAAa,SACtC;EAGD,IAAMe,IAAO,SAAS,eAAeD,CAAM;EAE3C,AAAMC,aAAgB,mBAItBA,EAAK,cAAc;CACpB,GAAG,CAACD,GAAQJ,CAAO,CAAC;CAYpB,OAAO;EACN;EACA;EACA;EACA;EACA,kBAfwBM,QACnBC,IACDC,MAAS,gBAAsB,gBAC/BA,MAAS,YAAkB,YAC3BA,MAAS,YAAkB,YACxBC,KAAe,YAJAA,KAAe,WAKnC;GAACF;GAAUC;GAAMC;EAAW,CAS9B;EACA,sBAR4BL,IAASD,IAAmBX;EASxD,kBAAkBL,KAAea;CAClC;AACD;;;ACvEA,SAASU,GACR,GACA,GACU;CAIV,OAHI,OAAOC,KAAa,aACfA,EAAwCC,CAAW,IAErDD;AACR;AAEA,SAASE,GACR,GACA,GACoC;CACpC,IAAMC,IAAS,CAAC;CAChB,KAAK,IAAMC,KAAOC,GACjB,EAAOD,KAAO,EAAQE,IAAQF;CAE/B,OAAOD;AACR;AAEA,SAASI,GACR,GACA,GACA,GACU;CACV,OAAOF,EAAK,MAAM,MAAQG,EAASJ,OAASK,EAAKL,EAAI;AACtD;AAEA,SAAgBM,GAAqB,EACpC,iBAAc,IACd,MAAMC,GACN,iBACA,WACA,eACgC,CAAC,GAA+B;CAChE,IAAM,CAACC,GAAcC,KAAmBnC,EAASoC,CAAW,GACtDC,IAAeJ,MAAmB,KAAA,GAClCK,IAAOD,IAAeJ,IAAiBC,GACvCK,IAAUrC,EAAOoC,CAAI;CAC3B,EAAQ,UAAUA;CAElB,IAAME,IAAUpC,GACd,MAAa;EACb,IAAMqC,IAAepB,GAAiBC,GAAUiB,EAAQ,OAAO,GACzDG,IAAUH,EAAQ,YAAYE;EAMpC,AAJKJ,KACJF,EAAgBM,CAAY,GAGxBC,MAEL,EAAQ,UAAUD,GAClBE,IAAeF,CAAY,GACvBA,IACHG,IAAS,IAETC,IAAU;CAEZ,GACA;EAACR;EAAcQ;EAASD;EAAQD;CAAY,CAC7C;CAsBA,OAAO;EACN;EACA,QAAQL;EACR;EACA,MAxBYlC,QAAkB;GAC9B,EAAQ,EAAI;EACb,GAAG,CAACoC,CAAO,CAsBV;EACA,MArBYpC,QAAkB;GAC9B,EAAQ,EAAK;EACd,GAAG,CAACoC,CAAO,CAmBV;EACA,QAlBcpC,QAAkB;GAChC,GAAS,MAAgB,CAACmB,CAAW;EACtC,GAAG,CAACiB,CAAO,CAgBV;EACA,cAfoBvB,SACb;GACN;GACA,cAAcuB;EACf,IACA,CAACF,GAAME,CAAO,CAUd;CACD;AACD;AAEA,SAAgBM,GACf,GACA,EACC,gBACA,MAAMb,GACN,iBACA,uBAAoB,OACyC,CAAC,GACL;CAG1D,IAAMc,IAAUpB,GACV,CAACO,GAAcC,KAAmBnC,QACjCwB,GAAoBuB,GAASX,CAAW,CAC/C,GACMC,IAAeJ,MAAmB,KAAA,GAClCL,IAAQJ,GAAoBuB,GAASV,IAAeJ,IAAiBC,CAAY,GACjFc,IAAW9C,EAAO0B,CAAK;CAC7B,EAAS,UAAUA;CAEnB,IAAMqB,IAAa7C,GACjB,GAAW,MAAsC;EACjD,IAAM8C,IAAgBF,EAAS,SACzBP,IAAepB,GAAiBC,GAAU4B,EAAcxB,EAAI,GAC5DyB,IAAY;GACjB,GAAGD;IACFxB,IAAMe;EACR;EAEA,IAAIW,KAAqBX,GACnB,KAAA,IAAMY,KAAQN,GAClB,AAAIM,MAAS3B,MACZ,EAAU2B,KAAQ;EAKrB,IAAMX,IAAUb,GAAqBqB,GAAeC,GAAWJ,CAAO;EAMtE,AAJKV,KACJF,EAAgBgB,CAAS,GAGrBT,MAEL,EAAS,UAAUS,GACnBR,IAAejB,GAAKe,GAAcU,CAAS;CAC5C,GACA;EAACC;EAAmBf;EAAcU;EAASJ;CAAY,CACxD;CAEA,OAAO1B,QAAc;EACpB,IAAMQ,IAAS,CAAC;EAEhB,KAAK,IAAMC,KAAOqB,GAAS;GAC1B,IAAMT,IAAOV,EAAMF,IACbc,KAA8B,MAAa;IAChD,EAAWd,GAAKJ,CAAQ;GACzB;GAEA,EAAOI,KAAO;IACb;IACA,QAAQY;IACR;IACA,YAAYW,EAAWvB,GAAK,EAAI;IAChC,YAAYuB,EAAWvB,GAAK,EAAK;IACjC,cAAcuB,EAAWvB,IAAM,MAAgB,CAACH,CAAW;IAC3D,cAAc;KACb;KACA,cAAciB;IACf;GACD;EACD;EAEA,OAAOf;CACR,GAAG;EAACsB;EAASE;EAAYrB;CAAK,CAAC;AAChC;;;ACvOA,SAAgB0B,GAAuB,GAAkB,IAAgC,IAAM;CAC9F,IAAMC,IAAWrD,EAAuB,IAAI;CAU5C,OATAsD,QAAsB;EACrB,IAAMC,IAAQF,EAAS;EACvB,IAAI,CAACG,KAAW,CAACC,KAAS,CAACF,GAAO;EAClC,IAAMG,IAASH,EAAM,cAAc;EAEnC,CAAIG,MAAWH,EAAM,cAAc,QAASG,KAAUH,EAAM,SAASG,CAAM,KAAKA,EAAO,QAAQ,WAAW,MACzGH,EAAM,MAAM,EAAE,eAAe,GAAK,CAAC;CAErC,GAAG,CAACC,GAASC,CAAK,CAAC,GACZJ;AACR;;;ACNA,IAAaM,KAAoB;CAChC,SAAS;EAAE,OAAOC;EAAY,OAAO;EAAyB,SAAS;CAAW;CAClF,aAAa;EAAE,OAAOC;EAAa,OAAO;EAAoB,SAASvH,EAAY,YAAY;CAAK;CACpG,SAAS;EAAE,OAAOwH;EAAe,OAAO;EAAuB,SAASxH,EAAY,QAAQ;CAAK;CACjG,MAAM;EAAE,OAAOyH;EAAM,OAAO;EAAa,SAASzH,EAAY,KAAK;CAAK;CACxE,SAAS;EAAE,OAAO0H;EAAa,OAAO;EAAgB,SAAS1H,EAAY,QAAQ;CAAK;AACzF;AAOA,SAAgB2H,GAAgB,EAAE,WAA+B;CAChE,IAAM,EAAE,UAAO,aAAUN,GAAkB1C;CAC3C,OACC,kBAAC,QAAD;EAAM,eAAY;EAAO,WAAWlG,EAAG,gEAAgEiB,EAAU,MAAMD,EAAgB,IAAI;EAC1I,UAAA,kBAACmI,GAAD,EAAO,WAAWnJ,EAAG,aAAaoJ,CAAK,EAAI,CAAA;CACtC,CAAA;AAER;;;ACDA,IAAMC,KAA4C;CACjD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,OAAO;CACP,OAAO;CACP,OAAO;CACP,MAAM;AACP;AAEA,SAASC,GAAiB,EACzB,SACA,iBACA,YACA,aACA,UACA,gBACA,wBAAqB,IACrB,cACA,qBACA,qBAAkB,IAClB,iBACA,oBACA,mBAAgB,IAChB,0BAAuB,IACvB,SAAS1E,GACT,gBAAa,IACb,iBAAc,IACd,aACA,cACA,mBACA,YACA,0BAAuB,IACvB,iBAAc,WACd,kBAAe,SACf,aAAU,IACV,WACA,WACA,cAAW,IACX,UAAO,WACP,cAAW,IACX,iBACA,UAAO,MACP,YACA,YACqB;CACrB,IAAM,EAAE,0BAAuB9E,EAAiB,GAC1CyJ,KAAYC,KAASC,KAAsB,aAAa,UACxDC,IAAa3C,GAAqB;EAAE;EAAM;EAAc;CAAQ,CAAC,GACjE,EACL,YACA,qBACA,yBACA,qBACA,oBACGtC,GAAkB;EACrB,aAAaiF,EAAW;EACxB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,CAAC,GAEKC,IAAkBtB,GAAuBuB,CAAgB,GACzDC,IAAa,GAAQtG,KAAYuG,IACjCC,KAAYC,KAAcC,KAAeC;CAE/C,OACC,kBAAC5L,IAAD;EACC,MAAMoL,EAAW;EACjB,OAAA;EACA,yBAAyBE,KAAoB,CAACO;EAC9C,eAAe,GAAU,MAAY;GACpC,IAAI,CAAC9D,MAAauD,KAAqBQ,EAAQ,WAAW,gBAAgB,CAACC,IAAiB;IAC3F,EAAQ,OAAO;IACf;GACD;GACA,EAAW,QAAQhE,CAAQ;EAC5B;EAVD,UAAA,CAYE,CAAC,CAACiE,MAAYC,GAAeD,CAAO,IACpC,kBAACxG,IAAD,EAAe,QAAQwG,EAAU,CAAA,IAEjC,kBAACxG,IAAD;GAAe,QAAQ,kBAACjD,GAAD;IAAQ,MAAK;IAAS,MAAK;IAAY,aAAY;GAAW,CAAA;GAAG,WAAU;GAChG,UAAAyJ;EACa,CAAA,IAGhB,kBAACtG,IAAD;GACC,KAAK2F;GACL,iBAAiB;GACjB,OAAOa;GACP,cAAcC;GACd,cAAYC,IAAQ,KAAA,IAAYhG,EAAQ;GACxC,WAAW1E,EACV,8CACAqJ,GAAasB,IACbjI,CACD;GAVD,UAAA;IAYE,CAAC,EAAEgI,KAASE,MACZ,kBAAC3G,IAAD;KACC,cAAYsF,IAAW,WAAW;KAClC,WAAWvJ,EACV,kBACAuJ,KAAYvJ,EAAG,eAAeQ,EAAsB,cAAc,GAClEqK,KAAsB,SACvB;KAEA,UAAA,kBAACvJ,GAAD;MAAO,WAAWiI,IAAW,aAAa;MAAc,KAAI;MAAK,OAAOA,IAAW,WAAW;MAAS,MAAM;MAA7G,UAAA,CACE,CAAC,CAACuB,KAAY,kBAAC5B,IAAD,EAAuB,QAAO,CAAA,GAC7C,kBAAC5H,GAAD;OAAO,KAAI;OAAS,OAAOiI,IAAW,WAAW,KAAA;OAAW,WAAWvJ,EAAG,WAAWuJ,IAAW,WAAW,QAAQ;OAAnH,UAAA,CACE,CAAC,CAACmB,KAAS,kBAACrG,IAAD,EAAA,UAAcqG,EAAmB,CAAA,GAC5C,CAAC,CAACE,KAAe,kBAACtG,IAAD,EAAA,UAAoBsG,EAA+B,CAAA,CAC/D;MACD,CAAA,CAAA;;IACM,CAAA;IAGd,CAAC,CAACf,KACF,kBAAC1F,IAAD;KAAY,WAAWnE,EAAG,gBAAgB+K,CAAgB;KAA1D,UAAA,CACE,CAAC,CAACjB,KACF,kBAACrI,IAAD;MAAa;MAAM,WAAU;MAC5B,UAAA,kBAACD,IAAD,EAAA,UAAmBsI,EAA+B,CAAA;KAC5C,CAAA,GAEPvG,CACU;;IAGZ,CAAC,CAACwG,MACF,kBAAC3F,IAAD;KAAc,WAAU;KACtB,UAAA8F,KACA,kBAAC5I,GAAD;MACC,WAAW;OAAE,MAAM;OAAY,IAAI;MAAa;MAChD,KAAKM,GAAkB;MACvB,OAAO;OAAE,MAAM;OAAW,IAAI;MAAS;MACvC,SAAS2H,IAAW,WAAW;MAC/B,WAAU;MALX,UAAA,CAOE,CAAC,CAACS,KACF,kBAACnJ,GAAD;OAAQ,MAAK;OAAS,MAAK;OAAY,aAAY;OAAU,SAAS8E;OAAc,UAAUiE;OAC5F,UAAAlF,EAAQ;MACF,CAAA,GAER,CAAC,CAACuF,KACF,kBAACpJ,GAAD;OACC,MAAK;OACL,MAAMmK;OACN,aAAaC;OACb,SAASC;OACT,UAAUtB;OACV,SAASA;OACT,SAAS,EAAE,SAASlF,EAAQ,QAAQ;OAEnC,UAAAA,EAAQ;MACF,CAAA,CAEH;;IAEK,CAAA;IAQd,CAAC,CAACvB,KACF,kBAACY,IAAD;KACC,UAAU6F;KACV,QACC,kBAAC/I,GAAD;MACC,MAAK;MACL,MAAK;MACL,aAAY;MACZ,MAAK;MACL,UAAA;MACA,sBAAmB;MACnB,WAAWb,EAAGQ,EAAsB,OAAO,8BAA8BuB,EAAmB,UAAU;MAEtG,UAAA,kBAACoJ,IAAD,EAAG,WAAU,YAAa,CAAA;KACnB,CAAA;KAET,cAAYzG,EAAQ;IACpB,CAAA;GAEY;EACJ,CAAA,CAAA;;AAEd;AAEA,IAAa0G,KAAeC,EAAK/B,EAAgB;AACjD,GAAa,cAAc;;;AC5M3B,IAAMgC,KAA6C;CAClD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,OAAO;CACP,OAAO;CACP,OAAO;CACP,MAAM;AACP;AAEA,SAASC,GAAiB,EACzB,SACA,iBACA,YACA,aACA,UACA,gBACA,wBAAqB,IACrB,qBAAkB,IAClB,cACA,qBACA,iBACA,oBACA,mBAAgB,IAChB,0BAAuB,IACvB,SAAS3G,GACT,gBAAa,IACb,iBAAc,IACd,aACA,cACA,mBACA,YACA,0BAAuB,IACvB,iBAAc,WACd,kBAAe,SACf,aAAU,IACV,WACA,WACA,cAAW,IACX,UAAO,WACP,cAAW,IACX,iBACA,eAAY,SACZ,WAAQ,MACR,gBAAa,IACb,WAAQ,IACR,cACqB;CACrB,IAAM8E,KAAa3C,GAAqB;EAAE;EAAM;EAAc;CAAQ,CAAC,GACjE,EACL,YACA,sBACA,0BACA,qBACA,qBACGtC,GAAkB;EACrB,aAAaiF,GAAW;EACxB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,CAAC,GAEK8B,KAAeC,MAAc,UAAUA,MAAc,SACrD9B,KAAkBtB,GAAuBuB,GAAkBlB,CAAK,GAChEmB,KAAa,GAAQtG,KAAYuG,IACjCC,KAAY2B,MAAe1B,KAAcC,KAAeC;CAE9D,OACC,kBAACvJ,GAAD;EACC,MAAM+I,GAAW;EACV;EAGP,yBAAyBE,KAAoB,CAACO,KAAwBzB,MAAU;EAChF,eAAe,GAAU,MAAY;GACpC,IAAI,CAACrC,MAAauD,KAAqBQ,EAAQ,WAAW,gBAAgB,CAACC,IAAiB;IAC3F,EAAQ,OAAO;IACf;GACD;GACA,GAAW,QAAQhE,CAAQ;EAC5B;EAZD,UAAA,CAcE,CAAC,CAACiE,MAAYC,GAAeD,CAAO,IACpC,kBAACqB,GAAD,EAAc,QAAQrB,EAAU,CAAA,IAEhC,kBAACqB,GAAD;GAAc,QAAQ,kBAAC9K,GAAD;IAAQ,MAAK;IAAS,MAAK;IAAY,aAAY;GAAW,CAAA;GAAG,WAAU;GAC/F,UAAAyJ;EACY,CAAA,IAGf,kBAACjK,GAAD;GACC,KAAKsJ;GACL,MAAM8B;GACN,iBAAiB;GACjB,OAAOjB;GACP,cAAcC;GACd,cAAYC,IAAQ,KAAA,IAAYhG,EAAQ;GAIxC,cAAYgE,MAAU,KAAQ,UAAU,KAAA;GACxC,WAAW1I,EACV,8CACAwL,MAAgB,oDAChBA,MAAgBF,GAAcM,IAC9BlJ,CACD;GAhBD,UAAA;IAkBE,CAAC,EAAEgI,KAASE,MACZ,kBAAClK,GAAD;KAAa,WAAWV,EAAG,kBAAkB6K,KAAsB,SAAS;KAC3E,UAAA,kBAACvJ,GAAD;MAAO,WAAU;MAAa,KAAI;MAAK,OAAM;MAAQ,MAAM;MAA3D,UAAA,CACE,CAAC,CAACwJ,KAAY,kBAAC5B,IAAD,EAAuB,QAAO,CAAA,GAC7C,kBAAC5H,GAAD;OAAO,KAAI;OAAS,WAAU;OAA9B,UAAA,CACE,CAAC,CAACoJ,KAAS,kBAACxK,GAAD,EAAA,UAAawK,EAAkB,CAAA,GAC1C,CAAC,CAACE,KAAe,kBAAC3K,GAAD,EAAA,UAAmB2K,EAA8B,CAAA,CAC7D;MACD,CAAA,CAAA;;IACK,CAAA;IAGb,CAAC,CAACf,MACF,kBAACvJ,GAAD;KAAW,WAAWN,EAAG,gBAAgB+K,CAAgB;KAAzD,UAAA,CACE,CAAC,CAACjB,KACF,kBAACrI,IAAD;MAAa;MAAM,WAAU;MAC5B,UAAA,kBAACD,IAAD,EAAA,UAAmBsI,EAA+B,CAAA;KAC5C,CAAA,GAEPvG,CACS;;IAGX,CAAC,CAACwG,MACF,kBAACxJ,GAAD;KAAa,WAAU;KACrB,UAAA2J,KACA,kBAAC5I,GAAD;MACC,WAAW;OAAE,MAAM;OAAY,IAAI;MAAa;MAChD,KAAKM,GAAkB;MACvB,OAAO;OAAE,MAAM;OAAW,IAAI;MAAS;MACvC,SAAQ;MACR,WAAU;MALX,UAAA,CAOE,CAAC,CAACoI,KACF,kBAACnJ,GAAD;OAAQ,MAAK;OAAS,MAAK;OAAY,aAAY;OAAU,SAAS8E;OAAc,UAAUiE;OAC5F,UAAAlF,EAAQ;MACF,CAAA,GAER,CAAC,CAACuF,KACF,kBAACpJ,GAAD;OACC,MAAK;OACL,MAAMmK;OACN,aAAaC;OACb,SAASC;OACT,UAAUtB;OACV,SAASA;OACT,SAAS,EAAE,SAASlF,EAAQ,QAAQ;OAEnC,UAAAA,EAAQ;MACF,CAAA,CAEH;;IAEI,CAAA;IAQb,CAAC,CAACvB,KACF,kBAAC1C,GAAD;KACC,UAAUmJ;KACV,QACC,kBAAC/I,GAAD;MACC,MAAK;MACL,MAAK;MACL,aAAY;MACZ,MAAK;MACL,UAAA;MACA,sBAAmB;MACnB,WAAWb,EAAGQ,EAAsB,OAAO,8BAA8BuB,EAAmB,UAAU;MAEtG,UAAA,kBAACoJ,IAAD,EAAG,WAAU,YAAa,CAAA;KACnB,CAAA;KAET,cAAYzG,EAAQ;IACpB,CAAA;GAEW;EACR,CAAA,CAAA;;AAET;AAEA,IAAamH,KAAeR,EAAKE,EAAgB;AACjD,GAAa,cAAc;;;ACzN3B,SAAShN,GAAY,EAAE,GAAG2D,KAA0C;CAClE,OAAO,kBAAC1D,EAAqB,MAAtB;EAA2B,aAAU;EAAe,GAAI0D;CAAQ,CAAA;AACzE;AAEA,SAASzD,GAAmB,EAAE,GAAGyD,KAA6C;CAC5E,OACE,kBAAC1D,EAAqB,SAAtB;EAA8B,aAAU;EAAuB,GAAI0D;CAAQ,CAAA;AAE/E;AAEA,SAAS+J,GAAkB,EAAE,cAAW,cAAW,GAAG/J,KAA4C;CAChG,IAAMM,IAAoBzC,EAAwB0C,CAAS;CAC3D,OACE,kBAACjE,EAAqB,QAAtB;EAA6B,WAAWgE;EAAmB,aAAU;EAAsB,WAAWtB,EAAgBwB,CAAS;EAAG,GAAIR;CAAQ,CAAA;AAElJ;AAEA,SAASgK,GAAmB,EAC1B,cACA,GAAGhK,KACmC;CACtC,OACE,kBAAC1D,EAAqB,UAAtB;EACE,aAAU;EACV,WAAWwB,EAAG6B,GAAqBV,EAAc,UAC/C,WACAuB,CACF;EACA,GAAIR;CACL,CAAA;AAEL;AAEA,SAASxD,GAAmB,EAC1B,cACA,cACA,UAAO,WACP,aACA,YAAYoE,GACZ,GAAGZ,KAGqC;CACxC,IAAMM,IAAoBzC,EAAwB0C,CAAS,GACrDQ,IAAgB9C,EAAsB,GACtC,EAAE,YAAS,kBAAeC,EAAoB0C,CAAc;CAClE,OACE,kBAACmJ,IAAD;EAAmB,WAAWzJ;EAA9B,UAAA,CACE,kBAAC0J,IAAD,EAAoB,aAAa,CAACjJ,EAAgB,CAAA,GAClD,kBAACzE,EAAqB,OAAtB;GACE,aAAU;GACV,aAAWmM;GACX,WAAW3K,EACTmB,EAAc,QACd,yRACAuB,CACF;GACA,GAAIR;GACQ;GATd,UAAA,CAWGgB,GACD,kBAACtC,GAAD,EAAe,YAAuB,CAAA,CACZ;EACX,CAAA,CAAA;;AAEvB;AAkBA,SAASjC,GAAkB,EACzB,cACA,GAAGuD,KAC2B;CAC9B,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAWlC,EACT,yJACA0C,CACF;EACA,GAAIR;CACL,CAAA;AAEL;AAEA,SAAStD,GAAiB,EACxB,cACA,GAAGsD,KAC2B;CAC9B,OACE,kBAAC,OAAD;EACE,aAAU;EACV,WAAWlC,EACT,uLACA0C,CACF;EACA,GAAIR;CACL,CAAA;AAEL;AAEA,SAASrD,GAAiB,EACxB,cACA,GAAGqD,KACuD;CAC1D,OACE,kBAAC1D,EAAqB,OAAtB;EACE,aAAU;EACV,WAAWwB,EACT,mJACA0C,CACF;EACA,GAAIR;CACL,CAAA;AAEL;AAEA,SAASpD,GAAuB,EAC9B,cACA,GAAGoD,KAC6D;CAChE,OACE,kBAAC1D,EAAqB,aAAtB;EACE,aAAU;EACV,WAAWwB,EACT,sGACA0C,CACF;EACA,GAAIR;CACL,CAAA;AAEL;AAEA,SAASnD,GAAkB,EACzB,cACA,GAAGmD,KACmC;CACtC,OACE,kBAAClD,GAAD;EACE,aAAU;EACV,WAAWgB,EAAG0C,CAAS;EACvB,GAAIR;CACL,CAAA;AAEL;AAEA,SAASjD,GAAkB,EACzB,cACA,aAAU,WACV,UAAO,WACP,GAAGiD,KAE4D;CAC/D,OACE,kBAAC1D,EAAqB,OAAtB;EACE,aAAU;EACV,WAAWwB,EAAG0C,CAAS;EACvB,QAAQ,kBAAC1D,GAAD;GAAiB;GAAe;EAAO,CAAA;EAC/C,GAAIkD;CACL,CAAA;AAEL;;;AChKA,SAASwK,GAAa,GAA2D;CAChF,OAAO,OAAO/I,KAAU,YAAY,OAAOA,KAAU,YAAY,OAAOA,KAAU;AACnF;AAGA,IAAMgJ,KAAkB3M,EAAGiB,EAAU,MAAMF,EAAY,UAAUC,EAAgB,IAAI,GAExE9B,KAAcC,IAEd0N,KAAqBzN,EAAM,WAGtC,SAA4B,EAAE,cAAW,GAAG8C,KAAS,GAAK;CAC3D,OACC,kBAAC7C,IAAD;EACM;EACL,WAAWW,EAAG,mCAAmC0C,CAAS;EAC1D,GAAIR;CACJ,CAAA;AAEH,CAAC;AAED,GAAmB,cAAc;AAEjC,IAAa4K,KAAqB1N,EAAM,WAGtC,SAA4B,EAAE,cAAW,GAAG8C,KAAS,GAAK;CAC3D,OACC,kBAAC5C,IAAD;EACM;EACL,WAAWU,EAEV,kKAAkK0B,EAAsB,MAAM,OAC9LgB,CACD;EACA,GAAIR;CACJ,CAAA;AAEH,CAAC;AAED,GAAmB,cAAc;AAEjC,IAAa6K,KAAoB3N,EAAM,WAGrC,SAA2B,EAAE,cAAW,aAAU,UAAU,WAAQ,SAAS,GAAG8C,KAAS,GAAK;CAG/F,OACC,kBAAC,OAAD;EACM;EACL,aAAU;EACV,qBAAkB;EAClB,cAAYsH;EACZ,WAAWxJ,EACV,gDACA2B,EAAmB,QACnB6H,MAAU,WAAW,6BAA6B,0BAClDtF,MAAY,UAAU,cAAc,cACpCxB,CACD;EACA,GAAIR;CACJ,CAAA;AAEH,CAAC;AAED,GAAkB,cAAc;AAGhC,IAAa8K,KAAkB5N,EAAM,WACpC,SAAyB,EAAE,cAAW,GAAG8C,KAAS,GAAK;CACtD,OACC,kBAAC,OAAD;EACM;EACL,aAAU;EACV,qBAAkB;EAClB,WAAWlC,EAAG,gCAAgC2B,EAAmB,MAAMe,CAAS;EAChF,GAAIR;CACJ,CAAA;AAEH,CACD;AAEA,GAAgB,cAAc;AAE9B,IAAa+K,KAAoB7N,EAAM,WAGrC,SAA2B,EAAE,cAAW,GAAG8C,KAAS,GAAK;CAC1D,OACC,kBAAC3C,IAAD;EACM;EACL,qBAAkB;EAClB,WAAWS,EACV,kCAAkC2B,EAAmB,QACrDe,CACD;EACA,GAAIR;CACJ,CAAA;AAEH,CAAC;AAED,GAAkB,cAAc;AAEhC,IAAagL,KAAmB9N,EAAM,WAGpC,SAA0B,EAAE,aAAU,cAAW,GAAG8C,KAAS,GAAK;CACnE,OACC,kBAAC1C,IAAD;EACM;EACL,WAAWQ,EAAG,qCAAqC2M,IAAiBjK,CAAS;EAC7E,GAAIR;EAEH,UAAAwK,GAAanJ,CAAQ,IACrB,kBAACzC,GAAD;GAAM,KAAI;GAAO,MAAK;GAAU,MAAK;GAAO,QAAO;GAAW,YAAW;GACvE;EACI,CAAA,IACHyC;CACsB,CAAA;AAE7B,CAAC;AAED,GAAiB,cAAc;AAE/B,IAAa4J,KAAyB/N,EAAM,WAG1C,SAAgC,EAAE,aAAU,cAAW,GAAG8C,KAAS,GAAK;CACzE,OACC,kBAACzC,IAAD;EACM;EACL,WAAWO,EAAG,2CAA2C0C,CAAS;EAClE,GAAIR;EAEH,UAAAwK,GAAanJ,CAAQ,IACrB,kBAACzC,GAAD;GAAM,KAAI;GAAO,MAAK;GAAY,YAAW;GAC3C;EACI,CAAA,IACHyC;CAC4B,CAAA;AAEnC,CAAC;AAED,GAAuB,cAAc;AAErC,IAAa6J,KAAmBhO,EAAM,WAGpC,SAA0B,EAAE,cAAW,GAAG8C,KAAS,GAAK;CACzD,OACC,kBAACxC,IAAD;EACM;EACL,WAAWM,EAAG,iCAAiC0C,CAAS;EACxD,GAAIR;CACJ,CAAA;AAEH,CAAC;AAED,GAAiB,cAAc;AAE/B,IAAamL,KAAoBjO,EAAM,WAGrC,SAA2B,EAAE,cAAW,GAAG8C,KAAS,GAAK;CAC1D,OACC,kBAACvC,IAAD;EACM;EACL,WAAWK,EAAG,kCAAkC0C,CAAS;EACzD,GAAIR;CACJ,CAAA;AAEH,CAAC;AAED,GAAkB,cAAc;AAEhC,IAAaoL,KAAoBlO,EAAM,WAGrC,SAA2B,EAAE,cAAW,GAAG8C,KAAS,GAAK;CAC1D,OACC,kBAACtC,IAAD;EACM;EACL,WAAWI,EAAG,kCAAkC0C,CAAS;EACzD,GAAIR;CACJ,CAAA;AAEH,CAAC;AAED,GAAkB,cAAc;;;AClMhC,SAASqL,GAAkB,EAC1B,SACA,iBACA,YACA,aACA,UACA,gBACA,wBAAqB,IACrB,cACA,qBACA,iBACA,oBACA,mBAAgB,IAChB,SAAS3I,GACT,gBAAa,IACb,iBAAc,IACd,aACA,cACA,mBACA,YACA,0BAAuB,IACvB,gBACA,kBAAe,SACf,aAAU,IACV,WACA,WACA,UAAO,WACP,cAAW,IACX,iBACA,YACA,iBAAc,IACd,YACsB;CACtB,IAAM,EAAE,2BAAwB9E,EAAiB,GAC3C0N,IAAgBhE,KAASiE,KAAuB,UAChD/D,IAAa3C,GAAqB;EAAE;EAAM;EAAc;CAAQ,CAAC,GACjE2G,IAAgB/I,EAAWH,IAA2BI,CAAa,GACnE+I,IAAsB3H,QACvB4H,IAAoB,gBACpBzH,KAQG;EANN,SAAS;EACT,aAAa;EACb,SAAS;EACT,MAAM;EACN,SAAS;CAEH,EAAQD,IACb;EAAC0H;EAAazH;EAAaD;CAAI,CAAC,GAE7B,EAAE,YAAS,yBAAsB,qBAAkB,qBACxDzB,GAAkB;EACjB,aAAaiF,EAAW;EACxB;EACA;EACA;EACA;EACA,aAAaiE;EACb;EACA;EACA;EACA,eAAeD;CAChB,CAAC,GASIG,IAAeD,KAAe1H,MAAS,YAAa,gBAA0BA,GAC9E4H,IAAYlF,GAAkBiF,IAC9BlE,IAAkBtB,GAAuBuB,CAAgB,GACzDmE,IAAa,GAAQrD,KAASE,KAAgBE,KAAY,CAACD,IAC3DhB,IAAa,GAAQtG,KAAYuG;CAEvC,OACC,kBAACjK,IAAD;EACC,MAAM6J,EAAW;EACjB,eAAe,GAAU,MAAY;GACpC,IAAI,CAACrD,MAAauD,KAAqBQ,EAAQ,WAAW,gBAAgB,CAACC,IAAiB;IAC3F,EAAQ,OAAO;IACf;GACD;GACA,EAAW,QAAQhE,CAAQ;EAC5B;EARD,UAAA,CAUE,CAAC,CAACiE,MAAYC,GAAeD,CAAO,IACpC,kBAACuC,IAAD,EAAoB,QAAQvC,EAAU,CAAA,IAEtC,kBAACuC,IAAD;GAAoB,QAAQ,kBAAChM,GAAD;IAAQ,MAAK;IAAS,MAAK;IAAY,aAAY;GAAW,CAAA;GAAG,WAAU;GACrG,UAAAyJ;EACkB,CAAA,IAGrB,kBAACwC,IAAD;GACC,KAAKnD;GACL,OAAOa;GACP,cAAcC;GACd,cAAYC,IAAQ,KAAA,IAAYhG,EAAQ;GACxC,WAAW1E,EAAG,qDAAqD0C,CAAS;GAL7E,UAAA;IAOE,CAAC,CAACqL,KACF,kBAAChB,IAAD;KACC,OAAOS;KACP,WAAWxN,EAAG,wBAAwB6K,KAAsB,SAAS;KAFtE,UAAA;MAIE,CAAC,CAACC,KAAY,CAACD,KACf,kBAAC,QAAD;OACC,eAAY;OACZ,WAAW7K,EACV,qFACA8N,EAAU,SACVA,EAAU,KACX;OAEA,UAAA,kBAACA,EAAU,OAAX,EAAiB,WAAU,eAAgB,CAAA;MACtC,CAAA;MAEN,CAAC,CAACpD,KAAS,kBAACwC,IAAD,EAAA,UAAmBxC,EAAwB,CAAA;MACtD,CAAC,CAACE,KAAe,kBAACuC,IAAD,EAAA,UAAyBvC,EAAoC,CAAA;KAC7D;;IAGnB,CAAC,CAACf,KACF,kBAACmD,IAAD;KAAiB,WAAWhN,EAAG,sBAAsB+K,CAAgB;KAArE,UAAA,CACE,CAAC,CAACjB,KACF,kBAACrI,IAAD;MAAO,MAAMoM;MAAc,WAAW7N,EAAG,CAAC,CAACuD,KAAY,aAAa;MACnE,UAAA,kBAAC/B,IAAD,EAAA,UAAmBsI,EAA+B,CAAA;KAC5C,CAAA,GAEPvG,CACe;;IAGjB,CAAC,EAAEyG,KAAcC,KAAeC,MAChC,kBAAC+C,IAAD;KAAmB,WAAU;KAC3B,UAAA/C,KACA,kBAAC5I,GAAD;MACC,WAAW;OAAE,MAAM;OAAY,IAAI;MAAa;MAChD,KAAKM,GAAkB;MACvB,OAAO;OAAE,MAAM;OAAW,IAAI;MAAS;MACvC,SAAS4L,MAAkB,WAAW,WAAW;MACjD,WAAU;MALX,UAAA,CAOE,CAAC,CAACxD,KACF,kBAACnJ,GAAD;OAAQ,MAAK;OAAS,MAAK;OAAY,aAAY;OAAU,SAAS8E;OAAc,UAAUiE;OAC5F,UAAAlF,EAAQ;MACF,CAAA,GAER,CAAC,CAACuF,KACF,kBAACpJ,GAAD;OACC,MAAK;OACL,MAAM8M;OACN,aAAa1C;OACb,SAASC;OACT,UAAUtB;OACV,SAASA;OACT,SAAS,EAAE,SAASlF,EAAQ,QAAQ;OAEnC,UAAAA,EAAQ;MACF,CAAA,CAEH;;IAEU,CAAA;GAED;EACJ,CAAA,CAAA;;AAEnB;AAEA,IAAasJ,KAAgB3C,EAAKkC,EAAiB;AACnD,GAAc,cAAc"}
@@ -1,331 +0,0 @@
1
- "use client";
2
- import { useStrings as e } from "./lib/strings.js";
3
- import { t } from "./utils-B6kKb8jB.js";
4
- import { a as n, n as r } from "./buttons-BedGfygC.js";
5
- import { c as i, s as a } from "./typography-BQnine1k.js";
6
- import { n as o, t as s } from "./text.styles-B64My8RZ.js";
7
- import { t as c } from "./structure-DuxKl954.js";
8
- import { a as l, c as u, n as d, o as f, r as p, t as m } from "./feedback-Dm4izqFn.js";
9
- import { n as h, t as g } from "./composition.recipes-COdiFhxB.js";
10
- import { n as _, t as v } from "./action-menu-Dr8K-ghE.js";
11
- import { t as y } from "./badge-xIiV_E7f.js";
12
- import { n as b, t as x } from "./page-header-commands-7P3sfE9u.js";
13
- import { t as S } from "./overflow-tab-bar-IVFVQFV6.js";
14
- import { f as C } from "./hooks-DB6CJ4MR.js";
15
- import { i as w, t as T } from "./containers-CIxwbZt5.js";
16
- import { forwardRef as E, useEffect as D, useMemo as O, useState as k } from "react";
17
- import { Fragment as A, jsx as j, jsxs as M } from "react/jsx-runtime";
18
- import { ArrowLeft as N } from "lucide-react";
19
- //#region src/components/layout/page/page.strings.ts
20
- var P = {
21
- loadingLabel: "Loading content",
22
- loadingDescription: "Preparing the latest data for this view.",
23
- errorTitle: "Content unavailable",
24
- errorDescription: "The content could not be loaded.",
25
- retryLabel: "Try again",
26
- emptyTitle: "No content found",
27
- emptyDescription: "There is no content available for this view."
28
- };
29
- //#endregion
30
- //#region src/components/layout/page/partials/page-header.tsx
31
- function F(e, t) {
32
- return typeof e == "function" ? e(t) : e ?? t.defaultContent;
33
- }
34
- function I({ title: e, description: l, textGap: u = "dense", headingTag: d = "h1", titleIcon: f, titleIconHref: p, onTitleIconClick: m, titleIconLabel: h = "Open title link", backHref: g, onBack: _, backLabel: v = "Back", titleBadges: w = [], primaryAction: T, secondaryActions: E, maxVisibleSecondaryActions: D, moreActionsLabel: O = "More actions", tabs: k, actions: P, slots: I, renderLink: ee, className: L, contentClassName: R, actionsClassName: z, titleClassName: B, titleIconClassName: V, descriptionClassName: H }) {
35
- let U = C({ renderLink: ee }), te = g || _ ? /* @__PURE__ */ j("div", {
36
- className: "flex items-center gap-space-sm shrink-0",
37
- children: g && !_ ? U({
38
- href: g,
39
- "aria-label": v,
40
- className: t("page-header--back-link", n({
41
- tone: "secondary",
42
- buttonStyle: "ghost",
43
- size: "sm",
44
- iconOnly: !0
45
- })),
46
- children: /* @__PURE__ */ j(A, { children: /* @__PURE__ */ j(N, {
47
- className: "size-icon rtl:rotate-180",
48
- "aria-hidden": "true"
49
- }) })
50
- }) : /* @__PURE__ */ j(r, {
51
- type: "button",
52
- tone: "secondary",
53
- buttonStyle: "ghost",
54
- size: "sm",
55
- iconOnly: !0,
56
- className: "page-header--back-button",
57
- onClick: _,
58
- "aria-label": v,
59
- children: /* @__PURE__ */ j(N, {
60
- className: "size-icon rtl:rotate-180",
61
- "aria-hidden": "true"
62
- })
63
- })
64
- }) : null, W = (() => {
65
- if (!f) return null;
66
- let e = /* @__PURE__ */ j(f, {
67
- className: "size-icon",
68
- "aria-hidden": "true"
69
- }), i = t("page-header--title-icon flex size-icon shrink-0 items-center justify-center text-muted-foreground", V);
70
- return p && !m ? U({
71
- href: p,
72
- "aria-label": h,
73
- className: t("page-header--title-icon-link", n({
74
- tone: "secondary",
75
- buttonStyle: "ghost",
76
- size: "sm",
77
- iconOnly: !0
78
- }), V),
79
- children: /* @__PURE__ */ j(A, { children: e })
80
- }) : m ? /* @__PURE__ */ j(r, {
81
- type: "button",
82
- tone: "secondary",
83
- buttonStyle: "ghost",
84
- size: "sm",
85
- iconOnly: !0,
86
- className: t("page-header--title-icon-button", V),
87
- onClick: m,
88
- "aria-label": h,
89
- children: e
90
- }) : /* @__PURE__ */ j("span", {
91
- "aria-hidden": "true",
92
- className: i,
93
- children: e
94
- });
95
- })(), G = I?.back ?? te, K = G || W ? /* @__PURE__ */ M(c, {
96
- direction: "horizontal",
97
- align: "center",
98
- gap: "sm",
99
- wrap: !1,
100
- children: [G, W]
101
- }) : null, q = K != null, J = b(T, E), Y = J ? /* @__PURE__ */ M(A, { children: [P, /* @__PURE__ */ j(x, {
102
- primaryAction: T,
103
- secondaryActions: E,
104
- maxVisibleSecondaryActions: D,
105
- moreActionsLabel: O,
106
- renderLink: U
107
- })] }) : P, X = F(I?.actions, {
108
- renderLink: U,
109
- defaultContent: Y
110
- }), ne = X != null && X !== !1, re = F(I?.beforeTitle, {
111
- renderLink: U,
112
- defaultContent: null
113
- }), Z = F(I?.afterDescription, {
114
- renderLink: U,
115
- defaultContent: null
116
- }), Q = w.length ? /* @__PURE__ */ j(c, {
117
- direction: "horizontal",
118
- gap: "sm",
119
- wrap: !0,
120
- className: "page-header--badges min-w-0 max-w-full",
121
- children: w.map((e, t) => /* @__PURE__ */ j(y, {
122
- tone: e.tone ?? "secondary",
123
- children: e.label
124
- }, e.key ?? t))
125
- }) : null, $ = F(I?.titleSuffix, {
126
- renderLink: U,
127
- defaultContent: Q
128
- }), ie = typeof l == "string" || typeof l == "number" || typeof l == "bigint", ae = typeof e == "string" || typeof e == "number" || typeof e == "bigint";
129
- return /* @__PURE__ */ j("header", {
130
- className: t("layout-page-header--component page-heading--component page-header--component @container/page-header w-full min-w-0", L),
131
- children: /* @__PURE__ */ M(c, {
132
- gap: "xl",
133
- children: [/* @__PURE__ */ M(c, {
134
- gap: "sm",
135
- className: t("page-header--content-row min-w-0", R),
136
- children: [re, /* @__PURE__ */ M("div", {
137
- className: "page-header--headline-row flex min-w-0 flex-wrap items-start gap-x-space-xl gap-y-space-lg",
138
- children: [/* @__PURE__ */ M("div", {
139
- className: t("page-header--copy-column page-header--title-row grid min-w-0 flex-1 basis-48 items-start gap-x-space-md @min-[40rem]/page-header:basis-96", q ? "grid-cols-[auto_minmax(0,1fr)]" : "grid-cols-1", u === "normal" ? "gap-y-normal" : "gap-y-dense"),
140
- children: [q && /* @__PURE__ */ j("span", {
141
- className: "page-header--title-prefix inline-flex shrink-0 items-center self-start",
142
- children: K
143
- }), /* @__PURE__ */ M(c, {
144
- gap: u,
145
- className: "page-header--copy-content min-w-0",
146
- children: [/* @__PURE__ */ M(c, {
147
- direction: "horizontal",
148
- gap: "md",
149
- align: "center",
150
- wrap: !0,
151
- className: "page-header--title-line min-w-0",
152
- children: [ae ? /* @__PURE__ */ j(a, {
153
- tag: d,
154
- size: o.route,
155
- className: t("page-header--title min-w-0 [overflow-wrap:anywhere] border-0 pb-0", B),
156
- children: e
157
- }) : e, $]
158
- }), (l != null && l !== !1 || Z != null && Z !== !1) && /* @__PURE__ */ M(c, {
159
- gap: "dense",
160
- className: "page-header--title-block min-w-0",
161
- children: [ie ? /* @__PURE__ */ j(i, {
162
- ...s.structuralDescription,
163
- className: t("page-header--description max-w-2xl [overflow-wrap:anywhere]", H),
164
- children: l
165
- }) : l, Z]
166
- })]
167
- })]
168
- }), ne && /* @__PURE__ */ j(c, {
169
- direction: "horizontal",
170
- gap: "md",
171
- className: t("page-header--actions max-w-full shrink-0 self-start", J && I?.actions == null && "justify-end", z),
172
- children: X
173
- })]
174
- })]
175
- }), k && k.items.length > 0 && /* @__PURE__ */ j(S, {
176
- items: k.items,
177
- value: k.value,
178
- onValueChange: k.onValueChange,
179
- className: "page-header--tabs",
180
- strings: {
181
- navigationLabel: k.label ?? "Sections",
182
- more: k.moreLabel ?? "More"
183
- }
184
- })]
185
- })
186
- });
187
- }
188
- //#endregion
189
- //#region src/components/layout/page/page.tsx
190
- var ee = {
191
- none: "py-0",
192
- sm: "py-surface-xs",
193
- md: "py-surface",
194
- lg: "py-surface-lg"
195
- }, L = E(function({ header: n, children: r, slotProps: i, slots: a, renderLink: o, maxWidth: s, narrow: _ = !1, gutter: v = "lg", padding: y = "lg", aside: b, asideRatio: x = "7/5", stickyAside: S, toolbar: C, beforeHeader: E, afterHeader: D, loading: O = !1, error: k, onRetry: A, empty: N = !1, emptySlot: F, strings: L, className: R, render: z, ...B }, V) {
196
- let H = e(P, L), { className: U, ...te } = i?.body ?? {}, { className: W, ...G } = i?.toolbar ?? {}, { className: K, ...q } = i?.footer ?? {}, J = a?.aside ?? b, Y = J != null && J !== !1, X = a?.toolbar ?? C ?? D, ne = a?.header ?? (n ? /* @__PURE__ */ j(I, {
197
- ...n,
198
- renderLink: n.renderLink ?? o
199
- }) : null), re = k instanceof Error ? k.message : typeof k == "string" || typeof k == "number" ? String(k) : H.errorDescription, Z = k && typeof k != "boolean" && typeof k != "string" && typeof k != "number" && !(k instanceof Error) ? k : void 0, Q = O ? a?.loading ?? /* @__PURE__ */ j(d, {
200
- variant: "panel",
201
- label: H.loadingLabel,
202
- description: H.loadingDescription,
203
- skeleton: !0,
204
- lines: 4
205
- }) : k ? a?.error ?? Z ?? /* @__PURE__ */ j(m, {
206
- variant: "panel",
207
- title: H.errorTitle,
208
- description: re,
209
- onRetry: A,
210
- retryLabel: H.retryLabel
211
- }) : N ? a?.empty ?? F ?? /* @__PURE__ */ j(p, { children: /* @__PURE__ */ M(f, { children: [/* @__PURE__ */ j(u, { children: H.emptyTitle }), /* @__PURE__ */ j(l, { children: H.emptyDescription })] }) }) : r, $ = Q == null ? null : /* @__PURE__ */ j("div", {
212
- ...te,
213
- "data-slot": "page-body",
214
- className: t("page--body relative flex min-w-0 w-full flex-col", g.subjects, U),
215
- children: Q
216
- });
217
- return /* @__PURE__ */ j(w, {
218
- ...B,
219
- ref: V,
220
- render: z,
221
- maxWidth: s ?? (_ ? "md" : Y ? "xl" : "lg"),
222
- gutter: v,
223
- className: t("font-sans", ee[y], R),
224
- children: /* @__PURE__ */ M(c, {
225
- gap: h.page,
226
- className: "page--component",
227
- children: [
228
- E,
229
- ne,
230
- X != null && X !== !1 && /* @__PURE__ */ j("div", {
231
- ...G,
232
- "data-slot": "page-toolbar",
233
- className: t("page--toolbar min-w-0", W),
234
- children: X
235
- }),
236
- Y ? /* @__PURE__ */ j(T, {
237
- adaptTo: "container",
238
- ratio: x,
239
- stickyAside: S,
240
- main: $,
241
- aside: J,
242
- slotProps: { aside: i?.aside }
243
- }) : $,
244
- a?.footer != null && a.footer !== !1 && /* @__PURE__ */ j("div", {
245
- ...q,
246
- "data-slot": "page-footer",
247
- className: t("page--footer min-w-0", K),
248
- children: a.footer
249
- })
250
- ]
251
- })
252
- });
253
- });
254
- L.displayName = "Page";
255
- //#endregion
256
- //#region src/components/layout/page/page.types.ts
257
- var R = { menuLabel: "More actions" }, z = "max-h-[80vh] overflow-y-auto overscroll-contain", B = 4;
258
- function V({ action: e, index: t }, n, r, i) {
259
- let a = {
260
- ...n,
261
- index: t,
262
- isInline: r
263
- }, o = !!e.disabled || !!e.loading;
264
- return {
265
- id: e.id ?? String(t),
266
- label: e.label,
267
- icon: e.icon,
268
- onClick: e.onClick,
269
- href: e.href && !e.onClick ? e.href : void 0,
270
- target: e.target,
271
- rel: e.rel,
272
- external: e.external,
273
- disabled: o,
274
- tone: e.tone ?? "secondary",
275
- buttonStyle: e.buttonStyle ?? "solid",
276
- buttonSize: e.size,
277
- group: e.group,
278
- render: e.element ?? i?.(e, a)
279
- };
280
- }
281
- function H({ actions: n, display: r = "dropdown", size: i = "sm", breakpoint: a = 1040, maxInlineActions: o = B, renderLink: s, strings: c, className: l, inlineClassName: u, menuClassName: d, renderAction: f }) {
282
- let p = e(R, c), m = C({ renderLink: s }), h = O(() => (n ?? []).map((e, t) => ({
283
- action: e,
284
- index: t
285
- })).filter(({ action: e }) => e.visible !== !1), [n]), [g, y] = k(!1);
286
- if (D(() => {
287
- if (r !== "auto" || typeof window > "u") return;
288
- let e = () => y(window.innerWidth <= a);
289
- return e(), window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
290
- }, [r, a]), h.length === 0) return null;
291
- let b = { renderLink: m }, x = (e) => m({
292
- ...e,
293
- children: e.children ?? null
294
- }), S = t("flex min-w-0 max-w-full flex-wrap items-center gap-space-sm", u, l), w = t(z, d);
295
- if (r === "dropdown" || r === "auto" && g) {
296
- let e = h.map((e) => V(e, b, !1, f));
297
- return /* @__PURE__ */ j(_, {
298
- actions: e,
299
- context: "commands",
300
- srText: p.menuLabel,
301
- align: "end",
302
- closeOnSelect: !0,
303
- contentClassName: w,
304
- preserveOrder: !0,
305
- renderLink: x
306
- });
307
- }
308
- let T = Math.max(0, o), E = h.filter(({ action: e }) => (e.placement ?? "auto") !== "menu"), A = E.slice(0, T), N = [...E.slice(T), ...h.filter(({ action: e }) => (e.placement ?? "auto") === "menu")], P = A.map((e) => V(e, b, !0, f)), F = N.map((e) => V(e, b, !1, f));
309
- return /* @__PURE__ */ M("div", {
310
- className: S,
311
- children: [/* @__PURE__ */ j(v, {
312
- actions: P,
313
- size: i,
314
- renderLink: x
315
- }), N.length > 0 && /* @__PURE__ */ j(_, {
316
- actions: F,
317
- context: "commands",
318
- srText: p.menuLabel,
319
- align: "end",
320
- closeOnSelect: !0,
321
- contentClassName: w,
322
- preserveOrder: !0,
323
- renderLink: x,
324
- buttonProps: { size: i }
325
- })]
326
- });
327
- }
328
- //#endregion
329
- export { P as a, I as i, R as n, L as r, H as t };
330
-
331
- //# sourceMappingURL=page-DUUKDAjo.js.map