admin-ui-starter-kit 0.6.1 → 0.6.2

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 (403) hide show
  1. package/.agents/skills/component-library-rules/references/components/services__hooks.md +6 -1
  2. package/dist/_shared/{overlays-CdtMAkKG.js → overlays-DW8OIK5R.js} +134 -47
  3. package/dist/_shared/overlays-DW8OIK5R.js.map +1 -0
  4. package/dist/_shared/overlays-Du65iCkx.cjs +2 -0
  5. package/dist/_shared/overlays-Du65iCkx.cjs.map +1 -0
  6. package/dist/components/features/card/index.cjs +1 -1
  7. package/dist/components/features/card/index.js +1 -1
  8. package/dist/components/features/media-library/index.cjs +1 -1
  9. package/dist/components/features/media-library/index.js +1 -1
  10. package/dist/components/features/overlays/hooks/index.d.ts +1 -0
  11. package/dist/components/features/overlays/hooks/index.d.ts.map +1 -1
  12. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts +33 -0
  13. package/dist/components/features/overlays/hooks/use-overlay-visibility.d.ts.map +1 -0
  14. package/dist/components/features/overlays/index.cjs +1 -1
  15. package/dist/components/features/overlays/index.d.ts +1 -1
  16. package/dist/components/features/overlays/index.d.ts.map +1 -1
  17. package/dist/components/features/overlays/index.js +2 -2
  18. package/dist/services/actions/index.cjs +1 -1
  19. package/dist/services/actions/index.js +1 -1
  20. package/dist/showcase/assets/{AreaChart-CGkuyNyy.js → AreaChart-CFYg5vW0.js} +1 -1
  21. package/dist/showcase/assets/{CompositeItem-DAQ048AO.js → CompositeItem-C1v8tfgt.js} +1 -1
  22. package/dist/showcase/assets/{CompositeRoot-8-OuCMMq.js → CompositeRoot-DVtTCBlx.js} +1 -1
  23. package/dist/showcase/assets/{DialogTrigger-1P-jwcoH.js → DialogTrigger-CiVZgbZe.js} +1 -1
  24. package/dist/showcase/assets/{LabelableContext-BDyZArAc.js → LabelableContext-CNcXHqnK.js} +1 -1
  25. package/dist/showcase/assets/{PreviewLayout-wYGhlcJt.js → PreviewLayout-CBTybzKu.js} +1 -1
  26. package/dist/showcase/assets/{RadioGroup-DuiI4W--.js → RadioGroup-DTNAD-0J.js} +1 -1
  27. package/dist/showcase/assets/{ScrollAreaCorner-Df5uTkWT.js → ScrollAreaCorner-Gau2B-d1.js} +1 -1
  28. package/dist/showcase/assets/{Separator-BuTBo5a_.js → Separator-DOIh4aar.js} +1 -1
  29. package/dist/showcase/assets/{ToolbarRootContext-B4S4Fn7d.js → ToolbarRootContext-BbugmthZ.js} +1 -1
  30. package/dist/showcase/assets/{accordion-D3beuJpC.js → accordion-CB4ePZYm.js} +1 -1
  31. package/dist/showcase/assets/{accordion-variants-BTMpfSPI.js → accordion-variants-De2q5GIH.js} +1 -1
  32. package/dist/showcase/assets/{action-menu-DsAr1OqF.js → action-menu-wJVcvfmC.js} +1 -1
  33. package/dist/showcase/assets/{actions-BzyHAEZR.js → actions-BL1lpPFC.js} +1 -1
  34. package/dist/showcase/assets/{activities-BgoelWKu.js → activities-C578ZINa.js} +1 -1
  35. package/dist/showcase/assets/{activities-feed-card-DI4MIm3-.js → activities-feed-card-BeXMgsNO.js} +1 -1
  36. package/dist/showcase/assets/{admin-n-JemkNh.js → admin-DKJPb23G.js} +1 -1
  37. package/dist/showcase/assets/{ai-artifact-C8CmZ94f.js → ai-artifact-BaYtjrP5.js} +1 -1
  38. package/dist/showcase/assets/{ai-chat-CTQQ4e4X.js → ai-chat-DxxlaytU.js} +1 -1
  39. package/dist/showcase/assets/{ai-elements-DGnlBq8E.js → ai-elements-BWraZPyC.js} +1 -1
  40. package/dist/showcase/assets/{ai-BXyk1mT0.js → ai-ewP8qLOJ.js} +1 -1
  41. package/dist/showcase/assets/{ai-tool-call-bHnWNBtN.js → ai-tool-call-Da4srLLe.js} +1 -1
  42. package/dist/showcase/assets/{alert-bPnj3_cC.js → alert-CQI2pomK.js} +1 -1
  43. package/dist/showcase/assets/{alert-CIHGXUul.js → alert-S12iMEhF.js} +1 -1
  44. package/dist/showcase/assets/{alert-N79A6qIx.js → alert-xINZmLgm.js} +1 -1
  45. package/dist/showcase/assets/{api-key-list-Bf1KoRJq.js → api-key-list-CL6je8dF.js} +1 -1
  46. package/dist/showcase/assets/{api-key-list-DyZ_DaRx.js → api-key-list-wxmuRN1m.js} +1 -1
  47. package/dist/showcase/assets/{app-sidebar-Co0LUSvz.js → app-sidebar-LVtcgiT_.js} +1 -1
  48. package/dist/showcase/assets/arrow-down-JuqwH6gj.js +1 -0
  49. package/dist/showcase/assets/arrow-left-BFq65-Ch.js +1 -0
  50. package/dist/showcase/assets/arrow-right-B4iFg3l1.js +1 -0
  51. package/dist/showcase/assets/arrow-up-RWJP_FHU.js +1 -0
  52. package/dist/showcase/assets/arrow-up-right-DdWl37XF.js +1 -0
  53. package/dist/showcase/assets/{avatar-CJaCYGWf.js → avatar-BEvs3dD_.js} +1 -1
  54. package/dist/showcase/assets/{avatar-DKLsNeBi.js → avatar-Bv9x1eBh.js} +1 -1
  55. package/dist/showcase/assets/{avatar-CxwFyL4T.js → avatar-CC3R0R-x.js} +1 -1
  56. package/dist/showcase/assets/{avatar-D3kvVy00.js → avatar-D29-FL5U.js} +1 -1
  57. package/dist/showcase/assets/{badge-CSMmwDLr.js → badge-B1YIk7bi.js} +1 -1
  58. package/dist/showcase/assets/{badge-check-TQRmqI7C.js → badge-check-DGmg0_g_.js} +1 -1
  59. package/dist/showcase/assets/{bell-CwRy7zpP.js → bell-Cq9n0a2v.js} +1 -1
  60. package/dist/showcase/assets/{bot-Bt02Uzhq.js → bot-DxRjlJlO.js} +1 -1
  61. package/dist/showcase/assets/{box-Bfv5RQBf.js → box-CIh-_2DI.js} +1 -1
  62. package/dist/showcase/assets/{braces-CxUoAPd4.js → braces-BI_smuFG.js} +1 -1
  63. package/dist/showcase/assets/{brain-CNapE0CP.js → brain-BCAmDdGT.js} +1 -1
  64. package/dist/showcase/assets/{brand-CBq1YoS0.js → brand-CYmrK-FI.js} +1 -1
  65. package/dist/showcase/assets/{breadcrumb-DyXpErBT.js → breadcrumb-DXOwTQNp.js} +1 -1
  66. package/dist/showcase/assets/{breadcrumb-DRioiUd_.js → breadcrumb-DdDGc08y.js} +1 -1
  67. package/dist/showcase/assets/{breadcrumbs-BzHeoItO.js → breadcrumbs-SwqzwYW_.js} +1 -1
  68. package/dist/showcase/assets/{briefcase-N74Hu0O2.js → briefcase-CKrv_pkI.js} +1 -1
  69. package/dist/showcase/assets/{building-2-D81ygy-F.js → building-2-4f1nNGpT.js} +1 -1
  70. package/dist/showcase/assets/{button-Bgqg7AmN.js → button-B9I1TrfQ.js} +1 -1
  71. package/dist/showcase/assets/{button-group-DPV1XIW3.js → button-group-DUfRVZy2.js} +1 -1
  72. package/dist/showcase/assets/{buttons-qpZWlILG.js → buttons-Crl8nJKG.js} +1 -1
  73. package/dist/showcase/assets/{calendar-DcYyOrNY.js → calendar-4Uqeswbn.js} +1 -1
  74. package/dist/showcase/assets/{calendar-D-CSqGtC.js → calendar-Cl5l4Ip1.js} +1 -1
  75. package/dist/showcase/assets/{calendar-BXG5CwbY.js → calendar-DxjW_eNc.js} +1 -1
  76. package/dist/showcase/assets/{calendar-days-CNNiyV9e.js → calendar-days-DmDuaOAc.js} +1 -1
  77. package/dist/showcase/assets/{camera-D0yVo0xC.js → camera-j8dT39qf.js} +1 -1
  78. package/dist/showcase/assets/{card-Bl-y9-8y.js → card-BQ_zBZlQ.js} +1 -1
  79. package/dist/showcase/assets/{card-CH7Ev3xS.js → card-DRalKV4i.js} +1 -1
  80. package/dist/showcase/assets/{card-primitives-CiU5lL3a.js → card-primitives-Bn6nhqUA.js} +1 -1
  81. package/dist/showcase/assets/{card-radio-group-DpeIWyiO.js → card-radio-group-Dq7AUPTp.js} +1 -1
  82. package/dist/showcase/assets/{cards-7xave3ub.js → cards-MR2JolOy.js} +1 -1
  83. package/dist/showcase/assets/{carousel--kHTFkC7.js → carousel-DMceNGDq.js} +1 -1
  84. package/dist/showcase/assets/{cell-renderers-Cx8rAZln.js → cell-renderers-VbI9xEAd.js} +1 -1
  85. package/dist/showcase/assets/{chart-DU8INHbt.js → chart-DW4naldz.js} +1 -1
  86. package/dist/showcase/assets/{chart-column-Dbekq8cy.js → chart-column-CbUwWFn7.js} +1 -1
  87. package/dist/showcase/assets/checkbox-BJ1yDAQ3.js +1 -0
  88. package/dist/showcase/assets/{checkbox-ClPnzko9.js → checkbox-BqwbtGCF.js} +1 -1
  89. package/dist/showcase/assets/chevron-down-CBa5t2E0.js +1 -0
  90. package/dist/showcase/assets/chevron-left-Dqne-r3m.js +1 -0
  91. package/dist/showcase/assets/chevron-up-DiMFydbr.js +1 -0
  92. package/dist/showcase/assets/chevrons-up-down-umMKLBIL.js +1 -0
  93. package/dist/showcase/assets/{circle-alert-9j29FrsT.js → circle-alert-BObXfzSP.js} +1 -1
  94. package/dist/showcase/assets/circle-check-BPhdxh7K.js +1 -0
  95. package/dist/showcase/assets/circle-check-big-BsQpd0CS.js +1 -0
  96. package/dist/showcase/assets/circle-dbSBYjvr.js +1 -0
  97. package/dist/showcase/assets/circle-dot-Bj1an-fp.js +1 -0
  98. package/dist/showcase/assets/{circle-question-mark-BRiF5RV4.js → circle-question-mark-BeRdyU_C.js} +1 -1
  99. package/dist/showcase/assets/{circle-x-BF20gddw.js → circle-x-Dh3sb4UC.js} +1 -1
  100. package/dist/showcase/assets/clock-3-R65SwQwa.js +1 -0
  101. package/dist/showcase/assets/clock-BApGqXwn.js +1 -0
  102. package/dist/showcase/assets/{code-xml-D2f-X63y.js → code-xml-q7JPxij0.js} +1 -1
  103. package/dist/showcase/assets/{collapsible-Ru5-bssh.js → collapsible-BbiGHywy.js} +1 -1
  104. package/dist/showcase/assets/{collapsible-CF0oQTVS.js → collapsible-DDV7VHy5.js} +1 -1
  105. package/dist/showcase/assets/{combobox-DpJTW_Rq.js → combobox-Dv_OkynR.js} +1 -1
  106. package/dist/showcase/assets/{command-Dno8Ogez.js → command-BSmiujfZ.js} +1 -1
  107. package/dist/showcase/assets/{command-LRFStKBy.js → command-Cw81GF7c.js} +1 -1
  108. package/dist/showcase/assets/{comment-composer-Dht7nfbv.js → comment-composer-C09JANlW.js} +1 -1
  109. package/dist/showcase/assets/{comment-item-B6IgQsMr.js → comment-item-DsQshj1L.js} +1 -1
  110. package/dist/showcase/assets/{comments-B3ksV3Mn.js → comments-CO3QCKyX.js} +1 -1
  111. package/dist/showcase/assets/{commerce-B1_Offbz.js → commerce-BvnnX8Ui.js} +1 -1
  112. package/dist/showcase/assets/{composite-BjQWIYF-.js → composite-BjZbcKJw.js} +1 -1
  113. package/dist/showcase/assets/{contact-card-Bss4YHZz.js → contact-card-Dq50G6UK.js} +1 -1
  114. package/dist/showcase/assets/{content-container-D4BM1Zro.js → content-container-BQZdQhX2.js} +1 -1
  115. package/dist/showcase/assets/{copyable-Dst8oaw5.js → copyable-BdfWxV6u.js} +1 -1
  116. package/dist/showcase/assets/{copyable-C0J88R_R.js → copyable-lUNYfscm.js} +1 -1
  117. package/dist/showcase/assets/{course-card-BuqwjqtO.js → course-card-BTIFY84q.js} +1 -1
  118. package/dist/showcase/assets/{cpu-CFy0M0rN.js → cpu-CzkgJ-zb.js} +1 -1
  119. package/dist/showcase/assets/{credit-card-CFq0S1Ma.js → credit-card-D_wnXbTK.js} +1 -1
  120. package/dist/showcase/assets/{css-variables-BAALjDwD.js → css-variables-BVjcOHGr.js} +1 -1
  121. package/dist/showcase/assets/{currency-BZzZRv2_.js → currency-BCX6yQ2j.js} +1 -1
  122. package/dist/showcase/assets/{dark-surfaces-CVKt2Yww.js → dark-surfaces-BO6sWHrV.js} +1 -1
  123. package/dist/showcase/assets/{data-view-D6_zyFwk.js → data-view-C8ThO9ha.js} +1 -1
  124. package/dist/showcase/assets/{data-view-Be0uoLqL.js → data-view-DqpNNGp5.js} +1 -1
  125. package/dist/showcase/assets/{database-DSC-ysYT.js → database-Ad0l2Bjl.js} +1 -1
  126. package/dist/showcase/assets/{date-block-Bgu_LMxB.js → date-block-CMKpiRdA.js} +1 -1
  127. package/dist/showcase/assets/{date-picker-ByYEZGMg.js → date-picker-CRogiefV.js} +1 -1
  128. package/dist/showcase/assets/{date-pickers-DzSQrvWs.js → date-pickers-CuRRGP-F.js} +1 -1
  129. package/dist/showcase/assets/{dense-info-BhFkOQbt.js → dense-info-BL_cGFVK.js} +1 -1
  130. package/dist/showcase/assets/{design-system-consistency-D6iCJLcr.js → design-system-consistency-BarrI2Uj.js} +1 -1
  131. package/dist/showcase/assets/{dialog-DzrcsKvl.js → dialog-BEKecyE3.js} +1 -1
  132. package/dist/showcase/assets/{dialog-C1heXuxu.js → dialog-DbEG3v2T.js} +1 -1
  133. package/dist/showcase/assets/{display-utilities-eu-EVMrx.js → display-utilities-CQRcCpjT.js} +1 -1
  134. package/dist/showcase/assets/{dist-BlIID0_L.js → dist-CS2Ky1_m.js} +1 -1
  135. package/dist/showcase/assets/{dist-DV4Tv32d.js → dist-q3PLGr1_.js} +1 -1
  136. package/dist/showcase/assets/{dollar-sign-qp4G3P_K.js → dollar-sign-lghPxE96.js} +1 -1
  137. package/dist/showcase/assets/{download-zlcHjSdS.js → download-Cx5kUzHm.js} +1 -1
  138. package/dist/showcase/assets/{dropdown-menu-DZ47rJaE.js → dropdown-menu-CXYQqRJA.js} +1 -1
  139. package/dist/showcase/assets/{dropzone-Dx4EqBHu.js → dropzone-DK0kBLfC.js} +1 -1
  140. package/dist/showcase/assets/{earth-BuXqXHh6.js → earth-BgJkqIAs.js} +1 -1
  141. package/dist/showcase/assets/{ellipsis-DgAjMZHc.js → ellipsis-CP0hyAeS.js} +1 -1
  142. package/dist/showcase/assets/{ellipsis-vertical-BA8_YMyV.js → ellipsis-vertical-BdpRiDbb.js} +1 -1
  143. package/dist/showcase/assets/{empty-DXjKmyNv.js → empty-CO_e2e_g.js} +1 -1
  144. package/dist/showcase/assets/{empty-item-DIGWYsI0.js → empty-item-D39AT9RK.js} +1 -1
  145. package/dist/showcase/assets/{empty-state-CkixFVN1.js → empty-state-CTQjlkxC.js} +1 -1
  146. package/dist/showcase/assets/{empty-state-BSc0tQNC.js → empty-state-Luba-tbF.js} +1 -1
  147. package/dist/showcase/assets/{enhanced-activities-CKbHgR4f.js → enhanced-activities-e2k5R4sk.js} +1 -1
  148. package/dist/showcase/assets/{enhanced-combobox-DAKQyFUg.js → enhanced-combobox-CY9QcVEl.js} +1 -1
  149. package/dist/showcase/assets/{esm-C3PfkuOc.js → esm-DPz8A4Wl.js} +1 -1
  150. package/dist/showcase/assets/{event-calendar-rNju8jaT.js → event-calendar-DuQntfyO.js} +1 -1
  151. package/dist/showcase/assets/{event-log-BUK1blGb.js → event-log-B8B_0-q5.js} +1 -1
  152. package/dist/showcase/assets/{example-PsbgbESI.js → example-Rrx9vj75.js} +1 -1
  153. package/dist/showcase/assets/{external-link-CgB9zfWz.js → external-link-BkCjE03j.js} +1 -1
  154. package/dist/showcase/assets/{eye-YnIHbdKe.js → eye-BKhfxIeD.js} +1 -1
  155. package/dist/showcase/assets/{feature-announcement-CWwjAPI1.js → feature-announcement-CRN6kk4B.js} +1 -1
  156. package/dist/showcase/assets/{file-3Z2xkc-8.js → file-BBUnjRPN.js} +1 -1
  157. package/dist/showcase/assets/{file-text-BQeGXxPG.js → file-text-Clv0qFr3.js} +1 -1
  158. package/dist/showcase/assets/{filter-layout-D7YskzbC.js → filter-layout-Bskvgeps.js} +1 -1
  159. package/dist/showcase/assets/{filters-2YY_wVwq.js → filters-DqE5xQEz.js} +1 -1
  160. package/dist/showcase/assets/{flag-Bw3wwRgF.js → flag-BQ0Brbw9.js} +1 -1
  161. package/dist/showcase/assets/{folder-open-CZ5Bq4lK.js → folder-open-CuUaUrxa.js} +1 -1
  162. package/dist/showcase/assets/{form-field-AWNJL9FM.js → form-field-Dg_Az7lk.js} +1 -1
  163. package/dist/showcase/assets/{format-DUU7-42g.js → format-BnF8gL8z.js} +1 -1
  164. package/dist/showcase/assets/{forms-CWJ3HBbk.js → forms-D2SGtkKv.js} +1 -1
  165. package/dist/showcase/assets/{funnel-vxNNph7w.js → funnel-qCC9cfXa.js} +1 -1
  166. package/dist/showcase/assets/{generic-DlyFJDj6.js → generic-0wwhvFWa.js} +1 -1
  167. package/dist/showcase/assets/{getPseudoElementBounds-CibNto5h.js → getPseudoElementBounds-DyTpOaBA.js} +1 -1
  168. package/dist/showcase/assets/{gift-BjRHqTcQ.js → gift-ibO6X3CO.js} +1 -1
  169. package/dist/showcase/assets/{giftcard-cards-DcujCFff.js → giftcard-cards-BJ0gmgv0.js} +1 -1
  170. package/dist/showcase/assets/{git-branch-B7XnpQE0.js → git-branch-QLvR3_wX.js} +1 -1
  171. package/dist/showcase/assets/{global-search-Ct7I1Xd2.js → global-search-B2zvjiO2.js} +1 -1
  172. package/dist/showcase/assets/{global-search-CWvNfmpe.js → global-search-BtYqFKyN.js} +1 -1
  173. package/dist/showcase/assets/{globe-CHleXWd2.js → globe-Byoz7QmA.js} +1 -1
  174. package/dist/showcase/assets/{gradient-card-Bw4oJljh.js → gradient-card-CymI8itB.js} +1 -1
  175. package/dist/showcase/assets/{hash-BVGqnm6_.js → hash-DL-sHZny.js} +1 -1
  176. package/dist/showcase/assets/{header-CgApizpk.js → header-C9RMgEgD.js} +1 -1
  177. package/dist/showcase/assets/{header-notifications-B2v1Mdri.js → header-notifications-BT643QVK.js} +1 -1
  178. package/dist/showcase/assets/{heart-BwvHCA-d.js → heart-gHsYuS4V.js} +1 -1
  179. package/dist/showcase/assets/{hooks-A_AQLIRZ.js → hooks-Dj4gswMj.js} +6 -3
  180. package/dist/showcase/assets/{house-opqNxOmP.js → house-Dew9jimg.js} +1 -1
  181. package/dist/showcase/assets/{icon-badge-CsG95J1Z.js → icon-badge-C-mGQdGQ.js} +1 -1
  182. package/dist/showcase/assets/{icon-badge-ognVhKWR.js → icon-badge-GMIN-bca.js} +1 -1
  183. package/dist/showcase/assets/{image-apDSlTAx.js → image-Cda8layy.js} +1 -1
  184. package/dist/showcase/assets/{inbox-WrbeTKEw.js → inbox-hJEV8TEx.js} +1 -1
  185. package/dist/showcase/assets/{index-QESvAJrb.js → index-o71HAmc3.js} +2 -2
  186. package/dist/showcase/assets/inertValue-BRyHstYf.js +1 -0
  187. package/dist/showcase/assets/{info-C3G9KRCx.js → info-B4aULRpz.js} +1 -1
  188. package/dist/showcase/assets/{inline-stat-BnjUqzDM.js → inline-stat-BzXB3FNC.js} +1 -1
  189. package/dist/showcase/assets/{inline-stat-CO01t7SJ.js → inline-stat-CDQocPgN.js} +1 -1
  190. package/dist/showcase/assets/{input-CBJy1dMs.js → input-CLysAarX.js} +1 -1
  191. package/dist/showcase/assets/{input-yYoqWQQ7.js → input-CYTQ9nWN.js} +1 -1
  192. package/dist/showcase/assets/{input-group-CZyYSq4r.js → input-group-DYMTMed1.js} +1 -1
  193. package/dist/showcase/assets/{input-group-Dfqufdp4.js → input-group-DtkAnPaQ.js} +1 -1
  194. package/dist/showcase/assets/{inputs-Bhw_FGDY.js → inputs-C2flJn12.js} +1 -1
  195. package/dist/showcase/assets/{installation-DnvS2ZUn.js → installation-CCvBKDNO.js} +1 -1
  196. package/dist/showcase/assets/{invoice-header-B9Ak8GXX.js → invoice-header-C1G_aVIm.js} +1 -1
  197. package/dist/showcase/assets/{invoice-items-DY5zUZhE.js → invoice-items-Ak0CMjDh.js} +1 -1
  198. package/dist/showcase/assets/{invoice-mini-BAryECEH.js → invoice-mini-B7Dda49y.js} +1 -1
  199. package/dist/showcase/assets/{invoice-table-BUvjee74.js → invoice-table-Bl9InDl0.js} +1 -1
  200. package/dist/showcase/assets/isSameDay-Bd_8WAf0.js +1 -0
  201. package/dist/showcase/assets/isToday-DSGtoEUa.js +1 -0
  202. package/dist/showcase/assets/{italic-CjQCLJci.js → italic-CJzEjX5j.js} +1 -1
  203. package/dist/showcase/assets/{item-DxPwk321.js → item-BL_Y_0ou.js} +1 -1
  204. package/dist/showcase/assets/{item-BMSdEK3V.js → item-Oe2aHuvr.js} +1 -1
  205. package/dist/showcase/assets/{item-D1Jxrpia.js → item-nf1zOtF7.js} +1 -1
  206. package/dist/showcase/assets/{kanban-DXWCGieQ.js → kanban-CB5Hghoo.js} +1 -1
  207. package/dist/showcase/assets/{key-round-DpuhXiJQ.js → key-round-BQwcojkz.js} +1 -1
  208. package/dist/showcase/assets/{label-D1wLK5nY.js → label-HtkE4eII.js} +1 -1
  209. package/dist/showcase/assets/{languages-CGYZVmbV.js → languages-69N5-h2e.js} +1 -1
  210. package/dist/showcase/assets/{layers-DJZSVGAu.js → layers-CBPYgoAb.js} +1 -1
  211. package/dist/showcase/assets/{layout-app-shell-UX63nzTO.js → layout-app-shell-BfNh8jd0.js} +1 -1
  212. package/dist/showcase/assets/{layout-auth-Bav5BBqp.js → layout-auth-Ct29XkSH.js} +1 -1
  213. package/dist/showcase/assets/{layout-containers-DMHD2zdV.js → layout-containers-DWN4xKbf.js} +1 -1
  214. package/dist/showcase/assets/{layout-header-CGesu_kM.js → layout-header-DUX4zFrH.js} +1 -1
  215. package/dist/showcase/assets/{layout-page-DHXu8SIv.js → layout-page-CsqULW71.js} +1 -1
  216. package/dist/showcase/assets/{layout-primitives-CokzGwd2.js → layout-primitives-CQJ0_wTo.js} +1 -1
  217. package/dist/showcase/assets/{layout-sidebar-CLUYajcu.js → layout-sidebar-la-tC4xZ.js} +1 -1
  218. package/dist/showcase/assets/{layout-users-DHUNAnFA.js → layout-users-6fAYxZ3Z.js} +1 -1
  219. package/dist/showcase/assets/{layout-workspace-y0v2FpDW.js → layout-workspace-BbDOjmrE.js} +1 -1
  220. package/dist/showcase/assets/{lib-g_kR7X9Z.js → lib-C46V0Rr-.js} +1 -1
  221. package/dist/showcase/assets/{list-checks-CXt8visd.js → list-checks-BkQYzehf.js} +1 -1
  222. package/dist/showcase/assets/{lock-CpZ5kLUd.js → lock-CMrS2EKU.js} +1 -1
  223. package/dist/showcase/assets/{lock-keyhole-Cy2raRO6.js → lock-keyhole-B1BEkNvm.js} +1 -1
  224. package/dist/showcase/assets/{mail-Cj6uT4TA.js → mail-Bo_4xDQw.js} +1 -1
  225. package/dist/showcase/assets/{mail-check-Di70bdf6.js → mail-check-BprACMug.js} +1 -1
  226. package/dist/showcase/assets/{map-DMXbG_04.js → map-Br-xZYf0.js} +3 -3
  227. package/dist/showcase/assets/{map-pin-EKhu7vEj.js → map-pin-COrIVMWa.js} +1 -1
  228. package/dist/showcase/assets/{media-library-Dnp9S0oW.js → media-library-DyPu-kR9.js} +1 -1
  229. package/dist/showcase/assets/{mention-inline-suggestions-Bp-fVNYF.js → mention-inline-suggestions-BTunE4RJ.js} +1 -1
  230. package/dist/showcase/assets/{mentions-DNRk30XZ.js → mentions-BXSq2eCS.js} +1 -1
  231. package/dist/showcase/assets/{menus-DFURb5VL.js → menus-USrp5qP5.js} +1 -1
  232. package/dist/showcase/assets/{message-square-DG0qIsG_.js → message-square-Cyrr-QgJ.js} +1 -1
  233. package/dist/showcase/assets/{metadata-list-Cb1DQd4S.js → metadata-list-BJTye3J8.js} +1 -1
  234. package/dist/showcase/assets/{metadata-list-BhlsEWYT.js → metadata-list-CoRYXjEw.js} +1 -1
  235. package/dist/showcase/assets/{metric-BkzIsP8H.js → metric-DdC_pWnF.js} +1 -1
  236. package/dist/showcase/assets/{metric-bar-CU73nx89.js → metric-bar-PGG8KQS0.js} +1 -1
  237. package/dist/showcase/assets/{metric-grid-BMLMbLjE.js → metric-grid-ZqDufV_5.js} +1 -1
  238. package/dist/showcase/assets/{metric-trend-chip-Dutl5uZo.js → metric-trend-chip-BhCRReMp.js} +1 -1
  239. package/dist/showcase/assets/{metrics-analytics-bar-AqG2oyIy.js → metrics-analytics-bar-U3gehGfQ.js} +1 -1
  240. package/dist/showcase/assets/{metrics-analytics-cards-CrFHmR2f.js → metrics-analytics-cards-CzbLGAWi.js} +1 -1
  241. package/dist/showcase/assets/{metrics-comparison-CY-DyLv7.js → metrics-comparison-B1z3nUpo.js} +1 -1
  242. package/dist/showcase/assets/{metrics-heatmap-BmX_CkiP.js → metrics-heatmap-DZeqRxFz.js} +1 -1
  243. package/dist/showcase/assets/{metrics-inline-badge-C1IFjdJN.js → metrics-inline-badge-CPyhCHXj.js} +1 -1
  244. package/dist/showcase/assets/{metrics-kpi-row-8Kbn034e.js → metrics-kpi-row-COVuNReW.js} +1 -1
  245. package/dist/showcase/assets/{metrics-micro-grid-CodO02yA.js → metrics-micro-grid-BNSrw6sM.js} +1 -1
  246. package/dist/showcase/assets/{metrics-overview-CdPqEAAG.js → metrics-overview-3IHComMd.js} +1 -1
  247. package/dist/showcase/assets/{metrics-stat-cards-Cw7UMWmb.js → metrics-stat-cards-6Owbjvmc.js} +1 -1
  248. package/dist/showcase/assets/minus-CwzskYaZ.js +1 -0
  249. package/dist/showcase/assets/{money-display-CFfUZLus.js → money-display-CUkeS9k1.js} +1 -1
  250. package/dist/showcase/assets/{month-year-picker-ChVcYm9f.js → month-year-picker-CCCTmZHv.js} +1 -1
  251. package/dist/showcase/assets/{navigation-Boyt1q-1.js → navigation-BUReVn4R.js} +1 -1
  252. package/dist/showcase/assets/{navigation-CThYYxkL.js → navigation-CSzYKdcR.js} +1 -1
  253. package/dist/showcase/assets/{navigation-extras-CxLc-Mqx.js → navigation-extras-DmUhDPMz.js} +1 -1
  254. package/dist/showcase/assets/{onboarding-checklist-C15gqmFc.js → onboarding-checklist-C3JhV5Gb.js} +1 -1
  255. package/dist/showcase/assets/{overflow-tab-bar-B2Htn-Ft.js → overflow-tab-bar-CEdrls-W.js} +1 -1
  256. package/dist/showcase/assets/{overlays-CPZfp0nk.js → overlays-BKKEzmF4.js} +1 -1
  257. package/dist/showcase/assets/{overlays-Cpj4akiw.js → overlays-C1UodoAu.js} +1 -1
  258. package/dist/showcase/assets/{overview-BB-Xbkff.js → overview-Dq0MqK32.js} +1 -1
  259. package/dist/showcase/assets/{package-DLn6nx-u.js → package-BaQGBJmO.js} +1 -1
  260. package/dist/showcase/assets/{package-check-B0wyBUSU.js → package-check-C8HJfDxS.js} +1 -1
  261. package/dist/showcase/assets/{page-BPFNsNh7.js → page-DvMaeo43.js} +1 -1
  262. package/dist/showcase/assets/{page-action-button-DMS8Vcmz.js → page-action-button-B5ZGYpYy.js} +1 -1
  263. package/dist/showcase/assets/{page-header-BGqE9hzO.js → page-header-Y-96EPMp.js} +1 -1
  264. package/dist/showcase/assets/{pagination-Be6ynLCp.js → pagination-Br1AfDte.js} +1 -1
  265. package/dist/showcase/assets/{pagination-T4FmLNHn.js → pagination-yLAHxKpc.js} +1 -1
  266. package/dist/showcase/assets/{paperclip-B_kxXzSN.js → paperclip-BBDKiZeH.js} +1 -1
  267. package/dist/showcase/assets/{password-input-qfQ5eIU4.js → password-input-iwrucadb.js} +1 -1
  268. package/dist/showcase/assets/{pencil-DlDLApli.js → pencil-BUhkJ_Nn.js} +1 -1
  269. package/dist/showcase/assets/{phone-D8tvvbSQ.js → phone-DtJDFH70.js} +1 -1
  270. package/dist/showcase/assets/plus-4gOvUk-5.js +1 -0
  271. package/dist/showcase/assets/{popover-Bu7aaPjE.js → popover-C8YAdHfL.js} +1 -1
  272. package/dist/showcase/assets/{popover-BsCx2XMI.js → popover-D9ZDWqLl.js} +1 -1
  273. package/dist/showcase/assets/{popover-menu-CD_JfEeq.js → popover-menu-C5M9Up4M.js} +1 -1
  274. package/dist/showcase/assets/{products-BzHX1ta0.js → products-DrKTk8Aw.js} +1 -1
  275. package/dist/showcase/assets/{progress-CpW2ZGAy.js → progress-C1qKfCZB.js} +1 -1
  276. package/dist/showcase/assets/{progress-jIJ_EIKE.js → progress-CpD58Wl0.js} +1 -1
  277. package/dist/showcase/assets/{props-table-CCcohuyT.js → props-table-C6gPyO49.js} +1 -1
  278. package/dist/showcase/assets/{quote-Bc9eHVKi.js → quote-BXTU9evS.js} +1 -1
  279. package/dist/showcase/assets/{receipt-B77_VWtt.js → receipt-Dwc4p04P.js} +1 -1
  280. package/dist/showcase/assets/{receipt-text-BlL_TJsS.js → receipt-text-DBEu6Gym.js} +1 -1
  281. package/dist/showcase/assets/{refinement-guide-BpzOvT_R.js → refinement-guide-DeO_yM8U.js} +1 -1
  282. package/dist/showcase/assets/{refresh-cw-CELG4taF.js → refresh-cw-BpV3OG_s.js} +1 -1
  283. package/dist/showcase/assets/{resolveValueLabel-LRTUaJTb.js → resolveValueLabel-DZTrDdG0.js} +1 -1
  284. package/dist/showcase/assets/{resource-BT8_ck3n.js → resource-BLGoRFou.js} +1 -1
  285. package/dist/showcase/assets/{resource-C7J3yZp6.js → resource-D5AQesdN.js} +1 -1
  286. package/dist/showcase/assets/{resource-selector-card-Ay8ImvKg.js → resource-selector-card-BKzeUE0k.js} +1 -1
  287. package/dist/showcase/assets/{rich-text-editor-DVtTVuZ6.js → rich-text-editor-DYkPamiq.js} +1 -1
  288. package/dist/showcase/assets/{rich-text-editor-CdGVvtsm.js → rich-text-editor-k1dtT5bX.js} +1 -1
  289. package/dist/showcase/assets/rotate-ccw-Dajwztf1.js +1 -0
  290. package/dist/showcase/assets/{route-CgBh1oKF.js → route-5uO9C0gV.js} +1 -1
  291. package/dist/showcase/assets/{save-BFsAGR7O.js → save-DONvClxa.js} +1 -1
  292. package/dist/showcase/assets/{schema-form-CaF-lBkN.js → schema-form-BMQmx4JI.js} +1 -1
  293. package/dist/showcase/assets/{scroll-area-BkZULoZA.js → scroll-area-CnAyhKQ_.js} +1 -1
  294. package/dist/showcase/assets/{scroll-area-CpDi_6FP.js → scroll-area-CxwfyjX3.js} +1 -1
  295. package/dist/showcase/assets/{section-D-N8Ze16.js → section-Dd6X6IKg.js} +1 -1
  296. package/dist/showcase/assets/{select-ReMZs8K6.js → select-CJSyu7sS.js} +1 -1
  297. package/dist/showcase/assets/{select-C9Mfb_Gj.js → select-Du9VvUxt.js} +1 -1
  298. package/dist/showcase/assets/{send-C6PbwpHN.js → send-3ANJL7UB.js} +1 -1
  299. package/dist/showcase/assets/{separator-CywPSoE0.js → separator-BiXjWmP-.js} +1 -1
  300. package/dist/showcase/assets/{separator-Ha9YxI2x.js → separator-y9i6EG-N.js} +1 -1
  301. package/dist/showcase/assets/{settings-2-CVq5Uyv5.js → settings-2-Ynd1Lcz4.js} +1 -1
  302. package/dist/showcase/assets/{settings-DkTHc0Ob.js → settings-CqdZB-OI.js} +1 -1
  303. package/dist/showcase/assets/{sheet-k-P0gWlk.js → sheet-CzFOcAwE.js} +1 -1
  304. package/dist/showcase/assets/{shield-Cme7_JJR.js → shield-Dmxwcn3w.js} +1 -1
  305. package/dist/showcase/assets/{shield-alert-CxV0S5w0.js → shield-alert-RrMsBuWp.js} +1 -1
  306. package/dist/showcase/assets/{shield-check-BW_7p6Xf.js → shield-check-Bnw8RAvI.js} +1 -1
  307. package/dist/showcase/assets/{shopping-bag-CoR8AMYU.js → shopping-bag-DGXTQNOf.js} +1 -1
  308. package/dist/showcase/assets/{showcase-m3FzbvoC.js → showcase-DMRZCqmg.js} +1 -1
  309. package/dist/showcase/assets/{sidebar-bz_FzvjM.js → sidebar-C0tsWnrh.js} +1 -1
  310. package/dist/showcase/assets/{sidebar.context-BWMPnGn6.js → sidebar.context-DXGEPgaT.js} +1 -1
  311. package/dist/showcase/assets/{skeleton-BJMnQDgf.js → skeleton-BFa4FHSC.js} +1 -1
  312. package/dist/showcase/assets/{skeleton-DoWW5XZD.js → skeleton-DOJ1RAcJ.js} +1 -1
  313. package/dist/showcase/assets/{slider-BH1Gtp_p.js → slider-BjQs0C8N.js} +1 -1
  314. package/dist/showcase/assets/{smart-card-C6-idFYI.js → smart-card-BwSFemlj.js} +1 -1
  315. package/dist/showcase/assets/{sonner-CGZ3FC4U.js → sonner-BXMIK3eQ.js} +1 -1
  316. package/dist/showcase/assets/{sortable.esm-CE0TA9V_.js → sortable.esm-BeBA3gT5.js} +1 -1
  317. package/dist/showcase/assets/{sparkles-8yQFcmte.js → sparkles-Bc0I4qTf.js} +1 -1
  318. package/dist/showcase/assets/{spinner-CO8LjtjY.js → spinner-HyNCtTyd.js} +1 -1
  319. package/dist/showcase/assets/{spinner-BYUX0luk.js → spinner-LskR5l9T.js} +1 -1
  320. package/dist/showcase/assets/{spinner-CNveVfOr.js → spinner-mtwVRe8M.js} +1 -1
  321. package/dist/showcase/assets/{square-pen-CWylvezY.js → square-pen-BrZ2OxTe.js} +1 -1
  322. package/dist/showcase/assets/{stacked-avatars-DiNA5OJK.js → stacked-avatars-DOAFRjmZ.js} +1 -1
  323. package/dist/showcase/assets/{star-t53uwwyp.js → star-lUSxI166.js} +1 -1
  324. package/dist/showcase/assets/startOfDay-BLhx9b6k.js +1 -0
  325. package/dist/showcase/assets/{styles-CwpnwrEQ.js → styles-COpnijXU.js} +1 -1
  326. package/dist/showcase/assets/{suggestions-CvxZxsmc.js → suggestions-ftPYc9p6.js} +1 -1
  327. package/dist/showcase/assets/{switch-CewkokYT.js → switch-DirKCDsg.js} +1 -1
  328. package/dist/showcase/assets/{switch-D-7uqDR8.js → switch-DoPIN_UN.js} +1 -1
  329. package/dist/showcase/assets/{sync-DnBSRAwH.js → sync-C2DEiaQz.js} +1 -1
  330. package/dist/showcase/assets/{table-ds5oNU0h.js → table-D6GywZEx.js} +1 -1
  331. package/dist/showcase/assets/{table-3cUcSCBR.js → table-Dex8CcfW.js} +1 -1
  332. package/dist/showcase/assets/{table-actions-CrujG5R-.js → table-actions-CJg82sW0.js} +1 -1
  333. package/dist/showcase/assets/{tabs-GG911oaV.js → tabs-B9tgdMRD.js} +1 -1
  334. package/dist/showcase/assets/{tabs-C-hJfSn5.js → tabs-C0fSpkON.js} +1 -1
  335. package/dist/showcase/assets/{tags-input-DBeIaeVn.js → tags-input-CJSpILy6.js} +1 -1
  336. package/dist/showcase/assets/{text-button-EZojp9Ye.js → text-button-CoPZBQiq.js} +1 -1
  337. package/dist/showcase/assets/{text-link-DcKeYjEX.js → text-link-d9JIRU2N.js} +1 -1
  338. package/dist/showcase/assets/{textarea-DgNgSl1g.js → textarea-BN4PUX-V.js} +1 -1
  339. package/dist/showcase/assets/{textarea-PXKZSiRa.js → textarea-CBhdtg5X.js} +1 -1
  340. package/dist/showcase/assets/{timelines-CaF_Ze8z.js → timelines-F_mzbAPA.js} +1 -1
  341. package/dist/showcase/assets/{toggle-group-D_iuhL1G.js → toggle-group-8ESepeYW.js} +1 -1
  342. package/dist/showcase/assets/{toggles-BKaayRmE.js → toggles-B2Cg5NVG.js} +1 -1
  343. package/dist/showcase/assets/{toggles-group-DRAksOw2.js → toggles-group-BTmtSzAa.js} +1 -1
  344. package/dist/showcase/assets/{tooltip-B_LnC5D2.js → tooltip-DNsHZ3ZE.js} +1 -1
  345. package/dist/showcase/assets/{trash-2-DhUpICQq.js → trash-2-Bf5dpRjn.js} +1 -1
  346. package/dist/showcase/assets/trending-up-RSklVrcZ.js +1 -0
  347. package/dist/showcase/assets/{truck-D6SGLjv1.js → truck-CqmeajvP.js} +1 -1
  348. package/dist/showcase/assets/{typography-qEz6MMn9.js → typography-DJjQO_Ld.js} +1 -1
  349. package/dist/showcase/assets/{ui-badge-BA334hdB.js → ui-badge-BwkZfeBs.js} +1 -1
  350. package/dist/showcase/assets/{ui-card-CjqUyGvB.js → ui-card-B3mtVa60.js} +1 -1
  351. package/dist/showcase/assets/{ui-table-cDgI6WMk.js → ui-table-DM-avYTi.js} +1 -1
  352. package/dist/showcase/assets/{upload-tray-BcA-7pqW.js → upload-tray-CFI_7lcB.js} +1 -1
  353. package/dist/showcase/assets/{use-layout-link-DIUWH-oo.js → use-layout-link-BI4MRSHG.js} +1 -1
  354. package/dist/showcase/assets/{useAnchoredPopupScrollLock-BavpibMb.js → useAnchoredPopupScrollLock-DRs8fnir.js} +1 -1
  355. package/dist/showcase/assets/{useAriaLabelledBy-HDEJjv0f.js → useAriaLabelledBy-DhgmwFn7.js} +1 -1
  356. package/dist/showcase/assets/{useCollapsiblePanel-CL0pCuxO.js → useCollapsiblePanel-vGthv_MA.js} +1 -1
  357. package/dist/showcase/assets/{useCompositeItem-LkMSD9DW.js → useCompositeItem-g1FeYTbw.js} +1 -1
  358. package/dist/showcase/assets/{useCompositeListItem-C_oLUvf8.js → useCompositeListItem-CyULeWSL.js} +1 -1
  359. package/dist/showcase/assets/{useLabelableId-DDpjUdIO.js → useLabelableId-CBWpOnwZ.js} +1 -1
  360. package/dist/showcase/assets/{useOpenInteractionType-DQOSh-Eu.js → useOpenInteractionType-CQSuD7yw.js} +1 -1
  361. package/dist/showcase/assets/useRender-Dm8qJkvr.js +1 -0
  362. package/dist/showcase/assets/{useTriggerFocusGuards-BPFrAxlp.js → useTriggerFocusGuards-B6KAsVMk.js} +1 -1
  363. package/dist/showcase/assets/{useValueChanged-lYlHqRM1.js → useValueChanged-DXek_Wx7.js} +1 -1
  364. package/dist/showcase/assets/user-B35DABNz.js +1 -0
  365. package/dist/showcase/assets/{user-plus-B1Pi7SNv.js → user-plus-C69GplWt.js} +1 -1
  366. package/dist/showcase/assets/{users-DAlxvktS.js → users-DDgUGkgw.js} +1 -1
  367. package/dist/showcase/assets/{vendor-profile-ClJ6G6SO.js → vendor-profile-Zfh99jtA.js} +1 -1
  368. package/dist/showcase/assets/{video-DxooIkh-.js → video-CDERYmRS.js} +1 -1
  369. package/dist/showcase/assets/{wrench-BiwmotMF.js → wrench-PjtfaRuJ.js} +1 -1
  370. package/dist/showcase/assets/x-FNPo6qUv.js +1 -0
  371. package/dist/showcase/assets/{zap-a90eC6iO.js → zap-CzjU6LH0.js} +1 -1
  372. package/dist/showcase/index.html +1 -1
  373. package/package.json +1 -1
  374. package/dist/_shared/overlays-CdtMAkKG.js.map +0 -1
  375. package/dist/_shared/overlays-Diy_H0Au.cjs +0 -2
  376. package/dist/_shared/overlays-Diy_H0Au.cjs.map +0 -1
  377. package/dist/showcase/assets/arrow-down-BttnoDxP.js +0 -1
  378. package/dist/showcase/assets/arrow-left-B1kFGJ8v.js +0 -1
  379. package/dist/showcase/assets/arrow-right-Md96ra7v.js +0 -1
  380. package/dist/showcase/assets/arrow-up-B9e9cP-q.js +0 -1
  381. package/dist/showcase/assets/arrow-up-right-BOHJNdrp.js +0 -1
  382. package/dist/showcase/assets/checkbox-Qhh92dbS.js +0 -1
  383. package/dist/showcase/assets/chevron-down-BqrI6QzQ.js +0 -1
  384. package/dist/showcase/assets/chevron-left-TJKYH3rG.js +0 -1
  385. package/dist/showcase/assets/chevron-up-CPuAmh-d.js +0 -1
  386. package/dist/showcase/assets/chevrons-up-down-DZB44PVY.js +0 -1
  387. package/dist/showcase/assets/circle-CY0DkTje.js +0 -1
  388. package/dist/showcase/assets/circle-check-BkFKejsY.js +0 -1
  389. package/dist/showcase/assets/circle-check-big-vu3Znqdx.js +0 -1
  390. package/dist/showcase/assets/circle-dot-CsBIkbEH.js +0 -1
  391. package/dist/showcase/assets/clock-3-mhWDhdka.js +0 -1
  392. package/dist/showcase/assets/clock-Dd-urPd2.js +0 -1
  393. package/dist/showcase/assets/inertValue-DrANZiJk.js +0 -1
  394. package/dist/showcase/assets/isSameDay-DVP1ae2V.js +0 -1
  395. package/dist/showcase/assets/isToday-CNAQB-p9.js +0 -1
  396. package/dist/showcase/assets/minus-B1es6KJX.js +0 -1
  397. package/dist/showcase/assets/plus-BkhJjfUv.js +0 -1
  398. package/dist/showcase/assets/rotate-ccw-MwEZ1b11.js +0 -1
  399. package/dist/showcase/assets/startOfDay-BKFJecZ3.js +0 -1
  400. package/dist/showcase/assets/trending-up-Kfm5l65O.js +0 -1
  401. package/dist/showcase/assets/useRender-CnmFaF3Y.js +0 -1
  402. package/dist/showcase/assets/user-DLuRcjl0.js +0 -1
  403. package/dist/showcase/assets/x-idpnOHil.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlays-Du65iCkx.cjs","names":[],"sources":["../../src/components/features/overlays/hooks/use-native-dialog.ts","../../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/dialog.tsx","../../src/components/features/overlays/drawer.tsx","../../src/components/features/overlays/alert-dialog.tsx"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useRef,\n useState,\n type RefObject,\n} from 'react';\n\nexport interface UseNativeDialogOptions {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n onClose?: () => void;\n closeOnEscape?: boolean;\n closeOnBackdropClick?: boolean;\n initialFocusRef?: RefObject<HTMLElement>;\n}\n\nexport interface UseNativeDialogReturn {\n dialogRef: RefObject<HTMLDialogElement | null>;\n isOpen: boolean;\n isClosing: boolean;\n openDialog: () => void;\n closeDialog: () => void;\n toggleDialog: () => void;\n dialogProps: {\n ref: RefObject<HTMLDialogElement | null>;\n open: boolean;\n onKeyDown: (e: React.KeyboardEvent<HTMLDialogElement>) => void;\n };\n handleBackdropClick: () => void;\n}\n\nconst ANIMATION_TIMEOUT_MS = 350;\n\nlet bodyScrollLockCount = 0;\n\n/**\n * Lock body scroll using a CSS-class-based approach.\n *\n * Uses a `data-overlay-scroll-locked` attribute on `<html>` combined with a\n * CSS rule (`html[data-overlay-scroll-locked] body { overflow: hidden }`)\n * instead of directly manipulating `body.style.overflow`.\n *\n * This avoids a conflict with @base-ui's own `SCROLL_LOCKER` singleton (used\n * by Select, Combobox, etc.) which independently saves and restores inline\n * body styles. When both systems saved/restored the same inline property,\n * unlocking in the wrong order left `overflow: hidden` permanently on the body.\n */\nfunction lockBodyScroll(): () => void {\n if (bodyScrollLockCount === 0) {\n const scrollbarWidth =\n window.innerWidth - document.documentElement.clientWidth;\n\n document.body.style.setProperty(\n '--overlay-scrollbar-width',\n `${scrollbarWidth}px`,\n );\n document.documentElement.setAttribute(\n 'data-overlay-scroll-locked',\n '',\n );\n }\n\n bodyScrollLockCount += 1;\n let released = false;\n\n return () => {\n if (released) {\n return;\n }\n\n released = true;\n bodyScrollLockCount = Math.max(0, bodyScrollLockCount - 1);\n\n if (bodyScrollLockCount > 0) {\n return;\n }\n\n document.documentElement.removeAttribute('data-overlay-scroll-locked');\n document.body.style.removeProperty('--overlay-scrollbar-width');\n };\n}\n\nexport function useNativeDialog({\n open: controlledOpen,\n onOpenChange,\n onClose,\n closeOnEscape = true,\n closeOnBackdropClick = true,\n initialFocusRef,\n}: UseNativeDialogOptions = {}): UseNativeDialogReturn {\n const dialogRef = useRef<HTMLDialogElement>(null);\n const [internalOpen, setInternalOpen] = useState(false);\n const [isClosing, setIsClosing] = useState(false);\n const unlockScrollRef = useRef<(() => void) | null>(null);\n const previousActiveElementRef = useRef<HTMLElement | null>(null);\n const closeTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const animationListenerRef = useRef<(() => void) | null>(null);\n const focusRafRef = useRef<number | null>(null);\n const finishCloseHandledRef = useRef(false);\n\n const isControlled = controlledOpen !== undefined;\n const isOpen = isControlled ? controlledOpen : internalOpen;\n\n // Refs track the latest values so closeDialog can bail out from stale\n // closures (e.g. when useOverlayActions.handleConfirm awaits an async\n // operation while the action store already sets isOpen=false or while\n // a prior closeDialog call already set isClosing=true).\n const isOpenRef = useRef(isOpen);\n isOpenRef.current = isOpen;\n\n const isClosingRef = useRef(isClosing);\n isClosingRef.current = isClosing;\n\n const setOpen = useCallback(\n (nextOpen: boolean) => {\n if (!isControlled) {\n setInternalOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n\n if (!nextOpen) {\n onClose?.();\n }\n },\n [isControlled, onOpenChange, onClose],\n );\n\n const cleanupAnimation = useCallback(() => {\n if (closeTimeoutRef.current) {\n clearTimeout(closeTimeoutRef.current);\n closeTimeoutRef.current = null;\n }\n if (animationListenerRef.current) {\n animationListenerRef.current();\n animationListenerRef.current = null;\n }\n }, []);\n\n const finishClose = useCallback(() => {\n cleanupAnimation();\n\n // Mark that finishClose handled this close cycle so the safety-net\n // useEffect doesn't interfere with a redundant cleanup pass.\n finishCloseHandledRef.current = true;\n\n // CRITICAL: Release the scroll lock BEFORE calling setOpen, which\n // invokes external callbacks (onOpenChange, onClose) that may throw.\n const unlock = unlockScrollRef.current;\n unlockScrollRef.current = null;\n\n const prevFocus = previousActiveElementRef.current;\n previousActiveElementRef.current = null;\n\n try {\n unlock?.();\n } catch {\n // Scroll unlock must never propagate.\n }\n\n // Notify parent first — this triggers onOpenChange(false) which updates\n // the controlled open prop. Do NOT remove the .closing class or clear\n // isClosing before this: removing .closing reverts the dialog to its\n // entry animation CSS for one frame before React unmounts, causing a flash.\n try {\n setOpen(false);\n } catch {\n // If onOpenChange / onClose throws we still need to restore focus.\n }\n\n // Now safe to clear — React will unmount the portal on the next render,\n // so the .closing class removal is cosmetic (element is about to be removed).\n setIsClosing(false);\n\n const dialog = dialogRef.current;\n if (dialog) {\n dialog.classList.remove('closing');\n }\n\n try {\n prevFocus?.focus();\n } catch {\n // focus() on a disconnected node can throw in some browsers.\n }\n }, [cleanupAnimation, setOpen]);\n\n const openDialog = useCallback(() => {\n // Use refs (always fresh) instead of closure-captured values so that\n // stale references from trigger cloneElement or external callers\n // cannot bypass the guard.\n if (isOpenRef.current || isClosingRef.current) return;\n\n previousActiveElementRef.current =\n document.activeElement as HTMLElement;\n unlockScrollRef.current = lockBodyScroll();\n\n setOpen(true);\n\n focusRafRef.current = requestAnimationFrame(() => {\n focusRafRef.current = null;\n if (initialFocusRef?.current) {\n initialFocusRef.current.focus();\n } else {\n dialogRef.current?.focus();\n }\n });\n }, [setOpen, initialFocusRef]);\n\n const closeDialog = useCallback(() => {\n const dialog = dialogRef.current;\n // Use isOpenRef and isClosingRef (always fresh) instead of closure-\n // captured values so that stale closures from useOverlayActions\n // (which await async confirm while the action store or a prior\n // closeDialog call already changed state) correctly bail out instead\n // of starting a duplicate close animation.\n if (!dialog || !isOpenRef.current || isClosingRef.current) return;\n\n setIsClosing(true);\n dialog.classList.add('closing');\n\n // Force reflow so the browser picks up the new class before we read computed style\n void dialog.offsetHeight;\n\n const hasAnimation =\n getComputedStyle(dialog).animationName !== 'none';\n\n if (hasAnimation) {\n const handleAnimationEnd = () => {\n finishClose();\n };\n\n dialog.addEventListener('animationend', handleAnimationEnd, {\n once: true,\n });\n\n // Store cleanup function for unmount safety\n animationListenerRef.current = () => {\n dialog.removeEventListener(\n 'animationend',\n handleAnimationEnd,\n );\n };\n\n // Timeout fallback in case animationend never fires\n closeTimeoutRef.current = setTimeout(() => {\n finishClose();\n }, ANIMATION_TIMEOUT_MS);\n } else {\n finishClose();\n }\n }, [finishClose]);\n\n const toggleDialog = useCallback(() => {\n if (isOpen) {\n closeDialog();\n } else {\n openDialog();\n }\n }, [isOpen, openDialog, closeDialog]);\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLDialogElement>) => {\n if (e.key === 'Escape' && closeOnEscape) {\n e.preventDefault();\n e.stopPropagation();\n closeDialog();\n }\n },\n [closeOnEscape, closeDialog],\n );\n\n const handleBackdropClick = useCallback(() => {\n if (closeOnBackdropClick) {\n closeDialog();\n }\n }, [closeOnBackdropClick, closeDialog]);\n\n // Sync controlled open state → lock scroll + focus\n useEffect(() => {\n if (isOpen && !isClosing) {\n if (!previousActiveElementRef.current) {\n previousActiveElementRef.current =\n document.activeElement as HTMLElement;\n }\n\n if (!unlockScrollRef.current) {\n unlockScrollRef.current = lockBodyScroll();\n }\n\n // Cancel any pending focus rAF (e.g. from openDialog) before\n // scheduling a new one, preventing duplicate focus calls.\n if (focusRafRef.current !== null) {\n cancelAnimationFrame(focusRafRef.current);\n }\n focusRafRef.current = requestAnimationFrame(() => {\n focusRafRef.current = null;\n if (initialFocusRef?.current) {\n initialFocusRef.current.focus();\n } else {\n dialogRef.current?.focus();\n }\n });\n } else if (!isOpen) {\n // If finishClose already handled this close cycle, skip the\n // safety-net to avoid a redundant cleanup pass that would cause\n // a flash (clearing isClosing in a separate render).\n if (finishCloseHandledRef.current) {\n finishCloseHandledRef.current = false;\n\n return;\n }\n\n // Safety net for the controlled-close path where closeDialog()\n // is never called directly (e.g. action store sets isOpen=false).\n if (unlockScrollRef.current) {\n unlockScrollRef.current();\n unlockScrollRef.current = null;\n }\n\n if (isClosing) {\n cleanupAnimation();\n setIsClosing(false);\n\n const dialog = dialogRef.current;\n if (dialog) {\n dialog.classList.remove('closing');\n }\n }\n\n if (previousActiveElementRef.current) {\n try {\n previousActiveElementRef.current.focus();\n } catch {\n // focus() on a disconnected node — ignore\n }\n previousActiveElementRef.current = null;\n }\n }\n\n return () => {\n if (focusRafRef.current !== null) {\n cancelAnimationFrame(focusRafRef.current);\n focusRafRef.current = null;\n }\n };\n }, [isOpen, isClosing, initialFocusRef, cleanupAnimation]);\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n cleanupAnimation();\n\n if (focusRafRef.current !== null) {\n cancelAnimationFrame(focusRafRef.current);\n focusRafRef.current = null;\n }\n\n if (unlockScrollRef.current) {\n unlockScrollRef.current();\n unlockScrollRef.current = null;\n }\n };\n }, [cleanupAnimation]);\n\n return {\n dialogRef,\n isOpen,\n isClosing,\n openDialog,\n closeDialog,\n toggleDialog,\n dialogProps: {\n ref: dialogRef,\n open: isOpen,\n onKeyDown: handleKeyDown,\n },\n handleBackdropClick,\n };\n}\n","/**\n * Default user-facing strings shared by `<Dialog>`, `<Drawer>`, and\n * `<AlertDialog>` overlays.\n *\n * Consumers wire backend i18n at the call site:\n *\n * <Dialog strings={{ confirm: t('common.confirm') }} … />\n */\n\nexport interface OverlayStrings {\n\tconfirm: string;\n\tcancel: string;\n\tclose: string;\n\tloading: string;\n}\n\nexport const defaultOverlayStrings: OverlayStrings = {\n\tconfirm: 'Confirm',\n\tcancel: 'Cancel',\n\tclose: 'Close',\n\tloading: 'Loading...',\n};\n\nexport const defaultAlertDialogStrings: OverlayStrings = {\n\tconfirm: 'Continue',\n\tcancel: 'Cancel',\n\tclose: 'Close',\n\tloading: 'Loading...',\n};\n","import { useCallback, useMemo, 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\tButtonVariant,\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| 'confirmVariant'\n\t\t| 'isLoading'\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. Library DEV-logs the error;\n\t * consumer wires telemetry. */\n\tonError?: (error: unknown) => void;\n}\n\nexport interface UseOverlayActionsReturn {\n\tstrings: OverlayStrings;\n\tisExecuting: boolean;\n\thandleConfirm: () => Promise<void>;\n\thandleCancel: () => void;\n\tfinalConfirmVariant: ButtonVariant;\n\tconfirmButtonOnClick: (() => Promise<void>) | undefined;\n\teffectiveLoading: boolean;\n}\n\nexport function useOverlayActions({\n\tcloseDialog,\n\tonConfirm,\n\tonAsyncConfirm,\n\tcloseOnAsyncComplete = true,\n\tconfirmVariant = 'primary',\n\tisLoading = false,\n\tformId,\n\tonCancel,\n\tcustomStrings,\n\temphasis = false,\n\ttone = 'default',\n\tonError,\n}: UseOverlayActionsOptions): UseOverlayActionsReturn {\n\tconst strings = useStrings(defaultOverlayStrings, customStrings);\n\n\tconst [isExecuting, setIsExecuting] = useState(false);\n\n\tconst handleConfirm = useCallback(async () => {\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\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\tif (import.meta.env?.DEV) {\n\t\t\t\t\tconsole.error('Overlay async confirm failed:', error);\n\t\t\t\t}\n\t\t\t\tonError?.(error);\n\t\t\t} finally {\n\t\t\t\tsetIsExecuting(false);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tcloseDialog();\n\t}, [onConfirm, onAsyncConfirm, closeOnAsyncComplete, closeDialog, onError]);\n\n\tconst handleCancel = useCallback(() => {\n\t\tonCancel?.();\n\t\tcloseDialog();\n\t}, [onCancel, closeDialog]);\n\n\tconst handleFormSubmit = useCallback(async () => {\n\t\tif (!formId) {\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]);\n\n\tconst finalConfirmVariant = useMemo<ButtonVariant>(() => {\n\t\tif (!emphasis) return confirmVariant ?? 'primary';\n\t\tif (tone === 'error') return 'error';\n\t\tif (tone === 'warning') return 'warning';\n\t\tif (tone === 'success') return 'success';\n\t\treturn confirmVariant ?? 'primary';\n\t}, [emphasis, tone, confirmVariant]);\n\n\tconst confirmButtonOnClick = formId ? handleFormSubmit : handleConfirm;\n\n\treturn {\n\t\tstrings,\n\t\tisExecuting,\n\t\thandleConfirm,\n\t\thandleCancel,\n\t\tfinalConfirmVariant,\n\t\tconfirmButtonOnClick,\n\t\teffectiveLoading: isExecuting || isLoading,\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\topen: boolean;\n\tonOpenChange: (open: boolean) => void;\n}\n\nexport interface UseOverlayVisibilityOptions {\n\tdefaultOpen?: boolean;\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n\tonOpen?: () => void;\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\tdefaultOpen?: Partial<Record<TKey, boolean>>;\n\topen?: Partial<Record<TKey, boolean>>;\n\tonOpenChange?: (\n\t\tkey: TKey,\n\t\topen: boolean,\n\t\tstate: OverlayVisibilityGroupState<TKey>,\n\t) => void;\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 {\n\tAlertCircle,\n\tAlertTriangle,\n\tCheckCircle,\n\tHelpCircle,\n\tInfo,\n\tX,\n} from 'lucide-react';\nimport React, { cloneElement, isValidElement, memo, useId, type ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport { useNativeDialog, useOverlayActions } from './hooks';\nimport type { DialogProps, OverlaySize, OverlayTone } from './overlays.types';\n\nconst SIZE_CLASSES: Record<OverlaySize, string> = {\n\txs: 'max-w-xs',\n\tsm: 'max-w-sm',\n\tmd: 'max-w-md',\n\tlg: 'max-w-lg',\n\txl: 'max-w-xl',\n\t'2xl': 'max-w-2xl',\n\t'3xl': 'max-w-3xl',\n\t'4xl': 'max-w-4xl',\n\t'5xl': 'max-w-5xl',\n\tfull: 'max-w-[calc(100vw-2rem)]',\n};\n\nconst TONE_STYLES: Record<OverlayTone, { icon: ReactNode; classes: string }> = {\n\tdefault: {\n\t\ticon: <HelpCircle className=\"text-muted-foreground h-5 w-5\" />,\n\t\tclasses: '',\n\t},\n\terror: {\n\t\ticon: <AlertCircle className=\"text-destructive h-5 w-5\" />,\n\t\tclasses: 'border-destructive/50',\n\t},\n\twarning: {\n\t\ticon: <AlertTriangle className=\"text-warning h-5 w-5\" />,\n\t\tclasses: 'border-warning/50',\n\t},\n\tinfo: {\n\t\ticon: <Info className=\"text-info h-5 w-5\" />,\n\t\tclasses: 'border-info/50',\n\t},\n\tsuccess: {\n\t\ticon: <CheckCircle className=\"text-success h-5 w-5\" />,\n\t\tclasses: 'border-success/50',\n\t},\n};\n\nfunction DialogImpl({\n\topen,\n\tonOpenChange,\n\tonClose,\n\tchildren,\n\ttitle,\n\tdescription,\n\tvisuallyHideHeader = false,\n\tclassName,\n\tcontentClassName,\n\tinitialFocusRef,\n\tcloseOnEscape = true,\n\tcloseOnBackdropClick = true,\n\tstrings: customStrings,\n\tshowCancel = true,\n\tshowConfirm = true,\n\tonCancel,\n\tonConfirm,\n\tonAsyncConfirm,\n\tcloseOnAsyncComplete = true,\n\tconfirmVariant = 'primary',\n\tconfirmStyle = 'solid',\n\tisLoading = false,\n\tformId,\n\tfooter,\n\temphasis = false,\n\ttone = 'default',\n\tshowIcon = false,\n\talertMessage,\n\tsize = 'lg',\n\ttrigger,\n}: DialogProps) {\n\tconst dialogTitleId = useId();\n\tconst dialogDescriptionId = useId();\n\tconst ariaLabelledBy = title ? dialogTitleId : undefined;\n\tconst ariaDescribedBy = description ? dialogDescriptionId : undefined;\n\n\tconst {\n\t\tisOpen,\n\t\tisClosing,\n\t\topenDialog,\n\t\tcloseDialog,\n\t\tdialogProps,\n\t\thandleBackdropClick,\n\t} = useNativeDialog({\n\t\topen,\n\t\tonOpenChange,\n\t\tonClose,\n\t\tcloseOnEscape,\n\t\tcloseOnBackdropClick,\n\t\tinitialFocusRef,\n\t});\n\n\tconst {\n\t\tstrings,\n\t\tfinalConfirmVariant,\n\t\tconfirmButtonOnClick,\n\t\teffectiveLoading,\n\t\thandleCancel,\n\t} = useOverlayActions({\n\t\tcloseDialog,\n\t\tonConfirm,\n\t\tonAsyncConfirm,\n\t\tcloseOnAsyncComplete,\n\t\tconfirmVariant,\n\t\tisLoading,\n\t\tformId,\n\t\tonCancel,\n\t\tcustomStrings,\n\t\temphasis,\n\t\ttone,\n\t});\n\n\tconst toneStyles = TONE_STYLES[tone];\n\tconst hasContent = Boolean(children || alertMessage);\n\tconst hasFooter = showCancel || showConfirm || footer;\n\n\tconst triggerElement =\n\t\ttrigger && isValidElement<Record<string, unknown>>(trigger) ? (\n\t\t\tcloneElement(trigger, {\n\t\t\t\tonClick: (e: React.MouseEvent) => {\n\t\t\t\t\tconst original = trigger.props.onClick as\n\t\t\t\t\t\t| ((e: React.MouseEvent) => void)\n\t\t\t\t\t\t| undefined;\n\t\t\t\t\toriginal?.(e);\n\t\t\t\t\topenDialog();\n\t\t\t\t},\n\t\t\t})\n\t\t) : trigger ? (\n\t\t\t<span\n\t\t\t\trole=\"button\"\n\t\t\t\ttabIndex={0}\n\t\t\t\tonClick={openDialog}\n\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\topenDialog();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tclassName=\"cursor-pointer\"\n\t\t\t>\n\t\t\t\t{trigger}\n\t\t\t</span>\n\t\t) : null;\n\n\tif (!isOpen && !isClosing && !trigger) return null;\n\n\treturn (\n\t\t<>\n\t\t\t{triggerElement}\n\n\t\t\t{!!(isOpen || isClosing) &&\n\t\t\t\tcreatePortal(\n\t\t\t\t\t<div className=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'absolute inset-0 bg-foreground/50 backdrop-blur-[1px]',\n\t\t\t\t\t\t\t\t'transition-opacity duration-200',\n\t\t\t\t\t\t\t\tisClosing\n\t\t\t\t\t\t\t\t\t? 'opacity-0'\n\t\t\t\t\t\t\t\t\t: 'animate-in fade-in-0 duration-200',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tonClick={handleBackdropClick}\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<dialog\n\t\t\t\t\t\t\t{...dialogProps}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'dialog--component relative z-10 m-0 p-0',\n\t\t\t\t\t\t\t\t'rounded-lg border shadow-lg',\n\t\t\t\t\t\t\t\t'bg-background text-foreground',\n\t\t\t\t\t\t\t\t'max-h-[90vh] w-full',\n\t\t\t\t\t\t\t\t'flex flex-col',\n\t\t\t\t\t\t\t\tSIZE_CLASSES[size],\n\t\t\t\t\t\t\t\t'animate-in fade-in-0 zoom-in-95 duration-200',\n\t\t\t\t\t\t\t\t'[&.closing]:animate-out [&.closing]:fade-out-0 [&.closing]:zoom-out-95 [&.closing]:duration-150',\n\t\t\t\t\t\t\t\t'outline-none focus-visible:outline-none',\n\t\t\t\t\t\t\t\temphasis && toneStyles.classes,\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\taria-modal=\"true\"\n\t\t\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\t\t\taria-labelledby={ariaLabelledBy}\n\t\t\t\t\t\t\taria-describedby={ariaDescribedBy}\n\t\t\t\t\t\t>\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\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\tsize=\"icon-small\"\n\t\t\t\t\t\t\t\tonClick={closeDialog}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'absolute right-3 top-3 z-10 size-7 rounded-md p-0',\n\t\t\t\t\t\t\t\t\t'text-muted-foreground transition-colors',\n\t\t\t\t\t\t\t\t\t'hover:bg-muted hover:text-foreground',\n\t\t\t\t\t\t\t\t\t'disabled:pointer-events-none',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\taria-label={strings.close}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<X className=\"h-4 w-4\" />\n\t\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t\t{!!(title || description) && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'flex gap-3 px-6 pb-4 pt-6',\n\t\t\t\t\t\t\t\t\t\tshowIcon && 'items-start',\n\t\t\t\t\t\t\t\t\t\tvisuallyHideHeader && 'sr-only',\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{!!showIcon && (\n\t\t\t\t\t\t\t\t\t\t<div className=\"shrink-0 pt-0.5\">\n\t\t\t\t\t\t\t\t\t\t\t{toneStyles.icon}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<div className=\"min-w-0 flex-1\">\n\t\t\t\t\t\t\t\t\t\t{!!title && (\n\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\tid={dialogTitleId}\n\t\t\t\t\t\t\t\t\t\t\t\ttag=\"div\"\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"pr-6\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{!!description && (\n\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\tid={dialogDescriptionId}\n\t\t\t\t\t\t\t\t\t\t\t\ttag=\"p\"\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"mt-1\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t{!!hasContent && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'flex-1 overflow-auto px-6',\n\t\t\t\t\t\t\t\t\t\ttitle || description\n\t\t\t\t\t\t\t\t\t\t\t? visuallyHideHeader\n\t\t\t\t\t\t\t\t\t\t\t\t? 'py-6'\n\t\t\t\t\t\t\t\t\t\t\t\t: 'pb-6'\n\t\t\t\t\t\t\t\t\t\t\t: 'py-6',\n\t\t\t\t\t\t\t\t\t\tcontentClassName,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{!!alertMessage && (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t'mb-4 rounded-md border p-3',\n\t\t\t\t\t\t\t\t\t\t\t\ttone === 'error' &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t'border-destructive/30 bg-destructive/5',\n\t\t\t\t\t\t\t\t\t\t\t\ttone === 'warning' &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t'border-warning/40 bg-warning/10',\n\t\t\t\t\t\t\t\t\t\t\t\ttone === 'info' &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t'border-info/40 bg-info/10',\n\t\t\t\t\t\t\t\t\t\t\t\ttone === 'success' &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t'border-success/40 bg-success/10',\n\t\t\t\t\t\t\t\t\t\t\t\ttone === 'default' &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t'border-border bg-muted/40',\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\ttag=\"p\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{alertMessage}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t{!!hasFooter && (\n\t\t\t\t\t\t\t\t<div className=\"border-t px-6 py-4\">\n\t\t\t\t\t\t\t\t\t{footer ?? (\n\t\t\t\t\t\t\t\t\t\t<div className=\"flex flex-col-reverse gap-3 sm:flex-row sm:justify-end\">\n\t\t\t\t\t\t\t\t\t\t\t{!!showCancel && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={handleCancel}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{strings.cancel}\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t{!!showConfirm && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant={finalConfirmVariant}\n\t\t\t\t\t\t\t\t\t\t\t\t\tbuttonStyle={confirmStyle}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={confirmButtonOnClick}\n\t\t\t\t\t\t\t\t\t\t\t\t\tloading={effectiveLoading}\n\t\t\t\t\t\t\t\t\t\t\t\t\tloadingLabels={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading: strings.loading,\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{strings.confirm}\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</dialog>\n\t\t\t\t\t</div>,\n\t\t\t\t\tdocument.body,\n\t\t\t\t)}\n\t\t</>\n\t);\n}\n\nexport const Dialog = memo(DialogImpl);\nDialog.displayName = 'Dialog';\n","import {\n\tAlertCircle,\n\tAlertTriangle,\n\tCheckCircle,\n\tHelpCircle,\n\tInfo,\n\tX,\n} from 'lucide-react';\nimport React, { cloneElement, isValidElement, memo, useId, type ReactNode } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { cn } from '@/lib/utils';\n\nimport { useNativeDialog, useOverlayActions } from './hooks';\nimport type { DrawerDirection, DrawerProps, OverlaySize, OverlayTone } from './overlays.types';\n\nconst WIDTH_CLASSES: Record<OverlaySize, string> = {\n\txs: 'max-w-xs',\n\tsm: 'max-w-sm',\n\tmd: 'max-w-md',\n\tlg: 'max-w-lg',\n\txl: 'max-w-xl',\n\t'2xl': 'max-w-2xl',\n\t'3xl': 'max-w-3xl',\n\t'4xl': 'max-w-4xl',\n\t'5xl': 'max-w-5xl',\n\tfull: 'max-w-[calc(100vw-2rem)]',\n};\n\nconst DIRECTION_STYLES: Record<\n\tDrawerDirection,\n\t{ position: string; size: string; animation: string; rounded: string }\n> = {\n\tright: {\n\t\tposition: 'fixed top-0 right-0 bottom-0',\n\t\tsize: 'h-full',\n\t\tanimation:\n\t\t\t'animate-in slide-in-from-right duration-300 [&.closing]:animate-out [&.closing]:slide-out-to-right [&.closing]:duration-200',\n\t\trounded: 'rounded-l-xl',\n\t},\n\tleft: {\n\t\tposition: 'fixed top-0 left-0 bottom-0',\n\t\tsize: 'h-full',\n\t\tanimation:\n\t\t\t'animate-in slide-in-from-left duration-300 [&.closing]:animate-out [&.closing]:slide-out-to-left [&.closing]:duration-200',\n\t\trounded: 'rounded-r-xl',\n\t},\n\ttop: {\n\t\tposition: 'fixed top-0 left-0 right-0',\n\t\tsize: 'w-full',\n\t\tanimation:\n\t\t\t'animate-in slide-in-from-top duration-300 [&.closing]:animate-out [&.closing]:slide-out-to-top [&.closing]:duration-200',\n\t\trounded: 'rounded-b-xl',\n\t},\n\tbottom: {\n\t\tposition: 'fixed bottom-0 left-0 right-0',\n\t\tsize: 'w-full',\n\t\tanimation:\n\t\t\t'animate-in slide-in-from-bottom duration-300 [&.closing]:animate-out [&.closing]:slide-out-to-bottom [&.closing]:duration-200',\n\t\trounded: 'rounded-t-xl',\n\t},\n};\n\nconst TONE_ICONS: Record<OverlayTone, ReactNode> = {\n\tdefault: <HelpCircle className=\"text-muted-foreground h-5 w-5\" />,\n\terror: <AlertCircle className=\"text-destructive h-5 w-5\" />,\n\twarning: <AlertTriangle className=\"text-warning h-5 w-5\" />,\n\tinfo: <Info className=\"text-info h-5 w-5\" />,\n\tsuccess: <CheckCircle className=\"text-success h-5 w-5\" />,\n};\n\nfunction DrawerImpl({\n\topen,\n\tonOpenChange,\n\tonClose,\n\tchildren,\n\ttitle,\n\tdescription,\n\tvisuallyHideHeader = false,\n\tclassName,\n\tcontentClassName,\n\tinitialFocusRef,\n\tcloseOnEscape = true,\n\tcloseOnBackdropClick = true,\n\tstrings: customStrings,\n\tshowCancel = true,\n\tshowConfirm = true,\n\tonCancel,\n\tonConfirm,\n\tonAsyncConfirm,\n\tcloseOnAsyncComplete = true,\n\tconfirmVariant = 'primary',\n\tconfirmStyle = 'solid',\n\tisLoading = false,\n\tformId,\n\tfooter,\n\temphasis = false,\n\ttone = 'default',\n\tshowIcon = false,\n\talertMessage,\n\tdirection = 'right',\n\twidth = 'lg',\n\tshowFooter = true,\n\ttrigger,\n}: DrawerProps) {\n\tconst drawerTitleId = useId();\n\tconst drawerDescriptionId = useId();\n\tconst ariaLabelledBy = title ? drawerTitleId : undefined;\n\tconst ariaDescribedBy = description ? drawerDescriptionId : undefined;\n\n\tconst {\n\t\tisOpen,\n\t\tisClosing,\n\t\topenDialog,\n\t\tcloseDialog,\n\t\tdialogProps,\n\t\thandleBackdropClick,\n\t} = useNativeDialog({\n\t\topen,\n\t\tonOpenChange,\n\t\tonClose,\n\t\tcloseOnEscape,\n\t\tcloseOnBackdropClick,\n\t\tinitialFocusRef,\n\t});\n\n\tconst {\n\t\tstrings,\n\t\tfinalConfirmVariant,\n\t\tconfirmButtonOnClick,\n\t\teffectiveLoading,\n\t\thandleCancel,\n\t} = useOverlayActions({\n\t\tcloseDialog,\n\t\tonConfirm,\n\t\tonAsyncConfirm,\n\t\tcloseOnAsyncComplete,\n\t\tconfirmVariant,\n\t\tisLoading,\n\t\tformId,\n\t\tonCancel,\n\t\tcustomStrings,\n\t\temphasis,\n\t\ttone,\n\t});\n\n\tconst directionStyles = DIRECTION_STYLES[direction];\n\tconst isHorizontal = direction === 'left' || direction === 'right';\n\tconst hasContent = Boolean(children || alertMessage);\n\tconst hasFooter = showFooter && (showCancel || showConfirm || footer);\n\n\tconst triggerElement =\n\t\ttrigger && isValidElement<Record<string, unknown>>(trigger) ? (\n\t\t\tcloneElement(trigger, {\n\t\t\t\tonClick: (e: React.MouseEvent) => {\n\t\t\t\t\tconst original = trigger.props.onClick as\n\t\t\t\t\t\t| ((e: React.MouseEvent) => void)\n\t\t\t\t\t\t| undefined;\n\t\t\t\t\toriginal?.(e);\n\t\t\t\t\topenDialog();\n\t\t\t\t},\n\t\t\t})\n\t\t) : trigger ? (\n\t\t\t<span\n\t\t\t\trole=\"button\"\n\t\t\t\ttabIndex={0}\n\t\t\t\tonClick={openDialog}\n\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\topenDialog();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tclassName=\"cursor-pointer\"\n\t\t\t>\n\t\t\t\t{trigger}\n\t\t\t</span>\n\t\t) : null;\n\n\tif (!isOpen && !isClosing && !trigger) return null;\n\n\treturn (\n\t\t<>\n\t\t\t{triggerElement}\n\n\t\t\t{!!(isOpen || isClosing) &&\n\t\t\t\tcreatePortal(\n\t\t\t\t\t<div className=\"fixed inset-0 z-50\">\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'absolute inset-0 bg-foreground/50 backdrop-blur-[1px]',\n\t\t\t\t\t\t\t\t'transition-opacity duration-300',\n\t\t\t\t\t\t\t\tisClosing\n\t\t\t\t\t\t\t\t\t? 'opacity-0'\n\t\t\t\t\t\t\t\t\t: 'animate-in fade-in-0 duration-300',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tonClick={handleBackdropClick}\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<dialog\n\t\t\t\t\t\t\t{...dialogProps}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'drawer--component inset-auto m-0 p-0',\n\t\t\t\t\t\t\t\tdirectionStyles.position,\n\t\t\t\t\t\t\t\tdirectionStyles.size,\n\t\t\t\t\t\t\t\t'border shadow-xl',\n\t\t\t\t\t\t\t\t'bg-background text-foreground',\n\t\t\t\t\t\t\t\tdirectionStyles.rounded,\n\t\t\t\t\t\t\t\tisHorizontal && 'w-full',\n\t\t\t\t\t\t\t\tisHorizontal && WIDTH_CLASSES[width],\n\t\t\t\t\t\t\t\t!isHorizontal && 'max-h-[85vh]',\n\t\t\t\t\t\t\t\tdirectionStyles.animation,\n\t\t\t\t\t\t\t\t'outline-none focus-visible:outline-none',\n\t\t\t\t\t\t\t\t'flex flex-col',\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\taria-modal=\"true\"\n\t\t\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\t\t\taria-labelledby={ariaLabelledBy}\n\t\t\t\t\t\t\taria-describedby={ariaDescribedBy}\n\t\t\t\t\t\t>\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\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\tbuttonStyle=\"ghost\"\n\t\t\t\t\t\t\t\tsize=\"icon-small\"\n\t\t\t\t\t\t\t\tonClick={closeDialog}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t'absolute right-4 top-4 z-10 size-7 rounded-md p-0',\n\t\t\t\t\t\t\t\t\t'text-muted-foreground transition-colors',\n\t\t\t\t\t\t\t\t\t'hover:bg-muted hover:text-foreground',\n\t\t\t\t\t\t\t\t\t'disabled:pointer-events-none',\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\taria-label={strings.close}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<X className=\"h-4 w-4\" />\n\t\t\t\t\t\t\t</Button>\n\n\t\t\t\t\t\t\t{!!(title || description) && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'flex items-start gap-3 px-6 pb-4 pt-6',\n\t\t\t\t\t\t\t\t\t\tvisuallyHideHeader && 'sr-only',\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{!!showIcon && (\n\t\t\t\t\t\t\t\t\t\t<div className=\"shrink-0 pt-0.5\">\n\t\t\t\t\t\t\t\t\t\t\t{TONE_ICONS[tone]}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<div className=\"min-w-0 flex-1 pr-6\">\n\t\t\t\t\t\t\t\t\t\t{!!title && (\n\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\tid={drawerTitleId}\n\t\t\t\t\t\t\t\t\t\t\t\ttag=\"div\"\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{!!description && (\n\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\tid={drawerDescriptionId}\n\t\t\t\t\t\t\t\t\t\t\t\ttag=\"p\"\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"mt-1\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t{!!hasContent && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t'flex-1 overflow-auto px-6',\n\t\t\t\t\t\t\t\t\t\ttitle || description ? 'pb-6' : 'py-6',\n\t\t\t\t\t\t\t\t\t\tcontentClassName,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{!!alertMessage && (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t'mb-4 rounded-md border p-3',\n\t\t\t\t\t\t\t\t\t\t\t\ttone === 'error' &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t'border-destructive/30 bg-destructive/5',\n\t\t\t\t\t\t\t\t\t\t\t\ttone === 'warning' &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t'border-warning/40 bg-warning/10',\n\t\t\t\t\t\t\t\t\t\t\t\ttone === 'info' &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t'border-info/40 bg-info/10',\n\t\t\t\t\t\t\t\t\t\t\t\ttone === 'success' &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t'border-success/40 bg-success/10',\n\t\t\t\t\t\t\t\t\t\t\t\ttone === 'default' &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t'border-border bg-muted/40',\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\ttag=\"p\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{alertMessage}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t{!!hasFooter && (\n\t\t\t\t\t\t\t\t<div className=\"border-t px-6 py-4\">\n\t\t\t\t\t\t\t\t\t{footer ?? (\n\t\t\t\t\t\t\t\t\t\t<div className=\"flex flex-col-reverse gap-3 sm:flex-row sm:justify-end\">\n\t\t\t\t\t\t\t\t\t\t\t{!!showCancel && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={handleCancel}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{strings.cancel}\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t{!!showConfirm && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant={finalConfirmVariant}\n\t\t\t\t\t\t\t\t\t\t\t\t\tbuttonStyle={confirmStyle}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={confirmButtonOnClick}\n\t\t\t\t\t\t\t\t\t\t\t\t\tloading={effectiveLoading}\n\t\t\t\t\t\t\t\t\t\t\t\t\tloadingLabels={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading: strings.loading,\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{strings.confirm}\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</dialog>\n\t\t\t\t\t</div>,\n\t\t\t\t\tdocument.body,\n\t\t\t\t)}\n\t\t</>\n\t);\n}\n\nexport const Drawer = memo(DrawerImpl);\nDrawer.displayName = 'Drawer';\n","import { AlertCircle, AlertTriangle, CheckCircle, HelpCircle, Info } from 'lucide-react';\nimport React, {\n\tcloneElement,\n\tisValidElement,\n\tmemo,\n\tuseId,\n\tuseMemo,\n\ttype ReactNode,\n} from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { Button } from '@/components/base/buttons';\nimport { Text } from '@/components/typography';\nimport { useStrings } from '@/lib/strings';\nimport { cn } from '@/lib/utils';\n\nimport { useNativeDialog, useOverlayActions } from './hooks';\nimport { defaultAlertDialogStrings } from './overlays.strings';\nimport type { AlertDialogProps, OverlayTone } from './overlays.types';\n\nconst TONE_STYLES: Record<OverlayTone, { icon: ReactNode; iconColor: string }> = {\n\tdefault: {\n\t\ticon: <HelpCircle className=\"h-6 w-6\" />,\n\t\ticonColor: 'text-muted-foreground',\n\t},\n\terror: { icon: <AlertCircle className=\"h-6 w-6\" />, iconColor: 'text-destructive' },\n\twarning: {\n\t\ticon: <AlertTriangle className=\"h-6 w-6\" />,\n\t\ticonColor: 'text-warning',\n\t},\n\tinfo: {\n\t\ticon: <Info className=\"h-6 w-6\" />,\n\t\ticonColor: 'text-info',\n\t},\n\tsuccess: {\n\t\ticon: <CheckCircle className=\"h-6 w-6\" />,\n\t\ticonColor: 'text-success',\n\t},\n};\n\nfunction AlertDialogImpl({\n\topen,\n\tonOpenChange,\n\tonClose,\n\tchildren,\n\ttitle,\n\tdescription,\n\tvisuallyHideHeader = false,\n\tclassName,\n\tcontentClassName,\n\tinitialFocusRef,\n\tcloseOnEscape = true,\n\tcloseOnBackdropClick = false,\n\tstrings: customStrings,\n\tshowCancel = true,\n\tshowConfirm = true,\n\tonCancel,\n\tonConfirm,\n\tonAsyncConfirm,\n\tcloseOnAsyncComplete = true,\n\tconfirmVariant,\n\tconfirmStyle = 'solid',\n\tisLoading = false,\n\tformId,\n\tfooter,\n\ttone = 'default',\n\tshowIcon = true,\n\talertMessage,\n\ttrigger,\n\tdestructive = false,\n}: AlertDialogProps) {\n\tconst alertTitleId = useId();\n\tconst alertDescriptionId = useId();\n\tconst ariaLabelledBy = title ? alertTitleId : undefined;\n\tconst ariaDescribedBy = description ? alertDescriptionId : undefined;\n\n\tconst {\n\t\tisOpen,\n\t\tisClosing,\n\t\topenDialog,\n\t\tcloseDialog,\n\t\tdialogProps,\n\t\thandleBackdropClick,\n\t} = useNativeDialog({\n\t\topen,\n\t\tonOpenChange,\n\t\tonClose,\n\t\tcloseOnEscape,\n\t\tcloseOnBackdropClick,\n\t\tinitialFocusRef,\n\t});\n\n\tconst mergedStrings = useStrings(defaultAlertDialogStrings, customStrings);\n\n\tconst resolvedConfirmVariant = useMemo(() => {\n\t\tif (destructive) return 'error' as const;\n\t\tif (confirmVariant) return confirmVariant;\n\t\tconst toneMap: Record<OverlayTone, string> = {\n\t\t\tdefault: 'primary',\n\t\t\terror: 'error',\n\t\t\twarning: 'warning',\n\t\t\tinfo: 'primary',\n\t\t\tsuccess: 'success',\n\t\t};\n\t\treturn toneMap[tone] as 'primary' | 'error' | 'warning' | 'success';\n\t}, [destructive, confirmVariant, tone]);\n\n\tconst { strings, confirmButtonOnClick, effectiveLoading, handleCancel } =\n\t\tuseOverlayActions({\n\t\t\tcloseDialog,\n\t\t\tonConfirm,\n\t\t\tonAsyncConfirm,\n\t\t\tcloseOnAsyncComplete,\n\t\t\tconfirmVariant: resolvedConfirmVariant,\n\t\t\tisLoading,\n\t\t\tformId,\n\t\t\tonCancel,\n\t\t\tcustomStrings: mergedStrings,\n\t\t});\n\n\tconst toneStyles = TONE_STYLES[tone];\n\n\tconst triggerElement =\n\t\ttrigger && isValidElement<Record<string, unknown>>(trigger) ? (\n\t\t\tcloneElement(trigger, {\n\t\t\t\tonClick: (e: React.MouseEvent) => {\n\t\t\t\t\tconst original = trigger.props.onClick as\n\t\t\t\t\t\t| ((e: React.MouseEvent) => void)\n\t\t\t\t\t\t| undefined;\n\t\t\t\t\toriginal?.(e);\n\t\t\t\t\topenDialog();\n\t\t\t\t},\n\t\t\t})\n\t\t) : trigger ? (\n\t\t\t<span\n\t\t\t\trole=\"button\"\n\t\t\t\ttabIndex={0}\n\t\t\t\tonClick={openDialog}\n\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\topenDialog();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\tclassName=\"cursor-pointer\"\n\t\t\t>\n\t\t\t\t{trigger}\n\t\t\t</span>\n\t\t) : null;\n\n\tif (!isOpen && !isClosing && !trigger) return null;\n\n\treturn (\n\t\t<>\n\t\t\t{triggerElement}\n\n\t\t\t{!!(isOpen || isClosing) &&\n\t\t\t\tcreatePortal(\n\t\t\t\t\t<div className=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'absolute inset-0 bg-foreground/50 backdrop-blur-[1px]',\n\t\t\t\t\t\t\t\t'transition-opacity duration-200',\n\t\t\t\t\t\t\t\tisClosing\n\t\t\t\t\t\t\t\t\t? 'opacity-0'\n\t\t\t\t\t\t\t\t\t: 'animate-in fade-in-0 duration-200',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tonClick={handleBackdropClick}\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<dialog\n\t\t\t\t\t\t\t{...dialogProps}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'alert-dialog--component relative z-10 m-0 w-full max-w-md p-0',\n\t\t\t\t\t\t\t\t'max-h-[90vh] flex flex-col',\n\t\t\t\t\t\t\t\t'rounded-lg border shadow-lg',\n\t\t\t\t\t\t\t\t'bg-background text-foreground',\n\t\t\t\t\t\t\t\t'animate-in fade-in-0 zoom-in-95 duration-200',\n\t\t\t\t\t\t\t\t'[&.closing]:animate-out [&.closing]:fade-out-0 [&.closing]:zoom-out-95 [&.closing]:duration-150',\n\t\t\t\t\t\t\t\t'outline-none focus-visible:outline-none',\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\trole=\"alertdialog\"\n\t\t\t\t\t\t\taria-modal=\"true\"\n\t\t\t\t\t\t\taria-labelledby={ariaLabelledBy}\n\t\t\t\t\t\t\taria-describedby={ariaDescribedBy}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"flex-1 overflow-auto p-6\">\n\t\t\t\t\t\t\t\t{!!showIcon && !visuallyHideHeader && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t'mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-full',\n\t\t\t\t\t\t\t\t\t\t\ttone === 'error' && 'bg-destructive/10',\n\t\t\t\t\t\t\t\t\t\t\ttone === 'warning' && 'bg-warning/15',\n\t\t\t\t\t\t\t\t\t\t\ttone === 'info' && 'bg-info/15',\n\t\t\t\t\t\t\t\t\t\t\ttone === 'success' && 'bg-success/15',\n\t\t\t\t\t\t\t\t\t\t\ttone === 'default' && 'bg-muted',\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span className={toneStyles.iconColor}>\n\t\t\t\t\t\t\t\t\t\t\t{toneStyles.icon}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{!!(title || description) && (\n\t\t\t\t\t\t\t\t\t<div className={cn(visuallyHideHeader && 'sr-only')}>\n\t\t\t\t\t\t\t\t\t\t{!!title && (\n\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\tid={alertTitleId}\n\t\t\t\t\t\t\t\t\t\t\t\ttag=\"div\"\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\t\t\t\t\t\tweight=\"semibold\"\n\t\t\t\t\t\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t{!!description && (\n\t\t\t\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\t\t\t\tid={alertDescriptionId}\n\t\t\t\t\t\t\t\t\t\t\t\ttag=\"p\"\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"mt-2\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{!!alertMessage && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t'mt-4 rounded-md border p-3 text-left',\n\t\t\t\t\t\t\t\t\t\t\ttone === 'error' &&\n\t\t\t\t\t\t\t\t\t\t\t\t'border-destructive/30 bg-destructive/5',\n\t\t\t\t\t\t\t\t\t\t\ttone === 'warning' &&\n\t\t\t\t\t\t\t\t\t\t\t\t'border-warning/40 bg-warning/10',\n\t\t\t\t\t\t\t\t\t\t\ttone === 'info' &&\n\t\t\t\t\t\t\t\t\t\t\t\t'border-info/40 bg-info/10',\n\t\t\t\t\t\t\t\t\t\t\ttone === 'success' &&\n\t\t\t\t\t\t\t\t\t\t\t\t'border-success/40 bg-success/10',\n\t\t\t\t\t\t\t\t\t\t\ttone === 'default' &&\n\t\t\t\t\t\t\t\t\t\t\t\t'border-border bg-muted/40',\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Text tag=\"p\">\n\t\t\t\t\t\t\t\t\t\t\t{alertMessage}\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{!!children && (\n\t\t\t\t\t\t\t\t\t<div className={cn('mt-4', contentClassName)}>\n\t\t\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t{!!(showCancel || showConfirm || footer) && (\n\t\t\t\t\t\t\t\t<div className=\"border-t px-6 py-4\">\n\t\t\t\t\t\t\t\t\t{footer ?? (\n\t\t\t\t\t\t\t\t\t\t<div className=\"flex flex-col-reverse gap-3 sm:flex-row sm:justify-end\">\n\t\t\t\t\t\t\t\t\t\t\t{!!showCancel && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tbuttonStyle=\"outline\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={handleCancel}\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"w-full sm:w-auto\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{strings.cancel}\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t{!!showConfirm && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant={resolvedConfirmVariant}\n\t\t\t\t\t\t\t\t\t\t\t\t\tbuttonStyle={confirmStyle}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={confirmButtonOnClick}\n\t\t\t\t\t\t\t\t\t\t\t\t\tloading={effectiveLoading}\n\t\t\t\t\t\t\t\t\t\t\t\t\tloadingLabels={{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tloading: strings.loading,\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"w-full sm:w-auto\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{strings.confirm}\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</dialog>\n\t\t\t\t\t</div>,\n\t\t\t\t\tdocument.body,\n\t\t\t\t)}\n\t\t</>\n\t);\n}\n\nexport const AlertDialog = memo(AlertDialogImpl);\nAlertDialog.displayName = 'AlertDialog';\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../lib/strings.cjs"),t=require("../../../lib/utils.cjs"),n=require("../../../_shared/button-Bd5bEIiB.cjs"),r=require("../../../_shared/typography-CO9uwZhF.cjs"),i=require("../../../_shared/overlays-Diy_H0Au.cjs"),a=require("../../../_shared/cards-BKFwMTjM.cjs");let o=require("react"),s=require("react/jsx-runtime"),c=require("lucide-react");var l={currentlySelected:`Currently selected:`,noResourceContent:`No resource content configured.`,noResourceSelected:`No resource selected.`,changeAction:`Change`};function u({resource:e,hasResource:t,mapInitialSelected:n,onConfirmSelection:r,isConfirmDisabled:i,onDialogOpen:a,onDialogClose:s,onError:c}){let[l,u]=(0,o.useState)(!1),[d,f]=(0,o.useState)(!1),[p,m]=(0,o.useState)(null),h=(0,o.useCallback)(()=>{let t=n(e);m(t),u(!0),a?.(t)},[n,a,e]),g=(0,o.useCallback)(()=>{d||(u(!1),m(null),s?.())},[d,s]),_=(0,o.useMemo)(()=>p===null?!1:i?!i(p):!0,[i,p]),v=(0,o.useCallback)(async()=>{if(!(d||!_||p===null)){f(!0);try{await r(p),u(!1),m(null),s?.()}catch(e){c?.(e,p)}finally{f(!1)}}},[_,d,r,s,c,p]);return(0,o.useMemo)(()=>({resource:e,hasResource:t,isSelectorOpen:l,isConfirming:d,selectedSuggestion:p,setSelectedSuggestion:m,openSelector:h,closeSelector:g,confirmSelection:v,canConfirmSelection:_}),[_,g,v,t,d,l,h,e,p])}function d({context:t,strings:n}){let r=e.useStrings(l,n),i=t.selectedSuggestion;if(i===null)return null;let a=typeof i==`object`&&i&&`label`in i&&typeof i.label==`string`?i.label:``;return(0,s.jsxs)(`div`,{className:`bg-muted rounded-md p-3 text-sm`,children:[(0,s.jsx)(`div`,{className:`font-medium`,children:r.currentlySelected}),(0,s.jsx)(`div`,{className:`text-muted-foreground mt-1`,children:a})]})}d.displayName=`DefaultDialogSummary`;function f({context:t,strings:n}){return(0,s.jsx)(r.s,{type:`secondary`,children:e.useStrings(l,n).noResourceContent})}f.displayName=`DefaultResourceContent`;function p({context:t,strings:i}){let a=e.useStrings(l,i);return(0,s.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-8 text-center`,children:[(0,s.jsx)(r.s,{type:`secondary`,className:`mb-4`,children:a.noResourceSelected}),(0,s.jsx)(n.t,{variant:`secondary`,buttonStyle:`outline`,onClick:t.openSelector,type:`button`,children:a.changeAction})]})}p.displayName=`DefaultEmptyContent`;function m({SelectorComponent:e,selectorProps:t,context:n}){return(0,s.jsx)(`div`,{className:`py-2`,children:(0,s.jsx)(e,{onSelect:n.setSelectedSuggestion,selected:n.selectedSuggestion,setSelected:n.setSelectedSuggestion,inModal:!0,lockOnSelect:!1,context:`dialog`,...t})})}m.displayName=`DefaultDialogContent`;function h({icon:h,title:g,description:_,className:v,contentClassName:y=`space-y-3`,alert:b,alertVariant:x,actions:S,headerAction:C,footerText:w,resource:T,hasResource:E,selector:D,sections:O,sectionsClassName:k,viewLink:A,ResourceContentComponent:j,EmptyContentComponent:M,renderResourceContent:N,renderEmptyContent:P,strings:F}){let I=e.useStrings(l,F),L=u({resource:T,hasResource:E,mapInitialSelected:D?.mapInitialSelected??(()=>null),onConfirmSelection:D?.onConfirmSelection??(()=>void 0),isConfirmDisabled:D?.isConfirmDisabled,onDialogOpen:D?.onDialogOpen,onDialogClose:D?.onDialogClose,onError:D?.onError}),R=D!==void 0,z=(0,o.useMemo)(()=>{let e=S??[],t=D?.actionLabel?.trim();return!R||!t?e.length>0?e:void 0:[...e,{id:`shared-resource-selector-change`,label:t,onClick:L.openSelector}]},[S,R,D?.actionLabel,L.openSelector]),B=(0,o.useMemo)(()=>{if(N)return N(L);if(j)return(0,s.jsx)(j,{context:L});if(Array.isArray(O)&&O.length>0){let e=O.filter(e=>e.when?e.when(L):!0);if(e.length>0)return(0,s.jsx)(`div`,{className:k??`space-y-3`,children:e.map(e=>{let t=e.Component;return(0,s.jsx)(`div`,{className:e.className,children:(0,s.jsx)(t,{context:L})},e.id)})})}return(0,s.jsx)(f,{context:L,strings:I})},[j,N,O,k,L,I]),V=(0,o.useMemo)(()=>P?P(L):M?(0,s.jsx)(M,{context:L}):R?(0,s.jsx)(p,{context:L,strings:I}):(0,s.jsx)(r.s,{type:`secondary`,children:I.noResourceSelected}),[M,R,P,L,I]),H=D?.DialogContentComponent,U=D?.DialogSummaryComponent,W=D?.SelectorComponent,G=D?.selectorProps??{},K=D?.dialogContentProps??{},q=E?B:V,J=!!(E&&A),Y=!!(R&&D&&W),X=J&&A?(0,s.jsx)(`div`,{className:A.className??`border-t pt-3`,children:(0,s.jsxs)(n.t,{href:A.href,variant:`primary`,fullWidth:!0,children:[(0,s.jsx)(c.Eye,{className:`h-4 w-4`}),A.label]})}):null,Z=Y&&D&&W?(0,s.jsxs)(i.r,{open:L.isSelectorOpen,onOpenChange:e=>{e||L.closeSelector()},title:D.title,description:D.description,size:D.dialogSize??`2xl`,showCancel:!1,showConfirm:!1,children:[H?(0,s.jsx)(H,{SelectorComponent:W,selectorProps:G,context:L,...K}):(0,s.jsx)(m,{SelectorComponent:W,selectorProps:G,context:L}),U?(0,s.jsx)(U,{context:L}):(0,s.jsx)(d,{context:L,strings:I}),(0,s.jsxs)(`div`,{className:`flex justify-end gap-2 border-t pt-4`,children:[(0,s.jsx)(n.t,{variant:`secondary`,buttonStyle:`outline`,onClick:L.closeSelector,disabled:L.isConfirming,type:`button`,children:D.cancelText}),(0,s.jsx)(n.t,{onClick:()=>{L.confirmSelection()},disabled:!L.canConfirmSelection||L.isConfirming,loading:L.isConfirming,type:`button`,children:D.confirmText})]})]}):null;return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(a.t,{icon:h,title:g,description:_,className:t.cn(`shared-resource-card--component`,`!gap-3`,v),contentClassName:y,alert:b,alertVariant:x,actions:z,headerAction:C,footerText:w,children:[q,X]}),Z]})}h.displayName=`SharedResourceCard`;function g(e){return typeof e==`string`||typeof e==`number`||typeof e==`bigint`?(0,s.jsx)(r.s,{children:String(e)}):e}function _({title:e,description:i,status:o,items:c,actionLabel:l,onAction:u,className:d,contentClassName:f}){return(0,s.jsxs)(a.t,{title:e,description:i,headerEnd:o,padding:`default`,className:t.cn(`booking-calendar-event-card--component`,`shadow-none`,d),contentClassName:t.cn(`space-y-4`,f),children:[(0,s.jsx)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:c.map(e=>(0,s.jsxs)(`div`,{className:t.cn(e.fullWidth===!0&&`sm:col-span-2`),children:[(0,s.jsx)(r.s,{size:`xs`,type:`secondary`,children:e.label}),g(e.value)]},e.id))}),(0,s.jsx)(`div`,{className:`flex justify-end`,children:(0,s.jsx)(n.t,{type:`button`,variant:`primary`,size:`small`,onClick:u,children:l})})]})}exports.BookingCalendarEventCard=_,exports.DefaultDialogContent=m,exports.DefaultDialogSummary=d,exports.DefaultEmptyContent=p,exports.DefaultResourceContent=f,exports.SharedResourceCard=h,exports.defaultSharedResourceCardStrings=l,exports.useSharedResourceCard=u;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../lib/strings.cjs"),t=require("../../../lib/utils.cjs"),n=require("../../../_shared/button-Bd5bEIiB.cjs"),r=require("../../../_shared/typography-CO9uwZhF.cjs"),i=require("../../../_shared/overlays-Du65iCkx.cjs"),a=require("../../../_shared/cards-BKFwMTjM.cjs");let o=require("react"),s=require("react/jsx-runtime"),c=require("lucide-react");var l={currentlySelected:`Currently selected:`,noResourceContent:`No resource content configured.`,noResourceSelected:`No resource selected.`,changeAction:`Change`};function u({resource:e,hasResource:t,mapInitialSelected:n,onConfirmSelection:r,isConfirmDisabled:i,onDialogOpen:a,onDialogClose:s,onError:c}){let[l,u]=(0,o.useState)(!1),[d,f]=(0,o.useState)(!1),[p,m]=(0,o.useState)(null),h=(0,o.useCallback)(()=>{let t=n(e);m(t),u(!0),a?.(t)},[n,a,e]),g=(0,o.useCallback)(()=>{d||(u(!1),m(null),s?.())},[d,s]),_=(0,o.useMemo)(()=>p===null?!1:i?!i(p):!0,[i,p]),v=(0,o.useCallback)(async()=>{if(!(d||!_||p===null)){f(!0);try{await r(p),u(!1),m(null),s?.()}catch(e){c?.(e,p)}finally{f(!1)}}},[_,d,r,s,c,p]);return(0,o.useMemo)(()=>({resource:e,hasResource:t,isSelectorOpen:l,isConfirming:d,selectedSuggestion:p,setSelectedSuggestion:m,openSelector:h,closeSelector:g,confirmSelection:v,canConfirmSelection:_}),[_,g,v,t,d,l,h,e,p])}function d({context:t,strings:n}){let r=e.useStrings(l,n),i=t.selectedSuggestion;if(i===null)return null;let a=typeof i==`object`&&i&&`label`in i&&typeof i.label==`string`?i.label:``;return(0,s.jsxs)(`div`,{className:`bg-muted rounded-md p-3 text-sm`,children:[(0,s.jsx)(`div`,{className:`font-medium`,children:r.currentlySelected}),(0,s.jsx)(`div`,{className:`text-muted-foreground mt-1`,children:a})]})}d.displayName=`DefaultDialogSummary`;function f({context:t,strings:n}){return(0,s.jsx)(r.s,{type:`secondary`,children:e.useStrings(l,n).noResourceContent})}f.displayName=`DefaultResourceContent`;function p({context:t,strings:i}){let a=e.useStrings(l,i);return(0,s.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-8 text-center`,children:[(0,s.jsx)(r.s,{type:`secondary`,className:`mb-4`,children:a.noResourceSelected}),(0,s.jsx)(n.t,{variant:`secondary`,buttonStyle:`outline`,onClick:t.openSelector,type:`button`,children:a.changeAction})]})}p.displayName=`DefaultEmptyContent`;function m({SelectorComponent:e,selectorProps:t,context:n}){return(0,s.jsx)(`div`,{className:`py-2`,children:(0,s.jsx)(e,{onSelect:n.setSelectedSuggestion,selected:n.selectedSuggestion,setSelected:n.setSelectedSuggestion,inModal:!0,lockOnSelect:!1,context:`dialog`,...t})})}m.displayName=`DefaultDialogContent`;function h({icon:h,title:g,description:_,className:v,contentClassName:y=`space-y-3`,alert:b,alertVariant:x,actions:S,headerAction:C,footerText:w,resource:T,hasResource:E,selector:D,sections:O,sectionsClassName:k,viewLink:A,ResourceContentComponent:j,EmptyContentComponent:M,renderResourceContent:N,renderEmptyContent:P,strings:F}){let I=e.useStrings(l,F),L=u({resource:T,hasResource:E,mapInitialSelected:D?.mapInitialSelected??(()=>null),onConfirmSelection:D?.onConfirmSelection??(()=>void 0),isConfirmDisabled:D?.isConfirmDisabled,onDialogOpen:D?.onDialogOpen,onDialogClose:D?.onDialogClose,onError:D?.onError}),R=D!==void 0,z=(0,o.useMemo)(()=>{let e=S??[],t=D?.actionLabel?.trim();return!R||!t?e.length>0?e:void 0:[...e,{id:`shared-resource-selector-change`,label:t,onClick:L.openSelector}]},[S,R,D?.actionLabel,L.openSelector]),B=(0,o.useMemo)(()=>{if(N)return N(L);if(j)return(0,s.jsx)(j,{context:L});if(Array.isArray(O)&&O.length>0){let e=O.filter(e=>e.when?e.when(L):!0);if(e.length>0)return(0,s.jsx)(`div`,{className:k??`space-y-3`,children:e.map(e=>{let t=e.Component;return(0,s.jsx)(`div`,{className:e.className,children:(0,s.jsx)(t,{context:L})},e.id)})})}return(0,s.jsx)(f,{context:L,strings:I})},[j,N,O,k,L,I]),V=(0,o.useMemo)(()=>P?P(L):M?(0,s.jsx)(M,{context:L}):R?(0,s.jsx)(p,{context:L,strings:I}):(0,s.jsx)(r.s,{type:`secondary`,children:I.noResourceSelected}),[M,R,P,L,I]),H=D?.DialogContentComponent,U=D?.DialogSummaryComponent,W=D?.SelectorComponent,G=D?.selectorProps??{},K=D?.dialogContentProps??{},q=E?B:V,J=!!(E&&A),Y=!!(R&&D&&W),X=J&&A?(0,s.jsx)(`div`,{className:A.className??`border-t pt-3`,children:(0,s.jsxs)(n.t,{href:A.href,variant:`primary`,fullWidth:!0,children:[(0,s.jsx)(c.Eye,{className:`h-4 w-4`}),A.label]})}):null,Z=Y&&D&&W?(0,s.jsxs)(i.r,{open:L.isSelectorOpen,onOpenChange:e=>{e||L.closeSelector()},title:D.title,description:D.description,size:D.dialogSize??`2xl`,showCancel:!1,showConfirm:!1,children:[H?(0,s.jsx)(H,{SelectorComponent:W,selectorProps:G,context:L,...K}):(0,s.jsx)(m,{SelectorComponent:W,selectorProps:G,context:L}),U?(0,s.jsx)(U,{context:L}):(0,s.jsx)(d,{context:L,strings:I}),(0,s.jsxs)(`div`,{className:`flex justify-end gap-2 border-t pt-4`,children:[(0,s.jsx)(n.t,{variant:`secondary`,buttonStyle:`outline`,onClick:L.closeSelector,disabled:L.isConfirming,type:`button`,children:D.cancelText}),(0,s.jsx)(n.t,{onClick:()=>{L.confirmSelection()},disabled:!L.canConfirmSelection||L.isConfirming,loading:L.isConfirming,type:`button`,children:D.confirmText})]})]}):null;return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(a.t,{icon:h,title:g,description:_,className:t.cn(`shared-resource-card--component`,`!gap-3`,v),contentClassName:y,alert:b,alertVariant:x,actions:z,headerAction:C,footerText:w,children:[q,X]}),Z]})}h.displayName=`SharedResourceCard`;function g(e){return typeof e==`string`||typeof e==`number`||typeof e==`bigint`?(0,s.jsx)(r.s,{children:String(e)}):e}function _({title:e,description:i,status:o,items:c,actionLabel:l,onAction:u,className:d,contentClassName:f}){return(0,s.jsxs)(a.t,{title:e,description:i,headerEnd:o,padding:`default`,className:t.cn(`booking-calendar-event-card--component`,`shadow-none`,d),contentClassName:t.cn(`space-y-4`,f),children:[(0,s.jsx)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:c.map(e=>(0,s.jsxs)(`div`,{className:t.cn(e.fullWidth===!0&&`sm:col-span-2`),children:[(0,s.jsx)(r.s,{size:`xs`,type:`secondary`,children:e.label}),g(e.value)]},e.id))}),(0,s.jsx)(`div`,{className:`flex justify-end`,children:(0,s.jsx)(n.t,{type:`button`,variant:`primary`,size:`small`,onClick:u,children:l})})]})}exports.BookingCalendarEventCard=_,exports.DefaultDialogContent=m,exports.DefaultDialogSummary=d,exports.DefaultEmptyContent=p,exports.DefaultResourceContent=f,exports.SharedResourceCard=h,exports.defaultSharedResourceCardStrings=l,exports.useSharedResourceCard=u;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -2,7 +2,7 @@ import { useStrings as e } from "../../../lib/strings.js";
2
2
  import { cn as t } from "../../../lib/utils.js";
3
3
  import { t as n } from "../../../_shared/button-DHksjMvc.js";
4
4
  import { s as r } from "../../../_shared/typography-DE0NGEIE.js";
5
- import { r as i } from "../../../_shared/overlays-CdtMAkKG.js";
5
+ import { r as i } from "../../../_shared/overlays-DW8OIK5R.js";
6
6
  import { t as a } from "../../../_shared/cards-CtBoSZG9.js";
7
7
  import { useCallback as o, useMemo as s, useState as c } from "react";
8
8
  import { Fragment as l, jsx as u, jsxs as d } from "react/jsx-runtime";
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../lib/strings.cjs"),t=require("../../../lib/utils.cjs"),n=require("../../../_shared/button-Bd5bEIiB.cjs"),r=require("../../../_shared/typography-CO9uwZhF.cjs"),i=require("../../../_shared/overlays-Diy_H0Au.cjs"),a=require("../../../_shared/badge-BeSKxX1u.cjs"),o=require("../../../_shared/alert-V0V36Sny.cjs"),s=require("../../../_shared/input-CB6hxh-5.cjs"),c=require("../../../_shared/forms-rmKcy5uO.cjs"),l=require("../../../_shared/display-Bin2vVex.cjs");let u=require("react"),d=require("react/jsx-runtime"),f=require("lucide-react"),p=require("react-dom");var m={title:`Add media`,description:`Pick from the library, or upload new files.`,close:`Close media library`,tabs:{library:`Library`,upload:`Upload`},searchPlaceholder:`Search by name or tag...`,clearSearch:`Clear search`,typeFilterLabel:`Type`,collectionFilterLabel:`Collection`,sortLabel:`Sort`,viewLabel:`View`,allTypes:`All`,images:`Images`,videos:`Videos`,files:`Files`,allCollections:`All collections`,sortNewest:`Newest`,sortName:`Name`,sortSize:`Size`,sortUsage:`Most used`,gridView:`Grid view`,tableView:`Table view`,countAll:`{count} items`,countFiltered:`{count} of {total} items`,emptyLibraryTitle:`Library is empty`,emptyLibraryDescription:`Upload images or videos to start building the library.`,emptyFilteredTitle:`No media matches`,emptyFilteredDescription:`Try a different search term, or clear the filters.`,clearFilters:`Clear filters`,uploadMedia:`Upload media`,loading:`Loading media...`,errorTitle:`Media could not load`,errorDescription:`Try again or adjust your filters.`,cardDetails:`Details for {name}`,privateLabel:`Private`,publicLabel:`Public`,typeImage:`Image`,typeVideo:`Video`,typeFile:`File`,unknownSize:`Unknown`,notUsed:`Not used yet`,usedIn:`{count} {count, plural, one {place} other {places}}`,table:{name:`Name`,type:`Type`,size:`Size`,collection:`Collection`,used:`Used`},detail:{title:`Details`,altText:`Alt text`,altPlaceholder:`Describe this media for screen readers`,collection:`Collection`,tags:`Tags`,tagsPlaceholder:`Comma-separated`,public:`Public`,publicHint:`Served from the public CDN`,privateHint:`Only visible in the admin`,type:`Type`,size:`Size`,dimensions:`Dimensions`,uploaded:`Uploaded`,usedIn:`Used in`,replace:`Replace file`,delete:`Delete`,close:`Close details`},upload:{dropTitle:`Drag files here or click to browse`,dropHint:`JPG, PNG, WebP, SVG and MP4 up to 50 MB per file`,dragOver:`Release to stage files`,collection:`Collection`,tags:`Tags`,tagsPlaceholder:`Comma-separated`,public:`Public`,publicHint:`Serve from the public CDN`,noFiles:`No files staged`,stagedCount:`{count} {count, plural, one {file} other {files}}`,removeFile:`Remove {name}`,uploading:`Uploading`,done:`Done`},footer:{pickOne:`Pick one item`,pickMany:`Pick one or more items`,selectedCount:`{count} selected`,clear:`Clear`,cancel:`Cancel`,confirmEmpty:`Add to product`,confirmOne:`Add 1 item`,confirmMany:`Add {count} items`,noFiles:`No files staged`,stagedSummary:`{count} {count, plural, one {file} other {files}} · {size}`,upload:`Upload`,uploadMany:`Upload {count} files`,uploading:`Uploading...`},gallery:{emptyTitle:`No media attached`,emptyDescription:`Add images, video, or files to this resource.`,add:`Add media`,addMore:`Add more`,addTile:`Add another media item`,cover:`Cover`,primary:`Primary`,setPrimary:`Set primary`,remove:`Remove`,movePrevious:`Move previous`,moveNext:`Move next`,itemPosition:`{index} of {total}`,maxReached:`Maximum reached`}};function h(e,t){return e.replace(/\{(\w+), plural, one \{([^}]*)\} other \{([^}]*)\}\}/g,(e,n,r,i)=>Number(t[n])===1?r:i).replace(/\{(\w+)\}/g,(e,n)=>String(t[n]??``))}var g={collection:void 0,tags:[],public:!0},_=[],v={getId:e=>e.id,getName:e=>e.name,getType:e=>e.type,getSrc:e=>e.src,getAlt:e=>e.alt,getSize:e=>e.size,getWidth:e=>e.width,getHeight:e=>e.height,getDuration:e=>e.duration,getCollection:e=>e.collection,getTags:e=>e.tags??[],getPublic:e=>e.public,getUploadedAt:e=>e.uploadedAt,getUsageCount:e=>e.usageCount,getTint:e=>e.tint,getMimeType:e=>e.mimeType};function y(e){return{...v,...e??{}}}function b(e){return!e||e<=0?``:e>=1048576?`${(e/1048576).toFixed(1)} MB`:`${Math.max(1,Math.round(e/1024))} KB`}function x(e,t){let n=t.getWidth(e),r=t.getHeight(e);return!n||!r?``:`${n} x ${r}`}function S(e,t){let n=t.getUploadedAt(e);if(!n)return 0;let r=(n instanceof Date?n:new Date(n)).getTime();return Number.isFinite(r)?r:0}function C(e){return e.type.startsWith(`image/`)?`image`:e.type.startsWith(`video/`)?`video`:`file`}function w(e){if(e.type.startsWith(`image/`)&&!(typeof URL>`u`||typeof URL.createObjectURL!=`function`))return URL.createObjectURL(e)}function T(e){!e||typeof URL>`u`||typeof URL.revokeObjectURL!=`function`||URL.revokeObjectURL(e)}function E(e){return Array.isArray(e)?{items:e,total:e.length}:e}function ee(e,t){return t&&typeof e==`object`&&e?{...e,...t}:e}function te(e,t,n,r,i){let a=n.trim().toLowerCase();return e.filter(e=>r!==`all`&&t.getType(e)!==r||i!==`all`&&t.getCollection(e)!==i?!1:a?[t.getName(e),t.getAlt(e),t.getCollection(e),...t.getTags(e)].filter(Boolean).join(` `).toLowerCase().includes(a):!0)}function ne(e,t,n){let r=e.slice();return n===`name`?r.sort((e,n)=>t.getName(e).localeCompare(t.getName(n))):n===`size`?r.sort((e,n)=>(t.getSize(n)??0)-(t.getSize(e)??0)):n===`usage`?r.sort((e,n)=>(t.getUsageCount(n)??0)-(t.getUsageCount(e)??0)):r.sort((e,n)=>S(n,t)-S(e,t)),r}function D({items:e=_,fetcher:t,accessors:n,selectionMode:r=`multiple`,value:i,defaultValue:a=[],onValueChange:o,onItemUpdate:s,onItemDelete:c,onUpload:l,onError:d,initialTab:f=`library`,defaultView:p=`grid`,defaultQuery:m=``,defaultType:h=`all`,defaultCollection:v=`all`,defaultSort:b=`newest`,defaultUploadOptions:x}={}){let S=(0,u.useMemo)(()=>y(n),[n]),[D,O]=(0,u.useState)(f),[k,A]=(0,u.useState)(p),[j,M]=(0,u.useState)(m),[N,P]=(0,u.useState)(h),[F,I]=(0,u.useState)(v),[L,re]=(0,u.useState)(b),[ie,ae]=(0,u.useState)(null),[R,oe]=(0,u.useState)(()=>[...a]),[se,ce]=(0,u.useState)([]),[le,ue]=(0,u.useState)(),[de,fe]=(0,u.useState)(!1),[pe,z]=(0,u.useState)(null),[me,he]=(0,u.useState)([]),[ge,_e]=(0,u.useState)(()=>new Set),[ve,B]=(0,u.useState)({}),[V,H]=(0,u.useState)([]),[U,W]=(0,u.useState)(!1),[G,ye]=(0,u.useState)({...g,...x,tags:x?.tags??g.tags}),K=i!==void 0,q=(0,u.useMemo)(()=>K?[...i??[]]:R,[R,K,i]),J=(0,u.useMemo)(()=>new Set(q),[q]),Y=(0,u.useRef)(new Set);(0,u.useEffect)(()=>{if(!t)return;let e=new AbortController;return fe(!0),z(null),t({query:j,type:N,collection:F===`all`?void 0:F,sort:L,signal:e.signal}).then(t=>{if(e.signal.aborted)return;let n=E(t);ce(n.items),ue(n.total)}).catch(t=>{e.signal.aborted||(z(t),d?.(t))}).finally(()=>{e.signal.aborted||fe(!1)}),()=>e.abort()},[F,t,d,j,L,N]),(0,u.useEffect)(()=>{let e=Y.current;return()=>{for(let t of e)T(t);e.clear()}},[]);let X=(0,u.useMemo)(()=>t?se:[...me,...e],[me,se,t,e]),Z=(0,u.useMemo)(()=>X.filter(e=>!ge.has(S.getId(e))).map(e=>ee(e,ve[S.getId(e)])),[S,ve,ge,X]),Q=(0,u.useMemo)(()=>{let e=t?Z:te(Z,S,j,N,F);return t?e:ne(e,S,L)},[S,F,t,Z,j,L,N]),be=le??Z.length,xe=Q.length,Se=(0,u.useMemo)(()=>Z.filter(e=>J.has(S.getId(e))),[S,Z,J]),Ce=!!j.trim()||N!==`all`||F!==`all`,$=(0,u.useCallback)(e=>{K||oe(e);let t=new Set(e),n=Z.filter(e=>t.has(S.getId(e)));o?.(e,n)},[S,K,o,Z]),we=(0,u.useCallback)(e=>{let t=new Set(r===`single`?[]:J);J.has(e)&&r!==`single`?t.delete(e):t.add(e),$(Array.from(t))},[$,J,r]),Te=(0,u.useCallback)(()=>$([]),[$]),Ee=(0,u.useCallback)(()=>{M(``),P(`all`),I(`all`)},[]),De=(0,u.useCallback)(e=>{H(t=>[...t,...e.map((e,t)=>{let n=w(e);return n&&Y.current.add(n),{id:`staged-${Date.now()}-${t}`,file:e,name:e.name,size:e.size,type:C(e),src:n,progress:0,status:`staged`}})])},[]),Oe=(0,u.useCallback)(e=>{H(t=>{let n=t.find(t=>t.id===e);return n?.src&&(T(n.src),Y.current.delete(n.src)),t.filter(t=>t.id!==e)})},[]),ke=(0,u.useCallback)(()=>{H(e=>{for(let t of e)t.src&&(T(t.src),Y.current.delete(t.src));return[]})},[]),Ae=(0,u.useCallback)(e=>{ye(t=>({...t,...e}))},[]),je=(0,u.useCallback)((e,t)=>{H(n=>n.map(n=>n.id===e?{...n,...t}:n))},[]);return{tab:D,setTab:O,view:k,setView:A,query:j,setQuery:M,type:N,setType:P,collection:F,setCollection:I,sort:L,setSort:re,detailId:ie,setDetailId:ae,items:Z,visibleItems:Q,selectedIds:q,selectedItems:Se,selectedSet:J,toggleSelection:we,clearSelection:Te,clearFilters:Ee,loading:de,error:pe,hasFilters:Ce,totalCount:be,filteredCount:xe,stagedFiles:V,addFiles:De,removeStagedFile:Oe,clearStagedFiles:ke,updateUploadOptions:Ae,uploadOptions:G,uploading:U,startUpload:(0,u.useCallback)(async()=>{if(U||V.length===0)return;W(!0),H(e=>e.map(e=>({...e,status:`uploading`,progress:0})));let e={setProgress:(e,t)=>{je(e,{progress:Math.max(0,Math.min(100,t))})},setFileStatus:(e,t,n)=>je(e,{status:t,error:n})};try{let t=V.map(e=>e.file),n=await l?.(t,G,e);if(H(e=>e.map(e=>({...e,status:`done`,progress:100}))),n?.length){he(e=>[...n,...e]);let e=n.map(e=>S.getId(e));$(r===`single`?e.slice(0,1):Array.from(new Set([...e,...q])))}ke(),O(`library`)}catch(e){z(e),H(e=>e.map(e=>e.status===`uploading`?{...e,status:`error`,error:`Upload failed`}:e)),d?.(e)}finally{W(!1)}},[S,$,ke,d,l,q,r,je,V,G,U]),updateItem:(0,u.useCallback)((e,t)=>{let n=S.getId(e);B(e=>({...e,[n]:{...e[n],...t}})),s?.(e,t)},[S,s]),removeItem:(0,u.useCallback)(e=>{let t=S.getId(e);_e(e=>new Set(e).add(t)),J.has(t)&&$(q.filter(e=>e!==t)),c?.(e)},[S,$,c,q,J]),accessors:S}}function O(e,t){return e===`image`?(0,d.jsx)(f.ImageIcon,{className:t??`size-4`}):e===`video`?(0,d.jsx)(f.Video,{className:t??`size-4`}):(0,d.jsx)(f.File,{className:t??`size-4`})}function k(e,t){return e===`image`?t.typeImage:e===`video`?t.typeVideo:t.typeFile}function A(e,t){return e?h(t.usedIn,{count:e}):t.notUsed}function j({children:e,tint:n,className:r}){return(0,d.jsx)(`div`,{className:t.cn(`media-library-preview relative overflow-hidden bg-muted`,r),style:n?{background:n}:void 0,children:e})}function M({src:e,alt:t,type:n,className:r,loading:i=`lazy`}){let[a,o]=(0,u.useState)(!1);return(0,u.useEffect)(()=>{o(!1)},[e]),!e||a?(0,d.jsx)(`div`,{className:`media-library-preview--fallback flex size-full items-center justify-center text-muted-foreground`,children:O(n,`size-6`)}):(0,d.jsx)(`img`,{src:e,alt:t,loading:i,className:r,onError:()=>o(!0)})}function N({icon:e,title:n,description:i,action:a,className:o}){return(0,d.jsxs)(`div`,{className:t.cn(`media-library-empty-state--component flex min-h-64 flex-col items-center justify-center rounded-lg border border-dashed border-border bg-muted/20 px-6 py-10 text-center`,o),children:[(0,d.jsx)(`div`,{className:`mb-3 inline-flex size-10 items-center justify-center rounded-full bg-muted text-muted-foreground`,children:e??(0,d.jsx)(f.ImageIcon,{className:`size-5`})}),(0,d.jsx)(r.s,{tag:`div`,weight:`semibold`,children:n}),!!i&&(0,d.jsx)(r.s,{type:`secondary`,size:`xs`,className:`mt-1 max-w-sm`,children:i}),!!a&&(0,d.jsx)(`div`,{className:`mt-4`,children:a})]})}function P({query:e,type:r,typeFilters:i,collection:a,sort:o,view:l,collections:u=[],strings:p,onQueryChange:m,onTypeChange:h,onCollectionChange:g,onSortChange:_,onViewChange:v,onClearFilters:y,toolbarEnd:b}){let x=[{value:`all`,label:p.allTypes,icon:null},{value:`image`,label:p.images,icon:f.ImageIcon},{value:`video`,label:p.videos,icon:f.Video},{value:`file`,label:p.files,icon:f.File}].filter(e=>(i??[`all`,`image`,`video`]).includes(e.value)),S=[{value:`all`,label:p.allCollections},...u.map(e=>({value:e.value,label:String(e.label)}))],C=[{value:`newest`,label:p.sortNewest},{value:`name`,label:p.sortName},{value:`size`,label:p.sortSize},{value:`usage`,label:p.sortUsage}];return(0,d.jsxs)(`div`,{className:`media-library-toolbar--component flex flex-wrap items-center gap-2`,children:[(0,d.jsx)(`div`,{className:`min-w-52 flex-1`,children:(0,d.jsx)(s.t,{value:e,onChange:e=>m(e.target.value),placeholder:p.searchPlaceholder,startIcon:f.Search,clearable:!0,onClear:()=>m(``),strings:{clear:p.clearSearch},className:`rounded-full bg-muted/20`})}),(0,d.jsx)(`div`,{className:`media-library-toolbar--type-toggle flex h-9 items-center rounded-md bg-muted p-0.5`,role:`tablist`,"aria-label":p.typeFilterLabel,children:x.map(e=>{let i=e.icon,a=r===e.value;return(0,d.jsxs)(n.t,{type:`button`,role:`tab`,"aria-selected":a,variant:`secondary`,buttonStyle:`ghost`,className:t.cn(`h-8 rounded-sm px-3 text-xs shadow-none`,a?`bg-background text-foreground shadow-xs hover:bg-background`:`text-muted-foreground hover:bg-transparent hover:text-foreground`),onClick:()=>h(e.value),children:[i&&(0,d.jsx)(i,{className:`size-3.5`}),e.label]},e.value)})}),(0,d.jsx)(`div`,{className:`min-w-40`,children:(0,d.jsx)(c.Y,{value:a,options:S,onChange:e=>g(e??`all`),placeholder:p.collectionFilterLabel,"aria-label":p.collectionFilterLabel,className:`bg-background`})}),(0,d.jsx)(`div`,{className:`min-w-32`,children:(0,d.jsx)(c.Y,{value:o,options:C,onChange:e=>_(e??`newest`),placeholder:p.sortLabel,"aria-label":p.sortLabel,className:`bg-background`})}),(0,d.jsxs)(`div`,{className:`media-library-toolbar--view-toggle ml-auto flex h-9 items-center rounded-md bg-muted p-0.5`,children:[(0,d.jsx)(n.t,{type:`button`,variant:l===`grid`?`dark`:`secondary`,buttonStyle:l===`grid`?`solid`:`ghost`,size:`icon-small`,className:t.cn(l===`grid`&&`bg-background text-foreground shadow-xs hover:bg-background`),"aria-label":p.gridView,onClick:()=>v(`grid`),children:(0,d.jsx)(f.Grid2X2,{className:`size-3.5`})}),(0,d.jsx)(n.t,{type:`button`,variant:l===`table`?`dark`:`secondary`,buttonStyle:l===`table`?`solid`:`ghost`,size:`icon-small`,className:t.cn(l===`table`&&`bg-background text-foreground shadow-xs hover:bg-background`),"aria-label":p.tableView,onClick:()=>v(`table`),children:(0,d.jsx)(f.LayoutList,{className:`size-3.5`})})]}),!!e&&(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,onClick:y,children:p.clearFilters}),b]})}function F({item:e,selected:i=!1,density:o=`comfortable`,showMeta:s=!0,accessors:c,strings:l,onToggle:u,onDetails:p,className:m}){let g=c.getType(e),_=c.getName(e),v=c.getSrc(e),y=c.getAlt(e)||_,x=c.getSize(e),S=c.getUsageCount(e),C=c.getPublic(e)===!1,w=c.getDuration(e);return(0,d.jsxs)(`div`,{"data-selected":i||void 0,"data-density":o,className:t.cn(`media-library-card--component group/card overflow-hidden rounded-xl border border-border/70 bg-card text-left shadow-xs transition-all`,`hover:border-primary/30 hover:shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,i&&`media-library-card--selected border-primary ring-1 ring-primary`,m),onClick:u,children:[(0,d.jsxs)(j,{tint:c.getTint(e),className:t.cn(o===`compact`?`aspect-square`:`aspect-[4/3]`),children:[(0,d.jsx)(M,{src:v,alt:y,type:g,className:`size-full object-cover`}),(0,d.jsx)(`span`,{className:t.cn(`media-library-card--check absolute left-2 top-2 inline-flex size-5 items-center justify-center rounded-md border border-border bg-background/95 text-transparent opacity-0 shadow-xs backdrop-blur transition-opacity group-hover/card:opacity-100 group-focus-visible/card:opacity-100`,i&&`bg-primary text-primary-foreground opacity-100`),"aria-hidden":`true`,children:(0,d.jsx)(f.Check,{className:`size-3`})}),!!p&&(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`solid`,size:`icon-small`,className:`media-library-card--details absolute right-2 top-2 opacity-0 shadow-sm transition-opacity group-hover/card:opacity-100 group-focus-within/card:opacity-100`,"aria-label":h(l.cardDetails,{name:_}),onClick:e=>{e.stopPropagation(),p()},children:(0,d.jsx)(f.Info,{className:`size-3.5`})}),g===`video`&&!!w&&(0,d.jsxs)(a.t,{variant:`secondary`,className:`media-library-card--duration absolute bottom-2 left-2 bg-foreground text-background`,children:[(0,d.jsx)(f.Play,{className:`size-3 fill-current`}),w]}),C&&(0,d.jsx)(a.t,{variant:`secondary`,className:`media-library-card--private absolute bottom-2 right-2 bg-background/90`,children:(0,d.jsx)(f.Lock,{className:`size-3`})})]}),(0,d.jsxs)(`div`,{className:`media-library-card--body grid gap-1 px-3 py-2.5`,children:[(0,d.jsx)(r.s,{tag:`div`,weight:`semibold`,size:`xs`,className:`truncate`,children:_}),s&&(0,d.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,className:`truncate`,children:b(x)||l.unknownSize}),!!S&&(0,d.jsxs)(r.s,{tag:`span`,size:`xxs`,type:`secondary`,className:`ml-auto inline-flex items-center gap-1`,children:[(0,d.jsx)(f.Layers3,{className:`size-3`}),S]})]})]})]})}function I({items:e,selectedSet:i,accessors:o,strings:s,onToggle:c,onDetails:l}){return(0,d.jsxs)(`div`,{className:`media-library-table--component min-w-180`,children:[(0,d.jsxs)(`div`,{className:`sticky top-0 z-10 grid grid-cols-[32px_42px_minmax(0,1fr)_86px_88px_120px_72px_34px] items-center gap-3 border-b border-border bg-background px-3 py-2`,children:[(0,d.jsx)(`span`,{}),(0,d.jsx)(`span`,{}),(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,weight:`semibold`,children:s.table.name}),(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,weight:`semibold`,children:s.table.type}),(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,weight:`semibold`,children:s.table.size}),(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,weight:`semibold`,children:s.table.collection}),(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,weight:`semibold`,children:s.table.used}),(0,d.jsx)(`span`,{})]}),e.map(e=>{let u=o.getId(e),p=i.has(u),m=o.getType(e),g=o.getName(e),_=o.getSrc(e),v=o.getPublic(e)===!1;return(0,d.jsxs)(`div`,{"data-selected":p||void 0,className:t.cn(`media-library-table--row grid grid-cols-[32px_42px_minmax(0,1fr)_86px_88px_120px_72px_34px] items-center gap-3 border-b border-border/60 px-3 py-2 last:border-b-0`,`cursor-pointer rounded-lg transition-colors hover:bg-muted/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset`,p&&`bg-primary/10`),onClick:()=>c(u),children:[(0,d.jsx)(`span`,{className:t.cn(`inline-flex size-5 items-center justify-center rounded-md border border-border text-transparent`,p&&`border-primary bg-primary text-primary-foreground`),"aria-hidden":`true`,children:(0,d.jsx)(f.Check,{className:`size-3`})}),(0,d.jsx)(j,{tint:o.getTint(e),className:`size-9 rounded-md`,children:_?(0,d.jsx)(`img`,{src:_,alt:``,loading:`lazy`,className:`size-full object-cover`}):(0,d.jsx)(`div`,{className:`flex size-full items-center justify-center text-muted-foreground`,children:O(m,`size-4`)})}),(0,d.jsxs)(r.s,{tag:`div`,weight:`semibold`,size:`xs`,className:`flex min-w-0 items-center gap-1 truncate`,children:[(0,d.jsx)(`span`,{className:`truncate`,children:g}),v&&(0,d.jsx)(f.Lock,{className:`size-3 shrink-0 text-muted-foreground`})]}),(0,d.jsx)(a.t,{variant:`secondary`,children:k(m,s)}),(0,d.jsx)(r.s,{size:`xs`,type:`secondary`,children:b(o.getSize(e))||s.unknownSize}),(0,d.jsx)(r.s,{size:`xs`,type:`secondary`,className:`truncate`,children:o.getCollection(e)||`-`}),(0,d.jsx)(r.s,{size:`xs`,type:`secondary`,children:o.getUsageCount(e)?o.getUsageCount(e):`-`}),(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,"aria-label":h(s.cardDetails,{name:g}),onClick:e=>{e.stopPropagation(),l(u)},children:(0,d.jsx)(f.Info,{className:`size-3.5`})})]},u)})]})}function L({item:e,collections:t=[],accessors:i,strings:o,onClose:u,onUpdate:p,onRemove:m,renderDetail:h}){if(!e)return null;let g=i.getName(e),_=i.getType(e),v=i.getSrc(e),y=i.getCollection(e)??t[0]?.value??``,S=i.getTags(e),C=i.getPublic(e)??!0,w=h?.(e,{accessors:i,update:p,remove:m,close:u});return w?(0,d.jsx)(d.Fragment,{children:w}):(0,d.jsxs)(`aside`,{className:`media-library-detail-panel--component flex min-h-0 w-full flex-col border-l border-border bg-background lg:w-72`,children:[(0,d.jsxs)(`div`,{className:`media-library-detail-panel--header flex items-center gap-2 border-b border-border px-3 py-2.5`,children:[(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,"aria-label":o.detail.close,onClick:u,children:(0,d.jsx)(f.ArrowLeft,{className:`size-3.5`})}),(0,d.jsx)(r.s,{weight:`semibold`,children:o.detail.title})]}),(0,d.jsxs)(`div`,{className:`media-library-detail-panel--body grid min-h-0 gap-4 overflow-y-auto p-4`,children:[(0,d.jsxs)(j,{tint:i.getTint(e),className:`aspect-[4/3] rounded-lg border border-border`,children:[(0,d.jsx)(M,{src:v,alt:i.getAlt(e)||g,type:_,className:`size-full object-cover`}),_===`video`&&!!i.getDuration(e)&&(0,d.jsxs)(a.t,{className:`absolute bottom-2 right-2 bg-foreground text-background`,children:[(0,d.jsx)(f.Play,{className:`size-3 fill-current`}),i.getDuration(e)]})]}),(0,d.jsx)(r.s,{tag:`div`,weight:`semibold`,className:`break-words`,children:g}),(0,d.jsx)(`dl`,{className:`media-library-detail-panel--facts grid gap-2`,children:[[o.detail.type,k(_,o)],[o.detail.size,b(i.getSize(e))||o.unknownSize],[o.detail.dimensions,x(e,i)||`-`],[o.detail.uploaded,String(i.getUploadedAt(e)??`-`)],[o.detail.usedIn,A(i.getUsageCount(e),o)]].map(([e,t])=>(0,d.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,d.jsx)(`dt`,{children:(0,d.jsx)(r.s,{tag:`span`,size:`xs`,type:`secondary`,children:e})}),(0,d.jsx)(`dd`,{className:`m-0 text-right`,children:(0,d.jsx)(r.s,{tag:`span`,size:`xs`,weight:`medium`,children:t})})]},e))}),(0,d.jsx)(l.D,{label:o.detail.altText,children:(0,d.jsx)(s.t,{value:i.getAlt(e)??``,placeholder:o.detail.altPlaceholder,onChange:e=>p({alt:e.target.value})})}),(0,d.jsx)(l.D,{label:o.detail.collection,children:(0,d.jsx)(c.Y,{value:y,options:t.map(e=>({value:e.value,label:String(e.label)})),"aria-label":o.detail.collection,onChange:e=>p({collection:e})})}),(0,d.jsx)(l.D,{label:o.detail.tags,children:(0,d.jsx)(s.t,{value:S.join(`, `),placeholder:o.detail.tagsPlaceholder,onChange:e=>p({tags:e.target.value.split(`,`).map(e=>e.trim()).filter(Boolean)})})}),(0,d.jsxs)(`div`,{className:`media-library-detail-panel--public flex items-center justify-between gap-4 rounded-lg border border-border bg-muted/20 p-3`,children:[(0,d.jsxs)(`div`,{children:[(0,d.jsx)(r.s,{weight:`semibold`,size:`xs`,children:o.detail.public}),(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,children:C?o.detail.publicHint:o.detail.privateHint})]}),(0,d.jsx)(c.J,{checked:C,onCheckedChange:e=>p({public:e})})]}),(0,d.jsxs)(`div`,{className:`media-library-detail-panel--actions flex flex-wrap gap-2`,children:[(0,d.jsxs)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`outline`,children:[(0,d.jsx)(f.UploadCloud,{className:`size-3.5`}),o.detail.replace]}),(0,d.jsxs)(n.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,onClick:m,children:[(0,d.jsx)(f.Trash2,{className:`size-3.5`}),o.detail.delete]})]})]})]})}function re({stagedFiles:e,uploadOptions:t,collections:i=[],uploading:o=!1,strings:u,onFiles:p,onRemoveFile:m,onOptionsChange:g,empty:_}){return(0,d.jsxs)(`div`,{className:`media-library-upload-panel--component grid gap-4 p-4`,children:[(0,d.jsx)(c.T,{onDrop:p,accept:`image/*,video/*`,multiple:!0,size:`default`,strings:{instruction:u.upload.dropTitle,helper:u.upload.dropHint,dragOver:u.upload.dragOver}}),e.length>0?(0,d.jsx)(`div`,{className:`media-library-upload-panel--staged grid gap-2`,children:e.map(e=>(0,d.jsxs)(`div`,{className:`media-library-upload-panel--staged-file flex items-center gap-3 rounded-lg border border-border bg-card p-2`,children:[(0,d.jsx)(j,{className:`size-10 rounded-md`,children:e.src?(0,d.jsx)(`img`,{src:e.src,alt:e.name,className:`size-full object-cover`}):(0,d.jsx)(`div`,{className:`flex size-full items-center justify-center text-muted-foreground`,children:O(e.type,`size-4`)})}),(0,d.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,d.jsxs)(`div`,{className:`flex items-baseline gap-3`,children:[(0,d.jsx)(r.s,{weight:`semibold`,size:`xs`,className:`truncate`,children:e.name}),(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,className:`ml-auto shrink-0`,children:b(e.size)})]}),(e.status===`uploading`||e.status===`done`)&&(0,d.jsx)(`div`,{className:`mt-2 h-1 overflow-hidden rounded-full bg-muted`,children:(0,d.jsx)(`div`,{className:`h-full rounded-full bg-primary transition-[width]`,style:{width:`${e.progress}%`}})}),e.status===`error`&&(0,d.jsx)(r.s,{size:`xxs`,type:`error`,children:e.error})]}),e.status===`done`?(0,d.jsx)(a.t,{variant:`success`,children:u.upload.done}):e.status===`uploading`?(0,d.jsxs)(r.s,{size:`xxs`,type:`secondary`,className:`tabular-nums`,children:[Math.round(e.progress),`%`]}):(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,disabled:o,"aria-label":h(u.upload.removeFile,{name:e.name}),onClick:()=>m(e.id),children:(0,d.jsx)(f.X,{className:`size-3.5`})})]},e.id))}):_,(0,d.jsxs)(`div`,{className:`media-library-upload-panel--options grid gap-3 rounded-lg border border-border bg-muted/20 p-3 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)_auto]`,children:[(0,d.jsx)(l.D,{label:u.upload.collection,children:(0,d.jsx)(c.Y,{value:t.collection??i[0]?.value,options:i.map(e=>({value:e.value,label:String(e.label)})),"aria-label":u.upload.collection,onChange:e=>g({collection:e})})}),(0,d.jsx)(l.D,{label:u.upload.tags,children:(0,d.jsx)(s.t,{value:t.tags.join(`, `),placeholder:u.upload.tagsPlaceholder,onChange:e=>g({tags:e.target.value.split(`,`).map(e=>e.trim()).filter(Boolean)})})}),(0,d.jsxs)(`div`,{className:`flex items-center justify-between gap-4 md:self-end`,children:[(0,d.jsxs)(`div`,{children:[(0,d.jsx)(r.s,{weight:`semibold`,size:`xs`,children:u.upload.public}),(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,children:u.upload.publicHint})]}),(0,d.jsx)(c.J,{checked:t.public,onCheckedChange:e=>g({public:e})})]})]})]})}function ie({tab:e,selectedIds:i,selectionMode:a,stagedFiles:o,strings:s,onClearSelection:c,className:l}){let u=i.length,f=o.reduce((e,t)=>e+t.size,0),p=o.length,m=t.cn(`media-library-footer-summary--component flex min-w-0 items-center gap-3`,l);return e===`upload`?(0,d.jsx)(`div`,{className:m,"aria-live":`polite`,children:(0,d.jsx)(r.s,{size:`xs`,type:`secondary`,className:`truncate`,children:p===0?s.footer.noFiles:h(s.footer.stagedSummary,{count:p,size:b(f)})})}):(0,d.jsx)(`div`,{className:m,"aria-live":`polite`,children:u>0?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.s,{weight:`semibold`,size:`xs`,className:`whitespace-nowrap`,children:h(s.footer.selectedCount,{count:u})}),(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`small`,onClick:c,children:s.footer.clear})]}):(0,d.jsx)(r.s,{size:`xs`,type:`secondary`,className:`truncate`,children:a===`single`?s.footer.pickOne:s.footer.pickMany})})}function ae({tab:e,selectedItems:r,selectedIds:i,stagedFiles:a,uploading:o=!1,strings:s,confirmLabel:c,cancelLabel:l,onCancel:u,onConfirm:f,onUpload:p,onCancelUpload:m,className:g}){let _=i.length,v=a.length;return e===`upload`?(0,d.jsxs)(`div`,{className:t.cn(`media-library-footer-actions--component flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,g),children:[(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,disabled:o,onClick:m,children:l??s.footer.cancel}),(0,d.jsx)(n.t,{type:`button`,disabled:v===0||o,onClick:p,loading:o,loadingLabels:{loading:s.footer.uploading},children:v<=1?s.footer.upload:h(s.footer.uploadMany,{count:v})})]}):(0,d.jsxs)(`div`,{className:t.cn(`media-library-footer-actions--component flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,g),children:[(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,onClick:u,children:l??s.footer.cancel}),(0,d.jsx)(n.t,{type:`button`,disabled:_===0,onClick:f,children:c??(_===0?s.footer.confirmEmpty:r.length===1?s.footer.confirmOne:h(s.footer.confirmMany,{count:_}))})]})}function R({tab:e,selectedItems:n,selectedIds:r,selectionMode:i,stagedFiles:a,uploading:o=!1,strings:s,confirmLabel:c,cancelLabel:l,onCancel:u,onConfirm:f,onClearSelection:p,onUpload:m,onCancelUpload:h,chrome:g=`section`,className:_}){return(0,d.jsxs)(`footer`,{className:t.cn(`media-library-footer--component flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between`,g===`section`&&`border-t border-border bg-background px-4 py-3`,_),children:[(0,d.jsx)(ie,{tab:e,selectedIds:r,selectionMode:i,stagedFiles:a,strings:s,onClearSelection:p}),(0,d.jsx)(ae,{tab:e,selectedItems:n,selectedIds:r,stagedFiles:a,uploading:o,strings:s,confirmLabel:c,cancelLabel:l,onCancel:u,onConfirm:f,onUpload:m,onCancelUpload:h})]})}var oe=(0,u.createContext)(null);function se(e,t,n){return(0,u.useMemo)(()=>{if(e)return e;let r=new Set;for(let e of t){let t=n(e);t&&r.add(t)}return Array.from(r).map(e=>({value:e,label:e}))},[e,n,t])}function ce({title:i,description:a,confirmLabel:s,cancelLabel:c,selectionMode:l=`multiple`,density:g=`comfortable`,showMeta:_=!0,allowUpload:v=!0,typeFilters:y,confirmOnSelect:b=!1,onConfirm:x,onCancel:S,onClose:C,strings:w,slots:T,heightClassName:E,className:ee,items:te,fetcher:ne,accessors:O,collections:k,value:A,defaultValue:j,onValueChange:M,onItemUpdate:ce,onItemDelete:le,onUpload:ue,onError:de,initialTab:fe,defaultView:pe,defaultQuery:z,defaultType:me,defaultCollection:he,defaultSort:ge,defaultUploadOptions:_e,...ve}){let B=e.useStrings(m,w),V=D({items:te,fetcher:ne,accessors:O,collections:k,selectionMode:l,value:A,defaultValue:j,onValueChange:M,onItemUpdate:ce,onItemDelete:le,onUpload:ue,onError:de,initialTab:fe,defaultView:pe,defaultQuery:z,defaultType:me,defaultCollection:he,defaultSort:ge,defaultUploadOptions:_e}),H=se(k,V.items,V.accessors.getCollection),U=v?V.tab:`library`,W=V.detailId?V.items.find(e=>V.accessors.getId(e)===V.detailId)??null:null,G=(0,u.useContext)(oe),ye=!T?.footer,K=G&&ye?(0,d.jsx)(ie,{tab:U,selectedIds:V.selectedIds,selectionMode:l,stagedFiles:V.stagedFiles,strings:B,onClearSelection:V.clearSelection,className:`media-library-dialog--selection-summary shrink-0 justify-end`}):null,q=!!(i||a||T?.headerStart),J=!!(v||T?.headerEnd||K),Y=q||J,X=()=>{x?.(V.selectedItems,V.selectedIds),C?.()},Z=()=>{S?.(),C?.()},Q=e=>{let t=V.accessors.getId(e);V.toggleSelection(t),b&&(x?.([e],[t]),C?.())},be=V.filteredCount===V.totalCount?h(B.countAll,{count:V.totalCount}):h(B.countFiltered,{count:V.filteredCount,total:V.totalCount}),xe=T?.footer??(G?(0,d.jsx)(ae,{tab:U,selectedItems:V.selectedItems,selectedIds:V.selectedIds,stagedFiles:V.stagedFiles,uploading:V.uploading,strings:B,confirmLabel:s,cancelLabel:c,onCancel:Z,onConfirm:X,onUpload:V.startUpload,onCancelUpload:()=>{V.clearStagedFiles(),V.setTab(`library`)},className:`ml-auto`}):(0,d.jsx)(R,{tab:U,selectedItems:V.selectedItems,selectedIds:V.selectedIds,selectionMode:l,stagedFiles:V.stagedFiles,uploading:V.uploading,strings:B,confirmLabel:s,cancelLabel:c,onCancel:Z,onConfirm:X,onClearSelection:V.clearSelection,onUpload:V.startUpload,onCancelUpload:()=>{V.clearStagedFiles(),V.setTab(`library`)}}));return(0,d.jsxs)(`section`,{className:t.cn(`media-library--component flex min-h-0 flex-col overflow-hidden rounded-lg border border-border bg-background`,E??`h-190 max-h-[calc(100vh-7rem)]`,ee),...ve,children:[Y&&(0,d.jsxs)(`header`,{className:`media-library--header flex flex-col gap-3 border-b border-border px-4 py-3 lg:flex-row lg:items-center lg:justify-between`,children:[q&&(0,d.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[T?.headerStart,(i||a)&&(0,d.jsxs)(`div`,{className:`min-w-0`,children:[!!i&&(0,d.jsx)(r.s,{tag:`div`,weight:`semibold`,children:i}),!!a&&(0,d.jsx)(r.s,{size:`xs`,type:`secondary`,className:`mt-0.5`,children:a})]})]}),J&&(0,d.jsxs)(`div`,{className:t.cn(`flex min-w-0 flex-wrap items-center gap-2`,K?`flex-1 justify-between`:`lg:justify-end`),children:[(0,d.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[v&&(0,d.jsxs)(`div`,{className:`media-library--tabs flex items-center rounded-md bg-muted p-0.5`,role:`tablist`,children:[(0,d.jsxs)(n.t,{type:`button`,role:`tab`,"aria-selected":U===`library`,variant:`secondary`,buttonStyle:`ghost`,className:t.cn(`h-8 rounded-sm px-3 shadow-none`,U===`library`?`bg-background text-foreground shadow-xs hover:bg-background`:`text-muted-foreground hover:bg-transparent hover:text-foreground`),onClick:()=>V.setTab(`library`),children:[(0,d.jsx)(f.ImageIcon,{className:`size-3.5`}),B.tabs.library]}),(0,d.jsxs)(n.t,{type:`button`,role:`tab`,"aria-selected":U===`upload`,variant:`secondary`,buttonStyle:`ghost`,className:t.cn(`h-8 rounded-sm px-3 shadow-none`,U===`upload`?`bg-background text-foreground shadow-xs hover:bg-background`:`text-muted-foreground hover:bg-transparent hover:text-foreground`),onClick:()=>V.setTab(`upload`),children:[(0,d.jsx)(f.UploadCloud,{className:`size-3.5`}),B.tabs.upload,V.stagedFiles.length>0&&(0,d.jsx)(`span`,{className:`rounded-full bg-background/20 px-1.5 text-xxs tabular-nums`,children:V.stagedFiles.length})]})]}),T?.headerEnd]}),K]})]}),(0,d.jsxs)(`div`,{className:`media-library--body flex min-h-0 flex-1`,children:[U===`upload`?(0,d.jsx)(`div`,{className:`min-w-0 flex-1 overflow-y-auto`,children:(0,d.jsx)(re,{stagedFiles:V.stagedFiles,uploadOptions:V.uploadOptions,collections:H,uploading:V.uploading,strings:B,onFiles:V.addFiles,onRemoveFile:V.removeStagedFile,onOptionsChange:V.updateUploadOptions,empty:T?.uploadEmpty})}):(0,d.jsxs)(`div`,{className:t.cn(`media-library--library min-w-0 flex-1 flex-col`,W?`hidden lg:flex`:`flex`),children:[(0,d.jsxs)(`div`,{className:`media-library--toolbar border-b border-border/70 px-4 py-3`,children:[(0,d.jsx)(P,{query:V.query,type:V.type,typeFilters:y,collection:V.collection,sort:V.sort,view:V.view,collections:H,strings:B,onQueryChange:V.setQuery,onTypeChange:V.setType,onCollectionChange:V.setCollection,onSortChange:V.setSort,onViewChange:V.setView,onClearFilters:V.clearFilters,toolbarEnd:T?.toolbarEnd}),(0,d.jsx)(r.s,{size:`xs`,type:`secondary`,className:`mt-2`,"aria-live":`polite`,children:be})]}),(0,d.jsx)(`div`,{className:`media-library--results min-h-0 flex-1 overflow-y-auto p-4`,children:V.loading?T?.loading??(0,d.jsx)(`div`,{className:`flex min-h-64 items-center justify-center`,children:(0,d.jsx)(r.s,{type:`secondary`,children:B.loading})}):V.error?T?.error??(0,d.jsxs)(o.t,{variant:`destructive`,children:[(0,d.jsx)(o.i,{children:B.errorTitle}),(0,d.jsx)(o.r,{children:B.errorDescription})]}):V.visibleItems.length===0?T?.empty??(0,d.jsx)(N,{title:V.hasFilters?B.emptyFilteredTitle:B.emptyLibraryTitle,description:V.hasFilters?B.emptyFilteredDescription:B.emptyLibraryDescription,action:V.hasFilters?(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`outline`,onClick:V.clearFilters,children:B.clearFilters}):v?(0,d.jsxs)(n.t,{type:`button`,onClick:()=>V.setTab(`upload`),children:[(0,d.jsx)(f.UploadCloud,{className:`size-3.5`}),B.uploadMedia]}):void 0}):V.view===`table`?(0,d.jsx)(`div`,{className:`overflow-x-auto`,children:(0,d.jsx)(I,{items:V.visibleItems,selectedSet:V.selectedSet,selectionMode:l,accessors:V.accessors,strings:B,onToggle:e=>{let t=V.items.find(t=>V.accessors.getId(t)===e);t&&Q(t)},onDetails:V.setDetailId})}):(0,d.jsx)(`div`,{className:t.cn(`media-library--grid grid gap-3`,g===`compact`?`grid-cols-[repeat(auto-fill,minmax(136px,1fr))]`:`grid-cols-[repeat(auto-fill,minmax(168px,1fr))]`),children:V.visibleItems.map(e=>{let t=V.accessors.getId(e),n={id:t,selected:V.selectedSet.has(t),selectionMode:l,accessors:V.accessors,toggle:()=>Q(e),openDetails:()=>V.setDetailId(t)},r=T?.renderItem?.(e,n);return r?(0,d.jsx)(`div`,{children:r},t):(0,d.jsx)(F,{item:e,selected:n.selected,density:g,showMeta:_,selectionMode:l,accessors:V.accessors,strings:B,onToggle:n.toggle,onDetails:n.openDetails},t)})})})]}),U===`library`&&(0,d.jsx)(L,{item:W,collections:H,accessors:V.accessors,strings:B,onClose:()=>V.setDetailId(null),onUpdate:e=>W&&V.updateItem(W,e),onRemove:()=>{W&&(V.removeItem(W),V.setDetailId(null))},renderDetail:T?.renderDetail})]}),G?G.element?(0,p.createPortal)(xe,G.element):null:xe]})}function le({open:n,onOpenChange:r,trigger:a,dialogTitle:o,dialogDescription:s,onClose:c,className:l,dialogClassName:f,contentClassName:p,closeOnEscape:h=!0,closeOnBackdropClick:g=!0,..._}){let v=e.useStrings(m,_.strings),[y,b]=(0,u.useState)(!1),[x,S]=(0,u.useState)(null),C=n!==void 0,w=C?n:y,T=e=>{C||b(e),r?.(e)},E=()=>{T(!1),c?.()};return(0,d.jsx)(oe.Provider,{value:{element:x},children:(0,d.jsx)(i.r,{open:w,onOpenChange:T,onClose:c,trigger:a,title:o??v.title,description:s??v.description,size:`full`,showCancel:!1,showConfirm:!1,footer:(0,d.jsx)(`div`,{ref:S,className:`media-library-dialog--footer`}),className:t.cn(`media-library-dialog--component max-h-[calc(100vh-2rem)] max-w-[min(1060px,calc(100vw-2rem))]`,f),contentClassName:t.cn(`media-library-dialog--body flex min-h-0 flex-col overflow-hidden p-0`,p),closeOnBackdropClick:g,closeOnEscape:h,children:(0,d.jsx)(ce,{..._,onClose:E,className:t.cn(`media-library-dialog--library rounded-none border-0`,l),heightClassName:_.heightClassName??`min-h-0 flex-1`,strings:_.strings})})})}function ue(e,t,n){let r=e.slice(),[i]=r.splice(t,1);return i===void 0||r.splice(n,0,i),r}function de({items:i,accessors:o,title:s,description:c,primaryId:l,onPrimaryChange:u,onRemove:p,onReorder:g,onAdd:_,maxItems:v,layout:x=`field`,density:S=`comfortable`,readOnly:C=!1,empty:w,action:T,renderItem:E,strings:ee,className:te,...ne}){let D=e.useStrings(m,ee),O=y(o),k=i.length,A=l??(k>0?O.getId(i[0]):void 0),j=!C&&!!_&&(v===void 0||k<v),M=j&&(x===`field`||k>0)?(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`outline`,icon:f.Plus,onClick:_,children:D.gallery.add}):v!==void 0&&k>=v?(0,d.jsx)(a.t,{variant:`secondary`,children:D.gallery.maxReached}):null,P=(e,t)=>{if(t<0||t>=k||e===t)return;let n=ue(i,e,t);g?.(n.map(e=>O.getId(e)),n)},F=!!(s||c||T||M),I=k===0&&x!==`field`,L=()=>!j||x!==`field`?null:(0,d.jsxs)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,className:t.cn(`media-resource-gallery--add-tile h-auto min-h-24 w-full flex-col rounded-lg border border-dashed border-border bg-background text-muted-foreground shadow-none`,`aspect-square hover:border-primary/50 hover:bg-primary/5 hover:text-primary focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`),"aria-label":D.gallery.addTile,onClick:_,children:[(0,d.jsx)(f.Plus,{className:`size-4`}),(0,d.jsx)(`span`,{className:`sr-only`,children:D.gallery.addTile})]});return(0,d.jsxs)(`section`,{className:t.cn(`media-resource-gallery--component rounded-lg border border-border bg-card shadow-xs`,te),"data-layout":x,"data-density":S,...ne,children:[F&&(0,d.jsxs)(`header`,{className:`media-resource-gallery--header flex flex-col gap-3 px-4 py-3 sm:flex-row sm:items-start sm:justify-between`,children:[(0,d.jsxs)(`div`,{className:`min-w-0`,children:[!!s&&(0,d.jsx)(r.s,{tag:`div`,weight:`semibold`,children:s}),!!c&&(0,d.jsx)(r.s,{size:`xs`,type:`secondary`,className:`mt-0.5`,children:c})]}),(0,d.jsx)(`div`,{className:`media-resource-gallery--actions flex flex-wrap items-center gap-2`,children:T??M})]}),I?(0,d.jsx)(`div`,{className:`media-resource-gallery--empty p-4 pt-0`,children:w??(0,d.jsx)(N,{title:D.gallery.emptyTitle,description:D.gallery.emptyDescription,action:j?(0,d.jsx)(n.t,{type:`button`,icon:f.ImagePlus,onClick:_,children:D.gallery.add}):void 0})}):(0,d.jsxs)(`div`,{className:t.cn(`media-resource-gallery--items p-4`,F&&`pt-0`,x===`list`?`grid gap-2`:x===`field`?`grid grid-cols-[repeat(auto-fill,minmax(96px,1fr))] gap-3 sm:grid-cols-[repeat(auto-fill,minmax(108px,1fr))]`:S===`compact`?`grid grid-cols-[repeat(auto-fill,minmax(132px,1fr))] gap-3`:`grid grid-cols-[repeat(auto-fill,minmax(164px,1fr))] gap-3`),children:[i.map((e,i)=>{let o=O.getId(e),s=O.getName(e),c=O.getType(e),l=O.getSrc(e),m=O.getAlt(e)||s,g=o===A,_=O.getPublic(e)===!1,v=O.getDuration(e),y=i>0,S=i<k-1,w=E?.(e,{id:o,index:i,total:k,primary:g,accessors:O,canMovePrevious:y,canMoveNext:S,setPrimary:()=>u?.(o,e),remove:()=>p?.(o,e),movePrevious:()=>P(i,i-1),moveNext:()=>P(i,i+1)});return w?(0,d.jsx)(`div`,{children:w},o):x===`field`?(0,d.jsxs)(`div`,{className:t.cn(`media-resource-gallery--item group/gallery relative aspect-square overflow-hidden rounded-lg border border-border bg-background shadow-xs`,`transition-colors hover:border-primary/40 focus-within:border-primary/50`,g&&`col-span-2 row-span-2 min-h-52`),"data-primary":g||void 0,children:[l?(0,d.jsx)(`img`,{src:l,alt:m,loading:`lazy`,className:`size-full object-cover`}):(0,d.jsx)(`div`,{className:`flex size-full items-center justify-center bg-muted text-muted-foreground`,children:(0,d.jsx)(f.File,{className:g?`size-7`:`size-5`})}),g&&(0,d.jsx)(a.t,{variant:`secondary`,className:`absolute left-2 top-2 bg-background/90 shadow-xs`,children:D.gallery.cover}),c===`video`&&!!v&&(0,d.jsxs)(a.t,{variant:`secondary`,className:`absolute bottom-2 left-2 bg-foreground text-background`,children:[(0,d.jsx)(f.Play,{className:`size-3 fill-current`}),v]}),_&&(0,d.jsx)(`span`,{className:`absolute bottom-2 right-2 inline-flex size-6 items-center justify-center rounded-full border border-border bg-background/90 text-muted-foreground shadow-xs`,children:(0,d.jsx)(f.Lock,{className:`size-3`})}),!C&&(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`solid`,size:`icon-small`,className:`absolute right-2 top-2 opacity-0 shadow-sm transition-opacity group-hover/gallery:opacity-100 group-focus-within/gallery:opacity-100`,"aria-label":D.gallery.remove,onClick:()=>p?.(o,e),children:(0,d.jsx)(f.X,{className:`size-3.5`})})]},o):x===`list`?(0,d.jsxs)(`div`,{className:`media-resource-gallery--item flex min-w-0 items-center gap-3 rounded-lg border border-border bg-background p-2`,"data-primary":g||void 0,children:[(0,d.jsx)(`div`,{className:`relative size-12 shrink-0 overflow-hidden rounded-md bg-muted`,children:l?(0,d.jsx)(`img`,{src:l,alt:m,loading:`lazy`,className:`size-full object-cover`}):(0,d.jsx)(`div`,{className:`flex size-full items-center justify-center text-muted-foreground`,children:(0,d.jsx)(f.File,{className:`size-4`})})}),(0,d.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,d.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,d.jsx)(r.s,{tag:`div`,weight:`semibold`,size:`xs`,className:`truncate`,children:s}),g&&(0,d.jsx)(a.t,{variant:`info`,children:D.gallery.primary})]}),(0,d.jsxs)(r.s,{size:`xxs`,type:`secondary`,children:[h(D.gallery.itemPosition,{index:i+1,total:k}),` · `,b(O.getSize(e))||D.unknownSize]})]}),!C&&(0,d.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,disabled:g,"aria-label":D.gallery.setPrimary,onClick:()=>u?.(o,e),children:(0,d.jsx)(f.Star,{className:`size-3.5`})}),(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,disabled:!y,"aria-label":D.gallery.movePrevious,onClick:()=>P(i,i-1),children:(0,d.jsx)(f.ArrowLeft,{className:`size-3.5`})}),(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,disabled:!S,"aria-label":D.gallery.moveNext,onClick:()=>P(i,i+1),children:(0,d.jsx)(f.ArrowRight,{className:`size-3.5`})}),(0,d.jsx)(n.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,size:`icon-small`,"aria-label":D.gallery.remove,onClick:()=>p?.(o,e),children:(0,d.jsx)(f.Trash2,{className:`size-3.5`})})]})]},o):(0,d.jsxs)(`div`,{className:`media-resource-gallery--item group/gallery overflow-hidden rounded-lg border border-border bg-background shadow-xs transition-colors hover:border-primary/40`,"data-primary":g||void 0,children:[(0,d.jsxs)(`div`,{className:`relative aspect-[4/3] bg-muted`,children:[l?(0,d.jsx)(`img`,{src:l,alt:m,loading:`lazy`,className:`size-full object-cover`}):(0,d.jsx)(`div`,{className:`flex size-full items-center justify-center text-muted-foreground`,children:(0,d.jsx)(f.File,{className:`size-6`})}),(0,d.jsxs)(`div`,{className:`absolute left-2 top-2 flex flex-wrap gap-1`,children:[g&&(0,d.jsx)(a.t,{variant:`info`,children:D.gallery.primary}),(0,d.jsx)(a.t,{variant:`secondary`,children:h(D.gallery.itemPosition,{index:i+1,total:k})})]})]}),(0,d.jsxs)(`div`,{className:`media-resource-gallery--item-body grid gap-2 p-3`,children:[(0,d.jsxs)(`div`,{className:`min-w-0`,children:[(0,d.jsx)(r.s,{tag:`div`,weight:`semibold`,size:`xs`,className:`truncate`,children:s}),(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,children:b(O.getSize(e))||D.unknownSize})]}),!C&&(0,d.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,disabled:g,"aria-label":D.gallery.setPrimary,onClick:()=>u?.(o,e),children:(0,d.jsx)(f.Star,{className:`size-3.5`})}),(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,disabled:!y,"aria-label":D.gallery.movePrevious,onClick:()=>P(i,i-1),children:(0,d.jsx)(f.ArrowLeft,{className:`size-3.5`})}),(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,disabled:!S,"aria-label":D.gallery.moveNext,onClick:()=>P(i,i+1),children:(0,d.jsx)(f.ArrowRight,{className:`size-3.5`})}),(0,d.jsx)(n.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,size:`icon-small`,className:`ml-auto`,"aria-label":D.gallery.remove,onClick:()=>p?.(o,e),children:(0,d.jsx)(f.Trash2,{className:`size-3.5`})})]})]})]},o)}),L()]})]})}exports.MediaLibrary=ce,exports.MediaLibraryCard=F,exports.MediaLibraryDetailPanel=L,exports.MediaLibraryDialog=le,exports.MediaLibraryEmptyState=N,exports.MediaLibraryFooter=R,exports.MediaLibraryTable=I,exports.MediaLibraryToolbar=P,exports.MediaLibraryUploadPanel=re,exports.MediaResourceGallery=de,exports.defaultMediaLibraryStrings=m,exports.formatMediaLibrarySize=b,exports.formatMediaLibraryString=h,exports.getMediaLibraryDimensions=x,exports.resolveMediaLibraryAccessors=y,exports.useMediaLibrary=D;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../lib/strings.cjs"),t=require("../../../lib/utils.cjs"),n=require("../../../_shared/button-Bd5bEIiB.cjs"),r=require("../../../_shared/typography-CO9uwZhF.cjs"),i=require("../../../_shared/overlays-Du65iCkx.cjs"),a=require("../../../_shared/badge-BeSKxX1u.cjs"),o=require("../../../_shared/alert-V0V36Sny.cjs"),s=require("../../../_shared/input-CB6hxh-5.cjs"),c=require("../../../_shared/forms-rmKcy5uO.cjs"),l=require("../../../_shared/display-Bin2vVex.cjs");let u=require("react"),d=require("react/jsx-runtime"),f=require("lucide-react"),p=require("react-dom");var m={title:`Add media`,description:`Pick from the library, or upload new files.`,close:`Close media library`,tabs:{library:`Library`,upload:`Upload`},searchPlaceholder:`Search by name or tag...`,clearSearch:`Clear search`,typeFilterLabel:`Type`,collectionFilterLabel:`Collection`,sortLabel:`Sort`,viewLabel:`View`,allTypes:`All`,images:`Images`,videos:`Videos`,files:`Files`,allCollections:`All collections`,sortNewest:`Newest`,sortName:`Name`,sortSize:`Size`,sortUsage:`Most used`,gridView:`Grid view`,tableView:`Table view`,countAll:`{count} items`,countFiltered:`{count} of {total} items`,emptyLibraryTitle:`Library is empty`,emptyLibraryDescription:`Upload images or videos to start building the library.`,emptyFilteredTitle:`No media matches`,emptyFilteredDescription:`Try a different search term, or clear the filters.`,clearFilters:`Clear filters`,uploadMedia:`Upload media`,loading:`Loading media...`,errorTitle:`Media could not load`,errorDescription:`Try again or adjust your filters.`,cardDetails:`Details for {name}`,privateLabel:`Private`,publicLabel:`Public`,typeImage:`Image`,typeVideo:`Video`,typeFile:`File`,unknownSize:`Unknown`,notUsed:`Not used yet`,usedIn:`{count} {count, plural, one {place} other {places}}`,table:{name:`Name`,type:`Type`,size:`Size`,collection:`Collection`,used:`Used`},detail:{title:`Details`,altText:`Alt text`,altPlaceholder:`Describe this media for screen readers`,collection:`Collection`,tags:`Tags`,tagsPlaceholder:`Comma-separated`,public:`Public`,publicHint:`Served from the public CDN`,privateHint:`Only visible in the admin`,type:`Type`,size:`Size`,dimensions:`Dimensions`,uploaded:`Uploaded`,usedIn:`Used in`,replace:`Replace file`,delete:`Delete`,close:`Close details`},upload:{dropTitle:`Drag files here or click to browse`,dropHint:`JPG, PNG, WebP, SVG and MP4 up to 50 MB per file`,dragOver:`Release to stage files`,collection:`Collection`,tags:`Tags`,tagsPlaceholder:`Comma-separated`,public:`Public`,publicHint:`Serve from the public CDN`,noFiles:`No files staged`,stagedCount:`{count} {count, plural, one {file} other {files}}`,removeFile:`Remove {name}`,uploading:`Uploading`,done:`Done`},footer:{pickOne:`Pick one item`,pickMany:`Pick one or more items`,selectedCount:`{count} selected`,clear:`Clear`,cancel:`Cancel`,confirmEmpty:`Add to product`,confirmOne:`Add 1 item`,confirmMany:`Add {count} items`,noFiles:`No files staged`,stagedSummary:`{count} {count, plural, one {file} other {files}} · {size}`,upload:`Upload`,uploadMany:`Upload {count} files`,uploading:`Uploading...`},gallery:{emptyTitle:`No media attached`,emptyDescription:`Add images, video, or files to this resource.`,add:`Add media`,addMore:`Add more`,addTile:`Add another media item`,cover:`Cover`,primary:`Primary`,setPrimary:`Set primary`,remove:`Remove`,movePrevious:`Move previous`,moveNext:`Move next`,itemPosition:`{index} of {total}`,maxReached:`Maximum reached`}};function h(e,t){return e.replace(/\{(\w+), plural, one \{([^}]*)\} other \{([^}]*)\}\}/g,(e,n,r,i)=>Number(t[n])===1?r:i).replace(/\{(\w+)\}/g,(e,n)=>String(t[n]??``))}var g={collection:void 0,tags:[],public:!0},_=[],v={getId:e=>e.id,getName:e=>e.name,getType:e=>e.type,getSrc:e=>e.src,getAlt:e=>e.alt,getSize:e=>e.size,getWidth:e=>e.width,getHeight:e=>e.height,getDuration:e=>e.duration,getCollection:e=>e.collection,getTags:e=>e.tags??[],getPublic:e=>e.public,getUploadedAt:e=>e.uploadedAt,getUsageCount:e=>e.usageCount,getTint:e=>e.tint,getMimeType:e=>e.mimeType};function y(e){return{...v,...e??{}}}function b(e){return!e||e<=0?``:e>=1048576?`${(e/1048576).toFixed(1)} MB`:`${Math.max(1,Math.round(e/1024))} KB`}function x(e,t){let n=t.getWidth(e),r=t.getHeight(e);return!n||!r?``:`${n} x ${r}`}function S(e,t){let n=t.getUploadedAt(e);if(!n)return 0;let r=(n instanceof Date?n:new Date(n)).getTime();return Number.isFinite(r)?r:0}function C(e){return e.type.startsWith(`image/`)?`image`:e.type.startsWith(`video/`)?`video`:`file`}function w(e){if(e.type.startsWith(`image/`)&&!(typeof URL>`u`||typeof URL.createObjectURL!=`function`))return URL.createObjectURL(e)}function T(e){!e||typeof URL>`u`||typeof URL.revokeObjectURL!=`function`||URL.revokeObjectURL(e)}function E(e){return Array.isArray(e)?{items:e,total:e.length}:e}function ee(e,t){return t&&typeof e==`object`&&e?{...e,...t}:e}function te(e,t,n,r,i){let a=n.trim().toLowerCase();return e.filter(e=>r!==`all`&&t.getType(e)!==r||i!==`all`&&t.getCollection(e)!==i?!1:a?[t.getName(e),t.getAlt(e),t.getCollection(e),...t.getTags(e)].filter(Boolean).join(` `).toLowerCase().includes(a):!0)}function ne(e,t,n){let r=e.slice();return n===`name`?r.sort((e,n)=>t.getName(e).localeCompare(t.getName(n))):n===`size`?r.sort((e,n)=>(t.getSize(n)??0)-(t.getSize(e)??0)):n===`usage`?r.sort((e,n)=>(t.getUsageCount(n)??0)-(t.getUsageCount(e)??0)):r.sort((e,n)=>S(n,t)-S(e,t)),r}function D({items:e=_,fetcher:t,accessors:n,selectionMode:r=`multiple`,value:i,defaultValue:a=[],onValueChange:o,onItemUpdate:s,onItemDelete:c,onUpload:l,onError:d,initialTab:f=`library`,defaultView:p=`grid`,defaultQuery:m=``,defaultType:h=`all`,defaultCollection:v=`all`,defaultSort:b=`newest`,defaultUploadOptions:x}={}){let S=(0,u.useMemo)(()=>y(n),[n]),[D,O]=(0,u.useState)(f),[k,A]=(0,u.useState)(p),[j,M]=(0,u.useState)(m),[N,P]=(0,u.useState)(h),[F,I]=(0,u.useState)(v),[L,re]=(0,u.useState)(b),[ie,ae]=(0,u.useState)(null),[R,oe]=(0,u.useState)(()=>[...a]),[se,ce]=(0,u.useState)([]),[le,ue]=(0,u.useState)(),[de,fe]=(0,u.useState)(!1),[pe,z]=(0,u.useState)(null),[me,he]=(0,u.useState)([]),[ge,_e]=(0,u.useState)(()=>new Set),[ve,B]=(0,u.useState)({}),[V,H]=(0,u.useState)([]),[U,W]=(0,u.useState)(!1),[G,ye]=(0,u.useState)({...g,...x,tags:x?.tags??g.tags}),K=i!==void 0,q=(0,u.useMemo)(()=>K?[...i??[]]:R,[R,K,i]),J=(0,u.useMemo)(()=>new Set(q),[q]),Y=(0,u.useRef)(new Set);(0,u.useEffect)(()=>{if(!t)return;let e=new AbortController;return fe(!0),z(null),t({query:j,type:N,collection:F===`all`?void 0:F,sort:L,signal:e.signal}).then(t=>{if(e.signal.aborted)return;let n=E(t);ce(n.items),ue(n.total)}).catch(t=>{e.signal.aborted||(z(t),d?.(t))}).finally(()=>{e.signal.aborted||fe(!1)}),()=>e.abort()},[F,t,d,j,L,N]),(0,u.useEffect)(()=>{let e=Y.current;return()=>{for(let t of e)T(t);e.clear()}},[]);let X=(0,u.useMemo)(()=>t?se:[...me,...e],[me,se,t,e]),Z=(0,u.useMemo)(()=>X.filter(e=>!ge.has(S.getId(e))).map(e=>ee(e,ve[S.getId(e)])),[S,ve,ge,X]),Q=(0,u.useMemo)(()=>{let e=t?Z:te(Z,S,j,N,F);return t?e:ne(e,S,L)},[S,F,t,Z,j,L,N]),be=le??Z.length,xe=Q.length,Se=(0,u.useMemo)(()=>Z.filter(e=>J.has(S.getId(e))),[S,Z,J]),Ce=!!j.trim()||N!==`all`||F!==`all`,$=(0,u.useCallback)(e=>{K||oe(e);let t=new Set(e),n=Z.filter(e=>t.has(S.getId(e)));o?.(e,n)},[S,K,o,Z]),we=(0,u.useCallback)(e=>{let t=new Set(r===`single`?[]:J);J.has(e)&&r!==`single`?t.delete(e):t.add(e),$(Array.from(t))},[$,J,r]),Te=(0,u.useCallback)(()=>$([]),[$]),Ee=(0,u.useCallback)(()=>{M(``),P(`all`),I(`all`)},[]),De=(0,u.useCallback)(e=>{H(t=>[...t,...e.map((e,t)=>{let n=w(e);return n&&Y.current.add(n),{id:`staged-${Date.now()}-${t}`,file:e,name:e.name,size:e.size,type:C(e),src:n,progress:0,status:`staged`}})])},[]),Oe=(0,u.useCallback)(e=>{H(t=>{let n=t.find(t=>t.id===e);return n?.src&&(T(n.src),Y.current.delete(n.src)),t.filter(t=>t.id!==e)})},[]),ke=(0,u.useCallback)(()=>{H(e=>{for(let t of e)t.src&&(T(t.src),Y.current.delete(t.src));return[]})},[]),Ae=(0,u.useCallback)(e=>{ye(t=>({...t,...e}))},[]),je=(0,u.useCallback)((e,t)=>{H(n=>n.map(n=>n.id===e?{...n,...t}:n))},[]);return{tab:D,setTab:O,view:k,setView:A,query:j,setQuery:M,type:N,setType:P,collection:F,setCollection:I,sort:L,setSort:re,detailId:ie,setDetailId:ae,items:Z,visibleItems:Q,selectedIds:q,selectedItems:Se,selectedSet:J,toggleSelection:we,clearSelection:Te,clearFilters:Ee,loading:de,error:pe,hasFilters:Ce,totalCount:be,filteredCount:xe,stagedFiles:V,addFiles:De,removeStagedFile:Oe,clearStagedFiles:ke,updateUploadOptions:Ae,uploadOptions:G,uploading:U,startUpload:(0,u.useCallback)(async()=>{if(U||V.length===0)return;W(!0),H(e=>e.map(e=>({...e,status:`uploading`,progress:0})));let e={setProgress:(e,t)=>{je(e,{progress:Math.max(0,Math.min(100,t))})},setFileStatus:(e,t,n)=>je(e,{status:t,error:n})};try{let t=V.map(e=>e.file),n=await l?.(t,G,e);if(H(e=>e.map(e=>({...e,status:`done`,progress:100}))),n?.length){he(e=>[...n,...e]);let e=n.map(e=>S.getId(e));$(r===`single`?e.slice(0,1):Array.from(new Set([...e,...q])))}ke(),O(`library`)}catch(e){z(e),H(e=>e.map(e=>e.status===`uploading`?{...e,status:`error`,error:`Upload failed`}:e)),d?.(e)}finally{W(!1)}},[S,$,ke,d,l,q,r,je,V,G,U]),updateItem:(0,u.useCallback)((e,t)=>{let n=S.getId(e);B(e=>({...e,[n]:{...e[n],...t}})),s?.(e,t)},[S,s]),removeItem:(0,u.useCallback)(e=>{let t=S.getId(e);_e(e=>new Set(e).add(t)),J.has(t)&&$(q.filter(e=>e!==t)),c?.(e)},[S,$,c,q,J]),accessors:S}}function O(e,t){return e===`image`?(0,d.jsx)(f.ImageIcon,{className:t??`size-4`}):e===`video`?(0,d.jsx)(f.Video,{className:t??`size-4`}):(0,d.jsx)(f.File,{className:t??`size-4`})}function k(e,t){return e===`image`?t.typeImage:e===`video`?t.typeVideo:t.typeFile}function A(e,t){return e?h(t.usedIn,{count:e}):t.notUsed}function j({children:e,tint:n,className:r}){return(0,d.jsx)(`div`,{className:t.cn(`media-library-preview relative overflow-hidden bg-muted`,r),style:n?{background:n}:void 0,children:e})}function M({src:e,alt:t,type:n,className:r,loading:i=`lazy`}){let[a,o]=(0,u.useState)(!1);return(0,u.useEffect)(()=>{o(!1)},[e]),!e||a?(0,d.jsx)(`div`,{className:`media-library-preview--fallback flex size-full items-center justify-center text-muted-foreground`,children:O(n,`size-6`)}):(0,d.jsx)(`img`,{src:e,alt:t,loading:i,className:r,onError:()=>o(!0)})}function N({icon:e,title:n,description:i,action:a,className:o}){return(0,d.jsxs)(`div`,{className:t.cn(`media-library-empty-state--component flex min-h-64 flex-col items-center justify-center rounded-lg border border-dashed border-border bg-muted/20 px-6 py-10 text-center`,o),children:[(0,d.jsx)(`div`,{className:`mb-3 inline-flex size-10 items-center justify-center rounded-full bg-muted text-muted-foreground`,children:e??(0,d.jsx)(f.ImageIcon,{className:`size-5`})}),(0,d.jsx)(r.s,{tag:`div`,weight:`semibold`,children:n}),!!i&&(0,d.jsx)(r.s,{type:`secondary`,size:`xs`,className:`mt-1 max-w-sm`,children:i}),!!a&&(0,d.jsx)(`div`,{className:`mt-4`,children:a})]})}function P({query:e,type:r,typeFilters:i,collection:a,sort:o,view:l,collections:u=[],strings:p,onQueryChange:m,onTypeChange:h,onCollectionChange:g,onSortChange:_,onViewChange:v,onClearFilters:y,toolbarEnd:b}){let x=[{value:`all`,label:p.allTypes,icon:null},{value:`image`,label:p.images,icon:f.ImageIcon},{value:`video`,label:p.videos,icon:f.Video},{value:`file`,label:p.files,icon:f.File}].filter(e=>(i??[`all`,`image`,`video`]).includes(e.value)),S=[{value:`all`,label:p.allCollections},...u.map(e=>({value:e.value,label:String(e.label)}))],C=[{value:`newest`,label:p.sortNewest},{value:`name`,label:p.sortName},{value:`size`,label:p.sortSize},{value:`usage`,label:p.sortUsage}];return(0,d.jsxs)(`div`,{className:`media-library-toolbar--component flex flex-wrap items-center gap-2`,children:[(0,d.jsx)(`div`,{className:`min-w-52 flex-1`,children:(0,d.jsx)(s.t,{value:e,onChange:e=>m(e.target.value),placeholder:p.searchPlaceholder,startIcon:f.Search,clearable:!0,onClear:()=>m(``),strings:{clear:p.clearSearch},className:`rounded-full bg-muted/20`})}),(0,d.jsx)(`div`,{className:`media-library-toolbar--type-toggle flex h-9 items-center rounded-md bg-muted p-0.5`,role:`tablist`,"aria-label":p.typeFilterLabel,children:x.map(e=>{let i=e.icon,a=r===e.value;return(0,d.jsxs)(n.t,{type:`button`,role:`tab`,"aria-selected":a,variant:`secondary`,buttonStyle:`ghost`,className:t.cn(`h-8 rounded-sm px-3 text-xs shadow-none`,a?`bg-background text-foreground shadow-xs hover:bg-background`:`text-muted-foreground hover:bg-transparent hover:text-foreground`),onClick:()=>h(e.value),children:[i&&(0,d.jsx)(i,{className:`size-3.5`}),e.label]},e.value)})}),(0,d.jsx)(`div`,{className:`min-w-40`,children:(0,d.jsx)(c.Y,{value:a,options:S,onChange:e=>g(e??`all`),placeholder:p.collectionFilterLabel,"aria-label":p.collectionFilterLabel,className:`bg-background`})}),(0,d.jsx)(`div`,{className:`min-w-32`,children:(0,d.jsx)(c.Y,{value:o,options:C,onChange:e=>_(e??`newest`),placeholder:p.sortLabel,"aria-label":p.sortLabel,className:`bg-background`})}),(0,d.jsxs)(`div`,{className:`media-library-toolbar--view-toggle ml-auto flex h-9 items-center rounded-md bg-muted p-0.5`,children:[(0,d.jsx)(n.t,{type:`button`,variant:l===`grid`?`dark`:`secondary`,buttonStyle:l===`grid`?`solid`:`ghost`,size:`icon-small`,className:t.cn(l===`grid`&&`bg-background text-foreground shadow-xs hover:bg-background`),"aria-label":p.gridView,onClick:()=>v(`grid`),children:(0,d.jsx)(f.Grid2X2,{className:`size-3.5`})}),(0,d.jsx)(n.t,{type:`button`,variant:l===`table`?`dark`:`secondary`,buttonStyle:l===`table`?`solid`:`ghost`,size:`icon-small`,className:t.cn(l===`table`&&`bg-background text-foreground shadow-xs hover:bg-background`),"aria-label":p.tableView,onClick:()=>v(`table`),children:(0,d.jsx)(f.LayoutList,{className:`size-3.5`})})]}),!!e&&(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,onClick:y,children:p.clearFilters}),b]})}function F({item:e,selected:i=!1,density:o=`comfortable`,showMeta:s=!0,accessors:c,strings:l,onToggle:u,onDetails:p,className:m}){let g=c.getType(e),_=c.getName(e),v=c.getSrc(e),y=c.getAlt(e)||_,x=c.getSize(e),S=c.getUsageCount(e),C=c.getPublic(e)===!1,w=c.getDuration(e);return(0,d.jsxs)(`div`,{"data-selected":i||void 0,"data-density":o,className:t.cn(`media-library-card--component group/card overflow-hidden rounded-xl border border-border/70 bg-card text-left shadow-xs transition-all`,`hover:border-primary/30 hover:shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,i&&`media-library-card--selected border-primary ring-1 ring-primary`,m),onClick:u,children:[(0,d.jsxs)(j,{tint:c.getTint(e),className:t.cn(o===`compact`?`aspect-square`:`aspect-[4/3]`),children:[(0,d.jsx)(M,{src:v,alt:y,type:g,className:`size-full object-cover`}),(0,d.jsx)(`span`,{className:t.cn(`media-library-card--check absolute left-2 top-2 inline-flex size-5 items-center justify-center rounded-md border border-border bg-background/95 text-transparent opacity-0 shadow-xs backdrop-blur transition-opacity group-hover/card:opacity-100 group-focus-visible/card:opacity-100`,i&&`bg-primary text-primary-foreground opacity-100`),"aria-hidden":`true`,children:(0,d.jsx)(f.Check,{className:`size-3`})}),!!p&&(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`solid`,size:`icon-small`,className:`media-library-card--details absolute right-2 top-2 opacity-0 shadow-sm transition-opacity group-hover/card:opacity-100 group-focus-within/card:opacity-100`,"aria-label":h(l.cardDetails,{name:_}),onClick:e=>{e.stopPropagation(),p()},children:(0,d.jsx)(f.Info,{className:`size-3.5`})}),g===`video`&&!!w&&(0,d.jsxs)(a.t,{variant:`secondary`,className:`media-library-card--duration absolute bottom-2 left-2 bg-foreground text-background`,children:[(0,d.jsx)(f.Play,{className:`size-3 fill-current`}),w]}),C&&(0,d.jsx)(a.t,{variant:`secondary`,className:`media-library-card--private absolute bottom-2 right-2 bg-background/90`,children:(0,d.jsx)(f.Lock,{className:`size-3`})})]}),(0,d.jsxs)(`div`,{className:`media-library-card--body grid gap-1 px-3 py-2.5`,children:[(0,d.jsx)(r.s,{tag:`div`,weight:`semibold`,size:`xs`,className:`truncate`,children:_}),s&&(0,d.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,className:`truncate`,children:b(x)||l.unknownSize}),!!S&&(0,d.jsxs)(r.s,{tag:`span`,size:`xxs`,type:`secondary`,className:`ml-auto inline-flex items-center gap-1`,children:[(0,d.jsx)(f.Layers3,{className:`size-3`}),S]})]})]})]})}function I({items:e,selectedSet:i,accessors:o,strings:s,onToggle:c,onDetails:l}){return(0,d.jsxs)(`div`,{className:`media-library-table--component min-w-180`,children:[(0,d.jsxs)(`div`,{className:`sticky top-0 z-10 grid grid-cols-[32px_42px_minmax(0,1fr)_86px_88px_120px_72px_34px] items-center gap-3 border-b border-border bg-background px-3 py-2`,children:[(0,d.jsx)(`span`,{}),(0,d.jsx)(`span`,{}),(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,weight:`semibold`,children:s.table.name}),(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,weight:`semibold`,children:s.table.type}),(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,weight:`semibold`,children:s.table.size}),(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,weight:`semibold`,children:s.table.collection}),(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,weight:`semibold`,children:s.table.used}),(0,d.jsx)(`span`,{})]}),e.map(e=>{let u=o.getId(e),p=i.has(u),m=o.getType(e),g=o.getName(e),_=o.getSrc(e),v=o.getPublic(e)===!1;return(0,d.jsxs)(`div`,{"data-selected":p||void 0,className:t.cn(`media-library-table--row grid grid-cols-[32px_42px_minmax(0,1fr)_86px_88px_120px_72px_34px] items-center gap-3 border-b border-border/60 px-3 py-2 last:border-b-0`,`cursor-pointer rounded-lg transition-colors hover:bg-muted/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset`,p&&`bg-primary/10`),onClick:()=>c(u),children:[(0,d.jsx)(`span`,{className:t.cn(`inline-flex size-5 items-center justify-center rounded-md border border-border text-transparent`,p&&`border-primary bg-primary text-primary-foreground`),"aria-hidden":`true`,children:(0,d.jsx)(f.Check,{className:`size-3`})}),(0,d.jsx)(j,{tint:o.getTint(e),className:`size-9 rounded-md`,children:_?(0,d.jsx)(`img`,{src:_,alt:``,loading:`lazy`,className:`size-full object-cover`}):(0,d.jsx)(`div`,{className:`flex size-full items-center justify-center text-muted-foreground`,children:O(m,`size-4`)})}),(0,d.jsxs)(r.s,{tag:`div`,weight:`semibold`,size:`xs`,className:`flex min-w-0 items-center gap-1 truncate`,children:[(0,d.jsx)(`span`,{className:`truncate`,children:g}),v&&(0,d.jsx)(f.Lock,{className:`size-3 shrink-0 text-muted-foreground`})]}),(0,d.jsx)(a.t,{variant:`secondary`,children:k(m,s)}),(0,d.jsx)(r.s,{size:`xs`,type:`secondary`,children:b(o.getSize(e))||s.unknownSize}),(0,d.jsx)(r.s,{size:`xs`,type:`secondary`,className:`truncate`,children:o.getCollection(e)||`-`}),(0,d.jsx)(r.s,{size:`xs`,type:`secondary`,children:o.getUsageCount(e)?o.getUsageCount(e):`-`}),(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,"aria-label":h(s.cardDetails,{name:g}),onClick:e=>{e.stopPropagation(),l(u)},children:(0,d.jsx)(f.Info,{className:`size-3.5`})})]},u)})]})}function L({item:e,collections:t=[],accessors:i,strings:o,onClose:u,onUpdate:p,onRemove:m,renderDetail:h}){if(!e)return null;let g=i.getName(e),_=i.getType(e),v=i.getSrc(e),y=i.getCollection(e)??t[0]?.value??``,S=i.getTags(e),C=i.getPublic(e)??!0,w=h?.(e,{accessors:i,update:p,remove:m,close:u});return w?(0,d.jsx)(d.Fragment,{children:w}):(0,d.jsxs)(`aside`,{className:`media-library-detail-panel--component flex min-h-0 w-full flex-col border-l border-border bg-background lg:w-72`,children:[(0,d.jsxs)(`div`,{className:`media-library-detail-panel--header flex items-center gap-2 border-b border-border px-3 py-2.5`,children:[(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,"aria-label":o.detail.close,onClick:u,children:(0,d.jsx)(f.ArrowLeft,{className:`size-3.5`})}),(0,d.jsx)(r.s,{weight:`semibold`,children:o.detail.title})]}),(0,d.jsxs)(`div`,{className:`media-library-detail-panel--body grid min-h-0 gap-4 overflow-y-auto p-4`,children:[(0,d.jsxs)(j,{tint:i.getTint(e),className:`aspect-[4/3] rounded-lg border border-border`,children:[(0,d.jsx)(M,{src:v,alt:i.getAlt(e)||g,type:_,className:`size-full object-cover`}),_===`video`&&!!i.getDuration(e)&&(0,d.jsxs)(a.t,{className:`absolute bottom-2 right-2 bg-foreground text-background`,children:[(0,d.jsx)(f.Play,{className:`size-3 fill-current`}),i.getDuration(e)]})]}),(0,d.jsx)(r.s,{tag:`div`,weight:`semibold`,className:`break-words`,children:g}),(0,d.jsx)(`dl`,{className:`media-library-detail-panel--facts grid gap-2`,children:[[o.detail.type,k(_,o)],[o.detail.size,b(i.getSize(e))||o.unknownSize],[o.detail.dimensions,x(e,i)||`-`],[o.detail.uploaded,String(i.getUploadedAt(e)??`-`)],[o.detail.usedIn,A(i.getUsageCount(e),o)]].map(([e,t])=>(0,d.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,d.jsx)(`dt`,{children:(0,d.jsx)(r.s,{tag:`span`,size:`xs`,type:`secondary`,children:e})}),(0,d.jsx)(`dd`,{className:`m-0 text-right`,children:(0,d.jsx)(r.s,{tag:`span`,size:`xs`,weight:`medium`,children:t})})]},e))}),(0,d.jsx)(l.D,{label:o.detail.altText,children:(0,d.jsx)(s.t,{value:i.getAlt(e)??``,placeholder:o.detail.altPlaceholder,onChange:e=>p({alt:e.target.value})})}),(0,d.jsx)(l.D,{label:o.detail.collection,children:(0,d.jsx)(c.Y,{value:y,options:t.map(e=>({value:e.value,label:String(e.label)})),"aria-label":o.detail.collection,onChange:e=>p({collection:e})})}),(0,d.jsx)(l.D,{label:o.detail.tags,children:(0,d.jsx)(s.t,{value:S.join(`, `),placeholder:o.detail.tagsPlaceholder,onChange:e=>p({tags:e.target.value.split(`,`).map(e=>e.trim()).filter(Boolean)})})}),(0,d.jsxs)(`div`,{className:`media-library-detail-panel--public flex items-center justify-between gap-4 rounded-lg border border-border bg-muted/20 p-3`,children:[(0,d.jsxs)(`div`,{children:[(0,d.jsx)(r.s,{weight:`semibold`,size:`xs`,children:o.detail.public}),(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,children:C?o.detail.publicHint:o.detail.privateHint})]}),(0,d.jsx)(c.J,{checked:C,onCheckedChange:e=>p({public:e})})]}),(0,d.jsxs)(`div`,{className:`media-library-detail-panel--actions flex flex-wrap gap-2`,children:[(0,d.jsxs)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`outline`,children:[(0,d.jsx)(f.UploadCloud,{className:`size-3.5`}),o.detail.replace]}),(0,d.jsxs)(n.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,onClick:m,children:[(0,d.jsx)(f.Trash2,{className:`size-3.5`}),o.detail.delete]})]})]})]})}function re({stagedFiles:e,uploadOptions:t,collections:i=[],uploading:o=!1,strings:u,onFiles:p,onRemoveFile:m,onOptionsChange:g,empty:_}){return(0,d.jsxs)(`div`,{className:`media-library-upload-panel--component grid gap-4 p-4`,children:[(0,d.jsx)(c.T,{onDrop:p,accept:`image/*,video/*`,multiple:!0,size:`default`,strings:{instruction:u.upload.dropTitle,helper:u.upload.dropHint,dragOver:u.upload.dragOver}}),e.length>0?(0,d.jsx)(`div`,{className:`media-library-upload-panel--staged grid gap-2`,children:e.map(e=>(0,d.jsxs)(`div`,{className:`media-library-upload-panel--staged-file flex items-center gap-3 rounded-lg border border-border bg-card p-2`,children:[(0,d.jsx)(j,{className:`size-10 rounded-md`,children:e.src?(0,d.jsx)(`img`,{src:e.src,alt:e.name,className:`size-full object-cover`}):(0,d.jsx)(`div`,{className:`flex size-full items-center justify-center text-muted-foreground`,children:O(e.type,`size-4`)})}),(0,d.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,d.jsxs)(`div`,{className:`flex items-baseline gap-3`,children:[(0,d.jsx)(r.s,{weight:`semibold`,size:`xs`,className:`truncate`,children:e.name}),(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,className:`ml-auto shrink-0`,children:b(e.size)})]}),(e.status===`uploading`||e.status===`done`)&&(0,d.jsx)(`div`,{className:`mt-2 h-1 overflow-hidden rounded-full bg-muted`,children:(0,d.jsx)(`div`,{className:`h-full rounded-full bg-primary transition-[width]`,style:{width:`${e.progress}%`}})}),e.status===`error`&&(0,d.jsx)(r.s,{size:`xxs`,type:`error`,children:e.error})]}),e.status===`done`?(0,d.jsx)(a.t,{variant:`success`,children:u.upload.done}):e.status===`uploading`?(0,d.jsxs)(r.s,{size:`xxs`,type:`secondary`,className:`tabular-nums`,children:[Math.round(e.progress),`%`]}):(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,disabled:o,"aria-label":h(u.upload.removeFile,{name:e.name}),onClick:()=>m(e.id),children:(0,d.jsx)(f.X,{className:`size-3.5`})})]},e.id))}):_,(0,d.jsxs)(`div`,{className:`media-library-upload-panel--options grid gap-3 rounded-lg border border-border bg-muted/20 p-3 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)_auto]`,children:[(0,d.jsx)(l.D,{label:u.upload.collection,children:(0,d.jsx)(c.Y,{value:t.collection??i[0]?.value,options:i.map(e=>({value:e.value,label:String(e.label)})),"aria-label":u.upload.collection,onChange:e=>g({collection:e})})}),(0,d.jsx)(l.D,{label:u.upload.tags,children:(0,d.jsx)(s.t,{value:t.tags.join(`, `),placeholder:u.upload.tagsPlaceholder,onChange:e=>g({tags:e.target.value.split(`,`).map(e=>e.trim()).filter(Boolean)})})}),(0,d.jsxs)(`div`,{className:`flex items-center justify-between gap-4 md:self-end`,children:[(0,d.jsxs)(`div`,{children:[(0,d.jsx)(r.s,{weight:`semibold`,size:`xs`,children:u.upload.public}),(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,children:u.upload.publicHint})]}),(0,d.jsx)(c.J,{checked:t.public,onCheckedChange:e=>g({public:e})})]})]})]})}function ie({tab:e,selectedIds:i,selectionMode:a,stagedFiles:o,strings:s,onClearSelection:c,className:l}){let u=i.length,f=o.reduce((e,t)=>e+t.size,0),p=o.length,m=t.cn(`media-library-footer-summary--component flex min-w-0 items-center gap-3`,l);return e===`upload`?(0,d.jsx)(`div`,{className:m,"aria-live":`polite`,children:(0,d.jsx)(r.s,{size:`xs`,type:`secondary`,className:`truncate`,children:p===0?s.footer.noFiles:h(s.footer.stagedSummary,{count:p,size:b(f)})})}):(0,d.jsx)(`div`,{className:m,"aria-live":`polite`,children:u>0?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(r.s,{weight:`semibold`,size:`xs`,className:`whitespace-nowrap`,children:h(s.footer.selectedCount,{count:u})}),(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`small`,onClick:c,children:s.footer.clear})]}):(0,d.jsx)(r.s,{size:`xs`,type:`secondary`,className:`truncate`,children:a===`single`?s.footer.pickOne:s.footer.pickMany})})}function ae({tab:e,selectedItems:r,selectedIds:i,stagedFiles:a,uploading:o=!1,strings:s,confirmLabel:c,cancelLabel:l,onCancel:u,onConfirm:f,onUpload:p,onCancelUpload:m,className:g}){let _=i.length,v=a.length;return e===`upload`?(0,d.jsxs)(`div`,{className:t.cn(`media-library-footer-actions--component flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,g),children:[(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,disabled:o,onClick:m,children:l??s.footer.cancel}),(0,d.jsx)(n.t,{type:`button`,disabled:v===0||o,onClick:p,loading:o,loadingLabels:{loading:s.footer.uploading},children:v<=1?s.footer.upload:h(s.footer.uploadMany,{count:v})})]}):(0,d.jsxs)(`div`,{className:t.cn(`media-library-footer-actions--component flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,g),children:[(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,onClick:u,children:l??s.footer.cancel}),(0,d.jsx)(n.t,{type:`button`,disabled:_===0,onClick:f,children:c??(_===0?s.footer.confirmEmpty:r.length===1?s.footer.confirmOne:h(s.footer.confirmMany,{count:_}))})]})}function R({tab:e,selectedItems:n,selectedIds:r,selectionMode:i,stagedFiles:a,uploading:o=!1,strings:s,confirmLabel:c,cancelLabel:l,onCancel:u,onConfirm:f,onClearSelection:p,onUpload:m,onCancelUpload:h,chrome:g=`section`,className:_}){return(0,d.jsxs)(`footer`,{className:t.cn(`media-library-footer--component flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between`,g===`section`&&`border-t border-border bg-background px-4 py-3`,_),children:[(0,d.jsx)(ie,{tab:e,selectedIds:r,selectionMode:i,stagedFiles:a,strings:s,onClearSelection:p}),(0,d.jsx)(ae,{tab:e,selectedItems:n,selectedIds:r,stagedFiles:a,uploading:o,strings:s,confirmLabel:c,cancelLabel:l,onCancel:u,onConfirm:f,onUpload:m,onCancelUpload:h})]})}var oe=(0,u.createContext)(null);function se(e,t,n){return(0,u.useMemo)(()=>{if(e)return e;let r=new Set;for(let e of t){let t=n(e);t&&r.add(t)}return Array.from(r).map(e=>({value:e,label:e}))},[e,n,t])}function ce({title:i,description:a,confirmLabel:s,cancelLabel:c,selectionMode:l=`multiple`,density:g=`comfortable`,showMeta:_=!0,allowUpload:v=!0,typeFilters:y,confirmOnSelect:b=!1,onConfirm:x,onCancel:S,onClose:C,strings:w,slots:T,heightClassName:E,className:ee,items:te,fetcher:ne,accessors:O,collections:k,value:A,defaultValue:j,onValueChange:M,onItemUpdate:ce,onItemDelete:le,onUpload:ue,onError:de,initialTab:fe,defaultView:pe,defaultQuery:z,defaultType:me,defaultCollection:he,defaultSort:ge,defaultUploadOptions:_e,...ve}){let B=e.useStrings(m,w),V=D({items:te,fetcher:ne,accessors:O,collections:k,selectionMode:l,value:A,defaultValue:j,onValueChange:M,onItemUpdate:ce,onItemDelete:le,onUpload:ue,onError:de,initialTab:fe,defaultView:pe,defaultQuery:z,defaultType:me,defaultCollection:he,defaultSort:ge,defaultUploadOptions:_e}),H=se(k,V.items,V.accessors.getCollection),U=v?V.tab:`library`,W=V.detailId?V.items.find(e=>V.accessors.getId(e)===V.detailId)??null:null,G=(0,u.useContext)(oe),ye=!T?.footer,K=G&&ye?(0,d.jsx)(ie,{tab:U,selectedIds:V.selectedIds,selectionMode:l,stagedFiles:V.stagedFiles,strings:B,onClearSelection:V.clearSelection,className:`media-library-dialog--selection-summary shrink-0 justify-end`}):null,q=!!(i||a||T?.headerStart),J=!!(v||T?.headerEnd||K),Y=q||J,X=()=>{x?.(V.selectedItems,V.selectedIds),C?.()},Z=()=>{S?.(),C?.()},Q=e=>{let t=V.accessors.getId(e);V.toggleSelection(t),b&&(x?.([e],[t]),C?.())},be=V.filteredCount===V.totalCount?h(B.countAll,{count:V.totalCount}):h(B.countFiltered,{count:V.filteredCount,total:V.totalCount}),xe=T?.footer??(G?(0,d.jsx)(ae,{tab:U,selectedItems:V.selectedItems,selectedIds:V.selectedIds,stagedFiles:V.stagedFiles,uploading:V.uploading,strings:B,confirmLabel:s,cancelLabel:c,onCancel:Z,onConfirm:X,onUpload:V.startUpload,onCancelUpload:()=>{V.clearStagedFiles(),V.setTab(`library`)},className:`ml-auto`}):(0,d.jsx)(R,{tab:U,selectedItems:V.selectedItems,selectedIds:V.selectedIds,selectionMode:l,stagedFiles:V.stagedFiles,uploading:V.uploading,strings:B,confirmLabel:s,cancelLabel:c,onCancel:Z,onConfirm:X,onClearSelection:V.clearSelection,onUpload:V.startUpload,onCancelUpload:()=>{V.clearStagedFiles(),V.setTab(`library`)}}));return(0,d.jsxs)(`section`,{className:t.cn(`media-library--component flex min-h-0 flex-col overflow-hidden rounded-lg border border-border bg-background`,E??`h-190 max-h-[calc(100vh-7rem)]`,ee),...ve,children:[Y&&(0,d.jsxs)(`header`,{className:`media-library--header flex flex-col gap-3 border-b border-border px-4 py-3 lg:flex-row lg:items-center lg:justify-between`,children:[q&&(0,d.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[T?.headerStart,(i||a)&&(0,d.jsxs)(`div`,{className:`min-w-0`,children:[!!i&&(0,d.jsx)(r.s,{tag:`div`,weight:`semibold`,children:i}),!!a&&(0,d.jsx)(r.s,{size:`xs`,type:`secondary`,className:`mt-0.5`,children:a})]})]}),J&&(0,d.jsxs)(`div`,{className:t.cn(`flex min-w-0 flex-wrap items-center gap-2`,K?`flex-1 justify-between`:`lg:justify-end`),children:[(0,d.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[v&&(0,d.jsxs)(`div`,{className:`media-library--tabs flex items-center rounded-md bg-muted p-0.5`,role:`tablist`,children:[(0,d.jsxs)(n.t,{type:`button`,role:`tab`,"aria-selected":U===`library`,variant:`secondary`,buttonStyle:`ghost`,className:t.cn(`h-8 rounded-sm px-3 shadow-none`,U===`library`?`bg-background text-foreground shadow-xs hover:bg-background`:`text-muted-foreground hover:bg-transparent hover:text-foreground`),onClick:()=>V.setTab(`library`),children:[(0,d.jsx)(f.ImageIcon,{className:`size-3.5`}),B.tabs.library]}),(0,d.jsxs)(n.t,{type:`button`,role:`tab`,"aria-selected":U===`upload`,variant:`secondary`,buttonStyle:`ghost`,className:t.cn(`h-8 rounded-sm px-3 shadow-none`,U===`upload`?`bg-background text-foreground shadow-xs hover:bg-background`:`text-muted-foreground hover:bg-transparent hover:text-foreground`),onClick:()=>V.setTab(`upload`),children:[(0,d.jsx)(f.UploadCloud,{className:`size-3.5`}),B.tabs.upload,V.stagedFiles.length>0&&(0,d.jsx)(`span`,{className:`rounded-full bg-background/20 px-1.5 text-xxs tabular-nums`,children:V.stagedFiles.length})]})]}),T?.headerEnd]}),K]})]}),(0,d.jsxs)(`div`,{className:`media-library--body flex min-h-0 flex-1`,children:[U===`upload`?(0,d.jsx)(`div`,{className:`min-w-0 flex-1 overflow-y-auto`,children:(0,d.jsx)(re,{stagedFiles:V.stagedFiles,uploadOptions:V.uploadOptions,collections:H,uploading:V.uploading,strings:B,onFiles:V.addFiles,onRemoveFile:V.removeStagedFile,onOptionsChange:V.updateUploadOptions,empty:T?.uploadEmpty})}):(0,d.jsxs)(`div`,{className:t.cn(`media-library--library min-w-0 flex-1 flex-col`,W?`hidden lg:flex`:`flex`),children:[(0,d.jsxs)(`div`,{className:`media-library--toolbar border-b border-border/70 px-4 py-3`,children:[(0,d.jsx)(P,{query:V.query,type:V.type,typeFilters:y,collection:V.collection,sort:V.sort,view:V.view,collections:H,strings:B,onQueryChange:V.setQuery,onTypeChange:V.setType,onCollectionChange:V.setCollection,onSortChange:V.setSort,onViewChange:V.setView,onClearFilters:V.clearFilters,toolbarEnd:T?.toolbarEnd}),(0,d.jsx)(r.s,{size:`xs`,type:`secondary`,className:`mt-2`,"aria-live":`polite`,children:be})]}),(0,d.jsx)(`div`,{className:`media-library--results min-h-0 flex-1 overflow-y-auto p-4`,children:V.loading?T?.loading??(0,d.jsx)(`div`,{className:`flex min-h-64 items-center justify-center`,children:(0,d.jsx)(r.s,{type:`secondary`,children:B.loading})}):V.error?T?.error??(0,d.jsxs)(o.t,{variant:`destructive`,children:[(0,d.jsx)(o.i,{children:B.errorTitle}),(0,d.jsx)(o.r,{children:B.errorDescription})]}):V.visibleItems.length===0?T?.empty??(0,d.jsx)(N,{title:V.hasFilters?B.emptyFilteredTitle:B.emptyLibraryTitle,description:V.hasFilters?B.emptyFilteredDescription:B.emptyLibraryDescription,action:V.hasFilters?(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`outline`,onClick:V.clearFilters,children:B.clearFilters}):v?(0,d.jsxs)(n.t,{type:`button`,onClick:()=>V.setTab(`upload`),children:[(0,d.jsx)(f.UploadCloud,{className:`size-3.5`}),B.uploadMedia]}):void 0}):V.view===`table`?(0,d.jsx)(`div`,{className:`overflow-x-auto`,children:(0,d.jsx)(I,{items:V.visibleItems,selectedSet:V.selectedSet,selectionMode:l,accessors:V.accessors,strings:B,onToggle:e=>{let t=V.items.find(t=>V.accessors.getId(t)===e);t&&Q(t)},onDetails:V.setDetailId})}):(0,d.jsx)(`div`,{className:t.cn(`media-library--grid grid gap-3`,g===`compact`?`grid-cols-[repeat(auto-fill,minmax(136px,1fr))]`:`grid-cols-[repeat(auto-fill,minmax(168px,1fr))]`),children:V.visibleItems.map(e=>{let t=V.accessors.getId(e),n={id:t,selected:V.selectedSet.has(t),selectionMode:l,accessors:V.accessors,toggle:()=>Q(e),openDetails:()=>V.setDetailId(t)},r=T?.renderItem?.(e,n);return r?(0,d.jsx)(`div`,{children:r},t):(0,d.jsx)(F,{item:e,selected:n.selected,density:g,showMeta:_,selectionMode:l,accessors:V.accessors,strings:B,onToggle:n.toggle,onDetails:n.openDetails},t)})})})]}),U===`library`&&(0,d.jsx)(L,{item:W,collections:H,accessors:V.accessors,strings:B,onClose:()=>V.setDetailId(null),onUpdate:e=>W&&V.updateItem(W,e),onRemove:()=>{W&&(V.removeItem(W),V.setDetailId(null))},renderDetail:T?.renderDetail})]}),G?G.element?(0,p.createPortal)(xe,G.element):null:xe]})}function le({open:n,onOpenChange:r,trigger:a,dialogTitle:o,dialogDescription:s,onClose:c,className:l,dialogClassName:f,contentClassName:p,closeOnEscape:h=!0,closeOnBackdropClick:g=!0,..._}){let v=e.useStrings(m,_.strings),[y,b]=(0,u.useState)(!1),[x,S]=(0,u.useState)(null),C=n!==void 0,w=C?n:y,T=e=>{C||b(e),r?.(e)},E=()=>{T(!1),c?.()};return(0,d.jsx)(oe.Provider,{value:{element:x},children:(0,d.jsx)(i.r,{open:w,onOpenChange:T,onClose:c,trigger:a,title:o??v.title,description:s??v.description,size:`full`,showCancel:!1,showConfirm:!1,footer:(0,d.jsx)(`div`,{ref:S,className:`media-library-dialog--footer`}),className:t.cn(`media-library-dialog--component max-h-[calc(100vh-2rem)] max-w-[min(1060px,calc(100vw-2rem))]`,f),contentClassName:t.cn(`media-library-dialog--body flex min-h-0 flex-col overflow-hidden p-0`,p),closeOnBackdropClick:g,closeOnEscape:h,children:(0,d.jsx)(ce,{..._,onClose:E,className:t.cn(`media-library-dialog--library rounded-none border-0`,l),heightClassName:_.heightClassName??`min-h-0 flex-1`,strings:_.strings})})})}function ue(e,t,n){let r=e.slice(),[i]=r.splice(t,1);return i===void 0||r.splice(n,0,i),r}function de({items:i,accessors:o,title:s,description:c,primaryId:l,onPrimaryChange:u,onRemove:p,onReorder:g,onAdd:_,maxItems:v,layout:x=`field`,density:S=`comfortable`,readOnly:C=!1,empty:w,action:T,renderItem:E,strings:ee,className:te,...ne}){let D=e.useStrings(m,ee),O=y(o),k=i.length,A=l??(k>0?O.getId(i[0]):void 0),j=!C&&!!_&&(v===void 0||k<v),M=j&&(x===`field`||k>0)?(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`outline`,icon:f.Plus,onClick:_,children:D.gallery.add}):v!==void 0&&k>=v?(0,d.jsx)(a.t,{variant:`secondary`,children:D.gallery.maxReached}):null,P=(e,t)=>{if(t<0||t>=k||e===t)return;let n=ue(i,e,t);g?.(n.map(e=>O.getId(e)),n)},F=!!(s||c||T||M),I=k===0&&x!==`field`,L=()=>!j||x!==`field`?null:(0,d.jsxs)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,className:t.cn(`media-resource-gallery--add-tile h-auto min-h-24 w-full flex-col rounded-lg border border-dashed border-border bg-background text-muted-foreground shadow-none`,`aspect-square hover:border-primary/50 hover:bg-primary/5 hover:text-primary focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`),"aria-label":D.gallery.addTile,onClick:_,children:[(0,d.jsx)(f.Plus,{className:`size-4`}),(0,d.jsx)(`span`,{className:`sr-only`,children:D.gallery.addTile})]});return(0,d.jsxs)(`section`,{className:t.cn(`media-resource-gallery--component rounded-lg border border-border bg-card shadow-xs`,te),"data-layout":x,"data-density":S,...ne,children:[F&&(0,d.jsxs)(`header`,{className:`media-resource-gallery--header flex flex-col gap-3 px-4 py-3 sm:flex-row sm:items-start sm:justify-between`,children:[(0,d.jsxs)(`div`,{className:`min-w-0`,children:[!!s&&(0,d.jsx)(r.s,{tag:`div`,weight:`semibold`,children:s}),!!c&&(0,d.jsx)(r.s,{size:`xs`,type:`secondary`,className:`mt-0.5`,children:c})]}),(0,d.jsx)(`div`,{className:`media-resource-gallery--actions flex flex-wrap items-center gap-2`,children:T??M})]}),I?(0,d.jsx)(`div`,{className:`media-resource-gallery--empty p-4 pt-0`,children:w??(0,d.jsx)(N,{title:D.gallery.emptyTitle,description:D.gallery.emptyDescription,action:j?(0,d.jsx)(n.t,{type:`button`,icon:f.ImagePlus,onClick:_,children:D.gallery.add}):void 0})}):(0,d.jsxs)(`div`,{className:t.cn(`media-resource-gallery--items p-4`,F&&`pt-0`,x===`list`?`grid gap-2`:x===`field`?`grid grid-cols-[repeat(auto-fill,minmax(96px,1fr))] gap-3 sm:grid-cols-[repeat(auto-fill,minmax(108px,1fr))]`:S===`compact`?`grid grid-cols-[repeat(auto-fill,minmax(132px,1fr))] gap-3`:`grid grid-cols-[repeat(auto-fill,minmax(164px,1fr))] gap-3`),children:[i.map((e,i)=>{let o=O.getId(e),s=O.getName(e),c=O.getType(e),l=O.getSrc(e),m=O.getAlt(e)||s,g=o===A,_=O.getPublic(e)===!1,v=O.getDuration(e),y=i>0,S=i<k-1,w=E?.(e,{id:o,index:i,total:k,primary:g,accessors:O,canMovePrevious:y,canMoveNext:S,setPrimary:()=>u?.(o,e),remove:()=>p?.(o,e),movePrevious:()=>P(i,i-1),moveNext:()=>P(i,i+1)});return w?(0,d.jsx)(`div`,{children:w},o):x===`field`?(0,d.jsxs)(`div`,{className:t.cn(`media-resource-gallery--item group/gallery relative aspect-square overflow-hidden rounded-lg border border-border bg-background shadow-xs`,`transition-colors hover:border-primary/40 focus-within:border-primary/50`,g&&`col-span-2 row-span-2 min-h-52`),"data-primary":g||void 0,children:[l?(0,d.jsx)(`img`,{src:l,alt:m,loading:`lazy`,className:`size-full object-cover`}):(0,d.jsx)(`div`,{className:`flex size-full items-center justify-center bg-muted text-muted-foreground`,children:(0,d.jsx)(f.File,{className:g?`size-7`:`size-5`})}),g&&(0,d.jsx)(a.t,{variant:`secondary`,className:`absolute left-2 top-2 bg-background/90 shadow-xs`,children:D.gallery.cover}),c===`video`&&!!v&&(0,d.jsxs)(a.t,{variant:`secondary`,className:`absolute bottom-2 left-2 bg-foreground text-background`,children:[(0,d.jsx)(f.Play,{className:`size-3 fill-current`}),v]}),_&&(0,d.jsx)(`span`,{className:`absolute bottom-2 right-2 inline-flex size-6 items-center justify-center rounded-full border border-border bg-background/90 text-muted-foreground shadow-xs`,children:(0,d.jsx)(f.Lock,{className:`size-3`})}),!C&&(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`solid`,size:`icon-small`,className:`absolute right-2 top-2 opacity-0 shadow-sm transition-opacity group-hover/gallery:opacity-100 group-focus-within/gallery:opacity-100`,"aria-label":D.gallery.remove,onClick:()=>p?.(o,e),children:(0,d.jsx)(f.X,{className:`size-3.5`})})]},o):x===`list`?(0,d.jsxs)(`div`,{className:`media-resource-gallery--item flex min-w-0 items-center gap-3 rounded-lg border border-border bg-background p-2`,"data-primary":g||void 0,children:[(0,d.jsx)(`div`,{className:`relative size-12 shrink-0 overflow-hidden rounded-md bg-muted`,children:l?(0,d.jsx)(`img`,{src:l,alt:m,loading:`lazy`,className:`size-full object-cover`}):(0,d.jsx)(`div`,{className:`flex size-full items-center justify-center text-muted-foreground`,children:(0,d.jsx)(f.File,{className:`size-4`})})}),(0,d.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,d.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,d.jsx)(r.s,{tag:`div`,weight:`semibold`,size:`xs`,className:`truncate`,children:s}),g&&(0,d.jsx)(a.t,{variant:`info`,children:D.gallery.primary})]}),(0,d.jsxs)(r.s,{size:`xxs`,type:`secondary`,children:[h(D.gallery.itemPosition,{index:i+1,total:k}),` · `,b(O.getSize(e))||D.unknownSize]})]}),!C&&(0,d.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,disabled:g,"aria-label":D.gallery.setPrimary,onClick:()=>u?.(o,e),children:(0,d.jsx)(f.Star,{className:`size-3.5`})}),(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,disabled:!y,"aria-label":D.gallery.movePrevious,onClick:()=>P(i,i-1),children:(0,d.jsx)(f.ArrowLeft,{className:`size-3.5`})}),(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,disabled:!S,"aria-label":D.gallery.moveNext,onClick:()=>P(i,i+1),children:(0,d.jsx)(f.ArrowRight,{className:`size-3.5`})}),(0,d.jsx)(n.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,size:`icon-small`,"aria-label":D.gallery.remove,onClick:()=>p?.(o,e),children:(0,d.jsx)(f.Trash2,{className:`size-3.5`})})]})]},o):(0,d.jsxs)(`div`,{className:`media-resource-gallery--item group/gallery overflow-hidden rounded-lg border border-border bg-background shadow-xs transition-colors hover:border-primary/40`,"data-primary":g||void 0,children:[(0,d.jsxs)(`div`,{className:`relative aspect-[4/3] bg-muted`,children:[l?(0,d.jsx)(`img`,{src:l,alt:m,loading:`lazy`,className:`size-full object-cover`}):(0,d.jsx)(`div`,{className:`flex size-full items-center justify-center text-muted-foreground`,children:(0,d.jsx)(f.File,{className:`size-6`})}),(0,d.jsxs)(`div`,{className:`absolute left-2 top-2 flex flex-wrap gap-1`,children:[g&&(0,d.jsx)(a.t,{variant:`info`,children:D.gallery.primary}),(0,d.jsx)(a.t,{variant:`secondary`,children:h(D.gallery.itemPosition,{index:i+1,total:k})})]})]}),(0,d.jsxs)(`div`,{className:`media-resource-gallery--item-body grid gap-2 p-3`,children:[(0,d.jsxs)(`div`,{className:`min-w-0`,children:[(0,d.jsx)(r.s,{tag:`div`,weight:`semibold`,size:`xs`,className:`truncate`,children:s}),(0,d.jsx)(r.s,{size:`xxs`,type:`secondary`,children:b(O.getSize(e))||D.unknownSize})]}),!C&&(0,d.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,disabled:g,"aria-label":D.gallery.setPrimary,onClick:()=>u?.(o,e),children:(0,d.jsx)(f.Star,{className:`size-3.5`})}),(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,disabled:!y,"aria-label":D.gallery.movePrevious,onClick:()=>P(i,i-1),children:(0,d.jsx)(f.ArrowLeft,{className:`size-3.5`})}),(0,d.jsx)(n.t,{type:`button`,variant:`secondary`,buttonStyle:`ghost`,size:`icon-small`,disabled:!S,"aria-label":D.gallery.moveNext,onClick:()=>P(i,i+1),children:(0,d.jsx)(f.ArrowRight,{className:`size-3.5`})}),(0,d.jsx)(n.t,{type:`button`,variant:`error`,buttonStyle:`ghost`,size:`icon-small`,className:`ml-auto`,"aria-label":D.gallery.remove,onClick:()=>p?.(o,e),children:(0,d.jsx)(f.Trash2,{className:`size-3.5`})})]})]})]},o)}),L()]})]})}exports.MediaLibrary=ce,exports.MediaLibraryCard=F,exports.MediaLibraryDetailPanel=L,exports.MediaLibraryDialog=le,exports.MediaLibraryEmptyState=N,exports.MediaLibraryFooter=R,exports.MediaLibraryTable=I,exports.MediaLibraryToolbar=P,exports.MediaLibraryUploadPanel=re,exports.MediaResourceGallery=de,exports.defaultMediaLibraryStrings=m,exports.formatMediaLibrarySize=b,exports.formatMediaLibraryString=h,exports.getMediaLibraryDimensions=x,exports.resolveMediaLibraryAccessors=y,exports.useMediaLibrary=D;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -2,7 +2,7 @@ import { useStrings as e } from "../../../lib/strings.js";
2
2
  import { cn as t } from "../../../lib/utils.js";
3
3
  import { t as n } from "../../../_shared/button-DHksjMvc.js";
4
4
  import { s as r } from "../../../_shared/typography-DE0NGEIE.js";
5
- import { r as i } from "../../../_shared/overlays-CdtMAkKG.js";
5
+ import { r as i } from "../../../_shared/overlays-DW8OIK5R.js";
6
6
  import { t as a } from "../../../_shared/badge-a2Z3K5aQ.js";
7
7
  import { i as o, r as s, t as c } from "../../../_shared/alert-m-4s0Hqq.js";
8
8
  import { t as l } from "../../../_shared/input-CfnHBT--.js";
@@ -1,3 +1,4 @@
1
1
  export { useNativeDialog, type UseNativeDialogOptions, type UseNativeDialogReturn, } from './use-native-dialog';
2
2
  export { useOverlayActions, type UseOverlayActionsOptions, type UseOverlayActionsReturn, } from './use-overlay-actions';
3
+ export { useOverlayVisibility, useOverlayVisibilityGroup, type OverlayOpenSetter, type OverlayVisibilityGroupState, type OverlayVisibilityProps, type UseOverlayVisibilityGroupOptions, type UseOverlayVisibilityGroupReturn, type UseOverlayVisibilityOptions, type UseOverlayVisibilityReturn, } from './use-overlay-visibility';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/overlays/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC7B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACH,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC/B,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/overlays/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC7B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACH,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC/B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACH,oBAAoB,EACpB,yBAAyB,EACzB,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,GAClC,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { Dispatch, SetStateAction } from 'react';
2
+ export type OverlayOpenSetter = Dispatch<SetStateAction<boolean>>;
3
+ export interface OverlayVisibilityProps {
4
+ open: boolean;
5
+ onOpenChange: (open: boolean) => void;
6
+ }
7
+ export interface UseOverlayVisibilityOptions {
8
+ defaultOpen?: boolean;
9
+ open?: boolean;
10
+ onOpenChange?: (open: boolean) => void;
11
+ onOpen?: () => void;
12
+ onClose?: () => void;
13
+ }
14
+ export interface UseOverlayVisibilityReturn {
15
+ open: boolean;
16
+ isOpen: boolean;
17
+ setOpen: OverlayOpenSetter;
18
+ show: () => void;
19
+ hide: () => void;
20
+ toggle: () => void;
21
+ overlayProps: OverlayVisibilityProps;
22
+ }
23
+ export type OverlayVisibilityGroupState<TKey extends string = string> = Record<TKey, boolean>;
24
+ export interface UseOverlayVisibilityGroupOptions<TKey extends string = string> {
25
+ defaultOpen?: Partial<Record<TKey, boolean>>;
26
+ open?: Partial<Record<TKey, boolean>>;
27
+ onOpenChange?: (key: TKey, open: boolean, state: OverlayVisibilityGroupState<TKey>) => void;
28
+ closeOthersOnOpen?: boolean;
29
+ }
30
+ export type UseOverlayVisibilityGroupReturn<TKey extends string = string> = Record<TKey, UseOverlayVisibilityReturn>;
31
+ export declare function useOverlayVisibility({ defaultOpen, open: controlledOpen, onOpenChange, onOpen, onClose, }?: UseOverlayVisibilityOptions): UseOverlayVisibilityReturn;
32
+ export declare function useOverlayVisibilityGroup<const TKeys extends readonly string[]>(keys: TKeys, { defaultOpen, open: controlledOpen, onOpenChange, closeOthersOnOpen, }?: UseOverlayVisibilityGroupOptions<TKeys[number] & string>): UseOverlayVisibilityGroupReturn<TKeys[number] & string>;
33
+ //# sourceMappingURL=use-overlay-visibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-overlay-visibility.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/overlays/hooks/use-overlay-visibility.ts"],"names":[],"mappings":"AAAA,OAAO,EAKN,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,MAAM,OAAO,CAAC;AAEf,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AAElE,MAAM,WAAW,sBAAsB;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,2BAA2B;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,0BAA0B;IAC1C,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,YAAY,EAAE,sBAAsB,CAAC;CACrC;AAED,MAAM,MAAM,2BAA2B,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAE9F,MAAM,WAAW,gCAAgC,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM;IAC7E,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,CACd,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,2BAA2B,CAAC,IAAI,CAAC,KACpC,IAAI,CAAC;IACV,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,+BAA+B,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAAI,MAAM,CACjF,IAAI,EACJ,0BAA0B,CAC1B,CAAC;AA+BF,wBAAgB,oBAAoB,CAAC,EACpC,WAAmB,EACnB,IAAI,EAAE,cAAc,EACpB,YAAY,EACZ,MAAM,EACN,OAAO,GACP,GAAE,2BAAgC,GAAG,0BAA0B,CA0D/D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,CAAC,KAAK,SAAS,SAAS,MAAM,EAAE,EAC9E,IAAI,EAAE,KAAK,EACX,EACC,WAAW,EACX,IAAI,EAAE,cAAc,EACpB,YAAY,EACZ,iBAAyB,GACzB,GAAE,gCAAgC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAM,GAC9D,+BAA+B,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAoEzD"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_shared/overlays-Diy_H0Au.cjs");exports.AlertDialog=e.t,exports.Dialog=e.r,exports.Drawer=e.n,exports.defaultAlertDialogStrings=e.a,exports.defaultOverlayStrings=e.o,exports.useNativeDialog=e.s,exports.useOverlayActions=e.i;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_shared/overlays-Du65iCkx.cjs");exports.AlertDialog=e.t,exports.Dialog=e.r,exports.Drawer=e.n,exports.defaultAlertDialogStrings=e.s,exports.defaultOverlayStrings=e.c,exports.useNativeDialog=e.l,exports.useOverlayActions=e.o,exports.useOverlayVisibility=e.i,exports.useOverlayVisibilityGroup=e.a;
@@ -1,7 +1,7 @@
1
1
  export { Dialog } from './dialog';
2
2
  export { Drawer } from './drawer';
3
3
  export { AlertDialog } from './alert-dialog';
4
- export { useNativeDialog, type UseNativeDialogOptions, type UseNativeDialogReturn, useOverlayActions, type UseOverlayActionsOptions, type UseOverlayActionsReturn, } from './hooks';
4
+ export { useNativeDialog, type UseNativeDialogOptions, type UseNativeDialogReturn, useOverlayActions, type UseOverlayActionsOptions, type UseOverlayActionsReturn, useOverlayVisibility, useOverlayVisibilityGroup, type OverlayOpenSetter, type OverlayVisibilityGroupState, type OverlayVisibilityProps, type UseOverlayVisibilityGroupOptions, type UseOverlayVisibilityGroupReturn, type UseOverlayVisibilityOptions, type UseOverlayVisibilityReturn, } from './hooks';
5
5
  export type { OverlayTone, OverlaySize, DrawerDirection, ButtonVariant, ButtonStyle, OverlayBaseProps, OverlayActionProps, OverlayEmphasisProps, DialogProps, DrawerProps, AlertDialogProps, } from './overlays.types';
6
6
  export { defaultOverlayStrings, defaultAlertDialogStrings, type OverlayStrings, } from './overlays.strings';
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/features/overlays/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EACH,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,GAC/B,MAAM,SAAS,CAAC;AAGjB,YAAY,EACR,WAAW,EACX,WAAW,EACX,eAAe,EACf,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,gBAAgB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACH,qBAAqB,EACrB,yBAAyB,EACzB,KAAK,cAAc,GACtB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/features/overlays/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,EACH,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,oBAAoB,EACpB,yBAAyB,EACzB,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,GAClC,MAAM,SAAS,CAAC;AAGjB,YAAY,EACR,WAAW,EACX,WAAW,EACX,eAAe,EACf,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,gBAAgB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACH,qBAAqB,EACrB,yBAAyB,EACzB,KAAK,cAAc,GACtB,MAAM,oBAAoB,CAAC"}
@@ -1,2 +1,2 @@
1
- import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../../../_shared/overlays-CdtMAkKG.js";
2
- export { o as AlertDialog, i as Dialog, n as Drawer, e as defaultAlertDialogStrings, r as defaultOverlayStrings, a as useNativeDialog, t as useOverlayActions };
1
+ import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "../../../_shared/overlays-DW8OIK5R.js";
2
+ export { c as AlertDialog, o as Dialog, i as Drawer, s as defaultAlertDialogStrings, t as defaultOverlayStrings, r as useNativeDialog, a as useOverlayActions, n as useOverlayVisibility, e as useOverlayVisibilityGroup };