@stonecrop/desktop 0.6.2 → 0.7.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.
@@ -1,89 +1,85 @@
1
- (function(W,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(W=typeof globalThis<"u"?globalThis:W||self,t(W["@stonecrop/desktop"]={},W.Vue))})(this,(function(W,t){"use strict";const Be={class:"action-menu-icon"},je=["disabled","onClick"],Fe={key:1},Le=["onClick"],Me={class:"dropdown-container"},He={class:"dropdown"},Ue=["onClick"],ze=["href"],Ke={class:"dropdown-item"},We=t.defineComponent({__name:"ActionSet",props:{elements:{default:()=>[]}},emits:["actionClick"],setup(n,{emit:e}){const o=e,a=t.ref({}),s=t.ref(!1),l=t.ref(-1),r=t.ref(!1),c=t.ref(!1);t.onMounted(()=>{i()});const i=()=>{a.value={}},u=()=>{r.value=!0,l.value=setTimeout(()=>{r.value&&(s.value=!0)},500)},f=()=>{r.value=!1,c.value=!1,clearTimeout(l.value),s.value=!1},S=O=>{const _=!a.value[O];i(),_&&(a.value[O]=!0)},E=(O,_)=>{o("actionClick",_,O)};return(O,_)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass([{"open-set":s.value,"hovered-and-closed":c.value},"action-set collapse"]),onMouseover:u,onMouseleave:f},[t.createElementVNode("div",Be,[t.createElementVNode("div",{id:"chevron",onClick:_[0]||(_[0]=D=>c.value=!c.value)},[..._[1]||(_[1]=[t.createElementVNode("svg",{id:"Layer_1",class:"leftBar",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 100 100","xml:space":"preserve",width:"50",height:"50"},[t.createElementVNode("polygon",{points:"54.2,33.4 29.2,58.8 25,54.6 50,29.2 "})],-1),t.createElementVNode("svg",{id:"Layer_1",class:"rightBar",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 100 100","xml:space":"preserve",width:"50",height:"50"},[t.createElementVNode("polygon",{points:"70.8,58.8 45.8,33.4 50,29.2 75,54.6 "})],-1)])])]),_[2]||(_[2]=t.createElementVNode("div",{style:{"margin-right":"30px"}},null,-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.elements,(D,I)=>(t.openBlock(),t.createElementBlock("div",{key:D.label,class:"action-element"},[D.type=="button"?(t.openBlock(),t.createElementBlock("button",{key:0,disabled:D.disabled,class:"button-default",onClick:x=>E(D.action,D.label)},t.toDisplayString(D.label),9,je)):t.createCommentVNode("",!0),D.type=="dropdown"?(t.openBlock(),t.createElementBlock("div",Fe,[t.createElementVNode("button",{class:"button-default",onClick:x=>S(I)},t.toDisplayString(D.label),9,Le),t.withDirectives(t.createElementVNode("div",Me,[t.createElementVNode("div",He,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(D.actions,(x,T)=>(t.openBlock(),t.createElementBlock("div",{key:x.label},[x.action!=null?(t.openBlock(),t.createElementBlock("button",{key:0,class:"dropdown-item",onClick:F=>E(x.action,x.label)},t.toDisplayString(x.label),9,Ue)):x.link!=null?(t.openBlock(),t.createElementBlock("a",{key:1,href:x.link},[t.createElementVNode("button",Ke,t.toDisplayString(x.label),1)],8,ze)):t.createCommentVNode("",!0)]))),128))])],512),[[t.vShow,a.value[I]]])])):t.createCommentVNode("",!0)]))),128))],34))}}),Se=(n,e)=>{const o=n.__vccOpts||n;for(const[a,s]of e)o[a]=s;return o},de=Se(We,[["__scopeId","data-v-eb01c863"]]),Je={class:"command-palette-header"},Ge=["placeholder"],qe={key:0,class:"command-palette-results"},Ze=["onClick","onMouseover"],Ye={class:"result-title"},Xe={class:"result-content"},Qe={key:1,class:"command-palette-no-results"},pe=t.defineComponent({__name:"CommandPalette",props:{search:{type:Function},isOpen:{type:Boolean,default:!1},placeholder:{default:"Type a command or search..."},maxResults:{default:10}},emits:["select","close"],setup(n,{emit:e}){const o=e,a=t.ref(""),s=t.ref(0),l=t.useTemplateRef("input"),r=t.computed(()=>a.value?n.search(a.value).slice(0,n.maxResults):[]);t.watch(()=>n.isOpen,async f=>{f&&(a.value="",s.value=0,await t.nextTick(),l.value?.focus())}),t.watch(r,()=>{s.value=0});const c=()=>{o("close")},i=f=>{switch(f.key){case"Escape":c();break;case"ArrowDown":f.preventDefault(),r.value.length&&(s.value=(s.value+1)%r.value.length);break;case"ArrowUp":f.preventDefault(),r.value.length&&(s.value=(s.value-1+r.value.length)%r.value.length);break;case"Enter":r.value.length&&s.value>=0&&u(r.value[s.value]);break}},u=f=>{o("select",f),c()};return(f,S)=>(t.openBlock(),t.createBlock(t.Teleport,{to:"body"},[t.createVNode(t.Transition,{name:"fade"},{default:t.withCtx(()=>[n.isOpen?(t.openBlock(),t.createElementBlock("div",{key:0,class:"command-palette-overlay",onClick:c},[t.createElementVNode("div",{class:"command-palette",onClick:S[1]||(S[1]=t.withModifiers(()=>{},["stop"]))},[t.createElementVNode("div",Je,[t.withDirectives(t.createElementVNode("input",{ref:"input","onUpdate:modelValue":S[0]||(S[0]=E=>a.value=E),type:"text",class:"command-palette-input",placeholder:n.placeholder,autofocus:"",onKeydown:i},null,40,Ge),[[t.vModelText,a.value]])]),r.value.length?(t.openBlock(),t.createElementBlock("div",qe,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(r.value,(E,O)=>(t.openBlock(),t.createElementBlock("div",{key:O,class:t.normalizeClass(["command-palette-result",{selected:O===s.value}]),onClick:_=>u(E),onMouseover:_=>s.value=O},[t.createElementVNode("div",Ye,[t.renderSlot(f.$slots,"title",{result:E})]),t.createElementVNode("div",Xe,[t.renderSlot(f.$slots,"content",{result:E})])],42,Ze))),128))])):a.value&&!r.value.length?(t.openBlock(),t.createElementBlock("div",Qe,[t.renderSlot(f.$slots,"empty",{},()=>[t.createTextVNode(' No results found for "'+t.toDisplayString(a.value)+'" ',1)])])):t.createCommentVNode("",!0)])])):t.createCommentVNode("",!0)]),_:3})]))}});/*!
2
- * pinia v3.0.3
3
- * (c) 2025 Eduardo San Martin Morote
4
- * @license MIT
5
- */let Q;const ne=n=>Q=n,et=process.env.NODE_ENV!=="production"?Symbol("pinia"):Symbol();function q(n){return n&&typeof n=="object"&&Object.prototype.toString.call(n)==="[object Object]"&&typeof n.toJSON!="function"}var ee;(function(n){n.direct="direct",n.patchObject="patch object",n.patchFunction="patch function"})(ee||(ee={}));const te=typeof window<"u";function Ee(n,e){for(const o in e){const a=e[o];if(!(o in n))continue;const s=n[o];q(s)&&q(a)&&!t.isRef(a)&&!t.isReactive(a)?n[o]=Ee(s,a):n[o]=a}return n}const ke=()=>{};function Ne(n,e,o,a=ke){n.push(e);const s=()=>{const l=n.indexOf(e);l>-1&&(n.splice(l,1),a())};return!o&&t.getCurrentScope()&&t.onScopeDispose(s),s}function Y(n,...e){n.slice().forEach(o=>{o(...e)})}const tt=n=>n(),$e=Symbol(),fe=Symbol();function he(n,e){n instanceof Map&&e instanceof Map?e.forEach((o,a)=>n.set(a,o)):n instanceof Set&&e instanceof Set&&e.forEach(n.add,n);for(const o in e){if(!e.hasOwnProperty(o))continue;const a=e[o],s=n[o];q(s)&&q(a)&&n.hasOwnProperty(o)&&!t.isRef(a)&&!t.isReactive(a)?n[o]=he(s,a):n[o]=a}return n}const ot=process.env.NODE_ENV!=="production"?Symbol("pinia:skipHydration"):Symbol();function nt(n){return!q(n)||!Object.prototype.hasOwnProperty.call(n,ot)}const{assign:U}=Object;function _e(n){return!!(t.isRef(n)&&n.effect)}function De(n,e,o,a){const{state:s,actions:l,getters:r}=e,c=o.state.value[n];let i;function u(){!c&&(process.env.NODE_ENV==="production"||!a)&&(o.state.value[n]=s?s():{});const f=process.env.NODE_ENV!=="production"&&a?t.toRefs(t.ref(s?s():{}).value):t.toRefs(o.state.value[n]);return U(f,l,Object.keys(r||{}).reduce((S,E)=>(process.env.NODE_ENV!=="production"&&E in f&&console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with "${E}" in store "${n}".`),S[E]=t.markRaw(t.computed(()=>{ne(o);const O=o._s.get(n);return r[E].call(O,O)})),S),{}))}return i=me(n,u,e,o,a,!0),i}function me(n,e,o={},a,s,l){let r;const c=U({actions:{}},o);if(process.env.NODE_ENV!=="production"&&!a._e.active)throw new Error("Pinia destroyed");const i={deep:!0};process.env.NODE_ENV!=="production"&&(i.onTrigger=v=>{u?O=v:u==!1&&!N._hotUpdating&&(Array.isArray(O)?O.push(v):console.error("🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug."))});let u,f,S=[],E=[],O;const _=a.state.value[n];!l&&!_&&(process.env.NODE_ENV==="production"||!s)&&(a.state.value[n]={});const D=t.ref({});let I;function x(v){let h;u=f=!1,process.env.NODE_ENV!=="production"&&(O=[]),typeof v=="function"?(v(a.state.value[n]),h={type:ee.patchFunction,storeId:n,events:O}):(he(a.state.value[n],v),h={type:ee.patchObject,payload:v,storeId:n,events:O});const V=I=Symbol();t.nextTick().then(()=>{I===V&&(u=!0)}),f=!0,Y(S,h,a.state.value[n])}const T=l?function(){const{state:v}=o,h=v?v():{};this.$patch(V=>{U(V,h)})}:process.env.NODE_ENV!=="production"?()=>{throw new Error(`🍍: Store "${n}" is built using the setup syntax and does not implement $reset().`)}:ke;function F(){r.stop(),S=[],E=[],a._s.delete(n)}const H=(v,h="")=>{if($e in v)return v[fe]=h,v;const V=function(){ne(a);const P=Array.from(arguments),$=[],g=[];function k(B){$.push(B)}function R(B){g.push(B)}Y(E,{args:P,name:V[fe],store:N,after:k,onError:R});let A;try{A=v.apply(this&&this.$id===n?this:N,P)}catch(B){throw Y(g,B),B}return A instanceof Promise?A.then(B=>(Y($,B),B)).catch(B=>(Y(g,B),Promise.reject(B))):(Y($,A),A)};return V[$e]=!0,V[fe]=h,V},M=t.markRaw({actions:{},getters:{},state:[],hotState:D}),L={_p:a,$id:n,$onAction:Ne.bind(null,E),$patch:x,$reset:T,$subscribe(v,h={}){const V=Ne(S,v,h.detached,()=>P()),P=r.run(()=>t.watch(()=>a.state.value[n],$=>{(h.flush==="sync"?f:u)&&v({storeId:n,type:ee.direct,events:O},$)},U({},i,h)));return V},$dispose:F},N=t.reactive(process.env.NODE_ENV!=="production"||process.env.NODE_ENV!=="production"&&process.env.NODE_ENV!=="test"&&te?U({_hmrPayload:M,_customProperties:t.markRaw(new Set)},L):L);a._s.set(n,N);const j=(a._a&&a._a.runWithContext||tt)(()=>a._e.run(()=>(r=t.effectScope()).run(()=>e({action:H}))));for(const v in j){const h=j[v];if(t.isRef(h)&&!_e(h)||t.isReactive(h))process.env.NODE_ENV!=="production"&&s?D.value[v]=t.toRef(j,v):l||(_&&nt(h)&&(t.isRef(h)?h.value=_[v]:he(h,_[v])),a.state.value[n][v]=h),process.env.NODE_ENV!=="production"&&M.state.push(v);else if(typeof h=="function"){const V=process.env.NODE_ENV!=="production"&&s?h:H(h,v);j[v]=V,process.env.NODE_ENV!=="production"&&(M.actions[v]=h),c.actions[v]=h}else process.env.NODE_ENV!=="production"&&_e(h)&&(M.getters[v]=l?o.getters[v]:h,te&&(j._getters||(j._getters=t.markRaw([]))).push(v))}if(U(N,j),U(t.toRaw(N),j),Object.defineProperty(N,"$state",{get:()=>process.env.NODE_ENV!=="production"&&s?D.value:a.state.value[n],set:v=>{if(process.env.NODE_ENV!=="production"&&s)throw new Error("cannot set hotState");x(h=>{U(h,v)})}}),process.env.NODE_ENV!=="production"&&(N._hotUpdate=t.markRaw(v=>{N._hotUpdating=!0,v._hmrPayload.state.forEach(h=>{if(h in N.$state){const V=v.$state[h],P=N.$state[h];typeof V=="object"&&q(V)&&q(P)?Ee(V,P):v.$state[h]=P}N[h]=t.toRef(v.$state,h)}),Object.keys(N.$state).forEach(h=>{h in v.$state||delete N[h]}),u=!1,f=!1,a.state.value[n]=t.toRef(v._hmrPayload,"hotState"),f=!0,t.nextTick().then(()=>{u=!0});for(const h in v._hmrPayload.actions){const V=v[h];N[h]=H(V,h)}for(const h in v._hmrPayload.getters){const V=v._hmrPayload.getters[h],P=l?t.computed(()=>(ne(a),V.call(N,N))):V;N[h]=P}Object.keys(N._hmrPayload.getters).forEach(h=>{h in v._hmrPayload.getters||delete N[h]}),Object.keys(N._hmrPayload.actions).forEach(h=>{h in v._hmrPayload.actions||delete N[h]}),N._hmrPayload=v._hmrPayload,N._getters=v._getters,N._hotUpdating=!1})),process.env.NODE_ENV!=="production"&&process.env.NODE_ENV!=="test"&&te){const v={writable:!0,configurable:!0,enumerable:!1};["_p","_hmrPayload","_getters","_customProperties"].forEach(h=>{Object.defineProperty(N,h,U({value:N[h]},v))})}return a._p.forEach(v=>{if(process.env.NODE_ENV!=="production"&&process.env.NODE_ENV!=="test"&&te){const h=r.run(()=>v({store:N,app:a._a,pinia:a,options:c}));Object.keys(h||{}).forEach(V=>N._customProperties.add(V)),U(N,h)}else U(N,r.run(()=>v({store:N,app:a._a,pinia:a,options:c})))}),process.env.NODE_ENV!=="production"&&N.$state&&typeof N.$state=="object"&&typeof N.$state.constructor=="function"&&!N.$state.constructor.toString().includes("[native code]")&&console.warn(`[🍍]: The "state" must be a plain object. It cannot be
1
+ (function(W,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(W=typeof globalThis<"u"?globalThis:W||self,t(W["@stonecrop/desktop"]={},W.Vue))})(this,(function(W,t){"use strict";const Be={class:"action-menu-icon"},je=["disabled","onClick"],Le={key:1},Me=["onClick"],Fe={class:"dropdown-container"},He={class:"dropdown"},Ue=["onClick"],ze=["href"],Ke={class:"dropdown-item"},We=t.defineComponent({__name:"ActionSet",props:{elements:{default:()=>[]}},emits:["actionClick"],setup(a,{emit:e}){const o=e,n=t.ref({}),r=t.ref(!1),i=t.ref(-1),s=t.ref(!1),u=t.ref(!1);t.onMounted(()=>{l()});const l=()=>{n.value={}},d=()=>{s.value=!0,i.value=setTimeout(()=>{s.value&&(r.value=!0)},500)},f=()=>{s.value=!1,u.value=!1,clearTimeout(i.value),r.value=!1},b=O=>{const _=!n.value[O];l(),_&&(n.value[O]=!0)},S=(O,_)=>{o("actionClick",_,O)};return(O,_)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass([{"open-set":r.value,"hovered-and-closed":u.value},"action-set collapse"]),onMouseover:d,onMouseleave:f},[t.createElementVNode("div",Be,[t.createElementVNode("div",{id:"chevron",onClick:_[0]||(_[0]=V=>u.value=!u.value)},[..._[1]||(_[1]=[t.createElementVNode("svg",{id:"Layer_1",class:"leftBar",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 100 100","xml:space":"preserve",width:"50",height:"50"},[t.createElementVNode("polygon",{points:"54.2,33.4 29.2,58.8 25,54.6 50,29.2 "})],-1),t.createElementVNode("svg",{id:"Layer_1",class:"rightBar",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 100 100","xml:space":"preserve",width:"50",height:"50"},[t.createElementVNode("polygon",{points:"70.8,58.8 45.8,33.4 50,29.2 75,54.6 "})],-1)])])]),_[2]||(_[2]=t.createElementVNode("div",{style:{"margin-right":"30px"}},null,-1)),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(a.elements,(V,I)=>(t.openBlock(),t.createElementBlock("div",{key:V.label,class:"action-element"},[V.type=="button"?(t.openBlock(),t.createElementBlock("button",{key:0,disabled:V.disabled,class:"button-default",onClick:x=>S(V.action,V.label)},t.toDisplayString(V.label),9,je)):t.createCommentVNode("",!0),V.type=="dropdown"?(t.openBlock(),t.createElementBlock("div",Le,[t.createElementVNode("button",{class:"button-default",onClick:x=>b(I)},t.toDisplayString(V.label),9,Me),t.withDirectives(t.createElementVNode("div",Fe,[t.createElementVNode("div",He,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(V.actions,(x,T)=>(t.openBlock(),t.createElementBlock("div",{key:x.label},[x.action!=null?(t.openBlock(),t.createElementBlock("button",{key:0,class:"dropdown-item",onClick:L=>S(x.action,x.label)},t.toDisplayString(x.label),9,Ue)):x.link!=null?(t.openBlock(),t.createElementBlock("a",{key:1,href:x.link},[t.createElementVNode("button",Ke,t.toDisplayString(x.label),1)],8,ze)):t.createCommentVNode("",!0)]))),128))])],512),[[t.vShow,n.value[I]]])])):t.createCommentVNode("",!0)]))),128))],34))}}),Se=(a,e)=>{const o=a.__vccOpts||a;for(const[n,r]of e)o[n]=r;return o},de=Se(We,[["__scopeId","data-v-eb01c863"]]),Je={class:"command-palette-header"},Ge=["placeholder"],qe={key:0,class:"command-palette-results"},Ze=["onClick","onMouseover"],Qe={class:"result-title"},Xe={class:"result-content"},Ye={key:1,class:"command-palette-no-results"},pe=t.defineComponent({__name:"CommandPalette",props:{search:{type:Function},isOpen:{type:Boolean,default:!1},placeholder:{default:"Type a command or search..."},maxResults:{default:10}},emits:["select","close"],setup(a,{emit:e}){const o=e,n=t.ref(""),r=t.ref(0),i=t.useTemplateRef("input"),s=t.computed(()=>n.value?a.search(n.value).slice(0,a.maxResults):[]);t.watch(()=>a.isOpen,async f=>{f&&(n.value="",r.value=0,await t.nextTick(),i.value?.focus())}),t.watch(s,()=>{r.value=0});const u=()=>{o("close")},l=f=>{switch(f.key){case"Escape":u();break;case"ArrowDown":f.preventDefault(),s.value.length&&(r.value=(r.value+1)%s.value.length);break;case"ArrowUp":f.preventDefault(),s.value.length&&(r.value=(r.value-1+s.value.length)%s.value.length);break;case"Enter":s.value.length&&r.value>=0&&d(s.value[r.value]);break}},d=f=>{o("select",f),u()};return(f,b)=>(t.openBlock(),t.createBlock(t.Teleport,{to:"body"},[t.createVNode(t.Transition,{name:"fade"},{default:t.withCtx(()=>[a.isOpen?(t.openBlock(),t.createElementBlock("div",{key:0,class:"command-palette-overlay",onClick:u},[t.createElementVNode("div",{class:"command-palette",onClick:b[1]||(b[1]=t.withModifiers(()=>{},["stop"]))},[t.createElementVNode("div",Je,[t.withDirectives(t.createElementVNode("input",{ref:"input","onUpdate:modelValue":b[0]||(b[0]=S=>n.value=S),type:"text",class:"command-palette-input",placeholder:a.placeholder,autofocus:"",onKeydown:l},null,40,Ge),[[t.vModelText,n.value]])]),s.value.length?(t.openBlock(),t.createElementBlock("div",qe,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.value,(S,O)=>(t.openBlock(),t.createElementBlock("div",{key:O,class:t.normalizeClass(["command-palette-result",{selected:O===r.value}]),onClick:_=>d(S),onMouseover:_=>r.value=O},[t.createElementVNode("div",Qe,[t.renderSlot(f.$slots,"title",{result:S})]),t.createElementVNode("div",Xe,[t.renderSlot(f.$slots,"content",{result:S})])],42,Ze))),128))])):n.value&&!s.value.length?(t.openBlock(),t.createElementBlock("div",Ye,[t.renderSlot(f.$slots,"empty",{},()=>[t.createTextVNode(' No results found for "'+t.toDisplayString(n.value)+'" ',1)])])):t.createCommentVNode("",!0)])])):t.createCommentVNode("",!0)]),_:3})]))}}),Y=typeof window<"u";let ee;const ne=a=>ee=a;process.env.NODE_ENV;const et=process.env.NODE_ENV!=="production"?Symbol("pinia"):Symbol();function q(a){return a&&typeof a=="object"&&Object.prototype.toString.call(a)==="[object Object]"&&typeof a.toJSON!="function"}var te;(function(a){a.direct="direct",a.patchObject="patch object",a.patchFunction="patch function"})(te||(te={}));function Ee(a,e){for(const o in e){const n=e[o];if(!(o in a))continue;const r=a[o];q(r)&&q(n)&&!t.isRef(n)&&!t.isReactive(n)?a[o]=Ee(r,n):a[o]=n}return a}const ke=()=>{};function Ne(a,e,o,n=ke){a.add(e);const r=()=>{a.delete(e)&&n()};return!o&&t.getCurrentScope()&&t.onScopeDispose(r),r}function Q(a,...e){a.forEach(o=>{o(...e)})}const tt=a=>a(),$e=Symbol(),fe=Symbol();function he(a,e){a instanceof Map&&e instanceof Map?e.forEach((o,n)=>a.set(n,o)):a instanceof Set&&e instanceof Set&&e.forEach(a.add,a);for(const o in e){if(!e.hasOwnProperty(o))continue;const n=e[o],r=a[o];q(r)&&q(n)&&a.hasOwnProperty(o)&&!t.isRef(n)&&!t.isReactive(n)?a[o]=he(r,n):a[o]=n}return a}const ot=process.env.NODE_ENV!=="production"?Symbol("pinia:skipHydration"):Symbol();function at(a){return!q(a)||!Object.prototype.hasOwnProperty.call(a,ot)}const{assign:U}=Object;function _e(a){return!!(t.isRef(a)&&a.effect)}function Ve(a,e,o,n){const{state:r,actions:i,getters:s}=e,u=o.state.value[a];let l;function d(){!u&&(process.env.NODE_ENV==="production"||!n)&&(o.state.value[a]=r?r():{});const f=process.env.NODE_ENV!=="production"&&n?t.toRefs(t.ref(r?r():{}).value):t.toRefs(o.state.value[a]);return U(f,i,Object.keys(s||{}).reduce((b,S)=>(process.env.NODE_ENV!=="production"&&S in f&&console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with "${S}" in store "${a}".`),b[S]=t.markRaw(t.computed(()=>{ne(o);const O=o._s.get(a);return s[S].call(O,O)})),b),{}))}return l=me(a,d,e,o,n,!0),l}function me(a,e,o={},n,r,i){let s;const u=U({actions:{}},o);if(process.env.NODE_ENV!=="production"&&!n._e.active)throw new Error("Pinia destroyed");const l={deep:!0};process.env.NODE_ENV!=="production"&&(l.onTrigger=v=>{d?O=v:d==!1&&!N._hotUpdating&&(Array.isArray(O)?O.push(v):console.error("🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug."))});let d,f,b=new Set,S=new Set,O;const _=n.state.value[a];!i&&!_&&(process.env.NODE_ENV==="production"||!r)&&(n.state.value[a]={});const V=t.ref({});let I;function x(v){let h;d=f=!1,process.env.NODE_ENV!=="production"&&(O=[]),typeof v=="function"?(v(n.state.value[a]),h={type:te.patchFunction,storeId:a,events:O}):(he(n.state.value[a],v),h={type:te.patchObject,payload:v,storeId:a,events:O});const R=I=Symbol();t.nextTick().then(()=>{I===R&&(d=!0)}),f=!0,Q(b,h,n.state.value[a])}const T=i?function(){const{state:v}=o,h=v?v():{};this.$patch(R=>{U(R,h)})}:process.env.NODE_ENV!=="production"?()=>{throw new Error(`🍍: Store "${a}" is built using the setup syntax and does not implement $reset().`)}:ke;function L(){s.stop(),b.clear(),S.clear(),n._s.delete(a)}const H=(v,h="")=>{if($e in v)return v[fe]=h,v;const R=function(){ne(n);const P=Array.from(arguments),$=new Set,g=new Set;function k(B){$.add(B)}function D(B){g.add(B)}Q(S,{args:P,name:R[fe],store:N,after:k,onError:D});let A;try{A=v.apply(this&&this.$id===a?this:N,P)}catch(B){throw Q(g,B),B}return A instanceof Promise?A.then(B=>(Q($,B),B)).catch(B=>(Q(g,B),Promise.reject(B))):(Q($,A),A)};return R[$e]=!0,R[fe]=h,R},F=t.markRaw({actions:{},getters:{},state:[],hotState:V}),M={_p:n,$id:a,$onAction:Ne.bind(null,S),$patch:x,$reset:T,$subscribe(v,h={}){const R=Ne(b,v,h.detached,()=>P()),P=s.run(()=>t.watch(()=>n.state.value[a],$=>{(h.flush==="sync"?f:d)&&v({storeId:a,type:te.direct,events:O},$)},U({},l,h)));return R},$dispose:L},N=t.reactive(process.env.NODE_ENV!=="production"||process.env.NODE_ENV!=="production"&&process.env.NODE_ENV!=="test"&&Y?U({_hmrPayload:F,_customProperties:t.markRaw(new Set)},M):M);n._s.set(a,N);const j=(n._a&&n._a.runWithContext||tt)(()=>n._e.run(()=>(s=t.effectScope()).run(()=>e({action:H}))));for(const v in j){const h=j[v];if(t.isRef(h)&&!_e(h)||t.isReactive(h))process.env.NODE_ENV!=="production"&&r?V.value[v]=t.toRef(j,v):i||(_&&at(h)&&(t.isRef(h)?h.value=_[v]:he(h,_[v])),n.state.value[a][v]=h),process.env.NODE_ENV!=="production"&&F.state.push(v);else if(typeof h=="function"){const R=process.env.NODE_ENV!=="production"&&r?h:H(h,v);j[v]=R,process.env.NODE_ENV!=="production"&&(F.actions[v]=h),u.actions[v]=h}else process.env.NODE_ENV!=="production"&&_e(h)&&(F.getters[v]=i?o.getters[v]:h,Y&&(j._getters||(j._getters=t.markRaw([]))).push(v))}if(U(N,j),U(t.toRaw(N),j),Object.defineProperty(N,"$state",{get:()=>process.env.NODE_ENV!=="production"&&r?V.value:n.state.value[a],set:v=>{if(process.env.NODE_ENV!=="production"&&r)throw new Error("cannot set hotState");x(h=>{U(h,v)})}}),process.env.NODE_ENV!=="production"&&(N._hotUpdate=t.markRaw(v=>{N._hotUpdating=!0,v._hmrPayload.state.forEach(h=>{if(h in N.$state){const R=v.$state[h],P=N.$state[h];typeof R=="object"&&q(R)&&q(P)?Ee(R,P):v.$state[h]=P}N[h]=t.toRef(v.$state,h)}),Object.keys(N.$state).forEach(h=>{h in v.$state||delete N[h]}),d=!1,f=!1,n.state.value[a]=t.toRef(v._hmrPayload,"hotState"),f=!0,t.nextTick().then(()=>{d=!0});for(const h in v._hmrPayload.actions){const R=v[h];N[h]=H(R,h)}for(const h in v._hmrPayload.getters){const R=v._hmrPayload.getters[h],P=i?t.computed(()=>(ne(n),R.call(N,N))):R;N[h]=P}Object.keys(N._hmrPayload.getters).forEach(h=>{h in v._hmrPayload.getters||delete N[h]}),Object.keys(N._hmrPayload.actions).forEach(h=>{h in v._hmrPayload.actions||delete N[h]}),N._hmrPayload=v._hmrPayload,N._getters=v._getters,N._hotUpdating=!1})),process.env.NODE_ENV!=="production"&&process.env.NODE_ENV!=="test"&&Y){const v={writable:!0,configurable:!0,enumerable:!1};["_p","_hmrPayload","_getters","_customProperties"].forEach(h=>{Object.defineProperty(N,h,U({value:N[h]},v))})}return n._p.forEach(v=>{if(process.env.NODE_ENV!=="production"&&process.env.NODE_ENV!=="test"&&Y){const h=s.run(()=>v({store:N,app:n._a,pinia:n,options:u}));Object.keys(h||{}).forEach(R=>N._customProperties.add(R)),U(N,h)}else U(N,s.run(()=>v({store:N,app:n._a,pinia:n,options:u})))}),process.env.NODE_ENV!=="production"&&N.$state&&typeof N.$state=="object"&&typeof N.$state.constructor=="function"&&!N.$state.constructor.toString().includes("[native code]")&&console.warn(`[🍍]: The "state" must be a plain object. It cannot be
6
2
  state: () => new MyClass()
7
- Found in store "${N.$id}".`),_&&l&&o.hydrate&&o.hydrate(N.$state,_),u=!0,f=!0,N}/*! #__NO_SIDE_EFFECTS__ */function at(n,e,o){let a;const s=typeof e=="function";a=s?o:e;function l(r,c){const i=t.hasInjectionContext();if(r=(process.env.NODE_ENV==="test"&&Q&&Q._testing?null:r)||(i?t.inject(et,null):null),r&&ne(r),process.env.NODE_ENV!=="production"&&!Q)throw new Error(`[🍍]: "getActivePinia()" was called but there was no active Pinia. Are you trying to use a store before calling "app.use(pinia)"?
3
+ Found in store "${N.$id}".`),_&&i&&o.hydrate&&o.hydrate(N.$state,_),d=!0,f=!0,N}function nt(a,e,o){let n;const r=typeof e=="function";n=r?o:e;function i(s,u){const l=t.hasInjectionContext();if(s=(process.env.NODE_ENV==="test"&&ee&&ee._testing?null:s)||(l?t.inject(et,null):null),s&&ne(s),process.env.NODE_ENV!=="production"&&!ee)throw new Error(`[🍍]: "getActivePinia()" was called but there was no active Pinia. Are you trying to use a store before calling "app.use(pinia)"?
8
4
  See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help.
9
- This will fail in production.`);r=Q,r._s.has(n)||(s?me(n,e,a,r):De(n,a,r),process.env.NODE_ENV!=="production"&&(l._pinia=r));const u=r._s.get(n);if(process.env.NODE_ENV!=="production"&&c){const f="__hot:"+n,S=s?me(f,e,a,r,!0):De(f,U({},a),r,!0);c._hotUpdate(S),delete r.state.value[f],r._s.delete(f)}if(process.env.NODE_ENV!=="production"&&te){const f=t.getCurrentInstance();if(f&&f.proxy&&!c){const S=f.proxy,E="_pStores"in S?S._pStores:S._pStores={};E[n]=u}}return u}return l.$id=n,l}function rt(n){const e=t.toRaw(n),o={};for(const a in e){const s=e[a];s.effect?o[a]=t.computed({get:()=>n[a],set(l){n[a]=l}}):(t.isRef(s)||t.isReactive(s))&&(o[a]=t.toRef(n,a))}return o}function st(n,e){return t.getCurrentScope()?(t.onScopeDispose(n,e),!0):!1}const it=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const lt=Object.prototype.toString,ct=n=>lt.call(n)==="[object Object]",ut=()=>{};function dt(...n){if(n.length!==1)return t.toRef(...n);const e=n[0];return typeof e=="function"?t.readonly(t.customRef(()=>({get:e,set:ut}))):t.ref(e)}function pt(n,e){function o(...a){return new Promise((s,l)=>{Promise.resolve(n(()=>e.apply(this,a),{fn:e,thisArg:this,args:a})).then(s).catch(l)})}return o}const Oe=n=>n();function ft(n=Oe,e={}){const{initialState:o="active"}=e,a=dt(o==="active");function s(){a.value=!1}function l(){a.value=!0}const r=(...c)=>{a.value&&n(...c)};return{isActive:t.readonly(a),pause:s,resume:l,eventFilter:r}}function ge(n){return Array.isArray(n)?n:[n]}function ht(n){return t.getCurrentInstance()}function mt(n,e,o={}){const{eventFilter:a=Oe,...s}=o;return t.watch(n,pt(a,e),s)}function gt(n,e,o={}){const{eventFilter:a,initialState:s="active",...l}=o,{eventFilter:r,pause:c,resume:i,isActive:u}=ft(a,{initialState:s});return{stop:mt(n,e,{...l,eventFilter:r}),pause:c,resume:i,isActive:u}}const yt=gt;function vt(n,e=!0,o){ht()?t.onMounted(n,o):e?n():t.nextTick(n)}function wt(n,e,o){return t.watch(n,e,{...o,immediate:!0})}const ae=it?window:void 0;function bt(n){var e;const o=t.toValue(n);return(e=o?.$el)!==null&&e!==void 0?e:o}function Re(...n){const e=[],o=()=>{e.forEach(c=>c()),e.length=0},a=(c,i,u,f)=>(c.addEventListener(i,u,f),()=>c.removeEventListener(i,u,f)),s=t.computed(()=>{const c=ge(t.toValue(n[0])).filter(i=>i!=null);return c.every(i=>typeof i!="string")?c:void 0}),l=wt(()=>{var c,i;return[(c=(i=s.value)===null||i===void 0?void 0:i.map(u=>bt(u)))!==null&&c!==void 0?c:[ae].filter(u=>u!=null),ge(t.toValue(s.value?n[1]:n[0])),ge(t.unref(s.value?n[2]:n[1])),t.toValue(s.value?n[3]:n[2])]},([c,i,u,f])=>{if(o(),!c?.length||!i?.length||!u?.length)return;const S=ct(f)?{...f}:f;e.push(...c.flatMap(E=>i.flatMap(O=>u.map(_=>a(E,O,_,S)))))},{flush:"post"}),r=()=>{l(),o()};return st(o),r}const re=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},se="__vueuse_ssr_handlers__",St=Et();function Et(){return se in re||(re[se]=re[se]||{}),re[se]}function kt(n,e){return St[n]||e}function Nt(n){return n==null?"any":n instanceof Set?"set":n instanceof Map?"map":n instanceof Date?"date":typeof n=="boolean"?"boolean":typeof n=="string"?"string":typeof n=="object"?"object":Number.isNaN(n)?"any":"number"}const $t={boolean:{read:n=>n==="true",write:n=>String(n)},object:{read:n=>JSON.parse(n),write:n=>JSON.stringify(n)},number:{read:n=>Number.parseFloat(n),write:n=>String(n)},any:{read:n=>n,write:n=>String(n)},string:{read:n=>n,write:n=>String(n)},map:{read:n=>new Map(JSON.parse(n)),write:n=>JSON.stringify(Array.from(n.entries()))},set:{read:n=>new Set(JSON.parse(n)),write:n=>JSON.stringify(Array.from(n))},date:{read:n=>new Date(n),write:n=>n.toISOString()}},Ve="vueuse-storage";function _t(n,e,o,a={}){var s;const{flush:l="pre",deep:r=!0,listenToStorageChanges:c=!0,writeDefaults:i=!0,mergeDefaults:u=!1,shallow:f,window:S=ae,eventFilter:E,onError:O=g=>{console.error(g)},initOnMounted:_}=a,D=(f?t.shallowRef:t.ref)(e),I=t.computed(()=>t.toValue(n));if(!o)try{o=kt("getDefaultStorage",()=>ae?.localStorage)()}catch(g){O(g)}if(!o)return D;const x=t.toValue(e),T=Nt(x),F=(s=a.serializer)!==null&&s!==void 0?s:$t[T],{pause:H,resume:M}=yt(D,g=>h(g),{flush:l,deep:r,eventFilter:E});t.watch(I,()=>P(),{flush:l});let L=!1;const N=g=>{_&&!L||P(g)},j=g=>{_&&!L||$(g)};S&&c&&(o instanceof Storage?Re(S,"storage",N,{passive:!0}):Re(S,Ve,j)),_?vt(()=>{L=!0,P()}):P();function v(g,k){if(S){const R={key:I.value,oldValue:g,newValue:k,storageArea:o};S.dispatchEvent(o instanceof Storage?new StorageEvent("storage",R):new CustomEvent(Ve,{detail:R}))}}function h(g){try{const k=o.getItem(I.value);if(g==null)v(k,null),o.removeItem(I.value);else{const R=F.write(g);k!==R&&(o.setItem(I.value,R),v(k,R))}}catch(k){O(k)}}function V(g){const k=g?g.newValue:o.getItem(I.value);if(k==null)return i&&x!=null&&o.setItem(I.value,F.write(x)),x;if(!g&&u){const R=F.read(k);return typeof u=="function"?u(R,x):T==="object"&&!Array.isArray(R)?{...x,...R}:R}else return typeof k!="string"?k:F.read(k)}function P(g){if(!(g&&g.storageArea!==o)){if(g&&g.key==null){D.value=x;return}if(!(g&&g.key!==I.value)){H();try{const k=F.write(D.value);(g===void 0||g?.newValue!==k)&&(D.value=V(g))}catch(k){O(k)}finally{g?t.nextTick(M):M()}}}}function $(g){P(g.detail)}return D}function Dt(n,e,o={}){const{window:a=ae}=o;return _t(n,e,a?.localStorage,o)}function ye(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).substring(2,9)}`}function ie(n){const e={type:n.type,clientId:n.clientId,timestamp:n.timestamp.toISOString()};return n.operation&&(e.operation={...n.operation,timestamp:n.operation.timestamp.toISOString()}),n.operations&&(e.operations=n.operations.map(o=>({...o,timestamp:o.timestamp.toISOString()}))),e}function Ot(n){const e={type:n.type,clientId:n.clientId,timestamp:new Date(n.timestamp)};return n.operation&&(e.operation={...n.operation,timestamp:new Date(n.operation.timestamp)}),n.operations&&(e.operations=n.operations.map(o=>({...o,timestamp:new Date(o.timestamp)}))),e}const Ce=at("hst-operation-log",()=>{const n=t.ref({maxOperations:100,enableCrossTabSync:!0,autoSyncInterval:3e4,enablePersistence:!1,persistenceKeyPrefix:"stonecrop-ops"}),e=t.ref([]),o=t.ref(-1),a=t.ref(ye()),s=t.ref(!1),l=t.ref([]),r=t.ref(null),c=t.computed(()=>o.value<0?!1:e.value[o.value]?.reversible??!1),i=t.computed(()=>o.value<e.value.length-1),u=t.computed(()=>{let y=0;for(let m=o.value;m>=0&&e.value[m]?.reversible;m--)y++;return y}),f=t.computed(()=>e.value.length-1-o.value),S=t.computed(()=>({canUndo:c.value,canRedo:i.value,undoCount:u.value,redoCount:f.value,currentIndex:o.value}));function E(y){n.value={...n.value,...y},n.value.enablePersistence&&(A(),z()),n.value.enableCrossTabSync&&V()}function O(y,m="user"){const w={...y,id:ye(),timestamp:new Date,source:m,userId:n.value.userId};if(n.value.operationFilter&&!n.value.operationFilter(w))return w.id;if(s.value)return l.value.push(w),w.id;if(o.value<e.value.length-1&&(e.value=e.value.slice(0,o.value+1)),e.value.push(w),o.value++,n.value.maxOperations&&e.value.length>n.value.maxOperations){const d=e.value.length-n.value.maxOperations;e.value=e.value.slice(d),o.value-=d}return n.value.enableCrossTabSync&&P(w),w.id}function _(){s.value=!0,l.value=[],r.value=ye()}function D(y){if(!s.value||l.value.length===0)return s.value=!1,l.value=[],r.value=null,null;const m=r.value,w=l.value.every(b=>b.reversible),d={id:m,type:"batch",path:"",fieldname:"",beforeValue:null,afterValue:null,doctype:l.value[0]?.doctype||"",timestamp:new Date,source:"user",reversible:w,irreversibleReason:w?void 0:"Contains irreversible operations",childOperationIds:l.value.map(b=>b.id),metadata:{description:y}};l.value.forEach(b=>{b.parentOperationId=m}),e.value.push(...l.value,d),o.value=e.value.length-1,n.value.enableCrossTabSync&&$(l.value,d);const p=m;return s.value=!1,l.value=[],r.value=null,p}function I(){s.value=!1,l.value=[],r.value=null}function x(y){if(!c.value)return!1;const m=e.value[o.value];if(!m.reversible)return typeof console<"u"&&m.irreversibleReason&&console.warn("Cannot undo irreversible operation:",m.irreversibleReason),!1;try{if(m.type==="batch"&&m.childOperationIds)for(let w=m.childOperationIds.length-1;w>=0;w--){const d=m.childOperationIds[w],p=e.value.find(b=>b.id===d);p&&F(p,y)}else F(m,y);return o.value--,n.value.enableCrossTabSync&&g(m),!0}catch(w){return typeof console<"u"&&console.error("Undo failed:",w),!1}}function T(y){if(!i.value)return!1;const m=e.value[o.value+1];try{if(m.type==="batch"&&m.childOperationIds)for(const w of m.childOperationIds){const d=e.value.find(p=>p.id===w);d&&H(d,y)}else H(m,y);return o.value++,n.value.enableCrossTabSync&&k(m),!0}catch(w){return typeof console<"u"&&console.error("Redo failed:",w),!1}}function F(y,m){(y.type==="set"||y.type==="delete")&&m&&typeof m.set=="function"&&m.set(y.path,y.beforeValue,"undo")}function H(y,m){(y.type==="set"||y.type==="delete")&&m&&typeof m.set=="function"&&m.set(y.path,y.afterValue,"redo")}function M(){const y=e.value.filter(w=>w.reversible).length,m=e.value.map(w=>w.timestamp);return{operations:[...e.value],currentIndex:o.value,totalOperations:e.value.length,reversibleOperations:y,irreversibleOperations:e.value.length-y,oldestOperation:m.length>0?new Date(Math.min(...m.map(w=>w.getTime()))):void 0,newestOperation:m.length>0?new Date(Math.max(...m.map(w=>w.getTime()))):void 0}}function L(){e.value=[],o.value=-1}function N(y,m){return e.value.filter(w=>w.doctype===y&&(m===void 0||w.recordId===m))}function j(y,m){const w=e.value.find(d=>d.id===y);w&&(w.reversible=!1,w.irreversibleReason=m)}function v(y,m,w,d="success",p){const b={type:"action",path:w&&w.length>0?`${y}.${w[0]}`:y,fieldname:"",beforeValue:null,afterValue:null,doctype:y,recordId:w&&w.length>0?w[0]:void 0,reversible:!1,actionName:m,actionRecordIds:w,actionResult:d,actionError:p};return O(b)}let h=null;function V(){typeof window>"u"||!window.BroadcastChannel||(h=new BroadcastChannel("stonecrop-operation-log"),h.addEventListener("message",y=>{const m=y.data;if(!m||typeof m!="object")return;const w=Ot(m);w.clientId!==a.value&&(w.type==="operation"&&w.operation?(e.value.push({...w.operation,source:"sync"}),o.value=e.value.length-1):w.type==="operation"&&w.operations&&(e.value.push(...w.operations.map(d=>({...d,source:"sync"}))),o.value=e.value.length-1))}))}function P(y){if(!h)return;const m={type:"operation",operation:y,clientId:a.value,timestamp:new Date};h.postMessage(ie(m))}function $(y,m){if(!h)return;const w={type:"operation",operations:[...y,m],clientId:a.value,timestamp:new Date};h.postMessage(ie(w))}function g(y){if(!h)return;const m={type:"undo",operation:y,clientId:a.value,timestamp:new Date};h.postMessage(ie(m))}function k(y){if(!h)return;const m={type:"redo",operation:y,clientId:a.value,timestamp:new Date};h.postMessage(ie(m))}const R=Dt("stonecrop-ops-operations",null,{serializer:{read:y=>{try{return JSON.parse(y)}catch{return null}},write:y=>y?JSON.stringify(y):""}});function A(){if(!(typeof window>"u"))try{const y=R.value;y&&Array.isArray(y.operations)&&(e.value=y.operations.map(m=>({...m,timestamp:new Date(m.timestamp)})),o.value=y.currentIndex??-1)}catch(y){typeof console<"u"&&console.error("Failed to load operations from persistence:",y)}}function B(){if(!(typeof window>"u"))try{R.value={operations:e.value.map(y=>({...y,timestamp:y.timestamp.toISOString()})),currentIndex:o.value}}catch(y){typeof console<"u"&&console.error("Failed to save operations to persistence:",y)}}function z(){t.watch([e,o],()=>{n.value.enablePersistence&&B()},{deep:!0})}return{operations:e,currentIndex:o,config:n,clientId:a,undoRedoState:S,canUndo:c,canRedo:i,undoCount:u,redoCount:f,configure:E,addOperation:O,startBatch:_,commitBatch:D,cancelBatch:I,undo:x,redo:T,clear:L,getOperationsFor:N,getSnapshot:M,markIrreversible:j,logAction:v}});let Rt=class ue{static _root;options;doctypeActions=new Map;doctypeTransitions=new Map;fieldRollbackConfig=new Map;globalActions=new Map;globalTransitionActions=new Map;constructor(e={}){if(ue._root)return ue._root;ue._root=this,this.options={defaultTimeout:e.defaultTimeout??5e3,debug:e.debug??!1,enableRollback:e.enableRollback??!0,errorHandler:e.errorHandler}}registerAction(e,o){this.globalActions.set(e,o)}registerTransitionAction(e,o){this.globalTransitionActions.set(e,o)}setFieldRollback(e,o,a){this.fieldRollbackConfig.has(e)||this.fieldRollbackConfig.set(e,new Map),this.fieldRollbackConfig.get(e).set(o,a)}getFieldRollback(e,o){return this.fieldRollbackConfig.get(e)?.get(o)}registerDoctypeActions(e,o){if(!o)return;const a=new Map,s=new Map;if(typeof o.entrySeq=="function")o.entrySeq().forEach(([l,r])=>{this.categorizeAction(l,r,a,s)});else if(o instanceof Map)for(const[l,r]of o)this.categorizeAction(l,r,a,s);else o&&typeof o=="object"&&Object.entries(o).forEach(([l,r])=>{this.categorizeAction(l,r,a,s)});this.doctypeActions.set(e,a),this.doctypeTransitions.set(e,s)}categorizeAction(e,o,a,s){this.isTransitionKey(e)?s.set(e,o):a.set(e,o)}isTransitionKey(e){return/^[A-Z0-9_]+$/.test(e)&&e.length>0}async executeFieldTriggers(e,o={}){const{doctype:a,fieldname:s}=e,l=this.findFieldTriggers(a,s);if(l.length===0)return{path:e.path,actionResults:[],totalExecutionTime:0,allSucceeded:!0,stoppedOnError:!1,rolledBack:!1};const r=performance.now(),c=[];let i=!1,u=!1,f;const S=this.getFieldRollback(a,s),E=o.enableRollback??S??this.options.enableRollback;E&&e.store&&(f=this.captureSnapshot(e));for(const D of l)try{const I=await this.executeAction(D,e,o.timeout);if(c.push(I),!I.success){i=!0;break}}catch(I){const x={success:!1,error:I instanceof Error?I:new Error(String(I)),executionTime:0,action:D};c.push(x),i=!0;break}if(E&&i&&f&&e.store)try{this.restoreSnapshot(e,f),u=!0}catch(D){console.error("[FieldTriggers] Rollback failed:",D)}const O=performance.now()-r,_=c.filter(D=>!D.success);if(_.length>0&&this.options.errorHandler)for(const D of _)try{this.options.errorHandler(D.error,e,D.action)}catch(I){console.error("[FieldTriggers] Error in global error handler:",I)}return{path:e.path,actionResults:c,totalExecutionTime:O,allSucceeded:c.every(D=>D.success),stoppedOnError:i,rolledBack:u,snapshot:this.options.debug&&E?f:void 0}}async executeTransitionActions(e,o={}){const{doctype:a,transition:s}=e,l=this.findTransitionActions(a,s);if(l.length===0)return[];const r=[];for(const i of l)try{const u=await this.executeTransitionAction(i,e,o.timeout);if(r.push(u),!u.success)break}catch(u){const f={success:!1,error:u instanceof Error?u:new Error(String(u)),executionTime:0,action:i,transition:s};r.push(f);break}const c=r.filter(i=>!i.success);if(c.length>0&&this.options.errorHandler)for(const i of c)try{this.options.errorHandler(i.error,e,i.action)}catch(u){console.error("[FieldTriggers] Error in global error handler:",u)}return r}findTransitionActions(e,o){const a=this.doctypeTransitions.get(e);return a?a.get(o)||[]:[]}async executeTransitionAction(e,o,a){const s=performance.now(),l=a??this.options.defaultTimeout;try{let r=this.globalTransitionActions.get(e);if(!r){const c=this.globalActions.get(e);c&&(r=c)}if(!r)throw new Error(`Transition action "${e}" not found in registry`);return await this.executeWithTimeout(r,o,l),{success:!0,executionTime:performance.now()-s,action:e,transition:o.transition}}catch(r){const c=performance.now()-s;return{success:!1,error:r instanceof Error?r:new Error(String(r)),executionTime:c,action:e,transition:o.transition}}}findFieldTriggers(e,o){const a=this.doctypeActions.get(e);if(!a)return[];const s=[];for(const[l,r]of a)this.isFieldTriggerKey(l,o)&&s.push(...r);return s}isFieldTriggerKey(e,o){return e===o?!0:e.includes(".")?this.matchFieldPattern(e,o):e.includes("*")?this.matchFieldPattern(e,o):!1}matchFieldPattern(e,o){const a=e.split("."),s=o.split(".");if(a.length!==s.length)return!1;for(let l=0;l<a.length;l++){const r=a[l],c=s[l];if(r!=="*"&&r!==c)return!1}return!0}async executeAction(e,o,a){const s=performance.now(),l=a??this.options.defaultTimeout;try{const r=this.globalActions.get(e);if(!r)throw new Error(`Action "${e}" not found in registry`);return await this.executeWithTimeout(r,o,l),{success:!0,executionTime:performance.now()-s,action:e}}catch(r){const c=performance.now()-s;return{success:!1,error:r instanceof Error?r:new Error(String(r)),executionTime:c,action:e}}}async executeWithTimeout(e,o,a){return new Promise((s,l)=>{const r=setTimeout(()=>{l(new Error(`Action timeout after ${a}ms`))},a);Promise.resolve(e(o)).then(c=>{clearTimeout(r),s(c)}).catch(c=>{clearTimeout(r),l(c)})})}captureSnapshot(e){if(!(!e.store||!e.doctype||!e.recordId))try{const o=`${e.doctype}.${e.recordId}`,a=e.store.get(o);return!a||typeof a!="object"?void 0:JSON.parse(JSON.stringify(a))}catch(o){this.options.debug&&console.warn("[FieldTriggers] Failed to capture snapshot:",o);return}}restoreSnapshot(e,o){if(!(!e.store||!e.doctype||!e.recordId||!o))try{const a=`${e.doctype}.${e.recordId}`;e.store.set(a,o),this.options.debug&&console.log(`[FieldTriggers] Rolled back ${a} to previous state`)}catch(a){throw console.error("[FieldTriggers] Failed to restore snapshot:",a),a}}};function Te(n){return new Rt(n)}function Ie(){try{return Ce()}catch{return null}}class X{static instance;static getInstance(){return X.instance||(X.instance=new X),X.instance}getRegistry(){if(typeof globalThis<"u"){const e=globalThis.Registry?._root;if(e)return e}if(typeof window<"u"){const e=window.Registry?._root;if(e)return e}if(typeof global<"u"&&global){const e=global.Registry?._root;if(e)return e}}getDoctypeMeta(e){const o=this.getRegistry();if(o&&typeof o=="object"&&"registry"in o)return o.registry[e]}}class le{target;parentPath;rootNode;doctype;parentDoctype;hst;constructor(e,o,a="",s=null,l){return this.target=e,this.parentPath=a,this.rootNode=s||this,this.doctype=o,this.parentDoctype=l,this.hst=X.getInstance(),new Proxy(this,{get(r,c){if(c in r)return r[c];const i=String(c);return r.getNode(i)},set(r,c,i){const u=String(c);return r.set(u,i),!0}})}get(e){return this.resolveValue(e)}getNode(e){const o=this.resolvePath(e),a=this.resolveValue(e),s=o.split(".");let l=this.doctype;return this.doctype==="StonecropStore"&&s.length>=1&&(l=s[0]),typeof a=="object"&&a!==null&&!this.isPrimitive(a)?new le(a,l,o,this.rootNode,this.parentDoctype):new le(a,l,o,this.rootNode,this.parentDoctype)}set(e,o,a="user"){const s=this.resolvePath(e),l=this.has(e)?this.get(e):void 0;if(a!=="undo"&&a!=="redo"){const r=Ie();if(r&&typeof r.addOperation=="function"){const c=s.split("."),i=this.doctype==="StonecropStore"&&c.length>=1?c[0]:this.doctype,u=c.length>=2?c[1]:void 0,f=c.slice(2).join(".")||c[c.length-1],S=o===void 0&&l!==void 0?"delete":"set";r.addOperation({type:S,path:s,fieldname:f,beforeValue:l,afterValue:o,doctype:i,recordId:u,reversible:!0},a)}}this.updateValue(e,o),this.triggerFieldActions(s,l,o)}has(e){try{if(e==="")return!0;const o=this.parsePath(e);let a=this.target;for(let s=0;s<o.length;s++){const l=o[s];if(a==null)return!1;if(s===o.length-1)return this.isImmutable(a)?a.has(l):this.isPiniaStore(a)&&a.$state&&l in a.$state||l in a;a=this.getProperty(a,l)}return!1}catch{return!1}}getParent(){if(!this.parentPath)return null;const e=this.parentPath.split(".").slice(0,-1).join(".");return e===""?this.rootNode:this.rootNode.getNode(e)}getRoot(){return this.rootNode}getPath(){return this.parentPath}getDepth(){return this.parentPath?this.parentPath.split(".").length:0}getBreadcrumbs(){return this.parentPath?this.parentPath.split("."):[]}async triggerTransition(e,o){const a=Te(),s=this.parentPath.split(".");let l=this.doctype,r;this.doctype==="StonecropStore"&&s.length>=1&&(l=s[0]),s.length>=2&&(r=s[1]);const c={path:this.parentPath,fieldname:"",beforeValue:void 0,afterValue:void 0,operation:"set",doctype:l,recordId:r,timestamp:new Date,store:this.rootNode||void 0,transition:e,currentState:o?.currentState,targetState:o?.targetState,fsmContext:o?.fsmContext},i=Ie();return i&&typeof i.addOperation=="function"&&i.addOperation({type:"transition",path:this.parentPath,fieldname:e,beforeValue:o?.currentState,afterValue:o?.targetState,doctype:l,recordId:r,reversible:!1,metadata:{transition:e,currentState:o?.currentState,targetState:o?.targetState,fsmContext:o?.fsmContext}},"user"),await a.executeTransitionActions(c)}resolvePath(e){return e===""?this.parentPath:this.parentPath?`${this.parentPath}.${e}`:e}resolveValue(e){if(e==="")return this.target;const o=this.parsePath(e);let a=this.target;for(const s of o){if(a==null)return;a=this.getProperty(a,s)}return a}updateValue(e,o){if(e==="")throw new Error("Cannot set value on empty path");const a=this.parsePath(e),s=a.pop();let l=this.target;for(const r of a)if(l=this.getProperty(l,r),l==null)throw new Error(`Cannot set property on null/undefined path: ${e}`);this.setProperty(l,s,o)}getProperty(e,o){return this.isImmutable(e)?e.get(o):this.isVueReactive(e)?e[o]:this.isPiniaStore(e)?e.$state?.[o]??e[o]:e[o]}setProperty(e,o,a){if(this.isImmutable(e))throw new Error("Cannot directly mutate immutable objects. Use immutable update methods instead.");if(this.isPiniaStore(e)){e.$patch?e.$patch({[o]:a}):e[o]=a;return}e[o]=a}async triggerFieldActions(e,o,a){try{if(!e||typeof e!="string")return;const s=e.split(".");if(s.length<3)return;const l=Te(),r=s.slice(2).join(".")||s[s.length-1];let c=this.doctype;this.doctype==="StonecropStore"&&s.length>=1&&(c=s[0]);let i;s.length>=2&&(i=s[1]);const u={path:e,fieldname:r,beforeValue:o,afterValue:a,operation:"set",doctype:c,recordId:i,timestamp:new Date,store:this.rootNode||void 0};await l.executeFieldTriggers(u)}catch(s){s instanceof Error&&console.warn("Field trigger error:",s.message)}}isVueReactive(e){return e&&typeof e=="object"&&"__v_isReactive"in e&&e.__v_isReactive===!0}isPiniaStore(e){return e&&typeof e=="object"&&("$state"in e||"$patch"in e||"$id"in e)}isImmutable(e){if(!e||typeof e!="object")return!1;const o="get"in e&&typeof e.get=="function",a="set"in e&&typeof e.set=="function",s="has"in e&&typeof e.has=="function",l="__ownerID"in e||"_map"in e||"_list"in e||"_origin"in e||"_capacity"in e||"_defaultValues"in e||"_tail"in e||"_root"in e||"size"in e&&o&&a;let r;try{const i=e;if("constructor"in i&&i.constructor&&typeof i.constructor=="object"&&"name"in i.constructor){const u=i.constructor.name;r=typeof u=="string"?u:void 0}}catch{r=void 0}const c=r&&(r.includes("Map")||r.includes("List")||r.includes("Set")||r.includes("Stack")||r.includes("Seq"))&&(o||a);return!!(o&&a&&s&&l||o&&a&&c)}isPrimitive(e){return e==null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="function"||typeof e=="symbol"||typeof e=="bigint"}parsePath(e){return e?e.split(".").filter(o=>o.length>0):[]}}function Vt(n,e,o){return new le(n,e,"",null,o)}class Ct{hstStore;_operationLogStore;_operationLogConfig;registry;constructor(e,o){this.registry=e,this._operationLogConfig=o,this.initializeHSTStore(),this.setupRegistrySync()}getOperationLogStore(){return this._operationLogStore||(this._operationLogStore=Ce(),this._operationLogConfig&&this._operationLogStore.configure(this._operationLogConfig)),this._operationLogStore}initializeHSTStore(){const e={};Object.keys(this.registry.registry).forEach(o=>{e[o]={}}),this.hstStore=Vt(e,"StonecropStore")}setupRegistrySync(){const e=this.registry.addDoctype.bind(this.registry);this.registry.addDoctype=o=>{e(o),this.hstStore.has(o.slug)||this.hstStore.set(o.slug,{})}}records(e){const o=typeof e=="string"?e:e.slug;return this.ensureDoctypeExists(o),this.hstStore.getNode(o)}addRecord(e,o,a){const s=typeof e=="string"?e:e.slug;this.ensureDoctypeExists(s),this.hstStore.set(`${s}.${o}`,a)}getRecordById(e,o){const a=typeof e=="string"?e:e.slug;if(this.ensureDoctypeExists(a),!(!this.hstStore.has(`${a}.${o}`)||this.hstStore.get(`${a}.${o}`)===void 0))return this.hstStore.getNode(`${a}.${o}`)}removeRecord(e,o){const a=typeof e=="string"?e:e.slug;this.ensureDoctypeExists(a),this.hstStore.has(`${a}.${o}`)&&this.hstStore.set(`${a}.${o}`,void 0)}getRecordIds(e){const o=typeof e=="string"?e:e.slug;this.ensureDoctypeExists(o);const a=this.hstStore.get(o);return!a||typeof a!="object"?[]:Object.keys(a).filter(s=>a[s]!==void 0)}clearRecords(e){const o=typeof e=="string"?e:e.slug;this.ensureDoctypeExists(o),this.getRecordIds(o).forEach(a=>{this.hstStore.set(`${o}.${a}`,void 0)})}setup(e){this.ensureDoctypeExists(e.slug)}runAction(e,o,a){const s=this.registry.registry[e.slug]?.actions?.get(o),l=Array.isArray(a)?a.filter(u=>typeof u=="string"):void 0,r=this.getOperationLogStore();let c="success",i;try{s&&s.length>0&&s.forEach(u=>{try{new Function("args",u)(a)}catch(f){throw c="failure",i=f instanceof Error?f.message:"Unknown error",f}})}catch{}finally{r.logAction(e.doctype,o,l,c,i)}}async getRecords(e){(await(await fetch(`/${e.slug}`)).json()).forEach(o=>{o.id&&this.addRecord(e,o.id,o)})}async getRecord(e,o){const a=await(await fetch(`/${e.slug}/${o}`)).json();this.addRecord(e,o,a)}ensureDoctypeExists(e){this.hstStore.has(e)||this.hstStore.set(e,{})}async getMeta(e){if(!this.registry.getMeta)throw new Error("No getMeta function provided to Registry");return await this.registry.getMeta(e)}getStore(){return this.hstStore}}function Tt(n){n||(n={});const e=n.registry||t.inject("$registry"),o=t.inject("$stonecrop"),a=t.ref(),s=t.ref(),l=t.ref({}),r=t.ref(),c=t.ref(),i=t.ref([]),u=t.ref(-1),f=t.computed(()=>a.value?.getOperationLogStore().canUndo??!1),S=t.computed(()=>a.value?.getOperationLogStore().canRedo??!1),E=t.computed(()=>a.value?.getOperationLogStore().undoCount??0),O=t.computed(()=>a.value?.getOperationLogStore().redoCount??0),_=t.computed(()=>a.value?.getOperationLogStore().undoRedoState??{canUndo:!1,canRedo:!1,undoCount:0,redoCount:0,currentIndex:-1}),D=$=>a.value?.getOperationLogStore().undo($)??!1,I=$=>a.value?.getOperationLogStore().redo($)??!1,x=()=>{a.value?.getOperationLogStore().startBatch()},T=$=>a.value?.getOperationLogStore().commitBatch($)??null,F=()=>{a.value?.getOperationLogStore().cancelBatch()},H=()=>{a.value?.getOperationLogStore().clear()},M=($,g)=>a.value?.getOperationLogStore().getOperationsFor($,g)??[],L=()=>a.value?.getOperationLogStore().getSnapshot()??{operations:[],currentIndex:-1,totalOperations:0,reversibleOperations:0,irreversibleOperations:0},N=($,g)=>{a.value?.getOperationLogStore().markIrreversible($,g)},j=($,g,k,R="success",A)=>a.value?.getOperationLogStore().logAction($,g,k,R,A)??"",v=$=>{a.value?.getOperationLogStore().configure($)};t.onMounted(async()=>{if(e){a.value=o||new Ct(e);try{const $=a.value.getOperationLogStore(),g=rt($);i.value=g.operations.value,u.value=g.currentIndex.value,t.watch(()=>g.operations.value,k=>{i.value=k}),t.watch(()=>g.currentIndex.value,k=>{u.value=k})}catch{}if(!n.doctype&&e.router){const $=e.router.currentRoute.value;if(!$.path)return;const g=$.path.split("/").filter(R=>R.length>0),k=g[1]?.toLowerCase();if(g.length>0){const R={path:$.path,segments:g},A=await e.getMeta?.(R);if(A){if(e.addDoctype(A),a.value.setup(A),r.value=A,c.value=k,s.value=a.value.getStore(),k&&k!=="new"){const B=a.value.getRecordById(A,k);if(B)l.value=B.get("")||{};else try{await a.value.getRecord(A,k);const z=a.value.getRecordById(A,k);z&&(l.value=z.get("")||{})}catch{l.value=ce(A)}}else l.value=ce(A);s.value&&xe(A,k||"new",l,s.value),a.value.runAction(A,"load",k?[k]:void 0)}}}if(n.doctype){s.value=a.value.getStore();const $=n.doctype,g=n.recordId;if(g&&g!=="new"){const k=a.value.getRecordById($,g);if(k)l.value=k.get("")||{};else try{await a.value.getRecord($,g);const R=a.value.getRecordById($,g);R&&(l.value=R.get("")||{})}catch{l.value=ce($)}}else l.value=ce($);s.value&&xe($,g||"new",l,s.value)}}});const h=($,g)=>{const k=n.doctype||r.value;if(!k)return"";const R=g||n.recordId||c.value||"new";return`${k.slug}.${R}.${$}`},V=$=>{const g=n.doctype||r.value;if(!(!s.value||!a.value||!g))try{const k=$.path.split(".");if(k.length>=2){const B=k[0],z=k[1];if(s.value.has(`${B}.${z}`)||a.value.addRecord(g,z,{...l.value}),k.length>3){const y=`${B}.${z}`,m=k.slice(2);let w=y;for(let d=0;d<m.length-1;d++)if(w+=`.${m[d]}`,!s.value.has(w)){const p=m[d+1],b=!isNaN(Number(p));s.value.set(w,b?[]:{})}}}s.value.set($.path,$.value);const R=$.fieldname.split("."),A={...l.value};R.length===1?A[R[0]]=$.value:It(A,R,$.value),l.value=A}catch{}};(n.doctype||e?.router)&&(t.provide("hstPathProvider",h),t.provide("hstChangeHandler",V));const P={operations:i,currentIndex:u,undoRedoState:_,canUndo:f,canRedo:S,undoCount:E,redoCount:O,undo:D,redo:I,startBatch:x,commitBatch:T,cancelBatch:F,clear:H,getOperationsFor:M,getSnapshot:L,markIrreversible:N,logAction:j,configure:v};return n.doctype?{stonecrop:a,operationLog:P,provideHSTPath:h,handleHSTChange:V,hstStore:s,formData:l}:!n.doctype&&e?.router?{stonecrop:a,operationLog:P,provideHSTPath:h,handleHSTChange:V,hstStore:s,formData:l}:{stonecrop:a,operationLog:P}}function ce(n){const e={};return n.schema&&n.schema.forEach(o=>{switch("fieldtype"in o?o.fieldtype:"Data"){case"Data":case"Text":e[o.fieldname]="";break;case"Check":e[o.fieldname]=!1;break;case"Int":case"Float":e[o.fieldname]=0;break;case"Table":e[o.fieldname]=[];break;case"JSON":e[o.fieldname]={};break;default:e[o.fieldname]=null}}),e}function xe(n,e,o,a){t.watch(o,s=>{const l=`${n.slug}.${e}`;Object.keys(s).forEach(r=>{const c=`${l}.${r}`;try{a.set(c,s[r])}catch{}})},{deep:!0})}function It(n,e,o){let a=n;for(let l=0;l<e.length-1;l++){const r=e[l];(!(r in a)||typeof a[r]!="object")&&(a[r]=isNaN(Number(e[l+1]))?{}:[]),a=a[r]}const s=e[e.length-1];a[s]=o}const xt=(n,e)=>{const o=n.__vccOpts||n;for(const[a,s]of e)o[a]=s;return o};function At(n,e){return t.getCurrentScope()?(t.onScopeDispose(n,e),!0):!1}typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Pt=()=>{};function Bt(...n){if(n.length!==1)return t.toRef(...n);const e=n[0];return typeof e=="function"?t.readonly(t.customRef(()=>({get:e,set:Pt}))):t.ref(e)}function ve(n){return typeof Window<"u"&&n instanceof Window?n.document.documentElement:typeof Document<"u"&&n instanceof Document?n.documentElement:n}const we=new WeakMap;function jt(n,e=!1){const o=t.shallowRef(e);let a="";t.watch(Bt(n),r=>{const c=ve(t.toValue(r));if(c){const i=c;if(we.get(i)||we.set(i,i.style.overflow),i.style.overflow!=="hidden"&&(a=i.style.overflow),i.style.overflow==="hidden")return o.value=!0;if(o.value)return i.style.overflow="hidden"}},{immediate:!0});const s=()=>{const r=ve(t.toValue(n));!r||o.value||(r.style.overflow="hidden",o.value=!0)},l=()=>{const r=ve(t.toValue(n));!r||!o.value||(r.style.overflow=a,we.delete(r),o.value=!1)};return At(l),t.computed({get(){return o.value},set(r){r?s():l()}})}function Ft(){let n=!1;const e=t.shallowRef(!1);return(o,a)=>{if(e.value=a.value,n)return;n=!0;const s=jt(o,a.value);t.watch(e,l=>s.value=l)}}Ft(),typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Lt={class:"aform"},Mt=t.defineComponent({__name:"AForm",props:{modelValue:{},data:{},readonly:{type:Boolean}},emits:["update:modelValue"],setup(n,{emit:e}){const o=e,a=t.ref(n.data||{});t.watchEffect(()=>{n.data&&(a.value=n.data,n.modelValue.forEach(r=>{r.fieldname&&n.data[r.fieldname]!==void 0&&(r.value=n.data[r.fieldname])}))});const s=r=>{let c={};for(const[i,u]of Object.entries(r))["component","fieldtype"].includes(i)||(c[i]=u),i==="rows"&&u&&u.length===0&&(c.rows=a.value[r.fieldname]);return c},l=t.computed({get:()=>n.modelValue.map((r,c)=>t.computed({get(){return r.value},set:i=>{n.modelValue[c].value=i,o("update:modelValue",n.modelValue)}})),set:()=>{}});return(r,c)=>(t.openBlock(),t.createElementBlock("form",Lt,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.modelValue,(i,u)=>(t.openBlock(),t.createBlock(t.resolveDynamicComponent(i.component),t.mergeProps({key:u,modelValue:l.value[u].value,"onUpdate:modelValue":f=>l.value[u].value=f,schema:i,data:a.value[i.fieldname],readonly:n.readonly},{ref_for:!0},s(i)),null,16,["modelValue","onUpdate:modelValue","schema","data","readonly"]))),128))]))}}),Ht=xt(Mt,[["__scopeId","data-v-82d33d5b"]]),Ut={class:"tabs"},zt={tabindex:"0"},Kt={tabindex:"0"},be=Se(t.defineComponent({__name:"SheetNav",props:{breadcrumbs:{default:()=>[]}},setup(n){const e=t.ref(!0),o=t.ref(!1),a=t.ref(""),s=t.useTemplateRef("searchinput"),l=t.computed(()=>e.value?"unrotated":"rotated"),r=()=>{e.value=!e.value},c=async()=>{o.value=!o.value,await t.nextTick(()=>{s.value?.focus()})},i=S=>{S.preventDefault(),S.stopPropagation()},u=async S=>{S.preventDefault(),S.stopPropagation(),await c()},f=()=>{};return(S,E)=>{const O=t.resolveComponent("router-link");return t.openBlock(),t.createElementBlock("footer",null,[t.createElementVNode("ul",Ut,[t.createElementVNode("li",{class:"hidebreadcrumbs",onClick:r,onKeydown:t.withKeys(r,["enter"])},[t.createElementVNode("a",zt,[t.createElementVNode("div",{class:t.normalizeClass(l.value)},"×",2)])],32),t.createElementVNode("li",{class:"hometab",style:t.normalizeStyle({display:e.value?"block":"none"}),onClick:f,onKeydown:t.withKeys(f,["enter"])},[t.createVNode(O,{to:"/",tabindex:"0"},{default:t.withCtx(()=>[...E[5]||(E[5]=[t.createElementVNode("span",{class:"icon-placeholder","aria-label":"Home"},"🏠",-1)])]),_:1})],36),t.createElementVNode("li",{class:t.normalizeClass(["searchtab",{"search-active":o.value}]),style:t.normalizeStyle({display:e.value?"block":"none"})},[t.createElementVNode("a",Kt,[t.withDirectives(t.createElementVNode("span",{class:"search-icon",role:"button","aria-label":"Search",onClick:c,onKeydown:t.withKeys(c,["enter"])},"🔍",544),[[t.vShow,!o.value]]),t.withDirectives(t.createElementVNode("input",{ref:"searchinput","onUpdate:modelValue":E[0]||(E[0]=_=>a.value=_),type:"text",placeholder:"Search...",onClick:E[1]||(E[1]=t.withModifiers(()=>{},["stop"])),onInput:E[2]||(E[2]=_=>i(_)),onBlur:E[3]||(E[3]=_=>u(_)),onKeydown:[E[4]||(E[4]=t.withKeys(_=>u(_),["enter"])),t.withKeys(c,["escape"])]},null,544),[[t.vShow,o.value],[t.vModelText,a.value]])])],6),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(n.breadcrumbs,_=>(t.openBlock(),t.createElementBlock("li",{key:_.title,style:t.normalizeStyle({display:e.value?"block":"none"})},[t.createVNode(O,{tabindex:"0",to:_.to},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(_.title),1)]),_:2},1032,["to"])],4))),128))])])}}}),[["__scopeId","data-v-0afb6e2a"]]),Wt={key:1,class:"loading"},Jt={key:2,class:"loading"},Ae=t.defineComponent({__name:"Desktop",props:{availableDoctypes:{default:()=>[]}},setup(n){const{stonecrop:e}=Tt(),o=t.ref(!1),a=t.ref(!1),s=t.ref(!1),l=t.computed({get(){if(!e.value||!i.value||!f.value)return{};try{return e.value.getRecordById(i.value,f.value)?.get("")||{}}catch{return{}}},set(d){if(!(!e.value||!i.value||!f.value))try{const p=e.value.getStore();for(const[b,C]of Object.entries(d)){const G=`${i.value}.${f.value}.${b}`;p.set(G,C)}}catch(p){console.warn("HST update failed:",p)}}}),r=t.computed(()=>t.unref(e.value?.registry.router?.currentRoute)),c=t.computed(()=>e.value?.registry.router),i=t.computed(()=>{if(!r.value)return"";if(r.value.meta?.actualDoctype)return r.value.meta.actualDoctype;if(r.value.params.doctype)return r.value.params.doctype;const d=r.value.params.pathMatch;return d&&d.length>0?d[0]:""}),u=t.computed(()=>{if(!r.value)return"";if(r.value.meta?.doctype)return r.value.meta.doctype;if(r.value.params.doctype)return r.value.params.doctype;const d=r.value.params.pathMatch;return d&&d.length>0?d[0]:""}),f=t.computed(()=>{if(!r.value)return"";if(r.value.params.recordId)return r.value.params.recordId;const d=r.value.params.pathMatch;return d&&d.length>1?d[1]:""}),S=t.computed(()=>f.value?.startsWith("new-")),E=t.computed(()=>{if(!r.value||r.value.name==="home"||r.value.path==="/")return"doctypes";if(r.value.name&&r.value.name!=="catch-all"){const p=r.value.name;if(p.includes("form")||r.value.params.recordId)return"record";if(p.includes("list")||r.value.params.doctype)return"records"}const d=r.value.params.pathMatch;return d&&d.length>0?d.length===1?"records":"record":"doctypes"}),O=()=>{if(!e.value||!i.value||!f.value)return[];try{const p=e.value.registry.registry[i.value];if(!p?.workflow?.states)return[];const b=S.value?"creating":"editing",C=p.workflow.states[b];return C?.on?Object.keys(C.on).map(K=>{const oe=C.on?.[K],J=typeof oe=="string"?oe:"unknown",qt=async()=>{const Pe=e.value?.getRecordById(i.value,f.value);if(Pe){const Zt=l.value||{};await Pe.triggerTransition(K,{currentState:b,targetState:J,fsmContext:Zt})}};return{label:`${K} (→ ${J})`,action:qt}}):[]}catch(d){return console.warn("Error getting available transitions:",d),[]}},_=t.computed(()=>{const d=[];switch(E.value){case"doctypes":d.push({type:"button",label:"Refresh",action:()=>{window.location.reload()}});break;case"records":d.push({type:"button",label:"New Record",action:()=>void L()},{type:"button",label:"Refresh",action:()=>{window.location.reload()}});break;case"record":{const p=O();p.length>0&&d.push({type:"dropdown",label:"Actions",actions:p});break}}return d}),D=t.computed(()=>{const d=[];return E.value==="records"&&u.value?d.push({title:"Home",to:"/"},{title:T(u.value),to:`/${u.value}`}):E.value==="record"&&u.value&&d.push({title:"Home",to:"/"},{title:T(u.value),to:`/${u.value}`},{title:S.value?"New Record":"Edit Record",to:r.value?.fullPath||""}),d}),I=d=>{const p=[{title:"Go Home",description:"Navigate to the home page",action:()=>void c.value?.push("/")},{title:"Toggle Command Palette",description:"Open/close the command palette",action:()=>s.value=!s.value}];return u.value&&(p.push({title:`View ${T(u.value)} Records`,description:`Navigate to ${u.value} list`,action:()=>void c.value?.push(`/${u.value}`)}),p.push({title:`Create New ${T(u.value)}`,description:`Create a new ${u.value} record`,action:()=>void L()})),n.availableDoctypes.forEach(b=>{p.push({title:`View ${T(b)}`,description:`Navigate to ${b} list`,action:()=>void c.value?.push(`/${b}`)})}),d?p.filter(b=>b.title.toLowerCase().includes(d.toLowerCase())||b.description.toLowerCase().includes(d.toLowerCase())):p},x=d=>{d.action(),s.value=!1},T=d=>d.split("-").map(p=>p.charAt(0).toUpperCase()+p.slice(1)).join(" "),F=d=>e.value?e.value.getRecordIds(d).length:0,H=async d=>{await c.value?.push(`/${d}`)},M=async d=>{await c.value?.push(`/${u.value}/${d}`)},L=async()=>{const d=`new-${Date.now()}`;await c.value?.push(`/${u.value}/${d}`)},N=d=>{if(e.value)try{e.value.records(d)}catch{}},j=()=>{if(!n.availableDoctypes.length)return[];const d=n.availableDoctypes.map(p=>({id:p,doctype:p,display_name:T(p),record_count:F(p),actions:"View Records"}));return[{fieldname:"header",component:"div",value:`
5
+ This will fail in production.`);s=ee,s._s.has(a)||(r?me(a,e,n,s):Ve(a,n,s),process.env.NODE_ENV!=="production"&&(i._pinia=s));const d=s._s.get(a);if(process.env.NODE_ENV!=="production"&&u){const f="__hot:"+a,b=r?me(f,e,n,s,!0):Ve(f,U({},n),s,!0);u._hotUpdate(b),delete s.state.value[f],s._s.delete(f)}if(process.env.NODE_ENV!=="production"&&Y){const f=t.getCurrentInstance();if(f&&f.proxy&&!u){const b=f.proxy,S="_pStores"in b?b._pStores:b._pStores={};S[a]=d}}return d}return i.$id=a,i}function rt(a){const e=t.toRaw(a),o={};for(const n in e){const r=e[n];r.effect?o[n]=t.computed({get:()=>a[n],set(i){a[n]=i}}):(t.isRef(r)||t.isReactive(r))&&(o[n]=t.toRef(a,n))}return o}const st=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const it=Object.prototype.toString,lt=a=>it.call(a)==="[object Object]",ct=()=>{};function ut(...a){if(a.length!==1)return t.toRef(...a);const e=a[0];return typeof e=="function"?t.readonly(t.customRef(()=>({get:e,set:ct}))):t.ref(e)}function dt(a,e){function o(...n){return new Promise((r,i)=>{Promise.resolve(a(()=>e.apply(this,n),{fn:e,thisArg:this,args:n})).then(r).catch(i)})}return o}const Oe=a=>a();function pt(a=Oe,e={}){const{initialState:o="active"}=e,n=ut(o==="active");function r(){n.value=!1}function i(){n.value=!0}const s=(...u)=>{n.value&&a(...u)};return{isActive:t.readonly(n),pause:r,resume:i,eventFilter:s}}function ge(a){return Array.isArray(a)?a:[a]}function ft(a){return t.getCurrentInstance()}function ht(a,e,o={}){const{eventFilter:n=Oe,...r}=o;return t.watch(a,dt(n,e),r)}function mt(a,e,o={}){const{eventFilter:n,initialState:r="active",...i}=o,{eventFilter:s,pause:u,resume:l,isActive:d}=pt(n,{initialState:r});return{stop:ht(a,e,{...i,eventFilter:s}),pause:u,resume:l,isActive:d}}const gt=mt;function yt(a,e=!0,o){ft()?t.onMounted(a,o):e?a():t.nextTick(a)}function vt(a,e,o){return t.watch(a,e,{...o,immediate:!0})}const re=st?window:void 0;function wt(a){var e;const o=t.toValue(a);return(e=o?.$el)!==null&&e!==void 0?e:o}function De(...a){const e=(n,r,i,s)=>(n.addEventListener(r,i,s),()=>n.removeEventListener(r,i,s)),o=t.computed(()=>{const n=ge(t.toValue(a[0])).filter(r=>r!=null);return n.every(r=>typeof r!="string")?n:void 0});return vt(()=>{var n,r;return[(n=(r=o.value)===null||r===void 0?void 0:r.map(i=>wt(i)))!==null&&n!==void 0?n:[re].filter(i=>i!=null),ge(t.toValue(o.value?a[1]:a[0])),ge(t.unref(o.value?a[2]:a[1])),t.toValue(o.value?a[3]:a[2])]},([n,r,i,s],u,l)=>{if(!n?.length||!r?.length||!i?.length)return;const d=lt(s)?{...s}:s,f=n.flatMap(b=>r.flatMap(S=>i.map(O=>e(b,S,O,d))));l(()=>{f.forEach(b=>b())})},{flush:"post"})}const se=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ie="__vueuse_ssr_handlers__",bt=St();function St(){return ie in se||(se[ie]=se[ie]||{}),se[ie]}function Et(a,e){return bt[a]||e}function kt(a){return a==null?"any":a instanceof Set?"set":a instanceof Map?"map":a instanceof Date?"date":typeof a=="boolean"?"boolean":typeof a=="string"?"string":typeof a=="object"?"object":Number.isNaN(a)?"any":"number"}const Nt={boolean:{read:a=>a==="true",write:a=>String(a)},object:{read:a=>JSON.parse(a),write:a=>JSON.stringify(a)},number:{read:a=>Number.parseFloat(a),write:a=>String(a)},any:{read:a=>a,write:a=>String(a)},string:{read:a=>a,write:a=>String(a)},map:{read:a=>new Map(JSON.parse(a)),write:a=>JSON.stringify(Array.from(a.entries()))},set:{read:a=>new Set(JSON.parse(a)),write:a=>JSON.stringify(Array.from(a))},date:{read:a=>new Date(a),write:a=>a.toISOString()}},Re="vueuse-storage";function $t(a,e,o,n={}){var r;const{flush:i="pre",deep:s=!0,listenToStorageChanges:u=!0,writeDefaults:l=!0,mergeDefaults:d=!1,shallow:f,window:b=re,eventFilter:S,onError:O=g=>{console.error(g)},initOnMounted:_}=n,V=(f?t.shallowRef:t.ref)(e),I=t.computed(()=>t.toValue(a));if(!o)try{o=Et("getDefaultStorage",()=>re?.localStorage)()}catch(g){O(g)}if(!o)return V;const x=t.toValue(e),T=kt(x),L=(r=n.serializer)!==null&&r!==void 0?r:Nt[T],{pause:H,resume:F}=gt(V,g=>h(g),{flush:i,deep:s,eventFilter:S});t.watch(I,()=>P(),{flush:i});let M=!1;const N=g=>{_&&!M||P(g)},j=g=>{_&&!M||$(g)};b&&u&&(o instanceof Storage?De(b,"storage",N,{passive:!0}):De(b,Re,j)),_?yt(()=>{M=!0,P()}):P();function v(g,k){if(b){const D={key:I.value,oldValue:g,newValue:k,storageArea:o};b.dispatchEvent(o instanceof Storage?new StorageEvent("storage",D):new CustomEvent(Re,{detail:D}))}}function h(g){try{const k=o.getItem(I.value);if(g==null)v(k,null),o.removeItem(I.value);else{const D=L.write(g);k!==D&&(o.setItem(I.value,D),v(k,D))}}catch(k){O(k)}}function R(g){const k=g?g.newValue:o.getItem(I.value);if(k==null)return l&&x!=null&&o.setItem(I.value,L.write(x)),x;if(!g&&d){const D=L.read(k);return typeof d=="function"?d(D,x):T==="object"&&!Array.isArray(D)?{...x,...D}:D}else return typeof k!="string"?k:L.read(k)}function P(g){if(!(g&&g.storageArea!==o)){if(g&&g.key==null){V.value=x;return}if(!(g&&g.key!==I.value)){H();try{const k=L.write(V.value);(g===void 0||g?.newValue!==k)&&(V.value=R(g))}catch(k){O(k)}finally{g?t.nextTick(F):F()}}}}function $(g){P(g.detail)}return V}function _t(a,e,o={}){const{window:n=re}=o;return $t(a,e,n?.localStorage,o)}function ye(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).substring(2,9)}`}function le(a){const e={type:a.type,clientId:a.clientId,timestamp:a.timestamp.toISOString()};return a.operation&&(e.operation={...a.operation,timestamp:a.operation.timestamp.toISOString()}),a.operations&&(e.operations=a.operations.map(o=>({...o,timestamp:o.timestamp.toISOString()}))),e}function Vt(a){const e={type:a.type,clientId:a.clientId,timestamp:new Date(a.timestamp)};return a.operation&&(e.operation={...a.operation,timestamp:new Date(a.operation.timestamp)}),a.operations&&(e.operations=a.operations.map(o=>({...o,timestamp:new Date(o.timestamp)}))),e}const Ce=nt("hst-operation-log",()=>{const a=t.ref({maxOperations:100,enableCrossTabSync:!0,autoSyncInterval:3e4,enablePersistence:!1,persistenceKeyPrefix:"stonecrop-ops"}),e=t.ref([]),o=t.ref(-1),n=t.ref(ye()),r=t.ref(!1),i=t.ref([]),s=t.ref(null),u=t.computed(()=>o.value<0?!1:e.value[o.value]?.reversible??!1),l=t.computed(()=>o.value<e.value.length-1),d=t.computed(()=>{let y=0;for(let m=o.value;m>=0&&e.value[m]?.reversible;m--)y++;return y}),f=t.computed(()=>e.value.length-1-o.value),b=t.computed(()=>({canUndo:u.value,canRedo:l.value,undoCount:d.value,redoCount:f.value,currentIndex:o.value}));function S(y){a.value={...a.value,...y},a.value.enablePersistence&&(A(),z()),a.value.enableCrossTabSync&&R()}function O(y,m="user"){const w={...y,id:ye(),timestamp:new Date,source:m,userId:a.value.userId};if(a.value.operationFilter&&!a.value.operationFilter(w))return w.id;if(r.value)return i.value.push(w),w.id;if(o.value<e.value.length-1&&(e.value=e.value.slice(0,o.value+1)),e.value.push(w),o.value++,a.value.maxOperations&&e.value.length>a.value.maxOperations){const c=e.value.length-a.value.maxOperations;e.value=e.value.slice(c),o.value-=c}return a.value.enableCrossTabSync&&P(w),w.id}function _(){r.value=!0,i.value=[],s.value=ye()}function V(y){if(!r.value||i.value.length===0)return r.value=!1,i.value=[],s.value=null,null;const m=s.value,w=i.value.every(E=>E.reversible),c={id:m,type:"batch",path:"",fieldname:"",beforeValue:null,afterValue:null,doctype:i.value[0]?.doctype||"",timestamp:new Date,source:"user",reversible:w,irreversibleReason:w?void 0:"Contains irreversible operations",childOperationIds:i.value.map(E=>E.id),metadata:{description:y}};i.value.forEach(E=>{E.parentOperationId=m}),e.value.push(...i.value,c),o.value=e.value.length-1,a.value.enableCrossTabSync&&$(i.value,c);const p=m;return r.value=!1,i.value=[],s.value=null,p}function I(){r.value=!1,i.value=[],s.value=null}function x(y){if(!u.value)return!1;const m=e.value[o.value];if(!m.reversible)return typeof console<"u"&&m.irreversibleReason&&console.warn("Cannot undo irreversible operation:",m.irreversibleReason),!1;try{if(m.type==="batch"&&m.childOperationIds)for(let w=m.childOperationIds.length-1;w>=0;w--){const c=m.childOperationIds[w],p=e.value.find(E=>E.id===c);p&&L(p,y)}else L(m,y);return o.value--,a.value.enableCrossTabSync&&g(m),!0}catch(w){return typeof console<"u"&&console.error("Undo failed:",w),!1}}function T(y){if(!l.value)return!1;const m=e.value[o.value+1];try{if(m.type==="batch"&&m.childOperationIds)for(const w of m.childOperationIds){const c=e.value.find(p=>p.id===w);c&&H(c,y)}else H(m,y);return o.value++,a.value.enableCrossTabSync&&k(m),!0}catch(w){return typeof console<"u"&&console.error("Redo failed:",w),!1}}function L(y,m){(y.type==="set"||y.type==="delete")&&m&&typeof m.set=="function"&&m.set(y.path,y.beforeValue,"undo")}function H(y,m){(y.type==="set"||y.type==="delete")&&m&&typeof m.set=="function"&&m.set(y.path,y.afterValue,"redo")}function F(){const y=e.value.filter(w=>w.reversible).length,m=e.value.map(w=>w.timestamp);return{operations:[...e.value],currentIndex:o.value,totalOperations:e.value.length,reversibleOperations:y,irreversibleOperations:e.value.length-y,oldestOperation:m.length>0?new Date(Math.min(...m.map(w=>w.getTime()))):void 0,newestOperation:m.length>0?new Date(Math.max(...m.map(w=>w.getTime()))):void 0}}function M(){e.value=[],o.value=-1}function N(y,m){return e.value.filter(w=>w.doctype===y&&(m===void 0||w.recordId===m))}function j(y,m){const w=e.value.find(c=>c.id===y);w&&(w.reversible=!1,w.irreversibleReason=m)}function v(y,m,w,c="success",p){const E={type:"action",path:w&&w.length>0?`${y}.${w[0]}`:y,fieldname:"",beforeValue:null,afterValue:null,doctype:y,recordId:w&&w.length>0?w[0]:void 0,reversible:!1,actionName:m,actionRecordIds:w,actionResult:c,actionError:p};return O(E)}let h=null;function R(){typeof window>"u"||!window.BroadcastChannel||(h=new BroadcastChannel("stonecrop-operation-log"),h.addEventListener("message",y=>{const m=y.data;if(!m||typeof m!="object")return;const w=Vt(m);w.clientId!==n.value&&(w.type==="operation"&&w.operation?(e.value.push({...w.operation,source:"sync"}),o.value=e.value.length-1):w.type==="operation"&&w.operations&&(e.value.push(...w.operations.map(c=>({...c,source:"sync"}))),o.value=e.value.length-1))}))}function P(y){if(!h)return;const m={type:"operation",operation:y,clientId:n.value,timestamp:new Date};h.postMessage(le(m))}function $(y,m){if(!h)return;const w={type:"operation",operations:[...y,m],clientId:n.value,timestamp:new Date};h.postMessage(le(w))}function g(y){if(!h)return;const m={type:"undo",operation:y,clientId:n.value,timestamp:new Date};h.postMessage(le(m))}function k(y){if(!h)return;const m={type:"redo",operation:y,clientId:n.value,timestamp:new Date};h.postMessage(le(m))}const D=_t("stonecrop-ops-operations",null,{serializer:{read:y=>{try{return JSON.parse(y)}catch{return null}},write:y=>y?JSON.stringify(y):""}});function A(){if(!(typeof window>"u"))try{const y=D.value;y&&Array.isArray(y.operations)&&(e.value=y.operations.map(m=>({...m,timestamp:new Date(m.timestamp)})),o.value=y.currentIndex??-1)}catch(y){typeof console<"u"&&console.error("Failed to load operations from persistence:",y)}}function B(){if(!(typeof window>"u"))try{D.value={operations:e.value.map(y=>({...y,timestamp:y.timestamp.toISOString()})),currentIndex:o.value}}catch(y){typeof console<"u"&&console.error("Failed to save operations to persistence:",y)}}function z(){t.watch([e,o],()=>{a.value.enablePersistence&&B()},{deep:!0})}return{operations:e,currentIndex:o,config:a,clientId:n,undoRedoState:b,canUndo:u,canRedo:l,undoCount:d,redoCount:f,configure:S,addOperation:O,startBatch:_,commitBatch:V,cancelBatch:I,undo:x,redo:T,clear:M,getOperationsFor:N,getSnapshot:F,markIrreversible:j,logAction:v}});class oe{static _root;options;doctypeActions=new Map;doctypeTransitions=new Map;fieldRollbackConfig=new Map;globalActions=new Map;globalTransitionActions=new Map;constructor(e={}){if(oe._root)return oe._root;oe._root=this,this.options={defaultTimeout:e.defaultTimeout??5e3,debug:e.debug??!1,enableRollback:e.enableRollback??!0,errorHandler:e.errorHandler}}registerAction(e,o){this.globalActions.set(e,o)}registerTransitionAction(e,o){this.globalTransitionActions.set(e,o)}setFieldRollback(e,o,n){this.fieldRollbackConfig.has(e)||this.fieldRollbackConfig.set(e,new Map),this.fieldRollbackConfig.get(e).set(o,n)}getFieldRollback(e,o){return this.fieldRollbackConfig.get(e)?.get(o)}registerDoctypeActions(e,o){if(!o)return;const n=new Map,r=new Map;if(typeof o.entrySeq=="function")o.entrySeq().forEach(([i,s])=>{this.categorizeAction(i,s,n,r)});else if(o instanceof Map)for(const[i,s]of o)this.categorizeAction(i,s,n,r);else o&&typeof o=="object"&&Object.entries(o).forEach(([i,s])=>{this.categorizeAction(i,s,n,r)});this.doctypeActions.set(e,n),this.doctypeTransitions.set(e,r)}categorizeAction(e,o,n,r){this.isTransitionKey(e)?r.set(e,o):n.set(e,o)}isTransitionKey(e){return/^[A-Z0-9_]+$/.test(e)&&e.length>0}async executeFieldTriggers(e,o={}){const{doctype:n,fieldname:r}=e,i=this.findFieldTriggers(n,r);if(i.length===0)return{path:e.path,actionResults:[],totalExecutionTime:0,allSucceeded:!0,stoppedOnError:!1,rolledBack:!1};const s=performance.now(),u=[];let l=!1,d=!1,f;const b=this.getFieldRollback(n,r),S=o.enableRollback??b??this.options.enableRollback;S&&e.store&&(f=this.captureSnapshot(e));for(const V of i)try{const I=await this.executeAction(V,e,o.timeout);if(u.push(I),!I.success){l=!0;break}}catch(I){const x={success:!1,error:I instanceof Error?I:new Error(String(I)),executionTime:0,action:V};u.push(x),l=!0;break}if(S&&l&&f&&e.store)try{this.restoreSnapshot(e,f),d=!0}catch(V){console.error("[FieldTriggers] Rollback failed:",V)}const O=performance.now()-s,_=u.filter(V=>!V.success);if(_.length>0&&this.options.errorHandler)for(const V of _)try{this.options.errorHandler(V.error,e,V.action)}catch(I){console.error("[FieldTriggers] Error in global error handler:",I)}return{path:e.path,actionResults:u,totalExecutionTime:O,allSucceeded:u.every(V=>V.success),stoppedOnError:l,rolledBack:d,snapshot:this.options.debug&&S?f:void 0}}async executeTransitionActions(e,o={}){const{doctype:n,transition:r}=e,i=this.findTransitionActions(n,r);if(i.length===0)return[];const s=[];for(const l of i)try{const d=await this.executeTransitionAction(l,e,o.timeout);if(s.push(d),!d.success)break}catch(d){const f={success:!1,error:d instanceof Error?d:new Error(String(d)),executionTime:0,action:l,transition:r};s.push(f);break}const u=s.filter(l=>!l.success);if(u.length>0&&this.options.errorHandler)for(const l of u)try{this.options.errorHandler(l.error,e,l.action)}catch(d){console.error("[FieldTriggers] Error in global error handler:",d)}return s}findTransitionActions(e,o){const n=this.doctypeTransitions.get(e);return n?n.get(o)||[]:[]}async executeTransitionAction(e,o,n){const r=performance.now(),i=n??this.options.defaultTimeout;try{let s=this.globalTransitionActions.get(e);if(!s){const u=this.globalActions.get(e);u&&(s=u)}if(!s)throw new Error(`Transition action "${e}" not found in registry`);return await this.executeWithTimeout(s,o,i),{success:!0,executionTime:performance.now()-r,action:e,transition:o.transition}}catch(s){const u=performance.now()-r;return{success:!1,error:s instanceof Error?s:new Error(String(s)),executionTime:u,action:e,transition:o.transition}}}findFieldTriggers(e,o){const n=this.doctypeActions.get(e);if(!n)return[];const r=[];for(const[i,s]of n)this.isFieldTriggerKey(i,o)&&r.push(...s);return r}isFieldTriggerKey(e,o){return e===o?!0:e.includes(".")?this.matchFieldPattern(e,o):e.includes("*")?this.matchFieldPattern(e,o):!1}matchFieldPattern(e,o){const n=e.split("."),r=o.split(".");if(n.length!==r.length)return!1;for(let i=0;i<n.length;i++){const s=n[i],u=r[i];if(s!=="*"&&s!==u)return!1}return!0}async executeAction(e,o,n){const r=performance.now(),i=n??this.options.defaultTimeout;try{const s=this.globalActions.get(e);if(!s)throw new Error(`Action "${e}" not found in registry`);return await this.executeWithTimeout(s,o,i),{success:!0,executionTime:performance.now()-r,action:e}}catch(s){const u=performance.now()-r;return{success:!1,error:s instanceof Error?s:new Error(String(s)),executionTime:u,action:e}}}async executeWithTimeout(e,o,n){return new Promise((r,i)=>{const s=setTimeout(()=>{i(new Error(`Action timeout after ${n}ms`))},n);Promise.resolve(e(o)).then(u=>{clearTimeout(s),r(u)}).catch(u=>{clearTimeout(s),i(u)})})}captureSnapshot(e){if(!(!e.store||!e.doctype||!e.recordId))try{const o=`${e.doctype}.${e.recordId}`,n=e.store.get(o);return!n||typeof n!="object"?void 0:JSON.parse(JSON.stringify(n))}catch(o){this.options.debug&&console.warn("[FieldTriggers] Failed to capture snapshot:",o);return}}restoreSnapshot(e,o){if(!(!e.store||!e.doctype||!e.recordId||!o))try{const n=`${e.doctype}.${e.recordId}`;e.store.set(n,o),this.options.debug&&console.log(`[FieldTriggers] Rolled back ${n} to previous state`)}catch(n){throw console.error("[FieldTriggers] Failed to restore snapshot:",n),n}}}function Te(a){return new oe(a)}function Ie(){try{return Ce()}catch{return null}}class X{static instance;static getInstance(){return X.instance||(X.instance=new X),X.instance}getRegistry(){if(typeof globalThis<"u"){const e=globalThis.Registry?._root;if(e)return e}if(typeof window<"u"){const e=window.Registry?._root;if(e)return e}if(typeof global<"u"&&global){const e=global.Registry?._root;if(e)return e}}getDoctypeMeta(e){const o=this.getRegistry();if(o&&typeof o=="object"&&"registry"in o)return o.registry[e]}}class ce{target;parentPath;rootNode;doctype;parentDoctype;hst;constructor(e,o,n="",r=null,i){return this.target=e,this.parentPath=n,this.rootNode=r||this,this.doctype=o,this.parentDoctype=i,this.hst=X.getInstance(),new Proxy(this,{get(s,u){if(u in s)return s[u];const l=String(u);return s.getNode(l)},set(s,u,l){const d=String(u);return s.set(d,l),!0}})}get(e){return this.resolveValue(e)}getNode(e){const o=this.resolvePath(e),n=this.resolveValue(e),r=o.split(".");let i=this.doctype;return this.doctype==="StonecropStore"&&r.length>=1&&(i=r[0]),typeof n=="object"&&n!==null&&!this.isPrimitive(n)?new ce(n,i,o,this.rootNode,this.parentDoctype):new ce(n,i,o,this.rootNode,this.parentDoctype)}set(e,o,n="user"){const r=this.resolvePath(e),i=this.has(e)?this.get(e):void 0;if(n!=="undo"&&n!=="redo"){const s=Ie();if(s&&typeof s.addOperation=="function"){const u=r.split("."),l=this.doctype==="StonecropStore"&&u.length>=1?u[0]:this.doctype,d=u.length>=2?u[1]:void 0,f=u.slice(2).join(".")||u[u.length-1],b=o===void 0&&i!==void 0?"delete":"set";s.addOperation({type:b,path:r,fieldname:f,beforeValue:i,afterValue:o,doctype:l,recordId:d,reversible:!0},n)}}this.updateValue(e,o),this.triggerFieldActions(r,i,o)}has(e){try{if(e==="")return!0;const o=this.parsePath(e);let n=this.target;for(let r=0;r<o.length;r++){const i=o[r];if(n==null)return!1;if(r===o.length-1)return this.isImmutable(n)?n.has(i):this.isPiniaStore(n)&&n.$state&&i in n.$state||i in n;n=this.getProperty(n,i)}return!1}catch{return!1}}getParent(){if(!this.parentPath)return null;const e=this.parentPath.split(".").slice(0,-1).join(".");return e===""?this.rootNode:this.rootNode.getNode(e)}getRoot(){return this.rootNode}getPath(){return this.parentPath}getDepth(){return this.parentPath?this.parentPath.split(".").length:0}getBreadcrumbs(){return this.parentPath?this.parentPath.split("."):[]}async triggerTransition(e,o){const n=Te(),r=this.parentPath.split(".");let i=this.doctype,s;this.doctype==="StonecropStore"&&r.length>=1&&(i=r[0]),r.length>=2&&(s=r[1]);const u={path:this.parentPath,fieldname:"",beforeValue:void 0,afterValue:void 0,operation:"set",doctype:i,recordId:s,timestamp:new Date,store:this.rootNode||void 0,transition:e,currentState:o?.currentState,targetState:o?.targetState,fsmContext:o?.fsmContext},l=Ie();return l&&typeof l.addOperation=="function"&&l.addOperation({type:"transition",path:this.parentPath,fieldname:e,beforeValue:o?.currentState,afterValue:o?.targetState,doctype:i,recordId:s,reversible:!1,metadata:{transition:e,currentState:o?.currentState,targetState:o?.targetState,fsmContext:o?.fsmContext}},"user"),await n.executeTransitionActions(u)}resolvePath(e){return e===""?this.parentPath:this.parentPath?`${this.parentPath}.${e}`:e}resolveValue(e){if(e==="")return this.target;const o=this.parsePath(e);let n=this.target;for(const r of o){if(n==null)return;n=this.getProperty(n,r)}return n}updateValue(e,o){if(e==="")throw new Error("Cannot set value on empty path");const n=this.parsePath(e),r=n.pop();let i=this.target;for(const s of n)if(i=this.getProperty(i,s),i==null)throw new Error(`Cannot set property on null/undefined path: ${e}`);this.setProperty(i,r,o)}getProperty(e,o){return this.isImmutable(e)?e.get(o):this.isVueReactive(e)?e[o]:this.isPiniaStore(e)?e.$state?.[o]??e[o]:e[o]}setProperty(e,o,n){if(this.isImmutable(e))throw new Error("Cannot directly mutate immutable objects. Use immutable update methods instead.");if(this.isPiniaStore(e)){e.$patch?e.$patch({[o]:n}):e[o]=n;return}e[o]=n}async triggerFieldActions(e,o,n){try{if(!e||typeof e!="string")return;const r=e.split(".");if(r.length<3)return;const i=Te(),s=r.slice(2).join(".")||r[r.length-1];let u=this.doctype;this.doctype==="StonecropStore"&&r.length>=1&&(u=r[0]);let l;r.length>=2&&(l=r[1]);const d={path:e,fieldname:s,beforeValue:o,afterValue:n,operation:"set",doctype:u,recordId:l,timestamp:new Date,store:this.rootNode||void 0};await i.executeFieldTriggers(d)}catch(r){r instanceof Error&&console.warn("Field trigger error:",r.message)}}isVueReactive(e){return e&&typeof e=="object"&&"__v_isReactive"in e&&e.__v_isReactive===!0}isPiniaStore(e){return e&&typeof e=="object"&&("$state"in e||"$patch"in e||"$id"in e)}isImmutable(e){if(!e||typeof e!="object")return!1;const o="get"in e&&typeof e.get=="function",n="set"in e&&typeof e.set=="function",r="has"in e&&typeof e.has=="function",i="__ownerID"in e||"_map"in e||"_list"in e||"_origin"in e||"_capacity"in e||"_defaultValues"in e||"_tail"in e||"_root"in e||"size"in e&&o&&n;let s;try{const l=e;if("constructor"in l&&l.constructor&&typeof l.constructor=="object"&&"name"in l.constructor){const d=l.constructor.name;s=typeof d=="string"?d:void 0}}catch{s=void 0}const u=s&&(s.includes("Map")||s.includes("List")||s.includes("Set")||s.includes("Stack")||s.includes("Seq"))&&(o||n);return!!(o&&n&&r&&i||o&&n&&u)}isPrimitive(e){return e==null||typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="function"||typeof e=="symbol"||typeof e=="bigint"}parsePath(e){return e?e.split(".").filter(o=>o.length>0):[]}}function Ot(a,e,o){return new ce(a,e,"",null,o)}class Dt{hstStore;_operationLogStore;_operationLogConfig;registry;constructor(e,o){this.registry=e,this._operationLogConfig=o,this.initializeHSTStore(),this.setupRegistrySync()}getOperationLogStore(){return this._operationLogStore||(this._operationLogStore=Ce(),this._operationLogConfig&&this._operationLogStore.configure(this._operationLogConfig)),this._operationLogStore}initializeHSTStore(){const e={};Object.keys(this.registry.registry).forEach(o=>{e[o]={}}),this.hstStore=Ot(e,"StonecropStore")}setupRegistrySync(){const e=this.registry.addDoctype.bind(this.registry);this.registry.addDoctype=o=>{e(o),this.hstStore.has(o.slug)||this.hstStore.set(o.slug,{})}}records(e){const o=typeof e=="string"?e:e.slug;return this.ensureDoctypeExists(o),this.hstStore.getNode(o)}addRecord(e,o,n){const r=typeof e=="string"?e:e.slug;this.ensureDoctypeExists(r),this.hstStore.set(`${r}.${o}`,n)}getRecordById(e,o){const n=typeof e=="string"?e:e.slug;if(this.ensureDoctypeExists(n),!(!this.hstStore.has(`${n}.${o}`)||this.hstStore.get(`${n}.${o}`)===void 0))return this.hstStore.getNode(`${n}.${o}`)}removeRecord(e,o){const n=typeof e=="string"?e:e.slug;this.ensureDoctypeExists(n),this.hstStore.has(`${n}.${o}`)&&this.hstStore.set(`${n}.${o}`,void 0)}getRecordIds(e){const o=typeof e=="string"?e:e.slug;this.ensureDoctypeExists(o);const n=this.hstStore.get(o);return!n||typeof n!="object"?[]:Object.keys(n).filter(r=>n[r]!==void 0)}clearRecords(e){const o=typeof e=="string"?e:e.slug;this.ensureDoctypeExists(o),this.getRecordIds(o).forEach(n=>{this.hstStore.set(`${o}.${n}`,void 0)})}setup(e){this.ensureDoctypeExists(e.slug)}runAction(e,o,n){const r=this.registry.registry[e.slug]?.actions?.get(o),i=Array.isArray(n)?n.filter(d=>typeof d=="string"):void 0,s=this.getOperationLogStore();let u="success",l;try{r&&r.length>0&&r.forEach(d=>{try{new Function("args",d)(n)}catch(f){throw u="failure",l=f instanceof Error?f.message:"Unknown error",f}})}catch{}finally{s.logAction(e.doctype,o,i,u,l)}}async getRecords(e){(await(await fetch(`/${e.slug}`)).json()).forEach(o=>{o.id&&this.addRecord(e,o.id,o)})}async getRecord(e,o){const n=await(await fetch(`/${e.slug}/${o}`)).json();this.addRecord(e,o,n)}ensureDoctypeExists(e){this.hstStore.has(e)||this.hstStore.set(e,{})}async getMeta(e){if(!this.registry.getMeta)throw new Error("No getMeta function provided to Registry");return await this.registry.getMeta(e)}getStore(){return this.hstStore}}function Rt(a){a||(a={});const e=a.registry||t.inject("$registry"),o=t.inject("$stonecrop"),n=t.ref(),r=t.ref(),i=t.ref({}),s=t.ref(),u=t.ref(),l=t.ref([]),d=t.ref(-1),f=t.computed(()=>n.value?.getOperationLogStore().canUndo??!1),b=t.computed(()=>n.value?.getOperationLogStore().canRedo??!1),S=t.computed(()=>n.value?.getOperationLogStore().undoCount??0),O=t.computed(()=>n.value?.getOperationLogStore().redoCount??0),_=t.computed(()=>n.value?.getOperationLogStore().undoRedoState??{canUndo:!1,canRedo:!1,undoCount:0,redoCount:0,currentIndex:-1}),V=$=>n.value?.getOperationLogStore().undo($)??!1,I=$=>n.value?.getOperationLogStore().redo($)??!1,x=()=>{n.value?.getOperationLogStore().startBatch()},T=$=>n.value?.getOperationLogStore().commitBatch($)??null,L=()=>{n.value?.getOperationLogStore().cancelBatch()},H=()=>{n.value?.getOperationLogStore().clear()},F=($,g)=>n.value?.getOperationLogStore().getOperationsFor($,g)??[],M=()=>n.value?.getOperationLogStore().getSnapshot()??{operations:[],currentIndex:-1,totalOperations:0,reversibleOperations:0,irreversibleOperations:0},N=($,g)=>{n.value?.getOperationLogStore().markIrreversible($,g)},j=($,g,k,D="success",A)=>n.value?.getOperationLogStore().logAction($,g,k,D,A)??"",v=$=>{n.value?.getOperationLogStore().configure($)};t.onMounted(async()=>{if(e){n.value=o||new Dt(e);try{const $=n.value.getOperationLogStore(),g=rt($);l.value=g.operations.value,d.value=g.currentIndex.value,t.watch(()=>g.operations.value,k=>{l.value=k}),t.watch(()=>g.currentIndex.value,k=>{d.value=k})}catch{}if(!a.doctype&&e.router){const $=e.router.currentRoute.value;if(!$.path)return;const g=$.path.split("/").filter(D=>D.length>0),k=g[1]?.toLowerCase();if(g.length>0){const D={path:$.path,segments:g},A=await e.getMeta?.(D);if(A){if(e.addDoctype(A),n.value.setup(A),s.value=A,u.value=k,r.value=n.value.getStore(),k&&k!=="new"){const B=n.value.getRecordById(A,k);if(B)i.value=B.get("")||{};else try{await n.value.getRecord(A,k);const z=n.value.getRecordById(A,k);z&&(i.value=z.get("")||{})}catch{i.value=ue(A)}}else i.value=ue(A);r.value&&xe(A,k||"new",i,r.value),n.value.runAction(A,"load",k?[k]:void 0)}}}if(a.doctype){r.value=n.value.getStore();const $=a.doctype,g=a.recordId;if(g&&g!=="new"){const k=n.value.getRecordById($,g);if(k)i.value=k.get("")||{};else try{await n.value.getRecord($,g);const D=n.value.getRecordById($,g);D&&(i.value=D.get("")||{})}catch{i.value=ue($)}}else i.value=ue($);r.value&&xe($,g||"new",i,r.value)}}});const h=($,g)=>{const k=a.doctype||s.value;if(!k)return"";const D=g||a.recordId||u.value||"new";return`${k.slug}.${D}.${$}`},R=$=>{const g=a.doctype||s.value;if(!(!r.value||!n.value||!g))try{const k=$.path.split(".");if(k.length>=2){const B=k[0],z=k[1];if(r.value.has(`${B}.${z}`)||n.value.addRecord(g,z,{...i.value}),k.length>3){const y=`${B}.${z}`,m=k.slice(2);let w=y;for(let c=0;c<m.length-1;c++)if(w+=`.${m[c]}`,!r.value.has(w)){const p=m[c+1],E=!isNaN(Number(p));r.value.set(w,E?[]:{})}}}r.value.set($.path,$.value);const D=$.fieldname.split("."),A={...i.value};D.length===1?A[D[0]]=$.value:Ct(A,D,$.value),i.value=A}catch{}};(a.doctype||e?.router)&&(t.provide("hstPathProvider",h),t.provide("hstChangeHandler",R));const P={operations:l,currentIndex:d,undoRedoState:_,canUndo:f,canRedo:b,undoCount:S,redoCount:O,undo:V,redo:I,startBatch:x,commitBatch:T,cancelBatch:L,clear:H,getOperationsFor:F,getSnapshot:M,markIrreversible:N,logAction:j,configure:v};return a.doctype?{stonecrop:n,operationLog:P,provideHSTPath:h,handleHSTChange:R,hstStore:r,formData:i}:!a.doctype&&e?.router?{stonecrop:n,operationLog:P,provideHSTPath:h,handleHSTChange:R,hstStore:r,formData:i}:{stonecrop:n,operationLog:P}}function ue(a){const e={};return a.schema&&a.schema.forEach(o=>{switch("fieldtype"in o?o.fieldtype:"Data"){case"Data":case"Text":e[o.fieldname]="";break;case"Check":e[o.fieldname]=!1;break;case"Int":case"Float":e[o.fieldname]=0;break;case"Table":e[o.fieldname]=[];break;case"JSON":e[o.fieldname]={};break;default:e[o.fieldname]=null}}),e}function xe(a,e,o,n){t.watch(o,r=>{const i=`${a.slug}.${e}`;Object.keys(r).forEach(s=>{const u=`${i}.${s}`;try{n.set(u,r[s])}catch{}})},{deep:!0})}function Ct(a,e,o){let n=a;for(let i=0;i<e.length-1;i++){const s=e[i];(!(s in n)||typeof n[s]!="object")&&(n[s]=isNaN(Number(e[i+1]))?{}:[]),n=n[s]}const r=e[e.length-1];n[r]=o}const Tt=(a,e)=>{const o=a.__vccOpts||a;for(const[n,r]of e)o[n]=r;return o};function It(a,e){return t.getCurrentScope()?(t.onScopeDispose(a,e),!0):!1}typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const xt=()=>{};function At(...a){if(a.length!==1)return t.toRef(...a);const e=a[0];return typeof e=="function"?t.readonly(t.customRef(()=>({get:e,set:xt}))):t.ref(e)}function ve(a){return typeof Window<"u"&&a instanceof Window?a.document.documentElement:typeof Document<"u"&&a instanceof Document?a.documentElement:a}const we=new WeakMap;function Pt(a,e=!1){const o=t.shallowRef(e);let n="";t.watch(At(a),s=>{const u=ve(t.toValue(s));if(u){const l=u;if(we.get(l)||we.set(l,l.style.overflow),l.style.overflow!=="hidden"&&(n=l.style.overflow),l.style.overflow==="hidden")return o.value=!0;if(o.value)return l.style.overflow="hidden"}},{immediate:!0});const r=()=>{const s=ve(t.toValue(a));!s||o.value||(s.style.overflow="hidden",o.value=!0)},i=()=>{const s=ve(t.toValue(a));!s||!o.value||(s.style.overflow=n,we.delete(s),o.value=!1)};return It(i),t.computed({get(){return o.value},set(s){s?r():i()}})}function Bt(){let a=!1;const e=t.shallowRef(!1);return(o,n)=>{if(e.value=n.value,a)return;a=!0;const r=Pt(o,n.value);t.watch(e,i=>r.value=i)}}Bt(),typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const jt={class:"aform"},Lt=t.defineComponent({__name:"AForm",props:{modelValue:{},data:{},readOnly:{type:Boolean}},emits:["update:modelValue"],setup(a,{emit:e}){const o=e,n=t.ref(a.data||{});t.watchEffect(()=>{a.data&&(n.value=a.data,a.modelValue.forEach(s=>{s.fieldname&&a.data[s.fieldname]!==void 0&&(s.value=a.data[s.fieldname])}))});const r=s=>{let u={};for(const[l,d]of Object.entries(s))["component","fieldtype"].includes(l)||(u[l]=d),l==="rows"&&d&&d.length===0&&(u.rows=n.value[s.fieldname]);return u},i=t.computed({get:()=>a.modelValue.map((s,u)=>t.computed({get(){return s.value},set:l=>{a.modelValue[u].value=l,o("update:modelValue",a.modelValue)}})),set:()=>{}});return(s,u)=>(t.openBlock(),t.createElementBlock("form",jt,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(a.modelValue,(l,d)=>(t.openBlock(),t.createBlock(t.resolveDynamicComponent(l.component),t.mergeProps({key:d,modelValue:i.value[d].value,"onUpdate:modelValue":f=>i.value[d].value=f,schema:l,data:n.value[l.fieldname],readOnly:a.readOnly},{ref_for:!0},r(l)),null,16,["modelValue","onUpdate:modelValue","schema","data","readOnly"]))),128))]))}}),Mt=Tt(Lt,[["__scopeId","data-v-5336a410"]]),Ft={class:"tabs"},Ht={tabindex:"0"},Ut={tabindex:"0"},be=Se(t.defineComponent({__name:"SheetNav",props:{breadcrumbs:{default:()=>[]}},setup(a){const e=t.ref(!0),o=t.ref(!1),n=t.ref(""),r=t.useTemplateRef("searchinput"),i=t.computed(()=>e.value?"unrotated":"rotated"),s=()=>{e.value=!e.value},u=async()=>{o.value=!o.value,await t.nextTick(()=>{r.value?.focus()})},l=b=>{b.preventDefault(),b.stopPropagation()},d=async b=>{b.preventDefault(),b.stopPropagation(),await u()},f=()=>{};return(b,S)=>{const O=t.resolveComponent("router-link");return t.openBlock(),t.createElementBlock("footer",null,[t.createElementVNode("ul",Ft,[t.createElementVNode("li",{class:"hidebreadcrumbs",onClick:s,onKeydown:t.withKeys(s,["enter"])},[t.createElementVNode("a",Ht,[t.createElementVNode("div",{class:t.normalizeClass(i.value)},"×",2)])],32),t.createElementVNode("li",{class:"hometab",style:t.normalizeStyle({display:e.value?"block":"none"}),onClick:f,onKeydown:t.withKeys(f,["enter"])},[t.createVNode(O,{to:"/",tabindex:"0"},{default:t.withCtx(()=>[...S[5]||(S[5]=[t.createElementVNode("svg",{class:"icon","aria-label":"Home",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[t.createElementVNode("path",{d:"M3 12l9-9 9 9"}),t.createElementVNode("path",{d:"M9 21V12h6v9"})],-1)])]),_:1})],36),t.createElementVNode("li",{class:t.normalizeClass(["searchtab",{"search-active":o.value}]),style:t.normalizeStyle({display:e.value?"block":"none"})},[t.createElementVNode("a",Ut,[t.withDirectives((t.openBlock(),t.createElementBlock("svg",{class:"icon search-icon",role:"button","aria-label":"Search",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",onClick:u,onKeydown:t.withKeys(u,["enter"])},[...S[6]||(S[6]=[t.createElementVNode("circle",{cx:"11",cy:"11",r:"7"},null,-1),t.createElementVNode("path",{d:"M21 21l-4.35-4.35"},null,-1)])],544)),[[t.vShow,!o.value]]),t.withDirectives(t.createElementVNode("input",{ref:"searchinput","onUpdate:modelValue":S[0]||(S[0]=_=>n.value=_),type:"text",placeholder:"Search...",onClick:S[1]||(S[1]=t.withModifiers(()=>{},["stop"])),onInput:S[2]||(S[2]=_=>l(_)),onBlur:S[3]||(S[3]=_=>d(_)),onKeydown:[S[4]||(S[4]=t.withKeys(_=>d(_),["enter"])),t.withKeys(u,["escape"])]},null,544),[[t.vShow,o.value],[t.vModelText,n.value]])])],6),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(a.breadcrumbs,_=>(t.openBlock(),t.createElementBlock("li",{key:_.title,style:t.normalizeStyle({display:e.value?"block":"none"})},[t.createVNode(O,{tabindex:"0",to:_.to},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(_.title),1)]),_:2},1032,["to"])],4))),128))])])}}}),[["__scopeId","data-v-eb5bcbb6"]]),zt={key:1,class:"loading"},Kt={key:2,class:"loading"},Ae=t.defineComponent({__name:"Desktop",props:{availableDoctypes:{default:()=>[]}},setup(a){const{stonecrop:e}=Rt(),o=t.ref(!1),n=t.ref(!1),r=t.ref(!1),i=t.computed({get(){if(!e.value||!l.value||!f.value)return{};try{return e.value.getRecordById(l.value,f.value)?.get("")||{}}catch{return{}}},set(c){if(!(!e.value||!l.value||!f.value))try{const p=e.value.getStore();for(const[E,C]of Object.entries(c)){const G=`${l.value}.${f.value}.${E}`;p.set(G,C)}}catch(p){console.warn("HST update failed:",p)}}}),s=t.computed(()=>t.unref(e.value?.registry.router?.currentRoute)),u=t.computed(()=>e.value?.registry.router),l=t.computed(()=>{if(!s.value)return"";if(s.value.meta?.actualDoctype)return s.value.meta.actualDoctype;if(s.value.params.doctype)return s.value.params.doctype;const c=s.value.params.pathMatch;return c&&c.length>0?c[0]:""}),d=t.computed(()=>{if(!s.value)return"";if(s.value.meta?.doctype)return s.value.meta.doctype;if(s.value.params.doctype)return s.value.params.doctype;const c=s.value.params.pathMatch;return c&&c.length>0?c[0]:""}),f=t.computed(()=>{if(!s.value)return"";if(s.value.params.recordId)return s.value.params.recordId;const c=s.value.params.pathMatch;return c&&c.length>1?c[1]:""}),b=t.computed(()=>f.value?.startsWith("new-")),S=t.computed(()=>{if(!s.value||s.value.name==="home"||s.value.path==="/")return"doctypes";if(s.value.name&&s.value.name!=="catch-all"){const p=s.value.name;if(p.includes("form")||s.value.params.recordId)return"record";if(p.includes("list")||s.value.params.doctype)return"records"}const c=s.value.params.pathMatch;return c&&c.length>0?c.length===1?"records":"record":"doctypes"}),O=()=>{if(!e.value||!l.value||!f.value)return[];try{const p=e.value.registry.registry[l.value];if(!p?.workflow?.states)return[];const E=b.value?"creating":"editing",C=p.workflow.states[E];return C?.on?Object.keys(C.on).map(K=>{const ae=C.on?.[K],J=typeof ae=="string"?ae:"unknown",Jt=async()=>{const Pe=e.value?.getRecordById(l.value,f.value);if(Pe){const Gt=i.value||{};await Pe.triggerTransition(K,{currentState:E,targetState:J,fsmContext:Gt})}};return{label:`${K} (→ ${J})`,action:Jt}}):[]}catch(c){return console.warn("Error getting available transitions:",c),[]}},_=t.computed(()=>{const c=[];switch(S.value){case"doctypes":c.push({type:"button",label:"Refresh",action:()=>{window.location.reload()}});break;case"records":c.push({type:"button",label:"New Record",action:()=>{M()}},{type:"button",label:"Refresh",action:()=>{window.location.reload()}});break;case"record":{const p=O();p.length>0&&c.push({type:"dropdown",label:"Actions",actions:p});break}}return c}),V=t.computed(()=>{const c=[];return S.value==="records"&&d.value?c.push({title:"Home",to:"/"},{title:T(d.value),to:`/${d.value}`}):S.value==="record"&&d.value&&c.push({title:"Home",to:"/"},{title:T(d.value),to:`/${d.value}`},{title:b.value?"New Record":"Edit Record",to:s.value?.fullPath||""}),c}),I=c=>{const p=[{title:"Go Home",description:"Navigate to the home page",action:()=>{u.value?.push("/")}},{title:"Toggle Command Palette",description:"Open/close the command palette",action:()=>r.value=!r.value}];return d.value&&(p.push({title:`View ${T(d.value)} Records`,description:`Navigate to ${d.value} list`,action:()=>{u.value?.push(`/${d.value}`)}}),p.push({title:`Create New ${T(d.value)}`,description:`Create a new ${d.value} record`,action:()=>{M()}})),a.availableDoctypes.forEach(E=>{p.push({title:`View ${T(E)}`,description:`Navigate to ${E} list`,action:()=>{u.value?.push(`/${E}`)}})}),c?p.filter(E=>E.title.toLowerCase().includes(c.toLowerCase())||E.description.toLowerCase().includes(c.toLowerCase())):p},x=c=>{c.action(),r.value=!1},T=c=>c.split("-").map(p=>p.charAt(0).toUpperCase()+p.slice(1)).join(" "),L=c=>e.value?e.value.getRecordIds(c).length:0,H=async c=>{await u.value?.push(`/${c}`)},F=async c=>{await u.value?.push(`/${d.value}/${c}`)},M=async()=>{const c=`new-${Date.now()}`;await u.value?.push(`/${d.value}/${c}`)},N=c=>{if(e.value)try{e.value.records(c)}catch{}},j=()=>{if(!a.availableDoctypes.length)return[];const c=a.availableDoctypes.map(p=>({id:p,doctype:p,display_name:T(p),record_count:L(p),actions:"View Records"}));return[{fieldname:"header",component:"div",value:`
10
6
  <div class="view-header">
11
7
  <h1>Available Doctypes</h1>
12
8
  </div>
13
- `},{fieldname:"doctypes_table",component:"ATable",columns:[{label:"Doctype",name:"doctype",type:"Data",align:"left",edit:!1,width:"20ch"},{label:"Name",name:"display_name",type:"Data",align:"left",edit:!1,width:"30ch"},{label:"Records",name:"record_count",type:"Data",align:"center",edit:!1,width:"15ch"},{label:"Actions",name:"actions",type:"Data",align:"center",edit:!1,width:"20ch"}],config:{view:"list",fullWidth:!0},rows:d}]},v=()=>{if(!i.value)return[];if(!e.value)return[];const d=V(),p=P();if(p.length===0)return[{fieldname:"header",component:"div",value:`
9
+ `},{fieldname:"doctypes_table",component:"ATable",columns:[{label:"Doctype",name:"doctype",fieldtype:"Data",align:"left",edit:!1,width:"20ch"},{label:"Name",name:"display_name",fieldtype:"Data",align:"left",edit:!1,width:"30ch"},{label:"Records",name:"record_count",fieldtype:"Int",align:"center",edit:!1,width:"15ch"},{label:"Actions",name:"actions",fieldtype:"Data",align:"center",edit:!1,width:"20ch"}],config:{view:"list",fullWidth:!0},rows:c}]},v=()=>{if(!l.value)return[];if(!e.value)return[];const c=R(),p=P();if(p.length===0)return[{fieldname:"header",component:"div",value:`
14
10
  <div class="view-header">
15
11
  <nav class="breadcrumbs">
16
12
  <a href="/">Home</a>
17
13
  <span class="separator">/</span>
18
- <span class="current">${T(u.value||i.value)}</span>
14
+ <span class="current">${T(d.value||l.value)}</span>
19
15
  </nav>
20
- <h1>${T(u.value||i.value)} Records</h1>
16
+ <h1>${T(d.value||l.value)} Records</h1>
21
17
  </div>
22
18
  `},{fieldname:"loading",component:"div",value:`
23
19
  <div class="loading-state">
24
- <p>Loading ${T(u.value||i.value)} schema...</p>
20
+ <p>Loading ${T(d.value||l.value)} schema...</p>
25
21
  </div>
26
- `}];const b=d.map(C=>({...C,id:C.id||"",actions:"Edit | Delete"}));return[{fieldname:"header",component:"div",value:`
22
+ `}];const E=c.map(C=>({...C,id:C.id||"",actions:"Edit | Delete"}));return[{fieldname:"header",component:"div",value:`
27
23
  <div class="view-header">
28
24
  <nav class="breadcrumbs">
29
25
  <a href="/">Home</a>
30
26
  <span class="separator">/</span>
31
- <span class="current">${T(u.value||i.value)}</span>
27
+ <span class="current">${T(d.value||l.value)}</span>
32
28
  </nav>
33
- <h1>${T(u.value||i.value)} Records</h1>
29
+ <h1>${T(d.value||l.value)} Records</h1>
34
30
  </div>
35
31
  `},{fieldname:"actions",component:"div",value:`
36
32
  <div class="view-actions">
37
33
  <button class="btn-primary" data-action="create">
38
- New ${T(u.value||i.value)}
34
+ New ${T(d.value||l.value)}
39
35
  </button>
40
36
  </div>
41
- `},...d.length===0?[{fieldname:"empty_state",component:"div",value:`
37
+ `},...c.length===0?[{fieldname:"empty_state",component:"div",value:`
42
38
  <div class="empty-state">
43
- <p>No ${u.value||i.value} records found.</p>
39
+ <p>No ${d.value||l.value} records found.</p>
44
40
  <button class="btn-primary" data-action="create">
45
41
  Create First Record
46
42
  </button>
47
43
  </div>
48
- `}]:[{fieldname:"records_table",component:"ATable",columns:[...p.map(C=>({label:C.label,name:C.fieldname,type:C.fieldtype,align:"left",edit:!1,width:"20ch"})),{label:"Actions",name:"actions",type:"Data",align:"center",edit:!1,width:"20ch"}],config:{view:"list",fullWidth:!0},rows:b}]]},h=()=>{if(!i.value)return[];if(!e.value)return[];try{const p=e.value?.registry?.registry[i.value];if(!p?.schema)return[{fieldname:"header",component:"div",value:`
44
+ `}]:[{fieldname:"records_table",component:"ATable",columns:[...p.map(C=>({label:C.label,name:C.fieldname,fieldtype:C.fieldtype,align:"left",edit:!1,width:"20ch"})),{label:"Actions",name:"actions",fieldtype:"Data",align:"center",edit:!1,width:"20ch"}],config:{view:"list",fullWidth:!0},rows:E}]]},h=()=>{if(!l.value)return[];if(!e.value)return[];try{const p=e.value?.registry?.registry[l.value];if(!p?.schema)return[{fieldname:"header",component:"div",value:`
49
45
  <div class="view-header">
50
46
  <nav class="breadcrumbs">
51
47
  <a href="/">Home</a>
52
48
  <span class="separator">/</span>
53
- <a href="/${u.value||i.value}">${T(u.value||i.value)}</a>
49
+ <a href="/${d.value||l.value}">${T(d.value||l.value)}</a>
54
50
  <span class="separator">/</span>
55
- <span class="current">${S.value?"New Record":f.value}</span>
51
+ <span class="current">${b.value?"New Record":f.value}</span>
56
52
  </nav>
57
- <h1>${S.value?`New ${T(u.value||i.value)}`:`Edit ${T(u.value||i.value)}`}</h1>
53
+ <h1>${b.value?`New ${T(d.value||l.value)}`:`Edit ${T(d.value||l.value)}`}</h1>
58
54
  </div>
59
55
  `},{fieldname:"loading",component:"div",value:`
60
56
  <div class="loading-state">
61
- <p>Loading ${T(u.value||i.value)} form...</p>
57
+ <p>Loading ${T(d.value||l.value)} form...</p>
62
58
  </div>
63
- `}];const b="toArray"in p.schema?p.schema.toArray():p.schema,C=$();return[{fieldname:"header",component:"div",value:`
59
+ `}];const E="toArray"in p.schema?p.schema.toArray():p.schema,C=$();return[{fieldname:"header",component:"div",value:`
64
60
  <div class="view-header">
65
61
  <nav class="breadcrumbs">
66
62
  <a href="/">Home</a>
67
63
  <span class="separator">/</span>
68
- <a href="/${u.value||i.value}">${T(u.value||i.value)}</a>
64
+ <a href="/${d.value||l.value}">${T(d.value||l.value)}</a>
69
65
  <span class="separator">/</span>
70
- <span class="current">${S.value?"New Record":f.value}</span>
66
+ <span class="current">${b.value?"New Record":f.value}</span>
71
67
  </nav>
72
68
  <h1>
73
- ${S.value?`New ${T(u.value||i.value)}`:`Edit ${T(u.value||i.value)}`}
69
+ ${b.value?`New ${T(d.value||l.value)}`:`Edit ${T(d.value||l.value)}`}
74
70
  </h1>
75
71
  </div>
76
72
  `},{fieldname:"actions",component:"div",value:`
77
73
  <div class="view-actions">
78
- <button class="btn-primary" data-action="save" ${a.value?"disabled":""}>
79
- ${a.value?"Saving...":"Save"}
74
+ <button class="btn-primary" data-action="save" ${n.value?"disabled":""}>
75
+ ${n.value?"Saving...":"Save"}
80
76
  </button>
81
77
  <button class="btn-secondary" data-action="cancel">Cancel</button>
82
- ${S.value?"":'<button class="btn-danger" data-action="delete">Delete</button>'}
78
+ ${b.value?"":'<button class="btn-danger" data-action="delete">Delete</button>'}
83
79
  </div>
84
- `},...b.map(G=>({...G,value:C[G.fieldname]||""}))]}catch{return[{fieldname:"error",component:"div",value:`
80
+ `},...E.map(G=>({...G,value:C[G.fieldname]||""}))]}catch{return[{fieldname:"error",component:"div",value:`
85
81
  <div class="error-state">
86
- <p>Unable to load form schema for ${T(u.value||i.value)}</p>
82
+ <p>Unable to load form schema for ${T(d.value||l.value)}</p>
87
83
  </div>
88
- `}]}},V=()=>{if(!e.value||!i.value)return[];const p=e.value.records(i.value)?.get("");return p&&typeof p=="object"&&!Array.isArray(p)?Object.values(p):[]},P=()=>{if(!e.value||!i.value)return[];try{const p=e.value.registry.registry[i.value];if(p?.schema)return("toArray"in p.schema?p.schema.toArray():p.schema).map(C=>({fieldname:C.fieldname,label:"label"in C&&C.label||C.fieldname,fieldtype:"fieldtype"in C&&C.fieldtype||"Data"}))}catch{}return[]},$=()=>!e.value||!i.value||S.value?{}:e.value.getRecordById(i.value,f.value)?.get("")||{},g=t.computed(()=>{switch(E.value){case"doctypes":return j();case"records":return v();case"record":return h();default:return[]}}),k=t.ref([]);t.watch(g,d=>{k.value=[...d]},{immediate:!0,deep:!0}),t.watch(k,d=>{if(!(!e.value||!i.value||!f.value||S.value))try{const p=e.value.getStore();d.forEach(b=>{if(b.fieldname&&"value"in b&&!["header","actions","loading","error"].includes(b.fieldname)){const C=`${i.value}.${f.value}.${b.fieldname}`;(p.has(C)?p.get(C):void 0)!==b.value&&p.set(C,b.value)}})}catch(p){console.warn("HST schema sync failed:",p)}},{deep:!0});const R=async()=>{if(e.value){a.value=!0;try{const d=l.value||{};if(S.value){const p=`record-${Date.now()}`,b={id:p,...d};e.value.addRecord(i.value,p,b);const C=e.value.getRecordById(i.value,p);C&&await C.triggerTransition("SAVE",{currentState:"creating",targetState:"saved",fsmContext:b}),await c.value?.replace(`/${u.value}/${p}`)}else{const p={id:f.value,...d};e.value.addRecord(i.value,f.value,p);const b=e.value.getRecordById(i.value,f.value);b&&await b.triggerTransition("SAVE",{currentState:"editing",targetState:"saved",fsmContext:p})}}catch{}finally{a.value=!1}}},A=async()=>{if(S.value)await c.value?.push(`/${u.value}`);else{if(e.value){const d=e.value.getRecordById(i.value,f.value);d&&await d.triggerTransition("CANCEL",{currentState:"editing",targetState:"cancelled"})}m()}},B=(d,p)=>{p&&p()},z=async d=>{if(!e.value)return;const p=d||f.value;if(p&&confirm("Are you sure you want to delete this record?")){const b=e.value.getRecordById(i.value,p);b&&await b.triggerTransition("DELETE",{currentState:"editing",targetState:"deleted"}),e.value.removeRecord(i.value,p),E.value==="record"&&await c.value?.push(`/${u.value}`)}},y=async d=>{const p=d.target,b=p.getAttribute("data-action");if(b)switch(b){case"create":await L();break;case"save":await R();break;case"cancel":await A();break;case"delete":await z();break}const C=p.closest("td, th");if(C){const G=C.textContent?.trim(),Z=C.closest("tr");if(G==="View Records"&&Z){const K=Z.querySelectorAll("td");if(K.length>0){const J=K[1].textContent?.trim();J&&await H(J)}}else if(G?.includes("Edit")&&Z){const K=Z.querySelectorAll("td");if(K.length>0){const J=K[0].textContent?.trim();J&&await M(J)}}else if(G?.includes("Delete")&&Z){const K=Z.querySelectorAll("td");if(K.length>0){const J=K[0].textContent?.trim();J&&await z(J)}}}};t.watch([E,i,f],()=>{E.value==="record"&&m()},{immediate:!0}),t.watch(e,d=>{},{immediate:!0}),t.watch([E,i,e],([d,p,b])=>{d==="records"&&p&&b&&N(p)},{immediate:!0});const m=()=>{if(!(!e.value||!i.value)){o.value=!0;try{S.value||e.value.getRecordById(i.value,f.value)}catch(d){console.warn("Error loading record data:",d)}finally{o.value=!1}}},w={navigateToDoctype:H,openRecord:M,createNewRecord:L,handleSave:R,handleCancel:A,handleDelete:z};return t.provide("desktopMethods",w),t.onMounted(()=>{t.nextTick(()=>{E.value==="records"&&i.value&&e.value&&N(i.value)});const d=p=>{(p.ctrlKey||p.metaKey)&&p.key==="k"&&(p.preventDefault(),s.value=!0),p.key==="Escape"&&s.value&&(s.value=!1)};return document.addEventListener("keydown",d),()=>{document.removeEventListener("keydown",d)}}),(d,p)=>(t.openBlock(),t.createElementBlock("div",{class:"desktop",onClick:y},[t.createVNode(de,{elements:_.value,onActionClick:B},null,8,["elements"]),k.value.length>0?(t.openBlock(),t.createBlock(t.unref(Ht),{key:0,modelValue:k.value,"onUpdate:modelValue":p[0]||(p[0]=b=>k.value=b),data:l.value},null,8,["modelValue","data"])):t.unref(e)?(t.openBlock(),t.createElementBlock("div",Jt,[t.createElementVNode("p",null,"Loading "+t.toDisplayString(E.value)+" data...",1)])):(t.openBlock(),t.createElementBlock("div",Wt,[...p[2]||(p[2]=[t.createElementVNode("p",null,"Initializing Stonecrop...",-1)])])),t.createVNode(be,{breadcrumbs:D.value},null,8,["breadcrumbs"]),t.createVNode(pe,{"is-open":s.value,search:I,placeholder:"Type a command or search...",onSelect:x,onClose:p[1]||(p[1]=b=>s.value=!1)},{title:t.withCtx(({result:b})=>[t.createTextVNode(t.toDisplayString(b.title),1)]),content:t.withCtx(({result:b})=>[t.createTextVNode(t.toDisplayString(b.description),1)]),_:1},8,["is-open"])]))}}),Gt={install:n=>{n.component("ActionSet",de),n.component("CommandPalette",pe),n.component("Desktop",Ae),n.component("SheetNav",be)}};W.ActionSet=de,W.CommandPalette=pe,W.Desktop=Ae,W.SheetNav=be,W.StonecropDesktop=Gt,Object.defineProperty(W,Symbol.toStringTag,{value:"Module"})}));
84
+ `}]}},R=()=>{if(!e.value||!l.value)return[];const p=e.value.records(l.value)?.get("");return p&&typeof p=="object"&&!Array.isArray(p)?Object.values(p):[]},P=()=>{if(!e.value||!l.value)return[];try{const p=e.value.registry.registry[l.value];if(p?.schema)return("toArray"in p.schema?p.schema.toArray():p.schema).map(C=>({fieldname:C.fieldname,label:"label"in C&&C.label||C.fieldname,fieldtype:"fieldtype"in C&&C.fieldtype||"Data"}))}catch{}return[]},$=()=>!e.value||!l.value||b.value?{}:e.value.getRecordById(l.value,f.value)?.get("")||{},g=t.computed(()=>{switch(S.value){case"doctypes":return j();case"records":return v();case"record":return h();default:return[]}}),k=t.ref([]);t.watch(g,c=>{k.value=[...c]},{immediate:!0,deep:!0}),t.watch(k,c=>{if(!(!e.value||!l.value||!f.value||b.value))try{const p=e.value.getStore();c.forEach(E=>{if(E.fieldname&&"value"in E&&!["header","actions","loading","error"].includes(E.fieldname)){const C=`${l.value}.${f.value}.${E.fieldname}`;(p.has(C)?p.get(C):void 0)!==E.value&&p.set(C,E.value)}})}catch(p){console.warn("HST schema sync failed:",p)}},{deep:!0});const D=async()=>{if(e.value){n.value=!0;try{const c=i.value||{};if(b.value){const p=`record-${Date.now()}`,E={id:p,...c};e.value.addRecord(l.value,p,E);const C=e.value.getRecordById(l.value,p);C&&await C.triggerTransition("SAVE",{currentState:"creating",targetState:"saved",fsmContext:E}),await u.value?.replace(`/${d.value}/${p}`)}else{const p={id:f.value,...c};e.value.addRecord(l.value,f.value,p);const E=e.value.getRecordById(l.value,f.value);E&&await E.triggerTransition("SAVE",{currentState:"editing",targetState:"saved",fsmContext:p})}}catch{}finally{n.value=!1}}},A=async()=>{if(b.value)await u.value?.push(`/${d.value}`);else{if(e.value){const c=e.value.getRecordById(l.value,f.value);c&&await c.triggerTransition("CANCEL",{currentState:"editing",targetState:"cancelled"})}m()}},B=(c,p)=>{p&&p()},z=async c=>{if(!e.value)return;const p=c||f.value;if(p&&confirm("Are you sure you want to delete this record?")){const E=e.value.getRecordById(l.value,p);E&&await E.triggerTransition("DELETE",{currentState:"editing",targetState:"deleted"}),e.value.removeRecord(l.value,p),S.value==="record"&&await u.value?.push(`/${d.value}`)}},y=async c=>{const p=c.target,E=p.getAttribute("data-action");if(E)switch(E){case"create":await M();break;case"save":await D();break;case"cancel":await A();break;case"delete":await z();break}const C=p.closest("td, th");if(C){const G=C.textContent?.trim(),Z=C.closest("tr");if(G==="View Records"&&Z){const K=Z.querySelectorAll("td");if(K.length>0){const J=K[1].textContent?.trim();J&&await H(J)}}else if(G?.includes("Edit")&&Z){const K=Z.querySelectorAll("td");if(K.length>0){const J=K[0].textContent?.trim();J&&await F(J)}}else if(G?.includes("Delete")&&Z){const K=Z.querySelectorAll("td");if(K.length>0){const J=K[0].textContent?.trim();J&&await z(J)}}}};t.watch([S,l,f],()=>{S.value==="record"&&m()},{immediate:!0}),t.watch(e,c=>{},{immediate:!0}),t.watch([S,l,e],([c,p,E])=>{c==="records"&&p&&E&&N(p)},{immediate:!0});const m=()=>{if(!(!e.value||!l.value)){o.value=!0;try{b.value||e.value.getRecordById(l.value,f.value)}catch(c){console.warn("Error loading record data:",c)}finally{o.value=!1}}},w={navigateToDoctype:H,openRecord:F,createNewRecord:M,handleSave:D,handleCancel:A,handleDelete:z};return t.provide("desktopMethods",w),t.onMounted(()=>{t.nextTick(()=>{S.value==="records"&&l.value&&e.value&&N(l.value)});const c=p=>{(p.ctrlKey||p.metaKey)&&p.key==="k"&&(p.preventDefault(),r.value=!0),p.key==="Escape"&&r.value&&(r.value=!1)};return document.addEventListener("keydown",c),()=>{document.removeEventListener("keydown",c)}}),(c,p)=>(t.openBlock(),t.createElementBlock("div",{class:"desktop",onClick:y},[t.createVNode(de,{elements:_.value,onActionClick:B},null,8,["elements"]),k.value.length>0?(t.openBlock(),t.createBlock(t.unref(Mt),{key:0,modelValue:k.value,"onUpdate:modelValue":p[0]||(p[0]=E=>k.value=E),data:i.value},null,8,["modelValue","data"])):t.unref(e)?(t.openBlock(),t.createElementBlock("div",Kt,[t.createElementVNode("p",null,"Loading "+t.toDisplayString(S.value)+" data...",1)])):(t.openBlock(),t.createElementBlock("div",zt,[...p[2]||(p[2]=[t.createElementVNode("p",null,"Initializing Stonecrop...",-1)])])),t.createVNode(be,{breadcrumbs:V.value},null,8,["breadcrumbs"]),t.createVNode(pe,{"is-open":r.value,search:I,placeholder:"Type a command or search...",onSelect:x,onClose:p[1]||(p[1]=E=>r.value=!1)},{title:t.withCtx(({result:E})=>[t.createTextVNode(t.toDisplayString(E.title),1)]),content:t.withCtx(({result:E})=>[t.createTextVNode(t.toDisplayString(E.description),1)]),_:1},8,["is-open"])]))}}),Wt={install:a=>{a.component("ActionSet",de),a.component("CommandPalette",pe),a.component("Desktop",Ae),a.component("SheetNav",be)}};W.ActionSet=de,W.CommandPalette=pe,W.Desktop=Ae,W.SheetNav=be,W.StonecropDesktop=Wt,Object.defineProperty(W,Symbol.toStringTag,{value:"Module"})}));
89
85
  //# sourceMappingURL=desktop.umd.cjs.map