@modern-admin/web 0.3.0 → 0.3.3
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.
- package/dist/standalone/assets/{ai-assistant-widget-laqH_9UQ.js → ai-assistant-widget-Dk-VvXD0.js} +2 -2
- package/dist/standalone/assets/ai-assistant-widget-Dk-VvXD0.js.br +0 -0
- package/dist/standalone/assets/ai-assistant-widget-Dk-VvXD0.js.gz +0 -0
- package/dist/standalone/assets/{ai-assistant-widget-laqH_9UQ.js.map → ai-assistant-widget-Dk-VvXD0.js.map} +1 -1
- package/dist/standalone/assets/{audit-log-page-3t8elFPn.js → audit-log-page-BEC79lKy.js} +2 -2
- package/dist/standalone/assets/audit-log-page-BEC79lKy.js.br +0 -0
- package/dist/standalone/assets/audit-log-page-BEC79lKy.js.gz +0 -0
- package/dist/standalone/assets/{audit-log-page-3t8elFPn.js.map → audit-log-page-BEC79lKy.js.map} +1 -1
- package/dist/standalone/assets/{calendar-C1Ecnytz.js → calendar-Pq7dP9RH.js} +2 -2
- package/dist/standalone/assets/calendar-Pq7dP9RH.js.br +0 -0
- package/dist/standalone/assets/calendar-Pq7dP9RH.js.gz +0 -0
- package/dist/standalone/assets/{calendar-C1Ecnytz.js.map → calendar-Pq7dP9RH.js.map} +1 -1
- package/dist/standalone/assets/chart-widget-B7pIeDCP.js +2 -0
- package/dist/standalone/assets/chart-widget-B7pIeDCP.js.br +0 -0
- package/dist/standalone/assets/chart-widget-B7pIeDCP.js.gz +0 -0
- package/dist/standalone/assets/chart-widget-B7pIeDCP.js.map +1 -0
- package/dist/standalone/assets/{command-C1FjGx6t.js → command-B6-wRF2R.js} +2 -2
- package/dist/standalone/assets/command-B6-wRF2R.js.br +0 -0
- package/dist/standalone/assets/command-B6-wRF2R.js.gz +0 -0
- package/dist/standalone/assets/{command-C1FjGx6t.js.map → command-B6-wRF2R.js.map} +1 -1
- package/dist/standalone/assets/{date-picker-DVnnp1Ez.js → date-picker-BAp85mMa.js} +2 -2
- package/dist/standalone/assets/date-picker-BAp85mMa.js.br +0 -0
- package/dist/standalone/assets/date-picker-BAp85mMa.js.gz +0 -0
- package/dist/standalone/assets/{date-picker-DVnnp1Ez.js.map → date-picker-BAp85mMa.js.map} +1 -1
- package/dist/standalone/assets/{dist-DuSTm0pk.js → dist-Dkym1-ts.js} +2 -2
- package/dist/standalone/assets/dist-Dkym1-ts.js.br +0 -0
- package/dist/standalone/assets/dist-Dkym1-ts.js.gz +0 -0
- package/dist/standalone/assets/{dist-DuSTm0pk.js.map → dist-Dkym1-ts.js.map} +1 -1
- package/dist/standalone/assets/edit-page-BVwML9yD.js +2 -0
- package/dist/standalone/assets/edit-page-BVwML9yD.js.br +0 -0
- package/dist/standalone/assets/edit-page-BVwML9yD.js.gz +0 -0
- package/dist/standalone/assets/edit-page-BVwML9yD.js.map +1 -0
- package/dist/standalone/assets/{empty-D9nNJb_Y.js → empty-BmE-qyE9.js} +2 -2
- package/dist/standalone/assets/empty-BmE-qyE9.js.br +0 -0
- package/dist/standalone/assets/empty-BmE-qyE9.js.gz +0 -0
- package/dist/standalone/assets/{empty-D9nNJb_Y.js.map → empty-BmE-qyE9.js.map} +1 -1
- package/dist/standalone/assets/{global-search-dialog--zUHqLIo.js → global-search-dialog-C3Ri2VRv.js} +2 -2
- package/dist/standalone/assets/global-search-dialog-C3Ri2VRv.js.br +0 -0
- package/dist/standalone/assets/global-search-dialog-C3Ri2VRv.js.gz +0 -0
- package/dist/standalone/assets/{global-search-dialog--zUHqLIo.js.map → global-search-dialog-C3Ri2VRv.js.map} +1 -1
- package/dist/standalone/assets/{heavy-fields-Ctx9uZME.js → heavy-fields-aI_gOI6-.js} +2 -2
- package/dist/standalone/assets/heavy-fields-aI_gOI6-.js.br +0 -0
- package/dist/standalone/assets/heavy-fields-aI_gOI6-.js.gz +0 -0
- package/dist/standalone/assets/{heavy-fields-Ctx9uZME.js.map → heavy-fields-aI_gOI6-.js.map} +1 -1
- package/dist/standalone/assets/home-page-Xc7HK72H.js +3 -0
- package/dist/standalone/assets/home-page-Xc7HK72H.js.br +0 -0
- package/dist/standalone/assets/home-page-Xc7HK72H.js.gz +0 -0
- package/dist/standalone/assets/home-page-Xc7HK72H.js.map +1 -0
- package/dist/standalone/assets/icon-registry-AlRIE8PQ.js +2 -0
- package/dist/standalone/assets/icon-registry-AlRIE8PQ.js.br +0 -0
- package/dist/standalone/assets/icon-registry-AlRIE8PQ.js.gz +0 -0
- package/dist/standalone/assets/icon-registry-AlRIE8PQ.js.map +1 -0
- package/dist/standalone/assets/index-OvloY2cG.css +2 -0
- package/dist/standalone/assets/index-OvloY2cG.css.br +0 -0
- package/dist/standalone/assets/index-OvloY2cG.css.gz +0 -0
- package/dist/standalone/assets/{index-Ldci8MK5.js → index-R1VJOHqq.js} +4 -4
- package/dist/standalone/assets/index-R1VJOHqq.js.br +0 -0
- package/dist/standalone/assets/index-R1VJOHqq.js.gz +0 -0
- package/dist/standalone/assets/{index-Ldci8MK5.js.map → index-R1VJOHqq.js.map} +1 -1
- package/dist/standalone/assets/{json-editor-DwQqN8OM.js → json-editor-DuYj4QGx.js} +2 -2
- package/dist/standalone/assets/json-editor-DuYj4QGx.js.br +0 -0
- package/dist/standalone/assets/json-editor-DuYj4QGx.js.gz +0 -0
- package/dist/standalone/assets/{json-editor-DwQqN8OM.js.map → json-editor-DuYj4QGx.js.map} +1 -1
- package/dist/standalone/assets/palette-DVP_4RAn.js +2 -0
- package/dist/standalone/assets/palette-DVP_4RAn.js.map +1 -0
- package/dist/standalone/assets/{folder-plus-DebVc0CA.js → pipette-CqHYfQnn.js} +2 -2
- package/dist/standalone/assets/pipette-CqHYfQnn.js.br +0 -0
- package/dist/standalone/assets/pipette-CqHYfQnn.js.gz +0 -0
- package/dist/standalone/assets/pipette-CqHYfQnn.js.map +1 -0
- package/dist/standalone/assets/property-renderer-U2F_u1LG.js +7 -0
- package/dist/standalone/assets/property-renderer-U2F_u1LG.js.br +0 -0
- package/dist/standalone/assets/property-renderer-U2F_u1LG.js.gz +0 -0
- package/dist/standalone/assets/property-renderer-U2F_u1LG.js.map +1 -0
- package/dist/standalone/assets/{reference-053-L2WD.js → reference-CbtDQb7U.js} +2 -2
- package/dist/standalone/assets/reference-CbtDQb7U.js.br +0 -0
- package/dist/standalone/assets/reference-CbtDQb7U.js.gz +0 -0
- package/dist/standalone/assets/{reference-053-L2WD.js.map → reference-CbtDQb7U.js.map} +1 -1
- package/dist/standalone/assets/refresh-cw-B2G7AzZh.js +2 -0
- package/dist/standalone/assets/refresh-cw-B2G7AzZh.js.map +1 -0
- package/dist/standalone/assets/{revisions-button-B4wc6uYi.js → revisions-button-hLRZGkwM.js} +2 -2
- package/dist/standalone/assets/revisions-button-hLRZGkwM.js.br +0 -0
- package/dist/standalone/assets/revisions-button-hLRZGkwM.js.gz +0 -0
- package/dist/standalone/assets/{revisions-button-B4wc6uYi.js.map → revisions-button-hLRZGkwM.js.map} +1 -1
- package/dist/standalone/assets/router-DmBe_NWn.js +186 -0
- package/dist/standalone/assets/router-DmBe_NWn.js.br +0 -0
- package/dist/standalone/assets/router-DmBe_NWn.js.gz +0 -0
- package/dist/standalone/assets/router-DmBe_NWn.js.map +1 -0
- package/dist/standalone/assets/{select-B6fxO2bI.js → select-BxTIWCco.js} +2 -2
- package/dist/standalone/assets/select-BxTIWCco.js.br +0 -0
- package/dist/standalone/assets/select-BxTIWCco.js.gz +0 -0
- package/dist/standalone/assets/{select-B6fxO2bI.js.map → select-BxTIWCco.js.map} +1 -1
- package/dist/standalone/assets/{settings-page-BRhIGsdX.js → settings-page-FHzVUo4t.js} +2 -2
- package/dist/standalone/assets/settings-page-FHzVUo4t.js.br +0 -0
- package/dist/standalone/assets/settings-page-FHzVUo4t.js.gz +0 -0
- package/dist/standalone/assets/{settings-page-BRhIGsdX.js.map → settings-page-FHzVUo4t.js.map} +1 -1
- package/dist/standalone/assets/{show-page-BJt9Kmdd.js → show-page-Jotfue76.js} +2 -2
- package/dist/standalone/assets/show-page-Jotfue76.js.br +0 -0
- package/dist/standalone/assets/show-page-Jotfue76.js.gz +0 -0
- package/dist/standalone/assets/{show-page-BJt9Kmdd.js.map → show-page-Jotfue76.js.map} +1 -1
- package/dist/standalone/assets/{tabs-BgR4QuFh.js → tabs-BrnwAET7.js} +2 -2
- package/dist/standalone/assets/tabs-BrnwAET7.js.br +0 -0
- package/dist/standalone/assets/tabs-BrnwAET7.js.gz +0 -0
- package/dist/standalone/assets/{tabs-BgR4QuFh.js.map → tabs-BrnwAET7.js.map} +1 -1
- package/dist/standalone/assets/use-dashboard-charts-Cr3OUSL5.js +2 -0
- package/dist/standalone/assets/use-dashboard-charts-Cr3OUSL5.js.br +0 -0
- package/dist/standalone/assets/use-dashboard-charts-Cr3OUSL5.js.gz +0 -0
- package/dist/standalone/assets/use-dashboard-charts-Cr3OUSL5.js.map +1 -0
- package/dist/standalone/assets/{useQueries-BblIcy3I.js → useQueries-CX5Gh6HV.js} +2 -2
- package/dist/standalone/assets/useQueries-CX5Gh6HV.js.br +0 -0
- package/dist/standalone/assets/useQueries-CX5Gh6HV.js.gz +0 -0
- package/dist/standalone/assets/{useQueries-BblIcy3I.js.map → useQueries-CX5Gh6HV.js.map} +1 -1
- package/dist/standalone/assets/{user-directory-bre0Sulk.js → user-directory-ZxAjN_q9.js} +2 -2
- package/dist/standalone/assets/user-directory-ZxAjN_q9.js.br +0 -0
- package/dist/standalone/assets/user-directory-ZxAjN_q9.js.gz +0 -0
- package/dist/standalone/assets/{user-directory-bre0Sulk.js.map → user-directory-ZxAjN_q9.js.map} +1 -1
- package/dist/standalone/assets/value-format-DmXCSwLn.js +60 -0
- package/dist/standalone/assets/value-format-DmXCSwLn.js.br +0 -0
- package/dist/standalone/assets/value-format-DmXCSwLn.js.gz +0 -0
- package/dist/standalone/assets/value-format-DmXCSwLn.js.map +1 -0
- package/dist/standalone/assets/{wizard-create-page-3rZPPXLK.js → wizard-create-page-Rh4uWxUR.js} +2 -2
- package/dist/standalone/assets/wizard-create-page-Rh4uWxUR.js.br +0 -0
- package/dist/standalone/assets/wizard-create-page-Rh4uWxUR.js.gz +0 -0
- package/dist/standalone/assets/{wizard-create-page-3rZPPXLK.js.map → wizard-create-page-Rh4uWxUR.js.map} +1 -1
- package/dist/standalone/assets/zap-Be2c7_cs.js +2 -0
- package/dist/standalone/assets/zap-Be2c7_cs.js.br +0 -0
- package/dist/standalone/assets/zap-Be2c7_cs.js.gz +0 -0
- package/dist/standalone/assets/zap-Be2c7_cs.js.map +1 -0
- package/dist/standalone/assets/{zod-BVYoAymF.js → zod-bSPpBhsj.js} +2 -2
- package/dist/standalone/assets/zod-bSPpBhsj.js.br +0 -0
- package/dist/standalone/assets/zod-bSPpBhsj.js.gz +0 -0
- package/dist/standalone/assets/{zod-BVYoAymF.js.map → zod-bSPpBhsj.js.map} +1 -1
- package/dist/standalone/index.html +7 -7
- package/dist/standalone/index.html.br +0 -0
- package/dist/standalone/index.html.gz +0 -0
- package/package.json +5 -5
- package/dist/standalone/assets/ai-assistant-widget-laqH_9UQ.js.br +0 -0
- package/dist/standalone/assets/ai-assistant-widget-laqH_9UQ.js.gz +0 -0
- package/dist/standalone/assets/audit-log-page-3t8elFPn.js.br +0 -0
- package/dist/standalone/assets/audit-log-page-3t8elFPn.js.gz +0 -0
- package/dist/standalone/assets/calendar-C1Ecnytz.js.br +0 -0
- package/dist/standalone/assets/calendar-C1Ecnytz.js.gz +0 -0
- package/dist/standalone/assets/chart-widget-1GPloJY4.js +0 -60
- package/dist/standalone/assets/chart-widget-1GPloJY4.js.br +0 -0
- package/dist/standalone/assets/chart-widget-1GPloJY4.js.gz +0 -0
- package/dist/standalone/assets/chart-widget-1GPloJY4.js.map +0 -1
- package/dist/standalone/assets/command-C1FjGx6t.js.br +0 -0
- package/dist/standalone/assets/command-C1FjGx6t.js.gz +0 -0
- package/dist/standalone/assets/date-picker-DVnnp1Ez.js.br +0 -0
- package/dist/standalone/assets/date-picker-DVnnp1Ez.js.gz +0 -0
- package/dist/standalone/assets/dist-DuSTm0pk.js.br +0 -0
- package/dist/standalone/assets/dist-DuSTm0pk.js.gz +0 -0
- package/dist/standalone/assets/edit-page-DFmI1Ckp.js +0 -2
- package/dist/standalone/assets/edit-page-DFmI1Ckp.js.br +0 -0
- package/dist/standalone/assets/edit-page-DFmI1Ckp.js.gz +0 -0
- package/dist/standalone/assets/edit-page-DFmI1Ckp.js.map +0 -1
- package/dist/standalone/assets/empty-D9nNJb_Y.js.br +0 -0
- package/dist/standalone/assets/empty-D9nNJb_Y.js.gz +0 -0
- package/dist/standalone/assets/folder-plus-DebVc0CA.js.br +0 -0
- package/dist/standalone/assets/folder-plus-DebVc0CA.js.gz +0 -0
- package/dist/standalone/assets/folder-plus-DebVc0CA.js.map +0 -1
- package/dist/standalone/assets/folder-symlink-iMRmgjVt.js +0 -2
- package/dist/standalone/assets/folder-symlink-iMRmgjVt.js.map +0 -1
- package/dist/standalone/assets/global-search-dialog--zUHqLIo.js.br +0 -0
- package/dist/standalone/assets/global-search-dialog--zUHqLIo.js.gz +0 -0
- package/dist/standalone/assets/heavy-fields-Ctx9uZME.js.br +0 -0
- package/dist/standalone/assets/heavy-fields-Ctx9uZME.js.gz +0 -0
- package/dist/standalone/assets/home-page-B1hrpu2S.js +0 -3
- package/dist/standalone/assets/home-page-B1hrpu2S.js.br +0 -0
- package/dist/standalone/assets/home-page-B1hrpu2S.js.gz +0 -0
- package/dist/standalone/assets/home-page-B1hrpu2S.js.map +0 -1
- package/dist/standalone/assets/icon-registry-BBZirLGp.js +0 -2
- package/dist/standalone/assets/icon-registry-BBZirLGp.js.br +0 -0
- package/dist/standalone/assets/icon-registry-BBZirLGp.js.gz +0 -0
- package/dist/standalone/assets/icon-registry-BBZirLGp.js.map +0 -1
- package/dist/standalone/assets/index-CU0xv21_.css +0 -2
- package/dist/standalone/assets/index-CU0xv21_.css.br +0 -0
- package/dist/standalone/assets/index-CU0xv21_.css.gz +0 -0
- package/dist/standalone/assets/index-Ldci8MK5.js.br +0 -0
- package/dist/standalone/assets/index-Ldci8MK5.js.gz +0 -0
- package/dist/standalone/assets/json-editor-DwQqN8OM.js.br +0 -0
- package/dist/standalone/assets/json-editor-DwQqN8OM.js.gz +0 -0
- package/dist/standalone/assets/property-renderer-BogzDKIK.js +0 -7
- package/dist/standalone/assets/property-renderer-BogzDKIK.js.br +0 -0
- package/dist/standalone/assets/property-renderer-BogzDKIK.js.gz +0 -0
- package/dist/standalone/assets/property-renderer-BogzDKIK.js.map +0 -1
- package/dist/standalone/assets/reference-053-L2WD.js.br +0 -0
- package/dist/standalone/assets/reference-053-L2WD.js.gz +0 -0
- package/dist/standalone/assets/refresh-cw-Dz19XR6g.js +0 -2
- package/dist/standalone/assets/refresh-cw-Dz19XR6g.js.map +0 -1
- package/dist/standalone/assets/revisions-button-B4wc6uYi.js.br +0 -0
- package/dist/standalone/assets/revisions-button-B4wc6uYi.js.gz +0 -0
- package/dist/standalone/assets/router-CT00z_xv.js +0 -186
- package/dist/standalone/assets/router-CT00z_xv.js.br +0 -0
- package/dist/standalone/assets/router-CT00z_xv.js.gz +0 -0
- package/dist/standalone/assets/router-CT00z_xv.js.map +0 -1
- package/dist/standalone/assets/select-B6fxO2bI.js.br +0 -0
- package/dist/standalone/assets/select-B6fxO2bI.js.gz +0 -0
- package/dist/standalone/assets/settings-page-BRhIGsdX.js.br +0 -0
- package/dist/standalone/assets/settings-page-BRhIGsdX.js.gz +0 -0
- package/dist/standalone/assets/show-page-BJt9Kmdd.js.br +0 -0
- package/dist/standalone/assets/show-page-BJt9Kmdd.js.gz +0 -0
- package/dist/standalone/assets/tabs-BgR4QuFh.js.br +0 -0
- package/dist/standalone/assets/tabs-BgR4QuFh.js.gz +0 -0
- package/dist/standalone/assets/use-dashboard-charts-CkpsFXxZ.js +0 -2
- package/dist/standalone/assets/use-dashboard-charts-CkpsFXxZ.js.br +0 -0
- package/dist/standalone/assets/use-dashboard-charts-CkpsFXxZ.js.gz +0 -0
- package/dist/standalone/assets/use-dashboard-charts-CkpsFXxZ.js.map +0 -1
- package/dist/standalone/assets/useQueries-BblIcy3I.js.br +0 -0
- package/dist/standalone/assets/useQueries-BblIcy3I.js.gz +0 -0
- package/dist/standalone/assets/user-directory-bre0Sulk.js.br +0 -0
- package/dist/standalone/assets/user-directory-bre0Sulk.js.gz +0 -0
- package/dist/standalone/assets/wizard-create-page-3rZPPXLK.js.br +0 -0
- package/dist/standalone/assets/wizard-create-page-3rZPPXLK.js.gz +0 -0
- package/dist/standalone/assets/zap-DIzIW2MP.js +0 -2
- package/dist/standalone/assets/zap-DIzIW2MP.js.br +0 -0
- package/dist/standalone/assets/zap-DIzIW2MP.js.gz +0 -0
- package/dist/standalone/assets/zap-DIzIW2MP.js.map +0 -1
- package/dist/standalone/assets/zod-BVYoAymF.js.br +0 -0
- package/dist/standalone/assets/zod-BVYoAymF.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-B6fxO2bI.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-DwQqN8OM.js";import{a as O,c as k,i as A,o as ee,r as te,s as j,t as ne}from"./empty-D9nNJb_Y.js";import{$ as M,K as N,P,at as F,i as re,it as I,mt as ie,n as ae,nt as L}from"./router-CT00z_xv.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,J as V,K as H,L as U,N as W,P as G,R as K,Z as q,dt as de,ft as fe,i as J,o as pe,r as me,vt as he}from"./index-Ldci8MK5.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)(ne,{className:`border-0`,children:(0,X.jsxs)(A,{children:[(0,X.jsx)(O,{children:(0,X.jsx)(e,{})}),(0,X.jsx)(ee,{children:t}),n?(0,X.jsx)(te,{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=J(),{t:n}=M(),r=F({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=I({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)(H,{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)(k,{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)(H,{htmlFor:`ai-assistant-model`,children:n(`aiAssistant:settings.modelLabel`)}),(0,X.jsx)(V,{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)(H,{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)(V,{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)(H,{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:q},{key:`ai-assistant`,labelKey:`aiAssistant:title`,icon:i}];function Se({section:e}){let{t}=M(),n=re(),i=P(),a=Y.useMemo(()=>[...xe.filter(e=>e.key===`api-keys`?i.apiKeys:e.key===`webhooks`?i.webhooks:e.key!==`ai-assistant`||i.aiAssistant),...pe().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)(ae,{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=pe().find(e=>e.key===l);return e?(0,X.jsx)(e.component,{}):null})()]})]})}function Ce(){let{t:e}=M(),t=L(),n=ie(),r=J(),i=me(),o=N(),[l,d]=Y.useState(!1),[f,m]=Y.useState(null),[h,g]=Y.useState(null),_=F({queryKey:Q,queryFn:()=>t.listApiKeys()}),v=I({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=I({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)},A=_.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:A.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:A.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)(k,{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=J(),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??{})),_=I({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)(W,{open:e,onOpenChange:t,children:(0,X.jsxs)(G,{className:`max-w-3xl`,children:[(0,X.jsxs)(U,{children:[(0,X.jsx)(K,{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)(H,{htmlFor:`api-key-name`,children:o(`settings:apiKeys.editor.name`)}),(0,X.jsx)(V,{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)(H,{htmlFor:`api-key-expires`,children:o(`settings:apiKeys.editor.expiresInDays`)}),(0,X.jsx)(V,{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)(H,{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=ie(),r=J(),i=me(),o=N(),[s,l]=Y.useState(!1),[d,f]=Y.useState(null),[m,h]=Y.useState(null),g=F({queryKey:be,queryFn:()=>t.listWebhooks()}),_=F({queryKey:[`modern-admin`,`webhooks`,m,`deliveries`],queryFn:()=>t.listWebhookDeliveries(m),enabled:!!m}),v=I({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=I({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:q,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:q,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:q,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=ie(),s=J(),[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,A]=Y.useState(n?.headers??{}),[ee,te]=Y.useState(n?.filters??{}),[ne,N]=Y.useState(n?.payloadFields??[]),P=r.find(e=>e.id===f),F=I({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)})}),re=e=>{E(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])};return(0,X.jsx)(W,{open:e,onOpenChange:t,children:(0,X.jsxs)(G,{className:`max-w-3xl`,children:[(0,X.jsxs)(U,{children:[(0,X.jsx)(K,{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(ee),payloadFields:ne})},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)(H,{children:i(`settings:webhooks.editor.name`)}),(0,X.jsx)(V,{value:c,onChange:e=>l(e.target.value),required:!0})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsx)(H,{children:i(`settings:webhooks.editor.url`)}),(0,X.jsx)(V,{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)(H,{children:i(`settings:webhooks.editor.resource`)}),(0,X.jsxs)(y,{value:f||`__all__`,onValueChange:e=>{m(e===`__all__`?``:e),N([])},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)(H,{children:i(`settings:webhooks.editor.secret`)}),(0,X.jsx)(j,{content:i(`settings:webhooks.editor.secretHint`),ariaLabel:i(`settings:webhooks.editor.secret`),side:`right`})]}),(0,X.jsx)(V,{value:S,onChange:e=>w(e.target.value),type:`password`})]})]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(k,{checked:b,onCheckedChange:x}),(0,X.jsx)(H,{children:i(`settings:webhooks.editor.enabled`)})]}),(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(H,{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:()=>re(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)(H,{children:i(`settings:webhooks.editor.payloadFields`)}),(0,X.jsx)(j,{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:ne.includes(e.path),onCheckedChange:()=>N(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)(H,{children:i(`settings:webhooks.editor.headers`)}),(0,X.jsx)(j,{content:i(`settings:webhooks.editor.headersHint`),ariaLabel:i(`settings:webhooks.editor.headers`),side:`top`})]}),(0,X.jsx)(D,{value:O,onChange:e=>A(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)(H,{children:i(`settings:webhooks.editor.filters`)}),(0,X.jsx)(j,{content:i(`settings:webhooks.editor.filtersHint`),ariaLabel:i(`settings:webhooks.editor.filters`),side:`top`})]}),(0,X.jsx)(D,{value:ee,onChange:e=>te(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=J(),[i,a]=Y.useState(!1),[s,c]=Y.useState(!1);return Y.useEffect(()=>{e||(a(!1),c(!1))},[e]),(0,X.jsx)(W,{open:!!e,onOpenChange:e=>!e&&t(),children:(0,X.jsxs)(G,{className:`max-w-lg`,children:[(0,X.jsxs)(U,{children:[(0,X.jsxs)(K,{className:`flex items-center gap-2`,children:[(0,X.jsx)(q,{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)(V,{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)(fe,{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-
|
|
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-BxTIWCco.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-DuYj4QGx.js";import{a as O,c as k,i as A,o as ee,r as te,s as j,t as ne}from"./empty-BmE-qyE9.js";import{$ as M,K as N,P,at as F,i as re,it as I,mt as ie,n as ae,nt as L}from"./router-DmBe_NWn.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,J as V,K as H,L as U,N as W,P as G,R as K,Z as q,dt as de,ft as fe,i as J,o as pe,r as me,vt as he}from"./index-R1VJOHqq.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)(ne,{className:`border-0`,children:(0,X.jsxs)(A,{children:[(0,X.jsx)(O,{children:(0,X.jsx)(e,{})}),(0,X.jsx)(ee,{children:t}),n?(0,X.jsx)(te,{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=J(),{t:n}=M(),r=F({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=I({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)(H,{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)(k,{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)(H,{htmlFor:`ai-assistant-model`,children:n(`aiAssistant:settings.modelLabel`)}),(0,X.jsx)(V,{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)(H,{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)(V,{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)(H,{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:q},{key:`ai-assistant`,labelKey:`aiAssistant:title`,icon:i}];function Se({section:e}){let{t}=M(),n=re(),i=P(),a=Y.useMemo(()=>[...xe.filter(e=>e.key===`api-keys`?i.apiKeys:e.key===`webhooks`?i.webhooks:e.key!==`ai-assistant`||i.aiAssistant),...pe().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)(ae,{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=pe().find(e=>e.key===l);return e?(0,X.jsx)(e.component,{}):null})()]})]})}function Ce(){let{t:e}=M(),t=L(),n=ie(),r=J(),i=me(),o=N(),[l,d]=Y.useState(!1),[f,m]=Y.useState(null),[h,g]=Y.useState(null),_=F({queryKey:Q,queryFn:()=>t.listApiKeys()}),v=I({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=I({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)},A=_.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:A.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:A.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)(k,{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=J(),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??{})),_=I({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)(W,{open:e,onOpenChange:t,children:(0,X.jsxs)(G,{className:`max-w-3xl`,children:[(0,X.jsxs)(U,{children:[(0,X.jsx)(K,{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)(H,{htmlFor:`api-key-name`,children:o(`settings:apiKeys.editor.name`)}),(0,X.jsx)(V,{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)(H,{htmlFor:`api-key-expires`,children:o(`settings:apiKeys.editor.expiresInDays`)}),(0,X.jsx)(V,{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)(H,{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=ie(),r=J(),i=me(),o=N(),[s,l]=Y.useState(!1),[d,f]=Y.useState(null),[m,h]=Y.useState(null),g=F({queryKey:be,queryFn:()=>t.listWebhooks()}),_=F({queryKey:[`modern-admin`,`webhooks`,m,`deliveries`],queryFn:()=>t.listWebhookDeliveries(m),enabled:!!m}),v=I({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=I({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:q,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:q,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:q,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=ie(),s=J(),[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,A]=Y.useState(n?.headers??{}),[ee,te]=Y.useState(n?.filters??{}),[ne,N]=Y.useState(n?.payloadFields??[]),P=r.find(e=>e.id===f),F=I({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)})}),re=e=>{E(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])};return(0,X.jsx)(W,{open:e,onOpenChange:t,children:(0,X.jsxs)(G,{className:`max-w-3xl`,children:[(0,X.jsxs)(U,{children:[(0,X.jsx)(K,{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(ee),payloadFields:ne})},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)(H,{children:i(`settings:webhooks.editor.name`)}),(0,X.jsx)(V,{value:c,onChange:e=>l(e.target.value),required:!0})]}),(0,X.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,X.jsx)(H,{children:i(`settings:webhooks.editor.url`)}),(0,X.jsx)(V,{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)(H,{children:i(`settings:webhooks.editor.resource`)}),(0,X.jsxs)(y,{value:f||`__all__`,onValueChange:e=>{m(e===`__all__`?``:e),N([])},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)(H,{children:i(`settings:webhooks.editor.secret`)}),(0,X.jsx)(j,{content:i(`settings:webhooks.editor.secretHint`),ariaLabel:i(`settings:webhooks.editor.secret`),side:`right`})]}),(0,X.jsx)(V,{value:S,onChange:e=>w(e.target.value),type:`password`})]})]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(k,{checked:b,onCheckedChange:x}),(0,X.jsx)(H,{children:i(`settings:webhooks.editor.enabled`)})]}),(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(H,{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:()=>re(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)(H,{children:i(`settings:webhooks.editor.payloadFields`)}),(0,X.jsx)(j,{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:ne.includes(e.path),onCheckedChange:()=>N(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)(H,{children:i(`settings:webhooks.editor.headers`)}),(0,X.jsx)(j,{content:i(`settings:webhooks.editor.headersHint`),ariaLabel:i(`settings:webhooks.editor.headers`),side:`top`})]}),(0,X.jsx)(D,{value:O,onChange:e=>A(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)(H,{children:i(`settings:webhooks.editor.filters`)}),(0,X.jsx)(j,{content:i(`settings:webhooks.editor.filtersHint`),ariaLabel:i(`settings:webhooks.editor.filters`),side:`top`})]}),(0,X.jsx)(D,{value:ee,onChange:e=>te(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=J(),[i,a]=Y.useState(!1),[s,c]=Y.useState(!1);return Y.useEffect(()=>{e||(a(!1),c(!1))},[e]),(0,X.jsx)(W,{open:!!e,onOpenChange:e=>!e&&t(),children:(0,X.jsxs)(G,{className:`max-w-lg`,children:[(0,X.jsxs)(U,{children:[(0,X.jsxs)(K,{className:`flex items-center gap-2`,children:[(0,X.jsx)(q,{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)(V,{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)(fe,{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-FHzVUo4t.js.map
|
|
Binary file
|
|
Binary file
|