@oneclick.dev/cms-core-modules 0.0.123 → 0.0.124
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/{ContentEditor-C-Wm48ai.js → ContentEditor-BcIUumah.js} +39 -39
- package/dist/{ContentEditor-MDGolnIP.mjs → ContentEditor-DX1bTQKs.mjs} +4910 -4793
- package/dist/{Detail-Dk8E6_uF.mjs → Detail-B7pe808q.mjs} +15 -14
- package/dist/Detail-BESGmY7z.js +1 -0
- package/dist/{Detail-Cn9Bk0u0.mjs → Detail-B_Q7Qkuz.mjs} +26 -25
- package/dist/Detail-CNiLIEh9.js +1 -0
- package/dist/{Detail-B_scnidb.mjs → Detail-DNxAzeCs.mjs} +35 -34
- package/dist/Detail-t3tOcy3X.js +1 -0
- package/dist/Editor-D4evcdhv.mjs +768 -0
- package/dist/Editor-gLLtuJbY.js +1 -0
- package/dist/FormStatusBadge.vue_vue_type_script_setup_true_lang-BjKpsqT9.js +1 -0
- package/dist/FormStatusBadge.vue_vue_type_script_setup_true_lang-D5v5AhLe.mjs +76 -0
- package/dist/Knowledge-B66vxz--.js +1 -0
- package/dist/Knowledge-BnMTTuJ7.mjs +742 -0
- package/dist/Overview-BE4uYPx0.mjs +745 -0
- package/dist/Overview-CQRpFhbJ.mjs +286 -0
- package/dist/Overview-CTs7sX4d.js +1 -0
- package/dist/Overview-Cj89XXKN.js +1 -0
- package/dist/Overview-D_c18mbR.mjs +248 -0
- package/dist/Overview-g4Rcj245.js +1 -0
- package/dist/TableView-6mdrL3zx.js +4 -0
- package/dist/{TableView-C4Zyp8d7.mjs → TableView-Du5nOE6R.mjs} +2 -2
- package/dist/Test-CzmOmi53.mjs +447 -0
- package/dist/Test-USDtNFY1.js +1 -0
- package/dist/UserDetail-DpUL3mhk.mjs +1483 -0
- package/dist/UserDetail-KRIfxaYd.js +1 -0
- package/dist/cms-core-modules.css +1 -1
- package/dist/index-CQuN5rKx.js +1 -0
- package/dist/index-CnDGeInm.js +1 -0
- package/dist/index-CqDTc5Ig.mjs +20 -0
- package/dist/index-CyvvAdt4.js +1 -0
- package/dist/index-DIRD7t5_.mjs +20 -0
- package/dist/index-OJuBYR60.mjs +57 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.mjs +327 -84
- package/dist/server-handlers.cjs.js +1 -1
- package/dist/server-handlers.mjs +1764 -605
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/Container.d.ts +1 -1
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/Row.d.ts +7 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/Stack.d.ts +7 -0
- package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/resizeHistory.d.ts +9 -0
- package/dist/src/contentManager/components/content-editor/tiptap-menus/ElementEditorMenu.vue.d.ts +3 -1
- package/dist/src/firebaseAuthManager/components/DeleteUserDialog.vue.d.ts +25 -0
- package/dist/src/firebaseAuthManager/components/ReasonActionDialog.vue.d.ts +23 -0
- package/dist/src/firebaseAuthManager/components/UserStatusBadge.vue.d.ts +5 -0
- package/dist/src/firebaseAuthManager/config.d.ts +151 -0
- package/dist/src/firebaseAuthManager/index.d.ts +163 -0
- package/dist/src/firebaseAuthManager/index.vue.d.ts +14 -0
- package/dist/src/firebaseAuthManager/metadata.d.ts +2 -0
- package/dist/src/firebaseAuthManager/pages/Overview.vue.d.ts +2 -0
- package/dist/src/firebaseAuthManager/pages/UserDetail.vue.d.ts +2 -0
- package/dist/src/firebaseAuthManager/permissions.d.ts +5 -0
- package/dist/src/firebaseAuthManager/routes.d.ts +5 -0
- package/dist/src/firebaseAuthManager/server.d.ts +162 -0
- package/dist/src/firebaseAuthManager/types.d.ts +84 -0
- package/dist/src/formBuilder/components/FormPreviewDialog.vue.d.ts +12 -0
- package/dist/src/formBuilder/components/FormStatusBadge.vue.d.ts +9 -0
- package/dist/src/formBuilder/config.d.ts +31 -0
- package/dist/src/formBuilder/index.d.ts +44 -0
- package/dist/src/formBuilder/index.vue.d.ts +14 -0
- package/dist/src/formBuilder/lib/forms.d.ts +11 -0
- package/dist/src/formBuilder/metadata.d.ts +2 -0
- package/dist/src/formBuilder/pages/Editor.vue.d.ts +2 -0
- package/dist/src/formBuilder/pages/Overview.vue.d.ts +2 -0
- package/dist/src/formBuilder/permissions.d.ts +5 -0
- package/dist/src/formBuilder/routes.d.ts +5 -0
- package/dist/src/formBuilder/server.d.ts +87 -0
- package/dist/src/formBuilder/tools.d.ts +1 -0
- package/dist/src/formBuilder/types.d.ts +46 -0
- package/dist/src/helpbot/composables/useHelpbotApi.d.ts +18 -0
- package/dist/src/helpbot/config.d.ts +17 -0
- package/dist/src/helpbot/index.d.ts +29 -0
- package/dist/src/helpbot/index.vue.d.ts +2 -0
- package/dist/src/helpbot/metadata.d.ts +2 -0
- package/dist/src/helpbot/pages/Knowledge.vue.d.ts +4 -0
- package/dist/src/helpbot/pages/Overview.vue.d.ts +2 -0
- package/dist/src/helpbot/pages/Test.vue.d.ts +4 -0
- package/dist/src/helpbot/permissions.d.ts +5 -0
- package/dist/src/helpbot/routes.d.ts +5 -0
- package/dist/src/helpbot/types.d.ts +42 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/server-handlers.d.ts +2 -0
- package/dist/types-9N-DKxNj.mjs +250 -0
- package/dist/types-BMraG1kN.js +1 -0
- package/dist/types-Cem0vPo_.js +1 -0
- package/dist/types-ibC3-e1N.mjs +2630 -0
- package/dist/useHelpbotApi-BIIungOh.js +1 -0
- package/dist/useHelpbotApi-HC9JSiSn.mjs +229 -0
- package/dist/vee-validate-zod-BQElPD0m.js +1 -0
- package/dist/vee-validate-zod-CN16K2x9.mjs +1780 -0
- package/package.json +2 -2
- package/src/formBuilder/tools.ts +1 -0
- package/dist/Detail-BCUUNWvp.js +0 -1
- package/dist/Detail-DGg_xXZc.js +0 -1
- package/dist/Detail-Sc2qZdxj.js +0 -1
- package/dist/TableView-BkwoKREo.js +0 -4
- package/dist/vee-validate-zod-SjDT8X35.mjs +0 -4404
- package/dist/vee-validate-zod-VCmLnrtQ.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),s=require("lucide-vue-next"),S=require("@oneclick.dev/cms-kit"),b=require("./index-ijdf0d9-.js"),l=require("./FormStatusBadge.vue_vue_type_script_setup_true_lang-BjKpsqT9.js"),fe={class:"flex flex-wrap items-center justify-between gap-3 border-y py-3"},pe={class:"flex items-center rounded-lg border bg-muted/40 p-1","aria-label":"Preview width"},ve={class:"overflow-auto rounded-lg bg-muted/40 p-3 sm:p-6"},xe={key:1,class:"flex min-h-[32rem] items-center justify-center p-8 text-center"},Ve=e.defineComponent({__name:"FormPreviewDialog",props:{open:{type:Boolean},name:{},definition:{}},emits:["update:open"],setup(P,{emit:L}){const w=P,M=L,p=e.ref("desktop"),N=e.ref(0),k=e.ref(l.cloneDefinition(w.definition)),v=e.computed({get:()=>w.open,set:n=>M("update:open",n)}),T=e.computed(()=>p.value==="mobile"?"390px":p.value==="tablet"?"768px":"100%");e.watch(()=>w.open,n=>{n&&(k.value=l.cloneDefinition(w.definition),N.value+=1)});const u=()=>{};return(n,o)=>{const F=e.resolveComponent("DialogTitle"),_=e.resolveComponent("DialogDescription"),m=e.resolveComponent("DialogHeader"),c=e.resolveComponent("Button"),z=e.resolveComponent("FormDisplayer"),$=e.resolveComponent("DialogScrollContent"),C=e.resolveComponent("Dialog");return e.openBlock(),e.createBlock(C,{open:v.value,"onUpdate:open":o[3]||(o[3]=r=>v.value=r)},{default:e.withCtx(()=>[e.createVNode($,{class:"max-h-[94vh] max-w-[calc(100vw-2rem)] sm:max-w-6xl"},{default:e.withCtx(()=>[e.createVNode(m,null,{default:e.withCtx(()=>[e.createVNode(F,null,{default:e.withCtx(()=>[e.createTextVNode("Preview "+e.toDisplayString(P.name||"untitled form"),1)]),_:1}),e.createVNode(_,null,{default:e.withCtx(()=>[...o[4]||(o[4]=[e.createTextVNode(" This preview runs locally in Studio. Completing it does not save a submission. ",-1)])]),_:1})]),_:1}),e.createElementVNode("div",fe,[o[8]||(o[8]=e.createElementVNode("p",{class:"text-sm text-muted-foreground"},"Draft definition",-1)),e.createElementVNode("div",pe,[e.createVNode(c,{size:"sm",variant:p.value==="mobile"?"secondary":"ghost","aria-label":"Mobile preview",onClick:o[0]||(o[0]=r=>p.value="mobile")},{default:e.withCtx(()=>[e.createVNode(e.unref(s.Smartphone),{class:"size-4"}),o[5]||(o[5]=e.createElementVNode("span",{class:"hidden sm:inline"},"Mobile",-1))]),_:1},8,["variant"]),e.createVNode(c,{size:"sm",variant:p.value==="tablet"?"secondary":"ghost","aria-label":"Tablet preview",onClick:o[1]||(o[1]=r=>p.value="tablet")},{default:e.withCtx(()=>[e.createVNode(e.unref(s.Tablet),{class:"size-4"}),o[6]||(o[6]=e.createElementVNode("span",{class:"hidden sm:inline"},"Tablet",-1))]),_:1},8,["variant"]),e.createVNode(c,{size:"sm",variant:p.value==="desktop"?"secondary":"ghost","aria-label":"Desktop preview",onClick:o[2]||(o[2]=r=>p.value="desktop")},{default:e.withCtx(()=>[e.createVNode(e.unref(s.Monitor),{class:"size-4"}),o[7]||(o[7]=e.createElementVNode("span",{class:"hidden sm:inline"},"Desktop",-1))]),_:1},8,["variant"])])]),e.createElementVNode("div",ve,[e.createElementVNode("div",{class:"mx-auto min-h-[32rem] overflow-hidden rounded-lg border bg-background shadow-sm transition-[width] duration-200",style:e.normalizeStyle({width:T.value,maxWidth:"100%"})},[e.unref(l.hasFormDefinition)(k.value)?(e.openBlock(),e.createBlock(z,{key:N.value,settings:k.value,"on-finish":u,variables:[],"input-values":{},"enable-actions":!1,class:"min-h-[32rem]"},null,8,["settings"])):(e.openBlock(),e.createElementBlock("div",xe,[...o[9]||(o[9]=[e.createElementVNode("div",null,[e.createElementVNode("p",{class:"font-medium"},"Nothing to preview yet"),e.createElementVNode("p",{class:"mt-1 text-sm text-muted-foreground"}," Open the builder and add at least one form element. ")],-1)])]))],4)])]),_:1})]),_:1},8,["open"])}}}),Ne={class:"mx-auto flex w-full max-w-7xl flex-1 flex-col px-4 py-5 sm:px-6 sm:py-8 lg:px-8"},ye={key:0,class:"flex min-h-96 items-center justify-center rounded-xl border border-dashed p-8"},he={class:"max-w-md text-center"},ge={class:"mx-auto flex size-11 items-center justify-center rounded-full bg-muted"},be={class:"mt-1 text-sm leading-6 text-muted-foreground"},ke={key:1,class:"space-y-6","aria-label":"Loading form"},we={class:"flex items-start justify-between gap-4"},_e={class:"space-y-3"},Ce={class:"grid gap-6 lg:grid-cols-[minmax(0,1fr)_20rem]"},Ee={class:"space-y-6"},Be={key:2,class:"flex min-h-96 items-center justify-center rounded-xl border border-destructive/30 bg-destructive/5 p-8"},De={class:"max-w-md text-center"},Se={class:"mt-1 text-sm leading-6 text-muted-foreground"},Te={class:"mt-5 flex flex-wrap justify-center gap-2"},Fe={class:"flex flex-col gap-5 border-b pb-6 xl:flex-row xl:items-start xl:justify-between"},ze={class:"min-w-0"},$e={class:"flex flex-wrap items-center gap-2"},Ue={class:"truncate text-2xl font-semibold tracking-tight sm:text-3xl"},je={key:0,class:"text-xs text-muted-foreground"},Re={class:"mt-2 max-w-2xl text-sm leading-6 text-muted-foreground"},Ae={class:"flex w-full flex-wrap items-center gap-2 xl:w-auto xl:justify-end"},Ie={key:0,class:"mt-5 flex items-start gap-3 rounded-lg border border-destructive/30 bg-destructive/5 p-4",role:"alert"},Pe={class:"min-w-0"},Le={class:"mt-1 break-words text-sm text-muted-foreground"},Me={key:1,class:"mt-5 flex items-start gap-3 rounded-lg border bg-muted/40 p-4"},Ke={class:"grid gap-6 py-6 lg:grid-cols-[minmax(0,1fr)_20rem]"},Oe={class:"min-w-0 space-y-6"},qe={class:"flex items-center gap-3"},He={class:"flex size-9 items-center justify-center rounded-lg bg-muted"},We={class:"space-y-2"},Ge={key:0,class:"text-xs text-destructive"},Je={key:1,class:"text-xs text-muted-foreground"},Ye={class:"space-y-2"},Qe={class:"flex items-center justify-between gap-2"},Xe={key:0,class:"text-xs text-destructive"},Ze={key:1,class:"text-xs text-muted-foreground"},et={class:"space-y-2 sm:col-span-2"},tt={class:"flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between"},ot={class:"flex items-start gap-3"},nt={class:"flex size-9 shrink-0 items-center justify-center rounded-lg bg-muted"},at={class:"rounded-lg border border-dashed bg-muted/20 px-5 py-10 text-center sm:py-14"},st={class:"mx-auto flex size-12 items-center justify-center rounded-xl border bg-background shadow-sm"},rt={class:"mt-4 font-medium"},lt={class:"mx-auto mt-1 max-w-lg text-sm leading-6 text-muted-foreground"},it={key:0,class:"mt-2 text-xs text-destructive"},dt={class:"space-y-6"},ct={class:"flex items-center justify-between gap-3"},ut={class:"flex items-center justify-between gap-3"},mt={class:"font-medium"},ft={class:"flex items-center justify-between gap-3"},pt={class:"font-medium"},vt={class:"flex items-start justify-between gap-3"},xt={class:"max-w-40 text-right font-medium"},Vt={class:"flex items-start gap-3"},Nt={class:"min-w-0"},yt={class:"mt-0.5 break-all text-xs text-muted-foreground"},ht={class:"flex items-start gap-3"},gt=e.defineComponent({__name:"Editor",setup(P){const{config:L}=S.useModule(),{moduleId:w,params:M,navigateTo:p}=S.useModuleRoute(),{hasPermission:N}=S.useModulePermissions(),{confirm:k}=S.useConfirmation(),v=S.useModuleApi(),T=e.computed(()=>M.value.formId),u=e.computed(()=>!T.value||T.value==="new"),n=e.ref(null),o=e.reactive({name:"",key:"",description:"",definition:l.createEmptyFormDefinition()}),F=e.ref(!1),_=e.ref(""),m=e.ref(""),c=e.ref(null),z=e.ref(JSON.stringify(o)),$=e.ref(!1),C=e.ref(!1),r=e.reactive({name:"",key:"",definition:""}),E=e.computed(()=>N("view-forms")),q=e.computed(()=>E.value&&N("create-form")),oe=e.computed(()=>E.value&&N("edit-form")),H=e.computed(()=>E.value&&N("publish-form")),j=e.computed(()=>E.value&&N("archive-form")),ne=e.computed(()=>u.value?q.value:E.value),x=e.computed(()=>n.value?.status==="archived"),B=e.computed(()=>!x.value&&(u.value?q.value:oe.value)),ae=e.computed(()=>B.value&&!c.value),V=e.computed(()=>c.value!==null),D=e.computed(()=>l.definitionFieldCount(o.definition)),W=e.computed(()=>n.value?.status??"draft"),G=e.computed(()=>!!(n.value?.hasUnpublishedChanges||n.value?.status==="published"&&y.value));function K(){return JSON.stringify({name:o.name,key:o.key,description:o.description,definition:o.definition})}const y=e.computed(()=>K()!==z.value),se=e.computed(()=>V.value?!0:u.value||y.value?!1:n.value?!n.value.hasUnpublishedChanges:!0);S.useModuleBreadcrumbs(()=>[{text:"Forms",href:"/forms"},{text:u.value?"New form":n.value?.name||"Form"}]),e.watch(()=>o.name,a=>{u.value&&!$.value&&(o.key=l.toFormKey(a))});function J(){r.name="",r.key="",r.definition=""}function Y(a=!1){return J(),o.name=o.name.trim(),o.key=o.key.trim().toLowerCase(),o.description=o.description.trim(),o.name||(r.name="Give this form a name."),o.key?l.isValidFormKey(o.key)||(r.key="Start with a letter and use lowercase letters, numbers, single hyphens, or underscores."):r.key="Give this form a machine key.",a&&!l.hasFormDefinition(o.definition)&&(r.definition="Add at least one form element before publishing."),!r.name&&!r.key&&!r.definition}function U(a){n.value=a,o.name=a.name??"",o.key=a.key??"",o.description=a.description??"",o.definition=l.cloneDefinition(a.definition??l.createEmptyFormDefinition()),z.value=K(),$.value=!0,m.value="",J()}async function Q(){if(u.value||!E.value){z.value=K();return}F.value=!0,_.value="";try{const a=T.value;if(!a)return;const t=await v.get(`/forms/${encodeURIComponent(a)}`);U(l.unwrapForm(t))}catch(a){_.value=l.readableError(a,"The form could not be loaded from Firebase.")}finally{F.value=!1}}async function X(a=!0){if(!B.value||!Y(!1))return null;c.value="save",m.value="";const t=u.value;try{const d={name:o.name,key:o.key,description:o.description,definition:l.cloneDefinition(o.definition)};let i;if(t)i=await v.post("/forms",{body:d});else{const g=n.value;if(!g)return null;d.expectedRevision=g.revision,i=await v.patch(`/forms/${encodeURIComponent(g.id)}/draft`,{body:d})}const h=l.unwrapForm(i);return U(h),t&&p(`forms/${encodeURIComponent(h.id)}`),a&&b.toast.success(t?"Form draft created":"Draft saved"),h}catch(d){const i=l.readableError(d,"The draft could not be saved.");return m.value=i,b.toast.error(i),null}finally{c.value=null}}async function re(){if(!H.value||x.value||!Y(!0)||!await k(`Publish “${o.name}”? Apps using this form will be able to load the new immutable revision.`))return;let t=n.value;if(!((u.value||y.value)&&(t=await X(!1),!t))&&t){c.value="publish",m.value="";try{const d=await v.post(`/forms/${encodeURIComponent(t.id)}/publish`,{body:{expectedRevision:t.revision}});U(l.unwrapForm(d)),b.toast.success("Form published")}catch(d){const i=l.readableError(d,"The form could not be published.");m.value=i,b.toast.error(i)}finally{c.value=null}}}async function le(){if(!n.value||!j.value||x.value)return;const a=y.value?" Unsaved draft changes will be discarded.":"";if(await k(`Archive “${o.name}”? It will remain in Firebase and can be restored later.${a}`)){c.value="archive",m.value="";try{const d=await v.post(`/forms/${encodeURIComponent(n.value.id)}/archive`,{body:{expectedRevision:n.value.revision}});U(l.unwrapForm(d)),b.toast.success("Form archived")}catch(d){const i=l.readableError(d,"The form could not be archived.");m.value=i,b.toast.error(i)}finally{c.value=null}}}async function ie(){if(!(!n.value||!j.value||!x.value)){c.value="restore",m.value="";try{const a=await v.post(`/forms/${encodeURIComponent(n.value.id)}/restore`,{body:{expectedRevision:n.value.revision}});U(l.unwrapForm(a)),b.toast.success("Form restored")}catch(a){const t=l.readableError(a,"The form could not be restored.");m.value=t,b.toast.error(t)}finally{c.value=null}}}async function Z(){y.value&&!V.value&&!await k("Discard your unsaved changes and return to the form library?")||p("forms")}function de(){$.value=!0}function ee(a){y.value&&(a.preventDefault(),a.returnValue="")}return e.onMounted(()=>{window.addEventListener("beforeunload",ee),Q()}),e.onBeforeUnmount(()=>{window.removeEventListener("beforeunload",ee)}),(a,t)=>{const d=e.resolveComponent("Skeleton"),i=e.resolveComponent("Button"),h=e.resolveComponent("CardTitle"),g=e.resolveComponent("CardDescription"),R=e.resolveComponent("CardHeader"),O=e.resolveComponent("Label"),te=e.resolveComponent("Input"),ce=e.resolveComponent("Textarea"),A=e.resolveComponent("CardContent"),I=e.resolveComponent("Card"),ue=e.resolveComponent("FormBuilderSelect"),me=e.resolveComponent("Separator");return e.openBlock(),e.createElementBlock("main",Ne,[e.createElementVNode("button",{type:"button",class:"mb-5 flex w-fit items-center gap-2 text-sm text-muted-foreground transition-colors hover:text-foreground",onClick:Z},[e.createVNode(e.unref(s.ArrowLeft),{class:"size-4"}),t[8]||(t[8]=e.createTextVNode(" Forms ",-1))]),ne.value?F.value?(e.openBlock(),e.createElementBlock("section",ke,[e.createElementVNode("div",we,[e.createElementVNode("div",_e,[e.createVNode(d,{class:"h-8 w-64"}),e.createVNode(d,{class:"h-4 w-80 max-w-full"})]),e.createVNode(d,{class:"h-10 w-28"})]),e.createElementVNode("div",Ce,[e.createElementVNode("div",Ee,[e.createVNode(d,{class:"h-72 w-full rounded-xl"}),e.createVNode(d,{class:"h-64 w-full rounded-xl"})]),e.createVNode(d,{class:"h-80 w-full rounded-xl"})])])):_.value?(e.openBlock(),e.createElementBlock("section",Be,[e.createElementVNode("div",De,[e.createVNode(e.unref(s.AlertCircle),{class:"mx-auto size-7 text-destructive"}),t[12]||(t[12]=e.createElementVNode("h1",{class:"mt-4 font-semibold"},"Could not load this form",-1)),e.createElementVNode("p",Se,e.toDisplayString(_.value),1),e.createElementVNode("div",Te,[e.createVNode(i,{variant:"outline",onClick:Z},{default:e.withCtx(()=>[...t[10]||(t[10]=[e.createTextVNode("Back to forms",-1)])]),_:1}),e.createVNode(i,{onClick:Q},{default:e.withCtx(()=>[e.createVNode(e.unref(s.RefreshCw),{class:"size-4"}),t[11]||(t[11]=e.createTextVNode(" Try again ",-1))]),_:1})])])])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createElementVNode("header",Fe,[e.createElementVNode("div",ze,[e.createElementVNode("div",$e,[e.createElementVNode("h1",Ue,e.toDisplayString(o.name||"Untitled form"),1),e.createVNode(l._sfc_main,{status:W.value,"has-unpublished-changes":G.value},null,8,["status","has-unpublished-changes"]),y.value?(e.openBlock(),e.createElementBlock("span",je,"Unsaved")):e.createCommentVNode("",!0)]),e.createElementVNode("p",Re,e.toDisplayString(u.value?"Create a reusable form definition in your connected Firebase database.":`Editing draft revision ${n.value?.draftRevision??n.value?.revision??0}. Published revisions stay immutable.`),1)]),e.createElementVNode("div",Ae,[e.createVNode(i,{variant:"outline",disabled:V.value,onClick:t[0]||(t[0]=f=>C.value=!0)},{default:e.withCtx(()=>[e.createVNode(e.unref(s.Eye),{class:"size-4"}),t[13]||(t[13]=e.createTextVNode(" Preview ",-1))]),_:1},8,["disabled"]),B.value?(e.openBlock(),e.createBlock(i,{key:0,variant:"outline",disabled:V.value||!u.value&&!y.value,onClick:t[1]||(t[1]=f=>X())},{default:e.withCtx(()=>[c.value==="save"?(e.openBlock(),e.createBlock(e.unref(s.Loader2),{key:0,class:"size-4 animate-spin"})):(e.openBlock(),e.createBlock(e.unref(s.Save),{key:1,class:"size-4"})),t[14]||(t[14]=e.createTextVNode(" Save draft ",-1))]),_:1},8,["disabled"])):e.createCommentVNode("",!0),H.value&&!x.value?(e.openBlock(),e.createBlock(i,{key:1,disabled:se.value,onClick:re},{default:e.withCtx(()=>[c.value==="publish"?(e.openBlock(),e.createBlock(e.unref(s.Loader2),{key:0,class:"size-4 animate-spin"})):(e.openBlock(),e.createBlock(e.unref(s.Send),{key:1,class:"size-4"})),t[15]||(t[15]=e.createTextVNode(" Publish ",-1))]),_:1},8,["disabled"])):e.createCommentVNode("",!0),n.value&&j.value&&!x.value?(e.openBlock(),e.createBlock(i,{key:2,variant:"ghost",disabled:V.value,onClick:le},{default:e.withCtx(()=>[c.value==="archive"?(e.openBlock(),e.createBlock(e.unref(s.Loader2),{key:0,class:"size-4 animate-spin"})):(e.openBlock(),e.createBlock(e.unref(s.Archive),{key:1,class:"size-4"})),t[16]||(t[16]=e.createTextVNode(" Archive ",-1))]),_:1},8,["disabled"])):e.createCommentVNode("",!0),n.value&&j.value&&x.value?(e.openBlock(),e.createBlock(i,{key:3,disabled:V.value,onClick:ie},{default:e.withCtx(()=>[c.value==="restore"?(e.openBlock(),e.createBlock(e.unref(s.Loader2),{key:0,class:"size-4 animate-spin"})):(e.openBlock(),e.createBlock(e.unref(s.ArchiveRestore),{key:1,class:"size-4"})),t[17]||(t[17]=e.createTextVNode(" Restore form ",-1))]),_:1},8,["disabled"])):e.createCommentVNode("",!0)])]),m.value?(e.openBlock(),e.createElementBlock("div",Ie,[e.createVNode(e.unref(s.AlertCircle),{class:"mt-0.5 size-5 shrink-0 text-destructive"}),e.createElementVNode("div",Pe,[t[18]||(t[18]=e.createElementVNode("p",{class:"font-medium"},"The action did not complete",-1)),e.createElementVNode("p",Le,e.toDisplayString(m.value),1),t[19]||(t[19]=e.createElementVNode("p",{class:"mt-1 text-xs text-muted-foreground"}," If another editor changed this form, reload before trying again. ",-1))])])):e.createCommentVNode("",!0),x.value?(e.openBlock(),e.createElementBlock("div",Me,[e.createVNode(e.unref(s.Archive),{class:"mt-0.5 size-5 shrink-0 text-muted-foreground"}),t[20]||(t[20]=e.createElementVNode("div",null,[e.createElementVNode("p",{class:"font-medium"},"This form is archived"),e.createElementVNode("p",{class:"mt-1 text-sm text-muted-foreground"}," Its stored definition is read-only until someone with archive permission restores it. ")],-1))])):e.createCommentVNode("",!0),e.createElementVNode("div",Ke,[e.createElementVNode("div",Oe,[e.createVNode(I,null,{default:e.withCtx(()=>[e.createVNode(R,null,{default:e.withCtx(()=>[e.createElementVNode("div",qe,[e.createElementVNode("div",He,[e.createVNode(e.unref(s.Settings2),{class:"size-4"})]),e.createElementVNode("div",null,[e.createVNode(h,{class:"text-base"},{default:e.withCtx(()=>[...t[21]||(t[21]=[e.createTextVNode("Form details",-1)])]),_:1}),e.createVNode(g,null,{default:e.withCtx(()=>[...t[22]||(t[22]=[e.createTextVNode("Human-readable details and the stable key used by apps.",-1)])]),_:1})])])]),_:1}),e.createVNode(A,{class:"grid gap-5 sm:grid-cols-2"},{default:e.withCtx(()=>[e.createElementVNode("div",We,[e.createVNode(O,{for:"form-name"},{default:e.withCtx(()=>[...t[23]||(t[23]=[e.createTextVNode("Name",-1)])]),_:1}),e.createVNode(te,{id:"form-name",modelValue:o.name,"onUpdate:modelValue":t[2]||(t[2]=f=>o.name=f),placeholder:"Contact form",maxlength:"120",disabled:!B.value||V.value,"aria-invalid":!!r.name},null,8,["modelValue","disabled","aria-invalid"]),r.name?(e.openBlock(),e.createElementBlock("p",Ge,e.toDisplayString(r.name),1)):(e.openBlock(),e.createElementBlock("p",Je,"Shown to Studio users."))]),e.createElementVNode("div",Ye,[e.createElementVNode("div",Qe,[e.createVNode(O,{for:"form-key"},{default:e.withCtx(()=>[...t[24]||(t[24]=[e.createTextVNode("Machine key",-1)])]),_:1}),u.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(s.LockKeyhole),{key:0,class:"size-3.5 text-muted-foreground","aria-label":"Key is locked"}))]),e.createVNode(te,{id:"form-key",modelValue:o.key,"onUpdate:modelValue":t[3]||(t[3]=f=>o.key=f),placeholder:"contact-form",maxlength:"80",disabled:!B.value||!u.value||V.value,"aria-invalid":!!r.key,onInput:de},null,8,["modelValue","disabled","aria-invalid"]),r.key?(e.openBlock(),e.createElementBlock("p",Xe,e.toDisplayString(r.key),1)):(e.openBlock(),e.createElementBlock("p",Ze,e.toDisplayString(u.value?"Cannot be changed after the first save.":"Locked so app references remain stable."),1))]),e.createElementVNode("div",et,[e.createVNode(O,{for:"form-description"},{default:e.withCtx(()=>[...t[25]||(t[25]=[e.createTextVNode("Description",-1)])]),_:1}),e.createVNode(ce,{id:"form-description",modelValue:o.description,"onUpdate:modelValue":t[4]||(t[4]=f=>o.description=f),rows:"3",maxlength:"2000",placeholder:"What this form collects and where it is used.",disabled:!B.value||V.value},null,8,["modelValue","disabled"]),t[26]||(t[26]=e.createElementVNode("p",{class:"text-xs text-muted-foreground"},"Internal context for editors; it is not rendered in the form.",-1))])]),_:1})]),_:1}),e.createVNode(I,{class:e.normalizeClass(r.definition?"border-destructive/50":"")},{default:e.withCtx(()=>[e.createVNode(R,null,{default:e.withCtx(()=>[e.createElementVNode("div",tt,[e.createElementVNode("div",ot,[e.createElementVNode("div",nt,[e.createVNode(e.unref(s.FileText),{class:"size-4"})]),e.createElementVNode("div",null,[e.createVNode(h,{class:"text-base"},{default:e.withCtx(()=>[...t[27]||(t[27]=[e.createTextVNode("Form canvas",-1)])]),_:1}),e.createVNode(g,{class:"mt-1"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(D.value===0?"No elements have been added yet.":`${D.value} top-level ${D.value===1?"element":"elements"} in this draft.`),1)]),_:1})])]),ae.value?(e.openBlock(),e.createBlock(ue,{key:0,modelValue:o.definition,"onUpdate:modelValue":t[5]||(t[5]=f=>o.definition=f),"build-text":D.value===0?"Build form":"Edit form","edit-text":"Edit form"},null,8,["modelValue","build-text"])):x.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(i,{key:1,variant:"outline",disabled:""},{default:e.withCtx(()=>[e.createVNode(e.unref(s.LockKeyhole),{class:"size-4"}),t[28]||(t[28]=e.createTextVNode(" Read only ",-1))]),_:1}))])]),_:1}),e.createVNode(A,null,{default:e.withCtx(()=>[e.createElementVNode("div",at,[e.createElementVNode("div",st,[e.createVNode(e.unref(s.FileText),{class:"size-5 text-muted-foreground"})]),e.createElementVNode("p",rt,e.toDisplayString(D.value>0?"Draft definition ready":"Start with a blank form"),1),e.createElementVNode("p",lt,e.toDisplayString(D.value>0?"Open the builder to change fields, validation, layout, conditions, and output behavior.":"Open the builder to add fields and configure how this form behaves. Saving keeps it a private draft."),1),e.createVNode(i,{variant:"outline",class:"mt-5",onClick:t[6]||(t[6]=f=>C.value=!0)},{default:e.withCtx(()=>[e.createVNode(e.unref(s.Eye),{class:"size-4"}),t[29]||(t[29]=e.createTextVNode(" Preview draft ",-1))]),_:1})]),r.definition?(e.openBlock(),e.createElementBlock("p",it,e.toDisplayString(r.definition),1)):e.createCommentVNode("",!0)]),_:1})]),_:1},8,["class"])]),e.createElementVNode("aside",dt,[e.createVNode(I,null,{default:e.withCtx(()=>[e.createVNode(R,null,{default:e.withCtx(()=>[e.createVNode(h,{class:"text-base"},{default:e.withCtx(()=>[...t[30]||(t[30]=[e.createTextVNode("Publication",-1)])]),_:1}),e.createVNode(g,null,{default:e.withCtx(()=>[...t[31]||(t[31]=[e.createTextVNode("Revision state stored in Firebase.",-1)])]),_:1})]),_:1}),e.createVNode(A,{class:"space-y-4 text-sm"},{default:e.withCtx(()=>[e.createElementVNode("div",ct,[t[32]||(t[32]=e.createElementVNode("span",{class:"text-muted-foreground"},"Status",-1)),e.createVNode(l._sfc_main,{status:W.value,"has-unpublished-changes":G.value},null,8,["status","has-unpublished-changes"])]),e.createVNode(me),e.createElementVNode("div",ut,[t[33]||(t[33]=e.createElementVNode("span",{class:"text-muted-foreground"},"Draft revision",-1)),e.createElementVNode("span",mt,e.toDisplayString(n.value?.draftRevision??n.value?.revision??"Not saved"),1)]),e.createElementVNode("div",ft,[t[34]||(t[34]=e.createElementVNode("span",{class:"text-muted-foreground"},"Published revision",-1)),e.createElementVNode("span",pt,e.toDisplayString(n.value?.publishedRevision??"None"),1)]),e.createElementVNode("div",vt,[t[35]||(t[35]=e.createElementVNode("span",{class:"text-muted-foreground"},"Last updated",-1)),e.createElementVNode("span",xt,e.toDisplayString(e.unref(l.formatFormDate)(n.value?.updatedAt)),1)])]),_:1})]),_:1}),e.createVNode(I,null,{default:e.withCtx(()=>[e.createVNode(R,null,{default:e.withCtx(()=>[e.createVNode(h,{class:"text-base"},{default:e.withCtx(()=>[...t[36]||(t[36]=[e.createTextVNode("Storage",-1)])]),_:1}),e.createVNode(g,null,{default:e.withCtx(()=>[...t[37]||(t[37]=[e.createTextVNode("The configured definition source.",-1)])]),_:1})]),_:1}),e.createVNode(A,{class:"space-y-4 text-sm"},{default:e.withCtx(()=>[e.createElementVNode("div",Vt,[e.createVNode(e.unref(s.Database),{class:"mt-0.5 size-4 shrink-0 text-muted-foreground"}),e.createElementVNode("div",Nt,[t[38]||(t[38]=e.createElementVNode("p",{class:"font-medium"},"Firebase",-1)),e.createElementVNode("p",yt,e.toDisplayString(e.unref(L).formsCollection)+"/"+e.toDisplayString(e.unref(w))+"/forms ",1)])]),e.createElementVNode("div",ht,[e.createVNode(e.unref(s.Clock3),{class:"mt-0.5 size-4 shrink-0 text-muted-foreground"}),t[39]||(t[39]=e.createElementVNode("p",{class:"text-xs leading-5 text-muted-foreground"}," Publishing writes an immutable revision; it does not overwrite a previously published definition. ",-1))])]),_:1})]),_:1})])])],64)):(e.openBlock(),e.createElementBlock("section",ye,[e.createElementVNode("div",he,[e.createElementVNode("div",ge,[e.createVNode(e.unref(s.ShieldAlert),{class:"size-5 text-muted-foreground"})]),t[9]||(t[9]=e.createElementVNode("h1",{class:"mt-4 font-semibold"},"Permission required",-1)),e.createElementVNode("p",be," You do not have permission to "+e.toDisplayString(u.value?"create":"view")+" this form. ",1)])])),e.createVNode(Ve,{open:C.value,"onUpdate:open":t[7]||(t[7]=f=>C.value=f),name:o.name,definition:o.definition},null,8,["open","name","definition"])])}}});exports.default=gt;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const t=require("vue");function s(e){return Array.isArray(e)?e:e.forms??[]}function o(e){return"form"in e?e.form:e}function i(e,r){if(!e||typeof e!="object")return r;const a=e;return a.data?.statusMessage||a.data?.message||a.statusMessage||a.message||r}function u(e){const r=e.trim().toLowerCase().normalize("NFKD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-");return r?/^[a-z]/.test(r)?r:`form-${r}`:""}function m(e){return/^[a-z][a-z0-9]*(?:[-_][a-z0-9]+)*$/.test(e)}function d(e){return e?Array.isArray(e.layout)&&e.layout.length>0:!1}function l(e){return e&&Array.isArray(e.layout)?e.layout.length:0}function c(){return{layout:[],variables:[],transformers:[],apiActions:[],outputConfig:{mode:"basic",basicVariables:[],advancedCode:""},startupScript:""}}function f(e){return JSON.parse(JSON.stringify(e))}function b(e){if(e==null||e==="")return"Not saved yet";const r=new Date(e);return Number.isNaN(r.getTime())?"Date unavailable":new Intl.DateTimeFormat(void 0,{dateStyle:"medium",timeStyle:"short"}).format(r)}const p=t.defineComponent({__name:"FormStatusBadge",props:{status:{},hasUnpublishedChanges:{type:Boolean,default:!1}},setup(e){const r=e,a=t.computed(()=>r.status==="archived"?"Archived":r.status==="published"&&r.hasUnpublishedChanges?"Unpublished changes":r.status==="published"?"Published":"Draft"),n=t.computed(()=>r.status==="archived"?"border-border bg-muted text-muted-foreground":r.status==="published"&&r.hasUnpublishedChanges?"border-amber-300/70 bg-amber-50 text-amber-800 dark:border-amber-700/70 dark:bg-amber-950/40 dark:text-amber-300":r.status==="published"?"border-emerald-300/70 bg-emerald-50 text-emerald-800 dark:border-emerald-700/70 dark:bg-emerald-950/40 dark:text-emerald-300":"border-sky-300/70 bg-sky-50 text-sky-800 dark:border-sky-700/70 dark:bg-sky-950/40 dark:text-sky-300");return(g,y)=>(t.openBlock(),t.createElementBlock("span",{class:t.normalizeClass(["inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-medium",n.value])},t.toDisplayString(a.value),3))}});exports._sfc_main=p;exports.cloneDefinition=f;exports.createEmptyFormDefinition=c;exports.definitionFieldCount=l;exports.formatFormDate=b;exports.hasFormDefinition=d;exports.isValidFormKey=m;exports.readableError=i;exports.toFormKey=u;exports.unwrapForm=o;exports.unwrapForms=s;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { defineComponent as n, computed as a, openBlock as u, createElementBlock as o, normalizeClass as i, toDisplayString as d } from "vue";
|
|
2
|
+
function f(e) {
|
|
3
|
+
return Array.isArray(e) ? e : e.forms ?? [];
|
|
4
|
+
}
|
|
5
|
+
function b(e) {
|
|
6
|
+
return "form" in e ? e.form : e;
|
|
7
|
+
}
|
|
8
|
+
function p(e, r) {
|
|
9
|
+
if (!e || typeof e != "object") return r;
|
|
10
|
+
const t = e;
|
|
11
|
+
return t.data?.statusMessage || t.data?.message || t.statusMessage || t.message || r;
|
|
12
|
+
}
|
|
13
|
+
function g(e) {
|
|
14
|
+
const r = e.trim().toLowerCase().normalize("NFKD").replace(/[\u0300-\u036f]/g, "").replace(/[^a-z0-9_-]+/g, "-").replace(/^-+|-+$/g, "").replace(/-{2,}/g, "-");
|
|
15
|
+
return r ? /^[a-z]/.test(r) ? r : `form-${r}` : "";
|
|
16
|
+
}
|
|
17
|
+
function h(e) {
|
|
18
|
+
return /^[a-z][a-z0-9]*(?:[-_][a-z0-9]+)*$/.test(e);
|
|
19
|
+
}
|
|
20
|
+
function y(e) {
|
|
21
|
+
return e ? Array.isArray(e.layout) && e.layout.length > 0 : !1;
|
|
22
|
+
}
|
|
23
|
+
function k(e) {
|
|
24
|
+
return e && Array.isArray(e.layout) ? e.layout.length : 0;
|
|
25
|
+
}
|
|
26
|
+
function x() {
|
|
27
|
+
return {
|
|
28
|
+
layout: [],
|
|
29
|
+
variables: [],
|
|
30
|
+
transformers: [],
|
|
31
|
+
apiActions: [],
|
|
32
|
+
outputConfig: {
|
|
33
|
+
mode: "basic",
|
|
34
|
+
basicVariables: [],
|
|
35
|
+
advancedCode: ""
|
|
36
|
+
},
|
|
37
|
+
startupScript: ""
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function F(e) {
|
|
41
|
+
return JSON.parse(JSON.stringify(e));
|
|
42
|
+
}
|
|
43
|
+
function C(e) {
|
|
44
|
+
if (e == null || e === "") return "Not saved yet";
|
|
45
|
+
const r = new Date(e);
|
|
46
|
+
return Number.isNaN(r.getTime()) ? "Date unavailable" : new Intl.DateTimeFormat(void 0, {
|
|
47
|
+
dateStyle: "medium",
|
|
48
|
+
timeStyle: "short"
|
|
49
|
+
}).format(r);
|
|
50
|
+
}
|
|
51
|
+
const D = /* @__PURE__ */ n({
|
|
52
|
+
__name: "FormStatusBadge",
|
|
53
|
+
props: {
|
|
54
|
+
status: {},
|
|
55
|
+
hasUnpublishedChanges: { type: Boolean, default: !1 }
|
|
56
|
+
},
|
|
57
|
+
setup(e) {
|
|
58
|
+
const r = e, t = a(() => r.status === "archived" ? "Archived" : r.status === "published" && r.hasUnpublishedChanges ? "Unpublished changes" : r.status === "published" ? "Published" : "Draft"), s = a(() => r.status === "archived" ? "border-border bg-muted text-muted-foreground" : r.status === "published" && r.hasUnpublishedChanges ? "border-amber-300/70 bg-amber-50 text-amber-800 dark:border-amber-700/70 dark:bg-amber-950/40 dark:text-amber-300" : r.status === "published" ? "border-emerald-300/70 bg-emerald-50 text-emerald-800 dark:border-emerald-700/70 dark:bg-emerald-950/40 dark:text-emerald-300" : "border-sky-300/70 bg-sky-50 text-sky-800 dark:border-sky-700/70 dark:bg-sky-950/40 dark:text-sky-300");
|
|
59
|
+
return (m, l) => (u(), o("span", {
|
|
60
|
+
class: i(["inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-medium", s.value])
|
|
61
|
+
}, d(t.value), 3));
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
export {
|
|
65
|
+
D as _,
|
|
66
|
+
x as a,
|
|
67
|
+
b,
|
|
68
|
+
F as c,
|
|
69
|
+
k as d,
|
|
70
|
+
C as f,
|
|
71
|
+
y as h,
|
|
72
|
+
h as i,
|
|
73
|
+
p as r,
|
|
74
|
+
g as t,
|
|
75
|
+
f as u
|
|
76
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),a=require("lucide-vue-next"),V=require("./index-ijdf0d9-.js"),se=require("@oneclick.dev/cms-kit"),b=require("./useHelpbotApi-BIIungOh.js"),pe={class:"mx-auto flex w-full max-w-7xl flex-col gap-6 py-6 @3xl:py-8"},ve={class:"flex flex-col gap-4 @2xl:flex-row @2xl:items-start @2xl:justify-between"},fe={class:"flex items-center gap-2"},xe={class:"flex items-start gap-3 rounded-xl border bg-muted/30 px-4 py-3 text-sm"},ge={key:0,class:"flex items-start gap-3 rounded-xl border border-destructive/30 bg-destructive/5 px-4 py-3 text-sm",role:"alert"},ke={class:"flex-1"},we={class:"mt-0.5 text-muted-foreground"},Ne={class:"flex flex-col gap-3 @2xl:flex-row @2xl:items-center @2xl:justify-between"},Ve={class:"ml-2 rounded-full bg-background/70 px-2 py-0.5 text-[11px] tabular-nums"},be={class:"ml-2 rounded-full bg-background/70 px-2 py-0.5 text-[11px] tabular-nums"},he={class:"flex w-full flex-col gap-2 @md:flex-row @2xl:w-auto"},Ce={class:"relative min-w-0 flex-1 @2xl:w-72"},ye={key:0,class:"grid gap-3 @2xl:grid-cols-2"},_e={key:1,class:"rounded-xl border-2 border-dashed px-6 py-14 text-center"},Be={class:"mx-auto grid size-12 place-items-center rounded-xl bg-muted text-muted-foreground"},Ee={class:"mt-4 font-semibold"},De={class:"mx-auto mt-1 max-w-md text-sm leading-6 text-muted-foreground"},Te={key:2,class:"grid gap-3 @2xl:grid-cols-2"},Se={class:"flex min-w-0 items-start justify-between gap-3"},Fe={class:"min-w-0"},ze=["title"],Pe={key:0,class:"mt-1 text-xs text-muted-foreground"},Ae={class:"mt-3 line-clamp-2 min-h-10 text-sm leading-5 text-muted-foreground"},$e={class:"mt-4 flex items-center justify-end gap-1 border-t pt-3"},Me={key:0,class:"space-y-3"},Ue={key:1,class:"rounded-xl border-2 border-dashed px-6 py-14 text-center"},Le={class:"mx-auto grid size-12 place-items-center rounded-xl bg-muted text-muted-foreground"},Re={class:"mt-4 font-semibold"},He={class:"mx-auto mt-1 max-w-md text-sm leading-6 text-muted-foreground"},je={key:2,class:"space-y-3"},Ie={class:"flex min-w-0 flex-1 items-center gap-3"},Ke={class:"grid size-10 shrink-0 place-items-center rounded-lg bg-red-500/10 text-red-600 dark:text-red-400"},qe={class:"min-w-0"},Oe=["title"],We={class:"mt-0.5 text-xs text-muted-foreground"},Qe={class:"flex items-center justify-between gap-2 @md:justify-end"},Ge={key:0,class:"space-y-3 py-2"},Je={key:1,class:"space-y-4"},Xe={class:"mt-1 font-medium"},Ye={class:"mt-2 max-h-[50vh] overflow-y-auto rounded-lg border bg-muted/20 p-4 text-sm leading-6 whitespace-pre-wrap"},Ze={class:"space-y-1.5"},et={class:"space-y-1.5"},tt={key:3,class:"flex items-start gap-2 rounded-lg bg-destructive/10 px-3 py-2 text-sm text-destructive",role:"alert"},lt=["disabled"],ot={class:"grid size-11 place-items-center rounded-xl bg-primary/10 text-primary"},at={class:"mt-3 max-w-full truncate text-sm font-medium"},st={class:"mt-1 text-xs text-muted-foreground"},nt={key:0,class:"flex items-start gap-2 rounded-lg bg-destructive/10 px-3 py-2 text-sm text-destructive",role:"alert"},rt=e.defineComponent({__name:"Knowledge",setup(it){se.useModuleBreadcrumbs(()=>[{text:"Knowledge"}]);const{confirm:R}=se.useConfirmation(),c=b.useHelpbotApi(),T=e.ref("answers"),u=e.ref(""),S=e.ref([]),F=e.ref([]),E=e.ref(null),g=e.ref(!0),z=e.ref(""),h=e.ref(!1),d=e.ref("create"),U=e.ref(""),p=e.ref(""),v=e.ref(""),P=e.ref(!1),k=e.ref(!1),f=e.ref(""),D=e.ref(!1),A=e.ref(null),r=e.ref(null),w=e.ref(!1),m=e.ref(""),x=e.ref(""),H=e.computed(()=>E.value?.permissions.canManageKnowledge===!0),n=e.computed(()=>H.value&&E.value?.configured!==!1&&E.value?.connected!==!1),$=e.computed(()=>u.value.trim().toLowerCase()),j=e.computed(()=>$.value?S.value.filter(o=>`${o.title} ${o.preview}`.toLowerCase().includes($.value)):S.value),I=e.computed(()=>$.value?F.value.filter(o=>o.filename.toLowerCase().includes($.value)):F.value),K={available:{label:"Available",className:"bg-emerald-500/10 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300",icon:a.CheckCircle2},processing:{label:"Processing",className:"bg-amber-500/10 text-amber-700 dark:bg-amber-500/15 dark:text-amber-300",icon:a.Clock3},failed:{label:"Needs attention",className:"bg-destructive/10 text-destructive",icon:a.AlertCircle},unknown:{label:"Status pending",className:"bg-muted text-muted-foreground",icon:a.Clock3}};function C(o){return K[o]||K.unknown}function y(o){if(!o)return"";const t=new Date(o);return Number.isNaN(t.getTime())?"":new Intl.DateTimeFormat(void 0,{dateStyle:"medium"}).format(t)}function _(o){return!o||o<1?"":o<1024*1024?`${Math.max(1,Math.round(o/1024))} KB`:`${(o/(1024*1024)).toFixed(1)} MB`}async function N(o=!0){o&&(g.value=!0),z.value="";const[t,i,s]=await Promise.allSettled([c.getStatus(),c.listTexts(),c.listFiles()]);t.status==="fulfilled"&&(E.value=t.value),i.status==="fulfilled"&&(S.value=i.value),s.status==="fulfilled"&&(F.value=s.value);const B=[t,i,s].filter(L=>L.status==="rejected");B.length&&(z.value=b.getHelpbotErrorMessage(B[0].reason,B.length===3?"The helpbot knowledge could not be loaded.":"Some knowledge could not be loaded.")),g.value=!1}function q(){n.value&&(d.value="create",U.value="",p.value="",v.value="",f.value="",h.value=!0)}async function ne(o){d.value=n.value?"edit":"view",U.value=o.title,p.value=o.title,v.value=o.content||"",f.value="",P.value=!0,h.value=!0;try{const t=await c.getText(o.title);p.value=t.title||o.title,v.value=t.content||""}catch(t){f.value=b.getHelpbotErrorMessage(t,"This answer could not be opened.")}finally{P.value=!1}}async function O(){if(!n.value||d.value==="view")return;const o=p.value.trim(),t=v.value.trim();if(f.value="",!o||!t){f.value="Add both a title and an answer before saving.";return}k.value=!0;try{d.value==="create"?(await c.createText(o,t),V.toast.success("Answer added",{description:"It will become available after processing completes."})):(await c.updateText(U.value,o,t),V.toast.success("Answer updated",{description:"The updated answer is being prepared for the helpbot."})),h.value=!1,await N(!1)}catch(i){f.value=b.getHelpbotErrorMessage(i,"The answer could not be saved.")}finally{k.value=!1}}async function re(o){if(!(!n.value||!await R(`Remove “${o.title}” from the helpbot's knowledge?`,"Remove answer","Remove"))){x.value=`text:${o.title}`;try{await c.deleteText(o.title),V.toast.success("Answer removed"),await N(!1)}catch(i){V.toast.error("Could not remove answer",{description:b.getHelpbotErrorMessage(i)})}finally{x.value=""}}}function W(){n.value&&(r.value=null,m.value="",D.value=!0,e.nextTick(()=>{A.value&&(A.value.value="")}))}function ie(o){const t=o.target.files?.[0]||null;if(m.value="",!t){r.value=null;return}if(!t.name.toLowerCase().endsWith(".pdf")){r.value=null,m.value="Choose a PDF file.";return}if(t.size>15*1024*1024){r.value=null,m.value="Choose a PDF smaller than 15 MB.";return}r.value=t}async function de(){if(!n.value||!r.value){m.value="Choose a PDF file to upload.";return}w.value=!0,m.value="";try{const o=r.value.name;await c.uploadFile(r.value),D.value=!1,r.value=null,V.toast.success(`${o} uploaded`,{description:"It will become available after processing completes."}),await N(!1)}catch(o){m.value=b.getHelpbotErrorMessage(o,"The PDF could not be uploaded.")}finally{w.value=!1}}async function ce(o){if(!(!n.value||!await R(`Remove “${o.filename}” from the helpbot's knowledge?`,"Remove PDF","Remove"))){x.value=`file:${o.filename}`;try{await c.deleteFile(o.filename),V.toast.success("PDF removed"),await N(!1)}catch(i){V.toast.error("Could not remove PDF",{description:b.getHelpbotErrorMessage(i)})}finally{x.value=""}}}return e.onMounted(N),(o,t)=>{const i=e.resolveComponent("Badge"),s=e.resolveComponent("Button"),B=e.resolveComponent("TabsTrigger"),L=e.resolveComponent("TabsList"),Q=e.resolveComponent("Input"),M=e.resolveComponent("Skeleton"),G=e.resolveComponent("CardContent"),J=e.resolveComponent("Card"),X=e.resolveComponent("TabsContent"),ue=e.resolveComponent("Tabs"),Y=e.resolveComponent("DialogTitle"),Z=e.resolveComponent("DialogDescription"),ee=e.resolveComponent("DialogHeader"),me=e.resolveComponent("Textarea"),te=e.resolveComponent("DialogFooter"),le=e.resolveComponent("DialogContent"),oe=e.resolveComponent("Dialog");return e.openBlock(),e.createElementBlock("main",pe,[e.createElementVNode("header",ve,[t[12]||(t[12]=e.createElementVNode("div",{class:"max-w-2xl"},[e.createElementVNode("h1",{class:"text-2xl font-semibold tracking-tight @2xl:text-3xl"},"Knowledge"),e.createElementVNode("p",{class:"mt-2 text-sm leading-6 text-muted-foreground"}," Maintain the approved answers and PDF guides your website helpbot may use. ")],-1)),e.createElementVNode("div",fe,[!g.value&&E.value&&!H.value?(e.openBlock(),e.createBlock(i,{key:0,variant:"secondary"},{default:e.withCtx(()=>[...t[11]||(t[11]=[e.createTextVNode(" Read only ",-1)])]),_:1})):e.createCommentVNode("",!0),e.createVNode(s,{variant:"outline",size:"icon",disabled:g.value,"aria-label":"Refresh knowledge",onClick:t[0]||(t[0]=l=>N())},{default:e.withCtx(()=>[e.createVNode(e.unref(a.RefreshCw),{class:e.normalizeClass(["size-4",{"animate-spin":g.value}])},null,8,["class"])]),_:1},8,["disabled"])])]),e.createElementVNode("div",xe,[e.createVNode(e.unref(a.Clock3),{class:"mt-0.5 size-4 shrink-0 text-primary"}),t[13]||(t[13]=e.createElementVNode("p",{class:"leading-6 text-muted-foreground"}," Saved changes are processed before the helpbot can use them. Important answers should be checked in the private test after processing completes. ",-1))]),z.value?(e.openBlock(),e.createElementBlock("div",ge,[e.createVNode(e.unref(a.AlertCircle),{class:"mt-0.5 size-4 shrink-0 text-destructive"}),e.createElementVNode("div",ke,[t[14]||(t[14]=e.createElementVNode("p",{class:"font-medium"},"Some knowledge is unavailable",-1)),e.createElementVNode("p",we,e.toDisplayString(z.value),1)]),e.createVNode(s,{variant:"ghost",size:"sm",onClick:t[1]||(t[1]=l=>N())},{default:e.withCtx(()=>[...t[15]||(t[15]=[e.createTextVNode("Try again",-1)])]),_:1})])):e.createCommentVNode("",!0),e.createVNode(ue,{modelValue:T.value,"onUpdate:modelValue":t[3]||(t[3]=l=>T.value=l),class:"min-w-0"},{default:e.withCtx(()=>[e.createElementVNode("div",Ne,[e.createVNode(L,{class:"grid w-full grid-cols-2 @2xl:w-[340px]"},{default:e.withCtx(()=>[e.createVNode(B,{value:"answers"},{default:e.withCtx(()=>[t[16]||(t[16]=e.createTextVNode(" Answers ",-1)),e.createElementVNode("span",Ve,e.toDisplayString(S.value.length),1)]),_:1}),e.createVNode(B,{value:"files"},{default:e.withCtx(()=>[t[17]||(t[17]=e.createTextVNode(" PDF guides ",-1)),e.createElementVNode("span",be,e.toDisplayString(F.value.length),1)]),_:1})]),_:1}),e.createElementVNode("div",he,[e.createElementVNode("div",Ce,[e.createVNode(e.unref(a.Search),{class:"pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),e.createVNode(Q,{modelValue:u.value,"onUpdate:modelValue":t[2]||(t[2]=l=>u.value=l),class:"pl-9",placeholder:T.value==="answers"?"Search answers…":"Search PDF guides…"},null,8,["modelValue","placeholder"])]),n.value&&T.value==="answers"?(e.openBlock(),e.createBlock(s,{key:0,class:"shrink-0",onClick:q},{default:e.withCtx(()=>[e.createVNode(e.unref(a.Plus),{class:"mr-2 size-4"}),t[18]||(t[18]=e.createTextVNode(" Add answer ",-1))]),_:1})):n.value?(e.openBlock(),e.createBlock(s,{key:1,class:"shrink-0",onClick:W},{default:e.withCtx(()=>[e.createVNode(e.unref(a.Upload),{class:"mr-2 size-4"}),t[19]||(t[19]=e.createTextVNode(" Upload PDF ",-1))]),_:1})):e.createCommentVNode("",!0)])]),e.createVNode(X,{value:"answers",class:"mt-5"},{default:e.withCtx(()=>[g.value?(e.openBlock(),e.createElementBlock("div",ye,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(4,l=>e.createVNode(M,{key:l,class:"h-36 rounded-xl"})),64))])):j.value.length===0?(e.openBlock(),e.createElementBlock("div",_e,[e.createElementVNode("div",Be,[e.createVNode(e.unref(a.BookOpen),{class:"size-6"})]),e.createElementVNode("h2",Ee,e.toDisplayString(u.value?"No matching answers":"No saved answers yet"),1),e.createElementVNode("p",De,e.toDisplayString(u.value?"Try a different search term.":"Add the first approved business answer for your website helpbot."),1),n.value&&!u.value?(e.openBlock(),e.createBlock(s,{key:0,variant:"outline",class:"mt-4",onClick:q},{default:e.withCtx(()=>[e.createVNode(e.unref(a.Plus),{class:"mr-2 size-4"}),t[20]||(t[20]=e.createTextVNode(" Add first answer ",-1))]),_:1})):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",Te,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(j.value,l=>(e.openBlock(),e.createBlock(J,{key:l.title,class:"min-w-0"},{default:e.withCtx(()=>[e.createVNode(G,{class:"flex h-full flex-col p-5"},{default:e.withCtx(()=>[e.createElementVNode("div",Se,[e.createElementVNode("div",Fe,[e.createElementVNode("h2",{class:"truncate font-semibold",title:l.title},e.toDisplayString(l.title),9,ze),y(l.updatedAt)?(e.openBlock(),e.createElementBlock("p",Pe," Updated "+e.toDisplayString(y(l.updatedAt)),1)):e.createCommentVNode("",!0)]),e.createElementVNode("span",{class:e.normalizeClass(["inline-flex shrink-0 items-center gap-1.5 rounded-full px-2.5 py-1 text-xs font-medium",C(l.status).className])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(C(l.status).icon),{class:"size-3.5"})),e.createTextVNode(" "+e.toDisplayString(C(l.status).label),1)],2)]),e.createElementVNode("p",Ae,e.toDisplayString(l.preview||"Open this answer to review its full content."),1),e.createElementVNode("div",$e,[e.createVNode(s,{variant:"ghost",size:"sm",onClick:ae=>ne(l)},{default:e.withCtx(()=>[n.value?(e.openBlock(),e.createBlock(e.unref(a.Pencil),{key:0,class:"mr-2 size-4"})):(e.openBlock(),e.createBlock(e.unref(a.Eye),{key:1,class:"mr-2 size-4"})),e.createTextVNode(" "+e.toDisplayString(n.value?"Edit":"View"),1)]),_:1},8,["onClick"]),n.value?(e.openBlock(),e.createBlock(s,{key:0,variant:"ghost",size:"icon",class:"size-9 text-destructive hover:text-destructive",disabled:x.value===`text:${l.title}`,"aria-label":`Remove ${l.title}`,onClick:ae=>re(l)},{default:e.withCtx(()=>[x.value===`text:${l.title}`?(e.openBlock(),e.createBlock(e.unref(a.Loader2),{key:0,class:"size-4 animate-spin"})):(e.openBlock(),e.createBlock(e.unref(a.Trash2),{key:1,class:"size-4"}))]),_:2},1032,["disabled","aria-label","onClick"])):e.createCommentVNode("",!0)])]),_:2},1024)]),_:2},1024))),128))]))]),_:1}),e.createVNode(X,{value:"files",class:"mt-5"},{default:e.withCtx(()=>[g.value?(e.openBlock(),e.createElementBlock("div",Me,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(3,l=>e.createVNode(M,{key:l,class:"h-20 rounded-xl"})),64))])):I.value.length===0?(e.openBlock(),e.createElementBlock("div",Ue,[e.createElementVNode("div",Le,[e.createVNode(e.unref(a.FileText),{class:"size-6"})]),e.createElementVNode("h2",Re,e.toDisplayString(u.value?"No matching PDF guides":"No PDF guides yet"),1),e.createElementVNode("p",He,e.toDisplayString(u.value?"Try a different filename.":"Upload approved menus, policies, product guides, or other reference documents."),1),n.value&&!u.value?(e.openBlock(),e.createBlock(s,{key:0,variant:"outline",class:"mt-4",onClick:W},{default:e.withCtx(()=>[e.createVNode(e.unref(a.Upload),{class:"mr-2 size-4"}),t[21]||(t[21]=e.createTextVNode(" Upload first PDF ",-1))]),_:1})):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",je,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(I.value,l=>(e.openBlock(),e.createBlock(J,{key:l.filename},{default:e.withCtx(()=>[e.createVNode(G,{class:"flex flex-col gap-4 p-4 @md:flex-row @md:items-center"},{default:e.withCtx(()=>[e.createElementVNode("div",Ie,[e.createElementVNode("div",Ke,[e.createVNode(e.unref(a.FileText),{class:"size-5"})]),e.createElementVNode("div",qe,[e.createElementVNode("p",{class:"truncate text-sm font-medium",title:l.filename},e.toDisplayString(l.filename),9,Oe),e.createElementVNode("p",We,[_(l.size)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(_(l.size)),1)],64)):e.createCommentVNode("",!0),_(l.size)&&l.pages?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(" · ")],64)):e.createCommentVNode("",!0),l.pages?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createTextVNode(e.toDisplayString(l.pages)+" page"+e.toDisplayString(l.pages===1?"":"s"),1)],64)):e.createCommentVNode("",!0),(_(l.size)||l.pages)&&y(l.updatedAt)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createTextVNode(" · ")],64)):e.createCommentVNode("",!0),y(l.updatedAt)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.createTextVNode("Updated "+e.toDisplayString(y(l.updatedAt)),1)],64)):e.createCommentVNode("",!0),!_(l.size)&&!l.pages&&!y(l.updatedAt)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:5},[e.createTextVNode(" PDF guide ")],64)):e.createCommentVNode("",!0)])])]),e.createElementVNode("div",Qe,[e.createElementVNode("span",{class:e.normalizeClass(["inline-flex items-center gap-1.5 rounded-full px-2.5 py-1 text-xs font-medium",C(l.status).className])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(C(l.status).icon),{class:"size-3.5"})),e.createTextVNode(" "+e.toDisplayString(C(l.status).label),1)],2),n.value?(e.openBlock(),e.createBlock(s,{key:0,variant:"ghost",size:"icon",class:"size-9 text-destructive hover:text-destructive",disabled:x.value===`file:${l.filename}`,"aria-label":`Remove ${l.filename}`,onClick:ae=>ce(l)},{default:e.withCtx(()=>[x.value===`file:${l.filename}`?(e.openBlock(),e.createBlock(e.unref(a.Loader2),{key:0,class:"size-4 animate-spin"})):(e.openBlock(),e.createBlock(e.unref(a.Trash2),{key:1,class:"size-4"}))]),_:2},1032,["disabled","aria-label","onClick"])):e.createCommentVNode("",!0)])]),_:2},1024)]),_:2},1024))),128))]))]),_:1})]),_:1},8,["modelValue"]),e.createVNode(oe,{open:h.value,"onUpdate:open":t[7]||(t[7]=l=>h.value=l)},{default:e.withCtx(()=>[e.createVNode(le,{class:"sm:max-w-2xl"},{default:e.withCtx(()=>[e.createVNode(ee,null,{default:e.withCtx(()=>[e.createVNode(Y,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(d.value==="create"?"Add an answer":d.value==="edit"?"Edit answer":"Review answer"),1)]),_:1}),e.createVNode(Z,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(d.value==="view"?"This approved information is available to the website helpbot.":"Write the approved information as clearly and completely as possible."),1)]),_:1})]),_:1}),P.value?(e.openBlock(),e.createElementBlock("div",Ge,[e.createVNode(M,{class:"h-10 w-full"}),e.createVNode(M,{class:"h-56 w-full"})])):d.value==="view"?(e.openBlock(),e.createElementBlock("div",Je,[e.createElementVNode("div",null,[t[22]||(t[22]=e.createElementVNode("p",{class:"text-xs font-medium uppercase tracking-wide text-muted-foreground"},"Topic",-1)),e.createElementVNode("p",Xe,e.toDisplayString(p.value),1)]),e.createElementVNode("div",null,[t[23]||(t[23]=e.createElementVNode("p",{class:"text-xs font-medium uppercase tracking-wide text-muted-foreground"},"Answer",-1)),e.createElementVNode("div",Ye,e.toDisplayString(v.value||"No answer content is available."),1)])])):(e.openBlock(),e.createElementBlock("form",{key:2,class:"space-y-4",onSubmit:e.withModifiers(O,["prevent"])},[e.createElementVNode("div",Ze,[t[24]||(t[24]=e.createElementVNode("label",{for:"helpbot-answer-title",class:"text-sm font-medium"},"Topic or question",-1)),e.createVNode(Q,{id:"helpbot-answer-title",modelValue:p.value,"onUpdate:modelValue":t[4]||(t[4]=l=>p.value=l),placeholder:"For example: Opening hours",disabled:k.value,maxlength:"160"},null,8,["modelValue","disabled"]),t[25]||(t[25]=e.createElementVNode("p",{class:"text-xs text-muted-foreground"}," Use a short title your team will recognize. ",-1))]),e.createElementVNode("div",et,[t[26]||(t[26]=e.createElementVNode("label",{for:"helpbot-answer-content",class:"text-sm font-medium"},"Approved answer",-1)),e.createVNode(me,{id:"helpbot-answer-content",modelValue:v.value,"onUpdate:modelValue":t[5]||(t[5]=l=>v.value=l),rows:"12",placeholder:"Write the complete, up-to-date answer visitors should receive…",disabled:k.value,maxlength:"500000"},null,8,["modelValue","disabled"])])],32)),f.value?(e.openBlock(),e.createElementBlock("div",tt,[e.createVNode(e.unref(a.AlertCircle),{class:"mt-0.5 size-4 shrink-0"}),e.createElementVNode("span",null,e.toDisplayString(f.value),1)])):e.createCommentVNode("",!0),e.createVNode(te,null,{default:e.withCtx(()=>[e.createVNode(s,{variant:"outline",onClick:t[6]||(t[6]=l=>h.value=!1)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(d.value==="view"?"Close":"Cancel"),1)]),_:1}),d.value!=="view"?(e.openBlock(),e.createBlock(s,{key:0,disabled:k.value||P.value||!p.value.trim()||!v.value.trim(),onClick:O},{default:e.withCtx(()=>[k.value?(e.openBlock(),e.createBlock(e.unref(a.Loader2),{key:0,class:"mr-2 size-4 animate-spin"})):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(k.value?"Saving…":"Save answer"),1)]),_:1},8,["disabled"])):e.createCommentVNode("",!0)]),_:1})]),_:1})]),_:1},8,["open"]),e.createVNode(oe,{open:D.value,"onUpdate:open":t[10]||(t[10]=l=>D.value=l)},{default:e.withCtx(()=>[e.createVNode(le,{class:"sm:max-w-lg"},{default:e.withCtx(()=>[e.createVNode(ee,null,{default:e.withCtx(()=>[e.createVNode(Y,null,{default:e.withCtx(()=>[...t[27]||(t[27]=[e.createTextVNode("Upload a PDF guide",-1)])]),_:1}),e.createVNode(Z,null,{default:e.withCtx(()=>[...t[28]||(t[28]=[e.createTextVNode(" Choose an approved PDF up to 15 MB containing information the helpbot may use. ",-1)])]),_:1})]),_:1}),e.createElementVNode("input",{ref_key:"uploadInput",ref:A,type:"file",accept:"application/pdf,.pdf",class:"sr-only",onChange:ie},null,544),e.createElementVNode("button",{type:"button",class:"flex min-h-40 w-full flex-col items-center justify-center rounded-xl border-2 border-dashed p-6 text-center transition-colors hover:border-primary/50 hover:bg-muted/30 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",disabled:w.value,onClick:t[8]||(t[8]=l=>A.value?.click())},[e.createElementVNode("div",ot,[e.createVNode(e.unref(a.Upload),{class:"size-5"})]),r.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("span",at,e.toDisplayString(r.value.name),1),e.createElementVNode("span",st,e.toDisplayString(_(r.value.size))+" · Click to choose another file ",1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[t[29]||(t[29]=e.createElementVNode("span",{class:"mt-3 text-sm font-medium"},"Choose a PDF",-1)),t[30]||(t[30]=e.createElementVNode("span",{class:"mt-1 text-xs text-muted-foreground"},"Click to browse your files",-1))],64))],8,lt),m.value?(e.openBlock(),e.createElementBlock("div",nt,[e.createVNode(e.unref(a.AlertCircle),{class:"mt-0.5 size-4 shrink-0"}),e.createElementVNode("span",null,e.toDisplayString(m.value),1)])):e.createCommentVNode("",!0),e.createVNode(te,null,{default:e.withCtx(()=>[e.createVNode(s,{variant:"outline",disabled:w.value,onClick:t[9]||(t[9]=l=>D.value=!1)},{default:e.withCtx(()=>[...t[31]||(t[31]=[e.createTextVNode(" Cancel ",-1)])]),_:1},8,["disabled"]),e.createVNode(s,{disabled:w.value||!r.value,onClick:de},{default:e.withCtx(()=>[w.value?(e.openBlock(),e.createBlock(e.unref(a.Loader2),{key:0,class:"mr-2 size-4 animate-spin"})):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(w.value?"Uploading…":"Upload PDF"),1)]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["open"])])}}});exports.default=rt;
|