@techzyapp/ui-library 1.0.21 → 1.0.25

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 (363) hide show
  1. package/dist/{AdminRoot-BDRLuMX6.cjs → AdminRoot-BkPPRkyQ.cjs} +2 -2
  2. package/dist/AdminRoot-BkPPRkyQ.cjs.map +1 -0
  3. package/dist/{AdminRoot-DvF0js0q.js → AdminRoot-CgvtgUpW.js} +4 -4
  4. package/dist/AdminRoot-CgvtgUpW.js.map +1 -0
  5. package/dist/Alert-DXmzM_rh.js +71 -0
  6. package/dist/{Alert-DPYmdaWs.js.map → Alert-DXmzM_rh.js.map} +1 -1
  7. package/dist/Alert-udX1ybuC.cjs +2 -0
  8. package/dist/{Alert-CwoRkKq4.cjs.map → Alert-udX1ybuC.cjs.map} +1 -1
  9. package/dist/Blockquote-BWGxIL_V.cjs +2 -0
  10. package/dist/{Blockquote-CxHwOecc.cjs.map → Blockquote-BWGxIL_V.cjs.map} +1 -1
  11. package/dist/Blockquote-Ma-2naET.js +46 -0
  12. package/dist/{Blockquote-CNIuJFHq.js.map → Blockquote-Ma-2naET.js.map} +1 -1
  13. package/dist/{Breadcrumbs-CknDBLMw.cjs → Breadcrumbs-CsYTiX2h.cjs} +2 -2
  14. package/dist/{Breadcrumbs-CknDBLMw.cjs.map → Breadcrumbs-CsYTiX2h.cjs.map} +1 -1
  15. package/dist/{Breadcrumbs-l0PlUpQ4.js → Breadcrumbs-DQHHeLId.js} +3 -3
  16. package/dist/{Breadcrumbs-l0PlUpQ4.js.map → Breadcrumbs-DQHHeLId.js.map} +1 -1
  17. package/dist/{Button-BdihbLYJ.cjs → Button-CXmDOzPk.cjs} +2 -2
  18. package/dist/{Button-BdihbLYJ.cjs.map → Button-CXmDOzPk.cjs.map} +1 -1
  19. package/dist/{Button-RljTGqHl.js → Button-DBs8xnA5.js} +2 -2
  20. package/dist/{Button-RljTGqHl.js.map → Button-DBs8xnA5.js.map} +1 -1
  21. package/dist/{Calendar-DVg1uQuj.cjs → Calendar-B2nMXk4C.cjs} +2 -2
  22. package/dist/{Calendar-DVg1uQuj.cjs.map → Calendar-B2nMXk4C.cjs.map} +1 -1
  23. package/dist/{Calendar-CKCikOQL.js → Calendar-CtteUt82.js} +3 -3
  24. package/dist/{Calendar-CKCikOQL.js.map → Calendar-CtteUt82.js.map} +1 -1
  25. package/dist/{Card-BYFuYD-a.cjs → Card-DGF22HbS.cjs} +2 -2
  26. package/dist/{Card-BYFuYD-a.cjs.map → Card-DGF22HbS.cjs.map} +1 -1
  27. package/dist/{Card-B0bYi4g2.js → Card-DYKnWt-L.js} +2 -2
  28. package/dist/{Card-B0bYi4g2.js.map → Card-DYKnWt-L.js.map} +1 -1
  29. package/dist/{Chip-BiqfnRUi.js → Chip-DdKhcstm.js} +2 -2
  30. package/dist/{Chip-BiqfnRUi.js.map → Chip-DdKhcstm.js.map} +1 -1
  31. package/dist/{Chip-CdKUtUGE.cjs → Chip-gUH_7nQc.cjs} +2 -2
  32. package/dist/{Chip-CdKUtUGE.cjs.map → Chip-gUH_7nQc.cjs.map} +1 -1
  33. package/dist/{CodeBlock-CAAggVXS.cjs → CodeBlock-C6tQtbHU.cjs} +2 -2
  34. package/dist/{CodeBlock-CAAggVXS.cjs.map → CodeBlock-C6tQtbHU.cjs.map} +1 -1
  35. package/dist/{CodeBlock-BX_0tpk3.js → CodeBlock-DD_d3-sM.js} +3 -3
  36. package/dist/{CodeBlock-BX_0tpk3.js.map → CodeBlock-DD_d3-sM.js.map} +1 -1
  37. package/dist/{ColorPicker-BCSaT1A-.cjs → ColorPicker-DtzFwNWk.cjs} +2 -2
  38. package/dist/{ColorPicker-BCSaT1A-.cjs.map → ColorPicker-DtzFwNWk.cjs.map} +1 -1
  39. package/dist/{ColorPicker-DhSlvwNj.js → ColorPicker-Dw6Qk0iy.js} +3 -3
  40. package/dist/{ColorPicker-DhSlvwNj.js.map → ColorPicker-Dw6Qk0iy.js.map} +1 -1
  41. package/dist/{ColorPickerPanel-BOGYXXF1.cjs → ColorPickerPanel--wBX-m7J.cjs} +2 -2
  42. package/dist/{ColorPickerPanel-BOGYXXF1.cjs.map → ColorPickerPanel--wBX-m7J.cjs.map} +1 -1
  43. package/dist/{ColorPickerPanel-D4t3b9bB.js → ColorPickerPanel-Dp7bnnVf.js} +2 -2
  44. package/dist/{ColorPickerPanel-D4t3b9bB.js.map → ColorPickerPanel-Dp7bnnVf.js.map} +1 -1
  45. package/dist/ConfigProvider-Bszl3Wr3.cjs +2 -0
  46. package/dist/ConfigProvider-Bszl3Wr3.cjs.map +1 -0
  47. package/dist/ConfigProvider-DR9YMy9U.js +320 -0
  48. package/dist/ConfigProvider-DR9YMy9U.js.map +1 -0
  49. package/dist/{CopyButton-3585thVM.cjs → CopyButton-Ct-8AmmX.cjs} +2 -2
  50. package/dist/{CopyButton-3585thVM.cjs.map → CopyButton-Ct-8AmmX.cjs.map} +1 -1
  51. package/dist/{CopyButton-BEY1gJzK.js → CopyButton-DJ1PSJZU.js} +3 -3
  52. package/dist/{CopyButton-BEY1gJzK.js.map → CopyButton-DJ1PSJZU.js.map} +1 -1
  53. package/dist/{DatePicker-Dyj2halw.cjs → DatePicker-BxEydgfu.cjs} +2 -2
  54. package/dist/{DatePicker-Dyj2halw.cjs.map → DatePicker-BxEydgfu.cjs.map} +1 -1
  55. package/dist/{DatePicker-CEFGgXLF.js → DatePicker-CJioG5M7.js} +4 -4
  56. package/dist/{DatePicker-CEFGgXLF.js.map → DatePicker-CJioG5M7.js.map} +1 -1
  57. package/dist/{DateTimePicker-CjX4-8PP.cjs → DateTimePicker-COEj2Z0F.cjs} +2 -2
  58. package/dist/{DateTimePicker-CjX4-8PP.cjs.map → DateTimePicker-COEj2Z0F.cjs.map} +1 -1
  59. package/dist/{DateTimePicker-hmYBEuUM.js → DateTimePicker-e2zj2bhS.js} +7 -7
  60. package/dist/{DateTimePicker-hmYBEuUM.js.map → DateTimePicker-e2zj2bhS.js.map} +1 -1
  61. package/dist/{EmptyState-DJDNLKT7.js → EmptyState-BTd7aVgu.js} +12 -12
  62. package/dist/{EmptyState-DJDNLKT7.js.map → EmptyState-BTd7aVgu.js.map} +1 -1
  63. package/dist/EmptyState-Bv4XXnD1.cjs +2 -0
  64. package/dist/{EmptyState-Bj-vX_UV.cjs.map → EmptyState-Bv4XXnD1.cjs.map} +1 -1
  65. package/dist/{FileCard-Dr5-z1R3.cjs → FileCard-DW5Ur8Aj.cjs} +2 -2
  66. package/dist/{FileCard-Dr5-z1R3.cjs.map → FileCard-DW5Ur8Aj.cjs.map} +1 -1
  67. package/dist/{FileCard-C9Ncifnu.js → FileCard-DY8N9Lzz.js} +3 -3
  68. package/dist/{FileCard-C9Ncifnu.js.map → FileCard-DY8N9Lzz.js.map} +1 -1
  69. package/dist/{FileUploader-DeyZENqq.cjs → FileUploader-B7VfhcR7.cjs} +2 -2
  70. package/dist/{FileUploader-DeyZENqq.cjs.map → FileUploader-B7VfhcR7.cjs.map} +1 -1
  71. package/dist/{FileUploader-XFmBNkA0.js → FileUploader-BYF5FvUc.js} +5 -5
  72. package/dist/{FileUploader-XFmBNkA0.js.map → FileUploader-BYF5FvUc.js.map} +1 -1
  73. package/dist/{Flag-Bxnx26DM.cjs → Flag-CB4YyPj3.cjs} +2 -2
  74. package/dist/{Flag-Bxnx26DM.cjs.map → Flag-CB4YyPj3.cjs.map} +1 -1
  75. package/dist/{Flag-Bs0xNP-P.js → Flag-yA1y5XzR.js} +2 -2
  76. package/dist/{Flag-Bs0xNP-P.js.map → Flag-yA1y5XzR.js.map} +1 -1
  77. package/dist/{FullscreenToggle-BncatGKj.cjs → FullscreenToggle-0lskYnpx.cjs} +2 -2
  78. package/dist/{FullscreenToggle-BncatGKj.cjs.map → FullscreenToggle-0lskYnpx.cjs.map} +1 -1
  79. package/dist/{FullscreenToggle-DMlp05UN.js → FullscreenToggle-jSLruiKt.js} +3 -3
  80. package/dist/{FullscreenToggle-DMlp05UN.js.map → FullscreenToggle-jSLruiKt.js.map} +1 -1
  81. package/dist/{IconButton-DXMmtuLA.js → IconButton-BEGWfcVc.js} +2 -2
  82. package/dist/{IconButton-DXMmtuLA.js.map → IconButton-BEGWfcVc.js.map} +1 -1
  83. package/dist/{IconButton-Lv0sDDR9.cjs → IconButton-BN-bZxEi.cjs} +2 -2
  84. package/dist/{IconButton-Lv0sDDR9.cjs.map → IconButton-BN-bZxEi.cjs.map} +1 -1
  85. package/dist/Link-BQlvsu9V.js +48 -0
  86. package/dist/Link-BQlvsu9V.js.map +1 -0
  87. package/dist/Link-GZT51mKx.cjs +2 -0
  88. package/dist/Link-GZT51mKx.cjs.map +1 -0
  89. package/dist/{Loader-53HFNMVX.cjs → Loader-B5YqzEYy.cjs} +2 -2
  90. package/dist/{Loader-53HFNMVX.cjs.map → Loader-B5YqzEYy.cjs.map} +1 -1
  91. package/dist/Loader-BZIa8hwv.js +29 -0
  92. package/dist/{Loader-WsjQFl4p.js.map → Loader-BZIa8hwv.js.map} +1 -1
  93. package/dist/Modal-0V-REVV-.cjs +2 -0
  94. package/dist/{Modal-V6eyGSzW.cjs.map → Modal-0V-REVV-.cjs.map} +1 -1
  95. package/dist/Modal-B7yoFC3o.js +195 -0
  96. package/dist/{Modal-DBYcoCbJ.js.map → Modal-B7yoFC3o.js.map} +1 -1
  97. package/dist/{MultiSelect-BsYPr3LD.js → MultiSelect-C8xuXaoR.js} +4 -4
  98. package/dist/{MultiSelect-BsYPr3LD.js.map → MultiSelect-C8xuXaoR.js.map} +1 -1
  99. package/dist/{MultiSelect-DS2DRpaP.cjs → MultiSelect-gj9Ymeh2.cjs} +2 -2
  100. package/dist/{MultiSelect-DS2DRpaP.cjs.map → MultiSelect-gj9Ymeh2.cjs.map} +1 -1
  101. package/dist/{NumberField-mFb9pKCx.js → NumberField-2yM0mmyj.js} +3 -3
  102. package/dist/{NumberField-mFb9pKCx.js.map → NumberField-2yM0mmyj.js.map} +1 -1
  103. package/dist/{NumberField-DC3TdGTt.cjs → NumberField-CEt95jcC.cjs} +2 -2
  104. package/dist/{NumberField-DC3TdGTt.cjs.map → NumberField-CEt95jcC.cjs.map} +1 -1
  105. package/dist/OtpField-CkliY82J.js +174 -0
  106. package/dist/OtpField-CkliY82J.js.map +1 -0
  107. package/dist/OtpField-on-K0_fM.cjs +2 -0
  108. package/dist/OtpField-on-K0_fM.cjs.map +1 -0
  109. package/dist/{PageLayout-pYL43wI9.cjs → PageLayout-DGHu7Vm3.cjs} +2 -2
  110. package/dist/{PageLayout-pYL43wI9.cjs.map → PageLayout-DGHu7Vm3.cjs.map} +1 -1
  111. package/dist/{PageLayout-qf0H_EmS.js → PageLayout-DzPh_G6H.js} +2 -2
  112. package/dist/{PageLayout-qf0H_EmS.js.map → PageLayout-DzPh_G6H.js.map} +1 -1
  113. package/dist/{PageNotFound-D1795gJ7.cjs → PageNotFound-B8_eIT8p.cjs} +2 -2
  114. package/dist/{PageNotFound-D1795gJ7.cjs.map → PageNotFound-B8_eIT8p.cjs.map} +1 -1
  115. package/dist/{PageNotFound-YGVMVvyG.js → PageNotFound-CCFfPHgA.js} +5 -5
  116. package/dist/{PageNotFound-YGVMVvyG.js.map → PageNotFound-CCFfPHgA.js.map} +1 -1
  117. package/dist/{Pagination-WJq_7QNi.cjs → Pagination-BdVebW2L.cjs} +2 -2
  118. package/dist/{Pagination-WJq_7QNi.cjs.map → Pagination-BdVebW2L.cjs.map} +1 -1
  119. package/dist/{Pagination-BTvUJiee.js → Pagination-CmskZjcz.js} +2 -2
  120. package/dist/{Pagination-BTvUJiee.js.map → Pagination-CmskZjcz.js.map} +1 -1
  121. package/dist/QrCode-Bcj9_Emc.js +70 -0
  122. package/dist/QrCode-Bcj9_Emc.js.map +1 -0
  123. package/dist/QrCode-DfDfGhG-.cjs +2 -0
  124. package/dist/QrCode-DfDfGhG-.cjs.map +1 -0
  125. package/dist/{RemoveDialog-BSQ6EMW-.js → RemoveDialog-CV75B0aN.js} +4 -4
  126. package/dist/{RemoveDialog-BSQ6EMW-.js.map → RemoveDialog-CV75B0aN.js.map} +1 -1
  127. package/dist/{RemoveDialog-BhcwsY0q.cjs → RemoveDialog-DmOk0ezc.cjs} +2 -2
  128. package/dist/{RemoveDialog-BhcwsY0q.cjs.map → RemoveDialog-DmOk0ezc.cjs.map} +1 -1
  129. package/dist/{RichTextEditor-CaGPtwXe.js → RichTextEditor-Bm8FFbcR.js} +7 -7
  130. package/dist/{RichTextEditor-CaGPtwXe.js.map → RichTextEditor-Bm8FFbcR.js.map} +1 -1
  131. package/dist/{RichTextEditor-Bc1fhvzn.cjs → RichTextEditor-uXddgtlk.cjs} +2 -2
  132. package/dist/{RichTextEditor-Bc1fhvzn.cjs.map → RichTextEditor-uXddgtlk.cjs.map} +1 -1
  133. package/dist/RootLayout-Cf7Rr9Iz.js +515 -0
  134. package/dist/RootLayout-Cf7Rr9Iz.js.map +1 -0
  135. package/dist/RootLayout-kssj9exn.cjs +2 -0
  136. package/dist/RootLayout-kssj9exn.cjs.map +1 -0
  137. package/dist/{Select-Cx1Yl8nq.cjs → Select-7vEGJCvA.cjs} +2 -2
  138. package/dist/{Select-Cx1Yl8nq.cjs.map → Select-7vEGJCvA.cjs.map} +1 -1
  139. package/dist/{Select-vKZzS9K4.js → Select-CdX3Ks7y.js} +3 -3
  140. package/dist/{Select-vKZzS9K4.js.map → Select-CdX3Ks7y.js.map} +1 -1
  141. package/dist/Sidebar-DcKIEfhy.cjs +2 -0
  142. package/dist/Sidebar-DcKIEfhy.cjs.map +1 -0
  143. package/dist/Sidebar-YH-DoNG9.js +553 -0
  144. package/dist/Sidebar-YH-DoNG9.js.map +1 -0
  145. package/dist/{SpeedDial-D6sO-9ES.cjs → SpeedDial-9_Yk8AGx.cjs} +2 -2
  146. package/dist/{SpeedDial-D6sO-9ES.cjs.map → SpeedDial-9_Yk8AGx.cjs.map} +1 -1
  147. package/dist/{SpeedDial-Bb0ioXaO.js → SpeedDial-DWNuC6f8.js} +2 -2
  148. package/dist/{SpeedDial-Bb0ioXaO.js.map → SpeedDial-DWNuC6f8.js.map} +1 -1
  149. package/dist/{Stepper-CVY8NJEI.cjs → Stepper-B1z_u650.cjs} +2 -2
  150. package/dist/{Stepper-CVY8NJEI.cjs.map → Stepper-B1z_u650.cjs.map} +1 -1
  151. package/dist/{Stepper-BaEOUnYe.js → Stepper-CuqFpamY.js} +2 -2
  152. package/dist/{Stepper-BaEOUnYe.js.map → Stepper-CuqFpamY.js.map} +1 -1
  153. package/dist/{Table-AQ7yJhtW.cjs → Table-BPit83Pn.cjs} +2 -2
  154. package/dist/{Table-AQ7yJhtW.cjs.map → Table-BPit83Pn.cjs.map} +1 -1
  155. package/dist/{Table-wn-B7iLj.js → Table-Drdhfm99.js} +15 -15
  156. package/dist/{Table-wn-B7iLj.js.map → Table-Drdhfm99.js.map} +1 -1
  157. package/dist/{Tabs-BtcJ2jBl.cjs → Tabs-BiKDy_fv.cjs} +2 -2
  158. package/dist/{Tabs-BtcJ2jBl.cjs.map → Tabs-BiKDy_fv.cjs.map} +1 -1
  159. package/dist/{Tabs-DJMfAUni.js → Tabs-ytbBzAxG.js} +2 -2
  160. package/dist/{Tabs-DJMfAUni.js.map → Tabs-ytbBzAxG.js.map} +1 -1
  161. package/dist/{TagsField-Bvh6Fm5Y.js → TagsField-CEt_PC5y.js} +4 -4
  162. package/dist/{TagsField-Bvh6Fm5Y.js.map → TagsField-CEt_PC5y.js.map} +1 -1
  163. package/dist/{TagsField-4x3RmGwt.cjs → TagsField-DpDbf0ru.cjs} +2 -2
  164. package/dist/{TagsField-4x3RmGwt.cjs.map → TagsField-DpDbf0ru.cjs.map} +1 -1
  165. package/dist/{TextField-DcdwUA9d.js → TextField-BWdmF-HE.js} +3 -3
  166. package/dist/{TextField-DcdwUA9d.js.map → TextField-BWdmF-HE.js.map} +1 -1
  167. package/dist/{TextField-DNqnpAWB.cjs → TextField-Df_kGy2l.cjs} +2 -2
  168. package/dist/{TextField-DNqnpAWB.cjs.map → TextField-Df_kGy2l.cjs.map} +1 -1
  169. package/dist/{ThemeToggle-isboxfZk.cjs → ThemeToggle-BJdXhmfc.cjs} +2 -2
  170. package/dist/{ThemeToggle-isboxfZk.cjs.map → ThemeToggle-BJdXhmfc.cjs.map} +1 -1
  171. package/dist/{ThemeToggle-BVQmSMsj.js → ThemeToggle-CgxF6oUu.js} +3 -3
  172. package/dist/{ThemeToggle-BVQmSMsj.js.map → ThemeToggle-CgxF6oUu.js.map} +1 -1
  173. package/dist/{TimeColumns-DxFjjtc7.cjs → TimeColumns-DxVN0V8l.cjs} +2 -2
  174. package/dist/{TimeColumns-DxFjjtc7.cjs.map → TimeColumns-DxVN0V8l.cjs.map} +1 -1
  175. package/dist/{TimeColumns-CFy_PynH.js → TimeColumns-n-fz50mr.js} +2 -2
  176. package/dist/{TimeColumns-CFy_PynH.js.map → TimeColumns-n-fz50mr.js.map} +1 -1
  177. package/dist/{TimePicker-ZO7jOJVa.js → TimePicker-Bopxx3zU.js} +5 -5
  178. package/dist/{TimePicker-ZO7jOJVa.js.map → TimePicker-Bopxx3zU.js.map} +1 -1
  179. package/dist/{TimePicker-v1yA7Igl.cjs → TimePicker-DvoemiGz.cjs} +2 -2
  180. package/dist/{TimePicker-v1yA7Igl.cjs.map → TimePicker-DvoemiGz.cjs.map} +1 -1
  181. package/dist/{Toaster-C6UK_2TB.js → Toaster-BxIY2H4V.js} +2 -2
  182. package/dist/{Toaster-C6UK_2TB.js.map → Toaster-BxIY2H4V.js.map} +1 -1
  183. package/dist/{Toaster-Qnsq3guQ.cjs → Toaster-DZSzFse_.cjs} +2 -2
  184. package/dist/{Toaster-Qnsq3guQ.cjs.map → Toaster-DZSzFse_.cjs.map} +1 -1
  185. package/dist/{TranslatedFields-CLMvRpJi.cjs → TranslatedFields-BtDLkQy7.cjs} +2 -2
  186. package/dist/{TranslatedFields-CLMvRpJi.cjs.map → TranslatedFields-BtDLkQy7.cjs.map} +1 -1
  187. package/dist/{TranslatedFields-Bo5rZ7so.js → TranslatedFields-DmR8LKSG.js} +5 -5
  188. package/dist/{TranslatedFields-Bo5rZ7so.js.map → TranslatedFields-DmR8LKSG.js.map} +1 -1
  189. package/dist/{UserCard-CIjZz5xd.cjs → UserCard-C1yFvVIc.cjs} +2 -2
  190. package/dist/{UserCard-CIjZz5xd.cjs.map → UserCard-C1yFvVIc.cjs.map} +1 -1
  191. package/dist/{UserCard-454Kc7JS.js → UserCard-J8Bpbh3x.js} +3 -3
  192. package/dist/{UserCard-454Kc7JS.js.map → UserCard-J8Bpbh3x.js.map} +1 -1
  193. package/dist/app/AdminRoot.d.cts +4 -1
  194. package/dist/app/AdminRoot.d.ts +4 -1
  195. package/dist/components/Alert/index.cjs +1 -1
  196. package/dist/components/Alert/index.js +1 -1
  197. package/dist/components/Blockquote/Blockquote.d.cts +1 -1
  198. package/dist/components/Blockquote/Blockquote.d.ts +1 -1
  199. package/dist/components/Blockquote/index.cjs +1 -1
  200. package/dist/components/Blockquote/index.js +1 -1
  201. package/dist/components/Breadcrumbs/index.cjs +1 -1
  202. package/dist/components/Breadcrumbs/index.js +1 -1
  203. package/dist/components/Button/index.cjs +1 -1
  204. package/dist/components/Button/index.js +1 -1
  205. package/dist/components/Card/index.cjs +1 -1
  206. package/dist/components/Card/index.js +1 -1
  207. package/dist/components/Chip/index.cjs +1 -1
  208. package/dist/components/Chip/index.js +1 -1
  209. package/dist/components/CodeBlock/index.cjs +1 -1
  210. package/dist/components/CodeBlock/index.js +1 -1
  211. package/dist/components/ColorPicker/index.cjs +1 -1
  212. package/dist/components/ColorPicker/index.js +1 -1
  213. package/dist/components/CopyButton/index.cjs +1 -1
  214. package/dist/components/CopyButton/index.js +1 -1
  215. package/dist/components/DatePicker/index.cjs +1 -1
  216. package/dist/components/DatePicker/index.js +1 -1
  217. package/dist/components/DateTimePicker/index.cjs +1 -1
  218. package/dist/components/DateTimePicker/index.js +1 -1
  219. package/dist/components/EmptyState/index.cjs +1 -1
  220. package/dist/components/EmptyState/index.js +1 -1
  221. package/dist/components/FileCard/index.cjs +1 -1
  222. package/dist/components/FileCard/index.js +1 -1
  223. package/dist/components/FileUploader/index.cjs +1 -1
  224. package/dist/components/FileUploader/index.js +1 -1
  225. package/dist/components/Flag/index.cjs +1 -1
  226. package/dist/components/Flag/index.js +1 -1
  227. package/dist/components/FullscreenToggle/index.cjs +1 -1
  228. package/dist/components/FullscreenToggle/index.js +1 -1
  229. package/dist/components/IconButton/index.cjs +1 -1
  230. package/dist/components/IconButton/index.js +1 -1
  231. package/dist/components/Link/Link.d.cts +44 -0
  232. package/dist/components/Link/Link.d.ts +44 -0
  233. package/dist/components/Link/index.cjs +2 -0
  234. package/dist/components/Link/index.cjs.map +1 -0
  235. package/dist/components/Link/index.d.cts +3 -0
  236. package/dist/components/Link/index.d.ts +3 -0
  237. package/dist/components/Link/index.js +6 -0
  238. package/dist/components/Link/index.js.map +1 -0
  239. package/dist/components/Loader/index.cjs +1 -1
  240. package/dist/components/Loader/index.js +1 -1
  241. package/dist/components/Modal/index.cjs +1 -1
  242. package/dist/components/Modal/index.js +1 -1
  243. package/dist/components/MultiSelect/index.cjs +1 -1
  244. package/dist/components/MultiSelect/index.js +1 -1
  245. package/dist/components/NumberField/index.cjs +1 -1
  246. package/dist/components/NumberField/index.js +1 -1
  247. package/dist/components/OtpField/OtpField.d.cts +3 -0
  248. package/dist/components/OtpField/OtpField.d.ts +3 -0
  249. package/dist/components/OtpField/index.cjs +1 -1
  250. package/dist/components/OtpField/index.d.cts +1 -1
  251. package/dist/components/OtpField/index.d.ts +1 -1
  252. package/dist/components/OtpField/index.js +1 -1
  253. package/dist/components/PageLayout/index.cjs +1 -1
  254. package/dist/components/PageLayout/index.js +1 -1
  255. package/dist/components/PageNotFound/index.cjs +1 -1
  256. package/dist/components/PageNotFound/index.js +1 -1
  257. package/dist/components/Pagination/index.cjs +1 -1
  258. package/dist/components/Pagination/index.js +1 -1
  259. package/dist/components/QrCode/QrCode.d.cts +46 -0
  260. package/dist/components/QrCode/QrCode.d.ts +46 -0
  261. package/dist/components/QrCode/index.cjs +2 -0
  262. package/dist/components/QrCode/index.cjs.map +1 -0
  263. package/dist/components/QrCode/index.d.cts +2 -0
  264. package/dist/components/QrCode/index.d.ts +2 -0
  265. package/dist/components/QrCode/index.js +6 -0
  266. package/dist/components/QrCode/index.js.map +1 -0
  267. package/dist/components/RemoveDialog/index.cjs +1 -1
  268. package/dist/components/RemoveDialog/index.js +1 -1
  269. package/dist/components/RichTextEditor/index.cjs +1 -1
  270. package/dist/components/RichTextEditor/index.js +1 -1
  271. package/dist/components/RootLayout/ActionSet.d.cts +27 -0
  272. package/dist/components/RootLayout/ActionSet.d.ts +27 -0
  273. package/dist/components/RootLayout/SettingsDrawer.d.cts +3 -1
  274. package/dist/components/RootLayout/SettingsDrawer.d.ts +3 -1
  275. package/dist/components/RootLayout/index.cjs +1 -1
  276. package/dist/components/RootLayout/index.js +1 -1
  277. package/dist/components/Select/index.cjs +1 -1
  278. package/dist/components/Select/index.js +1 -1
  279. package/dist/components/Sidebar/Sidebar.d.cts +55 -3
  280. package/dist/components/Sidebar/Sidebar.d.ts +55 -3
  281. package/dist/components/Sidebar/index.cjs +1 -1
  282. package/dist/components/Sidebar/index.d.cts +1 -0
  283. package/dist/components/Sidebar/index.d.ts +1 -0
  284. package/dist/components/Sidebar/index.js +1 -1
  285. package/dist/components/SpeedDial/index.cjs +1 -1
  286. package/dist/components/SpeedDial/index.js +1 -1
  287. package/dist/components/Stepper/index.cjs +1 -1
  288. package/dist/components/Stepper/index.js +1 -1
  289. package/dist/components/Table/index.cjs +1 -1
  290. package/dist/components/Table/index.js +1 -1
  291. package/dist/components/Tabs/index.cjs +1 -1
  292. package/dist/components/Tabs/index.js +1 -1
  293. package/dist/components/TagsField/index.cjs +1 -1
  294. package/dist/components/TagsField/index.js +1 -1
  295. package/dist/components/TextField/index.cjs +1 -1
  296. package/dist/components/TextField/index.js +1 -1
  297. package/dist/components/ThemeToggle/index.cjs +1 -1
  298. package/dist/components/ThemeToggle/index.js +1 -1
  299. package/dist/components/TimePicker/index.cjs +1 -1
  300. package/dist/components/TimePicker/index.js +1 -1
  301. package/dist/components/Toast/index.cjs +1 -1
  302. package/dist/components/Toast/index.js +1 -1
  303. package/dist/components/TranslatedFields/index.cjs +1 -1
  304. package/dist/components/TranslatedFields/index.js +1 -1
  305. package/dist/components/UserCard/index.cjs +1 -1
  306. package/dist/components/UserCard/index.js +1 -1
  307. package/dist/components/index.d.cts +2 -0
  308. package/dist/components/index.d.ts +2 -0
  309. package/dist/entries/app.cjs +1 -1
  310. package/dist/entries/app.js +1 -1
  311. package/dist/entries/components.cjs +1 -1
  312. package/dist/entries/components.js +112 -108
  313. package/dist/entries/components.js.map +1 -1
  314. package/dist/entries/i18n.cjs +1 -1
  315. package/dist/entries/i18n.js +2 -2
  316. package/dist/entries/theme.cjs +1 -1
  317. package/dist/entries/theme.d.cts +1 -1
  318. package/dist/entries/theme.d.ts +1 -1
  319. package/dist/entries/theme.js +1 -1
  320. package/dist/i18n/messages.d.cts +7 -0
  321. package/dist/i18n/messages.d.ts +7 -0
  322. package/dist/index.cjs +1 -1
  323. package/dist/index.css +25 -2
  324. package/dist/index.js +116 -112
  325. package/dist/index.js.map +1 -1
  326. package/dist/messages-DKT0SRM0.cjs +36 -0
  327. package/dist/messages-DKT0SRM0.cjs.map +1 -0
  328. package/dist/{messages-CGHhwf6F.js → messages-ogohLC5P.js} +74 -25
  329. package/dist/messages-ogohLC5P.js.map +1 -0
  330. package/dist/theme/ConfigProvider.d.cts +41 -1
  331. package/dist/theme/ConfigProvider.d.ts +41 -1
  332. package/dist/theme/index.d.cts +1 -1
  333. package/dist/theme/index.d.ts +1 -1
  334. package/package.json +6 -1
  335. package/dist/AdminRoot-BDRLuMX6.cjs.map +0 -1
  336. package/dist/AdminRoot-DvF0js0q.js.map +0 -1
  337. package/dist/Alert-CwoRkKq4.cjs +0 -2
  338. package/dist/Alert-DPYmdaWs.js +0 -71
  339. package/dist/Blockquote-CNIuJFHq.js +0 -46
  340. package/dist/Blockquote-CxHwOecc.cjs +0 -2
  341. package/dist/ConfigProvider-C7DUWHrb.cjs +0 -2
  342. package/dist/ConfigProvider-C7DUWHrb.cjs.map +0 -1
  343. package/dist/ConfigProvider-DT0yrgmd.js +0 -296
  344. package/dist/ConfigProvider-DT0yrgmd.js.map +0 -1
  345. package/dist/EmptyState-Bj-vX_UV.cjs +0 -2
  346. package/dist/Loader-WsjQFl4p.js +0 -28
  347. package/dist/Modal-DBYcoCbJ.js +0 -195
  348. package/dist/Modal-V6eyGSzW.cjs +0 -2
  349. package/dist/OtpField-1ullIIZQ.js +0 -171
  350. package/dist/OtpField-1ullIIZQ.js.map +0 -1
  351. package/dist/OtpField-BYj9SDHb.cjs +0 -2
  352. package/dist/OtpField-BYj9SDHb.cjs.map +0 -1
  353. package/dist/RootLayout-BNwHsuhC.js +0 -422
  354. package/dist/RootLayout-BNwHsuhC.js.map +0 -1
  355. package/dist/RootLayout-CB-3FgOp.cjs +0 -2
  356. package/dist/RootLayout-CB-3FgOp.cjs.map +0 -1
  357. package/dist/Sidebar-CJ7DtOqb.js +0 -513
  358. package/dist/Sidebar-CJ7DtOqb.js.map +0 -1
  359. package/dist/Sidebar-Cv95DJxZ.cjs +0 -2
  360. package/dist/Sidebar-Cv95DJxZ.cjs.map +0 -1
  361. package/dist/messages-CGHhwf6F.js.map +0 -1
  362. package/dist/messages-DZJyiaf9.cjs +0 -36
  363. package/dist/messages-DZJyiaf9.cjs.map +0 -1
@@ -0,0 +1,515 @@
1
+ import { jsxs as l, Fragment as L, jsx as e } from "react/jsx-runtime";
2
+ import { useState as P, useEffect as U } from "react";
3
+ import { useRouterState as X, useNavigate as oe } from "@tanstack/react-router";
4
+ import { clsx as Y } from "clsx";
5
+ import { a as Z } from "./useMediaQuery-DrDUrkmJ.js";
6
+ import { u as ne } from "./useLockBodyScroll-DwBILLPK.js";
7
+ import { A as J } from "./Avatar-Q50J8wdN.js";
8
+ import { C as $, R as re } from "./Col-B51RlwWP.js";
9
+ import { D as k } from "./Divider-LtH3dLgw.js";
10
+ import { D as K } from "./Dropdown-FfkmluRu.js";
11
+ import { I as g } from "./Icon-DaTvzLBu.js";
12
+ import { I as z } from "./IconButton-BEGWfcVc.js";
13
+ import { L as E } from "./ListItem-Cn15lJBr.js";
14
+ import { F as le } from "./FullscreenToggle-jSLruiKt.js";
15
+ import { T as ie } from "./ThemeToggle-CgxF6oUu.js";
16
+ import { T as c } from "./Typography-Cta6Rg4L.js";
17
+ import { B as ce } from "./Breadcrumbs-DQHHeLId.js";
18
+ import { T as de } from "./Toaster-BxIY2H4V.js";
19
+ import { a as me, c as pe, d as he, N as V, S as ge } from "./Sidebar-YH-DoNG9.js";
20
+ import { F as ue } from "./Flag-yA1y5XzR.js";
21
+ import { M as be } from "./Modal-B7yoFC3o.js";
22
+ import { a as H } from "./ChoiceCardGroup-DBohUnRj.js";
23
+ import { S as ve } from "./Select-CdX3Ks7y.js";
24
+ import { S as fe } from "./SwatchPicker-CqyWngFJ.js";
25
+ import { m as ee, a as q, D as w, u as _e, g as ke } from "./ConfigProvider-DR9YMy9U.js";
26
+ import { B as Se } from "./Button-DBs8xnA5.js";
27
+ import { S as Ce } from "./SpeedDial-DWNuC6f8.js";
28
+ const ye = {
29
+ light: [
30
+ "#dc2626",
31
+ // red
32
+ "#ea580c",
33
+ // orange
34
+ "#d97706",
35
+ // amber
36
+ "#ca8a04",
37
+ // yellow
38
+ "#65a30d",
39
+ // lime
40
+ "#16a34a",
41
+ // green
42
+ "#059669",
43
+ // emerald
44
+ "#0891b2",
45
+ // cyan
46
+ "#0284c7",
47
+ // sky
48
+ "#2563eb",
49
+ // blue
50
+ "#4f46e5",
51
+ // indigo
52
+ "#7c3aed",
53
+ // violet
54
+ "#c026d3",
55
+ // fuchsia
56
+ "#db2777",
57
+ // pink
58
+ "#475569"
59
+ // slate
60
+ ],
61
+ dark: [
62
+ "#f87171",
63
+ // red
64
+ "#fb923c",
65
+ // orange
66
+ "#fbbf24",
67
+ // amber
68
+ "#facc15",
69
+ // yellow
70
+ "#a3e635",
71
+ // lime
72
+ "#4ade80",
73
+ // green
74
+ "#34d399",
75
+ // emerald
76
+ "#22d3ee",
77
+ // cyan
78
+ "#38bdf8",
79
+ // sky
80
+ "#60a5fa",
81
+ // blue
82
+ "#818cf8",
83
+ // indigo
84
+ "#a78bfa",
85
+ // violet
86
+ "#e879f9",
87
+ // fuchsia
88
+ "#f472b6",
89
+ // pink
90
+ "#94a3b8"
91
+ // slate
92
+ ]
93
+ };
94
+ function Te({ open: r, onClose: b, showTheme: v = !0 }) {
95
+ const {
96
+ mode: n,
97
+ setMode: S,
98
+ accentColors: C,
99
+ defaultAccentColors: y,
100
+ setAccentColor: F,
101
+ headerSticky: D,
102
+ setHeaderSticky: I,
103
+ fontFamily: f,
104
+ setFontFamily: m,
105
+ shape: O,
106
+ setShape: d
107
+ } = ee(), t = q(), [B, T] = P(""), _ = B.trim(), N = f !== w ? [w, f] : [w], M = (_.length > 0 && !N.some((s) => s.toLowerCase() === _.toLowerCase()) ? [_, ...N] : N).map((s) => ({
108
+ value: s,
109
+ label: s === w ? t("settings.fontDefault", { font: s }) : s
110
+ })), x = (s, i) => {
111
+ const p = y[s], u = [p, ...ye[s].filter((h) => h.toLowerCase() !== p.toLowerCase())];
112
+ return /* @__PURE__ */ e(
113
+ fe,
114
+ {
115
+ label: i,
116
+ colors: u,
117
+ value: C[s] ?? p,
118
+ onChange: (h) => F(h.toLowerCase() === p.toLowerCase() ? null : h, s),
119
+ labels: { [p]: t("settings.accentDefault", { color: p }) },
120
+ "aria-label": String(i)
121
+ }
122
+ );
123
+ };
124
+ return /* @__PURE__ */ l(
125
+ be,
126
+ {
127
+ open: r,
128
+ onClose: b,
129
+ placement: "right",
130
+ size: "sm",
131
+ title: t("settings.label"),
132
+ icon: "Setting5",
133
+ children: [
134
+ v && /* @__PURE__ */ l(L, { children: [
135
+ /* @__PURE__ */ e(c, { variant: "subtitle", as: "h3", children: t("settings.themeTitle") }),
136
+ /* @__PURE__ */ e(
137
+ c,
138
+ {
139
+ variant: "bodySmall",
140
+ color: "muted",
141
+ as: "p",
142
+ style: { marginTop: "var(--tz-space-xxs)" },
143
+ children: t("settings.themeDesc")
144
+ }
145
+ ),
146
+ /* @__PURE__ */ e(
147
+ H,
148
+ {
149
+ exclusive: !0,
150
+ color: "accent",
151
+ minCardWidth: 130,
152
+ value: n,
153
+ onChange: (s) => {
154
+ typeof s == "string" && S(s);
155
+ },
156
+ options: [
157
+ {
158
+ value: "light",
159
+ label: t("settings.light"),
160
+ description: t("settings.lightDesc"),
161
+ icon: "Sun"
162
+ },
163
+ {
164
+ value: "dark",
165
+ label: t("settings.dark"),
166
+ description: t("settings.darkDesc"),
167
+ icon: "Moon"
168
+ }
169
+ ],
170
+ "aria-label": t("settings.themeTitle"),
171
+ style: { marginTop: "var(--tz-space-sm)" }
172
+ }
173
+ ),
174
+ /* @__PURE__ */ e(k, { style: { margin: "var(--tz-space-md) 0" } })
175
+ ] }),
176
+ /* @__PURE__ */ e(c, { variant: "subtitle", as: "h3", children: t("settings.accentTitle") }),
177
+ /* @__PURE__ */ e(
178
+ c,
179
+ {
180
+ variant: "bodySmall",
181
+ color: "muted",
182
+ as: "p",
183
+ style: { marginTop: "var(--tz-space-xxs)" },
184
+ children: t("settings.accentDesc")
185
+ }
186
+ ),
187
+ /* @__PURE__ */ e($, { gap: "md", style: { marginTop: "var(--tz-space-sm)" }, children: v ? /* @__PURE__ */ l(L, { children: [
188
+ x("light", t("settings.lightTheme")),
189
+ x("dark", t("settings.darkTheme"))
190
+ ] }) : (
191
+ // theme switching is off → the panel stays in one mode, so only that mode's accent matters
192
+ x(n, t(n === "light" ? "settings.lightTheme" : "settings.darkTheme"))
193
+ ) }),
194
+ /* @__PURE__ */ e(k, { style: { margin: "var(--tz-space-md) 0" } }),
195
+ /* @__PURE__ */ e(c, { variant: "subtitle", as: "h3", children: t("settings.fontTitle") }),
196
+ /* @__PURE__ */ e(
197
+ c,
198
+ {
199
+ variant: "bodySmall",
200
+ color: "muted",
201
+ as: "p",
202
+ style: { marginTop: "var(--tz-space-xxs)" },
203
+ children: t("settings.fontDesc")
204
+ }
205
+ ),
206
+ /* @__PURE__ */ e(
207
+ ve,
208
+ {
209
+ label: t("settings.fontFamily"),
210
+ searchable: !0,
211
+ searchPlaceholder: t("settings.fontSearch"),
212
+ value: f,
213
+ options: M,
214
+ onSearchChange: T,
215
+ onChange: (s) => {
216
+ m(s), T("");
217
+ },
218
+ "aria-label": t("settings.fontFamily"),
219
+ style: { marginTop: "var(--tz-space-sm)" }
220
+ }
221
+ ),
222
+ /* @__PURE__ */ e(k, { style: { margin: "var(--tz-space-md) 0" } }),
223
+ /* @__PURE__ */ e(c, { variant: "subtitle", as: "h3", children: t("settings.headerTitle") }),
224
+ /* @__PURE__ */ e(
225
+ c,
226
+ {
227
+ variant: "bodySmall",
228
+ color: "muted",
229
+ as: "p",
230
+ style: { marginTop: "var(--tz-space-xxs)" },
231
+ children: t("settings.headerDesc")
232
+ }
233
+ ),
234
+ /* @__PURE__ */ e(
235
+ H,
236
+ {
237
+ exclusive: !0,
238
+ color: "accent",
239
+ minCardWidth: 130,
240
+ value: D ? "fixed" : "static",
241
+ onChange: (s) => {
242
+ typeof s == "string" && I(s === "fixed");
243
+ },
244
+ options: [
245
+ {
246
+ value: "static",
247
+ label: t("settings.scrollable"),
248
+ description: t("settings.scrollableDesc")
249
+ },
250
+ { value: "fixed", label: t("settings.fixed"), description: t("settings.fixedDesc") }
251
+ ],
252
+ "aria-label": t("settings.headerTitle"),
253
+ style: { marginTop: "var(--tz-space-sm)" }
254
+ }
255
+ ),
256
+ /* @__PURE__ */ e(k, { style: { margin: "var(--tz-space-md) 0" } }),
257
+ /* @__PURE__ */ e(c, { variant: "subtitle", as: "h3", children: t("settings.shapeTitle") }),
258
+ /* @__PURE__ */ e(
259
+ c,
260
+ {
261
+ variant: "bodySmall",
262
+ color: "muted",
263
+ as: "p",
264
+ style: { marginTop: "var(--tz-space-xxs)" },
265
+ children: t("settings.shapeDesc")
266
+ }
267
+ ),
268
+ /* @__PURE__ */ e(
269
+ H,
270
+ {
271
+ exclusive: !0,
272
+ color: "accent",
273
+ minCardWidth: 130,
274
+ value: O,
275
+ onChange: (s) => {
276
+ (s === "rounded" || s === "square") && d(s);
277
+ },
278
+ options: [
279
+ {
280
+ value: "rounded",
281
+ label: t("settings.rounded"),
282
+ description: t("settings.roundedDesc")
283
+ },
284
+ { value: "square", label: t("settings.square"), description: t("settings.squareDesc") }
285
+ ],
286
+ "aria-label": t("settings.shapeTitle"),
287
+ style: { marginTop: "var(--tz-space-sm)" }
288
+ }
289
+ )
290
+ ]
291
+ }
292
+ );
293
+ }
294
+ const Ne = "_shell_o4ktv_5", xe = "_shellCollapsed_o4ktv_21", Ae = "_sidebar_o4ktv_21", ze = "_sidebarInner_o4ktv_49", we = "_sidebarClose_o4ktv_58", Le = "_backdrop_o4ktv_65", Fe = "_brand_o4ktv_70", De = "_sidebarSearch_o4ktv_86", Ie = "_navScroll_o4ktv_99", Be = "_sidebarFooter_o4ktv_108", Me = "_headerSearch_o4ktv_115", Re = "_main_o4ktv_119", Ee = "_topbar_o4ktv_126", He = "_topbarSticky_o4ktv_139", Pe = "_headerStart_o4ktv_150", qe = "_headerEnd_o4ktv_159", Oe = "_account_o4ktv_166", We = "_content_o4ktv_182", je = "_pageTitleRow_o4ktv_189", Qe = "_pageTitle_o4ktv_189", Ge = "_pageActions_o4ktv_207", Ue = "_pageActionsFab_o4ktv_221", Xe = "_pageActionsLetter_o4ktv_236", Ye = "_settings_o4ktv_248", o = {
295
+ shell: Ne,
296
+ shellCollapsed: xe,
297
+ sidebar: Ae,
298
+ sidebarInner: ze,
299
+ sidebarClose: we,
300
+ backdrop: Le,
301
+ brand: Fe,
302
+ sidebarSearch: De,
303
+ navScroll: Ie,
304
+ sidebarFooter: Be,
305
+ headerSearch: Me,
306
+ main: Re,
307
+ topbar: Ee,
308
+ topbarSticky: He,
309
+ headerStart: Pe,
310
+ headerEnd: qe,
311
+ account: Oe,
312
+ content: We,
313
+ pageTitleRow: je,
314
+ pageTitle: Qe,
315
+ pageActions: Ge,
316
+ pageActionsFab: Ue,
317
+ pageActionsLetter: Xe,
318
+ settings: Ye
319
+ }, Je = (r) => typeof r == "string" ? /* @__PURE__ */ e(g, { name: r }) : r, Ke = (r) => r.icon != null ? r.icon : typeof r.label == "string" && r.label.trim() ? /* @__PURE__ */ e("span", { className: o.pageActionsLetter, children: r.label.trim()[0].toUpperCase() }) : "More";
320
+ function Ve({ actions: r }) {
321
+ const b = q(), v = Z("xs");
322
+ return r.length ? v && r.length >= 2 ? /* @__PURE__ */ e(
323
+ Ce,
324
+ {
325
+ ariaLabel: b("pageActions.label"),
326
+ icon: "Add",
327
+ direction: "up",
328
+ className: o.pageActionsFab,
329
+ actions: r.map((n) => ({
330
+ icon: Ke(n),
331
+ label: n.label,
332
+ onClick: n.onClick,
333
+ disabled: n.disabled
334
+ }))
335
+ }
336
+ ) : /* @__PURE__ */ e(L, { children: r.map((n, S) => /* @__PURE__ */ e(
337
+ Se,
338
+ {
339
+ size: "sm",
340
+ color: n.color,
341
+ variant: n.variant,
342
+ disabled: n.disabled,
343
+ startIcon: n.icon != null ? Je(n.icon) : void 0,
344
+ onClick: n.onClick,
345
+ children: n.label
346
+ },
347
+ S
348
+ )) }) : null;
349
+ }
350
+ function xt({
351
+ logo: r,
352
+ sidebarFooter: b,
353
+ header: v,
354
+ toaster: n = !0,
355
+ children: S
356
+ }) {
357
+ const C = me(), y = pe(), { headerSticky: F } = ee(), { language: D, setLanguage: I, languages: f } = _e(), m = q(), d = { ...ke(), ...v }, t = d.theme ?? !0, B = d.fullscreen ?? !1, T = d.settings ?? !0, _ = d.search ?? !0, N = d.languages ?? !0, W = d.breadcrumbs ?? !0, M = typeof n == "object" ? n : void 0, x = d.pageTitle ?? !0, s = d.onLogout, i = d.user, p = d.menu ?? [], u = Z("md"), [h, A] = P(u);
358
+ U(() => {
359
+ A(u);
360
+ }, [u]), ne(u && !h);
361
+ const te = X({ select: (a) => a.location.pathname });
362
+ U(() => {
363
+ u && A(!0);
364
+ }, [te]);
365
+ const j = X({
366
+ select: (a) => a.statusCode === 404 || a.matches.some((R) => R.status === "notFound")
367
+ }), [ae, Q] = P(!1), se = oe(), G = (he() ?? []).map((a) => ({
368
+ label: a.label,
369
+ icon: a.icon,
370
+ color: a.color,
371
+ variant: a.variant,
372
+ disabled: a.disabled,
373
+ onClick: a.onClick ?? (a.to ? () => se({ to: a.to, params: a.params, search: a.search }) : void 0)
374
+ }));
375
+ return /* @__PURE__ */ l("div", { className: Y(o.shell, h && o.shellCollapsed), children: [
376
+ /* @__PURE__ */ e("aside", { className: o.sidebar, children: /* @__PURE__ */ l("div", { className: o.sidebarInner, children: [
377
+ r ? /* @__PURE__ */ l("div", { className: o.brand, children: [
378
+ r,
379
+ /* @__PURE__ */ e(
380
+ z,
381
+ {
382
+ variant: "filled",
383
+ size: "sm",
384
+ className: o.sidebarClose,
385
+ "aria-label": m("common.close"),
386
+ onClick: () => A(!0),
387
+ children: /* @__PURE__ */ e(g, { name: "Close" })
388
+ }
389
+ )
390
+ ] }) : null,
391
+ _ ? /* @__PURE__ */ e("div", { className: o.sidebarSearch, children: /* @__PURE__ */ e(V, {}) }) : null,
392
+ /* @__PURE__ */ e("div", { className: o.navScroll, children: /* @__PURE__ */ e(ge, {}) }),
393
+ b ? /* @__PURE__ */ e("div", { className: o.sidebarFooter, children: b }) : null
394
+ ] }) }),
395
+ /* @__PURE__ */ e("div", { className: o.backdrop, onClick: () => A(!0), "aria-hidden": "true" }),
396
+ /* @__PURE__ */ l("div", { className: o.main, children: [
397
+ /* @__PURE__ */ l("header", { className: Y(o.topbar, F && o.topbarSticky), children: [
398
+ /* @__PURE__ */ l("div", { className: o.headerStart, children: [
399
+ /* @__PURE__ */ e(
400
+ z,
401
+ {
402
+ "aria-label": h ? "Show sidebar" : "Hide sidebar",
403
+ "aria-expanded": !h,
404
+ variant: "filled",
405
+ size: "sm",
406
+ onClick: () => A((a) => !a),
407
+ children: /* @__PURE__ */ e(g, { name: "Menu" })
408
+ }
409
+ ),
410
+ _ ? /* @__PURE__ */ e("div", { className: o.headerSearch, children: /* @__PURE__ */ e(V, {}) }) : null
411
+ ] }),
412
+ /* @__PURE__ */ l("div", { className: o.headerEnd, children: [
413
+ B ? /* @__PURE__ */ e(le, { variant: "filled", size: "sm" }) : null,
414
+ t ? /* @__PURE__ */ e(ie, { variant: "filled", size: "sm" }) : null,
415
+ N && f.length > 1 ? /* @__PURE__ */ e(
416
+ K,
417
+ {
418
+ placement: "bottom-end",
419
+ trigger: /* @__PURE__ */ e(z, { variant: "filled", size: "sm", "aria-label": m("language.label"), children: /* @__PURE__ */ e(g, { name: "Global" }) }),
420
+ children: f.map((a) => /* @__PURE__ */ e(
421
+ E,
422
+ {
423
+ clickable: !0,
424
+ selected: a.code === D,
425
+ onClick: () => I(a.code),
426
+ icon: /* @__PURE__ */ e(ue, { code: a.code }),
427
+ children: a.label ?? a.code
428
+ },
429
+ a.code
430
+ ))
431
+ }
432
+ ) : null,
433
+ T ? /* @__PURE__ */ e(
434
+ z,
435
+ {
436
+ "aria-label": m("settings.label"),
437
+ variant: "text",
438
+ size: "sm",
439
+ className: o.settings,
440
+ onClick: () => Q(!0),
441
+ children: /* @__PURE__ */ e(g, { name: "Setting5" })
442
+ }
443
+ ) : null,
444
+ s ? /* @__PURE__ */ l(
445
+ K,
446
+ {
447
+ placement: "bottom-end",
448
+ style: { minWidth: 230 },
449
+ trigger: /* @__PURE__ */ e("button", { type: "button", className: o.account, "aria-label": m("account.label"), children: /* @__PURE__ */ e(J, { size: "md", name: i == null ? void 0 : i.name, src: i == null ? void 0 : i.avatar, color: "primary" }) }),
450
+ children: [
451
+ i ? /* @__PURE__ */ l(L, { children: [
452
+ /* @__PURE__ */ l(re, { gap: 8, align: "center", padding: "var(--tz-space-xxs) var(--tz-space-xs)", children: [
453
+ /* @__PURE__ */ e(J, { size: "md", name: i.name, src: i.avatar, color: "primary" }),
454
+ /* @__PURE__ */ l($, { gap: 2, children: [
455
+ /* @__PURE__ */ e(c, { variant: "body", children: i.name ?? m("userCard.welcome") }),
456
+ i.email ? /* @__PURE__ */ e(c, { variant: "bodySmall", color: "muted", children: i.email }) : null
457
+ ] })
458
+ ] }),
459
+ /* @__PURE__ */ e(k, {})
460
+ ] }) : null,
461
+ p.map((a, R) => /* @__PURE__ */ e(
462
+ E,
463
+ {
464
+ icon: a.icon ? /* @__PURE__ */ e(g, { name: a.icon, color: a.color }) : void 0,
465
+ color: a.color,
466
+ clickable: !0,
467
+ disabled: a.disabled,
468
+ onClick: a.onClick,
469
+ children: a.label
470
+ },
471
+ R
472
+ )),
473
+ p.length > 0 ? /* @__PURE__ */ e(k, {}) : null,
474
+ /* @__PURE__ */ e(E, { icon: /* @__PURE__ */ e(g, { name: "Logout2", color: "error" }), clickable: !0, onClick: s, children: m("userCard.signOut") })
475
+ ]
476
+ }
477
+ ) : null
478
+ ] })
479
+ ] }),
480
+ /* @__PURE__ */ l("main", { className: o.content, children: [
481
+ W && !j ? /* @__PURE__ */ e(ce, {}) : null,
482
+ x && !j && (C || y) ? /* @__PURE__ */ l("div", { className: o.pageTitleRow, children: [
483
+ y ? /* @__PURE__ */ e(
484
+ z,
485
+ {
486
+ "aria-label": m("pageTitle.back"),
487
+ variant: "filled",
488
+ color: "accent",
489
+ className: o.backButton,
490
+ onClick: y,
491
+ size: "sm",
492
+ children: /* @__PURE__ */ e(g, { name: "ArrowLeft" })
493
+ }
494
+ ) : null,
495
+ C ? /* @__PURE__ */ e(c, { variant: "h2", className: o.pageTitle, children: C }) : null,
496
+ G.length > 0 ? /* @__PURE__ */ e("div", { className: o.pageActions, children: /* @__PURE__ */ e(Ve, { actions: G }) }) : null
497
+ ] }) : null,
498
+ S
499
+ ] })
500
+ ] }),
501
+ n !== !1 && /* @__PURE__ */ e(de, { ...M }),
502
+ T ? /* @__PURE__ */ e(
503
+ Te,
504
+ {
505
+ open: ae,
506
+ onClose: () => Q(!1),
507
+ showTheme: t
508
+ }
509
+ ) : null
510
+ ] });
511
+ }
512
+ export {
513
+ xt as R
514
+ };
515
+ //# sourceMappingURL=RootLayout-Cf7Rr9Iz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RootLayout-Cf7Rr9Iz.js","sources":["../src/components/RootLayout/SettingsDrawer.tsx","../src/components/RootLayout/ActionSet.tsx","../src/components/RootLayout/RootLayout.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { DEFAULT_FONT_FAMILY, useT, useTheme } from '../../theme'\nimport { Col } from '../Flex'\nimport { Divider } from '../Divider'\nimport { Modal } from '../Modal'\nimport { ChoiceCardGroup } from '../ChoiceCard'\nimport { Select } from '../Select'\nimport { SwatchPicker } from '../SwatchPicker'\nimport { Typography } from '../Typography'\n\n// Accent choices offered alongside the provider's default (which leads each list) — 15 per mode, so\n// each theme shows 16 total. Tuned PER MODE (deeper tones for light, brighter for dark) and paired by\n// hue (red → violet + a neutral) so a color keeps its identity across themes.\nconst ALT_SWATCHES: Record<'light' | 'dark', string[]> = {\n light: [\n '#dc2626', // red\n '#ea580c', // orange\n '#d97706', // amber\n '#ca8a04', // yellow\n '#65a30d', // lime\n '#16a34a', // green\n '#059669', // emerald\n '#0891b2', // cyan\n '#0284c7', // sky\n '#2563eb', // blue\n '#4f46e5', // indigo\n '#7c3aed', // violet\n '#c026d3', // fuchsia\n '#db2777', // pink\n '#475569', // slate\n ],\n dark: [\n '#f87171', // red\n '#fb923c', // orange\n '#fbbf24', // amber\n '#facc15', // yellow\n '#a3e635', // lime\n '#4ade80', // green\n '#34d399', // emerald\n '#22d3ee', // cyan\n '#38bdf8', // sky\n '#60a5fa', // blue\n '#818cf8', // indigo\n '#a78bfa', // violet\n '#e879f9', // fuchsia\n '#f472b6', // pink\n '#94a3b8', // slate\n ],\n}\n\nexport interface SettingsDrawerProps {\n /** Whether the drawer is open. */\n open: boolean\n /** Close handler. */\n onClose: () => void\n /** Show the light/dark **Theme** section (gated by the shell's `header.theme`, the same flag as the header toggle). */\n showTheme?: boolean\n}\n\n/**\n * The header user-menu **Settings** drawer (a right-side `Modal`), top to bottom: a **Theme** section — an\n * exclusive `ChoiceCardGroup` (**Light** / **Dark** cards) driving `useTheme().setMode`, shown only when\n * **`showTheme`** (the shell's `header.theme`, so the header toggle + this section appear/disappear\n * together); **Accent Color** — **two `SwatchPicker`s** (Light + Dark) so both accents are chosen\n * independently, each with a per-mode set (deeper tones for light, brighter for dark), calling\n * `setAccentColor(color, mode)` and persisting it — each list leads with the provider's default for that\n * mode (`defaultAccentColors[mode]`), selected when there's no override (picking it clears the override).\n * When `showTheme` is off the panel is locked to one mode, so **only the active mode's accent picker**\n * shows (the other is pointless without a theme switch);\n * a **Font** section (a searchable `Select` — Inter preset + type any Google Font — driving\n * `setFontFamily`); and a **Header** section (an exclusive `ChoiceCardGroup` **Scrollable** / **Fixed**\n * driving `setHeaderSticky`); and a **Shape** section (an exclusive `ChoiceCardGroup` **Rounded** /\n * **Square** driving `setShape` — `square` flattens every corner in the panel to `border-radius: 0`).\n * Internal to the admin shell — not a public export.\n */\nexport function SettingsDrawer({ open, onClose, showTheme = true }: SettingsDrawerProps) {\n const {\n mode,\n setMode,\n accentColors,\n defaultAccentColors,\n setAccentColor,\n headerSticky,\n setHeaderSticky,\n fontFamily,\n setFontFamily,\n shape,\n setShape,\n } = useTheme()\n const t = useT()\n\n // One searchable Select doubles as a \"type any Google Font\" field. Base = Inter (the only preset) +\n // the active font (so a custom pick stays visible/selectable). While searching, the typed query is\n // offered as its own option — picking it applies + loads that family. Base is always kept in the\n // list (never filtered out) so `value` always resolves in the trigger, even mid-search.\n const [fontQuery, setFontQuery] = useState('')\n const q = fontQuery.trim()\n const base =\n fontFamily !== DEFAULT_FONT_FAMILY ? [DEFAULT_FONT_FAMILY, fontFamily] : [DEFAULT_FONT_FAMILY]\n const showTyped = q.length > 0 && !base.some((f) => f.toLowerCase() === q.toLowerCase())\n const fontOptions = (showTyped ? [q, ...base] : base).map((f) => ({\n value: f,\n label: f === DEFAULT_FONT_FAMILY ? t('settings.fontDefault', { font: f }) : f,\n }))\n\n const picker = (mode: 'light' | 'dark', label: string) => {\n const def = defaultAccentColors[mode]\n // the provider's default (per mode) leads the list; then the mode's alts (minus any collision)\n const colors = [def, ...ALT_SWATCHES[mode].filter((c) => c.toLowerCase() !== def.toLowerCase())]\n return (\n <SwatchPicker\n label={label}\n colors={colors}\n // with no override, this mode's default swatch reads as selected\n value={accentColors[mode] ?? def}\n // the default swatch clears this mode's override; the rest set it\n onChange={(color) =>\n setAccentColor(color.toLowerCase() === def.toLowerCase() ? null : color, mode)\n }\n labels={{ [def]: t('settings.accentDefault', { color: def }) }}\n aria-label={String(label)}\n />\n )\n }\n\n return (\n <Modal\n open={open}\n onClose={onClose}\n placement=\"right\"\n size=\"sm\"\n title={t('settings.label')}\n icon=\"Setting5\"\n >\n {showTheme && (\n <>\n <Typography variant=\"subtitle\" as=\"h3\">\n {t('settings.themeTitle')}\n </Typography>\n <Typography\n variant=\"bodySmall\"\n color=\"muted\"\n as=\"p\"\n style={{ marginTop: 'var(--tz-space-xxs)' }}\n >\n {t('settings.themeDesc')}\n </Typography>\n <ChoiceCardGroup\n exclusive\n color=\"accent\"\n minCardWidth={130}\n value={mode}\n onChange={(v) => {\n if (typeof v === 'string') setMode(v as 'light' | 'dark')\n }}\n options={[\n {\n value: 'light',\n label: t('settings.light'),\n description: t('settings.lightDesc'),\n icon: 'Sun',\n },\n {\n value: 'dark',\n label: t('settings.dark'),\n description: t('settings.darkDesc'),\n icon: 'Moon',\n },\n ]}\n aria-label={t('settings.themeTitle')}\n style={{ marginTop: 'var(--tz-space-sm)' }}\n />\n\n <Divider style={{ margin: 'var(--tz-space-md) 0' }} />\n </>\n )}\n\n <Typography variant=\"subtitle\" as=\"h3\">\n {t('settings.accentTitle')}\n </Typography>\n <Typography\n variant=\"bodySmall\"\n color=\"muted\"\n as=\"p\"\n style={{ marginTop: 'var(--tz-space-xxs)' }}\n >\n {t('settings.accentDesc')}\n </Typography>\n <Col gap=\"md\" style={{ marginTop: 'var(--tz-space-sm)' }}>\n {showTheme ? (\n <>\n {picker('light', t('settings.lightTheme'))}\n {picker('dark', t('settings.darkTheme'))}\n </>\n ) : (\n // theme switching is off → the panel stays in one mode, so only that mode's accent matters\n picker(mode, mode === 'light' ? t('settings.lightTheme') : t('settings.darkTheme'))\n )}\n </Col>\n\n <Divider style={{ margin: 'var(--tz-space-md) 0' }} />\n\n <Typography variant=\"subtitle\" as=\"h3\">\n {t('settings.fontTitle')}\n </Typography>\n <Typography\n variant=\"bodySmall\"\n color=\"muted\"\n as=\"p\"\n style={{ marginTop: 'var(--tz-space-xxs)' }}\n >\n {t('settings.fontDesc')}\n </Typography>\n <Select\n label={t('settings.fontFamily')}\n searchable\n searchPlaceholder={t('settings.fontSearch')}\n value={fontFamily}\n options={fontOptions}\n onSearchChange={setFontQuery}\n onChange={(v) => {\n setFontFamily(v)\n setFontQuery('')\n }}\n aria-label={t('settings.fontFamily')}\n style={{ marginTop: 'var(--tz-space-sm)' }}\n />\n\n <Divider style={{ margin: 'var(--tz-space-md) 0' }} />\n\n <Typography variant=\"subtitle\" as=\"h3\">\n {t('settings.headerTitle')}\n </Typography>\n <Typography\n variant=\"bodySmall\"\n color=\"muted\"\n as=\"p\"\n style={{ marginTop: 'var(--tz-space-xxs)' }}\n >\n {t('settings.headerDesc')}\n </Typography>\n <ChoiceCardGroup\n exclusive\n color=\"accent\"\n minCardWidth={130}\n value={headerSticky ? 'fixed' : 'static'}\n // exclusive (radio) → always a string; set sticky from the picked card\n onChange={(v) => {\n if (typeof v === 'string') setHeaderSticky(v === 'fixed')\n }}\n options={[\n {\n value: 'static',\n label: t('settings.scrollable'),\n description: t('settings.scrollableDesc'),\n },\n { value: 'fixed', label: t('settings.fixed'), description: t('settings.fixedDesc') },\n ]}\n aria-label={t('settings.headerTitle')}\n style={{ marginTop: 'var(--tz-space-sm)' }}\n />\n\n <Divider style={{ margin: 'var(--tz-space-md) 0' }} />\n\n <Typography variant=\"subtitle\" as=\"h3\">\n {t('settings.shapeTitle')}\n </Typography>\n <Typography\n variant=\"bodySmall\"\n color=\"muted\"\n as=\"p\"\n style={{ marginTop: 'var(--tz-space-xxs)' }}\n >\n {t('settings.shapeDesc')}\n </Typography>\n <ChoiceCardGroup\n exclusive\n color=\"accent\"\n minCardWidth={130}\n value={shape}\n // exclusive (radio) → always a string; the two values are exactly the ThemeShape union\n onChange={(v) => {\n if (v === 'rounded' || v === 'square') setShape(v)\n }}\n options={[\n {\n value: 'rounded',\n label: t('settings.rounded'),\n description: t('settings.roundedDesc'),\n },\n { value: 'square', label: t('settings.square'), description: t('settings.squareDesc') },\n ]}\n aria-label={t('settings.shapeTitle')}\n style={{ marginTop: 'var(--tz-space-sm)' }}\n />\n </Modal>\n )\n}\n","import { type MouseEvent, type ReactNode } from 'react'\nimport { useMediaQuery } from '../../hooks/useMediaQuery'\nimport { useT, type ThemeColor } from '../../theme'\nimport type { IconName } from '../../icons/names'\nimport { Button, type ButtonVariant } from '../Button'\nimport { Icon } from '../Icon'\nimport { SpeedDial } from '../SpeedDial'\nimport styles from './RootLayout.module.css'\n\n/** A resolved page action — rendered as a `Button` (inline) or a `SpeedDial` action (collapsed). */\nexport interface PageAction {\n /** Visible label (button text; the SpeedDial action's tooltip when collapsed). */\n label: ReactNode\n /** Leading icon — an `IconName` or any node. When omitted, the collapsed dial shows the label's first letter. */\n icon?: IconName | ReactNode\n /** Click handler. */\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void\n /** Button color / tint. */\n color?: ThemeColor\n /** Inline-button variant (ignored when collapsed). Defaults to `contained`. */\n variant?: ButtonVariant\n /** Renders the action disabled. */\n disabled?: boolean\n}\n\nconst iconNode = (icon: IconName | ReactNode) =>\n typeof icon === 'string' ? <Icon name={icon as IconName} /> : icon\n\n/** The collapsed SpeedDial action's icon: the action's `icon`, else the label's first letter (uppercased),\n * else a fallback `More` glyph when the label isn't a plain string. */\nconst speedDialIcon = (a: PageAction): IconName | ReactNode => {\n if (a.icon != null) return a.icon\n if (typeof a.label === 'string' && a.label.trim())\n return <span className={styles.pageActionsLetter}>{a.label.trim()[0].toUpperCase()}</span>\n return 'More'\n}\n\n/**\n * Renders a set of page actions in the shell's page-title row: inline `Button`s on wider screens,\n * **collapsed into a `SpeedDial`** (a fixed bottom-right FAB) on the `xs` breakpoint (≤767.98px) when\n * there are **2 or more**. Fed by a route's `staticData.actions` (resolved by `RootLayout`). Internal.\n */\nexport function ActionSet({ actions }: { actions: PageAction[] }) {\n const t = useT()\n // ≤ 767.98px — collapse 2+ actions into a SpeedDial so a row of buttons doesn't crowd a phone header\n const isXs = useMediaQuery('xs')\n if (!actions.length) return null\n\n return isXs && actions.length >= 2 ? (\n <SpeedDial\n ariaLabel={t('pageActions.label')}\n icon=\"Add\"\n direction=\"up\"\n // float it as a fixed bottom-right FAB (out of the title-row flow); inset tightens on xxs\n className={styles.pageActionsFab}\n actions={actions.map((a) => ({\n icon: speedDialIcon(a),\n label: a.label,\n onClick: a.onClick,\n disabled: a.disabled,\n }))}\n />\n ) : (\n <>\n {actions.map((a, i) => (\n <Button\n key={i}\n size=\"sm\"\n color={a.color}\n variant={a.variant}\n disabled={a.disabled}\n startIcon={a.icon != null ? iconNode(a.icon) : undefined}\n onClick={a.onClick}\n >\n {a.label}\n </Button>\n ))}\n </>\n )\n}\n","import { useEffect, useState, type ReactNode } from 'react'\nimport { useNavigate, useRouterState, type LinkProps } from '@tanstack/react-router'\nimport { clsx } from 'clsx'\nimport { useMediaQuery } from '../../hooks/useMediaQuery'\nimport { useLockBodyScroll } from '../../hooks/useLockBodyScroll'\nimport {\n useHeaderConfig,\n useLanguage,\n useT,\n useTheme,\n type HeaderConfig,\n type HeaderUser,\n} from '../../theme'\nimport { Avatar } from '../Avatar'\nimport { Col, Row } from '../Flex'\nimport { Divider } from '../Divider'\nimport { Dropdown } from '../Dropdown'\nimport { Icon } from '../Icon'\nimport { IconButton } from '../IconButton'\nimport { ListItem } from '../List'\nimport { FullscreenToggle } from '../FullscreenToggle'\nimport { ThemeToggle } from '../ThemeToggle'\nimport { Typography } from '../Typography'\nimport { Breadcrumbs } from '../Breadcrumbs'\nimport { Toaster, type ToasterProps } from '../Toast'\nimport { NavSearch, Sidebar, useLeafActions, usePageBack, usePageTitle } from '../Sidebar/Sidebar'\nimport { Flag } from '../Flag'\nimport { SettingsDrawer } from './SettingsDrawer'\nimport { ActionSet, type PageAction } from './ActionSet'\nimport styles from './RootLayout.module.css'\n\n/**\n * The shell header config + its user shape now live in the theme layer (so `config.header` can carry\n * them app-wide). These aliases keep the historical `RootLayout*` names importable.\n */\nexport type RootLayoutUser = HeaderUser\nexport type RootLayoutHeader = HeaderConfig\n\nexport interface RootLayoutProps {\n /** Brand logo at the top of the sidebar card — pass an `<img>`, an `<Icon>`, or any node. */\n logo?: ReactNode\n /** Optional content pinned to the **bottom of the sidebar** (e.g. a promo / \"Need help?\" card). */\n sidebarFooter?: ReactNode\n /**\n * Header config for **this** shell — merged **over** the app-wide `config.header` (the prop wins).\n * Fields: the built-in `theme` / `search` / `settings` / `languages` toggles (default `true`),\n * `fullscreen` (default `false`), `breadcrumbs` (default `true`), `pageTitle` (default `true`), and the\n * account (`onLogout` / `user`).\n */\n header?: RootLayoutHeader\n /**\n * The built-in toast viewport, mounted for you so `toast.*()` works app-wide with no extra setup.\n * Defaults to `true` (a `<Toaster>` with its defaults). Pass `ToasterProps` to configure it\n * (`{ position, duration }`), or `false` to opt out — e.g. when you mount your own `<Toaster>`.\n */\n toaster?: boolean | ToasterProps\n /** Routed content — the consumer passes `<Outlet />`. */\n children: ReactNode\n}\n\n/**\n * The admin-panel shell — a **floating** layout: the whole app sits on a soft `--tz-color-background`\n * canvas, with a rounded, elevated `--tz-color-surface` **sidebar card** (`logo` + auto-generated `Sidebar` + an optional\n * `sidebarFooter`) beside the header + content. Set it as the root route's component and pass\n * `<Outlet />` as `children`; the `Sidebar` builds itself from the routes' `staticData`. The header\n * holds an optional `ThemeToggle` (on by default), a **Settings** button (opens a right-side drawer to\n * pick + persist the `accent` color), plus an account `Avatar` whose menu has a **Sign out** item when\n * `header.onLogout` is given. The content area stacks\n * **`Breadcrumbs` → the page title (the active route's `staticData.name`) → `children`**; pages wrap\n * their own body in `PageLayout`. Set `header.pageTitle = false` to drop the auto `h2` when pages\n * carry their own heading inside their `PageLayout` header. On a 404 the auto title + breadcrumbs are\n * suppressed automatically (a partial route match would otherwise show a stale section), regardless of\n * the `header.pageTitle` / `header.breadcrumbs` props. A `<Toaster>` is **mounted by default** so\n * `toast.*()` works app-wide with no extra setup (configure via `toaster`, or `toaster={false}` to opt\n * out). Styling is token-based, so it follows the active `ConfigProvider` mode. Requires\n * `@tanstack/react-router` (peer).\n */\nexport function RootLayout({\n logo,\n sidebarFooter,\n header,\n toaster = true,\n children,\n}: RootLayoutProps) {\n const title = usePageTitle()\n const onBack = usePageBack() // set by the current route's `staticData.back` (opt-in) — else undefined\n // header sticky/static — the user's persisted choice (seeded from config.header.sticky)\n const { headerSticky } = useTheme()\n const { language, setLanguage, languages } = useLanguage()\n const t = useT()\n // app-wide header config (config.header) as the base; this shell's `header` prop wins over it\n const configHeader = useHeaderConfig()\n const h: HeaderConfig = { ...configHeader, ...header }\n const showTheme = h.theme ?? true\n const showFullscreen = h.fullscreen ?? false\n const showSettings = h.settings ?? true\n const showSearch = h.search ?? true\n const showLanguages = h.languages ?? true\n const showBreadcrumbs = h.breadcrumbs ?? true\n const toasterProps = typeof toaster === 'object' ? toaster : undefined\n const showPageTitle = h.pageTitle ?? true\n const onLogout = h.onLogout\n const user = h.user\n const accountMenu = h.menu ?? [] // custom account-menu items (between the user block and Sign out)\n // below 1280px the sidebar auto-collapses (and auto-expands again above it); a manual toggle holds\n // until the next breakpoint cross. `useMediaQuery` is correct on the first client render, so no flash.\n const isNarrow = useMediaQuery('md') // ≤ 1279.98px — the shared `md` breakpoint\n const [collapsed, setCollapsed] = useState(isNarrow)\n useEffect(() => {\n setCollapsed(isNarrow)\n }, [isNarrow])\n // while the sidebar overlays the content (narrow + open), lock page scroll so scrolling inside the\n // drawer doesn't scroll the content behind it\n useLockBodyScroll(isNarrow && !collapsed)\n // navigating from the overlay drawer (a nav link or a search suggestion — both change the route) auto-\n // closes it, so you land on the page instead of the still-open sidebar; desktop navigation is untouched\n const pathname = useRouterState({ select: (s) => s.location.pathname })\n useEffect(() => {\n if (isNarrow) setCollapsed(true)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pathname])\n // on a 404 the URL often partially matches a named layout route (e.g. `/core/xxx` still resolves\n // \"Core\" as the active section), so the auto page title + breadcrumbs would show a stale, wrong trail.\n // suppress both when the router is in a notFound state — automatic, no opt-out needed. `statusCode ===\n // 404` is the primary signal; a `notFound` match status is the fallback.\n const isNotFound = useRouterState({\n select: (s) => s.statusCode === 404 || s.matches.some((m) => m.status === 'notFound'),\n })\n const [settingsOpen, setSettingsOpen] = useState(false)\n // declarative page-title-row actions from the current route's `staticData.actions` — `to` navigates\n // via the router; `onClick` is a plain handler. Resolved to the `ActionSet` shape here.\n const navigate = useNavigate()\n const routeActions = useLeafActions()\n const pageActions: PageAction[] = (routeActions ?? []).map((a) => ({\n label: a.label,\n icon: a.icon,\n color: a.color,\n variant: a.variant,\n disabled: a.disabled,\n onClick:\n a.onClick ??\n (a.to\n ? () =>\n navigate({ to: a.to as LinkProps['to'], params: a.params, search: a.search } as never)\n : undefined),\n }))\n\n return (\n <div className={clsx(styles.shell, collapsed && styles.shellCollapsed)}>\n <aside className={styles.sidebar}>\n {/* fixed-width inner: the outer <aside> animates its width to 0 (and clips via overflow),\n while this keeps the sidebar's real width so the content never reflows mid-collapse */}\n <div className={styles.sidebarInner}>\n {logo ? (\n <div className={styles.brand}>\n {logo}\n {/* in-drawer close — only shown when the sidebar overlays (narrow), where the header\n toggle is behind the backdrop; closes the drawer */}\n <IconButton\n variant=\"filled\"\n size=\"sm\"\n className={styles.sidebarClose}\n aria-label={t('common.close')}\n onClick={() => setCollapsed(true)}\n >\n <Icon name=\"Close\" />\n </IconButton>\n </div>\n ) : null}\n {/* the search lives in the header on desktop; below 576px (full-width drawer) it moves here,\n between the logo and the menu (CSS toggles which instance shows) */}\n {showSearch ? (\n <div className={styles.sidebarSearch}>\n <NavSearch />\n </div>\n ) : null}\n <div className={styles.navScroll}>\n <Sidebar />\n </div>\n {sidebarFooter ? <div className={styles.sidebarFooter}>{sidebarFooter}</div> : null}\n </div>\n </aside>\n {/* dim backdrop behind the overlay sidebar — a sibling of the sidebar (same stacking context, so the\n sidebar reliably sits above it, unlike a body-portaled Overlay). Only shown/interactive below\n 1280px while open (CSS); clicking it closes the drawer. On desktop the sidebar is a grid column. */}\n <div className={styles.backdrop} onClick={() => setCollapsed(true)} aria-hidden=\"true\" />\n <div className={styles.main}>\n <header className={clsx(styles.topbar, headerSticky && styles.topbarSticky)}>\n <div className={styles.headerStart}>\n <IconButton\n aria-label={collapsed ? 'Show sidebar' : 'Hide sidebar'}\n aria-expanded={!collapsed}\n variant=\"filled\"\n size=\"sm\"\n onClick={() => setCollapsed((c) => !c)}\n >\n <Icon name=\"Menu\" />\n </IconButton>\n {showSearch ? (\n <div className={styles.headerSearch}>\n <NavSearch />\n </div>\n ) : null}\n </div>\n <div className={styles.headerEnd}>\n {showFullscreen ? <FullscreenToggle variant=\"filled\" size=\"sm\" /> : null}\n {showTheme ? <ThemeToggle variant=\"filled\" size=\"sm\" /> : null}\n {showLanguages && languages.length > 1 ? (\n <Dropdown\n placement=\"bottom-end\"\n trigger={\n <IconButton variant=\"filled\" size=\"sm\" aria-label={t('language.label')}>\n <Icon name=\"Global\" />\n </IconButton>\n }\n >\n {languages.map((l) => (\n <ListItem\n key={l.code}\n clickable\n selected={l.code === language}\n onClick={() => setLanguage(l.code)}\n icon={<Flag code={l.code} />}\n >\n {l.label ?? l.code}\n </ListItem>\n ))}\n </Dropdown>\n ) : null}\n {showSettings ? (\n <IconButton\n aria-label={t('settings.label')}\n variant=\"text\"\n size=\"sm\"\n className={styles.settings}\n onClick={() => setSettingsOpen(true)}\n >\n <Icon name=\"Setting5\" />\n </IconButton>\n ) : null}\n {onLogout ? (\n <Dropdown\n placement=\"bottom-end\"\n style={{ minWidth: 230 }}\n trigger={\n <button type=\"button\" className={styles.account} aria-label={t('account.label')}>\n <Avatar size=\"md\" name={user?.name} src={user?.avatar} color=\"primary\" />\n </button>\n }\n >\n {user ? (\n <>\n <Row gap={8} align=\"center\" padding=\"var(--tz-space-xxs) var(--tz-space-xs)\">\n <Avatar size=\"md\" name={user.name} src={user.avatar} color=\"primary\" />\n <Col gap={2}>\n {/* name, or a \"Welcome\" greeting fallback when no name is given */}\n <Typography variant=\"body\">{user.name ?? t('userCard.welcome')}</Typography>\n {user.email ? (\n <Typography variant=\"bodySmall\" color=\"muted\">\n {user.email}\n </Typography>\n ) : null}\n </Col>\n </Row>\n <Divider />\n </>\n ) : null}\n {/* app-supplied items (e.g. \"Account\"), between the user block and Sign out */}\n {accountMenu.map((item, i) => (\n <ListItem\n key={i}\n icon={item.icon ? <Icon name={item.icon} color={item.color} /> : undefined}\n color={item.color}\n clickable\n disabled={item.disabled}\n onClick={item.onClick}\n >\n {item.label}\n </ListItem>\n ))}\n {/* keep the destructive Sign out visually separated from the custom items */}\n {accountMenu.length > 0 ? <Divider /> : null}\n <ListItem icon={<Icon name=\"Logout2\" color=\"error\" />} clickable onClick={onLogout}>\n {t('userCard.signOut')}\n </ListItem>\n </Dropdown>\n ) : null}\n </div>\n </header>\n <main className={styles.content}>\n {showBreadcrumbs && !isNotFound ? <Breadcrumbs /> : null}\n {showPageTitle && !isNotFound && (title || onBack) ? (\n <div className={styles.pageTitleRow}>\n {onBack ? (\n <IconButton\n aria-label={t('pageTitle.back')}\n variant=\"filled\"\n color=\"accent\"\n className={styles.backButton}\n onClick={onBack}\n size=\"sm\"\n >\n <Icon name=\"ArrowLeft\" />\n </IconButton>\n ) : null}\n {title ? (\n <Typography variant=\"h2\" className={styles.pageTitle}>\n {title}\n </Typography>\n ) : null}\n {/* right-aligned page actions from the route's `staticData.actions` */}\n {pageActions.length > 0 ? (\n <div className={styles.pageActions}>\n <ActionSet actions={pageActions} />\n </div>\n ) : null}\n </div>\n ) : null}\n {children}\n </main>\n </div>\n {toaster !== false && <Toaster {...toasterProps} />}\n {showSettings ? (\n <SettingsDrawer\n open={settingsOpen}\n onClose={() => setSettingsOpen(false)}\n showTheme={showTheme}\n />\n ) : null}\n </div>\n )\n}\n"],"names":["ALT_SWATCHES","SettingsDrawer","open","onClose","showTheme","mode","setMode","accentColors","defaultAccentColors","setAccentColor","headerSticky","setHeaderSticky","fontFamily","setFontFamily","shape","setShape","useTheme","useT","fontQuery","setFontQuery","useState","q","base","DEFAULT_FONT_FAMILY","fontOptions","f","picker","label","def","colors","c","jsx","SwatchPicker","color","jsxs","Modal","Fragment","Typography","ChoiceCardGroup","v","Divider","Col","Select","iconNode","icon","Icon","speedDialIcon","a","styles","ActionSet","actions","t","isXs","useMediaQuery","SpeedDial","i","Button","RootLayout","logo","sidebarFooter","header","toaster","children","title","usePageTitle","onBack","usePageBack","language","setLanguage","languages","useLanguage","h","useHeaderConfig","showFullscreen","showSettings","showSearch","showLanguages","showBreadcrumbs","toasterProps","showPageTitle","onLogout","user","accountMenu","isNarrow","collapsed","setCollapsed","useEffect","useLockBodyScroll","pathname","useRouterState","s","isNotFound","m","settingsOpen","setSettingsOpen","navigate","useNavigate","pageActions","useLeafActions","clsx","IconButton","NavSearch","Sidebar","FullscreenToggle","ThemeToggle","Dropdown","l","ListItem","Flag","Avatar","Row","item","Breadcrumbs","Toaster"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("react/jsx-runtime"),N=require("react"),M=require("@tanstack/react-router"),W=require("clsx"),J=require("./useMediaQuery-CHMrI6Dy.cjs"),$=require("./useLockBodyScroll-CIXHZo-Q.cjs"),Y=require("./Avatar-Dgf04PBC.cjs"),O=require("./Col-BdQeyKEX.cjs"),_=require("./Divider-CzbhdCiD.cjs"),X=require("./Dropdown-Ui7h2TGd.cjs"),p=require("./Icon-BVULqOJD.cjs"),A=require("./IconButton-BN-bZxEi.cjs"),E=require("./ListItem-yXXjtepZ.cjs"),ee=require("./FullscreenToggle-0lskYnpx.cjs"),se=require("./ThemeToggle-BJdXhmfc.cjs"),l=require("./Typography-BFatE1_A.cjs"),te=require("./Breadcrumbs-CsYTiX2h.cjs"),ae=require("./Toaster-DZSzFse_.cjs"),y=require("./Sidebar-DcKIEfhy.cjs"),ne=require("./Flag-CB4YyPj3.cjs"),oe=require("./Modal-0V-REVV-.cjs"),R=require("./ChoiceCardGroup-d0VVTUi5.cjs"),re=require("./Select-7vEGJCvA.cjs"),ie=require("./SwatchPicker-CCJltwHI.cjs"),d=require("./ConfigProvider-Bszl3Wr3.cjs"),le=require("./Button-CXmDOzPk.cjs"),ce=require("./SpeedDial-9_Yk8AGx.cjs"),de={light:["#dc2626","#ea580c","#d97706","#ca8a04","#65a30d","#16a34a","#059669","#0891b2","#0284c7","#2563eb","#4f46e5","#7c3aed","#c026d3","#db2777","#475569"],dark:["#f87171","#fb923c","#fbbf24","#facc15","#a3e635","#4ade80","#34d399","#22d3ee","#38bdf8","#60a5fa","#818cf8","#a78bfa","#e879f9","#f472b6","#94a3b8"]};function ue({open:r,onClose:b,showTheme:v=!0}){const{mode:o,setMode:T,accentColors:k,defaultAccentColors:f,setAccentColor:q,headerSticky:D,setHeaderSticky:w,fontFamily:x,setFontFamily:u,shape:P,setShape:c}=d.useTheme(),s=d.useT(),[I,C]=N.useState(""),j=I.trim(),S=x!==d.DEFAULT_FONT_FAMILY?[d.DEFAULT_FONT_FAMILY,x]:[d.DEFAULT_FONT_FAMILY],z=(j.length>0&&!S.some(a=>a.toLowerCase()===j.toLowerCase())?[j,...S]:S).map(a=>({value:a,label:a===d.DEFAULT_FONT_FAMILY?s("settings.fontDefault",{font:a}):a})),F=(a,i)=>{const h=f[a],m=[h,...de[a].filter(g=>g.toLowerCase()!==h.toLowerCase())];return e.jsx(ie.SwatchPicker,{label:i,colors:m,value:k[a]??h,onChange:g=>q(g.toLowerCase()===h.toLowerCase()?null:g,a),labels:{[h]:s("settings.accentDefault",{color:h})},"aria-label":String(i)})};return e.jsxs(oe.Modal,{open:r,onClose:b,placement:"right",size:"sm",title:s("settings.label"),icon:"Setting5",children:[v&&e.jsxs(e.Fragment,{children:[e.jsx(l.Typography,{variant:"subtitle",as:"h3",children:s("settings.themeTitle")}),e.jsx(l.Typography,{variant:"bodySmall",color:"muted",as:"p",style:{marginTop:"var(--tz-space-xxs)"},children:s("settings.themeDesc")}),e.jsx(R.ChoiceCardGroup,{exclusive:!0,color:"accent",minCardWidth:130,value:o,onChange:a=>{typeof a=="string"&&T(a)},options:[{value:"light",label:s("settings.light"),description:s("settings.lightDesc"),icon:"Sun"},{value:"dark",label:s("settings.dark"),description:s("settings.darkDesc"),icon:"Moon"}],"aria-label":s("settings.themeTitle"),style:{marginTop:"var(--tz-space-sm)"}}),e.jsx(_.Divider,{style:{margin:"var(--tz-space-md) 0"}})]}),e.jsx(l.Typography,{variant:"subtitle",as:"h3",children:s("settings.accentTitle")}),e.jsx(l.Typography,{variant:"bodySmall",color:"muted",as:"p",style:{marginTop:"var(--tz-space-xxs)"},children:s("settings.accentDesc")}),e.jsx(O.Col,{gap:"md",style:{marginTop:"var(--tz-space-sm)"},children:v?e.jsxs(e.Fragment,{children:[F("light",s("settings.lightTheme")),F("dark",s("settings.darkTheme"))]}):F(o,s(o==="light"?"settings.lightTheme":"settings.darkTheme"))}),e.jsx(_.Divider,{style:{margin:"var(--tz-space-md) 0"}}),e.jsx(l.Typography,{variant:"subtitle",as:"h3",children:s("settings.fontTitle")}),e.jsx(l.Typography,{variant:"bodySmall",color:"muted",as:"p",style:{marginTop:"var(--tz-space-xxs)"},children:s("settings.fontDesc")}),e.jsx(re.Select,{label:s("settings.fontFamily"),searchable:!0,searchPlaceholder:s("settings.fontSearch"),value:x,options:z,onSearchChange:C,onChange:a=>{u(a),C("")},"aria-label":s("settings.fontFamily"),style:{marginTop:"var(--tz-space-sm)"}}),e.jsx(_.Divider,{style:{margin:"var(--tz-space-md) 0"}}),e.jsx(l.Typography,{variant:"subtitle",as:"h3",children:s("settings.headerTitle")}),e.jsx(l.Typography,{variant:"bodySmall",color:"muted",as:"p",style:{marginTop:"var(--tz-space-xxs)"},children:s("settings.headerDesc")}),e.jsx(R.ChoiceCardGroup,{exclusive:!0,color:"accent",minCardWidth:130,value:D?"fixed":"static",onChange:a=>{typeof a=="string"&&w(a==="fixed")},options:[{value:"static",label:s("settings.scrollable"),description:s("settings.scrollableDesc")},{value:"fixed",label:s("settings.fixed"),description:s("settings.fixedDesc")}],"aria-label":s("settings.headerTitle"),style:{marginTop:"var(--tz-space-sm)"}}),e.jsx(_.Divider,{style:{margin:"var(--tz-space-md) 0"}}),e.jsx(l.Typography,{variant:"subtitle",as:"h3",children:s("settings.shapeTitle")}),e.jsx(l.Typography,{variant:"bodySmall",color:"muted",as:"p",style:{marginTop:"var(--tz-space-xxs)"},children:s("settings.shapeDesc")}),e.jsx(R.ChoiceCardGroup,{exclusive:!0,color:"accent",minCardWidth:130,value:P,onChange:a=>{(a==="rounded"||a==="square")&&c(a)},options:[{value:"rounded",label:s("settings.rounded"),description:s("settings.roundedDesc")},{value:"square",label:s("settings.square"),description:s("settings.squareDesc")}],"aria-label":s("settings.shapeTitle"),style:{marginTop:"var(--tz-space-sm)"}})]})}const he="_shell_o4ktv_5",ge="_shellCollapsed_o4ktv_21",pe="_sidebar_o4ktv_21",me="_sidebarInner_o4ktv_49",be="_sidebarClose_o4ktv_58",ve="_backdrop_o4ktv_65",xe="_brand_o4ktv_70",je="_sidebarSearch_o4ktv_86",ye="_navScroll_o4ktv_99",_e="_sidebarFooter_o4ktv_108",Te="_headerSearch_o4ktv_115",ke="_main_o4ktv_119",fe="_topbar_o4ktv_126",Ce="_topbarSticky_o4ktv_139",Se="_headerStart_o4ktv_150",Fe="_headerEnd_o4ktv_159",Le="_account_o4ktv_166",Ae="_content_o4ktv_182",Ne="_pageTitleRow_o4ktv_189",qe="_pageTitle_o4ktv_189",De="_pageActions_o4ktv_207",we="_pageActionsFab_o4ktv_221",Ie="_pageActionsLetter_o4ktv_236",ze="_settings_o4ktv_248",n={shell:he,shellCollapsed:ge,sidebar:pe,sidebarInner:me,sidebarClose:be,backdrop:ve,brand:xe,sidebarSearch:je,navScroll:ye,sidebarFooter:_e,headerSearch:Te,main:ke,topbar:fe,topbarSticky:Ce,headerStart:Se,headerEnd:Fe,account:Le,content:Ae,pageTitleRow:Ne,pageTitle:qe,pageActions:De,pageActionsFab:we,pageActionsLetter:Ie,settings:ze},Be=r=>typeof r=="string"?e.jsx(p.Icon,{name:r}):r,Me=r=>r.icon!=null?r.icon:typeof r.label=="string"&&r.label.trim()?e.jsx("span",{className:n.pageActionsLetter,children:r.label.trim()[0].toUpperCase()}):"More";function Ee({actions:r}){const b=d.useT(),v=J.useMediaQuery("xs");return r.length?v&&r.length>=2?e.jsx(ce.SpeedDial,{ariaLabel:b("pageActions.label"),icon:"Add",direction:"up",className:n.pageActionsFab,actions:r.map(o=>({icon:Me(o),label:o.label,onClick:o.onClick,disabled:o.disabled}))}):e.jsx(e.Fragment,{children:r.map((o,T)=>e.jsx(le.Button,{size:"sm",color:o.color,variant:o.variant,disabled:o.disabled,startIcon:o.icon!=null?Be(o.icon):void 0,onClick:o.onClick,children:o.label},T))}):null}function Re({logo:r,sidebarFooter:b,header:v,toaster:o=!0,children:T}){const k=y.usePageTitle(),f=y.usePageBack(),{headerSticky:q}=d.useTheme(),{language:D,setLanguage:w,languages:x}=d.useLanguage(),u=d.useT(),c={...d.useHeaderConfig(),...v},s=c.theme??!0,I=c.fullscreen??!1,C=c.settings??!0,j=c.search??!0,S=c.languages??!0,H=c.breadcrumbs??!0,z=typeof o=="object"?o:void 0,F=c.pageTitle??!0,a=c.onLogout,i=c.user,h=c.menu??[],m=J.useMediaQuery("md"),[g,L]=N.useState(m);N.useEffect(()=>{L(m)},[m]),$.useLockBodyScroll(m&&!g);const K=M.useRouterState({select:t=>t.location.pathname});N.useEffect(()=>{m&&L(!0)},[K]);const G=M.useRouterState({select:t=>t.statusCode===404||t.matches.some(B=>B.status==="notFound")}),[V,Q]=N.useState(!1),Z=M.useNavigate(),U=(y.useLeafActions()??[]).map(t=>({label:t.label,icon:t.icon,color:t.color,variant:t.variant,disabled:t.disabled,onClick:t.onClick??(t.to?()=>Z({to:t.to,params:t.params,search:t.search}):void 0)}));return e.jsxs("div",{className:W.clsx(n.shell,g&&n.shellCollapsed),children:[e.jsx("aside",{className:n.sidebar,children:e.jsxs("div",{className:n.sidebarInner,children:[r?e.jsxs("div",{className:n.brand,children:[r,e.jsx(A.IconButton,{variant:"filled",size:"sm",className:n.sidebarClose,"aria-label":u("common.close"),onClick:()=>L(!0),children:e.jsx(p.Icon,{name:"Close"})})]}):null,j?e.jsx("div",{className:n.sidebarSearch,children:e.jsx(y.NavSearch,{})}):null,e.jsx("div",{className:n.navScroll,children:e.jsx(y.Sidebar,{})}),b?e.jsx("div",{className:n.sidebarFooter,children:b}):null]})}),e.jsx("div",{className:n.backdrop,onClick:()=>L(!0),"aria-hidden":"true"}),e.jsxs("div",{className:n.main,children:[e.jsxs("header",{className:W.clsx(n.topbar,q&&n.topbarSticky),children:[e.jsxs("div",{className:n.headerStart,children:[e.jsx(A.IconButton,{"aria-label":g?"Show sidebar":"Hide sidebar","aria-expanded":!g,variant:"filled",size:"sm",onClick:()=>L(t=>!t),children:e.jsx(p.Icon,{name:"Menu"})}),j?e.jsx("div",{className:n.headerSearch,children:e.jsx(y.NavSearch,{})}):null]}),e.jsxs("div",{className:n.headerEnd,children:[I?e.jsx(ee.FullscreenToggle,{variant:"filled",size:"sm"}):null,s?e.jsx(se.ThemeToggle,{variant:"filled",size:"sm"}):null,S&&x.length>1?e.jsx(X.Dropdown,{placement:"bottom-end",trigger:e.jsx(A.IconButton,{variant:"filled",size:"sm","aria-label":u("language.label"),children:e.jsx(p.Icon,{name:"Global"})}),children:x.map(t=>e.jsx(E.ListItem,{clickable:!0,selected:t.code===D,onClick:()=>w(t.code),icon:e.jsx(ne.Flag,{code:t.code}),children:t.label??t.code},t.code))}):null,C?e.jsx(A.IconButton,{"aria-label":u("settings.label"),variant:"text",size:"sm",className:n.settings,onClick:()=>Q(!0),children:e.jsx(p.Icon,{name:"Setting5"})}):null,a?e.jsxs(X.Dropdown,{placement:"bottom-end",style:{minWidth:230},trigger:e.jsx("button",{type:"button",className:n.account,"aria-label":u("account.label"),children:e.jsx(Y.Avatar,{size:"md",name:i==null?void 0:i.name,src:i==null?void 0:i.avatar,color:"primary"})}),children:[i?e.jsxs(e.Fragment,{children:[e.jsxs(O.Row,{gap:8,align:"center",padding:"var(--tz-space-xxs) var(--tz-space-xs)",children:[e.jsx(Y.Avatar,{size:"md",name:i.name,src:i.avatar,color:"primary"}),e.jsxs(O.Col,{gap:2,children:[e.jsx(l.Typography,{variant:"body",children:i.name??u("userCard.welcome")}),i.email?e.jsx(l.Typography,{variant:"bodySmall",color:"muted",children:i.email}):null]})]}),e.jsx(_.Divider,{})]}):null,h.map((t,B)=>e.jsx(E.ListItem,{icon:t.icon?e.jsx(p.Icon,{name:t.icon,color:t.color}):void 0,color:t.color,clickable:!0,disabled:t.disabled,onClick:t.onClick,children:t.label},B)),h.length>0?e.jsx(_.Divider,{}):null,e.jsx(E.ListItem,{icon:e.jsx(p.Icon,{name:"Logout2",color:"error"}),clickable:!0,onClick:a,children:u("userCard.signOut")})]}):null]})]}),e.jsxs("main",{className:n.content,children:[H&&!G?e.jsx(te.Breadcrumbs,{}):null,F&&!G&&(k||f)?e.jsxs("div",{className:n.pageTitleRow,children:[f?e.jsx(A.IconButton,{"aria-label":u("pageTitle.back"),variant:"filled",color:"accent",className:n.backButton,onClick:f,size:"sm",children:e.jsx(p.Icon,{name:"ArrowLeft"})}):null,k?e.jsx(l.Typography,{variant:"h2",className:n.pageTitle,children:k}):null,U.length>0?e.jsx("div",{className:n.pageActions,children:e.jsx(Ee,{actions:U})}):null]}):null,T]})]}),o!==!1&&e.jsx(ae.Toaster,{...z}),C?e.jsx(ue,{open:V,onClose:()=>Q(!1),showTheme:s}):null]})}exports.RootLayout=Re;
2
+ //# sourceMappingURL=RootLayout-kssj9exn.cjs.map