@modern-admin/web 0.4.1 → 0.4.2

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 (241) hide show
  1. package/dist/standalone/assets/{action-component-host-BrEZDHZt.js → action-component-host-P6HcuKj3.js} +2 -2
  2. package/dist/standalone/assets/action-component-host-P6HcuKj3.js.br +0 -0
  3. package/dist/standalone/assets/action-component-host-P6HcuKj3.js.gz +0 -0
  4. package/dist/standalone/assets/{action-component-host-BrEZDHZt.js.map → action-component-host-P6HcuKj3.js.map} +1 -1
  5. package/dist/standalone/assets/{action-page-Bx7kzeK7.js → action-page-kyqtK3oq.js} +2 -2
  6. package/dist/standalone/assets/action-page-kyqtK3oq.js.br +0 -0
  7. package/dist/standalone/assets/action-page-kyqtK3oq.js.gz +0 -0
  8. package/dist/standalone/assets/{action-page-Bx7kzeK7.js.map → action-page-kyqtK3oq.js.map} +1 -1
  9. package/dist/standalone/assets/{ai-assistant-widget-BbIXVrSu.js → ai-assistant-widget-DGanix6u.js} +2 -2
  10. package/dist/standalone/assets/ai-assistant-widget-DGanix6u.js.br +0 -0
  11. package/dist/standalone/assets/ai-assistant-widget-DGanix6u.js.gz +0 -0
  12. package/dist/standalone/assets/{ai-assistant-widget-BbIXVrSu.js.map → ai-assistant-widget-DGanix6u.js.map} +1 -1
  13. package/dist/standalone/assets/{audit-log-page-BoZh23oQ.js → audit-log-page-DozriTiA.js} +2 -2
  14. package/dist/standalone/assets/audit-log-page-DozriTiA.js.br +0 -0
  15. package/dist/standalone/assets/audit-log-page-DozriTiA.js.gz +0 -0
  16. package/dist/standalone/assets/{audit-log-page-BoZh23oQ.js.map → audit-log-page-DozriTiA.js.map} +1 -1
  17. package/dist/standalone/assets/{badge-6nyM5Jft.js → badge-lb2Nqx1b.js} +2 -2
  18. package/dist/standalone/assets/{badge-6nyM5Jft.js.map → badge-lb2Nqx1b.js.map} +1 -1
  19. package/dist/standalone/assets/{calendar-nvD_z7KQ.js → calendar-crtd4PEn.js} +2 -2
  20. package/dist/standalone/assets/calendar-crtd4PEn.js.br +0 -0
  21. package/dist/standalone/assets/calendar-crtd4PEn.js.gz +0 -0
  22. package/dist/standalone/assets/{calendar-nvD_z7KQ.js.map → calendar-crtd4PEn.js.map} +1 -1
  23. package/dist/standalone/assets/{card-4cS4uWCP.js → card-Dh44j2Nb.js} +2 -2
  24. package/dist/standalone/assets/card-Dh44j2Nb.js.br +0 -0
  25. package/dist/standalone/assets/card-Dh44j2Nb.js.gz +0 -0
  26. package/dist/standalone/assets/{card-4cS4uWCP.js.map → card-Dh44j2Nb.js.map} +1 -1
  27. package/dist/standalone/assets/chart-widget-B819aHsE.js +2 -0
  28. package/dist/standalone/assets/chart-widget-B819aHsE.js.br +0 -0
  29. package/dist/standalone/assets/chart-widget-B819aHsE.js.gz +0 -0
  30. package/dist/standalone/assets/chart-widget-B819aHsE.js.map +1 -0
  31. package/dist/standalone/assets/{command-Sb0xL-se.js → command-xJ-6Grpv.js} +2 -2
  32. package/dist/standalone/assets/command-xJ-6Grpv.js.br +0 -0
  33. package/dist/standalone/assets/command-xJ-6Grpv.js.gz +0 -0
  34. package/dist/standalone/assets/command-xJ-6Grpv.js.map +1 -0
  35. package/dist/standalone/assets/{date-picker-C4HcgidQ.js → date-picker-D0dWQEox.js} +2 -2
  36. package/dist/standalone/assets/date-picker-D0dWQEox.js.br +0 -0
  37. package/dist/standalone/assets/date-picker-D0dWQEox.js.gz +0 -0
  38. package/dist/standalone/assets/{date-picker-C4HcgidQ.js.map → date-picker-D0dWQEox.js.map} +1 -1
  39. package/dist/standalone/assets/{dist-BSbFjTlr.js → dist-CWGgVQiS.js} +2 -2
  40. package/dist/standalone/assets/dist-CWGgVQiS.js.br +0 -0
  41. package/dist/standalone/assets/dist-CWGgVQiS.js.gz +0 -0
  42. package/dist/standalone/assets/{dist-BSbFjTlr.js.map → dist-CWGgVQiS.js.map} +1 -1
  43. package/dist/standalone/assets/{dist-Dpg8xy_r.js → dist-UsTgBPww.js} +2 -2
  44. package/dist/standalone/assets/dist-UsTgBPww.js.br +0 -0
  45. package/dist/standalone/assets/dist-UsTgBPww.js.gz +0 -0
  46. package/dist/standalone/assets/{dist-Dpg8xy_r.js.map → dist-UsTgBPww.js.map} +1 -1
  47. package/dist/standalone/assets/dist-qlnAsTo_.js +2 -0
  48. package/dist/standalone/assets/dist-qlnAsTo_.js.br +0 -0
  49. package/dist/standalone/assets/dist-qlnAsTo_.js.gz +0 -0
  50. package/dist/standalone/assets/{dist-BcL2U6dT.js.map → dist-qlnAsTo_.js.map} +1 -1
  51. package/dist/standalone/assets/{edit-page-CW7-FAPC.js → edit-page-CFPwq1_5.js} +2 -2
  52. package/dist/standalone/assets/edit-page-CFPwq1_5.js.br +0 -0
  53. package/dist/standalone/assets/edit-page-CFPwq1_5.js.gz +0 -0
  54. package/dist/standalone/assets/{edit-page-CW7-FAPC.js.map → edit-page-CFPwq1_5.js.map} +1 -1
  55. package/dist/standalone/assets/empty-D9sUunOr.js +2 -0
  56. package/dist/standalone/assets/empty-D9sUunOr.js.br +0 -0
  57. package/dist/standalone/assets/empty-D9sUunOr.js.gz +0 -0
  58. package/dist/standalone/assets/{empty-Cposcczv.js.map → empty-D9sUunOr.js.map} +1 -1
  59. package/dist/standalone/assets/{global-search-dialog-DLv_nIvM.js → global-search-dialog-AfQmJSE7.js} +2 -2
  60. package/dist/standalone/assets/global-search-dialog-AfQmJSE7.js.br +0 -0
  61. package/dist/standalone/assets/global-search-dialog-AfQmJSE7.js.gz +0 -0
  62. package/dist/standalone/assets/{global-search-dialog-DLv_nIvM.js.map → global-search-dialog-AfQmJSE7.js.map} +1 -1
  63. package/dist/standalone/assets/{heavy-fields-BiCEgD2L.js → heavy-fields-_zVIBnm1.js} +4 -4
  64. package/dist/standalone/assets/heavy-fields-_zVIBnm1.js.br +0 -0
  65. package/dist/standalone/assets/heavy-fields-_zVIBnm1.js.gz +0 -0
  66. package/dist/standalone/assets/{heavy-fields-BiCEgD2L.js.map → heavy-fields-_zVIBnm1.js.map} +1 -1
  67. package/dist/standalone/assets/{home-page-BSz1wGk0.js → home-page-BdTrAXqk.js} +3 -3
  68. package/dist/standalone/assets/home-page-BdTrAXqk.js.br +0 -0
  69. package/dist/standalone/assets/home-page-BdTrAXqk.js.gz +0 -0
  70. package/dist/standalone/assets/{home-page-BSz1wGk0.js.map → home-page-BdTrAXqk.js.map} +1 -1
  71. package/dist/standalone/assets/{icon-registry-BQU4fIc4.js → icon-registry-CcMm2Zh3.js} +2 -2
  72. package/dist/standalone/assets/icon-registry-CcMm2Zh3.js.br +0 -0
  73. package/dist/standalone/assets/icon-registry-CcMm2Zh3.js.gz +0 -0
  74. package/dist/standalone/assets/{icon-registry-BQU4fIc4.js.map → icon-registry-CcMm2Zh3.js.map} +1 -1
  75. package/dist/standalone/assets/index-DHZwffoP.css +2 -0
  76. package/dist/standalone/assets/index-DHZwffoP.css.br +0 -0
  77. package/dist/standalone/assets/{index-95cwJ2RY.css.gz → index-DHZwffoP.css.gz} +0 -0
  78. package/dist/standalone/assets/index-uYpCUVT4.js +15 -0
  79. package/dist/standalone/assets/index-uYpCUVT4.js.br +0 -0
  80. package/dist/standalone/assets/index-uYpCUVT4.js.gz +0 -0
  81. package/dist/standalone/assets/index-uYpCUVT4.js.map +1 -0
  82. package/dist/standalone/assets/json-editor-yfO4TUB_.js +2 -0
  83. package/dist/standalone/assets/json-editor-yfO4TUB_.js.br +0 -0
  84. package/dist/standalone/assets/json-editor-yfO4TUB_.js.gz +0 -0
  85. package/dist/standalone/assets/{json-editor-CAIgxYb3.js.map → json-editor-yfO4TUB_.js.map} +1 -1
  86. package/dist/standalone/assets/{property-renderer-B8Md-EqW.js → property-renderer-CDKsa2KQ.js} +4 -4
  87. package/dist/standalone/assets/property-renderer-CDKsa2KQ.js.br +0 -0
  88. package/dist/standalone/assets/property-renderer-CDKsa2KQ.js.gz +0 -0
  89. package/dist/standalone/assets/property-renderer-CDKsa2KQ.js.map +1 -0
  90. package/dist/standalone/assets/reference-DWJEoGIf.js +2 -0
  91. package/dist/standalone/assets/reference-DWJEoGIf.js.br +0 -0
  92. package/dist/standalone/assets/reference-DWJEoGIf.js.gz +0 -0
  93. package/dist/standalone/assets/reference-DWJEoGIf.js.map +1 -0
  94. package/dist/standalone/assets/{revisions-button-0WtL6bsZ.js → revisions-button-DR0oW2wX.js} +2 -2
  95. package/dist/standalone/assets/revisions-button-DR0oW2wX.js.br +0 -0
  96. package/dist/standalone/assets/revisions-button-DR0oW2wX.js.gz +0 -0
  97. package/dist/standalone/assets/{revisions-button-0WtL6bsZ.js.map → revisions-button-DR0oW2wX.js.map} +1 -1
  98. package/dist/standalone/assets/{richtext-render-DnVcQ34I.js → richtext-render-VFCKGulc.js} +2 -2
  99. package/dist/standalone/assets/richtext-render-VFCKGulc.js.br +0 -0
  100. package/dist/standalone/assets/richtext-render-VFCKGulc.js.gz +0 -0
  101. package/dist/standalone/assets/{richtext-render-DnVcQ34I.js.map → richtext-render-VFCKGulc.js.map} +1 -1
  102. package/dist/standalone/assets/{router-wFvtgo77.js → router-BcZgB5cZ.js} +12 -12
  103. package/dist/standalone/assets/router-BcZgB5cZ.js.br +0 -0
  104. package/dist/standalone/assets/router-BcZgB5cZ.js.gz +0 -0
  105. package/dist/standalone/assets/router-BcZgB5cZ.js.map +1 -0
  106. package/dist/standalone/assets/select-BiV9bunJ.js +2 -0
  107. package/dist/standalone/assets/select-BiV9bunJ.js.br +0 -0
  108. package/dist/standalone/assets/select-BiV9bunJ.js.gz +0 -0
  109. package/dist/standalone/assets/{select-CR4acjX0.js.map → select-BiV9bunJ.js.map} +1 -1
  110. package/dist/standalone/assets/{settings-page-DtguXLAP.js → settings-page-DSWp2N6T.js} +2 -2
  111. package/dist/standalone/assets/settings-page-DSWp2N6T.js.br +0 -0
  112. package/dist/standalone/assets/settings-page-DSWp2N6T.js.gz +0 -0
  113. package/dist/standalone/assets/{settings-page-DtguXLAP.js.map → settings-page-DSWp2N6T.js.map} +1 -1
  114. package/dist/standalone/assets/{show-page-Dnox2NwO.js → show-page-CGzUAZoO.js} +2 -2
  115. package/dist/standalone/assets/show-page-CGzUAZoO.js.br +0 -0
  116. package/dist/standalone/assets/show-page-CGzUAZoO.js.gz +0 -0
  117. package/dist/standalone/assets/{show-page-Dnox2NwO.js.map → show-page-CGzUAZoO.js.map} +1 -1
  118. package/dist/standalone/assets/tabs-smdw70rV.js +2 -0
  119. package/dist/standalone/assets/tabs-smdw70rV.js.br +0 -0
  120. package/dist/standalone/assets/tabs-smdw70rV.js.gz +0 -0
  121. package/dist/standalone/assets/{tabs-DUS8e6dR.js.map → tabs-smdw70rV.js.map} +1 -1
  122. package/dist/standalone/assets/{textarea-CX_0QVSz.js → textarea-DBVf3GGt.js} +2 -2
  123. package/dist/standalone/assets/{textarea-CX_0QVSz.js.map → textarea-DBVf3GGt.js.map} +1 -1
  124. package/dist/standalone/assets/useQueries-Ba2PuYhZ.js +2 -0
  125. package/dist/standalone/assets/useQueries-Ba2PuYhZ.js.br +0 -0
  126. package/dist/standalone/assets/useQueries-Ba2PuYhZ.js.gz +0 -0
  127. package/dist/standalone/assets/useQueries-Ba2PuYhZ.js.map +1 -0
  128. package/dist/standalone/assets/{user-directory-9COoW6AO.js → user-directory-Df5X8VOe.js} +2 -2
  129. package/dist/standalone/assets/user-directory-Df5X8VOe.js.br +0 -0
  130. package/dist/standalone/assets/user-directory-Df5X8VOe.js.gz +0 -0
  131. package/dist/standalone/assets/{user-directory-9COoW6AO.js.map → user-directory-Df5X8VOe.js.map} +1 -1
  132. package/dist/standalone/assets/{value-format-Cgau0meh.js → value-format-BUeGtfH4.js} +16 -16
  133. package/dist/standalone/assets/value-format-BUeGtfH4.js.br +0 -0
  134. package/dist/standalone/assets/value-format-BUeGtfH4.js.gz +0 -0
  135. package/dist/standalone/assets/{value-format-Cgau0meh.js.map → value-format-BUeGtfH4.js.map} +1 -1
  136. package/dist/standalone/assets/with-selector-id7qGzTH.js +2 -0
  137. package/dist/standalone/assets/with-selector-id7qGzTH.js.br +0 -0
  138. package/dist/standalone/assets/with-selector-id7qGzTH.js.gz +0 -0
  139. package/dist/standalone/assets/with-selector-id7qGzTH.js.map +1 -0
  140. package/dist/standalone/assets/{wizard-create-page-v2-Aw8Oj.js → wizard-create-page-B8IcszRF.js} +2 -2
  141. package/dist/standalone/assets/wizard-create-page-B8IcszRF.js.br +0 -0
  142. package/dist/standalone/assets/wizard-create-page-B8IcszRF.js.gz +0 -0
  143. package/dist/standalone/assets/{wizard-create-page-v2-Aw8Oj.js.map → wizard-create-page-B8IcszRF.js.map} +1 -1
  144. package/dist/standalone/assets/{zod-BrelKLfy.js → zod-mi61gVha.js} +2 -2
  145. package/dist/standalone/assets/zod-mi61gVha.js.br +0 -0
  146. package/dist/standalone/assets/zod-mi61gVha.js.gz +0 -0
  147. package/dist/standalone/assets/{zod-BrelKLfy.js.map → zod-mi61gVha.js.map} +1 -1
  148. package/dist/standalone/index.html +10 -10
  149. package/dist/standalone/index.html.br +0 -0
  150. package/dist/standalone/index.html.gz +0 -0
  151. package/package.json +4 -4
  152. package/dist/standalone/assets/action-component-host-BrEZDHZt.js.br +0 -0
  153. package/dist/standalone/assets/action-component-host-BrEZDHZt.js.gz +0 -0
  154. package/dist/standalone/assets/action-page-Bx7kzeK7.js.br +0 -0
  155. package/dist/standalone/assets/action-page-Bx7kzeK7.js.gz +0 -0
  156. package/dist/standalone/assets/ai-assistant-widget-BbIXVrSu.js.br +0 -0
  157. package/dist/standalone/assets/ai-assistant-widget-BbIXVrSu.js.gz +0 -0
  158. package/dist/standalone/assets/audit-log-page-BoZh23oQ.js.br +0 -0
  159. package/dist/standalone/assets/audit-log-page-BoZh23oQ.js.gz +0 -0
  160. package/dist/standalone/assets/calendar-nvD_z7KQ.js.br +0 -0
  161. package/dist/standalone/assets/calendar-nvD_z7KQ.js.gz +0 -0
  162. package/dist/standalone/assets/card-4cS4uWCP.js.br +0 -0
  163. package/dist/standalone/assets/card-4cS4uWCP.js.gz +0 -0
  164. package/dist/standalone/assets/chart-widget-YeCL7jdB.js +0 -2
  165. package/dist/standalone/assets/chart-widget-YeCL7jdB.js.br +0 -0
  166. package/dist/standalone/assets/chart-widget-YeCL7jdB.js.gz +0 -0
  167. package/dist/standalone/assets/chart-widget-YeCL7jdB.js.map +0 -1
  168. package/dist/standalone/assets/command-Sb0xL-se.js.br +0 -0
  169. package/dist/standalone/assets/command-Sb0xL-se.js.gz +0 -0
  170. package/dist/standalone/assets/command-Sb0xL-se.js.map +0 -1
  171. package/dist/standalone/assets/date-picker-C4HcgidQ.js.br +0 -0
  172. package/dist/standalone/assets/date-picker-C4HcgidQ.js.gz +0 -0
  173. package/dist/standalone/assets/dist-BSbFjTlr.js.br +0 -0
  174. package/dist/standalone/assets/dist-BSbFjTlr.js.gz +0 -0
  175. package/dist/standalone/assets/dist-BcL2U6dT.js +0 -2
  176. package/dist/standalone/assets/dist-BcL2U6dT.js.br +0 -0
  177. package/dist/standalone/assets/dist-BcL2U6dT.js.gz +0 -0
  178. package/dist/standalone/assets/dist-Dpg8xy_r.js.br +0 -0
  179. package/dist/standalone/assets/dist-Dpg8xy_r.js.gz +0 -0
  180. package/dist/standalone/assets/edit-page-CW7-FAPC.js.br +0 -0
  181. package/dist/standalone/assets/edit-page-CW7-FAPC.js.gz +0 -0
  182. package/dist/standalone/assets/empty-Cposcczv.js +0 -2
  183. package/dist/standalone/assets/empty-Cposcczv.js.br +0 -0
  184. package/dist/standalone/assets/empty-Cposcczv.js.gz +0 -0
  185. package/dist/standalone/assets/global-search-dialog-DLv_nIvM.js.br +0 -0
  186. package/dist/standalone/assets/global-search-dialog-DLv_nIvM.js.gz +0 -0
  187. package/dist/standalone/assets/heavy-fields-BiCEgD2L.js.br +0 -0
  188. package/dist/standalone/assets/heavy-fields-BiCEgD2L.js.gz +0 -0
  189. package/dist/standalone/assets/home-page-BSz1wGk0.js.br +0 -0
  190. package/dist/standalone/assets/home-page-BSz1wGk0.js.gz +0 -0
  191. package/dist/standalone/assets/icon-registry-BQU4fIc4.js.br +0 -0
  192. package/dist/standalone/assets/icon-registry-BQU4fIc4.js.gz +0 -0
  193. package/dist/standalone/assets/index-95cwJ2RY.css +0 -2
  194. package/dist/standalone/assets/index-95cwJ2RY.css.br +0 -0
  195. package/dist/standalone/assets/index-BL8keDxQ.js +0 -15
  196. package/dist/standalone/assets/index-BL8keDxQ.js.br +0 -0
  197. package/dist/standalone/assets/index-BL8keDxQ.js.gz +0 -0
  198. package/dist/standalone/assets/index-BL8keDxQ.js.map +0 -1
  199. package/dist/standalone/assets/json-editor-CAIgxYb3.js +0 -2
  200. package/dist/standalone/assets/json-editor-CAIgxYb3.js.br +0 -0
  201. package/dist/standalone/assets/json-editor-CAIgxYb3.js.gz +0 -0
  202. package/dist/standalone/assets/property-renderer-B8Md-EqW.js.br +0 -0
  203. package/dist/standalone/assets/property-renderer-B8Md-EqW.js.gz +0 -0
  204. package/dist/standalone/assets/property-renderer-B8Md-EqW.js.map +0 -1
  205. package/dist/standalone/assets/reference-WPaf6IdD.js +0 -2
  206. package/dist/standalone/assets/reference-WPaf6IdD.js.br +0 -0
  207. package/dist/standalone/assets/reference-WPaf6IdD.js.gz +0 -0
  208. package/dist/standalone/assets/reference-WPaf6IdD.js.map +0 -1
  209. package/dist/standalone/assets/revisions-button-0WtL6bsZ.js.br +0 -0
  210. package/dist/standalone/assets/revisions-button-0WtL6bsZ.js.gz +0 -0
  211. package/dist/standalone/assets/richtext-render-DnVcQ34I.js.br +0 -0
  212. package/dist/standalone/assets/richtext-render-DnVcQ34I.js.gz +0 -0
  213. package/dist/standalone/assets/router-wFvtgo77.js.br +0 -0
  214. package/dist/standalone/assets/router-wFvtgo77.js.gz +0 -0
  215. package/dist/standalone/assets/router-wFvtgo77.js.map +0 -1
  216. package/dist/standalone/assets/select-CR4acjX0.js +0 -2
  217. package/dist/standalone/assets/select-CR4acjX0.js.br +0 -0
  218. package/dist/standalone/assets/select-CR4acjX0.js.gz +0 -0
  219. package/dist/standalone/assets/settings-page-DtguXLAP.js.br +0 -0
  220. package/dist/standalone/assets/settings-page-DtguXLAP.js.gz +0 -0
  221. package/dist/standalone/assets/show-page-Dnox2NwO.js.br +0 -0
  222. package/dist/standalone/assets/show-page-Dnox2NwO.js.gz +0 -0
  223. package/dist/standalone/assets/tabs-DUS8e6dR.js +0 -2
  224. package/dist/standalone/assets/tabs-DUS8e6dR.js.br +0 -0
  225. package/dist/standalone/assets/tabs-DUS8e6dR.js.gz +0 -0
  226. package/dist/standalone/assets/useQueries-BCUhWYX4.js +0 -2
  227. package/dist/standalone/assets/useQueries-BCUhWYX4.js.br +0 -0
  228. package/dist/standalone/assets/useQueries-BCUhWYX4.js.gz +0 -0
  229. package/dist/standalone/assets/useQueries-BCUhWYX4.js.map +0 -1
  230. package/dist/standalone/assets/user-directory-9COoW6AO.js.br +0 -0
  231. package/dist/standalone/assets/user-directory-9COoW6AO.js.gz +0 -0
  232. package/dist/standalone/assets/value-format-Cgau0meh.js.br +0 -0
  233. package/dist/standalone/assets/value-format-Cgau0meh.js.gz +0 -0
  234. package/dist/standalone/assets/with-selector-NDLhu4dT.js +0 -2
  235. package/dist/standalone/assets/with-selector-NDLhu4dT.js.br +0 -0
  236. package/dist/standalone/assets/with-selector-NDLhu4dT.js.gz +0 -0
  237. package/dist/standalone/assets/with-selector-NDLhu4dT.js.map +0 -1
  238. package/dist/standalone/assets/wizard-create-page-v2-Aw8Oj.js.br +0 -0
  239. package/dist/standalone/assets/wizard-create-page-v2-Aw8Oj.js.gz +0 -0
  240. package/dist/standalone/assets/zod-BrelKLfy.js.br +0 -0
  241. package/dist/standalone/assets/zod-BrelKLfy.js.gz +0 -0
@@ -1,2 +1,2 @@
1
- import{a as e,n as t}from"./createLucideIcon-CUopU_LC.js";import{S as n,s as r}from"./with-selector-NDLhu4dT.js";import{t as i}from"./bot-DFDgGfNj.js";import{t as a}from"./trash-2-DhyKQCKv.js";import{t as o}from"./copy-BexCWf4U.js";import{t as s}from"./key-round-CQLp1Ua9.js";import{t as c}from"./plus-Dk-FzitW.js";import{t as l}from"./save-Cd3oR3Sj.js";import{t as u}from"./square-pen-DGT7ekeJ.js";import{t as d}from"./triangle-alert-CyaaNWN8.js";import{t as f}from"./x-C3kLunD6.js";import{s as p}from"./dist-Dpg8xy_r.js";import{t as m}from"./textarea-CX_0QVSz.js";import{a as h,i as g,n as _,r as v,t as y}from"./select-CR4acjX0.js";import{a as b,c as x,i as S,l as C,o as w,r as T,s as E,t as D}from"./json-editor-CAIgxYb3.js";import{a as O,c as ee,i as k,o as te,r as ne,s as A,t as re}from"./empty-Cposcczv.js";import{F as ie,at as j,et as M,ht as N,i as P,n as F,ot as I,q as ae,rt as L}from"./router-wFvtgo77.js";import{t as R}from"./badge-6nyM5Jft.js";import{a as oe,i as se,n as ce,r as le,t as ue}from"./card-4cS4uWCP.js";import{F as z,I as B,L as V,N as H,P as U,Q as W,R as G,Y as K,ft as de,i as q,o as fe,pt as pe,q as J,r as me,yt as he}from"./index-BL8keDxQ.js";var Y=e(t(),1),X=n();function Z({icon:e,title:t,description:n,action:i,bodyClassName:a,children:o}){return(0,X.jsxs)(ue,{children:[(0,X.jsxs)(se,{className:r(`flex-col items-start gap-2`,i&&`sm:flex-row sm:items-center sm:justify-between`),children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5`,children:[(0,X.jsxs)(oe,{className:`flex items-center gap-2`,children:[(0,X.jsx)(e,{className:`size-5`}),t]}),n?(0,X.jsx)(le,{children:n}):null]}),i]}),(0,X.jsx)(ce,{className:r(`min-w-0`,a),children:o})]})}function ge({children:e}){return(0,X.jsx)(`div`,{className:`-mx-6 overflow-x-auto sm:mx-0`,children:e})}function _e({icon:e,title:t,description:n}){return(0,X.jsx)(re,{className:`border-0`,children:(0,X.jsxs)(k,{children:[(0,X.jsx)(O,{children:(0,X.jsx)(e,{})}),(0,X.jsx)(te,{children:t}),n?(0,X.jsx)(ne,{children:n}):null]})})}function ve({isLoading:e,error:t,isEmpty:n,loadingLabel:r,empty:i,children:a}){return e?(0,X.jsx)(`div`,{className:`py-8 text-center text-sm text-muted-foreground`,children:r}):t?(0,X.jsx)(`div`,{className:`rounded-md border border-destructive/50 bg-destructive/10 p-4 text-sm text-destructive`,children:t instanceof Error?t.message:String(t)}):n?(0,X.jsx)(_e,{...i}):(0,X.jsx)(X.Fragment,{children:a})}function ye(){let e=L(),t=q(),{t:n}=M(),r=I({queryKey:[`modern-admin`,`ai-assistant`,`settings`],queryFn:()=>e.getAiAssistantSettings()}),[a,o]=Y.useState({enabled:!0,model:`google/gemini-3.1-flash-lite-preview`,apiKey:``,systemPrompt:``});Y.useEffect(()=>{r.data&&o({enabled:r.data.enabled,model:r.data.model,apiKey:``,systemPrompt:r.data.systemPrompt})},[r.data]);let c=j({mutationFn:async()=>e.updateAiAssistantSettings({enabled:a.enabled,model:a.model,...a.apiKey.trim()?{apiKey:a.apiKey.trim()}:{},systemPrompt:a.systemPrompt}),onSuccess:()=>{r.refetch(),o(e=>({...e,apiKey:``})),t.success({message:n(`aiAssistant:settings.saved`)})},onError:e=>{t.error({message:e instanceof Error?e.message:String(e)})}});if(r.isLoading)return(0,X.jsx)(`div`,{className:`py-8 text-sm text-muted-foreground`,children:n(`common:loading`)});if(r.error)return(0,X.jsx)(`div`,{className:`rounded-md border border-destructive/50 bg-destructive/10 p-4 text-sm text-destructive`,children:r.error instanceof Error?r.error.message:String(r.error)});let u=r.data;return u?(0,X.jsx)(`div`,{className:`flex flex-col gap-4`,children:(0,X.jsxs)(Z,{icon:i,title:n(`aiAssistant:settings.title`),description:n(`aiAssistant:settings.description`),bodyClassName:`space-y-4`,children:[(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,X.jsx)(R,{variant:u.enabled?`secondary`:`outline`,children:u.enabled?n(`aiAssistant:settings.enabled`):n(`aiAssistant:settings.disabled`)}),(0,X.jsx)(R,{variant:u.configured?`secondary`:`outline`,children:u.configured?n(`aiAssistant:settings.configured`):n(`aiAssistant:settings.apiKeyRequired`)}),(0,X.jsx)(R,{variant:`outline`,children:n(`aiAssistant:settings.readOnly`)}),(0,X.jsx)(R,{variant:`outline`,children:n(`aiAssistant:settings.provider`,{provider:u.provider})})]}),(0,X.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between rounded-lg border border-border p-3`,children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(J,{htmlFor:`ai-assistant-enabled`,children:n(`aiAssistant:settings.enableLabel`)}),(0,X.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`aiAssistant:settings.enableHint`)})]}),(0,X.jsx)(ee,{id:`ai-assistant-enabled`,checked:a.enabled,disabled:!u.canManage||c.isPending,onCheckedChange:e=>o(t=>({...t,enabled:e}))})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsx)(J,{htmlFor:`ai-assistant-model`,children:n(`aiAssistant:settings.modelLabel`)}),(0,X.jsx)(K,{id:`ai-assistant-model`,value:a.model,disabled:!u.canManage||c.isPending,onChange:e=>o(t=>({...t,model:e.target.value})),placeholder:`google/gemini-3.1-flash-lite-preview`})]})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsxs)(J,{htmlFor:`ai-assistant-api-key`,className:`flex items-center gap-2`,children:[(0,X.jsx)(s,{className:`size-4`}),n(`aiAssistant:settings.apiKeyLabel`)]}),(0,X.jsx)(K,{id:`ai-assistant-api-key`,type:`password`,value:a.apiKey,disabled:!u.canManage||c.isPending,onChange:e=>o(t=>({...t,apiKey:e.target.value})),placeholder:u.maskedApiKey??`sk-or-v1-...`}),(0,X.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`aiAssistant:settings.apiKeyHint`)})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsx)(J,{htmlFor:`ai-assistant-system-prompt`,children:n(`aiAssistant:settings.systemPromptLabel`)}),(0,X.jsx)(m,{id:`ai-assistant-system-prompt`,value:a.systemPrompt,disabled:!u.canManage||c.isPending,onChange:e=>o(t=>({...t,systemPrompt:e.target.value})),rows:8,placeholder:n(`aiAssistant:settings.systemPromptPlaceholder`)})]}),(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-lg border border-border p-3 text-sm`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`div`,{className:`font-medium`,children:n(`aiAssistant:settings.accessTitle`)}),(0,X.jsx)(`div`,{className:`text-muted-foreground`,children:n(`aiAssistant:settings.accessDescription`)})]}),(0,X.jsx)(R,{variant:`outline`,children:n(`aiAssistant:settings.futureToolsReady`)})]}),(0,X.jsx)(`div`,{className:`flex justify-end`,children:(0,X.jsxs)(p,{onClick:()=>c.mutate(),disabled:!u.canManage||c.isPending||!a.model.trim(),children:[(0,X.jsx)(l,{className:`size-4`}),c.isPending?n(`aiAssistant:settings.saving`):n(`aiAssistant:settings.save`)]})})]})}):(0,X.jsx)(`div`,{className:`py-8 text-sm text-muted-foreground`,children:n(`aiAssistant:settings.empty`)})}var Q=[`modern-admin`,`api-keys`],be=[`modern-admin`,`webhooks`],xe=[{key:`api-keys`,labelKey:`settings:apiKeys.title`,icon:s},{key:`webhooks`,labelKey:`settings:webhooks.title`,icon:W},{key:`ai-assistant`,labelKey:`aiAssistant:title`,icon:i}];function Se({section:e}){let{t}=M(),n=P(),i=ie(),a=Y.useMemo(()=>[...xe.filter(e=>e.key===`api-keys`?i.apiKeys:e.key===`webhooks`?i.webhooks:e.key!==`ai-assistant`||i.aiAssistant),...fe().map(e=>({key:e.key,labelKey:e.labelKey,icon:e.icon,isExtension:!0}))],[i.apiKeys,i.webhooks,i.aiAssistant]),o=[`api-keys`,`webhooks`,`ai-assistant`],s=e=>o.includes(e),c=e??null,l=c&&a.some(e=>e.key===c)?c:a[0]?.key??null;return l===null?(0,X.jsx)(`div`,{className:`rounded-md border border-dashed bg-card p-8 text-center text-sm text-muted-foreground`,children:t(`settings:noSectionsConfigured`)}):(0,X.jsxs)(`div`,{className:`flex flex-col gap-4 lg:grid lg:grid-cols-[14rem_minmax(0,1fr)]`,children:[(0,X.jsx)(`div`,{className:`lg:hidden`,children:(0,X.jsxs)(y,{value:l??``,onValueChange:e=>n({name:`settings`,section:e}),children:[(0,X.jsx)(g,{className:`w-full`,children:(0,X.jsx)(h,{})}),(0,X.jsx)(_,{children:a.map(({key:e,labelKey:n,icon:r})=>(0,X.jsx)(v,{value:e,children:(0,X.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(r,{className:`size-4`}),(0,X.jsx)(`span`,{children:t(n)})]})},e))})]})}),(0,X.jsx)(`aside`,{className:`hidden lg:block`,children:(0,X.jsx)(`nav`,{className:`flex flex-col gap-1`,children:a.map(({key:e,labelKey:n,icon:i})=>(0,X.jsxs)(F,{to:{name:`settings`,section:e},className:r(`flex items-center gap-2 rounded-md px-3 py-2 text-sm hover:bg-accent`,l===e&&`bg-accent font-medium`),children:[(0,X.jsx)(i,{className:`size-4`}),(0,X.jsx)(`span`,{children:t(n)})]},e))})}),(0,X.jsxs)(`section`,{className:`min-w-0`,children:[l&&s(l)&&l===`api-keys`&&(0,X.jsx)(Ce,{}),l&&s(l)&&l===`webhooks`&&(0,X.jsx)(Ae,{}),l&&s(l)&&l===`ai-assistant`&&(0,X.jsx)(ye,{}),l&&!s(l)&&(()=>{let e=fe().find(e=>e.key===l);return e?(0,X.jsx)(e.component,{}):null})()]})]})}function Ce(){let{t:e}=M(),t=L(),n=N(),r=q(),i=me(),o=ae(),[l,d]=Y.useState(!1),[f,m]=Y.useState(null),[h,g]=Y.useState(null),_=I({queryKey:Q,queryFn:()=>t.listApiKeys()}),v=j({mutationFn:e=>t.deleteApiKey(e),onSuccess:()=>{n.invalidateQueries({queryKey:Q}),r.success({key:`settings:apiKeys.notice.revoked`})},onError:e=>r.error({message:e instanceof Error?e.message:String(e)})}),y=j({mutationFn:e=>t.updateApiKey(e.id,{enabled:e.enabled}),onSuccess:()=>n.invalidateQueries({queryKey:Q}),onError:e=>r.error({message:e instanceof Error?e.message:String(e)})}),C=()=>{m(null),d(!0)},D=e=>{m(e),d(!0)},O=async t=>{await i.confirm({title:e(`settings:apiKeys.confirmRevoke.title`),description:e(`settings:apiKeys.confirmRevoke.description`,{name:t.name??t.id}),confirmLabel:e(`settings:apiKeys.actions.revoke`),destructive:!0})&&v.mutate(t.id)},k=_.data?.keys??[];return(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,X.jsx)(Z,{icon:s,title:e(`settings:apiKeys.title`),description:e(`settings:apiKeys.description`),action:(0,X.jsxs)(p,{onClick:C,size:`sm`,children:[(0,X.jsx)(c,{className:`size-4`}),(0,X.jsx)(`span`,{children:e(`settings:apiKeys.actions.create`)})]}),children:(0,X.jsx)(ve,{isLoading:_.isLoading,error:_.error,isEmpty:k.length===0,loadingLabel:e(`common:loading`),empty:{icon:s,title:e(`settings:apiKeys.empty.title`),description:e(`settings:apiKeys.empty.description`)},children:(0,X.jsx)(ge,{children:(0,X.jsxs)(T,{children:[(0,X.jsx)(E,{children:(0,X.jsxs)(x,{children:[(0,X.jsx)(w,{children:e(`settings:apiKeys.columns.name`)}),(0,X.jsx)(w,{className:`hidden sm:table-cell`,children:e(`settings:apiKeys.columns.start`)}),(0,X.jsx)(w,{className:`hidden md:table-cell`,children:e(`settings:apiKeys.columns.permissions`)}),(0,X.jsx)(w,{className:`hidden md:table-cell`,children:e(`settings:apiKeys.columns.expiresAt`)}),(0,X.jsx)(w,{children:e(`settings:apiKeys.columns.enabled`)}),(0,X.jsx)(w,{className:`text-right`,children:e(`settings:apiKeys.columns.actions`)})]})}),(0,X.jsx)(S,{children:k.map(t=>(0,X.jsxs)(x,{children:[(0,X.jsx)(b,{className:`font-medium`,children:(0,X.jsxs)(`div`,{className:`flex flex-col`,children:[(0,X.jsx)(`span`,{children:t.name??t.id}),t.lastRequest&&(0,X.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e(`settings:apiKeys.lastUsed`,{date:$(t.lastRequest)})})]})}),(0,X.jsx)(b,{className:`hidden font-mono text-xs sm:table-cell`,children:t.start?`${t.start}…`:`—`}),(0,X.jsx)(b,{className:`hidden md:table-cell`,children:(0,X.jsx)(De,{permissions:t.permissions})}),(0,X.jsx)(b,{className:`hidden md:table-cell text-xs`,children:t.expiresAt?$(t.expiresAt):e(`settings:apiKeys.expiresNever`)}),(0,X.jsx)(b,{children:(0,X.jsx)(ee,{checked:t.enabled,onCheckedChange:e=>y.mutate({id:t.id,enabled:e}),"aria-label":e(`settings:apiKeys.columns.enabled`)})}),(0,X.jsx)(b,{className:`text-right`,children:(0,X.jsxs)(`div`,{className:`inline-flex gap-1`,children:[(0,X.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>D(t),"aria-label":e(`settings:apiKeys.actions.edit`),children:(0,X.jsx)(u,{className:`size-4`})}),(0,X.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>O(t),"aria-label":e(`settings:apiKeys.actions.revoke`),disabled:v.isPending,children:(0,X.jsx)(a,{className:`size-4 text-destructive`})})]})})]},t.id))})]})})})}),(0,X.jsx)(Oe,{open:l,onOpenChange:d,editing:f,resources:o,onCreated:e=>{d(!1),g(e),n.invalidateQueries({queryKey:Q})},onUpdated:()=>{d(!1),n.invalidateQueries({queryKey:Q})}},f?.id??`new`),(0,X.jsx)(Fe,{secret:h,onClose:()=>g(null)})]})}var we=e=>({byResource:Object.fromEntries(Object.entries(e).map(([e,t])=>[e,new Set(t)]))}),Te=e=>{let t={};for(let[n,r]of Object.entries(e.byResource))r.size!==0&&(t[n]=Array.from(r));return t};function Ee({resources:e,state:t,onChange:n}){let{t:i}=M(),a=(e,r)=>{let i=new Set(t.byResource[e]??[]);i.has(r)?i.delete(r):i.add(r),n({byResource:{...t.byResource,[e]:i}})},o=(e,r)=>{let i=t.byResource[e]??new Set,a=r.every(e=>i.has(e)),o=new Set(a?[]:r);n({byResource:{...t.byResource,[e]:o}})},s=Y.useMemo(()=>e.filter(e=>(e.actions??[]).length>0),[e]),c=s.length>0&&s.every(e=>{let n=(e.actions??[]).map(e=>e.name),r=t.byResource[e.id]??new Set;return n.every(e=>r.has(e))});return e.length===0?(0,X.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:i(`settings:apiKeys.permissions.noResources`)}):(0,X.jsxs)(`div`,{className:`rounded-md border border-border`,children:[s.length>0&&(0,X.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 border-b border-border bg-muted/30 px-3 py-2`,children:(0,X.jsx)(p,{type:`button`,variant:`outline`,size:`sm`,className:`h-8`,onClick:()=>{let r=!c,i={...t.byResource};for(let t of e){let e=(t.actions??[]).map(e=>e.name);i[t.id]=r?new Set(e):new Set}n({byResource:i})},children:c?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(f,{className:`mr-1.5 size-3.5`}),i(`settings:apiKeys.permissions.clearAllResources`)]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(he,{className:`mr-1.5 size-3.5`}),i(`settings:apiKeys.permissions.selectAllResources`)]})})}),(0,X.jsx)(`div`,{className:`max-h-[24rem] overflow-y-auto`,children:(0,X.jsxs)(T,{children:[(0,X.jsx)(E,{className:`sticky top-0 bg-card`,children:(0,X.jsxs)(x,{children:[(0,X.jsx)(w,{className:`w-[14rem]`,children:i(`settings:apiKeys.permissions.resource`)}),(0,X.jsx)(w,{children:i(`settings:apiKeys.permissions.actions`)})]})}),(0,X.jsx)(S,{children:e.map(e=>{let n=(e.actions??[]).map(e=>e.name),s=t.byResource[e.id]??new Set,c=n.length>0&&n.every(e=>s.has(e));return(0,X.jsxs)(x,{children:[(0,X.jsx)(b,{className:`align-top`,children:(0,X.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,X.jsx)(`span`,{className:`font-medium`,children:e.name}),(0,X.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.id}),(0,X.jsxs)(`button`,{type:`button`,className:`mt-1 inline-flex items-center gap-1 self-start text-xs text-primary hover:underline`,onClick:()=>o(e.id,n),children:[c?(0,X.jsx)(f,{className:`size-3`}):(0,X.jsx)(he,{className:`size-3`}),i(c?`settings:apiKeys.permissions.clearAll`:`settings:apiKeys.permissions.selectAll`)]})]})}),(0,X.jsx)(b,{children:(0,X.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:n.map(t=>{let n=s.has(t);return(0,X.jsxs)(`label`,{className:r(`inline-flex cursor-pointer items-center gap-1.5 rounded-md border border-border px-2 py-1 text-xs`,n&&`border-primary bg-primary/10 text-primary`),children:[(0,X.jsx)(C,{checked:n,onCheckedChange:()=>a(e.id,t),className:`size-3.5`}),(0,X.jsx)(`span`,{children:t})]},t)})})})]},e.id)})})]})})]})}function De({permissions:e}){let{t}=M(),n=Object.entries(e);if(n.length===0)return(0,X.jsx)(R,{variant:`outline`,children:t(`settings:apiKeys.permissions.none`)});let r=n.reduce((e,[,t])=>e+t.length,0);return(0,X.jsx)(R,{variant:`secondary`,children:t(`settings:apiKeys.permissions.summary`,{resources:n.length,actions:r})})}function Oe({open:e,onOpenChange:t,editing:n,resources:r,onCreated:i,onUpdated:a}){let{t:o}=M(),s=L(),c=q(),l=!!n,[u,d]=Y.useState(n?.name??``),[f,m]=Y.useState(()=>{if(!n?.expiresAt)return``;let e=new Date(n.expiresAt).getTime()-Date.now();return e>0?String(Math.max(1,Math.round(e/(1440*60*1e3)))):``}),[h,g]=Y.useState(()=>we(n?.permissions??{})),_=j({mutationFn:async()=>{let e=Te(h);if(l&&n){let t=f.trim()===``?null:Number(f);return{record:(await s.updateApiKey(n.id,{name:u.trim(),permissions:e,expiresInDays:t===null?null:Number.isFinite(t)&&t>0?t:void 0})).record}}let t=f.trim()===``?null:Number(f);return s.createApiKey({name:u.trim(),permissions:e,expiresInDays:t===null?null:Number.isFinite(t)&&t>0?t:void 0})},onSuccess:e=>{l?(c.success({key:`settings:apiKeys.notice.updated`}),a(e.record)):e.key&&i({key:e.key,record:e.record})},onError:e=>c.error({message:e instanceof Error?e.message:String(e)})});Y.useEffect(()=>{if(e)if(d(n?.name??``),g(we(n?.permissions??{})),!n?.expiresAt)m(``);else{let e=new Date(n.expiresAt).getTime()-Date.now();m(e>0?String(Math.max(1,Math.round(e/(1440*60*1e3)))):``)}},[e,n]);let v=Object.values(h.byResource).reduce((e,t)=>e+(t?.size??0),0);return(0,X.jsx)(H,{open:e,onOpenChange:t,children:(0,X.jsxs)(U,{className:`max-w-3xl`,children:[(0,X.jsxs)(V,{children:[(0,X.jsx)(G,{children:o(l?`settings:apiKeys.editor.titleEdit`:`settings:apiKeys.editor.titleCreate`)}),(0,X.jsx)(z,{children:o(`settings:apiKeys.editor.description`)})]}),(0,X.jsxs)(`form`,{className:`flex flex-col gap-4`,onSubmit:e=>{e.preventDefault(),u.trim()&&_.mutate()},children:[(0,X.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(J,{htmlFor:`api-key-name`,children:o(`settings:apiKeys.editor.name`)}),(0,X.jsx)(K,{id:`api-key-name`,value:u,onChange:e=>d(e.target.value),placeholder:o(`settings:apiKeys.editor.namePlaceholder`),required:!0,maxLength:64})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(J,{htmlFor:`api-key-expires`,children:o(`settings:apiKeys.editor.expiresInDays`)}),(0,X.jsx)(K,{id:`api-key-expires`,type:`number`,min:1,max:3650,value:f,onChange:e=>m(e.target.value),placeholder:o(`settings:apiKeys.editor.expiresPlaceholder`)}),(0,X.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:o(`settings:apiKeys.editor.expiresHint`)})]})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,X.jsx)(J,{children:o(`settings:apiKeys.editor.permissions`)}),(0,X.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:o(`settings:apiKeys.editor.selectedActions`,{count:v})})]}),(0,X.jsx)(Ee,{resources:r,state:h,onChange:g})]}),(0,X.jsxs)(B,{children:[(0,X.jsx)(p,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:o(`common:cancel`)}),(0,X.jsx)(p,{type:`submit`,disabled:_.isPending||!u.trim()||v===0,children:_.isPending?o(`common:saving`):o(l?`common:save`:`settings:apiKeys.actions.create`)})]})]})]})})}var ke=[`record.created`,`record.updated`,`record.deleted`,`*`];function Ae(){let{t:e}=M(),t=L(),n=N(),r=q(),i=me(),o=ae(),[s,l]=Y.useState(!1),[d,f]=Y.useState(null),[m,h]=Y.useState(null),g=I({queryKey:be,queryFn:()=>t.listWebhooks()}),_=I({queryKey:[`modern-admin`,`webhooks`,m,`deliveries`],queryFn:()=>t.listWebhookDeliveries(m),enabled:!!m}),v=j({mutationFn:e=>t.deleteWebhook(e),onSuccess:()=>{n.invalidateQueries({queryKey:be}),r.success({key:`settings:webhooks.notice.deleted`})},onError:e=>r.error({message:e instanceof Error?e.message:String(e)})}),y=j({mutationFn:e=>t.testWebhook(e),onSuccess:()=>{m&&n.invalidateQueries({queryKey:[`modern-admin`,`webhooks`,m,`deliveries`]}),r.success({key:`settings:webhooks.notice.testQueued`})},onError:e=>r.error({message:e instanceof Error?e.message:String(e)})}),C=g.data?.webhooks??[],D=async t=>{await i.confirm({title:e(`settings:webhooks.confirmDelete.title`),description:e(`settings:webhooks.confirmDelete.description`,{name:t.name}),confirmLabel:e(`common:delete`),destructive:!0})&&v.mutate(t.id)};return(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,X.jsx)(Z,{icon:W,title:e(`settings:webhooks.title`),description:e(`settings:webhooks.description`),action:(0,X.jsxs)(p,{size:`sm`,onClick:()=>{f(null),l(!0)},children:[(0,X.jsx)(c,{className:`size-4`}),e(`settings:webhooks.actions.create`)]}),children:(0,X.jsx)(ve,{isLoading:g.isLoading,error:g.error,isEmpty:C.length===0,loadingLabel:e(`common:loading`),empty:{icon:W,title:e(`settings:webhooks.empty.title`),description:e(`settings:webhooks.empty.description`)},children:(0,X.jsx)(ge,{children:(0,X.jsxs)(T,{children:[(0,X.jsx)(E,{children:(0,X.jsxs)(x,{children:[(0,X.jsx)(w,{children:e(`settings:webhooks.columns.name`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.columns.resource`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.columns.events`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.columns.enabled`)}),(0,X.jsx)(w,{className:`text-right`,children:e(`settings:webhooks.columns.actions`)})]})}),(0,X.jsx)(S,{children:C.map(t=>(0,X.jsxs)(x,{children:[(0,X.jsxs)(b,{children:[(0,X.jsx)(`button`,{type:`button`,className:`text-left font-medium hover:underline`,onClick:()=>h(t.id),children:t.name}),(0,X.jsx)(`div`,{className:`max-w-xs truncate text-xs text-muted-foreground`,children:t.url})]}),(0,X.jsx)(b,{children:Me(o,t.resourceId,e(`settings:webhooks.editor.allResources`))}),(0,X.jsx)(b,{className:`max-w-xs`,children:(0,X.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:t.events.map(e=>(0,X.jsx)(R,{variant:`outline`,children:e},e))})}),(0,X.jsx)(b,{children:t.enabled?e(`common:yes`):e(`common:no`)}),(0,X.jsx)(b,{className:`text-right`,children:(0,X.jsxs)(`div`,{className:`inline-flex gap-1`,children:[(0,X.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>y.mutate(t.id),children:e(`settings:webhooks.actions.test`)}),(0,X.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>{f(t),l(!0)},children:(0,X.jsx)(u,{className:`size-4`})}),(0,X.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>void D(t),children:(0,X.jsx)(a,{className:`size-4 text-destructive`})})]})})]},t.id))})]})})})}),m&&(0,X.jsx)(Z,{icon:W,title:e(`settings:webhooks.deliveries.title`),children:_.isLoading?(0,X.jsx)(`div`,{className:`py-4 text-sm text-muted-foreground`,children:e(`common:loading`)}):(0,X.jsx)(ge,{children:(0,X.jsxs)(T,{children:[(0,X.jsx)(E,{children:(0,X.jsxs)(x,{children:[(0,X.jsx)(w,{children:e(`settings:webhooks.deliveries.status`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.deliveries.event`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.deliveries.attempt`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.deliveries.response`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.deliveries.createdAt`)})]})}),(0,X.jsx)(S,{children:(_.data?.deliveries??[]).map(e=>(0,X.jsxs)(x,{children:[(0,X.jsx)(b,{children:e.status}),(0,X.jsx)(b,{children:e.event}),(0,X.jsx)(b,{children:e.attempt}),(0,X.jsx)(b,{className:`max-w-sm truncate`,children:e.responseStatus??e.error??e.responseBody??`—`}),(0,X.jsx)(b,{children:$(e.createdAt)})]},e.id))})]})})}),(0,X.jsx)(je,{open:s,onOpenChange:l,webhook:d,resources:o},d?.id??`new`)]})}function je({open:e,onOpenChange:t,webhook:n,resources:r}){let{t:i}=M(),a=L(),o=N(),s=q(),[c,l]=Y.useState(n?.name??``),[u,d]=Y.useState(n?.url??``),[f,m]=Y.useState(n?.resourceId??``),[b,x]=Y.useState(n?.enabled??!0),[S,w]=Y.useState(n?.secret??``),[T,E]=Y.useState(n?.events??[`record.created`,`record.updated`]),[O,k]=Y.useState(n?.headers??{}),[te,ne]=Y.useState(n?.filters??{}),[re,ie]=Y.useState(n?.payloadFields??[]),P=r.find(e=>e.id===f),F=j({mutationFn:e=>n?a.updateWebhook(n.id,e):a.createWebhook(e),onSuccess:()=>{o.invalidateQueries({queryKey:be}),s.success({key:`settings:webhooks.notice.saved`}),t(!1)},onError:e=>s.error({message:e instanceof Error?e.message:String(e)})}),I=e=>{E(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])};return(0,X.jsx)(H,{open:e,onOpenChange:t,children:(0,X.jsxs)(U,{className:`max-w-3xl`,children:[(0,X.jsxs)(V,{children:[(0,X.jsx)(G,{children:i(n?`settings:webhooks.editor.titleEdit`:`settings:webhooks.editor.titleCreate`)}),(0,X.jsx)(z,{children:i(`settings:webhooks.editor.description`)})]}),(0,X.jsxs)(`form`,{className:`space-y-4`,onSubmit:e=>{e.preventDefault(),F.mutate({name:c.trim(),url:u.trim(),events:T,resourceId:f||null,enabled:b,...S.trim()?{secret:S.trim()}:{},headers:Pe(O),filters:Pe(te),payloadFields:re})},children:[(0,X.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.name`)}),(0,X.jsx)(K,{value:c,onChange:e=>l(e.target.value),required:!0})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.url`)}),(0,X.jsx)(K,{value:u,onChange:e=>d(e.target.value),required:!0,type:`url`})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.resource`)}),(0,X.jsxs)(y,{value:f||`__all__`,onValueChange:e=>{m(e===`__all__`?``:e),ie([])},children:[(0,X.jsx)(g,{children:(0,X.jsx)(h,{})}),(0,X.jsxs)(_,{children:[(0,X.jsx)(v,{value:`__all__`,children:i(`settings:webhooks.editor.allResources`)}),r.map(e=>(0,X.jsxs)(v,{value:e.id,children:[e.name,e.name!==e.id&&(0,X.jsxs)(`span`,{className:`ml-1.5 text-xs text-muted-foreground`,children:[`(`,e.id,`)`]})]},e.id))]})]})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.secret`)}),(0,X.jsx)(A,{content:i(`settings:webhooks.editor.secretHint`),ariaLabel:i(`settings:webhooks.editor.secret`),side:`right`})]}),(0,X.jsx)(K,{value:S,onChange:e=>w(e.target.value),type:`password`})]})]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(ee,{checked:b,onCheckedChange:x}),(0,X.jsx)(J,{children:i(`settings:webhooks.editor.enabled`)})]}),(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.events`)}),(0,X.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:ke.map(e=>(0,X.jsxs)(`label`,{className:`flex items-center gap-2 rounded-md border border-border px-3 py-2 text-sm`,children:[(0,X.jsx)(C,{checked:T.includes(e),onCheckedChange:()=>I(e)}),e]},e))})]}),P&&(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.payloadFields`)}),(0,X.jsx)(A,{content:i(`settings:webhooks.editor.payloadFieldsHint`),ariaLabel:i(`settings:webhooks.editor.payloadFields`),side:`right`})]}),(0,X.jsx)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:P.properties.map(e=>(0,X.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,X.jsx)(C,{checked:re.includes(e.path),onCheckedChange:()=>ie(t=>t.includes(e.path)?t.filter(t=>t!==e.path):[...t,e.path])}),e.label]},e.path))})]}),(0,X.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.headers`)}),(0,X.jsx)(A,{content:i(`settings:webhooks.editor.headersHint`),ariaLabel:i(`settings:webhooks.editor.headers`),side:`top`})]}),(0,X.jsx)(D,{value:O,onChange:e=>k(Ne(e))})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.filters`)}),(0,X.jsx)(A,{content:i(`settings:webhooks.editor.filtersHint`),ariaLabel:i(`settings:webhooks.editor.filters`),side:`top`})]}),(0,X.jsx)(D,{value:te,onChange:e=>ne(Ne(e))})]})]}),(0,X.jsxs)(B,{children:[(0,X.jsx)(p,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:i(`common:cancel`)}),(0,X.jsx)(p,{type:`submit`,disabled:F.isPending||!c.trim()||!u.trim()||T.length===0,children:F.isPending?i(`common:saving`):i(`common:save`)})]})]})]})})}var Me=(e,t,n)=>t?e.find(e=>e.id===t)?.name??t:n,Ne=e=>e&&typeof e==`object`&&!Array.isArray(e)?e:{},Pe=e=>{let t={};for(let[n,r]of Object.entries(e))r!=null&&r!==``&&(t[n]=String(r));return t};function Fe({secret:e,onClose:t}){let{t:n}=M(),r=q(),[i,a]=Y.useState(!1),[s,c]=Y.useState(!1);return Y.useEffect(()=>{e||(a(!1),c(!1))},[e]),(0,X.jsx)(H,{open:!!e,onOpenChange:e=>!e&&t(),children:(0,X.jsxs)(U,{className:`max-w-lg`,children:[(0,X.jsxs)(V,{children:[(0,X.jsxs)(G,{className:`flex items-center gap-2`,children:[(0,X.jsx)(W,{className:`size-5`}),n(`settings:apiKeys.created.title`)]}),(0,X.jsx)(z,{children:n(`settings:apiKeys.created.description`)})]}),(0,X.jsx)(`div`,{className:`rounded-md border border-amber-300/60 bg-amber-50 p-3 text-sm text-amber-900 dark:border-amber-300/30 dark:bg-amber-950/40 dark:text-amber-200`,children:(0,X.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,X.jsx)(d,{className:`mt-0.5 size-4`}),(0,X.jsx)(`p`,{children:n(`settings:apiKeys.created.warning`)})]})}),(0,X.jsxs)(`div`,{className:`flex items-stretch gap-2`,children:[(0,X.jsxs)(`div`,{className:`relative flex-1`,children:[(0,X.jsx)(K,{readOnly:!0,type:i?`text`:`password`,value:e?.key??``,className:`pr-10 font-mono text-xs`,onFocus:e=>e.currentTarget.select()}),(0,X.jsx)(p,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 -translate-y-1/2`,onClick:()=>a(e=>!e),"aria-label":n(i?`settings:apiKeys.created.hide`:`settings:apiKeys.created.reveal`),children:i?(0,X.jsx)(pe,{className:`size-4`}):(0,X.jsx)(de,{className:`size-4`})})]}),(0,X.jsxs)(p,{type:`button`,onClick:async()=>{if(e)try{await navigator.clipboard.writeText(e.key),c(!0),r.success({key:`settings:apiKeys.notice.copied`}),setTimeout(()=>c(!1),1500)}catch{r.error({key:`settings:apiKeys.notice.copyFailed`})}},variant:`secondary`,children:[s?(0,X.jsx)(he,{className:`size-4`}):(0,X.jsx)(o,{className:`size-4`}),(0,X.jsx)(`span`,{className:`hidden sm:inline`,children:n(s?`settings:apiKeys.created.copied`:`settings:apiKeys.created.copy`)})]})]}),(0,X.jsx)(B,{children:(0,X.jsx)(p,{onClick:t,children:n(`common:done`)})})]})})}var $=e=>{try{return new Date(e).toLocaleString()}catch{return String(e)}};export{Se as SettingsPage};
2
- //# sourceMappingURL=settings-page-DtguXLAP.js.map
1
+ import{a as e,n as t}from"./createLucideIcon-CUopU_LC.js";import{E as n,d as r}from"./with-selector-id7qGzTH.js";import{t as i}from"./bot-DFDgGfNj.js";import{t as a}from"./trash-2-DhyKQCKv.js";import{t as o}from"./copy-BexCWf4U.js";import{t as s}from"./key-round-CQLp1Ua9.js";import{t as c}from"./plus-Dk-FzitW.js";import{t as l}from"./save-Cd3oR3Sj.js";import{t as u}from"./square-pen-DGT7ekeJ.js";import{t as d}from"./triangle-alert-CyaaNWN8.js";import{t as f}from"./x-C3kLunD6.js";import{s as p}from"./dist-UsTgBPww.js";import{t as m}from"./textarea-DBVf3GGt.js";import{a as h,i as g,n as _,r as v,t as y}from"./select-BiV9bunJ.js";import{a as b,c as x,i as S,l as C,o as w,r as T,s as E,t as D}from"./json-editor-yfO4TUB_.js";import{a as O,c as ee,i as k,o as te,r as ne,s as A,t as re}from"./empty-D9sUunOr.js";import{F as ie,at as j,et as M,ht as N,i as P,n as F,ot as I,q as ae,rt as L}from"./router-BcZgB5cZ.js";import{t as R}from"./badge-lb2Nqx1b.js";import{a as oe,i as se,n as ce,r as le,t as ue}from"./card-Dh44j2Nb.js";import{F as z,I as B,L as V,N as H,P as U,Q as W,R as G,Y as K,ft as de,i as q,o as fe,pt as pe,q as J,r as me,yt as he}from"./index-uYpCUVT4.js";var Y=e(t(),1),X=n();function Z({icon:e,title:t,description:n,action:i,bodyClassName:a,children:o}){return(0,X.jsxs)(ue,{children:[(0,X.jsxs)(se,{className:r(`flex-col items-start gap-2`,i&&`sm:flex-row sm:items-center sm:justify-between`),children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5`,children:[(0,X.jsxs)(oe,{className:`flex items-center gap-2`,children:[(0,X.jsx)(e,{className:`size-5`}),t]}),n?(0,X.jsx)(le,{children:n}):null]}),i]}),(0,X.jsx)(ce,{className:r(`min-w-0`,a),children:o})]})}function ge({children:e}){return(0,X.jsx)(`div`,{className:`-mx-6 overflow-x-auto sm:mx-0`,children:e})}function _e({icon:e,title:t,description:n}){return(0,X.jsx)(re,{className:`border-0`,children:(0,X.jsxs)(k,{children:[(0,X.jsx)(O,{children:(0,X.jsx)(e,{})}),(0,X.jsx)(te,{children:t}),n?(0,X.jsx)(ne,{children:n}):null]})})}function ve({isLoading:e,error:t,isEmpty:n,loadingLabel:r,empty:i,children:a}){return e?(0,X.jsx)(`div`,{className:`py-8 text-center text-sm text-muted-foreground`,children:r}):t?(0,X.jsx)(`div`,{className:`rounded-md border border-destructive/50 bg-destructive/10 p-4 text-sm text-destructive`,children:t instanceof Error?t.message:String(t)}):n?(0,X.jsx)(_e,{...i}):(0,X.jsx)(X.Fragment,{children:a})}function ye(){let e=L(),t=q(),{t:n}=M(),r=I({queryKey:[`modern-admin`,`ai-assistant`,`settings`],queryFn:()=>e.getAiAssistantSettings()}),[a,o]=Y.useState({enabled:!0,model:`google/gemini-3.1-flash-lite-preview`,apiKey:``,systemPrompt:``});Y.useEffect(()=>{r.data&&o({enabled:r.data.enabled,model:r.data.model,apiKey:``,systemPrompt:r.data.systemPrompt})},[r.data]);let c=j({mutationFn:async()=>e.updateAiAssistantSettings({enabled:a.enabled,model:a.model,...a.apiKey.trim()?{apiKey:a.apiKey.trim()}:{},systemPrompt:a.systemPrompt}),onSuccess:()=>{r.refetch(),o(e=>({...e,apiKey:``})),t.success({message:n(`aiAssistant:settings.saved`)})},onError:e=>{t.error({message:e instanceof Error?e.message:String(e)})}});if(r.isLoading)return(0,X.jsx)(`div`,{className:`py-8 text-sm text-muted-foreground`,children:n(`common:loading`)});if(r.error)return(0,X.jsx)(`div`,{className:`rounded-md border border-destructive/50 bg-destructive/10 p-4 text-sm text-destructive`,children:r.error instanceof Error?r.error.message:String(r.error)});let u=r.data;return u?(0,X.jsx)(`div`,{className:`flex flex-col gap-4`,children:(0,X.jsxs)(Z,{icon:i,title:n(`aiAssistant:settings.title`),description:n(`aiAssistant:settings.description`),bodyClassName:`space-y-4`,children:[(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,X.jsx)(R,{variant:u.enabled?`secondary`:`outline`,children:u.enabled?n(`aiAssistant:settings.enabled`):n(`aiAssistant:settings.disabled`)}),(0,X.jsx)(R,{variant:u.configured?`secondary`:`outline`,children:u.configured?n(`aiAssistant:settings.configured`):n(`aiAssistant:settings.apiKeyRequired`)}),(0,X.jsx)(R,{variant:`outline`,children:n(`aiAssistant:settings.readOnly`)}),(0,X.jsx)(R,{variant:`outline`,children:n(`aiAssistant:settings.provider`,{provider:u.provider})})]}),(0,X.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between rounded-lg border border-border p-3`,children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(J,{htmlFor:`ai-assistant-enabled`,children:n(`aiAssistant:settings.enableLabel`)}),(0,X.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`aiAssistant:settings.enableHint`)})]}),(0,X.jsx)(ee,{id:`ai-assistant-enabled`,checked:a.enabled,disabled:!u.canManage||c.isPending,onCheckedChange:e=>o(t=>({...t,enabled:e}))})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsx)(J,{htmlFor:`ai-assistant-model`,children:n(`aiAssistant:settings.modelLabel`)}),(0,X.jsx)(K,{id:`ai-assistant-model`,value:a.model,disabled:!u.canManage||c.isPending,onChange:e=>o(t=>({...t,model:e.target.value})),placeholder:`google/gemini-3.1-flash-lite-preview`})]})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsxs)(J,{htmlFor:`ai-assistant-api-key`,className:`flex items-center gap-2`,children:[(0,X.jsx)(s,{className:`size-4`}),n(`aiAssistant:settings.apiKeyLabel`)]}),(0,X.jsx)(K,{id:`ai-assistant-api-key`,type:`password`,value:a.apiKey,disabled:!u.canManage||c.isPending,onChange:e=>o(t=>({...t,apiKey:e.target.value})),placeholder:u.maskedApiKey??`sk-or-v1-...`}),(0,X.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`aiAssistant:settings.apiKeyHint`)})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsx)(J,{htmlFor:`ai-assistant-system-prompt`,children:n(`aiAssistant:settings.systemPromptLabel`)}),(0,X.jsx)(m,{id:`ai-assistant-system-prompt`,value:a.systemPrompt,disabled:!u.canManage||c.isPending,onChange:e=>o(t=>({...t,systemPrompt:e.target.value})),rows:8,placeholder:n(`aiAssistant:settings.systemPromptPlaceholder`)})]}),(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-lg border border-border p-3 text-sm`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`div`,{className:`font-medium`,children:n(`aiAssistant:settings.accessTitle`)}),(0,X.jsx)(`div`,{className:`text-muted-foreground`,children:n(`aiAssistant:settings.accessDescription`)})]}),(0,X.jsx)(R,{variant:`outline`,children:n(`aiAssistant:settings.futureToolsReady`)})]}),(0,X.jsx)(`div`,{className:`flex justify-end`,children:(0,X.jsxs)(p,{onClick:()=>c.mutate(),disabled:!u.canManage||c.isPending||!a.model.trim(),children:[(0,X.jsx)(l,{className:`size-4`}),c.isPending?n(`aiAssistant:settings.saving`):n(`aiAssistant:settings.save`)]})})]})}):(0,X.jsx)(`div`,{className:`py-8 text-sm text-muted-foreground`,children:n(`aiAssistant:settings.empty`)})}var Q=[`modern-admin`,`api-keys`],be=[`modern-admin`,`webhooks`],xe=[{key:`api-keys`,labelKey:`settings:apiKeys.title`,icon:s},{key:`webhooks`,labelKey:`settings:webhooks.title`,icon:W},{key:`ai-assistant`,labelKey:`aiAssistant:title`,icon:i}];function Se({section:e}){let{t}=M(),n=P(),i=ie(),a=Y.useMemo(()=>[...xe.filter(e=>e.key===`api-keys`?i.apiKeys:e.key===`webhooks`?i.webhooks:e.key!==`ai-assistant`||i.aiAssistant),...fe().map(e=>({key:e.key,labelKey:e.labelKey,icon:e.icon,isExtension:!0}))],[i.apiKeys,i.webhooks,i.aiAssistant]),o=[`api-keys`,`webhooks`,`ai-assistant`],s=e=>o.includes(e),c=e??null,l=c&&a.some(e=>e.key===c)?c:a[0]?.key??null;return l===null?(0,X.jsx)(`div`,{className:`rounded-md border border-dashed bg-card p-8 text-center text-sm text-muted-foreground`,children:t(`settings:noSectionsConfigured`)}):(0,X.jsxs)(`div`,{className:`flex flex-col gap-4 lg:grid lg:grid-cols-[14rem_minmax(0,1fr)]`,children:[(0,X.jsx)(`div`,{className:`lg:hidden`,children:(0,X.jsxs)(y,{value:l??``,onValueChange:e=>n({name:`settings`,section:e}),children:[(0,X.jsx)(g,{className:`w-full`,children:(0,X.jsx)(h,{})}),(0,X.jsx)(_,{children:a.map(({key:e,labelKey:n,icon:r})=>(0,X.jsx)(v,{value:e,children:(0,X.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(r,{className:`size-4`}),(0,X.jsx)(`span`,{children:t(n)})]})},e))})]})}),(0,X.jsx)(`aside`,{className:`hidden lg:block`,children:(0,X.jsx)(`nav`,{className:`flex flex-col gap-1`,children:a.map(({key:e,labelKey:n,icon:i})=>(0,X.jsxs)(F,{to:{name:`settings`,section:e},className:r(`flex items-center gap-2 rounded-md px-3 py-2 text-sm hover:bg-accent`,l===e&&`bg-accent font-medium`),children:[(0,X.jsx)(i,{className:`size-4`}),(0,X.jsx)(`span`,{children:t(n)})]},e))})}),(0,X.jsxs)(`section`,{className:`min-w-0`,children:[l&&s(l)&&l===`api-keys`&&(0,X.jsx)(Ce,{}),l&&s(l)&&l===`webhooks`&&(0,X.jsx)(Ae,{}),l&&s(l)&&l===`ai-assistant`&&(0,X.jsx)(ye,{}),l&&!s(l)&&(()=>{let e=fe().find(e=>e.key===l);return e?(0,X.jsx)(e.component,{}):null})()]})]})}function Ce(){let{t:e}=M(),t=L(),n=N(),r=q(),i=me(),o=ae(),[l,d]=Y.useState(!1),[f,m]=Y.useState(null),[h,g]=Y.useState(null),_=I({queryKey:Q,queryFn:()=>t.listApiKeys()}),v=j({mutationFn:e=>t.deleteApiKey(e),onSuccess:()=>{n.invalidateQueries({queryKey:Q}),r.success({key:`settings:apiKeys.notice.revoked`})},onError:e=>r.error({message:e instanceof Error?e.message:String(e)})}),y=j({mutationFn:e=>t.updateApiKey(e.id,{enabled:e.enabled}),onSuccess:()=>n.invalidateQueries({queryKey:Q}),onError:e=>r.error({message:e instanceof Error?e.message:String(e)})}),C=()=>{m(null),d(!0)},D=e=>{m(e),d(!0)},O=async t=>{await i.confirm({title:e(`settings:apiKeys.confirmRevoke.title`),description:e(`settings:apiKeys.confirmRevoke.description`,{name:t.name??t.id}),confirmLabel:e(`settings:apiKeys.actions.revoke`),destructive:!0})&&v.mutate(t.id)},k=_.data?.keys??[];return(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,X.jsx)(Z,{icon:s,title:e(`settings:apiKeys.title`),description:e(`settings:apiKeys.description`),action:(0,X.jsxs)(p,{onClick:C,size:`sm`,children:[(0,X.jsx)(c,{className:`size-4`}),(0,X.jsx)(`span`,{children:e(`settings:apiKeys.actions.create`)})]}),children:(0,X.jsx)(ve,{isLoading:_.isLoading,error:_.error,isEmpty:k.length===0,loadingLabel:e(`common:loading`),empty:{icon:s,title:e(`settings:apiKeys.empty.title`),description:e(`settings:apiKeys.empty.description`)},children:(0,X.jsx)(ge,{children:(0,X.jsxs)(T,{children:[(0,X.jsx)(E,{children:(0,X.jsxs)(x,{children:[(0,X.jsx)(w,{children:e(`settings:apiKeys.columns.name`)}),(0,X.jsx)(w,{className:`hidden sm:table-cell`,children:e(`settings:apiKeys.columns.start`)}),(0,X.jsx)(w,{className:`hidden md:table-cell`,children:e(`settings:apiKeys.columns.permissions`)}),(0,X.jsx)(w,{className:`hidden md:table-cell`,children:e(`settings:apiKeys.columns.expiresAt`)}),(0,X.jsx)(w,{children:e(`settings:apiKeys.columns.enabled`)}),(0,X.jsx)(w,{className:`text-right`,children:e(`settings:apiKeys.columns.actions`)})]})}),(0,X.jsx)(S,{children:k.map(t=>(0,X.jsxs)(x,{children:[(0,X.jsx)(b,{className:`font-medium`,children:(0,X.jsxs)(`div`,{className:`flex flex-col`,children:[(0,X.jsx)(`span`,{children:t.name??t.id}),t.lastRequest&&(0,X.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e(`settings:apiKeys.lastUsed`,{date:$(t.lastRequest)})})]})}),(0,X.jsx)(b,{className:`hidden font-mono text-xs sm:table-cell`,children:t.start?`${t.start}…`:`—`}),(0,X.jsx)(b,{className:`hidden md:table-cell`,children:(0,X.jsx)(De,{permissions:t.permissions})}),(0,X.jsx)(b,{className:`hidden md:table-cell text-xs`,children:t.expiresAt?$(t.expiresAt):e(`settings:apiKeys.expiresNever`)}),(0,X.jsx)(b,{children:(0,X.jsx)(ee,{checked:t.enabled,onCheckedChange:e=>y.mutate({id:t.id,enabled:e}),"aria-label":e(`settings:apiKeys.columns.enabled`)})}),(0,X.jsx)(b,{className:`text-right`,children:(0,X.jsxs)(`div`,{className:`inline-flex gap-1`,children:[(0,X.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>D(t),"aria-label":e(`settings:apiKeys.actions.edit`),children:(0,X.jsx)(u,{className:`size-4`})}),(0,X.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>O(t),"aria-label":e(`settings:apiKeys.actions.revoke`),disabled:v.isPending,children:(0,X.jsx)(a,{className:`size-4 text-destructive`})})]})})]},t.id))})]})})})}),(0,X.jsx)(Oe,{open:l,onOpenChange:d,editing:f,resources:o,onCreated:e=>{d(!1),g(e),n.invalidateQueries({queryKey:Q})},onUpdated:()=>{d(!1),n.invalidateQueries({queryKey:Q})}},f?.id??`new`),(0,X.jsx)(Fe,{secret:h,onClose:()=>g(null)})]})}var we=e=>({byResource:Object.fromEntries(Object.entries(e).map(([e,t])=>[e,new Set(t)]))}),Te=e=>{let t={};for(let[n,r]of Object.entries(e.byResource))r.size!==0&&(t[n]=Array.from(r));return t};function Ee({resources:e,state:t,onChange:n}){let{t:i}=M(),a=(e,r)=>{let i=new Set(t.byResource[e]??[]);i.has(r)?i.delete(r):i.add(r),n({byResource:{...t.byResource,[e]:i}})},o=(e,r)=>{let i=t.byResource[e]??new Set,a=r.every(e=>i.has(e)),o=new Set(a?[]:r);n({byResource:{...t.byResource,[e]:o}})},s=Y.useMemo(()=>e.filter(e=>(e.actions??[]).length>0),[e]),c=s.length>0&&s.every(e=>{let n=(e.actions??[]).map(e=>e.name),r=t.byResource[e.id]??new Set;return n.every(e=>r.has(e))});return e.length===0?(0,X.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:i(`settings:apiKeys.permissions.noResources`)}):(0,X.jsxs)(`div`,{className:`rounded-md border border-border`,children:[s.length>0&&(0,X.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 border-b border-border bg-muted/30 px-3 py-2`,children:(0,X.jsx)(p,{type:`button`,variant:`outline`,size:`sm`,className:`h-8`,onClick:()=>{let r=!c,i={...t.byResource};for(let t of e){let e=(t.actions??[]).map(e=>e.name);i[t.id]=r?new Set(e):new Set}n({byResource:i})},children:c?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(f,{className:`mr-1.5 size-3.5`}),i(`settings:apiKeys.permissions.clearAllResources`)]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(he,{className:`mr-1.5 size-3.5`}),i(`settings:apiKeys.permissions.selectAllResources`)]})})}),(0,X.jsx)(`div`,{className:`max-h-[24rem] overflow-y-auto`,children:(0,X.jsxs)(T,{children:[(0,X.jsx)(E,{className:`sticky top-0 bg-card`,children:(0,X.jsxs)(x,{children:[(0,X.jsx)(w,{className:`w-[14rem]`,children:i(`settings:apiKeys.permissions.resource`)}),(0,X.jsx)(w,{children:i(`settings:apiKeys.permissions.actions`)})]})}),(0,X.jsx)(S,{children:e.map(e=>{let n=(e.actions??[]).map(e=>e.name),s=t.byResource[e.id]??new Set,c=n.length>0&&n.every(e=>s.has(e));return(0,X.jsxs)(x,{children:[(0,X.jsx)(b,{className:`align-top`,children:(0,X.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,X.jsx)(`span`,{className:`font-medium`,children:e.name}),(0,X.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.id}),(0,X.jsxs)(`button`,{type:`button`,className:`mt-1 inline-flex items-center gap-1 self-start text-xs text-primary hover:underline`,onClick:()=>o(e.id,n),children:[c?(0,X.jsx)(f,{className:`size-3`}):(0,X.jsx)(he,{className:`size-3`}),i(c?`settings:apiKeys.permissions.clearAll`:`settings:apiKeys.permissions.selectAll`)]})]})}),(0,X.jsx)(b,{children:(0,X.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:n.map(t=>{let n=s.has(t);return(0,X.jsxs)(`label`,{className:r(`inline-flex cursor-pointer items-center gap-1.5 rounded-md border border-border px-2 py-1 text-xs`,n&&`border-primary bg-primary/10 text-primary`),children:[(0,X.jsx)(C,{checked:n,onCheckedChange:()=>a(e.id,t),className:`size-3.5`}),(0,X.jsx)(`span`,{children:t})]},t)})})})]},e.id)})})]})})]})}function De({permissions:e}){let{t}=M(),n=Object.entries(e);if(n.length===0)return(0,X.jsx)(R,{variant:`outline`,children:t(`settings:apiKeys.permissions.none`)});let r=n.reduce((e,[,t])=>e+t.length,0);return(0,X.jsx)(R,{variant:`secondary`,children:t(`settings:apiKeys.permissions.summary`,{resources:n.length,actions:r})})}function Oe({open:e,onOpenChange:t,editing:n,resources:r,onCreated:i,onUpdated:a}){let{t:o}=M(),s=L(),c=q(),l=!!n,[u,d]=Y.useState(n?.name??``),[f,m]=Y.useState(()=>{if(!n?.expiresAt)return``;let e=new Date(n.expiresAt).getTime()-Date.now();return e>0?String(Math.max(1,Math.round(e/(1440*60*1e3)))):``}),[h,g]=Y.useState(()=>we(n?.permissions??{})),_=j({mutationFn:async()=>{let e=Te(h);if(l&&n){let t=f.trim()===``?null:Number(f);return{record:(await s.updateApiKey(n.id,{name:u.trim(),permissions:e,expiresInDays:t===null?null:Number.isFinite(t)&&t>0?t:void 0})).record}}let t=f.trim()===``?null:Number(f);return s.createApiKey({name:u.trim(),permissions:e,expiresInDays:t===null?null:Number.isFinite(t)&&t>0?t:void 0})},onSuccess:e=>{l?(c.success({key:`settings:apiKeys.notice.updated`}),a(e.record)):e.key&&i({key:e.key,record:e.record})},onError:e=>c.error({message:e instanceof Error?e.message:String(e)})});Y.useEffect(()=>{if(e)if(d(n?.name??``),g(we(n?.permissions??{})),!n?.expiresAt)m(``);else{let e=new Date(n.expiresAt).getTime()-Date.now();m(e>0?String(Math.max(1,Math.round(e/(1440*60*1e3)))):``)}},[e,n]);let v=Object.values(h.byResource).reduce((e,t)=>e+(t?.size??0),0);return(0,X.jsx)(H,{open:e,onOpenChange:t,children:(0,X.jsxs)(U,{className:`max-w-3xl`,children:[(0,X.jsxs)(V,{children:[(0,X.jsx)(G,{children:o(l?`settings:apiKeys.editor.titleEdit`:`settings:apiKeys.editor.titleCreate`)}),(0,X.jsx)(z,{children:o(`settings:apiKeys.editor.description`)})]}),(0,X.jsxs)(`form`,{className:`flex flex-col gap-4`,onSubmit:e=>{e.preventDefault(),u.trim()&&_.mutate()},children:[(0,X.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(J,{htmlFor:`api-key-name`,children:o(`settings:apiKeys.editor.name`)}),(0,X.jsx)(K,{id:`api-key-name`,value:u,onChange:e=>d(e.target.value),placeholder:o(`settings:apiKeys.editor.namePlaceholder`),required:!0,maxLength:64})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(J,{htmlFor:`api-key-expires`,children:o(`settings:apiKeys.editor.expiresInDays`)}),(0,X.jsx)(K,{id:`api-key-expires`,type:`number`,min:1,max:3650,value:f,onChange:e=>m(e.target.value),placeholder:o(`settings:apiKeys.editor.expiresPlaceholder`)}),(0,X.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:o(`settings:apiKeys.editor.expiresHint`)})]})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,X.jsx)(J,{children:o(`settings:apiKeys.editor.permissions`)}),(0,X.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:o(`settings:apiKeys.editor.selectedActions`,{count:v})})]}),(0,X.jsx)(Ee,{resources:r,state:h,onChange:g})]}),(0,X.jsxs)(B,{children:[(0,X.jsx)(p,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:o(`common:cancel`)}),(0,X.jsx)(p,{type:`submit`,disabled:_.isPending||!u.trim()||v===0,children:_.isPending?o(`common:saving`):o(l?`common:save`:`settings:apiKeys.actions.create`)})]})]})]})})}var ke=[`record.created`,`record.updated`,`record.deleted`,`*`];function Ae(){let{t:e}=M(),t=L(),n=N(),r=q(),i=me(),o=ae(),[s,l]=Y.useState(!1),[d,f]=Y.useState(null),[m,h]=Y.useState(null),g=I({queryKey:be,queryFn:()=>t.listWebhooks()}),_=I({queryKey:[`modern-admin`,`webhooks`,m,`deliveries`],queryFn:()=>t.listWebhookDeliveries(m),enabled:!!m}),v=j({mutationFn:e=>t.deleteWebhook(e),onSuccess:()=>{n.invalidateQueries({queryKey:be}),r.success({key:`settings:webhooks.notice.deleted`})},onError:e=>r.error({message:e instanceof Error?e.message:String(e)})}),y=j({mutationFn:e=>t.testWebhook(e),onSuccess:()=>{m&&n.invalidateQueries({queryKey:[`modern-admin`,`webhooks`,m,`deliveries`]}),r.success({key:`settings:webhooks.notice.testQueued`})},onError:e=>r.error({message:e instanceof Error?e.message:String(e)})}),C=g.data?.webhooks??[],D=async t=>{await i.confirm({title:e(`settings:webhooks.confirmDelete.title`),description:e(`settings:webhooks.confirmDelete.description`,{name:t.name}),confirmLabel:e(`common:delete`),destructive:!0})&&v.mutate(t.id)};return(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,X.jsx)(Z,{icon:W,title:e(`settings:webhooks.title`),description:e(`settings:webhooks.description`),action:(0,X.jsxs)(p,{size:`sm`,onClick:()=>{f(null),l(!0)},children:[(0,X.jsx)(c,{className:`size-4`}),e(`settings:webhooks.actions.create`)]}),children:(0,X.jsx)(ve,{isLoading:g.isLoading,error:g.error,isEmpty:C.length===0,loadingLabel:e(`common:loading`),empty:{icon:W,title:e(`settings:webhooks.empty.title`),description:e(`settings:webhooks.empty.description`)},children:(0,X.jsx)(ge,{children:(0,X.jsxs)(T,{children:[(0,X.jsx)(E,{children:(0,X.jsxs)(x,{children:[(0,X.jsx)(w,{children:e(`settings:webhooks.columns.name`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.columns.resource`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.columns.events`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.columns.enabled`)}),(0,X.jsx)(w,{className:`text-right`,children:e(`settings:webhooks.columns.actions`)})]})}),(0,X.jsx)(S,{children:C.map(t=>(0,X.jsxs)(x,{children:[(0,X.jsxs)(b,{children:[(0,X.jsx)(`button`,{type:`button`,className:`text-left font-medium hover:underline`,onClick:()=>h(t.id),children:t.name}),(0,X.jsx)(`div`,{className:`max-w-xs truncate text-xs text-muted-foreground`,children:t.url})]}),(0,X.jsx)(b,{children:Me(o,t.resourceId,e(`settings:webhooks.editor.allResources`))}),(0,X.jsx)(b,{className:`max-w-xs`,children:(0,X.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:t.events.map(e=>(0,X.jsx)(R,{variant:`outline`,children:e},e))})}),(0,X.jsx)(b,{children:t.enabled?e(`common:yes`):e(`common:no`)}),(0,X.jsx)(b,{className:`text-right`,children:(0,X.jsxs)(`div`,{className:`inline-flex gap-1`,children:[(0,X.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>y.mutate(t.id),children:e(`settings:webhooks.actions.test`)}),(0,X.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>{f(t),l(!0)},children:(0,X.jsx)(u,{className:`size-4`})}),(0,X.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>void D(t),children:(0,X.jsx)(a,{className:`size-4 text-destructive`})})]})})]},t.id))})]})})})}),m&&(0,X.jsx)(Z,{icon:W,title:e(`settings:webhooks.deliveries.title`),children:_.isLoading?(0,X.jsx)(`div`,{className:`py-4 text-sm text-muted-foreground`,children:e(`common:loading`)}):(0,X.jsx)(ge,{children:(0,X.jsxs)(T,{children:[(0,X.jsx)(E,{children:(0,X.jsxs)(x,{children:[(0,X.jsx)(w,{children:e(`settings:webhooks.deliveries.status`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.deliveries.event`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.deliveries.attempt`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.deliveries.response`)}),(0,X.jsx)(w,{children:e(`settings:webhooks.deliveries.createdAt`)})]})}),(0,X.jsx)(S,{children:(_.data?.deliveries??[]).map(e=>(0,X.jsxs)(x,{children:[(0,X.jsx)(b,{children:e.status}),(0,X.jsx)(b,{children:e.event}),(0,X.jsx)(b,{children:e.attempt}),(0,X.jsx)(b,{className:`max-w-sm truncate`,children:e.responseStatus??e.error??e.responseBody??`—`}),(0,X.jsx)(b,{children:$(e.createdAt)})]},e.id))})]})})}),(0,X.jsx)(je,{open:s,onOpenChange:l,webhook:d,resources:o},d?.id??`new`)]})}function je({open:e,onOpenChange:t,webhook:n,resources:r}){let{t:i}=M(),a=L(),o=N(),s=q(),[c,l]=Y.useState(n?.name??``),[u,d]=Y.useState(n?.url??``),[f,m]=Y.useState(n?.resourceId??``),[b,x]=Y.useState(n?.enabled??!0),[S,w]=Y.useState(n?.secret??``),[T,E]=Y.useState(n?.events??[`record.created`,`record.updated`]),[O,k]=Y.useState(n?.headers??{}),[te,ne]=Y.useState(n?.filters??{}),[re,ie]=Y.useState(n?.payloadFields??[]),P=r.find(e=>e.id===f),F=j({mutationFn:e=>n?a.updateWebhook(n.id,e):a.createWebhook(e),onSuccess:()=>{o.invalidateQueries({queryKey:be}),s.success({key:`settings:webhooks.notice.saved`}),t(!1)},onError:e=>s.error({message:e instanceof Error?e.message:String(e)})}),I=e=>{E(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])};return(0,X.jsx)(H,{open:e,onOpenChange:t,children:(0,X.jsxs)(U,{className:`max-w-3xl`,children:[(0,X.jsxs)(V,{children:[(0,X.jsx)(G,{children:i(n?`settings:webhooks.editor.titleEdit`:`settings:webhooks.editor.titleCreate`)}),(0,X.jsx)(z,{children:i(`settings:webhooks.editor.description`)})]}),(0,X.jsxs)(`form`,{className:`space-y-4`,onSubmit:e=>{e.preventDefault(),F.mutate({name:c.trim(),url:u.trim(),events:T,resourceId:f||null,enabled:b,...S.trim()?{secret:S.trim()}:{},headers:Pe(O),filters:Pe(te),payloadFields:re})},children:[(0,X.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.name`)}),(0,X.jsx)(K,{value:c,onChange:e=>l(e.target.value),required:!0})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.url`)}),(0,X.jsx)(K,{value:u,onChange:e=>d(e.target.value),required:!0,type:`url`})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.resource`)}),(0,X.jsxs)(y,{value:f||`__all__`,onValueChange:e=>{m(e===`__all__`?``:e),ie([])},children:[(0,X.jsx)(g,{children:(0,X.jsx)(h,{})}),(0,X.jsxs)(_,{children:[(0,X.jsx)(v,{value:`__all__`,children:i(`settings:webhooks.editor.allResources`)}),r.map(e=>(0,X.jsxs)(v,{value:e.id,children:[e.name,e.name!==e.id&&(0,X.jsxs)(`span`,{className:`ml-1.5 text-xs text-muted-foreground`,children:[`(`,e.id,`)`]})]},e.id))]})]})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.secret`)}),(0,X.jsx)(A,{content:i(`settings:webhooks.editor.secretHint`),ariaLabel:i(`settings:webhooks.editor.secret`),side:`right`})]}),(0,X.jsx)(K,{value:S,onChange:e=>w(e.target.value),type:`password`})]})]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(ee,{checked:b,onCheckedChange:x}),(0,X.jsx)(J,{children:i(`settings:webhooks.editor.enabled`)})]}),(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.events`)}),(0,X.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:ke.map(e=>(0,X.jsxs)(`label`,{className:`flex items-center gap-2 rounded-md border border-border px-3 py-2 text-sm`,children:[(0,X.jsx)(C,{checked:T.includes(e),onCheckedChange:()=>I(e)}),e]},e))})]}),P&&(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.payloadFields`)}),(0,X.jsx)(A,{content:i(`settings:webhooks.editor.payloadFieldsHint`),ariaLabel:i(`settings:webhooks.editor.payloadFields`),side:`right`})]}),(0,X.jsx)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:P.properties.map(e=>(0,X.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,X.jsx)(C,{checked:re.includes(e.path),onCheckedChange:()=>ie(t=>t.includes(e.path)?t.filter(t=>t!==e.path):[...t,e.path])}),e.label]},e.path))})]}),(0,X.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.headers`)}),(0,X.jsx)(A,{content:i(`settings:webhooks.editor.headersHint`),ariaLabel:i(`settings:webhooks.editor.headers`),side:`top`})]}),(0,X.jsx)(D,{value:O,onChange:e=>k(Ne(e))})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,X.jsx)(J,{children:i(`settings:webhooks.editor.filters`)}),(0,X.jsx)(A,{content:i(`settings:webhooks.editor.filtersHint`),ariaLabel:i(`settings:webhooks.editor.filters`),side:`top`})]}),(0,X.jsx)(D,{value:te,onChange:e=>ne(Ne(e))})]})]}),(0,X.jsxs)(B,{children:[(0,X.jsx)(p,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:i(`common:cancel`)}),(0,X.jsx)(p,{type:`submit`,disabled:F.isPending||!c.trim()||!u.trim()||T.length===0,children:F.isPending?i(`common:saving`):i(`common:save`)})]})]})]})})}var Me=(e,t,n)=>t?e.find(e=>e.id===t)?.name??t:n,Ne=e=>e&&typeof e==`object`&&!Array.isArray(e)?e:{},Pe=e=>{let t={};for(let[n,r]of Object.entries(e))r!=null&&r!==``&&(t[n]=String(r));return t};function Fe({secret:e,onClose:t}){let{t:n}=M(),r=q(),[i,a]=Y.useState(!1),[s,c]=Y.useState(!1);return Y.useEffect(()=>{e||(a(!1),c(!1))},[e]),(0,X.jsx)(H,{open:!!e,onOpenChange:e=>!e&&t(),children:(0,X.jsxs)(U,{className:`max-w-lg`,children:[(0,X.jsxs)(V,{children:[(0,X.jsxs)(G,{className:`flex items-center gap-2`,children:[(0,X.jsx)(W,{className:`size-5`}),n(`settings:apiKeys.created.title`)]}),(0,X.jsx)(z,{children:n(`settings:apiKeys.created.description`)})]}),(0,X.jsx)(`div`,{className:`rounded-md border border-amber-300/60 bg-amber-50 p-3 text-sm text-amber-900 dark:border-amber-300/30 dark:bg-amber-950/40 dark:text-amber-200`,children:(0,X.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,X.jsx)(d,{className:`mt-0.5 size-4`}),(0,X.jsx)(`p`,{children:n(`settings:apiKeys.created.warning`)})]})}),(0,X.jsxs)(`div`,{className:`flex items-stretch gap-2`,children:[(0,X.jsxs)(`div`,{className:`relative flex-1`,children:[(0,X.jsx)(K,{readOnly:!0,type:i?`text`:`password`,value:e?.key??``,className:`pr-10 font-mono text-xs`,onFocus:e=>e.currentTarget.select()}),(0,X.jsx)(p,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 -translate-y-1/2`,onClick:()=>a(e=>!e),"aria-label":n(i?`settings:apiKeys.created.hide`:`settings:apiKeys.created.reveal`),children:i?(0,X.jsx)(pe,{className:`size-4`}):(0,X.jsx)(de,{className:`size-4`})})]}),(0,X.jsxs)(p,{type:`button`,onClick:async()=>{if(e)try{await navigator.clipboard.writeText(e.key),c(!0),r.success({key:`settings:apiKeys.notice.copied`}),setTimeout(()=>c(!1),1500)}catch{r.error({key:`settings:apiKeys.notice.copyFailed`})}},variant:`secondary`,children:[s?(0,X.jsx)(he,{className:`size-4`}):(0,X.jsx)(o,{className:`size-4`}),(0,X.jsx)(`span`,{className:`hidden sm:inline`,children:n(s?`settings:apiKeys.created.copied`:`settings:apiKeys.created.copy`)})]})]}),(0,X.jsx)(B,{children:(0,X.jsx)(p,{onClick:t,children:n(`common:done`)})})]})})}var $=e=>{try{return new Date(e).toLocaleString()}catch{return String(e)}};export{Se as SettingsPage};
2
+ //# sourceMappingURL=settings-page-DSWp2N6T.js.map