@techzyapp/ui-library 1.0.42 → 1.0.44

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 (652) hide show
  1. package/README.md +15 -14
  2. package/dist/{Accordion-B4vdZXIu.cjs → Accordion-CFyeLfPT.cjs} +2 -2
  3. package/dist/{Accordion-B4vdZXIu.cjs.map → Accordion-CFyeLfPT.cjs.map} +1 -1
  4. package/dist/{Accordion-DhFZ25KV.js → Accordion-DOrTQJB9.js} +2 -2
  5. package/dist/{Accordion-DhFZ25KV.js.map → Accordion-DOrTQJB9.js.map} +1 -1
  6. package/dist/AdminRoot-9KE3ll-D.js +101 -0
  7. package/dist/AdminRoot-9KE3ll-D.js.map +1 -0
  8. package/dist/AdminRoot-BMzHo0n7.cjs +2 -0
  9. package/dist/AdminRoot-BMzHo0n7.cjs.map +1 -0
  10. package/dist/Alert-BFfzpPNd.js +70 -0
  11. package/dist/{Alert-D6oBxBdP.js.map → Alert-BFfzpPNd.js.map} +1 -1
  12. package/dist/Alert-DS8TzpIS.cjs +2 -0
  13. package/dist/{Alert-C8BBxL_7.cjs.map → Alert-DS8TzpIS.cjs.map} +1 -1
  14. package/dist/{AuthLayout-q8pbCGdt.js → AuthLayout-BI1wLuDl.js} +2 -2
  15. package/dist/{AuthLayout-q8pbCGdt.js.map → AuthLayout-BI1wLuDl.js.map} +1 -1
  16. package/dist/{AuthLayout-exuNQicH.cjs → AuthLayout-Bzlsvicf.cjs} +2 -2
  17. package/dist/{AuthLayout-exuNQicH.cjs.map → AuthLayout-Bzlsvicf.cjs.map} +1 -1
  18. package/dist/{Avatar-l48Ice6t.cjs → Avatar-BBqX1732.cjs} +2 -2
  19. package/dist/{Avatar-l48Ice6t.cjs.map → Avatar-BBqX1732.cjs.map} +1 -1
  20. package/dist/{Avatar-ClcmN0ba.js → Avatar-CaYyv5wk.js} +2 -2
  21. package/dist/{Avatar-ClcmN0ba.js.map → Avatar-CaYyv5wk.js.map} +1 -1
  22. package/dist/{AvatarGroup-l-KV3wdl.js → AvatarGroup-6fhm-van.js} +2 -2
  23. package/dist/{AvatarGroup-l-KV3wdl.js.map → AvatarGroup-6fhm-van.js.map} +1 -1
  24. package/dist/{AvatarGroup-CuvFX4di.cjs → AvatarGroup-DrkzAt1-.cjs} +2 -2
  25. package/dist/{AvatarGroup-CuvFX4di.cjs.map → AvatarGroup-DrkzAt1-.cjs.map} +1 -1
  26. package/dist/Breadcrumbs-CloqFpp1.js +34 -0
  27. package/dist/{Breadcrumbs-cXET6OM5.js.map → Breadcrumbs-CloqFpp1.js.map} +1 -1
  28. package/dist/Breadcrumbs-N2-sZWW5.cjs +2 -0
  29. package/dist/{Breadcrumbs-B-olYVdw.cjs.map → Breadcrumbs-N2-sZWW5.cjs.map} +1 -1
  30. package/dist/Button-5LQtDA9d.js +72 -0
  31. package/dist/{Button-0ZgdNjX-.js.map → Button-5LQtDA9d.js.map} +1 -1
  32. package/dist/Button-Bxztlybi.cjs +2 -0
  33. package/dist/{Button-CwrDiZek.cjs.map → Button-Bxztlybi.cjs.map} +1 -1
  34. package/dist/{Calendar-CxzdnzdK.js → Calendar-BIKo_aus.js} +5 -5
  35. package/dist/{Calendar-CxzdnzdK.js.map → Calendar-BIKo_aus.js.map} +1 -1
  36. package/dist/{Calendar-d3CX5UJp.cjs → Calendar-CsBgaKZ-.cjs} +2 -2
  37. package/dist/{Calendar-d3CX5UJp.cjs.map → Calendar-CsBgaKZ-.cjs.map} +1 -1
  38. package/dist/{Card-CxnUoWsi.cjs → Card-Csn3FaMl.cjs} +2 -2
  39. package/dist/{Card-CxnUoWsi.cjs.map → Card-Csn3FaMl.cjs.map} +1 -1
  40. package/dist/{Card-CjqStov5.js → Card-DMwQ7rMk.js} +4 -4
  41. package/dist/{Card-CjqStov5.js.map → Card-DMwQ7rMk.js.map} +1 -1
  42. package/dist/Chip-BdCZ44I8.cjs +2 -0
  43. package/dist/{Chip-BkU3yx6G.cjs.map → Chip-BdCZ44I8.cjs.map} +1 -1
  44. package/dist/Chip-C7IkFuM1.js +92 -0
  45. package/dist/{Chip-CzJjbaKx.js.map → Chip-C7IkFuM1.js.map} +1 -1
  46. package/dist/ChoiceCardGroup-Cj_YFj6C.cjs +2 -0
  47. package/dist/{ChoiceCardGroup-C7Eengyd.cjs.map → ChoiceCardGroup-Cj_YFj6C.cjs.map} +1 -1
  48. package/dist/ChoiceCardGroup-D37XREKV.js +180 -0
  49. package/dist/{ChoiceCardGroup-q0yN-TeQ.js.map → ChoiceCardGroup-D37XREKV.js.map} +1 -1
  50. package/dist/CodeBlock-BnXxxqAW.cjs +2 -0
  51. package/dist/{CodeBlock-DRBQ_S5t.cjs.map → CodeBlock-BnXxxqAW.cjs.map} +1 -1
  52. package/dist/CodeBlock-C10JN6DR.js +96 -0
  53. package/dist/{CodeBlock-BHcvQrs9.js.map → CodeBlock-C10JN6DR.js.map} +1 -1
  54. package/dist/{ColorPicker-BzCEMN7B.cjs → ColorPicker-CVddGc-n.cjs} +2 -2
  55. package/dist/{ColorPicker-BzCEMN7B.cjs.map → ColorPicker-CVddGc-n.cjs.map} +1 -1
  56. package/dist/{ColorPicker-BQKFdTNr.js → ColorPicker-z8_-77LO.js} +3 -3
  57. package/dist/{ColorPicker-BQKFdTNr.js.map → ColorPicker-z8_-77LO.js.map} +1 -1
  58. package/dist/{ColorPickerPanel-kl2jUix-.cjs → ColorPickerPanel-DJY6-EqO.cjs} +2 -2
  59. package/dist/{ColorPickerPanel-kl2jUix-.cjs.map → ColorPickerPanel-DJY6-EqO.cjs.map} +1 -1
  60. package/dist/{ColorPickerPanel-DKTKC9KH.js → ColorPickerPanel-y4A2LLLf.js} +3 -3
  61. package/dist/{ColorPickerPanel-DKTKC9KH.js.map → ColorPickerPanel-y4A2LLLf.js.map} +1 -1
  62. package/dist/{ColorRamp-n7muILK3.cjs → ColorRamp-DvRsdOWy.cjs} +2 -2
  63. package/dist/{ColorRamp-n7muILK3.cjs.map → ColorRamp-DvRsdOWy.cjs.map} +1 -1
  64. package/dist/{ColorRamp-yfMyJCyx.js → ColorRamp-Dvit8yoP.js} +2 -2
  65. package/dist/{ColorRamp-yfMyJCyx.js.map → ColorRamp-Dvit8yoP.js.map} +1 -1
  66. package/dist/{ConfigProvider-D61cpCz-.js → ConfigProvider-CYgmMH4j.js} +133 -126
  67. package/dist/ConfigProvider-CYgmMH4j.js.map +1 -0
  68. package/dist/ConfigProvider-Cf-awvZs.cjs +2 -0
  69. package/dist/ConfigProvider-Cf-awvZs.cjs.map +1 -0
  70. package/dist/{CopyButton-DlSi82gv.cjs → CopyButton-BOp7waEt.cjs} +2 -2
  71. package/dist/{CopyButton-DlSi82gv.cjs.map → CopyButton-BOp7waEt.cjs.map} +1 -1
  72. package/dist/{CopyButton-ecxn-ghi.js → CopyButton-_iMBE4q_.js} +4 -4
  73. package/dist/{CopyButton-ecxn-ghi.js.map → CopyButton-_iMBE4q_.js.map} +1 -1
  74. package/dist/DashedButton-BX8hfY1x.cjs +2 -0
  75. package/dist/{DashedButton-Dw7xHgIp.cjs.map → DashedButton-BX8hfY1x.cjs.map} +1 -1
  76. package/dist/DashedButton-wcmXTYBw.js +58 -0
  77. package/dist/{DashedButton-csz6Jt_K.js.map → DashedButton-wcmXTYBw.js.map} +1 -1
  78. package/dist/{DatePicker-BjZ_P21i.cjs → DatePicker-UQwpH-rw.cjs} +2 -2
  79. package/dist/{DatePicker-BjZ_P21i.cjs.map → DatePicker-UQwpH-rw.cjs.map} +1 -1
  80. package/dist/{DatePicker-CAGpJbDi.js → DatePicker-X5hZVSW6.js} +6 -6
  81. package/dist/{DatePicker-CAGpJbDi.js.map → DatePicker-X5hZVSW6.js.map} +1 -1
  82. package/dist/DatePicker.module-BaQyKOUM.cjs +2 -0
  83. package/dist/{DatePicker.module-BDtTsg8M.cjs.map → DatePicker.module-BaQyKOUM.cjs.map} +1 -1
  84. package/dist/DatePicker.module-DoywSvLu.js +138 -0
  85. package/dist/{DatePicker.module-CMMQyEhG.js.map → DatePicker.module-DoywSvLu.js.map} +1 -1
  86. package/dist/{DateTimePicker-BJmF0Su6.js → DateTimePicker-Ch1kUHEb.js} +9 -9
  87. package/dist/{DateTimePicker-BJmF0Su6.js.map → DateTimePicker-Ch1kUHEb.js.map} +1 -1
  88. package/dist/{DateTimePicker-DZqWQeUL.cjs → DateTimePicker-ClTZGMON.cjs} +2 -2
  89. package/dist/{DateTimePicker-DZqWQeUL.cjs.map → DateTimePicker-ClTZGMON.cjs.map} +1 -1
  90. package/dist/{DescriptionList-Knq5eCiY.js → DescriptionList-Cque-iYk.js} +69 -69
  91. package/dist/{DescriptionList-Knq5eCiY.js.map → DescriptionList-Cque-iYk.js.map} +1 -1
  92. package/dist/DescriptionList-IVAvgpEL.cjs +2 -0
  93. package/dist/{DescriptionList-CvPDn-kh.cjs.map → DescriptionList-IVAvgpEL.cjs.map} +1 -1
  94. package/dist/Dropdown-C_y9_dVn.cjs +2 -0
  95. package/dist/Dropdown-C_y9_dVn.cjs.map +1 -0
  96. package/dist/Dropdown-D-D_Z1Jo.js +154 -0
  97. package/dist/Dropdown-D-D_Z1Jo.js.map +1 -0
  98. package/dist/{EmptyState-CX1g47y_.cjs → EmptyState-C84B-E8a.cjs} +2 -2
  99. package/dist/{EmptyState-CX1g47y_.cjs.map → EmptyState-C84B-E8a.cjs.map} +1 -1
  100. package/dist/{EmptyState-Dqtpmtje.js → EmptyState-Yts_p-jZ.js} +3 -3
  101. package/dist/{EmptyState-Dqtpmtje.js.map → EmptyState-Yts_p-jZ.js.map} +1 -1
  102. package/dist/{ErrorBoundary-Dos7VLb-.js → ErrorBoundary-BgMOPle0.js} +3 -3
  103. package/dist/{ErrorBoundary-Dos7VLb-.js.map → ErrorBoundary-BgMOPle0.js.map} +1 -1
  104. package/dist/{ErrorBoundary-B8KwWXXp.cjs → ErrorBoundary-DtYswKp3.cjs} +2 -2
  105. package/dist/{ErrorBoundary-B8KwWXXp.cjs.map → ErrorBoundary-DtYswKp3.cjs.map} +1 -1
  106. package/dist/{ErrorState-CwCqd2PU.cjs → ErrorState-Aa8LVjkl.cjs} +2 -2
  107. package/dist/{ErrorState-CwCqd2PU.cjs.map → ErrorState-Aa8LVjkl.cjs.map} +1 -1
  108. package/dist/{ErrorState-KhzrGIJ-.js → ErrorState-BE9Rcmht.js} +8 -8
  109. package/dist/{ErrorState-KhzrGIJ-.js.map → ErrorState-BE9Rcmht.js.map} +1 -1
  110. package/dist/FileCard-Chfx0QdF.cjs +2 -0
  111. package/dist/{FileCard-DEc10T2G.cjs.map → FileCard-Chfx0QdF.cjs.map} +1 -1
  112. package/dist/{FileCard-SSuFS13E.js → FileCard-m3i_8yKR.js} +33 -33
  113. package/dist/{FileCard-SSuFS13E.js.map → FileCard-m3i_8yKR.js.map} +1 -1
  114. package/dist/FileUploader-B27Y4rak.js +706 -0
  115. package/dist/FileUploader-B27Y4rak.js.map +1 -0
  116. package/dist/FileUploader-DkvFO0N_.cjs +2 -0
  117. package/dist/FileUploader-DkvFO0N_.cjs.map +1 -0
  118. package/dist/{Flag-B1ZvZVXi.cjs → Flag-BvZB3295.cjs} +2 -2
  119. package/dist/{Flag-B1ZvZVXi.cjs.map → Flag-BvZB3295.cjs.map} +1 -1
  120. package/dist/{Flag-BEIqYQZg.js → Flag-C1HwnZXJ.js} +2 -2
  121. package/dist/{Flag-BEIqYQZg.js.map → Flag-C1HwnZXJ.js.map} +1 -1
  122. package/dist/{FullscreenToggle-I_In47BB.js → FullscreenToggle-B4ynXdCP.js} +4 -4
  123. package/dist/{FullscreenToggle-I_In47BB.js.map → FullscreenToggle-B4ynXdCP.js.map} +1 -1
  124. package/dist/{FullscreenToggle-Po769CoC.cjs → FullscreenToggle-CEFZQ5OC.cjs} +2 -2
  125. package/dist/{FullscreenToggle-Po769CoC.cjs.map → FullscreenToggle-CEFZQ5OC.cjs.map} +1 -1
  126. package/dist/Icon-B7DJn8Tw.js +5418 -0
  127. package/dist/Icon-B7DJn8Tw.js.map +1 -0
  128. package/dist/Icon-CBg21lKA.cjs +2 -0
  129. package/dist/Icon-CBg21lKA.cjs.map +1 -0
  130. package/dist/IconButton-EaExCXRq.js +68 -0
  131. package/dist/{IconButton-D9MCwRK_.js.map → IconButton-EaExCXRq.js.map} +1 -1
  132. package/dist/IconButton-wW1o4HHw.cjs +2 -0
  133. package/dist/{IconButton-CxSXEYce.cjs.map → IconButton-wW1o4HHw.cjs.map} +1 -1
  134. package/dist/ImageEditor-DTFQZ6ON.js +2709 -0
  135. package/dist/ImageEditor-DTFQZ6ON.js.map +1 -0
  136. package/dist/ImageEditor-D_HKfDbx.cjs +60 -0
  137. package/dist/ImageEditor-D_HKfDbx.cjs.map +1 -0
  138. package/dist/Link-BZjolIAF.js +48 -0
  139. package/dist/{Link-BQlvsu9V.js.map → Link-BZjolIAF.js.map} +1 -1
  140. package/dist/Link-CtttVM6w.cjs +2 -0
  141. package/dist/{Link-GZT51mKx.cjs.map → Link-CtttVM6w.cjs.map} +1 -1
  142. package/dist/{List-CKoNx21F.cjs → List-CLUXeaXS.cjs} +2 -2
  143. package/dist/{List-CKoNx21F.cjs.map → List-CLUXeaXS.cjs.map} +1 -1
  144. package/dist/{List-2Y3ktTcF.js → List-DS91CZUt.js} +2 -2
  145. package/dist/{List-2Y3ktTcF.js.map → List-DS91CZUt.js.map} +1 -1
  146. package/dist/ListItem-CguNjf-u.cjs +2 -0
  147. package/dist/{ListItem-DkCYXucd.cjs.map → ListItem-CguNjf-u.cjs.map} +1 -1
  148. package/dist/ListItem-Ezmdk7q-.js +76 -0
  149. package/dist/{ListItem-2Lr5_NRY.js.map → ListItem-Ezmdk7q-.js.map} +1 -1
  150. package/dist/{Loader-5zp2MPm5.cjs → Loader-DNR2_YHm.cjs} +2 -2
  151. package/dist/{Loader-5zp2MPm5.cjs.map → Loader-DNR2_YHm.cjs.map} +1 -1
  152. package/dist/{Loader-Bluu6z0-.js → Loader-D_Foo6Hj.js} +2 -2
  153. package/dist/{Loader-Bluu6z0-.js.map → Loader-D_Foo6Hj.js.map} +1 -1
  154. package/dist/{LocationPicker-CGHXTIml.cjs → LocationPicker-CdO37PKg.cjs} +2 -2
  155. package/dist/{LocationPicker-CGHXTIml.cjs.map → LocationPicker-CdO37PKg.cjs.map} +1 -1
  156. package/dist/{LocationPicker-hULpHBVG.js → LocationPicker-DGbnbTW9.js} +8 -8
  157. package/dist/{LocationPicker-hULpHBVG.js.map → LocationPicker-DGbnbTW9.js.map} +1 -1
  158. package/dist/Modal-1rIBMvKH.js +154 -0
  159. package/dist/Modal-1rIBMvKH.js.map +1 -0
  160. package/dist/Modal-Du-uVpYw.cjs +2 -0
  161. package/dist/Modal-Du-uVpYw.cjs.map +1 -0
  162. package/dist/MultiSelect-BoqunsM9.js +219 -0
  163. package/dist/{MultiSelect-CHLMpim4.js.map → MultiSelect-BoqunsM9.js.map} +1 -1
  164. package/dist/MultiSelect-lAAaD0uL.cjs +2 -0
  165. package/dist/{MultiSelect-BdPvjiTj.cjs.map → MultiSelect-lAAaD0uL.cjs.map} +1 -1
  166. package/dist/{NumberField-C-FZ-uRI.cjs → NumberField-CyUA6eob.cjs} +2 -2
  167. package/dist/{NumberField-C-FZ-uRI.cjs.map → NumberField-CyUA6eob.cjs.map} +1 -1
  168. package/dist/{NumberField-BlpFmetF.js → NumberField-DHFGNQjZ.js} +4 -4
  169. package/dist/{NumberField-BlpFmetF.js.map → NumberField-DHFGNQjZ.js.map} +1 -1
  170. package/dist/OtpField-CIy5OtXI.cjs +2 -0
  171. package/dist/{OtpField-Drjy2wwq.cjs.map → OtpField-CIy5OtXI.cjs.map} +1 -1
  172. package/dist/{OtpField-D4-r7I0A.js → OtpField-pL9nj4AW.js} +61 -61
  173. package/dist/{OtpField-D4-r7I0A.js.map → OtpField-pL9nj4AW.js.map} +1 -1
  174. package/dist/Overlay-CywFQfjm.cjs +2 -0
  175. package/dist/Overlay-CywFQfjm.cjs.map +1 -0
  176. package/dist/Overlay-DiL0ZARH.js +60 -0
  177. package/dist/Overlay-DiL0ZARH.js.map +1 -0
  178. package/dist/{PageError-DyDj1wQZ.js → PageError-C5SO0mVJ.js} +5 -5
  179. package/dist/{PageError-DyDj1wQZ.js.map → PageError-C5SO0mVJ.js.map} +1 -1
  180. package/dist/{PageError-DXUOkE14.cjs → PageError-DbokLmOY.cjs} +2 -2
  181. package/dist/{PageError-DXUOkE14.cjs.map → PageError-DbokLmOY.cjs.map} +1 -1
  182. package/dist/{PageLayout-CoG0AaUs.cjs → PageLayout-B7ZDiNq8.cjs} +2 -2
  183. package/dist/{PageLayout-CoG0AaUs.cjs.map → PageLayout-B7ZDiNq8.cjs.map} +1 -1
  184. package/dist/{PageLayout-nsJa8CbT.js → PageLayout-Du-D6Pd4.js} +5 -5
  185. package/dist/{PageLayout-nsJa8CbT.js.map → PageLayout-Du-D6Pd4.js.map} +1 -1
  186. package/dist/{PageNotFound-BNNwMkwE.js → PageNotFound-DSkoMfed.js} +5 -5
  187. package/dist/{PageNotFound-BNNwMkwE.js.map → PageNotFound-DSkoMfed.js.map} +1 -1
  188. package/dist/{PageNotFound-CGSxT_n9.cjs → PageNotFound-DfNwdtgJ.cjs} +2 -2
  189. package/dist/{PageNotFound-CGSxT_n9.cjs.map → PageNotFound-DfNwdtgJ.cjs.map} +1 -1
  190. package/dist/Pagination-BH8ACaAC.js +139 -0
  191. package/dist/{Pagination-tuWRnGwR.js.map → Pagination-BH8ACaAC.js.map} +1 -1
  192. package/dist/Pagination-DO2Os4an.cjs +2 -0
  193. package/dist/{Pagination-CZtewveA.cjs.map → Pagination-DO2Os4an.cjs.map} +1 -1
  194. package/dist/{PaletteField-CTPl3D43.js → PaletteField-BFb0PQ-S.js} +3 -3
  195. package/dist/{PaletteField-CTPl3D43.js.map → PaletteField-BFb0PQ-S.js.map} +1 -1
  196. package/dist/{PaletteField-PDcu2vUp.cjs → PaletteField-BfvcJvGM.cjs} +2 -2
  197. package/dist/{PaletteField-PDcu2vUp.cjs.map → PaletteField-BfvcJvGM.cjs.map} +1 -1
  198. package/dist/PhoneField-C-wOm7g5.cjs +2 -0
  199. package/dist/{PhoneField-BPYg5ZHW.cjs.map → PhoneField-C-wOm7g5.cjs.map} +1 -1
  200. package/dist/{PhoneField-pdWDCszb.js → PhoneField-DFhGWgbK.js} +106 -106
  201. package/dist/{PhoneField-pdWDCszb.js.map → PhoneField-DFhGWgbK.js.map} +1 -1
  202. package/dist/{Popconfirm-cNpJmkuR.cjs → Popconfirm-_53vtMI0.cjs} +2 -2
  203. package/dist/{Popconfirm-cNpJmkuR.cjs.map → Popconfirm-_53vtMI0.cjs.map} +1 -1
  204. package/dist/{Popconfirm-CMVzLaC_.js → Popconfirm-o5da44ra.js} +4 -4
  205. package/dist/{Popconfirm-CMVzLaC_.js.map → Popconfirm-o5da44ra.js.map} +1 -1
  206. package/dist/{Progress-x12Rkh06.cjs → Progress-BSinoQ8t.cjs} +2 -2
  207. package/dist/{Progress-x12Rkh06.cjs.map → Progress-BSinoQ8t.cjs.map} +1 -1
  208. package/dist/{Progress-BNEFGn-O.js → Progress-CHzNwegP.js} +2 -2
  209. package/dist/{Progress-BNEFGn-O.js.map → Progress-CHzNwegP.js.map} +1 -1
  210. package/dist/{QrCode-CrNJZV_8.js → QrCode-C3hAfNP6.js} +2 -2
  211. package/dist/{QrCode-CrNJZV_8.js.map → QrCode-C3hAfNP6.js.map} +1 -1
  212. package/dist/{QrCode-TcQQE0h7.cjs → QrCode-tNNnsbHM.cjs} +2 -2
  213. package/dist/{QrCode-TcQQE0h7.cjs.map → QrCode-tNNnsbHM.cjs.map} +1 -1
  214. package/dist/{RemoveDialog-ARFp1UJM.js → RemoveDialog-CXy-PY-G.js} +6 -6
  215. package/dist/{RemoveDialog-ARFp1UJM.js.map → RemoveDialog-CXy-PY-G.js.map} +1 -1
  216. package/dist/{RemoveDialog-IWOAQFNK.cjs → RemoveDialog-Hi_gV-8A.cjs} +2 -2
  217. package/dist/{RemoveDialog-IWOAQFNK.cjs.map → RemoveDialog-Hi_gV-8A.cjs.map} +1 -1
  218. package/dist/RichTextEditor-BhVE1q4U.cjs +2 -0
  219. package/dist/RichTextEditor-BhVE1q4U.cjs.map +1 -0
  220. package/dist/RichTextEditor-DQz9jGD3.js +1011 -0
  221. package/dist/RichTextEditor-DQz9jGD3.js.map +1 -0
  222. package/dist/{RootLayout-CZ2GQ8XA.js → RootLayout-CjT5uHlt.js} +21 -21
  223. package/dist/RootLayout-CjT5uHlt.js.map +1 -0
  224. package/dist/{RootLayout-DStUP263.cjs → RootLayout-iSGY4MsS.cjs} +2 -2
  225. package/dist/RootLayout-iSGY4MsS.cjs.map +1 -0
  226. package/dist/Select-DVoL547R.cjs +2 -0
  227. package/dist/{Select-C2DIfuoB.cjs.map → Select-DVoL547R.cjs.map} +1 -1
  228. package/dist/{Select-KGsA8PbI.js → Select-DuLDLnnb.js} +47 -47
  229. package/dist/{Select-KGsA8PbI.js.map → Select-DuLDLnnb.js.map} +1 -1
  230. package/dist/Sidebar-DRQo4zAF.cjs +2 -0
  231. package/dist/{Sidebar-wK1_xaY_.cjs.map → Sidebar-DRQo4zAF.cjs.map} +1 -1
  232. package/dist/{Sidebar-_pcwxdd8.js → Sidebar-DvQmuBNK.js} +59 -59
  233. package/dist/{Sidebar-_pcwxdd8.js.map → Sidebar-DvQmuBNK.js.map} +1 -1
  234. package/dist/{Slider-Cpc5_dPl.js → Slider-D-QjclQJ.js} +2 -2
  235. package/dist/{Slider-Cpc5_dPl.js.map → Slider-D-QjclQJ.js.map} +1 -1
  236. package/dist/{Slider-CXAz9SUY.cjs → Slider-DxnCQRSH.cjs} +2 -2
  237. package/dist/{Slider-CXAz9SUY.cjs.map → Slider-DxnCQRSH.cjs.map} +1 -1
  238. package/dist/{SpeedDial-BT_boD06.cjs → SpeedDial-37OMwj9C.cjs} +2 -2
  239. package/dist/{SpeedDial-BT_boD06.cjs.map → SpeedDial-37OMwj9C.cjs.map} +1 -1
  240. package/dist/{SpeedDial-SMMfes9f.js → SpeedDial-BBQ9y6lm.js} +3 -3
  241. package/dist/{SpeedDial-SMMfes9f.js.map → SpeedDial-BBQ9y6lm.js.map} +1 -1
  242. package/dist/Stepper-CU5Y0kfj.js +168 -0
  243. package/dist/{Stepper-CR0Mlkq7.js.map → Stepper-CU5Y0kfj.js.map} +1 -1
  244. package/dist/Stepper-WqkfGPnQ.cjs +2 -0
  245. package/dist/{Stepper-BmA_DjTS.cjs.map → Stepper-WqkfGPnQ.cjs.map} +1 -1
  246. package/dist/{SwatchPicker-0gnOvv7U.cjs → SwatchPicker-DCjE0T80.cjs} +2 -2
  247. package/dist/{SwatchPicker-0gnOvv7U.cjs.map → SwatchPicker-DCjE0T80.cjs.map} +1 -1
  248. package/dist/{SwatchPicker-BZHRELA-.js → SwatchPicker-DS4WY2eM.js} +2 -2
  249. package/dist/{SwatchPicker-BZHRELA-.js.map → SwatchPicker-DS4WY2eM.js.map} +1 -1
  250. package/dist/{Table-D-F68lcm.js → Table-BECUUZtf.js} +346 -346
  251. package/dist/Table-BECUUZtf.js.map +1 -0
  252. package/dist/Table-BnlvrRMr.cjs +2 -0
  253. package/dist/Table-BnlvrRMr.cjs.map +1 -0
  254. package/dist/Tabs-BXAHddi7.js +193 -0
  255. package/dist/{Tabs-DP0aZ5TB.js.map → Tabs-BXAHddi7.js.map} +1 -1
  256. package/dist/Tabs-DiL1vNW3.cjs +2 -0
  257. package/dist/{Tabs-Cgp6D1WP.cjs.map → Tabs-DiL1vNW3.cjs.map} +1 -1
  258. package/dist/{TagsField-9nKu6ZW4.cjs → TagsField-BsV_6dff.cjs} +2 -2
  259. package/dist/{TagsField-9nKu6ZW4.cjs.map → TagsField-BsV_6dff.cjs.map} +1 -1
  260. package/dist/{TagsField-CcY9MTMw.js → TagsField-C1SgykAj.js} +5 -5
  261. package/dist/{TagsField-CcY9MTMw.js.map → TagsField-C1SgykAj.js.map} +1 -1
  262. package/dist/{TextField-C5MgCQIV.cjs → TextField-DUv689u2.cjs} +2 -2
  263. package/dist/{TextField-C5MgCQIV.cjs.map → TextField-DUv689u2.cjs.map} +1 -1
  264. package/dist/{TextField-0WvJsHhA.js → TextField-oZI7thoU.js} +4 -4
  265. package/dist/{TextField-0WvJsHhA.js.map → TextField-oZI7thoU.js.map} +1 -1
  266. package/dist/{ThemeToggle-DmCePuTy.js → ThemeToggle-5uHCUsX7.js} +4 -4
  267. package/dist/{ThemeToggle-DmCePuTy.js.map → ThemeToggle-5uHCUsX7.js.map} +1 -1
  268. package/dist/{ThemeToggle-BvcCxRpF.cjs → ThemeToggle-xn3roH0u.cjs} +2 -2
  269. package/dist/{ThemeToggle-BvcCxRpF.cjs.map → ThemeToggle-xn3roH0u.cjs.map} +1 -1
  270. package/dist/TimeColumns-By23LHZw.cjs +2 -0
  271. package/dist/{TimeColumns-Q-vsHFZU.cjs.map → TimeColumns-By23LHZw.cjs.map} +1 -1
  272. package/dist/TimeColumns-lO33mhX7.js +147 -0
  273. package/dist/{TimeColumns-WJRHQuFv.js.map → TimeColumns-lO33mhX7.js.map} +1 -1
  274. package/dist/{TimePicker-CvbQFzBf.cjs → TimePicker-BHFNH8LR.cjs} +2 -2
  275. package/dist/{TimePicker-CvbQFzBf.cjs.map → TimePicker-BHFNH8LR.cjs.map} +1 -1
  276. package/dist/{TimePicker-DJDuSxAg.js → TimePicker-Dl5p833O.js} +7 -7
  277. package/dist/{TimePicker-DJDuSxAg.js.map → TimePicker-Dl5p833O.js.map} +1 -1
  278. package/dist/Timeline-DOojNvLG.cjs +2 -0
  279. package/dist/Timeline-DOojNvLG.cjs.map +1 -0
  280. package/dist/Timeline-Dg03dwTN.js +87 -0
  281. package/dist/Timeline-Dg03dwTN.js.map +1 -0
  282. package/dist/Toaster-BPBFZiTr.js +64 -0
  283. package/dist/Toaster-BPBFZiTr.js.map +1 -0
  284. package/dist/Toaster-D4T89N1S.cjs +2 -0
  285. package/dist/Toaster-D4T89N1S.cjs.map +1 -0
  286. package/dist/ToggleButtonGroup-CGNRLxjg.cjs +2 -0
  287. package/dist/{ToggleButtonGroup-Ci_DFvdt.cjs.map → ToggleButtonGroup-CGNRLxjg.cjs.map} +1 -1
  288. package/dist/{ToggleButtonGroup-Mdskkjdh.js → ToggleButtonGroup-K6ZcrTZT.js} +37 -37
  289. package/dist/{ToggleButtonGroup-Mdskkjdh.js.map → ToggleButtonGroup-K6ZcrTZT.js.map} +1 -1
  290. package/dist/{TranslatedFields-DKXznBtD.js → TranslatedFields-Clsr84XC.js} +13 -13
  291. package/dist/{TranslatedFields-DKXznBtD.js.map → TranslatedFields-Clsr84XC.js.map} +1 -1
  292. package/dist/{TranslatedFields-CuK5KKzE.cjs → TranslatedFields-LdeJeHEp.cjs} +2 -2
  293. package/dist/{TranslatedFields-CuK5KKzE.cjs.map → TranslatedFields-LdeJeHEp.cjs.map} +1 -1
  294. package/dist/{UserCard-DbudGMvG.cjs → UserCard-CQOiWppq.cjs} +2 -2
  295. package/dist/{UserCard-DbudGMvG.cjs.map → UserCard-CQOiWppq.cjs.map} +1 -1
  296. package/dist/{UserCard-UG_Cwe-Y.js → UserCard-Cr75RwZb.js} +5 -5
  297. package/dist/{UserCard-UG_Cwe-Y.js.map → UserCard-Cr75RwZb.js.map} +1 -1
  298. package/dist/app/AdminRoot.d.cts +11 -3
  299. package/dist/app/AdminRoot.d.ts +11 -3
  300. package/dist/chunks/icons/{25-knEB8mSp.js → 25-BMMPtr_E.js} +4 -5
  301. package/dist/chunks/icons/{25-Dho_3EHD.cjs → 25-uATZNfXE.cjs} +1 -1
  302. package/dist/chunks/icons/{2b-CQJdcF1h.js → 2b-Brkug4c-.js} +10 -11
  303. package/dist/chunks/icons/{2b-C2_97u16.cjs → 2b-CIVRGp1R.cjs} +1 -1
  304. package/dist/chunks/icons/57-BLoIUlhF.js +27 -0
  305. package/dist/chunks/icons/57-D4zLdDZ1.cjs +1 -0
  306. package/dist/chunks/icons/{75-DqLkMUyj.cjs → 75-C2eJ2Tvr.cjs} +1 -1
  307. package/dist/chunks/icons/{75-D5RQw6IJ.js → 75-D16WojvG.js} +6 -7
  308. package/dist/chunks/icons/{7c-DpnA_JOJ.js → 7c-0j5Sno5_.js} +6 -7
  309. package/dist/chunks/icons/{7c-DEaFwltT.cjs → 7c-LUfAyp72.cjs} +1 -1
  310. package/dist/chunks/icons/8a-BJ_LOjmW.js +26 -0
  311. package/dist/chunks/icons/8a-CYkhOibI.cjs +1 -0
  312. package/dist/chunks/icons/97-Bx7FkkGJ.js +12 -0
  313. package/dist/chunks/icons/97-D7pUHrOX.cjs +1 -0
  314. package/dist/chunks/icons/{b7-BtHkI92Y.js → b7-DmmkevXf.js} +17 -18
  315. package/dist/chunks/icons/{b7-B-dB5jrV.cjs → b7-rI1GpsxW.cjs} +1 -1
  316. package/dist/chunks/icons/b8-De0yKEKv.js +28 -0
  317. package/dist/chunks/icons/b8-eR814BVJ.cjs +1 -0
  318. package/dist/chunks/icons/{b9-Bw942fE3.js → b9-CJO6ZdSw.js} +10 -11
  319. package/dist/chunks/icons/{b9-Be-J4RIp.cjs → b9-DZdWz9qg.cjs} +1 -1
  320. package/dist/chunks/icons/d5-BAPeb6B0.cjs +1 -0
  321. package/dist/chunks/icons/d5-BJJanOLe.js +21 -0
  322. package/dist/chunks/icons/d8--vRkIVal.js +19 -0
  323. package/dist/chunks/icons/d8-BfMys92X.cjs +1 -0
  324. package/dist/chunks/icons/dd-CARhkHmU.js +21 -0
  325. package/dist/chunks/icons/dd-D61yllMP.cjs +1 -0
  326. package/dist/components/Accordion/index.cjs +1 -1
  327. package/dist/components/Accordion/index.js +1 -1
  328. package/dist/components/Alert/index.cjs +1 -1
  329. package/dist/components/Alert/index.js +1 -1
  330. package/dist/components/AuthLayout/index.cjs +1 -1
  331. package/dist/components/AuthLayout/index.js +1 -1
  332. package/dist/components/Avatar/index.cjs +1 -1
  333. package/dist/components/Avatar/index.js +2 -2
  334. package/dist/components/Breadcrumbs/index.cjs +1 -1
  335. package/dist/components/Breadcrumbs/index.js +1 -1
  336. package/dist/components/Button/index.cjs +1 -1
  337. package/dist/components/Button/index.js +1 -1
  338. package/dist/components/Card/index.cjs +1 -1
  339. package/dist/components/Card/index.js +1 -1
  340. package/dist/components/Chip/index.cjs +1 -1
  341. package/dist/components/Chip/index.js +1 -1
  342. package/dist/components/ChoiceCard/index.cjs +1 -1
  343. package/dist/components/ChoiceCard/index.js +1 -1
  344. package/dist/components/CodeBlock/index.cjs +1 -1
  345. package/dist/components/CodeBlock/index.js +1 -1
  346. package/dist/components/ColorPicker/index.cjs +1 -1
  347. package/dist/components/ColorPicker/index.js +1 -1
  348. package/dist/components/ColorRamp/index.cjs +1 -1
  349. package/dist/components/ColorRamp/index.js +1 -1
  350. package/dist/components/CopyButton/index.cjs +1 -1
  351. package/dist/components/CopyButton/index.js +1 -1
  352. package/dist/components/DashedButton/index.cjs +1 -1
  353. package/dist/components/DashedButton/index.js +1 -1
  354. package/dist/components/DatePicker/index.cjs +1 -1
  355. package/dist/components/DatePicker/index.js +1 -1
  356. package/dist/components/DateTimePicker/index.cjs +1 -1
  357. package/dist/components/DateTimePicker/index.js +1 -1
  358. package/dist/components/DescriptionList/index.cjs +1 -1
  359. package/dist/components/DescriptionList/index.js +1 -1
  360. package/dist/components/Dropdown/index.cjs +1 -1
  361. package/dist/components/Dropdown/index.js +1 -1
  362. package/dist/components/EmptyState/index.cjs +1 -1
  363. package/dist/components/EmptyState/index.js +1 -1
  364. package/dist/components/ErrorState/ErrorBoundary.d.cts +1 -1
  365. package/dist/components/ErrorState/ErrorBoundary.d.ts +1 -1
  366. package/dist/components/ErrorState/index.cjs +1 -1
  367. package/dist/components/ErrorState/index.js +2 -2
  368. package/dist/components/FileCard/index.cjs +1 -1
  369. package/dist/components/FileCard/index.js +1 -1
  370. package/dist/components/FileUploader/FileUploader.d.cts +33 -5
  371. package/dist/components/FileUploader/FileUploader.d.ts +33 -5
  372. package/dist/components/FileUploader/FileUploaderEditDialog.d.cts +8 -18
  373. package/dist/components/FileUploader/FileUploaderEditDialog.d.ts +8 -18
  374. package/dist/components/FileUploader/index.cjs +1 -1
  375. package/dist/components/FileUploader/index.js +1 -1
  376. package/dist/components/Flag/index.cjs +1 -1
  377. package/dist/components/Flag/index.js +1 -1
  378. package/dist/components/FullscreenToggle/index.cjs +1 -1
  379. package/dist/components/FullscreenToggle/index.js +1 -1
  380. package/dist/components/Icon/index.cjs +1 -1
  381. package/dist/components/Icon/index.js +1 -1
  382. package/dist/components/IconButton/index.cjs +1 -1
  383. package/dist/components/IconButton/index.js +1 -1
  384. package/dist/components/ImageEditor/CropShapeMenu.d.cts +17 -0
  385. package/dist/components/ImageEditor/CropShapeMenu.d.ts +17 -0
  386. package/dist/components/ImageEditor/EditorStage.d.cts +27 -0
  387. package/dist/components/ImageEditor/EditorStage.d.ts +27 -0
  388. package/dist/components/ImageEditor/FilterStrip.d.cts +14 -0
  389. package/dist/components/ImageEditor/FilterStrip.d.ts +14 -0
  390. package/dist/components/ImageEditor/ImageEditor.d.cts +30 -0
  391. package/dist/components/ImageEditor/ImageEditor.d.ts +30 -0
  392. package/dist/components/ImageEditor/ResizePanel.d.cts +19 -0
  393. package/dist/components/ImageEditor/ResizePanel.d.ts +19 -0
  394. package/dist/components/ImageEditor/RulerSlider.d.cts +37 -0
  395. package/dist/components/ImageEditor/RulerSlider.d.ts +37 -0
  396. package/dist/components/ImageEditor/core/affine.d.cts +11 -0
  397. package/dist/components/ImageEditor/core/affine.d.ts +11 -0
  398. package/dist/components/ImageEditor/core/editor.d.cts +69 -0
  399. package/dist/components/ImageEditor/core/editor.d.ts +69 -0
  400. package/dist/components/ImageEditor/core/geometry.d.cts +112 -0
  401. package/dist/components/ImageEditor/core/geometry.d.ts +112 -0
  402. package/dist/components/ImageEditor/core/load.d.cts +26 -0
  403. package/dist/components/ImageEditor/core/load.d.ts +26 -0
  404. package/dist/components/ImageEditor/core/matrix.d.cts +55 -0
  405. package/dist/components/ImageEditor/core/matrix.d.ts +55 -0
  406. package/dist/components/ImageEditor/core/pixels.d.cts +24 -0
  407. package/dist/components/ImageEditor/core/pixels.d.ts +24 -0
  408. package/dist/components/ImageEditor/core/redact.d.cts +37 -0
  409. package/dist/components/ImageEditor/core/redact.d.ts +37 -0
  410. package/dist/components/ImageEditor/core/render.d.cts +19 -0
  411. package/dist/components/ImageEditor/core/render.d.ts +19 -0
  412. package/dist/components/ImageEditor/core/scene.d.cts +47 -0
  413. package/dist/components/ImageEditor/core/scene.d.ts +47 -0
  414. package/dist/components/ImageEditor/core/spring.d.cts +17 -0
  415. package/dist/components/ImageEditor/core/spring.d.ts +17 -0
  416. package/dist/components/ImageEditor/core/types.d.cts +104 -0
  417. package/dist/components/ImageEditor/core/types.d.ts +104 -0
  418. package/dist/components/ImageEditor/core/webgl.d.cts +55 -0
  419. package/dist/components/ImageEditor/core/webgl.d.ts +55 -0
  420. package/dist/components/ImageEditor/index.cjs +2 -0
  421. package/dist/components/ImageEditor/index.cjs.map +1 -0
  422. package/dist/components/ImageEditor/index.d.cts +6 -0
  423. package/dist/components/ImageEditor/index.d.ts +6 -0
  424. package/dist/components/ImageEditor/index.js +9 -0
  425. package/dist/components/ImageEditor/index.js.map +1 -0
  426. package/dist/components/Link/index.cjs +1 -1
  427. package/dist/components/Link/index.js +1 -1
  428. package/dist/components/List/index.cjs +1 -1
  429. package/dist/components/List/index.js +2 -2
  430. package/dist/components/Loader/index.cjs +1 -1
  431. package/dist/components/Loader/index.js +1 -1
  432. package/dist/components/LocationPicker/index.cjs +1 -1
  433. package/dist/components/LocationPicker/index.js +1 -1
  434. package/dist/components/Modal/index.cjs +1 -1
  435. package/dist/components/Modal/index.js +1 -1
  436. package/dist/components/MultiSelect/index.cjs +1 -1
  437. package/dist/components/MultiSelect/index.js +1 -1
  438. package/dist/components/NumberField/index.cjs +1 -1
  439. package/dist/components/NumberField/index.js +1 -1
  440. package/dist/components/OtpField/index.cjs +1 -1
  441. package/dist/components/OtpField/index.js +1 -1
  442. package/dist/components/PageError/index.cjs +1 -1
  443. package/dist/components/PageError/index.js +1 -1
  444. package/dist/components/PageLayout/index.cjs +1 -1
  445. package/dist/components/PageLayout/index.js +1 -1
  446. package/dist/components/PageNotFound/index.cjs +1 -1
  447. package/dist/components/PageNotFound/index.js +1 -1
  448. package/dist/components/Pagination/index.cjs +1 -1
  449. package/dist/components/Pagination/index.js +1 -1
  450. package/dist/components/PaletteField/index.cjs +1 -1
  451. package/dist/components/PaletteField/index.js +1 -1
  452. package/dist/components/PhoneField/index.cjs +1 -1
  453. package/dist/components/PhoneField/index.js +1 -1
  454. package/dist/components/Popconfirm/index.cjs +1 -1
  455. package/dist/components/Popconfirm/index.js +1 -1
  456. package/dist/components/Progress/index.cjs +1 -1
  457. package/dist/components/Progress/index.js +1 -1
  458. package/dist/components/QrCode/index.cjs +1 -1
  459. package/dist/components/QrCode/index.js +1 -1
  460. package/dist/components/RemoveDialog/index.cjs +1 -1
  461. package/dist/components/RemoveDialog/index.js +1 -1
  462. package/dist/components/RichTextEditor/RichTextEditor.d.cts +3 -2
  463. package/dist/components/RichTextEditor/RichTextEditor.d.ts +3 -2
  464. package/dist/components/RichTextEditor/index.cjs +1 -1
  465. package/dist/components/RichTextEditor/index.js +1 -1
  466. package/dist/components/RichTextEditor/nodes/ImageNode.d.cts +8 -5
  467. package/dist/components/RichTextEditor/nodes/ImageNode.d.ts +8 -5
  468. package/dist/components/RichTextEditor/nodes/VideoNode.d.cts +4 -4
  469. package/dist/components/RichTextEditor/nodes/VideoNode.d.ts +4 -4
  470. package/dist/components/RootLayout/RootLayout.d.cts +3 -2
  471. package/dist/components/RootLayout/RootLayout.d.ts +3 -2
  472. package/dist/components/RootLayout/index.cjs +1 -1
  473. package/dist/components/RootLayout/index.js +1 -1
  474. package/dist/components/Select/index.cjs +1 -1
  475. package/dist/components/Select/index.js +1 -1
  476. package/dist/components/Sidebar/index.cjs +1 -1
  477. package/dist/components/Sidebar/index.js +1 -1
  478. package/dist/components/Slider/index.cjs +1 -1
  479. package/dist/components/Slider/index.js +1 -1
  480. package/dist/components/SpeedDial/index.cjs +1 -1
  481. package/dist/components/SpeedDial/index.js +1 -1
  482. package/dist/components/Stepper/index.cjs +1 -1
  483. package/dist/components/Stepper/index.js +1 -1
  484. package/dist/components/SwatchPicker/index.cjs +1 -1
  485. package/dist/components/SwatchPicker/index.js +1 -1
  486. package/dist/components/Table/index.cjs +1 -1
  487. package/dist/components/Table/index.js +1 -1
  488. package/dist/components/Tabs/index.cjs +1 -1
  489. package/dist/components/Tabs/index.js +1 -1
  490. package/dist/components/TagsField/index.cjs +1 -1
  491. package/dist/components/TagsField/index.js +1 -1
  492. package/dist/components/TextField/index.cjs +1 -1
  493. package/dist/components/TextField/index.js +1 -1
  494. package/dist/components/ThemeToggle/index.cjs +1 -1
  495. package/dist/components/ThemeToggle/index.js +1 -1
  496. package/dist/components/TimePicker/index.cjs +1 -1
  497. package/dist/components/TimePicker/index.js +1 -1
  498. package/dist/components/Timeline/Timeline.d.cts +16 -4
  499. package/dist/components/Timeline/Timeline.d.ts +16 -4
  500. package/dist/components/Timeline/TimelineItem.d.cts +12 -6
  501. package/dist/components/Timeline/TimelineItem.d.ts +12 -6
  502. package/dist/components/Timeline/index.cjs +1 -1
  503. package/dist/components/Timeline/index.d.cts +1 -1
  504. package/dist/components/Timeline/index.d.ts +1 -1
  505. package/dist/components/Timeline/index.js +1 -1
  506. package/dist/components/Timeline/timelineContext.d.cts +3 -2
  507. package/dist/components/Timeline/timelineContext.d.ts +3 -2
  508. package/dist/components/Toast/Toaster.d.cts +10 -4
  509. package/dist/components/Toast/Toaster.d.ts +10 -4
  510. package/dist/components/Toast/index.cjs +1 -1
  511. package/dist/components/Toast/index.js +1 -1
  512. package/dist/components/ToggleButton/index.cjs +1 -1
  513. package/dist/components/ToggleButton/index.js +1 -1
  514. package/dist/components/TranslatedFields/index.cjs +1 -1
  515. package/dist/components/TranslatedFields/index.js +1 -1
  516. package/dist/components/UserCard/index.cjs +1 -1
  517. package/dist/components/UserCard/index.js +1 -1
  518. package/dist/components/index.d.cts +1 -0
  519. package/dist/components/index.d.ts +1 -0
  520. package/dist/entries/app.cjs +1 -1
  521. package/dist/entries/app.js +1 -1
  522. package/dist/entries/components.cjs +1 -1
  523. package/dist/entries/components.js +164 -159
  524. package/dist/entries/components.js.map +1 -1
  525. package/dist/entries/i18n.cjs +1 -1
  526. package/dist/entries/i18n.js +2 -2
  527. package/dist/entries/icons.cjs +1 -1
  528. package/dist/entries/icons.js +1 -1
  529. package/dist/entries/theme.cjs +1 -1
  530. package/dist/entries/theme.d.cts +2 -2
  531. package/dist/entries/theme.d.ts +2 -2
  532. package/dist/entries/theme.js +14 -13
  533. package/dist/i18n/messages.d.cts +61 -4
  534. package/dist/i18n/messages.d.ts +61 -4
  535. package/dist/icons/names.d.cts +3 -3
  536. package/dist/icons/names.d.ts +3 -3
  537. package/dist/index.cjs +1 -1
  538. package/dist/index.css +1 -1
  539. package/dist/index.js +246 -240
  540. package/dist/index.js.map +1 -1
  541. package/dist/{messages-BiRLMy1E.js → messages-BZYBZ3GR.js} +101 -44
  542. package/dist/messages-BZYBZ3GR.js.map +1 -0
  543. package/dist/{messages-C_fRRCg6.cjs → messages-CTHjpVJq.cjs} +9 -9
  544. package/dist/messages-CTHjpVJq.cjs.map +1 -0
  545. package/dist/theme/ConfigProvider.d.cts +20 -0
  546. package/dist/theme/ConfigProvider.d.ts +20 -0
  547. package/dist/theme/index.d.cts +2 -2
  548. package/dist/theme/index.d.ts +2 -2
  549. package/dist/{useHomeTo-DQj9tVZI.js → useHomeTo-Biyc-Un8.js} +2 -2
  550. package/dist/{useHomeTo-DQj9tVZI.js.map → useHomeTo-Biyc-Un8.js.map} +1 -1
  551. package/dist/{useHomeTo-BaM7kBDh.cjs → useHomeTo-D7wcH6aw.cjs} +2 -2
  552. package/dist/{useHomeTo-BaM7kBDh.cjs.map → useHomeTo-D7wcH6aw.cjs.map} +1 -1
  553. package/dist/{useOptionMenu-BKC1y6oj.cjs → useOptionMenu-B40OOVsO.cjs} +2 -2
  554. package/dist/{useOptionMenu-BKC1y6oj.cjs.map → useOptionMenu-B40OOVsO.cjs.map} +1 -1
  555. package/dist/{useOptionMenu-Dom1-bqm.js → useOptionMenu-BTt8t9SM.js} +6 -6
  556. package/dist/{useOptionMenu-Dom1-bqm.js.map → useOptionMenu-BTt8t9SM.js.map} +1 -1
  557. package/package.json +1 -6
  558. package/dist/AdminRoot-DufZpgdm.js +0 -100
  559. package/dist/AdminRoot-DufZpgdm.js.map +0 -1
  560. package/dist/AdminRoot-DwJ5jdXr.cjs +0 -2
  561. package/dist/AdminRoot-DwJ5jdXr.cjs.map +0 -1
  562. package/dist/Alert-C8BBxL_7.cjs +0 -2
  563. package/dist/Alert-D6oBxBdP.js +0 -70
  564. package/dist/Breadcrumbs-B-olYVdw.cjs +0 -2
  565. package/dist/Breadcrumbs-cXET6OM5.js +0 -34
  566. package/dist/Button-0ZgdNjX-.js +0 -72
  567. package/dist/Button-CwrDiZek.cjs +0 -2
  568. package/dist/Chip-BkU3yx6G.cjs +0 -2
  569. package/dist/Chip-CzJjbaKx.js +0 -92
  570. package/dist/ChoiceCardGroup-C7Eengyd.cjs +0 -2
  571. package/dist/ChoiceCardGroup-q0yN-TeQ.js +0 -180
  572. package/dist/CodeBlock-BHcvQrs9.js +0 -96
  573. package/dist/CodeBlock-DRBQ_S5t.cjs +0 -2
  574. package/dist/ConfigProvider-BaiTKZKC.cjs +0 -2
  575. package/dist/ConfigProvider-BaiTKZKC.cjs.map +0 -1
  576. package/dist/ConfigProvider-D61cpCz-.js.map +0 -1
  577. package/dist/DashedButton-Dw7xHgIp.cjs +0 -2
  578. package/dist/DashedButton-csz6Jt_K.js +0 -58
  579. package/dist/DatePicker.module-BDtTsg8M.cjs +0 -2
  580. package/dist/DatePicker.module-CMMQyEhG.js +0 -138
  581. package/dist/DescriptionList-CvPDn-kh.cjs +0 -2
  582. package/dist/Dropdown-CMjURWYd.cjs +0 -2
  583. package/dist/Dropdown-CMjURWYd.cjs.map +0 -1
  584. package/dist/Dropdown-CnDBlB02.js +0 -146
  585. package/dist/Dropdown-CnDBlB02.js.map +0 -1
  586. package/dist/FileCard-DEc10T2G.cjs +0 -2
  587. package/dist/FileUploader-D58_6kDA.cjs +0 -2
  588. package/dist/FileUploader-D58_6kDA.cjs.map +0 -1
  589. package/dist/FileUploader-DfYOBFa4.js +0 -707
  590. package/dist/FileUploader-DfYOBFa4.js.map +0 -1
  591. package/dist/Icon-B6lz-V0A.cjs +0 -2
  592. package/dist/Icon-B6lz-V0A.cjs.map +0 -1
  593. package/dist/Icon-D5TxgfCc.js +0 -5404
  594. package/dist/Icon-D5TxgfCc.js.map +0 -1
  595. package/dist/IconButton-CxSXEYce.cjs +0 -2
  596. package/dist/IconButton-D9MCwRK_.js +0 -68
  597. package/dist/Link-BQlvsu9V.js +0 -48
  598. package/dist/Link-GZT51mKx.cjs +0 -2
  599. package/dist/ListItem-2Lr5_NRY.js +0 -76
  600. package/dist/ListItem-DkCYXucd.cjs +0 -2
  601. package/dist/Modal-C6Zgwz_6.js +0 -206
  602. package/dist/Modal-C6Zgwz_6.js.map +0 -1
  603. package/dist/Modal-D9_OG53G.cjs +0 -2
  604. package/dist/Modal-D9_OG53G.cjs.map +0 -1
  605. package/dist/MultiSelect-BdPvjiTj.cjs +0 -2
  606. package/dist/MultiSelect-CHLMpim4.js +0 -219
  607. package/dist/OtpField-Drjy2wwq.cjs +0 -2
  608. package/dist/Pagination-CZtewveA.cjs +0 -2
  609. package/dist/Pagination-tuWRnGwR.js +0 -139
  610. package/dist/PhoneField-BPYg5ZHW.cjs +0 -2
  611. package/dist/RichTextEditor-C9jT2cLl.cjs +0 -2
  612. package/dist/RichTextEditor-C9jT2cLl.cjs.map +0 -1
  613. package/dist/RichTextEditor-DrwJUEYz.js +0 -916
  614. package/dist/RichTextEditor-DrwJUEYz.js.map +0 -1
  615. package/dist/RootLayout-CZ2GQ8XA.js.map +0 -1
  616. package/dist/RootLayout-DStUP263.cjs.map +0 -1
  617. package/dist/Select-C2DIfuoB.cjs +0 -2
  618. package/dist/Sidebar-wK1_xaY_.cjs +0 -2
  619. package/dist/Stepper-BmA_DjTS.cjs +0 -2
  620. package/dist/Stepper-CR0Mlkq7.js +0 -168
  621. package/dist/Table-BkjY1Lwt.cjs +0 -2
  622. package/dist/Table-BkjY1Lwt.cjs.map +0 -1
  623. package/dist/Table-D-F68lcm.js.map +0 -1
  624. package/dist/Tabs-Cgp6D1WP.cjs +0 -2
  625. package/dist/Tabs-DP0aZ5TB.js +0 -193
  626. package/dist/TimeColumns-Q-vsHFZU.cjs +0 -2
  627. package/dist/TimeColumns-WJRHQuFv.js +0 -147
  628. package/dist/Timeline-Cb1krSlo.js +0 -70
  629. package/dist/Timeline-Cb1krSlo.js.map +0 -1
  630. package/dist/Timeline-CmluHBIT.cjs +0 -2
  631. package/dist/Timeline-CmluHBIT.cjs.map +0 -1
  632. package/dist/Toaster-Bb5YEN5j.js +0 -63
  633. package/dist/Toaster-Bb5YEN5j.js.map +0 -1
  634. package/dist/Toaster-Dy1AonLa.cjs +0 -2
  635. package/dist/Toaster-Dy1AonLa.cjs.map +0 -1
  636. package/dist/ToggleButtonGroup-Ci_DFvdt.cjs +0 -2
  637. package/dist/chunks/icons/57-Bxh2lSz-.cjs +0 -1
  638. package/dist/chunks/icons/57-CkmrDM9A.js +0 -28
  639. package/dist/chunks/icons/8a-CThAqelS.js +0 -27
  640. package/dist/chunks/icons/8a-DRBAtpxY.cjs +0 -1
  641. package/dist/chunks/icons/97-J9NBhX2o.js +0 -14
  642. package/dist/chunks/icons/97-r2YXIQ_T.cjs +0 -1
  643. package/dist/chunks/icons/b8-CyIivk3C.cjs +0 -1
  644. package/dist/chunks/icons/b8-DcK0w8WM.js +0 -29
  645. package/dist/chunks/icons/d5-3fWtNlXW.js +0 -20
  646. package/dist/chunks/icons/d5-CoG_Hfw9.cjs +0 -1
  647. package/dist/chunks/icons/d8-DsebfeMy.cjs +0 -1
  648. package/dist/chunks/icons/d8-DtOvDDrr.js +0 -20
  649. package/dist/chunks/icons/dd-BXVES9Ib.js +0 -22
  650. package/dist/chunks/icons/dd-beaqCKss.cjs +0 -1
  651. package/dist/messages-BiRLMy1E.js.map +0 -1
  652. package/dist/messages-C_fRRCg6.cjs.map +0 -1
@@ -0,0 +1,2709 @@
1
+ import { jsxs as B, jsx as w, Fragment as he } from "react/jsx-runtime";
2
+ import { forwardRef as Ke, useRef as O, useState as Q, useEffect as q, useLayoutEffect as ue, useMemo as mn, useImperativeHandle as fn, useSyncExternalStore as pn, useCallback as gn } from "react";
3
+ import { clsx as K } from "clsx";
4
+ import { B as Me } from "./Button-5LQtDA9d.js";
5
+ import { b as et } from "./Icon-B7DJn8Tw.js";
6
+ import { I as Et } from "./IconButton-EaExCXRq.js";
7
+ import { L as _n } from "./Loader-D_Foo6Hj.js";
8
+ import { O as bn } from "./Overlay-DiL0ZARH.js";
9
+ import { g as wn, a as re } from "./ConfigProvider-CYgmMH4j.js";
10
+ import { D as vn } from "./Dropdown-D-D_Z1Jo.js";
11
+ import { L as Ue } from "./ListItem-Ezmdk7q-.js";
12
+ const Se = [
13
+ 1,
14
+ 0,
15
+ 0,
16
+ 0,
17
+ 0,
18
+ 0,
19
+ 1,
20
+ 0,
21
+ 0,
22
+ 0,
23
+ 0,
24
+ 0,
25
+ 1,
26
+ 0,
27
+ 0,
28
+ 0,
29
+ 0,
30
+ 0,
31
+ 1,
32
+ 0
33
+ ], de = 0.2126, me = 0.7152, fe = 0.0722;
34
+ function xn(t, e) {
35
+ const n = new Array(20);
36
+ for (let i = 0; i < 4; i++)
37
+ for (let o = 0; o < 5; o++) {
38
+ let r = 0;
39
+ for (let a = 0; a < 4; a++) r += t[i * 5 + a] * e[a * 5 + o];
40
+ o === 4 && (r += t[i * 5 + 4]), n[i * 5 + o] = r;
41
+ }
42
+ return n;
43
+ }
44
+ function ot(...t) {
45
+ return t.reduce((e, n) => xn(n, e), Se);
46
+ }
47
+ function Mn(t) {
48
+ return !t || t.every((e, n) => Math.abs(e - Se[n]) < 1e-6);
49
+ }
50
+ const He = (t) => [
51
+ 1,
52
+ 0,
53
+ 0,
54
+ 0,
55
+ t,
56
+ 0,
57
+ 1,
58
+ 0,
59
+ 0,
60
+ t,
61
+ 0,
62
+ 0,
63
+ 1,
64
+ 0,
65
+ t,
66
+ 0,
67
+ 0,
68
+ 0,
69
+ 1,
70
+ 0
71
+ ], vt = (t) => {
72
+ const e = 0.5 * (1 - t);
73
+ return [t, 0, 0, 0, e, 0, t, 0, 0, e, 0, 0, t, 0, e, 0, 0, 0, 1, 0];
74
+ }, St = (t) => {
75
+ const e = 1 - t;
76
+ return [
77
+ de * e + t,
78
+ me * e,
79
+ fe * e,
80
+ 0,
81
+ 0,
82
+ de * e,
83
+ me * e + t,
84
+ fe * e,
85
+ 0,
86
+ 0,
87
+ de * e,
88
+ me * e,
89
+ fe * e + t,
90
+ 0,
91
+ 0,
92
+ 0,
93
+ 0,
94
+ 0,
95
+ 1,
96
+ 0
97
+ ];
98
+ }, Ct = (t, e, n, i = 0, o = 0, r = 0) => [
99
+ t,
100
+ 0,
101
+ 0,
102
+ 0,
103
+ i,
104
+ 0,
105
+ e,
106
+ 0,
107
+ 0,
108
+ o,
109
+ 0,
110
+ 0,
111
+ n,
112
+ 0,
113
+ r,
114
+ 0,
115
+ 0,
116
+ 0,
117
+ 1,
118
+ 0
119
+ ], pe = (t, e) => {
120
+ const n = e - t;
121
+ return [n, 0, 0, 0, t, 0, n, 0, 0, t, 0, 0, n, 0, t, 0, 0, 0, 1, 0];
122
+ }, Fe = [
123
+ 0.393,
124
+ 0.769,
125
+ 0.189,
126
+ 0,
127
+ 0,
128
+ 0.349,
129
+ 0.686,
130
+ 0.168,
131
+ 0,
132
+ 0,
133
+ 0.272,
134
+ 0.534,
135
+ 0.131,
136
+ 0,
137
+ 0,
138
+ 0,
139
+ 0,
140
+ 0,
141
+ 1,
142
+ 0
143
+ ], ye = [
144
+ ["default"],
145
+ ["chrome", "fade", "cold", "warm", "pastel"],
146
+ ["mono", "noir", "stark", "wash"],
147
+ ["sepia", "rust", "blues", "color"]
148
+ ], Ut = St(0), Ce = {
149
+ default: null,
150
+ // more contrast + saturation
151
+ chrome: ot(St(1.3), vt(1.15)),
152
+ // lifted blacks, softer whites, desaturated
153
+ fade: ot(St(0.7), pe(0.12, 0.92)),
154
+ // a blue shift
155
+ cold: ot(Ct(0.9, 0.98, 1.12, 0, 0.01, 0.03), vt(1.04)),
156
+ // a red / yellow shift
157
+ warm: ot(Ct(1.1, 1.03, 0.86, 0.03, 0.01, 0), vt(1.04)),
158
+ // brightened + desaturated
159
+ pastel: ot(St(0.6), pe(0.16, 1)),
160
+ // luminance grayscale
161
+ mono: Ut,
162
+ // high-contrast grayscale
163
+ noir: ot(Ut, vt(1.45), He(-0.04)),
164
+ // very high-contrast grayscale
165
+ stark: ot(Ut, vt(2.1)),
166
+ // low-contrast, bright grayscale
167
+ wash: ot(Ut, pe(0.22, 0.98)),
168
+ sepia: Fe,
169
+ // a warm, strong sepia
170
+ rust: ot(Fe, Ct(1.12, 0.9, 0.7), vt(1.12)),
171
+ // blue-tinted monochrome
172
+ blues: ot(Ut, Ct(0.72, 0.88, 1.08, 0, 0.02, 0.08)),
173
+ // boosted, vivid color
174
+ color: ot(St(1.65), vt(1.06))
175
+ }, yn = [
176
+ "brightness",
177
+ "contrast",
178
+ "saturation",
179
+ "exposure",
180
+ "temperature",
181
+ "gamma",
182
+ "clarity",
183
+ "vignette"
184
+ ], Qe = {
185
+ brightness: 0,
186
+ contrast: 0,
187
+ saturation: 0,
188
+ exposure: 0,
189
+ temperature: 0,
190
+ gamma: 0,
191
+ clarity: 0,
192
+ vignette: 0
193
+ }, ut = {
194
+ /** additive: −0.25…+0.25 */
195
+ brightness: (t) => t / 100 * 0.25,
196
+ /** multiply around the midpoint: 0.5…1.5 */
197
+ contrast: (t) => 1 + t / 100 * 0.5,
198
+ /** 0 (grayscale)…2 */
199
+ saturation: (t) => 1 + t / 100,
200
+ /** multiply: 0.5…1.5 */
201
+ exposure: (t) => 1 + t / 100 * 0.5,
202
+ /** −1…1, shifts R and B in opposite directions */
203
+ temperature: (t) => t / 100,
204
+ /** exponent 0.5…1.5 (applied as x^(1/γ), so positive brightens the midtones) */
205
+ gamma: (t) => 1 + t / 100 * 0.5,
206
+ /** −1…1 local-contrast amount (negative softens) */
207
+ clarity: (t) => t / 100,
208
+ /** −1…1 (positive darkens the edges, negative lightens them) */
209
+ vignette: (t) => t / 100
210
+ };
211
+ function En(t) {
212
+ const e = ut.temperature(t.temperature);
213
+ return ot(
214
+ Ct(
215
+ ut.exposure(t.exposure),
216
+ ut.exposure(t.exposure),
217
+ ut.exposure(t.exposure)
218
+ ),
219
+ He(ut.brightness(t.brightness)),
220
+ vt(ut.contrast(t.contrast)),
221
+ St(ut.saturation(t.saturation)),
222
+ Ct(1 + 0.12 * e, 1 + 0.02 * e, 1 - 0.12 * e)
223
+ );
224
+ }
225
+ function Tn(t, e) {
226
+ return ot(t ?? Se, En(e));
227
+ }
228
+ const ee = Math.PI / 2, Ze = 1e-6, ie = ([t, e], n) => {
229
+ const i = Math.cos(n), o = Math.sin(n);
230
+ return [t * i - e * o, t * o + e * i];
231
+ };
232
+ function Je(t, e, n) {
233
+ const i = Math.abs(Math.cos(n)), o = Math.abs(Math.sin(n));
234
+ return [t / 2 * i + e / 2 * o, t / 2 * o + e / 2 * i];
235
+ }
236
+ const Vt = (t) => [
237
+ t.x + t.width / 2,
238
+ t.y + t.height / 2
239
+ ];
240
+ function oe(t, e, n, i) {
241
+ const [o, r] = Je(t, e, n);
242
+ return Math.max(2 * o / i.width, 2 * r / i.height);
243
+ }
244
+ function $t(t, e) {
245
+ const [n, i] = Vt(t.crop), [o, r] = ie([n - e.width / 2, i - e.height / 2], -t.rotation);
246
+ return [o / t.scale, r / t.scale];
247
+ }
248
+ function Gt([t, e], n, i, o, r, a) {
249
+ const [s, _] = Je(n, i, o), c = Math.max(0, a.width / 2 - s / r), M = Math.max(0, a.height / 2 - _ / r);
250
+ return [Math.min(c, Math.max(-c, t)), Math.min(M, Math.max(-M, e))];
251
+ }
252
+ function jt(t, e, n, i, o, r) {
253
+ const [a, s] = ie([t[0] * o, t[1] * o], i), _ = r.width / 2 + a, c = r.height / 2 + s;
254
+ return { x: _ - e / 2, y: c - n / 2, width: e, height: n };
255
+ }
256
+ function In(t, e, n, i) {
257
+ const o = [
258
+ [t.x, t.y],
259
+ [t.x + t.width, t.y],
260
+ [t.x, t.y + t.height],
261
+ [t.x + t.width, t.y + t.height]
262
+ ], r = 1e-6 * Math.max(i.width, i.height);
263
+ return o.every(([a, s]) => {
264
+ const [_, c] = ie([a - i.width / 2, s - i.height / 2], -e);
265
+ return Math.abs(_ / n) <= i.width / 2 + r / n && Math.abs(c / n) <= i.height / 2 + r / n;
266
+ });
267
+ }
268
+ function An(t, e) {
269
+ const { width: n, height: i } = t.crop, o = Math.max(t.scale, oe(n, i, t.rotation, e)), r = Gt($t({ ...t, scale: o }, e), n, i, t.rotation, o, e);
270
+ return { ...t, scale: o, crop: jt(r, n, i, t.rotation, o, e) };
271
+ }
272
+ function kt(t) {
273
+ return {
274
+ width: Math.max(1, Math.round(t.crop.width / t.scale)),
275
+ height: Math.max(1, Math.round(t.crop.height / t.scale))
276
+ };
277
+ }
278
+ function Rt(t) {
279
+ const e = kt(t);
280
+ return t.resize ? {
281
+ width: Math.max(1, Math.min(e.width, Math.round(t.resize.width))),
282
+ height: Math.max(1, Math.min(e.height, Math.round(t.resize.height)))
283
+ } : e;
284
+ }
285
+ function Xt(t) {
286
+ const { crop: e } = t, n = t.resize;
287
+ if (!n) return e;
288
+ const i = n.width / n.height, o = e.width / e.height;
289
+ if (Math.abs(o - i) < 1e-9 * Math.max(o, i)) return e;
290
+ if (o > i) {
291
+ const a = e.height * i;
292
+ return { ...e, x: e.x + (e.width - a) / 2, width: a };
293
+ }
294
+ const r = e.width / i;
295
+ return { ...e, y: e.y + (e.height - r) / 2, height: r };
296
+ }
297
+ function Sn(t, e) {
298
+ if (!e) return { ...t, resize: null };
299
+ const n = kt(t), i = Math.max(1, Math.min(n.width, Math.round(e.width))), o = Math.max(1, Math.min(n.height, Math.round(e.height))), r = Math.round(i * n.height / n.width) === o || Math.round(o * n.width / n.height) === i;
300
+ let a = t;
301
+ if (!r) {
302
+ const c = Xt({ ...t, resize: { width: i, height: o } });
303
+ a = { ...t, crop: c, cropRatio: null };
304
+ }
305
+ const s = kt(a), _ = i >= s.width && o >= s.height ? null : { width: Math.min(i, s.width), height: Math.min(o, s.height) };
306
+ return { ...a, resize: _ };
307
+ }
308
+ function Cn(t, e) {
309
+ const n = e.resize;
310
+ if (!n) return n;
311
+ const i = kt(t), o = kt(e);
312
+ if (i.width === o.width && i.height === o.height) return n;
313
+ const r = Math.max(
314
+ 1,
315
+ Math.min(o.width, Math.round(n.width * o.width / i.width))
316
+ ), a = Math.max(
317
+ 1,
318
+ Math.min(o.height, Math.round(n.height * o.height / i.height))
319
+ );
320
+ return r === o.width && a === o.height ? null : { width: r, height: a };
321
+ }
322
+ function Rn(t, e) {
323
+ let n = t.width, i = t.height;
324
+ return e && e > 0 && (n / i > e ? n = i * e : i = n / e), { x: (t.width - n) / 2, y: (t.height - i) / 2, width: n, height: i };
325
+ }
326
+ function Ln(t, e) {
327
+ return {
328
+ crop: Rn(t, e),
329
+ cropRatio: e && e > 0 ? e : null,
330
+ resize: null,
331
+ rotation: 0,
332
+ flipX: !1,
333
+ flipY: !1,
334
+ scale: 1,
335
+ filter: null,
336
+ colorMatrix: null,
337
+ finetune: { ...Qe },
338
+ redact: { effect: "blur", amount: 0 }
339
+ };
340
+ }
341
+ function ge(t, e) {
342
+ const n = (Math.round(t / ee) % 4 + 4) % 4, i = e ?? n * ee;
343
+ let o = t - i;
344
+ return o = Math.atan2(Math.sin(o), Math.cos(o)), { quarter: Ee(i), fine: o };
345
+ }
346
+ const Ee = (t) => {
347
+ const e = t % (2 * Math.PI), n = e < 0 ? e + 2 * Math.PI : e;
348
+ return Math.abs(n - 2 * Math.PI) < Ze ? 0 : n;
349
+ };
350
+ function Oe(t, e, n) {
351
+ const { width: i, height: o } = t.crop, r = $t(t, n), a = Math.max(t.scale, oe(i, o, e, n)), s = Gt(r, i, o, e, a, n);
352
+ return { ...t, rotation: e, scale: a, crop: jt(s, i, o, e, a, n) };
353
+ }
354
+ function kn(t, e) {
355
+ const [n, i] = Vt(t.crop), o = e.width / 2, r = e.height / 2, [a, s] = ie([n - o, i - r], -ee), _ = t.crop.height, c = t.crop.width;
356
+ return {
357
+ ...t,
358
+ rotation: t.rotation - ee,
359
+ crop: { x: o + a - _ / 2, y: r + s - c / 2, width: _, height: c },
360
+ cropRatio: t.cropRatio ? 1 / t.cropRatio : t.cropRatio
361
+ };
362
+ }
363
+ function Nn(t, e) {
364
+ return {
365
+ ...t,
366
+ rotation: -t.rotation,
367
+ flipX: !t.flipX,
368
+ crop: { ...t.crop, x: e.width - t.crop.x - t.crop.width }
369
+ };
370
+ }
371
+ function Jt(t, e) {
372
+ return t.scale / oe(t.crop.width, t.crop.height, t.rotation, e);
373
+ }
374
+ const Bt = 5;
375
+ function Yt(t, e, n) {
376
+ const { width: i, height: o } = t.crop, r = $t(t, n), a = oe(i, o, t.rotation, n) * Math.min(Bt, Math.max(1, e)), s = Gt(r, i, o, t.rotation, a, n);
377
+ return { ...t, scale: a, crop: jt(s, i, o, t.rotation, a, n) };
378
+ }
379
+ function Pn(t, e, n, i) {
380
+ const { width: o, height: r } = t.crop, a = { ...t, crop: { ...t.crop, x: t.crop.x + e, y: t.crop.y + n } }, s = Gt($t(a, i), o, r, t.rotation, t.scale, i);
381
+ return { ...t, crop: jt(s, o, r, t.rotation, t.scale, i) };
382
+ }
383
+ function zn(t, e, n) {
384
+ if (!e || e <= 0) return { ...t, cropRatio: null };
385
+ const i = Math.abs(Math.cos(t.rotation)), o = Math.abs(Math.sin(t.rotation)), r = Math.min(
386
+ n.width * t.scale / (e * i + o),
387
+ n.height * t.scale / (e * o + i)
388
+ ), a = r * e, s = Gt($t(t, n), a, r, t.rotation, t.scale, n);
389
+ return {
390
+ ...t,
391
+ cropRatio: e,
392
+ crop: jt(s, a, r, t.rotation, t.scale, n)
393
+ };
394
+ }
395
+ function Dn(t, e, n, i, o, { aspectRatio: r, minSize: a }) {
396
+ const s = t.crop;
397
+ let _ = s.x, c = s.y, M = s.x + s.width, d = s.y + s.height;
398
+ const T = e.includes("n"), f = e.includes("s"), A = e.includes("w"), S = e.includes("e");
399
+ if (T && (c = Math.min(c + i, d - a)), f && (d = Math.max(d + i, c + a)), A && (_ = Math.min(_ + n, M - a)), S && (M = Math.max(M + n, _ + a)), r && r > 0) {
400
+ let v = M - _, N = d - c;
401
+ if ((T || f) && (A || S))
402
+ v / N > r ? N = v / r : v = N * r, A ? _ = M - v : M = _ + v, T ? c = d - N : d = c + N;
403
+ else if (T || f) {
404
+ v = N * r;
405
+ const G = s.x + s.width / 2;
406
+ _ = G - v / 2, M = G + v / 2;
407
+ } else {
408
+ N = v / r;
409
+ const G = s.y + s.height / 2;
410
+ c = G - N / 2, d = G + N / 2;
411
+ }
412
+ }
413
+ const y = { x: _, y: c, width: M - _, height: d - c }, x = (v) => In(v, t.rotation, t.scale, o);
414
+ if (x(y)) return { ...t, crop: y };
415
+ if (!(!(r && r > 0) && (T || f) && (A || S))) return { ...t, crop: Ft(s, y, x) };
416
+ const C = (v) => ({ ...v, x: _, width: M - _ }), u = (v) => ({ ...v, y: c, height: d - c }), R = Ft(Ft(s, C(s), x), u, x), m = Ft(Ft(s, u(s), x), C, x), E = (v) => Math.abs(v.x - y.x) + Math.abs(v.y - y.y) + Math.abs(v.width - y.width) + Math.abs(v.height - y.height);
417
+ return { ...t, crop: E(R) <= E(m) ? R : m };
418
+ }
419
+ function Ft(t, e, n) {
420
+ const i = typeof e == "function" ? e(t) : e;
421
+ if (n(i)) return i;
422
+ let o = 0, r = 1;
423
+ for (let a = 0; a < 24; a++) {
424
+ const s = (o + r) / 2;
425
+ n(Xe(t, i, s)) ? o = s : r = s;
426
+ }
427
+ return Xe(t, i, o);
428
+ }
429
+ const Xe = (t, e, n) => ({
430
+ x: t.x + (e.x - t.x) * n,
431
+ y: t.y + (e.y - t.y) * n,
432
+ width: t.width + (e.width - t.width) * n,
433
+ height: t.height + (e.height - t.height) * n
434
+ });
435
+ function Be(t, e) {
436
+ const n = {
437
+ ...t.crop,
438
+ width: Math.max(1, t.crop.width),
439
+ height: Math.max(1, t.crop.height)
440
+ };
441
+ return An({ ...t, crop: n, scale: Math.max(Ze, t.scale || 1) }, e);
442
+ }
443
+ const tn = 0.85, Un = (t, e, n) => {
444
+ const i = Math.min(1, Math.max(0, (n - t) / (e - t)));
445
+ return i * i * (3 - 2 * i);
446
+ }, Fn = (t, e) => Un(0.3, 1, Math.hypot(t, e) / Math.SQRT2);
447
+ function Re(t, e, n, i, o, r) {
448
+ const a = i.matrix, s = 1 / i.gamma, _ = Math.abs(i.gamma - 1) > 1e-4, c = Math.abs(i.clarity) > 1e-4 && !!o, M = Math.abs(i.vignette) > 1e-4 && !!r;
449
+ for (let d = 0; d < n; d++)
450
+ for (let T = 0; T < e; T++) {
451
+ const f = (d * e + T) * 4, A = t[f + 3] / 255;
452
+ if (A === 0) continue;
453
+ const S = t[f] / 255, y = t[f + 1] / 255, x = t[f + 2] / 255;
454
+ let l = a[0] * S + a[1] * y + a[2] * x + a[3] * A + a[4], C = a[5] * S + a[6] * y + a[7] * x + a[8] * A + a[9], u = a[10] * S + a[11] * y + a[12] * x + a[13] * A + a[14];
455
+ if (c) {
456
+ const R = o[f] / 255, m = o[f + 1] / 255, E = o[f + 2] / 255, v = o[f + 3] / 255, N = a[0] * R + a[1] * m + a[2] * E + a[3] * v + a[4], j = a[5] * R + a[6] * m + a[7] * E + a[8] * v + a[9], G = a[10] * R + a[11] * m + a[12] * E + a[13] * v + a[14];
457
+ l += i.clarity * (l - N), C += i.clarity * (C - j), u += i.clarity * (u - G);
458
+ }
459
+ if (_ && (l = Math.pow(Math.max(0, l), s), C = Math.pow(Math.max(0, C), s), u = Math.pow(Math.max(0, u), s)), M) {
460
+ const R = T + 0.5, m = d + 0.5, E = r[0] * R + r[1] * m + r[2], v = r[3] * R + r[4] * m + r[5], N = Fn(E, v) * tn * Math.abs(i.vignette);
461
+ i.vignette > 0 ? (l *= 1 - N, C *= 1 - N, u *= 1 - N) : (l += (1 - l) * N, C += (1 - C) * N, u += (1 - u) * N);
462
+ }
463
+ t[f] = l * 255, t[f + 1] = C * 255, t[f + 2] = u * 255;
464
+ }
465
+ }
466
+ function Le(t, e, n, i) {
467
+ const o = Math.max(1, Math.round(i)), r = new Uint8ClampedArray(t), a = new Uint8ClampedArray(t.length);
468
+ for (let _ = 0; _ < 3; _++)
469
+ s(r, a, e, n, o, !0), s(a, r, e, n, o, !1);
470
+ return r;
471
+ function s(_, c, M, d, T, f) {
472
+ const A = f ? d : M, S = f ? M : d, y = f ? 4 : M * 4, x = T * 2 + 1;
473
+ for (let l = 0; l < A; l++) {
474
+ const C = f ? l * M * 4 : l * 4;
475
+ for (let u = 0; u < 4; u++) {
476
+ let R = 0;
477
+ for (let m = -T; m <= T; m++) {
478
+ const E = Math.min(S - 1, Math.max(0, m));
479
+ R += _[C + E * y + u];
480
+ }
481
+ for (let m = 0; m < S; m++) {
482
+ c[C + m * y + u] = R / x;
483
+ const E = Math.max(0, m - T), v = Math.min(S - 1, m + T + 1);
484
+ R += _[C + v * y + u] - _[C + E * y + u];
485
+ }
486
+ }
487
+ }
488
+ }
489
+ }
490
+ const ke = 0.012, en = (t, e) => {
491
+ const n = document.createElement("canvas");
492
+ return n.width = Math.max(1, Math.round(t)), n.height = Math.max(1, Math.round(e)), n;
493
+ };
494
+ async function Ye(t) {
495
+ if (typeof createImageBitmap == "function")
496
+ try {
497
+ return await createImageBitmap(t, { imageOrientation: "from-image" });
498
+ } catch {
499
+ }
500
+ const e = URL.createObjectURL(t);
501
+ try {
502
+ return await nn(e, !1);
503
+ } finally {
504
+ URL.revokeObjectURL(e);
505
+ }
506
+ }
507
+ function nn(t, e) {
508
+ return new Promise((n, i) => {
509
+ const o = new Image();
510
+ e && (o.crossOrigin = "anonymous"), o.decoding = "async", o.onload = () => n(o), o.onerror = () => i(new Error(`Could not load image: ${t.slice(0, 80)}`)), o.src = t;
511
+ });
512
+ }
513
+ const On = (t) => t instanceof HTMLImageElement ? { width: t.naturalWidth, height: t.naturalHeight } : { width: t.width, height: t.height };
514
+ async function Xn(t) {
515
+ let e, n = "";
516
+ if (typeof t == "string")
517
+ try {
518
+ const r = await fetch(t);
519
+ if (!r.ok) throw new Error(String(r.status));
520
+ const a = await r.blob();
521
+ n = a.type, e = await Ye(a);
522
+ } catch {
523
+ e = await nn(t, !t.startsWith("data:") && !t.startsWith("blob:"));
524
+ const r = /^data:([^;,]+)/.exec(t) ?? /\.(png|jpe?g|webp|gif|avif)(?:[?#]|$)/i.exec(t);
525
+ r && (n = r[1].includes("/") ? r[1] : `image/${r[1].toLowerCase().replace("jpg", "jpeg")}`);
526
+ }
527
+ else
528
+ n = t.type, e = await Ye(t);
529
+ const { width: i, height: o } = On(e);
530
+ if (!i || !o) throw new Error("The image has no size");
531
+ return { image: e, width: i, height: o, type: n };
532
+ }
533
+ function te(t, e, n, i) {
534
+ const o = Math.min(1, i / Math.max(e, n));
535
+ if (o >= 1) return { canvas: t, width: e, height: n };
536
+ const r = en(e * o, n * o), a = r.getContext("2d");
537
+ return a && (a.imageSmoothingQuality = "high", a.drawImage(t, 0, 0, r.width, r.height)), { canvas: r, width: r.width, height: r.height };
538
+ }
539
+ function rn(t, e, n, i, o = 384) {
540
+ const r = Math.min(1, o / Math.max(e, n)), a = en(e * r, n * r), s = a.getContext("2d", { willReadFrequently: !0 });
541
+ if (!s) return a;
542
+ s.drawImage(t, 0, 0, a.width, a.height);
543
+ try {
544
+ const _ = s.getImageData(0, 0, a.width, a.height);
545
+ _.data.set(Le(_.data, a.width, a.height, Math.max(1, i * r))), s.putImageData(_, 0, 0);
546
+ } catch {
547
+ }
548
+ return a;
549
+ }
550
+ function Bn(t, e) {
551
+ return t || (["image/jpeg", "image/png", "image/webp"].includes(e) ? e : "image/png");
552
+ }
553
+ const Yn = [1, 0, 0, 0, 1, 0], st = (t, e) => [1, 0, t, 0, 1, e], nt = (t, e = t) => [t, 0, 0, 0, e, 0], on = (t) => {
554
+ const e = Math.cos(t), n = Math.sin(t);
555
+ return [e, -n, 0, n, e, 0];
556
+ };
557
+ function Vn(t, e) {
558
+ return [
559
+ t[0] * e[0] + t[1] * e[3],
560
+ t[0] * e[1] + t[1] * e[4],
561
+ t[0] * e[2] + t[1] * e[5] + t[2],
562
+ t[3] * e[0] + t[4] * e[3],
563
+ t[3] * e[1] + t[4] * e[4],
564
+ t[3] * e[2] + t[4] * e[5] + t[5]
565
+ ];
566
+ }
567
+ const at = (...t) => t.reduce((e, n) => Vn(n, e), Yn);
568
+ function Lt([t, e, n, i, o, r]) {
569
+ const a = t * o - e * i, s = Math.abs(a) < 1e-12 ? 1e12 : 1 / a;
570
+ return [o * s, -e * s, (e * r - n * o) * s, -i * s, t * s, (n * i - t * r) * s];
571
+ }
572
+ const ne = ([t, e, n, i, o, r], a, s) => [
573
+ t * a + e * s + n,
574
+ i * a + o * s + r
575
+ ], $n = { blur: 0.015, pixelate: 0.05 };
576
+ function Te(t, e) {
577
+ var o, r;
578
+ const n = ((o = t.redact) == null ? void 0 : o.effect) ?? "blur";
579
+ return Math.max(0, Math.min(100, ((r = t.redact) == null ? void 0 : r.amount) ?? 0)) / 100 * ($n[n] ?? 0) * Math.max(e.width, e.height);
580
+ }
581
+ function an(t, e) {
582
+ const n = Math.max(1e-6, e);
583
+ return {
584
+ cols: Math.max(1, Math.round(t.width / n)),
585
+ rows: Math.max(1, Math.round(t.height / n))
586
+ };
587
+ }
588
+ const Gn = 4, ae = (t, e) => {
589
+ const n = document.createElement("canvas");
590
+ return n.width = Math.max(1, Math.round(t)), n.height = Math.max(1, Math.round(e)), n;
591
+ };
592
+ function sn(t, e, n, i, o) {
593
+ const r = Math.min(1, Gn / Math.max(1, i), o / Math.max(e, n)), a = ae(e * r, n * r), s = a.getContext("2d", { willReadFrequently: !0 });
594
+ if (!s) return a;
595
+ s.imageSmoothingQuality = "high", s.drawImage(t, 0, 0, a.width, a.height);
596
+ try {
597
+ const _ = s.getImageData(0, 0, a.width, a.height);
598
+ _.data.set(Le(_.data, a.width, a.height, Math.max(1, i * r))), s.putImageData(_, 0, 0);
599
+ } catch {
600
+ }
601
+ return a;
602
+ }
603
+ function jn(t, e, n, i) {
604
+ const o = ae(e, n), r = o.getContext("2d");
605
+ return r && (r.imageSmoothingQuality = "high", r.drawImage(sn(t, e, n, i, 1024), 0, 0, e, n)), o;
606
+ }
607
+ function cn(t, e, n) {
608
+ const i = ae(e, n), o = i.getContext("2d"), r = t.getContext("2d");
609
+ !o || !r || (o.imageSmoothingQuality = "high", o.drawImage(t, 0, 0, i.width, i.height), r.save(), r.setTransform(1, 0, 0, 1, 0, 0), r.globalCompositeOperation = "copy", r.imageSmoothingEnabled = !1, r.drawImage(i, 0, 0, t.width, t.height), r.restore());
610
+ }
611
+ function qn(t, e, n, i) {
612
+ const o = ae(e, n), r = o.getContext("2d");
613
+ return r && (r.drawImage(t, 0, 0, e, n), cn(
614
+ o,
615
+ Math.max(1, Math.round(e / Math.max(2, i))),
616
+ Math.max(1, Math.round(n / Math.max(2, i)))
617
+ )), o;
618
+ }
619
+ const ln = (t) => t.area ? [t.area.x + t.area.width / 2, t.area.y + t.area.height / 2] : [t.width / 2, t.height / 2];
620
+ function Ne(t, e) {
621
+ const n = e.width / 2, i = e.height / 2;
622
+ return at(
623
+ st(-n, -i),
624
+ nt(t.flipX ? -1 : 1, t.flipY ? -1 : 1),
625
+ on(t.rotation),
626
+ nt(t.scale),
627
+ st(n, i)
628
+ );
629
+ }
630
+ function hn(t, e) {
631
+ const n = Math.abs(t.flip) < 0.02 ? 0.02 * Math.sign(t.flip || 1) : t.flip, [i, o] = ln(e);
632
+ return at(
633
+ st(-t.center[0], -t.center[1]),
634
+ on(t.rotation),
635
+ nt(t.scale * n, t.scale),
636
+ st(i, o)
637
+ );
638
+ }
639
+ function Wn(t) {
640
+ const [e, n] = Vt(t);
641
+ return at(st(-e, -n), nt(2 / t.width, 2 / t.height));
642
+ }
643
+ function Kn(t, e, n, i) {
644
+ const o = at(nt(1 / i.dpr), Lt(hn(n, i))), r = at(
645
+ o,
646
+ Lt(Ne(t, e)),
647
+ nt(1 / e.width, 1 / e.height)
648
+ );
649
+ return { toUV: r, toBlurUV: r, toCrop: at(o, Wn(t.crop)) };
650
+ }
651
+ function Ve(t, e, n) {
652
+ const i = Math.max(1, e.width - n * 2), o = Math.max(1, e.height - n * 2);
653
+ return {
654
+ center: Vt(t),
655
+ scale: Math.min(i / t.width, o / t.height),
656
+ rotation: 0,
657
+ flip: 1
658
+ };
659
+ }
660
+ const Hn = `
661
+ attribute vec2 a_pos;
662
+ void main() { gl_Position = vec4(a_pos, 0.0, 1.0); }
663
+ `, Qn = `
664
+ #ifdef GL_FRAGMENT_PRECISION_HIGH
665
+ precision highp float;
666
+ #else
667
+ precision mediump float;
668
+ #endif
669
+ uniform sampler2D u_image;
670
+ uniform sampler2D u_blur;
671
+ uniform vec2 u_size;
672
+ uniform vec3 u_uvX; uniform vec3 u_uvY;
673
+ uniform vec3 u_blurX; uniform vec3 u_blurY;
674
+ uniform vec3 u_cropX; uniform vec3 u_cropY;
675
+ uniform bool u_clip;
676
+ uniform float u_dim;
677
+ uniform vec3 u_dimColor;
678
+ uniform mat4 u_cm; uniform vec4 u_co;
679
+ uniform float u_gamma; uniform float u_clarity; uniform float u_vignette;
680
+ uniform vec2 u_pixel; uniform vec3 u_cuvX; uniform vec3 u_cuvY;
681
+
682
+ vec3 grade(vec4 c) { return (u_cm * c + u_co).rgb; }
683
+
684
+ void main() {
685
+ vec3 px = vec3(gl_FragCoord.x, u_size.y - gl_FragCoord.y, 1.0);
686
+ vec2 cn = vec2(dot(u_cropX, px), dot(u_cropY, px));
687
+ if (u_clip && (abs(cn.x) > 1.0 || abs(cn.y) > 1.0)) { gl_FragColor = vec4(0.0); return; }
688
+ vec2 uv = vec2(dot(u_uvX, px), dot(u_uvY, px));
689
+ vec2 buv = vec2(dot(u_blurX, px), dot(u_blurY, px));
690
+ if (u_pixel.x > 0.0) {
691
+ // the center of this pixel's block (whole blocks across the crop; the edge pixel stays in the last)
692
+ vec2 cell = 2.0 / u_pixel;
693
+ vec2 idx = floor((cn + 1.0) / cell);
694
+ if (abs(cn.x) <= 1.0) idx.x = min(idx.x, u_pixel.x - 1.0);
695
+ if (abs(cn.y) <= 1.0) idx.y = min(idx.y, u_pixel.y - 1.0);
696
+ cn = (idx + 0.5) * cell - 1.0;
697
+ vec3 q = vec3(cn, 1.0);
698
+ uv = vec2(dot(u_cuvX, q), dot(u_cuvY, q));
699
+ buv = uv;
700
+ }
701
+ if (uv.x < 0.0 || uv.y < 0.0 || uv.x > 1.0 || uv.y > 1.0) { gl_FragColor = vec4(0.0); return; }
702
+ vec4 c = texture2D(u_image, uv);
703
+ if (c.a <= 0.0) { gl_FragColor = vec4(0.0); return; }
704
+ vec3 rgb = grade(c);
705
+ if (u_clarity != 0.0) {
706
+ vec4 bl = texture2D(u_blur, buv);
707
+ rgb += u_clarity * (rgb - grade(bl));
708
+ }
709
+ if (u_gamma != 1.0) rgb = pow(max(rgb, 0.0), vec3(1.0 / u_gamma));
710
+ if (u_vignette != 0.0) {
711
+ float f = smoothstep(0.3, 1.0, length(cn) / 1.41421356) * ${tn.toFixed(2)} * abs(u_vignette);
712
+ rgb = u_vignette > 0.0 ? rgb * (1.0 - f) : rgb + (1.0 - rgb) * f;
713
+ }
714
+ rgb = clamp(rgb, 0.0, 1.0);
715
+ if (abs(cn.x) > 1.0 || abs(cn.y) > 1.0) rgb = mix(u_dimColor, rgb, u_dim);
716
+ gl_FragColor = vec4(rgb * c.a, c.a);
717
+ }
718
+ `;
719
+ class se {
720
+ constructor(e, n) {
721
+ this.loc = {}, this.canvas = e, this.gl = n, this.maxTextureSize = n.getParameter(n.MAX_TEXTURE_SIZE), this.program = this.link(), n.useProgram(this.program);
722
+ const i = n.createBuffer();
723
+ n.bindBuffer(n.ARRAY_BUFFER, i), n.bufferData(n.ARRAY_BUFFER, new Float32Array([-1, -1, 1, -1, -1, 1, 1, 1]), n.STATIC_DRAW);
724
+ const o = n.getAttribLocation(this.program, "a_pos");
725
+ n.enableVertexAttribArray(o), n.vertexAttribPointer(o, 2, n.FLOAT, !1, 0, 0);
726
+ for (const r of [
727
+ "u_image",
728
+ "u_blur",
729
+ "u_size",
730
+ "u_uvX",
731
+ "u_uvY",
732
+ "u_blurX",
733
+ "u_blurY",
734
+ "u_cropX",
735
+ "u_cropY",
736
+ "u_clip",
737
+ "u_dim",
738
+ "u_dimColor",
739
+ "u_cm",
740
+ "u_co",
741
+ "u_gamma",
742
+ "u_clarity",
743
+ "u_vignette",
744
+ "u_pixel",
745
+ "u_cuvX",
746
+ "u_cuvY"
747
+ ])
748
+ this.loc[r] = n.getUniformLocation(this.program, r);
749
+ this.image = this.texture(), this.blur = this.texture(), n.uniform1i(this.loc.u_image, 0), n.uniform1i(this.loc.u_blur, 1);
750
+ }
751
+ /** Create a renderer on `canvas`, or `null` when WebGL is unavailable. */
752
+ static create(e) {
753
+ try {
754
+ const n = {
755
+ premultipliedAlpha: !0,
756
+ alpha: !0,
757
+ antialias: !1,
758
+ preserveDrawingBuffer: !0
759
+ }, i = e.getContext("webgl2", n) ?? e.getContext("webgl", n);
760
+ return i ? new se(e, i) : null;
761
+ } catch {
762
+ return null;
763
+ }
764
+ }
765
+ link() {
766
+ const e = this.gl, n = (o, r) => {
767
+ const a = e.createShader(o);
768
+ if (e.shaderSource(a, r), e.compileShader(a), !e.getShaderParameter(a, e.COMPILE_STATUS))
769
+ throw new Error(e.getShaderInfoLog(a) ?? "shader compile failed");
770
+ return a;
771
+ }, i = e.createProgram();
772
+ if (e.attachShader(i, n(e.VERTEX_SHADER, Hn)), e.attachShader(i, n(e.FRAGMENT_SHADER, Qn)), e.linkProgram(i), !e.getProgramParameter(i, e.LINK_STATUS))
773
+ throw new Error(e.getProgramInfoLog(i) ?? "program link failed");
774
+ return i;
775
+ }
776
+ texture() {
777
+ const e = this.gl, n = e.createTexture();
778
+ return e.bindTexture(e.TEXTURE_2D, n), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_S, e.CLAMP_TO_EDGE), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_T, e.CLAMP_TO_EDGE), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, e.LINEAR), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MAG_FILTER, e.LINEAR), n;
779
+ }
780
+ upload(e, n, i, o) {
781
+ const r = this.gl;
782
+ r.activeTexture(r.TEXTURE0 + e), r.bindTexture(r.TEXTURE_2D, n), r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1), r.texImage2D(r.TEXTURE_2D, 0, r.RGBA, r.RGBA, r.UNSIGNED_BYTE, i);
783
+ const a = typeof WebGL2RenderingContext < "u" && r instanceof WebGL2RenderingContext;
784
+ o && a ? (r.generateMipmap(r.TEXTURE_2D), r.texParameteri(r.TEXTURE_2D, r.TEXTURE_MIN_FILTER, r.LINEAR_MIPMAP_LINEAR)) : r.texParameteri(r.TEXTURE_2D, r.TEXTURE_MIN_FILTER, r.LINEAR);
785
+ }
786
+ /** Upload the image (and its blurred copy for clarity). */
787
+ setImage(e, n, i = !0) {
788
+ this.upload(0, this.image, e, i), this.upload(1, this.blur, n, !1);
789
+ }
790
+ /**
791
+ * Swap just the image texture (e.g. for a coarser copy) — the blurred copy stays. `mipmap: false` for
792
+ * a pixelation's texture: its blocks sample one point each, and mip levels would seam their borders.
793
+ */
794
+ setSource(e, n = !0) {
795
+ this.upload(0, this.image, e, n);
796
+ }
797
+ /** Draw one frame at the canvas's current pixel size. */
798
+ render(e) {
799
+ const n = this.gl, { width: i, height: o } = this.canvas;
800
+ n.viewport(0, 0, i, o), n.clearColor(0, 0, 0, 0), n.clear(n.COLOR_BUFFER_BIT), n.uniform2f(this.loc.u_size, i, o);
801
+ const r = (f, A, S) => {
802
+ n.uniform3f(this.loc[A], f[0], f[1], f[2]), n.uniform3f(this.loc[S], f[3], f[4], f[5]);
803
+ };
804
+ r(e.toUV, "u_uvX", "u_uvY"), r(e.toBlurUV, "u_blurX", "u_blurY"), r(e.toCrop, "u_cropX", "u_cropY"), n.uniform1i(this.loc.u_clip, e.clip ? 1 : 0), n.uniform1f(this.loc.u_dim, e.dim ?? 1);
805
+ const [a, s, _] = e.dimColor ?? [0, 0, 0];
806
+ n.uniform3f(this.loc.u_dimColor, a, s, _);
807
+ const c = e.matrix, M = new Float32Array(16);
808
+ for (let f = 0; f < 4; f++)
809
+ for (let A = 0; A < 4; A++) M[A * 4 + f] = c[f * 5 + A];
810
+ n.uniformMatrix4fv(this.loc.u_cm, !1, M), n.uniform4f(this.loc.u_co, c[4], c[9], c[14], c[19]), n.uniform1f(this.loc.u_gamma, e.gamma), n.uniform1f(this.loc.u_clarity, e.clarity), n.uniform1f(this.loc.u_vignette, e.vignette);
811
+ const [d, T] = e.pixel ?? [0, 0];
812
+ n.uniform2f(this.loc.u_pixel, d, T), e.pixel && e.cropToUV && r(e.cropToUV, "u_cuvX", "u_cuvY"), n.drawArrays(n.TRIANGLE_STRIP, 0, 4);
813
+ }
814
+ /**
815
+ * Release the GPU resources. `loseContext` also drops the context itself (a throwaway export canvas —
816
+ * browsers cap live contexts); a canvas that will be drawn on again keeps it.
817
+ */
818
+ dispose(e = !0) {
819
+ var i;
820
+ const n = this.gl;
821
+ n.deleteTexture(this.image), n.deleteTexture(this.blur), n.deleteProgram(this.program), e && ((i = n.getExtension("WEBGL_lose_context")) == null || i.loseContext());
822
+ }
823
+ }
824
+ function Pe(t, e = t.colorMatrix) {
825
+ const n = t.finetune;
826
+ return {
827
+ matrix: Tn(e, n),
828
+ gamma: ut.gamma(n.gamma),
829
+ clarity: ut.clarity(n.clarity),
830
+ vignette: ut.vignette(n.vignette)
831
+ };
832
+ }
833
+ const un = (t) => !Mn(t.matrix) || t.gamma !== 1 || t.clarity !== 0 || t.vignette !== 0, ze = (t, e) => {
834
+ const n = document.createElement("canvas");
835
+ return n.width = Math.max(1, Math.round(t)), n.height = Math.max(1, Math.round(e)), n;
836
+ };
837
+ function Zn(t, e, n, i, o, r) {
838
+ const a = t.getContext("2d", { willReadFrequently: !0 });
839
+ if (!a) return;
840
+ const { width: s, height: _ } = t;
841
+ a.setTransform(1, 0, 0, 1, 0, 0), a.clearRect(0, 0, s, _);
842
+ const c = (d, T, f, A) => {
843
+ const S = at(nt(1 / f.width, 1 / f.height), Lt(A));
844
+ if (d.save(), r.clip) {
845
+ const y = Lt(r.toCrop);
846
+ d.beginPath(), [
847
+ [-1, -1],
848
+ [1, -1],
849
+ [1, 1],
850
+ [-1, 1]
851
+ ].forEach(([x, l], C) => {
852
+ const [u, R] = ne(y, x, l);
853
+ C === 0 ? d.moveTo(u, R) : d.lineTo(u, R);
854
+ }), d.closePath(), d.clip();
855
+ }
856
+ d.setTransform(S[0], S[3], S[1], S[4], S[2], S[5]), d.imageSmoothingQuality = "high", d.drawImage(T, 0, 0, f.width, f.height), d.restore();
857
+ };
858
+ if (c(a, e, n, r.toUV), un(r) && M(), r.dim != null && r.dim < 1) {
859
+ const d = Lt(r.toCrop);
860
+ a.save(), a.globalCompositeOperation = "source-atop", a.beginPath(), a.rect(0, 0, s, _), [
861
+ [-1, -1],
862
+ [1, -1],
863
+ [1, 1],
864
+ [-1, 1]
865
+ ].forEach(([S, y], x) => {
866
+ const [l, C] = ne(d, S, y);
867
+ x === 0 ? a.moveTo(l, C) : a.lineTo(l, C);
868
+ }), a.closePath();
869
+ const [T, f, A] = (r.dimColor ?? [0, 0, 0]).map((S) => Math.round(S * 255));
870
+ a.fillStyle = `rgba(${T}, ${f}, ${A}, ${1 - r.dim})`, a.fill("evenodd"), a.restore();
871
+ }
872
+ function M() {
873
+ if (a)
874
+ try {
875
+ const d = a.getImageData(0, 0, s, _);
876
+ let T = null;
877
+ if (r.clarity !== 0) {
878
+ const A = ze(s, _).getContext("2d", { willReadFrequently: !0 });
879
+ A && (c(A, i, o, r.toBlurUV), T = A.getImageData(0, 0, s, _).data);
880
+ }
881
+ Re(d.data, s, _, r, T, r.toCrop), a.putImageData(d, 0, 0);
882
+ } catch {
883
+ }
884
+ }
885
+ }
886
+ const Jn = 16384, tr = 16384 * 16384, er = (t, e, n) => new Promise((i, o) => {
887
+ try {
888
+ t.toBlob(
889
+ (r) => r ? i(r) : o(new Error("Encoding failed")),
890
+ e,
891
+ n
892
+ );
893
+ } catch (r) {
894
+ o(r);
895
+ }
896
+ });
897
+ async function nr(t, e, n, i, o) {
898
+ var x;
899
+ const r = Rt(n), a = Xt(n), s = Math.min(
900
+ 1,
901
+ Jn / Math.max(r.width, r.height),
902
+ Math.sqrt(tr / (r.width * r.height))
903
+ ), _ = Math.max(1, Math.round(r.width * s)), c = Math.max(1, Math.round(r.height * s)), M = ze(_, c), d = M.getContext("2d");
904
+ if (!d) throw new Error("Canvas 2D is unavailable");
905
+ const T = at(
906
+ Ne(n, e),
907
+ st(-a.x, -a.y),
908
+ nt(_ / a.width, c / a.height)
909
+ );
910
+ i === "image/jpeg" && (d.fillStyle = "#fff", d.fillRect(0, 0, _, c)), d.setTransform(T[0], T[3], T[1], T[4], T[2], T[5]), d.imageSmoothingEnabled = !0, d.imageSmoothingQuality = "high";
911
+ const f = Te(n, e), A = (x = n.redact) == null ? void 0 : x.effect, S = f > 0 && A === "blur" ? jn(t, e.width, e.height, f) : t;
912
+ d.drawImage(S, 0, 0, e.width, e.height), d.setTransform(1, 0, 0, 1, 0, 0);
913
+ const y = Pe(n);
914
+ if (un(y)) {
915
+ const l = ke * Math.max(e.width, e.height) * (_ / a.width) * n.scale, C = rn(M, _, c, l);
916
+ rr(M, C, y);
917
+ }
918
+ if (f > 0 && A === "pixelate") {
919
+ const { cols: l, rows: C } = an(a, f * n.scale);
920
+ cn(M, l, C);
921
+ }
922
+ return er(M, i, o);
923
+ }
924
+ function rr(t, e, n) {
925
+ const { width: i, height: o } = t, r = t.getContext("2d", { willReadFrequently: !0 }), a = document.createElement("canvas"), s = se.create(a), _ = s ? Math.min(2048, s.maxTextureSize) : 1024, c = ze(_, _), M = c.getContext("2d", { willReadFrequently: !0 });
926
+ try {
927
+ for (let d = 0; d < o; d += _)
928
+ for (let T = 0; T < i; T += _) {
929
+ const f = Math.min(_, i - T), A = Math.min(_, o - d), S = at(st(T, d), nt(2 / i, 2 / o), st(-1, -1)), y = at(st(T, d), nt(1 / i, 1 / o));
930
+ if (s)
931
+ c.width = f, c.height = A, M.clearRect(0, 0, f, A), M.drawImage(t, T, d, f, A, 0, 0, f, A), a.width = f, a.height = A, s.setImage(c, e, !1), s.render({ ...n, toUV: nt(1 / f, 1 / A), toBlurUV: y, toCrop: S, clip: !1 }), r.clearRect(T, d, f, A), r.drawImage(a, T, d);
932
+ else {
933
+ const x = r.getImageData(T, d, f, A);
934
+ let l = null;
935
+ n.clarity !== 0 && (c.width = f, c.height = A, M.drawImage(
936
+ e,
937
+ T / i * e.width,
938
+ d / o * e.height,
939
+ f / i * e.width,
940
+ A / o * e.height,
941
+ 0,
942
+ 0,
943
+ f,
944
+ A
945
+ ), l = M.getImageData(0, 0, f, A).data), Re(x.data, f, A, n, l, S), r.putImageData(x, T, d);
946
+ }
947
+ }
948
+ } finally {
949
+ s == null || s.dispose();
950
+ }
951
+ }
952
+ const ir = 50, _e = (t, e) => JSON.stringify(t) === JSON.stringify(e), or = (t, e) => t === e || !!t && !!e && t.width === e.width && t.height === e.height, _t = (t) => JSON.parse(JSON.stringify(t));
953
+ class dn {
954
+ constructor() {
955
+ this.snapshot = {
956
+ status: "idle",
957
+ error: null,
958
+ state: null,
959
+ ui: { util: "crop", cropTab: "rotation", finetuneTab: "brightness", resizeLocked: !0 },
960
+ size: null,
961
+ canUndo: !1,
962
+ canRedo: !1,
963
+ canRevert: !1
964
+ }, this.storeListeners = /* @__PURE__ */ new Set(), this.events = /* @__PURE__ */ new Map(), this.history = [], this.index = -1, this.initial = null, this.loaded = null, this.options = null, this.openToken = 0, this.subscribe = (e) => (this.storeListeners.add(e), () => {
965
+ this.storeListeners.delete(e);
966
+ }), this.getSnapshot = () => this.snapshot;
967
+ }
968
+ patch(e) {
969
+ const n = e.state !== void 0 ? e.state : this.snapshot.state;
970
+ this.snapshot = {
971
+ ...this.snapshot,
972
+ ...e,
973
+ canUndo: this.index > 0,
974
+ canRedo: this.index < this.history.length - 1,
975
+ canRevert: !!n && !!this.initial && !_e(n, this.initial)
976
+ }, this.storeListeners.forEach((i) => i());
977
+ }
978
+ on(e, n) {
979
+ let i = this.events.get(e);
980
+ return i || this.events.set(e, i = /* @__PURE__ */ new Set()), i.add(n), () => {
981
+ i.delete(n);
982
+ };
983
+ }
984
+ emit(e, n) {
985
+ var i;
986
+ (i = this.events.get(e)) == null || i.forEach((o) => o(n));
987
+ }
988
+ // ── lifecycle ────────────────────────────────────────────────────────────────────────────────
989
+ /** The loaded image (full resolution) — for renderers. */
990
+ get image() {
991
+ return this.loaded;
992
+ }
993
+ /** The `open()` options. */
994
+ get openOptions() {
995
+ return this.options;
996
+ }
997
+ async open(e) {
998
+ const n = ++this.openToken;
999
+ this.options = e, this.history = [], this.index = -1, this.initial = null, this.loaded = null, this.patch({
1000
+ status: "loading",
1001
+ error: null,
1002
+ state: null,
1003
+ size: null,
1004
+ ui: { ...this.snapshot.ui, util: e.util ?? "crop" }
1005
+ });
1006
+ try {
1007
+ const i = await Xn(e.src);
1008
+ if (n !== this.openToken) return;
1009
+ this.loaded = i;
1010
+ const o = { width: i.width, height: i.height }, r = Ln(o, e.cropAspectRatio), a = e.initialState ?? {}, s = {
1011
+ ...r,
1012
+ ...a,
1013
+ crop: { ...r.crop, ...a.crop },
1014
+ finetune: { ...Qe, ...a.finetune },
1015
+ redact: { ...r.redact, ...a.redact }
1016
+ };
1017
+ s.filter && s.filter !== "default" && !s.colorMatrix && (s.colorMatrix = Ce[s.filter] ?? null);
1018
+ const _ = Be(s, o);
1019
+ this.initial = Be(r, o), this.history = [_t(_)], this.index = 0, this.patch({ status: "ready", state: _, size: o }), this.emit("load", { size: o });
1020
+ } catch (i) {
1021
+ if (n !== this.openToken) return;
1022
+ throw this.patch({ status: "error", error: i }), i;
1023
+ }
1024
+ }
1025
+ close() {
1026
+ var n;
1027
+ this.openToken++;
1028
+ const e = (n = this.loaded) == null ? void 0 : n.image;
1029
+ e && "close" in e && typeof e.close == "function" && e.close(), this.loaded = null, this.emit("close");
1030
+ }
1031
+ // ── state ────────────────────────────────────────────────────────────────────────────────────
1032
+ getState() {
1033
+ if (!this.snapshot.state) throw new Error("No image is open");
1034
+ return _t(this.snapshot.state);
1035
+ }
1036
+ /** Replace part of the state and commit it (one undo step). */
1037
+ setState(e) {
1038
+ this.preview(e), this.commit();
1039
+ }
1040
+ /** Apply a live (uncommitted) change — e.g. while dragging. Call `commit()` when the interaction ends. */
1041
+ preview(e) {
1042
+ const n = this.snapshot.state, i = this.snapshot.size;
1043
+ if (!n || !i) return;
1044
+ const o = { ...n, ...e }, r = this.index >= 0 ? this.history[this.index] : n;
1045
+ "resize" in e && !or(e.resize ?? null, r.resize) || (o.resize = Cn(r, { ...o, resize: r.resize })), this.patch({ state: o });
1046
+ }
1047
+ /** Push the current state onto the history (if it changed) and emit `update`. */
1048
+ commit() {
1049
+ const e = this.snapshot.state;
1050
+ e && (this.index >= 0 && _e(e, this.history[this.index]) || (this.history = this.history.slice(0, this.index + 1), this.history.push(_t(e)), this.history.length > ir && this.history.shift(), this.index = this.history.length - 1, this.patch({}), this.emit("update", _t(e))));
1051
+ }
1052
+ undo() {
1053
+ this.index <= 0 || (this.index--, this.patch({ state: _t(this.history[this.index]) }), this.emit("undo", this.getState()), this.emit("update", this.getState()));
1054
+ }
1055
+ redo() {
1056
+ this.index >= this.history.length - 1 || (this.index++, this.patch({ state: _t(this.history[this.index]) }), this.emit("redo", this.getState()), this.emit("update", this.getState()));
1057
+ }
1058
+ /**
1059
+ * Back to the original image — every edit dropped, including the ones an `initialState` re-opened with.
1060
+ * It's one history step, so Undo brings the edits back.
1061
+ */
1062
+ revert() {
1063
+ const e = this.snapshot.state;
1064
+ !this.initial || !e || _e(e, this.initial) || (this.patch({ state: _t(this.initial) }), this.commit(), this.emit("revert", this.getState()));
1065
+ }
1066
+ setUi(e) {
1067
+ e.util && e.util !== this.snapshot.ui.util && this.commit(), this.patch({ ui: { ...this.snapshot.ui, ...e } });
1068
+ }
1069
+ /** Render the current state at full resolution. */
1070
+ async process() {
1071
+ var a, s;
1072
+ const e = this.loaded, n = this.snapshot.state;
1073
+ if (!e || !n) throw new Error("No image is open");
1074
+ const i = Bn((a = this.options) == null ? void 0 : a.outputType, e.type), r = { dest: await nr(
1075
+ e.image,
1076
+ { width: e.width, height: e.height },
1077
+ n,
1078
+ i,
1079
+ ((s = this.options) == null ? void 0 : s.outputQuality) ?? 0.92
1080
+ ), imageState: _t(n) };
1081
+ return this.emit("process", r), r;
1082
+ }
1083
+ }
1084
+ const po = () => new dn(), ar = () => typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
1085
+ function $e(t, e, n, { stiffness: i = 240, damping: o = 30 } = {}, r) {
1086
+ if (ar() || typeof requestAnimationFrame != "function") {
1087
+ n(e), r == null || r();
1088
+ const S = (() => {
1089
+ });
1090
+ return S.retarget = (y) => n(y), S;
1091
+ }
1092
+ const a = [...e], s = [...t], _ = t.map(() => 0), c = t.map((S, y) => Math.max(1e-5, Math.abs(a[y] - S) * 1e-3));
1093
+ let M = performance.now(), d = 0, T = !1;
1094
+ const f = (S) => {
1095
+ if (T) return;
1096
+ let y = Math.min(0.064, (S - M) / 1e3);
1097
+ for (M = S; y > 0; ) {
1098
+ const l = Math.min(y, 0.008333333333333333);
1099
+ for (let C = 0; C < s.length; C++) {
1100
+ const u = -i * (s[C] - a[C]) - o * _[C];
1101
+ _[C] += u * l, s[C] += _[C] * l;
1102
+ }
1103
+ y -= l;
1104
+ }
1105
+ if (s.every(
1106
+ (l, C) => Math.abs(l - a[C]) < c[C] && Math.abs(_[C]) < c[C] * 10
1107
+ )) {
1108
+ n(a), r == null || r();
1109
+ return;
1110
+ }
1111
+ n([...s]), d = requestAnimationFrame(f);
1112
+ };
1113
+ d = requestAnimationFrame(f);
1114
+ const A = (() => {
1115
+ T = !0, cancelAnimationFrame(d);
1116
+ });
1117
+ return A.retarget = (S) => {
1118
+ for (let y = 0; y < a.length; y++)
1119
+ a[y] = S[y], c[y] = Math.max(c[y], 1e-5);
1120
+ }, A;
1121
+ }
1122
+ const sr = "_overlay_2796b_6", cr = "_editor_2796b_11", lr = "_header_2796b_61", hr = "_headerStart_2796b_70", ur = "_headerCenter_2796b_74", dr = "_headerEnd_2796b_79", mr = "_group_2796b_84", fr = "_zoomLabel_2796b_97", pr = "_done_2796b_105", gr = "_closeIcon_2796b_116", _r = "_groupDivider_2796b_120", br = "_main_2796b_148", wr = "_nav_2796b_159", vr = "_stage_2796b_160", xr = "_toolbar_2796b_161", Mr = "_canvasArea_2796b_162", yr = "_footer_2796b_163", Er = "_footerInner_2796b_164", Tr = "_navList_2796b_169", Ir = "_toolbarRow_2796b_170", Ar = "_tool_2796b_161", Sr = "_toolActive_2796b_217", Cr = "_shapeSlot_2796b_263", Rr = "_shapePreview_2796b_270", Lr = "_shapeCustom_2796b_276", kr = "_shapeOrientation_2796b_281", Nr = "_orientButton_2796b_290", Pr = "_orientActive_2796b_313", zr = "_viewport_2796b_330", Dr = "_viewportCrop_2796b_339", Ur = "_viewportPannable_2796b_342", Fr = "_canvas_2796b_162", Or = "_scene_2796b_355", Xr = "_cropBox_2796b_362", Br = "_grid_2796b_369", Yr = "_cropInteracting_2796b_398", Vr = "_sizeBadge_2796b_404", $r = "_sizeBadgeActive_2796b_430", Gr = "_sizeTimes_2796b_433", jr = "_sizeUnit_2796b_434", qr = "_handle_2796b_444", Wr = "_handle_nw_2796b_448", Kr = "_handle_ne_2796b_449", Hr = "_handle_sw_2796b_450", Qr = "_handle_se_2796b_451", Zr = "_handle_n_2796b_448", Jr = "_handle_s_2796b_450", ti = "_handle_w_2796b_511", ei = "_handle_e_2796b_512", ni = "_status_2796b_527", ri = "_toastError_2796b_538", ii = "_tabs_2796b_571", oi = "_tab_2796b_571", ai = "_tabActive_2796b_606", si = "_tabDot_2796b_617", ci = "_resizePanel_2796b_628", li = "_resizeFields_2796b_634", hi = "_dimField_2796b_640", ui = "_dimLabel_2796b_658", di = "_dimLabelShort_2796b_662", mi = "_dimInput_2796b_665", fi = "_dimUnit_2796b_681", pi = "_lockButton_2796b_686", gi = "_lockActive_2796b_703", _i = "_strip_2796b_715", bi = "_fadeStart_2796b_730", wi = "_fadeEnd_2796b_734", vi = "_stripGroup_2796b_754", xi = "_filterTile_2796b_759", Mi = "_filterThumb_2796b_773", yi = "_filterActive_2796b_804", Ei = "_filterLabel_2796b_814", Ti = "_fadeIn_2796b_819", Ii = "_toolbarIconOnPhone_2796b_861", Ai = "_toolbarLabel_2796b_873", Si = "_dimLabelFull_2796b_882", Ci = "_toolLabel_2796b_918", b = {
1123
+ overlay: sr,
1124
+ editor: cr,
1125
+ header: lr,
1126
+ headerStart: hr,
1127
+ headerCenter: ur,
1128
+ headerEnd: dr,
1129
+ group: mr,
1130
+ zoomLabel: fr,
1131
+ done: pr,
1132
+ closeIcon: gr,
1133
+ groupDivider: _r,
1134
+ main: br,
1135
+ nav: wr,
1136
+ stage: vr,
1137
+ toolbar: xr,
1138
+ canvasArea: Mr,
1139
+ footer: yr,
1140
+ footerInner: Er,
1141
+ navList: Tr,
1142
+ toolbarRow: Ir,
1143
+ tool: Ar,
1144
+ toolActive: Sr,
1145
+ shapeSlot: Cr,
1146
+ shapePreview: Rr,
1147
+ shapeCustom: Lr,
1148
+ shapeOrientation: kr,
1149
+ orientButton: Nr,
1150
+ orientActive: Pr,
1151
+ viewport: zr,
1152
+ viewportCrop: Dr,
1153
+ viewportPannable: Ur,
1154
+ canvas: Fr,
1155
+ scene: Or,
1156
+ cropBox: Xr,
1157
+ grid: Br,
1158
+ cropInteracting: Yr,
1159
+ sizeBadge: Vr,
1160
+ "tz-ie-fade": "_tz-ie-fade_2796b_1",
1161
+ sizeBadgeActive: $r,
1162
+ sizeTimes: Gr,
1163
+ sizeUnit: jr,
1164
+ handle: qr,
1165
+ handle_nw: Wr,
1166
+ handle_ne: Kr,
1167
+ handle_sw: Hr,
1168
+ handle_se: Qr,
1169
+ handle_n: Zr,
1170
+ handle_s: Jr,
1171
+ handle_w: ti,
1172
+ handle_e: ei,
1173
+ status: ni,
1174
+ toastError: ri,
1175
+ tabs: ii,
1176
+ tab: oi,
1177
+ tabActive: ai,
1178
+ tabDot: si,
1179
+ resizePanel: ci,
1180
+ resizeFields: li,
1181
+ dimField: hi,
1182
+ dimLabel: ui,
1183
+ dimLabelShort: di,
1184
+ dimInput: mi,
1185
+ dimUnit: fi,
1186
+ lockButton: pi,
1187
+ lockActive: gi,
1188
+ strip: _i,
1189
+ fadeStart: bi,
1190
+ fadeEnd: wi,
1191
+ stripGroup: vi,
1192
+ filterTile: xi,
1193
+ filterThumb: Mi,
1194
+ filterActive: yi,
1195
+ filterLabel: Ei,
1196
+ fadeIn: Ti,
1197
+ toolbarIconOnPhone: Ii,
1198
+ toolbarLabel: Ai,
1199
+ dimLabelFull: Si,
1200
+ toolLabel: Ci
1201
+ }, Ri = 24, Li = 12, Ge = 4096, ki = 768, je = 0.35;
1202
+ function Ni(t) {
1203
+ const e = t ? getComputedStyle(t).getPropertyValue("--tz-color-background-rgb") : "", [n, i, o] = e.split(",").map((r) => Number(r.trim()) / 255);
1204
+ return [n, i, o].every((r) => Number.isFinite(r)) ? [n, i, o] : [0, 0, 0];
1205
+ }
1206
+ const Pi = 40, zi = ["nw", "ne", "sw", "se", "n", "s", "w", "e"], Ot = (t) => [t.center[0], t.center[1], Math.log(t.scale), t.rotation, t.flip], Di = (t) => ({
1207
+ center: [t[0], t[1]],
1208
+ scale: Math.exp(t[2]),
1209
+ rotation: t[3],
1210
+ flip: t[4]
1211
+ }), Ui = Ke(function({ core: e, snapshot: n, cropAspectRatio: i, viewZoom: o, onViewZoom: r, onZoomReport: a, areaRef: s }, _) {
1212
+ const { state: c, size: M, ui: d } = n, T = wn(), f = d.util, A = O(null), S = O(null), [y, x] = Q(null), [l, C] = Q(null), u = O(null);
1213
+ u.current = l;
1214
+ const [R, m] = Q([0, 0]), [E, v] = Q(!1), [N, j] = Q(0), G = O(!1), W = O(null), V = O(null), ct = O(null), Z = O(/* @__PURE__ */ new Map()), dt = O(void 0);
1215
+ q(() => {
1216
+ const g = A.current;
1217
+ if (!g) return;
1218
+ const p = () => {
1219
+ var F;
1220
+ const D = g.getBoundingClientRect(), Y = (F = s == null ? void 0 : s.current) == null ? void 0 : F.getBoundingClientRect();
1221
+ x({
1222
+ width: D.width,
1223
+ height: D.height,
1224
+ dpr: window.devicePixelRatio || 1,
1225
+ // horizontally the area is mirrored to the wider side, so the crop sits in the middle of the
1226
+ // screen (not of the space right of the tool menu); vertically it's the space between the bars
1227
+ area: Y ? Fi(D, Y) : void 0
1228
+ });
1229
+ };
1230
+ if (p(), k.current = p, typeof ResizeObserver > "u") return;
1231
+ const P = new ResizeObserver(p);
1232
+ return P.observe(g), s != null && s.current && P.observe(s.current), () => P.disconnect();
1233
+ }, [s]);
1234
+ const k = O(null);
1235
+ ue(() => {
1236
+ var g;
1237
+ (g = k.current) == null || g.call(k);
1238
+ }, [f, n.status]);
1239
+ const z = n.status === "ready" ? e.image : null, [L, $] = Q(null);
1240
+ q(() => {
1241
+ const g = S.current;
1242
+ if (!z || !g) return;
1243
+ const p = se.create(g), P = Math.min(Ge, (p == null ? void 0 : p.maxTextureSize) ?? Ge), D = te(z.image, z.width, z.height, P), Y = ke * Math.max(z.width, z.height) * (D.width / z.width), F = rn(D.canvas, D.width, D.height, Y);
1244
+ return p == null || p.setImage(D.canvas, F), $({ gl: p, tex: D, blur: F }), () => {
1245
+ p == null || p.dispose(!1), $(null);
1246
+ };
1247
+ }, [z]);
1248
+ const H = c && M ? Rt(c).width * c.scale / Xt(c).width : 1, mt = M ? Math.max(1, Math.round(M.width * H)) : 0, lt = (c == null ? void 0 : c.redact.effect) ?? "blur", xt = (c == null ? void 0 : c.redact.amount) ?? 0, [J, rt] = Q(null);
1249
+ q(() => {
1250
+ if (!L || !M) {
1251
+ rt(null);
1252
+ return;
1253
+ }
1254
+ const g = requestAnimationFrame(() => {
1255
+ let p = { ...L.tex, mipmap: !0, pixelate: !1 };
1256
+ mt < p.width && (p = {
1257
+ ...te(
1258
+ p.canvas,
1259
+ p.width,
1260
+ p.height,
1261
+ Math.max(1, Math.round(Math.max(M.width, M.height) * H))
1262
+ ),
1263
+ mipmap: !0,
1264
+ pixelate: !1
1265
+ });
1266
+ const P = Te({ redact: { effect: lt, amount: xt } }, M);
1267
+ if (P <= 0) return rt(p);
1268
+ const D = P * (p.width / M.width);
1269
+ if (lt === "blur") {
1270
+ const F = sn(p.canvas, p.width, p.height, D, ki);
1271
+ return rt({
1272
+ canvas: F,
1273
+ width: F.width,
1274
+ height: F.height,
1275
+ mipmap: !0,
1276
+ pixelate: !1
1277
+ });
1278
+ }
1279
+ if (!L.gl) {
1280
+ const F = qn(p.canvas, p.width, p.height, D);
1281
+ return rt({
1282
+ canvas: F,
1283
+ width: F.width,
1284
+ height: F.height,
1285
+ mipmap: !1,
1286
+ pixelate: !1
1287
+ });
1288
+ }
1289
+ const Y = te(
1290
+ p.canvas,
1291
+ p.width,
1292
+ p.height,
1293
+ Math.max(p.width, p.height) / Math.max(1, D)
1294
+ );
1295
+ rt({ ...Y, mipmap: !1, pixelate: !0 });
1296
+ });
1297
+ return () => cancelAnimationFrame(g);
1298
+ }, [L, mt, lt, xt]), ue(() => {
1299
+ L != null && L.gl && J && L.gl.setSource(J.canvas, J.mipmap);
1300
+ }, [L, J]);
1301
+ const tt = mn(() => {
1302
+ if (!c || !y) return null;
1303
+ const g = y.area ?? y;
1304
+ if (f === "crop") return Ve(c.crop, g, Math.min(Ri, g.width * 0.06));
1305
+ const p = Xt(c), P = Ve(p, g, Li), D = c.resize ? { ...P, scale: Math.min(P.scale, Rt(c).width / p.width) } : P;
1306
+ if (o == null) return D;
1307
+ const Y = o / c.scale, F = Math.max(0, p.width / 2 - g.width / 2 / Y), it = Math.max(0, p.height / 2 - g.height / 2 / Y), ht = Math.max(-F, Math.min(F, R[0])), yt = Math.max(-it, Math.min(it, R[1]));
1308
+ return { ...D, scale: Y, center: [D.center[0] + ht, D.center[1] + yt] };
1309
+ }, [c, y, f, o, R, N]), qt = O(f), It = O(!1), Mt = O({
1310
+ stage: y,
1311
+ state: c
1312
+ }), Nt = (g, p) => {
1313
+ var P;
1314
+ (P = V.current) == null || P.call(V), It.current = !0, V.current = $e(
1315
+ Ot(g),
1316
+ Ot(p),
1317
+ (D) => C(Di(D)),
1318
+ void 0,
1319
+ () => {
1320
+ It.current = !1;
1321
+ }
1322
+ );
1323
+ }, [ft, ce] = Q(f === "crop" ? je : 0), Wt = O(ft);
1324
+ Wt.current = ft, q(() => {
1325
+ const g = f === "crop" ? je : 0;
1326
+ return $e([Wt.current], [g], ([p]) => ce(Math.max(0, p)));
1327
+ }, [f]), ue(() => {
1328
+ var it, ht, yt, De;
1329
+ if (!tt) return;
1330
+ qt.current !== f && (qt.current = f, u.current && !W.current && (W.current = "jump"));
1331
+ const g = y !== Mt.current.stage && c === Mt.current.state, p = (it = Mt.current.state) == null ? void 0 : it.resize, P = f === "resize" && (((ht = c == null ? void 0 : c.resize) == null ? void 0 : ht.width) !== (p == null ? void 0 : p.width) || ((yt = c == null ? void 0 : c.resize) == null ? void 0 : yt.height) !== (p == null ? void 0 : p.height)), D = Mt.current.target, Y = !!D && Ot(D).every((Dt, le) => Math.abs(Dt - Ot(tt)[le]) < 1e-9);
1332
+ Mt.current = { stage: y, state: c, target: tt };
1333
+ const F = W.current;
1334
+ if (F) {
1335
+ W.current = null;
1336
+ const Dt = u.current ?? tt, le = F === "rotate" ? { center: tt.center, scale: Dt.scale, rotation: Math.PI / 2, flip: 1 } : F === "flip" ? { center: tt.center, scale: Dt.scale, rotation: 0, flip: -1 } : Dt;
1337
+ Nt(le, tt);
1338
+ return;
1339
+ }
1340
+ if ((g || P || Y) && It.current && V.current) {
1341
+ V.current.retarget(Ot(tt));
1342
+ return;
1343
+ }
1344
+ if (P && u.current && !G.current) {
1345
+ Nt(u.current, tt);
1346
+ return;
1347
+ }
1348
+ G.current || ((De = V.current) == null || De.call(V), V.current = null, It.current = !1, C(tt));
1349
+ }, [tt]), q(() => () => {
1350
+ var g;
1351
+ return (g = V.current) == null ? void 0 : g.call(V);
1352
+ }, []), q(() => {
1353
+ l && c && a(l.scale * c.scale);
1354
+ }, [l, c, a]), q(() => {
1355
+ const g = S.current;
1356
+ if (!g || !y) return;
1357
+ const p = Math.max(1, Math.round(y.width * y.dpr)), P = Math.max(1, Math.round(y.height * y.dpr));
1358
+ g.width !== p && (g.width = p), g.height !== P && (g.height = P);
1359
+ }, [y]), q(() => {
1360
+ if (!L || !J || !c || !M || !l || !y) return;
1361
+ const g = f === "crop" ? c : { ...c, crop: Xt(c) }, p = Kn(g, M, l, y), P = J.pixelate ? Te(c, M) : 0, D = P > 0 ? {
1362
+ pixel: ((F) => [F.cols, F.rows])(
1363
+ an(g.crop, P * c.scale)
1364
+ ),
1365
+ cropToUV: at(Lt(p.toCrop), p.toUV)
1366
+ } : null, Y = requestAnimationFrame(() => {
1367
+ const F = {
1368
+ ...Pe(c),
1369
+ ...p,
1370
+ ...D,
1371
+ // the image around the crop: dimmed in the Crop view, gone (faded into the background) in the
1372
+ // others — `surround` springs between the two on a tool switch
1373
+ clip: ft <= 1e-3,
1374
+ dim: ft,
1375
+ dimColor: Ni(A.current)
1376
+ };
1377
+ L.gl ? L.gl.render(F) : S.current && Zn(S.current, J.canvas, J, L.blur, L.blur, F);
1378
+ });
1379
+ return () => cancelAnimationFrame(Y);
1380
+ }, [L, J, c, M, l, y, ft, T, f]), fn(_, () => ({
1381
+ transition(g) {
1382
+ W.current = g;
1383
+ }
1384
+ }));
1385
+ const pt = (l == null ? void 0 : l.scale) ?? 1, Kt = O(r);
1386
+ Kt.current = r;
1387
+ const Pt = () => {
1388
+ const [g, p] = [...Z.current.values()];
1389
+ return g && p ? Math.hypot(g.x - p.x, g.y - p.y) : 0;
1390
+ }, gt = (g) => {
1391
+ var P, D;
1392
+ if (!c || !M || g.pointerType === "mouse" && g.button !== 0 || g.target.closest("button")) return;
1393
+ if (g.currentTarget.setPointerCapture(g.pointerId), Z.current.set(g.pointerId, { x: g.clientX, y: g.clientY }), (P = V.current) == null || P.call(V), Z.current.size === 2) {
1394
+ ct.current = {
1395
+ kind: "pinch",
1396
+ dist: Pt(),
1397
+ base: c,
1398
+ zoom: Jt(c, M),
1399
+ viewZoom: ((l == null ? void 0 : l.scale) ?? 1) * c.scale
1400
+ };
1401
+ return;
1402
+ }
1403
+ const p = (D = g.target.closest("[data-handle]")) == null ? void 0 : D.dataset.handle;
1404
+ f === "crop" ? (ct.current = p ? { kind: "resize", id: g.pointerId, x: g.clientX, y: g.clientY, base: c, handle: p } : { kind: "pan", id: g.pointerId, x: g.clientX, y: g.clientY, base: c }, p && (G.current = !0), v(!0)) : o != null && (ct.current = { kind: "viewPan", id: g.pointerId, x: g.clientX, y: g.clientY, pan: R });
1405
+ }, zt = (g) => {
1406
+ if (!Z.current.has(g.pointerId) || !M) return;
1407
+ Z.current.set(g.pointerId, { x: g.clientX, y: g.clientY });
1408
+ const p = ct.current;
1409
+ if (!p) return;
1410
+ if (p.kind === "pinch") {
1411
+ const Y = Pt() / Math.max(1, p.dist);
1412
+ f === "crop" ? e.preview(Yt(p.base, Math.min(Bt, p.zoom * Y), M)) : r(be(p.viewZoom * Y));
1413
+ return;
1414
+ }
1415
+ if (p.id !== g.pointerId) return;
1416
+ const P = (g.clientX - p.x) / pt, D = (g.clientY - p.y) / pt;
1417
+ if (p.kind === "pan") e.preview(Pn(p.base, -P, -D, M));
1418
+ else if (p.kind === "resize") {
1419
+ const Y = p.base.crop, it = i || p.base.cropRatio || g.shiftKey ? Y.width / Y.height : null;
1420
+ e.preview(
1421
+ Dn(p.base, p.handle, P, D, M, {
1422
+ aspectRatio: it,
1423
+ minSize: Math.max(p.base.scale, Pi / pt)
1424
+ })
1425
+ );
1426
+ } else p.kind === "viewPan" && m([p.pan[0] - P, p.pan[1] - D]);
1427
+ }, Ht = (g) => {
1428
+ if (!Z.current.has(g.pointerId)) return;
1429
+ Z.current.delete(g.pointerId);
1430
+ const p = ct.current;
1431
+ if (p) {
1432
+ if (p.kind === "pinch") {
1433
+ Z.current.size === 0 && (ct.current = null, f === "crop" && e.commit());
1434
+ return;
1435
+ }
1436
+ p.id === g.pointerId && (ct.current = null, v(!1), p.kind === "resize" ? (G.current = !1, W.current = "jump", e.commit(), j((P) => P + 1)) : p.kind === "pan" && e.commit());
1437
+ }
1438
+ }, h = (g) => {
1439
+ if (!c || !M) return;
1440
+ const p = g.ctrlKey || g.metaKey;
1441
+ if (!(p && I.current)) {
1442
+ if (f === "crop") {
1443
+ const P = Math.exp(-g.deltaY * (p ? 0.01 : 2e-3));
1444
+ e.preview(Yt(c, Math.min(Bt, Jt(c, M) * P), M)), clearTimeout(dt.current), dt.current = setTimeout(() => e.commit(), 250);
1445
+ return;
1446
+ }
1447
+ if (p) {
1448
+ const P = ((l == null ? void 0 : l.scale) ?? 1) * c.scale;
1449
+ r(be(P * Math.exp(-g.deltaY * 0.01)));
1450
+ } else o != null && m(([P, D]) => [P + g.deltaX / pt, D + g.deltaY / pt]);
1451
+ }
1452
+ };
1453
+ q(() => () => clearTimeout(dt.current), []);
1454
+ const I = O(null), U = O({ state: c, size: M, util: f, view: l });
1455
+ U.current = { state: c, size: M, util: f, view: l }, q(() => {
1456
+ const g = A.current;
1457
+ if (!g) return;
1458
+ const p = (Y) => {
1459
+ const { state: F, size: it, view: ht } = U.current;
1460
+ Y.preventDefault(), !(!F || !it || Z.current.size > 0) && (I.current = { base: F, zoom: Jt(F, it), viewZoom: ((ht == null ? void 0 : ht.scale) ?? 1) * F.scale });
1461
+ }, P = (Y) => {
1462
+ const F = I.current, { size: it, util: ht } = U.current;
1463
+ if (!F || !it) return;
1464
+ Y.preventDefault();
1465
+ const yt = Y.scale || 1;
1466
+ ht === "crop" ? e.preview(Yt(F.base, Math.min(Bt, F.zoom * yt), it)) : Kt.current(be(F.viewZoom * yt));
1467
+ }, D = (Y) => {
1468
+ I.current && (Y.preventDefault(), I.current = null, U.current.util === "crop" && e.commit());
1469
+ };
1470
+ return g.addEventListener("gesturestart", p), g.addEventListener("gesturechange", P), g.addEventListener("gestureend", D), () => {
1471
+ g.removeEventListener("gesturestart", p), g.removeEventListener("gesturechange", P), g.removeEventListener("gestureend", D);
1472
+ };
1473
+ }, [e]);
1474
+ let X = null;
1475
+ if (f === "crop" && c && y && l) {
1476
+ const g = hn({ ...l, rotation: 0, flip: 1 }, y), [p, P] = ne(g, c.crop.x, c.crop.y), [D, Y] = ne(
1477
+ g,
1478
+ c.crop.x + c.crop.width,
1479
+ c.crop.y + c.crop.height
1480
+ );
1481
+ X = { left: p, top: P, width: D - p, height: Y - P };
1482
+ }
1483
+ const At = l && y ? {
1484
+ transform: `scaleX(${l.flip}) rotate(${l.rotation}rad)`,
1485
+ transformOrigin: ln(y).map((g) => `${g}px`).join(" ")
1486
+ } : void 0;
1487
+ return /* @__PURE__ */ B(
1488
+ "div",
1489
+ {
1490
+ ref: A,
1491
+ className: K(
1492
+ b.viewport,
1493
+ f === "crop" ? b.viewportCrop : o != null && b.viewportPannable
1494
+ ),
1495
+ "data-part": "viewport",
1496
+ onPointerDown: gt,
1497
+ onPointerMove: zt,
1498
+ onPointerUp: Ht,
1499
+ onPointerCancel: Ht,
1500
+ onWheel: h,
1501
+ children: [
1502
+ /* @__PURE__ */ w("canvas", { ref: S, className: b.canvas, "data-part": "canvas" }),
1503
+ X && /* @__PURE__ */ w("div", { className: K(b.scene, b.fadeIn), style: At, children: /* @__PURE__ */ B(
1504
+ "div",
1505
+ {
1506
+ className: K(b.cropBox, E && b.cropInteracting),
1507
+ style: X,
1508
+ "data-part": "crop",
1509
+ children: [
1510
+ /* @__PURE__ */ w("span", { className: b.grid, "aria-hidden": "true" }),
1511
+ zi.map((g) => /* @__PURE__ */ w(
1512
+ "span",
1513
+ {
1514
+ className: K(b.handle, b[`handle_${g}`]),
1515
+ "data-handle": g,
1516
+ "aria-hidden": "true"
1517
+ },
1518
+ g
1519
+ ))
1520
+ ]
1521
+ }
1522
+ ) }),
1523
+ X && c && l && l.rotation === 0 && l.flip === 1 && /* @__PURE__ */ B(
1524
+ "div",
1525
+ {
1526
+ className: K(b.sizeBadge, E && b.sizeBadgeActive),
1527
+ style: {
1528
+ left: X.left + X.width / 2,
1529
+ top: X.top + X.height
1530
+ },
1531
+ "data-part": "size",
1532
+ children: [
1533
+ Rt(c).width,
1534
+ /* @__PURE__ */ w("span", { className: b.sizeTimes, children: "×" }),
1535
+ Rt(c).height,
1536
+ /* @__PURE__ */ w("span", { className: b.sizeUnit, children: "px" })
1537
+ ]
1538
+ }
1539
+ )
1540
+ ]
1541
+ }
1542
+ );
1543
+ });
1544
+ function Fi(t, e) {
1545
+ const n = Math.max(0, e.left - t.left, t.right - e.right);
1546
+ return {
1547
+ x: n,
1548
+ y: e.top - t.top,
1549
+ width: Math.max(1, t.width - n * 2),
1550
+ height: e.height
1551
+ };
1552
+ }
1553
+ const Ie = 0.02, Ae = 8, be = (t) => Math.min(Ae, Math.max(Ie, t)), Oi = [
1554
+ { label: "1:1", ratio: 1 },
1555
+ { label: "2:1", ratio: 2 },
1556
+ { label: "3:2", ratio: 3 / 2 },
1557
+ { label: "4:3", ratio: 4 / 3 },
1558
+ { label: "5:4", ratio: 5 / 4 },
1559
+ { label: "16:10", ratio: 16 / 10 },
1560
+ { label: "16:9", ratio: 16 / 9 }
1561
+ ], Qt = (t, e) => Math.abs(t - e) < 1e-3, Xi = (t) => t.split(":").reverse().join(":");
1562
+ function qe({ ratio: t }) {
1563
+ const n = t == null || t >= 1 ? 16 : Math.max(6, 16 * t), i = t == null || t <= 1 ? 16 : Math.max(6, 16 / t);
1564
+ return /* @__PURE__ */ w("span", { className: b.shapeSlot, children: /* @__PURE__ */ w(
1565
+ "span",
1566
+ {
1567
+ className: K(b.shapePreview, t == null && b.shapeCustom),
1568
+ style: { width: n, height: i }
1569
+ }
1570
+ ) });
1571
+ }
1572
+ function Bi({ ratio: t, options: e, onChange: n }) {
1573
+ const i = re(), [o, r] = Q(!1), [a, s] = Q(!1), _ = t != null && !Qt(t, 1) ? t < 1 : a, c = (d) => {
1574
+ n(d), r(!1);
1575
+ }, M = (d) => {
1576
+ s(d), t != null && !Qt(t, 1) && t < 1 !== d && n(1 / t);
1577
+ };
1578
+ return /* @__PURE__ */ B(
1579
+ vn,
1580
+ {
1581
+ open: o,
1582
+ onOpenChange: r,
1583
+ closeOnSelect: !1,
1584
+ placement: "bottom-start",
1585
+ size: "sm",
1586
+ trigger: /* @__PURE__ */ w(
1587
+ Me,
1588
+ {
1589
+ variant: "text",
1590
+ color: "primary",
1591
+ size: "sm",
1592
+ startIcon: /* @__PURE__ */ w(et, { name: "MaximizeFormat" }),
1593
+ title: i("imageEditor.cropShape"),
1594
+ "aria-label": i("imageEditor.cropShape"),
1595
+ className: b.toolbarIconOnPhone,
1596
+ children: /* @__PURE__ */ w("span", { className: b.toolbarLabel, children: i("imageEditor.cropShape") })
1597
+ }
1598
+ ),
1599
+ children: [
1600
+ /* @__PURE__ */ w(
1601
+ "div",
1602
+ {
1603
+ className: b.shapeOrientation,
1604
+ role: "group",
1605
+ "aria-label": i("imageEditor.orientation"),
1606
+ children: [!1, !0].map((d) => /* @__PURE__ */ w(
1607
+ "button",
1608
+ {
1609
+ type: "button",
1610
+ className: K(b.orientButton, _ === d && b.orientActive),
1611
+ "aria-pressed": _ === d,
1612
+ "aria-label": i(d ? "imageEditor.portrait" : "imageEditor.landscape"),
1613
+ title: i(d ? "imageEditor.portrait" : "imageEditor.landscape"),
1614
+ onClick: () => M(d),
1615
+ children: /* @__PURE__ */ w(et, { name: d ? "Mobile" : "Monitor", size: "sm" })
1616
+ },
1617
+ String(d)
1618
+ ))
1619
+ }
1620
+ ),
1621
+ /* @__PURE__ */ w(
1622
+ Ue,
1623
+ {
1624
+ icon: /* @__PURE__ */ w(qe, { ratio: null }),
1625
+ clickable: !0,
1626
+ selected: t == null,
1627
+ onClick: () => c(null),
1628
+ children: i("imageEditor.custom")
1629
+ }
1630
+ ),
1631
+ e.map((d) => {
1632
+ const T = _ ? 1 / d.ratio : d.ratio;
1633
+ return /* @__PURE__ */ w(
1634
+ Ue,
1635
+ {
1636
+ icon: /* @__PURE__ */ w(qe, { ratio: T }),
1637
+ clickable: !0,
1638
+ selected: t != null && Qt(t, T),
1639
+ onClick: () => c(T),
1640
+ children: _ && !Qt(d.ratio, 1) ? Xi(d.label) : d.label
1641
+ },
1642
+ d.label
1643
+ );
1644
+ })
1645
+ ]
1646
+ }
1647
+ );
1648
+ }
1649
+ const Yi = 52;
1650
+ function Vi(t, e, n) {
1651
+ const i = Math.min(2, typeof window < "u" && window.devicePixelRatio || 1), o = Math.round(Yi * i), r = document.createElement("canvas");
1652
+ r.width = r.height = o;
1653
+ const a = r.getContext("2d", { willReadFrequently: !0 });
1654
+ if (!a) return null;
1655
+ const { crop: s } = n, _ = o / Math.min(s.width, s.height), [c, M] = Vt(s), d = at(
1656
+ Ne(n, e),
1657
+ st(-c, -M),
1658
+ nt(_),
1659
+ st(o / 2, o / 2)
1660
+ );
1661
+ a.setTransform(d[0], d[3], d[1], d[4], d[2], d[5]), a.imageSmoothingQuality = "high", a.drawImage(t, 0, 0, e.width, e.height), a.setTransform(1, 0, 0, 1, 0, 0);
1662
+ let T;
1663
+ try {
1664
+ T = a.getImageData(0, 0, o, o);
1665
+ } catch {
1666
+ return null;
1667
+ }
1668
+ const f = ke * Math.max(e.width, e.height) * n.scale * _, A = n.finetune.clarity ? Le(T.data, o, o, f) : null, S = at(
1669
+ st(-o / 2, -o / 2),
1670
+ nt(1 / _),
1671
+ nt(2 / s.width, 2 / s.height)
1672
+ ), y = {};
1673
+ for (const x of ye.flat()) {
1674
+ const l = new ImageData(new Uint8ClampedArray(T.data), o, o);
1675
+ Re(l.data, o, o, Pe(n, Ce[x]), A, S), a.putImageData(l, 0, 0), y[x] = r.toDataURL();
1676
+ }
1677
+ return y;
1678
+ }
1679
+ function $i({ image: t, size: e, state: n, onSelect: i }) {
1680
+ var R;
1681
+ const o = re(), r = O(null), [a, s] = Q({}), [_, c] = Q({ start: !1, end: !1 }), M = n.filter ?? "default", d = O(null);
1682
+ ((R = d.current) == null ? void 0 : R.image) !== t && (d.current = { image: t, source: te(t, e.width, e.height, 512).canvas });
1683
+ const T = JSON.stringify([
1684
+ n.crop,
1685
+ n.rotation,
1686
+ n.flipX,
1687
+ n.flipY,
1688
+ n.scale,
1689
+ n.finetune
1690
+ ]);
1691
+ q(() => {
1692
+ const m = setTimeout(() => {
1693
+ var N;
1694
+ const E = (N = d.current) == null ? void 0 : N.source;
1695
+ if (!E) return;
1696
+ const v = Vi(E, e, n);
1697
+ v && s(v);
1698
+ }, 120);
1699
+ return () => clearTimeout(m);
1700
+ }, [T, t]);
1701
+ const f = () => {
1702
+ const m = r.current;
1703
+ m && c({
1704
+ start: m.scrollLeft > 2,
1705
+ end: m.scrollLeft + m.clientWidth < m.scrollWidth - 2
1706
+ });
1707
+ };
1708
+ q(() => {
1709
+ f();
1710
+ const m = r.current;
1711
+ if (!m || typeof ResizeObserver > "u") return;
1712
+ const E = new ResizeObserver(f);
1713
+ return E.observe(m), () => E.disconnect();
1714
+ }, []), q(() => {
1715
+ var m, E, v;
1716
+ (v = (E = (m = r.current) == null ? void 0 : m.querySelector(`[data-filter="${M}"]`)) == null ? void 0 : E.scrollIntoView) == null || v.call(E, { block: "nearest", inline: "nearest", behavior: "smooth" });
1717
+ }, [M]), q(() => {
1718
+ const m = r.current;
1719
+ if (!m) return;
1720
+ const E = (v) => {
1721
+ Math.abs(v.deltaY) <= Math.abs(v.deltaX) || (v.preventDefault(), m.scrollLeft += v.deltaY);
1722
+ };
1723
+ return m.addEventListener("wheel", E, { passive: !1 }), () => m.removeEventListener("wheel", E);
1724
+ }, []);
1725
+ const A = O(
1726
+ null
1727
+ ), S = O(0), y = (m) => {
1728
+ if (m.pointerType !== "mouse" || m.button !== 0) return;
1729
+ cancelAnimationFrame(S.current);
1730
+ const E = r.current;
1731
+ A.current = { x: m.clientX, left: E.scrollLeft, v: 0, t: performance.now(), moved: !1 };
1732
+ }, x = (m) => {
1733
+ const E = A.current;
1734
+ if (!E) return;
1735
+ const v = r.current, N = m.clientX - E.x;
1736
+ if (Math.abs(N) > 4 && !E.moved && (E.moved = !0, v.setPointerCapture(m.pointerId)), !E.moved) return;
1737
+ const j = performance.now(), G = E.left - N;
1738
+ E.v = (v.scrollLeft - G) / Math.max(1, j - E.t), E.t = j, v.scrollLeft = G;
1739
+ }, l = () => {
1740
+ const m = A.current;
1741
+ if (A.current = null, !(m != null && m.moved)) return;
1742
+ const E = r.current;
1743
+ let v = -m.v, N = performance.now();
1744
+ const j = (W) => {
1745
+ const V = W - N;
1746
+ N = W, E.scrollLeft += v * V, v *= Math.pow(0.995, V), Math.abs(v) > 0.02 && (S.current = requestAnimationFrame(j));
1747
+ };
1748
+ S.current = requestAnimationFrame(j);
1749
+ const G = (W) => {
1750
+ W.stopPropagation(), W.preventDefault();
1751
+ };
1752
+ E.addEventListener("click", G, { capture: !0, once: !0 }), setTimeout(() => E.removeEventListener("click", G, { capture: !0 }), 0);
1753
+ };
1754
+ q(() => () => cancelAnimationFrame(S.current), []);
1755
+ const C = ye.flat(), u = (m) => {
1756
+ var N, j;
1757
+ if (m.key !== "ArrowLeft" && m.key !== "ArrowRight") return;
1758
+ const E = C.indexOf(m.target.dataset.filter);
1759
+ if (E === -1) return;
1760
+ m.preventDefault();
1761
+ const v = C[Math.min(C.length - 1, Math.max(0, E + (m.key === "ArrowRight" ? 1 : -1)))];
1762
+ (j = (N = r.current) == null ? void 0 : N.querySelector(`[data-filter="${v}"]`)) == null || j.focus();
1763
+ };
1764
+ return /* @__PURE__ */ w(
1765
+ "div",
1766
+ {
1767
+ ref: r,
1768
+ className: K(b.strip, _.start && b.fadeStart, _.end && b.fadeEnd),
1769
+ "data-part": "filters",
1770
+ role: "group",
1771
+ "aria-label": o("imageEditor.filters"),
1772
+ onScroll: f,
1773
+ onPointerDown: y,
1774
+ onPointerMove: x,
1775
+ onPointerUp: l,
1776
+ onPointerCancel: l,
1777
+ onKeyDown: u,
1778
+ children: ye.map((m, E) => /* @__PURE__ */ w("div", { className: b.stripGroup, children: m.map((v) => /* @__PURE__ */ B(
1779
+ "button",
1780
+ {
1781
+ type: "button",
1782
+ className: K(b.filterTile, v === M && b.filterActive),
1783
+ "data-filter": v,
1784
+ "aria-pressed": v === M,
1785
+ onClick: () => i(v),
1786
+ children: [
1787
+ /* @__PURE__ */ w("span", { className: b.filterThumb, children: a[v] && /* @__PURE__ */ w("img", { src: a[v], alt: "", draggable: !1 }) }),
1788
+ /* @__PURE__ */ w("span", { className: b.filterLabel, children: o(`imageEditor.filter.${v}`) })
1789
+ ]
1790
+ },
1791
+ v
1792
+ )) }, E))
1793
+ }
1794
+ );
1795
+ }
1796
+ const Gi = [1, 0.75, 0.5, 0.25], bt = (t, e) => Math.max(1, Math.min(e, Math.round(t)));
1797
+ function ji({
1798
+ max: t,
1799
+ value: e,
1800
+ locked: n,
1801
+ onLockedChange: i,
1802
+ onInput: o,
1803
+ onChange: r
1804
+ }) {
1805
+ const a = re(), s = e, [_, c] = Q({ w: String(s.width), h: String(s.height) });
1806
+ q(() => {
1807
+ c({ w: String(s.width), h: String(s.height) });
1808
+ }, [s.width, s.height]);
1809
+ const d = Math.round(s.width * t.height / t.width) === s.height || Math.round(s.height * t.width / t.height) === s.width ? t.width / t.height : s.width / s.height, T = O(null), f = T.current ?? d, A = (u, R) => {
1810
+ const m = Number(R);
1811
+ if (!R || !Number.isFinite(m) || m <= 0) return null;
1812
+ if (u === "w") {
1813
+ let N = bt(m, t.width);
1814
+ if (!n) return { width: N, height: s.height };
1815
+ const j = bt(N / f, t.height);
1816
+ return j < N / f - 0.5 && (N = bt(j * f, t.width)), { width: N, height: j };
1817
+ }
1818
+ let E = bt(m, t.height);
1819
+ if (!n) return { width: s.width, height: E };
1820
+ const v = bt(E * f, t.width);
1821
+ return v < E * f - 0.5 && (E = bt(v / f, t.height)), { width: v, height: E };
1822
+ }, S = (u) => u.width === t.width && u.height === t.height ? null : u, y = (u, R) => {
1823
+ const m = R.replace(/[^\d]/g, ""), E = A(u, m);
1824
+ c(
1825
+ (v) => E ? {
1826
+ w: u === "w" ? m : String(E.width),
1827
+ h: u === "h" ? m : String(E.height)
1828
+ } : { ...v, [u]: m }
1829
+ ), E && o(S(E));
1830
+ }, x = () => {
1831
+ const u = Number(_.w), R = Number(_.h);
1832
+ let m = s;
1833
+ u > 0 && R > 0 && (m = n ? A("w", _.w) ?? s : { width: bt(u, t.width), height: bt(R, t.height) }), c({ w: String(m.width), h: String(m.height) }), r(S(m));
1834
+ }, l = (u, R) => {
1835
+ if (u.key === "Enter") {
1836
+ u.preventDefault(), x();
1837
+ return;
1838
+ }
1839
+ if (u.key !== "ArrowUp" && u.key !== "ArrowDown") return;
1840
+ u.preventDefault();
1841
+ const m = (u.shiftKey ? 10 : 1) * (u.key === "ArrowUp" ? 1 : -1), E = R === "w" ? s.width : s.height, v = A(R, String(E + m));
1842
+ v && (c({ w: String(v.width), h: String(v.height) }), r(S(v)));
1843
+ }, C = (u) => s.width === Math.max(1, Math.round(t.width * u)) && s.height === Math.max(1, Math.round(t.height * u));
1844
+ return /* @__PURE__ */ B("div", { className: b.resizePanel, "data-part": "resize", children: [
1845
+ /* @__PURE__ */ B("div", { className: b.resizeFields, children: [
1846
+ /* @__PURE__ */ B("label", { className: b.dimField, children: [
1847
+ /* @__PURE__ */ B("span", { className: b.dimLabel, children: [
1848
+ /* @__PURE__ */ w("span", { className: b.dimLabelFull, children: a("imageEditor.width") }),
1849
+ /* @__PURE__ */ w("span", { className: b.dimLabelShort, "aria-hidden": "true", children: a("imageEditor.width").charAt(0) })
1850
+ ] }),
1851
+ /* @__PURE__ */ w(
1852
+ "input",
1853
+ {
1854
+ className: b.dimInput,
1855
+ inputMode: "numeric",
1856
+ value: _.w,
1857
+ "aria-label": a("imageEditor.width"),
1858
+ onChange: (u) => y("w", u.target.value),
1859
+ onBlur: () => {
1860
+ x(), T.current = null;
1861
+ },
1862
+ onKeyDown: (u) => l(u, "w"),
1863
+ onFocus: (u) => {
1864
+ T.current = d, u.target.select();
1865
+ }
1866
+ }
1867
+ ),
1868
+ /* @__PURE__ */ w("span", { className: b.dimUnit, children: "px" })
1869
+ ] }),
1870
+ /* @__PURE__ */ w(
1871
+ "button",
1872
+ {
1873
+ type: "button",
1874
+ className: K(b.lockButton, n && b.lockActive),
1875
+ "aria-pressed": n,
1876
+ "aria-label": a("imageEditor.lockRatio"),
1877
+ title: a("imageEditor.lockRatio"),
1878
+ onClick: () => i(!n),
1879
+ children: /* @__PURE__ */ w(et, { name: n ? "Unlock" : "LockSlash", size: "sm" })
1880
+ }
1881
+ ),
1882
+ /* @__PURE__ */ B("label", { className: b.dimField, children: [
1883
+ /* @__PURE__ */ B("span", { className: b.dimLabel, children: [
1884
+ /* @__PURE__ */ w("span", { className: b.dimLabelFull, children: a("imageEditor.height") }),
1885
+ /* @__PURE__ */ w("span", { className: b.dimLabelShort, "aria-hidden": "true", children: a("imageEditor.height").charAt(0) })
1886
+ ] }),
1887
+ /* @__PURE__ */ w(
1888
+ "input",
1889
+ {
1890
+ className: b.dimInput,
1891
+ inputMode: "numeric",
1892
+ value: _.h,
1893
+ "aria-label": a("imageEditor.height"),
1894
+ onChange: (u) => y("h", u.target.value),
1895
+ onBlur: () => {
1896
+ x(), T.current = null;
1897
+ },
1898
+ onKeyDown: (u) => l(u, "h"),
1899
+ onFocus: (u) => {
1900
+ T.current = d, u.target.select();
1901
+ }
1902
+ }
1903
+ ),
1904
+ /* @__PURE__ */ w("span", { className: b.dimUnit, children: "px" })
1905
+ ] })
1906
+ ] }),
1907
+ /* @__PURE__ */ w(
1908
+ "div",
1909
+ {
1910
+ className: b.tabs,
1911
+ role: "group",
1912
+ "aria-label": a("imageEditor.resize"),
1913
+ "data-part": "tabs",
1914
+ children: Gi.map((u) => /* @__PURE__ */ w(
1915
+ "button",
1916
+ {
1917
+ type: "button",
1918
+ "aria-pressed": C(u),
1919
+ className: K(b.tab, C(u) && b.tabActive),
1920
+ onClick: () => r(
1921
+ S({
1922
+ width: Math.max(1, Math.round(t.width * u)),
1923
+ height: Math.max(1, Math.round(t.height * u))
1924
+ })
1925
+ ),
1926
+ children: u === 1 ? a("imageEditor.original") : `${Math.round(u * 100)}%`
1927
+ },
1928
+ u
1929
+ ))
1930
+ }
1931
+ )
1932
+ ] });
1933
+ }
1934
+ const qi = "_ruler_j6c34_4", Wi = "_viewport_j6c34_21", Ki = "_value_j6c34_26", Hi = "_track_j6c34_50", Qi = "_tick_j6c34_57", Zi = "_major_j6c34_66", Ji = "_origin_j6c34_73", to = "_indicator_j6c34_78", wt = {
1935
+ ruler: qi,
1936
+ viewport: Wi,
1937
+ value: Ki,
1938
+ track: Hi,
1939
+ tick: Qi,
1940
+ major: Zi,
1941
+ origin: Ji,
1942
+ indicator: to
1943
+ }, we = 9;
1944
+ function Zt({
1945
+ min: t,
1946
+ max: e,
1947
+ value: n,
1948
+ step: i = 1,
1949
+ keyStep: o = 1,
1950
+ snapPoints: r = [0],
1951
+ snapThreshold: a = (e - t) * 0.02,
1952
+ tickStep: s = (e - t) / 20,
1953
+ majorEvery: _ = 5,
1954
+ resetValue: c = 0,
1955
+ format: M = (S) => String(Math.round(S)),
1956
+ onInput: d,
1957
+ onChange: T,
1958
+ "aria-label": f,
1959
+ className: A
1960
+ }) {
1961
+ const S = we / s, y = O(null), x = O(0), l = O(void 0), C = O(n);
1962
+ C.current = n;
1963
+ const u = O(!1), R = O(T);
1964
+ R.current = T;
1965
+ const m = (k) => {
1966
+ u.current = !1, T(k);
1967
+ };
1968
+ q(
1969
+ () => () => {
1970
+ cancelAnimationFrame(x.current), clearTimeout(l.current), u.current && (u.current = !1, R.current(C.current));
1971
+ },
1972
+ []
1973
+ );
1974
+ const E = (k, z = !0) => {
1975
+ let L = Math.min(e, Math.max(t, k));
1976
+ if (L = Math.round(L / i) * i, z) {
1977
+ for (const $ of r)
1978
+ if (Math.abs(L - $) <= a) {
1979
+ L = $;
1980
+ break;
1981
+ }
1982
+ }
1983
+ return Number(L.toFixed(6));
1984
+ }, v = (k) => {
1985
+ k !== C.current && (C.current = k, u.current = !0, d(k));
1986
+ }, N = (k) => {
1987
+ k.button === 0 && (cancelAnimationFrame(x.current), k.currentTarget.setPointerCapture(k.pointerId), y.current = {
1988
+ id: k.pointerId,
1989
+ startX: k.clientX,
1990
+ startValue: n,
1991
+ lastX: k.clientX,
1992
+ lastT: performance.now(),
1993
+ velocity: 0,
1994
+ moved: !1
1995
+ });
1996
+ }, j = (k) => {
1997
+ const z = y.current;
1998
+ if (!z || z.id !== k.pointerId) return;
1999
+ const L = performance.now(), $ = Math.max(1, L - z.lastT);
2000
+ z.velocity = 0.7 * (-(k.clientX - z.lastX) / S / $) + 0.3 * z.velocity, z.lastX = k.clientX, z.lastT = L, Math.abs(k.clientX - z.startX) > 2 && (z.moved = !0), v(E(z.startValue - (k.clientX - z.startX) / S));
2001
+ }, G = (k) => {
2002
+ const z = y.current;
2003
+ if (!z || z.id !== k.pointerId) return;
2004
+ y.current = null;
2005
+ let L = C.current;
2006
+ const $ = (e - t) / 1500;
2007
+ let H = performance.now() - z.lastT < 80 ? Math.max(-$, Math.min($, z.velocity)) : 0;
2008
+ if (!z.moved || Math.abs(H) < $ / 20) return m(E(L));
2009
+ let mt = performance.now();
2010
+ const lt = (xt) => {
2011
+ const J = Math.min(32, Math.max(0, xt - mt));
2012
+ mt = xt, L += H * J, H *= Math.pow(0.99, J);
2013
+ const rt = E(L, Math.abs(H) < $ / 6);
2014
+ if (v(rt), Math.abs(H) < $ / 40 || rt <= t || rt >= e) return m(rt);
2015
+ x.current = requestAnimationFrame(lt);
2016
+ };
2017
+ x.current = requestAnimationFrame(lt);
2018
+ }, W = (k) => {
2019
+ const z = Math.abs(k.deltaX) > Math.abs(k.deltaY) ? k.deltaX : k.deltaY;
2020
+ if (!z) return;
2021
+ const L = E(C.current + z / S / 2);
2022
+ v(L), clearTimeout(l.current), l.current = setTimeout(() => m(C.current), 220);
2023
+ }, V = (k) => {
2024
+ const z = k.shiftKey ? 10 : 1;
2025
+ let L = null;
2026
+ const $ = C.current;
2027
+ if (k.key === "ArrowRight" || k.key === "ArrowUp" ? L = $ + o * z : k.key === "ArrowLeft" || k.key === "ArrowDown" ? L = $ - o * z : k.key === "Home" ? L = t : k.key === "End" && (L = e), L == null) return;
2028
+ k.preventDefault();
2029
+ const H = E(L, !1);
2030
+ v(H), m(H);
2031
+ }, ct = () => {
2032
+ cancelAnimationFrame(x.current);
2033
+ const k = E(c, !1);
2034
+ v(k), m(k);
2035
+ }, Z = Math.floor((e - t) / s), dt = M(n);
2036
+ return /* @__PURE__ */ B(
2037
+ "div",
2038
+ {
2039
+ role: "slider",
2040
+ tabIndex: 0,
2041
+ "aria-label": f,
2042
+ "aria-valuemin": t,
2043
+ "aria-valuemax": e,
2044
+ "aria-valuenow": n,
2045
+ "aria-valuetext": dt,
2046
+ "aria-orientation": "horizontal",
2047
+ className: K(wt.ruler, A),
2048
+ "data-part": "ruler",
2049
+ onPointerDown: N,
2050
+ onPointerMove: j,
2051
+ onPointerUp: G,
2052
+ onPointerCancel: G,
2053
+ onWheel: W,
2054
+ onKeyDown: V,
2055
+ onDoubleClick: ct,
2056
+ children: [
2057
+ /* @__PURE__ */ w("span", { className: wt.value, "aria-hidden": "true", children: dt }),
2058
+ /* @__PURE__ */ B("span", { className: wt.viewport, "aria-hidden": "true", children: [
2059
+ /* @__PURE__ */ w(
2060
+ "span",
2061
+ {
2062
+ className: wt.track,
2063
+ style: {
2064
+ width: Z * we,
2065
+ transform: `translateX(${-(n - t) * S}px)`
2066
+ },
2067
+ children: Array.from({ length: Z + 1 }, (k, z) => {
2068
+ const L = t + z * s;
2069
+ return /* @__PURE__ */ w(
2070
+ "span",
2071
+ {
2072
+ className: K(
2073
+ wt.tick,
2074
+ z % _ === 0 && wt.major,
2075
+ Math.abs(L - c) < 1e-9 && wt.origin
2076
+ ),
2077
+ style: { left: z * we }
2078
+ },
2079
+ z
2080
+ );
2081
+ })
2082
+ }
2083
+ ),
2084
+ /* @__PURE__ */ w("span", { className: wt.indicator })
2085
+ ] })
2086
+ ]
2087
+ }
2088
+ );
2089
+ }
2090
+ const Tt = [
2091
+ { id: "crop", icon: "Crop" },
2092
+ { id: "filter", icon: "Colorfilter" },
2093
+ { id: "finetune", icon: "Brush" },
2094
+ { id: "redact", icon: "Blur" },
2095
+ { id: "resize", icon: "Maximize3" }
2096
+ ], eo = ["blur", "pixelate"], We = [0.05, 0.1, 0.15, 0.2, 0.25, 0.33, 0.5, 0.67, 0.75, 1, 1.5, 2, 3, 4, 6, 8], no = 'a[href]:not([tabindex="-1"]), button:not(:disabled):not([tabindex="-1"]), input:not(:disabled):not([tabindex="-1"]), [tabindex]:not([tabindex="-1"])', ve = Math.PI / 180, go = Ke(function({
2097
+ open: e,
2098
+ src: n,
2099
+ initialState: i,
2100
+ util: o = "crop",
2101
+ cropAspectRatio: r,
2102
+ cropRatioOptions: a,
2103
+ outputType: s,
2104
+ outputQuality: _,
2105
+ onLoad: c,
2106
+ onUpdate: M,
2107
+ onProcess: d,
2108
+ onClose: T,
2109
+ className: f,
2110
+ onKeyDown: A,
2111
+ ...S
2112
+ }, y) {
2113
+ const x = re(), [l] = Q(() => new dn()), C = pn(l.subscribe, l.getSnapshot, l.getSnapshot), { state: u, size: R, ui: m, status: E } = C, v = O(null), N = O(null), j = O(null), [G, W] = Q(null), [V, ct] = Q(1), [Z, dt] = Q(!1), [k, z] = Q(!1), L = O(0), $ = O(null), H = O(null), mt = O(null);
2114
+ m.util !== "resize" || !u ? H.current = null : (!H.current || u !== mt.current && u !== H.current) && (H.current = u);
2115
+ const lt = O({ onLoad: c, onUpdate: M });
2116
+ lt.current = { onLoad: c, onUpdate: M }, q(() => {
2117
+ const h = [
2118
+ l.on(
2119
+ "load",
2120
+ (I) => {
2121
+ var U, X;
2122
+ return (X = (U = lt.current).onLoad) == null ? void 0 : X.call(U, I.size);
2123
+ }
2124
+ ),
2125
+ l.on("update", (I) => {
2126
+ var U, X;
2127
+ return (X = (U = lt.current).onUpdate) == null ? void 0 : X.call(U, I);
2128
+ }),
2129
+ // a rotation drag's base is stale once history moves under it
2130
+ ...["undo", "redo", "revert"].map(
2131
+ (I) => l.on(I, () => {
2132
+ $.current = null;
2133
+ })
2134
+ )
2135
+ ];
2136
+ return () => h.forEach((I) => I());
2137
+ }, [l]), q(() => {
2138
+ if (!(!e || !n))
2139
+ return W(null), z(!1), l.open({ src: n, initialState: i, util: o, cropAspectRatio: r, outputType: s, outputQuality: _ }).then(() => {
2140
+ const h = l.getSnapshot().state;
2141
+ h && (L.current = ge(h.rotation).quarter);
2142
+ }).catch(() => {
2143
+ }), () => l.close();
2144
+ }, [e, n, l]), q(() => {
2145
+ if (!e) return;
2146
+ const h = (X) => {
2147
+ (X.ctrlKey || X.metaKey) && X.preventDefault();
2148
+ }, I = (X) => X.preventDefault(), U = ["gesturestart", "gesturechange", "gestureend"];
2149
+ return window.addEventListener("wheel", h, { passive: !1 }), U.forEach((X) => document.addEventListener(X, I)), () => {
2150
+ window.removeEventListener("wheel", h), U.forEach((X) => document.removeEventListener(X, I));
2151
+ };
2152
+ }, [e]), q(() => {
2153
+ if (!e) return;
2154
+ const h = document.activeElement, I = requestAnimationFrame(() => {
2155
+ var U;
2156
+ return (U = N.current) == null ? void 0 : U.focus();
2157
+ });
2158
+ return () => {
2159
+ var U;
2160
+ cancelAnimationFrame(I), (U = h == null ? void 0 : h.focus) == null || U.call(h);
2161
+ };
2162
+ }, [e]);
2163
+ const xt = (h) => {
2164
+ N.current = h, typeof y == "function" ? y(h) : y && (y.current = h);
2165
+ }, J = () => {
2166
+ const h = l.getSnapshot().state;
2167
+ h && (L.current = ge(h.rotation).quarter);
2168
+ }, rt = () => {
2169
+ var h;
2170
+ (h = v.current) == null || h.transition("jump"), l.undo(), J();
2171
+ }, tt = () => {
2172
+ var h;
2173
+ (h = v.current) == null || h.transition("jump"), l.redo(), J();
2174
+ }, qt = () => {
2175
+ var h;
2176
+ (h = v.current) == null || h.transition("jump"), l.revert(), J();
2177
+ }, It = () => {
2178
+ var h;
2179
+ !u || !R || ((h = v.current) == null || h.transition("rotate"), L.current = Ee(L.current - Math.PI / 2), l.setState(kn(u, R)));
2180
+ }, Mt = () => {
2181
+ var h;
2182
+ !u || !R || ((h = v.current) == null || h.transition("flip"), L.current = Ee(-L.current), l.setState(Nn(u, R)));
2183
+ }, Nt = gn(() => T(), [T]), ft = () => {
2184
+ Z || Nt();
2185
+ }, ce = async () => {
2186
+ if (!(!u || Z)) {
2187
+ dt(!0), z(!1);
2188
+ try {
2189
+ const h = await l.process();
2190
+ d == null || d(h), Nt();
2191
+ } catch {
2192
+ z(!0);
2193
+ } finally {
2194
+ dt(!1);
2195
+ }
2196
+ }
2197
+ }, Wt = (h) => {
2198
+ if (A == null || A(h), h.defaultPrevented) return;
2199
+ const I = h.metaKey || h.ctrlKey;
2200
+ if (I && h.key.toLowerCase() === "z") {
2201
+ h.preventDefault(), h.shiftKey ? tt() : rt();
2202
+ return;
2203
+ }
2204
+ if (I && h.key.toLowerCase() === "y") {
2205
+ h.preventDefault(), tt();
2206
+ return;
2207
+ }
2208
+ if (h.key !== "Tab" || !N.current) return;
2209
+ const U = [...N.current.querySelectorAll(no)].filter(
2210
+ (g) => g.offsetParent !== null
2211
+ );
2212
+ if (U.length === 0) return;
2213
+ const X = U[0], At = U[U.length - 1];
2214
+ h.shiftKey && (document.activeElement === X || document.activeElement === N.current) ? (h.preventDefault(), At.focus()) : !h.shiftKey && document.activeElement === At && (h.preventDefault(), X.focus());
2215
+ }, pt = (h) => {
2216
+ const I = V, U = h > 0 ? We.find((X) => X > I * 1.01) ?? Ae : [...We].reverse().find((X) => X < I * 0.99) ?? Ie;
2217
+ W(U);
2218
+ }, Kt = u ? ge(u.rotation, L.current).fine / ve : 0, Pt = (h) => {
2219
+ const I = H.current ?? l.getSnapshot().state;
2220
+ I && (l.preview(Sn(I, h)), mt.current = l.getSnapshot().state);
2221
+ };
2222
+ let gt = null;
2223
+ if (u && R) {
2224
+ if (m.util === "crop")
2225
+ gt = /* @__PURE__ */ B(he, { children: [
2226
+ m.cropTab === "rotation" ? /* @__PURE__ */ w(
2227
+ Zt,
2228
+ {
2229
+ "aria-label": x("imageEditor.rotation"),
2230
+ min: -45,
2231
+ max: 45,
2232
+ step: 0.1,
2233
+ tickStep: 1,
2234
+ majorEvery: 5,
2235
+ snapThreshold: 0.6,
2236
+ value: Number(Kt.toFixed(1)),
2237
+ format: (h) => `${Number(h.toFixed(1))}°`,
2238
+ onInput: (h) => {
2239
+ const I = l.getSnapshot().state;
2240
+ I && ($.current ?? ($.current = I), l.preview(Oe($.current, L.current + h * ve, R)));
2241
+ },
2242
+ onChange: (h) => {
2243
+ const I = $.current ?? l.getSnapshot().state;
2244
+ $.current = null, I && (l.preview(Oe(I, L.current + h * ve, R)), l.commit());
2245
+ }
2246
+ },
2247
+ "rotation"
2248
+ ) : /* @__PURE__ */ w(
2249
+ Zt,
2250
+ {
2251
+ "aria-label": x("imageEditor.scale"),
2252
+ min: 100,
2253
+ max: Bt * 100,
2254
+ step: 1,
2255
+ tickStep: 10,
2256
+ majorEvery: 5,
2257
+ snapPoints: [100],
2258
+ snapThreshold: 4,
2259
+ resetValue: 100,
2260
+ value: Math.round(Jt(u, R) * 100),
2261
+ format: (h) => `${Math.round(h)}%`,
2262
+ onInput: (h) => {
2263
+ const I = l.getSnapshot().state;
2264
+ I && l.preview(Yt(I, h / 100, R));
2265
+ },
2266
+ onChange: (h) => {
2267
+ const I = l.getSnapshot().state;
2268
+ I && (l.preview(Yt(I, h / 100, R)), l.commit());
2269
+ }
2270
+ },
2271
+ "scale"
2272
+ ),
2273
+ /* @__PURE__ */ w(
2274
+ xe,
2275
+ {
2276
+ label: x("imageEditor.crop"),
2277
+ value: m.cropTab,
2278
+ options: [
2279
+ { id: "rotation", label: x("imageEditor.rotation") },
2280
+ { id: "scale", label: x("imageEditor.scale") }
2281
+ ],
2282
+ onChange: (h) => l.setUi({ cropTab: h })
2283
+ }
2284
+ )
2285
+ ] });
2286
+ else if (m.util === "filter" && l.image)
2287
+ gt = /* @__PURE__ */ w(
2288
+ $i,
2289
+ {
2290
+ image: l.image.image,
2291
+ size: R,
2292
+ state: u,
2293
+ onSelect: (h) => l.setState({
2294
+ filter: h === "default" ? null : h,
2295
+ colorMatrix: Ce[h]
2296
+ })
2297
+ }
2298
+ );
2299
+ else if (m.util === "resize")
2300
+ gt = /* @__PURE__ */ w(
2301
+ ji,
2302
+ {
2303
+ max: kt(H.current ?? u),
2304
+ value: Rt(u),
2305
+ locked: m.resizeLocked,
2306
+ onLockedChange: (h) => l.setUi({ resizeLocked: h }),
2307
+ onInput: Pt,
2308
+ onChange: (h) => {
2309
+ Pt(h), l.commit();
2310
+ }
2311
+ }
2312
+ );
2313
+ else if (m.util === "redact") {
2314
+ const h = u.redact;
2315
+ gt = /* @__PURE__ */ B(he, { children: [
2316
+ /* @__PURE__ */ w(
2317
+ Zt,
2318
+ {
2319
+ "aria-label": x(`imageEditor.redact.${h.effect}`),
2320
+ min: 0,
2321
+ max: 100,
2322
+ step: 1,
2323
+ tickStep: 2.5,
2324
+ majorEvery: 4,
2325
+ snapThreshold: 0,
2326
+ value: h.amount,
2327
+ format: (I) => String(Math.round(I)),
2328
+ onInput: (I) => l.preview({ redact: { ...h, amount: I } }),
2329
+ onChange: (I) => {
2330
+ l.preview({ redact: { ...h, amount: I } }), l.commit();
2331
+ }
2332
+ },
2333
+ h.effect
2334
+ ),
2335
+ /* @__PURE__ */ w(
2336
+ xe,
2337
+ {
2338
+ label: x("imageEditor.redact"),
2339
+ value: h.effect,
2340
+ options: eo.map((I) => ({
2341
+ id: I,
2342
+ label: x(`imageEditor.redact.${I}`)
2343
+ })),
2344
+ onChange: (I) => l.setState({ redact: { ...h, effect: I } })
2345
+ }
2346
+ )
2347
+ ] });
2348
+ } else if (m.util === "finetune") {
2349
+ const h = m.finetuneTab;
2350
+ gt = /* @__PURE__ */ B(he, { children: [
2351
+ /* @__PURE__ */ w(
2352
+ Zt,
2353
+ {
2354
+ "aria-label": x(`imageEditor.finetune.${h}`),
2355
+ min: -100,
2356
+ max: 100,
2357
+ step: 1,
2358
+ tickStep: 5,
2359
+ majorEvery: 4,
2360
+ snapThreshold: 3,
2361
+ value: u.finetune[h],
2362
+ format: (I) => String(Math.round(I)),
2363
+ onInput: (I) => {
2364
+ const U = l.getSnapshot().state;
2365
+ U && l.preview({ finetune: { ...U.finetune, [h]: I } });
2366
+ },
2367
+ onChange: (I) => {
2368
+ const U = l.getSnapshot().state;
2369
+ U && (l.preview({ finetune: { ...U.finetune, [h]: I } }), l.commit());
2370
+ }
2371
+ },
2372
+ h
2373
+ ),
2374
+ /* @__PURE__ */ w(
2375
+ xe,
2376
+ {
2377
+ label: x("imageEditor.finetune"),
2378
+ value: h,
2379
+ options: yn.map((I) => ({
2380
+ id: I,
2381
+ label: x(`imageEditor.finetune.${I}`),
2382
+ dot: u.finetune[I] !== 0
2383
+ })),
2384
+ onChange: (I) => l.setUi({ finetuneTab: I })
2385
+ }
2386
+ )
2387
+ ] });
2388
+ }
2389
+ }
2390
+ const zt = E === "ready" && !!u, Ht = zt && m.util !== "crop";
2391
+ return /* @__PURE__ */ w(
2392
+ bn,
2393
+ {
2394
+ open: e,
2395
+ onClose: ft,
2396
+ closeOnBackdrop: !1,
2397
+ dim: 0,
2398
+ className: b.overlay,
2399
+ children: /* @__PURE__ */ B(
2400
+ "div",
2401
+ {
2402
+ ref: xt,
2403
+ role: "dialog",
2404
+ "aria-modal": "true",
2405
+ "aria-label": x("imageEditor.title"),
2406
+ tabIndex: -1,
2407
+ className: K(b.editor, f),
2408
+ "data-part": "editor",
2409
+ onKeyDown: Wt,
2410
+ ...S,
2411
+ children: [
2412
+ /* @__PURE__ */ w(
2413
+ Ui,
2414
+ {
2415
+ ref: v,
2416
+ core: l,
2417
+ snapshot: C,
2418
+ cropAspectRatio: r,
2419
+ viewZoom: m.util === "crop" ? null : G,
2420
+ onViewZoom: W,
2421
+ onZoomReport: ct,
2422
+ areaRef: j
2423
+ }
2424
+ ),
2425
+ /* @__PURE__ */ B("header", { className: b.header, "data-part": "header", children: [
2426
+ /* @__PURE__ */ w("div", { className: b.headerStart, children: /* @__PURE__ */ B("div", { className: b.group, children: [
2427
+ /* @__PURE__ */ w(
2428
+ Et,
2429
+ {
2430
+ variant: "text",
2431
+ color: "primary",
2432
+ size: "sm",
2433
+ "aria-label": x("imageEditor.close"),
2434
+ title: x("imageEditor.close"),
2435
+ onClick: ft,
2436
+ children: /* @__PURE__ */ w(et, { name: "Close", className: b.closeIcon })
2437
+ }
2438
+ ),
2439
+ /* @__PURE__ */ w("span", { className: b.groupDivider, "aria-hidden": "true" }),
2440
+ /* @__PURE__ */ w(
2441
+ Et,
2442
+ {
2443
+ variant: "text",
2444
+ color: "primary",
2445
+ size: "sm",
2446
+ "aria-label": x("imageEditor.revert"),
2447
+ title: x("imageEditor.revert"),
2448
+ disabled: !C.canRevert,
2449
+ onClick: qt,
2450
+ children: /* @__PURE__ */ w(et, { name: "ReverseTimeArrow" })
2451
+ }
2452
+ )
2453
+ ] }) }),
2454
+ /* @__PURE__ */ B("div", { className: b.headerCenter, children: [
2455
+ /* @__PURE__ */ B("div", { className: b.group, children: [
2456
+ /* @__PURE__ */ w(
2457
+ Et,
2458
+ {
2459
+ variant: "text",
2460
+ color: "primary",
2461
+ size: "sm",
2462
+ "aria-label": x("imageEditor.undo"),
2463
+ title: x("imageEditor.undo"),
2464
+ disabled: !C.canUndo,
2465
+ onClick: rt,
2466
+ children: /* @__PURE__ */ w(et, { name: "UndoArrow" })
2467
+ }
2468
+ ),
2469
+ /* @__PURE__ */ w("span", { className: b.groupDivider, "aria-hidden": "true" }),
2470
+ /* @__PURE__ */ w(
2471
+ Et,
2472
+ {
2473
+ variant: "text",
2474
+ color: "primary",
2475
+ size: "sm",
2476
+ "aria-label": x("imageEditor.redo"),
2477
+ title: x("imageEditor.redo"),
2478
+ disabled: !C.canRedo,
2479
+ onClick: tt,
2480
+ children: /* @__PURE__ */ w(et, { name: "RedoArrow" })
2481
+ }
2482
+ )
2483
+ ] }),
2484
+ Ht && /* @__PURE__ */ B("div", { className: K(b.group, b.fadeIn), children: [
2485
+ /* @__PURE__ */ w(
2486
+ Et,
2487
+ {
2488
+ variant: "text",
2489
+ color: "primary",
2490
+ size: "sm",
2491
+ "aria-label": x("imageEditor.zoomOut"),
2492
+ title: x("imageEditor.zoomOut"),
2493
+ disabled: V <= Ie * 1.01,
2494
+ onClick: () => pt(-1),
2495
+ children: /* @__PURE__ */ w(et, { name: "Minus" })
2496
+ }
2497
+ ),
2498
+ /* @__PURE__ */ w("span", { className: b.groupDivider, "aria-hidden": "true" }),
2499
+ /* @__PURE__ */ B(
2500
+ "button",
2501
+ {
2502
+ type: "button",
2503
+ className: b.zoomLabel,
2504
+ "aria-label": x("imageEditor.zoom"),
2505
+ title: x("imageEditor.zoomFit"),
2506
+ onClick: () => W(null),
2507
+ children: [
2508
+ Math.round(V * 100),
2509
+ "%"
2510
+ ]
2511
+ }
2512
+ ),
2513
+ /* @__PURE__ */ w("span", { className: b.groupDivider, "aria-hidden": "true" }),
2514
+ /* @__PURE__ */ w(
2515
+ Et,
2516
+ {
2517
+ variant: "text",
2518
+ color: "primary",
2519
+ size: "sm",
2520
+ "aria-label": x("imageEditor.zoomIn"),
2521
+ title: x("imageEditor.zoomIn"),
2522
+ disabled: V >= Ae * 0.99,
2523
+ onClick: () => pt(1),
2524
+ children: /* @__PURE__ */ w(et, { name: "Add" })
2525
+ }
2526
+ )
2527
+ ] })
2528
+ ] }),
2529
+ /* @__PURE__ */ w("div", { className: b.headerEnd, children: /* @__PURE__ */ w(
2530
+ Et,
2531
+ {
2532
+ variant: "contained",
2533
+ color: "accent",
2534
+ size: "sm",
2535
+ loading: Z,
2536
+ disabled: !zt,
2537
+ "aria-label": x("imageEditor.done"),
2538
+ title: x("imageEditor.done"),
2539
+ onClick: ce,
2540
+ className: b.done,
2541
+ children: /* @__PURE__ */ w(et, { name: "CheckMarkTick" })
2542
+ }
2543
+ ) })
2544
+ ] }),
2545
+ /* @__PURE__ */ B("div", { className: b.main, "data-part": "main", children: [
2546
+ /* @__PURE__ */ w("nav", { className: b.nav, "data-part": "nav", children: /* @__PURE__ */ w(
2547
+ "div",
2548
+ {
2549
+ role: "tablist",
2550
+ "aria-label": x("imageEditor.tools"),
2551
+ "aria-orientation": "vertical",
2552
+ className: b.navList,
2553
+ onKeyDown: (h) => {
2554
+ var X;
2555
+ const I = Tt.findIndex((At) => At.id === m.util), U = h.key === "ArrowDown" || h.key === "ArrowRight" ? Tt[(I + 1) % Tt.length] : h.key === "ArrowUp" || h.key === "ArrowLeft" ? Tt[(I + Tt.length - 1) % Tt.length] : null;
2556
+ U && (h.preventDefault(), l.setUi({ util: U.id }), (X = h.currentTarget.querySelector(`[data-util="${U.id}"]`)) == null || X.focus());
2557
+ },
2558
+ children: Tt.map((h) => {
2559
+ const I = m.util === h.id;
2560
+ return /* @__PURE__ */ B(
2561
+ "button",
2562
+ {
2563
+ type: "button",
2564
+ role: "tab",
2565
+ id: `tz-ie-tab-${h.id}`,
2566
+ "aria-selected": I,
2567
+ "aria-controls": "tz-ie-panel",
2568
+ tabIndex: I ? 0 : -1,
2569
+ title: x(`imageEditor.${h.id}`),
2570
+ className: K(b.tool, I && b.toolActive),
2571
+ "data-util": h.id,
2572
+ onClick: () => l.setUi({ util: h.id }),
2573
+ children: [
2574
+ /* @__PURE__ */ w(et, { name: h.icon, size: "sm" }),
2575
+ /* @__PURE__ */ w("span", { className: b.toolLabel, children: x(`imageEditor.${h.id}`) })
2576
+ ]
2577
+ },
2578
+ h.id
2579
+ );
2580
+ })
2581
+ }
2582
+ ) }),
2583
+ /* @__PURE__ */ B(
2584
+ "section",
2585
+ {
2586
+ className: b.stage,
2587
+ id: "tz-ie-panel",
2588
+ role: "tabpanel",
2589
+ "aria-labelledby": `tz-ie-tab-${m.util}`,
2590
+ "data-part": "stage",
2591
+ "data-util": m.util,
2592
+ children: [
2593
+ /* @__PURE__ */ w("div", { className: b.toolbar, "data-part": "toolbar", children: zt && m.util === "crop" && /* @__PURE__ */ B("div", { className: K(b.toolbarRow, b.fadeIn), children: [
2594
+ /* @__PURE__ */ w(
2595
+ Me,
2596
+ {
2597
+ variant: "text",
2598
+ color: "primary",
2599
+ size: "sm",
2600
+ startIcon: /* @__PURE__ */ w(et, { name: "RotateLeft" }),
2601
+ title: x("imageEditor.rotateLeft"),
2602
+ "aria-label": x("imageEditor.rotateLeft"),
2603
+ onClick: It,
2604
+ className: b.toolbarIconOnPhone,
2605
+ children: /* @__PURE__ */ w("span", { className: b.toolbarLabel, children: x("imageEditor.rotateLeft") })
2606
+ }
2607
+ ),
2608
+ /* @__PURE__ */ w(
2609
+ Me,
2610
+ {
2611
+ variant: "text",
2612
+ color: "primary",
2613
+ size: "sm",
2614
+ startIcon: /* @__PURE__ */ w(et, { name: "FlipHorizontal" }),
2615
+ title: x("imageEditor.flipHorizontal"),
2616
+ "aria-label": x("imageEditor.flipHorizontal"),
2617
+ onClick: Mt,
2618
+ className: b.toolbarIconOnPhone,
2619
+ children: /* @__PURE__ */ w("span", { className: b.toolbarLabel, children: x("imageEditor.flipHorizontal") })
2620
+ }
2621
+ ),
2622
+ !r && u && /* @__PURE__ */ w(
2623
+ Bi,
2624
+ {
2625
+ ratio: u.cropRatio,
2626
+ options: a ?? Oi,
2627
+ onChange: (h) => {
2628
+ var U;
2629
+ const I = l.getSnapshot().state;
2630
+ !I || !R || ((U = v.current) == null || U.transition("jump"), l.setState(zn(I, h, R)));
2631
+ }
2632
+ }
2633
+ )
2634
+ ] }, "crop-toolbar") }),
2635
+ /* @__PURE__ */ B("div", { ref: j, className: b.canvasArea, "data-part": "area", children: [
2636
+ E === "loading" && /* @__PURE__ */ B("div", { className: b.status, role: "status", children: [
2637
+ /* @__PURE__ */ w(_n, { size: "lg" }),
2638
+ /* @__PURE__ */ w("span", { children: x("imageEditor.loading") })
2639
+ ] }),
2640
+ E === "error" && /* @__PURE__ */ B("div", { className: b.status, role: "alert", children: [
2641
+ /* @__PURE__ */ w(et, { name: "Gallery", size: "lg" }),
2642
+ /* @__PURE__ */ w("span", { children: x("imageEditor.loadError") })
2643
+ ] }),
2644
+ k && /* @__PURE__ */ w("div", { className: b.toastError, role: "alert", children: x("imageEditor.processError") })
2645
+ ] }),
2646
+ /* @__PURE__ */ w("div", { className: b.footer, "data-part": "footer", children: /* @__PURE__ */ w("div", { className: K(b.footerInner, b.fadeIn), children: gt }, m.util) })
2647
+ ]
2648
+ }
2649
+ )
2650
+ ] })
2651
+ ]
2652
+ }
2653
+ )
2654
+ }
2655
+ );
2656
+ });
2657
+ function xe({
2658
+ label: t,
2659
+ value: e,
2660
+ options: n,
2661
+ onChange: i
2662
+ }) {
2663
+ const o = O(null);
2664
+ return q(() => {
2665
+ var r, a, s;
2666
+ (s = (a = (r = o.current) == null ? void 0 : r.querySelector(`[data-tab="${e}"]`)) == null ? void 0 : a.scrollIntoView) == null || s.call(a, { block: "nearest", inline: "nearest", behavior: "smooth" });
2667
+ }, [e]), /* @__PURE__ */ w(
2668
+ "div",
2669
+ {
2670
+ ref: o,
2671
+ role: "tablist",
2672
+ "aria-label": t,
2673
+ className: b.tabs,
2674
+ "data-part": "tabs",
2675
+ onKeyDown: (r) => {
2676
+ var c;
2677
+ const a = n.findIndex((M) => M.id === e), s = r.key === "ArrowRight" ? 1 : r.key === "ArrowLeft" ? -1 : 0;
2678
+ if (!s) return;
2679
+ r.preventDefault();
2680
+ const _ = n[(a + s + n.length) % n.length];
2681
+ i(_.id), (c = r.currentTarget.querySelector(`[data-tab="${_.id}"]`)) == null || c.focus();
2682
+ },
2683
+ children: n.map((r) => /* @__PURE__ */ B(
2684
+ "button",
2685
+ {
2686
+ type: "button",
2687
+ role: "tab",
2688
+ "aria-selected": r.id === e,
2689
+ tabIndex: r.id === e ? 0 : -1,
2690
+ className: K(b.tab, r.id === e && b.tabActive),
2691
+ "data-tab": r.id,
2692
+ onClick: () => i(r.id),
2693
+ children: [
2694
+ r.label,
2695
+ r.dot && /* @__PURE__ */ w("span", { className: b.tabDot, "aria-hidden": "true" })
2696
+ ]
2697
+ },
2698
+ r.id
2699
+ ))
2700
+ }
2701
+ );
2702
+ }
2703
+ export {
2704
+ Ce as F,
2705
+ go as I,
2706
+ dn as a,
2707
+ po as c
2708
+ };
2709
+ //# sourceMappingURL=ImageEditor-DTFQZ6ON.js.map