@modern-admin/web 0.7.0 → 0.8.0
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/config/runtime-config.d.ts +3 -1
- package/dist/lib/index.js +2 -1
- package/dist/lib/runtime-config.d.ts +3 -1
- package/dist/standalone/assets/{action-component-host-Cch_SQOc.js → action-component-host-BhkBbvy5.js} +1 -1
- package/dist/standalone/assets/action-component-host-BhkBbvy5.js.br +0 -0
- package/dist/standalone/assets/action-component-host-BhkBbvy5.js.gz +0 -0
- package/dist/standalone/assets/{action-page-Cs9GeU9A.js → action-page-cwWF8qzs.js} +1 -1
- package/dist/standalone/assets/action-page-cwWF8qzs.js.br +0 -0
- package/dist/standalone/assets/action-page-cwWF8qzs.js.gz +0 -0
- package/dist/standalone/assets/{ai-assistant-widget-DC9Li4zI.js → ai-assistant-widget-DaFf7V1n.js} +1 -1
- package/dist/standalone/assets/ai-assistant-widget-DaFf7V1n.js.br +0 -0
- package/dist/standalone/assets/ai-assistant-widget-DaFf7V1n.js.gz +0 -0
- package/dist/standalone/assets/{audit-log-page-Bq4ywsHY.js → audit-log-page-mc2OI-N8.js} +1 -1
- package/dist/standalone/assets/audit-log-page-mc2OI-N8.js.br +0 -0
- package/dist/standalone/assets/audit-log-page-mc2OI-N8.js.gz +0 -0
- package/dist/standalone/assets/{cache-page-D6YyRm0a.js → cache-page-Ddt6pCFn.js} +1 -1
- package/dist/standalone/assets/cache-page-Ddt6pCFn.js.br +0 -0
- package/dist/standalone/assets/cache-page-Ddt6pCFn.js.gz +0 -0
- package/dist/standalone/assets/{calendar-Dt13SKbK.js → calendar-p3BEC7Ac.js} +1 -1
- package/dist/standalone/assets/calendar-p3BEC7Ac.js.br +0 -0
- package/dist/standalone/assets/calendar-p3BEC7Ac.js.gz +0 -0
- package/dist/standalone/assets/{chart-widget-BCr0m4cg.js → chart-widget-DFq9o29S.js} +1 -1
- package/dist/standalone/assets/chart-widget-DFq9o29S.js.br +0 -0
- package/dist/standalone/assets/chart-widget-DFq9o29S.js.gz +0 -0
- package/dist/standalone/assets/{command-D25Gk8Ov.js → command-Cv4kMka4.js} +1 -1
- package/dist/standalone/assets/command-Cv4kMka4.js.br +0 -0
- package/dist/standalone/assets/command-Cv4kMka4.js.gz +0 -0
- package/dist/standalone/assets/{date-picker-dWT-FYDM.js → date-picker-BfxB3e8W.js} +1 -1
- package/dist/standalone/assets/date-picker-BfxB3e8W.js.br +0 -0
- package/dist/standalone/assets/date-picker-BfxB3e8W.js.gz +0 -0
- package/dist/standalone/assets/{dist-B4BiJqz7.js → dist-DfV3IWyn.js} +1 -1
- package/dist/standalone/assets/dist-DfV3IWyn.js.br +0 -0
- package/dist/standalone/assets/dist-DfV3IWyn.js.gz +0 -0
- package/dist/standalone/assets/{edit-page-7gYT2IT5.js → edit-page-VPFbqPNP.js} +1 -1
- package/dist/standalone/assets/edit-page-VPFbqPNP.js.br +0 -0
- package/dist/standalone/assets/edit-page-VPFbqPNP.js.gz +0 -0
- package/dist/standalone/assets/{empty-BUKxdeYB.js → empty-BR6YtCo2.js} +1 -1
- package/dist/standalone/assets/empty-BR6YtCo2.js.br +0 -0
- package/dist/standalone/assets/empty-BR6YtCo2.js.gz +0 -0
- package/dist/standalone/assets/{global-search-dialog--byVFtbc.js → global-search-dialog-B3nZbtR3.js} +1 -1
- package/dist/standalone/assets/global-search-dialog-B3nZbtR3.js.br +0 -0
- package/dist/standalone/assets/global-search-dialog-B3nZbtR3.js.gz +0 -0
- package/dist/standalone/assets/{heavy-fields-BMTsLOom.js → heavy-fields-i9EcYH8r.js} +1 -1
- package/dist/standalone/assets/heavy-fields-i9EcYH8r.js.br +0 -0
- package/dist/standalone/assets/heavy-fields-i9EcYH8r.js.gz +0 -0
- package/dist/standalone/assets/{home-page-DKd5Im5n.js → home-page-9caZ0Yg1.js} +3 -3
- package/dist/standalone/assets/home-page-9caZ0Yg1.js.br +0 -0
- package/dist/standalone/assets/home-page-9caZ0Yg1.js.gz +0 -0
- package/dist/standalone/assets/hooks-Djo7VZHf.js +185 -0
- package/dist/standalone/assets/hooks-Djo7VZHf.js.br +0 -0
- package/dist/standalone/assets/hooks-Djo7VZHf.js.gz +0 -0
- package/dist/standalone/assets/{icon-registry-CNZsLqJm.js → icon-registry-BCvzitKu.js} +1 -1
- package/dist/standalone/assets/icon-registry-BCvzitKu.js.br +0 -0
- package/dist/standalone/assets/icon-registry-BCvzitKu.js.gz +0 -0
- package/dist/standalone/assets/{index-D_weBQAa.js → index-SG_6EpY3.js} +3 -3
- package/dist/standalone/assets/index-SG_6EpY3.js.br +0 -0
- package/dist/standalone/assets/index-SG_6EpY3.js.gz +0 -0
- package/dist/standalone/assets/{json-editor--WP9_q0O.js → json-editor-TAtTB6fV.js} +1 -1
- package/dist/standalone/assets/json-editor-TAtTB6fV.js.br +0 -0
- package/dist/standalone/assets/json-editor-TAtTB6fV.js.gz +0 -0
- package/dist/standalone/assets/{property-renderer-CqISwCnB.js → property-renderer-KXwrRQgq.js} +3 -3
- package/dist/standalone/assets/property-renderer-KXwrRQgq.js.br +0 -0
- package/dist/standalone/assets/property-renderer-KXwrRQgq.js.gz +0 -0
- package/dist/standalone/assets/{reference-tHFrlwlu.js → reference-BibBrgjx.js} +1 -1
- package/dist/standalone/assets/reference-BibBrgjx.js.br +0 -0
- package/dist/standalone/assets/reference-BibBrgjx.js.gz +0 -0
- package/dist/standalone/assets/{revisions-button-DUOp7SdS.js → revisions-button-B6PmW0BY.js} +1 -1
- package/dist/standalone/assets/revisions-button-B6PmW0BY.js.br +0 -0
- package/dist/standalone/assets/revisions-button-B6PmW0BY.js.gz +0 -0
- package/dist/standalone/assets/{select-CNvBRk3J.js → select-Bs49X1wg.js} +1 -1
- package/dist/standalone/assets/select-Bs49X1wg.js.br +0 -0
- package/dist/standalone/assets/select-Bs49X1wg.js.gz +0 -0
- package/dist/standalone/assets/{settings-page-SE19h-6J.js → settings-page-CSb9z_qM.js} +1 -1
- package/dist/standalone/assets/settings-page-CSb9z_qM.js.br +0 -0
- package/dist/standalone/assets/settings-page-CSb9z_qM.js.gz +0 -0
- package/dist/standalone/assets/{show-page-Bl5uqPGq.js → show-page-DsBH63Hr.js} +1 -1
- package/dist/standalone/assets/show-page-DsBH63Hr.js.br +0 -0
- package/dist/standalone/assets/show-page-DsBH63Hr.js.gz +0 -0
- package/dist/standalone/assets/{tabs-bJ8DvO_f.js → tabs-XOuUmhl0.js} +1 -1
- package/dist/standalone/assets/tabs-XOuUmhl0.js.br +0 -0
- package/dist/standalone/assets/tabs-XOuUmhl0.js.gz +0 -0
- package/dist/standalone/assets/{useQueries-ClcMJqXb.js → useQueries-BIIIiVKJ.js} +1 -1
- package/dist/standalone/assets/useQueries-BIIIiVKJ.js.br +0 -0
- package/dist/standalone/assets/useQueries-BIIIiVKJ.js.gz +0 -0
- package/dist/standalone/assets/{user-directory-DxioDri9.js → user-directory-Cs4iA6fu.js} +1 -1
- package/dist/standalone/assets/user-directory-Cs4iA6fu.js.br +0 -0
- package/dist/standalone/assets/user-directory-Cs4iA6fu.js.gz +0 -0
- package/dist/standalone/assets/{wizard-create-page-u_8xKlPY.js → wizard-create-page-px1E35D5.js} +1 -1
- package/dist/standalone/assets/wizard-create-page-px1E35D5.js.br +0 -0
- package/dist/standalone/assets/wizard-create-page-px1E35D5.js.gz +0 -0
- package/dist/standalone/assets/{zod-B9XvCD94.js → zod-CL5c4fuD.js} +1 -1
- package/dist/standalone/assets/zod-CL5c4fuD.js.br +0 -0
- package/dist/standalone/assets/zod-CL5c4fuD.js.gz +0 -0
- package/dist/standalone/index.html +6 -6
- package/dist/standalone/index.html.br +0 -0
- package/dist/standalone/index.html.gz +0 -0
- package/package.json +4 -4
- package/src/app.tsx +1 -0
- package/src/runtime-config.ts +3 -1
- package/dist/standalone/assets/action-component-host-Cch_SQOc.js.br +0 -0
- package/dist/standalone/assets/action-component-host-Cch_SQOc.js.gz +0 -0
- package/dist/standalone/assets/action-page-Cs9GeU9A.js.br +0 -0
- package/dist/standalone/assets/action-page-Cs9GeU9A.js.gz +0 -0
- package/dist/standalone/assets/ai-assistant-widget-DC9Li4zI.js.br +0 -0
- package/dist/standalone/assets/ai-assistant-widget-DC9Li4zI.js.gz +0 -0
- package/dist/standalone/assets/audit-log-page-Bq4ywsHY.js.br +0 -0
- package/dist/standalone/assets/audit-log-page-Bq4ywsHY.js.gz +0 -0
- package/dist/standalone/assets/cache-page-D6YyRm0a.js.br +0 -0
- package/dist/standalone/assets/cache-page-D6YyRm0a.js.gz +0 -0
- package/dist/standalone/assets/calendar-Dt13SKbK.js.br +0 -0
- package/dist/standalone/assets/calendar-Dt13SKbK.js.gz +0 -0
- package/dist/standalone/assets/chart-widget-BCr0m4cg.js.br +0 -0
- package/dist/standalone/assets/chart-widget-BCr0m4cg.js.gz +0 -0
- package/dist/standalone/assets/command-D25Gk8Ov.js.br +0 -0
- package/dist/standalone/assets/command-D25Gk8Ov.js.gz +0 -0
- package/dist/standalone/assets/date-picker-dWT-FYDM.js.br +0 -0
- package/dist/standalone/assets/date-picker-dWT-FYDM.js.gz +0 -0
- package/dist/standalone/assets/dist-B4BiJqz7.js.br +0 -0
- package/dist/standalone/assets/dist-B4BiJqz7.js.gz +0 -0
- package/dist/standalone/assets/edit-page-7gYT2IT5.js.br +0 -0
- package/dist/standalone/assets/edit-page-7gYT2IT5.js.gz +0 -0
- package/dist/standalone/assets/empty-BUKxdeYB.js.br +0 -0
- package/dist/standalone/assets/empty-BUKxdeYB.js.gz +0 -0
- package/dist/standalone/assets/global-search-dialog--byVFtbc.js.br +0 -0
- package/dist/standalone/assets/global-search-dialog--byVFtbc.js.gz +0 -0
- package/dist/standalone/assets/heavy-fields-BMTsLOom.js.br +0 -0
- package/dist/standalone/assets/heavy-fields-BMTsLOom.js.gz +0 -0
- package/dist/standalone/assets/home-page-DKd5Im5n.js.br +0 -0
- package/dist/standalone/assets/home-page-DKd5Im5n.js.gz +0 -0
- package/dist/standalone/assets/hooks-DOvU3a-p.js +0 -185
- package/dist/standalone/assets/hooks-DOvU3a-p.js.br +0 -0
- package/dist/standalone/assets/hooks-DOvU3a-p.js.gz +0 -0
- package/dist/standalone/assets/icon-registry-CNZsLqJm.js.br +0 -0
- package/dist/standalone/assets/icon-registry-CNZsLqJm.js.gz +0 -0
- package/dist/standalone/assets/index-D_weBQAa.js.br +0 -0
- package/dist/standalone/assets/index-D_weBQAa.js.gz +0 -0
- package/dist/standalone/assets/json-editor--WP9_q0O.js.br +0 -0
- package/dist/standalone/assets/json-editor--WP9_q0O.js.gz +0 -0
- package/dist/standalone/assets/property-renderer-CqISwCnB.js.br +0 -0
- package/dist/standalone/assets/property-renderer-CqISwCnB.js.gz +0 -0
- package/dist/standalone/assets/reference-tHFrlwlu.js.br +0 -0
- package/dist/standalone/assets/reference-tHFrlwlu.js.gz +0 -0
- package/dist/standalone/assets/revisions-button-DUOp7SdS.js.br +0 -0
- package/dist/standalone/assets/revisions-button-DUOp7SdS.js.gz +0 -0
- package/dist/standalone/assets/select-CNvBRk3J.js.br +0 -0
- package/dist/standalone/assets/select-CNvBRk3J.js.gz +0 -0
- package/dist/standalone/assets/settings-page-SE19h-6J.js.br +0 -0
- package/dist/standalone/assets/settings-page-SE19h-6J.js.gz +0 -0
- package/dist/standalone/assets/show-page-Bl5uqPGq.js.br +0 -0
- package/dist/standalone/assets/show-page-Bl5uqPGq.js.gz +0 -0
- package/dist/standalone/assets/tabs-bJ8DvO_f.js.br +0 -0
- package/dist/standalone/assets/tabs-bJ8DvO_f.js.gz +0 -0
- package/dist/standalone/assets/useQueries-ClcMJqXb.js.br +0 -0
- package/dist/standalone/assets/useQueries-ClcMJqXb.js.gz +0 -0
- package/dist/standalone/assets/user-directory-DxioDri9.js.br +0 -0
- package/dist/standalone/assets/user-directory-DxioDri9.js.gz +0 -0
- package/dist/standalone/assets/wizard-create-page-u_8xKlPY.js.br +0 -0
- package/dist/standalone/assets/wizard-create-page-u_8xKlPY.js.gz +0 -0
- package/dist/standalone/assets/zod-B9XvCD94.js.br +0 -0
- package/dist/standalone/assets/zod-B9XvCD94.js.gz +0 -0
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,l as r}from"./floating-layer-BcTp2AMB.js";import{t as i}from"./chevrons-up-down-y29_Sm-3.js";import{n as a}from"./pencil-kFOObGrY.js";import{t as o}from"./x-c-gfVPJa.js";import{o as s}from"./dist-DPxQeZn3.js";import{I as c,N as l,O as u,T as d,z as f}from"./hooks-
|
|
1
|
+
import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,l as r}from"./floating-layer-BcTp2AMB.js";import{t as i}from"./chevrons-up-down-y29_Sm-3.js";import{n as a}from"./pencil-kFOObGrY.js";import{t as o}from"./x-c-gfVPJa.js";import{o as s}from"./dist-DPxQeZn3.js";import{I as c,N as l,O as u,T as d,z as f}from"./hooks-Djo7VZHf.js";import{a as p,i as m,n as h,t as g}from"./useQueries-BIIIiVKJ.js";import{t as _}from"./badge-CdW_Z0lB.js";import{a as v,i as y,o as b,r as x,s as S,t as C}from"./command-Cv4kMka4.js";import{Dt as w,i as T}from"./index-SG_6EpY3.js";var E=e(t(),1),D=n();function O({resourceId:e,recordId:t,fallback:n,showIcon:i=!1,className:o,populated:s}){let l=c(),u=t==null?``:String(t),p=!!(u&&s&&s.title),m=d(e),h=m===void 0||m.actions.some(e=>e.name===`show`),{data:g}=f({queryKey:[`modern-admin`,e,`show`,u],queryFn:()=>l.show(e,u),enabled:!!u&&!p&&h,staleTime:3e4});if(!u)return n??null;let v=(p?s.title:g?.record?.title)||`#${u}`;return h?(0,D.jsxs)(T,{to:{name:`show`,resourceId:e,recordId:u},className:r(`inline-flex items-center gap-1 hover:underline`,o),onClick:e=>e.stopPropagation(),children:[(0,D.jsx)(_,{variant:`secondary`,children:v}),i&&(0,D.jsx)(a,{className:`size-3 opacity-50`})]}):(0,D.jsx)(`span`,{className:r(`inline-flex items-center`,o),children:(0,D.jsx)(_,{variant:`secondary`,children:v})})}function k({referenceResourceId:e,value:t,onChange:n,disabled:a,placeholder:o,className:d,triggerId:g,describedBy:_,invalid:T,required:O}){let[k,A]=E.useState(!1),[j,N]=E.useState(``),P=M(j,250),F=c(),{t:I}=l(),L=o??I(`common:select`),R=f({queryKey:[`modern-admin`,e,`show`,t],queryFn:()=>F.show(e,String(t)),enabled:t!=null&&t!==``,staleTime:3e4}),z=u(e,P,k),B=z.data?.records??[],V=R.data?.record?.title,H=V?`${V} <${t}>`:t!=null&&t!==``?`#${t}`:``;return(0,D.jsxs)(h,{open:k,onOpenChange:A,children:[(0,D.jsx)(p,{asChild:!0,children:(0,D.jsxs)(s,{id:g,variant:`outline`,role:`combobox`,"aria-expanded":k,"aria-describedby":_,"aria-invalid":T||void 0,"aria-required":O||void 0,disabled:a,className:r(`w-full justify-between font-normal`,d),children:[(0,D.jsx)(`span`,{className:r(`truncate`,!H&&`text-muted-foreground`),title:H||void 0,children:H||L}),(0,D.jsx)(i,{className:`size-4 shrink-0 opacity-50`})]})}),(0,D.jsx)(m,{className:`flex max-h-[var(--radix-popover-content-available-height)] w-[var(--radix-popover-trigger-width)] flex-col p-0`,align:`start`,children:(0,D.jsxs)(C,{shouldFilter:!1,className:`min-h-0`,children:[(0,D.jsx)(v,{placeholder:I(`common:searchPlaceholder`),value:j,onValueChange:N}),(0,D.jsxs)(S,{children:[z.isLoading&&(0,D.jsx)(`div`,{className:`p-3 text-sm text-muted-foreground`,children:I(`common:loading`)}),!z.isLoading&&B.length===0&&(0,D.jsx)(x,{children:I(`common:noRecords`)}),t!=null&&t!==``&&(0,D.jsx)(y,{children:(0,D.jsxs)(b,{onSelect:()=>{n(null),A(!1)},children:[(0,D.jsx)(w,{className:`size-4 opacity-0`}),(0,D.jsx)(`span`,{className:`text-muted-foreground`,children:I(`common:clearSelection`)})]})}),(0,D.jsx)(y,{children:B.map(e=>{let i=String(e.id)===String(t??``);return(0,D.jsxs)(b,{value:e.id,onSelect:()=>{n(e.id),A(!1)},children:[(0,D.jsx)(w,{className:r(`size-4`,i?`opacity-100`:`opacity-0`)}),(0,D.jsx)(`span`,{className:`truncate`,title:e.title?`${e.title} <${e.id}>`:`#${e.id}`,children:e.title?`${e.title} <${e.id}>`:`#${e.id}`})]},e.id)})})]})]})})]})}function A({resourceId:e,recordIds:t,className:n,populated:i,populatedKeyPrefix:a}){return!t||t.length===0?(0,D.jsx)(`span`,{className:`text-muted-foreground`,children:`—`}):(0,D.jsx)(`div`,{className:r(`flex flex-wrap gap-1`,n),children:t.map(t=>{let n=i&&a?i[`${a}.${t}`]:void 0;return(0,D.jsx)(O,{resourceId:e,recordId:t,populated:n},String(t))})})}function j({referenceResourceId:e,value:t,onChange:n,disabled:a,placeholder:d}){let[f,T]=E.useState(!1),[O,k]=E.useState(``),A=M(O,250),j=c(),{t:N}=l(),P=d??N(`common:select`),F=E.useMemo(()=>(t??[]).map(String),[t]),I=g({queries:F.map(t=>({queryKey:[`modern-admin`,e,`show`,t],queryFn:()=>j.show(e,t),staleTime:3e4}))}),L=E.useMemo(()=>F.map((e,t)=>{let n=I[t]?.data?.record?.title;return{id:e,title:n?`${n} <${e}>`:`#${e}`}}),[F,I]),R=u(e,A,f),z=R.data?.records??[],B=e=>{let t=String(e);n(F.includes(t)?F.filter(e=>e!==t):[...F,t])},V=e=>{n(F.filter(t=>t!==e))};return(0,D.jsxs)(`div`,{className:`space-y-2`,children:[L.length>0&&(0,D.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:L.map(e=>(0,D.jsxs)(_,{variant:`secondary`,className:`gap-1 pr-1`,children:[e.title,(0,D.jsx)(`button`,{type:`button`,"aria-label":N(`common:removeItem`,{title:e.title}),disabled:a,onClick:()=>V(e.id),className:`rounded-sm opacity-60 hover:opacity-100`,children:(0,D.jsx)(o,{className:`size-3`})})]},e.id))}),(0,D.jsxs)(h,{open:f,onOpenChange:T,children:[(0,D.jsx)(p,{asChild:!0,children:(0,D.jsxs)(s,{variant:`outline`,role:`combobox`,"aria-expanded":f,disabled:a,className:`w-full justify-between font-normal`,children:[(0,D.jsx)(`span`,{className:`truncate text-muted-foreground`,children:F.length>0?N(`common:nSelectedAddMore`,{count:F.length}):P}),(0,D.jsx)(i,{className:`size-4 shrink-0 opacity-50`})]})}),(0,D.jsx)(m,{className:`flex max-h-[var(--radix-popover-content-available-height)] w-[var(--radix-popover-trigger-width)] flex-col p-0`,align:`start`,children:(0,D.jsxs)(C,{shouldFilter:!1,className:`min-h-0`,children:[(0,D.jsx)(v,{placeholder:N(`common:searchPlaceholder`),value:O,onValueChange:k}),(0,D.jsxs)(S,{children:[R.isLoading&&(0,D.jsx)(`div`,{className:`p-3 text-sm text-muted-foreground`,children:N(`common:loading`)}),!R.isLoading&&z.length===0&&(0,D.jsx)(x,{children:N(`common:noRecords`)}),(0,D.jsx)(y,{children:z.map(e=>{let t=F.includes(String(e.id));return(0,D.jsxs)(b,{value:String(e.id),onSelect:()=>B(e.id),children:[(0,D.jsx)(w,{className:r(`size-4`,t?`opacity-100`:`opacity-0`)}),(0,D.jsx)(`span`,{className:`truncate`,title:e.title?`${e.title} <${e.id}>`:`#${e.id}`,children:e.title?`${e.title} <${e.id}>`:`#${e.id}`})]},e.id)})})]})]})})]})]})}var M=(e,t)=>{let[n,r]=E.useState(e);return E.useEffect(()=>{let n=setTimeout(()=>r(e),t);return()=>clearTimeout(n)},[e,t]),n};export{j as i,O as n,A as r,k as t};
|
|
Binary file
|
|
Binary file
|
package/dist/standalone/assets/{revisions-button-DUOp7SdS.js → revisions-button-B6PmW0BY.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,l as r}from"./floating-layer-BcTp2AMB.js";import{t as i}from"./rotate-ccw-AB1VcvbK.js";import{o as a}from"./dist-DPxQeZn3.js";import{D as o,N as s,T as c,x as l}from"./hooks-
|
|
1
|
+
import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,l as r}from"./floating-layer-BcTp2AMB.js";import{t as i}from"./rotate-ccw-AB1VcvbK.js";import{o as a}from"./dist-DPxQeZn3.js";import{D as o,N as s,T as c,x as l}from"./hooks-Djo7VZHf.js";import{a as u,i as d,n as f,o as p,t as m}from"./select-Bs49X1wg.js";import{a as h,i as g,n as _,r as v}from"./user-directory-Cs4iA6fu.js";import{Y as y,b,g as x,l as S,m as C,r as w,st as T,v as E,y as D}from"./index-SG_6EpY3.js";var O=e(t(),1),k=n(),A={create:`Created`,update:`Updated`,delete:`Deleted`,unknownUser:`Unknown user`,changes:`changes`};function j({items:e,selectedId:t,labels:n,className:i,formatDate:a=e=>e,onSelect:o}){let s={...A,...n};return(0,k.jsx)(`div`,{className:r(`space-y-2`,i),children:e.map(e=>{let n=e.id===t;return(0,k.jsxs)(`button`,{type:`button`,onClick:()=>o?.(e),className:r(`relative flex w-full gap-3 rounded-md border p-3 text-left transition-colors`,n?`border-primary bg-primary/5`:`border-border bg-card hover:bg-muted/50`),children:[(0,k.jsx)(`span`,{className:`mt-1 size-2.5 shrink-0 rounded-full bg-primary`}),(0,k.jsxs)(`span`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,k.jsxs)(`span`,{className:`flex items-center justify-between gap-2`,children:[(0,k.jsx)(`span`,{className:`truncate text-sm font-medium`,children:M(e.op,s)}),e.changes!==void 0&&(0,k.jsxs)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:[e.changes,` `,s.changes]})]}),(0,k.jsx)(`span`,{className:`block truncate text-xs text-muted-foreground`,children:e.userLabel??e.userId??s.unknownUser}),(0,k.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:a(e.createdAt)})]})]},e.id)})})}function M(e,t){return e===`create`?t.create:e===`delete`?t.delete:t.update}function N({resourceId:e,recordId:t}){let{t:n,locale:r}=s(),A=c(e),M=l(e,t,{limit:50}),N=o(e,t),F=w(),I=S(),[L,R]=O.useState(!1),z=O.useMemo(()=>M.data?.revisions??[],[M.data?.revisions]),B=O.useMemo(()=>Array.from(new Set(z.map(e=>e.userId).filter(e=>!!e))),[z]),V=_(B),H=O.useCallback(e=>e?v(V.get(e),e):void 0,[V]),[U,W]=O.useState(),[G,K]=O.useState(``),q=z.find(e=>e.id===U)??z[0],J=G?z.find(e=>e.id===G):void 0,Y=O.useMemo(()=>{let e={};for(let t of A?.properties??[])e[t.path]=t.label;return e},[A]),X=O.useCallback(e=>e.map(e=>({...e,label:Y[e.path]})),[Y]),Z=q?X(J?g(J.snapshot,q.snapshot):P(q)):[];O.useEffect(()=>{!U&&z[0]&&W(z[0].id)},[z,U]),O.useEffect(()=>{q?.id&&G===q.id&&K(``)},[G,q?.id]);let Q=O.useCallback(e=>new Intl.DateTimeFormat(r,{dateStyle:`medium`,timeStyle:`short`}).format(new Date(e)),[r]),$=async e=>{if(await F.confirm({title:n(`history:confirmRevert`),confirmLabel:n(`history:revert`),destructive:!0}))try{await N.mutateAsync({revisionId:e.id}),I.success({key:`history:revertSuccess`}),W(void 0),K(``),R(!1)}catch(e){I.error({key:`history:revertFailed`},{description:e instanceof Error?e.message:String(e)})}};return(0,k.jsxs)(C,{open:L,onOpenChange:R,children:[(0,k.jsx)(b,{asChild:!0,children:(0,k.jsxs)(a,{variant:`outline`,size:`sm`,"aria-label":n(`history:revisions`),children:[(0,k.jsx)(T,{className:`size-4`}),(0,k.jsx)(`span`,{className:`hidden sm:inline`,children:n(`history:revisions`)})]})}),(0,k.jsxs)(x,{closeLabel:n(`common:close`),side:`right`,className:`w-full overflow-y-auto sm:max-w-5xl`,children:[(0,k.jsx)(E,{children:(0,k.jsx)(D,{children:n(`history:revisions`)})}),M.isLoading?(0,k.jsxs)(`div`,{className:`mt-6 space-y-3`,children:[(0,k.jsx)(y,{className:`h-16 w-full`}),(0,k.jsx)(y,{className:`h-64 w-full`})]}):M.isError?(0,k.jsx)(`div`,{className:`mt-6 rounded-md border border-destructive/50 bg-destructive/10 p-4 text-sm text-destructive`,children:n(`history:loadError`)}):(0,k.jsxs)(`div`,{className:`mt-6 grid gap-4 lg:grid-cols-[20rem_1fr]`,children:[(0,k.jsx)(j,{items:z.map(e=>({id:e.id,op:e.op,userId:e.userId,userLabel:H(e.userId),createdAt:e.createdAt,changes:P(e).length})),selectedId:q?.id,onSelect:e=>W(e.id),formatDate:Q,labels:{create:n(`history:op.create`),update:n(`history:op.update`),delete:n(`history:op.delete`),unknownUser:n(`history:unknownUser`),changes:n(`history:changes`)}}),(0,k.jsx)(`div`,{className:`min-w-0 space-y-4`,children:q?(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 rounded-md border border-border bg-card p-3`,children:[(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`p`,{className:`text-sm font-medium`,children:Q(q.createdAt)}),(0,k.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:H(q.userId)??n(`history:unknownUser`)})]}),(0,k.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,k.jsxs)(m,{value:G||`_none_`,onValueChange:e=>K(e===`_none_`?``:e),children:[(0,k.jsx)(u,{className:`h-8 w-auto text-xs`,"aria-label":n(`history:compareTo`),children:(0,k.jsx)(p,{})}),(0,k.jsxs)(f,{children:[(0,k.jsx)(d,{value:`_none_`,children:n(`history:storedDiff`)}),z.filter(e=>e.id!==q.id).map(e=>(0,k.jsx)(d,{value:e.id,children:Q(e.createdAt)},e.id))]})]}),(0,k.jsxs)(a,{variant:`destructive`,size:`sm`,disabled:N.isPending||q.op===`delete`,onClick:()=>void $(q),children:[(0,k.jsx)(i,{className:`size-4`}),n(`history:revert`)]})]})]}),(0,k.jsx)(h,{fields:Z,labels:{added:n(`diff:added`),changed:n(`diff:changed`),removed:n(`diff:removed`),before:n(`diff:before`),after:n(`diff:after`),noChanges:n(`diff:noChanges`)}})]}):(0,k.jsx)(`div`,{className:`rounded-md border border-dashed p-8 text-center text-sm text-muted-foreground`,children:n(`history:noRevisions`)})})]})]})]})}var P=e=>g(e.snapshotBefore??{},e.snapshot);export{N as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,S as r,_ as i,a,c as o,d as s,f as c,g as l,h as u,i as d,l as f,o as p,p as m,r as h,w as g,x as _,y as v}from"./floating-layer-BcTp2AMB.js";import{n as y,t as b}from"./dist-CiXwD0ML.js";import{n as x}from"./trash-2-BIJVpWxv.js";import{i as S,n as C,r as w,t as T}from"./dist-DPxQeZn3.js";import{at as E,it as ee,ot as D,rt as te}from"./hooks-DOvU3a-p.js";import{$ as O,Dt as k,Et as A,Q as ne}from"./index-D_weBQAa.js";var j=e(g(),1),M=e(t(),1),N=Object.defineProperty,P=(e,t)=>N(e,`name`,{value:t,configurable:!0});function F(e){let t=M.useRef({value:e,previous:e});return M.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}P(F,`usePrevious`);var I=n(),L=Object.defineProperty,R=(e,t)=>L(e,`name`,{value:t,configurable:!0}),z=[` `,`Enter`,`ArrowUp`,`ArrowDown`],B=[` `,`Enter`],V=`Select`,[H,U,re]=y(V),[W,ie]=r(V,[re,S]),G=S(),[ae,K]=W(V),[q,oe]=W(V);function se(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:c,onValueChange:l,dir:d,name:f,autoComplete:p,disabled:m,required:h,form:g,internal_do_not_use_render:_}=e,v=G(t),[y,x]=M.useState(null),[S,C]=M.useState(null),[T,E]=M.useState(!1),ee=b(d),[D,te]=u({prop:r,defaultProp:i??!1,onChange:a,caller:V}),[O,k]=u({prop:o,defaultProp:c,onChange:l,caller:V}),A=M.useRef(null),ne=M.useRef(O);M.useEffect(()=>{let e=g?y?.ownerDocument.getElementById(g):y?.form;if(e instanceof HTMLFormElement){let t=R(()=>k(ne.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[g,y,k]);let j=!y||!!g||!!y.closest(`form`),[N,P]=M.useState(new Set),F=s(),L=Array.from(N).map(e=>e.props.value).join(`;`),z=M.useCallback(e=>{P(t=>new Set(t).add(e))},[]),B=M.useCallback(e=>{P(t=>{let n=new Set(t);return n.delete(e),n})},[]),U={required:h,trigger:y,onTriggerChange:x,valueNode:S,onValueNodeChange:C,valueNodeHasChildren:T,onValueNodeHasChildrenChange:E,contentId:F,value:O,onValueChange:k,open:D,onOpenChange:te,dir:ee,triggerPointerDownPosRef:A,disabled:m,name:f,autoComplete:p,form:g,nativeOptions:N,nativeSelectKey:L,isFormControl:j};return(0,I.jsx)(w,{...v,children:(0,I.jsx)(ae,{scope:t,...U,children:(0,I.jsx)(H.Provider,{scope:t,children:(0,I.jsx)(q,{scope:t,onNativeOptionAdd:z,onNativeOptionRemove:B,children:qe(_)?_(U):n})})})})}R(se,`SelectProvider`);var ce=R(e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,I.jsx)(se,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,I.jsxs)(I.Fragment,{children:[n,e?(0,I.jsx)(Ke,{__scopeSelect:t}):null]})})},`Select`),le=`SelectTrigger`,ue=M.forwardRef(R(function(e,t){let{__scopeSelect:n,disabled:r=!1,...a}=e,o=G(n),s=K(le,n),c=s.disabled||r,l=_(t,s.onTriggerChange),u=U(n),d=M.useRef(`touch`),[f,p,h]=Je(e=>{let t=u().filter(e=>!e.disabled),n=Ye(t,e,t.find(e=>e.value===s.value));n!==void 0&&s.onValueChange(n.value)}),g=R(e=>{c||(s.onOpenChange(!0),h()),e&&(s.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})},`handleOpen`);return(0,I.jsx)(T,{asChild:!0,...o,children:(0,I.jsx)(m.button,{type:`button`,role:`combobox`,"aria-controls":s.open?s.contentId:void 0,"aria-expanded":s.open,"aria-required":s.required,"aria-autocomplete":`none`,dir:s.dir,"data-state":s.open?`open`:`closed`,disabled:c,"data-disabled":c?``:void 0,"data-placeholder":$(s.value)?``:void 0,...a,ref:l,onClick:i(a.onClick,e=>{e.currentTarget.focus(),d.current!==`mouse`&&g(e)}),onPointerDown:i(a.onPointerDown,e=>{d.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(g(e),e.preventDefault())}),onKeyDown:i(a.onKeyDown,e=>{let t=f.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&p(e.key),!(t&&e.key===` `)&&z.includes(e.key)&&(g(),e.preventDefault())})})})},`SelectTrigger`)),de=`SelectValue`,fe=M.forwardRef(R(function(e,t){let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=K(de,n),{onValueNodeHasChildrenChange:u}=c,d=a!==void 0,f=_(t,c.onValueNodeChange);l(()=>{u(d)},[u,d]);let p=$(c.value);return(0,I.jsx)(m.span,{...s,asChild:!p&&s.asChild,ref:f,style:{pointerEvents:`none`},children:(0,I.jsx)(M.Fragment,{children:p?o:a},p?`placeholder`:`value`)})},`SelectValue`)),pe=M.forwardRef(R(function(e,t){let{__scopeSelect:n,children:r,...i}=e;return(0,I.jsx)(m.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})},`SelectIcon`)),[me,he]=W(`SelectPortal`,{forceMount:void 0}),ge=R(e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,I.jsx)(me,{scope:e.__scopeSelect,forceMount:n,children:(0,I.jsx)(a,{asChild:!0,...r})})},`SelectPortal`),J=`SelectContent`,_e=M.forwardRef(R(function(e,t){let n=he(J,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=K(J,e.__scopeSelect),[o,s]=M.useState();return l(()=>{s(new DocumentFragment)},[]),(0,I.jsx)(c,{present:r||a.open,children:({present:e})=>e?(0,I.jsx)(xe,{...i,ref:t}):(0,I.jsx)(ve,{...i,fragment:o})})},`SelectContent`)),ve=M.forwardRef(R(function(e,t){let{__scopeSelect:n,children:r,fragment:i}=e;return i?j.createPortal((0,I.jsx)(ye,{scope:n,children:(0,I.jsx)(H.Slot,{scope:n,children:(0,I.jsx)(`div`,{ref:t,children:r})})}),i):null},`SelectContentFragment`)),Y=10,[ye,X]=W(J),be=v(`SelectContent.RemoveScroll`),xe=M.forwardRef(R(function(e,t){let{__scopeSelect:n}=e,{position:r=`item-aligned`,onCloseAutoFocus:a,onEscapeKeyDown:o,onPointerDownOutside:s,side:c,sideOffset:l,align:u,alignOffset:d,arrowPadding:f,collisionBoundary:m,collisionPadding:h,sticky:g,hideWhenDetached:v,avoidCollisions:y,...b}=e,x=K(J,n),[S,C]=M.useState(null),[w,T]=M.useState(null),O=_(t,C),[k,A]=M.useState(null),[ne,j]=M.useState(null),N=U(n),[P,F]=M.useState(!1),L=M.useRef(!1);M.useEffect(()=>{if(S)return ee(S)},[S]),D();let z=M.useCallback(e=>{let[t,...n]=N().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&w&&(w.scrollTop=0),n===r&&w&&(w.scrollTop=w.scrollHeight),n?.focus(),document.activeElement!==i))return},[N,w]),B=M.useCallback(()=>z([k,S]),[z,k,S]);M.useEffect(()=>{P&&B()},[P,B]);let{onOpenChange:V,triggerPointerDownPosRef:H}=x;M.useEffect(()=>{if(S){let e={x:0,y:0},t=R(t=>{e={x:Math.abs(Math.round(t.pageX)-(H.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(H.current?.y??0))}},`handlePointerMove`),n=R(n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(S)||V(!1),document.removeEventListener(`pointermove`,t),H.current=null},`handlePointerUp`);return H.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[S,V,H]),M.useEffect(()=>{let e=R(()=>V(!1),`close`);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[V]);let[re,W]=Je(e=>{let t=N().filter(e=>!e.disabled),n=Ye(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),ie=M.useCallback((e,t,n)=>{let r=!L.current&&!n;(x.value!==void 0&&x.value===t||r)&&(A(e),r&&(L.current=!0))},[x.value]),G=M.useCallback(()=>S?.focus(),[S]),ae=M.useCallback((e,t,n)=>{let r=!L.current&&!n;(x.value!==void 0&&x.value===t||r)&&j(e)},[x.value]),q=r===`popper`?Ce:Se,oe=q===Ce?{side:c,sideOffset:l,align:u,alignOffset:d,arrowPadding:f,collisionBoundary:m,collisionPadding:h,sticky:g,hideWhenDetached:v,avoidCollisions:y}:{};return(0,I.jsx)(ye,{scope:n,content:S,viewport:w,onViewportChange:T,itemRefCallback:ie,selectedItem:k,onItemLeave:G,itemTextRefCallback:ae,focusSelectedItem:B,selectedItemText:ne,position:r,isPositioned:P,searchRef:re,children:(0,I.jsx)(te,{as:be,allowPinchZoom:!0,children:(0,I.jsx)(E,{asChild:!0,trapped:x.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:i(a,e=>{x.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,I.jsx)(p,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:o,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>x.onOpenChange(!1),children:(0,I.jsx)(q,{role:`listbox`,id:x.contentId,"data-state":x.open?`open`:`closed`,dir:x.dir,onContextMenu:e=>e.preventDefault(),...b,...oe,onPlaced:()=>F(!0),ref:O,style:{display:`flex`,flexDirection:`column`,outline:`none`,...b.style},onKeyDown:i(b.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&W(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=N().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>z(t)),e.preventDefault()}})})})})})})},`SelectContentImpl`)),Se=M.forwardRef(R(function(e,t){let{__scopeSelect:n,onPlaced:r,...i}=e,a=K(J,n),o=X(J,n),[s,c]=M.useState(null),[u,d]=M.useState(null),f=_(t,d),p=U(n),h=M.useRef(!1),g=M.useRef(!0),{viewport:v,selectedItem:y,selectedItemText:b,focusSelectedItem:x}=o,S=M.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&u&&v&&y&&b){let e=a.trigger.getBoundingClientRect(),t=u.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=b.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-Y,d=O(a,[Y,Math.max(Y,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-Y,d=O(a,[Y,Math.max(Y,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=p(),c=window.innerHeight-Y*2,l=v.scrollHeight,d=window.getComputedStyle(u),f=parseInt(d.borderTopWidth,10),m=parseInt(d.paddingTop,10),g=parseInt(d.borderBottomWidth,10),_=parseInt(d.paddingBottom,10),x=f+m+l+_+g,S=Math.min(y.offsetHeight*5,x),C=window.getComputedStyle(v),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-Y,ee=c-E,D=y.offsetHeight/2,te=y.offsetTop+D,k=f+m+te,A=x-k;if(k<=E){let e=o.length>0&&y===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=u.clientHeight-v.offsetTop-v.offsetHeight,n=k+Math.max(ee,D+(e?T:0)+t+g);s.style.height=n+`px`}else{let e=o.length>0&&y===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,f+v.offsetTop+(e?w:0)+D)+A;s.style.height=t+`px`,v.scrollTop=k-E+v.offsetTop}s.style.margin=`${Y}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>h.current=!0)}},[p,a.trigger,a.valueNode,s,u,v,y,b,a.dir,r]);l(()=>S(),[S]);let[C,w]=M.useState();l(()=>{u&&w(window.getComputedStyle(u).zIndex)},[u]);let T=M.useCallback(e=>{e&&g.current===!0&&(S(),x?.(),g.current=!1)},[S,x]);return(0,I.jsx)(we,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:h,onScrollButtonChange:T,children:(0,I.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:C},children:(0,I.jsx)(m.div,{...i,ref:f,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})},`SelectItemAlignedPosition`)),Ce=M.forwardRef(R(function(e,t){let{__scopeSelect:n,align:r=`start`,collisionPadding:i=Y,...a}=e,o=G(n);return(0,I.jsx)(C,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})},`SelectPopperPosition`)),[we,Z]=W(J,{}),Te=`SelectViewport`,Ee=M.forwardRef(R(function(e,t){let{__scopeSelect:n,nonce:r,...a}=e,o=X(Te,n),s=Z(Te,n),c=_(t,o.onViewportChange),l=M.useRef(0);return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,I.jsx)(H.Slot,{scope:n,children:(0,I.jsx)(m.div,{"data-radix-select-viewport":``,role:`presentation`,...a,ref:c,style:{position:`relative`,flex:1,overflow:`hidden auto`,...a.style},onScroll:i(a.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=s;if(r?.current&&n){let e=Math.abs(l.current-t.scrollTop);if(e>0){let r=window.innerHeight-Y*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}l.current=t.scrollTop})})})]})},`SelectViewport`)),[De,Oe]=W(`SelectGroup`),ke=M.forwardRef(R(function(e,t){let{__scopeSelect:n,...r}=e,i=s();return(0,I.jsx)(De,{scope:n,id:i,children:(0,I.jsx)(m.div,{role:`group`,"aria-labelledby":i,...r,ref:t})})},`SelectGroup`)),Ae=`SelectLabel`,je=M.forwardRef(R(function(e,t){let{__scopeSelect:n,...r}=e,i=Oe(Ae,n);return(0,I.jsx)(m.div,{id:i.id,...r,ref:t})},`SelectLabel`)),Me=`SelectItem`,[Ne,Pe]=W(Me),Fe=M.forwardRef(R(function(e,t){let{__scopeSelect:n,value:r,disabled:a=!1,textValue:c,...l}=e,u=K(Me,n),d=X(Me,n),f=u.value===r,[p,h]=M.useState(c??``),[g,v]=M.useState(!1),y=o(e=>d.itemRefCallback?.(e,r,a)),b=_(t,y),x=s(),S=M.useRef(`touch`),C=R(()=>{a||(u.onValueChange(r),u.onOpenChange(!1))},`handleSelect`);return(0,I.jsx)(Ne,{scope:n,value:r,disabled:a,textId:x,isSelected:f,onItemTextChange:M.useCallback(e=>{h(t=>t||(e?.textContent??``).trim())},[]),children:(0,I.jsx)(H.ItemSlot,{scope:n,value:r,disabled:a,textValue:p,children:(0,I.jsx)(m.div,{role:`option`,"aria-labelledby":x,"data-highlighted":g?``:void 0,"aria-selected":f&&g,"data-state":f?`checked`:`unchecked`,"aria-disabled":a||void 0,"data-disabled":a?``:void 0,tabIndex:a?void 0:-1,...l,ref:b,onFocus:i(l.onFocus,()=>v(!0)),onBlur:i(l.onBlur,()=>v(!1)),onClick:i(l.onClick,()=>{S.current!==`mouse`&&C()}),onPointerUp:i(l.onPointerUp,()=>{S.current===`mouse`&&C()}),onPointerDown:i(l.onPointerDown,e=>{S.current=e.pointerType}),onPointerMove:i(l.onPointerMove,e=>{S.current=e.pointerType,a?d.onItemLeave?.():S.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:i(l.onPointerLeave,e=>{e.currentTarget===document.activeElement&&d.onItemLeave?.()}),onKeyDown:i(l.onKeyDown,e=>{a||e.target!==e.currentTarget||(d.searchRef?.current===``||e.key!==` `)&&(B.includes(e.key)&&C(),e.key===` `&&e.preventDefault())})})})})},`SelectItem`)),Q=`SelectItemText`,Ie=M.forwardRef(R(function(e,t){let{__scopeSelect:n,className:r,style:i,...a}=e,s=K(Q,n),c=X(Q,n),u=Pe(Q,n),d=oe(Q,n),[f,p]=M.useState(null),h=o(e=>c.itemTextRefCallback?.(e,u.value,u.disabled)),g=_(t,p,u.onItemTextChange,h),v=f?.textContent,y=M.useMemo(()=>(0,I.jsx)(`option`,{value:u.value,disabled:u.disabled,children:v},u.value),[u.disabled,u.value,v]),{onNativeOptionAdd:b,onNativeOptionRemove:x}=d;return l(()=>(b(y),()=>x(y)),[b,x,y]),(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(m.span,{id:u.textId,...a,ref:g}),u.isSelected&&s.valueNode&&!s.valueNodeHasChildren&&!$(s.value)?j.createPortal(a.children,s.valueNode):null]})},`SelectItemText`)),Le=`SelectItemIndicator`,Re=M.forwardRef(R(function(e,t){let{__scopeSelect:n,...r}=e;return Pe(Le,n).isSelected?(0,I.jsx)(m.span,{"aria-hidden":!0,...r,ref:t}):null},`SelectItemIndicator`)),ze=`SelectScrollUpButton`,Be=M.forwardRef(R(function(e,t){let n=X(ze,e.__scopeSelect),r=Z(ze,e.__scopeSelect),[i,a]=M.useState(!1),o=_(t,r.onScrollButtonChange);return l(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;a(e)};R(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,I.jsx)(Ue,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null},`SelectScrollUpButton`)),Ve=`SelectScrollDownButton`,He=M.forwardRef(R(function(e,t){let n=X(Ve,e.__scopeSelect),r=Z(Ve,e.__scopeSelect),[i,a]=M.useState(!1),o=_(t,r.onScrollButtonChange);return l(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;a(n)};R(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,I.jsx)(Ue,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null},`SelectScrollDownButton`)),Ue=M.forwardRef(R(function(e,t){let{__scopeSelect:n,onAutoScroll:r,...a}=e,o=X(`SelectScrollButton`,n),s=M.useRef(null),c=U(n),u=M.useCallback(()=>{s.current!==null&&(window.clearInterval(s.current),s.current=null)},[]);return M.useEffect(()=>()=>u(),[u]),l(()=>{c().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[c]),(0,I.jsx)(m.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:i(a.onPointerDown,()=>{s.current===null&&(s.current=window.setInterval(r,50))}),onPointerMove:i(a.onPointerMove,()=>{o.onItemLeave?.(),s.current===null&&(s.current=window.setInterval(r,50))}),onPointerLeave:i(a.onPointerLeave,()=>{u()})})},`SelectScrollButtonImpl`)),We=M.forwardRef(R(function(e,t){let{__scopeSelect:n,...r}=e;return(0,I.jsx)(m.div,{"aria-hidden":!0,...r,ref:t})},`SelectSeparator`)),Ge=`SelectBubbleInput`,Ke=M.forwardRef(R(function({__scopeSelect:e,...t},n){let r=K(Ge,e),{value:i,onValueChange:a,required:o,disabled:s,name:c,autoComplete:l,form:u}=r,{nativeOptions:d,nativeSelectKey:f}=r,p=M.useRef(null),h=_(n,p),g=i??``,v=F(g),y=Array.from(d).some(e=>(e.props.value??``)===``);return M.useEffect(()=>{let e=p.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(v!==g&&n){let t=new Event(`change`,{bubbles:!0});n.call(e,g),e.dispatchEvent(t)}},[v,g]),(0,I.jsxs)(m.select,{"aria-hidden":!0,required:o,tabIndex:-1,name:c,autoComplete:l,disabled:s,form:u,onChange:e=>a(e.target.value),...t,style:{...ne,...t.style},ref:h,defaultValue:g,children:[$(i)&&!y?(0,I.jsx)(`option`,{value:``}):null,Array.from(d)]},f)},`SelectBubbleInput`));function qe(e){return typeof e==`function`}R(qe,`isFunction`);function $(e){return e===``||e===void 0}R($,`shouldShowPlaceholder`);function Je(e){let t=o(e),n=M.useRef(``),r=M.useRef(0),i=M.useCallback(e=>{let i=n.current+e;t(i),R((function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))}),`updateSearch`)(i)},[t]),a=M.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return M.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}R(Je,`useTypeaheadSearch`);function Ye(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=Xe(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}R(Ye,`findNextItem`);function Xe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}R(Xe,`wrapArray`);function Ze({onValueChange:e,...t}){let n=M.useCallback(t=>{t!==``&&e?.(t)},[e]);return(0,I.jsx)(ce,{onValueChange:n,...t})}Ze.displayName=`Select`;var Qe=Ze,$e=ke,et=fe,tt=M.forwardRef(({className:e,children:t,onMouseEnter:n,...r},i)=>(0,I.jsxs)(ue,{ref:i,className:f(`flex h-9 w-full cursor-pointer items-center justify-between rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1`,e),onMouseEnter:e=>{let t=e.currentTarget.querySelector(`span`);t&&t.scrollWidth>t.offsetWidth?e.currentTarget.title=t.textContent??``:e.currentTarget.removeAttribute(`title`),n?.(e)},...r,children:[t,(0,I.jsx)(pe,{asChild:!0,children:(0,I.jsx)(A,{className:`h-4 w-4 opacity-50`})})]}));tt.displayName=ue.displayName;var nt=M.forwardRef(({className:e,...t},n)=>(0,I.jsx)(`div`,{className:`flex h-6 shrink-0`,children:(0,I.jsx)(Be,{ref:n,className:f(`flex w-full cursor-default items-center justify-center py-1`,e),...t,children:(0,I.jsx)(x,{className:`h-4 w-4`})})}));nt.displayName=Be.displayName;var rt=M.forwardRef(({className:e,...t},n)=>(0,I.jsx)(`div`,{className:`flex h-6 shrink-0`,children:(0,I.jsx)(He,{ref:n,className:f(`flex w-full cursor-default items-center justify-center py-1`,e),...t,children:(0,I.jsx)(A,{className:`h-4 w-4`})})}));rt.displayName=He.displayName;var it=M.forwardRef(({className:e,children:t,position:n=`popper`,collisionPadding:r,container:i,...a},o)=>{let s=h(),c=d();return(0,I.jsx)(ge,{container:i??s,children:(0,I.jsxs)(_e,{ref:o,className:f(`relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2`,n===`popper`&&`max-h-[min(24rem,var(--radix-select-content-available-height))] data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1`,e),position:n,collisionPadding:r??c,...a,children:[(0,I.jsx)(nt,{}),(0,I.jsx)(Ee,{className:f(`p-1`,n===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]`),children:t}),(0,I.jsx)(rt,{})]})})});it.displayName=_e.displayName;var at=M.forwardRef(({className:e,...t},n)=>(0,I.jsx)(je,{ref:n,className:f(`px-2 py-1.5 text-sm font-semibold`,e),...t}));at.displayName=je.displayName;var ot=M.forwardRef(({className:e,children:t,...n},r)=>(0,I.jsxs)(Fe,{ref:r,className:f(`relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),title:typeof t==`string`?t:void 0,...n,children:[(0,I.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,I.jsx)(Re,{children:(0,I.jsx)(k,{className:`h-4 w-4`})})}),(0,I.jsx)(Ie,{children:(0,I.jsx)(`span`,{className:`block truncate`,children:t})})]}));ot.displayName=Fe.displayName;var st=M.forwardRef(({className:e,...t},n)=>(0,I.jsx)(We,{ref:n,className:f(`-mx-1 my-1 h-px bg-muted`,e),...t}));st.displayName=We.displayName;var ct=M.forwardRef(({className:e,children:t,...n},r)=>(0,I.jsx)(`select`,{ref:r,className:f(`flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,e),...n,children:t}));ct.displayName=`NativeSelect`;export{tt as a,ot as i,it as n,et as o,$e as r,Qe as t};
|
|
1
|
+
import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,S as r,_ as i,a,c as o,d as s,f as c,g as l,h as u,i as d,l as f,o as p,p as m,r as h,w as g,x as _,y as v}from"./floating-layer-BcTp2AMB.js";import{n as y,t as b}from"./dist-CiXwD0ML.js";import{n as x}from"./trash-2-BIJVpWxv.js";import{i as S,n as C,r as w,t as T}from"./dist-DPxQeZn3.js";import{at as E,it as ee,ot as D,rt as te}from"./hooks-Djo7VZHf.js";import{$ as O,Dt as k,Et as A,Q as ne}from"./index-SG_6EpY3.js";var j=e(g(),1),M=e(t(),1),N=Object.defineProperty,P=(e,t)=>N(e,`name`,{value:t,configurable:!0});function F(e){let t=M.useRef({value:e,previous:e});return M.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}P(F,`usePrevious`);var I=n(),L=Object.defineProperty,R=(e,t)=>L(e,`name`,{value:t,configurable:!0}),z=[` `,`Enter`,`ArrowUp`,`ArrowDown`],B=[` `,`Enter`],V=`Select`,[H,U,re]=y(V),[W,ie]=r(V,[re,S]),G=S(),[ae,K]=W(V),[q,oe]=W(V);function se(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:c,onValueChange:l,dir:d,name:f,autoComplete:p,disabled:m,required:h,form:g,internal_do_not_use_render:_}=e,v=G(t),[y,x]=M.useState(null),[S,C]=M.useState(null),[T,E]=M.useState(!1),ee=b(d),[D,te]=u({prop:r,defaultProp:i??!1,onChange:a,caller:V}),[O,k]=u({prop:o,defaultProp:c,onChange:l,caller:V}),A=M.useRef(null),ne=M.useRef(O);M.useEffect(()=>{let e=g?y?.ownerDocument.getElementById(g):y?.form;if(e instanceof HTMLFormElement){let t=R(()=>k(ne.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[g,y,k]);let j=!y||!!g||!!y.closest(`form`),[N,P]=M.useState(new Set),F=s(),L=Array.from(N).map(e=>e.props.value).join(`;`),z=M.useCallback(e=>{P(t=>new Set(t).add(e))},[]),B=M.useCallback(e=>{P(t=>{let n=new Set(t);return n.delete(e),n})},[]),U={required:h,trigger:y,onTriggerChange:x,valueNode:S,onValueNodeChange:C,valueNodeHasChildren:T,onValueNodeHasChildrenChange:E,contentId:F,value:O,onValueChange:k,open:D,onOpenChange:te,dir:ee,triggerPointerDownPosRef:A,disabled:m,name:f,autoComplete:p,form:g,nativeOptions:N,nativeSelectKey:L,isFormControl:j};return(0,I.jsx)(w,{...v,children:(0,I.jsx)(ae,{scope:t,...U,children:(0,I.jsx)(H.Provider,{scope:t,children:(0,I.jsx)(q,{scope:t,onNativeOptionAdd:z,onNativeOptionRemove:B,children:qe(_)?_(U):n})})})})}R(se,`SelectProvider`);var ce=R(e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,I.jsx)(se,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,I.jsxs)(I.Fragment,{children:[n,e?(0,I.jsx)(Ke,{__scopeSelect:t}):null]})})},`Select`),le=`SelectTrigger`,ue=M.forwardRef(R(function(e,t){let{__scopeSelect:n,disabled:r=!1,...a}=e,o=G(n),s=K(le,n),c=s.disabled||r,l=_(t,s.onTriggerChange),u=U(n),d=M.useRef(`touch`),[f,p,h]=Je(e=>{let t=u().filter(e=>!e.disabled),n=Ye(t,e,t.find(e=>e.value===s.value));n!==void 0&&s.onValueChange(n.value)}),g=R(e=>{c||(s.onOpenChange(!0),h()),e&&(s.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})},`handleOpen`);return(0,I.jsx)(T,{asChild:!0,...o,children:(0,I.jsx)(m.button,{type:`button`,role:`combobox`,"aria-controls":s.open?s.contentId:void 0,"aria-expanded":s.open,"aria-required":s.required,"aria-autocomplete":`none`,dir:s.dir,"data-state":s.open?`open`:`closed`,disabled:c,"data-disabled":c?``:void 0,"data-placeholder":$(s.value)?``:void 0,...a,ref:l,onClick:i(a.onClick,e=>{e.currentTarget.focus(),d.current!==`mouse`&&g(e)}),onPointerDown:i(a.onPointerDown,e=>{d.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(g(e),e.preventDefault())}),onKeyDown:i(a.onKeyDown,e=>{let t=f.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&p(e.key),!(t&&e.key===` `)&&z.includes(e.key)&&(g(),e.preventDefault())})})})},`SelectTrigger`)),de=`SelectValue`,fe=M.forwardRef(R(function(e,t){let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=K(de,n),{onValueNodeHasChildrenChange:u}=c,d=a!==void 0,f=_(t,c.onValueNodeChange);l(()=>{u(d)},[u,d]);let p=$(c.value);return(0,I.jsx)(m.span,{...s,asChild:!p&&s.asChild,ref:f,style:{pointerEvents:`none`},children:(0,I.jsx)(M.Fragment,{children:p?o:a},p?`placeholder`:`value`)})},`SelectValue`)),pe=M.forwardRef(R(function(e,t){let{__scopeSelect:n,children:r,...i}=e;return(0,I.jsx)(m.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})},`SelectIcon`)),[me,he]=W(`SelectPortal`,{forceMount:void 0}),ge=R(e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,I.jsx)(me,{scope:e.__scopeSelect,forceMount:n,children:(0,I.jsx)(a,{asChild:!0,...r})})},`SelectPortal`),J=`SelectContent`,_e=M.forwardRef(R(function(e,t){let n=he(J,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=K(J,e.__scopeSelect),[o,s]=M.useState();return l(()=>{s(new DocumentFragment)},[]),(0,I.jsx)(c,{present:r||a.open,children:({present:e})=>e?(0,I.jsx)(xe,{...i,ref:t}):(0,I.jsx)(ve,{...i,fragment:o})})},`SelectContent`)),ve=M.forwardRef(R(function(e,t){let{__scopeSelect:n,children:r,fragment:i}=e;return i?j.createPortal((0,I.jsx)(ye,{scope:n,children:(0,I.jsx)(H.Slot,{scope:n,children:(0,I.jsx)(`div`,{ref:t,children:r})})}),i):null},`SelectContentFragment`)),Y=10,[ye,X]=W(J),be=v(`SelectContent.RemoveScroll`),xe=M.forwardRef(R(function(e,t){let{__scopeSelect:n}=e,{position:r=`item-aligned`,onCloseAutoFocus:a,onEscapeKeyDown:o,onPointerDownOutside:s,side:c,sideOffset:l,align:u,alignOffset:d,arrowPadding:f,collisionBoundary:m,collisionPadding:h,sticky:g,hideWhenDetached:v,avoidCollisions:y,...b}=e,x=K(J,n),[S,C]=M.useState(null),[w,T]=M.useState(null),O=_(t,C),[k,A]=M.useState(null),[ne,j]=M.useState(null),N=U(n),[P,F]=M.useState(!1),L=M.useRef(!1);M.useEffect(()=>{if(S)return ee(S)},[S]),D();let z=M.useCallback(e=>{let[t,...n]=N().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&w&&(w.scrollTop=0),n===r&&w&&(w.scrollTop=w.scrollHeight),n?.focus(),document.activeElement!==i))return},[N,w]),B=M.useCallback(()=>z([k,S]),[z,k,S]);M.useEffect(()=>{P&&B()},[P,B]);let{onOpenChange:V,triggerPointerDownPosRef:H}=x;M.useEffect(()=>{if(S){let e={x:0,y:0},t=R(t=>{e={x:Math.abs(Math.round(t.pageX)-(H.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(H.current?.y??0))}},`handlePointerMove`),n=R(n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(S)||V(!1),document.removeEventListener(`pointermove`,t),H.current=null},`handlePointerUp`);return H.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[S,V,H]),M.useEffect(()=>{let e=R(()=>V(!1),`close`);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[V]);let[re,W]=Je(e=>{let t=N().filter(e=>!e.disabled),n=Ye(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),ie=M.useCallback((e,t,n)=>{let r=!L.current&&!n;(x.value!==void 0&&x.value===t||r)&&(A(e),r&&(L.current=!0))},[x.value]),G=M.useCallback(()=>S?.focus(),[S]),ae=M.useCallback((e,t,n)=>{let r=!L.current&&!n;(x.value!==void 0&&x.value===t||r)&&j(e)},[x.value]),q=r===`popper`?Ce:Se,oe=q===Ce?{side:c,sideOffset:l,align:u,alignOffset:d,arrowPadding:f,collisionBoundary:m,collisionPadding:h,sticky:g,hideWhenDetached:v,avoidCollisions:y}:{};return(0,I.jsx)(ye,{scope:n,content:S,viewport:w,onViewportChange:T,itemRefCallback:ie,selectedItem:k,onItemLeave:G,itemTextRefCallback:ae,focusSelectedItem:B,selectedItemText:ne,position:r,isPositioned:P,searchRef:re,children:(0,I.jsx)(te,{as:be,allowPinchZoom:!0,children:(0,I.jsx)(E,{asChild:!0,trapped:x.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:i(a,e=>{x.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,I.jsx)(p,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:o,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>x.onOpenChange(!1),children:(0,I.jsx)(q,{role:`listbox`,id:x.contentId,"data-state":x.open?`open`:`closed`,dir:x.dir,onContextMenu:e=>e.preventDefault(),...b,...oe,onPlaced:()=>F(!0),ref:O,style:{display:`flex`,flexDirection:`column`,outline:`none`,...b.style},onKeyDown:i(b.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&W(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=N().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>z(t)),e.preventDefault()}})})})})})})},`SelectContentImpl`)),Se=M.forwardRef(R(function(e,t){let{__scopeSelect:n,onPlaced:r,...i}=e,a=K(J,n),o=X(J,n),[s,c]=M.useState(null),[u,d]=M.useState(null),f=_(t,d),p=U(n),h=M.useRef(!1),g=M.useRef(!0),{viewport:v,selectedItem:y,selectedItemText:b,focusSelectedItem:x}=o,S=M.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&u&&v&&y&&b){let e=a.trigger.getBoundingClientRect(),t=u.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=b.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-Y,d=O(a,[Y,Math.max(Y,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-Y,d=O(a,[Y,Math.max(Y,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=p(),c=window.innerHeight-Y*2,l=v.scrollHeight,d=window.getComputedStyle(u),f=parseInt(d.borderTopWidth,10),m=parseInt(d.paddingTop,10),g=parseInt(d.borderBottomWidth,10),_=parseInt(d.paddingBottom,10),x=f+m+l+_+g,S=Math.min(y.offsetHeight*5,x),C=window.getComputedStyle(v),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-Y,ee=c-E,D=y.offsetHeight/2,te=y.offsetTop+D,k=f+m+te,A=x-k;if(k<=E){let e=o.length>0&&y===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=u.clientHeight-v.offsetTop-v.offsetHeight,n=k+Math.max(ee,D+(e?T:0)+t+g);s.style.height=n+`px`}else{let e=o.length>0&&y===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,f+v.offsetTop+(e?w:0)+D)+A;s.style.height=t+`px`,v.scrollTop=k-E+v.offsetTop}s.style.margin=`${Y}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>h.current=!0)}},[p,a.trigger,a.valueNode,s,u,v,y,b,a.dir,r]);l(()=>S(),[S]);let[C,w]=M.useState();l(()=>{u&&w(window.getComputedStyle(u).zIndex)},[u]);let T=M.useCallback(e=>{e&&g.current===!0&&(S(),x?.(),g.current=!1)},[S,x]);return(0,I.jsx)(we,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:h,onScrollButtonChange:T,children:(0,I.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:C},children:(0,I.jsx)(m.div,{...i,ref:f,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})},`SelectItemAlignedPosition`)),Ce=M.forwardRef(R(function(e,t){let{__scopeSelect:n,align:r=`start`,collisionPadding:i=Y,...a}=e,o=G(n);return(0,I.jsx)(C,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})},`SelectPopperPosition`)),[we,Z]=W(J,{}),Te=`SelectViewport`,Ee=M.forwardRef(R(function(e,t){let{__scopeSelect:n,nonce:r,...a}=e,o=X(Te,n),s=Z(Te,n),c=_(t,o.onViewportChange),l=M.useRef(0);return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,I.jsx)(H.Slot,{scope:n,children:(0,I.jsx)(m.div,{"data-radix-select-viewport":``,role:`presentation`,...a,ref:c,style:{position:`relative`,flex:1,overflow:`hidden auto`,...a.style},onScroll:i(a.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=s;if(r?.current&&n){let e=Math.abs(l.current-t.scrollTop);if(e>0){let r=window.innerHeight-Y*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}l.current=t.scrollTop})})})]})},`SelectViewport`)),[De,Oe]=W(`SelectGroup`),ke=M.forwardRef(R(function(e,t){let{__scopeSelect:n,...r}=e,i=s();return(0,I.jsx)(De,{scope:n,id:i,children:(0,I.jsx)(m.div,{role:`group`,"aria-labelledby":i,...r,ref:t})})},`SelectGroup`)),Ae=`SelectLabel`,je=M.forwardRef(R(function(e,t){let{__scopeSelect:n,...r}=e,i=Oe(Ae,n);return(0,I.jsx)(m.div,{id:i.id,...r,ref:t})},`SelectLabel`)),Me=`SelectItem`,[Ne,Pe]=W(Me),Fe=M.forwardRef(R(function(e,t){let{__scopeSelect:n,value:r,disabled:a=!1,textValue:c,...l}=e,u=K(Me,n),d=X(Me,n),f=u.value===r,[p,h]=M.useState(c??``),[g,v]=M.useState(!1),y=o(e=>d.itemRefCallback?.(e,r,a)),b=_(t,y),x=s(),S=M.useRef(`touch`),C=R(()=>{a||(u.onValueChange(r),u.onOpenChange(!1))},`handleSelect`);return(0,I.jsx)(Ne,{scope:n,value:r,disabled:a,textId:x,isSelected:f,onItemTextChange:M.useCallback(e=>{h(t=>t||(e?.textContent??``).trim())},[]),children:(0,I.jsx)(H.ItemSlot,{scope:n,value:r,disabled:a,textValue:p,children:(0,I.jsx)(m.div,{role:`option`,"aria-labelledby":x,"data-highlighted":g?``:void 0,"aria-selected":f&&g,"data-state":f?`checked`:`unchecked`,"aria-disabled":a||void 0,"data-disabled":a?``:void 0,tabIndex:a?void 0:-1,...l,ref:b,onFocus:i(l.onFocus,()=>v(!0)),onBlur:i(l.onBlur,()=>v(!1)),onClick:i(l.onClick,()=>{S.current!==`mouse`&&C()}),onPointerUp:i(l.onPointerUp,()=>{S.current===`mouse`&&C()}),onPointerDown:i(l.onPointerDown,e=>{S.current=e.pointerType}),onPointerMove:i(l.onPointerMove,e=>{S.current=e.pointerType,a?d.onItemLeave?.():S.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:i(l.onPointerLeave,e=>{e.currentTarget===document.activeElement&&d.onItemLeave?.()}),onKeyDown:i(l.onKeyDown,e=>{a||e.target!==e.currentTarget||(d.searchRef?.current===``||e.key!==` `)&&(B.includes(e.key)&&C(),e.key===` `&&e.preventDefault())})})})})},`SelectItem`)),Q=`SelectItemText`,Ie=M.forwardRef(R(function(e,t){let{__scopeSelect:n,className:r,style:i,...a}=e,s=K(Q,n),c=X(Q,n),u=Pe(Q,n),d=oe(Q,n),[f,p]=M.useState(null),h=o(e=>c.itemTextRefCallback?.(e,u.value,u.disabled)),g=_(t,p,u.onItemTextChange,h),v=f?.textContent,y=M.useMemo(()=>(0,I.jsx)(`option`,{value:u.value,disabled:u.disabled,children:v},u.value),[u.disabled,u.value,v]),{onNativeOptionAdd:b,onNativeOptionRemove:x}=d;return l(()=>(b(y),()=>x(y)),[b,x,y]),(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(m.span,{id:u.textId,...a,ref:g}),u.isSelected&&s.valueNode&&!s.valueNodeHasChildren&&!$(s.value)?j.createPortal(a.children,s.valueNode):null]})},`SelectItemText`)),Le=`SelectItemIndicator`,Re=M.forwardRef(R(function(e,t){let{__scopeSelect:n,...r}=e;return Pe(Le,n).isSelected?(0,I.jsx)(m.span,{"aria-hidden":!0,...r,ref:t}):null},`SelectItemIndicator`)),ze=`SelectScrollUpButton`,Be=M.forwardRef(R(function(e,t){let n=X(ze,e.__scopeSelect),r=Z(ze,e.__scopeSelect),[i,a]=M.useState(!1),o=_(t,r.onScrollButtonChange);return l(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;a(e)};R(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,I.jsx)(Ue,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null},`SelectScrollUpButton`)),Ve=`SelectScrollDownButton`,He=M.forwardRef(R(function(e,t){let n=X(Ve,e.__scopeSelect),r=Z(Ve,e.__scopeSelect),[i,a]=M.useState(!1),o=_(t,r.onScrollButtonChange);return l(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;a(n)};R(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,I.jsx)(Ue,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null},`SelectScrollDownButton`)),Ue=M.forwardRef(R(function(e,t){let{__scopeSelect:n,onAutoScroll:r,...a}=e,o=X(`SelectScrollButton`,n),s=M.useRef(null),c=U(n),u=M.useCallback(()=>{s.current!==null&&(window.clearInterval(s.current),s.current=null)},[]);return M.useEffect(()=>()=>u(),[u]),l(()=>{c().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[c]),(0,I.jsx)(m.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:i(a.onPointerDown,()=>{s.current===null&&(s.current=window.setInterval(r,50))}),onPointerMove:i(a.onPointerMove,()=>{o.onItemLeave?.(),s.current===null&&(s.current=window.setInterval(r,50))}),onPointerLeave:i(a.onPointerLeave,()=>{u()})})},`SelectScrollButtonImpl`)),We=M.forwardRef(R(function(e,t){let{__scopeSelect:n,...r}=e;return(0,I.jsx)(m.div,{"aria-hidden":!0,...r,ref:t})},`SelectSeparator`)),Ge=`SelectBubbleInput`,Ke=M.forwardRef(R(function({__scopeSelect:e,...t},n){let r=K(Ge,e),{value:i,onValueChange:a,required:o,disabled:s,name:c,autoComplete:l,form:u}=r,{nativeOptions:d,nativeSelectKey:f}=r,p=M.useRef(null),h=_(n,p),g=i??``,v=F(g),y=Array.from(d).some(e=>(e.props.value??``)===``);return M.useEffect(()=>{let e=p.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(v!==g&&n){let t=new Event(`change`,{bubbles:!0});n.call(e,g),e.dispatchEvent(t)}},[v,g]),(0,I.jsxs)(m.select,{"aria-hidden":!0,required:o,tabIndex:-1,name:c,autoComplete:l,disabled:s,form:u,onChange:e=>a(e.target.value),...t,style:{...ne,...t.style},ref:h,defaultValue:g,children:[$(i)&&!y?(0,I.jsx)(`option`,{value:``}):null,Array.from(d)]},f)},`SelectBubbleInput`));function qe(e){return typeof e==`function`}R(qe,`isFunction`);function $(e){return e===``||e===void 0}R($,`shouldShowPlaceholder`);function Je(e){let t=o(e),n=M.useRef(``),r=M.useRef(0),i=M.useCallback(e=>{let i=n.current+e;t(i),R((function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))}),`updateSearch`)(i)},[t]),a=M.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return M.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}R(Je,`useTypeaheadSearch`);function Ye(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=Xe(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}R(Ye,`findNextItem`);function Xe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}R(Xe,`wrapArray`);function Ze({onValueChange:e,...t}){let n=M.useCallback(t=>{t!==``&&e?.(t)},[e]);return(0,I.jsx)(ce,{onValueChange:n,...t})}Ze.displayName=`Select`;var Qe=Ze,$e=ke,et=fe,tt=M.forwardRef(({className:e,children:t,onMouseEnter:n,...r},i)=>(0,I.jsxs)(ue,{ref:i,className:f(`flex h-9 w-full cursor-pointer items-center justify-between rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1`,e),onMouseEnter:e=>{let t=e.currentTarget.querySelector(`span`);t&&t.scrollWidth>t.offsetWidth?e.currentTarget.title=t.textContent??``:e.currentTarget.removeAttribute(`title`),n?.(e)},...r,children:[t,(0,I.jsx)(pe,{asChild:!0,children:(0,I.jsx)(A,{className:`h-4 w-4 opacity-50`})})]}));tt.displayName=ue.displayName;var nt=M.forwardRef(({className:e,...t},n)=>(0,I.jsx)(`div`,{className:`flex h-6 shrink-0`,children:(0,I.jsx)(Be,{ref:n,className:f(`flex w-full cursor-default items-center justify-center py-1`,e),...t,children:(0,I.jsx)(x,{className:`h-4 w-4`})})}));nt.displayName=Be.displayName;var rt=M.forwardRef(({className:e,...t},n)=>(0,I.jsx)(`div`,{className:`flex h-6 shrink-0`,children:(0,I.jsx)(He,{ref:n,className:f(`flex w-full cursor-default items-center justify-center py-1`,e),...t,children:(0,I.jsx)(A,{className:`h-4 w-4`})})}));rt.displayName=He.displayName;var it=M.forwardRef(({className:e,children:t,position:n=`popper`,collisionPadding:r,container:i,...a},o)=>{let s=h(),c=d();return(0,I.jsx)(ge,{container:i??s,children:(0,I.jsxs)(_e,{ref:o,className:f(`relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2`,n===`popper`&&`max-h-[min(24rem,var(--radix-select-content-available-height))] data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1`,e),position:n,collisionPadding:r??c,...a,children:[(0,I.jsx)(nt,{}),(0,I.jsx)(Ee,{className:f(`p-1`,n===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]`),children:t}),(0,I.jsx)(rt,{})]})})});it.displayName=_e.displayName;var at=M.forwardRef(({className:e,...t},n)=>(0,I.jsx)(je,{ref:n,className:f(`px-2 py-1.5 text-sm font-semibold`,e),...t}));at.displayName=je.displayName;var ot=M.forwardRef(({className:e,children:t,...n},r)=>(0,I.jsxs)(Fe,{ref:r,className:f(`relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),title:typeof t==`string`?t:void 0,...n,children:[(0,I.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,I.jsx)(Re,{children:(0,I.jsx)(k,{className:`h-4 w-4`})})}),(0,I.jsx)(Ie,{children:(0,I.jsx)(`span`,{className:`block truncate`,children:t})})]}));ot.displayName=Fe.displayName;var st=M.forwardRef(({className:e,...t},n)=>(0,I.jsx)(We,{ref:n,className:f(`-mx-1 my-1 h-px bg-muted`,e),...t}));st.displayName=We.displayName;var ct=M.forwardRef(({className:e,children:t,...n},r)=>(0,I.jsx)(`select`,{ref:r,className:f(`flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,e),...n,children:t}));ct.displayName=`NativeSelect`;export{tt as a,ot as i,it as n,et as o,$e as r,Qe as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,l as r}from"./floating-layer-BcTp2AMB.js";import{t as i}from"./bot-CuDPD_ZU.js";import{t as a}from"./trash-2-BIJVpWxv.js";import{t as o}from"./copy-5fb4qj-_.js";import{t as s}from"./key-round-oSqmVdkQ.js";import{t as c}from"./plus-D7PHzena.js";import{t as l}from"./save-BkkrgP5Q.js";import{t as u}from"./square-pen-ZvVEwkzw.js";import{t as d}from"./triangle-alert-yljVpQCM.js";import{t as f}from"./x-c-gfVPJa.js";import{o as p}from"./dist-DPxQeZn3.js";import{t as m}from"./textarea-C2w7TG3h.js";import{i as h,t as g}from"./json-editor--WP9_q0O.js";import{a as _,c as v,i as y,o as b,r as x,s as S,t as C}from"./empty-BUKxdeYB.js";import{E as ee,I as w,J as te,N as T,R as E,d as D,z as O}from"./hooks-DOvU3a-p.js";import{a as k,i as ne,n as re,o as ie,t as ae}from"./select-CNvBRk3J.js";import{t as A}from"./badge-CdW_Z0lB.js";import{a as oe,i as j,n as se,r as ce,t as M}from"./card-BYbadRar.js";import{a as N,i as P,n as F,o as I,r as L,t as R}from"./table-RI-lM4fw.js";import{B as z,Dt as B,G as V,H,U,V as W,W as G,at as K,bt as le,d as ue,et as q,i as de,l as J,nt as Y,o as fe,r as pe,xt as me}from"./index-D_weBQAa.js";var X=e(t(),1),Z=n();function Q({icon:e,title:t,description:n,action:i,bodyClassName:a,children:o}){return(0,Z.jsxs)(M,{children:[(0,Z.jsxs)(j,{className:r(`flex-col items-start gap-2`,i&&`sm:flex-row sm:items-center sm:justify-between`),children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5`,children:[(0,Z.jsxs)(oe,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(e,{className:`size-5`}),t]}),n?(0,Z.jsx)(ce,{children:n}):null]}),i]}),(0,Z.jsx)(se,{className:r(`min-w-0`,a),children:o})]})}function he({children:e}){return(0,Z.jsx)(`div`,{className:`-mx-6 overflow-x-auto sm:mx-0`,children:e})}function ge({icon:e,title:t,description:n}){return(0,Z.jsx)(C,{className:`border-0`,children:(0,Z.jsxs)(y,{children:[(0,Z.jsx)(_,{children:(0,Z.jsx)(e,{})}),(0,Z.jsx)(b,{children:t}),n?(0,Z.jsx)(x,{children:n}):null]})})}function _e({isLoading:e,error:t,isEmpty:n,loadingLabel:r,empty:i,children:a}){return e?(0,Z.jsx)(`div`,{className:`py-8 text-center text-sm text-muted-foreground`,children:r}):t?(0,Z.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,Z.jsx)(ge,{...i}):(0,Z.jsx)(Z.Fragment,{children:a})}function ve(){let e=w(),t=J(),{t:n}=T(),r=O({queryKey:[`modern-admin`,`ai-assistant`,`settings`],queryFn:()=>e.getAiAssistantSettings()}),[a,o]=X.useState({enabled:!0,model:`google/gemini-3.1-flash-lite-preview`,apiKey:``,systemPrompt:``});X.useEffect(()=>{r.data&&o({enabled:r.data.enabled,model:r.data.model,apiKey:``,systemPrompt:r.data.systemPrompt})},[r.data]);let c=E({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,Z.jsx)(`div`,{className:`py-8 text-sm text-muted-foreground`,children:n(`common:loading`)});if(r.error)return(0,Z.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,Z.jsx)(`div`,{className:`flex flex-col gap-4`,children:(0,Z.jsxs)(Q,{icon:i,title:n(`aiAssistant:settings.title`),description:n(`aiAssistant:settings.description`),bodyClassName:`space-y-4`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsx)(A,{variant:u.enabled?`secondary`:`outline`,children:u.enabled?n(`aiAssistant:settings.enabled`):n(`aiAssistant:settings.disabled`)}),(0,Z.jsx)(A,{variant:u.configured?`secondary`:`outline`,children:u.configured?n(`aiAssistant:settings.configured`):n(`aiAssistant:settings.apiKeyRequired`)}),(0,Z.jsx)(A,{variant:`outline`,children:n(`aiAssistant:settings.readOnly`)}),(0,Z.jsx)(A,{variant:`outline`,children:n(`aiAssistant:settings.provider`,{provider:u.provider})})]}),(0,Z.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between rounded-lg border border-border p-3`,children:[(0,Z.jsxs)(`div`,{className:`space-y-1`,children:[(0,Z.jsx)(q,{htmlFor:`ai-assistant-enabled`,children:n(`aiAssistant:settings.enableLabel`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`aiAssistant:settings.enableHint`)})]}),(0,Z.jsx)(v,{id:`ai-assistant-enabled`,checked:a.enabled,disabled:!u.canManage||c.isPending,onCheckedChange:e=>o(t=>({...t,enabled:e}))})]}),(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsx)(q,{htmlFor:`ai-assistant-model`,children:n(`aiAssistant:settings.modelLabel`)}),(0,Z.jsx)(Y,{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,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsxs)(q,{htmlFor:`ai-assistant-api-key`,className:`flex items-center gap-2`,children:[(0,Z.jsx)(s,{className:`size-4`}),n(`aiAssistant:settings.apiKeyLabel`)]}),(0,Z.jsx)(Y,{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,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`aiAssistant:settings.apiKeyHint`)})]}),(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsx)(q,{htmlFor:`ai-assistant-system-prompt`,children:n(`aiAssistant:settings.systemPromptLabel`)}),(0,Z.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,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-lg border border-border p-3 text-sm`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`div`,{className:`font-medium`,children:n(`aiAssistant:settings.accessTitle`)}),(0,Z.jsx)(`div`,{className:`text-muted-foreground`,children:n(`aiAssistant:settings.accessDescription`)})]}),(0,Z.jsx)(A,{variant:`outline`,children:n(`aiAssistant:settings.futureToolsReady`)})]}),(0,Z.jsx)(`div`,{className:`flex justify-end`,children:(0,Z.jsxs)(p,{onClick:()=>c.mutate(),disabled:!u.canManage||c.isPending||!a.model.trim(),children:[(0,Z.jsx)(l,{className:`size-4`}),c.isPending?n(`aiAssistant:settings.saving`):n(`aiAssistant:settings.save`)]})})]})}):(0,Z.jsx)(`div`,{className:`py-8 text-sm text-muted-foreground`,children:n(`aiAssistant:settings.empty`)})}var $=[`modern-admin`,`api-keys`],ye=[`modern-admin`,`webhooks`],be=[{key:`api-keys`,labelKey:`settings:apiKeys.title`,icon:s},{key:`webhooks`,labelKey:`settings:webhooks.title`,icon:K},{key:`ai-assistant`,labelKey:`aiAssistant:title`,icon:i}];function xe({section:e}){let{t}=T(),n=fe(),i=D(),a=X.useMemo(()=>[...be.filter(e=>e.key===`api-keys`?i.apiKeys:e.key===`webhooks`?i.webhooks:e.key!==`ai-assistant`||i.aiAssistant),...ue().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,Z.jsx)(`div`,{className:`rounded-md border border-dashed bg-card p-8 text-center text-sm text-muted-foreground`,children:t(`settings:noSectionsConfigured`)}):(0,Z.jsxs)(`div`,{className:`flex flex-col gap-4 lg:grid lg:grid-cols-[14rem_minmax(0,1fr)]`,children:[(0,Z.jsx)(`div`,{className:`lg:hidden`,children:(0,Z.jsxs)(ae,{value:l??``,onValueChange:e=>n({name:`settings`,section:e}),children:[(0,Z.jsx)(k,{className:`w-full`,children:(0,Z.jsx)(ie,{})}),(0,Z.jsx)(re,{children:a.map(({key:e,labelKey:n,icon:r})=>(0,Z.jsx)(ne,{value:e,children:(0,Z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(r,{className:`size-4`}),(0,Z.jsx)(`span`,{children:t(n)})]})},e))})]})}),(0,Z.jsx)(`aside`,{className:`hidden lg:block`,children:(0,Z.jsx)(`nav`,{className:`flex flex-col gap-1`,children:a.map(({key:e,labelKey:n,icon:i})=>(0,Z.jsxs)(de,{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,Z.jsx)(i,{className:`size-4`}),(0,Z.jsx)(`span`,{children:t(n)})]},e))})}),(0,Z.jsxs)(`section`,{className:`min-w-0`,children:[l&&s(l)&&l===`api-keys`&&(0,Z.jsx)(Se,{}),l&&s(l)&&l===`webhooks`&&(0,Z.jsx)(ke,{}),l&&s(l)&&l===`ai-assistant`&&(0,Z.jsx)(ve,{}),l&&!s(l)&&(()=>{let e=ue().find(e=>e.key===l);return e?(0,Z.jsx)(e.component,{}):null})()]})]})}function Se(){let{t:e,locale:t}=T(),n=w(),r=te(),i=J(),o=pe(),l=ee(),[d,f]=X.useState(!1),[m,h]=X.useState(null),[g,_]=X.useState(null),y=O({queryKey:$,queryFn:()=>n.listApiKeys()}),b=E({mutationFn:e=>n.deleteApiKey(e),onSuccess:()=>{r.invalidateQueries({queryKey:$}),i.success({key:`settings:apiKeys.notice.revoked`})},onError:e=>i.error({message:e instanceof Error?e.message:String(e)})}),x=E({mutationFn:e=>n.updateApiKey(e.id,{enabled:e.enabled}),onSuccess:()=>r.invalidateQueries({queryKey:$}),onError:e=>i.error({message:e instanceof Error?e.message:String(e)})}),S=()=>{h(null),f(!0)},C=e=>{h(e),f(!0)},D=async t=>{await o.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})&&b.mutate(t.id)},k=y.data?.keys??[];return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Z.jsx)(Q,{icon:s,title:e(`settings:apiKeys.title`),description:e(`settings:apiKeys.description`),action:(0,Z.jsxs)(p,{onClick:S,size:`sm`,children:[(0,Z.jsx)(c,{className:`size-4`}),(0,Z.jsx)(`span`,{children:e(`settings:apiKeys.actions.create`)})]}),children:(0,Z.jsx)(_e,{isLoading:y.isLoading,error:y.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,Z.jsx)(he,{children:(0,Z.jsxs)(R,{children:[(0,Z.jsx)(N,{children:(0,Z.jsxs)(I,{children:[(0,Z.jsx)(P,{children:e(`settings:apiKeys.columns.name`)}),(0,Z.jsx)(P,{className:`hidden sm:table-cell`,children:e(`settings:apiKeys.columns.start`)}),(0,Z.jsx)(P,{className:`hidden md:table-cell`,children:e(`settings:apiKeys.columns.permissions`)}),(0,Z.jsx)(P,{className:`hidden md:table-cell`,children:e(`settings:apiKeys.columns.expiresAt`)}),(0,Z.jsx)(P,{children:e(`settings:apiKeys.columns.enabled`)}),(0,Z.jsx)(P,{className:`text-right`,children:e(`settings:apiKeys.columns.actions`)})]})}),(0,Z.jsx)(F,{children:k.map(n=>(0,Z.jsxs)(I,{children:[(0,Z.jsx)(L,{className:`font-medium`,children:(0,Z.jsxs)(`div`,{className:`flex flex-col`,children:[(0,Z.jsx)(`span`,{children:n.name??n.id}),n.lastRequest&&(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e(`settings:apiKeys.lastUsed`,{date:Fe(n.lastRequest,t)})})]})}),(0,Z.jsx)(L,{className:`hidden font-mono text-xs sm:table-cell`,children:n.start?`${n.start}…`:`—`}),(0,Z.jsx)(L,{className:`hidden md:table-cell`,children:(0,Z.jsx)(Ee,{permissions:n.permissions})}),(0,Z.jsx)(L,{className:`hidden md:table-cell text-xs`,children:n.expiresAt?Fe(n.expiresAt,t):e(`settings:apiKeys.expiresNever`)}),(0,Z.jsx)(L,{children:(0,Z.jsx)(v,{checked:n.enabled,onCheckedChange:e=>x.mutate({id:n.id,enabled:e}),"aria-label":e(`settings:apiKeys.columns.enabled`)})}),(0,Z.jsx)(L,{className:`text-right`,children:(0,Z.jsxs)(`div`,{className:`inline-flex gap-1`,children:[(0,Z.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>C(n),"aria-label":e(`settings:apiKeys.actions.edit`),children:(0,Z.jsx)(u,{className:`size-4`})}),(0,Z.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>D(n),"aria-label":e(`settings:apiKeys.actions.revoke`),disabled:b.isPending,children:(0,Z.jsx)(a,{className:`size-4 text-destructive`})})]})})]},n.id))})]})})})}),(0,Z.jsx)(De,{open:d,onOpenChange:f,editing:m,resources:l,onCreated:e=>{f(!1),_(e),r.invalidateQueries({queryKey:$})},onUpdated:()=>{f(!1),r.invalidateQueries({queryKey:$})}},m?.id??`new`),(0,Z.jsx)(Pe,{secret:g,onClose:()=>_(null)})]})}var Ce=e=>({byResource:Object.fromEntries(Object.entries(e).map(([e,t])=>[e,new Set(t)]))}),we=e=>{let t={};for(let[n,r]of Object.entries(e.byResource))r.size!==0&&(t[n]=Array.from(r));return t};function Te({resources:e,state:t,onChange:n}){let{t:i}=T(),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=X.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,Z.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:i(`settings:apiKeys.permissions.noResources`)}):(0,Z.jsxs)(`div`,{className:`rounded-md border border-border`,children:[s.length>0&&(0,Z.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,Z.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,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(f,{className:`mr-1.5 size-3.5`}),i(`settings:apiKeys.permissions.clearAllResources`)]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(B,{className:`mr-1.5 size-3.5`}),i(`settings:apiKeys.permissions.selectAllResources`)]})})}),(0,Z.jsx)(`div`,{className:`max-h-[24rem] overflow-y-auto`,children:(0,Z.jsxs)(R,{children:[(0,Z.jsx)(N,{className:`sticky top-0 bg-card`,children:(0,Z.jsxs)(I,{children:[(0,Z.jsx)(P,{className:`w-[14rem]`,children:i(`settings:apiKeys.permissions.resource`)}),(0,Z.jsx)(P,{children:i(`settings:apiKeys.permissions.actions`)})]})}),(0,Z.jsx)(F,{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,Z.jsxs)(I,{children:[(0,Z.jsx)(L,{className:`align-top`,children:(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`span`,{className:`font-medium`,children:e.name}),(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.id}),(0,Z.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,Z.jsx)(f,{className:`size-3`}):(0,Z.jsx)(B,{className:`size-3`}),i(c?`settings:apiKeys.permissions.clearAll`:`settings:apiKeys.permissions.selectAll`)]})]})}),(0,Z.jsx)(L,{children:(0,Z.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:n.map(t=>{let n=s.has(t);return(0,Z.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,Z.jsx)(h,{checked:n,onCheckedChange:()=>a(e.id,t),className:`size-3.5`}),(0,Z.jsx)(`span`,{children:t})]},t)})})})]},e.id)})})]})})]})}function Ee({permissions:e}){let{t}=T(),n=Object.entries(e);if(n.length===0)return(0,Z.jsx)(A,{variant:`outline`,children:t(`settings:apiKeys.permissions.none`)});let r=n.reduce((e,[,t])=>e+t.length,0);return(0,Z.jsx)(A,{variant:`secondary`,children:t(`settings:apiKeys.permissions.summary`,{resources:n.length,actions:r})})}function De({open:e,onOpenChange:t,editing:n,resources:r,onCreated:i,onUpdated:a}){let{t:o}=T(),s=w(),c=J(),l=!!n,[u,d]=X.useState(n?.name??``),[f,m]=X.useState(()=>{if(!n?.expiresAt)return``;let e=new Date(n.expiresAt).getTime()-Date.now();return e>0?String(Math.max(1,Math.round(e/864e5))):``}),[h,g]=X.useState(()=>Ce(n?.permissions??{})),_=E({mutationFn:async()=>{let e=we(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)})});X.useEffect(()=>{if(e){if(d(n?.name??``),g(Ce(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/864e5))):``)}}},[e,n]);let v=Object.values(h.byResource).reduce((e,t)=>e+(t?.size??0),0);return(0,Z.jsx)(z,{open:e,onOpenChange:t,children:(0,Z.jsxs)(W,{closeLabel:o(`common:close`),className:`max-w-3xl`,children:[(0,Z.jsxs)(G,{children:[(0,Z.jsx)(V,{children:o(l?`settings:apiKeys.editor.titleEdit`:`settings:apiKeys.editor.titleCreate`)}),(0,Z.jsx)(H,{children:o(`settings:apiKeys.editor.description`)})]}),(0,Z.jsxs)(`form`,{className:`flex flex-col gap-4`,onSubmit:e=>{e.preventDefault(),u.trim()&&_.mutate()},children:[(0,Z.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Z.jsx)(q,{htmlFor:`api-key-name`,children:o(`settings:apiKeys.editor.name`)}),(0,Z.jsx)(Y,{id:`api-key-name`,value:u,onChange:e=>d(e.target.value),placeholder:o(`settings:apiKeys.editor.namePlaceholder`),required:!0,maxLength:64})]}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Z.jsx)(q,{htmlFor:`api-key-expires`,children:o(`settings:apiKeys.editor.expiresInDays`)}),(0,Z.jsx)(Y,{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,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:o(`settings:apiKeys.editor.expiresHint`)})]})]}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(q,{children:o(`settings:apiKeys.editor.permissions`)}),(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:o(`settings:apiKeys.editor.selectedActions`,{count:v})})]}),(0,Z.jsx)(Te,{resources:r,state:h,onChange:g})]}),(0,Z.jsxs)(U,{children:[(0,Z.jsx)(p,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:o(`common:cancel`)}),(0,Z.jsx)(p,{type:`submit`,disabled:_.isPending||!u.trim()||v===0,children:_.isPending?o(`common:saving`):o(l?`common:save`:`settings:apiKeys.actions.create`)})]})]})]})})}var Oe=[`record.created`,`record.updated`,`record.deleted`,`*`];function ke(){let{t:e,locale:t}=T(),n=w(),r=te(),i=J(),o=pe(),s=ee(),[l,d]=X.useState(!1),[f,m]=X.useState(null),[h,g]=X.useState(null),_=O({queryKey:ye,queryFn:()=>n.listWebhooks()}),v=O({queryKey:[`modern-admin`,`webhooks`,h,`deliveries`],queryFn:()=>n.listWebhookDeliveries(h),enabled:!!h}),y=E({mutationFn:e=>n.deleteWebhook(e),onSuccess:()=>{r.invalidateQueries({queryKey:ye}),i.success({key:`settings:webhooks.notice.deleted`})},onError:e=>i.error({message:e instanceof Error?e.message:String(e)})}),b=E({mutationFn:e=>n.testWebhook(e),onSuccess:()=>{h&&r.invalidateQueries({queryKey:[`modern-admin`,`webhooks`,h,`deliveries`]}),i.success({key:`settings:webhooks.notice.testQueued`})},onError:e=>i.error({message:e instanceof Error?e.message:String(e)})}),x=_.data?.webhooks??[],S=async t=>{await o.confirm({title:e(`settings:webhooks.confirmDelete.title`),description:e(`settings:webhooks.confirmDelete.description`,{name:t.name}),confirmLabel:e(`common:delete`),destructive:!0})&&y.mutate(t.id)};return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Z.jsx)(Q,{icon:K,title:e(`settings:webhooks.title`),description:e(`settings:webhooks.description`),action:(0,Z.jsxs)(p,{size:`sm`,onClick:()=>{m(null),d(!0)},children:[(0,Z.jsx)(c,{className:`size-4`}),e(`settings:webhooks.actions.create`)]}),children:(0,Z.jsx)(_e,{isLoading:_.isLoading,error:_.error,isEmpty:x.length===0,loadingLabel:e(`common:loading`),empty:{icon:K,title:e(`settings:webhooks.empty.title`),description:e(`settings:webhooks.empty.description`)},children:(0,Z.jsx)(he,{children:(0,Z.jsxs)(R,{children:[(0,Z.jsx)(N,{children:(0,Z.jsxs)(I,{children:[(0,Z.jsx)(P,{children:e(`settings:webhooks.columns.name`)}),(0,Z.jsx)(P,{children:e(`settings:webhooks.columns.resource`)}),(0,Z.jsx)(P,{children:e(`settings:webhooks.columns.events`)}),(0,Z.jsx)(P,{children:e(`settings:webhooks.columns.enabled`)}),(0,Z.jsx)(P,{className:`text-right`,children:e(`settings:webhooks.columns.actions`)})]})}),(0,Z.jsx)(F,{children:x.map(t=>(0,Z.jsxs)(I,{children:[(0,Z.jsxs)(L,{children:[(0,Z.jsx)(`button`,{type:`button`,className:`text-left font-medium hover:underline`,onClick:()=>g(t.id),children:t.name}),(0,Z.jsx)(`div`,{className:`max-w-xs truncate text-xs text-muted-foreground`,children:t.url})]}),(0,Z.jsx)(L,{children:je(s,t.resourceId,e(`settings:webhooks.editor.allResources`))}),(0,Z.jsx)(L,{className:`max-w-xs`,children:(0,Z.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:t.events.map(e=>(0,Z.jsx)(A,{variant:`outline`,children:e},e))})}),(0,Z.jsx)(L,{children:t.enabled?e(`common:yes`):e(`common:no`)}),(0,Z.jsx)(L,{className:`text-right`,children:(0,Z.jsxs)(`div`,{className:`inline-flex gap-1`,children:[(0,Z.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>b.mutate(t.id),children:e(`settings:webhooks.actions.test`)}),(0,Z.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>{m(t),d(!0)},children:(0,Z.jsx)(u,{className:`size-4`})}),(0,Z.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>void S(t),children:(0,Z.jsx)(a,{className:`size-4 text-destructive`})})]})})]},t.id))})]})})})}),h&&(0,Z.jsx)(Q,{icon:K,title:e(`settings:webhooks.deliveries.title`),children:v.isLoading?(0,Z.jsx)(`div`,{className:`py-4 text-sm text-muted-foreground`,children:e(`common:loading`)}):(0,Z.jsx)(he,{children:(0,Z.jsxs)(R,{children:[(0,Z.jsx)(N,{children:(0,Z.jsxs)(I,{children:[(0,Z.jsx)(P,{children:e(`settings:webhooks.deliveries.status`)}),(0,Z.jsx)(P,{children:e(`settings:webhooks.deliveries.event`)}),(0,Z.jsx)(P,{children:e(`settings:webhooks.deliveries.attempt`)}),(0,Z.jsx)(P,{children:e(`settings:webhooks.deliveries.response`)}),(0,Z.jsx)(P,{children:e(`settings:webhooks.deliveries.createdAt`)})]})}),(0,Z.jsx)(F,{children:(v.data?.deliveries??[]).map(e=>(0,Z.jsxs)(I,{children:[(0,Z.jsx)(L,{children:e.status}),(0,Z.jsx)(L,{children:e.event}),(0,Z.jsx)(L,{children:e.attempt}),(0,Z.jsx)(L,{className:`max-w-sm truncate`,children:e.responseStatus??e.error??e.responseBody??`—`}),(0,Z.jsx)(L,{children:Fe(e.createdAt,t)})]},e.id))})]})})}),(0,Z.jsx)(Ae,{open:l,onOpenChange:d,webhook:f,resources:s},f?.id??`new`)]})}function Ae({open:e,onOpenChange:t,webhook:n,resources:r}){let{t:i}=T(),a=w(),o=te(),s=J(),[c,l]=X.useState(n?.name??``),[u,d]=X.useState(n?.url??``),[f,m]=X.useState(n?.resourceId??``),[_,y]=X.useState(n?.enabled??!0),[b,x]=X.useState(n?.secret??``),[C,ee]=X.useState(n?.events??[`record.created`,`record.updated`]),[D,O]=X.useState(n?.headers??{}),[A,oe]=X.useState(n?.filters??{}),[j,se]=X.useState(n?.payloadFields??[]),ce=r.find(e=>e.id===f),M=E({mutationFn:e=>n?a.updateWebhook(n.id,e):a.createWebhook(e),onSuccess:()=>{o.invalidateQueries({queryKey:ye}),s.success({key:`settings:webhooks.notice.saved`}),t(!1)},onError:e=>s.error({message:e instanceof Error?e.message:String(e)})}),N=e=>{ee(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])};return(0,Z.jsx)(z,{open:e,onOpenChange:t,children:(0,Z.jsxs)(W,{closeLabel:i(`common:close`),className:`max-w-3xl`,children:[(0,Z.jsxs)(G,{children:[(0,Z.jsx)(V,{children:i(n?`settings:webhooks.editor.titleEdit`:`settings:webhooks.editor.titleCreate`)}),(0,Z.jsx)(H,{children:i(`settings:webhooks.editor.description`)})]}),(0,Z.jsxs)(`form`,{className:`space-y-4`,onSubmit:e=>{e.preventDefault(),M.mutate({name:c.trim(),url:u.trim(),events:C,resourceId:f||null,enabled:_,...b.trim()?{secret:b.trim()}:{},headers:Ne(D),filters:Ne(A),payloadFields:j})},children:[(0,Z.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsx)(q,{children:i(`settings:webhooks.editor.name`)}),(0,Z.jsx)(Y,{value:c,onChange:e=>l(e.target.value),required:!0})]}),(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsx)(q,{children:i(`settings:webhooks.editor.url`)}),(0,Z.jsx)(Y,{value:u,onChange:e=>d(e.target.value),required:!0,type:`url`})]}),(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsx)(q,{children:i(`settings:webhooks.editor.resource`)}),(0,Z.jsxs)(ae,{value:f||`__all__`,onValueChange:e=>{m(e===`__all__`?``:e),se([])},children:[(0,Z.jsx)(k,{children:(0,Z.jsx)(ie,{})}),(0,Z.jsxs)(re,{children:[(0,Z.jsx)(ne,{value:`__all__`,children:i(`settings:webhooks.editor.allResources`)}),r.map(e=>(0,Z.jsxs)(ne,{value:e.id,children:[e.name,e.name!==e.id&&(0,Z.jsxs)(`span`,{className:`ml-1.5 text-xs text-muted-foreground`,children:[`(`,e.id,`)`]})]},e.id))]})]})]}),(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsx)(q,{children:i(`settings:webhooks.editor.secret`)}),(0,Z.jsx)(S,{content:i(`settings:webhooks.editor.secretHint`),ariaLabel:i(`settings:webhooks.editor.secret`),side:`right`})]}),(0,Z.jsx)(Y,{value:b,onChange:e=>x(e.target.value),type:`password`})]})]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(v,{checked:_,onCheckedChange:y}),(0,Z.jsx)(q,{children:i(`settings:webhooks.editor.enabled`)})]}),(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsx)(q,{children:i(`settings:webhooks.editor.events`)}),(0,Z.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:Oe.map(e=>(0,Z.jsxs)(`label`,{className:`flex items-center gap-2 rounded-md border border-border px-3 py-2 text-sm`,children:[(0,Z.jsx)(h,{checked:C.includes(e),onCheckedChange:()=>N(e)}),e]},e))})]}),ce&&(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsx)(q,{children:i(`settings:webhooks.editor.payloadFields`)}),(0,Z.jsx)(S,{content:i(`settings:webhooks.editor.payloadFieldsHint`),ariaLabel:i(`settings:webhooks.editor.payloadFields`),side:`right`})]}),(0,Z.jsx)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:ce.properties.map(e=>(0,Z.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,Z.jsx)(h,{checked:j.includes(e.path),onCheckedChange:()=>se(t=>t.includes(e.path)?t.filter(t=>t!==e.path):[...t,e.path])}),e.label]},e.path))})]}),(0,Z.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsx)(q,{children:i(`settings:webhooks.editor.headers`)}),(0,Z.jsx)(S,{content:i(`settings:webhooks.editor.headersHint`),ariaLabel:i(`settings:webhooks.editor.headers`),side:`top`})]}),(0,Z.jsx)(g,{value:D,onChange:e=>O(Me(e))})]}),(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsx)(q,{children:i(`settings:webhooks.editor.filters`)}),(0,Z.jsx)(S,{content:i(`settings:webhooks.editor.filtersHint`),ariaLabel:i(`settings:webhooks.editor.filters`),side:`top`})]}),(0,Z.jsx)(g,{value:A,onChange:e=>oe(Me(e))})]})]}),(0,Z.jsxs)(U,{children:[(0,Z.jsx)(p,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:i(`common:cancel`)}),(0,Z.jsx)(p,{type:`submit`,disabled:M.isPending||!c.trim()||!u.trim()||C.length===0,children:M.isPending?i(`common:saving`):i(`common:save`)})]})]})]})})}var je=(e,t,n)=>t?e.find(e=>e.id===t)?.name??t:n,Me=e=>e&&typeof e==`object`&&!Array.isArray(e)?e:{},Ne=e=>{let t={};for(let[n,r]of Object.entries(e))r!=null&&r!==``&&(t[n]=String(r));return t};function Pe({secret:e,onClose:t}){let{t:n}=T(),r=J(),[i,a]=X.useState(!1),[s,c]=X.useState(!1);return X.useEffect(()=>{e||(a(!1),c(!1))},[e]),(0,Z.jsx)(z,{open:!!e,onOpenChange:e=>!e&&t(),children:(0,Z.jsxs)(W,{closeLabel:n(`common:close`),className:`max-w-lg`,children:[(0,Z.jsxs)(G,{children:[(0,Z.jsxs)(V,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(K,{className:`size-5`}),n(`settings:apiKeys.created.title`)]}),(0,Z.jsx)(H,{children:n(`settings:apiKeys.created.description`)})]}),(0,Z.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,Z.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,Z.jsx)(d,{className:`mt-0.5 size-4`}),(0,Z.jsx)(`p`,{children:n(`settings:apiKeys.created.warning`)})]})}),(0,Z.jsxs)(`div`,{className:`flex items-stretch gap-2`,children:[(0,Z.jsxs)(`div`,{className:`relative flex-1`,children:[(0,Z.jsx)(Y,{readOnly:!0,type:i?`text`:`password`,value:e?.key??``,className:`pr-10 font-mono text-xs`,onFocus:e=>e.currentTarget.select()}),(0,Z.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,Z.jsx)(me,{className:`size-4`}):(0,Z.jsx)(le,{className:`size-4`})})]}),(0,Z.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,Z.jsx)(B,{className:`size-4`}):(0,Z.jsx)(o,{className:`size-4`}),(0,Z.jsx)(`span`,{className:`hidden sm:inline`,children:n(s?`settings:apiKeys.created.copied`:`settings:apiKeys.created.copy`)})]})]}),(0,Z.jsx)(U,{children:(0,Z.jsx)(p,{onClick:t,children:n(`common:done`)})})]})})}var Fe=(e,t)=>{try{return new Date(e).toLocaleString(t)}catch{return String(e)}};export{xe as SettingsPage};
|
|
1
|
+
import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,l as r}from"./floating-layer-BcTp2AMB.js";import{t as i}from"./bot-CuDPD_ZU.js";import{t as a}from"./trash-2-BIJVpWxv.js";import{t as o}from"./copy-5fb4qj-_.js";import{t as s}from"./key-round-oSqmVdkQ.js";import{t as c}from"./plus-D7PHzena.js";import{t as l}from"./save-BkkrgP5Q.js";import{t as u}from"./square-pen-ZvVEwkzw.js";import{t as d}from"./triangle-alert-yljVpQCM.js";import{t as f}from"./x-c-gfVPJa.js";import{o as p}from"./dist-DPxQeZn3.js";import{t as m}from"./textarea-C2w7TG3h.js";import{i as h,t as g}from"./json-editor-TAtTB6fV.js";import{a as _,c as v,i as y,o as b,r as x,s as S,t as C}from"./empty-BR6YtCo2.js";import{E as ee,I as w,J as te,N as T,R as E,d as D,z as O}from"./hooks-Djo7VZHf.js";import{a as k,i as ne,n as re,o as ie,t as ae}from"./select-Bs49X1wg.js";import{t as A}from"./badge-CdW_Z0lB.js";import{a as oe,i as j,n as se,r as ce,t as M}from"./card-BYbadRar.js";import{a as N,i as P,n as F,o as I,r as L,t as R}from"./table-RI-lM4fw.js";import{B as z,Dt as B,G as V,H,U,V as W,W as G,at as K,bt as le,d as ue,et as q,i as de,l as J,nt as Y,o as fe,r as pe,xt as me}from"./index-SG_6EpY3.js";var X=e(t(),1),Z=n();function Q({icon:e,title:t,description:n,action:i,bodyClassName:a,children:o}){return(0,Z.jsxs)(M,{children:[(0,Z.jsxs)(j,{className:r(`flex-col items-start gap-2`,i&&`sm:flex-row sm:items-center sm:justify-between`),children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5`,children:[(0,Z.jsxs)(oe,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(e,{className:`size-5`}),t]}),n?(0,Z.jsx)(ce,{children:n}):null]}),i]}),(0,Z.jsx)(se,{className:r(`min-w-0`,a),children:o})]})}function he({children:e}){return(0,Z.jsx)(`div`,{className:`-mx-6 overflow-x-auto sm:mx-0`,children:e})}function ge({icon:e,title:t,description:n}){return(0,Z.jsx)(C,{className:`border-0`,children:(0,Z.jsxs)(y,{children:[(0,Z.jsx)(_,{children:(0,Z.jsx)(e,{})}),(0,Z.jsx)(b,{children:t}),n?(0,Z.jsx)(x,{children:n}):null]})})}function _e({isLoading:e,error:t,isEmpty:n,loadingLabel:r,empty:i,children:a}){return e?(0,Z.jsx)(`div`,{className:`py-8 text-center text-sm text-muted-foreground`,children:r}):t?(0,Z.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,Z.jsx)(ge,{...i}):(0,Z.jsx)(Z.Fragment,{children:a})}function ve(){let e=w(),t=J(),{t:n}=T(),r=O({queryKey:[`modern-admin`,`ai-assistant`,`settings`],queryFn:()=>e.getAiAssistantSettings()}),[a,o]=X.useState({enabled:!0,model:`google/gemini-3.1-flash-lite-preview`,apiKey:``,systemPrompt:``});X.useEffect(()=>{r.data&&o({enabled:r.data.enabled,model:r.data.model,apiKey:``,systemPrompt:r.data.systemPrompt})},[r.data]);let c=E({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,Z.jsx)(`div`,{className:`py-8 text-sm text-muted-foreground`,children:n(`common:loading`)});if(r.error)return(0,Z.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,Z.jsx)(`div`,{className:`flex flex-col gap-4`,children:(0,Z.jsxs)(Q,{icon:i,title:n(`aiAssistant:settings.title`),description:n(`aiAssistant:settings.description`),bodyClassName:`space-y-4`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsx)(A,{variant:u.enabled?`secondary`:`outline`,children:u.enabled?n(`aiAssistant:settings.enabled`):n(`aiAssistant:settings.disabled`)}),(0,Z.jsx)(A,{variant:u.configured?`secondary`:`outline`,children:u.configured?n(`aiAssistant:settings.configured`):n(`aiAssistant:settings.apiKeyRequired`)}),(0,Z.jsx)(A,{variant:`outline`,children:n(`aiAssistant:settings.readOnly`)}),(0,Z.jsx)(A,{variant:`outline`,children:n(`aiAssistant:settings.provider`,{provider:u.provider})})]}),(0,Z.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between rounded-lg border border-border p-3`,children:[(0,Z.jsxs)(`div`,{className:`space-y-1`,children:[(0,Z.jsx)(q,{htmlFor:`ai-assistant-enabled`,children:n(`aiAssistant:settings.enableLabel`)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`aiAssistant:settings.enableHint`)})]}),(0,Z.jsx)(v,{id:`ai-assistant-enabled`,checked:a.enabled,disabled:!u.canManage||c.isPending,onCheckedChange:e=>o(t=>({...t,enabled:e}))})]}),(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsx)(q,{htmlFor:`ai-assistant-model`,children:n(`aiAssistant:settings.modelLabel`)}),(0,Z.jsx)(Y,{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,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsxs)(q,{htmlFor:`ai-assistant-api-key`,className:`flex items-center gap-2`,children:[(0,Z.jsx)(s,{className:`size-4`}),n(`aiAssistant:settings.apiKeyLabel`)]}),(0,Z.jsx)(Y,{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,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`aiAssistant:settings.apiKeyHint`)})]}),(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsx)(q,{htmlFor:`ai-assistant-system-prompt`,children:n(`aiAssistant:settings.systemPromptLabel`)}),(0,Z.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,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-lg border border-border p-3 text-sm`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`div`,{className:`font-medium`,children:n(`aiAssistant:settings.accessTitle`)}),(0,Z.jsx)(`div`,{className:`text-muted-foreground`,children:n(`aiAssistant:settings.accessDescription`)})]}),(0,Z.jsx)(A,{variant:`outline`,children:n(`aiAssistant:settings.futureToolsReady`)})]}),(0,Z.jsx)(`div`,{className:`flex justify-end`,children:(0,Z.jsxs)(p,{onClick:()=>c.mutate(),disabled:!u.canManage||c.isPending||!a.model.trim(),children:[(0,Z.jsx)(l,{className:`size-4`}),c.isPending?n(`aiAssistant:settings.saving`):n(`aiAssistant:settings.save`)]})})]})}):(0,Z.jsx)(`div`,{className:`py-8 text-sm text-muted-foreground`,children:n(`aiAssistant:settings.empty`)})}var $=[`modern-admin`,`api-keys`],ye=[`modern-admin`,`webhooks`],be=[{key:`api-keys`,labelKey:`settings:apiKeys.title`,icon:s},{key:`webhooks`,labelKey:`settings:webhooks.title`,icon:K},{key:`ai-assistant`,labelKey:`aiAssistant:title`,icon:i}];function xe({section:e}){let{t}=T(),n=fe(),i=D(),a=X.useMemo(()=>[...be.filter(e=>e.key===`api-keys`?i.apiKeys:e.key===`webhooks`?i.webhooks:e.key!==`ai-assistant`||i.aiAssistant),...ue().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,Z.jsx)(`div`,{className:`rounded-md border border-dashed bg-card p-8 text-center text-sm text-muted-foreground`,children:t(`settings:noSectionsConfigured`)}):(0,Z.jsxs)(`div`,{className:`flex flex-col gap-4 lg:grid lg:grid-cols-[14rem_minmax(0,1fr)]`,children:[(0,Z.jsx)(`div`,{className:`lg:hidden`,children:(0,Z.jsxs)(ae,{value:l??``,onValueChange:e=>n({name:`settings`,section:e}),children:[(0,Z.jsx)(k,{className:`w-full`,children:(0,Z.jsx)(ie,{})}),(0,Z.jsx)(re,{children:a.map(({key:e,labelKey:n,icon:r})=>(0,Z.jsx)(ne,{value:e,children:(0,Z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(r,{className:`size-4`}),(0,Z.jsx)(`span`,{children:t(n)})]})},e))})]})}),(0,Z.jsx)(`aside`,{className:`hidden lg:block`,children:(0,Z.jsx)(`nav`,{className:`flex flex-col gap-1`,children:a.map(({key:e,labelKey:n,icon:i})=>(0,Z.jsxs)(de,{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,Z.jsx)(i,{className:`size-4`}),(0,Z.jsx)(`span`,{children:t(n)})]},e))})}),(0,Z.jsxs)(`section`,{className:`min-w-0`,children:[l&&s(l)&&l===`api-keys`&&(0,Z.jsx)(Se,{}),l&&s(l)&&l===`webhooks`&&(0,Z.jsx)(ke,{}),l&&s(l)&&l===`ai-assistant`&&(0,Z.jsx)(ve,{}),l&&!s(l)&&(()=>{let e=ue().find(e=>e.key===l);return e?(0,Z.jsx)(e.component,{}):null})()]})]})}function Se(){let{t:e,locale:t}=T(),n=w(),r=te(),i=J(),o=pe(),l=ee(),[d,f]=X.useState(!1),[m,h]=X.useState(null),[g,_]=X.useState(null),y=O({queryKey:$,queryFn:()=>n.listApiKeys()}),b=E({mutationFn:e=>n.deleteApiKey(e),onSuccess:()=>{r.invalidateQueries({queryKey:$}),i.success({key:`settings:apiKeys.notice.revoked`})},onError:e=>i.error({message:e instanceof Error?e.message:String(e)})}),x=E({mutationFn:e=>n.updateApiKey(e.id,{enabled:e.enabled}),onSuccess:()=>r.invalidateQueries({queryKey:$}),onError:e=>i.error({message:e instanceof Error?e.message:String(e)})}),S=()=>{h(null),f(!0)},C=e=>{h(e),f(!0)},D=async t=>{await o.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})&&b.mutate(t.id)},k=y.data?.keys??[];return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Z.jsx)(Q,{icon:s,title:e(`settings:apiKeys.title`),description:e(`settings:apiKeys.description`),action:(0,Z.jsxs)(p,{onClick:S,size:`sm`,children:[(0,Z.jsx)(c,{className:`size-4`}),(0,Z.jsx)(`span`,{children:e(`settings:apiKeys.actions.create`)})]}),children:(0,Z.jsx)(_e,{isLoading:y.isLoading,error:y.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,Z.jsx)(he,{children:(0,Z.jsxs)(R,{children:[(0,Z.jsx)(N,{children:(0,Z.jsxs)(I,{children:[(0,Z.jsx)(P,{children:e(`settings:apiKeys.columns.name`)}),(0,Z.jsx)(P,{className:`hidden sm:table-cell`,children:e(`settings:apiKeys.columns.start`)}),(0,Z.jsx)(P,{className:`hidden md:table-cell`,children:e(`settings:apiKeys.columns.permissions`)}),(0,Z.jsx)(P,{className:`hidden md:table-cell`,children:e(`settings:apiKeys.columns.expiresAt`)}),(0,Z.jsx)(P,{children:e(`settings:apiKeys.columns.enabled`)}),(0,Z.jsx)(P,{className:`text-right`,children:e(`settings:apiKeys.columns.actions`)})]})}),(0,Z.jsx)(F,{children:k.map(n=>(0,Z.jsxs)(I,{children:[(0,Z.jsx)(L,{className:`font-medium`,children:(0,Z.jsxs)(`div`,{className:`flex flex-col`,children:[(0,Z.jsx)(`span`,{children:n.name??n.id}),n.lastRequest&&(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e(`settings:apiKeys.lastUsed`,{date:Fe(n.lastRequest,t)})})]})}),(0,Z.jsx)(L,{className:`hidden font-mono text-xs sm:table-cell`,children:n.start?`${n.start}…`:`—`}),(0,Z.jsx)(L,{className:`hidden md:table-cell`,children:(0,Z.jsx)(Ee,{permissions:n.permissions})}),(0,Z.jsx)(L,{className:`hidden md:table-cell text-xs`,children:n.expiresAt?Fe(n.expiresAt,t):e(`settings:apiKeys.expiresNever`)}),(0,Z.jsx)(L,{children:(0,Z.jsx)(v,{checked:n.enabled,onCheckedChange:e=>x.mutate({id:n.id,enabled:e}),"aria-label":e(`settings:apiKeys.columns.enabled`)})}),(0,Z.jsx)(L,{className:`text-right`,children:(0,Z.jsxs)(`div`,{className:`inline-flex gap-1`,children:[(0,Z.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>C(n),"aria-label":e(`settings:apiKeys.actions.edit`),children:(0,Z.jsx)(u,{className:`size-4`})}),(0,Z.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>D(n),"aria-label":e(`settings:apiKeys.actions.revoke`),disabled:b.isPending,children:(0,Z.jsx)(a,{className:`size-4 text-destructive`})})]})})]},n.id))})]})})})}),(0,Z.jsx)(De,{open:d,onOpenChange:f,editing:m,resources:l,onCreated:e=>{f(!1),_(e),r.invalidateQueries({queryKey:$})},onUpdated:()=>{f(!1),r.invalidateQueries({queryKey:$})}},m?.id??`new`),(0,Z.jsx)(Pe,{secret:g,onClose:()=>_(null)})]})}var Ce=e=>({byResource:Object.fromEntries(Object.entries(e).map(([e,t])=>[e,new Set(t)]))}),we=e=>{let t={};for(let[n,r]of Object.entries(e.byResource))r.size!==0&&(t[n]=Array.from(r));return t};function Te({resources:e,state:t,onChange:n}){let{t:i}=T(),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=X.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,Z.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:i(`settings:apiKeys.permissions.noResources`)}):(0,Z.jsxs)(`div`,{className:`rounded-md border border-border`,children:[s.length>0&&(0,Z.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,Z.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,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(f,{className:`mr-1.5 size-3.5`}),i(`settings:apiKeys.permissions.clearAllResources`)]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(B,{className:`mr-1.5 size-3.5`}),i(`settings:apiKeys.permissions.selectAllResources`)]})})}),(0,Z.jsx)(`div`,{className:`max-h-[24rem] overflow-y-auto`,children:(0,Z.jsxs)(R,{children:[(0,Z.jsx)(N,{className:`sticky top-0 bg-card`,children:(0,Z.jsxs)(I,{children:[(0,Z.jsx)(P,{className:`w-[14rem]`,children:i(`settings:apiKeys.permissions.resource`)}),(0,Z.jsx)(P,{children:i(`settings:apiKeys.permissions.actions`)})]})}),(0,Z.jsx)(F,{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,Z.jsxs)(I,{children:[(0,Z.jsx)(L,{className:`align-top`,children:(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`span`,{className:`font-medium`,children:e.name}),(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.id}),(0,Z.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,Z.jsx)(f,{className:`size-3`}):(0,Z.jsx)(B,{className:`size-3`}),i(c?`settings:apiKeys.permissions.clearAll`:`settings:apiKeys.permissions.selectAll`)]})]})}),(0,Z.jsx)(L,{children:(0,Z.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:n.map(t=>{let n=s.has(t);return(0,Z.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,Z.jsx)(h,{checked:n,onCheckedChange:()=>a(e.id,t),className:`size-3.5`}),(0,Z.jsx)(`span`,{children:t})]},t)})})})]},e.id)})})]})})]})}function Ee({permissions:e}){let{t}=T(),n=Object.entries(e);if(n.length===0)return(0,Z.jsx)(A,{variant:`outline`,children:t(`settings:apiKeys.permissions.none`)});let r=n.reduce((e,[,t])=>e+t.length,0);return(0,Z.jsx)(A,{variant:`secondary`,children:t(`settings:apiKeys.permissions.summary`,{resources:n.length,actions:r})})}function De({open:e,onOpenChange:t,editing:n,resources:r,onCreated:i,onUpdated:a}){let{t:o}=T(),s=w(),c=J(),l=!!n,[u,d]=X.useState(n?.name??``),[f,m]=X.useState(()=>{if(!n?.expiresAt)return``;let e=new Date(n.expiresAt).getTime()-Date.now();return e>0?String(Math.max(1,Math.round(e/864e5))):``}),[h,g]=X.useState(()=>Ce(n?.permissions??{})),_=E({mutationFn:async()=>{let e=we(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)})});X.useEffect(()=>{if(e){if(d(n?.name??``),g(Ce(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/864e5))):``)}}},[e,n]);let v=Object.values(h.byResource).reduce((e,t)=>e+(t?.size??0),0);return(0,Z.jsx)(z,{open:e,onOpenChange:t,children:(0,Z.jsxs)(W,{closeLabel:o(`common:close`),className:`max-w-3xl`,children:[(0,Z.jsxs)(G,{children:[(0,Z.jsx)(V,{children:o(l?`settings:apiKeys.editor.titleEdit`:`settings:apiKeys.editor.titleCreate`)}),(0,Z.jsx)(H,{children:o(`settings:apiKeys.editor.description`)})]}),(0,Z.jsxs)(`form`,{className:`flex flex-col gap-4`,onSubmit:e=>{e.preventDefault(),u.trim()&&_.mutate()},children:[(0,Z.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Z.jsx)(q,{htmlFor:`api-key-name`,children:o(`settings:apiKeys.editor.name`)}),(0,Z.jsx)(Y,{id:`api-key-name`,value:u,onChange:e=>d(e.target.value),placeholder:o(`settings:apiKeys.editor.namePlaceholder`),required:!0,maxLength:64})]}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Z.jsx)(q,{htmlFor:`api-key-expires`,children:o(`settings:apiKeys.editor.expiresInDays`)}),(0,Z.jsx)(Y,{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,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:o(`settings:apiKeys.editor.expiresHint`)})]})]}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(q,{children:o(`settings:apiKeys.editor.permissions`)}),(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:o(`settings:apiKeys.editor.selectedActions`,{count:v})})]}),(0,Z.jsx)(Te,{resources:r,state:h,onChange:g})]}),(0,Z.jsxs)(U,{children:[(0,Z.jsx)(p,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:o(`common:cancel`)}),(0,Z.jsx)(p,{type:`submit`,disabled:_.isPending||!u.trim()||v===0,children:_.isPending?o(`common:saving`):o(l?`common:save`:`settings:apiKeys.actions.create`)})]})]})]})})}var Oe=[`record.created`,`record.updated`,`record.deleted`,`*`];function ke(){let{t:e,locale:t}=T(),n=w(),r=te(),i=J(),o=pe(),s=ee(),[l,d]=X.useState(!1),[f,m]=X.useState(null),[h,g]=X.useState(null),_=O({queryKey:ye,queryFn:()=>n.listWebhooks()}),v=O({queryKey:[`modern-admin`,`webhooks`,h,`deliveries`],queryFn:()=>n.listWebhookDeliveries(h),enabled:!!h}),y=E({mutationFn:e=>n.deleteWebhook(e),onSuccess:()=>{r.invalidateQueries({queryKey:ye}),i.success({key:`settings:webhooks.notice.deleted`})},onError:e=>i.error({message:e instanceof Error?e.message:String(e)})}),b=E({mutationFn:e=>n.testWebhook(e),onSuccess:()=>{h&&r.invalidateQueries({queryKey:[`modern-admin`,`webhooks`,h,`deliveries`]}),i.success({key:`settings:webhooks.notice.testQueued`})},onError:e=>i.error({message:e instanceof Error?e.message:String(e)})}),x=_.data?.webhooks??[],S=async t=>{await o.confirm({title:e(`settings:webhooks.confirmDelete.title`),description:e(`settings:webhooks.confirmDelete.description`,{name:t.name}),confirmLabel:e(`common:delete`),destructive:!0})&&y.mutate(t.id)};return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Z.jsx)(Q,{icon:K,title:e(`settings:webhooks.title`),description:e(`settings:webhooks.description`),action:(0,Z.jsxs)(p,{size:`sm`,onClick:()=>{m(null),d(!0)},children:[(0,Z.jsx)(c,{className:`size-4`}),e(`settings:webhooks.actions.create`)]}),children:(0,Z.jsx)(_e,{isLoading:_.isLoading,error:_.error,isEmpty:x.length===0,loadingLabel:e(`common:loading`),empty:{icon:K,title:e(`settings:webhooks.empty.title`),description:e(`settings:webhooks.empty.description`)},children:(0,Z.jsx)(he,{children:(0,Z.jsxs)(R,{children:[(0,Z.jsx)(N,{children:(0,Z.jsxs)(I,{children:[(0,Z.jsx)(P,{children:e(`settings:webhooks.columns.name`)}),(0,Z.jsx)(P,{children:e(`settings:webhooks.columns.resource`)}),(0,Z.jsx)(P,{children:e(`settings:webhooks.columns.events`)}),(0,Z.jsx)(P,{children:e(`settings:webhooks.columns.enabled`)}),(0,Z.jsx)(P,{className:`text-right`,children:e(`settings:webhooks.columns.actions`)})]})}),(0,Z.jsx)(F,{children:x.map(t=>(0,Z.jsxs)(I,{children:[(0,Z.jsxs)(L,{children:[(0,Z.jsx)(`button`,{type:`button`,className:`text-left font-medium hover:underline`,onClick:()=>g(t.id),children:t.name}),(0,Z.jsx)(`div`,{className:`max-w-xs truncate text-xs text-muted-foreground`,children:t.url})]}),(0,Z.jsx)(L,{children:je(s,t.resourceId,e(`settings:webhooks.editor.allResources`))}),(0,Z.jsx)(L,{className:`max-w-xs`,children:(0,Z.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:t.events.map(e=>(0,Z.jsx)(A,{variant:`outline`,children:e},e))})}),(0,Z.jsx)(L,{children:t.enabled?e(`common:yes`):e(`common:no`)}),(0,Z.jsx)(L,{className:`text-right`,children:(0,Z.jsxs)(`div`,{className:`inline-flex gap-1`,children:[(0,Z.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>b.mutate(t.id),children:e(`settings:webhooks.actions.test`)}),(0,Z.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>{m(t),d(!0)},children:(0,Z.jsx)(u,{className:`size-4`})}),(0,Z.jsx)(p,{variant:`ghost`,size:`sm`,onClick:()=>void S(t),children:(0,Z.jsx)(a,{className:`size-4 text-destructive`})})]})})]},t.id))})]})})})}),h&&(0,Z.jsx)(Q,{icon:K,title:e(`settings:webhooks.deliveries.title`),children:v.isLoading?(0,Z.jsx)(`div`,{className:`py-4 text-sm text-muted-foreground`,children:e(`common:loading`)}):(0,Z.jsx)(he,{children:(0,Z.jsxs)(R,{children:[(0,Z.jsx)(N,{children:(0,Z.jsxs)(I,{children:[(0,Z.jsx)(P,{children:e(`settings:webhooks.deliveries.status`)}),(0,Z.jsx)(P,{children:e(`settings:webhooks.deliveries.event`)}),(0,Z.jsx)(P,{children:e(`settings:webhooks.deliveries.attempt`)}),(0,Z.jsx)(P,{children:e(`settings:webhooks.deliveries.response`)}),(0,Z.jsx)(P,{children:e(`settings:webhooks.deliveries.createdAt`)})]})}),(0,Z.jsx)(F,{children:(v.data?.deliveries??[]).map(e=>(0,Z.jsxs)(I,{children:[(0,Z.jsx)(L,{children:e.status}),(0,Z.jsx)(L,{children:e.event}),(0,Z.jsx)(L,{children:e.attempt}),(0,Z.jsx)(L,{className:`max-w-sm truncate`,children:e.responseStatus??e.error??e.responseBody??`—`}),(0,Z.jsx)(L,{children:Fe(e.createdAt,t)})]},e.id))})]})})}),(0,Z.jsx)(Ae,{open:l,onOpenChange:d,webhook:f,resources:s},f?.id??`new`)]})}function Ae({open:e,onOpenChange:t,webhook:n,resources:r}){let{t:i}=T(),a=w(),o=te(),s=J(),[c,l]=X.useState(n?.name??``),[u,d]=X.useState(n?.url??``),[f,m]=X.useState(n?.resourceId??``),[_,y]=X.useState(n?.enabled??!0),[b,x]=X.useState(n?.secret??``),[C,ee]=X.useState(n?.events??[`record.created`,`record.updated`]),[D,O]=X.useState(n?.headers??{}),[A,oe]=X.useState(n?.filters??{}),[j,se]=X.useState(n?.payloadFields??[]),ce=r.find(e=>e.id===f),M=E({mutationFn:e=>n?a.updateWebhook(n.id,e):a.createWebhook(e),onSuccess:()=>{o.invalidateQueries({queryKey:ye}),s.success({key:`settings:webhooks.notice.saved`}),t(!1)},onError:e=>s.error({message:e instanceof Error?e.message:String(e)})}),N=e=>{ee(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])};return(0,Z.jsx)(z,{open:e,onOpenChange:t,children:(0,Z.jsxs)(W,{closeLabel:i(`common:close`),className:`max-w-3xl`,children:[(0,Z.jsxs)(G,{children:[(0,Z.jsx)(V,{children:i(n?`settings:webhooks.editor.titleEdit`:`settings:webhooks.editor.titleCreate`)}),(0,Z.jsx)(H,{children:i(`settings:webhooks.editor.description`)})]}),(0,Z.jsxs)(`form`,{className:`space-y-4`,onSubmit:e=>{e.preventDefault(),M.mutate({name:c.trim(),url:u.trim(),events:C,resourceId:f||null,enabled:_,...b.trim()?{secret:b.trim()}:{},headers:Ne(D),filters:Ne(A),payloadFields:j})},children:[(0,Z.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsx)(q,{children:i(`settings:webhooks.editor.name`)}),(0,Z.jsx)(Y,{value:c,onChange:e=>l(e.target.value),required:!0})]}),(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsx)(q,{children:i(`settings:webhooks.editor.url`)}),(0,Z.jsx)(Y,{value:u,onChange:e=>d(e.target.value),required:!0,type:`url`})]}),(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsx)(q,{children:i(`settings:webhooks.editor.resource`)}),(0,Z.jsxs)(ae,{value:f||`__all__`,onValueChange:e=>{m(e===`__all__`?``:e),se([])},children:[(0,Z.jsx)(k,{children:(0,Z.jsx)(ie,{})}),(0,Z.jsxs)(re,{children:[(0,Z.jsx)(ne,{value:`__all__`,children:i(`settings:webhooks.editor.allResources`)}),r.map(e=>(0,Z.jsxs)(ne,{value:e.id,children:[e.name,e.name!==e.id&&(0,Z.jsxs)(`span`,{className:`ml-1.5 text-xs text-muted-foreground`,children:[`(`,e.id,`)`]})]},e.id))]})]})]}),(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsx)(q,{children:i(`settings:webhooks.editor.secret`)}),(0,Z.jsx)(S,{content:i(`settings:webhooks.editor.secretHint`),ariaLabel:i(`settings:webhooks.editor.secret`),side:`right`})]}),(0,Z.jsx)(Y,{value:b,onChange:e=>x(e.target.value),type:`password`})]})]}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(v,{checked:_,onCheckedChange:y}),(0,Z.jsx)(q,{children:i(`settings:webhooks.editor.enabled`)})]}),(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsx)(q,{children:i(`settings:webhooks.editor.events`)}),(0,Z.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:Oe.map(e=>(0,Z.jsxs)(`label`,{className:`flex items-center gap-2 rounded-md border border-border px-3 py-2 text-sm`,children:[(0,Z.jsx)(h,{checked:C.includes(e),onCheckedChange:()=>N(e)}),e]},e))})]}),ce&&(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsx)(q,{children:i(`settings:webhooks.editor.payloadFields`)}),(0,Z.jsx)(S,{content:i(`settings:webhooks.editor.payloadFieldsHint`),ariaLabel:i(`settings:webhooks.editor.payloadFields`),side:`right`})]}),(0,Z.jsx)(`div`,{className:`grid gap-2 sm:grid-cols-2`,children:ce.properties.map(e=>(0,Z.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,Z.jsx)(h,{checked:j.includes(e.path),onCheckedChange:()=>se(t=>t.includes(e.path)?t.filter(t=>t!==e.path):[...t,e.path])}),e.label]},e.path))})]}),(0,Z.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsx)(q,{children:i(`settings:webhooks.editor.headers`)}),(0,Z.jsx)(S,{content:i(`settings:webhooks.editor.headersHint`),ariaLabel:i(`settings:webhooks.editor.headers`),side:`top`})]}),(0,Z.jsx)(g,{value:D,onChange:e=>O(Me(e))})]}),(0,Z.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Z.jsx)(q,{children:i(`settings:webhooks.editor.filters`)}),(0,Z.jsx)(S,{content:i(`settings:webhooks.editor.filtersHint`),ariaLabel:i(`settings:webhooks.editor.filters`),side:`top`})]}),(0,Z.jsx)(g,{value:A,onChange:e=>oe(Me(e))})]})]}),(0,Z.jsxs)(U,{children:[(0,Z.jsx)(p,{type:`button`,variant:`outline`,onClick:()=>t(!1),children:i(`common:cancel`)}),(0,Z.jsx)(p,{type:`submit`,disabled:M.isPending||!c.trim()||!u.trim()||C.length===0,children:M.isPending?i(`common:saving`):i(`common:save`)})]})]})]})})}var je=(e,t,n)=>t?e.find(e=>e.id===t)?.name??t:n,Me=e=>e&&typeof e==`object`&&!Array.isArray(e)?e:{},Ne=e=>{let t={};for(let[n,r]of Object.entries(e))r!=null&&r!==``&&(t[n]=String(r));return t};function Pe({secret:e,onClose:t}){let{t:n}=T(),r=J(),[i,a]=X.useState(!1),[s,c]=X.useState(!1);return X.useEffect(()=>{e||(a(!1),c(!1))},[e]),(0,Z.jsx)(z,{open:!!e,onOpenChange:e=>!e&&t(),children:(0,Z.jsxs)(W,{closeLabel:n(`common:close`),className:`max-w-lg`,children:[(0,Z.jsxs)(G,{children:[(0,Z.jsxs)(V,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(K,{className:`size-5`}),n(`settings:apiKeys.created.title`)]}),(0,Z.jsx)(H,{children:n(`settings:apiKeys.created.description`)})]}),(0,Z.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,Z.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,Z.jsx)(d,{className:`mt-0.5 size-4`}),(0,Z.jsx)(`p`,{children:n(`settings:apiKeys.created.warning`)})]})}),(0,Z.jsxs)(`div`,{className:`flex items-stretch gap-2`,children:[(0,Z.jsxs)(`div`,{className:`relative flex-1`,children:[(0,Z.jsx)(Y,{readOnly:!0,type:i?`text`:`password`,value:e?.key??``,className:`pr-10 font-mono text-xs`,onFocus:e=>e.currentTarget.select()}),(0,Z.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,Z.jsx)(me,{className:`size-4`}):(0,Z.jsx)(le,{className:`size-4`})})]}),(0,Z.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,Z.jsx)(B,{className:`size-4`}):(0,Z.jsx)(o,{className:`size-4`}),(0,Z.jsx)(`span`,{className:`hidden sm:inline`,children:n(s?`settings:apiKeys.created.copied`:`settings:apiKeys.created.copy`)})]})]}),(0,Z.jsx)(U,{children:(0,Z.jsx)(p,{onClick:t,children:n(`common:done`)})})]})})}var Fe=(e,t)=>{try{return new Date(e).toLocaleString(t)}catch{return String(e)}};export{xe as SettingsPage};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n}from"./floating-layer-BcTp2AMB.js";import{t as r}from"./trash-2-BIJVpWxv.js";import{t as i}from"./circle-alert-D1sKnXtO.js";import{t as a}from"./pencil-kFOObGrY.js";import{t as o}from"./zap-BxPAEPtJ.js";import{o as s}from"./dist-DPxQeZn3.js";import{E as c,N as l,T as u,b as d,d as f,g as p,l as m,nt as h}from"./hooks-
|
|
1
|
+
import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n}from"./floating-layer-BcTp2AMB.js";import{t as r}from"./trash-2-BIJVpWxv.js";import{t as i}from"./circle-alert-D1sKnXtO.js";import{t as a}from"./pencil-kFOObGrY.js";import{t as o}from"./zap-BxPAEPtJ.js";import{o as s}from"./dist-DPxQeZn3.js";import{E as c,N as l,T as u,b as d,d as f,g as p,l as m,nt as h}from"./hooks-Djo7VZHf.js";import{c as g,l as _,n as v,o as y,r as b,s as x}from"./action-component-host-BhkBbvy5.js";import{a as S,i as C,n as w,t as T}from"./card-BYbadRar.js";import{i as E,n as D,r as O,t as k}from"./tabs-XOuUmhl0.js";import{c as A,i as j,l as M,o as N,s as P,t as F,u as I}from"./property-renderer-KXwrRQgq.js";import{t as L}from"./revisions-button-B6PmW0BY.js";import{D as R,E as z,O as B,T as V,i as H,l as U,n as W,o as G,r as K,w as q}from"./index-SG_6EpY3.js";var J=e(t(),1),Y=n();function X({parentRecordId:e,related:t,active:n}){let[r,i]=J.useState({perPage:10}),[a,o]=J.useState(n);return J.useEffect(()=>{n&&o(!0)},[n]),a?(0,Y.jsx)(j,{resourceId:t.resourceId,query:r,onQueryChange:i,lockedFilters:{[t.foreignKey]:e},embedPadding:!1,features:{breadcrumbs:!1,title:!1,create:!1,export:!1,card:!1}}):null}function Z({resource:e,recordId:t}){let{t:n}=l(),r=c(),i=e.showRelatedResources!==!1,a=J.useMemo(()=>i?M(e,r):[],[i,e,r]),[o,s]=J.useState(()=>a[0]?`${a[0].resourceId}::${a[0].foreignKey}`:``);if(J.useEffect(()=>{a.length!==0&&(a.some(e=>`${e.resourceId}::${e.foreignKey}`===o)||s(`${a[0].resourceId}::${a[0].foreignKey}`))},[o,a]),a.length===0)return null;let u=e=>e.label??r.find(t=>t.id===e.resourceId)?.name??e.resourceId;return(0,Y.jsxs)(T,{children:[(0,Y.jsx)(C,{children:(0,Y.jsx)(S,{className:`text-base`,children:n(`common:relatedRecords`)})}),(0,Y.jsx)(w,{children:(0,Y.jsxs)(k,{value:o,onValueChange:s,children:[(0,Y.jsx)(O,{className:`w-full justify-start`,children:a.map(e=>{let t=`${e.resourceId}::${e.foreignKey}`;return(0,Y.jsx)(E,{value:t,children:u(e)},t)})}),a.map(e=>{let n=`${e.resourceId}::${e.foreignKey}`;return(0,Y.jsx)(D,{value:n,className:`mt-4`,children:(0,Y.jsx)(X,{parentRecordId:t,related:e,active:o===n})},n)})]})})]})}function Q({error:e,t}){let{status:n,message:r}=h(e),a=t(n===404?`errors:notFound`:n===403?`errors:forbidden`:`errors:server`);return(0,Y.jsxs)(`div`,{className:`flex items-start gap-3 rounded-lg border border-destructive/50 bg-destructive/10 p-4 dark:bg-destructive/15`,children:[(0,Y.jsx)(i,{className:`mt-0.5 size-5 shrink-0 text-destructive`}),(0,Y.jsxs)(`div`,{className:`space-y-1 text-sm`,children:[(0,Y.jsx)(`p`,{className:`font-semibold text-destructive`,children:a}),(0,Y.jsx)(`p`,{className:`text-destructive/90`,children:r})]})]})}function $({resourceId:e,recordId:t}){let n=u(e),i=d(e,t),c=m(e),h=p(e),E=f(),{t:D}=l(),O=G(),k=K(),j=U(),M=P(e),J=i.data?.record,X=x((n?.actions??[]).filter(e=>e.actionType===`record`&&![`show`,`edit`,`delete`].includes(e.name)),J),$=y(`edit`,J),ee=y(`delete`,J);W(`mod+e`,()=>{!i.data||!$||O({name:`edit`,resourceId:e,recordId:t})},{description:D(`common:edit`)});let te=async()=>{await k.confirm({title:D(`common:confirmDelete`),confirmLabel:D(`common:delete`),destructive:!0})&&(await c.mutateAsync(t),O({name:`list`,resourceId:e}))};if(!n)return(0,Y.jsx)(`div`,{className:`p-6`,children:D(`common:loading`)});let ne=V(),re=i.data?.record?.title||t;return(0,Y.jsxs)(`div`,{className:`space-y-2 sm:space-y-4`,children:[(0,Y.jsx)(g,{items:[_(D(`common:home`)),{label:n.name,to:{name:`list`,resourceId:e}},{label:re}]}),(0,Y.jsxs)(T,{children:[(0,Y.jsxs)(C,{className:`flex flex-row items-center justify-between gap-3`,children:[(0,Y.jsxs)(S,{className:`truncate`,children:[n.name,` #`,t]}),i.data&&(0,Y.jsxs)(`div`,{className:`flex shrink-0 flex-wrap gap-2`,children:[E.history&&(0,Y.jsx)(L,{resourceId:e,recordId:t}),$&&(0,Y.jsxs)(z,{children:[(0,Y.jsx)(B,{asChild:!0,children:(0,Y.jsx)(s,{variant:`outline-primary`,size:`sm`,asChild:!0,children:(0,Y.jsxs)(H,{to:{name:`edit`,resourceId:e,recordId:t},"aria-label":D(`common:edit`),children:[(0,Y.jsx)(a,{className:`size-4`}),(0,Y.jsx)(`span`,{className:`hidden sm:inline`,children:D(`common:edit`)})]})})}),(0,Y.jsxs)(R,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{children:D(`common:edit`)}),(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-0.5`,children:[(0,Y.jsx)(q,{children:ne}),(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:`+`}),(0,Y.jsx)(q,{children:`E`})]})]})]}),ee&&(0,Y.jsxs)(s,{variant:`outline-destructive`,size:`sm`,disabled:c.isPending,onClick:()=>void te(),"aria-label":D(`common:delete`),children:[(0,Y.jsx)(r,{className:`size-4`}),(0,Y.jsx)(`span`,{className:`hidden sm:inline`,children:D(`common:delete`)})]}),X.length>0&&(0,Y.jsx)(b,{actions:X,onAction:async e=>{if(N(e)){M(e,{recordId:t});return}await A(e,k)&&h.mutateAsync({recordId:t,actionName:e.name}).then(e=>v(j,e.notice)).catch(e=>j.error({message:e.message}))},t:D,trigger:(0,Y.jsxs)(s,{variant:`outline`,size:`sm`,disabled:h.isPending,"aria-label":D(`common:actions`),children:[(0,Y.jsx)(o,{className:`size-4`}),(0,Y.jsx)(`span`,{className:`hidden sm:inline`,children:D(`common:actions`)})]})})]})]}),(0,Y.jsx)(w,{children:(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[i.isLoading&&(0,Y.jsx)(`p`,{className:`text-muted-foreground`,children:D(`common:loading`)}),i.isError&&(0,Y.jsx)(Q,{error:i.error,t:D}),i.data&&(0,Y.jsx)(`dl`,{className:`[column-fill:_balance] md:columns-2`,children:I(n.properties,`show`,n.propertyOrder?.show).map(e=>(0,Y.jsxs)(`div`,{className:`mb-8 break-inside-avoid`,children:[(0,Y.jsx)(`dt`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:e.label}),(0,Y.jsx)(`dd`,{className:`mt-1`,children:(0,Y.jsx)(F,{property:e,value:i.data.record.params[e.path],view:`show`,populated:i.data.record.populated})})]},e.path))})]})})]}),i.data&&(0,Y.jsx)(Z,{resource:n,recordId:t})]})}export{$ as ResourceShowPage};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,S as r,_ as i,d as a,f as o,h as s,l as c,p as l}from"./floating-layer-BcTp2AMB.js";import{t as u}from"./dist-CiXwD0ML.js";import{J as d,K as f,q as p}from"./index-
|
|
1
|
+
import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,S as r,_ as i,d as a,f as o,h as s,l as c,p as l}from"./floating-layer-BcTp2AMB.js";import{t as u}from"./dist-CiXwD0ML.js";import{J as d,K as f,q as p}from"./index-SG_6EpY3.js";var m=e(t(),1),h=n(),g=Object.defineProperty,_=(e,t)=>g(e,`name`,{value:t,configurable:!0}),v=`Tabs`,[y,b]=r(v,[d]),x=d(),[S,C]=y(v),w=m.forwardRef(_(function(e,t){let{__scopeTabs:n,value:r,onValueChange:i,defaultValue:o,orientation:c=`horizontal`,dir:d,activationMode:f=`automatic`,...p}=e,m=u(d),[g,_]=s({prop:r,onChange:i,defaultProp:o??``,caller:v});return(0,h.jsx)(S,{scope:n,baseId:a(),value:g,onValueChange:_,orientation:c,dir:m,activationMode:f,children:(0,h.jsx)(l.div,{dir:m,"data-orientation":c,...p,ref:t})})},`Tabs`)),T=`TabsList`,E=m.forwardRef(_(function(e,t){let{__scopeTabs:n,loop:r=!0,...i}=e,a=C(T,n),o=x(n);return(0,h.jsx)(p,{asChild:!0,...o,orientation:a.orientation,dir:a.dir,loop:r,children:(0,h.jsx)(l.div,{role:`tablist`,"aria-orientation":a.orientation,...i,ref:t})})},`TabsList`)),D=`TabsTrigger`,O=m.forwardRef(_(function(e,t){let{__scopeTabs:n,value:r,disabled:a=!1,...o}=e,s=C(D,n),c=x(n),u=j(s.baseId,r),d=M(s.baseId,r),p=r===s.value;return(0,h.jsx)(f,{asChild:!0,...c,focusable:!a,active:p,children:(0,h.jsx)(l.button,{type:`button`,role:`tab`,"aria-selected":p,"aria-controls":d,"data-state":p?`active`:`inactive`,"data-disabled":a?``:void 0,disabled:a,id:u,...o,ref:t,onMouseDown:i(e.onMouseDown,e=>{!a&&e.button===0&&e.ctrlKey===!1?s.onValueChange(r):e.preventDefault()}),onKeyDown:i(e.onKeyDown,e=>{a||e.target!==e.currentTarget||[` `,`Enter`].includes(e.key)&&s.onValueChange(r)}),onFocus:i(e.onFocus,()=>{let e=s.activationMode!==`manual`;!p&&!a&&e&&s.onValueChange(r)})})})},`TabsTrigger`)),k=`TabsContent`,A=m.forwardRef(_(function(e,t){let{__scopeTabs:n,value:r,forceMount:i,children:a,...s}=e,c=C(k,n),u=j(c.baseId,r),d=M(c.baseId,r),f=r===c.value,p=m.useRef(f);return m.useEffect(()=>{let e=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,h.jsx)(o,{present:i||f,children:({present:n})=>(0,h.jsx)(l.div,{"data-state":f?`active`:`inactive`,"data-orientation":c.orientation,role:`tabpanel`,"aria-labelledby":u,hidden:!n,id:d,tabIndex:0,...s,ref:t,style:{...e.style,animationDuration:p.current?`0s`:void 0},children:n&&a})})},`TabsContent`));function j(e,t){return`${e}-trigger-${t}`}_(j,`makeTriggerId`);function M(e,t){return`${e}-content-${t}`}_(M,`makeContentId`);var N=w,P=E,F=O,I=A,L=N,R=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(P,{ref:n,className:c(`flex h-10 w-full items-center justify-start gap-1 overflow-x-auto border-b border-border text-muted-foreground`,e),...t}));R.displayName=P.displayName;var z=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(F,{ref:n,className:c(`relative -mb-px inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap border-b-2 border-transparent px-4 py-2 text-sm font-medium ring-offset-background transition-all`,`hover:text-foreground`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,`disabled:pointer-events-none disabled:opacity-50`,`data-[state=active]:border-primary data-[state=active]:text-foreground`,e),...t}));z.displayName=F.displayName;var B=m.forwardRef(({className:e,...t},n)=>(0,h.jsx)(I,{ref:n,className:c(`mt-3 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,e),...t}));B.displayName=I.displayName;export{z as i,B as n,R as r,L as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,S as r,_ as i,a,d as o,f as s,h as c,i as l,l as u,o as d,p as f,r as p,x as m,y as h}from"./floating-layer-BcTp2AMB.js";import{i as g,n as _,r as v,t as y}from"./dist-DPxQeZn3.js";import{$ as b,B as ee,G as x,H as S,J as te,K as ne,Q as C,U as w,V as T,W as E,X as D,Y as O,Z as re,at as ie,et as ae,it as k,ot as A,q as j,rt as M}from"./hooks-
|
|
1
|
+
import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,S as r,_ as i,a,d as o,f as s,h as c,i as l,l as u,o as d,p as f,r as p,x as m,y as h}from"./floating-layer-BcTp2AMB.js";import{i as g,n as _,r as v,t as y}from"./dist-DPxQeZn3.js";import{$ as b,B as ee,G as x,H as S,J as te,K as ne,Q as C,U as w,V as T,W as E,X as D,Y as O,Z as re,at as ie,et as ae,it as k,ot as A,q as j,rt as M}from"./hooks-Djo7VZHf.js";var N=e(t(),1),P=n(),F=Object.defineProperty,I=(e,t)=>F(e,`name`,{value:t,configurable:!0}),L=`Popover`,[R,oe]=r(L,[g]),z=g(),[B,V]=R(L),H=I(e=>{let{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:s=!1}=e,l=z(t),u=N.useRef(null),[d,f]=N.useState(!1),[p,m]=c({prop:r,defaultProp:i??!1,onChange:a,caller:L});return(0,P.jsx)(v,{...l,children:(0,P.jsx)(B,{scope:t,contentId:o(),triggerRef:u,open:p,onOpenChange:m,onOpenToggle:N.useCallback(()=>m(e=>!e),[m]),hasCustomAnchor:d,onCustomAnchorAdd:N.useCallback(()=>f(!0),[]),onCustomAnchorRemove:N.useCallback(()=>f(!1),[]),modal:s,children:n})})},`Popover`),U=`PopoverAnchor`,W=N.forwardRef(I(function(e,t){let{__scopePopover:n,...r}=e,i=V(U,n),a=z(n),{onCustomAnchorAdd:o,onCustomAnchorRemove:s}=i;return N.useEffect(()=>(o(),()=>s()),[o,s]),(0,P.jsx)(y,{...a,...r,ref:t})},`PopoverAnchor`)),G=`PopoverTrigger`,K=N.forwardRef(I(function(e,t){let{__scopePopover:n,...r}=e,a=V(G,n),o=z(n),s=m(t,a.triggerRef),c=(0,P.jsx)(f.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":X(a.open),...r,ref:s,onClick:i(e.onClick,a.onOpenToggle)});return a.hasCustomAnchor?c:(0,P.jsx)(y,{asChild:!0,...o,children:c})},`PopoverTrigger`)),q=`PopoverPortal`,[se,ce]=R(q,{forceMount:void 0}),le=I(e=>{let{__scopePopover:t,forceMount:n,children:r,container:i}=e,o=V(q,t);return(0,P.jsx)(se,{scope:t,forceMount:n,children:(0,P.jsx)(s,{present:n||o.open,children:(0,P.jsx)(a,{asChild:!0,container:i,children:r})})})},`PopoverPortal`),J=`PopoverContent`,ue=N.forwardRef(I(function(e,t){let n=ce(J,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,a=V(J,e.__scopePopover);return(0,P.jsx)(s,{present:r||a.open,children:a.modal?(0,P.jsx)(fe,{...i,ref:t}):(0,P.jsx)(pe,{...i,ref:t})})},`PopoverContent`)),de=h(`PopoverContent.RemoveScroll`),fe=N.forwardRef(I(function(e,t){let n=V(J,e.__scopePopover),r=N.useRef(null),a=m(t,r),o=N.useRef(!1);return N.useEffect(()=>{let e=r.current;if(e)return k(e)},[]),(0,P.jsx)(M,{as:de,allowPinchZoom:!0,children:(0,P.jsx)(Y,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:i(e.onCloseAutoFocus,e=>{e.preventDefault(),o.current||n.triggerRef.current?.focus()}),onPointerDownOutside:i(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;o.current=r},{checkForDefaultPrevented:!1}),onFocusOutside:i(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})},`PopoverContentModal`)),pe=N.forwardRef(I(function(e,t){let n=V(J,e.__scopePopover),r=N.useRef(!1),i=N.useRef(!1);return(0,P.jsx)(Y,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})},`PopoverContentNonModal`)),Y=N.forwardRef(I(function(e,t){let{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:o,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onInteractOutside:u,...f}=e,p=V(J,n),m=z(n);return A(),(0,P.jsx)(ie,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,P.jsx)(d,{asChild:!0,disableOutsidePointerEvents:o,onInteractOutside:u,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onDismiss:()=>p.onOpenChange(!1),deferPointerDownOutside:!0,children:(0,P.jsx)(_,{"data-state":X(p.open),role:`dialog`,id:p.contentId,...m,...f,ref:t,style:{...f.style,"--radix-popover-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-popover-content-available-width":`var(--radix-popper-available-width)`,"--radix-popover-content-available-height":`var(--radix-popper-available-height)`,"--radix-popover-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-popover-trigger-height":`var(--radix-popper-anchor-height)`}})})})},`PopoverContentImpl`));function X(e){return e?`open`:`closed`}I(X,`getState`);var me=H,he=W,ge=K,_e=le,Z=ue,ve=me,ye=ge,be=he,Q=N.forwardRef(({className:e,align:t=`center`,sideOffset:n=4,collisionPadding:r,container:i,...a},o)=>{let s=p(),c=l();return(0,P.jsx)(_e,{container:i??s,children:(0,P.jsx)(Z,{ref:o,align:t,sideOffset:n,collisionPadding:r??c,className:u(`z-50 w-72 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2`,e),...a})})});Q.displayName=Z.displayName;function $(e,t){let n=new Set(t);return e.filter(e=>!n.has(e))}function xe(e,t,n){let r=e.slice(0);return r[t]=n,r}var Se=class extends ae{#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=[];constructor(e,t,n){super(),this.#e=e,this.#r=n,this.#n=[],this.#i=[],this.#t=[],this.setQueries(t)}onSubscribe(){this.listeners.size===1&&this.#i.forEach(e=>{e.subscribe(t=>{this.#m(e,t)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#i.forEach(e=>{e.destroy()})}setQueries(e,t){this.#n=e,this.#r=t,D.batch(()=>{let e=this.#i,t=this.#p(this.#n);t.forEach(e=>e.observer.setOptions(e.defaultedQueryOptions));let n=t.map(e=>e.observer),r=n.map(e=>e.getCurrentResult()),i=e.length!==n.length,a=n.some((t,n)=>t!==e[n]),o=i||a,s=o?!0:r.some((e,t)=>{let n=this.#t[t];return!n||!b(e,n)});!o&&!s||(o&&(this.#l=t,this.#i=n),this.#t=r,this.hasListeners()&&(o&&($(e,n).forEach(e=>{e.destroy()}),$(n,e).forEach(e=>{e.subscribe(t=>{this.#m(e,t)})})),this.#h()))})}getCurrentResult(){return this.#t}getQueries(){return this.#i.map(e=>e.getCurrentQuery())}getObservers(){return this.#i}getOptimisticResult(e,t){let n=this.#p(e),r=n.map(e=>e.observer.getOptimisticResult(e.defaultedQueryOptions)),i=n.map(e=>e.defaultedQueryOptions.queryHash);return[r,e=>this.#d(e??r,t,i),()=>this.#u(r,n)]}#u(e,t){return t.map((n,r)=>{let i=e[r];return n.defaultedQueryOptions.notifyOnChangeProps?i:n.observer.trackResult(i,e=>{t.forEach(t=>{t.observer.trackProp(e)})})})}#d(e,t,n){if(t){let r=this.#c,i=n!==void 0&&r!==void 0&&(r.length!==n.length||n.some((e,t)=>e!==r[t]));return(!this.#a||this.#t!==this.#s||i||t!==this.#o)&&(this.#o=t,this.#s=this.#t,n!==void 0&&(this.#c=n),this.#a=C(this.#a,t(e))),this.#a}return e}#f(){return this.#r?.combine!==void 0&&this.#i.some((e,t)=>e.options.suspense&&this.#t[t]?.data===void 0)}#p(e){let t=new Map;this.#i.forEach(e=>{let n=e.options.queryHash;if(!n)return;let r=t.get(n);r?r.push(e):t.set(n,[e])});let n=[];return e.forEach(e=>{let r=this.#e.defaultQueryOptions(e),i=t.get(r.queryHash)?.shift()??new O(this.#e,r);n.push({defaultedQueryOptions:r,observer:i})}),n}#m(e,t){let n=this.#i.indexOf(e);n!==-1&&(this.#t=xe(this.#t,n,t),this.#h())}#h(){if(this.hasListeners()){let e=this.#u(this.#t,this.#l),t=this.#f(),n=this.#a,r=t?n:this.#d(e,this.#r?.combine);(t||n!==r)&&D.batch(()=>{this.listeners.forEach(e=>{e(this.#t)})})}}};function Ce({queries:e,...t},n){let r=te(n),i=j(),a=ne(),o=N.useMemo(()=>e.map(e=>{let t=r.defaultQueryOptions(e);return t._optimisticResults=i?`isRestoring`:`optimistic`,t}),[e,r,i]);o.forEach(e=>{ee(e);let t=r.getQueryCache().get(e.queryHash);w(e,a,t)}),x(a);let[s]=N.useState(()=>new Se(r,o,t)),[c,l,u]=s.getOptimisticResult(o,t.combine),d=!i&&t.subscribed!==!1;N.useSyncExternalStore(N.useCallback(e=>d?s.subscribe(D.batchCalls(e)):re,[s,d]),()=>s.getCurrentResult(),()=>s.getCurrentResult()),N.useEffect(()=>{s.setQueries(o,t)},[o,t,s]);let f=c.some((e,t)=>S(o[t],e))?c.flatMap((e,t)=>{let n=o[t];if(n&&S(n,e)){let e=new O(r,n);return T(n,e,a)}return[]}):[];if(f.length>0)throw Promise.all(f);let p=c.find((e,t)=>{let n=o[t];return n&&E({result:e,errorResetBoundary:a,throwOnError:n.throwOnError,query:r.getQueryCache().get(n.queryHash),suspense:n.suspense})});if(p?.error)throw p.error;return l(u())}export{ye as a,Q as i,ve as n,be as r,Ce as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./createLucideIcon-QE2kj6ru.js";import{C as t,l as n}from"./floating-layer-BcTp2AMB.js";import{I as r}from"./hooks-
|
|
1
|
+
import{n as e}from"./createLucideIcon-QE2kj6ru.js";import{C as t,l as n}from"./floating-layer-BcTp2AMB.js";import{I as r}from"./hooks-Djo7VZHf.js";import{t as i}from"./useQueries-BIIIiVKJ.js";e();var a=t(),o={added:`Added`,changed:`Changed`,removed:`Removed`,before:`Before`,after:`After`,noChanges:`No changes`},s=e=>e===void 0?``:e===null?`null`:typeof e==`string`?e:JSON.stringify(e,null,2),c=e=>e.includes(`
|
|
2
2
|
`)||e.length>80;function l({fields:e,labels:t,className:r}){let i={...o,...t};return e.length===0?(0,a.jsx)(`div`,{className:n(`rounded-md border border-dashed border-border p-4 text-sm text-muted-foreground`,r),children:i.noChanges}):(0,a.jsx)(`ul`,{className:n(`divide-y divide-border overflow-hidden rounded-md border border-border bg-card text-xs`,r),children:e.map(e=>(0,a.jsx)(u,{field:e,labels:i},e.path))})}function u({field:e,labels:t}){let n=e.kind===`added`?``:s(e.before),r=e.kind===`removed`?``:s(e.after),i=!c(n)&&!c(r);return(0,a.jsxs)(`li`,{className:`grid grid-cols-[8rem_1fr] gap-x-3 px-3 py-1.5 sm:grid-cols-[10rem_1fr]`,children:[(0,a.jsxs)(`div`,{className:`min-w-0 pt-0.5`,children:[e.label&&(0,a.jsx)(`p`,{className:`truncate text-[11px] font-medium text-foreground`,title:e.label,children:e.label}),(0,a.jsx)(`code`,{className:`truncate font-mono text-[10px] text-muted-foreground`,title:e.path,children:e.path})]}),i?(0,a.jsx)(d,{kind:e.kind,before:n,after:r,labels:t}):(0,a.jsx)(f,{kind:e.kind,before:n,after:r,labels:t})]})}function d({kind:e,before:t,after:n,labels:r}){return(0,a.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5 font-mono text-xs leading-5`,children:[e!==`added`&&(0,a.jsx)(`span`,{"aria-label":r.before,className:`truncate rounded bg-red-50 px-1.5 text-red-900 line-through decoration-red-400/60 dark:bg-red-950/40 dark:text-red-100`,title:t,children:t||`\xA0`}),e!==`removed`&&(0,a.jsx)(`span`,{"aria-label":r.after,className:`truncate rounded bg-green-50 px-1.5 text-green-900 dark:bg-green-950/40 dark:text-green-100`,title:n,children:n||`\xA0`})]})}function f({kind:e,before:t,after:n,labels:r}){return(0,a.jsxs)(`div`,{className:`min-w-0 overflow-hidden rounded font-mono text-xs leading-5`,children:[e!==`added`&&(0,a.jsx)(`pre`,{"aria-label":r.before,className:`overflow-x-auto whitespace-pre-wrap bg-red-50 px-2 py-0.5 text-red-900 dark:bg-red-950/40 dark:text-red-100`,children:p(`-`,t)}),e!==`removed`&&(0,a.jsx)(`pre`,{"aria-label":r.after,className:`overflow-x-auto whitespace-pre-wrap bg-green-50 px-2 py-0.5 text-green-900 dark:bg-green-950/40 dark:text-green-100`,children:p(`+`,n)})]})}var p=(e,t)=>t.split(`
|
|
3
3
|
`).map(t=>`${e} ${t}`).join(`
|
|
4
4
|
`),m=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),h=e=>typeof e!=`object`||!e?JSON.stringify(e):e instanceof Date?JSON.stringify(e.toISOString()):typeof e.toJSON==`function`?h(e.toJSON()):Array.isArray(e)?`[${e.map(h).join(`,`)}]`:`{${Object.entries(e).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>`${JSON.stringify(e)}:${h(t)}`).join(`,`)}}`,g=(e,t)=>h(e)===h(t);function _(e,t,n=new Set){let r=new Set([...Object.keys(e),...Object.keys(t)]),i=[];for(let a of[...r].sort((e,t)=>e.localeCompare(t))){if(n.has(a))continue;let r=m(e,a),o=m(t,a);!r&&o?i.push({path:a,after:t[a],kind:`added`}):r&&!o?i.push({path:a,before:e[a],kind:`removed`}):g(e[a],t[a])||i.push({path:a,before:e[a],after:t[a],kind:`changed`})}return i}var v=_,y=`admins`;function b(e){let t=r(),n=i({queries:e.map(e=>({queryKey:[`modern-admin`,`user-dir`,y,e],queryFn:async()=>{try{return(await t.show(y,e)).record}catch{return null}},staleTime:6e4,retry:!1}))}),a=new Map;return e.forEach((e,t)=>a.set(e,n[t]?.data??null)),a}function x(e,t){if(!e)return t;let n=e.params??{},r=[n.name,n.fullName,n.email,e.title];for(let t of r){let n=typeof t==`string`?t.trim():``;if(n&&n!==e.id)return n}return t}export{l as a,v as i,b as n,x as r,y as t};
|
|
Binary file
|
|
Binary file
|
package/dist/standalone/assets/{wizard-create-page-u_8xKlPY.js → wizard-create-page-px1E35D5.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,l as r}from"./floating-layer-BcTp2AMB.js";import{t as i}from"./plus-D7PHzena.js";import{t as a}from"./x-c-gfVPJa.js";import{o}from"./dist-DPxQeZn3.js";import{N as s,T as c,s as l}from"./hooks-
|
|
1
|
+
import{a as e,n as t}from"./createLucideIcon-QE2kj6ru.js";import{C as n,l as r}from"./floating-layer-BcTp2AMB.js";import{t as i}from"./plus-D7PHzena.js";import{t as a}from"./x-c-gfVPJa.js";import{o}from"./dist-DPxQeZn3.js";import{N as s,T as c,s as l}from"./hooks-Djo7VZHf.js";import{c as u,l as d}from"./action-component-host-BhkBbvy5.js";import{a as f,i as p,t as m}from"./card-BYbadRar.js";import{a as h,c as g,i as _,n as v,o as y,r as b,s as x,t as S}from"./zod-CL5c4fuD.js";import{u as C}from"./property-renderer-KXwrRQgq.js";import{Dt as w,Tt as T,l as E,o as D,wt as O}from"./index-SG_6EpY3.js";var k=e(t(),1),A=n();function j({steps:e,properties:t,resourceId:n,control:s,trigger:c,onSubmit:l,onCancel:u,isSubmitting:d=!1,submitError:f,labels:p={}}){let m=p.back??`Back`,g=p.next??`Next`,_=p.submit??`Create`,v=p.cancel??`Cancel`,y=p.stepOf??`Step {current} of {total}`,[b,x]=k.useState(0),S=k.useMemo(()=>{let n=new Set(e.flatMap(e=>e.properties??[])),r=t.filter(e=>!n.has(e.path));return e.map(e=>e.properties?e.properties.map(e=>t.find(t=>t.path===e)).filter(e=>e!=null):r)},[e,t]),C=e.length,E=b===0,D=b===C-1,j=async()=>{let e=(S[b]??[]).map(e=>e.path);(e.length===0||await c(e))&&x(e=>Math.min(e+1,C-1))},N=e[b],P=S[b]??[],F=y.replace(`{current}`,String(b+1)).replace(`{total}`,String(C));return(0,A.jsxs)(`div`,{children:[(0,A.jsxs)(`div`,{className:`px-6 pt-6 pb-5`,children:[(0,A.jsx)(`div`,{className:`flex w-full max-w-xl items-start mx-auto`,children:e.map((t,n)=>(0,A.jsxs)(k.Fragment,{children:[(0,A.jsxs)(`div`,{className:`flex shrink-0 flex-col items-center`,children:[(0,A.jsx)(`div`,{className:r(`flex h-8 w-8 items-center justify-center rounded-full border-2 text-sm font-semibold transition-colors`,n<b&&`border-primary bg-primary text-primary-foreground`,n===b&&`border-primary bg-background text-primary`,n>b&&`border-border bg-background text-muted-foreground`),children:n<b?(0,A.jsx)(w,{className:`size-3.5`}):n+1}),(0,A.jsx)(`span`,{className:r(`mt-1.5 hidden max-w-[6rem] text-center text-xs leading-tight sm:block`,n===b?`font-medium text-foreground`:n<b?`text-primary`:`text-muted-foreground`),children:t.label})]}),n<e.length-1&&(0,A.jsx)(`div`,{className:r(`mx-2 mt-3.5 h-0.5 flex-1 transition-colors`,n<b?`bg-primary`:`bg-border`)})]},n))}),(0,A.jsxs)(`p`,{className:`mt-2 text-center text-xs text-muted-foreground sm:hidden`,children:[F,N.label?` · ${N.label}`:``]})]}),N.description&&(0,A.jsx)(`p`,{className:`px-6 pb-2 text-sm text-muted-foreground`,children:N.description}),(0,A.jsx)(`div`,{className:`gap-4 px-6 pb-4 [column-fill:_balance] md:columns-2`,children:P.map(e=>(0,A.jsx)(M,{control:s,property:e,children:(0,A.jsx)(h,{control:s,property:e,disabled:d,resourceId:n,idPrefix:`wizard-field`})},e.path))}),(0,A.jsxs)(`div`,{className:`flex items-center justify-between border-t border-border px-6 py-4`,children:[(0,A.jsx)(`div`,{children:f&&(0,A.jsx)(`span`,{className:`text-sm text-destructive`,children:f})}),(0,A.jsxs)(`div`,{className:`flex gap-2`,children:[E?(0,A.jsxs)(o,{type:`button`,variant:`ghost`,onClick:u,disabled:d,children:[(0,A.jsx)(a,{className:`size-4`}),v]}):(0,A.jsxs)(o,{type:`button`,variant:`outline`,onClick:()=>x(e=>e-1),disabled:d,children:[(0,A.jsx)(T,{className:`size-4`}),m]}),D?(0,A.jsxs)(o,{type:`button`,onClick:l,disabled:d,children:[(0,A.jsx)(i,{className:`size-4`}),_]}):(0,A.jsxs)(o,{type:`button`,onClick:()=>void j(),disabled:d,children:[g,(0,A.jsx)(O,{className:`size-4`})]})]})]})]})}j.displayName=`WizardForm`;function M({control:e,property:t,children:n}){let r=t.showWhen,i=g({control:e,name:r?.field??t.path});return r?_(r,{[r.field]:i})?(0,A.jsx)(A.Fragment,{children:n}):null:(0,A.jsx)(A.Fragment,{children:n})}function N({resourceId:e,steps:t,labels:n}){let r=c(e),i=l(e),a=D(),{t:o,locale:h}=s(),g=E(),_=k.useMemo(()=>r?C(r.properties,`edit`,r.propertyOrder?.edit).filter(e=>!e.isDisabled):[],[r]),w=k.useRef(()=>({})),T=k.useMemo(()=>v(_,o,()=>w.current()),[_,h]),O=k.useMemo(()=>{let e={};for(let t of _)e[t.path]=b(t);return e},[_]),M=x({resolver:S(T),defaultValues:O});w.current=M.getValues,k.useEffect(()=>{M.reset(O)},[O]);let[N,P]=k.useState(null),F=async t=>{P(null);try{let n=await i.mutateAsync(t),r=n.record.errors;if(r&&Object.keys(r).length>0){for(let[e,t]of Object.entries(r)){let n=typeof t==`string`?t:t?.message??`Invalid value`;M.setError(e,{type:`server`,message:n})}n.record.baseError&&P(String(n.record.baseError)),g.error({key:`toast:validationFailed`});return}g.success({key:`toast:created`}),a({name:`show`,resourceId:e,recordId:String(n.record.id)})}catch(e){let t=e instanceof Error?e.message:String(e);P(t),g.error({key:`toast:createFailed`},{description:t})}},I=()=>{M.handleSubmit(F,()=>{g.error({key:`toast:validationFailed`})})()};if(!r)return(0,A.jsx)(`div`,{className:`p-6`,children:o(`common:loading`)});let L={back:o(`common:back`),next:o(`common:next`),submit:o(`common:create`),cancel:o(`common:cancel`),stepOf:o(`wizard:stepOf`),...n},R=[d(o(`common:home`)),{label:r.name,to:{name:`list`,resourceId:e}},{label:o(`common:new`)}];return(0,A.jsxs)(`div`,{className:`flex min-h-full flex-col gap-4`,children:[(0,A.jsx)(u,{items:R}),(0,A.jsxs)(m,{className:`flex-1`,children:[(0,A.jsx)(p,{children:(0,A.jsx)(f,{className:`truncate`,children:o(`common:newRecord`,{name:r.name})})}),(0,A.jsx)(y,{...M,children:(0,A.jsx)(j,{steps:t,properties:_,resourceId:e,control:M.control,trigger:M.trigger,onSubmit:I,onCancel:()=>a({name:`list`,resourceId:e}),isSubmitting:M.formState.isSubmitting,submitError:N,labels:L})})]})]})}export{N as ResourceWizardCreatePage};
|
|
Binary file
|
|
Binary file
|