@highstate/designer 0.9.34 → 0.9.36
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/.output/nitro.json +1 -1
- package/.output/public/_nuxt/3e_JDR0d.js +2 -0
- package/.output/public/_nuxt/AAMMtP7D.js +16 -0
- package/.output/public/_nuxt/{B-tzHMOR.js → B-Cq1MKr.js} +1 -1
- package/.output/public/_nuxt/{CGIsbOqt.js → B19ncWn1.js} +1 -1
- package/.output/public/_nuxt/{FQpR5TAR.js → BRwnrBzN.js} +1 -1
- package/.output/public/_nuxt/{yCy9iX43.js → BcautuHn.js} +1 -1
- package/.output/public/_nuxt/{D2hOj9XC.js → BpWWYZTV.js} +1 -1
- package/.output/public/_nuxt/{DizFB7BZ.js → C-YbE85W.js} +1 -1
- package/.output/public/_nuxt/{BL-2dw2H.js → CD9Hkzj8.js} +1 -1
- package/.output/public/_nuxt/{DeCCkKCn.js → CHa34Mjf.js} +1 -1
- package/.output/public/_nuxt/{BkNdYhVU.js → CMqXSfVv.js} +1 -1
- package/.output/public/_nuxt/{B9QOj8at.js → CT0Qdh4h.js} +1 -1
- package/.output/public/_nuxt/{DA66NkQb.js → CTu4awv_.js} +1 -1
- package/.output/public/_nuxt/{D4I3CwV0.js → CiwR41uk.js} +1 -1
- package/.output/public/_nuxt/{UlOiG1et.js → ClBsnNkh.js} +1 -1
- package/.output/public/_nuxt/{BKe7h20I.js → CsCYo3-3.js} +1 -1
- package/.output/public/_nuxt/{LPrTxMoA.js → D3nND01j.js} +1 -1
- package/.output/public/_nuxt/D5igWdHQ.js +1 -0
- package/.output/public/_nuxt/{CUlEAfaO.js → DImTt3Pn.js} +58 -58
- package/.output/public/_nuxt/{CXRolcM8.js → DbpD4JwV.js} +1 -1
- package/.output/public/_nuxt/DpKDvret.js +1 -0
- package/.output/public/_nuxt/{RIDdiPVc.js → DpS7j0-i.js} +1 -1
- package/.output/public/_nuxt/{BIoksCZ6.js → I2KZJVps.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/63ab1285-ac6b-4b72-9716-8fe591ad00c9.json +1 -0
- package/.output/public/_nuxt/{Dn-R_Odm.js → e4IUZygv.js} +1 -1
- package/.output/public/_nuxt/{entry.BmVIGwdf.css → entry.PSMumvpV.css} +1 -1
- package/.output/public/_nuxt/kwA1-GVE.js +1 -0
- package/.output/public/_nuxt/{AV0MK5it.js → mzIiiUgI.js} +1 -1
- package/.output/server/index.mjs +422 -422
- package/.output/server/package.json +1 -1
- package/package.json +5 -5
- package/.output/public/_nuxt/BcoNctsL.js +0 -1
- package/.output/public/_nuxt/BuN5GOse.js +0 -1
- package/.output/public/_nuxt/CDPuLdqk.js +0 -1
- package/.output/public/_nuxt/DmCOOqTD.js +0 -2
- package/.output/public/_nuxt/Dqe2EjXB.js +0 -16
- package/.output/public/_nuxt/builds/meta/e078712d-664b-41c7-9aa8-b59330e10324.json +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{as as d,at as m,au as u,_ as f}from"#entry";import{F as w,aW as p,J as v,O as i,w as x,j as A,L as E,W as b}from"./CJ9AjueP.js";const g=w({__name:"GenericTerminal",props:{columns:{},rows:{},content:{}},emits:["load"],setup(n,{emit:l}){const a=p("terminalEl"),s=!n.columns||!n.rows,c=l;let e=null;return v(()=>{e=new d.Terminal({fontFamily:"monospace"});const t=new m.FitAddon,r=new u.WebglAddon;if(s?e.loadAddon(t):e.resize(n.columns,n.rows),e.loadAddon(r),e.open(a.value),s){t.fit();const o=new ResizeObserver(()=>{t.fit()});o.observe(a.value),i(()=>{o.disconnect()})}c("load",e),n.content!==void 0&&x(A(()=>n.content),o=>{e&&(e.clear(),e.write(o.replace(/\n/g,`\r
|
|
2
2
|
`)))},{immediate:!0}),i(()=>{e?.dispose()})}),(t,r)=>(b(),E("div",{ref_key:"terminalEl",ref:a,class:"terminal-container"},null,512))}}),T=f(g,[["__scopeId","data-v-73718d9d"]]);export{T as G};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{aW as $,aX as V,aY as A,aD as C,aZ as B,s as x,l as G,z as K,B as L,aw as M,q as U,a_ as q,v as O,k as W}from"#entry";import"./BmhnSWN5.js";import{_ as X,a as Z,b as J}from"./kwA1-GVE.js";import{a as Y,g as Q,i as ee}from"./oZs8U75K.js";import{_ as te,G as ne}from"./AAMMtP7D.js";import{F,Z as D,W as P,aE as oe,a1 as g,$ as ae,X as v,u as re,aL as _,J as ie,G as p,ak as T,al as k}from"./CJ9AjueP.js";import{P as se}from"./BpWWYZTV.js";import"./PZl7tHUC.js";import"./CsCYo3-3.js";import"./DnodTinn.js";import"./DbpD4JwV.js";import"./mzIiiUgI.js";import"./Cvl8iHT_.js";import"./BDCIi1Fb.js";import"./CiwR41uk.js";import"./ClBsnNkh.js";import"./CD9Hkzj8.js";const de=F({__name:"ExtraElementPanel",setup(I){const s=u=>{Y(u.dataTransfer)};return(u,n)=>(P(),D(oe,null,{default:g(()=>[ae("div",{draggable:"true",style:{cursor:"grab"},onDragstart:s},[v(te)],32)]),_:1}))}}),R=$({name:"project-panel",getStoreId:I=>`projects/${I}/panel`,create:({storeId:I,id:[s],logger:u})=>V(I,()=>{const{instancesStore:n}=A(s),{vueFlowStore:r,nodeFactory:a,onHubMoved:w,onInstanceMoved:h,onHubNodeDeleted:j,onInstanceNodeDeleted:l,onNodesMoved:f}=C("project",s),{$client:c}=re(),y=B(async e=>{await c.workspace.setProjectViewport.mutate({projectId:s,viewport:e})},1e3);r.onViewportChange(y);const H=async()=>{G.info({projectId:s},"initializing project panel store");const e=await c.workspace.getProjectViewport.query({projectId:s});e&&(r.defaultViewport.value=e)},N=async()=>{a.createNodesForModels(n.getProjectInstances(),[...n.hubs.values()]),K(r).then(()=>L(r,f))};h(e=>{n.patchInstance(e,["position"])}),w(e=>{n.patchHub(e,["position"])}),j(e=>{n.deleteHub(e.data.hub,!e.data.blueprint)}),l(e=>{n.deleteInstance(e.data.instance,!e.data.blueprint)});const S=e=>{const{inputInstance:t,outputInstance:o,inputHub:i,outputHub:d,outputKey:b,inputKey:m}=M(r,e);if(t&&o)return n.addInstanceInput(t,m,{instanceId:o.id,output:b});if(d&&t&&m)return n.addInstanceHubInput(t,m,{hubId:d.id});if(d&&t)return n.addInstanceInjectionInput(t,{hubId:d.id});if(o&&i)return n.addHubInput(i,{instanceId:o.id,output:b});if(d&&i)return n.addHubInjectionInput(i,{hubId:d.id});throw u.error({msg:"unexpected connection while adding",connection:e,inputInstance:t,outputInstance:o,inputHub:i,outputHub:d,outputKey:b,inputKey:m}),new Error("Invalid connection")},z=e=>{const{inputInstance:t,outputInstance:o,inputHub:i,outputHub:d,outputKey:b,inputKey:m}=M(r,e);if(t&&o)return n.removeInstanceInput(t,m,{instanceId:o.id,output:b});if(d&&t&&m)return n.removeInstanceHubInput(t,m,{hubId:d.id});if(d&&t)return n.removeInstanceInjectionInput(t,{hubId:d.id});if(o&&i)return n.removeHubInput(i,{instanceId:o.id,output:b});if(d&&i)return n.removeHubInjectionInput(i,{hubId:d.id});throw u.error({msg:"unexpected connection while removing",edge:e,inputInstance:t,outputInstance:o,inputHub:i,outputHub:d,outputKey:b,inputKey:m}),new Error("Invalid connection")};r.onConnect(S);let E=!1;return r.onEdgeUpdate(async({edge:e,connection:t})=>{E=!0,await z(e),await S(t)}),r.onEdgeUpdateEnd(async({edge:e})=>{try{if(E)return;await z(e)}finally{E=!1}}),n.onInstanceInputAdded(({instance:e,inputName:t,input:o})=>{a.createEdgeForInstanceInput(e,t,o)}),n.onInstanceHubInputAdded(({instance:e,inputName:t,input:o})=>{a.createEdgeForInstanceHubInput(e,t,o)}),n.onInstanceInjectionInputAdded(({instance:e,input:t})=>{a.createEdgeForInstanceInjectionInput(e,t)}),n.onHubInputAdded(({hub:e,input:t})=>{a.createEdgeForHubInput(e,t)}),n.onHubInjectionInputAdded(({hub:e,input:t})=>{a.createEdgeForHubInjectionInput(e,t)}),n.onInstanceInputRemoved(({instance:e,inputName:t,input:o})=>{a.removeEdgeForInstanceInput(e,t,o)}),n.onInstanceHubInputRemoved(({instance:e,inputName:t,input:o})=>{a.removeEdgeForInstanceHubInput(e,t,o)}),n.onInstanceInjectionInputRemoved(({instance:e,input:t})=>{a.removeEdgeForInstanceInjectionInput(e,t)}),n.onHubInputRemoved(({hub:e,input:t})=>{a.removeEdgeForHubInput(e,t)}),n.onHubInjectionInputRemoved(({hub:e,input:t})=>{a.removeEdgeForHubInjectionInput(e,t)}),n.onInstanceNameChanged(({oldId:e,newId:t})=>{const o=a.instanceIdToNodeIdMap.get(e);a.instanceIdToNodeIdMap.set(t,o),a.instanceIdToNodeIdMap.delete(e),r.updateNodeData(o,{})}),n.onInstanceCreated(async({instance:e,blueprint:t})=>{const o=a.createNodeFromInstance(e,{blueprint:t});if(await x(r.areNodesInitialized).toBe(!0),!t){if(n.isGhostInstance(e.id))return;r.updateNode(o.id,i=>{const d={x:i.position.x-i.dimensions.width/2,y:i.position.y-i.dimensions.height/2};return e.position=d,{position:d}})}}),n.onInstanceDeleted(e=>{const t=a.instanceIdToNodeIdMap.get(e);t&&(r.removeNodes(t),a.instanceIdToNodeIdMap.delete(e))}),n.onHubDeleted(e=>{r.removeNodes(e)}),n.onHubCreated(async({hub:e,blueprint:t})=>{a.createNodeFromHub(e,{blueprint:t}),await x(r.areNodesInitialized).toBe(!0),t||r.updateNode(e.id,o=>{const i={x:o.position.x-o.dimensions.width/2,y:o.position.y-o.dimensions.height/2};return e.position=i,{position:i}})}),{initialize:H,placeNodes:N}})}),ue=F({__name:"ProjectCanvas",async setup(I){let s,u;const n=C(),r=R(),{projectStore:a,instancesStore:w,libraryStore:h}=U();a.initializing?([s,u]=_(()=>x(()=>a.initialized).toBe(!0)),await s,u(),a.addLibraryRoot()):([s,u]=_(()=>a.initialize1()),await s,u(),[s,u]=_(()=>a.initialize2()),await s,u()),[s,u]=_(()=>r.initialize()),await s,u(),ie(r.placeNodes);const j=l=>{if(l.preventDefault(),!l.dataTransfer||n.blueprint)return;let f;const c=Q(l.dataTransfer);if(c){const y=w.getNextInstanceName(c),H=q(c,y),N=h.library.components[c];f={boundary:{width:360,height:260},instances:[{id:H,name:y,type:c,kind:N.kind,position:{x:0,y:0}}],hubs:[]}}else if(ee(l.dataTransfer))f={boundary:{width:74,height:74},instances:[],hubs:[{id:O.createId(),position:{x:0,y:0}}]};else return;n.blueprint=f};return(l,f)=>(P(),D(p(ne),{canvasId:["project",p(a).projectId],components:p(h).library.components,entities:p(h).library.entities,"input-resolver-outputs":p(w).inputResolverOutputs,editable:"",onDragover:j},{"node-instance":g(c=>[v(p(J),T(k(c)),null,16)]),"node-hub":g(c=>[v(p(Z),T(k(c)),null,16)]),"panel-bottom-left":g(()=>[v(p(X))]),"panel-bottom-right":g(()=>[v(p(de))]),_:1},8,["canvasId","components","entities","input-resolver-outputs"]))}}),xe=F({__name:"index",props:{params:{}},setup(I){return W(I.params.projectId),C.ensureCreated("project",I.params.projectId),R.ensureCreated(I.params.projectId),(s,u)=>(P(),D(p(se),{"project-id":s.params.projectId,"can-unlock":""},{default:g(()=>[v(p(ue))]),_:1},8,["project-id"]))}});export{xe as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{q as I,k as f}from"#entry";import{F as p,u as j,O as g,Z as d,W as m,G as c,a1 as w,X as L}from"./CJ9AjueP.js";import{G as P}from"./
|
|
1
|
+
import{q as I,k as f}from"#entry";import{F as p,u as j,O as g,Z as d,W as m,G as c,a1 as w,X as L}from"./CJ9AjueP.js";import{G as P}from"./DbpD4JwV.js";import{P as b}from"./BpWWYZTV.js";import"./BmhnSWN5.js";import"./PZl7tHUC.js";import"./CD9Hkzj8.js";const h=p({__name:"InstanceLogsPanel",props:{operationId:{},stateId:{}},setup(t){const{projectStore:o}=I(),{$client:n}=j();let r=null;const i=e=>{const a=e.split(`
|
|
2
2
|
`);for(const s of a)r.writeln(s)},{unsubscribe:u}=n.logs.watchInstanceLogs.subscribe({operationId:t.operationId,stateId:t.stateId},{onData:e=>{r&&i(e.content)}});g(u);const l=async e=>{r=e;const a=await n.logs.getInstanceLogs.query({projectId:o.projectId,stateId:t.stateId,operationId:t.operationId});for(const s of a)i(s.content)};return(e,a)=>(m(),d(c(P),{onLoad:l}))}}),x=p({__name:"[stateId]",props:{params:{}},setup(t){return f(t.params.projectId),(o,n)=>(m(),d(c(b),{"project-id":o.params.projectId,"can-unlock":""},{default:w(()=>[L(c(h),{"operation-id":o.params.operationId,"state-id":o.params.stateId},null,8,["operation-id","state-id"])]),_:1},8,["project-id"]))}});export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{k as A,_ as B,f as E,u as F,l as z,n as x}from"#entry";import{P as K}from"./
|
|
1
|
+
import{k as A,_ as B,f as E,u as F,l as z,n as x}from"#entry";import{P as K}from"./BpWWYZTV.js";import{F as N,L as h,W as o,X as p,a1 as r,ab as M,C as U,w as R,j as G,$ as u,a9 as k,af as y,G as s,aA as w,_ as S,aK as X,aE as Z,ay as q,Z as m,a4 as H,a5 as $,ah as J,a0 as C,a2 as I,a3 as _,ac as V,ai as P}from"./CJ9AjueP.js";import"./BmhnSWN5.js";import"./PZl7tHUC.js";import"./CD9Hkzj8.js";const O={class:"tab-wrapper"},Q=N({__name:"ProjectTabWrapper",props:{projectId:{}},setup(W){return A(W.projectId),(l,j)=>(o(),h("div",O,[p(K,{"project-id":l.projectId,"can-unlock":""},{default:r(()=>[M(l.$slots,"default",{},void 0,!0)]),_:3},8,["project-id"])]))}}),Y=B(Q,[["__scopeId","data-v-cbe63052"]]),ee={class:"data-settings-panel"},te={class:"panel-layout"},ae={class:"vertical-tabs"},se={class:"tab-section"},oe={class:"tab-label"},re={class:"tab-section"},ne={class:"tab-label"},ce={class:"tab-section"},le={class:"tab-label"},ie={class:"content-area"},de=N({__name:"settings",setup(W){const l=E(),j=F(),n=U(null);R(j.currentRoute,async t=>{t.path.startsWith("/settings/")&&(z.info({from:n.value?.path,to:t.path},"settings route changed"),n.value=t),t?.name==="settings"&&await f(i.value.beforeGlobalTabs[0])},{immediate:!0});const i=G(()=>{const b=j.getRoutes().filter(a=>a.path.startsWith("/settings/")&&a.path!=="/settings"&&a.meta?.tab),c=[],e=[];for(const a of b){const d=a.meta.tab;if(!d||!a.path.startsWith("/settings/"))continue;const T={name:a.name,icon:d.icon,label:d.label,order:d.order||50,isProjectTab:a.path.startsWith("/settings/projects/"),subpages:d.subpages??[]};T.isProjectTab?e.push(T):c.push(T)}c.sort((a,d)=>a.order-d.order),e.sort((a,d)=>a.order-d.order);const g=c.filter(a=>a.order<90),L=c.filter(a=>a.order>=90);return{beforeGlobalTabs:g,projectTabs:e,afterGlobalTabs:L}}),v=t=>n.value&&(t.name===n.value.name||t.subpages.includes(n.value.name)),D=G(()=>i.value.beforeGlobalTabs.find(v)||i.value.projectTabs.find(v)),f=async t=>{if(!t.isProjectTab){await x({name:t.name});return}await x({name:t.name,params:{projectId:l.focusedProjectId}})};return R(()=>l.focusedProjectId,async(t,b)=>{const c=j.currentRoute.value;!c||t===b&&c.path.startsWith("/settings/projects/")||!c.path.startsWith("/settings/")||(t&&i.value.projectTabs.length>0?await f(D.value??i.value.projectTabs[0]):!t&&c.path.startsWith("/settings/projects/")&&await f(i.value.beforeGlobalTabs[0]))}),(t,b)=>{const c=J("RouterView");return o(),h("div",ee,[u("div",te,[u("div",ae,[u("div",se,[(o(!0),h(k,null,y(s(i).beforeGlobalTabs,e=>(o(),m(P,{key:e.name,variant:"text",class:V(["tab-item",{active:v(e)}]),onClick:g=>f(e)},{default:r(()=>[p(C,{class:"tab-icon"},{default:r(()=>[I(_(e.icon),1)]),_:2},1024),u("span",oe,_(e.label),1)]),_:2},1032,["class","onClick"]))),128))]),p(w,{class:"section-divider"}),u("div",re,[p(X,{modelValue:s(l).focusedProjectId,"onUpdate:modelValue":b[0]||(b[0]=e=>s(l).focusedProjectId=e),items:s(l).projects,label:"Project","item-title":"meta.title","item-value":"id",variant:"outlined",density:"compact",class:"project-selector","prepend-inner-icon":"mdi-folder-outline",clearable:"","hide-details":""},null,8,["modelValue","items"]),s(l).focusedProjectId?(o(!0),h(k,{key:0},y(s(i).projectTabs,e=>(o(),m(P,{key:e.name,variant:"text",class:V(["tab-item",{active:v(e)}]),onClick:g=>f(e)},{default:r(()=>[p(C,{class:"tab-icon"},{default:r(()=>[I(_(e.icon),1)]),_:2},1024),u("span",ne,_(e.label),1)]),_:2},1032,["class","onClick"]))),128)):S("",!0)]),p(w,{class:"section-divider"}),u("div",ce,[(o(!0),h(k,null,y(s(i).afterGlobalTabs,e=>(o(),m(P,{key:e.name,variant:"text",class:V(["tab-item",{active:v(e)}]),onClick:g=>f(e)},{default:r(()=>[p(C,{class:"tab-icon"},{default:r(()=>[I(_(e.icon),1)]),_:2},1024),u("span",le,_(e.label),1)]),_:2},1032,["class","onClick"]))),128))])]),u("div",ie,[p(Z,{class:"content-card",variant:"flat"},{default:r(()=>[p(q,{class:"content-card-text"},{default:r(()=>[s(n)?(o(),m(c,{key:0,route:s(n)},{default:r(({Component:e})=>[s(n).params.projectId?(o(),m(H,{key:0},{default:r(()=>[(o(),m(s(Y),{"project-id":s(n).params.projectId,key:s(n).params.projectId},{default:r(()=>[(o(),m($(e),{params:s(n).params},null,8,["params"]))]),_:2},1032,["project-id"]))]),_:2},1024)):(o(),m($(e),{key:1}))]),_:1},8,["route"])):S("",!0)]),_:1})]),_:1})])])])}}}),ve=B(de,[["__scopeId","data-v-60d93a31"]]);export{ve as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"
|
|
1
|
+
{"id":"63ab1285-ac6b-4b72-9716-8fe591ad00c9","timestamp":1760280658953}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"63ab1285-ac6b-4b72-9716-8fe591ad00c9","timestamp":1760280658953,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as E,D as I}from"#entry";import{_ as P,E as U,W as L,g as W,i as q}from"./
|
|
1
|
+
import{C as E,D as I}from"#entry";import{_ as P,E as U,W as L,g as W,i as q}from"./CD9Hkzj8.js";import{F as H,r as z,a as A,j as _,w as N,J as $,Q as j,Z as k,W as i,ax as Q,G as s,b as G,a1 as u,_ as c,L as m,aQ as J,X as p,ai as x,a2 as v,a0 as T,az as O,aR as X,aB as C,$ as y,a3 as h,aP as Y,aS as Z,a9 as D,af as K}from"./CJ9AjueP.js";const ee={class:"ml-2"},se={key:0,class:"mt-1"},te={key:1},ae={key:1,class:"mb-4"},oe={class:"d-flex justify-space-between align-center mb-2"},re={class:"text-caption text-medium-emphasis mt-1"},ne={key:0,class:"mt-2"},ie={class:"text-caption text-medium-emphasis ml-4"},me=H({__name:"UnlockMethodForm",props:{showTypeSelector:{type:Boolean,default:!0},showDescription:{type:Boolean,default:!0},showDisplayName:{type:Boolean,default:!0},initialType:{default:"password"},displayNameLabel:{default:"Display Name"},displayNameHint:{default:"A friendly name to identify this unlock method"},passwordHint:{default:"Password must be strong enough to resist offline attacks"},defaultDisplayName:{default:""},defaultDescription:{default:""}},emits:["update:valid","update:form"],setup(r,{expose:l,emit:w}){const d=r,g=w,f=z(!1),t=A({type:d.initialType,title:"",description:"",password:"",confirmPassword:""}),M=_(()=>d.showDisplayName?[e=>!!e||"Display name is required",e=>e&&e.length<=100||"Display name must be less than 100 characters"]:[]),F=[e=>!!e||"Password is required"],R=[e=>!!e||"Confirm password is required",e=>e===t.password||"Passwords do not match"],n=_(()=>{if(!t.password)return null;const e=E.zxcvbn(t.password),a={0:"very-weak",1:"weak",2:"fair",3:"strong",4:"very-strong"},o=Math.max(0,Math.min(4,e.score));return{score:e.score/4*100,level:a[o],estimatedCrackTime:e.crack_times_display.offline_slow_hashing_1e4_per_second||"unknown",recommendations:e.feedback.suggestions||[],warning:e.feedback.warning||void 0}}),V=e=>{switch(e){case"very-weak":return"error";case"weak":return"warning";case"fair":return"info";case"strong":return"success";case"very-strong":return"success";default:return"info"}},b=e=>{switch(e){case"password":return"mdi-key-variant";case"passkey":return"mdi-fingerprint";default:return"mdi-lock"}},S=()=>{t.type=d.initialType,t.title=d.defaultDisplayName,t.description=d.defaultDescription,t.password="",t.confirmPassword=""};return N(f,e=>{g("update:valid",e)}),N(t,e=>{g("update:form",{...e})},{deep:!0}),$(()=>{t.title=d.defaultDisplayName,t.description=d.defaultDescription}),l({resetForm:S,form:j(t)}),(e,a)=>(i(),k(Q,{modelValue:s(f),"onUpdate:modelValue":a[5]||(a[5]=o=>G(f)?f.value=o:null)},{default:u(()=>[e.showTypeSelector?(i(),k(J,{key:0,modelValue:s(t).type,"onUpdate:modelValue":a[0]||(a[0]=o=>s(t).type=o),mandatory:"",variant:"outlined",density:"compact",divided:"",class:"w-100 mb-6"},{default:u(()=>[p(x,{value:"password",class:"flex-grow-1"},{default:u(()=>[p(T,{icon:b("password"),class:"mr-2"},null,8,["icon"]),a[6]||(a[6]=v(" Password "))]),_:1,__:[6]}),p(x,{value:"passkey",class:"flex-grow-1"},{default:u(()=>[p(T,{icon:b("passkey"),class:"mr-2"},null,8,["icon"]),a[7]||(a[7]=v(" Passkey "))]),_:1,__:[7]})]),_:1},8,["modelValue"])):c("",!0),e.showDisplayName?(i(),k(O,{key:1,modelValue:s(t).title,"onUpdate:modelValue":a[1]||(a[1]=o=>s(t).title=o),class:"mb-4",variant:"outlined",density:"compact",label:e.displayNameLabel,rules:s(M),placeholder:"My unlock method",hint:e.displayNameHint,"persistent-hint":""},null,8,["modelValue","label","rules","hint"])):c("",!0),e.showDescription?(i(),k(X,{key:2,modelValue:s(t).description,"onUpdate:modelValue":a[2]||(a[2]=o=>s(t).description=o),class:"mb-4",variant:"outlined",density:"compact",label:"Description",placeholder:"Optional description for this unlock method",rows:"2","auto-grow":"","hide-details":""},null,8,["modelValue"])):c("",!0),s(t).type==="password"?(i(),m(D,{key:3},[p(s(P),{modelValue:s(t).password,"onUpdate:modelValue":a[3]||(a[3]=o=>s(t).password=o),class:"mb-4",label:"Password",rules:F,hint:e.passwordHint,"persistent-hint":""},null,8,["modelValue","hint"]),p(s(P),{modelValue:s(t).confirmPassword,"onUpdate:modelValue":a[4]||(a[4]=o=>s(t).confirmPassword=o),class:"mb-4",label:"Confirm Password",rules:R},null,8,["modelValue"]),s(n)&&s(n).score<40?(i(),k(C,{key:0,type:s(n).score<20?"error":"warning",density:"compact",class:"mb-4"},{default:u(()=>[y("div",ee,[y("strong",null,h(s(n).score<20?"Very Weak":"Weak")+" Password:",1),s(n).warning?(i(),m("div",se,h(s(n).warning),1)):(i(),m("div",te," This password may be vulnerable to offline attacks. Consider using a stronger password. "))])]),_:1},8,["type"])):c("",!0),s(n)?(i(),m("div",ae,[y("div",oe,[a[8]||(a[8]=y("span",{class:"text-caption"},"Password Strength",-1)),p(Y,{color:V(s(n).level),size:"small",variant:"flat"},{default:u(()=>[v(h(s(n).level.replace("-"," ").toUpperCase()),1)]),_:1},8,["color"])]),p(Z,{"model-value":s(n).score,color:V(s(n).level),height:"6",rounded:""},null,8,["model-value","color"]),y("div",re," Estimated crack time: "+h(s(n).estimatedCrackTime),1),s(n).recommendations.length>0?(i(),m("div",ne,[a[9]||(a[9]=y("div",{class:"text-caption font-weight-medium mb-1"},"Suggestions:",-1)),y("ul",ie,[(i(!0),m(D,null,K(s(n).recommendations,o=>(i(),m("li",{key:o},h(o),1))),128))])])):c("",!0)])):c("",!0)],64)):s(t).type==="passkey"?(i(),k(C,{key:4,type:"info",density:"compact",class:"mb-4"},{default:u(()=>a[10]||(a[10]=[v(" You'll be prompted to create a passkey using your device's biometric authentication or security key when you click Create. ")])),_:1,__:[10]})):c("",!0)]),_:1},8,["modelValue"]))}});async function B(r,l,w){const d=await W(),g=await w.encrypt(d),f=I(g),t=await q(d);return{meta:l,type:r,encryptedIdentity:f,recipient:t}}function le(r,l){const w=new U;return w.setPassphrase(r),B("password",l,w)}function de(r){if(!r.title)throw new Error("Display name is required for passkey unlock method");const l=new U;return l.addRecipient(new L),B("passkey",r,l)}function ye(r){const l={title:r.title,description:r.description};if(r.type==="password")return le(r.password,l);if(r.type==="passkey")return de(l);throw new Error(`Unsupported unlock method type: ${r.type}`)}export{me as _,ye as c};
|