@techzyapp/ui-library 1.0.25 → 1.0.28

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 (721) hide show
  1. package/dist/AdminRoot-BTvmassR.js +55 -0
  2. package/dist/AdminRoot-BTvmassR.js.map +1 -0
  3. package/dist/AdminRoot-DM-cZCpN.cjs +2 -0
  4. package/dist/AdminRoot-DM-cZCpN.cjs.map +1 -0
  5. package/dist/{Alert-udX1ybuC.cjs → Alert-CFm6MU0u.cjs} +2 -2
  6. package/dist/{Alert-udX1ybuC.cjs.map → Alert-CFm6MU0u.cjs.map} +1 -1
  7. package/dist/{Alert-DXmzM_rh.js → Alert-v-lelDih.js} +3 -3
  8. package/dist/{Alert-DXmzM_rh.js.map → Alert-v-lelDih.js.map} +1 -1
  9. package/dist/{AuthLayout-CP9qu6Bv.js → AuthLayout-DOFYw_z5.js} +3 -3
  10. package/dist/{AuthLayout-CP9qu6Bv.js.map → AuthLayout-DOFYw_z5.js.map} +1 -1
  11. package/dist/{AuthLayout-BRUxDgzs.cjs → AuthLayout-QAtW2GAT.cjs} +2 -2
  12. package/dist/{AuthLayout-BRUxDgzs.cjs.map → AuthLayout-QAtW2GAT.cjs.map} +1 -1
  13. package/dist/Avatar-DXNPg23a.js +90 -0
  14. package/dist/Avatar-DXNPg23a.js.map +1 -0
  15. package/dist/Avatar-DrV_F7Ex.cjs +2 -0
  16. package/dist/Avatar-DrV_F7Ex.cjs.map +1 -0
  17. package/dist/{AvatarGroup-uW0SD5P4.cjs → AvatarGroup-CHesdo-M.cjs} +2 -2
  18. package/dist/{AvatarGroup-uW0SD5P4.cjs.map → AvatarGroup-CHesdo-M.cjs.map} +1 -1
  19. package/dist/{AvatarGroup-YaNasLMS.js → AvatarGroup-CwlYqDCI.js} +2 -2
  20. package/dist/{AvatarGroup-YaNasLMS.js.map → AvatarGroup-CwlYqDCI.js.map} +1 -1
  21. package/dist/Badge-BmFgusOa.js +50 -0
  22. package/dist/{Badge-DSWigoGC.js.map → Badge-BmFgusOa.js.map} +1 -1
  23. package/dist/Badge-DVbe1rAI.cjs +2 -0
  24. package/dist/{Badge-BQpr2Jee.cjs.map → Badge-DVbe1rAI.cjs.map} +1 -1
  25. package/dist/{Breadcrumbs-CsYTiX2h.cjs → Breadcrumbs-3wHPNa0P.cjs} +2 -2
  26. package/dist/{Breadcrumbs-CsYTiX2h.cjs.map → Breadcrumbs-3wHPNa0P.cjs.map} +1 -1
  27. package/dist/{Breadcrumbs-DQHHeLId.js → Breadcrumbs-Cgd-u3aK.js} +3 -3
  28. package/dist/{Breadcrumbs-DQHHeLId.js.map → Breadcrumbs-Cgd-u3aK.js.map} +1 -1
  29. package/dist/Button-BLW9yV8W.js +72 -0
  30. package/dist/{Button-DBs8xnA5.js.map → Button-BLW9yV8W.js.map} +1 -1
  31. package/dist/Button-KRGjJdMV.cjs +2 -0
  32. package/dist/{Button-CXmDOzPk.cjs.map → Button-KRGjJdMV.cjs.map} +1 -1
  33. package/dist/{Calendar-B2nMXk4C.cjs → Calendar-CoTCOOUu.cjs} +2 -2
  34. package/dist/{Calendar-B2nMXk4C.cjs.map → Calendar-CoTCOOUu.cjs.map} +1 -1
  35. package/dist/{Calendar-CtteUt82.js → Calendar-sLA-xa0B.js} +4 -4
  36. package/dist/{Calendar-CtteUt82.js.map → Calendar-sLA-xa0B.js.map} +1 -1
  37. package/dist/Card-6fiSEC0z.js +121 -0
  38. package/dist/Card-6fiSEC0z.js.map +1 -0
  39. package/dist/Card-zTkvreQu.cjs +2 -0
  40. package/dist/Card-zTkvreQu.cjs.map +1 -0
  41. package/dist/Checkbox-CTp1xFW7.cjs +2 -0
  42. package/dist/{Checkbox-fzJCwe0j.cjs.map → Checkbox-CTp1xFW7.cjs.map} +1 -1
  43. package/dist/Checkbox-DyKBIgVT.js +98 -0
  44. package/dist/{Checkbox-ZYOSBYRt.js.map → Checkbox-DyKBIgVT.js.map} +1 -1
  45. package/dist/{Chip-DdKhcstm.js → Chip-C-5Z5wsC.js} +31 -31
  46. package/dist/{Chip-DdKhcstm.js.map → Chip-C-5Z5wsC.js.map} +1 -1
  47. package/dist/Chip-CqOqfafx.cjs +2 -0
  48. package/dist/{Chip-gUH_7nQc.cjs.map → Chip-CqOqfafx.cjs.map} +1 -1
  49. package/dist/ChoiceCardGroup-BSagRbPI.cjs +2 -0
  50. package/dist/{ChoiceCardGroup-d0VVTUi5.cjs.map → ChoiceCardGroup-BSagRbPI.cjs.map} +1 -1
  51. package/dist/ChoiceCardGroup-CEniY_HJ.js +181 -0
  52. package/dist/{ChoiceCardGroup-DBohUnRj.js.map → ChoiceCardGroup-CEniY_HJ.js.map} +1 -1
  53. package/dist/{CodeBlock-C6tQtbHU.cjs → CodeBlock-DFiHDZXh.cjs} +2 -2
  54. package/dist/{CodeBlock-C6tQtbHU.cjs.map → CodeBlock-DFiHDZXh.cjs.map} +1 -1
  55. package/dist/{CodeBlock-DD_d3-sM.js → CodeBlock-rPaqO7yD.js} +3 -3
  56. package/dist/{CodeBlock-DD_d3-sM.js.map → CodeBlock-rPaqO7yD.js.map} +1 -1
  57. package/dist/ColorPicker-Bqypsy5E.cjs +2 -0
  58. package/dist/ColorPicker-Bqypsy5E.cjs.map +1 -0
  59. package/dist/{ColorPicker-Dw6Qk0iy.js → ColorPicker-DXDAXvlA.js} +36 -27
  60. package/dist/ColorPicker-DXDAXvlA.js.map +1 -0
  61. package/dist/ColorPickerPanel-6lQC1URc.js +322 -0
  62. package/dist/ColorPickerPanel-6lQC1URc.js.map +1 -0
  63. package/dist/ColorPickerPanel-C9ARc_uD.cjs +2 -0
  64. package/dist/ColorPickerPanel-C9ARc_uD.cjs.map +1 -0
  65. package/dist/ColorRamp-B9OWxCOK.cjs +2 -0
  66. package/dist/ColorRamp-B9OWxCOK.cjs.map +1 -0
  67. package/dist/ColorRamp-DQ8wkgvF.js +126 -0
  68. package/dist/ColorRamp-DQ8wkgvF.js.map +1 -0
  69. package/dist/{ConfigProvider-Bszl3Wr3.cjs → ConfigProvider-BElY0HuV.cjs} +2 -2
  70. package/dist/ConfigProvider-BElY0HuV.cjs.map +1 -0
  71. package/dist/{ConfigProvider-DR9YMy9U.js → ConfigProvider-B_RSn9bb.js} +2 -2
  72. package/dist/ConfigProvider-B_RSn9bb.js.map +1 -0
  73. package/dist/CopyButton-B5aicGl3.cjs +2 -0
  74. package/dist/{CopyButton-Ct-8AmmX.cjs.map → CopyButton-B5aicGl3.cjs.map} +1 -1
  75. package/dist/CopyButton-BplPYm8i.js +43 -0
  76. package/dist/{CopyButton-DJ1PSJZU.js.map → CopyButton-BplPYm8i.js.map} +1 -1
  77. package/dist/DashedButton-B7xodc3N.cjs +2 -0
  78. package/dist/{DashedButton-3C4IZuo4.cjs.map → DashedButton-B7xodc3N.cjs.map} +1 -1
  79. package/dist/DashedButton-iM7kzopW.js +59 -0
  80. package/dist/{DashedButton-BXZAyMtw.js.map → DashedButton-iM7kzopW.js.map} +1 -1
  81. package/dist/{DatePicker-BxEydgfu.cjs → DatePicker-Cdl2JYBd.cjs} +2 -2
  82. package/dist/{DatePicker-BxEydgfu.cjs.map → DatePicker-Cdl2JYBd.cjs.map} +1 -1
  83. package/dist/{DatePicker-CJioG5M7.js → DatePicker-U5TJ9FYM.js} +7 -7
  84. package/dist/{DatePicker-CJioG5M7.js.map → DatePicker-U5TJ9FYM.js.map} +1 -1
  85. package/dist/DatePicker.module-BDtTsg8M.cjs +2 -0
  86. package/dist/{DatePicker.module-tE-tGNBd.cjs.map → DatePicker.module-BDtTsg8M.cjs.map} +1 -1
  87. package/dist/DatePicker.module-CMMQyEhG.js +138 -0
  88. package/dist/{DatePicker.module-BZDftL4g.js.map → DatePicker.module-CMMQyEhG.js.map} +1 -1
  89. package/dist/{DateTimePicker-COEj2Z0F.cjs → DateTimePicker-DUFtddxJ.cjs} +2 -2
  90. package/dist/{DateTimePicker-COEj2Z0F.cjs.map → DateTimePicker-DUFtddxJ.cjs.map} +1 -1
  91. package/dist/{DateTimePicker-e2zj2bhS.js → DateTimePicker-laJsZYJX.js} +10 -10
  92. package/dist/{DateTimePicker-e2zj2bhS.js.map → DateTimePicker-laJsZYJX.js.map} +1 -1
  93. package/dist/DescriptionList-BCvOX8fg.cjs +2 -0
  94. package/dist/DescriptionList-BCvOX8fg.cjs.map +1 -0
  95. package/dist/DescriptionList-Y9jF_4L0.js +176 -0
  96. package/dist/DescriptionList-Y9jF_4L0.js.map +1 -0
  97. package/dist/{Dropdown-FfkmluRu.js → Dropdown--1mNTVZJ.js} +2 -2
  98. package/dist/{Dropdown-FfkmluRu.js.map → Dropdown--1mNTVZJ.js.map} +1 -1
  99. package/dist/{Dropdown-Ui7h2TGd.cjs → Dropdown-DNZ9S_zQ.cjs} +2 -2
  100. package/dist/{Dropdown-Ui7h2TGd.cjs.map → Dropdown-DNZ9S_zQ.cjs.map} +1 -1
  101. package/dist/EmptyState-BtwuzX9Z.js +58 -0
  102. package/dist/EmptyState-BtwuzX9Z.js.map +1 -0
  103. package/dist/EmptyState-CO_NRZ6w.cjs +2 -0
  104. package/dist/EmptyState-CO_NRZ6w.cjs.map +1 -0
  105. package/dist/ErrorBoundary-DJ6R1M9k.js +126 -0
  106. package/dist/ErrorBoundary-DJ6R1M9k.js.map +1 -0
  107. package/dist/ErrorBoundary-unvC1vZQ.cjs +2 -0
  108. package/dist/ErrorBoundary-unvC1vZQ.cjs.map +1 -0
  109. package/dist/FileCard-C3a2yDhK.js +149 -0
  110. package/dist/FileCard-C3a2yDhK.js.map +1 -0
  111. package/dist/FileCard-DKjDQRzZ.cjs +2 -0
  112. package/dist/FileCard-DKjDQRzZ.cjs.map +1 -0
  113. package/dist/FileUploader-CuOHWkiG.js +707 -0
  114. package/dist/FileUploader-CuOHWkiG.js.map +1 -0
  115. package/dist/FileUploader-VIOg03pl.cjs +2 -0
  116. package/dist/FileUploader-VIOg03pl.cjs.map +1 -0
  117. package/dist/{Flag-CB4YyPj3.cjs → Flag-aOQncoEZ.cjs} +2 -2
  118. package/dist/{Flag-CB4YyPj3.cjs.map → Flag-aOQncoEZ.cjs.map} +1 -1
  119. package/dist/{Flag-yA1y5XzR.js → Flag-kpUfmrwC.js} +2 -2
  120. package/dist/{Flag-yA1y5XzR.js.map → Flag-kpUfmrwC.js.map} +1 -1
  121. package/dist/FloatingPanel-BIC4WrFa.cjs +2 -0
  122. package/dist/FloatingPanel-BIC4WrFa.cjs.map +1 -0
  123. package/dist/FloatingPanel-CeSOtE_D.js +135 -0
  124. package/dist/FloatingPanel-CeSOtE_D.js.map +1 -0
  125. package/dist/{FullscreenToggle-0lskYnpx.cjs → FullscreenToggle-BSwxQEaG.cjs} +2 -2
  126. package/dist/{FullscreenToggle-0lskYnpx.cjs.map → FullscreenToggle-BSwxQEaG.cjs.map} +1 -1
  127. package/dist/{FullscreenToggle-jSLruiKt.js → FullscreenToggle-CMifmPD3.js} +3 -3
  128. package/dist/{FullscreenToggle-jSLruiKt.js.map → FullscreenToggle-CMifmPD3.js.map} +1 -1
  129. package/dist/IconButton-A2B0bqC-.cjs +2 -0
  130. package/dist/{IconButton-BN-bZxEi.cjs.map → IconButton-A2B0bqC-.cjs.map} +1 -1
  131. package/dist/IconButton-Dq17Fekm.js +68 -0
  132. package/dist/{IconButton-BEGWfcVc.js.map → IconButton-Dq17Fekm.js.map} +1 -1
  133. package/dist/List-9lUjapQ5.cjs +2 -0
  134. package/dist/List-9lUjapQ5.cjs.map +1 -0
  135. package/dist/List-CZwNGxuP.js +107 -0
  136. package/dist/List-CZwNGxuP.js.map +1 -0
  137. package/dist/Loader-CwyoKoWY.js +28 -0
  138. package/dist/{Loader-BZIa8hwv.js.map → Loader-CwyoKoWY.js.map} +1 -1
  139. package/dist/Loader-D9nteBXt.cjs +2 -0
  140. package/dist/{Loader-B5YqzEYy.cjs.map → Loader-D9nteBXt.cjs.map} +1 -1
  141. package/dist/MobileFrame-8FSsYA_w.js +91 -0
  142. package/dist/MobileFrame-8FSsYA_w.js.map +1 -0
  143. package/dist/MobileFrame-Dsfgd_4k.cjs +2 -0
  144. package/dist/MobileFrame-Dsfgd_4k.cjs.map +1 -0
  145. package/dist/Modal-CQDcYS-Y.cjs +2 -0
  146. package/dist/Modal-CQDcYS-Y.cjs.map +1 -0
  147. package/dist/Modal-cz6JIsZn.js +196 -0
  148. package/dist/Modal-cz6JIsZn.js.map +1 -0
  149. package/dist/MultiSelect-BIwE6wb7.cjs +2 -0
  150. package/dist/MultiSelect-BIwE6wb7.cjs.map +1 -0
  151. package/dist/MultiSelect-C6l0LpIs.js +219 -0
  152. package/dist/MultiSelect-C6l0LpIs.js.map +1 -0
  153. package/dist/{MultilineTextField-Dz6Fg8RJ.cjs → MultilineTextField-B6EYAdik.cjs} +2 -2
  154. package/dist/{MultilineTextField-Dz6Fg8RJ.cjs.map → MultilineTextField-B6EYAdik.cjs.map} +1 -1
  155. package/dist/{MultilineTextField-CwNCJ9lZ.js → MultilineTextField-BgfBFeeF.js} +2 -2
  156. package/dist/{MultilineTextField-CwNCJ9lZ.js.map → MultilineTextField-BgfBFeeF.js.map} +1 -1
  157. package/dist/{NumberField-2yM0mmyj.js → NumberField-BpUTV_Qn.js} +5 -5
  158. package/dist/{NumberField-2yM0mmyj.js.map → NumberField-BpUTV_Qn.js.map} +1 -1
  159. package/dist/{NumberField-CEt95jcC.cjs → NumberField-IyhO4OpJ.cjs} +2 -2
  160. package/dist/{NumberField-CEt95jcC.cjs.map → NumberField-IyhO4OpJ.cjs.map} +1 -1
  161. package/dist/{OtpField-CkliY82J.js → OtpField-BoLxbGtY.js} +4 -4
  162. package/dist/{OtpField-CkliY82J.js.map → OtpField-BoLxbGtY.js.map} +1 -1
  163. package/dist/{OtpField-on-K0_fM.cjs → OtpField-HMrxkdiy.cjs} +2 -2
  164. package/dist/{OtpField-on-K0_fM.cjs.map → OtpField-HMrxkdiy.cjs.map} +1 -1
  165. package/dist/{PageLayout-DGHu7Vm3.cjs → PageLayout-DtWG-6dn.cjs} +2 -2
  166. package/dist/{PageLayout-DGHu7Vm3.cjs.map → PageLayout-DtWG-6dn.cjs.map} +1 -1
  167. package/dist/{PageLayout-DzPh_G6H.js → PageLayout-G8F1WgC-.js} +2 -2
  168. package/dist/{PageLayout-DzPh_G6H.js.map → PageLayout-G8F1WgC-.js.map} +1 -1
  169. package/dist/{PageNotFound-CCFfPHgA.js → PageNotFound-CeKIMZ55.js} +9 -9
  170. package/dist/PageNotFound-CeKIMZ55.js.map +1 -0
  171. package/dist/PageNotFound-DG8xXPL3.cjs +2 -0
  172. package/dist/PageNotFound-DG8xXPL3.cjs.map +1 -0
  173. package/dist/Pagination-Br8P3KwE.cjs +2 -0
  174. package/dist/{Pagination-BdVebW2L.cjs.map → Pagination-Br8P3KwE.cjs.map} +1 -1
  175. package/dist/Pagination-CE1uKrR4.js +139 -0
  176. package/dist/{Pagination-CmskZjcz.js.map → Pagination-CE1uKrR4.js.map} +1 -1
  177. package/dist/PaletteField-BBPbkDcp.js +54 -0
  178. package/dist/PaletteField-BBPbkDcp.js.map +1 -0
  179. package/dist/PaletteField-DwvSn6V6.cjs +2 -0
  180. package/dist/PaletteField-DwvSn6V6.cjs.map +1 -0
  181. package/dist/PhoneField-B-L0xAtD.js +372 -0
  182. package/dist/PhoneField-B-L0xAtD.js.map +1 -0
  183. package/dist/PhoneField-BclMbl7L.cjs +2 -0
  184. package/dist/PhoneField-BclMbl7L.cjs.map +1 -0
  185. package/dist/Popconfirm-BgpvCBy1.js +113 -0
  186. package/dist/Popconfirm-BgpvCBy1.js.map +1 -0
  187. package/dist/Popconfirm-DD8F8SXn.cjs +2 -0
  188. package/dist/Popconfirm-DD8F8SXn.cjs.map +1 -0
  189. package/dist/{Popover-CgIU4Rhg.js → Popover-B82Id9Ut.js} +2 -2
  190. package/dist/{Popover-CgIU4Rhg.js.map → Popover-B82Id9Ut.js.map} +1 -1
  191. package/dist/{Popover-CBI1icIM.cjs → Popover-DAT6DcM9.cjs} +2 -2
  192. package/dist/{Popover-CBI1icIM.cjs.map → Popover-DAT6DcM9.cjs.map} +1 -1
  193. package/dist/Progress-L5koRRJp.js +119 -0
  194. package/dist/Progress-L5koRRJp.js.map +1 -0
  195. package/dist/Progress-_aZ8XOJr.cjs +2 -0
  196. package/dist/Progress-_aZ8XOJr.cjs.map +1 -0
  197. package/dist/QrCode-BQ1eUiAJ.cjs +2 -0
  198. package/dist/QrCode-BQ1eUiAJ.cjs.map +1 -0
  199. package/dist/QrCode-osD23Vkt.js +80 -0
  200. package/dist/QrCode-osD23Vkt.js.map +1 -0
  201. package/dist/QueryError-BMH8X69O.cjs +2 -0
  202. package/dist/QueryError-BMH8X69O.cjs.map +1 -0
  203. package/dist/QueryError-tBuIQRgv.js +19 -0
  204. package/dist/QueryError-tBuIQRgv.js.map +1 -0
  205. package/dist/RadioGroup-BcFBdFhh.cjs +2 -0
  206. package/dist/{RadioGroup-C8u7eNBS.cjs.map → RadioGroup-BcFBdFhh.cjs.map} +1 -1
  207. package/dist/RadioGroup-dVx_hMCY.js +141 -0
  208. package/dist/{RadioGroup-DbodUJW8.js.map → RadioGroup-dVx_hMCY.js.map} +1 -1
  209. package/dist/RemoveDialog-C9_UzFBf.js +109 -0
  210. package/dist/RemoveDialog-C9_UzFBf.js.map +1 -0
  211. package/dist/RemoveDialog-DBKYnTYU.cjs +2 -0
  212. package/dist/RemoveDialog-DBKYnTYU.cjs.map +1 -0
  213. package/dist/RichTextEditor-DTz7Qcn_.cjs +2 -0
  214. package/dist/RichTextEditor-DTz7Qcn_.cjs.map +1 -0
  215. package/dist/{RichTextEditor-Bm8FFbcR.js → RichTextEditor-fXcbUjTl.js} +13 -13
  216. package/dist/RichTextEditor-fXcbUjTl.js.map +1 -0
  217. package/dist/RootLayout-DG2dXhXn.cjs +2 -0
  218. package/dist/{RootLayout-kssj9exn.cjs.map → RootLayout-DG2dXhXn.cjs.map} +1 -1
  219. package/dist/RootLayout-p8ArA6wA.js +515 -0
  220. package/dist/{RootLayout-Cf7Rr9Iz.js.map → RootLayout-p8ArA6wA.js.map} +1 -1
  221. package/dist/Select-BAR_aVSz.js +199 -0
  222. package/dist/Select-BAR_aVSz.js.map +1 -0
  223. package/dist/Select-BuVfUiw-.cjs +2 -0
  224. package/dist/Select-BuVfUiw-.cjs.map +1 -0
  225. package/dist/{Sidebar-YH-DoNG9.js → Sidebar-CsWcjSTx.js} +193 -183
  226. package/dist/Sidebar-CsWcjSTx.js.map +1 -0
  227. package/dist/Sidebar-NI5HGGYF.cjs +2 -0
  228. package/dist/Sidebar-NI5HGGYF.cjs.map +1 -0
  229. package/dist/Skeleton-DK0lAjS9.cjs +2 -0
  230. package/dist/Skeleton-DK0lAjS9.cjs.map +1 -0
  231. package/dist/Skeleton-_-uGax2j.js +56 -0
  232. package/dist/Skeleton-_-uGax2j.js.map +1 -0
  233. package/dist/Slider-Cu1FhxR2.cjs +2 -0
  234. package/dist/{Slider-dxYVXRev.cjs.map → Slider-Cu1FhxR2.cjs.map} +1 -1
  235. package/dist/Slider-DoQJWgGU.js +184 -0
  236. package/dist/{Slider-oGXd5e9X.js.map → Slider-DoQJWgGU.js.map} +1 -1
  237. package/dist/{SpeedDial-9_Yk8AGx.cjs → SpeedDial-C_rZkHmF.cjs} +2 -2
  238. package/dist/{SpeedDial-9_Yk8AGx.cjs.map → SpeedDial-C_rZkHmF.cjs.map} +1 -1
  239. package/dist/{SpeedDial-DWNuC6f8.js → SpeedDial-DF-ILheU.js} +2 -2
  240. package/dist/{SpeedDial-DWNuC6f8.js.map → SpeedDial-DF-ILheU.js.map} +1 -1
  241. package/dist/{Stepper-CuqFpamY.js → Stepper-B39Ax_w6.js} +70 -70
  242. package/dist/{Stepper-CuqFpamY.js.map → Stepper-B39Ax_w6.js.map} +1 -1
  243. package/dist/Stepper-CT7n113R.cjs +2 -0
  244. package/dist/{Stepper-B1z_u650.cjs.map → Stepper-CT7n113R.cjs.map} +1 -1
  245. package/dist/{SwatchPicker-CCJltwHI.cjs → SwatchPicker-BWXqgsEy.cjs} +2 -2
  246. package/dist/{SwatchPicker-CCJltwHI.cjs.map → SwatchPicker-BWXqgsEy.cjs.map} +1 -1
  247. package/dist/{SwatchPicker-CqyWngFJ.js → SwatchPicker-Bpxk0IOe.js} +3 -3
  248. package/dist/{SwatchPicker-CqyWngFJ.js.map → SwatchPicker-Bpxk0IOe.js.map} +1 -1
  249. package/dist/Switch-DSs2Y0IR.cjs +2 -0
  250. package/dist/{Switch-DRkZ6kHJ.cjs.map → Switch-DSs2Y0IR.cjs.map} +1 -1
  251. package/dist/Switch-Jh2Ch8GO.js +85 -0
  252. package/dist/{Switch-DMPJ0fhB.js.map → Switch-Jh2Ch8GO.js.map} +1 -1
  253. package/dist/Table-CH_oiEP3.js +1170 -0
  254. package/dist/Table-CH_oiEP3.js.map +1 -0
  255. package/dist/Table-DD_uysnY.cjs +2 -0
  256. package/dist/Table-DD_uysnY.cjs.map +1 -0
  257. package/dist/Tabs-By86Cmpw.js +190 -0
  258. package/dist/{Tabs-ytbBzAxG.js.map → Tabs-By86Cmpw.js.map} +1 -1
  259. package/dist/Tabs-C1N9FgAq.cjs +2 -0
  260. package/dist/{Tabs-BiKDy_fv.cjs.map → Tabs-C1N9FgAq.cjs.map} +1 -1
  261. package/dist/{TagsField-CEt_PC5y.js → TagsField-BiOyAadf.js} +5 -5
  262. package/dist/{TagsField-CEt_PC5y.js.map → TagsField-BiOyAadf.js.map} +1 -1
  263. package/dist/{TagsField-DpDbf0ru.cjs → TagsField-RX-x45-j.cjs} +2 -2
  264. package/dist/{TagsField-DpDbf0ru.cjs.map → TagsField-RX-x45-j.cjs.map} +1 -1
  265. package/dist/{TextField-Df_kGy2l.cjs → TextField-CdbanZuk.cjs} +2 -2
  266. package/dist/{TextField-Df_kGy2l.cjs.map → TextField-CdbanZuk.cjs.map} +1 -1
  267. package/dist/{TextField-BWdmF-HE.js → TextField-CkronCRC.js} +5 -5
  268. package/dist/{TextField-BWdmF-HE.js.map → TextField-CkronCRC.js.map} +1 -1
  269. package/dist/TextField.module-6gYcR9TL.js +27 -0
  270. package/dist/TextField.module-6gYcR9TL.js.map +1 -0
  271. package/dist/TextField.module-DsNCo8vN.cjs +2 -0
  272. package/dist/TextField.module-DsNCo8vN.cjs.map +1 -0
  273. package/dist/{ThemeToggle-CgxF6oUu.js → ThemeToggle-BYUEH6be.js} +3 -3
  274. package/dist/{ThemeToggle-CgxF6oUu.js.map → ThemeToggle-BYUEH6be.js.map} +1 -1
  275. package/dist/{ThemeToggle-BJdXhmfc.cjs → ThemeToggle-C4QhDd76.cjs} +2 -2
  276. package/dist/{ThemeToggle-BJdXhmfc.cjs.map → ThemeToggle-C4QhDd76.cjs.map} +1 -1
  277. package/dist/{TimeColumns-DxVN0V8l.cjs → TimeColumns-Cl0_IRf0.cjs} +2 -2
  278. package/dist/{TimeColumns-DxVN0V8l.cjs.map → TimeColumns-Cl0_IRf0.cjs.map} +1 -1
  279. package/dist/{TimeColumns-n-fz50mr.js → TimeColumns-yzjScNU8.js} +3 -3
  280. package/dist/{TimeColumns-n-fz50mr.js.map → TimeColumns-yzjScNU8.js.map} +1 -1
  281. package/dist/{TimePicker-DvoemiGz.cjs → TimePicker-CJGVGETl.cjs} +2 -2
  282. package/dist/{TimePicker-DvoemiGz.cjs.map → TimePicker-CJGVGETl.cjs.map} +1 -1
  283. package/dist/{TimePicker-Bopxx3zU.js → TimePicker-CoIdMv1S.js} +8 -8
  284. package/dist/{TimePicker-Bopxx3zU.js.map → TimePicker-CoIdMv1S.js.map} +1 -1
  285. package/dist/Timeline-CKEosWka.cjs +2 -0
  286. package/dist/{Timeline-ONU_3gi3.cjs.map → Timeline-CKEosWka.cjs.map} +1 -1
  287. package/dist/Timeline-ufVXmpMY.js +71 -0
  288. package/dist/{Timeline-D3kzt1dy.js.map → Timeline-ufVXmpMY.js.map} +1 -1
  289. package/dist/{Toaster-BxIY2H4V.js → Toaster-Dhz2mYq_.js} +2 -2
  290. package/dist/{Toaster-BxIY2H4V.js.map → Toaster-Dhz2mYq_.js.map} +1 -1
  291. package/dist/{Toaster-DZSzFse_.cjs → Toaster-lv5cJhib.cjs} +2 -2
  292. package/dist/{Toaster-DZSzFse_.cjs.map → Toaster-lv5cJhib.cjs.map} +1 -1
  293. package/dist/{TranslatedFields-BtDLkQy7.cjs → TranslatedFields-BCJ86Tqp.cjs} +2 -2
  294. package/dist/{TranslatedFields-BtDLkQy7.cjs.map → TranslatedFields-BCJ86Tqp.cjs.map} +1 -1
  295. package/dist/{TranslatedFields-DmR8LKSG.js → TranslatedFields-BtNUAyrY.js} +5 -5
  296. package/dist/{TranslatedFields-DmR8LKSG.js.map → TranslatedFields-BtNUAyrY.js.map} +1 -1
  297. package/dist/Typography-B6ASPrzT.cjs +2 -0
  298. package/dist/Typography-B6ASPrzT.cjs.map +1 -0
  299. package/dist/Typography-CJv5AnRP.js +70 -0
  300. package/dist/Typography-CJv5AnRP.js.map +1 -0
  301. package/dist/UserCard-B-eNyZuT.js +78 -0
  302. package/dist/UserCard-B-eNyZuT.js.map +1 -0
  303. package/dist/UserCard-CiQUrZjb.cjs +2 -0
  304. package/dist/UserCard-CiQUrZjb.cjs.map +1 -0
  305. package/dist/app/AdminRoot.d.cts +10 -3
  306. package/dist/app/AdminRoot.d.ts +10 -3
  307. package/dist/color-CgR8ybWZ.cjs +2 -0
  308. package/dist/color-CgR8ybWZ.cjs.map +1 -0
  309. package/dist/color-EQJ2DrcQ.js +24 -0
  310. package/dist/color-EQJ2DrcQ.js.map +1 -0
  311. package/dist/components/Alert/index.cjs +1 -1
  312. package/dist/components/Alert/index.js +1 -1
  313. package/dist/components/AuthLayout/index.cjs +1 -1
  314. package/dist/components/AuthLayout/index.js +1 -1
  315. package/dist/components/Avatar/Avatar.d.cts +7 -1
  316. package/dist/components/Avatar/Avatar.d.ts +7 -1
  317. package/dist/components/Avatar/index.cjs +1 -1
  318. package/dist/components/Avatar/index.js +2 -2
  319. package/dist/components/Badge/index.cjs +1 -1
  320. package/dist/components/Badge/index.js +1 -1
  321. package/dist/components/Breadcrumbs/index.cjs +1 -1
  322. package/dist/components/Breadcrumbs/index.js +1 -1
  323. package/dist/components/Button/index.cjs +1 -1
  324. package/dist/components/Button/index.js +1 -1
  325. package/dist/components/Card/Card.d.cts +2 -0
  326. package/dist/components/Card/Card.d.ts +2 -0
  327. package/dist/components/Card/index.cjs +1 -1
  328. package/dist/components/Card/index.js +1 -1
  329. package/dist/components/Checkbox/index.cjs +1 -1
  330. package/dist/components/Checkbox/index.js +1 -1
  331. package/dist/components/Chip/index.cjs +1 -1
  332. package/dist/components/Chip/index.js +1 -1
  333. package/dist/components/ChoiceCard/index.cjs +1 -1
  334. package/dist/components/ChoiceCard/index.js +1 -1
  335. package/dist/components/CodeBlock/index.cjs +1 -1
  336. package/dist/components/CodeBlock/index.js +1 -1
  337. package/dist/components/ColorPicker/ColorPicker.d.cts +5 -0
  338. package/dist/components/ColorPicker/ColorPicker.d.ts +5 -0
  339. package/dist/components/ColorPicker/ColorPickerPanel.d.cts +6 -1
  340. package/dist/components/ColorPicker/ColorPickerPanel.d.ts +6 -1
  341. package/dist/components/ColorPicker/colorUtils.d.cts +3 -12
  342. package/dist/components/ColorPicker/colorUtils.d.ts +3 -12
  343. package/dist/components/ColorPicker/index.cjs +1 -1
  344. package/dist/components/ColorPicker/index.js +1 -1
  345. package/dist/components/ColorRamp/ColorRamp.d.cts +36 -0
  346. package/dist/components/ColorRamp/ColorRamp.d.ts +36 -0
  347. package/dist/components/ColorRamp/index.cjs +2 -0
  348. package/dist/components/ColorRamp/index.cjs.map +1 -0
  349. package/dist/components/ColorRamp/index.d.cts +3 -0
  350. package/dist/components/ColorRamp/index.d.ts +3 -0
  351. package/dist/components/ColorRamp/index.js +6 -0
  352. package/dist/components/ColorRamp/index.js.map +1 -0
  353. package/dist/components/CopyButton/index.cjs +1 -1
  354. package/dist/components/CopyButton/index.js +1 -1
  355. package/dist/components/DashedButton/index.cjs +1 -1
  356. package/dist/components/DashedButton/index.js +1 -1
  357. package/dist/components/DatePicker/index.cjs +1 -1
  358. package/dist/components/DatePicker/index.js +1 -1
  359. package/dist/components/DateTimePicker/index.cjs +1 -1
  360. package/dist/components/DateTimePicker/index.js +1 -1
  361. package/dist/components/DescriptionList/DescriptionList.d.cts +76 -0
  362. package/dist/components/DescriptionList/DescriptionList.d.ts +76 -0
  363. package/dist/components/DescriptionList/index.cjs +2 -0
  364. package/dist/components/DescriptionList/index.cjs.map +1 -0
  365. package/dist/components/DescriptionList/index.d.cts +2 -0
  366. package/dist/components/DescriptionList/index.d.ts +2 -0
  367. package/dist/components/DescriptionList/index.js +6 -0
  368. package/dist/components/DescriptionList/index.js.map +1 -0
  369. package/dist/components/Dropdown/index.cjs +1 -1
  370. package/dist/components/Dropdown/index.js +1 -1
  371. package/dist/components/EmptyState/EmptyState.d.cts +4 -1
  372. package/dist/components/EmptyState/EmptyState.d.ts +4 -1
  373. package/dist/components/EmptyState/index.cjs +1 -1
  374. package/dist/components/EmptyState/index.js +1 -1
  375. package/dist/components/ErrorState/ErrorBoundary.d.cts +35 -0
  376. package/dist/components/ErrorState/ErrorBoundary.d.ts +35 -0
  377. package/dist/components/ErrorState/ErrorState.d.cts +36 -0
  378. package/dist/components/ErrorState/ErrorState.d.ts +36 -0
  379. package/dist/components/ErrorState/QueryError.d.cts +18 -0
  380. package/dist/components/ErrorState/QueryError.d.ts +18 -0
  381. package/dist/components/ErrorState/errorMessage.d.cts +14 -0
  382. package/dist/components/ErrorState/errorMessage.d.ts +14 -0
  383. package/dist/components/ErrorState/index.cjs +2 -0
  384. package/dist/components/ErrorState/index.cjs.map +1 -0
  385. package/dist/components/ErrorState/index.d.cts +7 -0
  386. package/dist/components/ErrorState/index.d.ts +7 -0
  387. package/dist/components/ErrorState/index.js +11 -0
  388. package/dist/components/ErrorState/index.js.map +1 -0
  389. package/dist/components/FileCard/index.cjs +1 -1
  390. package/dist/components/FileCard/index.js +1 -1
  391. package/dist/components/FileUploader/index.cjs +1 -1
  392. package/dist/components/FileUploader/index.js +1 -1
  393. package/dist/components/Flag/index.cjs +1 -1
  394. package/dist/components/Flag/index.js +1 -1
  395. package/dist/components/FloatingPanel/FloatingPanel.d.cts +4 -0
  396. package/dist/components/FloatingPanel/FloatingPanel.d.ts +4 -0
  397. package/dist/components/FullscreenToggle/index.cjs +1 -1
  398. package/dist/components/FullscreenToggle/index.js +1 -1
  399. package/dist/components/IconButton/index.cjs +1 -1
  400. package/dist/components/IconButton/index.js +1 -1
  401. package/dist/components/List/List.d.cts +13 -3
  402. package/dist/components/List/List.d.ts +13 -3
  403. package/dist/components/List/ListItem.d.cts +5 -0
  404. package/dist/components/List/ListItem.d.ts +5 -0
  405. package/dist/components/List/index.cjs +1 -1
  406. package/dist/components/List/index.js +4 -5
  407. package/dist/components/List/index.js.map +1 -1
  408. package/dist/components/List/listContext.d.cts +9 -3
  409. package/dist/components/List/listContext.d.ts +9 -3
  410. package/dist/components/Loader/index.cjs +1 -1
  411. package/dist/components/Loader/index.js +1 -1
  412. package/dist/components/MobileFrame/MobileFrame.d.cts +45 -0
  413. package/dist/components/MobileFrame/MobileFrame.d.ts +45 -0
  414. package/dist/components/MobileFrame/frames.d.cts +27 -0
  415. package/dist/components/MobileFrame/frames.d.ts +27 -0
  416. package/dist/components/MobileFrame/index.cjs +2 -0
  417. package/dist/components/MobileFrame/index.cjs.map +1 -0
  418. package/dist/components/MobileFrame/index.d.cts +4 -0
  419. package/dist/components/MobileFrame/index.d.ts +4 -0
  420. package/dist/components/MobileFrame/index.js +8 -0
  421. package/dist/components/MobileFrame/index.js.map +1 -0
  422. package/dist/components/Modal/Modal.d.cts +2 -0
  423. package/dist/components/Modal/Modal.d.ts +2 -0
  424. package/dist/components/Modal/index.cjs +1 -1
  425. package/dist/components/Modal/index.js +1 -1
  426. package/dist/components/MultiSelect/index.cjs +1 -1
  427. package/dist/components/MultiSelect/index.js +1 -1
  428. package/dist/components/MultilineTextField/index.cjs +1 -1
  429. package/dist/components/MultilineTextField/index.js +1 -1
  430. package/dist/components/NumberField/index.cjs +1 -1
  431. package/dist/components/NumberField/index.js +1 -1
  432. package/dist/components/OptionMenu/OptionMenu.d.cts +40 -0
  433. package/dist/components/OptionMenu/OptionMenu.d.ts +40 -0
  434. package/dist/components/OptionMenu/useOptionMenu.d.cts +81 -0
  435. package/dist/components/OptionMenu/useOptionMenu.d.ts +81 -0
  436. package/dist/components/OtpField/index.cjs +1 -1
  437. package/dist/components/OtpField/index.js +1 -1
  438. package/dist/components/PageLayout/index.cjs +1 -1
  439. package/dist/components/PageLayout/index.js +1 -1
  440. package/dist/components/PageNotFound/PageNotFound.d.cts +1 -1
  441. package/dist/components/PageNotFound/PageNotFound.d.ts +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/PaletteField.d.cts +30 -0
  447. package/dist/components/PaletteField/PaletteField.d.ts +30 -0
  448. package/dist/components/PaletteField/index.cjs +2 -0
  449. package/dist/components/PaletteField/index.cjs.map +1 -0
  450. package/dist/components/PaletteField/index.d.cts +2 -0
  451. package/dist/components/PaletteField/index.d.ts +2 -0
  452. package/dist/components/PaletteField/index.js +6 -0
  453. package/dist/components/PaletteField/index.js.map +1 -0
  454. package/dist/components/PhoneField/PhoneField.d.cts +54 -0
  455. package/dist/components/PhoneField/PhoneField.d.ts +54 -0
  456. package/dist/components/PhoneField/index.cjs +2 -0
  457. package/dist/components/PhoneField/index.cjs.map +1 -0
  458. package/dist/components/PhoneField/index.d.cts +4 -0
  459. package/dist/components/PhoneField/index.d.ts +4 -0
  460. package/dist/components/PhoneField/index.js +7 -0
  461. package/dist/components/PhoneField/index.js.map +1 -0
  462. package/dist/components/PhoneField/phone.d.cts +50 -0
  463. package/dist/components/PhoneField/phone.d.ts +50 -0
  464. package/dist/components/Popconfirm/Popconfirm.d.cts +53 -0
  465. package/dist/components/Popconfirm/Popconfirm.d.ts +53 -0
  466. package/dist/components/Popconfirm/index.cjs +2 -0
  467. package/dist/components/Popconfirm/index.cjs.map +1 -0
  468. package/dist/components/Popconfirm/index.d.cts +2 -0
  469. package/dist/components/Popconfirm/index.d.ts +2 -0
  470. package/dist/components/Popconfirm/index.js +6 -0
  471. package/dist/components/Popconfirm/index.js.map +1 -0
  472. package/dist/components/Popover/index.cjs +1 -1
  473. package/dist/components/Popover/index.js +1 -1
  474. package/dist/components/Progress/Progress.d.cts +50 -0
  475. package/dist/components/Progress/Progress.d.ts +50 -0
  476. package/dist/components/Progress/index.cjs +2 -0
  477. package/dist/components/Progress/index.cjs.map +1 -0
  478. package/dist/components/Progress/index.d.cts +2 -0
  479. package/dist/components/Progress/index.d.ts +2 -0
  480. package/dist/components/Progress/index.js +6 -0
  481. package/dist/components/Progress/index.js.map +1 -0
  482. package/dist/components/QrCode/QrCode.d.cts +3 -0
  483. package/dist/components/QrCode/QrCode.d.ts +3 -0
  484. package/dist/components/QrCode/index.cjs +1 -1
  485. package/dist/components/QrCode/index.js +1 -1
  486. package/dist/components/Radio/index.cjs +1 -1
  487. package/dist/components/Radio/index.js +1 -1
  488. package/dist/components/RemoveDialog/RemoveDialog.d.cts +8 -1
  489. package/dist/components/RemoveDialog/RemoveDialog.d.ts +8 -1
  490. package/dist/components/RemoveDialog/index.cjs +1 -1
  491. package/dist/components/RemoveDialog/index.js +1 -1
  492. package/dist/components/RichTextEditor/index.cjs +1 -1
  493. package/dist/components/RichTextEditor/index.js +1 -1
  494. package/dist/components/RootLayout/index.cjs +1 -1
  495. package/dist/components/RootLayout/index.js +1 -1
  496. package/dist/components/Select/Select.d.cts +2 -12
  497. package/dist/components/Select/Select.d.ts +2 -12
  498. package/dist/components/Select/index.cjs +1 -1
  499. package/dist/components/Select/index.js +1 -1
  500. package/dist/components/Sidebar/index.cjs +1 -1
  501. package/dist/components/Sidebar/index.js +1 -1
  502. package/dist/components/Skeleton/Skeleton.d.cts +31 -0
  503. package/dist/components/Skeleton/Skeleton.d.ts +31 -0
  504. package/dist/components/Skeleton/index.cjs +2 -0
  505. package/dist/components/Skeleton/index.cjs.map +1 -0
  506. package/dist/components/Skeleton/index.d.cts +2 -0
  507. package/dist/components/Skeleton/index.d.ts +2 -0
  508. package/dist/components/Skeleton/index.js +6 -0
  509. package/dist/components/Skeleton/index.js.map +1 -0
  510. package/dist/components/Slider/index.cjs +1 -1
  511. package/dist/components/Slider/index.js +1 -1
  512. package/dist/components/SpeedDial/index.cjs +1 -1
  513. package/dist/components/SpeedDial/index.js +1 -1
  514. package/dist/components/Stepper/index.cjs +1 -1
  515. package/dist/components/Stepper/index.js +1 -1
  516. package/dist/components/SwatchPicker/index.cjs +1 -1
  517. package/dist/components/SwatchPicker/index.js +1 -1
  518. package/dist/components/Switch/index.cjs +1 -1
  519. package/dist/components/Switch/index.js +1 -1
  520. package/dist/components/Table/Table.d.cts +7 -1
  521. package/dist/components/Table/Table.d.ts +7 -1
  522. package/dist/components/Table/index.cjs +1 -1
  523. package/dist/components/Table/index.js +1 -1
  524. package/dist/components/Tabs/index.cjs +1 -1
  525. package/dist/components/Tabs/index.js +1 -1
  526. package/dist/components/TagsField/index.cjs +1 -1
  527. package/dist/components/TagsField/index.js +1 -1
  528. package/dist/components/TextField/index.cjs +1 -1
  529. package/dist/components/TextField/index.js +1 -1
  530. package/dist/components/ThemeToggle/index.cjs +1 -1
  531. package/dist/components/ThemeToggle/index.js +1 -1
  532. package/dist/components/TimePicker/index.cjs +1 -1
  533. package/dist/components/TimePicker/index.js +1 -1
  534. package/dist/components/Timeline/index.cjs +1 -1
  535. package/dist/components/Timeline/index.js +1 -1
  536. package/dist/components/Toast/index.cjs +1 -1
  537. package/dist/components/Toast/index.js +1 -1
  538. package/dist/components/TranslatedFields/index.cjs +1 -1
  539. package/dist/components/TranslatedFields/index.js +1 -1
  540. package/dist/components/Typography/Typography.d.cts +10 -3
  541. package/dist/components/Typography/Typography.d.ts +10 -3
  542. package/dist/components/Typography/index.cjs +1 -1
  543. package/dist/components/Typography/index.js +1 -1
  544. package/dist/components/UserCard/UserCard.d.cts +3 -1
  545. package/dist/components/UserCard/UserCard.d.ts +3 -1
  546. package/dist/components/UserCard/index.cjs +1 -1
  547. package/dist/components/UserCard/index.js +1 -1
  548. package/dist/components/index.d.cts +9 -0
  549. package/dist/components/index.d.ts +9 -0
  550. package/dist/entries/app.cjs +1 -1
  551. package/dist/entries/app.js +1 -1
  552. package/dist/entries/components.cjs +1 -1
  553. package/dist/entries/components.js +171 -146
  554. package/dist/entries/components.js.map +1 -1
  555. package/dist/entries/helpers.cjs +1 -1
  556. package/dist/entries/helpers.d.cts +2 -0
  557. package/dist/entries/helpers.d.ts +2 -0
  558. package/dist/entries/helpers.js +18 -8
  559. package/dist/entries/helpers.js.map +1 -1
  560. package/dist/entries/i18n.cjs +1 -1
  561. package/dist/entries/i18n.js +2 -2
  562. package/dist/entries/theme.cjs +1 -1
  563. package/dist/entries/theme.js +1 -1
  564. package/dist/helpers/color.d.cts +17 -0
  565. package/dist/helpers/color.d.ts +17 -0
  566. package/dist/helpers/palette.d.cts +68 -0
  567. package/dist/helpers/palette.d.ts +68 -0
  568. package/dist/hooks/useOptionalPeer.d.cts +21 -0
  569. package/dist/hooks/useOptionalPeer.d.ts +21 -0
  570. package/dist/i18n/messages.d.cts +24 -0
  571. package/dist/i18n/messages.d.ts +24 -0
  572. package/dist/index.cjs +1 -1
  573. package/dist/index.css +16 -12
  574. package/dist/index.js +224 -189
  575. package/dist/index.js.map +1 -1
  576. package/dist/{messages-ogohLC5P.js → messages-BF2ft7yD.js} +201 -33
  577. package/dist/messages-BF2ft7yD.js.map +1 -0
  578. package/dist/messages-ihnE1jVG.cjs +36 -0
  579. package/dist/messages-ihnE1jVG.cjs.map +1 -0
  580. package/dist/palette-B031dM4E.js +70 -0
  581. package/dist/palette-B031dM4E.js.map +1 -0
  582. package/dist/palette-BycMHbED.cjs +2 -0
  583. package/dist/palette-BycMHbED.cjs.map +1 -0
  584. package/dist/theme/ConfigProvider.d.cts +8 -8
  585. package/dist/theme/ConfigProvider.d.ts +8 -8
  586. package/dist/useOptionMenu-C0xSaZ4t.cjs +2 -0
  587. package/dist/useOptionMenu-C0xSaZ4t.cjs.map +1 -0
  588. package/dist/useOptionMenu-Cq_eHdab.js +286 -0
  589. package/dist/useOptionMenu-Cq_eHdab.js.map +1 -0
  590. package/dist/useOptionalPeer-49f3XcO5.js +28 -0
  591. package/dist/useOptionalPeer-49f3XcO5.js.map +1 -0
  592. package/dist/useOptionalPeer-9Fkx5Leb.cjs +2 -0
  593. package/dist/useOptionalPeer-9Fkx5Leb.cjs.map +1 -0
  594. package/package.json +6 -1
  595. package/dist/AdminRoot-BkPPRkyQ.cjs +0 -2
  596. package/dist/AdminRoot-BkPPRkyQ.cjs.map +0 -1
  597. package/dist/AdminRoot-CgvtgUpW.js +0 -50
  598. package/dist/AdminRoot-CgvtgUpW.js.map +0 -1
  599. package/dist/Avatar-Dgf04PBC.cjs +0 -2
  600. package/dist/Avatar-Dgf04PBC.cjs.map +0 -1
  601. package/dist/Avatar-Q50J8wdN.js +0 -60
  602. package/dist/Avatar-Q50J8wdN.js.map +0 -1
  603. package/dist/Badge-BQpr2Jee.cjs +0 -2
  604. package/dist/Badge-DSWigoGC.js +0 -50
  605. package/dist/Button-CXmDOzPk.cjs +0 -2
  606. package/dist/Button-DBs8xnA5.js +0 -72
  607. package/dist/Card-DGF22HbS.cjs +0 -2
  608. package/dist/Card-DGF22HbS.cjs.map +0 -1
  609. package/dist/Card-DYKnWt-L.js +0 -118
  610. package/dist/Card-DYKnWt-L.js.map +0 -1
  611. package/dist/Checkbox-ZYOSBYRt.js +0 -98
  612. package/dist/Checkbox-fzJCwe0j.cjs +0 -2
  613. package/dist/Chip-gUH_7nQc.cjs +0 -2
  614. package/dist/ChoiceCardGroup-DBohUnRj.js +0 -181
  615. package/dist/ChoiceCardGroup-d0VVTUi5.cjs +0 -2
  616. package/dist/ColorPicker-DtzFwNWk.cjs +0 -2
  617. package/dist/ColorPicker-DtzFwNWk.cjs.map +0 -1
  618. package/dist/ColorPicker-Dw6Qk0iy.js.map +0 -1
  619. package/dist/ColorPickerPanel--wBX-m7J.cjs +0 -2
  620. package/dist/ColorPickerPanel--wBX-m7J.cjs.map +0 -1
  621. package/dist/ColorPickerPanel-Dp7bnnVf.js +0 -336
  622. package/dist/ColorPickerPanel-Dp7bnnVf.js.map +0 -1
  623. package/dist/ConfigProvider-Bszl3Wr3.cjs.map +0 -1
  624. package/dist/ConfigProvider-DR9YMy9U.js.map +0 -1
  625. package/dist/CopyButton-Ct-8AmmX.cjs +0 -2
  626. package/dist/CopyButton-DJ1PSJZU.js +0 -31
  627. package/dist/DashedButton-3C4IZuo4.cjs +0 -2
  628. package/dist/DashedButton-BXZAyMtw.js +0 -59
  629. package/dist/DatePicker.module-BZDftL4g.js +0 -138
  630. package/dist/DatePicker.module-tE-tGNBd.cjs +0 -2
  631. package/dist/EmptyState-BTd7aVgu.js +0 -38
  632. package/dist/EmptyState-BTd7aVgu.js.map +0 -1
  633. package/dist/EmptyState-Bv4XXnD1.cjs +0 -2
  634. package/dist/EmptyState-Bv4XXnD1.cjs.map +0 -1
  635. package/dist/FileCard-DW5Ur8Aj.cjs +0 -2
  636. package/dist/FileCard-DW5Ur8Aj.cjs.map +0 -1
  637. package/dist/FileCard-DY8N9Lzz.js +0 -148
  638. package/dist/FileCard-DY8N9Lzz.js.map +0 -1
  639. package/dist/FileUploader-B7VfhcR7.cjs +0 -2
  640. package/dist/FileUploader-B7VfhcR7.cjs.map +0 -1
  641. package/dist/FileUploader-BYF5FvUc.js +0 -684
  642. package/dist/FileUploader-BYF5FvUc.js.map +0 -1
  643. package/dist/FloatingPanel-BG9Uag__.js +0 -131
  644. package/dist/FloatingPanel-BG9Uag__.js.map +0 -1
  645. package/dist/FloatingPanel-U6sGYiSK.cjs +0 -2
  646. package/dist/FloatingPanel-U6sGYiSK.cjs.map +0 -1
  647. package/dist/IconButton-BEGWfcVc.js +0 -68
  648. package/dist/IconButton-BN-bZxEi.cjs +0 -2
  649. package/dist/List-ChXO0Hz-.cjs +0 -2
  650. package/dist/List-ChXO0Hz-.cjs.map +0 -1
  651. package/dist/List-LqbfF6gU.js +0 -26
  652. package/dist/List-LqbfF6gU.js.map +0 -1
  653. package/dist/ListItem-Cn15lJBr.js +0 -74
  654. package/dist/ListItem-Cn15lJBr.js.map +0 -1
  655. package/dist/ListItem-yXXjtepZ.cjs +0 -2
  656. package/dist/ListItem-yXXjtepZ.cjs.map +0 -1
  657. package/dist/Loader-B5YqzEYy.cjs +0 -2
  658. package/dist/Loader-BZIa8hwv.js +0 -29
  659. package/dist/Modal-0V-REVV-.cjs +0 -2
  660. package/dist/Modal-0V-REVV-.cjs.map +0 -1
  661. package/dist/Modal-B7yoFC3o.js +0 -195
  662. package/dist/Modal-B7yoFC3o.js.map +0 -1
  663. package/dist/MultiSelect-C8xuXaoR.js +0 -350
  664. package/dist/MultiSelect-C8xuXaoR.js.map +0 -1
  665. package/dist/MultiSelect-gj9Ymeh2.cjs +0 -2
  666. package/dist/MultiSelect-gj9Ymeh2.cjs.map +0 -1
  667. package/dist/PageNotFound-B8_eIT8p.cjs +0 -2
  668. package/dist/PageNotFound-B8_eIT8p.cjs.map +0 -1
  669. package/dist/PageNotFound-CCFfPHgA.js.map +0 -1
  670. package/dist/Pagination-BdVebW2L.cjs +0 -2
  671. package/dist/Pagination-CmskZjcz.js +0 -139
  672. package/dist/QrCode-Bcj9_Emc.js +0 -70
  673. package/dist/QrCode-Bcj9_Emc.js.map +0 -1
  674. package/dist/QrCode-DfDfGhG-.cjs +0 -2
  675. package/dist/QrCode-DfDfGhG-.cjs.map +0 -1
  676. package/dist/RadioGroup-C8u7eNBS.cjs +0 -2
  677. package/dist/RadioGroup-DbodUJW8.js +0 -141
  678. package/dist/RemoveDialog-CV75B0aN.js +0 -47
  679. package/dist/RemoveDialog-CV75B0aN.js.map +0 -1
  680. package/dist/RemoveDialog-DmOk0ezc.cjs +0 -2
  681. package/dist/RemoveDialog-DmOk0ezc.cjs.map +0 -1
  682. package/dist/RichTextEditor-Bm8FFbcR.js.map +0 -1
  683. package/dist/RichTextEditor-uXddgtlk.cjs +0 -2
  684. package/dist/RichTextEditor-uXddgtlk.cjs.map +0 -1
  685. package/dist/RootLayout-Cf7Rr9Iz.js +0 -515
  686. package/dist/RootLayout-kssj9exn.cjs +0 -2
  687. package/dist/Select-7vEGJCvA.cjs +0 -2
  688. package/dist/Select-7vEGJCvA.cjs.map +0 -1
  689. package/dist/Select-CdX3Ks7y.js +0 -338
  690. package/dist/Select-CdX3Ks7y.js.map +0 -1
  691. package/dist/Sidebar-DcKIEfhy.cjs +0 -2
  692. package/dist/Sidebar-DcKIEfhy.cjs.map +0 -1
  693. package/dist/Sidebar-YH-DoNG9.js.map +0 -1
  694. package/dist/Slider-dxYVXRev.cjs +0 -2
  695. package/dist/Slider-oGXd5e9X.js +0 -184
  696. package/dist/Stepper-B1z_u650.cjs +0 -2
  697. package/dist/Switch-DMPJ0fhB.js +0 -85
  698. package/dist/Switch-DRkZ6kHJ.cjs +0 -2
  699. package/dist/Table-BPit83Pn.cjs +0 -2
  700. package/dist/Table-BPit83Pn.cjs.map +0 -1
  701. package/dist/Table-Drdhfm99.js +0 -1090
  702. package/dist/Table-Drdhfm99.js.map +0 -1
  703. package/dist/Tabs-BiKDy_fv.cjs +0 -2
  704. package/dist/Tabs-ytbBzAxG.js +0 -190
  705. package/dist/TextField.module-QePvGeJ3.js +0 -27
  706. package/dist/TextField.module-QePvGeJ3.js.map +0 -1
  707. package/dist/TextField.module-m-UllwzG.cjs +0 -2
  708. package/dist/TextField.module-m-UllwzG.cjs.map +0 -1
  709. package/dist/Timeline-D3kzt1dy.js +0 -71
  710. package/dist/Timeline-ONU_3gi3.cjs +0 -2
  711. package/dist/Typography-BFatE1_A.cjs +0 -2
  712. package/dist/Typography-BFatE1_A.cjs.map +0 -1
  713. package/dist/Typography-Cta6Rg4L.js +0 -51
  714. package/dist/Typography-Cta6Rg4L.js.map +0 -1
  715. package/dist/UserCard-C1yFvVIc.cjs +0 -2
  716. package/dist/UserCard-C1yFvVIc.cjs.map +0 -1
  717. package/dist/UserCard-J8Bpbh3x.js +0 -74
  718. package/dist/UserCard-J8Bpbh3x.js.map +0 -1
  719. package/dist/messages-DKT0SRM0.cjs +0 -36
  720. package/dist/messages-DKT0SRM0.cjs.map +0 -1
  721. package/dist/messages-ogohLC5P.js.map +0 -1
@@ -0,0 +1,19 @@
1
+ import { jsx as u } from "react/jsx-runtime";
2
+ import { forwardRef as i } from "react";
3
+ import { a } from "./ErrorBoundary-DJ6R1M9k.js";
4
+ const c = i(function({ error: r, fallback: o, description: t, compact: e = !0, ...f }, n) {
5
+ return r == null || r === !1 ? null : /* @__PURE__ */ u(
6
+ a,
7
+ {
8
+ ref: n,
9
+ error: r,
10
+ description: t ?? o,
11
+ compact: e,
12
+ ...f
13
+ }
14
+ );
15
+ });
16
+ export {
17
+ c as Q
18
+ };
19
+ //# sourceMappingURL=QueryError-tBuIQRgv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryError-tBuIQRgv.js","sources":["../src/components/ErrorState/QueryError.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from 'react'\nimport { ErrorState, type ErrorStateProps } from './ErrorState'\n\nexport interface QueryErrorProps extends ErrorStateProps {\n /** The query's error (`query.error`). `null` / `undefined` → renders nothing. */\n error: unknown\n /**\n * The user-facing sentence (\"Could not load players.\"). Shown instead of the raw message, which then\n * only appears in the (dev) details panel. Same as `description`, which wins when both are set.\n */\n fallback?: ReactNode\n}\n\n/**\n * The react-query-style one-liner: `<QueryError error={users.error} onRetry={users.refetch}\n * fallback=\"Could not load players.\" />`. Renders nothing while `error` is empty, otherwise an\n * `ErrorState` — **compact by default** (it usually sits where the data would, inside a card or table\n * area; pass `compact={false}` for the hero). Everything else passes through to `ErrorState`.\n */\nexport const QueryError = forwardRef<HTMLDivElement, QueryErrorProps>(function QueryError(\n { error, fallback, description, compact = true, ...props },\n ref,\n) {\n if (error == null || error === false) return null\n return (\n <ErrorState\n ref={ref}\n error={error}\n description={description ?? fallback}\n compact={compact}\n {...props}\n />\n )\n})\n"],"names":["QueryError","forwardRef","error","fallback","description","compact","props","ref","jsx","ErrorState"],"mappings":";;;AAmBO,MAAMA,IAAaC,EAA4C,SACpE,EAAE,OAAAC,GAAO,UAAAC,GAAU,aAAAC,GAAa,SAAAC,IAAU,IAAM,GAAGC,EAAA,GACnDC,GACA;AACA,SAAIL,KAAS,QAAQA,MAAU,KAAc,OAE3C,gBAAAM;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,OAAAL;AAAA,MACA,aAAaE,KAAeD;AAAA,MAC5B,SAAAE;AAAA,MACC,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV,CAAC;"}
@@ -0,0 +1,2 @@
1
+ "use strict";const s=require("react/jsx-runtime"),a=require("react"),m=require("clsx"),E=require("./formContext-bTWrqdEV.cjs"),F=require("./Typography-B6ASPrzT.cjs"),S=a.createContext(null);function T(){return a.useContext(S)}const D="_field_oev9b_2",P="_row_oev9b_9",$="_disabled_oev9b_21",A="_input_oev9b_27",H="_circle_oev9b_41",J="_dot_oev9b_63",K="_error_oev9b_77",M="_label_oev9b_81",O="_required_oev9b_86",Q="_sm_oev9b_92",U="_md_oev9b_96",W="_lg_oev9b_100",X="_group_oev9b_116",Y="_groupLabel_oev9b_123",Z="_options_oev9b_128",ee="_horizontal_oev9b_134",o={field:D,row:P,disabled:$,input:A,circle:H,dot:J,error:K,label:M,required:O,sm:Q,md:U,lg:W,group:X,groupLabel:Y,options:Z,horizontal:ee},V=a.forwardRef(function({value:n,label:d,color:h,size:u,error:r,checked:c,onChange:_,name:p,disabled:j,id:N,className:R,style:q,...z},y){const g=a.useId(),C=N??g,e=T(),l=h??(e==null?void 0:e.color)??"accent",b=u??(e==null?void 0:e.size)??"md",i=r??(e==null?void 0:e.error)??!1,v=j??(e==null?void 0:e.disabled)??!1,x=p??(e==null?void 0:e.name),[w,G]=a.useState(!1),I=e?e.value===n:c!==void 0?c:w,f=L=>{if(e){e.onChange(n);return}c===void 0&&G(L.target.checked),_==null||_(L.target.checked)};return s.jsx("div",{className:m.clsx(o.field,i&&o.error,v&&o.disabled,R),style:{"--tz-btn-rgb":`var(--tz-color-${l}-rgb)`,...q},children:s.jsxs("label",{className:m.clsx(o.row,o[b]),children:[s.jsx("input",{ref:y,id:C,name:x,type:"radio",className:o.input,value:n,checked:I,onChange:f,disabled:v,"aria-invalid":i||void 0,...z}),s.jsx("span",{className:o.circle,"aria-hidden":"true",children:s.jsx("span",{className:o.dot})}),d!=null&&s.jsx("span",{className:o.label,children:d})]})})}),oe=a.forwardRef(function({label:n,value:d,defaultValue:h,onChange:u,name:r,options:c,orientation:_="vertical",size:p="md",color:j="accent",error:N,required:R=!1,disabled:q=!1,children:z,className:y,style:g,...C},e){const l=E.useFormContext(),b=!!(l&&r),i=l&&r?l.field(r):void 0,v=d!==void 0?d:b?l.values[r]:void 0,x=v!==void 0,[w,G]=a.useState(h),I=x?v:w,f=N??(i==null?void 0:i.error)??!1,B={name:r,value:I,onChange:t=>{x||G(t),b&&l.setValue(r,t),u==null||u(t)},size:p,color:j,disabled:q,error:f};return s.jsxs("div",{ref:e,role:"radiogroup","aria-invalid":f||void 0,className:m.clsx(o.group,y),style:g,...C,children:[n!=null&&s.jsxs("span",{className:o.groupLabel,children:[s.jsx(F.Typography,{as:"span",variant:"bodySmall",color:"muted",children:n}),R&&s.jsx("span",{className:o.required,"aria-hidden":"true",children:"*"})]}),s.jsx("div",{className:m.clsx(o.options,_==="horizontal"&&o.horizontal),children:s.jsx(S.Provider,{value:B,children:c?c.map(t=>s.jsx(V,{value:t.value,label:t.label,disabled:t.disabled},t.value)):z})})]})});exports.Radio=V;exports.RadioGroup=oe;
2
+ //# sourceMappingURL=RadioGroup-BcFBdFhh.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup-C8u7eNBS.cjs","sources":["../src/components/Radio/radioContext.ts","../src/components/Radio/Radio.tsx","../src/components/Radio/RadioGroup.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { ThemeColor } from '../../theme'\nimport type { RadioSize } from './Radio'\n\n/** Shared state a `<RadioGroup>` hands down to its `<Radio>` children via context. */\nexport interface RadioGroupContextValue {\n /** Shared input `name` (the radios in a group must share one). */\n name?: string\n /** The group's currently-selected value. */\n value?: string\n /** Select a value — called by a child `<Radio>` on change. */\n onChange: (value: string) => void\n size?: RadioSize\n color?: ThemeColor\n disabled?: boolean\n error?: boolean\n}\n\nexport const RadioGroupContext = createContext<RadioGroupContextValue | null>(null)\n\n/** Read the surrounding `<RadioGroup>` so a `<Radio>` can wire itself in (or `null` when standalone). */\nexport function useRadioGroupContext(): RadioGroupContextValue | null {\n return useContext(RadioGroupContext)\n}\n","import {\n forwardRef,\n useId,\n useState,\n type ChangeEvent,\n type CSSProperties,\n type InputHTMLAttributes,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport { useRadioGroupContext } from './radioContext'\nimport styles from './Radio.module.css'\n\nexport type RadioSize = 'sm' | 'md' | 'lg'\n\nexport interface RadioProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'color' | 'type' | 'onChange' | 'value'\n> {\n /** This option's value — selected when it matches the surrounding `RadioGroup`'s value. */\n value: string\n /** Text shown to the right of the control. */\n label?: ReactNode\n /** Theme palette token for the selected fill. Defaults to `accent` (inherits the group's `color`). */\n color?: ThemeColor\n /** Preset size — circle dimensions and label font. Inherits the group's `size` when omitted. */\n size?: RadioSize\n /** Marks the control invalid — reddens the ring. Inherits the group's `error`. */\n error?: boolean\n /** Controlled selected state for standalone use (inside a `RadioGroup` the group drives this). */\n checked?: boolean\n /** Fires with the next selected state (standalone use). */\n onChange?: (checked: boolean) => void\n}\n\n/**\n * A single radio button with a label. The native `<input type=\"radio\">` is visually hidden but fully\n * accessible; a styled circle shows the state, filling with `color` and an inner dot when selected.\n * Designed to live inside a `<RadioGroup>` (which supplies the shared `name`, selection and\n * `size`/`color`/`disabled`/`error` via context), but also works standalone (`checked` + `onChange`).\n * Styling uses `--tz-*` tokens only.\n */\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(function Radio(\n {\n value,\n label,\n color,\n size,\n error,\n checked,\n onChange,\n name,\n disabled,\n id: idProp,\n className,\n style,\n ...props\n },\n ref,\n) {\n const reactId = useId()\n const id = idProp ?? reactId\n const group = useRadioGroupContext()\n\n const resolvedColor = color ?? group?.color ?? 'accent'\n const resolvedSize = size ?? group?.size ?? 'md'\n const resolvedError = error ?? group?.error ?? false\n const resolvedDisabled = disabled ?? group?.disabled ?? false\n const resolvedName = name ?? group?.name\n\n // In a group the selection comes from context; standalone it's controlled (`checked`) or local.\n const [internal, setInternal] = useState(false)\n const isChecked = group ? group.value === value : checked !== undefined ? checked : internal\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (group) {\n group.onChange(value)\n return\n }\n if (checked === undefined) setInternal(event.target.checked)\n onChange?.(event.target.checked)\n }\n\n return (\n <div\n className={clsx(\n styles.field,\n resolvedError && styles.error,\n resolvedDisabled && styles.disabled,\n className,\n )}\n style={{ '--tz-btn-rgb': `var(--tz-color-${resolvedColor}-rgb)`, ...style } as CSSProperties}\n >\n <label className={clsx(styles.row, styles[resolvedSize])}>\n <input\n ref={ref}\n id={id}\n name={resolvedName}\n type=\"radio\"\n className={styles.input}\n value={value}\n checked={isChecked}\n onChange={handleChange}\n disabled={resolvedDisabled}\n aria-invalid={resolvedError || undefined}\n {...props}\n />\n <span className={styles.circle} aria-hidden=\"true\">\n <span className={styles.dot} />\n </span>\n {label != null && <span className={styles.label}>{label}</span>}\n </label>\n </div>\n )\n})\n","import {\n forwardRef,\n useState,\n type CSSProperties,\n type HTMLAttributes,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport { useFormContext } from '../../form/formContext'\nimport type { ThemeColor } from '../../theme'\nimport { Typography } from '../Typography'\nimport { Radio, type RadioSize } from './Radio'\nimport { RadioGroupContext, type RadioGroupContextValue } from './radioContext'\nimport styles from './Radio.module.css'\n\nexport type RadioOrientation = 'vertical' | 'horizontal'\n\n/** A single option for the data-driven `options` prop. */\nexport interface RadioOption {\n value: string\n label?: ReactNode\n disabled?: boolean\n}\n\nexport interface RadioGroupProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'onChange' | 'defaultValue'\n> {\n /** Group label rendered above the options. */\n label?: ReactNode\n /** Controlled selected value. */\n value?: string\n /** Initial value for uncontrolled use. */\n defaultValue?: string\n /** Fires with the newly-selected value. */\n onChange?: (value: string) => void\n /** Shared input `name` for the radios (also the `<Form>` binding key). */\n name?: string\n /** Data-driven options — an alternative to passing `<Radio>` children. */\n options?: RadioOption[]\n /** Stack direction of the options. Defaults to `vertical`. */\n orientation?: RadioOrientation\n /** Preset size for every radio. Defaults to `md`. */\n size?: RadioSize\n /** Theme palette token for the selected fill. Defaults to `accent`. */\n color?: ThemeColor\n /** Marks the group invalid — reddens the radio rings (no message text, like `Checkbox`). */\n error?: boolean\n /** Adds a red asterisk after the label. */\n required?: boolean\n /** Disables every radio in the group. */\n disabled?: boolean\n /** `<Radio>` children (used when `options` is not given). */\n children?: ReactNode\n}\n\n/**\n * Groups radio buttons so exactly one is selected. Supplies the shared `name`, selection and\n * `size`/`color`/`disabled`/`error` to its `<Radio>` children via context — pass them as `children`\n * or, for the common case, via the data-driven `options` prop. Controlled (`value` + `onChange`) or\n * uncontrolled (`defaultValue`), and binds to a surrounding `<Form>` by `name` (its form value is a\n * `string`; validate with e.g. `z.string().min(1)`). `error` reddens the radio rings (no message text,\n * like `Checkbox`). `role=\"radiogroup\"`; styling uses `--tz-*` tokens.\n */\nexport const RadioGroup = forwardRef<HTMLDivElement, RadioGroupProps>(function RadioGroup(\n {\n label,\n value,\n defaultValue,\n onChange,\n name,\n options,\n orientation = 'vertical',\n size = 'md',\n color = 'accent',\n error,\n required = false,\n disabled = false,\n children,\n className,\n style,\n ...props\n },\n ref,\n) {\n // Auto-bind to a surrounding <Form> by `name` — the form value is the selected string.\n const form = useFormContext()\n const isFormBound = Boolean(form && name)\n const bound = form && name ? form.field(name) : undefined\n\n const externalValue: string | undefined =\n value !== undefined\n ? value\n : isFormBound\n ? (form!.values[name!] as string | undefined)\n : undefined\n const isControlled = externalValue !== undefined\n const [internal, setInternal] = useState<string | undefined>(defaultValue)\n const currentValue = isControlled ? externalValue : internal\n\n const resolvedError = error ?? bound?.error ?? false\n\n const handleChange = (next: string) => {\n if (!isControlled) setInternal(next)\n if (isFormBound) form!.setValue(name!, next)\n onChange?.(next)\n }\n\n const ctx: RadioGroupContextValue = {\n name,\n value: currentValue,\n onChange: handleChange,\n size,\n color,\n disabled,\n error: resolvedError,\n }\n\n return (\n <div\n ref={ref}\n role=\"radiogroup\"\n aria-invalid={resolvedError || undefined}\n className={clsx(styles.group, className)}\n style={style as CSSProperties}\n {...props}\n >\n {label != null && (\n <span className={styles.groupLabel}>\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 </span>\n )}\n\n <div className={clsx(styles.options, orientation === 'horizontal' && styles.horizontal)}>\n <RadioGroupContext.Provider value={ctx}>\n {options\n ? options.map((option) => (\n <Radio\n key={option.value}\n value={option.value}\n label={option.label}\n disabled={option.disabled}\n />\n ))\n : children}\n </RadioGroupContext.Provider>\n </div>\n </div>\n )\n})\n"],"names":["RadioGroupContext","createContext","useRadioGroupContext","useContext","Radio","forwardRef","value","label","color","size","error","checked","onChange","name","disabled","idProp","className","style","props","ref","reactId","useId","id","group","resolvedColor","resolvedSize","resolvedError","resolvedDisabled","resolvedName","internal","setInternal","useState","isChecked","handleChange","event","jsx","clsx","styles","jsxs","RadioGroup","defaultValue","options","orientation","required","children","form","useFormContext","isFormBound","bound","externalValue","isControlled","currentValue","ctx","next","Typography","option"],"mappings":"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"}
1
+ {"version":3,"file":"RadioGroup-BcFBdFhh.cjs","sources":["../src/components/Radio/radioContext.ts","../src/components/Radio/Radio.tsx","../src/components/Radio/RadioGroup.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { ThemeColor } from '../../theme'\nimport type { RadioSize } from './Radio'\n\n/** Shared state a `<RadioGroup>` hands down to its `<Radio>` children via context. */\nexport interface RadioGroupContextValue {\n /** Shared input `name` (the radios in a group must share one). */\n name?: string\n /** The group's currently-selected value. */\n value?: string\n /** Select a value — called by a child `<Radio>` on change. */\n onChange: (value: string) => void\n size?: RadioSize\n color?: ThemeColor\n disabled?: boolean\n error?: boolean\n}\n\nexport const RadioGroupContext = createContext<RadioGroupContextValue | null>(null)\n\n/** Read the surrounding `<RadioGroup>` so a `<Radio>` can wire itself in (or `null` when standalone). */\nexport function useRadioGroupContext(): RadioGroupContextValue | null {\n return useContext(RadioGroupContext)\n}\n","import {\n forwardRef,\n useId,\n useState,\n type ChangeEvent,\n type CSSProperties,\n type InputHTMLAttributes,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport { useRadioGroupContext } from './radioContext'\nimport styles from './Radio.module.css'\n\nexport type RadioSize = 'sm' | 'md' | 'lg'\n\nexport interface RadioProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'color' | 'type' | 'onChange' | 'value'\n> {\n /** This option's value — selected when it matches the surrounding `RadioGroup`'s value. */\n value: string\n /** Text shown to the right of the control. */\n label?: ReactNode\n /** Theme palette token for the selected fill. Defaults to `accent` (inherits the group's `color`). */\n color?: ThemeColor\n /** Preset size — circle dimensions and label font. Inherits the group's `size` when omitted. */\n size?: RadioSize\n /** Marks the control invalid — reddens the ring. Inherits the group's `error`. */\n error?: boolean\n /** Controlled selected state for standalone use (inside a `RadioGroup` the group drives this). */\n checked?: boolean\n /** Fires with the next selected state (standalone use). */\n onChange?: (checked: boolean) => void\n}\n\n/**\n * A single radio button with a label. The native `<input type=\"radio\">` is visually hidden but fully\n * accessible; a styled circle shows the state, filling with `color` and an inner dot when selected.\n * Designed to live inside a `<RadioGroup>` (which supplies the shared `name`, selection and\n * `size`/`color`/`disabled`/`error` via context), but also works standalone (`checked` + `onChange`).\n * Styling uses `--tz-*` tokens only.\n */\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(function Radio(\n {\n value,\n label,\n color,\n size,\n error,\n checked,\n onChange,\n name,\n disabled,\n id: idProp,\n className,\n style,\n ...props\n },\n ref,\n) {\n const reactId = useId()\n const id = idProp ?? reactId\n const group = useRadioGroupContext()\n\n const resolvedColor = color ?? group?.color ?? 'accent'\n const resolvedSize = size ?? group?.size ?? 'md'\n const resolvedError = error ?? group?.error ?? false\n const resolvedDisabled = disabled ?? group?.disabled ?? false\n const resolvedName = name ?? group?.name\n\n // In a group the selection comes from context; standalone it's controlled (`checked`) or local.\n const [internal, setInternal] = useState(false)\n const isChecked = group ? group.value === value : checked !== undefined ? checked : internal\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (group) {\n group.onChange(value)\n return\n }\n if (checked === undefined) setInternal(event.target.checked)\n onChange?.(event.target.checked)\n }\n\n return (\n <div\n className={clsx(\n styles.field,\n resolvedError && styles.error,\n resolvedDisabled && styles.disabled,\n className,\n )}\n style={{ '--tz-btn-rgb': `var(--tz-color-${resolvedColor}-rgb)`, ...style } as CSSProperties}\n >\n <label className={clsx(styles.row, styles[resolvedSize])}>\n <input\n ref={ref}\n id={id}\n name={resolvedName}\n type=\"radio\"\n className={styles.input}\n value={value}\n checked={isChecked}\n onChange={handleChange}\n disabled={resolvedDisabled}\n aria-invalid={resolvedError || undefined}\n {...props}\n />\n <span className={styles.circle} aria-hidden=\"true\">\n <span className={styles.dot} />\n </span>\n {label != null && <span className={styles.label}>{label}</span>}\n </label>\n </div>\n )\n})\n","import {\n forwardRef,\n useState,\n type CSSProperties,\n type HTMLAttributes,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport { useFormContext } from '../../form/formContext'\nimport type { ThemeColor } from '../../theme'\nimport { Typography } from '../Typography'\nimport { Radio, type RadioSize } from './Radio'\nimport { RadioGroupContext, type RadioGroupContextValue } from './radioContext'\nimport styles from './Radio.module.css'\n\nexport type RadioOrientation = 'vertical' | 'horizontal'\n\n/** A single option for the data-driven `options` prop. */\nexport interface RadioOption {\n value: string\n label?: ReactNode\n disabled?: boolean\n}\n\nexport interface RadioGroupProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'onChange' | 'defaultValue'\n> {\n /** Group label rendered above the options. */\n label?: ReactNode\n /** Controlled selected value. */\n value?: string\n /** Initial value for uncontrolled use. */\n defaultValue?: string\n /** Fires with the newly-selected value. */\n onChange?: (value: string) => void\n /** Shared input `name` for the radios (also the `<Form>` binding key). */\n name?: string\n /** Data-driven options — an alternative to passing `<Radio>` children. */\n options?: RadioOption[]\n /** Stack direction of the options. Defaults to `vertical`. */\n orientation?: RadioOrientation\n /** Preset size for every radio. Defaults to `md`. */\n size?: RadioSize\n /** Theme palette token for the selected fill. Defaults to `accent`. */\n color?: ThemeColor\n /** Marks the group invalid — reddens the radio rings (no message text, like `Checkbox`). */\n error?: boolean\n /** Adds a red asterisk after the label. */\n required?: boolean\n /** Disables every radio in the group. */\n disabled?: boolean\n /** `<Radio>` children (used when `options` is not given). */\n children?: ReactNode\n}\n\n/**\n * Groups radio buttons so exactly one is selected. Supplies the shared `name`, selection and\n * `size`/`color`/`disabled`/`error` to its `<Radio>` children via context — pass them as `children`\n * or, for the common case, via the data-driven `options` prop. Controlled (`value` + `onChange`) or\n * uncontrolled (`defaultValue`), and binds to a surrounding `<Form>` by `name` (its form value is a\n * `string`; validate with e.g. `z.string().min(1)`). `error` reddens the radio rings (no message text,\n * like `Checkbox`). `role=\"radiogroup\"`; styling uses `--tz-*` tokens.\n */\nexport const RadioGroup = forwardRef<HTMLDivElement, RadioGroupProps>(function RadioGroup(\n {\n label,\n value,\n defaultValue,\n onChange,\n name,\n options,\n orientation = 'vertical',\n size = 'md',\n color = 'accent',\n error,\n required = false,\n disabled = false,\n children,\n className,\n style,\n ...props\n },\n ref,\n) {\n // Auto-bind to a surrounding <Form> by `name` — the form value is the selected string.\n const form = useFormContext()\n const isFormBound = Boolean(form && name)\n const bound = form && name ? form.field(name) : undefined\n\n const externalValue: string | undefined =\n value !== undefined\n ? value\n : isFormBound\n ? (form!.values[name!] as string | undefined)\n : undefined\n const isControlled = externalValue !== undefined\n const [internal, setInternal] = useState<string | undefined>(defaultValue)\n const currentValue = isControlled ? externalValue : internal\n\n const resolvedError = error ?? bound?.error ?? false\n\n const handleChange = (next: string) => {\n if (!isControlled) setInternal(next)\n if (isFormBound) form!.setValue(name!, next)\n onChange?.(next)\n }\n\n const ctx: RadioGroupContextValue = {\n name,\n value: currentValue,\n onChange: handleChange,\n size,\n color,\n disabled,\n error: resolvedError,\n }\n\n return (\n <div\n ref={ref}\n role=\"radiogroup\"\n aria-invalid={resolvedError || undefined}\n className={clsx(styles.group, className)}\n style={style as CSSProperties}\n {...props}\n >\n {label != null && (\n <span className={styles.groupLabel}>\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 </span>\n )}\n\n <div className={clsx(styles.options, orientation === 'horizontal' && styles.horizontal)}>\n <RadioGroupContext.Provider value={ctx}>\n {options\n ? options.map((option) => (\n <Radio\n key={option.value}\n value={option.value}\n label={option.label}\n disabled={option.disabled}\n />\n ))\n : children}\n </RadioGroupContext.Provider>\n </div>\n </div>\n )\n})\n"],"names":["RadioGroupContext","createContext","useRadioGroupContext","useContext","Radio","forwardRef","value","label","color","size","error","checked","onChange","name","disabled","idProp","className","style","props","ref","reactId","useId","id","group","resolvedColor","resolvedSize","resolvedError","resolvedDisabled","resolvedName","internal","setInternal","useState","isChecked","handleChange","event","jsx","clsx","styles","jsxs","RadioGroup","defaultValue","options","orientation","required","children","form","useFormContext","isFormBound","bound","externalValue","isControlled","currentValue","ctx","next","Typography","option"],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ import { jsx as r, jsxs as S } from "react/jsx-runtime";
2
+ import { useContext as F, createContext as T, forwardRef as V, useId as D, useState as j } from "react";
3
+ import { clsx as f } from "clsx";
4
+ import { u as P } from "./formContext-B7ln1Miy.js";
5
+ import { T as $ } from "./Typography-CJv5AnRP.js";
6
+ const k = T(null);
7
+ function A() {
8
+ return F(k);
9
+ }
10
+ const H = "_field_oev9b_2", J = "_row_oev9b_9", K = "_disabled_oev9b_21", M = "_input_oev9b_27", O = "_circle_oev9b_41", Q = "_dot_oev9b_63", U = "_error_oev9b_77", W = "_label_oev9b_81", X = "_required_oev9b_86", Y = "_sm_oev9b_92", Z = "_md_oev9b_96", ee = "_lg_oev9b_100", oe = "_group_oev9b_116", re = "_groupLabel_oev9b_123", se = "_options_oev9b_128", le = "_horizontal_oev9b_134", o = {
11
+ field: H,
12
+ row: J,
13
+ disabled: K,
14
+ input: M,
15
+ circle: O,
16
+ dot: Q,
17
+ error: U,
18
+ label: W,
19
+ required: X,
20
+ sm: Y,
21
+ md: Z,
22
+ lg: ee,
23
+ group: oe,
24
+ groupLabel: re,
25
+ options: se,
26
+ horizontal: le
27
+ }, te = V(function({
28
+ value: a,
29
+ label: d,
30
+ color: p,
31
+ size: c,
32
+ error: s,
33
+ checked: i,
34
+ onChange: _,
35
+ name: h,
36
+ disabled: N,
37
+ id: x,
38
+ className: z,
39
+ style: R,
40
+ ...g
41
+ }, y) {
42
+ const C = D(), w = x ?? C, e = A(), t = p ?? (e == null ? void 0 : e.color) ?? "accent", u = c ?? (e == null ? void 0 : e.size) ?? "md", n = s ?? (e == null ? void 0 : e.error) ?? !1, v = N ?? (e == null ? void 0 : e.disabled) ?? !1, b = h ?? (e == null ? void 0 : e.name), [q, G] = j(!1), I = e ? e.value === a : i !== void 0 ? i : q, m = (L) => {
43
+ if (e) {
44
+ e.onChange(a);
45
+ return;
46
+ }
47
+ i === void 0 && G(L.target.checked), _ == null || _(L.target.checked);
48
+ };
49
+ return /* @__PURE__ */ r(
50
+ "div",
51
+ {
52
+ className: f(
53
+ o.field,
54
+ n && o.error,
55
+ v && o.disabled,
56
+ z
57
+ ),
58
+ style: { "--tz-btn-rgb": `var(--tz-color-${t}-rgb)`, ...R },
59
+ children: /* @__PURE__ */ S("label", { className: f(o.row, o[u]), children: [
60
+ /* @__PURE__ */ r(
61
+ "input",
62
+ {
63
+ ref: y,
64
+ id: w,
65
+ name: b,
66
+ type: "radio",
67
+ className: o.input,
68
+ value: a,
69
+ checked: I,
70
+ onChange: m,
71
+ disabled: v,
72
+ "aria-invalid": n || void 0,
73
+ ...g
74
+ }
75
+ ),
76
+ /* @__PURE__ */ r("span", { className: o.circle, "aria-hidden": "true", children: /* @__PURE__ */ r("span", { className: o.dot }) }),
77
+ d != null && /* @__PURE__ */ r("span", { className: o.label, children: d })
78
+ ] })
79
+ }
80
+ );
81
+ }), _e = V(function({
82
+ label: a,
83
+ value: d,
84
+ defaultValue: p,
85
+ onChange: c,
86
+ name: s,
87
+ options: i,
88
+ orientation: _ = "vertical",
89
+ size: h = "md",
90
+ color: N = "accent",
91
+ error: x,
92
+ required: z = !1,
93
+ disabled: R = !1,
94
+ children: g,
95
+ className: y,
96
+ style: C,
97
+ ...w
98
+ }, e) {
99
+ const t = P(), u = !!(t && s), n = t && s ? t.field(s) : void 0, v = d !== void 0 ? d : u ? t.values[s] : void 0, b = v !== void 0, [q, G] = j(p), I = b ? v : q, m = x ?? (n == null ? void 0 : n.error) ?? !1, E = {
100
+ name: s,
101
+ value: I,
102
+ onChange: (l) => {
103
+ b || G(l), u && t.setValue(s, l), c == null || c(l);
104
+ },
105
+ size: h,
106
+ color: N,
107
+ disabled: R,
108
+ error: m
109
+ };
110
+ return /* @__PURE__ */ S(
111
+ "div",
112
+ {
113
+ ref: e,
114
+ role: "radiogroup",
115
+ "aria-invalid": m || void 0,
116
+ className: f(o.group, y),
117
+ style: C,
118
+ ...w,
119
+ children: [
120
+ a != null && /* @__PURE__ */ S("span", { className: o.groupLabel, children: [
121
+ /* @__PURE__ */ r($, { as: "span", variant: "bodySmall", color: "muted", children: a }),
122
+ z && /* @__PURE__ */ r("span", { className: o.required, "aria-hidden": "true", children: "*" })
123
+ ] }),
124
+ /* @__PURE__ */ r("div", { className: f(o.options, _ === "horizontal" && o.horizontal), children: /* @__PURE__ */ r(k.Provider, { value: E, children: i ? i.map((l) => /* @__PURE__ */ r(
125
+ te,
126
+ {
127
+ value: l.value,
128
+ label: l.label,
129
+ disabled: l.disabled
130
+ },
131
+ l.value
132
+ )) : g }) })
133
+ ]
134
+ }
135
+ );
136
+ });
137
+ export {
138
+ te as R,
139
+ _e as a
140
+ };
141
+ //# sourceMappingURL=RadioGroup-dVx_hMCY.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup-DbodUJW8.js","sources":["../src/components/Radio/radioContext.ts","../src/components/Radio/Radio.tsx","../src/components/Radio/RadioGroup.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { ThemeColor } from '../../theme'\nimport type { RadioSize } from './Radio'\n\n/** Shared state a `<RadioGroup>` hands down to its `<Radio>` children via context. */\nexport interface RadioGroupContextValue {\n /** Shared input `name` (the radios in a group must share one). */\n name?: string\n /** The group's currently-selected value. */\n value?: string\n /** Select a value — called by a child `<Radio>` on change. */\n onChange: (value: string) => void\n size?: RadioSize\n color?: ThemeColor\n disabled?: boolean\n error?: boolean\n}\n\nexport const RadioGroupContext = createContext<RadioGroupContextValue | null>(null)\n\n/** Read the surrounding `<RadioGroup>` so a `<Radio>` can wire itself in (or `null` when standalone). */\nexport function useRadioGroupContext(): RadioGroupContextValue | null {\n return useContext(RadioGroupContext)\n}\n","import {\n forwardRef,\n useId,\n useState,\n type ChangeEvent,\n type CSSProperties,\n type InputHTMLAttributes,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport { useRadioGroupContext } from './radioContext'\nimport styles from './Radio.module.css'\n\nexport type RadioSize = 'sm' | 'md' | 'lg'\n\nexport interface RadioProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'color' | 'type' | 'onChange' | 'value'\n> {\n /** This option's value — selected when it matches the surrounding `RadioGroup`'s value. */\n value: string\n /** Text shown to the right of the control. */\n label?: ReactNode\n /** Theme palette token for the selected fill. Defaults to `accent` (inherits the group's `color`). */\n color?: ThemeColor\n /** Preset size — circle dimensions and label font. Inherits the group's `size` when omitted. */\n size?: RadioSize\n /** Marks the control invalid — reddens the ring. Inherits the group's `error`. */\n error?: boolean\n /** Controlled selected state for standalone use (inside a `RadioGroup` the group drives this). */\n checked?: boolean\n /** Fires with the next selected state (standalone use). */\n onChange?: (checked: boolean) => void\n}\n\n/**\n * A single radio button with a label. The native `<input type=\"radio\">` is visually hidden but fully\n * accessible; a styled circle shows the state, filling with `color` and an inner dot when selected.\n * Designed to live inside a `<RadioGroup>` (which supplies the shared `name`, selection and\n * `size`/`color`/`disabled`/`error` via context), but also works standalone (`checked` + `onChange`).\n * Styling uses `--tz-*` tokens only.\n */\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(function Radio(\n {\n value,\n label,\n color,\n size,\n error,\n checked,\n onChange,\n name,\n disabled,\n id: idProp,\n className,\n style,\n ...props\n },\n ref,\n) {\n const reactId = useId()\n const id = idProp ?? reactId\n const group = useRadioGroupContext()\n\n const resolvedColor = color ?? group?.color ?? 'accent'\n const resolvedSize = size ?? group?.size ?? 'md'\n const resolvedError = error ?? group?.error ?? false\n const resolvedDisabled = disabled ?? group?.disabled ?? false\n const resolvedName = name ?? group?.name\n\n // In a group the selection comes from context; standalone it's controlled (`checked`) or local.\n const [internal, setInternal] = useState(false)\n const isChecked = group ? group.value === value : checked !== undefined ? checked : internal\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (group) {\n group.onChange(value)\n return\n }\n if (checked === undefined) setInternal(event.target.checked)\n onChange?.(event.target.checked)\n }\n\n return (\n <div\n className={clsx(\n styles.field,\n resolvedError && styles.error,\n resolvedDisabled && styles.disabled,\n className,\n )}\n style={{ '--tz-btn-rgb': `var(--tz-color-${resolvedColor}-rgb)`, ...style } as CSSProperties}\n >\n <label className={clsx(styles.row, styles[resolvedSize])}>\n <input\n ref={ref}\n id={id}\n name={resolvedName}\n type=\"radio\"\n className={styles.input}\n value={value}\n checked={isChecked}\n onChange={handleChange}\n disabled={resolvedDisabled}\n aria-invalid={resolvedError || undefined}\n {...props}\n />\n <span className={styles.circle} aria-hidden=\"true\">\n <span className={styles.dot} />\n </span>\n {label != null && <span className={styles.label}>{label}</span>}\n </label>\n </div>\n )\n})\n","import {\n forwardRef,\n useState,\n type CSSProperties,\n type HTMLAttributes,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport { useFormContext } from '../../form/formContext'\nimport type { ThemeColor } from '../../theme'\nimport { Typography } from '../Typography'\nimport { Radio, type RadioSize } from './Radio'\nimport { RadioGroupContext, type RadioGroupContextValue } from './radioContext'\nimport styles from './Radio.module.css'\n\nexport type RadioOrientation = 'vertical' | 'horizontal'\n\n/** A single option for the data-driven `options` prop. */\nexport interface RadioOption {\n value: string\n label?: ReactNode\n disabled?: boolean\n}\n\nexport interface RadioGroupProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'onChange' | 'defaultValue'\n> {\n /** Group label rendered above the options. */\n label?: ReactNode\n /** Controlled selected value. */\n value?: string\n /** Initial value for uncontrolled use. */\n defaultValue?: string\n /** Fires with the newly-selected value. */\n onChange?: (value: string) => void\n /** Shared input `name` for the radios (also the `<Form>` binding key). */\n name?: string\n /** Data-driven options — an alternative to passing `<Radio>` children. */\n options?: RadioOption[]\n /** Stack direction of the options. Defaults to `vertical`. */\n orientation?: RadioOrientation\n /** Preset size for every radio. Defaults to `md`. */\n size?: RadioSize\n /** Theme palette token for the selected fill. Defaults to `accent`. */\n color?: ThemeColor\n /** Marks the group invalid — reddens the radio rings (no message text, like `Checkbox`). */\n error?: boolean\n /** Adds a red asterisk after the label. */\n required?: boolean\n /** Disables every radio in the group. */\n disabled?: boolean\n /** `<Radio>` children (used when `options` is not given). */\n children?: ReactNode\n}\n\n/**\n * Groups radio buttons so exactly one is selected. Supplies the shared `name`, selection and\n * `size`/`color`/`disabled`/`error` to its `<Radio>` children via context — pass them as `children`\n * or, for the common case, via the data-driven `options` prop. Controlled (`value` + `onChange`) or\n * uncontrolled (`defaultValue`), and binds to a surrounding `<Form>` by `name` (its form value is a\n * `string`; validate with e.g. `z.string().min(1)`). `error` reddens the radio rings (no message text,\n * like `Checkbox`). `role=\"radiogroup\"`; styling uses `--tz-*` tokens.\n */\nexport const RadioGroup = forwardRef<HTMLDivElement, RadioGroupProps>(function RadioGroup(\n {\n label,\n value,\n defaultValue,\n onChange,\n name,\n options,\n orientation = 'vertical',\n size = 'md',\n color = 'accent',\n error,\n required = false,\n disabled = false,\n children,\n className,\n style,\n ...props\n },\n ref,\n) {\n // Auto-bind to a surrounding <Form> by `name` — the form value is the selected string.\n const form = useFormContext()\n const isFormBound = Boolean(form && name)\n const bound = form && name ? form.field(name) : undefined\n\n const externalValue: string | undefined =\n value !== undefined\n ? value\n : isFormBound\n ? (form!.values[name!] as string | undefined)\n : undefined\n const isControlled = externalValue !== undefined\n const [internal, setInternal] = useState<string | undefined>(defaultValue)\n const currentValue = isControlled ? externalValue : internal\n\n const resolvedError = error ?? bound?.error ?? false\n\n const handleChange = (next: string) => {\n if (!isControlled) setInternal(next)\n if (isFormBound) form!.setValue(name!, next)\n onChange?.(next)\n }\n\n const ctx: RadioGroupContextValue = {\n name,\n value: currentValue,\n onChange: handleChange,\n size,\n color,\n disabled,\n error: resolvedError,\n }\n\n return (\n <div\n ref={ref}\n role=\"radiogroup\"\n aria-invalid={resolvedError || undefined}\n className={clsx(styles.group, className)}\n style={style as CSSProperties}\n {...props}\n >\n {label != null && (\n <span className={styles.groupLabel}>\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 </span>\n )}\n\n <div className={clsx(styles.options, orientation === 'horizontal' && styles.horizontal)}>\n <RadioGroupContext.Provider value={ctx}>\n {options\n ? options.map((option) => (\n <Radio\n key={option.value}\n value={option.value}\n label={option.label}\n disabled={option.disabled}\n />\n ))\n : children}\n </RadioGroupContext.Provider>\n </div>\n </div>\n )\n})\n"],"names":["RadioGroupContext","createContext","useRadioGroupContext","useContext","Radio","forwardRef","value","label","color","size","error","checked","onChange","name","disabled","idProp","className","style","props","ref","reactId","useId","id","group","resolvedColor","resolvedSize","resolvedError","resolvedDisabled","resolvedName","internal","setInternal","useState","isChecked","handleChange","event","jsx","clsx","styles","jsxs","RadioGroup","defaultValue","options","orientation","required","children","form","useFormContext","isFormBound","bound","externalValue","isControlled","currentValue","ctx","next","Typography","option"],"mappings":"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"}
1
+ {"version":3,"file":"RadioGroup-dVx_hMCY.js","sources":["../src/components/Radio/radioContext.ts","../src/components/Radio/Radio.tsx","../src/components/Radio/RadioGroup.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { ThemeColor } from '../../theme'\nimport type { RadioSize } from './Radio'\n\n/** Shared state a `<RadioGroup>` hands down to its `<Radio>` children via context. */\nexport interface RadioGroupContextValue {\n /** Shared input `name` (the radios in a group must share one). */\n name?: string\n /** The group's currently-selected value. */\n value?: string\n /** Select a value — called by a child `<Radio>` on change. */\n onChange: (value: string) => void\n size?: RadioSize\n color?: ThemeColor\n disabled?: boolean\n error?: boolean\n}\n\nexport const RadioGroupContext = createContext<RadioGroupContextValue | null>(null)\n\n/** Read the surrounding `<RadioGroup>` so a `<Radio>` can wire itself in (or `null` when standalone). */\nexport function useRadioGroupContext(): RadioGroupContextValue | null {\n return useContext(RadioGroupContext)\n}\n","import {\n forwardRef,\n useId,\n useState,\n type ChangeEvent,\n type CSSProperties,\n type InputHTMLAttributes,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport type { ThemeColor } from '../../theme'\nimport { useRadioGroupContext } from './radioContext'\nimport styles from './Radio.module.css'\n\nexport type RadioSize = 'sm' | 'md' | 'lg'\n\nexport interface RadioProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'color' | 'type' | 'onChange' | 'value'\n> {\n /** This option's value — selected when it matches the surrounding `RadioGroup`'s value. */\n value: string\n /** Text shown to the right of the control. */\n label?: ReactNode\n /** Theme palette token for the selected fill. Defaults to `accent` (inherits the group's `color`). */\n color?: ThemeColor\n /** Preset size — circle dimensions and label font. Inherits the group's `size` when omitted. */\n size?: RadioSize\n /** Marks the control invalid — reddens the ring. Inherits the group's `error`. */\n error?: boolean\n /** Controlled selected state for standalone use (inside a `RadioGroup` the group drives this). */\n checked?: boolean\n /** Fires with the next selected state (standalone use). */\n onChange?: (checked: boolean) => void\n}\n\n/**\n * A single radio button with a label. The native `<input type=\"radio\">` is visually hidden but fully\n * accessible; a styled circle shows the state, filling with `color` and an inner dot when selected.\n * Designed to live inside a `<RadioGroup>` (which supplies the shared `name`, selection and\n * `size`/`color`/`disabled`/`error` via context), but also works standalone (`checked` + `onChange`).\n * Styling uses `--tz-*` tokens only.\n */\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(function Radio(\n {\n value,\n label,\n color,\n size,\n error,\n checked,\n onChange,\n name,\n disabled,\n id: idProp,\n className,\n style,\n ...props\n },\n ref,\n) {\n const reactId = useId()\n const id = idProp ?? reactId\n const group = useRadioGroupContext()\n\n const resolvedColor = color ?? group?.color ?? 'accent'\n const resolvedSize = size ?? group?.size ?? 'md'\n const resolvedError = error ?? group?.error ?? false\n const resolvedDisabled = disabled ?? group?.disabled ?? false\n const resolvedName = name ?? group?.name\n\n // In a group the selection comes from context; standalone it's controlled (`checked`) or local.\n const [internal, setInternal] = useState(false)\n const isChecked = group ? group.value === value : checked !== undefined ? checked : internal\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (group) {\n group.onChange(value)\n return\n }\n if (checked === undefined) setInternal(event.target.checked)\n onChange?.(event.target.checked)\n }\n\n return (\n <div\n className={clsx(\n styles.field,\n resolvedError && styles.error,\n resolvedDisabled && styles.disabled,\n className,\n )}\n style={{ '--tz-btn-rgb': `var(--tz-color-${resolvedColor}-rgb)`, ...style } as CSSProperties}\n >\n <label className={clsx(styles.row, styles[resolvedSize])}>\n <input\n ref={ref}\n id={id}\n name={resolvedName}\n type=\"radio\"\n className={styles.input}\n value={value}\n checked={isChecked}\n onChange={handleChange}\n disabled={resolvedDisabled}\n aria-invalid={resolvedError || undefined}\n {...props}\n />\n <span className={styles.circle} aria-hidden=\"true\">\n <span className={styles.dot} />\n </span>\n {label != null && <span className={styles.label}>{label}</span>}\n </label>\n </div>\n )\n})\n","import {\n forwardRef,\n useState,\n type CSSProperties,\n type HTMLAttributes,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport { useFormContext } from '../../form/formContext'\nimport type { ThemeColor } from '../../theme'\nimport { Typography } from '../Typography'\nimport { Radio, type RadioSize } from './Radio'\nimport { RadioGroupContext, type RadioGroupContextValue } from './radioContext'\nimport styles from './Radio.module.css'\n\nexport type RadioOrientation = 'vertical' | 'horizontal'\n\n/** A single option for the data-driven `options` prop. */\nexport interface RadioOption {\n value: string\n label?: ReactNode\n disabled?: boolean\n}\n\nexport interface RadioGroupProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'onChange' | 'defaultValue'\n> {\n /** Group label rendered above the options. */\n label?: ReactNode\n /** Controlled selected value. */\n value?: string\n /** Initial value for uncontrolled use. */\n defaultValue?: string\n /** Fires with the newly-selected value. */\n onChange?: (value: string) => void\n /** Shared input `name` for the radios (also the `<Form>` binding key). */\n name?: string\n /** Data-driven options — an alternative to passing `<Radio>` children. */\n options?: RadioOption[]\n /** Stack direction of the options. Defaults to `vertical`. */\n orientation?: RadioOrientation\n /** Preset size for every radio. Defaults to `md`. */\n size?: RadioSize\n /** Theme palette token for the selected fill. Defaults to `accent`. */\n color?: ThemeColor\n /** Marks the group invalid — reddens the radio rings (no message text, like `Checkbox`). */\n error?: boolean\n /** Adds a red asterisk after the label. */\n required?: boolean\n /** Disables every radio in the group. */\n disabled?: boolean\n /** `<Radio>` children (used when `options` is not given). */\n children?: ReactNode\n}\n\n/**\n * Groups radio buttons so exactly one is selected. Supplies the shared `name`, selection and\n * `size`/`color`/`disabled`/`error` to its `<Radio>` children via context — pass them as `children`\n * or, for the common case, via the data-driven `options` prop. Controlled (`value` + `onChange`) or\n * uncontrolled (`defaultValue`), and binds to a surrounding `<Form>` by `name` (its form value is a\n * `string`; validate with e.g. `z.string().min(1)`). `error` reddens the radio rings (no message text,\n * like `Checkbox`). `role=\"radiogroup\"`; styling uses `--tz-*` tokens.\n */\nexport const RadioGroup = forwardRef<HTMLDivElement, RadioGroupProps>(function RadioGroup(\n {\n label,\n value,\n defaultValue,\n onChange,\n name,\n options,\n orientation = 'vertical',\n size = 'md',\n color = 'accent',\n error,\n required = false,\n disabled = false,\n children,\n className,\n style,\n ...props\n },\n ref,\n) {\n // Auto-bind to a surrounding <Form> by `name` — the form value is the selected string.\n const form = useFormContext()\n const isFormBound = Boolean(form && name)\n const bound = form && name ? form.field(name) : undefined\n\n const externalValue: string | undefined =\n value !== undefined\n ? value\n : isFormBound\n ? (form!.values[name!] as string | undefined)\n : undefined\n const isControlled = externalValue !== undefined\n const [internal, setInternal] = useState<string | undefined>(defaultValue)\n const currentValue = isControlled ? externalValue : internal\n\n const resolvedError = error ?? bound?.error ?? false\n\n const handleChange = (next: string) => {\n if (!isControlled) setInternal(next)\n if (isFormBound) form!.setValue(name!, next)\n onChange?.(next)\n }\n\n const ctx: RadioGroupContextValue = {\n name,\n value: currentValue,\n onChange: handleChange,\n size,\n color,\n disabled,\n error: resolvedError,\n }\n\n return (\n <div\n ref={ref}\n role=\"radiogroup\"\n aria-invalid={resolvedError || undefined}\n className={clsx(styles.group, className)}\n style={style as CSSProperties}\n {...props}\n >\n {label != null && (\n <span className={styles.groupLabel}>\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 </span>\n )}\n\n <div className={clsx(styles.options, orientation === 'horizontal' && styles.horizontal)}>\n <RadioGroupContext.Provider value={ctx}>\n {options\n ? options.map((option) => (\n <Radio\n key={option.value}\n value={option.value}\n label={option.label}\n disabled={option.disabled}\n />\n ))\n : children}\n </RadioGroupContext.Provider>\n </div>\n </div>\n )\n})\n"],"names":["RadioGroupContext","createContext","useRadioGroupContext","useContext","Radio","forwardRef","value","label","color","size","error","checked","onChange","name","disabled","idProp","className","style","props","ref","reactId","useId","id","group","resolvedColor","resolvedSize","resolvedError","resolvedDisabled","resolvedName","internal","setInternal","useState","isChecked","handleChange","event","jsx","clsx","styles","jsxs","RadioGroup","defaultValue","options","orientation","required","children","form","useFormContext","isFormBound","bound","externalValue","isControlled","currentValue","ctx","next","Typography","option"],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ import { jsx as o, jsxs as l, Fragment as T } from "react/jsx-runtime";
2
+ import { forwardRef as I, useState as _, useRef as R, useId as E } from "react";
3
+ import { B as O } from "./Blockquote-Ma-2naET.js";
4
+ import { B as v } from "./Button-BLW9yV8W.js";
5
+ import { C as S } from "./Code-DaEpXHfF.js";
6
+ import { I as B } from "./Icon-DaTvzLBu.js";
7
+ import { M as j } from "./Modal-cz6JIsZn.js";
8
+ import { T as F } from "./TextField-CkronCRC.js";
9
+ import { T as L } from "./Typography-CJv5AnRP.js";
10
+ import { a as k } from "./ConfigProvider-B_RSn9bb.js";
11
+ const M = "_modalBody_1nqut_5", K = "_body_1nqut_4", P = "_iconBox_1nqut_20", A = "_confirm_1nqut_37", G = "_phrase_1nqut_45", a = {
12
+ modalBody: M,
13
+ body: K,
14
+ iconBox: P,
15
+ confirm: A,
16
+ phrase: G
17
+ }, eo = I(function({
18
+ open: t,
19
+ onClose: r,
20
+ onConfirm: c,
21
+ title: m,
22
+ message: x,
23
+ confirmLabel: z,
24
+ cancelLabel: D,
25
+ loading: N = !1,
26
+ confirmText: s
27
+ }, q) {
28
+ const n = k(), [w, p] = _(!1), e = N || w, [d, h] = _(""), y = R(t);
29
+ y.current !== t && (y.current = t, t && h(""));
30
+ const f = s == null || d.trim() === s.trim(), C = E(), b = () => {
31
+ e || r();
32
+ }, g = async () => {
33
+ if (!(!f || e))
34
+ try {
35
+ p(!0), await c(), r();
36
+ } catch {
37
+ } finally {
38
+ p(!1);
39
+ }
40
+ };
41
+ return /* @__PURE__ */ o(
42
+ j,
43
+ {
44
+ ref: q,
45
+ open: t,
46
+ onClose: b,
47
+ size: "sm",
48
+ bodyClassName: a.modalBody,
49
+ title: m ?? n("removeDialog.title"),
50
+ showCloseButton: !e,
51
+ closeOnBackdrop: !e,
52
+ closeOnEscape: !e,
53
+ footer: /* @__PURE__ */ l(T, { children: [
54
+ /* @__PURE__ */ o(v, { variant: "text", size: "sm", onClick: b, disabled: e, children: D ?? n("common.cancel") }),
55
+ /* @__PURE__ */ o(
56
+ v,
57
+ {
58
+ color: "error",
59
+ variant: "filled",
60
+ size: "sm",
61
+ onClick: g,
62
+ loading: e,
63
+ disabled: !f,
64
+ children: z ?? n("common.delete")
65
+ }
66
+ )
67
+ ] }),
68
+ children: /* @__PURE__ */ l("div", { className: a.body, children: [
69
+ /* @__PURE__ */ o("div", { className: a.iconBox, "aria-hidden": !0, children: /* @__PURE__ */ o(B, { name: "Trash" }) }),
70
+ /* @__PURE__ */ o(L, { align: "center", children: x ?? n("removeDialog.message") }),
71
+ s != null && /* @__PURE__ */ l("div", { className: a.confirm, children: [
72
+ /* @__PURE__ */ o(O, { id: C, size: "sm", color: "error", children: /* @__PURE__ */ o(H, { text: s }) }),
73
+ /* @__PURE__ */ o(
74
+ F,
75
+ {
76
+ "aria-labelledby": C,
77
+ placeholder: s,
78
+ value: d,
79
+ onChange: (i) => h(i.target.value),
80
+ onKeyDown: (i) => {
81
+ i.key === "Enter" && (i.preventDefault(), g());
82
+ },
83
+ adornment: d && f ? /* @__PURE__ */ o(B, { name: "TickCircle", color: "success" }) : void 0,
84
+ adornmentPosition: "right",
85
+ disabled: e,
86
+ size: "sm",
87
+ autoComplete: "off",
88
+ autoCapitalize: "off",
89
+ autoCorrect: "off",
90
+ spellCheck: !1
91
+ }
92
+ )
93
+ ] })
94
+ ] })
95
+ }
96
+ );
97
+ });
98
+ function H({ text: u }) {
99
+ const t = k(), r = "\0", [c, m = ""] = t("removeDialog.typeToConfirm", { text: r }).split(r);
100
+ return /* @__PURE__ */ l(T, { children: [
101
+ c,
102
+ /* @__PURE__ */ o(S, { size: "sm", color: "error", className: a.phrase, children: u }),
103
+ m
104
+ ] });
105
+ }
106
+ export {
107
+ eo as R
108
+ };
109
+ //# sourceMappingURL=RemoveDialog-C9_UzFBf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoveDialog-C9_UzFBf.js","sources":["../src/components/RemoveDialog/RemoveDialog.tsx"],"sourcesContent":["import { forwardRef, useId, useRef, useState, type KeyboardEvent, type ReactNode } from 'react'\nimport { useT } from '../../theme'\nimport { Blockquote } from '../Blockquote'\nimport { Button } from '../Button'\nimport { Code } from '../Code'\nimport { Icon } from '../Icon'\nimport { Modal } from '../Modal'\nimport { TextField } from '../TextField'\nimport { Typography } from '../Typography'\nimport styles from './RemoveDialog.module.css'\n\nexport interface RemoveDialogProps {\n /** Whether the dialog is open. */\n open: boolean\n /** Called on Cancel, the × button, backdrop, or Escape (ignored while a confirm is in flight). */\n onClose: () => void\n /**\n * The destructive action. May be async — while its promise is pending the Delete button shows a\n * loader and the dialog locks (no dismiss); on success the dialog **auto-closes**, on rejection it\n * stays open so the user can retry (surface the error yourself, e.g. a toast).\n */\n onConfirm: () => void | Promise<void>\n /** Header title. Defaults to `\"Remove\"`. */\n title?: ReactNode\n /** Body prompt shown under the icon. Defaults to `\"Are you sure you want to delete?\"`. */\n message?: ReactNode\n /** Confirm (destructive) button label. Defaults to `\"Delete\"`. */\n confirmLabel?: string\n /** Cancel button label. Defaults to `\"Cancel\"`. */\n cancelLabel?: string\n /** External loading override — combined with the internal async-confirm state. */\n loading?: boolean\n /**\n * **Type-to-confirm** for high-risk deletes: the user must type this exact text (e.g. `\"remove user\"`)\n * into a field before Delete enables. Case-sensitive; surrounding whitespace is ignored. The field is\n * focused on open, cleared on every open, and Enter confirms once it matches.\n */\n confirmText?: string\n}\n\n/**\n * A ready-made delete confirmation — a thin convenience wrapper over `Modal` for the ubiquitous\n * \"Are you sure you want to delete?\" prompt. Hardcodes the destructive flavor (a `Trash` glyph in a\n * soft error circle + an `error` Delete button); just wire `open` / `onClose` / `onConfirm`. An async\n * `onConfirm` drives the button loader and locks dismissal, then auto-closes on success. `confirmText`\n * adds **type-to-confirm**: Delete stays disabled until the user types that exact text. Built on\n * `Modal`, so it inherits the portal, scroll-lock, focus-trap, and backdrop/Escape dismissal.\n *\n * @example\n * const { isOpen, open, close } = useDisclosure()\n * <RemoveDialog open={isOpen} onClose={close} onConfirm={() => deleteItem(id)} />\n */\nexport const RemoveDialog = forwardRef<HTMLDivElement, RemoveDialogProps>(function RemoveDialog(\n {\n open,\n onClose,\n onConfirm,\n title,\n message,\n confirmLabel,\n cancelLabel,\n loading = false,\n confirmText,\n },\n ref,\n) {\n const t = useT()\n const [submitting, setSubmitting] = useState(false)\n const busy = loading || submitting\n\n // type-to-confirm — cleared every time the dialog opens (\"adjust state on prop change\", no effect)\n const [typed, setTyped] = useState('')\n const wasOpen = useRef(open)\n if (wasOpen.current !== open) {\n wasOpen.current = open\n if (open) setTyped('')\n }\n const matches = confirmText == null || typed.trim() === confirmText.trim()\n const promptId = useId()\n\n // dismissal is blocked while the confirm is running (so the delete can't be abandoned mid-flight)\n const handleClose = () => {\n if (!busy) onClose()\n }\n\n const handleConfirm = async () => {\n if (!matches || busy) return\n try {\n setSubmitting(true)\n await onConfirm()\n onClose() // auto-close on success\n } catch {\n // keep the dialog open on failure so the user can retry; the consumer surfaces the error\n } finally {\n setSubmitting(false)\n }\n }\n\n return (\n <Modal\n ref={ref}\n open={open}\n onClose={handleClose}\n size=\"sm\"\n bodyClassName={styles.modalBody}\n title={title ?? t('removeDialog.title')}\n showCloseButton={!busy}\n closeOnBackdrop={!busy}\n closeOnEscape={!busy}\n footer={\n <>\n <Button variant=\"text\" size=\"sm\" onClick={handleClose} disabled={busy}>\n {cancelLabel ?? t('common.cancel')}\n </Button>\n <Button\n color=\"error\"\n variant=\"filled\"\n size=\"sm\"\n onClick={handleConfirm}\n loading={busy}\n disabled={!matches}\n >\n {confirmLabel ?? t('common.delete')}\n </Button>\n </>\n }\n >\n <div className={styles.body}>\n <div className={styles.iconBox} aria-hidden>\n <Icon name=\"Trash\" />\n </div>\n <Typography align=\"center\">{message ?? t('removeDialog.message')}</Typography>\n {confirmText != null && (\n <div className={styles.confirm}>\n {/* the instruction, as an error-tinted quote — it also names the field (aria-labelledby) */}\n <Blockquote id={promptId} size=\"sm\" color=\"error\">\n <TypeToConfirmLabel text={confirmText} />\n </Blockquote>\n <TextField\n aria-labelledby={promptId}\n placeholder={confirmText}\n value={typed}\n onChange={(event) => setTyped(event.target.value)}\n onKeyDown={(event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n event.preventDefault()\n void handleConfirm()\n }\n }}\n // a green tick once the phrase matches — the field confirms itself before Delete does\n adornment={typed && matches ? <Icon name=\"TickCircle\" color=\"success\" /> : undefined}\n adornmentPosition=\"right\"\n disabled={busy}\n size=\"sm\"\n autoComplete=\"off\"\n autoCapitalize=\"off\"\n autoCorrect=\"off\"\n spellCheck={false}\n />\n </div>\n )}\n </div>\n </Modal>\n )\n})\n\n/** \"Type {text} to confirm\" with the text set as inline `Code`, so the exact phrase stands out. */\nfunction TypeToConfirmLabel({ text }: { text: string }) {\n const t = useT()\n // translate with a sentinel in place of {text}, then split around it to slot the Code element in\n const SENTINEL = '\\u0000'\n const [before, after = ''] = t('removeDialog.typeToConfirm', { text: SENTINEL }).split(SENTINEL)\n return (\n <>\n {before}\n <Code size=\"sm\" color=\"error\" className={styles.phrase}>\n {text}\n </Code>\n {after}\n </>\n )\n}\n"],"names":["RemoveDialog","forwardRef","open","onClose","onConfirm","title","message","confirmLabel","cancelLabel","loading","confirmText","ref","t","useT","submitting","setSubmitting","useState","busy","typed","setTyped","wasOpen","useRef","matches","promptId","useId","handleClose","handleConfirm","jsx","Modal","styles","jsxs","Fragment","Button","Icon","Typography","Blockquote","TypeToConfirmLabel","TextField","event","text","SENTINEL","before","after","Code"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("react/jsx-runtime"),r=require("react"),z=require("./Blockquote-BWGxIL_V.cjs"),C=require("./Button-KRGjJdMV.cjs"),N=require("./Code-CUdpWlY5.cjs"),j=require("./Icon-BVULqOJD.cjs"),I=require("./Modal-CQDcYS-Y.cjs"),R=require("./TextField-CdbanZuk.cjs"),w=require("./Typography-B6ASPrzT.cjs"),v=require("./ConfigProvider-BElY0HuV.cjs"),E="_modalBody_1nqut_5",F="_body_1nqut_4",S="_iconBox_1nqut_20",O="_confirm_1nqut_37",L="_phrase_1nqut_45",i={modalBody:E,body:F,iconBox:S,confirm:O,phrase:L},M=r.forwardRef(function({open:s,onClose:t,onConfirm:l,title:d,message:b,confirmLabel:B,cancelLabel:_,loading:T=!1,confirmText:n},k){const c=v.useT(),[D,h]=r.useState(!1),o=T||D,[u,y]=r.useState(""),x=r.useRef(s);x.current!==s&&(x.current=s,s&&y(""));const m=n==null||u.trim()===n.trim(),g=r.useId(),p=()=>{o||t()},q=async()=>{if(!(!m||o))try{h(!0),await l(),t()}catch{}finally{h(!1)}};return e.jsx(I.Modal,{ref:k,open:s,onClose:p,size:"sm",bodyClassName:i.modalBody,title:d??c("removeDialog.title"),showCloseButton:!o,closeOnBackdrop:!o,closeOnEscape:!o,footer:e.jsxs(e.Fragment,{children:[e.jsx(C.Button,{variant:"text",size:"sm",onClick:p,disabled:o,children:_??c("common.cancel")}),e.jsx(C.Button,{color:"error",variant:"filled",size:"sm",onClick:q,loading:o,disabled:!m,children:B??c("common.delete")})]}),children:e.jsxs("div",{className:i.body,children:[e.jsx("div",{className:i.iconBox,"aria-hidden":!0,children:e.jsx(j.Icon,{name:"Trash"})}),e.jsx(w.Typography,{align:"center",children:b??c("removeDialog.message")}),n!=null&&e.jsxs("div",{className:i.confirm,children:[e.jsx(z.Blockquote,{id:g,size:"sm",color:"error",children:e.jsx(P,{text:n})}),e.jsx(R.TextField,{"aria-labelledby":g,placeholder:n,value:u,onChange:a=>y(a.target.value),onKeyDown:a=>{a.key==="Enter"&&(a.preventDefault(),q())},adornment:u&&m?e.jsx(j.Icon,{name:"TickCircle",color:"success"}):void 0,adornmentPosition:"right",disabled:o,size:"sm",autoComplete:"off",autoCapitalize:"off",autoCorrect:"off",spellCheck:!1})]})]})})});function P({text:f}){const s=v.useT(),t="\0",[l,d=""]=s("removeDialog.typeToConfirm",{text:t}).split(t);return e.jsxs(e.Fragment,{children:[l,e.jsx(N.Code,{size:"sm",color:"error",className:i.phrase,children:f}),d]})}exports.RemoveDialog=M;
2
+ //# sourceMappingURL=RemoveDialog-DBKYnTYU.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoveDialog-DBKYnTYU.cjs","sources":["../src/components/RemoveDialog/RemoveDialog.tsx"],"sourcesContent":["import { forwardRef, useId, useRef, useState, type KeyboardEvent, type ReactNode } from 'react'\nimport { useT } from '../../theme'\nimport { Blockquote } from '../Blockquote'\nimport { Button } from '../Button'\nimport { Code } from '../Code'\nimport { Icon } from '../Icon'\nimport { Modal } from '../Modal'\nimport { TextField } from '../TextField'\nimport { Typography } from '../Typography'\nimport styles from './RemoveDialog.module.css'\n\nexport interface RemoveDialogProps {\n /** Whether the dialog is open. */\n open: boolean\n /** Called on Cancel, the × button, backdrop, or Escape (ignored while a confirm is in flight). */\n onClose: () => void\n /**\n * The destructive action. May be async — while its promise is pending the Delete button shows a\n * loader and the dialog locks (no dismiss); on success the dialog **auto-closes**, on rejection it\n * stays open so the user can retry (surface the error yourself, e.g. a toast).\n */\n onConfirm: () => void | Promise<void>\n /** Header title. Defaults to `\"Remove\"`. */\n title?: ReactNode\n /** Body prompt shown under the icon. Defaults to `\"Are you sure you want to delete?\"`. */\n message?: ReactNode\n /** Confirm (destructive) button label. Defaults to `\"Delete\"`. */\n confirmLabel?: string\n /** Cancel button label. Defaults to `\"Cancel\"`. */\n cancelLabel?: string\n /** External loading override — combined with the internal async-confirm state. */\n loading?: boolean\n /**\n * **Type-to-confirm** for high-risk deletes: the user must type this exact text (e.g. `\"remove user\"`)\n * into a field before Delete enables. Case-sensitive; surrounding whitespace is ignored. The field is\n * focused on open, cleared on every open, and Enter confirms once it matches.\n */\n confirmText?: string\n}\n\n/**\n * A ready-made delete confirmation — a thin convenience wrapper over `Modal` for the ubiquitous\n * \"Are you sure you want to delete?\" prompt. Hardcodes the destructive flavor (a `Trash` glyph in a\n * soft error circle + an `error` Delete button); just wire `open` / `onClose` / `onConfirm`. An async\n * `onConfirm` drives the button loader and locks dismissal, then auto-closes on success. `confirmText`\n * adds **type-to-confirm**: Delete stays disabled until the user types that exact text. Built on\n * `Modal`, so it inherits the portal, scroll-lock, focus-trap, and backdrop/Escape dismissal.\n *\n * @example\n * const { isOpen, open, close } = useDisclosure()\n * <RemoveDialog open={isOpen} onClose={close} onConfirm={() => deleteItem(id)} />\n */\nexport const RemoveDialog = forwardRef<HTMLDivElement, RemoveDialogProps>(function RemoveDialog(\n {\n open,\n onClose,\n onConfirm,\n title,\n message,\n confirmLabel,\n cancelLabel,\n loading = false,\n confirmText,\n },\n ref,\n) {\n const t = useT()\n const [submitting, setSubmitting] = useState(false)\n const busy = loading || submitting\n\n // type-to-confirm — cleared every time the dialog opens (\"adjust state on prop change\", no effect)\n const [typed, setTyped] = useState('')\n const wasOpen = useRef(open)\n if (wasOpen.current !== open) {\n wasOpen.current = open\n if (open) setTyped('')\n }\n const matches = confirmText == null || typed.trim() === confirmText.trim()\n const promptId = useId()\n\n // dismissal is blocked while the confirm is running (so the delete can't be abandoned mid-flight)\n const handleClose = () => {\n if (!busy) onClose()\n }\n\n const handleConfirm = async () => {\n if (!matches || busy) return\n try {\n setSubmitting(true)\n await onConfirm()\n onClose() // auto-close on success\n } catch {\n // keep the dialog open on failure so the user can retry; the consumer surfaces the error\n } finally {\n setSubmitting(false)\n }\n }\n\n return (\n <Modal\n ref={ref}\n open={open}\n onClose={handleClose}\n size=\"sm\"\n bodyClassName={styles.modalBody}\n title={title ?? t('removeDialog.title')}\n showCloseButton={!busy}\n closeOnBackdrop={!busy}\n closeOnEscape={!busy}\n footer={\n <>\n <Button variant=\"text\" size=\"sm\" onClick={handleClose} disabled={busy}>\n {cancelLabel ?? t('common.cancel')}\n </Button>\n <Button\n color=\"error\"\n variant=\"filled\"\n size=\"sm\"\n onClick={handleConfirm}\n loading={busy}\n disabled={!matches}\n >\n {confirmLabel ?? t('common.delete')}\n </Button>\n </>\n }\n >\n <div className={styles.body}>\n <div className={styles.iconBox} aria-hidden>\n <Icon name=\"Trash\" />\n </div>\n <Typography align=\"center\">{message ?? t('removeDialog.message')}</Typography>\n {confirmText != null && (\n <div className={styles.confirm}>\n {/* the instruction, as an error-tinted quote — it also names the field (aria-labelledby) */}\n <Blockquote id={promptId} size=\"sm\" color=\"error\">\n <TypeToConfirmLabel text={confirmText} />\n </Blockquote>\n <TextField\n aria-labelledby={promptId}\n placeholder={confirmText}\n value={typed}\n onChange={(event) => setTyped(event.target.value)}\n onKeyDown={(event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n event.preventDefault()\n void handleConfirm()\n }\n }}\n // a green tick once the phrase matches — the field confirms itself before Delete does\n adornment={typed && matches ? <Icon name=\"TickCircle\" color=\"success\" /> : undefined}\n adornmentPosition=\"right\"\n disabled={busy}\n size=\"sm\"\n autoComplete=\"off\"\n autoCapitalize=\"off\"\n autoCorrect=\"off\"\n spellCheck={false}\n />\n </div>\n )}\n </div>\n </Modal>\n )\n})\n\n/** \"Type {text} to confirm\" with the text set as inline `Code`, so the exact phrase stands out. */\nfunction TypeToConfirmLabel({ text }: { text: string }) {\n const t = useT()\n // translate with a sentinel in place of {text}, then split around it to slot the Code element in\n const SENTINEL = '\\u0000'\n const [before, after = ''] = t('removeDialog.typeToConfirm', { text: SENTINEL }).split(SENTINEL)\n return (\n <>\n {before}\n <Code size=\"sm\" color=\"error\" className={styles.phrase}>\n {text}\n </Code>\n {after}\n </>\n )\n}\n"],"names":["RemoveDialog","forwardRef","open","onClose","onConfirm","title","message","confirmLabel","cancelLabel","loading","confirmText","ref","t","useT","submitting","setSubmitting","useState","busy","typed","setTyped","wasOpen","useRef","matches","promptId","useId","handleClose","handleConfirm","jsx","Modal","styles","jsxs","Fragment","Button","Icon","Typography","Blockquote","TypeToConfirmLabel","TextField","event","text","SENTINEL","before","after","Code"],"mappings":"ygBAoDaA,EAAeC,EAAAA,WAA8C,SACxE,CACE,KAAAC,EACA,QAAAC,EACA,UAAAC,EACA,MAAAC,EACA,QAAAC,EACA,aAAAC,EACA,YAAAC,EACA,QAAAC,EAAU,GACV,YAAAC,CACF,EACAC,EACA,CACA,MAAMC,EAAIC,EAAAA,KAAA,EACJ,CAACC,EAAYC,CAAa,EAAIC,EAAAA,SAAS,EAAK,EAC5CC,EAAOR,GAAWK,EAGlB,CAACI,EAAOC,CAAQ,EAAIH,EAAAA,SAAS,EAAE,EAC/BI,EAAUC,EAAAA,OAAOnB,CAAI,EACvBkB,EAAQ,UAAYlB,IACtBkB,EAAQ,QAAUlB,EACdA,KAAe,EAAE,GAEvB,MAAMoB,EAAUZ,GAAe,MAAQQ,EAAM,KAAA,IAAWR,EAAY,KAAA,EAC9Da,EAAWC,EAAAA,MAAA,EAGXC,EAAc,IAAM,CACnBR,GAAMd,EAAA,CACb,EAEMuB,EAAgB,SAAY,CAChC,GAAI,GAACJ,GAAWL,GAChB,GAAI,CACFF,EAAc,EAAI,EAClB,MAAMX,EAAA,EACND,EAAA,CACF,MAAQ,CAER,QAAA,CACEY,EAAc,EAAK,CACrB,CACF,EAEA,OACEY,EAAAA,IAACC,EAAAA,MAAA,CACC,IAAAjB,EACA,KAAAT,EACA,QAASuB,EACT,KAAK,KACL,cAAeI,EAAO,UACtB,MAAOxB,GAASO,EAAE,oBAAoB,EACtC,gBAAiB,CAACK,EAClB,gBAAiB,CAACA,EAClB,cAAe,CAACA,EAChB,OACEa,EAAAA,KAAAC,WAAA,CACE,SAAA,CAAAJ,EAAAA,IAACK,EAAAA,OAAA,CAAO,QAAQ,OAAO,KAAK,KAAK,QAASP,EAAa,SAAUR,EAC9D,SAAAT,GAAeI,EAAE,eAAe,EACnC,EACAe,EAAAA,IAACK,EAAAA,OAAA,CACC,MAAM,QACN,QAAQ,SACR,KAAK,KACL,QAASN,EACT,QAAST,EACT,SAAU,CAACK,EAEV,SAAAf,GAAgBK,EAAE,eAAe,CAAA,CAAA,CACpC,EACF,EAGF,SAAAkB,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAO,KACrB,SAAA,CAAAF,EAAAA,IAAC,MAAA,CAAI,UAAWE,EAAO,QAAS,cAAW,GACzC,SAAAF,EAAAA,IAACM,EAAAA,KAAA,CAAK,KAAK,OAAA,CAAQ,CAAA,CACrB,QACCC,EAAAA,WAAA,CAAW,MAAM,SAAU,SAAA5B,GAAWM,EAAE,sBAAsB,EAAE,EAChEF,GAAe,MACdoB,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAO,QAErB,SAAA,CAAAF,EAAAA,IAACQ,EAAAA,WAAA,CAAW,GAAIZ,EAAU,KAAK,KAAK,MAAM,QACxC,SAAAI,EAAAA,IAACS,EAAA,CAAmB,KAAM1B,CAAA,CAAa,EACzC,EACAiB,EAAAA,IAACU,EAAAA,UAAA,CACC,kBAAiBd,EACjB,YAAab,EACb,MAAOQ,EACP,SAAWoB,GAAUnB,EAASmB,EAAM,OAAO,KAAK,EAChD,UAAYA,GAA2C,CACjDA,EAAM,MAAQ,UAChBA,EAAM,eAAA,EACDZ,EAAA,EAET,EAEA,UAAWR,GAASI,EAAUK,EAAAA,IAACM,EAAAA,MAAK,KAAK,aAAa,MAAM,SAAA,CAAU,EAAK,OAC3E,kBAAkB,QAClB,SAAUhB,EACV,KAAK,KACL,aAAa,MACb,eAAe,MACf,YAAY,MACZ,WAAY,EAAA,CAAA,CACd,CAAA,CACF,CAAA,CAAA,CAEJ,CAAA,CAAA,CAGN,CAAC,EAGD,SAASmB,EAAmB,CAAE,KAAAG,GAA0B,CACtD,MAAM3B,EAAIC,EAAAA,KAAA,EAEJ2B,EAAW,KACX,CAACC,EAAQC,EAAQ,EAAE,EAAI9B,EAAE,6BAA8B,CAAE,KAAM4B,CAAA,CAAU,EAAE,MAAMA,CAAQ,EAC/F,OACEV,EAAAA,KAAAC,WAAA,CACG,SAAA,CAAAU,EACDd,EAAAA,IAACgB,EAAAA,MAAK,KAAK,KAAK,MAAM,QAAQ,UAAWd,EAAO,OAC7C,SAAAU,CAAA,CACH,EACCG,CAAA,EACH,CAEJ"}
@@ -0,0 +1,2 @@
1
+ "use strict";const r=require("react/jsx-runtime"),a=require("react"),$e=require("clsx"),c=require("lexical"),we=require("@lexical/react/LexicalComposer"),ve=require("@lexical/react/LexicalComposerContext"),Be=require("@lexical/react/LexicalRichTextPlugin"),Fe=require("@lexical/react/LexicalContentEditable"),Ue=require("@lexical/react/LexicalErrorBoundary"),Pe=require("@lexical/react/LexicalHistoryPlugin"),He=require("@lexical/react/LexicalListPlugin"),Ve=require("@lexical/react/LexicalCheckListPlugin"),ze=require("@lexical/react/LexicalLinkPlugin"),Ge=require("@lexical/react/LexicalMarkdownShortcutPlugin"),le=require("@lexical/markdown"),D=require("@lexical/rich-text"),T=require("@lexical/list"),$=require("@lexical/link"),Le=require("@lexical/html"),Ke=require("./formContext-bTWrqdEV.cjs"),xe=require("./Typography-B6ASPrzT.cjs"),We=require("./toastStore-B4Tk2Xk7.cjs"),S=require("@lexical/selection"),I=require("@lexical/utils"),z=require("./Button-KRGjJdMV.cjs"),ge=require("./ColorPickerPanel-C9ARc_uD.cjs"),M=require("./Divider-CzbhdCiD.cjs"),se=require("./Dropdown-DNZ9S_zQ.cjs"),Je=require("./FloatingPanel-BIC4WrFa.cjs"),h=require("./Icon-BVULqOJD.cjs"),O=require("./IconButton-A2B0bqC-.cjs"),G=require("./List-9lUjapQ5.cjs"),Qe=require("./Modal-CQDcYS-Y.cjs"),Xe=require("./TextField-CdbanZuk.cjs"),ce=require("./ConfigProvider-BElY0HuV.cjs"),Ye=/^(?:https?:|mailto:|tel:|ftp:|#|\/|\?|\.)/i,Ze=/^[a-z][a-z0-9+.-]*:/i;function ae(o){const t=o.trim();return t===""?"":Ye.test(t)||!Ze.test(t)?t:"#"}function Ne(o){const t=o.trim();if(/^data:(?:image|video)\//i.test(t)||/^blob:/i.test(t))return t;const i=ae(t);return i==="#"?"":i}function et(o){return o instanceof HTMLImageElement&&o.src?{node:K(o.getAttribute("src")??o.src,o.alt)}:null}class W extends c.DecoratorNode{static getType(){return"tz-image"}static clone(t){return new W(t.__src,t.__alt,t.__key)}constructor(t,i="",n){super(n),this.__src=Ne(t),this.__alt=i}static importJSON(t){return K(t.src,t.alt)}exportJSON(){return{...super.exportJSON(),type:"tz-image",version:1,src:this.__src,alt:this.__alt}}static importDOM(){return{img:()=>({conversion:et,priority:0})}}exportDOM(){const t=document.createElement("img");return t.setAttribute("src",this.__src),t.setAttribute("alt",this.__alt),{element:t}}createDOM(){const t=document.createElement("div");return t.style.display="contents",t}updateDOM(){return!1}getSrc(){return this.__src}getAltText(){return this.__alt}decorate(){return r.jsx("img",{src:this.__src,alt:this.__alt,draggable:!1})}}function K(o,t=""){return c.$applyNodeReplacement(new W(o,t))}function je(o){return/\.(mp4|webm|ogg|ogv|mov|m4v)(\?.*)?$/i.test(o)}function tt(o){const t=o.match(/(?:youtube\.com\/(?:watch\?(?:.*&)?v=|embed\/|shorts\/)|youtu\.be\/)([\w-]{11})/);if(t)return`https://www.youtube.com/embed/${t[1]}`;const i=o.match(/vimeo\.com\/(?:video\/)?(\d+)/);return i?`https://player.vimeo.com/video/${i[1]}`:o}function ye(o){var i;const t=o.getAttribute("src")||((i=o.querySelector("source"))==null?void 0:i.getAttribute("src"));return t?{node:ue(t)}:null}class J extends c.DecoratorNode{static getType(){return"tz-video"}static clone(t){return new J(t.__src,t.__key)}constructor(t,i){super(i),this.__src=Ne(t)}static importJSON(t){return ue(t.src)}exportJSON(){return{...super.exportJSON(),type:"tz-video",version:1,src:this.__src}}static importDOM(){return{iframe:()=>({conversion:ye,priority:0}),video:()=>({conversion:ye,priority:0})}}exportDOM(){if(je(this.__src)){const i=document.createElement("video");return i.setAttribute("src",this.__src),i.setAttribute("controls","true"),{element:i}}const t=document.createElement("iframe");return t.setAttribute("src",this.__src),t.setAttribute("frameborder","0"),t.setAttribute("allowfullscreen","true"),t.setAttribute("allow","accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"),{element:t}}createDOM(){const t=document.createElement("div");return t.style.display="contents",t}updateDOM(){return!1}getSrc(){return this.__src}decorate(){return je(this.__src)?r.jsx("video",{src:this.__src,controls:!0}):r.jsx(rt,{src:this.__src})}}function rt({src:o}){const t=ce.useT();return r.jsx("div",{className:"tz-rte-embed",children:r.jsx("iframe",{src:o,title:t("rte.embeddedVideo"),frameBorder:0,allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0})})}function ue(o){return c.$applyNodeReplacement(new J(tt(o)))}const ot="_editor_16j1l_1",nt="_label_16j1l_9",it="_required_16j1l_15",lt="_helper_16j1l_18",st="_control_16j1l_24",ct="_error_16j1l_38",at="_disabled_16j1l_45",ut="_toolbar_16j1l_51",dt="_sm_16j1l_67",mt="_md_16j1l_71",pt="_lg_16j1l_75",ht="_colorGlyph_16j1l_81",_t="_colorBar_16j1l_89",ft="_shell_16j1l_107",xt="_content_16j1l_110",gt="_placeholder_16j1l_123",jt="_paragraph_16j1l_146",yt="_h1_16j1l_152",Ct="_h2_16j1l_153",vt="_h3_16j1l_154",Lt="_h4_16j1l_155",Nt="_h5_16j1l_156",bt="_h6_16j1l_157",St="_quote_16j1l_176",Tt="_ul_16j1l_183",Et="_ol_16j1l_188",kt="_li_16j1l_193",Rt="_nestedLi_16j1l_196",It="_liChecked_16j1l_200",Mt="_liUnchecked_16j1l_201",Ot="_link_16j1l_238",Dt="_bold_16j1l_245",At="_italic_16j1l_248",qt="_underline_16j1l_251",$t="_strike_16j1l_254",wt="_codeInline_16j1l_260",l={editor:ot,label:nt,required:it,helper:lt,control:st,error:ct,disabled:at,toolbar:ut,sm:dt,md:mt,lg:pt,colorGlyph:ht,colorBar:_t,shell:ft,content:xt,placeholder:gt,paragraph:jt,h1:yt,h2:Ct,h3:vt,h4:Lt,h5:Nt,h6:bt,quote:St,ul:Tt,ol:Et,li:kt,nestedLi:Rt,liChecked:It,liUnchecked:Mt,link:Ot,bold:Dt,italic:At,underline:qt,strike:$t,codeInline:wt},Bt={paragraph:"Paragraph",h1:"Heading 1",h2:"Heading 2",h3:"Heading 3",quote:"Quote",bullet:"Bullet List",number:"Numbered List",check:"Check List"},Ft=[{type:"paragraph",icon:"Text"},{type:"h1",icon:"Hashtag"},{type:"h2",icon:"Hashtag"},{type:"h3",icon:"Hashtag"}],Ut=[{value:"left",labelKey:"rte.alignLeft",icon:"TextalignLeft"},{value:"center",labelKey:"rte.alignCenter",icon:"TextalignCenter"},{value:"right",labelKey:"rte.alignRight",icon:"TextalignRight"}],Pt=["10px","12px","14px","16px","18px","20px"],Ht={sm:"12px",md:"14px",lg:"16px"};function Vt({color:o,size:t}){return r.jsxs("span",{className:l.colorGlyph,children:[r.jsx(h.Icon,{name:"Brush",size:t}),r.jsx("span",{className:l.colorBar,style:{borderColor:`transparent transparent ${o||"currentColor"} transparent`},"aria-hidden":"true"})]})}function zt({size:o,disabled:t,onImageUpload:i}){const n=ce.useT(),d=e=>Bt[e]??e,[u]=ve.useLexicalComposerContext(),g=a.useRef(null),[C,p]=a.useState(!1),[f,Q]=a.useState(!1),[E,X]=a.useState(!1),[w,Y]=a.useState(!1),[Z,ee]=a.useState(""),[y,k]=a.useState("paragraph"),[j,x]=a.useState("left"),[A,q]=a.useState(""),[B,F]=a.useState(""),[U,P]=a.useState(!1),R=a.useRef(null),[te,_]=a.useState(!1),[be,Se]=a.useState(!1),[m,re]=a.useState(null),[de,me]=a.useState(""),oe=a.useCallback(()=>{const e=c.$getSelection();if(!c.$isRangeSelection(e))return;p(e.hasFormat("bold")),Q(e.hasFormat("italic")),X(e.hasFormat("underline")),F(S.$getSelectionStyleValueForProperty(e,"color","")),q(S.$getSelectionStyleValueForProperty(e,"font-size",""));const s=e.anchor.getNode(),N=s.getParent(),L=$.$isLinkNode(s)?s:$.$isLinkNode(N)?N:null;Y(L!==null),ee((L==null?void 0:L.getURL())??"");const b=s.getKey()==="root"?s:I.$findMatchingParent(s,qe=>{const fe=qe.getParent();return fe===null||fe.getKey()==="root"})??s.getTopLevelElement();x(c.$isElementNode(b)&&b.getFormatType()||"left");const V=I.$getNearestNodeOfType(s,T.ListNode);V?k(V.getListType()):D.$isHeadingNode(b)?k(b.getTag()):D.$isQuoteNode(b)?k("quote"):k("paragraph")},[]);a.useEffect(()=>I.mergeRegister(u.registerUpdateListener(({editorState:e})=>e.read(oe)),u.registerCommand(c.SELECTION_CHANGE_COMMAND,()=>(oe(),!1),c.COMMAND_PRIORITY_LOW),u.registerCommand(c.CAN_UNDO_COMMAND,e=>(_(e),!1),c.COMMAND_PRIORITY_LOW),u.registerCommand(c.CAN_REDO_COMMAND,e=>(Se(e),!1),c.COMMAND_PRIORITY_LOW)),[u,oe]);const ne=e=>u.dispatchCommand(c.FORMAT_TEXT_COMMAND,e),Te=e=>u.dispatchCommand(c.FORMAT_ELEMENT_COMMAND,e),Ee=e=>{F(e),u.update(()=>{const s=c.$getSelection();c.$isRangeSelection(s)&&S.$patchStyleText(s,{color:e||null})})},ke=e=>{q(e),u.update(()=>{const s=c.$getSelection();c.$isRangeSelection(s)&&S.$patchStyleText(s,{"font-size":e||null})})},H=e=>{if(e==="bullet"||e==="number"||e==="check"){if(y===e)u.dispatchCommand(T.REMOVE_LIST_COMMAND,void 0);else{const s=e==="bullet"?T.INSERT_UNORDERED_LIST_COMMAND:e==="number"?T.INSERT_ORDERED_LIST_COMMAND:T.INSERT_CHECK_LIST_COMMAND;u.dispatchCommand(s,void 0)}return}u.update(()=>{const s=c.$getSelection();c.$isRangeSelection(s)&&(e==="paragraph"?S.$setBlocksType(s,()=>c.$createParagraphNode()):e==="quote"?S.$setBlocksType(s,()=>D.$createQuoteNode()):S.$setBlocksType(s,()=>D.$createHeadingNode(e)))})},Re=()=>H(y==="quote"?"paragraph":"quote"),ie=(e,s="")=>{me(s),re(e)},pe=()=>re(null),Ie=()=>{m==null||m.onConfirm(de.trim()),re(null)},Me=()=>ie({icon:"Link2",title:n("rte.linkTitle"),label:n("rte.linkUrl"),placeholder:"https://example.com",confirmLabel:n(w?"common.update":"common.insert"),onConfirm:e=>u.dispatchCommand($.TOGGLE_LINK_COMMAND,e===""?null:ae(e))},Z),Oe=()=>ie({icon:"GalleryAdd",title:n("rte.imageTitle"),label:n("rte.imageUrl"),placeholder:"https://example.com/image.jpg",confirmLabel:n("common.insert"),onConfirm:e=>{e&&u.update(()=>I.$insertNodeToNearestRoot(K(e)))}}),De=async e=>{var N;const s=(N=e.target.files)==null?void 0:N[0];if(e.target.value="",!!s)try{const L=i?await i(s):await Gt(s);u.update(()=>I.$insertNodeToNearestRoot(K(L,s.name)))}catch{We.toast.error(n("rte.imageError"))}},Ae=()=>ie({icon:"VideoSquare",title:n("rte.videoTitle"),label:n("rte.videoUrl"),placeholder:n("rte.videoUrlPlaceholder"),confirmLabel:n("common.insert"),onConfirm:e=>{e&&u.update(()=>I.$insertNodeToNearestRoot(ue(e)))}}),v=(e,s,N,L,b)=>r.jsx(O.IconButton,{variant:e?"filled":"text",color:"primary",size:o,disabled:t,"aria-label":s,"aria-pressed":e,onMouseDown:V=>V.preventDefault(),onClick:N,children:L},b),he=y.startsWith("h")?y:"paragraph",_e=A||Ht[o];return r.jsxs("div",{className:l.toolbar,role:"toolbar","aria-label":n("rte.formatting"),"aria-orientation":"horizontal",children:[r.jsx(O.IconButton,{variant:"text",color:"primary",size:o,disabled:t||!te,"aria-label":n("rte.undo"),onMouseDown:e=>e.preventDefault(),onClick:()=>u.dispatchCommand(c.UNDO_COMMAND,void 0),children:r.jsx(h.Icon,{name:"UndoArrow"})}),r.jsx(O.IconButton,{variant:"text",color:"primary",size:o,disabled:t||!be,"aria-label":n("rte.redo"),onMouseDown:e=>e.preventDefault(),onClick:()=>u.dispatchCommand(c.REDO_COMMAND,void 0),children:r.jsx(h.Icon,{name:"RedoArrow"})}),r.jsx(M.Divider,{orientation:"vertical"}),r.jsx(se.Dropdown,{size:o,disabled:t,minWidth:!1,trigger:r.jsx(z.Button,{variant:"text",color:"primary",size:o,disabled:t,endIcon:r.jsx(h.Icon,{name:"ArrowDown4"}),"aria-label":n("rte.fontSize"),onMouseDown:e=>e.preventDefault(),children:_e}),children:Pt.map(e=>r.jsx(G.ListItem,{clickable:!0,selected:e===_e,onClick:()=>ke(e),children:e},e))}),r.jsx(M.Divider,{orientation:"vertical"}),r.jsx(se.Dropdown,{size:o,disabled:t,trigger:r.jsx(z.Button,{variant:"text",color:"primary",size:o,disabled:t,endIcon:r.jsx(h.Icon,{name:"ArrowDown4"}),onMouseDown:e=>e.preventDefault(),children:d(he)}),children:Ft.map(e=>r.jsx(G.ListItem,{clickable:!0,selected:he===e.type,icon:e.icon,onClick:()=>H(e.type),children:d(e.type)},e.type))}),r.jsx(M.Divider,{orientation:"vertical"}),v(C,n("rte.bold"),()=>ne("bold"),r.jsx(h.Icon,{name:"TextBold"})),v(f,n("rte.italic"),()=>ne("italic"),r.jsx(h.Icon,{name:"TextItalic"})),v(E,n("rte.underline"),()=>ne("underline"),r.jsx(h.Icon,{name:"TextUnderline"})),r.jsx(M.Divider,{orientation:"vertical"}),v(y==="bullet",n("rte.bulletList"),()=>H("bullet"),r.jsx(h.Icon,{name:"ListBullet"})),v(y==="number",n("rte.numberedList"),()=>H("number"),r.jsx(h.Icon,{name:"ListNumber"})),v(y==="quote",n("rte.quote"),Re,r.jsx(h.Icon,{name:"QuoteUp"})),r.jsx(M.Divider,{orientation:"vertical"}),Ut.map(e=>v(j===e.value,n(e.labelKey),()=>Te(e.value),r.jsx(h.Icon,{name:e.icon}),e.value)),r.jsx(M.Divider,{orientation:"vertical"}),r.jsx(O.IconButton,{ref:R,variant:"text",color:"primary",size:o,disabled:t,"aria-label":n("rte.textColor"),"aria-expanded":U,onMouseDown:e=>e.preventDefault(),onClick:()=>P(e=>!e),children:r.jsx(Vt,{color:B})}),r.jsx(Je.FloatingPanel,{open:U,triggerRef:R,onClose:e=>{var s;P(!1),e&&((s=R.current)==null||s.focus())},role:"dialog",ariaLabel:n("rte.textColor"),width:232,children:r.jsx(ge.ColorPickerPanel,{value:B||ge.DEFAULT_SWATCHES[0],onChange:Ee,clearable:!1})}),v(w,n("rte.link"),Me,r.jsx(h.Icon,{name:"Link2"})),r.jsxs(se.Dropdown,{size:o,disabled:t,minWidth:!1,trigger:r.jsx(O.IconButton,{variant:"text",color:"primary",size:o,disabled:t,"aria-label":n("rte.insertImage"),children:r.jsx(h.Icon,{name:"GalleryAdd"})}),children:[r.jsx(G.ListItem,{clickable:!0,icon:"GalleryImport",onClick:()=>{var e;return(e=g.current)==null?void 0:e.click()},children:n("rte.uploadImage")}),r.jsx(G.ListItem,{clickable:!0,icon:"Link",onClick:Oe,children:n("rte.imageByUrl")})]}),r.jsx(O.IconButton,{variant:"text",color:"primary",size:o,disabled:t,"aria-label":n("rte.insertVideo"),onClick:Ae,children:r.jsx(h.Icon,{name:"VideoSquare"})}),r.jsx("input",{ref:g,type:"file",accept:"image/*",hidden:!0,onChange:De,"aria-hidden":"true",tabIndex:-1}),r.jsx(Qe.Modal,{open:m!==null,onClose:pe,size:"sm",icon:m==null?void 0:m.icon,title:m==null?void 0:m.title,footer:r.jsxs(r.Fragment,{children:[r.jsx(z.Button,{variant:"text",size:"sm",onClick:pe,children:n("common.cancel")}),r.jsx(z.Button,{type:"submit",size:"sm",form:"rte-url-form",children:(m==null?void 0:m.confirmLabel)??n("common.insert")})]}),children:r.jsx("form",{id:"rte-url-form",onSubmit:e=>{e.preventDefault(),Ie()},children:r.jsx(Xe.TextField,{label:m==null?void 0:m.label,placeholder:m==null?void 0:m.placeholder,value:de,onChange:e=>me(e.target.value)})})})]})}function Gt(o){return new Promise((t,i)=>{const n=new FileReader;n.onload=()=>t(n.result),n.onerror=()=>i(n.error),n.readAsDataURL(o)})}const Kt={paragraph:l.paragraph,heading:{h1:l.h1,h2:l.h2,h3:l.h3,h4:l.h4,h5:l.h5,h6:l.h6},quote:l.quote,list:{ul:l.ul,ol:l.ol,listitem:l.li,listitemChecked:l.liChecked,listitemUnchecked:l.liUnchecked,nested:{listitem:l.nestedLi}},link:l.link,text:{bold:l.bold,italic:l.italic,underline:l.underline,strikethrough:l.strike,code:l.codeInline}},Wt=[D.HeadingNode,D.QuoteNode,T.ListNode,T.ListItemNode,$.LinkNode,W,J],Jt=[...le.ELEMENT_TRANSFORMERS,...le.TEXT_FORMAT_TRANSFORMERS,...le.TEXT_MATCH_TRANSFORMERS];function Qt(o){if(typeof document>"u")return o;const t=document.createElement("template");return t.innerHTML=o,t.content.querySelectorAll("[class]").forEach(i=>i.removeAttribute("class")),t.innerHTML}function Xt(){const o=c.$getRoot(),t=o.getFirstChild();return o.getChildrenSize()<=1&&(t===null||c.$isParagraphNode(t)&&t.getChildrenSize()===0)}function Ce(o,t){const i=c.$getRoot();if(i.clear(),t){const n=new DOMParser().parseFromString(t,"text/html"),d=Le.$generateNodesFromDOM(o,n);i.select(),c.$insertNodes(d)}i.getChildrenSize()===0&&i.append(c.$createParagraphNode()),c.$setSelection(null)}function Yt({value:o,defaultValue:t,onChange:i,disabled:n}){const[d]=ve.useLexicalComposerContext(),u=a.useRef(void 0),g=a.useRef(i);return g.current=i,a.useEffect(()=>d.setEditable(!n),[d,n]),a.useEffect(()=>d.registerNodeTransform($.LinkNode,C=>{const p=C.getURL(),f=ae(p);f!==p&&C.setURL(f)}),[d]),a.useEffect(()=>{o!==void 0||!t||(u.current=t,d.update(()=>Ce(d,t),{tag:"history-merge"}))},[]),a.useEffect(()=>{o===void 0||o===u.current||(u.current=o,d.update(()=>Ce(d,o),{tag:"history-merge"}))},[d,o]),a.useEffect(()=>d.registerUpdateListener(({dirtyElements:C,dirtyLeaves:p})=>{C.size===0&&p.size===0||d.read(()=>{const f=Xt()?"":Qt(Le.$generateHtmlFromNodes(d,null));f!==u.current&&(u.current=f,g.current(f))})}),[d]),null}const Zt=a.forwardRef(function({label:t,size:i="md",error:n,helperText:d,required:u=!1,disabled:g=!1,placeholder:C,name:p,value:f,defaultValue:Q,onChange:E,onImageUpload:X,minHeight:w=220,"aria-label":Y="Rich text editor",className:Z,style:ee},y){const k=ce.useT(),j=Ke.useFormContext(),x=j&&p?j.field(p):void 0,A=n??(x==null?void 0:x.error)??!1,q=d??(x==null?void 0:x.helperText),B=j&&p?j.values[p]:void 0,F=f!==void 0?f:j&&p?String(B??""):void 0,U=a.useCallback(_=>{j&&p&&j.setValue(p,_),E==null||E(_)},[j,p,E]),P=_=>x==null?void 0:x.onBlur(_),R=a.useRef(null);a.useEffect(()=>{const _=R.current;_&&(p?_.setAttribute("name",p):_.removeAttribute("name"))},[p]);const te={namespace:"tz-rich-text-editor",theme:Kt,nodes:Wt,editable:!g,onError:_=>{throw _}};return r.jsxs("div",{ref:y,className:$e.clsx(l.editor,l[i],A&&l.error,g&&l.disabled,Z),style:{"--tz-rte-min-height":`${w}px`,...ee},children:[t!=null&&r.jsxs("div",{className:l.label,children:[r.jsx(xe.Typography,{as:"span",variant:"bodySmall",color:"muted",children:t}),u&&r.jsx("span",{className:l.required,"aria-hidden":"true",children:"*"})]}),r.jsx("div",{className:l.control,children:r.jsxs(we.LexicalComposer,{initialConfig:te,children:[r.jsx(zt,{size:i,disabled:g,onImageUpload:X}),r.jsx("div",{className:l.shell,children:r.jsx(Be.RichTextPlugin,{contentEditable:r.jsx(Fe.ContentEditable,{ref:R,className:l.content,"aria-label":Y,"aria-invalid":A||void 0,onBlur:P}),placeholder:r.jsx("div",{className:l.placeholder,children:C??k("rte.placeholder")}),ErrorBoundary:Ue.LexicalErrorBoundary})}),r.jsx(Pe.HistoryPlugin,{}),r.jsx(He.ListPlugin,{}),r.jsx(Ve.CheckListPlugin,{}),r.jsx(ze.LinkPlugin,{}),r.jsx(Ge.MarkdownShortcutPlugin,{transformers:Jt}),r.jsx(Yt,{value:F,defaultValue:Q,onChange:U,disabled:g})]})}),q!=null&&r.jsx(xe.Typography,{as:"span",variant:"bodySmall",color:A?"error":"muted",className:l.helper,children:q})]})});exports.RichTextEditor=Zt;
2
+ //# sourceMappingURL=RichTextEditor-DTz7Qcn_.cjs.map