@techzyapp/ui-library 1.0.21 → 1.0.23

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 (335) hide show
  1. package/dist/{AdminRoot-BDRLuMX6.cjs → AdminRoot-C7Idu7FQ.cjs} +2 -2
  2. package/dist/AdminRoot-C7Idu7FQ.cjs.map +1 -0
  3. package/dist/{AdminRoot-DvF0js0q.js → AdminRoot-aDy6rNqI.js} +4 -4
  4. package/dist/AdminRoot-aDy6rNqI.js.map +1 -0
  5. package/dist/{Alert-CwoRkKq4.cjs → Alert-Cl1zxmX9.cjs} +2 -2
  6. package/dist/{Alert-CwoRkKq4.cjs.map → Alert-Cl1zxmX9.cjs.map} +1 -1
  7. package/dist/{Alert-DPYmdaWs.js → Alert-D6VL2C-E.js} +3 -3
  8. package/dist/{Alert-DPYmdaWs.js.map → Alert-D6VL2C-E.js.map} +1 -1
  9. package/dist/{Breadcrumbs-CknDBLMw.cjs → Breadcrumbs-BnFW4LgK.cjs} +2 -2
  10. package/dist/{Breadcrumbs-CknDBLMw.cjs.map → Breadcrumbs-BnFW4LgK.cjs.map} +1 -1
  11. package/dist/{Breadcrumbs-l0PlUpQ4.js → Breadcrumbs-CicfjfIu.js} +3 -3
  12. package/dist/{Breadcrumbs-l0PlUpQ4.js.map → Breadcrumbs-CicfjfIu.js.map} +1 -1
  13. package/dist/{Button-RljTGqHl.js → Button-Cfxd7qhd.js} +2 -2
  14. package/dist/{Button-RljTGqHl.js.map → Button-Cfxd7qhd.js.map} +1 -1
  15. package/dist/{Button-BdihbLYJ.cjs → Button-ZplrHYKw.cjs} +2 -2
  16. package/dist/{Button-BdihbLYJ.cjs.map → Button-ZplrHYKw.cjs.map} +1 -1
  17. package/dist/{Calendar-CKCikOQL.js → Calendar-DTxCT-ki.js} +3 -3
  18. package/dist/{Calendar-CKCikOQL.js.map → Calendar-DTxCT-ki.js.map} +1 -1
  19. package/dist/{Calendar-DVg1uQuj.cjs → Calendar-S9vyp-qv.cjs} +2 -2
  20. package/dist/{Calendar-DVg1uQuj.cjs.map → Calendar-S9vyp-qv.cjs.map} +1 -1
  21. package/dist/{Card-BYFuYD-a.cjs → Card-BeE2ohcn.cjs} +2 -2
  22. package/dist/{Card-BYFuYD-a.cjs.map → Card-BeE2ohcn.cjs.map} +1 -1
  23. package/dist/{Card-B0bYi4g2.js → Card-eXJfA4rU.js} +2 -2
  24. package/dist/{Card-B0bYi4g2.js.map → Card-eXJfA4rU.js.map} +1 -1
  25. package/dist/{Chip-CdKUtUGE.cjs → Chip-B4XERWb_.cjs} +2 -2
  26. package/dist/{Chip-CdKUtUGE.cjs.map → Chip-B4XERWb_.cjs.map} +1 -1
  27. package/dist/{Chip-BiqfnRUi.js → Chip-BOXXdzap.js} +2 -2
  28. package/dist/{Chip-BiqfnRUi.js.map → Chip-BOXXdzap.js.map} +1 -1
  29. package/dist/{CodeBlock-CAAggVXS.cjs → CodeBlock-C7_A6CTT.cjs} +2 -2
  30. package/dist/{CodeBlock-CAAggVXS.cjs.map → CodeBlock-C7_A6CTT.cjs.map} +1 -1
  31. package/dist/{CodeBlock-BX_0tpk3.js → CodeBlock-D_PRiWMq.js} +3 -3
  32. package/dist/{CodeBlock-BX_0tpk3.js.map → CodeBlock-D_PRiWMq.js.map} +1 -1
  33. package/dist/{ColorPicker-BCSaT1A-.cjs → ColorPicker-ClVpWf77.cjs} +2 -2
  34. package/dist/{ColorPicker-BCSaT1A-.cjs.map → ColorPicker-ClVpWf77.cjs.map} +1 -1
  35. package/dist/{ColorPicker-DhSlvwNj.js → ColorPicker-DAjs7PmR.js} +3 -3
  36. package/dist/{ColorPicker-DhSlvwNj.js.map → ColorPicker-DAjs7PmR.js.map} +1 -1
  37. package/dist/{ColorPickerPanel-D4t3b9bB.js → ColorPickerPanel-BGzm2had.js} +2 -2
  38. package/dist/{ColorPickerPanel-D4t3b9bB.js.map → ColorPickerPanel-BGzm2had.js.map} +1 -1
  39. package/dist/{ColorPickerPanel-BOGYXXF1.cjs → ColorPickerPanel-Dk6bI0Xy.cjs} +2 -2
  40. package/dist/{ColorPickerPanel-BOGYXXF1.cjs.map → ColorPickerPanel-Dk6bI0Xy.cjs.map} +1 -1
  41. package/dist/{ConfigProvider-DT0yrgmd.js → ConfigProvider-Blhvj6UQ.js} +2 -2
  42. package/dist/ConfigProvider-Blhvj6UQ.js.map +1 -0
  43. package/dist/{ConfigProvider-C7DUWHrb.cjs → ConfigProvider-CUG8Mfy2.cjs} +2 -2
  44. package/dist/ConfigProvider-CUG8Mfy2.cjs.map +1 -0
  45. package/dist/{CopyButton-BEY1gJzK.js → CopyButton-Bv7L4xJf.js} +3 -3
  46. package/dist/{CopyButton-BEY1gJzK.js.map → CopyButton-Bv7L4xJf.js.map} +1 -1
  47. package/dist/{CopyButton-3585thVM.cjs → CopyButton-COF3hIV-.cjs} +2 -2
  48. package/dist/{CopyButton-3585thVM.cjs.map → CopyButton-COF3hIV-.cjs.map} +1 -1
  49. package/dist/{DatePicker-CEFGgXLF.js → DatePicker-DZfOvxUR.js} +4 -4
  50. package/dist/{DatePicker-CEFGgXLF.js.map → DatePicker-DZfOvxUR.js.map} +1 -1
  51. package/dist/{DatePicker-Dyj2halw.cjs → DatePicker-kA-xn5ET.cjs} +2 -2
  52. package/dist/{DatePicker-Dyj2halw.cjs.map → DatePicker-kA-xn5ET.cjs.map} +1 -1
  53. package/dist/{DateTimePicker-hmYBEuUM.js → DateTimePicker-BxBXhSN_.js} +7 -7
  54. package/dist/{DateTimePicker-hmYBEuUM.js.map → DateTimePicker-BxBXhSN_.js.map} +1 -1
  55. package/dist/{DateTimePicker-CjX4-8PP.cjs → DateTimePicker-DEGmn5UX.cjs} +2 -2
  56. package/dist/{DateTimePicker-CjX4-8PP.cjs.map → DateTimePicker-DEGmn5UX.cjs.map} +1 -1
  57. package/dist/{EmptyState-Bj-vX_UV.cjs → EmptyState-DlX-BLLI.cjs} +2 -2
  58. package/dist/{EmptyState-Bj-vX_UV.cjs.map → EmptyState-DlX-BLLI.cjs.map} +1 -1
  59. package/dist/{EmptyState-DJDNLKT7.js → EmptyState-Du4vA3bC.js} +2 -2
  60. package/dist/{EmptyState-DJDNLKT7.js.map → EmptyState-Du4vA3bC.js.map} +1 -1
  61. package/dist/{FileCard-C9Ncifnu.js → FileCard-juQ1fWbG.js} +3 -3
  62. package/dist/{FileCard-C9Ncifnu.js.map → FileCard-juQ1fWbG.js.map} +1 -1
  63. package/dist/{FileCard-Dr5-z1R3.cjs → FileCard-zyCpTrJ-.cjs} +2 -2
  64. package/dist/{FileCard-Dr5-z1R3.cjs.map → FileCard-zyCpTrJ-.cjs.map} +1 -1
  65. package/dist/{FileUploader-XFmBNkA0.js → FileUploader-DL9atihI.js} +5 -5
  66. package/dist/{FileUploader-XFmBNkA0.js.map → FileUploader-DL9atihI.js.map} +1 -1
  67. package/dist/{FileUploader-DeyZENqq.cjs → FileUploader-DOe3CyJB.cjs} +2 -2
  68. package/dist/{FileUploader-DeyZENqq.cjs.map → FileUploader-DOe3CyJB.cjs.map} +1 -1
  69. package/dist/{Flag-Bs0xNP-P.js → Flag-BxRrjCTB.js} +2 -2
  70. package/dist/{Flag-Bs0xNP-P.js.map → Flag-BxRrjCTB.js.map} +1 -1
  71. package/dist/{Flag-Bxnx26DM.cjs → Flag-DFKHYnqk.cjs} +2 -2
  72. package/dist/{Flag-Bxnx26DM.cjs.map → Flag-DFKHYnqk.cjs.map} +1 -1
  73. package/dist/{FullscreenToggle-DMlp05UN.js → FullscreenToggle-BMCNsyzb.js} +3 -3
  74. package/dist/{FullscreenToggle-DMlp05UN.js.map → FullscreenToggle-BMCNsyzb.js.map} +1 -1
  75. package/dist/{FullscreenToggle-BncatGKj.cjs → FullscreenToggle-BNK7RcRq.cjs} +2 -2
  76. package/dist/{FullscreenToggle-BncatGKj.cjs.map → FullscreenToggle-BNK7RcRq.cjs.map} +1 -1
  77. package/dist/{IconButton-Lv0sDDR9.cjs → IconButton-B9eVM18U.cjs} +2 -2
  78. package/dist/{IconButton-Lv0sDDR9.cjs.map → IconButton-B9eVM18U.cjs.map} +1 -1
  79. package/dist/{IconButton-DXMmtuLA.js → IconButton-CfvsE_p3.js} +2 -2
  80. package/dist/{IconButton-DXMmtuLA.js.map → IconButton-CfvsE_p3.js.map} +1 -1
  81. package/dist/Link-BQlvsu9V.js +48 -0
  82. package/dist/Link-BQlvsu9V.js.map +1 -0
  83. package/dist/Link-GZT51mKx.cjs +2 -0
  84. package/dist/Link-GZT51mKx.cjs.map +1 -0
  85. package/dist/{Loader-53HFNMVX.cjs → Loader-CxLrhAz9.cjs} +2 -2
  86. package/dist/{Loader-53HFNMVX.cjs.map → Loader-CxLrhAz9.cjs.map} +1 -1
  87. package/dist/{Loader-WsjQFl4p.js → Loader-DwmyJFwG.js} +2 -2
  88. package/dist/{Loader-WsjQFl4p.js.map → Loader-DwmyJFwG.js.map} +1 -1
  89. package/dist/{Modal-DBYcoCbJ.js → Modal-Cx0JEQ-j.js} +3 -3
  90. package/dist/{Modal-DBYcoCbJ.js.map → Modal-Cx0JEQ-j.js.map} +1 -1
  91. package/dist/{Modal-V6eyGSzW.cjs → Modal-DXZdMmJh.cjs} +2 -2
  92. package/dist/{Modal-V6eyGSzW.cjs.map → Modal-DXZdMmJh.cjs.map} +1 -1
  93. package/dist/{MultiSelect-DS2DRpaP.cjs → MultiSelect-DfhyGxDU.cjs} +2 -2
  94. package/dist/{MultiSelect-DS2DRpaP.cjs.map → MultiSelect-DfhyGxDU.cjs.map} +1 -1
  95. package/dist/{MultiSelect-BsYPr3LD.js → MultiSelect-yGlvweEq.js} +4 -4
  96. package/dist/{MultiSelect-BsYPr3LD.js.map → MultiSelect-yGlvweEq.js.map} +1 -1
  97. package/dist/{NumberField-DC3TdGTt.cjs → NumberField-B7yPXIw_.cjs} +2 -2
  98. package/dist/{NumberField-DC3TdGTt.cjs.map → NumberField-B7yPXIw_.cjs.map} +1 -1
  99. package/dist/{NumberField-mFb9pKCx.js → NumberField-cAjPU1P5.js} +3 -3
  100. package/dist/{NumberField-mFb9pKCx.js.map → NumberField-cAjPU1P5.js.map} +1 -1
  101. package/dist/{OtpField-BYj9SDHb.cjs → OtpField-BujZAy2A.cjs} +2 -2
  102. package/dist/{OtpField-BYj9SDHb.cjs.map → OtpField-BujZAy2A.cjs.map} +1 -1
  103. package/dist/{OtpField-1ullIIZQ.js → OtpField-D0eTOLtg.js} +2 -2
  104. package/dist/{OtpField-1ullIIZQ.js.map → OtpField-D0eTOLtg.js.map} +1 -1
  105. package/dist/{PageLayout-pYL43wI9.cjs → PageLayout-BSHyKoQ4.cjs} +2 -2
  106. package/dist/{PageLayout-pYL43wI9.cjs.map → PageLayout-BSHyKoQ4.cjs.map} +1 -1
  107. package/dist/{PageLayout-qf0H_EmS.js → PageLayout-C9Je7kfF.js} +2 -2
  108. package/dist/{PageLayout-qf0H_EmS.js.map → PageLayout-C9Je7kfF.js.map} +1 -1
  109. package/dist/{PageNotFound-YGVMVvyG.js → PageNotFound-CUN2OntP.js} +5 -5
  110. package/dist/{PageNotFound-YGVMVvyG.js.map → PageNotFound-CUN2OntP.js.map} +1 -1
  111. package/dist/{PageNotFound-D1795gJ7.cjs → PageNotFound-voB9ylPF.cjs} +2 -2
  112. package/dist/{PageNotFound-D1795gJ7.cjs.map → PageNotFound-voB9ylPF.cjs.map} +1 -1
  113. package/dist/{Pagination-WJq_7QNi.cjs → Pagination-BUGaylZa.cjs} +2 -2
  114. package/dist/{Pagination-WJq_7QNi.cjs.map → Pagination-BUGaylZa.cjs.map} +1 -1
  115. package/dist/{Pagination-BTvUJiee.js → Pagination-BaVHgIWT.js} +2 -2
  116. package/dist/{Pagination-BTvUJiee.js.map → Pagination-BaVHgIWT.js.map} +1 -1
  117. package/dist/QrCode-Bcj9_Emc.js +70 -0
  118. package/dist/QrCode-Bcj9_Emc.js.map +1 -0
  119. package/dist/QrCode-DfDfGhG-.cjs +2 -0
  120. package/dist/QrCode-DfDfGhG-.cjs.map +1 -0
  121. package/dist/{RemoveDialog-BSQ6EMW-.js → RemoveDialog-BpL2-gnz.js} +4 -4
  122. package/dist/{RemoveDialog-BSQ6EMW-.js.map → RemoveDialog-BpL2-gnz.js.map} +1 -1
  123. package/dist/{RemoveDialog-BhcwsY0q.cjs → RemoveDialog-DGt_72we.cjs} +2 -2
  124. package/dist/{RemoveDialog-BhcwsY0q.cjs.map → RemoveDialog-DGt_72we.cjs.map} +1 -1
  125. package/dist/{RichTextEditor-Bc1fhvzn.cjs → RichTextEditor-BuoywqBu.cjs} +2 -2
  126. package/dist/{RichTextEditor-Bc1fhvzn.cjs.map → RichTextEditor-BuoywqBu.cjs.map} +1 -1
  127. package/dist/{RichTextEditor-CaGPtwXe.js → RichTextEditor-C_6pzqYY.js} +7 -7
  128. package/dist/{RichTextEditor-CaGPtwXe.js.map → RichTextEditor-C_6pzqYY.js.map} +1 -1
  129. package/dist/RootLayout-1am1CwPQ.cjs +2 -0
  130. package/dist/RootLayout-1am1CwPQ.cjs.map +1 -0
  131. package/dist/RootLayout-x7qWzXPc.js +479 -0
  132. package/dist/RootLayout-x7qWzXPc.js.map +1 -0
  133. package/dist/{Select-Cx1Yl8nq.cjs → Select-CVy5BnKe.cjs} +2 -2
  134. package/dist/{Select-Cx1Yl8nq.cjs.map → Select-CVy5BnKe.cjs.map} +1 -1
  135. package/dist/{Select-vKZzS9K4.js → Select-ChT-6_bM.js} +3 -3
  136. package/dist/{Select-vKZzS9K4.js.map → Select-ChT-6_bM.js.map} +1 -1
  137. package/dist/Sidebar-D2MsR33k.cjs +2 -0
  138. package/dist/Sidebar-D2MsR33k.cjs.map +1 -0
  139. package/dist/Sidebar-ZA1wxCez.js +553 -0
  140. package/dist/Sidebar-ZA1wxCez.js.map +1 -0
  141. package/dist/{SpeedDial-D6sO-9ES.cjs → SpeedDial-B9JTNNUU.cjs} +2 -2
  142. package/dist/{SpeedDial-D6sO-9ES.cjs.map → SpeedDial-B9JTNNUU.cjs.map} +1 -1
  143. package/dist/{SpeedDial-Bb0ioXaO.js → SpeedDial-DUYQMDCY.js} +2 -2
  144. package/dist/{SpeedDial-Bb0ioXaO.js.map → SpeedDial-DUYQMDCY.js.map} +1 -1
  145. package/dist/{Stepper-CVY8NJEI.cjs → Stepper-BaC934rb.cjs} +2 -2
  146. package/dist/{Stepper-CVY8NJEI.cjs.map → Stepper-BaC934rb.cjs.map} +1 -1
  147. package/dist/{Stepper-BaEOUnYe.js → Stepper-D89I17pC.js} +2 -2
  148. package/dist/{Stepper-BaEOUnYe.js.map → Stepper-D89I17pC.js.map} +1 -1
  149. package/dist/{Table-wn-B7iLj.js → Table-CdIQ5Wfh.js} +15 -15
  150. package/dist/{Table-wn-B7iLj.js.map → Table-CdIQ5Wfh.js.map} +1 -1
  151. package/dist/{Table-AQ7yJhtW.cjs → Table-DvgBWTLx.cjs} +2 -2
  152. package/dist/{Table-AQ7yJhtW.cjs.map → Table-DvgBWTLx.cjs.map} +1 -1
  153. package/dist/{Tabs-DJMfAUni.js → Tabs-8-klG-y-.js} +2 -2
  154. package/dist/{Tabs-DJMfAUni.js.map → Tabs-8-klG-y-.js.map} +1 -1
  155. package/dist/{Tabs-BtcJ2jBl.cjs → Tabs-CejCwV3O.cjs} +2 -2
  156. package/dist/{Tabs-BtcJ2jBl.cjs.map → Tabs-CejCwV3O.cjs.map} +1 -1
  157. package/dist/{TagsField-Bvh6Fm5Y.js → TagsField-BQLqUckB.js} +4 -4
  158. package/dist/{TagsField-Bvh6Fm5Y.js.map → TagsField-BQLqUckB.js.map} +1 -1
  159. package/dist/{TagsField-4x3RmGwt.cjs → TagsField-BSAd4eUr.cjs} +2 -2
  160. package/dist/{TagsField-4x3RmGwt.cjs.map → TagsField-BSAd4eUr.cjs.map} +1 -1
  161. package/dist/{TextField-DcdwUA9d.js → TextField-B4YtjNUs.js} +3 -3
  162. package/dist/{TextField-DcdwUA9d.js.map → TextField-B4YtjNUs.js.map} +1 -1
  163. package/dist/{TextField-DNqnpAWB.cjs → TextField-DzYGA_St.cjs} +2 -2
  164. package/dist/{TextField-DNqnpAWB.cjs.map → TextField-DzYGA_St.cjs.map} +1 -1
  165. package/dist/{ThemeToggle-BVQmSMsj.js → ThemeToggle-B4_zRHJY.js} +3 -3
  166. package/dist/{ThemeToggle-BVQmSMsj.js.map → ThemeToggle-B4_zRHJY.js.map} +1 -1
  167. package/dist/{ThemeToggle-isboxfZk.cjs → ThemeToggle-BKk0eFiB.cjs} +2 -2
  168. package/dist/{ThemeToggle-isboxfZk.cjs.map → ThemeToggle-BKk0eFiB.cjs.map} +1 -1
  169. package/dist/{TimeColumns-DxFjjtc7.cjs → TimeColumns-BAzRrkqY.cjs} +2 -2
  170. package/dist/{TimeColumns-DxFjjtc7.cjs.map → TimeColumns-BAzRrkqY.cjs.map} +1 -1
  171. package/dist/{TimeColumns-CFy_PynH.js → TimeColumns-CAPyli9V.js} +2 -2
  172. package/dist/{TimeColumns-CFy_PynH.js.map → TimeColumns-CAPyli9V.js.map} +1 -1
  173. package/dist/{TimePicker-v1yA7Igl.cjs → TimePicker-BUnXYR5g.cjs} +2 -2
  174. package/dist/{TimePicker-v1yA7Igl.cjs.map → TimePicker-BUnXYR5g.cjs.map} +1 -1
  175. package/dist/{TimePicker-ZO7jOJVa.js → TimePicker-BebBSlQF.js} +5 -5
  176. package/dist/{TimePicker-ZO7jOJVa.js.map → TimePicker-BebBSlQF.js.map} +1 -1
  177. package/dist/{Toaster-Qnsq3guQ.cjs → Toaster-B2rO4BkG.cjs} +2 -2
  178. package/dist/{Toaster-Qnsq3guQ.cjs.map → Toaster-B2rO4BkG.cjs.map} +1 -1
  179. package/dist/{Toaster-C6UK_2TB.js → Toaster-ywqAKP8s.js} +2 -2
  180. package/dist/{Toaster-C6UK_2TB.js.map → Toaster-ywqAKP8s.js.map} +1 -1
  181. package/dist/{TranslatedFields-Bo5rZ7so.js → TranslatedFields-C-wlh51E.js} +5 -5
  182. package/dist/{TranslatedFields-Bo5rZ7so.js.map → TranslatedFields-C-wlh51E.js.map} +1 -1
  183. package/dist/{TranslatedFields-CLMvRpJi.cjs → TranslatedFields-DQQUb0RD.cjs} +2 -2
  184. package/dist/{TranslatedFields-CLMvRpJi.cjs.map → TranslatedFields-DQQUb0RD.cjs.map} +1 -1
  185. package/dist/{UserCard-CIjZz5xd.cjs → UserCard-Be1kl0TZ.cjs} +2 -2
  186. package/dist/{UserCard-CIjZz5xd.cjs.map → UserCard-Be1kl0TZ.cjs.map} +1 -1
  187. package/dist/{UserCard-454Kc7JS.js → UserCard-BqWt0S-c.js} +3 -3
  188. package/dist/{UserCard-454Kc7JS.js.map → UserCard-BqWt0S-c.js.map} +1 -1
  189. package/dist/app/AdminRoot.d.cts +4 -1
  190. package/dist/app/AdminRoot.d.ts +4 -1
  191. package/dist/components/Alert/index.cjs +1 -1
  192. package/dist/components/Alert/index.js +1 -1
  193. package/dist/components/Breadcrumbs/index.cjs +1 -1
  194. package/dist/components/Breadcrumbs/index.js +1 -1
  195. package/dist/components/Button/index.cjs +1 -1
  196. package/dist/components/Button/index.js +1 -1
  197. package/dist/components/Card/index.cjs +1 -1
  198. package/dist/components/Card/index.js +1 -1
  199. package/dist/components/Chip/index.cjs +1 -1
  200. package/dist/components/Chip/index.js +1 -1
  201. package/dist/components/CodeBlock/index.cjs +1 -1
  202. package/dist/components/CodeBlock/index.js +1 -1
  203. package/dist/components/ColorPicker/index.cjs +1 -1
  204. package/dist/components/ColorPicker/index.js +1 -1
  205. package/dist/components/CopyButton/index.cjs +1 -1
  206. package/dist/components/CopyButton/index.js +1 -1
  207. package/dist/components/DatePicker/index.cjs +1 -1
  208. package/dist/components/DatePicker/index.js +1 -1
  209. package/dist/components/DateTimePicker/index.cjs +1 -1
  210. package/dist/components/DateTimePicker/index.js +1 -1
  211. package/dist/components/EmptyState/index.cjs +1 -1
  212. package/dist/components/EmptyState/index.js +1 -1
  213. package/dist/components/FileCard/index.cjs +1 -1
  214. package/dist/components/FileCard/index.js +1 -1
  215. package/dist/components/FileUploader/index.cjs +1 -1
  216. package/dist/components/FileUploader/index.js +1 -1
  217. package/dist/components/Flag/index.cjs +1 -1
  218. package/dist/components/Flag/index.js +1 -1
  219. package/dist/components/FullscreenToggle/index.cjs +1 -1
  220. package/dist/components/FullscreenToggle/index.js +1 -1
  221. package/dist/components/IconButton/index.cjs +1 -1
  222. package/dist/components/IconButton/index.js +1 -1
  223. package/dist/components/Link/Link.d.cts +44 -0
  224. package/dist/components/Link/Link.d.ts +44 -0
  225. package/dist/components/Link/index.cjs +2 -0
  226. package/dist/components/Link/index.cjs.map +1 -0
  227. package/dist/components/Link/index.d.cts +3 -0
  228. package/dist/components/Link/index.d.ts +3 -0
  229. package/dist/components/Link/index.js +6 -0
  230. package/dist/components/Link/index.js.map +1 -0
  231. package/dist/components/Loader/index.cjs +1 -1
  232. package/dist/components/Loader/index.js +1 -1
  233. package/dist/components/Modal/index.cjs +1 -1
  234. package/dist/components/Modal/index.js +1 -1
  235. package/dist/components/MultiSelect/index.cjs +1 -1
  236. package/dist/components/MultiSelect/index.js +1 -1
  237. package/dist/components/NumberField/index.cjs +1 -1
  238. package/dist/components/NumberField/index.js +1 -1
  239. package/dist/components/OtpField/index.cjs +1 -1
  240. package/dist/components/OtpField/index.js +1 -1
  241. package/dist/components/PageLayout/index.cjs +1 -1
  242. package/dist/components/PageLayout/index.js +1 -1
  243. package/dist/components/PageNotFound/index.cjs +1 -1
  244. package/dist/components/PageNotFound/index.js +1 -1
  245. package/dist/components/Pagination/index.cjs +1 -1
  246. package/dist/components/Pagination/index.js +1 -1
  247. package/dist/components/QrCode/QrCode.d.cts +46 -0
  248. package/dist/components/QrCode/QrCode.d.ts +46 -0
  249. package/dist/components/QrCode/index.cjs +2 -0
  250. package/dist/components/QrCode/index.cjs.map +1 -0
  251. package/dist/components/QrCode/index.d.cts +2 -0
  252. package/dist/components/QrCode/index.d.ts +2 -0
  253. package/dist/components/QrCode/index.js +6 -0
  254. package/dist/components/QrCode/index.js.map +1 -0
  255. package/dist/components/RemoveDialog/index.cjs +1 -1
  256. package/dist/components/RemoveDialog/index.js +1 -1
  257. package/dist/components/RichTextEditor/index.cjs +1 -1
  258. package/dist/components/RichTextEditor/index.js +1 -1
  259. package/dist/components/RootLayout/ActionSet.d.cts +27 -0
  260. package/dist/components/RootLayout/ActionSet.d.ts +27 -0
  261. package/dist/components/RootLayout/index.cjs +1 -1
  262. package/dist/components/RootLayout/index.js +1 -1
  263. package/dist/components/Select/index.cjs +1 -1
  264. package/dist/components/Select/index.js +1 -1
  265. package/dist/components/Sidebar/Sidebar.d.cts +55 -3
  266. package/dist/components/Sidebar/Sidebar.d.ts +55 -3
  267. package/dist/components/Sidebar/index.cjs +1 -1
  268. package/dist/components/Sidebar/index.d.cts +1 -0
  269. package/dist/components/Sidebar/index.d.ts +1 -0
  270. package/dist/components/Sidebar/index.js +1 -1
  271. package/dist/components/SpeedDial/index.cjs +1 -1
  272. package/dist/components/SpeedDial/index.js +1 -1
  273. package/dist/components/Stepper/index.cjs +1 -1
  274. package/dist/components/Stepper/index.js +1 -1
  275. package/dist/components/Table/index.cjs +1 -1
  276. package/dist/components/Table/index.js +1 -1
  277. package/dist/components/Tabs/index.cjs +1 -1
  278. package/dist/components/Tabs/index.js +1 -1
  279. package/dist/components/TagsField/index.cjs +1 -1
  280. package/dist/components/TagsField/index.js +1 -1
  281. package/dist/components/TextField/index.cjs +1 -1
  282. package/dist/components/TextField/index.js +1 -1
  283. package/dist/components/ThemeToggle/index.cjs +1 -1
  284. package/dist/components/ThemeToggle/index.js +1 -1
  285. package/dist/components/TimePicker/index.cjs +1 -1
  286. package/dist/components/TimePicker/index.js +1 -1
  287. package/dist/components/Toast/index.cjs +1 -1
  288. package/dist/components/Toast/index.js +1 -1
  289. package/dist/components/TranslatedFields/index.cjs +1 -1
  290. package/dist/components/TranslatedFields/index.js +1 -1
  291. package/dist/components/UserCard/index.cjs +1 -1
  292. package/dist/components/UserCard/index.js +1 -1
  293. package/dist/components/index.d.cts +2 -0
  294. package/dist/components/index.d.ts +2 -0
  295. package/dist/entries/app.cjs +1 -1
  296. package/dist/entries/app.js +1 -1
  297. package/dist/entries/components.cjs +1 -1
  298. package/dist/entries/components.js +112 -108
  299. package/dist/entries/components.js.map +1 -1
  300. package/dist/entries/i18n.cjs +1 -1
  301. package/dist/entries/i18n.js +2 -2
  302. package/dist/entries/theme.cjs +1 -1
  303. package/dist/entries/theme.d.cts +1 -1
  304. package/dist/entries/theme.d.ts +1 -1
  305. package/dist/entries/theme.js +1 -1
  306. package/dist/i18n/messages.d.cts +1 -0
  307. package/dist/i18n/messages.d.ts +1 -0
  308. package/dist/index.cjs +1 -1
  309. package/dist/index.css +1 -1
  310. package/dist/index.js +115 -111
  311. package/dist/index.js.map +1 -1
  312. package/dist/{messages-CGHhwf6F.js → messages-CL8uoIRj.js} +8 -1
  313. package/dist/messages-CL8uoIRj.js.map +1 -0
  314. package/dist/messages-Dvn_tEp0.cjs +36 -0
  315. package/dist/messages-Dvn_tEp0.cjs.map +1 -0
  316. package/dist/theme/ConfigProvider.d.cts +22 -1
  317. package/dist/theme/ConfigProvider.d.ts +22 -1
  318. package/dist/theme/index.d.cts +1 -1
  319. package/dist/theme/index.d.ts +1 -1
  320. package/package.json +6 -1
  321. package/dist/AdminRoot-BDRLuMX6.cjs.map +0 -1
  322. package/dist/AdminRoot-DvF0js0q.js.map +0 -1
  323. package/dist/ConfigProvider-C7DUWHrb.cjs.map +0 -1
  324. package/dist/ConfigProvider-DT0yrgmd.js.map +0 -1
  325. package/dist/RootLayout-BNwHsuhC.js +0 -422
  326. package/dist/RootLayout-BNwHsuhC.js.map +0 -1
  327. package/dist/RootLayout-CB-3FgOp.cjs +0 -2
  328. package/dist/RootLayout-CB-3FgOp.cjs.map +0 -1
  329. package/dist/Sidebar-CJ7DtOqb.js +0 -513
  330. package/dist/Sidebar-CJ7DtOqb.js.map +0 -1
  331. package/dist/Sidebar-Cv95DJxZ.cjs +0 -2
  332. package/dist/Sidebar-Cv95DJxZ.cjs.map +0 -1
  333. package/dist/messages-CGHhwf6F.js.map +0 -1
  334. package/dist/messages-DZJyiaf9.cjs +0 -36
  335. package/dist/messages-DZJyiaf9.cjs.map +0 -1
@@ -1,2 +0,0 @@
1
- "use strict";const e=require("react/jsx-runtime"),S=require("react"),O=require("@tanstack/react-router"),P=require("clsx"),K=require("./useMediaQuery-CHMrI6Dy.cjs"),V=require("./useLockBodyScroll-CIXHZo-Q.cjs"),H=require("./Avatar-Dgf04PBC.cjs"),E=require("./Col-BdQeyKEX.cjs"),N=require("./Divider-CzbhdCiD.cjs"),G=require("./Dropdown-Ui7h2TGd.cjs"),p=require("./Icon-BVULqOJD.cjs"),T=require("./IconButton-Lv0sDDR9.cjs"),Q=require("./ListItem-yXXjtepZ.cjs"),X=require("./FullscreenToggle-BncatGKj.cjs"),Z=require("./ThemeToggle-isboxfZk.cjs"),c=require("./Typography-BFatE1_A.cjs"),$=require("./Breadcrumbs-CknDBLMw.cjs"),ee=require("./Toaster-Qnsq3guQ.cjs"),f=require("./Sidebar-Cv95DJxZ.cjs"),se=require("./Flag-Bxnx26DM.cjs"),te=require("./Modal-V6eyGSzW.cjs"),U=require("./ChoiceCardGroup-d0VVTUi5.cjs"),ae=require("./Select-Cx1Yl8nq.cjs"),ne=require("./SwatchPicker-CCJltwHI.cjs"),i=require("./ConfigProvider-C7DUWHrb.cjs"),re={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 oe({open:C,onClose:k,showTheme:F=!0}){const{mode:h,setMode:q,accentColors:b,defaultAccentColors:j,setAccentColor:I,headerSticky:z,setHeaderSticky:D,fontFamily:g,setFontFamily:d}=i.useTheme(),s=i.useT(),[o,x]=S.useState(""),_=o.trim(),m=g!==i.DEFAULT_FONT_FAMILY?[i.DEFAULT_FONT_FAMILY,g]:[i.DEFAULT_FONT_FAMILY],B=(_.length>0&&!m.some(a=>a.toLowerCase()===_.toLowerCase())?[_,...m]:m).map(a=>({value:a,label:a===i.DEFAULT_FONT_FAMILY?s("settings.fontDefault",{font:a}):a})),v=(a,w)=>{const u=j[a],n=[u,...re[a].filter(l=>l.toLowerCase()!==u.toLowerCase())];return e.jsx(ne.SwatchPicker,{label:w,colors:n,value:b[a]??u,onChange:l=>I(l.toLowerCase()===u.toLowerCase()?null:l,a),labels:{[u]:s("settings.accentDefault",{color:u})},"aria-label":String(w)})};return e.jsxs(te.Modal,{open:C,onClose:k,placement:"right",size:"sm",title:s("settings.label"),icon:"Setting5",children:[F&&e.jsxs(e.Fragment,{children:[e.jsx(c.Typography,{variant:"subtitle",as:"h3",children:s("settings.themeTitle")}),e.jsx(c.Typography,{variant:"bodySmall",color:"muted",as:"p",style:{marginTop:"var(--tz-space-xxs)"},children:s("settings.themeDesc")}),e.jsx(U.ChoiceCardGroup,{exclusive:!0,color:"accent",minCardWidth:130,value:h,onChange:a=>{typeof a=="string"&&q(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(N.Divider,{style:{margin:"var(--tz-space-md) 0"}})]}),e.jsx(c.Typography,{variant:"subtitle",as:"h3",children:s("settings.accentTitle")}),e.jsx(c.Typography,{variant:"bodySmall",color:"muted",as:"p",style:{marginTop:"var(--tz-space-xxs)"},children:s("settings.accentDesc")}),e.jsx(E.Col,{gap:"md",style:{marginTop:"var(--tz-space-sm)"},children:F?e.jsxs(e.Fragment,{children:[v("light",s("settings.lightTheme")),v("dark",s("settings.darkTheme"))]}):v(h,s(h==="light"?"settings.lightTheme":"settings.darkTheme"))}),e.jsx(N.Divider,{style:{margin:"var(--tz-space-md) 0"}}),e.jsx(c.Typography,{variant:"subtitle",as:"h3",children:s("settings.fontTitle")}),e.jsx(c.Typography,{variant:"bodySmall",color:"muted",as:"p",style:{marginTop:"var(--tz-space-xxs)"},children:s("settings.fontDesc")}),e.jsx(ae.Select,{label:s("settings.fontFamily"),searchable:!0,searchPlaceholder:s("settings.fontSearch"),value:g,options:B,onSearchChange:x,onChange:a=>{d(a),x("")},"aria-label":s("settings.fontFamily"),style:{marginTop:"var(--tz-space-sm)"}}),e.jsx(N.Divider,{style:{margin:"var(--tz-space-md) 0"}}),e.jsx(c.Typography,{variant:"subtitle",as:"h3",children:s("settings.headerTitle")}),e.jsx(c.Typography,{variant:"bodySmall",color:"muted",as:"p",style:{marginTop:"var(--tz-space-xxs)"},children:s("settings.headerDesc")}),e.jsx(U.ChoiceCardGroup,{exclusive:!0,color:"accent",minCardWidth:130,value:z?"fixed":"static",onChange:a=>{typeof a=="string"&&D(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)"}})]})}const ce="_shell_1529j_5",le="_shellCollapsed_1529j_21",ie="_sidebar_1529j_21",de="_sidebarInner_1529j_49",ue="_sidebarClose_1529j_58",he="_backdrop_1529j_65",ge="_brand_1529j_70",me="_sidebarSearch_1529j_86",pe="_navScroll_1529j_99",be="_sidebarFooter_1529j_108",je="_headerSearch_1529j_115",xe="_main_1529j_119",_e="_topbar_1529j_126",ve="_topbarSticky_1529j_139",ye="_headerStart_1529j_150",Te="_headerEnd_1529j_159",fe="_account_1529j_166",Se="_content_1529j_182",Ce="_pageTitleRow_1529j_189",ke="_pageTitle_1529j_189",Fe="_settings_1529j_211",t={shell:ce,shellCollapsed:le,sidebar:ie,sidebarInner:de,sidebarClose:ue,backdrop:he,brand:ge,sidebarSearch:me,navScroll:pe,sidebarFooter:be,headerSearch:je,main:xe,topbar:_e,topbarSticky:ve,headerStart:ye,headerEnd:Te,account:fe,content:Se,pageTitleRow:Ce,pageTitle:ke,settings:Fe};function we({logo:C,sidebarFooter:k,header:F,toaster:h=!0,children:q}){const b=f.usePageTitle(),j=f.usePageBack(),{headerSticky:I}=i.useTheme(),{language:z,setLanguage:D,languages:g}=i.useLanguage(),d=i.useT(),o={...i.useHeaderConfig(),...F},x=o.theme??!0,_=o.fullscreen??!1,m=o.settings??!0,A=o.search??!0,B=o.languages??!0,v=o.breadcrumbs??!0,a=typeof h=="object"?h:void 0,w=o.pageTitle??!0,u=o.onLogout,n=o.user,l=K.useMediaQuery("md"),[L,y]=S.useState(l);S.useEffect(()=>{y(l)},[l]),V.useLockBodyScroll(l&&!L);const Y=O.useRouterState({select:r=>r.location.pathname});S.useEffect(()=>{l&&y(!0)},[Y]);const M=O.useRouterState({select:r=>r.statusCode===404||r.matches.some(J=>J.status==="notFound")}),[W,R]=S.useState(!1);return e.jsxs("div",{className:P.clsx(t.shell,L&&t.shellCollapsed),children:[e.jsx("aside",{className:t.sidebar,children:e.jsxs("div",{className:t.sidebarInner,children:[C?e.jsxs("div",{className:t.brand,children:[C,e.jsx(T.IconButton,{variant:"filled",size:"sm",className:t.sidebarClose,"aria-label":d("common.close"),onClick:()=>y(!0),children:e.jsx(p.Icon,{name:"Close"})})]}):null,A?e.jsx("div",{className:t.sidebarSearch,children:e.jsx(f.NavSearch,{})}):null,e.jsx("div",{className:t.navScroll,children:e.jsx(f.Sidebar,{})}),k?e.jsx("div",{className:t.sidebarFooter,children:k}):null]})}),e.jsx("div",{className:t.backdrop,onClick:()=>y(!0),"aria-hidden":"true"}),e.jsxs("div",{className:t.main,children:[e.jsxs("header",{className:P.clsx(t.topbar,I&&t.topbarSticky),children:[e.jsxs("div",{className:t.headerStart,children:[e.jsx(T.IconButton,{"aria-label":L?"Show sidebar":"Hide sidebar","aria-expanded":!L,variant:"filled",size:"sm",onClick:()=>y(r=>!r),children:e.jsx(p.Icon,{name:"Menu"})}),A?e.jsx("div",{className:t.headerSearch,children:e.jsx(f.NavSearch,{})}):null]}),e.jsxs("div",{className:t.headerEnd,children:[_?e.jsx(X.FullscreenToggle,{variant:"filled",size:"sm"}):null,x?e.jsx(Z.ThemeToggle,{variant:"filled",size:"sm"}):null,B&&g.length>1?e.jsx(G.Dropdown,{placement:"bottom-end",trigger:e.jsx(T.IconButton,{variant:"filled",size:"sm","aria-label":d("language.label"),children:e.jsx(p.Icon,{name:"Global"})}),children:g.map(r=>e.jsx(Q.ListItem,{clickable:!0,selected:r.code===z,onClick:()=>D(r.code),icon:e.jsx(se.Flag,{code:r.code}),children:r.label??r.code},r.code))}):null,m?e.jsx(T.IconButton,{"aria-label":d("settings.label"),variant:"text",size:"sm",className:t.settings,onClick:()=>R(!0),children:e.jsx(p.Icon,{name:"Setting5"})}):null,u?e.jsxs(G.Dropdown,{placement:"bottom-end",trigger:e.jsx("button",{type:"button",className:t.account,"aria-label":d("account.label"),children:e.jsx(H.Avatar,{size:"md",name:n==null?void 0:n.name,src:n==null?void 0:n.avatar,color:"primary"})}),children:[n?e.jsxs(e.Fragment,{children:[e.jsxs(E.Row,{gap:8,align:"center",padding:"var(--tz-space-xxs) var(--tz-space-sm)",children:[e.jsx(H.Avatar,{size:"sm",name:n.name,src:n.avatar,color:"primary"}),e.jsxs(E.Col,{gap:2,children:[e.jsx(c.Typography,{variant:"bodySmall",children:n.name??d("userCard.welcome")}),n.email?e.jsx(c.Typography,{variant:"caption",color:"muted",children:n.email}):null]})]}),e.jsx(N.Divider,{})]}):null,e.jsx(Q.ListItem,{icon:e.jsx(p.Icon,{name:"Logout2",color:"error"}),clickable:!0,onClick:u,children:d("userCard.signOut")})]}):null]})]}),e.jsxs("main",{className:t.content,children:[v&&!M?e.jsx($.Breadcrumbs,{}):null,w&&!M&&(b||j)?e.jsxs("div",{className:t.pageTitleRow,children:[j?e.jsx(T.IconButton,{"aria-label":d("pageTitle.back"),variant:"filled",color:"accent",className:t.backButton,onClick:j,size:"sm",children:e.jsx(p.Icon,{name:"ArrowLeft"})}):null,b?e.jsx(c.Typography,{variant:"h2",className:t.pageTitle,children:b}):null]}):null,q]})]}),h!==!1&&e.jsx(ee.Toaster,{...a}),m?e.jsx(oe,{open:W,onClose:()=>R(!1),showTheme:x}):null]})}exports.RootLayout=we;
2
- //# sourceMappingURL=RootLayout-CB-3FgOp.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RootLayout-CB-3FgOp.cjs","sources":["../src/components/RootLayout/SettingsDrawer.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`). 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 } = 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 </Modal>\n )\n}\n","import { useEffect, useState, type ReactNode } from 'react'\nimport { useRouterState } 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, usePageBack, usePageTitle } from '../Sidebar/Sidebar'\nimport { Flag } from '../Flag'\nimport { SettingsDrawer } from './SettingsDrawer'\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 // 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\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 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-sm)\">\n <Avatar size=\"sm\" 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=\"bodySmall\">\n {user.name ?? t('userCard.welcome')}\n </Typography>\n {user.email ? (\n <Typography variant=\"caption\" color=\"muted\">\n {user.email}\n </Typography>\n ) : null}\n </Col>\n </Row>\n <Divider />\n </>\n ) : 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 </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","useTheme","t","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","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","isNarrow","useMediaQuery","collapsed","setCollapsed","useEffect","useLockBodyScroll","pathname","useRouterState","s","isNotFound","m","settingsOpen","setSettingsOpen","clsx","styles","IconButton","Icon","NavSearch","Sidebar","FullscreenToggle","ThemeToggle","Dropdown","l","ListItem","Flag","Avatar","Row","Breadcrumbs","Toaster"],"mappings":"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"}
@@ -1,513 +0,0 @@
1
- import { jsx as u, jsxs as P, Fragment as A } from "react/jsx-runtime";
2
- import { useMemo as L, useState as T, useRef as Y, useEffect as k } from "react";
3
- import { Navigate as U, useRouterState as N, Link as y, useRouter as M, useNavigate as F } from "@tanstack/react-router";
4
- import { clsx as W } from "clsx";
5
- import { I as O } from "./Icon-DaTvzLBu.js";
6
- import { L as w } from "./List-LqbfF6gU.js";
7
- import { L as E } from "./ListItem-Cn15lJBr.js";
8
- import { T as q } from "./TextField-DcdwUA9d.js";
9
- import { u as H, h as G } from "./access-Db4knwyR.js";
10
- import { a as Q } from "./ConfigProvider-DT0yrgmd.js";
11
- const X = "_nav_a1zzi_4", J = "_module_a1zzi_17", Z = "_search_a1zzi_25", ee = "_searchPanel_a1zzi_31", te = "_moduleLabel_a1zzi_46", oe = "_leaves_a1zzi_61", ne = "_navBadge_a1zzi_66", ae = "_navDot_a1zzi_78", se = "_leafDot_a1zzi_86", le = "_collapsible_a1zzi_95", re = "_collapsibleClosed_a1zzi_100", ce = "_collapsibleInner_a1zzi_103", ie = "_chevron_a1zzi_109", ue = "_chevronButton_a1zzi_119", b = {
12
- nav: X,
13
- module: J,
14
- search: Z,
15
- searchPanel: ee,
16
- moduleLabel: te,
17
- leaves: oe,
18
- navBadge: ne,
19
- navDot: ae,
20
- leafDot: se,
21
- collapsible: le,
22
- collapsibleClosed: re,
23
- collapsibleInner: ce,
24
- chevron: ie,
25
- chevronButton: ue
26
- }, C = E, de = (e) => e.split("-").map((o) => o.charAt(0).toUpperCase() + o.slice(1)).join(" "), R = (e) => e.replace(/^\/+|\/+$/g, ""), B = (e) => e.length > 1 && e.endsWith("/") ? e.slice(0, -1) : e, D = (e, o) => e.order - o.order || e.label.localeCompare(o.label);
27
- function fe(e) {
28
- const o = [];
29
- for (const a of e) {
30
- const r = a.staticData, s = R(a.fullPath);
31
- !(r != null && r.name) || !s || o.push({ path: s, name: r.name, sd: r });
32
- }
33
- const t = new Map(o.map((a) => [a.path, a])), n = o.map((a) => a.path), l = (a) => n.some((r) => {
34
- var s;
35
- return r !== a && r.startsWith(`${a}/`) && !((s = t.get(r)) != null && s.sd.hidden);
36
- }), i = new Set(e.map((a) => a.fullPath)), h = (a) => i.has(`/${a}/`), m = (a, r) => {
37
- const s = t.get(a);
38
- return {
39
- label: (s == null ? void 0 : s.name) ?? de(r),
40
- icon: s == null ? void 0 : s.sd.icon,
41
- badge: s == null ? void 0 : s.sd.badge,
42
- dot: s == null ? void 0 : s.sd.dot,
43
- order: (s == null ? void 0 : s.sd.order) ?? Number.POSITIVE_INFINITY
44
- };
45
- }, p = /* @__PURE__ */ new Map(), f = (a) => {
46
- let r = p.get(a);
47
- if (!r) {
48
- const s = m(a, a);
49
- r = { label: s.label, icon: s.icon, order: s.order, groups: /* @__PURE__ */ new Map() }, p.set(a, r);
50
- }
51
- return r;
52
- }, g = [];
53
- for (const { path: a, name: r, sd: s } of o) {
54
- const _ = a.split("/");
55
- if (_.length <= 2 && l(a) || s.hidden) continue;
56
- if (_.length === 1) {
57
- g.push({
58
- label: r,
59
- to: `/${a}`,
60
- icon: s.icon,
61
- badge: s.badge,
62
- dot: s.dot,
63
- order: s.order ?? Number.POSITIVE_INFINITY
64
- });
65
- continue;
66
- }
67
- const c = f(_[0]);
68
- if (_.length === 2)
69
- c.groups.set(a, {
70
- label: r,
71
- icon: s.icon,
72
- to: `/${a}`,
73
- badge: s.badge,
74
- dot: s.dot,
75
- order: s.order ?? Number.POSITIVE_INFINITY,
76
- leaves: [],
77
- isContainer: !1
78
- });
79
- else {
80
- const d = _.slice(0, 2).join("/");
81
- let v = c.groups.get(d);
82
- if (!v) {
83
- const z = m(d, _[1]);
84
- v = {
85
- label: z.label,
86
- icon: z.icon,
87
- badge: z.badge,
88
- dot: z.dot,
89
- order: z.order,
90
- to: h(d) ? `/${d}` : void 0,
91
- leaves: [],
92
- isContainer: !0
93
- }, c.groups.set(d, v);
94
- }
95
- v.leaves.push({
96
- label: r,
97
- to: `/${a}`,
98
- icon: s.icon,
99
- badge: s.badge,
100
- dot: s.dot,
101
- order: s.order ?? Number.POSITIVE_INFINITY
102
- });
103
- }
104
- }
105
- return {
106
- links: g.sort(D).map((a) => ({ label: a.label, to: a.to, icon: a.icon, badge: a.badge, dot: a.dot })),
107
- modules: [...p.values()].sort(D).map(
108
- (a) => ({
109
- module: a.label,
110
- icon: a.icon,
111
- groups: [...a.groups.values()].sort(D).map(
112
- (r) => ({
113
- label: r.label,
114
- icon: r.icon,
115
- to: r.to,
116
- badge: r.badge,
117
- dot: r.dot,
118
- children: r.isContainer ? r.leaves.sort(D).map((s) => ({
119
- label: s.label,
120
- to: s.to,
121
- icon: s.icon,
122
- badge: s.badge,
123
- dot: s.dot
124
- })) : void 0
125
- })
126
- )
127
- })
128
- )
129
- };
130
- }
131
- function S() {
132
- const e = M(), o = H();
133
- return L(
134
- () => fe(
135
- Object.values(e.looseRoutesById).map((t) => {
136
- var n;
137
- return {
138
- fullPath: t.fullPath,
139
- staticData: (n = t.options) == null ? void 0 : n.staticData
140
- };
141
- }).filter((t) => {
142
- var n;
143
- return G((n = t.staticData) == null ? void 0 : n.roles);
144
- })
145
- ),
146
- [e, o]
147
- );
148
- }
149
- function j(e) {
150
- var o;
151
- if (e.links[0]) return e.links[0].to;
152
- for (const t of e.modules)
153
- for (const n of t.groups) {
154
- if (n.to) return n.to;
155
- const l = (o = n.children) == null ? void 0 : o[0];
156
- if (l) return l.to;
157
- }
158
- }
159
- function he() {
160
- return j(S());
161
- }
162
- function me(e) {
163
- var t;
164
- const o = /* @__PURE__ */ new Map();
165
- for (const n of e) {
166
- const l = (t = n.staticData) == null ? void 0 : t.name;
167
- if (!l) continue;
168
- const i = B(n.fullPath);
169
- o.has(i) || o.set(i, l);
170
- }
171
- return o;
172
- }
173
- function K(e, o) {
174
- const t = [];
175
- let n = "";
176
- for (const l of R(e).split("/").filter(Boolean)) {
177
- n += `/${l}`;
178
- const i = o.get(n);
179
- i && t.push({ name: i, to: n });
180
- }
181
- return t;
182
- }
183
- function V() {
184
- const e = M();
185
- return L(
186
- () => me(
187
- Object.values(e.looseRoutesById).map((o) => {
188
- var t;
189
- return {
190
- fullPath: o.fullPath,
191
- staticData: (t = o.options) == null ? void 0 : t.staticData
192
- };
193
- })
194
- ),
195
- [e]
196
- );
197
- }
198
- function $(e, o) {
199
- if (e != null)
200
- return typeof e == "function" ? e(o) : e;
201
- }
202
- function be(e, o, t) {
203
- return $(e, t) ?? $(o, t);
204
- }
205
- function pe() {
206
- var o;
207
- const e = N({ select: (t) => t.matches });
208
- for (let t = e.length - 1; t >= 0; t--) {
209
- const n = $(
210
- (o = e[t].staticData) == null ? void 0 : o.title,
211
- e[t].params ?? {}
212
- );
213
- if (n) return n;
214
- }
215
- }
216
- function ve(e, o) {
217
- if (!(e == null || e === !1))
218
- return e === !0 ? { kind: "history" } : { kind: "navigate", to: typeof e == "function" ? e(o) : e };
219
- }
220
- function Ae() {
221
- var n;
222
- const e = M(), o = F(), t = N({ select: (l) => l.matches });
223
- for (let l = t.length - 1; l >= 0; l--) {
224
- const i = (n = t[l].staticData) == null ? void 0 : n.back;
225
- if (i == null) continue;
226
- const h = ve(i, t[l].params ?? {});
227
- return h ? h.kind === "history" ? () => e.history.back() : () => o({ to: h.to }) : void 0;
228
- }
229
- }
230
- function ge() {
231
- const e = N({ select: (o) => o.matches });
232
- for (let o = e.length - 1; o >= 0; o--) {
233
- const t = e[o].staticData, n = be(
234
- t == null ? void 0 : t.breadcrumb,
235
- t == null ? void 0 : t.title,
236
- e[o].params ?? {}
237
- );
238
- if (n) return n;
239
- }
240
- }
241
- function Fe() {
242
- const e = pe(), o = V(), t = N({ select: (l) => l.location.pathname });
243
- if (e != null) return e;
244
- const n = K(t, o);
245
- return n.length > 0 ? n[n.length - 1].name : void 0;
246
- }
247
- function _e(e) {
248
- const o = /* @__PURE__ */ new Set();
249
- for (const t of e.links) o.add(t.to);
250
- for (const t of e.modules)
251
- for (const n of t.groups) {
252
- n.to && o.add(n.to);
253
- for (const l of n.children ?? []) o.add(l.to);
254
- }
255
- return o;
256
- }
257
- function Ne(e, o) {
258
- const { leafPath: t, leafTitle: n, navigable: l } = o, i = e.map(({ name: h, to: m }) => ({
259
- label: h,
260
- to: m !== t && l.has(m) ? m : void 0
261
- }));
262
- return n && (e.length > 0 && e[e.length - 1].to === t ? i[i.length - 1] = { label: n } : i.push({ label: n })), i;
263
- }
264
- function Oe() {
265
- const e = S(), o = V(), t = N({ select: (h) => h.location.pathname }), n = ge(), l = j(e), i = Ne(K(t, o), {
266
- leafPath: B(t),
267
- leafTitle: n,
268
- navigable: _e(e)
269
- });
270
- return { homeTo: l, items: i };
271
- }
272
- function Re() {
273
- const e = he();
274
- return e ? /* @__PURE__ */ u(U, { to: e }) : null;
275
- }
276
- function je() {
277
- const { links: e, modules: o } = S(), t = N({ select: (n) => n.location.pathname });
278
- return /* @__PURE__ */ P("nav", { className: b.nav, children: [
279
- e.length > 0 ? /* @__PURE__ */ u(w, { children: e.map((n) => /* @__PURE__ */ u(
280
- C,
281
- {
282
- as: y,
283
- to: n.to,
284
- icon: n.icon,
285
- selected: x(t, n.to),
286
- clickable: !0,
287
- trailing: I(n.badge, n.dot),
288
- children: n.label
289
- },
290
- n.to
291
- )) }) : null,
292
- o.map((n) => /* @__PURE__ */ P("div", { className: b.module, children: [
293
- /* @__PURE__ */ u("div", { className: b.moduleLabel, children: n.module }),
294
- /* @__PURE__ */ u(w, { children: n.groups.map((l) => /* @__PURE__ */ u(ke, { group: l, pathname: t }, l.label)) })
295
- ] }, n.module))
296
- ] });
297
- }
298
- function ze(e) {
299
- const o = [];
300
- for (const t of e.links) o.push({ label: t.label, to: t.to });
301
- for (const t of e.modules)
302
- for (const n of t.groups) {
303
- n.to && o.push({ label: n.label, to: n.to, context: t.module });
304
- for (const l of n.children ?? [])
305
- o.push({
306
- label: l.label,
307
- to: l.to,
308
- context: `${t.module} · ${n.label}`
309
- });
310
- }
311
- return o;
312
- }
313
- const Ie = 8;
314
- function Ke() {
315
- const e = Q(), o = S(), t = F(), n = L(() => ze(o), [o]), [l, i] = T(""), [h, m] = T(!1), [p, f] = T(0), g = Y(null), a = L(() => {
316
- const c = l.trim().toLowerCase();
317
- return c ? n.filter(
318
- (d) => {
319
- var v;
320
- return d.label.toLowerCase().includes(c) || (((v = d.context) == null ? void 0 : v.toLowerCase().includes(c)) ?? !1);
321
- }
322
- ).slice(0, Ie) : [];
323
- }, [n, l]), r = h && a.length > 0;
324
- k(() => f(0), [l]), k(() => {
325
- f((c) => c > a.length - 1 ? Math.max(0, a.length - 1) : c);
326
- }, [a.length]), k(() => {
327
- if (!h) return;
328
- const c = (d) => {
329
- g.current && !g.current.contains(d.target) && m(!1);
330
- };
331
- return document.addEventListener("pointerdown", c), () => document.removeEventListener("pointerdown", c);
332
- }, [h]);
333
- const s = (c) => {
334
- t({ to: c }), i(""), m(!1);
335
- }, _ = (c) => {
336
- if (r)
337
- if (c.key === "ArrowDown")
338
- c.preventDefault(), f((d) => (d + 1) % a.length);
339
- else if (c.key === "ArrowUp")
340
- c.preventDefault(), f((d) => (d - 1 + a.length) % a.length);
341
- else if (c.key === "Enter") {
342
- c.preventDefault();
343
- const d = a[p];
344
- d && s(d.to);
345
- } else c.key === "Escape" && m(!1);
346
- };
347
- return /* @__PURE__ */ P(
348
- "div",
349
- {
350
- ref: g,
351
- className: b.search,
352
- role: "combobox",
353
- "aria-expanded": r,
354
- "aria-haspopup": "listbox",
355
- children: [
356
- /* @__PURE__ */ u(
357
- q,
358
- {
359
- value: l,
360
- onChange: (c) => {
361
- i(c.target.value), m(!0);
362
- },
363
- onFocus: () => m(!0),
364
- onKeyDown: _,
365
- adornment: /* @__PURE__ */ u(O, { name: "SearchNormal" }),
366
- placeholder: e("sidebar.searchPages"),
367
- "aria-label": e("sidebar.searchPages"),
368
- autoComplete: "off"
369
- }
370
- ),
371
- r ? /* @__PURE__ */ u("div", { className: b.searchPanel, children: /* @__PURE__ */ u(w, { role: "listbox", children: a.map((c, d) => /* @__PURE__ */ u(
372
- E,
373
- {
374
- description: c.context,
375
- clickable: !0,
376
- selected: d === p,
377
- onMouseDown: (v) => v.preventDefault(),
378
- onMouseEnter: () => f(d),
379
- onClick: () => s(c.to),
380
- children: c.label
381
- },
382
- c.to
383
- )) }) }) : null
384
- ]
385
- }
386
- );
387
- }
388
- function x(e, o) {
389
- const t = B(e), n = B(o);
390
- return n === "/" ? t === "/" : t === n || t.startsWith(n + "/");
391
- }
392
- function Pe(e, o) {
393
- var t;
394
- return e.to && x(o, e.to) ? !0 : ((t = e.children) == null ? void 0 : t.some((n) => x(o, n.to))) ?? !1;
395
- }
396
- function De(e) {
397
- return e ? /* @__PURE__ */ u("span", { className: b.navBadge, children: e }) : null;
398
- }
399
- function Te(e) {
400
- return e ? /* @__PURE__ */ u("span", { className: b.navDot, style: { background: `var(--tz-color-${e})` } }) : null;
401
- }
402
- function I(e, o, t) {
403
- if (!(e == null && o == null && t == null))
404
- return /* @__PURE__ */ P(A, { children: [
405
- De(e),
406
- Te(o),
407
- t
408
- ] });
409
- }
410
- function ke({ group: e, pathname: o }) {
411
- var m, p;
412
- const t = Pe(e, o), n = !!((m = e.children) != null && m.length), [l, i] = T(t);
413
- if (k(() => {
414
- t && i(!0);
415
- }, [t]), !n && e.to)
416
- return /* @__PURE__ */ u(
417
- C,
418
- {
419
- as: y,
420
- to: e.to,
421
- icon: e.icon,
422
- selected: t,
423
- clickable: !0,
424
- trailing: I(e.badge, e.dot),
425
- children: e.label
426
- }
427
- );
428
- const h = /* @__PURE__ */ u(
429
- O,
430
- {
431
- name: "ArrowDown4",
432
- size: "sm",
433
- className: b.chevron,
434
- "data-open": l ? "true" : "false"
435
- }
436
- );
437
- return /* @__PURE__ */ P(A, { children: [
438
- n && e.to ? (
439
- // "Case B": the row navigates (and expands); a separate chevron only toggles.
440
- /* @__PURE__ */ u(
441
- C,
442
- {
443
- as: y,
444
- to: e.to,
445
- icon: e.icon,
446
- selected: t,
447
- clickable: !0,
448
- onClick: () => i(!0),
449
- trailing: I(
450
- e.badge,
451
- e.dot,
452
- /* @__PURE__ */ u(
453
- "button",
454
- {
455
- type: "button",
456
- className: b.chevronButton,
457
- "aria-label": `${l ? "Collapse" : "Expand"} ${e.label}`,
458
- "aria-expanded": l,
459
- onClick: (f) => {
460
- f.preventDefault(), f.stopPropagation(), i((g) => !g);
461
- },
462
- children: h
463
- }
464
- )
465
- ),
466
- children: e.label
467
- }
468
- )
469
- ) : (
470
- // a pure container — the whole row toggles its children
471
- /* @__PURE__ */ u(
472
- E,
473
- {
474
- icon: e.icon,
475
- selected: t,
476
- clickable: !0,
477
- "aria-expanded": l,
478
- onClick: () => i((f) => !f),
479
- trailing: I(e.badge, e.dot, h),
480
- children: e.label
481
- }
482
- )
483
- ),
484
- n ? (
485
- // smooth collapse, same grid-template-rows technique as Card
486
- /* @__PURE__ */ u("div", { className: W(b.collapsible, !l && b.collapsibleClosed), children: /* @__PURE__ */ u("div", { className: b.collapsibleInner, children: /* @__PURE__ */ u(w, { className: b.leaves, children: (p = e.children) == null ? void 0 : p.map((f) => /* @__PURE__ */ u(
487
- C,
488
- {
489
- as: y,
490
- to: f.to,
491
- icon: /* @__PURE__ */ u("span", { className: b.leafDot }),
492
- selected: x(o, f.to),
493
- size: "md",
494
- clickable: !0,
495
- trailing: I(f.badge, f.dot),
496
- children: f.label
497
- },
498
- f.to
499
- )) }) }) })
500
- ) : null
501
- ] });
502
- }
503
- export {
504
- Re as F,
505
- Ke as N,
506
- je as S,
507
- Fe as a,
508
- fe as b,
509
- Ae as c,
510
- j as f,
511
- Oe as u
512
- };
513
- //# sourceMappingURL=Sidebar-CJ7DtOqb.js.map