@techzyapp/ui-library 1.0.43 → 1.0.45

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 (625) 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-BLHvXCvL.js → AdminRoot-BZ1v5vN9.js} +8 -8
  7. package/dist/{AdminRoot-BLHvXCvL.js.map → AdminRoot-BZ1v5vN9.js.map} +1 -1
  8. package/dist/{AdminRoot-D_g_TW30.cjs → AdminRoot-DJ4-UMAB.cjs} +2 -2
  9. package/dist/{AdminRoot-D_g_TW30.cjs.map → AdminRoot-DJ4-UMAB.cjs.map} +1 -1
  10. package/dist/Alert-BU7GlQna.js +70 -0
  11. package/dist/{Alert-D5E1PLkV.js.map → Alert-BU7GlQna.js.map} +1 -1
  12. package/dist/Alert-CVQOjuEq.cjs +2 -0
  13. package/dist/{Alert-B4XZDk16.cjs.map → Alert-CVQOjuEq.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-BMz_YVPa.js +34 -0
  27. package/dist/{Breadcrumbs-M31xyok8.js.map → Breadcrumbs-BMz_YVPa.js.map} +1 -1
  28. package/dist/Breadcrumbs-BbC0o4JE.cjs +2 -0
  29. package/dist/{Breadcrumbs-DSUxcp6u.cjs.map → Breadcrumbs-BbC0o4JE.cjs.map} +1 -1
  30. package/dist/Button-C415LPw_.js +72 -0
  31. package/dist/{Button-CtADzomU.js.map → Button-C415LPw_.js.map} +1 -1
  32. package/dist/Button-mBZOvgyZ.cjs +2 -0
  33. package/dist/{Button-Q_5uA-zc.cjs.map → Button-mBZOvgyZ.cjs.map} +1 -1
  34. package/dist/{Calendar-CHLCv2s9.js → Calendar-B0f6h9-A.js} +5 -5
  35. package/dist/{Calendar-CHLCv2s9.js.map → Calendar-B0f6h9-A.js.map} +1 -1
  36. package/dist/{Calendar-BbbtMsZs.cjs → Calendar-hO051hfk.cjs} +2 -2
  37. package/dist/{Calendar-BbbtMsZs.cjs.map → Calendar-hO051hfk.cjs.map} +1 -1
  38. package/dist/{Card-CntRsQfm.cjs → Card-BdNr5row.cjs} +2 -2
  39. package/dist/{Card-CntRsQfm.cjs.map → Card-BdNr5row.cjs.map} +1 -1
  40. package/dist/{Card-Br9IB0yM.js → Card-ssUNaOF_.js} +4 -4
  41. package/dist/{Card-Br9IB0yM.js.map → Card-ssUNaOF_.js.map} +1 -1
  42. package/dist/Chip-BpJN4rzY.cjs +2 -0
  43. package/dist/{Chip-CrBizrvG.cjs.map → Chip-BpJN4rzY.cjs.map} +1 -1
  44. package/dist/Chip-C0x-6g2h.js +92 -0
  45. package/dist/{Chip-DYZ5w7VM.js.map → Chip-C0x-6g2h.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-DKnWINdV.js +96 -0
  51. package/dist/{CodeBlock-B6Eqc4HR.js.map → CodeBlock-DKnWINdV.js.map} +1 -1
  52. package/dist/CodeBlock-DTrzN95i.cjs +2 -0
  53. package/dist/{CodeBlock-DW4uaZXM.cjs.map → CodeBlock-DTrzN95i.cjs.map} +1 -1
  54. package/dist/{ColorPicker-GsKIqJu8.js → ColorPicker-Bidev2DJ.js} +3 -3
  55. package/dist/{ColorPicker-GsKIqJu8.js.map → ColorPicker-Bidev2DJ.js.map} +1 -1
  56. package/dist/{ColorPicker-nhWd_nOW.cjs → ColorPicker-Doaegll4.cjs} +2 -2
  57. package/dist/{ColorPicker-nhWd_nOW.cjs.map → ColorPicker-Doaegll4.cjs.map} +1 -1
  58. package/dist/{ColorPickerPanel-BeAu83S6.cjs → ColorPickerPanel-048Fj7wv.cjs} +2 -2
  59. package/dist/{ColorPickerPanel-BeAu83S6.cjs.map → ColorPickerPanel-048Fj7wv.cjs.map} +1 -1
  60. package/dist/{ColorPickerPanel-BEcZePcT.js → ColorPickerPanel-DThSuUoz.js} +3 -3
  61. package/dist/{ColorPickerPanel-BEcZePcT.js.map → ColorPickerPanel-DThSuUoz.js.map} +1 -1
  62. package/dist/{ColorRamp-C-zRPhHj.cjs → ColorRamp-CGw4D9bf.cjs} +2 -2
  63. package/dist/{ColorRamp-C-zRPhHj.cjs.map → ColorRamp-CGw4D9bf.cjs.map} +1 -1
  64. package/dist/{ColorRamp-CeNgd8wF.js → ColorRamp-Reb0q69d.js} +2 -2
  65. package/dist/{ColorRamp-CeNgd8wF.js.map → ColorRamp-Reb0q69d.js.map} +1 -1
  66. package/dist/{ConfigProvider-Ci9Q2HLF.cjs → ConfigProvider-DBU6rOIA.cjs} +2 -2
  67. package/dist/{ConfigProvider-Ci9Q2HLF.cjs.map → ConfigProvider-DBU6rOIA.cjs.map} +1 -1
  68. package/dist/{ConfigProvider-Dqfu7UBU.js → ConfigProvider-DVDGtCUc.js} +2 -2
  69. package/dist/{ConfigProvider-Dqfu7UBU.js.map → ConfigProvider-DVDGtCUc.js.map} +1 -1
  70. package/dist/{CopyButton-Chr7SP5i.cjs → CopyButton-Cnab62vt.cjs} +2 -2
  71. package/dist/{CopyButton-Chr7SP5i.cjs.map → CopyButton-Cnab62vt.cjs.map} +1 -1
  72. package/dist/{CopyButton-Bidt2Vgp.js → CopyButton-Dm8-V4ku.js} +4 -4
  73. package/dist/{CopyButton-Bidt2Vgp.js.map → CopyButton-Dm8-V4ku.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-D7ZMOhWn.js → DatePicker-C4MTCmDn.js} +6 -6
  79. package/dist/{DatePicker-D7ZMOhWn.js.map → DatePicker-C4MTCmDn.js.map} +1 -1
  80. package/dist/{DatePicker-4rb34nPR.cjs → DatePicker-CaGeW_-j.cjs} +2 -2
  81. package/dist/{DatePicker-4rb34nPR.cjs.map → DatePicker-CaGeW_-j.cjs.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-gDxM2CGy.js → DateTimePicker-B0CjHKPV.js} +9 -9
  87. package/dist/{DateTimePicker-gDxM2CGy.js.map → DateTimePicker-B0CjHKPV.js.map} +1 -1
  88. package/dist/{DateTimePicker-CVFzKzyA.cjs → DateTimePicker-DXKaAYey.cjs} +2 -2
  89. package/dist/{DateTimePicker-CVFzKzyA.cjs.map → DateTimePicker-DXKaAYey.cjs.map} +1 -1
  90. package/dist/DescriptionList-BSDwobDc.cjs +2 -0
  91. package/dist/{DescriptionList-BBvfABps.cjs.map → DescriptionList-BSDwobDc.cjs.map} +1 -1
  92. package/dist/{DescriptionList-Die3lRBW.js → DescriptionList-BkUS5egS.js} +69 -69
  93. package/dist/{DescriptionList-Die3lRBW.js.map → DescriptionList-BkUS5egS.js.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-D5EKQjX1.cjs → EmptyState-CkkFHKrh.cjs} +2 -2
  99. package/dist/{EmptyState-D5EKQjX1.cjs.map → EmptyState-CkkFHKrh.cjs.map} +1 -1
  100. package/dist/{EmptyState-DRgER10x.js → EmptyState-DXoaPC7o.js} +3 -3
  101. package/dist/{EmptyState-DRgER10x.js.map → EmptyState-DXoaPC7o.js.map} +1 -1
  102. package/dist/{ErrorBoundary-CLfE2NjU.js → ErrorBoundary-CSP_Ctg6.js} +3 -3
  103. package/dist/{ErrorBoundary-CLfE2NjU.js.map → ErrorBoundary-CSP_Ctg6.js.map} +1 -1
  104. package/dist/{ErrorBoundary-DVcGWZd8.cjs → ErrorBoundary-tZjKtO28.cjs} +2 -2
  105. package/dist/{ErrorBoundary-DVcGWZd8.cjs.map → ErrorBoundary-tZjKtO28.cjs.map} +1 -1
  106. package/dist/{ErrorState-DJDQbHZY.cjs → ErrorState-JH4JdrTI.cjs} +2 -2
  107. package/dist/{ErrorState-DJDQbHZY.cjs.map → ErrorState-JH4JdrTI.cjs.map} +1 -1
  108. package/dist/{ErrorState-Dqw0AvmB.js → ErrorState-WYsly5-i.js} +8 -8
  109. package/dist/{ErrorState-Dqw0AvmB.js.map → ErrorState-WYsly5-i.js.map} +1 -1
  110. package/dist/FileCard-BIfPqeek.cjs +2 -0
  111. package/dist/{FileCard-BqMproT9.cjs.map → FileCard-BIfPqeek.cjs.map} +1 -1
  112. package/dist/{FileCard-kVnjcSlk.js → FileCard-D4TB3qGG.js} +33 -33
  113. package/dist/{FileCard-kVnjcSlk.js.map → FileCard-D4TB3qGG.js.map} +1 -1
  114. package/dist/FileUploader-DPVF76Ha.js +701 -0
  115. package/dist/FileUploader-DPVF76Ha.js.map +1 -0
  116. package/dist/FileUploader-YE_DfTNC.cjs +2 -0
  117. package/dist/FileUploader-YE_DfTNC.cjs.map +1 -0
  118. package/dist/{Flag-B1ZvZVXi.cjs → Flag-B6OhgwZr.cjs} +2 -2
  119. package/dist/{Flag-B1ZvZVXi.cjs.map → Flag-B6OhgwZr.cjs.map} +1 -1
  120. package/dist/{Flag-BEIqYQZg.js → Flag-Q3vI7cgt.js} +2 -2
  121. package/dist/{Flag-BEIqYQZg.js.map → Flag-Q3vI7cgt.js.map} +1 -1
  122. package/dist/{FullscreenToggle-BuQonKW8.js → FullscreenToggle-CxwGPLdd.js} +4 -4
  123. package/dist/{FullscreenToggle-BuQonKW8.js.map → FullscreenToggle-CxwGPLdd.js.map} +1 -1
  124. package/dist/{FullscreenToggle-CWlOXLss.cjs → FullscreenToggle-ipX55Nj4.cjs} +2 -2
  125. package/dist/{FullscreenToggle-CWlOXLss.cjs.map → FullscreenToggle-ipX55Nj4.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-U_sr2Ahy.cjs +2 -0
  131. package/dist/{IconButton-CiDPeKM4.cjs.map → IconButton-U_sr2Ahy.cjs.map} +1 -1
  132. package/dist/IconButton-re6xITGO.js +68 -0
  133. package/dist/{IconButton-BoURJOUD.js.map → IconButton-re6xITGO.js.map} +1 -1
  134. package/dist/ImageEditor-1n50vo_v.cjs +64 -0
  135. package/dist/ImageEditor-1n50vo_v.cjs.map +1 -0
  136. package/dist/ImageEditor-BwrG1fk7.js +2729 -0
  137. package/dist/ImageEditor-BwrG1fk7.js.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-CnTuddK7.js → Loader-7v1QBvHY.js} +2 -2
  151. package/dist/{Loader-CnTuddK7.js.map → Loader-7v1QBvHY.js.map} +1 -1
  152. package/dist/{Loader-CAmRn8Oj.cjs → Loader-BE3SQr7W.cjs} +2 -2
  153. package/dist/{Loader-CAmRn8Oj.cjs.map → Loader-BE3SQr7W.cjs.map} +1 -1
  154. package/dist/{LocationPicker-Cns3fkYI.js → LocationPicker-BvKtZFq0.js} +8 -8
  155. package/dist/{LocationPicker-Cns3fkYI.js.map → LocationPicker-BvKtZFq0.js.map} +1 -1
  156. package/dist/{LocationPicker-BwQ6ULMF.cjs → LocationPicker-CVJ4jVn2.cjs} +2 -2
  157. package/dist/{LocationPicker-BwQ6ULMF.cjs.map → LocationPicker-CVJ4jVn2.cjs.map} +1 -1
  158. package/dist/Modal-CxODxl81.cjs +2 -0
  159. package/dist/Modal-CxODxl81.cjs.map +1 -0
  160. package/dist/Modal-DpoiMMM3.js +154 -0
  161. package/dist/Modal-DpoiMMM3.js.map +1 -0
  162. package/dist/MultiSelect-2GouMRTl.cjs +2 -0
  163. package/dist/{MultiSelect-DJ6tRseY.cjs.map → MultiSelect-2GouMRTl.cjs.map} +1 -1
  164. package/dist/MultiSelect-B7KwEhL5.js +219 -0
  165. package/dist/{MultiSelect-svEVZNbp.js.map → MultiSelect-B7KwEhL5.js.map} +1 -1
  166. package/dist/{NumberField-9ekoB1wS.js → NumberField-ThojS4K3.js} +4 -4
  167. package/dist/{NumberField-9ekoB1wS.js.map → NumberField-ThojS4K3.js.map} +1 -1
  168. package/dist/{NumberField-sokUuuBR.cjs → NumberField-o2z2QNK1.cjs} +2 -2
  169. package/dist/{NumberField-sokUuuBR.cjs.map → NumberField-o2z2QNK1.cjs.map} +1 -1
  170. package/dist/OtpField-BhZq44vV.cjs +2 -0
  171. package/dist/{OtpField-DlkGju72.cjs.map → OtpField-BhZq44vV.cjs.map} +1 -1
  172. package/dist/{OtpField-DA7zJwy9.js → OtpField-C3MlMZ2F.js} +61 -61
  173. package/dist/{OtpField-DA7zJwy9.js.map → OtpField-C3MlMZ2F.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-vD8Dpfns.js → PageError-63Gk6fVC.js} +5 -5
  179. package/dist/{PageError-vD8Dpfns.js.map → PageError-63Gk6fVC.js.map} +1 -1
  180. package/dist/{PageError-DUN5PzDF.cjs → PageError-CCKWbrc5.cjs} +2 -2
  181. package/dist/{PageError-DUN5PzDF.cjs.map → PageError-CCKWbrc5.cjs.map} +1 -1
  182. package/dist/{PageLayout-CdObvxt7.js → PageLayout-BekkDBtT.js} +5 -5
  183. package/dist/{PageLayout-CdObvxt7.js.map → PageLayout-BekkDBtT.js.map} +1 -1
  184. package/dist/{PageLayout-BesuKuX6.cjs → PageLayout-CDPUYu6A.cjs} +2 -2
  185. package/dist/{PageLayout-BesuKuX6.cjs.map → PageLayout-CDPUYu6A.cjs.map} +1 -1
  186. package/dist/{PageNotFound-Cc5eZ6w3.js → PageNotFound-BD3zX3cd.js} +5 -5
  187. package/dist/{PageNotFound-Cc5eZ6w3.js.map → PageNotFound-BD3zX3cd.js.map} +1 -1
  188. package/dist/{PageNotFound-CfOAhmJ-.cjs → PageNotFound-CTR6htwa.cjs} +2 -2
  189. package/dist/{PageNotFound-CfOAhmJ-.cjs.map → PageNotFound-CTR6htwa.cjs.map} +1 -1
  190. package/dist/Pagination-BJvLUjQ0.cjs +2 -0
  191. package/dist/{Pagination-CAD9_Nr_.cjs.map → Pagination-BJvLUjQ0.cjs.map} +1 -1
  192. package/dist/Pagination-qKjISBJ9.js +139 -0
  193. package/dist/{Pagination-CX0S1RrF.js.map → Pagination-qKjISBJ9.js.map} +1 -1
  194. package/dist/{PaletteField-CpiEkXcB.cjs → PaletteField-CDS9CJW9.cjs} +2 -2
  195. package/dist/{PaletteField-CpiEkXcB.cjs.map → PaletteField-CDS9CJW9.cjs.map} +1 -1
  196. package/dist/{PaletteField-CVIwl2nV.js → PaletteField-y8KpR4Ap.js} +3 -3
  197. package/dist/{PaletteField-CVIwl2nV.js.map → PaletteField-y8KpR4Ap.js.map} +1 -1
  198. package/dist/PhoneField-Df3J6Hhg.cjs +2 -0
  199. package/dist/{PhoneField-Dlnnv4DU.cjs.map → PhoneField-Df3J6Hhg.cjs.map} +1 -1
  200. package/dist/{PhoneField-xHLTU-o5.js → PhoneField-OjsuevPx.js} +106 -106
  201. package/dist/{PhoneField-xHLTU-o5.js.map → PhoneField-OjsuevPx.js.map} +1 -1
  202. package/dist/{Popconfirm-Chlm_M5T.cjs → Popconfirm-BKzJ_EZy.cjs} +2 -2
  203. package/dist/{Popconfirm-Chlm_M5T.cjs.map → Popconfirm-BKzJ_EZy.cjs.map} +1 -1
  204. package/dist/{Popconfirm-DIlygJY8.js → Popconfirm-aCyniPnH.js} +4 -4
  205. package/dist/{Popconfirm-DIlygJY8.js.map → Popconfirm-aCyniPnH.js.map} +1 -1
  206. package/dist/{Progress-DqvKmyQW.cjs → Progress-DWOoLd8u.cjs} +2 -2
  207. package/dist/{Progress-DqvKmyQW.cjs.map → Progress-DWOoLd8u.cjs.map} +1 -1
  208. package/dist/{Progress-BAEhawtj.js → Progress-DzxbkcaD.js} +2 -2
  209. package/dist/{Progress-BAEhawtj.js.map → Progress-DzxbkcaD.js.map} +1 -1
  210. package/dist/{QrCode-Dqsk49vX.cjs → QrCode-C8uAPiHq.cjs} +2 -2
  211. package/dist/{QrCode-Dqsk49vX.cjs.map → QrCode-C8uAPiHq.cjs.map} +1 -1
  212. package/dist/{QrCode-D7BTYcW2.js → QrCode-DaJYqBc1.js} +2 -2
  213. package/dist/{QrCode-D7BTYcW2.js.map → QrCode-DaJYqBc1.js.map} +1 -1
  214. package/dist/{RemoveDialog-DZ-EqIfS.cjs → RemoveDialog-BnOtR6-q.cjs} +2 -2
  215. package/dist/{RemoveDialog-DZ-EqIfS.cjs.map → RemoveDialog-BnOtR6-q.cjs.map} +1 -1
  216. package/dist/{RemoveDialog-CQIm9GTH.js → RemoveDialog-MhEU5Zl3.js} +6 -6
  217. package/dist/{RemoveDialog-CQIm9GTH.js.map → RemoveDialog-MhEU5Zl3.js.map} +1 -1
  218. package/dist/RichTextEditor-Cnrnvv1f.cjs +2 -0
  219. package/dist/RichTextEditor-Cnrnvv1f.cjs.map +1 -0
  220. package/dist/RichTextEditor-zkoxujnO.js +1148 -0
  221. package/dist/RichTextEditor-zkoxujnO.js.map +1 -0
  222. package/dist/{RootLayout-Cl98ghy1.js → RootLayout-C4r9i5Go.js} +21 -21
  223. package/dist/{RootLayout-Cl98ghy1.js.map → RootLayout-C4r9i5Go.js.map} +1 -1
  224. package/dist/{RootLayout-s_Q_kSoS.cjs → RootLayout-Z9PuRfsa.cjs} +2 -2
  225. package/dist/{RootLayout-s_Q_kSoS.cjs.map → RootLayout-Z9PuRfsa.cjs.map} +1 -1
  226. package/dist/Select-CylqFHce.cjs +2 -0
  227. package/dist/{Select-BrjXCXtl.cjs.map → Select-CylqFHce.cjs.map} +1 -1
  228. package/dist/{Select-CG8UJL9R.js → Select-jT94L1vq.js} +47 -47
  229. package/dist/{Select-CG8UJL9R.js.map → Select-jT94L1vq.js.map} +1 -1
  230. package/dist/{Sidebar-CbPr34jd.js → Sidebar-B1O2RsbR.js} +59 -59
  231. package/dist/{Sidebar-CbPr34jd.js.map → Sidebar-B1O2RsbR.js.map} +1 -1
  232. package/dist/Sidebar-Bcm0fgVm.cjs +2 -0
  233. package/dist/{Sidebar-DLlqHvQJ.cjs.map → Sidebar-Bcm0fgVm.cjs.map} +1 -1
  234. package/dist/{Slider-DTnui01g.cjs → Slider-CV7ug0WF.cjs} +2 -2
  235. package/dist/{Slider-DTnui01g.cjs.map → Slider-CV7ug0WF.cjs.map} +1 -1
  236. package/dist/{Slider-B5iG-HSw.js → Slider-DC-ugZwT.js} +2 -2
  237. package/dist/{Slider-B5iG-HSw.js.map → Slider-DC-ugZwT.js.map} +1 -1
  238. package/dist/{SpeedDial-Be3SHkzw.js → SpeedDial-C6yiMUe8.js} +3 -3
  239. package/dist/{SpeedDial-Be3SHkzw.js.map → SpeedDial-C6yiMUe8.js.map} +1 -1
  240. package/dist/{SpeedDial-i5kxikmt.cjs → SpeedDial-DOgm2DDX.cjs} +2 -2
  241. package/dist/{SpeedDial-i5kxikmt.cjs.map → SpeedDial-DOgm2DDX.cjs.map} +1 -1
  242. package/dist/Stepper-BZdYGpBN.js +168 -0
  243. package/dist/{Stepper-BDQt-oVG.js.map → Stepper-BZdYGpBN.js.map} +1 -1
  244. package/dist/Stepper-DqM86TGV.cjs +2 -0
  245. package/dist/{Stepper-e8qBsKYW.cjs.map → Stepper-DqM86TGV.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-BgaCwRDQ.cjs +2 -0
  251. package/dist/Table-BgaCwRDQ.cjs.map +1 -0
  252. package/dist/{Table-ChdM_vyi.js → Table-FZlVWoYi.js} +346 -346
  253. package/dist/Table-FZlVWoYi.js.map +1 -0
  254. package/dist/Tabs-BqQPkorY.js +193 -0
  255. package/dist/{Tabs-BxZrgozI.js.map → Tabs-BqQPkorY.js.map} +1 -1
  256. package/dist/Tabs-kGeyFhJ6.cjs +2 -0
  257. package/dist/{Tabs-C4kB1yfG.cjs.map → Tabs-kGeyFhJ6.cjs.map} +1 -1
  258. package/dist/{TagsField-Bg5BcQU-.cjs → TagsField-B_sjp48X.cjs} +2 -2
  259. package/dist/{TagsField-Bg5BcQU-.cjs.map → TagsField-B_sjp48X.cjs.map} +1 -1
  260. package/dist/{TagsField-DWlIt7XO.js → TagsField-ByTx9JXK.js} +5 -5
  261. package/dist/{TagsField-DWlIt7XO.js.map → TagsField-ByTx9JXK.js.map} +1 -1
  262. package/dist/{TextField-B-xqoDZR.cjs → TextField-CBYJIfau.cjs} +2 -2
  263. package/dist/{TextField-B-xqoDZR.cjs.map → TextField-CBYJIfau.cjs.map} +1 -1
  264. package/dist/{TextField-Dwx5GPxz.js → TextField-CyKIx-d-.js} +4 -4
  265. package/dist/{TextField-Dwx5GPxz.js.map → TextField-CyKIx-d-.js.map} +1 -1
  266. package/dist/{ThemeToggle-DFgv1bsh.cjs → ThemeToggle-D2dIqiBa.cjs} +2 -2
  267. package/dist/{ThemeToggle-DFgv1bsh.cjs.map → ThemeToggle-D2dIqiBa.cjs.map} +1 -1
  268. package/dist/{ThemeToggle-CK2USfgx.js → ThemeToggle-Dg6IishB.js} +4 -4
  269. package/dist/{ThemeToggle-CK2USfgx.js.map → ThemeToggle-Dg6IishB.js.map} +1 -1
  270. package/dist/TimeColumns-Cx8J5qzW.js +147 -0
  271. package/dist/{TimeColumns-BWcuu3l7.js.map → TimeColumns-Cx8J5qzW.js.map} +1 -1
  272. package/dist/TimeColumns-DVmK_T_P.cjs +2 -0
  273. package/dist/{TimeColumns-B8KTj-tc.cjs.map → TimeColumns-DVmK_T_P.cjs.map} +1 -1
  274. package/dist/{TimePicker-DjL15hz1.cjs → TimePicker-0nZOPRKp.cjs} +2 -2
  275. package/dist/{TimePicker-DjL15hz1.cjs.map → TimePicker-0nZOPRKp.cjs.map} +1 -1
  276. package/dist/{TimePicker-YMVHevpZ.js → TimePicker-sAhtvqQ4.js} +7 -7
  277. package/dist/{TimePicker-YMVHevpZ.js.map → TimePicker-sAhtvqQ4.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-pHN2pxrU.js → Toaster-BOW9rzLq.js} +3 -3
  283. package/dist/{Toaster-pHN2pxrU.js.map → Toaster-BOW9rzLq.js.map} +1 -1
  284. package/dist/{Toaster-9hZ5MuW7.cjs → Toaster-DYGo92ke.cjs} +2 -2
  285. package/dist/{Toaster-9hZ5MuW7.cjs.map → Toaster-DYGo92ke.cjs.map} +1 -1
  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-SvS37hab.cjs → TranslatedFields-C_DuLotV.cjs} +2 -2
  291. package/dist/{TranslatedFields-SvS37hab.cjs.map → TranslatedFields-C_DuLotV.cjs.map} +1 -1
  292. package/dist/{TranslatedFields-BpWU5ZcG.js → TranslatedFields-CcE0td9p.js} +5 -5
  293. package/dist/{TranslatedFields-BpWU5ZcG.js.map → TranslatedFields-CcE0td9p.js.map} +1 -1
  294. package/dist/{UserCard-VPaexedS.cjs → UserCard-DLVptkLr.cjs} +2 -2
  295. package/dist/{UserCard-VPaexedS.cjs.map → UserCard-DLVptkLr.cjs.map} +1 -1
  296. package/dist/{UserCard-cmZrMvwL.js → UserCard-DeONbaKj.js} +5 -5
  297. package/dist/{UserCard-cmZrMvwL.js.map → UserCard-DeONbaKj.js.map} +1 -1
  298. package/dist/chunks/icons/{25-knEB8mSp.js → 25-BMMPtr_E.js} +4 -5
  299. package/dist/chunks/icons/{25-Dho_3EHD.cjs → 25-uATZNfXE.cjs} +1 -1
  300. package/dist/chunks/icons/{2b-CQJdcF1h.js → 2b-Brkug4c-.js} +10 -11
  301. package/dist/chunks/icons/{2b-C2_97u16.cjs → 2b-CIVRGp1R.cjs} +1 -1
  302. package/dist/chunks/icons/57-BLoIUlhF.js +27 -0
  303. package/dist/chunks/icons/57-D4zLdDZ1.cjs +1 -0
  304. package/dist/chunks/icons/{75-DqLkMUyj.cjs → 75-C2eJ2Tvr.cjs} +1 -1
  305. package/dist/chunks/icons/{75-D5RQw6IJ.js → 75-D16WojvG.js} +6 -7
  306. package/dist/chunks/icons/{7c-DpnA_JOJ.js → 7c-0j5Sno5_.js} +6 -7
  307. package/dist/chunks/icons/{7c-DEaFwltT.cjs → 7c-LUfAyp72.cjs} +1 -1
  308. package/dist/chunks/icons/8a-BJ_LOjmW.js +26 -0
  309. package/dist/chunks/icons/8a-CYkhOibI.cjs +1 -0
  310. package/dist/chunks/icons/97-Bx7FkkGJ.js +12 -0
  311. package/dist/chunks/icons/97-D7pUHrOX.cjs +1 -0
  312. package/dist/chunks/icons/{b7-BtHkI92Y.js → b7-DmmkevXf.js} +17 -18
  313. package/dist/chunks/icons/{b7-B-dB5jrV.cjs → b7-rI1GpsxW.cjs} +1 -1
  314. package/dist/chunks/icons/b8-De0yKEKv.js +28 -0
  315. package/dist/chunks/icons/b8-eR814BVJ.cjs +1 -0
  316. package/dist/chunks/icons/{b9-Bw942fE3.js → b9-CJO6ZdSw.js} +10 -11
  317. package/dist/chunks/icons/{b9-Be-J4RIp.cjs → b9-DZdWz9qg.cjs} +1 -1
  318. package/dist/chunks/icons/d5-BAPeb6B0.cjs +1 -0
  319. package/dist/chunks/icons/d5-BJJanOLe.js +21 -0
  320. package/dist/chunks/icons/d8--vRkIVal.js +19 -0
  321. package/dist/chunks/icons/d8-BfMys92X.cjs +1 -0
  322. package/dist/chunks/icons/dd-CARhkHmU.js +21 -0
  323. package/dist/chunks/icons/dd-D61yllMP.cjs +1 -0
  324. package/dist/components/Accordion/index.cjs +1 -1
  325. package/dist/components/Accordion/index.js +1 -1
  326. package/dist/components/Alert/index.cjs +1 -1
  327. package/dist/components/Alert/index.js +1 -1
  328. package/dist/components/AuthLayout/index.cjs +1 -1
  329. package/dist/components/AuthLayout/index.js +1 -1
  330. package/dist/components/Avatar/index.cjs +1 -1
  331. package/dist/components/Avatar/index.js +2 -2
  332. package/dist/components/Breadcrumbs/index.cjs +1 -1
  333. package/dist/components/Breadcrumbs/index.js +1 -1
  334. package/dist/components/Button/index.cjs +1 -1
  335. package/dist/components/Button/index.js +1 -1
  336. package/dist/components/Card/index.cjs +1 -1
  337. package/dist/components/Card/index.js +1 -1
  338. package/dist/components/Chip/index.cjs +1 -1
  339. package/dist/components/Chip/index.js +1 -1
  340. package/dist/components/ChoiceCard/index.cjs +1 -1
  341. package/dist/components/ChoiceCard/index.js +1 -1
  342. package/dist/components/CodeBlock/index.cjs +1 -1
  343. package/dist/components/CodeBlock/index.js +1 -1
  344. package/dist/components/ColorPicker/index.cjs +1 -1
  345. package/dist/components/ColorPicker/index.js +1 -1
  346. package/dist/components/ColorRamp/index.cjs +1 -1
  347. package/dist/components/ColorRamp/index.js +1 -1
  348. package/dist/components/CopyButton/index.cjs +1 -1
  349. package/dist/components/CopyButton/index.js +1 -1
  350. package/dist/components/DashedButton/index.cjs +1 -1
  351. package/dist/components/DashedButton/index.js +1 -1
  352. package/dist/components/DatePicker/index.cjs +1 -1
  353. package/dist/components/DatePicker/index.js +1 -1
  354. package/dist/components/DateTimePicker/index.cjs +1 -1
  355. package/dist/components/DateTimePicker/index.js +1 -1
  356. package/dist/components/DescriptionList/index.cjs +1 -1
  357. package/dist/components/DescriptionList/index.js +1 -1
  358. package/dist/components/Dropdown/index.cjs +1 -1
  359. package/dist/components/Dropdown/index.js +1 -1
  360. package/dist/components/EmptyState/index.cjs +1 -1
  361. package/dist/components/EmptyState/index.js +1 -1
  362. package/dist/components/ErrorState/index.cjs +1 -1
  363. package/dist/components/ErrorState/index.js +2 -2
  364. package/dist/components/FileCard/index.cjs +1 -1
  365. package/dist/components/FileCard/index.js +1 -1
  366. package/dist/components/FileUploader/FileUploader.d.cts +33 -5
  367. package/dist/components/FileUploader/FileUploader.d.ts +33 -5
  368. package/dist/components/FileUploader/FileUploaderEditDialog.d.cts +8 -18
  369. package/dist/components/FileUploader/FileUploaderEditDialog.d.ts +8 -18
  370. package/dist/components/FileUploader/index.cjs +1 -1
  371. package/dist/components/FileUploader/index.js +1 -1
  372. package/dist/components/Flag/index.cjs +1 -1
  373. package/dist/components/Flag/index.js +1 -1
  374. package/dist/components/FullscreenToggle/index.cjs +1 -1
  375. package/dist/components/FullscreenToggle/index.js +1 -1
  376. package/dist/components/Icon/index.cjs +1 -1
  377. package/dist/components/Icon/index.js +1 -1
  378. package/dist/components/IconButton/index.cjs +1 -1
  379. package/dist/components/IconButton/index.js +1 -1
  380. package/dist/components/ImageEditor/CropShapeMenu.d.cts +17 -0
  381. package/dist/components/ImageEditor/CropShapeMenu.d.ts +17 -0
  382. package/dist/components/ImageEditor/EditorStage.d.cts +27 -0
  383. package/dist/components/ImageEditor/EditorStage.d.ts +27 -0
  384. package/dist/components/ImageEditor/FilterStrip.d.cts +14 -0
  385. package/dist/components/ImageEditor/FilterStrip.d.ts +14 -0
  386. package/dist/components/ImageEditor/ImageEditor.d.cts +30 -0
  387. package/dist/components/ImageEditor/ImageEditor.d.ts +30 -0
  388. package/dist/components/ImageEditor/ResizePanel.d.cts +19 -0
  389. package/dist/components/ImageEditor/ResizePanel.d.ts +19 -0
  390. package/dist/components/ImageEditor/RulerSlider.d.cts +37 -0
  391. package/dist/components/ImageEditor/RulerSlider.d.ts +37 -0
  392. package/dist/components/ImageEditor/core/affine.d.cts +11 -0
  393. package/dist/components/ImageEditor/core/affine.d.ts +11 -0
  394. package/dist/components/ImageEditor/core/editor.d.cts +69 -0
  395. package/dist/components/ImageEditor/core/editor.d.ts +69 -0
  396. package/dist/components/ImageEditor/core/geometry.d.cts +112 -0
  397. package/dist/components/ImageEditor/core/geometry.d.ts +112 -0
  398. package/dist/components/ImageEditor/core/load.d.cts +26 -0
  399. package/dist/components/ImageEditor/core/load.d.ts +26 -0
  400. package/dist/components/ImageEditor/core/matrix.d.cts +55 -0
  401. package/dist/components/ImageEditor/core/matrix.d.ts +55 -0
  402. package/dist/components/ImageEditor/core/pixels.d.cts +24 -0
  403. package/dist/components/ImageEditor/core/pixels.d.ts +24 -0
  404. package/dist/components/ImageEditor/core/redact.d.cts +37 -0
  405. package/dist/components/ImageEditor/core/redact.d.ts +37 -0
  406. package/dist/components/ImageEditor/core/render.d.cts +19 -0
  407. package/dist/components/ImageEditor/core/render.d.ts +19 -0
  408. package/dist/components/ImageEditor/core/scene.d.cts +47 -0
  409. package/dist/components/ImageEditor/core/scene.d.ts +47 -0
  410. package/dist/components/ImageEditor/core/spring.d.cts +17 -0
  411. package/dist/components/ImageEditor/core/spring.d.ts +17 -0
  412. package/dist/components/ImageEditor/core/types.d.cts +104 -0
  413. package/dist/components/ImageEditor/core/types.d.ts +104 -0
  414. package/dist/components/ImageEditor/core/webgl.d.cts +55 -0
  415. package/dist/components/ImageEditor/core/webgl.d.ts +55 -0
  416. package/dist/components/ImageEditor/index.cjs +2 -0
  417. package/dist/components/ImageEditor/index.cjs.map +1 -0
  418. package/dist/components/ImageEditor/index.d.cts +6 -0
  419. package/dist/components/ImageEditor/index.d.ts +6 -0
  420. package/dist/components/ImageEditor/index.js +9 -0
  421. package/dist/components/ImageEditor/index.js.map +1 -0
  422. package/dist/components/Link/index.cjs +1 -1
  423. package/dist/components/Link/index.js +1 -1
  424. package/dist/components/List/index.cjs +1 -1
  425. package/dist/components/List/index.js +2 -2
  426. package/dist/components/Loader/index.cjs +1 -1
  427. package/dist/components/Loader/index.js +1 -1
  428. package/dist/components/LocationPicker/index.cjs +1 -1
  429. package/dist/components/LocationPicker/index.js +1 -1
  430. package/dist/components/Modal/index.cjs +1 -1
  431. package/dist/components/Modal/index.js +1 -1
  432. package/dist/components/MultiSelect/index.cjs +1 -1
  433. package/dist/components/MultiSelect/index.js +1 -1
  434. package/dist/components/NumberField/index.cjs +1 -1
  435. package/dist/components/NumberField/index.js +1 -1
  436. package/dist/components/OtpField/index.cjs +1 -1
  437. package/dist/components/OtpField/index.js +1 -1
  438. package/dist/components/PageError/index.cjs +1 -1
  439. package/dist/components/PageError/index.js +1 -1
  440. package/dist/components/PageLayout/index.cjs +1 -1
  441. package/dist/components/PageLayout/index.js +1 -1
  442. package/dist/components/PageNotFound/index.cjs +1 -1
  443. package/dist/components/PageNotFound/index.js +1 -1
  444. package/dist/components/Pagination/index.cjs +1 -1
  445. package/dist/components/Pagination/index.js +1 -1
  446. package/dist/components/PaletteField/index.cjs +1 -1
  447. package/dist/components/PaletteField/index.js +1 -1
  448. package/dist/components/PhoneField/index.cjs +1 -1
  449. package/dist/components/PhoneField/index.js +1 -1
  450. package/dist/components/Popconfirm/index.cjs +1 -1
  451. package/dist/components/Popconfirm/index.js +1 -1
  452. package/dist/components/Progress/index.cjs +1 -1
  453. package/dist/components/Progress/index.js +1 -1
  454. package/dist/components/QrCode/index.cjs +1 -1
  455. package/dist/components/QrCode/index.js +1 -1
  456. package/dist/components/RemoveDialog/index.cjs +1 -1
  457. package/dist/components/RemoveDialog/index.js +1 -1
  458. package/dist/components/RichTextEditor/RichTextEditor.d.cts +3 -2
  459. package/dist/components/RichTextEditor/RichTextEditor.d.ts +3 -2
  460. package/dist/components/RichTextEditor/index.cjs +1 -1
  461. package/dist/components/RichTextEditor/index.js +1 -1
  462. package/dist/components/RichTextEditor/nodes/ImageNode.d.cts +22 -7
  463. package/dist/components/RichTextEditor/nodes/ImageNode.d.ts +22 -7
  464. package/dist/components/RichTextEditor/nodes/VideoNode.d.cts +4 -4
  465. package/dist/components/RichTextEditor/nodes/VideoNode.d.ts +4 -4
  466. package/dist/components/RootLayout/index.cjs +1 -1
  467. package/dist/components/RootLayout/index.js +1 -1
  468. package/dist/components/Select/index.cjs +1 -1
  469. package/dist/components/Select/index.js +1 -1
  470. package/dist/components/Sidebar/index.cjs +1 -1
  471. package/dist/components/Sidebar/index.js +1 -1
  472. package/dist/components/Slider/index.cjs +1 -1
  473. package/dist/components/Slider/index.js +1 -1
  474. package/dist/components/SpeedDial/index.cjs +1 -1
  475. package/dist/components/SpeedDial/index.js +1 -1
  476. package/dist/components/Stepper/index.cjs +1 -1
  477. package/dist/components/Stepper/index.js +1 -1
  478. package/dist/components/SwatchPicker/index.cjs +1 -1
  479. package/dist/components/SwatchPicker/index.js +1 -1
  480. package/dist/components/Table/index.cjs +1 -1
  481. package/dist/components/Table/index.js +1 -1
  482. package/dist/components/Tabs/index.cjs +1 -1
  483. package/dist/components/Tabs/index.js +1 -1
  484. package/dist/components/TagsField/index.cjs +1 -1
  485. package/dist/components/TagsField/index.js +1 -1
  486. package/dist/components/TextField/index.cjs +1 -1
  487. package/dist/components/TextField/index.js +1 -1
  488. package/dist/components/ThemeToggle/index.cjs +1 -1
  489. package/dist/components/ThemeToggle/index.js +1 -1
  490. package/dist/components/TimePicker/index.cjs +1 -1
  491. package/dist/components/TimePicker/index.js +1 -1
  492. package/dist/components/Timeline/Timeline.d.cts +16 -4
  493. package/dist/components/Timeline/Timeline.d.ts +16 -4
  494. package/dist/components/Timeline/TimelineItem.d.cts +12 -6
  495. package/dist/components/Timeline/TimelineItem.d.ts +12 -6
  496. package/dist/components/Timeline/index.cjs +1 -1
  497. package/dist/components/Timeline/index.d.cts +1 -1
  498. package/dist/components/Timeline/index.d.ts +1 -1
  499. package/dist/components/Timeline/index.js +1 -1
  500. package/dist/components/Timeline/timelineContext.d.cts +3 -2
  501. package/dist/components/Timeline/timelineContext.d.ts +3 -2
  502. package/dist/components/Toast/index.cjs +1 -1
  503. package/dist/components/Toast/index.js +1 -1
  504. package/dist/components/ToggleButton/index.cjs +1 -1
  505. package/dist/components/ToggleButton/index.js +1 -1
  506. package/dist/components/TranslatedFields/index.cjs +1 -1
  507. package/dist/components/TranslatedFields/index.js +1 -1
  508. package/dist/components/UserCard/index.cjs +1 -1
  509. package/dist/components/UserCard/index.js +1 -1
  510. package/dist/components/index.d.cts +1 -0
  511. package/dist/components/index.d.ts +1 -0
  512. package/dist/entries/app.cjs +1 -1
  513. package/dist/entries/app.js +1 -1
  514. package/dist/entries/components.cjs +1 -1
  515. package/dist/entries/components.js +164 -159
  516. package/dist/entries/components.js.map +1 -1
  517. package/dist/entries/i18n.cjs +1 -1
  518. package/dist/entries/i18n.js +2 -2
  519. package/dist/entries/icons.cjs +1 -1
  520. package/dist/entries/icons.js +1 -1
  521. package/dist/entries/theme.cjs +1 -1
  522. package/dist/entries/theme.js +1 -1
  523. package/dist/i18n/messages.d.cts +66 -4
  524. package/dist/i18n/messages.d.ts +66 -4
  525. package/dist/icons/names.d.cts +3 -3
  526. package/dist/icons/names.d.ts +3 -3
  527. package/dist/index.cjs +1 -1
  528. package/dist/index.css +1 -1
  529. package/dist/index.js +161 -156
  530. package/dist/index.js.map +1 -1
  531. package/dist/{messages-BiRLMy1E.js → messages-DeQuvGln.js} +139 -47
  532. package/dist/messages-DeQuvGln.js.map +1 -0
  533. package/dist/{messages-C_fRRCg6.cjs → messages-dL9MkVze.cjs} +9 -9
  534. package/dist/messages-dL9MkVze.cjs.map +1 -0
  535. package/dist/{useHomeTo-DdmOGy09.js → useHomeTo-BL3e8Sc6.js} +2 -2
  536. package/dist/{useHomeTo-DdmOGy09.js.map → useHomeTo-BL3e8Sc6.js.map} +1 -1
  537. package/dist/{useHomeTo-HCkVzGTu.cjs → useHomeTo-W1PDW5CU.cjs} +2 -2
  538. package/dist/{useHomeTo-HCkVzGTu.cjs.map → useHomeTo-W1PDW5CU.cjs.map} +1 -1
  539. package/dist/{useOptionMenu-EiyIkC3E.js → useOptionMenu-BkKiZ6Ax.js} +6 -6
  540. package/dist/{useOptionMenu-EiyIkC3E.js.map → useOptionMenu-BkKiZ6Ax.js.map} +1 -1
  541. package/dist/{useOptionMenu-BqCj10_a.cjs → useOptionMenu-CVl7VHXl.cjs} +2 -2
  542. package/dist/{useOptionMenu-BqCj10_a.cjs.map → useOptionMenu-CVl7VHXl.cjs.map} +1 -1
  543. package/package.json +1 -6
  544. package/dist/Alert-B4XZDk16.cjs +0 -2
  545. package/dist/Alert-D5E1PLkV.js +0 -70
  546. package/dist/Breadcrumbs-DSUxcp6u.cjs +0 -2
  547. package/dist/Breadcrumbs-M31xyok8.js +0 -34
  548. package/dist/Button-CtADzomU.js +0 -72
  549. package/dist/Button-Q_5uA-zc.cjs +0 -2
  550. package/dist/Chip-CrBizrvG.cjs +0 -2
  551. package/dist/Chip-DYZ5w7VM.js +0 -92
  552. package/dist/ChoiceCardGroup-C7Eengyd.cjs +0 -2
  553. package/dist/ChoiceCardGroup-q0yN-TeQ.js +0 -180
  554. package/dist/CodeBlock-B6Eqc4HR.js +0 -96
  555. package/dist/CodeBlock-DW4uaZXM.cjs +0 -2
  556. package/dist/DashedButton-Dw7xHgIp.cjs +0 -2
  557. package/dist/DashedButton-csz6Jt_K.js +0 -58
  558. package/dist/DatePicker.module-BDtTsg8M.cjs +0 -2
  559. package/dist/DatePicker.module-CMMQyEhG.js +0 -138
  560. package/dist/DescriptionList-BBvfABps.cjs +0 -2
  561. package/dist/Dropdown-CMjURWYd.cjs +0 -2
  562. package/dist/Dropdown-CMjURWYd.cjs.map +0 -1
  563. package/dist/Dropdown-CnDBlB02.js +0 -146
  564. package/dist/Dropdown-CnDBlB02.js.map +0 -1
  565. package/dist/FileCard-BqMproT9.cjs +0 -2
  566. package/dist/FileUploader-BimFH5d8.cjs +0 -2
  567. package/dist/FileUploader-BimFH5d8.cjs.map +0 -1
  568. package/dist/FileUploader-LJIMh5_b.js +0 -707
  569. package/dist/FileUploader-LJIMh5_b.js.map +0 -1
  570. package/dist/Icon-B6lz-V0A.cjs +0 -2
  571. package/dist/Icon-B6lz-V0A.cjs.map +0 -1
  572. package/dist/Icon-D5TxgfCc.js +0 -5404
  573. package/dist/Icon-D5TxgfCc.js.map +0 -1
  574. package/dist/IconButton-BoURJOUD.js +0 -68
  575. package/dist/IconButton-CiDPeKM4.cjs +0 -2
  576. package/dist/Link-BQlvsu9V.js +0 -48
  577. package/dist/Link-GZT51mKx.cjs +0 -2
  578. package/dist/ListItem-2Lr5_NRY.js +0 -76
  579. package/dist/ListItem-DkCYXucd.cjs +0 -2
  580. package/dist/Modal-CYcVOzID.js +0 -206
  581. package/dist/Modal-CYcVOzID.js.map +0 -1
  582. package/dist/Modal-DwY3jGHE.cjs +0 -2
  583. package/dist/Modal-DwY3jGHE.cjs.map +0 -1
  584. package/dist/MultiSelect-DJ6tRseY.cjs +0 -2
  585. package/dist/MultiSelect-svEVZNbp.js +0 -219
  586. package/dist/OtpField-DlkGju72.cjs +0 -2
  587. package/dist/Pagination-CAD9_Nr_.cjs +0 -2
  588. package/dist/Pagination-CX0S1RrF.js +0 -139
  589. package/dist/PhoneField-Dlnnv4DU.cjs +0 -2
  590. package/dist/RichTextEditor-Ba1G_qXu.cjs +0 -2
  591. package/dist/RichTextEditor-Ba1G_qXu.cjs.map +0 -1
  592. package/dist/RichTextEditor-CJcbxQ6H.js +0 -916
  593. package/dist/RichTextEditor-CJcbxQ6H.js.map +0 -1
  594. package/dist/Select-BrjXCXtl.cjs +0 -2
  595. package/dist/Sidebar-DLlqHvQJ.cjs +0 -2
  596. package/dist/Stepper-BDQt-oVG.js +0 -168
  597. package/dist/Stepper-e8qBsKYW.cjs +0 -2
  598. package/dist/Table-C14fRX1U.cjs +0 -2
  599. package/dist/Table-C14fRX1U.cjs.map +0 -1
  600. package/dist/Table-ChdM_vyi.js.map +0 -1
  601. package/dist/Tabs-BxZrgozI.js +0 -193
  602. package/dist/Tabs-C4kB1yfG.cjs +0 -2
  603. package/dist/TimeColumns-B8KTj-tc.cjs +0 -2
  604. package/dist/TimeColumns-BWcuu3l7.js +0 -147
  605. package/dist/Timeline-Cb1krSlo.js +0 -70
  606. package/dist/Timeline-Cb1krSlo.js.map +0 -1
  607. package/dist/Timeline-CmluHBIT.cjs +0 -2
  608. package/dist/Timeline-CmluHBIT.cjs.map +0 -1
  609. package/dist/ToggleButtonGroup-Ci_DFvdt.cjs +0 -2
  610. package/dist/chunks/icons/57-Bxh2lSz-.cjs +0 -1
  611. package/dist/chunks/icons/57-CkmrDM9A.js +0 -28
  612. package/dist/chunks/icons/8a-CThAqelS.js +0 -27
  613. package/dist/chunks/icons/8a-DRBAtpxY.cjs +0 -1
  614. package/dist/chunks/icons/97-J9NBhX2o.js +0 -14
  615. package/dist/chunks/icons/97-r2YXIQ_T.cjs +0 -1
  616. package/dist/chunks/icons/b8-CyIivk3C.cjs +0 -1
  617. package/dist/chunks/icons/b8-DcK0w8WM.js +0 -29
  618. package/dist/chunks/icons/d5-3fWtNlXW.js +0 -20
  619. package/dist/chunks/icons/d5-CoG_Hfw9.cjs +0 -1
  620. package/dist/chunks/icons/d8-DsebfeMy.cjs +0 -1
  621. package/dist/chunks/icons/d8-DtOvDDrr.js +0 -20
  622. package/dist/chunks/icons/dd-BXVES9Ib.js +0 -22
  623. package/dist/chunks/icons/dd-beaqCKss.cjs +0 -1
  624. package/dist/messages-BiRLMy1E.js.map +0 -1
  625. package/dist/messages-C_fRRCg6.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"RichTextEditor-CJcbxQ6H.js","sources":["../src/components/RichTextEditor/urlSafety.ts","../src/components/RichTextEditor/nodes/ImageNode.tsx","../src/components/RichTextEditor/nodes/VideoNode.tsx","../src/components/RichTextEditor/Toolbar.tsx","../src/components/RichTextEditor/RichTextEditor.tsx"],"sourcesContent":["/**\n * URL-scheme allowlist for the RichTextEditor — the single defense against script-URL XSS\n * (`javascript:`, `vbscript:`, `data:text/html`, …) reaching the exported HTML value, whether a URL\n * arrives via the toolbar dialogs, a paste, or a loaded value. Rejected URLs are neutralized (an\n * empty `src`, or a `'#'` `href`) rather than executed.\n */\n\n// Link schemes we trust, plus relative/anchor/query starts (which carry no scheme at all).\nconst SAFE_LINK = /^(?:https?:|mailto:|tel:|ftp:|#|\\/|\\?|\\.)/i\n// Does the string begin with an explicit `scheme:` at all? (Anything schemeless is treated as relative.)\nconst HAS_SCHEME = /^[a-z][a-z0-9+.-]*:/i\n\n/**\n * Sanitize a link `href`: allow `http(s)`/`mailto`/`tel`/`ftp` and relative/anchor/query URLs; any\n * other explicit scheme (`javascript:`, `data:`, `vbscript:`, …) collapses to `'#'`.\n */\nexport function sanitizeLinkUrl(url: string): string {\n const trimmed = url.trim()\n if (trimmed === '') return ''\n if (SAFE_LINK.test(trimmed)) return trimmed\n if (!HAS_SCHEME.test(trimmed)) return trimmed // schemeless (e.g. `example.com/x`) → relative, safe\n return '#' // a disallowed scheme\n}\n\n/**\n * Sanitize an image/video `src`: like {@link sanitizeLinkUrl}, but also permits inline\n * `data:image`/`data:video` (upload embeds) and `blob:` object URLs. A disallowed scheme yields `''`.\n */\nexport function sanitizeMediaUrl(url: string): string {\n const trimmed = url.trim()\n if (/^data:(?:image|video)\\//i.test(trimmed) || /^blob:/i.test(trimmed)) return trimmed\n const safe = sanitizeLinkUrl(trimmed)\n return safe === '#' ? '' : safe\n}\n","import {\n $applyNodeReplacement,\n DecoratorNode,\n type DOMConversionMap,\n type DOMConversionOutput,\n type DOMExportOutput,\n type LexicalNode,\n type NodeKey,\n type SerializedLexicalNode,\n type Spread,\n} from 'lexical'\nimport type { ReactNode } from 'react'\nimport { sanitizeMediaUrl } from '../urlSafety'\n\n/** Serialized shape of an {@link ImageNode} (editor-state JSON). */\nexport type SerializedImageNode = Spread<{ src: string; alt: string }, SerializedLexicalNode>\n\n/** Rebuilds an `ImageNode` from a pasted/loaded `<img>` element. */\nfunction convertImageElement(domNode: HTMLElement): DOMConversionOutput | null {\n if (domNode instanceof HTMLImageElement && domNode.src) {\n return { node: $createImageNode(domNode.getAttribute('src') ?? domNode.src, domNode.alt) }\n }\n return null\n}\n\n/**\n * A block-level image node. Renders a plain `<img>` (the `src` may be a remote URL or a base64\n * `data:` URL when inserted via upload). Serializes to a clean `<img src alt>` for the HTML value and\n * parses back from any `<img>` on paste/load.\n */\nexport class ImageNode extends DecoratorNode<ReactNode> {\n __src: string\n __alt: string\n\n static getType(): string {\n return 'tz-image'\n }\n\n static clone(node: ImageNode): ImageNode {\n return new ImageNode(node.__src, node.__alt, node.__key)\n }\n\n constructor(src: string, alt = '', key?: NodeKey) {\n super(key)\n // sanitize here so every path (insert, paste import, JSON load, clone) gets a safe scheme\n this.__src = sanitizeMediaUrl(src)\n this.__alt = alt\n }\n\n static importJSON(json: SerializedImageNode): ImageNode {\n return $createImageNode(json.src, json.alt)\n }\n\n exportJSON(): SerializedImageNode {\n return { ...super.exportJSON(), type: 'tz-image', version: 1, src: this.__src, alt: this.__alt }\n }\n\n static importDOM(): DOMConversionMap | null {\n return { img: () => ({ conversion: convertImageElement, priority: 0 }) }\n }\n\n exportDOM(): DOMExportOutput {\n const element = document.createElement('img')\n element.setAttribute('src', this.__src)\n element.setAttribute('alt', this.__alt)\n return { element }\n }\n\n /** A block wrapper; the actual `<img>` is rendered by {@link decorate}. */\n createDOM(): HTMLElement {\n const div = document.createElement('div')\n div.style.display = 'contents'\n return div\n }\n\n updateDOM(): false {\n return false\n }\n\n getSrc(): string {\n return this.__src\n }\n\n getAltText(): string {\n return this.__alt\n }\n\n decorate(): ReactNode {\n return <img src={this.__src} alt={this.__alt} draggable={false} />\n }\n}\n\n/** Creates an `ImageNode` (use inside an `editor.update`). */\nexport function $createImageNode(src: string, alt = ''): ImageNode {\n return $applyNodeReplacement(new ImageNode(src, alt))\n}\n\n/** Type guard for `ImageNode`. */\nexport function $isImageNode(node: LexicalNode | null | undefined): node is ImageNode {\n return node instanceof ImageNode\n}\n","import {\n $applyNodeReplacement,\n DecoratorNode,\n type DOMConversionMap,\n type DOMConversionOutput,\n type DOMExportOutput,\n type LexicalNode,\n type NodeKey,\n type SerializedLexicalNode,\n type Spread,\n} from 'lexical'\nimport type { ReactNode } from 'react'\nimport { useT } from '../../../theme'\nimport { sanitizeMediaUrl } from '../urlSafety'\n\n/** Serialized shape of a {@link VideoNode} (editor-state JSON). */\nexport type SerializedVideoNode = Spread<{ src: string }, SerializedLexicalNode>\n\n/** A direct video file (rendered with `<video controls>` rather than an embed `<iframe>`). */\nfunction isFileVideo(src: string): boolean {\n return /\\.(mp4|webm|ogg|ogv|mov|m4v)(\\?.*)?$/i.test(src)\n}\n\n/**\n * Normalizes a pasted video URL into an embeddable one — YouTube/Vimeo watch links become their\n * `embed` form; everything else (incl. already-embed URLs and direct files) is returned unchanged,\n * so the conversion is idempotent across HTML round-trips.\n */\nexport function toVideoEmbedSrc(raw: string): string {\n const youtube = raw.match(\n /(?:youtube\\.com\\/(?:watch\\?(?:.*&)?v=|embed\\/|shorts\\/)|youtu\\.be\\/)([\\w-]{11})/,\n )\n if (youtube) return `https://www.youtube.com/embed/${youtube[1]}`\n const vimeo = raw.match(/vimeo\\.com\\/(?:video\\/)?(\\d+)/)\n if (vimeo) return `https://player.vimeo.com/video/${vimeo[1]}`\n return raw\n}\n\n/** Rebuilds a `VideoNode` from a pasted/loaded `<iframe>` or `<video>` element. */\nfunction convertVideoElement(domNode: HTMLElement): DOMConversionOutput | null {\n const src = domNode.getAttribute('src') || domNode.querySelector('source')?.getAttribute('src')\n if (src) return { node: $createVideoNode(src) }\n return null\n}\n\n/**\n * A block-level video node. Direct media files render with `<video controls>`; everything else is\n * treated as an embed and renders in a responsive `<iframe>` (YouTube/Vimeo links are normalized to\n * their embed URL). Serializes to a clean `<video>` / `<iframe>` for the HTML value.\n */\nexport class VideoNode extends DecoratorNode<ReactNode> {\n __src: string\n\n static getType(): string {\n return 'tz-video'\n }\n\n static clone(node: VideoNode): VideoNode {\n return new VideoNode(node.__src, node.__key)\n }\n\n constructor(src: string, key?: NodeKey) {\n super(key)\n // sanitize here so every path (insert, paste import, JSON load, clone) gets a safe scheme\n this.__src = sanitizeMediaUrl(src)\n }\n\n static importJSON(json: SerializedVideoNode): VideoNode {\n return $createVideoNode(json.src)\n }\n\n exportJSON(): SerializedVideoNode {\n return { ...super.exportJSON(), type: 'tz-video', version: 1, src: this.__src }\n }\n\n static importDOM(): DOMConversionMap | null {\n return {\n iframe: () => ({ conversion: convertVideoElement, priority: 0 }),\n video: () => ({ conversion: convertVideoElement, priority: 0 }),\n }\n }\n\n exportDOM(): DOMExportOutput {\n if (isFileVideo(this.__src)) {\n const video = document.createElement('video')\n video.setAttribute('src', this.__src)\n video.setAttribute('controls', 'true')\n return { element: video }\n }\n const iframe = document.createElement('iframe')\n iframe.setAttribute('src', this.__src)\n iframe.setAttribute('frameborder', '0')\n iframe.setAttribute('allowfullscreen', 'true')\n iframe.setAttribute(\n 'allow',\n 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture',\n )\n return { element: iframe }\n }\n\n /** A block wrapper; the actual media element is rendered by {@link decorate}. */\n createDOM(): HTMLElement {\n const div = document.createElement('div')\n div.style.display = 'contents'\n return div\n }\n\n updateDOM(): false {\n return false\n }\n\n getSrc(): string {\n return this.__src\n }\n\n decorate(): ReactNode {\n if (isFileVideo(this.__src)) return <video src={this.__src} controls />\n return <VideoEmbed src={this.__src} />\n }\n}\n\n/** The in-editor embed `<iframe>` — a component so its `title` can be localized via `useT()`. */\nfunction VideoEmbed({ src }: { src: string }) {\n const t = useT()\n return (\n <div className=\"tz-rte-embed\">\n <iframe\n src={src}\n title={t('rte.embeddedVideo')}\n frameBorder={0}\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n />\n </div>\n )\n}\n\n/** Creates a `VideoNode`, normalizing the URL to an embeddable one (use inside an `editor.update`). */\nexport function $createVideoNode(src: string): VideoNode {\n return $applyNodeReplacement(new VideoNode(toVideoEmbedSrc(src)))\n}\n\n/** Type guard for `VideoNode`. */\nexport function $isVideoNode(node: LexicalNode | null | undefined): node is VideoNode {\n return node instanceof VideoNode\n}\n","import { useCallback, useEffect, useRef, useState, type ChangeEvent } from 'react'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport {\n $createParagraphNode,\n $getSelection,\n $isElementNode,\n $isRangeSelection,\n CAN_REDO_COMMAND,\n CAN_UNDO_COMMAND,\n COMMAND_PRIORITY_LOW,\n FORMAT_ELEMENT_COMMAND,\n FORMAT_TEXT_COMMAND,\n REDO_COMMAND,\n SELECTION_CHANGE_COMMAND,\n UNDO_COMMAND,\n type ElementFormatType,\n type TextFormatType,\n} from 'lexical'\nimport {\n $createHeadingNode,\n $createQuoteNode,\n $isHeadingNode,\n $isQuoteNode,\n type HeadingTagType,\n} from '@lexical/rich-text'\nimport {\n INSERT_CHECK_LIST_COMMAND,\n INSERT_ORDERED_LIST_COMMAND,\n INSERT_UNORDERED_LIST_COMMAND,\n ListNode,\n REMOVE_LIST_COMMAND,\n} from '@lexical/list'\nimport { $isLinkNode, TOGGLE_LINK_COMMAND } from '@lexical/link'\nimport { sanitizeLinkUrl } from './urlSafety'\nimport { toast } from '../Toast/toastStore'\nimport { useT, type MessageKey } from '../../theme'\nimport {\n $getSelectionStyleValueForProperty,\n $patchStyleText,\n $setBlocksType,\n} from '@lexical/selection'\nimport { $findMatchingParent, $getNearestNodeOfType, mergeRegister } from '@lexical/utils'\nimport { $insertNodeToNearestRoot } from '@lexical/utils'\nimport type { IconName } from '../../icons/names'\nimport { Button } from '../Button'\nimport { ColorPickerPanel, DEFAULT_SWATCHES } from '../ColorPicker/ColorPickerPanel'\nimport { Divider } from '../Divider'\nimport { Dropdown } from '../Dropdown'\nimport { FloatingPanel } from '../FloatingPanel/FloatingPanel'\nimport { Icon } from '../Icon'\nimport { IconButton } from '../IconButton'\nimport { ListItem } from '../List'\nimport { Modal } from '../Modal'\nimport { TextField } from '../TextField'\nimport { $createImageNode } from './nodes/ImageNode'\nimport { $createVideoNode } from './nodes/VideoNode'\nimport styles from './RichTextEditor.module.css'\n\ntype Size = 'sm' | 'md' | 'lg'\ntype BlockType = 'paragraph' | HeadingTagType | 'quote' | 'bullet' | 'number' | 'check'\n\n// Block-type labels stay **English in every language** by design — \"Paragraph\" / \"Heading\" are\n// editor-standard terms the maintainer prefers untranslated, so these are literals, not i18n keys.\nconst BLOCK_LABEL: Partial<Record<BlockType, string>> = {\n paragraph: 'Paragraph',\n h1: 'Heading 1',\n h2: 'Heading 2',\n h3: 'Heading 3',\n quote: 'Quote',\n bullet: 'Bullet List',\n number: 'Numbered List',\n check: 'Check List',\n}\n\n/** Items in the block-type dropdown — lists & quote are standalone toolbar buttons; check lists are excluded. */\nconst BLOCKS: { type: BlockType; icon?: IconName }[] = [\n { type: 'paragraph', icon: 'Text' },\n { type: 'h1', icon: 'Hashtag' },\n { type: 'h2', icon: 'Hashtag' },\n { type: 'h3', icon: 'Hashtag' },\n]\n\n/** Text-alignment controls (set the block element's `text-align`); `labelKey` resolves via `t`. */\nconst ALIGNS: { value: ElementFormatType; labelKey: MessageKey; icon: IconName }[] = [\n { value: 'left', labelKey: 'rte.alignLeft', icon: 'TextalignLeft' },\n { value: 'center', labelKey: 'rte.alignCenter', icon: 'TextalignCenter' },\n { value: 'right', labelKey: 'rte.alignRight', icon: 'TextalignRight' },\n]\n\n/** Font-size options (the `font-size` style value). */\nconst FONT_SIZES = ['10px', '12px', '13px', '14px', '16px', '18px', '20px']\n\n/** The editor's default content size per `size` — mirrors `.content`'s `--tz-font-size-sm` / `-md` / `-lg`\n * (12 / 13 / 16px in theme.css) — shown active when the selection has no explicit `font-size`. */\nconst DEFAULT_FONT_SIZE: Record<Size, string> = { sm: '12px', md: '13px', lg: '16px' }\n\n/** Config for the shared URL-input `Modal` (link / image-by-URL / video) — replaces `window.prompt`. */\ntype UrlDialog = {\n icon: IconName\n title: string\n label: string\n placeholder: string\n confirmLabel: string\n onConfirm: (url: string) => void\n}\n\n/** The text-color button glyph — a brush icon with a corner triangle tinted with the current text\n * color (so the selected color is always visible). Accepts the `size` `IconButton` injects so it\n * doesn't hit the DOM. */\nfunction ColorGlyph({ color, size }: { color: string; size?: Size }) {\n return (\n <span className={styles.colorGlyph}>\n <Icon name=\"Brush\" size={size} />\n <span\n className={styles.colorBar}\n style={{ borderColor: `transparent transparent ${color || 'currentColor'} transparent` }}\n aria-hidden=\"true\"\n />\n </span>\n )\n}\n\nexport interface ToolbarProps {\n size: Size\n disabled: boolean\n /** Optional async upload — when set, an inserted image uses the returned URL instead of a base64 data URL. */\n onImageUpload?: (file: File) => Promise<string>\n}\n\n/** The editor toolbar — reads the live selection and dispatches Lexical commands. */\nexport function Toolbar({ size, disabled, onImageUpload }: ToolbarProps) {\n const t = useT()\n const blockLabel = (b: BlockType): string => BLOCK_LABEL[b] ?? b // h4–h6 aren't offered by the editor\n const [editor] = useLexicalComposerContext()\n const fileInputRef = useRef<HTMLInputElement>(null)\n\n const [isBold, setIsBold] = useState(false)\n const [isItalic, setIsItalic] = useState(false)\n const [isUnderline, setIsUnderline] = useState(false)\n const [isLink, setIsLink] = useState(false)\n const [linkUrl, setLinkUrl] = useState('')\n const [blockType, setBlockType] = useState<BlockType>('paragraph')\n const [elementFormat, setElementFormat] = useState<ElementFormatType>('left')\n const [fontSize, setFontSize] = useState('')\n const [textColor, setTextColor] = useState('')\n const [colorOpen, setColorOpen] = useState(false)\n const colorTriggerRef = useRef<HTMLButtonElement | null>(null)\n const [canUndo, setCanUndo] = useState(false)\n const [canRedo, setCanRedo] = useState(false)\n // shared URL-input modal (link / image-by-URL / video)\n const [urlDialog, setUrlDialog] = useState<UrlDialog | null>(null)\n const [urlValue, setUrlValue] = useState('')\n\n const syncState = useCallback(() => {\n const selection = $getSelection()\n if (!$isRangeSelection(selection)) return\n setIsBold(selection.hasFormat('bold'))\n setIsItalic(selection.hasFormat('italic'))\n setIsUnderline(selection.hasFormat('underline'))\n setTextColor($getSelectionStyleValueForProperty(selection, 'color', ''))\n setFontSize($getSelectionStyleValueForProperty(selection, 'font-size', ''))\n\n const anchorNode = selection.anchor.getNode()\n const parent = anchorNode.getParent()\n const linkNode = $isLinkNode(anchorNode) ? anchorNode : $isLinkNode(parent) ? parent : null\n setIsLink(linkNode !== null)\n setLinkUrl(linkNode?.getURL() ?? '')\n\n // the block element under the cursor — drives both the alignment and block-type state\n const element =\n anchorNode.getKey() === 'root'\n ? anchorNode\n : ($findMatchingParent(anchorNode, (e) => {\n const parent = e.getParent()\n return parent === null || parent.getKey() === 'root'\n }) ?? anchorNode.getTopLevelElement())\n\n setElementFormat(($isElementNode(element) && element.getFormatType()) || 'left')\n\n const listNode = $getNearestNodeOfType(anchorNode, ListNode)\n if (listNode) setBlockType(listNode.getListType())\n else if ($isHeadingNode(element)) setBlockType(element.getTag())\n else if ($isQuoteNode(element)) setBlockType('quote')\n else setBlockType('paragraph')\n }, [])\n\n useEffect(() => {\n return mergeRegister(\n editor.registerUpdateListener(({ editorState }) => editorState.read(syncState)),\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n () => {\n syncState()\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n CAN_UNDO_COMMAND,\n (payload) => {\n setCanUndo(payload)\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n editor.registerCommand(\n CAN_REDO_COMMAND,\n (payload) => {\n setCanRedo(payload)\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor, syncState])\n\n const format = (type: TextFormatType) => editor.dispatchCommand(FORMAT_TEXT_COMMAND, type)\n\n const applyAlign = (fmt: ElementFormatType) => editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, fmt)\n\n // apply the picked color to the (retained) selection; `''` clears it back to the default\n const applyColor = (color: string) => {\n setTextColor(color)\n editor.update(() => {\n const selection = $getSelection()\n if ($isRangeSelection(selection)) $patchStyleText(selection, { color: color || null })\n })\n }\n\n // apply a font size to the (retained) selection; `''` clears it back to the editor default\n const applyFontSize = (value: string) => {\n setFontSize(value)\n editor.update(() => {\n const selection = $getSelection()\n if ($isRangeSelection(selection)) $patchStyleText(selection, { 'font-size': value || null })\n })\n }\n\n const applyBlock = (type: BlockType) => {\n if (type === 'bullet' || type === 'number' || type === 'check') {\n if (blockType === type) {\n editor.dispatchCommand(REMOVE_LIST_COMMAND, undefined)\n } else {\n const command =\n type === 'bullet'\n ? INSERT_UNORDERED_LIST_COMMAND\n : type === 'number'\n ? INSERT_ORDERED_LIST_COMMAND\n : INSERT_CHECK_LIST_COMMAND\n editor.dispatchCommand(command, undefined)\n }\n return\n }\n editor.update(() => {\n const selection = $getSelection()\n if (!$isRangeSelection(selection)) return\n if (type === 'paragraph') $setBlocksType(selection, () => $createParagraphNode())\n else if (type === 'quote') $setBlocksType(selection, () => $createQuoteNode())\n else $setBlocksType(selection, () => $createHeadingNode(type))\n })\n }\n\n const toggleQuote = () => applyBlock(blockType === 'quote' ? 'paragraph' : 'quote')\n\n // open the shared URL modal (prefilled value + handler differ per action)\n const openUrlDialog = (config: UrlDialog, initial = '') => {\n setUrlValue(initial)\n setUrlDialog(config)\n }\n const closeUrlDialog = () => setUrlDialog(null)\n const confirmUrlDialog = () => {\n urlDialog?.onConfirm(urlValue.trim())\n setUrlDialog(null)\n }\n\n const insertLink = () =>\n openUrlDialog(\n {\n icon: 'Link2',\n title: t('rte.linkTitle'),\n label: t('rte.linkUrl'),\n placeholder: 'https://example.com',\n confirmLabel: isLink ? t('common.update') : t('common.insert'),\n // an empty value removes the link (matches the old prompt behavior); sanitize the scheme\n onConfirm: (url) =>\n editor.dispatchCommand(TOGGLE_LINK_COMMAND, url === '' ? null : sanitizeLinkUrl(url)),\n },\n linkUrl, // prefill the current link's URL when the cursor sits in one\n )\n\n const insertImageByUrl = () =>\n openUrlDialog({\n icon: 'GalleryAdd',\n title: t('rte.imageTitle'),\n label: t('rte.imageUrl'),\n placeholder: 'https://example.com/image.jpg',\n confirmLabel: t('common.insert'),\n onConfirm: (url) => {\n if (url) editor.update(() => $insertNodeToNearestRoot($createImageNode(url)))\n },\n })\n\n const onImageFile = async (event: ChangeEvent<HTMLInputElement>) => {\n const file = event.target.files?.[0]\n event.target.value = '' // allow re-picking the same file\n if (!file) return\n try {\n const url = onImageUpload ? await onImageUpload(file) : await fileToDataUrl(file)\n editor.update(() => $insertNodeToNearestRoot($createImageNode(url, file.name)))\n } catch {\n // a rejecting consumer upload handler (or a failed data-URL read) shouldn't fail silently\n toast.error(t('rte.imageError'))\n }\n }\n\n const insertVideo = () =>\n openUrlDialog({\n icon: 'VideoSquare',\n title: t('rte.videoTitle'),\n label: t('rte.videoUrl'),\n placeholder: t('rte.videoUrlPlaceholder'),\n confirmLabel: t('common.insert'),\n onConfirm: (url) => {\n if (url) editor.update(() => $insertNodeToNearestRoot($createVideoNode(url)))\n },\n })\n\n /** A format toggle — soft-filled while active. */\n const fmtBtn = (\n active: boolean,\n label: string,\n onClick: () => void,\n child: React.ReactNode,\n key?: string,\n ) => (\n <IconButton\n key={key}\n variant={active ? 'filled' : 'text'}\n color=\"primary\"\n size={size}\n disabled={disabled}\n aria-label={label}\n aria-pressed={active}\n onMouseDown={(e) => e.preventDefault()} // keep focus/selection in the editor\n onClick={onClick}\n >\n {child}\n </IconButton>\n )\n\n // the block dropdown only manages Paragraph / Headings — lists & quote are separate toggle buttons,\n // so when the cursor is in a list/quote/check the trigger shows \"Paragraph\", not e.g. \"Bullet List\".\n const dropdownBlock: BlockType = blockType.startsWith('h') ? blockType : 'paragraph'\n\n // font-size shown active: the selection's explicit size, else the editor's default for this `size`\n const effectiveFontSize = fontSize || DEFAULT_FONT_SIZE[size]\n\n return (\n <div\n className={styles.toolbar}\n role=\"toolbar\"\n aria-label={t('rte.formatting')}\n aria-orientation=\"horizontal\"\n >\n <IconButton\n variant=\"text\"\n color=\"primary\"\n size={size}\n disabled={disabled || !canUndo}\n aria-label={t('rte.undo')}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => editor.dispatchCommand(UNDO_COMMAND, undefined)}\n >\n <Icon name=\"UndoArrow\" />\n </IconButton>\n <IconButton\n variant=\"text\"\n color=\"primary\"\n size={size}\n disabled={disabled || !canRedo}\n aria-label={t('rte.redo')}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => editor.dispatchCommand(REDO_COMMAND, undefined)}\n >\n <Icon name=\"RedoArrow\" />\n </IconButton>\n\n <Divider orientation=\"vertical\" />\n\n <Dropdown\n size={size}\n disabled={disabled}\n minWidth={false}\n trigger={\n <Button\n variant=\"text\"\n color=\"primary\"\n size={size}\n disabled={disabled}\n endIcon={<Icon name=\"ArrowDown4\" />}\n aria-label={t('rte.fontSize')}\n onMouseDown={(e) => e.preventDefault()} // keep the selection while opening\n >\n {effectiveFontSize}\n </Button>\n }\n >\n {FONT_SIZES.map((f) => (\n <ListItem\n key={f}\n clickable\n selected={f === effectiveFontSize}\n onClick={() => applyFontSize(f)}\n >\n {f}\n </ListItem>\n ))}\n </Dropdown>\n\n <Divider orientation=\"vertical\" />\n\n <Dropdown\n size={size}\n disabled={disabled}\n trigger={\n <Button\n variant=\"text\"\n color=\"primary\"\n size={size}\n disabled={disabled}\n endIcon={<Icon name=\"ArrowDown4\" />}\n onMouseDown={(e) => e.preventDefault()} // keep the selection while opening\n >\n {blockLabel(dropdownBlock)}\n </Button>\n }\n >\n {BLOCKS.map((b) => (\n <ListItem\n key={b.type}\n clickable\n selected={dropdownBlock === b.type}\n icon={b.icon}\n onClick={() => applyBlock(b.type)}\n >\n {blockLabel(b.type)}\n </ListItem>\n ))}\n </Dropdown>\n\n <Divider orientation=\"vertical\" />\n\n {fmtBtn(isBold, t('rte.bold'), () => format('bold'), <Icon name=\"TextBold\" />)}\n {fmtBtn(isItalic, t('rte.italic'), () => format('italic'), <Icon name=\"TextItalic\" />)}\n {fmtBtn(\n isUnderline,\n t('rte.underline'),\n () => format('underline'),\n <Icon name=\"TextUnderline\" />,\n )}\n\n <Divider orientation=\"vertical\" />\n\n {fmtBtn(\n blockType === 'bullet',\n t('rte.bulletList'),\n () => applyBlock('bullet'),\n <Icon name=\"ListBullet\" />,\n )}\n {fmtBtn(\n blockType === 'number',\n t('rte.numberedList'),\n () => applyBlock('number'),\n <Icon name=\"ListNumber\" />,\n )}\n {fmtBtn(blockType === 'quote', t('rte.quote'), toggleQuote, <Icon name=\"QuoteUp\" />)}\n\n <Divider orientation=\"vertical\" />\n\n {ALIGNS.map((a) =>\n fmtBtn(\n elementFormat === a.value,\n t(a.labelKey),\n () => applyAlign(a.value),\n <Icon name={a.icon} />,\n a.value,\n ),\n )}\n\n <Divider orientation=\"vertical\" />\n\n <IconButton\n ref={colorTriggerRef}\n variant=\"text\"\n color=\"primary\"\n size={size}\n disabled={disabled}\n aria-label={t('rte.textColor')}\n aria-expanded={colorOpen}\n onMouseDown={(e) => e.preventDefault()} // keep the editor's selection while opening\n onClick={() => setColorOpen((o) => !o)}\n >\n <ColorGlyph color={textColor} />\n </IconButton>\n <FloatingPanel\n open={colorOpen}\n triggerRef={colorTriggerRef}\n onClose={(refocus) => {\n setColorOpen(false)\n if (refocus) colorTriggerRef.current?.focus()\n }}\n role=\"dialog\"\n ariaLabel={t('rte.textColor')}\n width={232}\n >\n {/* no \"no color\" swatch; with no explicit color the accent default (first swatch) shows selected */}\n <ColorPickerPanel\n value={textColor || DEFAULT_SWATCHES[0]}\n onChange={applyColor}\n clearable={false}\n />\n </FloatingPanel>\n\n {fmtBtn(isLink, t('rte.link'), insertLink, <Icon name=\"Link2\" />)}\n\n <Dropdown\n size={size}\n disabled={disabled}\n minWidth={false}\n trigger={\n <IconButton\n variant=\"text\"\n color=\"primary\"\n size={size}\n disabled={disabled}\n aria-label={t('rte.insertImage')}\n >\n <Icon name=\"GalleryAdd\" />\n </IconButton>\n }\n >\n <ListItem clickable icon=\"GalleryImport\" onClick={() => fileInputRef.current?.click()}>\n {t('rte.uploadImage')}\n </ListItem>\n <ListItem clickable icon=\"Link\" onClick={insertImageByUrl}>\n {t('rte.imageByUrl')}\n </ListItem>\n </Dropdown>\n\n <IconButton\n variant=\"text\"\n color=\"primary\"\n size={size}\n disabled={disabled}\n aria-label={t('rte.insertVideo')}\n onClick={insertVideo}\n >\n <Icon name=\"VideoSquare\" />\n </IconButton>\n\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"image/*\"\n hidden\n onChange={onImageFile}\n aria-hidden=\"true\"\n tabIndex={-1}\n />\n\n {/* shared URL-input dialog for link / image-by-URL / video (replaces window.prompt). The footer\n Submit drives the body <form> via the `form` attribute (works across the modal's portal). */}\n <Modal\n open={urlDialog !== null}\n onClose={closeUrlDialog}\n size=\"sm\"\n icon={urlDialog?.icon}\n title={urlDialog?.title}\n footer={\n <>\n <Button variant=\"text\" size=\"sm\" onClick={closeUrlDialog}>\n {t('common.cancel')}\n </Button>\n <Button type=\"submit\" size=\"sm\" form=\"rte-url-form\">\n {urlDialog?.confirmLabel ?? t('common.insert')}\n </Button>\n </>\n }\n >\n <form\n id=\"rte-url-form\"\n onSubmit={(e) => {\n e.preventDefault()\n confirmUrlDialog()\n }}\n >\n <TextField\n label={urlDialog?.label}\n placeholder={urlDialog?.placeholder}\n value={urlValue}\n onChange={(e) => setUrlValue(e.target.value)}\n />\n </form>\n </Modal>\n </div>\n )\n}\n\n/** Reads a picked file into a base64 `data:` URL (the no-backend default for image upload). */\nfunction fileToDataUrl(file: File): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader()\n reader.onload = () => resolve(reader.result as string)\n reader.onerror = () => reject(reader.error)\n reader.readAsDataURL(file)\n })\n}\n","import {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n type CSSProperties,\n type FocusEvent,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport {\n $createParagraphNode,\n $getRoot,\n $insertNodes,\n $isParagraphNode,\n $isTextNode,\n $setSelection,\n TextNode,\n getStyleObjectFromCSS,\n type DOMConversionMap,\n type EditorThemeClasses,\n} from 'lexical'\nimport { LexicalComposer } from '@lexical/react/LexicalComposer'\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext'\nimport { RichTextPlugin } from '@lexical/react/LexicalRichTextPlugin'\nimport { ContentEditable } from '@lexical/react/LexicalContentEditable'\nimport { LexicalErrorBoundary } from '@lexical/react/LexicalErrorBoundary'\nimport { HistoryPlugin } from '@lexical/react/LexicalHistoryPlugin'\nimport { ListPlugin } from '@lexical/react/LexicalListPlugin'\nimport { CheckListPlugin } from '@lexical/react/LexicalCheckListPlugin'\nimport { LinkPlugin } from '@lexical/react/LexicalLinkPlugin'\nimport { MarkdownShortcutPlugin } from '@lexical/react/LexicalMarkdownShortcutPlugin'\nimport {\n ELEMENT_TRANSFORMERS,\n TEXT_FORMAT_TRANSFORMERS,\n TEXT_MATCH_TRANSFORMERS,\n} from '@lexical/markdown'\nimport { HeadingNode, QuoteNode } from '@lexical/rich-text'\nimport { ListItemNode, ListNode } from '@lexical/list'\nimport { LinkNode } from '@lexical/link'\nimport { sanitizeLinkUrl } from './urlSafety'\nimport { $generateHtmlFromNodes, $generateNodesFromDOM } from '@lexical/html'\nimport { useT } from '../../theme'\nimport { useFormContext } from '../../form/formContext'\nimport { Typography } from '../Typography'\nimport { Toolbar } from './Toolbar'\nimport { ImageNode } from './nodes/ImageNode'\nimport { VideoNode } from './nodes/VideoNode'\nimport styles from './RichTextEditor.module.css'\n\nexport type RichTextEditorSize = 'sm' | 'md' | 'lg'\n\n/** Lexical node-type → CSS-module class map (so content is styled with `--tz-*` tokens). */\nconst THEME: EditorThemeClasses = {\n paragraph: styles.paragraph,\n heading: {\n h1: styles.h1,\n h2: styles.h2,\n h3: styles.h3,\n h4: styles.h4,\n h5: styles.h5,\n h6: styles.h6,\n },\n quote: styles.quote,\n list: {\n ul: styles.ul,\n ol: styles.ol,\n listitem: styles.li,\n listitemChecked: styles.liChecked,\n listitemUnchecked: styles.liUnchecked,\n nested: { listitem: styles.nestedLi },\n },\n link: styles.link,\n text: {\n bold: styles.bold,\n italic: styles.italic,\n underline: styles.underline,\n strikethrough: styles.strike,\n code: styles.codeInline,\n },\n}\n\nconst EDITOR_NODES = [\n HeadingNode,\n QuoteNode,\n ListNode,\n ListItemNode,\n LinkNode,\n ImageNode,\n VideoNode,\n]\n\n/**\n * Markdown shortcuts for headings/quote/lists + inline formats + links. Excludes the multiline\n * fenced-code-block transformer (it needs `CodeNode`, which is out of scope for v1).\n */\nconst MARKDOWN_TRANSFORMERS = [\n ...ELEMENT_TRANSFORMERS,\n ...TEXT_FORMAT_TRANSFORMERS,\n ...TEXT_MATCH_TRANSFORMERS,\n]\n\n/** The inline text styles the toolbar writes (`$patchStyleText`), which must survive a re-import. */\nconst IMPORTED_TEXT_STYLES = ['color', 'font-size'] as const\n\n/**\n * HTML import override for `<span>`: Lexical's own span conversion reads only bold / italic / underline /\n * strikethrough / sub / sup back from a span's `style` and drops the rest — so a saved **color** or **font\n * size** vanished when the value was loaded again (and the next save stripped it for good). This runs the\n * default conversion, then carries the toolbar's styles onto the imported text nodes (an inner span wins).\n */\nconst HTML_IMPORT: DOMConversionMap = {\n span: (span: HTMLElement) => {\n const base = TextNode.importDOM()?.span?.(span)\n return {\n priority: 1,\n conversion: (element: HTMLElement) => {\n const output = base?.conversion(element) ?? { node: null }\n const picked = IMPORTED_TEXT_STYLES.flatMap((property) => {\n const styleValue = element.style.getPropertyValue(property)\n return styleValue ? [[property, styleValue] as const] : []\n })\n if (picked.length === 0) return output\n const inner = output.forChild\n return {\n ...output,\n forChild: (node, parent) => {\n const converted = inner ? inner(node, parent) : node\n if ($isTextNode(converted)) {\n const merged: Record<string, string> = {\n ...getStyleObjectFromCSS(converted.getStyle()),\n }\n for (const [property, styleValue] of picked) merged[property] = styleValue\n converted.setStyle(\n Object.entries(merged)\n .map(([property, styleValue]) => `${property}: ${styleValue};`)\n .join(' '),\n )\n }\n return converted\n },\n }\n },\n }\n },\n}\n\n/** Inline elements a line of text flows through — anything else (blocks, `<br>`, media) ends a line. */\nconst INLINE_TAGS = new Set([\n 'A',\n 'B',\n 'CODE',\n 'EM',\n 'I',\n 'MARK',\n 'S',\n 'SPAN',\n 'STRONG',\n 'SUB',\n 'SUP',\n 'U',\n])\n\n/**\n * Drops Lexical's `white-space: pre-wrap` from a `style` attribute value, keeping every other declaration\n * (color, font-size, text-align, …) verbatim. Returns `null` when nothing is left.\n */\nfunction stripPreWrap(style: string): string | null {\n const kept = style\n .split(';')\n .map((declaration) => declaration.trim())\n .filter((declaration) => declaration && !/^white-space\\s*:\\s*pre-wrap$/i.test(declaration))\n return kept.length ? `${kept.join('; ')};` : null\n}\n\n/**\n * Keeps the text's spaces visible once `pre-wrap` is gone: a space that normal HTML whitespace would\n * collapse — a second space in a run, one at the start or end of a line — becomes a non-breaking space,\n * alternating (`a \\u00A0 b`) so long runs still wrap. Walks text in document order and treats every\n * non-inline element (block, `<br>`, media) as a line boundary, so spaces split across formatted runs\n * (`<b>a </b>b`) keep their normal, breakable space.\n */\nfunction preserveSpaces(root: DocumentFragment) {\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT)\n let lineStart = true // the next space is at the start of a line (would collapse)\n let prevSpace = false // the last character emitted was a collapsible space\n let lastText: Text | null = null // the line's last text node, for its trailing space\n const endLine = () => {\n if (lastText && lastText.data.endsWith(' ')) {\n lastText.data = `${lastText.data.slice(0, -1)}\\u00A0`\n }\n lastText = null\n lineStart = true\n prevSpace = false\n }\n for (let node = walker.nextNode(); node; node = walker.nextNode()) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n if (!INLINE_TAGS.has((node as Element).tagName)) endLine()\n continue\n }\n const text = node as Text\n if (!text.data) continue\n let out = ''\n for (const ch of text.data) {\n if (ch === ' ' && (lineStart || prevSpace)) {\n out += '\\u00A0'\n prevSpace = false\n } else {\n out += ch\n prevSpace = ch === ' '\n }\n lineStart = false\n }\n text.data = out\n lastText = text\n }\n endLine()\n}\n\n/**\n * Cleans the exported HTML into portable markup:\n * - strips the editor's (hashed, CSS-module) `class` attributes (`<h2>` not `<h2 class=\"_h2_ab12\">`);\n * - drops Lexical's `white-space: pre-wrap` from every `style` (an editor rendering detail, not\n * formatting the user chose — so a backend sanitizer that reports removed styles sees only real ones),\n * removing the attribute when nothing else is left and unwrapping the then-bare `<span>`s. Runs of\n * spaces stay visible via non-breaking spaces ({@link preserveSpaces}); a run holding a tab keeps its\n * `pre-wrap`, since a tab can't be expressed otherwise.\n *\n * Re-import keys off tag names and styles, and reads non-breaking spaces back as-is, so this round-trips:\n * loading the value shows the same text and formatting, and re-exporting it yields the same HTML.\n */\nfunction cleanExportedHtml(html: string): string {\n if (typeof document === 'undefined') return html\n const template = document.createElement('template')\n template.innerHTML = html\n const content = template.content\n content.querySelectorAll('[class]').forEach((el) => el.removeAttribute('class'))\n content.querySelectorAll('[style]').forEach((el) => {\n if (el.textContent?.includes('\\t')) return\n const style = stripPreWrap(el.getAttribute('style') ?? '')\n if (style) el.setAttribute('style', style)\n else el.removeAttribute('style')\n })\n content.querySelectorAll('span').forEach((span) => {\n if (span.attributes.length === 0) span.replaceWith(...span.childNodes)\n })\n content.normalize()\n preserveSpaces(content)\n return template.innerHTML\n}\n\n/**\n * True when the editor holds nothing but an empty paragraph (Lexical's \"blank\" state, which serializes\n * to `<p><br></p>`). Lets the value emit `''` instead, so a cleared editor reads as truly empty (and a\n * `required` rule fires). Call inside an `editor.read`/`update`.\n */\nfunction $isEditorEmpty(): boolean {\n const root = $getRoot()\n const first = root.getFirstChild()\n return (\n root.getChildrenSize() <= 1 &&\n (first === null || ($isParagraphNode(first) && first.getChildrenSize() === 0))\n )\n}\n\n/** Replaces the editor's content with the nodes parsed from an HTML string (call inside `editor.update`). */\nfunction $setRootFromHtml(editor: Parameters<typeof $generateNodesFromDOM>[0], html: string) {\n const root = $getRoot()\n root.clear()\n if (html) {\n const dom = new DOMParser().parseFromString(html, 'text/html')\n const nodes = $generateNodesFromDOM(editor, dom)\n root.select()\n $insertNodes(nodes)\n }\n if (root.getChildrenSize() === 0) root.append($createParagraphNode())\n // clear the caret the insert left at the end of the content — otherwise Lexical scrolls it into\n // view when setting the initial/controlled value on mount, dragging the whole page down to a\n // below-the-fold editor (e.g. the prefilled RTEs on the Edit form). Focus re-places it later.\n $setSelection(null)\n}\n\n/**\n * Update tag for content the editor is *given* (the initial `defaultValue`, a controlled `value`, a\n * `<Form>` value) rather than typed — its serialization becomes the new baseline instead of an `onChange`.\n */\nconst EXTERNAL_VALUE_TAG = 'tz-external-value'\n\ninterface ValuePluginProps {\n value?: string\n defaultValue?: string\n onChange: (html: string) => void\n onReady?: (html: string) => void\n disabled: boolean\n}\n\n/** Serializes the editor to the emitted HTML (`''` when blank). Call inside `editor.read`/`update`. */\nfunction $readHtml(editor: Parameters<typeof $generateHtmlFromNodes>[0]): string {\n return $isEditorEmpty() ? '' : cleanExportedHtml($generateHtmlFromNodes(editor, null))\n}\n\n/**\n * Bridges the HTML `value` ↔ the Lexical editor state, and toggles read-only mode. `onChange` fires only\n * for the user's edits: content written in from outside is tagged {@link EXTERNAL_VALUE_TAG}, and its\n * (normalized) serialization is recorded as the baseline without emitting.\n */\nfunction ValuePlugin({ value, defaultValue, onChange, onReady, disabled }: ValuePluginProps) {\n const [editor] = useLexicalComposerContext()\n // the HTML the editor last held — as loaded (normalized) or as emitted. Guards the controlled-sync ↔\n // onChange feedback loop and suppresses emits that don't change the serialized value.\n const lastHtml = useRef<string | undefined>(undefined)\n const onChangeRef = useRef(onChange)\n onChangeRef.current = onChange\n const onReadyRef = useRef(onReady)\n onReadyRef.current = onReady\n const ready = useRef(false)\n const markReady = (html: string) => {\n if (ready.current) return\n ready.current = true\n onReadyRef.current?.(html)\n }\n\n useEffect(() => editor.setEditable(!disabled), [editor, disabled])\n\n // neutralize unsafe link schemes (javascript:, data:, …) on every LinkNode — covers pasted anchors\n // as well as toolbar inserts (which are also pre-sanitized), so no script URL survives into the value\n useEffect(\n () =>\n editor.registerNodeTransform(LinkNode, (node) => {\n const url = node.getURL()\n const safe = sanitizeLinkUrl(url)\n if (safe !== url) node.setURL(safe)\n }),\n [editor],\n )\n\n // initial defaultValue (uncontrolled) — once. Nothing to load → the blank editor is the baseline.\n useEffect(() => {\n if (value !== undefined) return\n if (!defaultValue) {\n lastHtml.current = ''\n markReady('')\n return\n }\n lastHtml.current = defaultValue\n editor.update(() => $setRootFromHtml(editor, defaultValue), {\n tag: ['history-merge', EXTERNAL_VALUE_TAG],\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n // controlled value → editor (only on a genuine external change, not our own echo)\n useEffect(() => {\n if (value === undefined || value === lastHtml.current) return\n lastHtml.current = value\n editor.update(() => $setRootFromHtml(editor, value), {\n tag: ['history-merge', EXTERNAL_VALUE_TAG],\n })\n }, [editor, value])\n\n // editor → HTML out. NB: must be `editor.read` (not `editorState.read`) so the active editor is\n // bound — `$generateHtmlFromNodes` → node `createDOM` needs it, else it throws \"no active editor\".\n useEffect(\n () =>\n editor.registerUpdateListener(({ dirtyElements, dirtyLeaves, tags }) => {\n if (tags.has(EXTERNAL_VALUE_TAG)) {\n // a load, not an edit: record what the editor actually holds (Lexical normalizes the input)\n // as the baseline — so the echo guard compares against it — and never emit\n editor.read(() => {\n const html = $readHtml(editor)\n lastHtml.current = html\n markReady(html)\n })\n return\n }\n if (dirtyElements.size === 0 && dirtyLeaves.size === 0) return\n editor.read(() => {\n const html = $readHtml(editor)\n if (html === lastHtml.current) return\n lastHtml.current = html\n onChangeRef.current(html)\n })\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [editor],\n )\n\n return null\n}\n\nexport interface RichTextEditorProps {\n /** Label rendered above the editor. */\n label?: ReactNode\n /** Preset size — drives toolbar density, content font size and min-height. */\n size?: RichTextEditorSize\n /** Marks the field invalid: red border/ring and `helperText` in the error color. */\n error?: boolean\n /** Helper / validation text under the editor. Adopts the error color while `error`. */\n helperText?: ReactNode\n /** Adds a red asterisk after the label (visual hint). */\n required?: boolean\n /** Read-only mode — the toolbar disables and the content isn't editable. */\n disabled?: boolean\n /** Placeholder shown while the editor is empty. */\n placeholder?: string\n /** Form field name — auto-binds value/validation to a surrounding `<Form>` (value = the HTML string). */\n name?: string\n /** Controlled HTML value. */\n value?: string\n /** Initial HTML value (uncontrolled). */\n defaultValue?: string\n /**\n * Fires with the serialized **HTML** on every **user edit** (typing, paste, toolbar actions, drag and\n * drop, undo / redo). Loading content never emits: the initial `defaultValue`, a controlled `value`\n * change, or a `<Form>` value (`setValue` / `reset` / `setValues`) updates the editor silently.\n */\n onChange?: (html: string) => void\n /**\n * Called **once**, after the initial content has loaded, with the editor's **normalized** HTML — the\n * exact string `onChange` would emit for that content (Lexical re-serializes what it's given). Compare\n * later `onChange` values against it for a reliable \"unsaved changes\" check. `''` for a blank editor.\n */\n onReady?: (html: string) => void\n /**\n * Async image upload. When provided, an uploaded image is sent through this and the returned URL is\n * inserted; when omitted, the image is embedded inline as a base64 `data:` URL (no backend needed).\n */\n onImageUpload?: (file: File) => Promise<string>\n /** Min height of the editable area in px. Defaults to `220`. */\n minHeight?: number\n /** Accessible label for the editable region. Defaults to the localized `rte.label` (\"Rich text editor\"). */\n 'aria-label'?: string\n className?: string\n style?: CSSProperties\n}\n\n/**\n * A rich text editor built on **Lexical** (an optional peer — install `lexical` + `@lexical/*`). Its\n * value is an **HTML string**: bold/italic/underline/strikethrough/inline-code, headings, lists\n * (bullet/ordered/check), links, block quote, plus **images** (insert by URL or upload — embedded as a\n * base64 `data:` URL unless an `onImageUpload` handler is given) and **video** embeds (paste a\n * YouTube/Vimeo/file URL). Markdown shortcuts work while typing (`# `, `- `, `> `, …). The toolbar is\n * built from the library's own `IconButton`/`Button`/`Dropdown`, and the content is styled entirely\n * with `--tz-*` tokens. Controlled (`value` + `onChange`) or uncontrolled (`defaultValue`); inside a\n * `<Form>`, a `name` prop auto-binds the HTML value (validate with e.g. `z.string().min(1)`).\n *\n * Value contract: the HTML is clean, class- and `pre-wrap`-free markup (only styles the user chose —\n * color, font size, alignment — remain; repeated spaces are kept as `&nbsp;`), and `onChange` fires\n * **only for user edits** — loading `defaultValue`, a controlled `value` or a form value never emits.\n * `onReady` reports the normalized initial HTML once, for \"unsaved changes\" comparisons.\n */\nexport const RichTextEditor = forwardRef<HTMLDivElement, RichTextEditorProps>(\n function RichTextEditor(\n {\n label,\n size = 'md',\n error,\n helperText,\n required = false,\n disabled = false,\n placeholder,\n name,\n value,\n defaultValue,\n onChange,\n onReady,\n onImageUpload,\n minHeight = 220,\n 'aria-label': ariaLabelProp,\n className,\n style,\n },\n ref,\n ) {\n const t = useT()\n const ariaLabel = ariaLabelProp ?? t('rte.label')\n const form = useFormContext()\n const bound = form && name ? form.field(name) : undefined\n const resolvedError = error ?? bound?.error ?? false\n const resolvedHelperText = helperText ?? bound?.helperText\n\n const formValue = form && name ? (form.values as Record<string, unknown>)[name] : undefined\n const effValue =\n value !== undefined ? value : form && name ? String(formValue ?? '') : undefined\n\n const handleChange = useCallback(\n (html: string) => {\n if (form && name) form.setValue(name, html as never)\n onChange?.(html)\n },\n [form, name, onChange],\n )\n\n const handleBlur = (event: FocusEvent<HTMLDivElement>) => bound?.onBlur(event as never)\n\n // Mirror the form `name` onto the editable DOM node so a `<Form>`'s scroll-to-error can find and\n // focus it — the contenteditable isn't an `<input>`, and Lexical's `ContentEditable` doesn't take\n // a `name` prop, so set the attribute imperatively via a ref.\n const contentRef = useRef<HTMLDivElement | null>(null)\n useEffect(() => {\n const el = contentRef.current\n if (!el) return\n if (name) el.setAttribute('name', name)\n else el.removeAttribute('name')\n }, [name])\n\n const initialConfig = {\n namespace: 'tz-rich-text-editor',\n theme: THEME,\n nodes: EDITOR_NODES,\n html: { import: HTML_IMPORT },\n editable: !disabled,\n onError: (e: Error) => {\n throw e\n },\n }\n\n return (\n <div\n ref={ref}\n className={clsx(\n styles.editor,\n styles[size],\n resolvedError && styles.error,\n disabled && styles.disabled,\n className,\n )}\n style={{ '--tz-rte-min-height': `${minHeight}px`, ...style } as CSSProperties}\n >\n {label != null && (\n <div className={styles.label}>\n <Typography as=\"span\" variant=\"bodySmall\" color=\"muted\">\n {label}\n </Typography>\n {required && (\n <span className={styles.required} aria-hidden=\"true\">\n *\n </span>\n )}\n </div>\n )}\n\n <div className={styles.control}>\n <LexicalComposer initialConfig={initialConfig}>\n <Toolbar size={size} disabled={disabled} onImageUpload={onImageUpload} />\n <div className={styles.shell}>\n <RichTextPlugin\n contentEditable={\n <ContentEditable\n ref={contentRef}\n className={styles.content}\n aria-label={ariaLabel}\n aria-invalid={resolvedError || undefined}\n onBlur={handleBlur}\n />\n }\n placeholder={\n <div className={styles.placeholder}>{placeholder ?? t('rte.placeholder')}</div>\n }\n ErrorBoundary={LexicalErrorBoundary}\n />\n </div>\n <HistoryPlugin />\n <ListPlugin />\n <CheckListPlugin />\n <LinkPlugin />\n <MarkdownShortcutPlugin transformers={MARKDOWN_TRANSFORMERS} />\n <ValuePlugin\n value={effValue}\n defaultValue={defaultValue}\n onChange={handleChange}\n onReady={onReady}\n disabled={disabled}\n />\n </LexicalComposer>\n </div>\n\n {resolvedHelperText != null && (\n <Typography\n as=\"span\"\n variant=\"bodySmall\"\n color={resolvedError ? 'error' : 'muted'}\n className={styles.helper}\n >\n {resolvedHelperText}\n </Typography>\n )}\n </div>\n )\n },\n)\n"],"names":["SAFE_LINK","HAS_SCHEME","sanitizeLinkUrl","url","trimmed","sanitizeMediaUrl","safe","convertImageElement","domNode","$createImageNode","ImageNode","DecoratorNode","node","src","alt","key","json","element","div","jsx","$applyNodeReplacement","isFileVideo","toVideoEmbedSrc","raw","youtube","vimeo","convertVideoElement","_a","$createVideoNode","VideoNode","video","iframe","VideoEmbed","t","useT","BLOCK_LABEL","BLOCKS","ALIGNS","FONT_SIZES","DEFAULT_FONT_SIZE","ColorGlyph","color","size","jsxs","styles","Icon","Toolbar","disabled","onImageUpload","blockLabel","b","editor","useLexicalComposerContext","fileInputRef","useRef","isBold","setIsBold","useState","isItalic","setIsItalic","isUnderline","setIsUnderline","isLink","setIsLink","linkUrl","setLinkUrl","blockType","setBlockType","elementFormat","setElementFormat","fontSize","setFontSize","textColor","setTextColor","colorOpen","setColorOpen","colorTriggerRef","canUndo","setCanUndo","canRedo","setCanRedo","urlDialog","setUrlDialog","urlValue","setUrlValue","syncState","useCallback","selection","$getSelection","$isRangeSelection","$getSelectionStyleValueForProperty","anchorNode","parent","linkNode","$isLinkNode","$findMatchingParent","e","$isElementNode","listNode","$getNearestNodeOfType","ListNode","$isHeadingNode","$isQuoteNode","useEffect","mergeRegister","editorState","SELECTION_CHANGE_COMMAND","COMMAND_PRIORITY_LOW","CAN_UNDO_COMMAND","payload","CAN_REDO_COMMAND","format","type","FORMAT_TEXT_COMMAND","applyAlign","fmt","FORMAT_ELEMENT_COMMAND","applyColor","$patchStyleText","applyFontSize","value","applyBlock","REMOVE_LIST_COMMAND","command","INSERT_UNORDERED_LIST_COMMAND","INSERT_ORDERED_LIST_COMMAND","INSERT_CHECK_LIST_COMMAND","$setBlocksType","$createParagraphNode","$createQuoteNode","$createHeadingNode","toggleQuote","openUrlDialog","config","initial","closeUrlDialog","confirmUrlDialog","insertLink","TOGGLE_LINK_COMMAND","insertImageByUrl","$insertNodeToNearestRoot","onImageFile","event","file","fileToDataUrl","toast","insertVideo","fmtBtn","active","label","onClick","child","IconButton","dropdownBlock","effectiveFontSize","UNDO_COMMAND","REDO_COMMAND","Divider","Dropdown","Button","f","ListItem","a","o","FloatingPanel","refocus","ColorPickerPanel","DEFAULT_SWATCHES","Modal","Fragment","TextField","resolve","reject","reader","THEME","EDITOR_NODES","HeadingNode","QuoteNode","ListItemNode","LinkNode","MARKDOWN_TRANSFORMERS","ELEMENT_TRANSFORMERS","TEXT_FORMAT_TRANSFORMERS","TEXT_MATCH_TRANSFORMERS","IMPORTED_TEXT_STYLES","HTML_IMPORT","span","base","_b","TextNode","output","picked","property","styleValue","inner","converted","$isTextNode","merged","getStyleObjectFromCSS","INLINE_TAGS","stripPreWrap","style","kept","declaration","preserveSpaces","root","walker","lineStart","prevSpace","lastText","endLine","text","out","ch","cleanExportedHtml","html","template","content","el","$isEditorEmpty","$getRoot","first","$isParagraphNode","$setRootFromHtml","dom","nodes","$generateNodesFromDOM","$insertNodes","$setSelection","EXTERNAL_VALUE_TAG","$readHtml","$generateHtmlFromNodes","ValuePlugin","defaultValue","onChange","onReady","lastHtml","onChangeRef","onReadyRef","ready","markReady","dirtyElements","dirtyLeaves","tags","RichTextEditor","forwardRef","error","helperText","required","placeholder","name","minHeight","ariaLabelProp","className","ref","ariaLabel","form","useFormContext","bound","resolvedError","resolvedHelperText","formValue","effValue","handleChange","handleBlur","contentRef","initialConfig","clsx","Typography","LexicalComposer","RichTextPlugin","ContentEditable","LexicalErrorBoundary","HistoryPlugin","ListPlugin","CheckListPlugin","LinkPlugin","MarkdownShortcutPlugin"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";const l=require("react/jsx-runtime"),_=require("react"),C=require("clsx"),ue=require("./formContext-bTWrqdEV.cjs"),I=require("./Icon-B6lz-V0A.cjs"),P=require("./useOptionMenu-BqCj10_a.cjs"),V=require("./Typography-d97DdbNd.cjs"),de=require("./ConfigProvider-Ci9Q2HLF.cjs"),_e="_field_7r95m_1",me="_fullWidth_7r95m_7",pe="_label_7r95m_13",ve="_required_7r95m_22",he="_control_7r95m_28",fe="_open_7r95m_47",xe="_error_7r95m_52",Ie="_disabled_7r95m_60",be="_value_7r95m_70",ye="_valueIcon_7r95m_78",ge="_valueLabel_7r95m_82",je="_placeholder_7r95m_87",Ne="_clear_7r95m_92",qe="_chevron_7r95m_111",Se="_sm_7r95m_121",Ce="_md_7r95m_125",Te="_lg_7r95m_129",Re="_helper_7r95m_134",r={field:_e,fullWidth:me,label:pe,required:ve,control:he,open:fe,error:xe,disabled:Ie,value:be,valueIcon:ye,valueLabel:ge,placeholder:je,clear:Ne,chevron:qe,sm:Se,md:Ce,lg:Te,helper:Re},we=new Set(I.ICON_NAMES);function Be(t,c){return t==null?null:typeof t=="string"&&we.has(t)?l.jsx(I.Icon,{name:t,size:c}):t}const Me=_.forwardRef(function({label:c,options:T,size:m="md",error:W,helperText:A,required:R=!1,fullWidth:F=!0,disabled:a=!1,value:b,defaultValue:K,onChange:y,placeholder:$,clearable:H=!0,searchable:w=!1,searchPlaceholder:G,onSearchChange:J,loading:Q=!1,loadingText:U,noOptionsText:X,showSelectedTick:Y=!0,name:i,id:Z,className:z,style:ee},p){const re=_.useId(),v=Z??re,g=`${v}-label`,B=`${v}-helper`,M=de.useT(),h=ue.useFormContext(),f=!!(h&&i),o=f?h.field(i):void 0,le=b!==void 0?b:f?h.values[i]??"":void 0,k=b!==void 0||f,[oe,ne]=_.useState(K??""),j=k?le:oe,N=W??(o==null?void 0:o.error)??!1,q=A??(o==null?void 0:o.helperText),n=T.find(e=>e.value===j),se=n!=null,D=e=>{k||ne(e),f&&h.setValue(i,e),y==null||y(e)},u=_.useRef(null),x=_.useRef(void 0);x.current=o?()=>o.onBlur({}):void 0;const te=_.useCallback(e=>{u.current=e,typeof p=="function"?p(e):p&&(p.current=e)},[p]),s=P.useOptionMenu({idBase:v,options:T,isSelected:e=>e.value===j,onPick:e=>D(e.value),searchable:w,onSearchChange:J,disabled:a,focusRef:u,onClose:()=>{var e;return(e=x.current)==null?void 0:e.call(x)}}),{open:S}=s,ce=e=>{var E,L;const d=e.relatedTarget;d&&((E=s.popoverRef.current)!=null&&E.contains(d)||(L=u.current)!=null&&L.contains(d))||o==null||o.onBlur(e)},ae=e=>{var d;e.stopPropagation(),D(""),(d=u.current)==null||d.focus()},ie=m==="sm"?"sm":"md",O=m==="sm"?16:m==="md"?14:12;return l.jsxs("div",{className:C.clsx(r.field,r[m],F&&r.fullWidth,N&&r.error,a&&r.disabled,z),style:ee,children:[c!=null&&l.jsxs("span",{id:g,className:r.label,onClick:()=>{var e;return!a&&((e=u.current)==null?void 0:e.focus())},children:[l.jsx(V.Typography,{as:"span",variant:"bodySmall",color:"muted",children:c}),R&&l.jsx("span",{className:r.required,"aria-hidden":"true",children:"*"})]}),l.jsxs("div",{ref:te,id:v,...i?{name:i}:{},role:"combobox",tabIndex:a?-1:0,"aria-haspopup":"listbox","aria-expanded":S,"aria-controls":S?s.listboxId:void 0,"aria-activedescendant":w?void 0:s.activeId,"aria-labelledby":c!=null?g:void 0,"aria-disabled":a||void 0,"aria-required":R||void 0,"aria-invalid":N||void 0,"aria-describedby":q!=null?B:void 0,className:C.clsx(r.control,S&&r.open),onClick:s.toggleMenu,onKeyDown:s.handleKeyDown,onBlur:ce,children:[l.jsxs("span",{className:C.clsx(r.value,!se&&r.placeholder),children:[(n==null?void 0:n.icon)!=null&&l.jsx("span",{className:r.valueIcon,children:Be(n.icon,ie)}),l.jsx("span",{className:r.valueLabel,children:n?n.label:$??M("select.placeholder")})]}),H&&j!==""&&!a&&l.jsx("button",{type:"button",className:r.clear,"aria-label":M("select.clear"),tabIndex:-1,onMouseDown:e=>e.preventDefault(),onClick:ae,children:l.jsx(I.Icon,{name:"CloseCircle",size:"sm"})}),l.jsx(I.Icon,{name:"ArrowDown4",className:r.chevron,style:{width:O,height:O},"aria-hidden":"true"})]}),l.jsx(P.OptionMenu,{menu:s,anchorRef:u,size:m,searchPlaceholder:G,loading:Q,loadingText:U,noOptionsText:X,showSelectedTick:Y,labelledBy:c!=null?g:void 0}),q!=null&&l.jsx(V.Typography,{as:"span",id:B,variant:"bodySmall",color:N?"error":"muted",className:r.helper,children:q})]})});exports.Select=Me;
2
- //# sourceMappingURL=Select-BrjXCXtl.cjs.map
@@ -1,2 +0,0 @@
1
- "use strict";const i=require("react/jsx-runtime"),b=require("react"),v=require("@tanstack/react-router"),A=require("clsx"),R=require("./Icon-B6lz-V0A.cjs"),D=require("./List-CKoNx21F.cjs"),z=require("./ListItem-DkCYXucd.cjs"),O=require("./TextField-B-xqoDZR.cjs"),K=require("./Typography-d97DdbNd.cjs"),M=require("./access-DPUHbE-S.cjs"),E=require("./ConfigProvider-Ci9Q2HLF.cjs"),V="_nav_2n8z4_4",Y="_module_2n8z4_17",G="_search_2n8z4_25",U="_searchPanel_2n8z4_31",W="_moduleLabel_2n8z4_46",H="_leaves_2n8z4_57",Q="_navBadge_2n8z4_62",X="_navDot_2n8z4_74",J="_leafDot_2n8z4_82",Z="_collapsible_2n8z4_91",ee="_collapsibleClosed_2n8z4_96",te="_collapsibleInner_2n8z4_99",ne="_chevron_2n8z4_105",oe="_chevronButton_2n8z4_115",h={nav:V,module:Y,search:G,searchPanel:U,moduleLabel:W,leaves:H,navBadge:Q,navDot:X,leafDot:J,collapsible:Z,collapsibleClosed:ee,collapsibleInner:te,chevron:ne,chevronButton:oe},P=z.ListItem,se=e=>e.split("-").map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" "),$=e=>e.replace(/^\/+|\/+$/g,""),T=e=>e.length>1&&e.endsWith("/")?e.slice(0,-1):e,w=(e,n)=>e.order-n.order||e.label.localeCompare(n.label);function F(e){const n=[];for(const l of e){const a=l.staticData,o=$(l.fullPath);!(a!=null&&a.name)||!o||n.push({path:o,name:a.name,sd:a})}const t=new Map(n.map(l=>[l.path,l])),s=n.map(l=>l.path),c=l=>s.some(a=>{var o;return a!==l&&a.startsWith(`${l}/`)&&!((o=t.get(a))!=null&&o.sd.hidden)}),r=new Set(e.map(l=>l.fullPath)),u=l=>r.has(`/${l}/`),d=(l,a)=>{const o=t.get(l);return{label:(o==null?void 0:o.name)??se(a),icon:o==null?void 0:o.sd.icon,badge:o==null?void 0:o.sd.badge,dot:o==null?void 0:o.sd.dot,order:(o==null?void 0:o.sd.order)??Number.POSITIVE_INFINITY}},_=new Map,g=l=>{let a=_.get(l);if(!a){const o=d(l,l);a={label:o.label,icon:o.icon,order:o.order,groups:new Map},_.set(l,a)}return a},f=[];for(const{path:l,name:a,sd:o}of n){const p=l.split("/");if(p.length<=2&&c(l)||o.hidden)continue;if(p.length===1){f.push({label:a,to:`/${l}`,icon:o.icon,badge:o.badge,dot:o.dot,order:o.order??Number.POSITIVE_INFINITY});continue}const S=g(p[0]);if(p.length===2)S.groups.set(l,{label:a,icon:o.icon,to:`/${l}`,badge:o.badge,dot:o.dot,order:o.order??Number.POSITIVE_INFINITY,leaves:[],isContainer:!1});else{const k=p.slice(0,2).join("/");let L=S.groups.get(k);if(!L){const I=d(k,p[1]);L={label:I.label,icon:I.icon,badge:I.badge,dot:I.dot,order:I.order,to:u(k)?`/${k}`:void 0,leaves:[],isContainer:!0},S.groups.set(k,L)}L.leaves.push({label:a,to:`/${l}`,icon:o.icon,badge:o.badge,dot:o.dot,order:o.order??Number.POSITIVE_INFINITY})}}const m=f.map(l=>({order:l.order,label:l.label,item:{kind:"link",link:{label:l.label,to:l.to,icon:l.icon,badge:l.badge,dot:l.dot}}})),N=[..._.values()].map(l=>({order:l.order,label:l.label,item:{kind:"module",module:{module:l.label,icon:l.icon,groups:[...l.groups.values()].sort(w).map(a=>({label:a.label,icon:a.icon,to:a.to,badge:a.badge,dot:a.dot,children:a.isContainer?a.leaves.sort(w).map(o=>({label:o.label,to:o.to,icon:o.icon,badge:o.badge,dot:o.dot})):void 0}))}}})),x=[...m,...N].sort(w).map(l=>l.item);return{items:x,links:x.flatMap(l=>l.kind==="link"?[l.link]:[]),modules:x.flatMap(l=>l.kind==="module"?[l.module]:[])}}function C(){const e=v.useRouter(),n=M.useAccessKeys();return b.useMemo(()=>F(Object.values(e.looseRoutesById).map(t=>{var s;return{fullPath:t.fullPath,staticData:(s=t.options)==null?void 0:s.staticData}}).filter(t=>{var s;return M.hasAccess((s=t.staticData)==null?void 0:s.roles)})),[e,n])}function B(e){var n;for(const t of e.items){if(t.kind==="link")return t.link.to;for(const s of t.module.groups){if(s.to)return s.to;const c=(n=s.children)==null?void 0:n[0];if(c)return c.to}}}function q(){return B(C())}function ae(e){var t;const n=new Map;for(const s of e){const c=(t=s.staticData)==null?void 0:t.name;if(!c)continue;const r=T(s.fullPath);n.has(r)||n.set(r,c)}return n}function le(e,n){const t=[];let s="";for(const c of $(e).split("/").filter(Boolean)){s+=`/${c}`;const r=n.get(s);r&&t.push({name:r,to:s})}return t}function re(){const e=v.useRouter();return b.useMemo(()=>ae(Object.values(e.looseRoutesById).map(n=>{var t;return{fullPath:n.fullPath,staticData:(t=n.options)==null?void 0:t.staticData}})),[e])}function ce(e,n){if(e!=null)return typeof e=="function"?e(n):e}function ie(){var n;const e=v.useRouterState({select:t=>t.matches});for(let t=e.length-1;t>=0;t--){const s=ce((n=e[t].staticData)==null?void 0:n.breadcrumb,e[t].params??{});if(s)return s}}function ue(e){const n=new Set;for(const t of e.links)n.add(t.to);for(const t of e.modules)for(const s of t.groups){s.to&&n.add(s.to);for(const c of s.children??[])n.add(c.to)}return n}function de(e,n){const{leafPath:t,leafLabel:s,navigable:c}=n,r=e.map(({name:u,to:d})=>({label:u,to:d!==t&&c.has(d)?d:void 0}));return s&&(e.length>0&&e[e.length-1].to===t?r[r.length-1]={label:s}:r.push({label:s})),r}function fe(){const e=C(),n=re(),t=v.useRouterState({select:u=>u.location.pathname}),s=ie(),c=B(e),r=de(le(t,n),{leafPath:T(t),leafLabel:s,navigable:ue(e)});return{homeTo:c,items:r}}function he(){const e=q();return e?i.jsx(v.Navigate,{to:e}):null}function me(){const{items:e}=C(),n=v.useRouterState({select:r=>r.location.pathname}),t=[];let s=[];const c=()=>{if(s.length===0)return;const r=s;s=[],t.push(i.jsx(D.List,{children:r.map(u=>i.jsx(P,{as:v.Link,to:u.to,icon:u.icon,selected:y(n,u.to),clickable:!0,trailing:j(u.badge,u.dot),children:u.label},u.to))},`links-${r[0].to}`))};for(const r of e){if(r.kind==="link"){s.push(r.link);continue}c();const u=r.module;t.push(i.jsxs("div",{className:h.module,children:[i.jsx(K.Typography,{as:"div",variant:"caption",color:"muted",uppercase:!0,className:h.moduleLabel,children:u.module}),i.jsx(D.List,{children:u.groups.map(d=>i.jsx(Ne,{group:d,pathname:n},d.label))})]},`mod-${u.module}`))}return c(),i.jsx("nav",{className:h.nav,children:t})}function be(e){const n=[];for(const t of e.links)n.push({label:t.label,to:t.to});for(const t of e.modules)for(const s of t.groups){s.to&&n.push({label:s.label,to:s.to,context:t.module});for(const c of s.children??[])n.push({label:c.label,to:c.to,context:`${t.module} · ${s.label}`})}return n}const pe=8;function ve(){const e=E.useT(),n=C(),t=v.useNavigate(),s=b.useMemo(()=>be(n),[n]),[c,r]=b.useState(""),[u,d]=b.useState(!1),[_,g]=b.useState(0),f=b.useRef(null),m=b.useMemo(()=>{const a=c.trim().toLowerCase();return a?s.filter(o=>{var p;return o.label.toLowerCase().includes(a)||(((p=o.context)==null?void 0:p.toLowerCase().includes(a))??!1)}).slice(0,pe):[]},[s,c]),N=u&&m.length>0;b.useEffect(()=>g(0),[c]),b.useEffect(()=>{g(a=>a>m.length-1?Math.max(0,m.length-1):a)},[m.length]),b.useEffect(()=>{if(!u)return;const a=o=>{f.current&&!f.current.contains(o.target)&&d(!1)};return document.addEventListener("pointerdown",a),()=>document.removeEventListener("pointerdown",a)},[u]);const x=a=>{t({to:a}),r(""),d(!1)},l=a=>{if(N)if(a.key==="ArrowDown")a.preventDefault(),g(o=>(o+1)%m.length);else if(a.key==="ArrowUp")a.preventDefault(),g(o=>(o-1+m.length)%m.length);else if(a.key==="Enter"){a.preventDefault();const o=m[_];o&&x(o.to)}else a.key==="Escape"&&d(!1)};return i.jsxs("div",{ref:f,className:h.search,role:"combobox","aria-expanded":N,"aria-haspopup":"listbox",children:[i.jsx(O.TextField,{value:c,onChange:a=>{r(a.target.value),d(!0)},onFocus:()=>d(!0),onKeyDown:l,adornment:i.jsx(R.Icon,{name:"SearchNormal"}),placeholder:e("sidebar.searchPages"),"aria-label":e("sidebar.searchPages"),autoComplete:"off"}),N?i.jsx("div",{className:h.searchPanel,children:i.jsx(D.List,{role:"listbox",children:m.map((a,o)=>i.jsx(z.ListItem,{description:a.context,clickable:!0,selected:o===_,onMouseDown:p=>p.preventDefault(),onMouseEnter:()=>g(o),onClick:()=>x(a.to),children:a.label},a.to))})}):null]})}function y(e,n){const t=T(e),s=T(n);return s==="/"?t==="/":t===s||t.startsWith(s+"/")}function ge(e,n){var t;return e.to&&y(n,e.to)?!0:((t=e.children)==null?void 0:t.some(s=>y(n,s.to)))??!1}function _e(e){return e?i.jsx("span",{className:h.navBadge,children:e}):null}function xe(e){return e?i.jsx("span",{className:h.navDot,style:{background:`var(--tz-color-${e})`}}):null}function j(e,n,t){if(!(e==null&&n==null&&t==null))return i.jsxs(i.Fragment,{children:[_e(e),xe(n),t]})}function Ne({group:e,pathname:n}){var _,g;const t=E.useT(),s=ge(e,n),c=!!((_=e.children)!=null&&_.length),[r,u]=b.useState(s);if(b.useEffect(()=>{s&&u(!0)},[s]),!c&&e.to)return i.jsx(P,{as:v.Link,to:e.to,icon:e.icon,selected:s,clickable:!0,trailing:j(e.badge,e.dot),children:e.label});const d=i.jsx(R.Icon,{name:"ArrowDown4",size:"sm",className:h.chevron,"data-open":r?"true":"false"});return i.jsxs(i.Fragment,{children:[c&&e.to?i.jsx(P,{as:v.Link,to:e.to,icon:e.icon,selected:s,clickable:!0,onClick:()=>u(!0),trailing:j(e.badge,e.dot,i.jsx("button",{type:"button",className:h.chevronButton,"aria-label":t(r?"sidebar.collapseGroup":"sidebar.expandGroup",{group:e.label}),"aria-expanded":r,onClick:f=>{f.preventDefault(),f.stopPropagation(),u(m=>!m)},children:d})),children:e.label}):i.jsx(z.ListItem,{icon:e.icon,selected:s,clickable:!0,"aria-expanded":r,onClick:()=>u(f=>!f),trailing:j(e.badge,e.dot,d),children:e.label}),c?i.jsx("div",{className:A.clsx(h.collapsible,!r&&h.collapsibleClosed),children:i.jsx("div",{className:h.collapsibleInner,children:i.jsx(D.List,{className:h.leaves,children:(g=e.children)==null?void 0:g.map(f=>i.jsx(P,{as:v.Link,to:f.to,icon:i.jsx("span",{className:h.leafDot}),selected:y(n,f.to),size:"md",clickable:!0,trailing:j(f.badge,f.dot),children:f.label},f.to))})})}):null]})}exports.FirstRouteRedirect=he;exports.NavSearch=ve;exports.Sidebar=me;exports.buildNavTree=F;exports.firstNavTo=B;exports.useBreadcrumbs=fe;exports.useFirstNavTo=q;
2
- //# sourceMappingURL=Sidebar-DLlqHvQJ.cjs.map
@@ -1,168 +0,0 @@
1
- import { jsxs as b, jsx as a, Fragment as nn } from "react/jsx-runtime";
2
- import { forwardRef as tn, useCallback as L, useState as en, useRef as w, useEffect as x } from "react";
3
- import { clsx as I } from "clsx";
4
- import { u as on, r as rn } from "./useClearUrlOnUnmount-DOeh6CUN.js";
5
- import { b as B, a as an } from "./Icon-D5TxgfCc.js";
6
- import { m as cn } from "./ConfigProvider-Dqfu7UBU.js";
7
- const ln = "_root_p6koa_2", sn = "_list_p6koa_5", dn = "_horizontal_p6koa_11", un = "_vertical_p6koa_24", _n = "_sm_p6koa_29", mn = "_md_p6koa_34", pn = "_lg_p6koa_39", fn = "_step_p6koa_47", hn = "_disabled_p6koa_64", bn = "_main_p6koa_69", wn = "_indicator_p6koa_99", vn = "_number_p6koa_125", kn = "_completed_p6koa_130", Nn = "_active_p6koa_136", yn = "_error_p6koa_144", gn = "_text_p6koa_151", Ln = "_label_p6koa_167", xn = "_description_p6koa_181", In = "_optional_p6koa_186", Rn = "_connector_p6koa_193", En = "_done_p6koa_198", zn = "_panel_p6koa_224", $n = "_stepContent_p6koa_228", e = {
8
- root: ln,
9
- list: sn,
10
- horizontal: dn,
11
- vertical: un,
12
- sm: _n,
13
- md: mn,
14
- lg: pn,
15
- step: fn,
16
- disabled: hn,
17
- main: bn,
18
- indicator: wn,
19
- number: vn,
20
- completed: kn,
21
- active: Nn,
22
- error: yn,
23
- text: gn,
24
- label: Ln,
25
- description: xn,
26
- optional: In,
27
- connector: Rn,
28
- done: En,
29
- panel: zn,
30
- stepContent: $n
31
- }, Qn = new Set(an), Bn = tn(function({
32
- steps: s,
33
- activeStep: u,
34
- defaultStep: R,
35
- onStepChange: d,
36
- queryKey: E,
37
- pushHistory: z = !1,
38
- clearUrlOnUnmount: K = !0,
39
- orientation: _ = "horizontal",
40
- size: v = "md",
41
- color: $ = "primary",
42
- onStepClick: m,
43
- "aria-label": T,
44
- className: W,
45
- style: q
46
- }, F) {
47
- var O;
48
- const Q = _ === "vertical", D = m != null, G = cn(), o = E === !0 ? G : E || void 0, p = L(
49
- (n) => n != null && Number.isInteger(n) && n >= 0 && n < s.length && !s[n].disabled,
50
- [s]
51
- ), k = L(() => {
52
- if (!o || typeof window > "u") return null;
53
- const n = new URLSearchParams(window.location.search).get(o);
54
- return n != null && /^\d+$/.test(n) ? Number(n) - 1 : null;
55
- }, [o]), J = Math.max(
56
- s.findIndex((n) => !n.disabled),
57
- 0
58
- ), [S, P] = en(() => {
59
- const n = k();
60
- return p(n) ? n : p(R) ? R : J;
61
- }), U = u !== void 0, r = U ? u : S, N = w(r);
62
- N.current = r;
63
- const f = w(d);
64
- f.current = d;
65
- const y = w(!1), A = L(
66
- (n, t) => {
67
- if (!o || typeof window > "u") return;
68
- const c = new URLSearchParams(window.location.search), l = String(n + 1);
69
- if (c.get(o) === l) return;
70
- c.set(o, l);
71
- const i = `${window.location.pathname}?${c.toString()}${window.location.hash}`;
72
- window.history[t ? "pushState" : "replaceState"](window.history.state, "", i);
73
- },
74
- [o]
75
- ), V = (n) => {
76
- n !== N.current && (y.current = !0, U || P(n), d == null || d(n));
77
- };
78
- x(() => {
79
- if (!o || typeof window > "u" || !Number.isInteger(r) || r < 0 || r >= s.length) return;
80
- const n = y.current && z;
81
- y.current = !1, A(r, n);
82
- }, [o, r, z, A, s.length]), on(o, K, () => {
83
- o && rn(o);
84
- }), x(() => {
85
- if (!o || typeof window > "u") return;
86
- const n = () => {
87
- var c;
88
- const t = k();
89
- p(t) && t !== N.current && (u === void 0 && P(t), (c = f.current) == null || c.call(f, t));
90
- };
91
- return window.addEventListener("popstate", n), () => window.removeEventListener("popstate", n);
92
- }, [o, k, p, u]);
93
- const C = (O = s[r]) == null ? void 0 : O.content, M = w(null);
94
- x(() => {
95
- if (_ === "vertical") return;
96
- const n = M.current, t = n == null ? void 0 : n.children[r];
97
- if (!n || !t) return;
98
- const c = n.getBoundingClientRect(), l = t.getBoundingClientRect(), i = l.left - c.left + n.scrollLeft, h = i + l.width;
99
- i < n.scrollLeft ? n.scrollLeft = i : h > n.scrollLeft + n.clientWidth && (n.scrollLeft = h - n.clientWidth);
100
- }, [r, _]);
101
- const X = (n) => typeof n == "string" && Qn.has(n) ? /* @__PURE__ */ a(B, { name: n, size: v }) : n;
102
- return /* @__PURE__ */ b(
103
- "div",
104
- {
105
- ref: F,
106
- className: I(e.root, e[_], e[v], W),
107
- style: {
108
- "--tz-btn-rgb": `var(--tz-color-${$}-rgb)`,
109
- "--tz-btn-on": `var(--tz-color-${$}-contrast, #fff)`,
110
- ...q
111
- },
112
- children: [
113
- /* @__PURE__ */ a("ol", { ref: M, "aria-label": T, className: e.list, children: s.map((n, t) => {
114
- const c = !!n.error, l = !c && (n.completed || t < r), i = !c && !l && t === r, h = c ? "error" : l ? "completed" : i ? "active" : "upcoming", Y = t === s.length - 1, g = X(n.icon), Z = g ?? (l ? /* @__PURE__ */ a(B, { name: "Check", size: v }) : /* @__PURE__ */ a("span", { className: e.number, children: t + 1 })), H = n.label != null || n.description != null || n.optional != null, j = /* @__PURE__ */ b(nn, { children: [
115
- /* @__PURE__ */ a(
116
- "span",
117
- {
118
- className: e.indicator,
119
- "aria-hidden": g == null && !l ? void 0 : !0,
120
- children: Z
121
- }
122
- ),
123
- H && /* @__PURE__ */ b("span", { className: e.text, children: [
124
- n.label != null && /* @__PURE__ */ a("span", { className: e.label, children: n.label }),
125
- n.description != null && /* @__PURE__ */ a("span", { className: e.description, children: n.description }),
126
- n.optional != null && /* @__PURE__ */ a("span", { className: e.optional, children: n.optional })
127
- ] })
128
- ] });
129
- return /* @__PURE__ */ b(
130
- "li",
131
- {
132
- className: I(e.step, e[h], n.disabled && e.disabled),
133
- children: [
134
- D ? /* @__PURE__ */ a(
135
- "button",
136
- {
137
- type: "button",
138
- className: e.main,
139
- disabled: n.disabled,
140
- "aria-current": i ? "step" : void 0,
141
- onClick: () => {
142
- m == null || m(t), V(t);
143
- },
144
- children: j
145
- }
146
- ) : /* @__PURE__ */ a("div", { className: e.main, "aria-current": i ? "step" : void 0, children: j }),
147
- !Y && /* @__PURE__ */ a(
148
- "span",
149
- {
150
- className: I(e.connector, t < r && e.done),
151
- "aria-hidden": "true"
152
- }
153
- ),
154
- Q && t === r && n.content != null && /* @__PURE__ */ a("div", { className: e.stepContent, children: n.content })
155
- ]
156
- },
157
- t
158
- );
159
- }) }),
160
- !Q && C != null && /* @__PURE__ */ a("div", { className: e.panel, children: C })
161
- ]
162
- }
163
- );
164
- });
165
- export {
166
- Bn as S
167
- };
168
- //# sourceMappingURL=Stepper-BDQt-oVG.js.map
@@ -1,2 +0,0 @@
1
- "use strict";const o=require("react/jsx-runtime"),l=require("react"),j=require("clsx"),O=require("./useClearUrlOnUnmount-Cg7v2y5B.cjs"),g=require("./Icon-B6lz-V0A.cjs"),Z=require("./ConfigProvider-Ci9Q2HLF.cjs"),H="_root_p6koa_2",ee="_list_p6koa_5",ne="_horizontal_p6koa_11",te="_vertical_p6koa_24",oe="_sm_p6koa_29",re="_md_p6koa_34",se="_lg_p6koa_39",ce="_step_p6koa_47",le="_disabled_p6koa_64",ae="_main_p6koa_69",ie="_indicator_p6koa_99",de="_number_p6koa_125",ue="_completed_p6koa_130",_e="_active_p6koa_136",fe="_error_p6koa_144",me="_text_p6koa_151",pe="_label_p6koa_167",he="_description_p6koa_181",be="_optional_p6koa_186",we="_connector_p6koa_193",ve="_done_p6koa_198",xe="_panel_p6koa_224",ke="_stepContent_p6koa_228",t={root:H,list:ee,horizontal:ne,vertical:te,sm:oe,md:re,lg:se,step:ce,disabled:le,main:ae,indicator:ie,number:de,completed:ue,active:_e,error:fe,text:me,label:pe,description:he,optional:be,connector:we,done:ve,panel:xe,stepContent:ke},Ne=new Set(g.ICON_NAMES),je=l.forwardRef(function({steps:i,activeStep:_,defaultStep:y,onStepChange:u,queryKey:R,pushHistory:I=!1,clearUrlOnUnmount:A=!0,orientation:f="horizontal",size:w="md",color:E="primary",onStepClick:m,"aria-label":M,className:B,style:K},T){var P;const L=f==="vertical",W=m!=null,F=Z.useStepQueryKey(),r=R===!0?F:R||void 0,p=l.useCallback(e=>e!=null&&Number.isInteger(e)&&e>=0&&e<i.length&&!i[e].disabled,[i]),v=l.useCallback(()=>{if(!r||typeof window>"u")return null;const e=new URLSearchParams(window.location.search).get(r);return e!=null&&/^\d+$/.test(e)?Number(e)-1:null},[r]),D=Math.max(i.findIndex(e=>!e.disabled),0),[G,q]=l.useState(()=>{const e=v();return p(e)?e:p(y)?y:D}),C=_!==void 0,s=C?_:G,x=l.useRef(s);x.current=s;const h=l.useRef(u);h.current=u;const k=l.useRef(!1),z=l.useCallback((e,n)=>{if(!r||typeof window>"u")return;const c=new URLSearchParams(window.location.search),a=String(e+1);if(c.get(r)===a)return;c.set(r,a);const d=`${window.location.pathname}?${c.toString()}${window.location.hash}`;window.history[n?"pushState":"replaceState"](window.history.state,"",d)},[r]),J=e=>{e!==x.current&&(k.current=!0,C||q(e),u==null||u(e))};l.useEffect(()=>{if(!r||typeof window>"u"||!Number.isInteger(s)||s<0||s>=i.length)return;const e=k.current&&I;k.current=!1,z(s,e)},[r,s,I,z,i.length]),O.useClearUrlOnUnmount(r,A,()=>{r&&O.removeQueryParam(r)}),l.useEffect(()=>{if(!r||typeof window>"u")return;const e=()=>{var c;const n=v();p(n)&&n!==x.current&&(_===void 0&&q(n),(c=h.current)==null||c.call(h,n))};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[r,v,p,_]);const U=(P=i[s])==null?void 0:P.content,$=l.useRef(null);l.useEffect(()=>{if(f==="vertical")return;const e=$.current,n=e==null?void 0:e.children[s];if(!e||!n)return;const c=e.getBoundingClientRect(),a=n.getBoundingClientRect(),d=a.left-c.left+e.scrollLeft,b=d+a.width;d<e.scrollLeft?e.scrollLeft=d:b>e.scrollLeft+e.clientWidth&&(e.scrollLeft=b-e.clientWidth)},[s,f]);const S=e=>typeof e=="string"&&Ne.has(e)?o.jsx(g.Icon,{name:e,size:w}):e;return o.jsxs("div",{ref:T,className:j.clsx(t.root,t[f],t[w],B),style:{"--tz-btn-rgb":`var(--tz-color-${E}-rgb)`,"--tz-btn-on":`var(--tz-color-${E}-contrast, #fff)`,...K},children:[o.jsx("ol",{ref:$,"aria-label":M,className:t.list,children:i.map((e,n)=>{const c=!!e.error,a=!c&&(e.completed||n<s),d=!c&&!a&&n===s,b=c?"error":a?"completed":d?"active":"upcoming",V=n===i.length-1,N=S(e.icon),X=N??(a?o.jsx(g.Icon,{name:"Check",size:w}):o.jsx("span",{className:t.number,children:n+1})),Y=e.label!=null||e.description!=null||e.optional!=null,Q=o.jsxs(o.Fragment,{children:[o.jsx("span",{className:t.indicator,"aria-hidden":N==null&&!a?void 0:!0,children:X}),Y&&o.jsxs("span",{className:t.text,children:[e.label!=null&&o.jsx("span",{className:t.label,children:e.label}),e.description!=null&&o.jsx("span",{className:t.description,children:e.description}),e.optional!=null&&o.jsx("span",{className:t.optional,children:e.optional})]})]});return o.jsxs("li",{className:j.clsx(t.step,t[b],e.disabled&&t.disabled),children:[W?o.jsx("button",{type:"button",className:t.main,disabled:e.disabled,"aria-current":d?"step":void 0,onClick:()=>{m==null||m(n),J(n)},children:Q}):o.jsx("div",{className:t.main,"aria-current":d?"step":void 0,children:Q}),!V&&o.jsx("span",{className:j.clsx(t.connector,n<s&&t.done),"aria-hidden":"true"}),L&&n===s&&e.content!=null&&o.jsx("div",{className:t.stepContent,children:e.content})]},n)})}),!L&&U!=null&&o.jsx("div",{className:t.panel,children:U})]})});exports.Stepper=je;
2
- //# sourceMappingURL=Stepper-e8qBsKYW.cjs.map
@@ -1,2 +0,0 @@
1
- "use strict";const r=require("react/jsx-runtime"),p=require("react"),k=require("clsx"),ee=require("@tanstack/react-table"),W=require("@dnd-kit/core"),ne=require("@dnd-kit/sortable"),un=require("@dnd-kit/utilities"),me=require("./table-CZRQGNdk.cjs"),Nt=require("./Badge-DVbe1rAI.cjs"),_t=require("./Button-Q_5uA-zc.cjs"),Fe=require("./DatePicker-4rb34nPR.cjs"),qe=require("./DateTimePicker-CVFzKzyA.cjs"),D=require("./Icon-B6lz-V0A.cjs"),He=require("./IconButton-CiDPeKM4.cjs"),mn=require("./Modal-DwY3jGHE.cjs"),fn=require("./MultiSelect-DJ6tRseY.cjs"),Le=require("./NumberField-sokUuuBR.cjs"),St=require("./RadioGroup-687BVZ7k.cjs"),Rt=require("./Select-BrjXCXtl.cjs"),gn=require("./Slider-DTnui01g.cjs"),Mt=require("./TextField-B-xqoDZR.cjs"),Ae=require("./TimePicker-DjL15hz1.cjs"),X=require("./Typography-d97DdbNd.cjs"),re=require("./ConfigProvider-Ci9Q2HLF.cjs"),wt=require("./Dropdown-CMjURWYd.cjs"),pn=require("./EmptyState-D5EKQjX1.cjs"),jt=require("./ListItem-DkCYXucd.cjs"),hn=require("./Loader-CAmRn8Oj.cjs"),xn=require("./Pagination-CAD9_Nr_.cjs"),$e=require("./Skeleton-DK0lAjS9.cjs"),yn=require("./errorMessage-C7N4KvUS.cjs");function Oe(t,n){if(n==null)return!1;switch(t){case"number":return typeof n=="number"&&!Number.isNaN(n);case"boolean":return typeof n=="boolean";case"multiSelect":return Array.isArray(n)&&n.length>0;case"numberRange":case"numberRangeSlider":return Array.isArray(n)&&(n[0]!=null||n[1]!=null);case"dateRange":case"timeRange":case"dateTimeRange":return Array.isArray(n)&&!!(n[0]||n[1]);default:return typeof n=="string"&&n.trim()!==""}}function bn(t,n){return t.reduce((s,i)=>Oe(i.type,n[i.key])?s+1:s,0)}const Y=t=>String(t).padStart(2,"0"),Ct=t=>`${t.getFullYear()}-${Y(t.getMonth()+1)}-${Y(t.getDate())}`,_n=t=>`${Ct(t)}T${Y(t.getHours())}:${Y(t.getMinutes())}`,Sn=t=>`${Y(t.getHours())}:${Y(t.getMinutes())}`,Qe=t=>{if(!t)return null;const n=/^\d{4}-\d{2}-\d{2}$/.test(t)?`${t}T00:00:00`:t,s=new Date(n);return Number.isNaN(s.getTime())?null:s},De=t=>{const n=Qe(t);return n?Ct(n):t.slice(0,10)},Ee=t=>{const n=Qe(t);return n?_n(n):t.slice(0,16)},te=t=>{if(/\d{4}-\d{2}-\d{2}/.test(t)){const n=Qe(t);if(n)return Sn(n)}return(t.includes("T")?t.slice(t.indexOf("T")+1):t).slice(0,5)};function wn(t,n,s){const i=String(n??"");switch(t){case"text":return i.toLowerCase().includes(String(s).toLowerCase());case"number":return Number(n)===s;case"numberRange":case"numberRangeSlider":{const[h,m]=s,f=Number(n);return(h==null||f>=h)&&(m==null||f<=m)}case"select":case"radio":return i===s;case"multiSelect":return s.includes(i);case"boolean":return!!n===s;case"date":return De(i)===De(String(s));case"dateTime":return Ee(i)===Ee(String(s));case"time":return te(i)===te(String(s));case"dateRange":case"dateTimeRange":{const h=t==="dateRange"?De:Ee,[m,f]=s,g=h(i);return(!m||g>=h(m))&&(!f||g<=h(f))}case"timeRange":{const[h,m]=s,f=te(i);return(!h||f>=te(h))&&(!m||f<=te(m))}default:return!0}}function jn(t,n,s){const i=n.filter(h=>Oe(h.type,s[h.key]));return i.length===0?t:t.filter(h=>i.every(m=>wn(m.type,h[m.key],s[m.key])))}function kt(t,n,s={}){const i=new URLSearchParams,h=s.rangeMinSuffix??"Min",m=s.rangeMaxSuffix??"Max",f=s.multiSelectFormat??"repeat";for(const g of t){const o=n[g.key];if(!Oe(g.type,o))continue;const l=g.queryKey??g.key;switch(g.type){case"multiSelect":{const d=o;f==="csv"?i.set(l,d.join(",")):f==="indexed"?d.forEach((y,_)=>i.set(`${l}[${_}]`,y)):d.forEach(y=>i.append(l,y));break}case"numberRange":case"numberRangeSlider":{const[d,y]=o;d!=null&&i.set(l+h,String(d)),y!=null&&i.set(l+m,String(y));break}case"dateRange":case"timeRange":case"dateTimeRange":{const[d,y]=o;d&&i.set(l+h,d),y&&i.set(l+m,y);break}default:i.set(l,String(o))}}return i}function vt(t,n,s={}){const i=s.rangeMinSuffix??"Min",h=s.rangeMaxSuffix??"Max",m=s.multiSelectFormat??"repeat",f={};for(const g of t){const o=g.queryKey??g.key;switch(g.type){case"multiSelect":{let l=[];if(m==="csv"){const d=n.get(o);d&&(l=d.split(",").filter(Boolean))}else if(m==="indexed")for(let d=0;n.has(`${o}[${d}]`);d++)l.push(n.get(`${o}[${d}]`));else l=n.getAll(o);l.length&&(f[g.key]=l);break}case"numberRange":case"numberRangeSlider":{const l=n.get(o+i),d=n.get(o+h);(l!=null||d!=null)&&(f[g.key]=[l!=null?Number(l):null,d!=null?Number(d):null]);break}case"dateRange":case"timeRange":case"dateTimeRange":{const l=n.get(o+i),d=n.get(o+h);(l!=null||d!=null)&&(f[g.key]=[l??"",d??""]);break}case"number":{const l=n.get(o);if(l!=null){const d=Number(l);Number.isNaN(d)||(f[g.key]=d)}break}case"boolean":{const l=n.get(o);l==="true"?f[g.key]=!0:l==="false"&&(f[g.key]=!1);break}default:{const l=n.get(o);l&&(f[g.key]=l)}}}return f}const kn="_fields_xa8i1_2",vn="_field_xa8i1_2",zn="_rangeLabel_xa8i1_15",Tn="_row_xa8i1_20",Nn="_rangeSep_xa8i1_30",Rn="_stack_xa8i1_36",Mn="_footer_xa8i1_43",Cn="_footerEnd_xa8i1_50",$={fields:kn,field:vn,rangeLabel:zn,row:Tn,rangeSep:Nn,stack:Rn,footer:Mn,footerEnd:Cn},In=(t,n)=>[{value:"",label:(t==null?void 0:t.any)??n("common.any")},{value:"true",label:(t==null?void 0:t.yes)??n("common.yes")},{value:"false",label:(t==null?void 0:t.no)??n("common.no")}],Pn=t=>t===!0?"true":t===!1?"false":"",Fn=t=>t==="true"?!0:t==="false"?!1:null;function fe({label:t,from:n,to:s,stacked:i}){return r.jsxs("div",{className:$.field,children:[r.jsx(X.Typography,{variant:"bodySmall",className:$.rangeLabel,children:t}),i?r.jsxs("div",{className:$.stack,children:[n,s]}):r.jsxs("div",{className:$.row,children:[n,r.jsx("span",{className:$.rangeSep,"aria-hidden":!0,children:"–"}),s]})]})}function qn({filter:t,value:n,onChange:s}){const i=re.useT(),{type:h,label:m,options:f=[],placeholder:g}=t;switch(h){case"text":return r.jsx(Mt.TextField,{label:m,placeholder:g,value:n??"",onChange:o=>s(o.target.value)});case"number":return r.jsx(Le.NumberField,{label:m,placeholder:g,value:n??null,onChange:o=>s(o)});case"numberRange":{const[o,l]=n??[null,null];return r.jsx(fe,{label:m,from:r.jsx(Le.NumberField,{placeholder:i("common.min"),value:o,onChange:d=>s([d,l])}),to:r.jsx(Le.NumberField,{placeholder:i("common.max"),value:l,onChange:d=>s([o,d])})})}case"numberRangeSlider":{const o=t.min??0,l=t.max??100,[d,y]=n??[null,null];return r.jsx(gn.Slider,{range:!0,label:m,min:o,max:l,step:t.step??1,value:[d??o,y??l],valueLabel:_=>{const[N,R]=_;return`${N} – ${R}`},onChange:_=>{const[N,R]=_;s([N<=o?null:N,R>=l?null:R])}})}case"select":return r.jsx(Rt.Select,{label:m,placeholder:g,options:f,value:n??"",onChange:o=>s(o)});case"radio":return r.jsx(St.RadioGroup,{label:m,orientation:t.orientation??"vertical",options:[{value:"",label:t.anyLabel??i("common.any")},...f.map(({value:o,label:l,disabled:d})=>({value:o,label:l,disabled:d}))],value:n??"",onChange:o=>s(o)});case"multiSelect":return r.jsx(fn.MultiSelect,{label:m,placeholder:g,options:f,value:n??[],onChange:o=>s(o)});case"boolean":return r.jsx(St.RadioGroup,{label:m,orientation:"horizontal",options:In(t.booleanLabels,i),value:Pn(n),onChange:o=>s(Fn(o))});case"date":return r.jsx(Fe.DatePicker,{label:m,value:n??"",onChange:o=>s(o??"")});case"dateRange":{const[o,l]=n??["",""];return r.jsx(fe,{label:m,from:r.jsx(Fe.DatePicker,{placeholder:i("common.from"),value:o,onChange:d=>s([d??"",l])}),to:r.jsx(Fe.DatePicker,{placeholder:i("common.to"),value:l,onChange:d=>s([o,d??""])})})}case"time":return r.jsx(Ae.TimePicker,{label:m,value:n??"",onChange:o=>s(o??"")});case"timeRange":{const[o,l]=n??["",""];return r.jsx(fe,{label:m,from:r.jsx(Ae.TimePicker,{placeholder:i("common.from"),value:o,onChange:d=>s([d??"",l])}),to:r.jsx(Ae.TimePicker,{placeholder:i("common.to"),value:l,onChange:d=>s([o,d??""])})})}case"dateTime":return r.jsx(qe.DateTimePicker,{label:m,value:n??"",onChange:o=>s(o??"")});case"dateTimeRange":{const[o,l]=n??["",""];return r.jsx(fe,{label:m,stacked:!0,from:r.jsx(qe.DateTimePicker,{placeholder:i("common.from"),value:o,onChange:d=>s([d??"",l])}),to:r.jsx(qe.DateTimePicker,{placeholder:i("common.to"),value:l,onChange:d=>s([o,d??""])})})}default:return null}}function Ln({filters:t,value:n,onChange:s}){const i=re.useT(),[h,m]=p.useState(!1),[f,g]=p.useState(n),o=bn(t,n),l=p.useId(),d=()=>{g(n),m(!0)},y=()=>{s(f),m(!1)};return r.jsxs(r.Fragment,{children:[r.jsx(Nt.Badge,{content:o,color:"primary",children:r.jsx(He.IconButton,{variant:"filled",size:"sm","aria-label":i("table.filters"),onClick:d,children:r.jsx(D.Icon,{name:"Filter"})})}),r.jsx(mn.Modal,{open:h,onClose:()=>m(!1),placement:"right",size:"sm",icon:"Filter",title:i("table.filters"),description:i("table.filtersDescription"),footer:r.jsx("div",{className:$.footer,children:r.jsxs("div",{className:$.footerEnd,children:[r.jsx(_t.Button,{variant:"text",size:"sm",startIcon:r.jsx(D.Icon,{name:"Trash"}),onClick:()=>g({}),children:i("common.clear")}),r.jsx(_t.Button,{type:"submit",size:"sm",form:l,startIcon:r.jsx(D.Icon,{name:"Filter"}),children:i("common.apply")})]})}),children:r.jsx("form",{id:l,className:$.fields,onSubmit:_=>{_.preventDefault(),y()},children:t.map(_=>r.jsx(qn,{filter:_,value:f[_.key],onChange:N=>g(R=>({...R,[_.key]:N}))},_.key))})})]})}const An="_root_ziri4_3",$n="_toolbar_ziri4_17",Dn="_title_ziri4_24",En="_toolbarStart_ziri4_28",Bn="_toolbarEnd_ziri4_35",Wn="_search_ziri4_41",Hn="_scroll_ziri4_9",On="_table_ziri4_56",Qn="_th_ziri4_63",Gn="_sticky_ziri4_73",Un="_td_ziri4_80",Kn="_tr_ziri4_90",Xn="_wrapCell_ziri4_97",Yn="_hoverable_ziri4_101",Jn="_striped_ziri4_104",Vn="_clickable_ziri4_107",Zn="_empty_ziri4_111",er="_menuTitle_ziri4_118",tr="_skeletonCell_ziri4_126",nr="_rowActions_ziri4_130",rr="_skeletonActions_ziri4_131",sr="_dragHandleCell_ziri4_142",ar="_dragHandle_ziri4_142",ir="_dragging_ziri4_171",or="_pinnedLeft_ziri4_179",cr="_pinnedRight_ziri4_180",lr="_skeletonActionsCell_ziri4_200",dr="_stateCell_ziri4_234",ur="_loadingOverlay_ziri4_238",mr="_footer_ziri4_248",fr="_footerMain_ziri4_254",gr="_pageSize_ziri4_261",pr="_pageSizeSelect_ziri4_267",hr="_rangeText_ziri4_270",u={root:An,toolbar:$n,title:Dn,toolbarStart:En,toolbarEnd:Bn,search:Wn,scroll:Hn,table:On,th:Qn,sticky:Gn,td:Un,tr:Kn,wrapCell:Xn,hoverable:Yn,striped:Jn,clickable:Vn,empty:Zn,menuTitle:er,skeletonCell:tr,rowActions:nr,skeletonActions:rr,dragHandleCell:sr,dragHandle:ar,dragging:ir,pinnedLeft:or,pinnedRight:cr,skeletonActionsCell:lr,stateCell:dr,loadingOverlay:ur,footer:mr,footerMain:fr,pageSize:gr,pageSizeSelect:pr,rangeText:hr},ge=Number.MAX_SAFE_INTEGER,zt=["8em","5.5em","7em","10em","4.5em","6.5em"],xr=280;function Be(t,n){return typeof t=="function"?t(n):t}function pe(t){return t.maxWidth??(t.wrap?xr:void 0)}function yr(t){return t==null||typeof t=="object"?"":String(t)}function br(t){return t==null||t===""||t===!1?r.jsx("span",{className:u.empty,"aria-hidden":!0,children:"—"}):t}function We(t){return t.toString().replace(/%2C/gi,",").replace(/%3A/gi,":").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Tt(t,n){const s={pageParam:"page",sizeParam:"size",searchParam:"search",sortParam:"sort",sortOrderParam:"order",...t},i=t.rangeMinSuffix??"Min",h=t.rangeMaxSuffix??"Max",m=[s.pageParam,s.sizeParam,s.searchParam,s.sortParam,s.sortOrderParam];for(const f of n??[]){const g=f.queryKey??f.key;m.push(g,g+i,g+h)}return f=>m.includes(f)||m.some(g=>f.startsWith(`${g}[`))}function _r(t,n,s){const i={...t};return n.top+t.y<=s.top?i.y=s.top-n.top:n.bottom+t.y>=s.top+s.height&&(i.y=s.top+s.height-n.bottom),n.left+t.x<=s.left?i.x=s.left-n.left:n.right+t.x>=s.left+s.width&&(i.x=s.left+s.width-n.right),i}const Sr=({transform:t})=>({...t,x:0}),wr=({containerNodeRect:t,draggingNodeRect:n,transform:s})=>n&&t?_r(s,n,t):s,jr=[Sr,wr];function kr({id:t,cells:n,clickable:s,onClick:i}){const h=re.useT(),{setNodeRef:m,transform:f,transition:g,isDragging:o,attributes:l,listeners:d}=ne.useSortable({id:t});return r.jsxs("tr",{ref:m,className:k.clsx(u.tr,s&&u.clickable,o&&u.dragging),style:{transform:un.CSS.Translate.toString(f),transition:g,position:o?"relative":void 0,zIndex:o?1:void 0},onClick:i,children:[r.jsx("td",{className:k.clsx(u.td,u.dragHandleCell),children:r.jsx("button",{type:"button",className:u.dragHandle,"aria-label":h("table.dragHandle"),...l,...d,onClick:y=>y.stopPropagation(),children:r.jsx(D.Icon,{name:"Menu",size:"sm"})})}),n]})}function vr({enabled:t,sensors:n,onDragEnd:s,children:i}){return t?r.jsx(W.DndContext,{sensors:n,collisionDetection:W.closestCenter,modifiers:jr,onDragEnd:s,children:i}):r.jsx(r.Fragment,{children:i})}const zr=p.forwardRef(function({columns:n,data:s,getRowId:i,title:h,toolbar:m,searchable:f=!1,searchPlaceholder:g,defaultSearch:o="",debounceMs:l=300,defaultPage:d=1,defaultPageSize:y=10,pageSizeOptions:_=[10,20,50,100,200],allowAllRows:N=!0,showPageSize:R="auto",showFirstButton:It=!1,showLastButton:Pt=!1,manualPagination:Ft=!1,rowCount:Ge,defaultSort:he=null,onChange:Ue,queryMapping:qt,onExportToEmail:se,filters:b,defaultFilters:Lt,onRowClick:E,actions:ae,reorderable:H=!1,onReorder:Ke,loading:ie=!1,loadingRows:At,empty:$t,urlSync:B=!0,clearUrlOnUnmount:Xe=!0,page:Ye,onPageChange:xe,pageSize:Je,onPageSizeChange:ye,search:J,onSearchChange:be,sort:V,onSortChange:_e,filterValues:Se,onFiltersChange:we,stickyHeader:Dt=!1,striped:Et=!1,hoverable:Bt=!0,className:Wt,...Ht},Ot){const v=re.useT(),Qt=re.useTableQueryConfig(),F=p.useRef({});F.current={...Qt,...qt};const oe=p.useRef(Ue);oe.current=Ue;const ce=p.useRef(b);ce.current=b;const Ve=p.useRef(null),je=p.useRef(null),[Ze,Gt]=p.useState({start:!1,end:!1}),[q]=p.useState(()=>{const e=B&&typeof window<"u"?new URLSearchParams(window.location.search):null;return e?{...me.parseTableQuery(e,F.current),filters:b!=null&&b.length?vt(b,e,F.current):{}}:{page:null,size:null,search:"",sort:null,filters:{}}}),[et,Ut]=p.useState(()=>({pageIndex:(q.page??d)-1,pageSize:q.size??y})),[le,ke]=p.useState(q.search||o),[Kt,Xt]=p.useState(q.search||o),[tt,Yt]=p.useState(()=>q.sort?[{id:q.sort.key,desc:q.sort.direction==="desc"}]:he?[{id:he.key,desc:he.direction==="desc"}]:[]),[nt,Jt]=p.useState(()=>({...Lt,...q.filters})),z=Ft,rt=Ye!==void 0,st=Je!==void 0,at=J!==void 0,ve=V!==void 0,ze=Se!==void 0,Te={pageIndex:rt?Ye-1:et.pageIndex,pageSize:st?Je:et.pageSize},M=at?J:Kt,L=p.useMemo(()=>ve?V?[{id:V.key,desc:V.direction==="desc"}]:[]:tt,[ve,V,tt]),A=p.useMemo(()=>ze?Se:nt,[ze,Se,nt]),O=e=>{const a=Te,c=Be(e,a);c.pageIndex!==a.pageIndex&&(xe==null||xe(c.pageIndex+1)),c.pageSize!==a.pageSize&&(ye==null||ye(c.pageSize)),Ut(x=>({pageIndex:rt?x.pageIndex:c.pageIndex,pageSize:st?x.pageSize:c.pageSize}))},Ne=()=>O(e=>e.pageIndex===0?e:{...e,pageIndex:0}),Re=(e,a=!0)=>{at||Xt(e),be==null||be(e),a&&Ne()},Me=(e,a=!0)=>{const c=Be(e,L);ve||Yt(c),_e==null||_e(c[0]?{key:c[0].id,direction:c[0].desc?"desc":"asc"}:null),a&&Ne()},it=(e,a=!0)=>{ze||Jt(e),we==null||we(e),a&&Ne()},Vt=p.useMemo(()=>b&&b.length>0&&!z?jn(s,b,A):s,[b,z,s,A]),Zt=it,en=p.useMemo(()=>n.map(e=>({id:e.key,accessorFn:a=>a[e.key],enableSorting:!!e.sortable})),[n]),tn=p.useMemo(()=>{const e=_.map(a=>({value:String(a),label:String(a)}));return N?[...e,{value:"all",label:v("common.all")}]:e},[_,N]),de=p.useMemo(()=>{if(!ae)return n;const e={key:"__actions",header:"",align:"right",pinned:"right",cell:(a,c)=>r.jsx("div",{className:u.rowActions,onClick:x=>x.stopPropagation(),children:ae(a,c)})};return[...n,e]},[n,ae]),Ce=p.useMemo(()=>n.filter(e=>e.sortable),[n]),nn=e=>Me(a=>{const c=a[0];return!c||c.id!==e?[{id:e,desc:!1}]:c.desc?[]:[{id:e,desc:!0}]}),Ie=ee.useReactTable({data:Vt,columns:en,state:{pagination:Te,globalFilter:M,sorting:L},onPaginationChange:O,onGlobalFilterChange:e=>Re(Be(e,M)),onSortingChange:Me,globalFilterFn:"includesString",sortDescFirst:!1,getCoreRowModel:ee.getCoreRowModel(),getRowId:i,manualPagination:z,manualFiltering:z,manualSorting:z,...z?{rowCount:Ge??s.length}:{getPaginationRowModel:ee.getPaginationRowModel(),getFilteredRowModel:ee.getFilteredRowModel(),getSortedRowModel:ee.getSortedRowModel()}}),Q=Ie.getRowModel().rows,rn=W.useSensors(W.useSensor(W.PointerSensor,{activationConstraint:{distance:5}}),W.useSensor(W.KeyboardSensor,{coordinateGetter:ne.sortableKeyboardCoordinates})),ot=(e,a)=>i?i(e,a):String(a),sn=e=>{const{active:a,over:c}=e;if(!c||a.id===c.id||!Ke)return;const x=s.findIndex((P,w)=>ot(P,w)===a.id),j=s.findIndex((P,w)=>ot(P,w)===c.id);x<0||j<0||Ke(ne.arrayMove(s,x,j),{id:String(a.id),from:x,to:j})},C=z?Ge??s.length:Ie.getFilteredRowModel().rows.length,{pageIndex:T,pageSize:S}=Te,G=Math.max(1,Math.ceil(C/S)),an=Math.min(..._,...S<ge?[S]:[]),ct=R==="auto"?C>an:R,lt=T+1,on=C===0?0:T*S+1,cn=z?Math.min(C,T*S+Q.length):Math.min(C,lt*S);p.useEffect(()=>{J!==void 0&&ke(J)},[J]),p.useEffect(()=>{if(le===M)return;const e=setTimeout(()=>Re(le),l);return()=>clearTimeout(e)},[le,M,l]),p.useEffect(()=>{z&&C===0||T>0&&T>=G&&O(e=>({...e,pageIndex:G-1}))},[G,T,z,C]);const I=L[0]?{key:L[0].id,direction:L[0].desc?"desc":"asc"}:null,dt=()=>{const e=T+1,a=S,c=me.buildTableQuery({page:e,size:a,search:M,sort:I},F.current);return b!=null&&b.length&&kt(b,A,F.current).forEach((x,j)=>c.append(j,x)),{page:e,size:a,search:M,sort:I,filters:A,params:c,query:We(c)}};p.useEffect(()=>{var e;(e=oe.current)==null||e.call(oe,dt())},[T,S,M,L,A]);const ut=se!=null,mt=b!=null&&b.length>0,Z=p.useRef(null),ft=p.useCallback((e,a,c,x,j)=>{if(typeof window>"u"||!B)return;Z.current=window.location.pathname;const P=F.current,w=ce.current,U=me.buildTableQuery({page:e,size:a,search:c,sort:x},P);w!=null&&w.length&&kt(w,j,P).forEach((K,Pe)=>U.append(Pe,K));const dn=Tt(P,w),ue=new URLSearchParams(window.location.search);for(const K of[...ue.keys()])dn(K)&&ue.delete(K);U.forEach((K,Pe)=>ue.append(Pe,K));const yt=We(ue),bt=`${window.location.pathname}${yt?`?${yt}`:""}${window.location.hash}`;bt!==`${window.location.pathname}${window.location.search}${window.location.hash}`&&window.history.replaceState(window.history.state,"",bt)},[B]);p.useEffect(()=>{ft(T+1,S,M,I,A)},[T,S,M,L,A,ft]);const gt=p.useRef(B);gt.current=B;const pt=p.useRef(Xe);pt.current=Xe,p.useEffect(()=>{if(!(typeof window>"u"))return Z.current??(Z.current=window.location.pathname),()=>{if(!gt.current||!pt.current||window.location.pathname!==Z.current)return;const e=Tt(F.current,ce.current),a=new URLSearchParams(window.location.search),c=[...a.keys()].filter(e);if(c.length===0)return;for(const j of c)a.delete(j);const x=We(a);window.history.replaceState(window.history.state,"",`${window.location.pathname}${x?`?${x}`:""}${window.location.hash}`)}},[]);const ht=p.useRef(()=>{});ht.current=()=>{const e=new URLSearchParams(window.location.search),a=F.current,c=me.parseTableQuery(e,a);O(()=>({pageIndex:(c.page??d)-1,pageSize:c.size??S})),ke(c.search),Re(c.search,!1),Me(()=>c.sort?[{id:c.sort.key,desc:c.sort.direction==="desc"}]:[],!1);const x=ce.current;x!=null&&x.length&&it(vt(x,e,a),!1)},p.useEffect(()=>{if(typeof window>"u"||!B)return;const e=()=>ht.current();return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[B]),p.useEffect(()=>{yn.isDev()&&!i&&(E!=null||ae!=null||H)&&console.warn("[Table] No `getRowId` provided, so the row index is used as the React key. For a table with row interactions or changing / paged data, pass `getRowId` (e.g. `(row) => row.id`) so each row keeps its identity across sort / filter / refetch.")},[]),p.useEffect(()=>{const e=Ve.current;if(!e)return;const a=()=>{const x=e.scrollWidth>e.clientWidth+1,j=e.scrollLeft<=0,P=e.scrollLeft>=e.scrollWidth-e.clientWidth-1,w={start:x&&!j,end:x&&!P};Gt(U=>U.start===w.start&&U.end===w.end?U:w)};a(),e.addEventListener("scroll",a,{passive:!0});const c=typeof ResizeObserver<"u"?new ResizeObserver(a):null;return c==null||c.observe(e),c&&je.current&&c.observe(je.current),()=>{e.removeEventListener("scroll",a),c==null||c.disconnect()}},[]);const ln=h!=null||m!=null||f||mt||Ce.length>0||ut,xt=e=>de.map(a=>r.jsx("td",{className:k.clsx(u.td,a.pinned==="left"&&u.pinnedLeft,a.pinned==="right"&&u.pinnedRight,(a.wrap||a.maxWidth!=null)&&u.wrapCell),style:{width:a.width??(a.pinned?1:pe(a)),maxWidth:pe(a),textAlign:a.align},children:br(a.cell?a.cell(e.original,e.index):yr(e.getValue(a.key)))},a.key));return r.jsxs("div",{ref:Ot,className:k.clsx(u.root,Wt),...Ht,children:[ln&&r.jsxs("div",{className:u.toolbar,children:[r.jsxs("div",{className:u.toolbarStart,children:[h!=null&&r.jsx(X.Typography,{variant:"h4",as:"div",className:u.title,children:h}),f&&r.jsx(Mt.TextField,{className:u.search,fullWidth:!1,value:le,onChange:e=>ke(e.target.value),placeholder:g??v("common.search"),adornment:r.jsx(D.Icon,{name:"SearchNormal"}),"aria-label":v("common.search")})]}),r.jsxs("div",{className:u.toolbarEnd,children:[m,ut&&r.jsxs(wt.Dropdown,{placement:"bottom-end",trigger:r.jsx(He.IconButton,{variant:"filled",size:"sm","aria-label":v("table.export"),children:r.jsx(D.Icon,{name:"ExportArrow"})}),children:[r.jsx(X.Typography,{as:"div",variant:"caption",color:"muted",uppercase:!0,className:u.menuTitle,children:v("table.export")}),r.jsx(jt.ListItem,{clickable:!0,icon:"Sms",onClick:()=>se==null?void 0:se(dt()),children:v("table.sendOnEmail")})]}),Ce.length>0&&r.jsxs(wt.Dropdown,{placement:"bottom-end",closeOnSelect:!1,trigger:r.jsx(Nt.Badge,{dot:L.length>0,color:"primary",children:r.jsx(He.IconButton,{variant:"filled",size:"sm","aria-label":v("table.sort"),children:r.jsx(D.Icon,{name:"Sort"})})}),children:[r.jsx(X.Typography,{as:"div",variant:"caption",color:"muted",uppercase:!0,className:u.menuTitle,children:v("table.sortBy")}),Ce.map(e=>{const a=(I==null?void 0:I.key)===e.key;return r.jsx(jt.ListItem,{clickable:!0,selected:a,trailing:a?r.jsx(D.Icon,{name:(I==null?void 0:I.direction)==="desc"?"ArrowDown":"ArrowUp2"}):void 0,onClick:()=>nn(e.key),children:e.header},e.key)})]}),mt&&r.jsx(Ln,{filters:b,value:A,onChange:Zt})]})]}),r.jsx(vr,{enabled:H,sensors:rn,onDragEnd:sn,children:r.jsxs("div",{ref:Ve,className:u.scroll,"data-pin-start":Ze.start?"true":"false","data-pin-end":Ze.end?"true":"false",children:[r.jsxs("table",{ref:je,className:k.clsx(u.table,Et&&u.striped,Bt&&u.hoverable,Dt&&u.sticky),"aria-busy":ie||void 0,children:[r.jsx("thead",{children:r.jsxs("tr",{children:[H&&r.jsx("th",{className:k.clsx(u.th,u.dragHandleCell),scope:"col","aria-hidden":!0}),de.map(e=>{var c;const a=e.sortable&&((c=Ie.getColumn(e.key))==null?void 0:c.getIsSorted())||!1;return r.jsx("th",{scope:"col",className:k.clsx(u.th,e.pinned==="left"&&u.pinnedLeft,e.pinned==="right"&&u.pinnedRight,(e.wrap||e.maxWidth!=null)&&u.wrapCell),style:{width:e.width??(e.pinned?1:pe(e)),maxWidth:pe(e),textAlign:e.align},"aria-sort":e.sortable?a==="asc"?"ascending":a==="desc"?"descending":"none":void 0,children:e.header},e.key)})]})}),r.jsx("tbody",{children:Q.length>0?H?r.jsx(ne.SortableContext,{items:Q.map(e=>e.id),strategy:ne.verticalListSortingStrategy,children:Q.map(e=>r.jsx(kr,{id:e.id,clickable:!!E,onClick:E?()=>E(e.original,e.index):void 0,cells:xt(e)},e.id))}):Q.map(e=>r.jsx("tr",{className:k.clsx(u.tr,E&&u.clickable),onClick:E?()=>E(e.original,e.index):void 0,children:xt(e)},e.id)):ie?Array.from({length:At??Math.min(S===ge?10:S,10)},(e,a)=>r.jsxs("tr",{className:u.tr,"aria-hidden":"true",children:[H&&r.jsx("td",{className:k.clsx(u.td,u.dragHandleCell)}),de.map((c,x)=>r.jsx("td",{className:k.clsx(u.td,c.pinned==="left"&&u.pinnedLeft,c.pinned==="right"&&u.pinnedRight,c.key==="__actions"&&u.skeletonActionsCell),style:{width:c.width,textAlign:c.align},children:c.key==="__actions"?r.jsxs("span",{className:k.clsx(u.rowActions,u.skeletonActions),children:[r.jsx($e.Skeleton,{variant:"rect",width:"calc(var(--tz-control-height-sm) - var(--tz-space-xs))",height:"calc(var(--tz-control-height-sm) - var(--tz-space-xs))",radius:"xs"}),r.jsx($e.Skeleton,{variant:"rect",width:"calc(var(--tz-control-height-sm) - var(--tz-space-xs))",height:"calc(var(--tz-control-height-sm) - var(--tz-space-xs))",radius:"xs"})]}):r.jsx($e.Skeleton,{width:zt[(a*3+x)%zt.length],className:u.skeletonCell})},c.key))]},a)):r.jsx("tr",{children:r.jsx("td",{colSpan:Math.max(1,de.length+(H?1:0)),className:u.stateCell,children:$t??r.jsx(pn.EmptyState,{})})})})]}),ie&&Q.length>0&&r.jsx("div",{className:u.loadingOverlay,children:r.jsx(hn.Loader,{size:"lg"})})]})}),C>0&&(ct||G>1)&&r.jsxs("div",{className:u.footer,children:[r.jsx(X.Typography,{variant:"bodySmall",color:"muted",as:"span",className:u.rangeText,children:v("table.range",{from:on,to:cn,total:C})}),r.jsxs("div",{className:u.footerMain,children:[ct&&r.jsxs("div",{className:u.pageSize,children:[r.jsx(X.Typography,{variant:"bodySmall",color:"muted",as:"span",children:v("table.rowsPerPage")}),r.jsx(Rt.Select,{className:u.pageSizeSelect,fullWidth:!1,clearable:!1,showSelectedTick:!1,value:S>=ge?"all":String(S),onChange:e=>O(()=>({pageIndex:0,pageSize:e==="all"?ge:Number(e)})),options:tn})]}),G>1&&r.jsx(xn.Pagination,{count:G,page:lt,onChange:e=>O(a=>({...a,pageIndex:e-1})),showFirstButton:It,showLastButton:Pt,disabled:ie})]})]})]})});exports.Table=zr;
2
- //# sourceMappingURL=Table-C14fRX1U.cjs.map