@aerogel/core 0.0.0-next.71f28064caa2ea968f0e99396b672de218176260 → 0.0.0-next.7eac6e53dcf9fe93d7abdc4bc97e5ce69970efa7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aerogel-core.cjs.js +1 -1
- package/dist/aerogel-core.cjs.js.map +1 -1
- package/dist/aerogel-core.d.ts +153 -33
- package/dist/aerogel-core.esm.js +1 -1
- package/dist/aerogel-core.esm.js.map +1 -1
- package/package.json +2 -2
- package/src/components/AGAppSnackbars.vue +1 -1
- package/src/components/forms/AGForm.vue +9 -10
- package/src/components/headless/forms/AGHeadlessButton.vue +9 -4
- package/src/components/headless/forms/AGHeadlessInput.ts +4 -3
- package/src/components/headless/forms/AGHeadlessInput.vue +1 -1
- package/src/components/headless/forms/AGHeadlessInputInput.vue +31 -3
- package/src/components/headless/forms/index.ts +1 -0
- package/src/components/lib/AGMarkdown.vue +3 -3
- package/src/components/modals/AGConfirmModal.ts +9 -3
- package/src/components/modals/AGConfirmModal.vue +2 -2
- package/src/components/modals/AGPromptModal.ts +9 -3
- package/src/components/modals/AGPromptModal.vue +2 -2
- package/src/forms/Form.ts +26 -7
- package/src/forms/index.ts +1 -0
- package/src/forms/utils.ts +15 -0
- package/src/lang/Lang.ts +8 -4
- package/src/services/Cache.ts +43 -0
- package/src/services/index.ts +3 -1
- package/src/ui/UI.ts +9 -1
package/dist/aerogel-core.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue");require("core-js/modules/esnext.async-iterator.reduce.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.reduce.js"),require("core-js/modules/esnext.async-iterator.map.js"),require("core-js/modules/esnext.iterator.map.js");var t=require("@babel/runtime/helpers/defineProperty"),r=require("@noeldemartin/utils");require("core-js/modules/esnext.async-iterator.for-each.js"),require("core-js/modules/esnext.iterator.for-each.js"),require("core-js/modules/esnext.set.add-all.js"),require("core-js/modules/esnext.set.delete-all.js"),require("core-js/modules/esnext.set.difference.js"),require("core-js/modules/esnext.set.every.js"),require("core-js/modules/esnext.set.filter.js"),require("core-js/modules/esnext.set.find.js"),require("core-js/modules/esnext.set.intersection.js"),require("core-js/modules/esnext.set.is-disjoint-from.js"),require("core-js/modules/esnext.set.is-subset-of.js"),require("core-js/modules/esnext.set.is-superset-of.js"),require("core-js/modules/esnext.set.join.js"),require("core-js/modules/esnext.set.map.js"),require("core-js/modules/esnext.set.reduce.js"),require("core-js/modules/esnext.set.some.js"),require("core-js/modules/esnext.set.symmetric-difference.js"),require("core-js/modules/esnext.set.union.js");var o=require("pinia"),s=require("virtual:aerogel");require("core-js/modules/esnext.async-iterator.filter.js"),require("core-js/modules/esnext.iterator.filter.js"),require("core-js/modules/esnext.string.at.js"),require("core-js/modules/esnext.async-iterator.some.js"),require("core-js/modules/esnext.iterator.some.js");var n=require("@headlessui/vue"),a=require("dompurify"),l=require("marked");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("core-js/modules/esnext.weak-map.delete-all.js"),require("core-js/modules/esnext.weak-map.emplace.js");var c=i(t),u=i(s),d=i(a);class ServiceBootError extends r.JSError{constructor(e,t){super(`Service '${e}' failed booting`,{cause:t})}}let p=null;function m(){return p??f()}function f(){return r.tap(o.createPinia(),(e=>{p=e,o.setActivePinia(e)}))}function h(){return p??m()}function v(e,t){return m(),o.defineStore(e,t)()}function x(e){var t;return t=class extends g{usesStore(){return!0}getName(){return e.name??null}getInitialState(){return"function"==typeof e.initialState?e.initialState():Object.entries(e.initialState).reduce(((e,t)=>{let[r,o]=t;try{o=structuredClone(o)}catch(e){console.warn(`Could not clone '${r}' state from ${this.getName()} service, this may cause problems if you're using multiple instances of the service (for example, in unit tests).\nTo fix this problem, declare your initialState as a function instead.`)}return e[r]=o,e}),{})}getComputedStateDefinition(){return e.computed??{}}serializePersistedState(t){return e.serialize?.(t)??t}},c.default(t,"persist",e.persist??[]),t}class g extends r.MagicObject{constructor(){super(),c.default(this,"_name",void 0),c.default(this,"_booted",void 0),c.default(this,"_computedStateKeys",void 0),c.default(this,"_store",void 0);const e=this.getComputedStateDefinition();this._name=this.getName()??new.target.name,this._booted=new r.PromisedValue,this._computedStateKeys=new Set(Object.keys(e)),this._store=this.usesStore()&&v(this._name,{state:()=>this.getInitialState(),getters:e})}get booted(){return this._booted}launch(){const handleError=e=>this._booted.reject(new ServiceBootError(this._name,e));try{this.frameworkBoot().then((()=>this.boot())).then((()=>this._booted.resolve())).catch(handleError)}catch(e){handleError(e)}return this._booted}hasPersistedState(){return r.Storage.has(this._name)}hasState(e){return!!this._store&&(e in this._store.$state||this._computedStateKeys.has(e))}getState(e){const t=this._store;return e?t?t[e]:void 0:t||{}}setState(e,t){if(!this._store)return;const r="string"==typeof e?{[e]:t}:e;Object.assign(this._store.$state,r),this.onStateUpdated(r)}__get(e){return this.hasState(e)?this.getState(e):super.__get(e)}__set(e,t){this.setState({[e]:t})}onStateUpdated(e){const t=this.constructor.persist,o=r.objectOnly(e,t);if(r.isEmpty(o))return;const s=r.Storage.get(this._name);s&&r.Storage.set(this._name,{...s,...this.serializePersistedState(r.objectDeepClone(o))})}usesStore(){return!1}getName(){return null}getInitialState(){return{}}getComputedStateDefinition(){return{}}serializePersistedState(e){return e}async frameworkBoot(){this.initializePersistedState()}async boot(){}initializePersistedState(){const e=this.constructor.persist;if(this.usesStore()&&!r.isEmpty(e))if(r.Storage.has(this._name)){const e=r.Storage.require(this._name);this.setState(e)}else r.Storage.set(this._name,r.objectOnly(this.getState(),e))}}c.default(g,"persist",[]);class b extends g{constructor(){super(...arguments),c.default(this,"listeners",{})}async boot(){Object.entries(globalThis.__aerogelEvents__??{}).forEach((e=>{let[t,r]=e;return this.on(t,r)}))}async emit(e,t){const r=this.listeners[e]??{priorities:[],handlers:{}};for(const e of r.priorities)await Promise.all(r.handlers[e]?.map((e=>e(t)))??[])}on(e,t,r){const o="function"==typeof t?{}:t,s="function"==typeof t?t:r;return this.registerListener(e,o,s),()=>this.off(e,s)}once(e,t,o){let s=null;const n="function"==typeof t?{}:t,a="function"==typeof t?t:o;return r.tap((()=>s&&this.off(e,s)),(t=>{s=function(){return t(),a(...arguments)},this.registerListener(e,n,a)}))}off(e,t){const o=this.listeners[e];if(!o)return;const s=[...o.priorities];for(const e of s)r.arrayRemove(o.handlers[e]??[],t),0===o.handlers[e]?.length&&(delete o.handlers[e],r.arrayRemove(o.priorities,e));0===o.priorities.length&&delete this.listeners[e]}registerListener(e,t,o){const s=t.priority??0;e in this.listeners||(this.listeners[e]={priorities:[],handlers:{}});const n=this.listeners[e]?.priorities??r.fail(`priorities missing for event '${e}'`),a=this.listeners[e]?.handlers??r.fail(`handlers missing for event '${e}'`);n.includes(s)||(n.push(s),n.sort(((e,t)=>t-e)),a[s]=[]),a[s]?.push(o)}}var _=r.facade(b),y=x({name:"app",initialState:{plugins:{},environment:u.default.environment,sourceUrl:u.default.sourceUrl},computed:{development:e=>"development"===e.environment,testing:e=>"test"===e.environment||"testing"===e.environment}});class k extends y{constructor(){super(...arguments),c.default(this,"ready",new r.PromisedValue),c.default(this,"mounted",new r.PromisedValue)}isReady(){return this.ready.isResolved()}isMounted(){return this.mounted.isResolved()}async whenReady(e){return await this.ready.then(e)}async reload(e){e&&r.updateLocationQueryParameters(e),location.reload(),await r.forever()}plugin(e){return this.plugins[e]??null}async boot(){_.once("application-ready",(()=>this.ready.resolve())),_.once("application-mounted",(()=>this.mounted.resolve()))}}var C=r.facade(k);function w(e){return e}async function S(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),o=1;o<t;o++)r[o-1]=arguments[o];C.setState("plugins",e.reduce(((e,t)=>(t.name&&(e[t.name]=t),e)),{})),await Promise.all(e.map((e=>e.install(...r)))??[])}function A(e){return{type:Array,default:e??(()=>[])}}function B(){return{type:Boolean,default:arguments.length>0&&void 0!==arguments[0]&&arguments[0]}}function E(){return e.ref()}function G(e){return e}function j(e,t){const r=Object.values(e);return{type:String,default:t??r[0]??null,validator:e=>r.includes(e)}}function M(t){const r=e.inject(t);return r?e.reactive(r):void 0}function V(e,t){return M(e)??r.fail(t??`Could not resolve '${e}' injection key`)}function P(e){return{type:e,default:null}}function N(){return{type:Number,default:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}}function $(){return{type:Object,default:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}}function H(){return{type:Array,required:!0}}function q(e){return{type:e,required:!0}}function T(){return{type:Number,required:!0}}function R(){return{type:Object,required:!0}}function I(){return{type:String,required:!0}}function L(){return{type:String,default:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}}const D={"initial-focus":{mounted(e,t){let{value:r}=t;!1!==r&&e.focus()}},measure:{mounted(e,t){let{value:r}=t;const o="function"==typeof r?r:null,s=e.getBoundingClientRect();e.style.setProperty("--width",`${s.width}px`),e.style.setProperty("--height",`${s.height}px`),o?.({width:s.width,height:s.height})}}};var O={install(e,t){const r={...D,...t.directives};for(const[t,o]of Object.entries(r))e.directive(t,o)}};const z={$app:C,$events:_};async function F(e,t){await Promise.all(Object.entries(t).map((async t=>{let[r,o]=t;await o.launch().catch((t=>e.config.errorHandler?.(t,null,`Failed launching ${r}.`)))}))),Object.assign(e.config.globalProperties,t),C.development&&Object.assign(window,t)}var U={async install(e,t){const r={...z,...t.services};e.use(h()),await F(e,r)}},W=x({name:"ui",initialState:{modals:[],snackbars:[]}});const K={AlertModal:"alert-modal",ConfirmModal:"confirm-modal",ErrorReportModal:"error-report-modal",LoadingModal:"loading-modal",PromptModal:"prompt-modal",Snackbar:"snackbar",StartupCrash:"startup-crash"};class J extends W{constructor(){super(...arguments),c.default(this,"modalCallbacks",{}),c.default(this,"components",{})}requireComponent(e){return this.components[e]??r.fail(`UI Component '${e}' is not defined!`)}alert(e,t){this.openModal(this.requireComponent(K.AlertModal),"string"!=typeof t?{message:e}:{title:e,message:t})}async confirm(e,t,r){const o=await this.openModal(this.requireComponent(K.ConfirmModal),"string"!=typeof t?{message:e,...t??{}}:{title:e,message:t,...r??{}});return await o.beforeClose??!1}async prompt(e,t,r){const o=await this.openModal(this.requireComponent(K.PromptModal),"string"!=typeof t?{message:e,...t??{}}:{title:e,message:t,...r??{}});return await o.beforeClose??null}async loading(e,t){const o=await this.openModal(this.requireComponent(K.LoadingModal),"string"!=typeof e?{}:{message:e});try{t="string"==typeof e?t:e;const[o]=await Promise.all([t,r.after({seconds:1})]);return o}finally{await this.closeModal(o.id)}}showSnackbar(t){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s={id:r.uuid(),properties:{message:t,...o},component:e.markRaw(o.component??this.requireComponent(K.Snackbar))};this.setState("snackbars",this.snackbars.concat(s)),setTimeout((()=>this.hideSnackbar(s.id)),5e3)}hideSnackbar(e){this.setState("snackbars",this.snackbars.filter((t=>t.id!==e)))}registerComponent(e,t){this.components[e]=t}async openModal(t,o){const s=r.uuid(),n={},a={id:s,properties:o??{},component:e.markRaw(t),beforeClose:new Promise((e=>n.willClose=e)),afterClose:new Promise((e=>n.closed=e))},l=this.modals.at(-1),i=this.modals.concat(a);return this.modalCallbacks[a.id]=n,this.setState({modals:i}),await e.nextTick(),await(l&&_.emit("hide-modal",{id:l.id})),await Promise.all([l||_.emit("show-overlays-backdrop"),_.emit("show-modal",{id:a.id})]),a}async closeModal(e,t){await _.emit("close-modal",{id:e,result:t})}async boot(){this.watchModalEvents(),this.watchMountedEvent()}watchModalEvents(){_.on("modal-will-close",(e=>{let{modal:t,result:r}=e;this.modalCallbacks[t.id]?.willClose?.(r),1===this.modals.length&&_.emit("hide-overlays-backdrop")})),_.on("modal-closed",(async e=>{let{modal:t,result:r}=e;this.setState("modals",this.modals.filter((e=>e.id!==t.id))),this.modalCallbacks[t.id]?.closed?.(r),delete this.modalCallbacks[t.id];const o=this.modals.at(-1);await(o&&_.emit("show-modal",{id:o.id}))}))}watchMountedEvent(){_.once("application-mounted",(async()=>{const e=document.getElementById("splash");e&&("0"!==window.getComputedStyle(e).opacity&&(e.style.opacity="0",await r.after({ms:600})),e.remove())}))}}var Q=r.facade(J);var Z=r.facade(class extends g{constructor(){super(),c.default(this,"provider",void 0),this.provider={translate:e=>(C.development&&console.warn("Lang provider is missing"),e),translateWithDefault:(e,t)=>(C.development&&console.warn("Lang provider is missing"),t)}}setProvider(e){this.provider=e}translate(e,t){return this.provider.translate(e,t)??e}translateWithDefault(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.provider.translateWithDefault(e,t,r)}});const Y=Z.translate.bind(Z),X=Z.translateWithDefault.bind(Z);var ee=x({name:"errors",initialState:{logs:[],startupErrors:[]},computed:{hasErrors:e=>{let{logs:t}=e;return t.length>0},hasNewErrors:e=>{let{logs:t}=e;return t.some((e=>!e.seen))},hasStartupErrors:e=>{let{startupErrors:t}=e;return t.length>0}}});const te={Primary:"primary",Secondary:"secondary",Danger:"danger",Clear:"clear"};var re=r.facade(class extends ee{constructor(){super(...arguments),c.default(this,"forceReporting",!1),c.default(this,"enabled",!0)}enable(){this.enabled=!0}disable(){this.enabled=!1}async inspect(e){const t=Array.isArray(e)?e:[await this.createErrorReport(e)];0!==t.length?Q.openModal(Q.requireComponent(K.ErrorReportModal),{reports:t}):Q.alert(X("errors.inspectEmpty","Nothing to inspect!"))}async report(e,t){if(await _.emit("error",{error:e,message:t}),C.testing)throw e;if(C.development&&this.logError(e),!this.enabled)throw e;if(!C.isMounted()){const t=await this.createStartupErrorReport(e);return void(t&&this.setState({startupErrors:this.startupErrors.concat(t)}))}const r=await this.createErrorReport(e),o={report:r,seen:!1,date:new Date};Q.showSnackbar(t??X("errors.notice","Something went wrong, but it's not your fault. Try again!"),{color:te.Danger,actions:[{text:X("errors.viewDetails","View details"),dismiss:!0,handler:()=>Q.openModal(Q.requireComponent(K.ErrorReportModal),{reports:[r]})}]}),this.setState({logs:[o].concat(this.logs)})}see(e){this.setState({logs:this.logs.map((t=>t.report!==e?t:{...t,seen:!0}))})}seeAll(){this.setState({logs:this.logs.map((e=>({...e,seen:!0})))})}logError(e){console.error(e),r.isObject(e)&&e.cause&&this.logError(e.cause)}async createErrorReport(e){return"string"==typeof e?{title:e}:e instanceof Error||e instanceof r.JSError?this.createErrorReportFromError(e):r.isObject(e)?r.objectWithoutEmpty({title:r.toString(e.name??e.title??X("errors.unknown","Unknown Error")),description:r.toString(e.message??e.description??X("errors.unknownDescription","Unknown error object")),error:e}):{title:X("errors.unknown","Unknown Error"),error:e}}async createStartupErrorReport(e){return e instanceof ServiceBootError?e.cause instanceof ServiceBootError?null:this.createErrorReport(e.cause):this.createErrorReport(e)}createErrorReportFromError(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{title:e.name,description:e.message,details:e.stack,error:e,...t}}});function oe(e){return"string"==typeof e?e:e instanceof Error||e instanceof r.JSError?e.message:r.isObject(e)?r.toString(e.message??e.description??"Unknown error object"):X("errors.unknown","Unknown Error")}const se={$errors:re};function ne(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:()=>!1;const r=e=>t(e)||(e=>(re.report(e),!0))(e);e.config.errorHandler=r,globalThis.onerror=(e,t,o,s,n)=>r(n??e),globalThis.onunhandledrejection=e=>r(e.reason)}var ae={async install(e,t){ne(e,t.handleError),await F(e,se)}};const le={$lang:Z};var ie={async install(e){e.config.globalProperties.$t??=Y,e.config.globalProperties.$td=X,await F(e,le)}},ce={async install(){"testing"===(void 0).MODE&&(globalThis.testingRuntime={on:function(){return _.on(...arguments)}})}};function ue(t,r){const o=_.on(t,r);e.onUnmounted((()=>o()))}function de(){const t=e.useAttrs(),o=e.computed((()=>t.class));return[e.computed((()=>r.objectWithout(t,"class"))),o]}function pe(e,t){return Object.keys(t).reduce(((t,r)=>(t[r]=e[r],t)),{})}const me={cancellable:B(!0),title:L()};function fe(){return me}function he(t){return{close:async()=>t.value?.close(),cancellable:e.computed((()=>!!t.value?.cancellable))}}var ve=e.defineComponent({__name:"AGHeadlessModal",props:fe(),setup(t,{expose:r}){const o=t,s=e.ref(null),a=e.ref(!0),l=e.ref(!1),{modal:i}=V("modal","could not obtain modal reference from <AGHeadlessModal>, did you render this component manually? Show it using $ui.openModal() instead");async function c(){s.value?.$el&&(a.value=!0)}async function u(e){l.value||(_.emit("modal-will-close",{modal:i,result:e}),await c(),l.value=!0,_.emit("modal-closed",{modal:i,result:e}))}return ue("close-modal",(async({id:e,result:t})=>{e===i.id&&await u(t)})),ue("hide-modal",(async({id:e})=>{e===i.id&&await c()})),ue("show-modal",(async({id:e})=>{e===i.id&&await async function(){s.value?.$el&&(a.value=!1)}()})),r({close:u,cancellable:e.toRef(o,"cancellable")}),(t,r)=>(e.openBlock(),e.createBlock(e.unref(n.Dialog),{ref_key:"$root",ref:s,open:!0,onClose:r[0]||(r[0]=e=>t.cancellable&&u())},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{close:u})])),_:3},512))}});ve.__file="src/components/headless/modals/AGHeadlessModal.vue";var xe=e.defineComponent({__name:"AGModalContext",props:{modal:R(),childIndex:T()},setup(t){const r=t;return e.provide("modal",{modal:e.toRef(r,"modal"),childIndex:e.toRef(r,"childIndex")}),(r,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.modal.component),e.normalizeProps(e.guardReactiveProps(t.modal.properties)),null,16))}});xe.__file="src/components/modals/AGModalContext.vue";const ge=e.createElementVNode("div",{class:"pointer-events-none fixed inset-0 z-50 bg-black/30"},null,-1);var be=e.defineComponent({__name:"AGHeadlessModalPanel",setup(t){const r=V("modal","could not obtain modal reference from <AGHeadlessModalPanel>, did you render this component manually? Show it using $ui.openModal() instead"),o=e.computed((()=>Q.modals[r.childIndex]??null));return(t,s)=>(e.openBlock(),e.createBlock(e.unref(n.DialogPanel),null,{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default"),o.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[ge,e.createVNode(xe,{"child-index":e.unref(r).childIndex+1,modal:o.value},null,8,["child-index","modal"])],64)):e.createCommentVNode("v-if",!0)])),_:3}))}});be.__file="src/components/headless/modals/AGHeadlessModalPanel.vue";var _e=e.defineComponent({__name:"AGHeadlessModalTitle",props:{as:L("h2")},setup:t=>(r,o)=>(e.openBlock(),e.createBlock(e.unref(n.DialogTitle),{as:t.as},{default:e.withCtx((()=>[e.renderSlot(r.$slots,"default")])),_:3},8,["as"]))});function ye(e){return t=l.marked(e,{mangle:!1,headerIds:!1,renderer:r.tap(new l.Renderer,(e=>{e.link=function(e,t,r){return l.Renderer.prototype.link.apply(this,[e,t,r]).replace("<a",'<a target="_blank"')}}))}),d.default.sanitize(t,{ADD_ATTR:["target"]});var t}_e.__file="src/components/headless/modals/AGHeadlessModalTitle.vue";var ke=e.defineComponent({__name:"AGMarkdown",props:{as:L(),inline:B(),langKey:L(),langParams:$(),text:L()},setup(t){const r=t,o=e.useAttrs(),s=e.computed((()=>r.text??(r.langKey&&Y(r.langKey,r.langParams??{})))),n=e.computed((()=>{if(!s.value)return null;let e=ye(s.value);return r.inline&&(e=e.replace("<p>","<span>").replace("</p>","</span>")),e})),a=()=>e.h(r.as??(r.inline?"span":"div"),{class:r.inline?"":"prose",innerHTML:n.value,...o});return(t,r)=>(e.openBlock(),e.createBlock(a))}});ke.__file="src/components/lib/AGMarkdown.vue";const Ce={class:"fixed inset-0 flex items-center justify-center p-8"};var we=e.defineComponent({inheritAttrs:!1,__name:"AGModal",props:fe(),setup(t,{expose:r}){const o=t,s=e.ref();return r(he(s)),(t,r)=>(e.openBlock(),e.createBlock(ve,e.mergeProps({ref_key:"$modal",ref:s},o,{class:"relative z-50"}),{default:e.withCtx((({close:r})=>[e.createElementVNode("div",Ce,[e.createVNode(be,{class:"flex max-h-full max-w-full flex-col overflow-hidden bg-white p-4"},{default:e.withCtx((()=>[t.title?(e.openBlock(),e.createBlock(_e,{key:0,class:"mb-2 text-lg font-semibold"},{default:e.withCtx((()=>[e.createVNode(ke,{text:t.title,inline:""},null,8,["text"])])),_:1})):e.createCommentVNode("v-if",!0),e.createElementVNode("div",e.mergeProps({class:"flex max-h-full flex-col overflow-auto"},t.$attrs),[e.renderSlot(t.$slots,"default",{close:r})],16)])),_:2},1024)])])),_:3},16))}});we.__file="src/components/modals/AGModal.vue";const Se={title:L(),message:I()};function Ae(){return Se}var Be=e.defineComponent({__name:"AGAlertModal",props:Ae(),setup:t=>(t,r)=>(e.openBlock(),e.createBlock(we,{title:t.title},{default:e.withCtx((()=>[e.createVNode(ke,{text:t.message},null,8,["text"])])),_:1},8,["title"]))});Be.__file="src/components/modals/AGAlertModal.vue";const Ee={title:L(),message:I(),acceptText:L(),cancelText:L()};function Ge(){return Ee}function je(t){return{renderedAcceptText:e.computed((()=>t.acceptText??X("ui.accept","Ok"))),renderedCancelText:e.computed((()=>t.cancelText??X("ui.cancel","Cancel")))}}var Me=e.defineComponent({__name:"AGHeadlessButton",props:{href:L(),url:L(),route:L(),routeParams:$((()=>({}))),routeQuery:$((()=>({}))),submit:B()},setup(t){const o=t,s=e.computed((()=>o.route?{tag:"router-link",props:{to:r.objectWithoutEmpty({name:o.route,params:o.routeParams,query:o.routeQuery})}}:o.href||o.url?{tag:"a",props:{target:"_blank",href:o.href||o.url}}:{tag:"button",props:{type:o.submit?"submit":"button"}}));return(t,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value.tag),e.normalizeProps(e.guardReactiveProps(s.value.props)),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default")])),_:3},16))}});Me.__file="src/components/headless/forms/AGHeadlessButton.vue";var Ve=e.defineComponent({__name:"AGButton",props:{color:j(te,te.Primary)},setup(t){const r=t,o=e.computed((()=>{switch(r.color){case te.Secondary:return["text-white bg-gray-600","hover:bg-gray-500","focus-visible:outline-offset-2 focus-visible:outline-gray-600"].join(" ");case te.Clear:return"hover:bg-gray-500/20 focus-visible:outline-gray-500/60";case te.Danger:return["text-white bg-red-600","hover:bg-red-500","focus-visible:outline-offset-2 focus-visible:outline-red-600"].join(" ");default:return["text-white bg-indigo-600","hover:bg-indigo-500","focus-visible:outline-offset-2 focus-visible:outline-indigo-600"].join(" ")}}));return(t,r)=>(e.openBlock(),e.createBlock(Me,{class:e.normalizeClass(["px-2.5 py-1.5 focus-visible:outline focus-visible:outline-2",o.value])},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default")])),_:3},8,["class"]))}});Ve.__file="src/components/forms/AGButton.vue";const Pe={class:"mt-2 flex flex-row-reverse gap-2"};var Ne=e.defineComponent({__name:"AGConfirmModal",props:Ge(),setup(t){const r=t,{renderedAcceptText:o,renderedCancelText:s}=je(r);return(t,r)=>(e.openBlock(),e.createBlock(we,{cancellable:!1,title:t.title},{default:e.withCtx((({close:r})=>[e.createVNode(ke,{text:t.message},null,8,["text"]),e.createElementVNode("div",Pe,[e.createVNode(Ve,{onClick:e=>r(!0)},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(e.unref(o)),1)])),_:2},1032,["onClick"]),e.createVNode(Ve,{color:"secondary",onClick:e=>r()},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(e.unref(s)),1)])),_:2},1032,["onClick"])])])),_:1},8,["title"]))}});Ne.__file="src/components/modals/AGConfirmModal.vue";const $e={viewBox:"0 0 20 20",width:"1.2em",height:"1.2em"},He=[e.createElementVNode("path",{fill:"currentColor",d:"m12.95 10.707l.707-.707L8 4.343L6.586 5.757L10.828 10l-4.242 4.243L8 15.657l4.95-4.95z"},null,-1)];var qe={name:"zondicons-cheveron-right",render:function(t,r){return e.openBlock(),e.createElementBlock("svg",$e,[...He])}};const Te={viewBox:"0 0 20 20",width:"1.2em",height:"1.2em"},Re=[e.createElementVNode("path",{fill:"currentColor",d:"M7.05 9.293L6.343 10L12 15.657l1.414-1.414L9.172 10l4.242-4.243L12 4.343z"},null,-1)];var Ie={name:"zondicons-cheveron-left",render:function(t,r){return e.openBlock(),e.createElementBlock("svg",Te,[...Re])}};const Le={reports:H()};function De(){return Le}function Oe(t){const r=e.ref(0),o=e.computed((()=>t.reports[r.value])),s=e.computed((()=>o.value.details?.trim()||X("errors.detailsEmpty","This error is missing a stacktrace."))),n=X("errors.previousReport","Show previous report"),a=X("errors.nextReport","Show next report");return{activeReportIndex:r,details:s,nextReportText:a,previousReportText:n,report:o}}const ze={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"},Fe=[e.createElementVNode("path",{fill:"currentColor",d:"M20 19V7H4v12h16m0-16a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16m-7 14v-2h5v2h-5m-3.42-4L5.57 9H8.4l3.3 3.3c.39.39.39 1.03 0 1.42L8.42 17H5.59l3.99-4Z"},null,-1)];var Ue={name:"mdi-console",render:function(t,r){return e.openBlock(),e.createElementBlock("svg",ze,[...Fe])}};const We={viewBox:"0 0 20 20",width:"1.2em",height:"1.2em"},Ke=[e.createElementVNode("path",{fill:"currentColor",d:"M6 6V2c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-4v4a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V8c0-1.1.9-2 2-2h4zm2 0h4a2 2 0 0 1 2 2v4h4V2H8v4zM2 8v10h10V8H2z"},null,-1)];var Je={name:"zondicons-copy",render:function(t,r){return e.openBlock(),e.createElementBlock("svg",We,[...Ke])}};const Qe={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"},Ze=[e.createElementVNode("path",{fill:"currentColor",d:"M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5c.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34c-.46-1.16-1.11-1.47-1.11-1.47c-.91-.62.07-.6.07-.6c1 .07 1.53 1.03 1.53 1.03c.87 1.52 2.34 1.07 2.91.83c.09-.65.35-1.09.63-1.34c-2.22-.25-4.55-1.11-4.55-4.92c0-1.11.38-2 1.03-2.71c-.1-.25-.45-1.29.1-2.64c0 0 .84-.27 2.75 1.02c.79-.22 1.65-.33 2.5-.33c.85 0 1.71.11 2.5.33c1.91-1.29 2.75-1.02 2.75-1.02c.55 1.35.2 2.39.1 2.64c.65.71 1.03 1.6 1.03 2.71c0 3.82-2.34 4.66-4.57 4.91c.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2Z"},null,-1)];var Ye={name:"mdi-github",render:function(t,r){return e.openBlock(),e.createElementBlock("svg",Qe,[...Ze])}};const Xe={class:"flex"};var et=e.defineComponent({__name:"AGErrorReportModalButtons",props:{report:R()},setup(t){const o=t,s=e.computed((()=>o.report.description?`${o.report.title}: ${o.report.description}`:o.report.title)),n=e.computed((()=>{if(!C.sourceUrl)return!1;const e=encodeURIComponent(s.value),t=encodeURIComponent(["[Please, explain here what you were trying to do when this error appeared]","","Error details:","```",r.stringExcerpt(o.report.details??"Details missing from report",1800-e.length-C.sourceUrl.length).trim(),"```"].join("\n"));return`${C.sourceUrl}/issues/new?title=${e}&body=${t}`})),a=e.computed((()=>r.tap([{id:"clipboard",description:"Copy to clipboard",iconComponent:Je,async handler(){await navigator.clipboard.writeText(`${s.value}\n\n${o.report.details}`),Q.showSnackbar(X("errors.copiedToClipboard","Debug information copied to clipboard"))}},{id:"console",description:"Log to console",iconComponent:Ue,handler(){const e=o.report.error??o.report;window.error=e,console.error(e),Q.showSnackbar(X("errors.addedToConsole","You can now use the **error** variable in the console"))}}],(e=>{n.value&&e.push({id:"github",description:"Report in GitHub",iconComponent:Ye,url:n.value})}))));return(t,r)=>(e.openBlock(),e.createElementBlock("div",Xe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,((r,o)=>e.renderSlot(t.$slots,"default",e.mergeProps(r,{key:o}),(()=>[e.createVNode(Ve,{color:"clear",url:r.url,title:t.$td(`errors.report_${r.id}`,r.description),"aria-label":t.$td(`errors.report_${r.id}`,r.description),onClick:r.handler},{default:e.withCtx((()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.iconComponent),{class:"h-4 w-4","aria-hidden":"true"}))])),_:2},1032,["url","title","aria-label","onClick"])])))),128))]))}});et.__file="src/components/modals/AGErrorReportModalButtons.vue";var tt=e.defineComponent({__name:"AGErrorReportModalTitle",props:{report:R(),currentReport:N(),totalReports:N()},setup(t){const r=t,o=e.computed((()=>!r.totalReports||r.totalReports<=1?r.report.title:`${r.report.title} (${r.currentReport}/${r.totalReports})`));return(t,r)=>(e.openBlock(),e.createBlock(ke,{text:o.value,inline:""},null,8,["text"]))}});tt.__file="src/components/modals/AGErrorReportModalTitle.vue";const rt={class:"flex items-center justify-between text-lg font-medium"},ot={class:"flex items-center"},st=["textContent"];var nt=e.defineComponent({__name:"AGErrorReportModal",props:De(),setup(t){const r=t,{activeReportIndex:o,details:s,nextReportText:n,previousReportText:a,report:l}=Oe(r);return(t,r)=>(e.openBlock(),e.createBlock(we,null,{default:e.withCtx((()=>[e.createElementVNode("div",null,[e.createElementVNode("h2",rt,[e.createElementVNode("div",ot,[e.createVNode(tt,{report:e.unref(l),"current-report":e.unref(o)+1,"total-reports":t.reports.length},null,8,["report","current-report","total-reports"]),t.reports.length>1?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(Ve,{color:"clear",disabled:0===e.unref(o),title:e.unref(a),"aria-label":e.unref(a),onClick:r[0]||(r[0]=e=>o.value--)},{default:e.withCtx((()=>[e.createVNode(e.unref(Ie),{"aria-hidden":"true",class:"h-4 w-4"})])),_:1},8,["disabled","title","aria-label"]),e.createVNode(Ve,{color:"clear",disabled:e.unref(o)===t.reports.length-1,title:e.unref(n),"aria-label":e.unref(n),onClick:r[1]||(r[1]=e=>o.value++)},{default:e.withCtx((()=>[e.createVNode(e.unref(qe),{"aria-hidden":"true",class:"h-4 w-4"})])),_:1},8,["disabled","title","aria-label"])],64)):e.createCommentVNode("v-if",!0)]),e.createVNode(et,{report:e.unref(l)},null,8,["report"])]),e.unref(l).description?(e.openBlock(),e.createBlock(ke,{key:0,text:e.unref(l).description,class:"mt-2"},null,8,["text"])):e.createCommentVNode("v-if",!0)]),e.createElementVNode("pre",{class:"h-full overflow-auto bg-gray-200 p-4 text-xs text-red-900",textContent:e.toDisplayString(e.unref(s))},null,8,st)])),_:1}))}});nt.__file="src/components/modals/AGErrorReportModal.vue";const at={message:L()};function lt(){return at}function it(t){return{renderedMessage:e.computed((()=>t.message??X("ui.loading","Loading...")))}}var ct=e.defineComponent({__name:"AGLoadingModal",props:lt(),setup(t){const r=t,{renderedMessage:o}=it(r);return(t,r)=>(e.openBlock(),e.createBlock(we,{cancellable:!1},{default:e.withCtx((()=>[e.createVNode(ke,{text:e.unref(o)},null,8,["text"])])),_:1}))}});ct.__file="src/components/modals/AGLoadingModal.vue";const ut={title:L(),message:I(),label:L(),defaultValue:L(),placeholder:L(),acceptText:L(),cancelText:L()};function dt(){return ut}function pt(t){return{renderedAcceptText:e.computed((()=>t.acceptText??X("ui.accept","Ok"))),renderedCancelText:e.computed((()=>t.cancelText??X("ui.cancel","Cancel")))}}var mt=e.defineComponent({__name:"AGForm",props:{form:$()},emits:["submit"],setup(t,{emit:r}){const o=t,s=r;function n(){o.form&&!o.form.submit()||s("submit")}return e.provide("form",o.form),(t,r)=>(e.openBlock(),e.createElementBlock("form",{onSubmit:e.withModifiers(n,["prevent"])},[e.renderSlot(t.$slots,"default")],32))}});mt.__file="src/components/forms/AGForm.vue";const ft={name:L(),label:L(),description:L(),modelValue:P([String,Number,Boolean])};function ht(){return ft}var vt=e.defineComponent({__name:"AGHeadlessInput",props:{as:L("div"),...ht()},emits:["update:modelValue"],setup(t,{expose:o,emit:s}){const n=s,a=t,l=e.computed((()=>i&&a.name?i.errors[a.name]??null:null)),i=e.inject("form",null),c={id:`input-${r.uuid()}`,name:e.computed((()=>a.name)),label:e.computed((()=>a.label)),description:e.computed((()=>a.description)),value:e.computed((()=>i&&a.name?i.getFieldValue(a.name):a.modelValue)),errors:e.readonly(l),update(e){i&&a.name?i.setFieldValue(a.name,e):n("update:modelValue",e)}};return e.provide("input",c),o(c),(r,o)=>t.as?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.as),{key:0},{default:e.withCtx((()=>[e.renderSlot(r.$slots,"default")])),_:3})):e.renderSlot(r.$slots,"default",{key:1})}});vt.__file="src/components/headless/forms/AGHeadlessInput.vue";var xt=e.defineComponent({inheritAttrs:!1,__name:"AGHeadlessInputDescription",setup(t){const r=V("input","<AGHeadlessInputDescription> must be a child of a <AGHeadlessInput>"),o=e.computed((()=>"string"==typeof r.description?r.description:"")),s=e.computed((()=>!!r.description));return(t,n)=>e.renderSlot(t.$slots,"default",{id:`${e.unref(r).id}-description`},(()=>[s.value?(e.openBlock(),e.createBlock(ke,e.mergeProps({key:0},t.$attrs,{id:`${e.unref(r).id}-description`,text:o.value}),null,16,["id","text"])):e.createCommentVNode("v-if",!0)]))}});xt.__file="src/components/headless/forms/AGHeadlessInputDescription.vue";const gt=["id"];var bt=e.defineComponent({__name:"AGHeadlessInputError",setup(t){const r=V("input","<AGHeadlessInputError> must be a child of a <AGHeadlessInput>"),o=e.computed((()=>r.errors?X(`errors.${r.errors[0]}`,`Error: ${r.errors[0]}`):null));return(t,s)=>o.value?(e.openBlock(),e.createElementBlock("p",{key:0,id:`${e.unref(r).id}-error`},e.toDisplayString(o.value),9,gt)):e.createCommentVNode("v-if",!0)}});function _t(t,r){const o=e.inject("form",null),s=o?.on("focus",(e=>t.name===e&&r()));e.onUnmounted((()=>s?.()))}bt.__file="src/components/headless/forms/AGHeadlessInputError.vue";const yt=["id","name","type","value","aria-invalid","aria-describedby","checked"];var kt=e.defineComponent({__name:"AGHeadlessInputInput",props:{type:L("text")},setup(t){const r=t,o=e.ref(),s=V("input","<AGHeadlessInputInput> must be a child of a <AGHeadlessInput>"),n=e.computed((()=>s.name??void 0)),a=e.computed((()=>s.value)),l=e.computed((()=>{if("checkbox"===r.type)return!!a.value}));function i(){o.value&&s.update("checkbox"===r.type?o.value.checked:o.value.value)}return _t(s,(()=>o.value?.focus())),(r,c)=>(e.openBlock(),e.createElementBlock("input",{id:e.unref(s).id,ref_key:"$input",ref:o,name:n.value,type:t.type,value:a.value,"aria-invalid":e.unref(s).errors?"true":"false","aria-describedby":e.unref(s).errors?`${e.unref(s).id}-error`:e.unref(s).description?`${e.unref(s).id}-description`:void 0,checked:l.value,onInput:i},null,40,yt))}});kt.__file="src/components/headless/forms/AGHeadlessInputInput.vue";const Ct=["for"];var wt=e.defineComponent({__name:"AGHeadlessInputLabel",setup(t){const r=V("input","<AGHeadlessInputLabel> must be a child of a <AGHeadlessInput>"),o=e.useSlots(),s=e.computed((()=>!(!r.label&&!o.default)));return(t,o)=>s.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(r).id},[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(r).label),1)]))],8,Ct)):e.createCommentVNode("v-if",!0)}});wt.__file="src/components/headless/forms/AGHeadlessInputLabel.vue";const St={class:"absolute bottom-0 left-0 translate-y-full"};var At=e.defineComponent({inheritAttrs:!1,__name:"AGInput",props:ht(),setup(t){const r=t,o=E(),[s,n]=de();return(t,a)=>(e.openBlock(),e.createBlock(vt,e.mergeProps({ref_key:"$input",ref:o,class:["relative flex flex-col items-center",e.unref(n)]},r),{default:e.withCtx((()=>[e.createVNode(wt,{class:"sr-only"}),e.createVNode(kt,e.mergeProps(e.unref(s),{class:["block w-full border-0 py-1.5 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600",{"ring-1 ring-red-500":e.unref(o)?.errors}]}),null,16,["class"]),e.createVNode(xt),e.createElementVNode("div",St,[e.createVNode(bt,{class:"mt-1 text-sm text-red-500"})])])),_:1},16,["class"]))}});At.__file="src/components/forms/AGInput.vue";const Bt={String:"string",Number:"number",Boolean:"boolean",Object:"object"},Et=new WeakMap;class Gt extends r.MagicObject{constructor(t){super(),c.default(this,"errors",void 0),c.default(this,"_fields",void 0),c.default(this,"_data",void 0),c.default(this,"_submitted",void 0),c.default(this,"_errors",void 0),c.default(this,"_listeners",{}),this._fields=t,this._submitted=e.ref(!1),this._data=this.getInitialData(t),this._errors=this.getInitialErrors(t),Et.set(this,e.computed((()=>!Object.values(this._errors).some((e=>null!==e))))),this.errors=e.readonly(this._errors)}get valid(){return!!Et.get(this)?.value}get submitted(){return this._submitted.value}setFieldValue(e,t){this._data[e]=t,this._submitted.value&&this.validate()}getFieldValue(e){return this._data[e]}validate(){const e=Object.entries(this._fields).reduce(((e,t)=>{let[r,o]=t;return e[r]=this.getFieldErrors(r,o),e}),{});return this.resetErrors(e),this.valid}reset(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._submitted.value=!1,e.keepData||this.resetData(),e.keepErrors||this.resetErrors()}submit(){return this._submitted.value=!0,this.validate()}on(e,t){return this._listeners[e]??=[],this._listeners[e]?.push(t),()=>this.off(e,t)}off(e,t){r.arrayRemove(this._listeners[e]??[],t)}async focus(t){await e.nextTick(),this._listeners.focus?.forEach((e=>e(t)))}__get(e){return e in this._fields?this._data[e]:super.__get(e)}__set(e,t){e in this._fields?Object.assign(this._data,{[e]:t}):super.__set(e,t)}getFieldErrors(e,t){const r=[];return t.rules?.includes("required")&&!this._data[e]&&r.push("required"),r.length>0?r:null}getInitialData(t){if(this.static().isConjuring())return{};const r=Object.entries(t).reduce(((e,t)=>{let[r,o]=t;return e[r]=o.default??null,e}),{});return e.reactive(r)}getInitialErrors(t){if(this.static().isConjuring())return{};const r=Object.keys(t).reduce(((e,t)=>(e[t]=null,e)),{});return e.reactive(r)}resetData(){for(const[e,t]of Object.entries(this._fields))this._data[e]=t.default??null}resetErrors(e){Object.keys(this._errors).forEach((e=>delete this._errors[e])),e&&Object.assign(this._errors,e)}}function jt(e){return new Gt(e)}function Mt(e){return{default:e,type:Bt.String,rules:"required"}}const Vt={class:"mt-2 flex flex-row-reverse gap-2"};var Pt=e.defineComponent({__name:"AGPromptModal",props:dt(),setup(t){const r=t,o=jt({draft:Mt(r.defaultValue??"")}),{renderedAcceptText:s,renderedCancelText:n}=pt(r);return(t,r)=>(e.openBlock(),e.createBlock(we,{cancellable:!1,title:t.title},{default:e.withCtx((({close:r})=>[e.createVNode(ke,{text:t.message},null,8,["text"]),e.createVNode(mt,{form:e.unref(o),onSubmit:t=>r(e.unref(o).draft)},{default:e.withCtx((()=>[e.createVNode(At,{name:"draft",placeholder:t.placeholder,label:t.label},null,8,["placeholder","label"]),e.createElementVNode("div",Vt,[e.createVNode(Ve,{submit:""},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(e.unref(s)),1)])),_:1}),e.createVNode(Ve,{color:"secondary",onClick:e=>r()},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(e.unref(n)),1)])),_:2},1032,["onClick"])])])),_:2},1032,["form","onSubmit"])])),_:1},8,["title"]))}});Pt.__file="src/components/modals/AGPromptModal.vue";const Nt={class:"pointer-events-auto"};var $t=e.defineComponent({__name:"AGHeadlessSnackbar",setup:t=>(t,r)=>(e.openBlock(),e.createElementBlock("div",Nt,[e.renderSlot(t.$slots,"default")]))});$t.__file="src/components/headless/snackbars/AGHeadlessSnackbar.vue";const Ht=r.objectWithout(te,["Primary","Clear"]),qt={id:I(),message:I(),actions:A((()=>[])),color:j(Ht,te.Secondary)};function Tt(){return qt}function Rt(e){return{activate:function(t){t.handler?.(),t.dismiss&&Q.hideSnackbar(e.id)}}}var It=e.defineComponent({__name:"AGSnackbar",props:Tt(),setup(t){const r=t,{activate:o}=Rt(r),s=e.computed((()=>r.color===te.Danger?"bg-red-200 text-red-900":"bg-gray-900 text-white"));return(t,r)=>(e.openBlock(),e.createBlock($t,{class:e.normalizeClass(["flex flex-row items-center justify-center gap-3 p-4",s.value])},{default:e.withCtx((()=>[e.createVNode(ke,{text:t.message,inline:""},null,8,["text"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.actions,((r,s)=>(e.openBlock(),e.createBlock(Ve,{key:s,color:t.color,onClick:t=>e.unref(o)(r)},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(r.text),1)])),_:2},1032,["color","onClick"])))),128))])),_:1},8,["class"]))}});It.__file="src/components/snackbars/AGSnackbar.vue";const Lt={class:"grid flex-grow place-items-center"},Dt={class:"flex flex-col items-center space-y-6 p-8"},Ot={class:"mt-2 text-center text-4xl font-medium text-red-600"},zt={class:"mt-4 flex flex-col space-y-4"};var Ft=e.defineComponent({__name:"AGStartupCrash",setup:t=>(t,r)=>(e.openBlock(),e.createElementBlock("div",Lt,[e.createElementVNode("div",Dt,[e.createElementVNode("h1",Ot,e.toDisplayString(t.$td("startupCrash.title","Something went wrong!")),1),e.createVNode(ke,{text:t.$td("startupCrash.message","Something failed trying to start the application.\n\nHere's some things you can do:"),class:"mt-4 text-center"},null,8,["text"]),e.createElementVNode("div",zt,[e.createVNode(Ve,{color:"danger",onClick:r[0]||(r[0]=e=>t.$app.reload())},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(t.$td("startupCrash.reload","Try again")),1)])),_:1}),e.createVNode(Ve,{color:"danger",onClick:r[1]||(r[1]=e=>t.$errors.inspect(t.$errors.startupErrors))},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(t.$td("startupCrash.inspect","View error details")),1)])),_:1})])])]))});Ft.__file="src/components/lib/AGStartupCrash.vue";const Ut={$ui:Q};var Wt={async install(e,t){const r={[K.AlertModal]:Be,[K.ConfirmModal]:Ne,[K.ErrorReportModal]:nt,[K.LoadingModal]:ct,[K.PromptModal]:Pt,[K.Snackbar]:It,[K.StartupCrash]:Ft};Object.entries({...r,...t.components}).forEach((e=>{let[t,r]=e;return Q.registerComponent(t,r)})),await F(e,Ut)}};async function Kt(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=[ce,O,ae,ie,U,Wt,...t.plugins??[]];await S(r,e,t),await(t.install?.(e)),await _.emit("application-ready")}const Jt={key:0};var Qt=e.defineComponent({__name:"AGAppModals",setup(t){const r=e.computed((()=>Q.modals[0]??null));return(t,o)=>r.value?(e.openBlock(),e.createElementBlock("aside",Jt,[e.createVNode(xe,{"child-index":1,modal:r.value},null,8,["modal"])])):e.createCommentVNode("v-if",!0)}});Qt.__file="src/components/AGAppModals.vue";const Zt={"aria-live":"assertive",class:"z-60 pointer-events-none fixed inset-0 flex items-end px-4 py-6 sm:p-6"},Yt={class:"flex w-full flex-col items-end space-y-4"};const Xt={render:function(t,r){return e.openBlock(),e.createElementBlock("div",Zt,[e.createElementVNode("div",Yt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.$ui.snackbars,(t=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.component),e.mergeProps({id:t.id,key:t.id},t.properties),null,16,["id"])))),128))])])},__file:"src/components/AGAppSnackbars.vue"};var er=Xt,tr=e.defineComponent({__name:"AGAppOverlays",setup(t){const r=e.ref(null),o=e.ref(!0);return ue("show-overlays-backdrop",(async()=>{r.value&&o.value&&(o.value=!1,r.value.classList.remove("opacity-0"))})),ue("hide-overlays-backdrop",(async()=>{r.value&&!o.value&&(o.value=!0,r.value.classList.add("opacity-0"))})),(t,o)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{id:"aerogel-overlays-backdrop",ref_key:"$backdrop",ref:r,class:"pointer-events-none fixed inset-0 z-50 bg-black/30 opacity-0"},null,512),e.createVNode(Qt),e.createVNode(er)],64))}});tr.__file="src/components/AGAppOverlays.vue";const rr={class:"flex min-h-full flex-col text-base font-normal leading-tight text-gray-900 antialiased"};var or=e.defineComponent({__name:"AGAppLayout",setup:t=>(t,r)=>(e.openBlock(),e.createElementBlock("div",rr,[t.$errors.hasStartupErrors?e.renderSlot(t.$slots,"startup-crash",{key:0},(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.$ui.requireComponent(e.unref(K).StartupCrash))))])):e.renderSlot(t.$slots,"default",{key:1}),e.createVNode(tr)]))});or.__file="src/components/AGAppLayout.vue";const sr={class:"ml-2"};var nr=e.defineComponent({inheritAttrs:!1,__name:"AGCheckbox",props:{name:L()},emits:["update:modelValue"],setup(t){const r=E();return(o,s)=>(e.openBlock(),e.createBlock(vt,{ref_key:"$input",ref:r,name:t.name,class:"flex","onUpdate:modelValue":s[0]||(s[0]=e=>o.$emit("update:modelValue",e))},{default:e.withCtx((()=>[e.createVNode(kt,e.mergeProps(o.$attrs,{type:"checkbox",class:{"text-indigo-600 focus:ring-indigo-600":!e.unref(r)?.errors,"border-red-200 text-red-600 focus:ring-red-600":e.unref(r)?.errors}}),null,16,["class"]),e.createElementVNode("div",sr,[o.$slots.default?(e.openBlock(),e.createBlock(wt,{key:0},{default:e.withCtx((()=>[e.renderSlot(o.$slots,"default")])),_:3})):e.createCommentVNode("v-if",!0),e.createVNode(bt,{class:"text-sm text-red-600"})])])),_:3},8,["name"]))}});nr.__file="src/components/forms/AGCheckbox.vue";const ar={viewBox:"0 0 20 20",width:"1.2em",height:"1.2em"},lr=[e.createElementVNode("path",{fill:"currentColor",d:"m9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828L5.757 6.586L4.343 8z"},null,-1)];var ir={name:"zondicons-cheveron-down",render:function(t,r){return e.openBlock(),e.createElementBlock("svg",ar,[...lr])}};const cr={name:L(),label:L(),options:H(),noSelectionText:L(),optionsText:P()},ur=["update:modelValue"];function dr(){return cr}function pr(){return[...ur]}var mr=e.defineComponent({__name:"AGHeadlessSelect",props:{modelValue:P(),...dr()},emits:pr(),setup(t,{expose:o,emit:s}){const a=s,l=t,i=e.computed((()=>"function"==typeof l.optionsText?l.optionsText:"string"==typeof l.optionsText?e=>r.toString(e[l.optionsText]):e=>r.toString(e))),c=e.inject("form",null),u=e.computed((()=>l.noSelectionText??X("select.noSelection","-"))),d=e.computed((()=>c&&l.name?c.getFieldValue(l.name):l.modelValue)),p=e.computed((()=>c&&l.name?c.errors[l.name]??null:null));function m(e){c&&l.name?c.setFieldValue(l.name,e):a("update:modelValue",e)}const f={id:`select-${r.uuid()}`,noSelectionText:u,selectedOption:d,errors:p,options:e.computed((()=>l.options)),label:e.computed((()=>l.label)),buttonText:e.computed((()=>null===d.value?u.value:i.value(d.value))),renderText:i,update:m};return e.provide("select",f),o(f),(t,r)=>(e.openBlock(),e.createBlock(e.unref(n.Listbox),{"model-value":d.value,"onUpdate:modelValue":r[0]||(r[0]=e=>m(e))},{default:e.withCtx((({value:r,open:o,disabled:s})=>[e.renderSlot(t.$slots,"default",{value:r,open:o,disabled:s})])),_:3},8,["model-value"]))}});mr.__file="src/components/headless/forms/AGHeadlessSelect.vue";var fr=e.defineComponent({__name:"AGHeadlessSelectButton",props:{textClass:L()},setup(t){const r=V("select","<AGHeadlessSelectButton> must be a child of a <AGHeadlessSelect>");return(o,s)=>(e.openBlock(),e.createBlock(e.unref(n.ListboxButton),null,{default:e.withCtx((({value:s,open:n,disabled:a})=>[e.renderSlot(o.$slots,"default",{value:s,open:n,disabled:a},(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.textClass)},e.toDisplayString(e.unref(r)?.buttonText),3)])),e.renderSlot(o.$slots,"icon")])),_:3}))}});fr.__file="src/components/headless/forms/AGHeadlessSelectButton.vue";const hr=["id"];var vr=e.defineComponent({__name:"AGHeadlessSelectError",setup(t){const r=V("select","<AGHeadlessSelectError> must be a child of a <AGHeadlessSelect>"),o=e.computed((()=>r.errors?X(`errors.${r.errors[0]}`,`Error: ${r.errors[0]}`):null));return(t,s)=>o.value?(e.openBlock(),e.createElementBlock("p",{key:0,id:`${e.unref(r).id}-error`},e.toDisplayString(o.value),9,hr)):e.createCommentVNode("v-if",!0)}});vr.__file="src/components/headless/forms/AGHeadlessSelectError.vue";var xr=e.defineComponent({__name:"AGHeadlessSelectLabel",setup(t){const r=V("select","<AGHeadlessSelectLabel> must be a child of a <AGHeadlessSelect>"),o=e.useSlots(),s=e.computed((()=>!(!r.label&&!o.default)));return(t,o)=>s.value?(e.openBlock(),e.createBlock(e.unref(n.ListboxLabel),{key:0},{default:e.withCtx((({open:o,disabled:s})=>[e.renderSlot(t.$slots,"default",{open:o,disabled:s},(()=>[e.createTextVNode(e.toDisplayString(e.unref(r).label),1)]))])),_:3})):e.createCommentVNode("v-if",!0)}});xr.__file="src/components/headless/forms/AGHeadlessSelectLabel.vue";var gr=e.defineComponent({__name:"AGHeadlessSelectOption",props:{value:q(),selectedClass:L(),unselectedClass:L(),activeClass:L(),inactiveClass:L()},setup(t){const r=V("select","<AGHeadlessSelectOption> must be a child of a <AGHeadlessSelect>");return(o,s)=>(e.openBlock(),e.createBlock(e.unref(n.ListboxOption),{value:t.value,as:"template"},{default:e.withCtx((({active:s,selected:n,disabled:a})=>[e.renderSlot(o.$slots,"default",{active:s,selected:n,disabled:a},(()=>[e.createElementVNode("li",{class:e.normalizeClass({[t.activeClass??"active"]:s,[t.inactiveClass??"inactive"]:!s,[t.selectedClass??"selected"]:n,[t.unselectedClass??"unselected"]:!n})},e.toDisplayString(e.unref(r).renderText(t.value)),3)]))])),_:3},8,["value"]))}});gr.__file="src/components/headless/forms/AGHeadlessSelectOption.vue";const br={class:"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2"};var _r=e.defineComponent({__name:"AGSelect",props:dr(),emits:pr(),setup(t){const r=t,o=E();return(t,s)=>(e.openBlock(),e.createBlock(mr,e.mergeProps(r,{ref_key:"$select",ref:o,as:"div","onUpdate:modelValue":s[0]||(s[0]=e=>t.$emit("update:modelValue",e))}),{default:e.withCtx((()=>[e.createVNode(xr,{class:"block text-sm font-medium leading-6 text-gray-900"}),e.createElementVNode("div",{class:e.normalizeClass(["relative",{"mt-2":e.unref(o)?.label}])},[e.createVNode(fr,{class:e.normalizeClass(["relative w-full cursor-default bg-white py-1.5 pl-3 pr-10 text-left text-gray-900 ring-1 ring-inset ring-gray-300 focus:outline-none focus:ring-2 focus:ring-indigo-600",{"ring-1 ring-red-500":e.unref(o)?.errors}]),"text-class":"block truncate"},{icon:e.withCtx((()=>[e.createElementVNode("span",br,[e.createVNode(e.unref(ir),{class:"h-5 w-5 text-gray-400"})])])),_:1},8,["class"]),e.createVNode(e.unref(n.ListboxOptions),{class:"absolute z-10 mt-1 max-h-60 w-full overflow-auto border bg-white py-1 text-base ring-1 ring-black ring-opacity-5 focus:outline-none"},{default:e.withCtx((()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o)?.options??[],((t,r)=>(e.openBlock(),e.createBlock(gr,{key:r,value:t,class:"relative block cursor-default select-none truncate py-2 pl-3 pr-9","selected-class":"font-semibold","unselected-class":"font-normal","active-class":"bg-indigo-600 text-white","inactive-class":"text-gray-900"},null,8,["value"])))),128))])),_:1})],2),e.createVNode(vr,{class:"mt-2 text-sm text-red-600"})])),_:1},16))}});_r.__file="src/components/forms/AGSelect.vue";var yr=e.defineComponent({__name:"AGErrorMessage",props:{error:R()},setup(t){const r=t,o=e.computed((()=>oe(r.error)));return(t,r)=>(e.openBlock(),e.createBlock(ke,{text:o.value,inline:""},null,8,["text"]))}});yr.__file="src/components/lib/AGErrorMessage.vue";var kr=e.defineComponent({__name:"AGLink",setup:t=>(t,r)=>(e.openBlock(),e.createBlock(Me,{class:"font-medium hover:underline"},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default")])),_:3}))});kr.__file="src/components/lib/AGLink.vue";var Cr=e.defineComponent({__name:"AGMeasured",props:{as:L("span")},setup(t){const r=e.ref(!1);return(o,s)=>{const n=e.resolveDirective("measure");return e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.as),{class:e.normalizeClass({"!invisible !absolute !w-auto":!r.value})},{default:e.withCtx((()=>[e.renderSlot(o.$slots,"default")])),_:3},8,["class"])),[[n,()=>r.value=!0]])}}});Cr.__file="src/components/lib/AGMeasured.vue";var wr=e.defineComponent({__name:"AGModalTitle",setup:t=>(t,r)=>(e.openBlock(),e.createBlock(_e,{class:"mb-2 font-semibold"},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default")])),_:3}))});wr.__file="src/components/modals/AGModalTitle.vue";Object.defineProperty(exports,"AGHeadlessSelectOptions",{enumerable:!0,get:function(){return n.ListboxOptions}}),exports.AGAlertModal=Be,exports.AGAppLayout=or,exports.AGAppOverlays=tr,exports.AGButton=Ve,exports.AGCheckbox=nr,exports.AGConfirmModal=Ne,exports.AGErrorMessage=yr,exports.AGErrorReportModalButtons=et,exports.AGErrorReportModalTitle=tt,exports.AGForm=mt,exports.AGHeadlessButton=Me,exports.AGHeadlessInput=vt,exports.AGHeadlessInputDescription=xt,exports.AGHeadlessInputError=bt,exports.AGHeadlessInputInput=kt,exports.AGHeadlessInputLabel=wt,exports.AGHeadlessModal=ve,exports.AGHeadlessModalPanel=be,exports.AGHeadlessModalTitle=_e,exports.AGHeadlessSelect=mr,exports.AGHeadlessSelectButton=fr,exports.AGHeadlessSelectError=vr,exports.AGHeadlessSelectLabel=xr,exports.AGHeadlessSelectOption=gr,exports.AGHeadlessSnackbar=$t,exports.AGInput=At,exports.AGLink=kr,exports.AGLoadingModal=ct,exports.AGMarkdown=ke,exports.AGMeasured=Cr,exports.AGModal=we,exports.AGModalContext=xe,exports.AGModalTitle=wr,exports.AGPromptModal=Pt,exports.AGSelect=_r,exports.AGSnackbar=It,exports.AGStartupCrash=Ft,exports.App=C,exports.AppService=k,exports.Colors=te,exports.Errors=re,exports.EventListenerPriorities={Low:-256,Default:0,High:256},exports.Events=_,exports.EventsService=b,exports.FormFieldTypes=Bt,exports.Job=class{},exports.Lang=Z,exports.Service=g,exports.SnackbarColors=Ht,exports.UI=Q,exports.UIComponents=K,exports.UIService=J,exports.alertModalProps=Se,exports.arrayProp=A,exports.booleanInput=function(e){return{default:e,type:Bt.Boolean}},exports.booleanProp=B,exports.bootServices=F,exports.bootstrap=async function(t){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=e.createApp(t);await Kt(o,r),o.mount("#app"),o._container?.classList.remove("loading"),await _.emit("application-mounted")},exports.bootstrapApplication=Kt,exports.componentRef=E,exports.computedAsync=function(t){const r=e.ref(),o=e.computed(t);return e.watch(o,(async()=>r.value=await o.value),{immediate:!0}),r},exports.confirmModalProps=Ee,exports.defineDirective=G,exports.definePlugin=w,exports.defineServiceState=x,exports.defineServiceStore=v,exports.dispatch=async function(e){await e.run()},exports.enumProp=j,exports.errorReportModalProps=Le,exports.extractInputProps=function(e){return pe(e,ft)},exports.extractModalProps=function(e){return pe(e,me)},exports.extractSelectProps=function(e){return pe(e,cr)},exports.getErrorMessage=oe,exports.getPiniaStore=h,exports.injectOrFail=function(t,o){return e.inject(t)??r.fail(o??`Could not resolve '${t}' injection key`)},exports.injectReactive=M,exports.injectReactiveOrFail=V,exports.inputProps=ft,exports.installPlugins=S,exports.loadingModalProps=at,exports.mixedProp=P,exports.modalProps=me,exports.numberInput=function(e){return{default:e,type:Bt.Number}},exports.numberProp=N,exports.objectProp=$,exports.onCleanMounted=function(t){let o=r.noop;e.onMounted((()=>o=t())),e.onUnmounted((()=>o()))},exports.onFormFocus=_t,exports.promptModalProps=ut,exports.removeInteractiveClasses=function(e){return e.split(/\s+/).filter((e=>!/^(hover|focus|focus-visible):/.test(e))).join(" ").trim()},exports.requiredArrayProp=H,exports.requiredBooleanInput=function(e){return{default:e,type:Bt.Boolean,rules:"required"}},exports.requiredEnumProp=function(e){const t=Object.values(e);return{type:String,required:!0,validator:e=>t.includes(e)}},exports.requiredMixedProp=q,exports.requiredNumberInput=function(e){return{default:e,type:Bt.Number,rules:"required"}},exports.requiredNumberProp=T,exports.requiredObjectProp=R,exports.requiredStringInput=Mt,exports.requiredStringProp=I,exports.resetPiniaStore=f,exports.selectEmits=ur,exports.selectProps=cr,exports.snackbarProps=qt,exports.stringInput=function(e){return{default:e,type:Bt.String}},exports.stringProp=L,exports.translate=Y,exports.translateWithDefault=X,exports.useAlertModalProps=Ae,exports.useConfirmModal=je,exports.useConfirmModalProps=Ge,exports.useErrorReportModal=Oe,exports.useErrorReportModalProps=De,exports.useEvent=ue,exports.useForm=jt,exports.useInputAttrs=de,exports.useInputProps=ht,exports.useLoadingModal=it,exports.useLoadingModalProps=lt,exports.useModalExpose=he,exports.useModalProps=fe,exports.usePromptModal=pt,exports.usePromptModalProps=dt,exports.useSelectEmits=pr,exports.useSelectProps=dr,exports.useSnackbar=Rt,exports.useSnackbarProps=Tt;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue");require("core-js/modules/esnext.async-iterator.reduce.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.reduce.js"),require("core-js/modules/esnext.async-iterator.map.js"),require("core-js/modules/esnext.iterator.map.js");var t=require("@babel/runtime/helpers/defineProperty"),r=require("@noeldemartin/utils");require("core-js/modules/esnext.async-iterator.for-each.js"),require("core-js/modules/esnext.iterator.for-each.js"),require("core-js/modules/esnext.set.add-all.js"),require("core-js/modules/esnext.set.delete-all.js"),require("core-js/modules/esnext.set.difference.js"),require("core-js/modules/esnext.set.every.js"),require("core-js/modules/esnext.set.filter.js"),require("core-js/modules/esnext.set.find.js"),require("core-js/modules/esnext.set.intersection.js"),require("core-js/modules/esnext.set.is-disjoint-from.js"),require("core-js/modules/esnext.set.is-subset-of.js"),require("core-js/modules/esnext.set.is-superset-of.js"),require("core-js/modules/esnext.set.join.js"),require("core-js/modules/esnext.set.map.js"),require("core-js/modules/esnext.set.reduce.js"),require("core-js/modules/esnext.set.some.js"),require("core-js/modules/esnext.set.symmetric-difference.js"),require("core-js/modules/esnext.set.union.js");var o=require("pinia"),s=require("virtual:aerogel");require("core-js/modules/esnext.async-iterator.filter.js"),require("core-js/modules/esnext.iterator.filter.js"),require("core-js/modules/esnext.string.at.js"),require("core-js/modules/esnext.async-iterator.some.js"),require("core-js/modules/esnext.iterator.some.js");var n=require("@headlessui/vue"),a=require("dompurify"),l=require("marked");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("core-js/modules/esnext.weak-map.delete-all.js"),require("core-js/modules/esnext.weak-map.emplace.js");var c=i(t),u=i(s),d=i(a);class ServiceBootError extends r.JSError{constructor(e,t){super(`Service '${e}' failed booting`,{cause:t})}}let p=null;function m(){return p??f()}function f(){return r.tap(o.createPinia(),(e=>{p=e,o.setActivePinia(e)}))}function h(){return p??m()}function v(e,t){return m(),o.defineStore(e,t)()}function x(e){var t;return t=class extends g{usesStore(){return!0}getName(){return e.name??null}getInitialState(){return"function"==typeof e.initialState?e.initialState():Object.entries(e.initialState).reduce(((e,t)=>{let[r,o]=t;try{o=structuredClone(o)}catch(e){console.warn(`Could not clone '${r}' state from ${this.getName()} service, this may cause problems if you're using multiple instances of the service (for example, in unit tests).\nTo fix this problem, declare your initialState as a function instead.`)}return e[r]=o,e}),{})}getComputedStateDefinition(){return e.computed??{}}serializePersistedState(t){return e.serialize?.(t)??t}},c.default(t,"persist",e.persist??[]),t}class g extends r.MagicObject{constructor(){super(),c.default(this,"_name",void 0),c.default(this,"_booted",void 0),c.default(this,"_computedStateKeys",void 0),c.default(this,"_store",void 0);const e=this.getComputedStateDefinition();this._name=this.getName()??new.target.name,this._booted=new r.PromisedValue,this._computedStateKeys=new Set(Object.keys(e)),this._store=this.usesStore()&&v(this._name,{state:()=>this.getInitialState(),getters:e})}get booted(){return this._booted}launch(){const handleError=e=>this._booted.reject(new ServiceBootError(this._name,e));try{this.frameworkBoot().then((()=>this.boot())).then((()=>this._booted.resolve())).catch(handleError)}catch(e){handleError(e)}return this._booted}hasPersistedState(){return r.Storage.has(this._name)}hasState(e){return!!this._store&&(e in this._store.$state||this._computedStateKeys.has(e))}getState(e){const t=this._store;return e?t?t[e]:void 0:t||{}}setState(e,t){if(!this._store)return;const r="string"==typeof e?{[e]:t}:e;Object.assign(this._store.$state,r),this.onStateUpdated(r)}__get(e){return this.hasState(e)?this.getState(e):super.__get(e)}__set(e,t){this.setState({[e]:t})}onStateUpdated(e){const t=this.constructor.persist,o=r.objectOnly(e,t);if(r.isEmpty(o))return;const s=r.Storage.get(this._name);s&&r.Storage.set(this._name,{...s,...this.serializePersistedState(r.objectDeepClone(o))})}usesStore(){return!1}getName(){return null}getInitialState(){return{}}getComputedStateDefinition(){return{}}serializePersistedState(e){return e}async frameworkBoot(){this.initializePersistedState()}async boot(){}initializePersistedState(){const e=this.constructor.persist;if(this.usesStore()&&!r.isEmpty(e))if(r.Storage.has(this._name)){const e=r.Storage.require(this._name);this.setState(e)}else r.Storage.set(this._name,r.objectOnly(this.getState(),e))}}c.default(g,"persist",[]);class b extends g{constructor(){super(...arguments),c.default(this,"listeners",{})}async boot(){Object.entries(globalThis.__aerogelEvents__??{}).forEach((e=>{let[t,r]=e;return this.on(t,r)}))}async emit(e,t){const r=this.listeners[e]??{priorities:[],handlers:{}};for(const e of r.priorities)await Promise.all(r.handlers[e]?.map((e=>e(t)))??[])}on(e,t,r){const o="function"==typeof t?{}:t,s="function"==typeof t?t:r;return this.registerListener(e,o,s),()=>this.off(e,s)}once(e,t,o){let s=null;const n="function"==typeof t?{}:t,a="function"==typeof t?t:o;return r.tap((()=>s&&this.off(e,s)),(t=>{s=function(){return t(),a(...arguments)},this.registerListener(e,n,a)}))}off(e,t){const o=this.listeners[e];if(!o)return;const s=[...o.priorities];for(const e of s)r.arrayRemove(o.handlers[e]??[],t),0===o.handlers[e]?.length&&(delete o.handlers[e],r.arrayRemove(o.priorities,e));0===o.priorities.length&&delete this.listeners[e]}registerListener(e,t,o){const s=t.priority??0;e in this.listeners||(this.listeners[e]={priorities:[],handlers:{}});const n=this.listeners[e]?.priorities??r.fail(`priorities missing for event '${e}'`),a=this.listeners[e]?.handlers??r.fail(`handlers missing for event '${e}'`);n.includes(s)||(n.push(s),n.sort(((e,t)=>t-e)),a[s]=[]),a[s]?.push(o)}}var y=r.facade(b),_=x({name:"app",initialState:{plugins:{},environment:u.default.environment,sourceUrl:u.default.sourceUrl},computed:{development:e=>"development"===e.environment,testing:e=>"test"===e.environment||"testing"===e.environment}});class k extends _{constructor(){super(...arguments),c.default(this,"ready",new r.PromisedValue),c.default(this,"mounted",new r.PromisedValue)}isReady(){return this.ready.isResolved()}isMounted(){return this.mounted.isResolved()}async whenReady(e){return await this.ready.then(e)}async reload(e){e&&r.updateLocationQueryParameters(e),location.reload(),await r.forever()}plugin(e){return this.plugins[e]??null}async boot(){y.once("application-ready",(()=>this.ready.resolve())),y.once("application-mounted",(()=>this.mounted.resolve()))}}var C=r.facade(k);function w(e){return e}async function S(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),o=1;o<t;o++)r[o-1]=arguments[o];C.setState("plugins",e.reduce(((e,t)=>(t.name&&(e[t.name]=t),e)),{})),await Promise.all(e.map((e=>e.install(...r)))??[])}function A(e){return{type:Array,default:e??(()=>[])}}function B(){return{type:Boolean,default:arguments.length>0&&void 0!==arguments[0]&&arguments[0]}}function E(){return e.ref()}function G(e){return e}function j(e,t){const r=Object.values(e);return{type:String,default:t??r[0]??null,validator:e=>r.includes(e)}}function V(t){const r=e.inject(t);return r?e.reactive(r):void 0}function M(e,t){return V(e)??r.fail(t??`Could not resolve '${e}' injection key`)}function P(e){return{type:e,default:null}}function $(){return{type:Number,default:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}}function N(){return{type:Object,default:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}}function H(){return{type:Array,required:!0}}function T(e){return{type:e,required:!0}}function q(){return{type:Number,required:!0}}function I(){return{type:Object,required:!0}}function D(){return{type:String,required:!0}}function R(){return{type:String,default:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}}const L={"initial-focus":{mounted(e,t){let{value:r}=t;!1!==r&&e.focus()}},measure:{mounted(e,t){let{value:r}=t;const o="function"==typeof r?r:null,s=e.getBoundingClientRect();e.style.setProperty("--width",`${s.width}px`),e.style.setProperty("--height",`${s.height}px`),o?.({width:s.width,height:s.height})}}};var O={install(e,t){const r={...L,...t.directives};for(const[t,o]of Object.entries(r))e.directive(t,o)}};class z extends g{constructor(){super(...arguments),c.default(this,"cache",void 0)}async get(e){const t=await this.open();return await t.match(e)??null}async store(e,t){const r=await this.open();await r.put(e,t)}async replace(e,t){const r=await this.open();0!==(await r.keys(e)).length&&await r.put(e,t)}async open(){return this.cache=this.cache??r.tap(new r.PromisedValue,(e=>{caches.open("app").then((t=>e.resolve(t)))}))}}var F=r.facade(z);const U={$app:C,$events:y};async function W(e,t){await Promise.all(Object.entries(t).map((async t=>{let[r,o]=t;await o.launch().catch((t=>e.config.errorHandler?.(t,null,`Failed launching ${r}.`)))}))),Object.assign(e.config.globalProperties,t),C.development&&Object.assign(window,t)}var K={async install(e,t){const r={...U,...t.services};e.use(h()),await W(e,r)}},J=x({name:"ui",initialState:{modals:[],snackbars:[]}});const Q={AlertModal:"alert-modal",ConfirmModal:"confirm-modal",ErrorReportModal:"error-report-modal",LoadingModal:"loading-modal",PromptModal:"prompt-modal",Snackbar:"snackbar",StartupCrash:"startup-crash"};class Z extends J{constructor(){super(...arguments),c.default(this,"modalCallbacks",{}),c.default(this,"components",{})}requireComponent(e){return this.components[e]??r.fail(`UI Component '${e}' is not defined!`)}alert(e,t){this.openModal(this.requireComponent(Q.AlertModal),"string"!=typeof t?{message:e}:{title:e,message:t})}async confirm(e,t,r){const o=await this.openModal(this.requireComponent(Q.ConfirmModal),"string"!=typeof t?{message:e,...t??{}}:{title:e,message:t,...r??{}});return await o.beforeClose??!1}async prompt(e,t,r){const o=r?.trim??!0,s=await this.openModal(this.requireComponent(Q.PromptModal),"string"!=typeof t?{message:e,...t??{}}:{title:e,message:t,...r??{}}),n=await s.beforeClose;return(o&&"string"==typeof n?n?.trim():n)??null}async loading(e,t){const o=await this.openModal(this.requireComponent(Q.LoadingModal),"string"!=typeof e?{}:{message:e});try{t="string"==typeof e?t:e;const[o]=await Promise.all([t,r.after({seconds:1})]);return o}finally{await this.closeModal(o.id)}}showSnackbar(t){let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s={id:r.uuid(),properties:{message:t,...o},component:e.markRaw(o.component??this.requireComponent(Q.Snackbar))};this.setState("snackbars",this.snackbars.concat(s)),setTimeout((()=>this.hideSnackbar(s.id)),5e3)}hideSnackbar(e){this.setState("snackbars",this.snackbars.filter((t=>t.id!==e)))}registerComponent(e,t){this.components[e]=t}async openModal(t,o){const s=r.uuid(),n={},a={id:s,properties:o??{},component:e.markRaw(t),beforeClose:new Promise((e=>n.willClose=e)),afterClose:new Promise((e=>n.closed=e))},l=this.modals.at(-1),i=this.modals.concat(a);return this.modalCallbacks[a.id]=n,this.setState({modals:i}),await e.nextTick(),await(l&&y.emit("hide-modal",{id:l.id})),await Promise.all([l||y.emit("show-overlays-backdrop"),y.emit("show-modal",{id:a.id})]),a}async closeModal(e,t){await y.emit("close-modal",{id:e,result:t})}async boot(){this.watchModalEvents(),this.watchMountedEvent()}watchModalEvents(){y.on("modal-will-close",(e=>{let{modal:t,result:r}=e;this.modalCallbacks[t.id]?.willClose?.(r),1===this.modals.length&&y.emit("hide-overlays-backdrop")})),y.on("modal-closed",(async e=>{let{modal:t,result:r}=e;this.setState("modals",this.modals.filter((e=>e.id!==t.id))),this.modalCallbacks[t.id]?.closed?.(r),delete this.modalCallbacks[t.id];const o=this.modals.at(-1);await(o&&y.emit("show-modal",{id:o.id}))}))}watchMountedEvent(){y.once("application-mounted",(async()=>{const e=document.getElementById("splash");e&&("0"!==window.getComputedStyle(e).opacity&&(e.style.opacity="0",await r.after({ms:600})),e.remove())}))}}var Y=r.facade(Z);var X=r.facade(class extends g{constructor(){super(),c.default(this,"provider",void 0),this.provider={translate:e=>(C.development&&console.warn("Lang provider is missing"),e),translateWithDefault:(e,t)=>(C.development&&console.warn("Lang provider is missing"),t)}}setProvider(e){this.provider=e}translate(e,t){return this.provider.translate(e,t)??e}translateWithDefault(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.provider.translateWithDefault(e,t,r)}});const ee=X.translate.bind(X),te=X.translateWithDefault.bind(X);var re=x({name:"errors",initialState:{logs:[],startupErrors:[]},computed:{hasErrors:e=>{let{logs:t}=e;return t.length>0},hasNewErrors:e=>{let{logs:t}=e;return t.some((e=>!e.seen))},hasStartupErrors:e=>{let{startupErrors:t}=e;return t.length>0}}});const oe={Primary:"primary",Secondary:"secondary",Danger:"danger",Clear:"clear"};var se=r.facade(class extends re{constructor(){super(...arguments),c.default(this,"forceReporting",!1),c.default(this,"enabled",!0)}enable(){this.enabled=!0}disable(){this.enabled=!1}async inspect(e){const t=Array.isArray(e)?e:[await this.createErrorReport(e)];0!==t.length?Y.openModal(Y.requireComponent(Q.ErrorReportModal),{reports:t}):Y.alert(te("errors.inspectEmpty","Nothing to inspect!"))}async report(e,t){if(await y.emit("error",{error:e,message:t}),C.testing)throw e;if(C.development&&this.logError(e),!this.enabled)throw e;if(!C.isMounted()){const t=await this.createStartupErrorReport(e);return void(t&&this.setState({startupErrors:this.startupErrors.concat(t)}))}const r=await this.createErrorReport(e),o={report:r,seen:!1,date:new Date};Y.showSnackbar(t??te("errors.notice","Something went wrong, but it's not your fault. Try again!"),{color:oe.Danger,actions:[{text:te("errors.viewDetails","View details"),dismiss:!0,handler:()=>Y.openModal(Y.requireComponent(Q.ErrorReportModal),{reports:[r]})}]}),this.setState({logs:[o].concat(this.logs)})}see(e){this.setState({logs:this.logs.map((t=>t.report!==e?t:{...t,seen:!0}))})}seeAll(){this.setState({logs:this.logs.map((e=>({...e,seen:!0})))})}logError(e){console.error(e),r.isObject(e)&&e.cause&&this.logError(e.cause)}async createErrorReport(e){return"string"==typeof e?{title:e}:e instanceof Error||e instanceof r.JSError?this.createErrorReportFromError(e):r.isObject(e)?r.objectWithoutEmpty({title:r.toString(e.name??e.title??te("errors.unknown","Unknown Error")),description:r.toString(e.message??e.description??te("errors.unknownDescription","Unknown error object")),error:e}):{title:te("errors.unknown","Unknown Error"),error:e}}async createStartupErrorReport(e){return e instanceof ServiceBootError?e.cause instanceof ServiceBootError?null:this.createErrorReport(e.cause):this.createErrorReport(e)}createErrorReportFromError(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{title:e.name,description:e.message,details:e.stack,error:e,...t}}});function ne(e){return"string"==typeof e?e:e instanceof Error||e instanceof r.JSError?e.message:r.isObject(e)?r.toString(e.message??e.description??"Unknown error object"):te("errors.unknown","Unknown Error")}const ae={$errors:se};function le(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:()=>!1;const r=e=>t(e)||(e=>(se.report(e),!0))(e);e.config.errorHandler=r,globalThis.onerror=(e,t,o,s,n)=>r(n??e),globalThis.onunhandledrejection=e=>r(e.reason)}var ie={async install(e,t){le(e,t.handleError),await W(e,ae)}};const ce={$lang:X};var ue={async install(e){e.config.globalProperties.$t??=ee,e.config.globalProperties.$td=te,await W(e,ce)}},de={async install(){"testing"===(void 0).MODE&&(globalThis.testingRuntime={on:function(){return y.on(...arguments)}})}};function pe(t,r){const o=y.on(t,r);e.onUnmounted((()=>o()))}function me(){const t=e.useAttrs(),o=e.computed((()=>t.class));return[e.computed((()=>r.objectWithout(t,"class"))),o]}function fe(e,t){return Object.keys(t).reduce(((t,r)=>(t[r]=e[r],t)),{})}const he={cancellable:B(!0),title:R()};function ve(){return he}function xe(t){return{close:async()=>t.value?.close(),cancellable:e.computed((()=>!!t.value?.cancellable))}}var ge=e.defineComponent({__name:"AGHeadlessModal",props:ve(),setup(t,{expose:r}){const o=t,s=e.ref(null),a=e.ref(!0),l=e.ref(!1),{modal:i}=M("modal","could not obtain modal reference from <AGHeadlessModal>, did you render this component manually? Show it using $ui.openModal() instead");async function c(){s.value?.$el&&(a.value=!0)}async function u(e){l.value||(y.emit("modal-will-close",{modal:i,result:e}),await c(),l.value=!0,y.emit("modal-closed",{modal:i,result:e}))}return pe("close-modal",(async({id:e,result:t})=>{e===i.id&&await u(t)})),pe("hide-modal",(async({id:e})=>{e===i.id&&await c()})),pe("show-modal",(async({id:e})=>{e===i.id&&await async function(){s.value?.$el&&(a.value=!1)}()})),r({close:u,cancellable:e.toRef(o,"cancellable")}),(t,r)=>(e.openBlock(),e.createBlock(e.unref(n.Dialog),{ref_key:"$root",ref:s,open:!0,onClose:r[0]||(r[0]=e=>t.cancellable&&u())},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{close:u})])),_:3},512))}});ge.__file="src/components/headless/modals/AGHeadlessModal.vue";var be=e.defineComponent({__name:"AGModalContext",props:{modal:I(),childIndex:q()},setup(t){const r=t;return e.provide("modal",{modal:e.toRef(r,"modal"),childIndex:e.toRef(r,"childIndex")}),(r,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.modal.component),e.normalizeProps(e.guardReactiveProps(t.modal.properties)),null,16))}});be.__file="src/components/modals/AGModalContext.vue";const ye=e.createElementVNode("div",{class:"pointer-events-none fixed inset-0 z-50 bg-black/30"},null,-1);var _e=e.defineComponent({__name:"AGHeadlessModalPanel",setup(t){const r=M("modal","could not obtain modal reference from <AGHeadlessModalPanel>, did you render this component manually? Show it using $ui.openModal() instead"),o=e.computed((()=>Y.modals[r.childIndex]??null));return(t,s)=>(e.openBlock(),e.createBlock(e.unref(n.DialogPanel),null,{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default"),o.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[ye,e.createVNode(be,{"child-index":e.unref(r).childIndex+1,modal:o.value},null,8,["child-index","modal"])],64)):e.createCommentVNode("v-if",!0)])),_:3}))}});_e.__file="src/components/headless/modals/AGHeadlessModalPanel.vue";var ke=e.defineComponent({__name:"AGHeadlessModalTitle",props:{as:R("h2")},setup:t=>(r,o)=>(e.openBlock(),e.createBlock(e.unref(n.DialogTitle),{as:t.as},{default:e.withCtx((()=>[e.renderSlot(r.$slots,"default")])),_:3},8,["as"]))});function Ce(e){return t=l.marked(e,{mangle:!1,headerIds:!1,renderer:r.tap(new l.Renderer,(e=>{e.link=function(e,t,r){return l.Renderer.prototype.link.apply(this,[e,t,r]).replace("<a",'<a target="_blank"')}}))}),d.default.sanitize(t,{ADD_ATTR:["target"]});var t}ke.__file="src/components/headless/modals/AGHeadlessModalTitle.vue";var we=e.defineComponent({__name:"AGMarkdown",props:{as:R(),inline:B(),langKey:R(),langParams:P(),text:R()},setup(t){const r=t,o=e.useAttrs(),s=e.computed((()=>r.text??(r.langKey&&ee(r.langKey,r.langParams??{})))),n=e.computed((()=>{if(!s.value)return null;let e=Ce(s.value);return r.inline&&(e=e.replace("<p>","<span>").replace("</p>","</span>")),e})),a=()=>e.h(r.as??(r.inline?"span":"div"),{innerHTML:n.value,...o,class:`${o.class??""} ${r.inline?"":"prose"}`});return(t,r)=>(e.openBlock(),e.createBlock(a))}});we.__file="src/components/lib/AGMarkdown.vue";const Se={class:"fixed inset-0 flex items-center justify-center p-8"};var Ae=e.defineComponent({inheritAttrs:!1,__name:"AGModal",props:ve(),setup(t,{expose:r}){const o=t,s=e.ref();return r(xe(s)),(t,r)=>(e.openBlock(),e.createBlock(ge,e.mergeProps({ref_key:"$modal",ref:s},o,{class:"relative z-50"}),{default:e.withCtx((({close:r})=>[e.createElementVNode("div",Se,[e.createVNode(_e,{class:"flex max-h-full max-w-full flex-col overflow-hidden bg-white p-4"},{default:e.withCtx((()=>[t.title?(e.openBlock(),e.createBlock(ke,{key:0,class:"mb-2 text-lg font-semibold"},{default:e.withCtx((()=>[e.createVNode(we,{text:t.title,inline:""},null,8,["text"])])),_:1})):e.createCommentVNode("v-if",!0),e.createElementVNode("div",e.mergeProps({class:"flex max-h-full flex-col overflow-auto"},t.$attrs),[e.renderSlot(t.$slots,"default",{close:r})],16)])),_:2},1024)])])),_:3},16))}});Ae.__file="src/components/modals/AGModal.vue";const Be={title:R(),message:D()};function Ee(){return Be}var Ge=e.defineComponent({__name:"AGAlertModal",props:Ee(),setup:t=>(t,r)=>(e.openBlock(),e.createBlock(Ae,{title:t.title},{default:e.withCtx((()=>[e.createVNode(we,{text:t.message},null,8,["text"])])),_:1},8,["title"]))});Ge.__file="src/components/modals/AGAlertModal.vue";const je={title:R(),message:D(),acceptText:R(),acceptColor:j(oe,oe.Primary),cancelText:R(),cancelColor:j(oe,oe.Clear)};function Ve(){return je}function Me(t){return{renderedAcceptText:e.computed((()=>t.acceptText??te("ui.accept","Ok"))),renderedCancelText:e.computed((()=>t.cancelText??te("ui.cancel","Cancel")))}}var Pe=e.defineComponent({__name:"AGHeadlessButton",props:{as:N(),href:R(),url:R(),route:R(),routeParams:N((()=>({}))),routeQuery:N((()=>({}))),submit:B()},setup(t){const o=t,s=e.computed((()=>o.as?{as:o.as,props:{}}:o.route?{as:"router-link",props:{to:r.objectWithoutEmpty({name:o.route,params:o.routeParams,query:o.routeQuery})}}:o.href||o.url?{as:"a",props:{target:"_blank",href:o.href||o.url}}:{as:"button",props:{type:o.submit?"submit":"button"}}));return(t,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value.as),e.normalizeProps(e.guardReactiveProps(s.value.props)),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default")])),_:3},16))}});Pe.__file="src/components/headless/forms/AGHeadlessButton.vue";var $e=e.defineComponent({__name:"AGButton",props:{color:j(oe,oe.Primary)},setup(t){const r=t,o=e.computed((()=>{switch(r.color){case oe.Secondary:return["text-white bg-gray-600","hover:bg-gray-500","focus-visible:outline-offset-2 focus-visible:outline-gray-600"].join(" ");case oe.Clear:return"hover:bg-gray-500/20 focus-visible:outline-gray-500/60";case oe.Danger:return["text-white bg-red-600","hover:bg-red-500","focus-visible:outline-offset-2 focus-visible:outline-red-600"].join(" ");default:return["text-white bg-indigo-600","hover:bg-indigo-500","focus-visible:outline-offset-2 focus-visible:outline-indigo-600"].join(" ")}}));return(t,r)=>(e.openBlock(),e.createBlock(Pe,{class:e.normalizeClass(["px-2.5 py-1.5 focus-visible:outline focus-visible:outline-2",o.value])},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default")])),_:3},8,["class"]))}});$e.__file="src/components/forms/AGButton.vue";const Ne={class:"mt-2 flex flex-row-reverse gap-2"};var He=e.defineComponent({__name:"AGConfirmModal",props:Ve(),setup(t){const r=t,{renderedAcceptText:o,renderedCancelText:s}=Me(r);return(t,r)=>(e.openBlock(),e.createBlock(Ae,{cancellable:!1,title:t.title},{default:e.withCtx((({close:r})=>[e.createVNode(we,{text:t.message},null,8,["text"]),e.createElementVNode("div",Ne,[e.createVNode($e,{color:t.acceptColor,onClick:e=>r(!0)},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(e.unref(o)),1)])),_:2},1032,["color","onClick"]),e.createVNode($e,{color:t.cancelColor,onClick:e=>r()},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(e.unref(s)),1)])),_:2},1032,["color","onClick"])])])),_:1},8,["title"]))}});He.__file="src/components/modals/AGConfirmModal.vue";const Te={viewBox:"0 0 20 20",width:"1.2em",height:"1.2em"},qe=[e.createElementVNode("path",{fill:"currentColor",d:"m12.95 10.707l.707-.707L8 4.343L6.586 5.757L10.828 10l-4.242 4.243L8 15.657l4.95-4.95z"},null,-1)];var Ie={name:"zondicons-cheveron-right",render:function(t,r){return e.openBlock(),e.createElementBlock("svg",Te,[...qe])}};const De={viewBox:"0 0 20 20",width:"1.2em",height:"1.2em"},Re=[e.createElementVNode("path",{fill:"currentColor",d:"M7.05 9.293L6.343 10L12 15.657l1.414-1.414L9.172 10l4.242-4.243L12 4.343z"},null,-1)];var Le={name:"zondicons-cheveron-left",render:function(t,r){return e.openBlock(),e.createElementBlock("svg",De,[...Re])}};const Oe={reports:H()};function ze(){return Oe}function Fe(t){const r=e.ref(0),o=e.computed((()=>t.reports[r.value])),s=e.computed((()=>o.value.details?.trim()||te("errors.detailsEmpty","This error is missing a stacktrace."))),n=te("errors.previousReport","Show previous report"),a=te("errors.nextReport","Show next report");return{activeReportIndex:r,details:s,nextReportText:a,previousReportText:n,report:o}}const Ue={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"},We=[e.createElementVNode("path",{fill:"currentColor",d:"M20 19V7H4v12h16m0-16a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16m-7 14v-2h5v2h-5m-3.42-4L5.57 9H8.4l3.3 3.3c.39.39.39 1.03 0 1.42L8.42 17H5.59l3.99-4Z"},null,-1)];var Ke={name:"mdi-console",render:function(t,r){return e.openBlock(),e.createElementBlock("svg",Ue,[...We])}};const Je={viewBox:"0 0 20 20",width:"1.2em",height:"1.2em"},Qe=[e.createElementVNode("path",{fill:"currentColor",d:"M6 6V2c0-1.1.9-2 2-2h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-4v4a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V8c0-1.1.9-2 2-2h4zm2 0h4a2 2 0 0 1 2 2v4h4V2H8v4zM2 8v10h10V8H2z"},null,-1)];var Ze={name:"zondicons-copy",render:function(t,r){return e.openBlock(),e.createElementBlock("svg",Je,[...Qe])}};const Ye={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"},Xe=[e.createElementVNode("path",{fill:"currentColor",d:"M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5c.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34c-.46-1.16-1.11-1.47-1.11-1.47c-.91-.62.07-.6.07-.6c1 .07 1.53 1.03 1.53 1.03c.87 1.52 2.34 1.07 2.91.83c.09-.65.35-1.09.63-1.34c-2.22-.25-4.55-1.11-4.55-4.92c0-1.11.38-2 1.03-2.71c-.1-.25-.45-1.29.1-2.64c0 0 .84-.27 2.75 1.02c.79-.22 1.65-.33 2.5-.33c.85 0 1.71.11 2.5.33c1.91-1.29 2.75-1.02 2.75-1.02c.55 1.35.2 2.39.1 2.64c.65.71 1.03 1.6 1.03 2.71c0 3.82-2.34 4.66-4.57 4.91c.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2Z"},null,-1)];var et={name:"mdi-github",render:function(t,r){return e.openBlock(),e.createElementBlock("svg",Ye,[...Xe])}};const tt={class:"flex"};var rt=e.defineComponent({__name:"AGErrorReportModalButtons",props:{report:I()},setup(t){const o=t,s=e.computed((()=>o.report.description?`${o.report.title}: ${o.report.description}`:o.report.title)),n=e.computed((()=>{if(!C.sourceUrl)return!1;const e=encodeURIComponent(s.value),t=encodeURIComponent(["[Please, explain here what you were trying to do when this error appeared]","","Error details:","```",r.stringExcerpt(o.report.details??"Details missing from report",1800-e.length-C.sourceUrl.length).trim(),"```"].join("\n"));return`${C.sourceUrl}/issues/new?title=${e}&body=${t}`})),a=e.computed((()=>r.tap([{id:"clipboard",description:"Copy to clipboard",iconComponent:Ze,async handler(){await navigator.clipboard.writeText(`${s.value}\n\n${o.report.details}`),Y.showSnackbar(te("errors.copiedToClipboard","Debug information copied to clipboard"))}},{id:"console",description:"Log to console",iconComponent:Ke,handler(){const e=o.report.error??o.report;window.error=e,console.error(e),Y.showSnackbar(te("errors.addedToConsole","You can now use the **error** variable in the console"))}}],(e=>{n.value&&e.push({id:"github",description:"Report in GitHub",iconComponent:et,url:n.value})}))));return(t,r)=>(e.openBlock(),e.createElementBlock("div",tt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,((r,o)=>e.renderSlot(t.$slots,"default",e.mergeProps(r,{key:o}),(()=>[e.createVNode($e,{color:"clear",url:r.url,title:t.$td(`errors.report_${r.id}`,r.description),"aria-label":t.$td(`errors.report_${r.id}`,r.description),onClick:r.handler},{default:e.withCtx((()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.iconComponent),{class:"h-4 w-4","aria-hidden":"true"}))])),_:2},1032,["url","title","aria-label","onClick"])])))),128))]))}});rt.__file="src/components/modals/AGErrorReportModalButtons.vue";var ot=e.defineComponent({__name:"AGErrorReportModalTitle",props:{report:I(),currentReport:$(),totalReports:$()},setup(t){const r=t,o=e.computed((()=>!r.totalReports||r.totalReports<=1?r.report.title:`${r.report.title} (${r.currentReport}/${r.totalReports})`));return(t,r)=>(e.openBlock(),e.createBlock(we,{text:o.value,inline:""},null,8,["text"]))}});ot.__file="src/components/modals/AGErrorReportModalTitle.vue";const st={class:"flex items-center justify-between text-lg font-medium"},nt={class:"flex items-center"},at=["textContent"];var lt=e.defineComponent({__name:"AGErrorReportModal",props:ze(),setup(t){const r=t,{activeReportIndex:o,details:s,nextReportText:n,previousReportText:a,report:l}=Fe(r);return(t,r)=>(e.openBlock(),e.createBlock(Ae,null,{default:e.withCtx((()=>[e.createElementVNode("div",null,[e.createElementVNode("h2",st,[e.createElementVNode("div",nt,[e.createVNode(ot,{report:e.unref(l),"current-report":e.unref(o)+1,"total-reports":t.reports.length},null,8,["report","current-report","total-reports"]),t.reports.length>1?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode($e,{color:"clear",disabled:0===e.unref(o),title:e.unref(a),"aria-label":e.unref(a),onClick:r[0]||(r[0]=e=>o.value--)},{default:e.withCtx((()=>[e.createVNode(e.unref(Le),{"aria-hidden":"true",class:"h-4 w-4"})])),_:1},8,["disabled","title","aria-label"]),e.createVNode($e,{color:"clear",disabled:e.unref(o)===t.reports.length-1,title:e.unref(n),"aria-label":e.unref(n),onClick:r[1]||(r[1]=e=>o.value++)},{default:e.withCtx((()=>[e.createVNode(e.unref(Ie),{"aria-hidden":"true",class:"h-4 w-4"})])),_:1},8,["disabled","title","aria-label"])],64)):e.createCommentVNode("v-if",!0)]),e.createVNode(rt,{report:e.unref(l)},null,8,["report"])]),e.unref(l).description?(e.openBlock(),e.createBlock(we,{key:0,text:e.unref(l).description,class:"mt-2"},null,8,["text"])):e.createCommentVNode("v-if",!0)]),e.createElementVNode("pre",{class:"h-full overflow-auto bg-gray-200 p-4 text-xs text-red-900",textContent:e.toDisplayString(e.unref(s))},null,8,at)])),_:1}))}});lt.__file="src/components/modals/AGErrorReportModal.vue";const it={message:R()};function ct(){return it}function ut(t){return{renderedMessage:e.computed((()=>t.message??te("ui.loading","Loading...")))}}var dt=e.defineComponent({__name:"AGLoadingModal",props:ct(),setup(t){const r=t,{renderedMessage:o}=ut(r);return(t,r)=>(e.openBlock(),e.createBlock(Ae,{cancellable:!1},{default:e.withCtx((()=>[e.createVNode(we,{text:e.unref(o)},null,8,["text"])])),_:1}))}});dt.__file="src/components/modals/AGLoadingModal.vue";const pt={title:R(),message:D(),label:R(),defaultValue:R(),placeholder:R(),acceptText:R(),acceptColor:j(oe,oe.Primary),cancelText:R(),cancelColor:j(oe,oe.Clear)};function mt(){return pt}function ft(t){return{renderedAcceptText:e.computed((()=>t.acceptText??te("ui.accept","Ok"))),renderedCancelText:e.computed((()=>t.cancelText??te("ui.cancel","Cancel")))}}var ht=e.defineComponent({__name:"AGForm",props:{form:N()},emits:["submit"],setup(t,{emit:r}){let o;const s=t,n=r;return e.watchEffect((e=>{o?.(),o=s.form?.on("submit",(()=>n("submit"))),e((()=>o?.()))})),e.provide("form",s.form),(r,o)=>(e.openBlock(),e.createElementBlock("form",{onSubmit:o[0]||(o[0]=e.withModifiers((e=>t.form?.submit()),["prevent"]))},[e.renderSlot(r.$slots,"default")],32))}});ht.__file="src/components/forms/AGForm.vue";const vt={name:R(),label:R(),description:R(),modelValue:P([String,Number,Boolean])};function xt(){return vt}var gt=e.defineComponent({__name:"AGHeadlessInput",props:{as:R("div"),...xt()},emits:["update:modelValue"],setup(t,{expose:o,emit:s}){const n=s,a=t,l=e.computed((()=>i&&a.name?i.errors[a.name]??null:null)),i=e.inject("form",null),c={id:`input-${r.uuid()}`,name:e.computed((()=>a.name)),label:e.computed((()=>a.label)),description:e.computed((()=>a.description)),value:e.computed((()=>i&&a.name?i.getFieldValue(a.name):a.modelValue)),errors:e.readonly(l),update(e){i&&a.name?i.setFieldValue(a.name,e):n("update:modelValue",e)}};return e.provide("input",c),o(c),(r,o)=>t.as?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.as),{key:0},{default:e.withCtx((()=>[e.renderSlot(r.$slots,"default")])),_:3})):e.renderSlot(r.$slots,"default",{key:1})}});gt.__file="src/components/headless/forms/AGHeadlessInput.vue";var bt=e.defineComponent({inheritAttrs:!1,__name:"AGHeadlessInputDescription",setup(t){const r=M("input","<AGHeadlessInputDescription> must be a child of a <AGHeadlessInput>"),o=e.computed((()=>"string"==typeof r.description?r.description:"")),s=e.computed((()=>!!r.description));return(t,n)=>e.renderSlot(t.$slots,"default",{id:`${e.unref(r).id}-description`},(()=>[s.value?(e.openBlock(),e.createBlock(we,e.mergeProps({key:0},t.$attrs,{id:`${e.unref(r).id}-description`,text:o.value}),null,16,["id","text"])):e.createCommentVNode("v-if",!0)]))}});bt.__file="src/components/headless/forms/AGHeadlessInputDescription.vue";const yt=["id"];var _t=e.defineComponent({__name:"AGHeadlessInputError",setup(t){const r=M("input","<AGHeadlessInputError> must be a child of a <AGHeadlessInput>"),o=e.computed((()=>r.errors?te(`errors.${r.errors[0]}`,`Error: ${r.errors[0]}`):null));return(t,s)=>o.value?(e.openBlock(),e.createElementBlock("p",{key:0,id:`${e.unref(r).id}-error`},e.toDisplayString(o.value),9,yt)):e.createCommentVNode("v-if",!0)}});function kt(t,r){const o=e.inject("form",null),s=o?.on("focus",(e=>t.name===e&&r()));e.onUnmounted((()=>s?.()))}_t.__file="src/components/headless/forms/AGHeadlessInputError.vue";const Ct=["id","name","type","aria-invalid","aria-describedby","checked"];var wt=e.defineComponent({__name:"AGHeadlessInputInput",props:{type:R("text")},setup(t){const r=t,o=e.ref(),s=M("input","<AGHeadlessInputInput> must be a child of a <AGHeadlessInput>"),n=e.computed((()=>s.name??void 0)),a=e.computed((()=>s.value)),l=e.computed((()=>{if("checkbox"===r.type)return!!a.value}));function i(){o.value&&s.update(function(){if(!o.value)return null;switch(r.type){case"checkbox":return o.value.checked;case"date":return o.value.valueAsDate;default:return o.value.value}}())}return kt(s,(()=>o.value?.focus())),e.watchEffect((()=>{o.value&&("date"!==r.type?o.value.value=a.value:o.value.valueAsDate=a.value)})),(r,a)=>(e.openBlock(),e.createElementBlock("input",{id:e.unref(s).id,ref_key:"$input",ref:o,name:n.value,type:t.type,"aria-invalid":e.unref(s).errors?"true":"false","aria-describedby":e.unref(s).errors?`${e.unref(s).id}-error`:e.unref(s).description?`${e.unref(s).id}-description`:void 0,checked:l.value,onInput:i},null,40,Ct))}});wt.__file="src/components/headless/forms/AGHeadlessInputInput.vue";const St=["for"];var At=e.defineComponent({__name:"AGHeadlessInputLabel",setup(t){const r=M("input","<AGHeadlessInputLabel> must be a child of a <AGHeadlessInput>"),o=e.useSlots(),s=e.computed((()=>!(!r.label&&!o.default)));return(t,o)=>s.value?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(r).id},[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(r).label),1)]))],8,St)):e.createCommentVNode("v-if",!0)}});At.__file="src/components/headless/forms/AGHeadlessInputLabel.vue";const Bt={class:"absolute bottom-0 left-0 translate-y-full"};var Et=e.defineComponent({inheritAttrs:!1,__name:"AGInput",props:xt(),setup(t){const r=t,o=E(),[s,n]=me();return(t,a)=>(e.openBlock(),e.createBlock(gt,e.mergeProps({ref_key:"$input",ref:o,class:["relative flex flex-col items-center",e.unref(n)]},r),{default:e.withCtx((()=>[e.createVNode(At,{class:"sr-only"}),e.createVNode(wt,e.mergeProps(e.unref(s),{class:["block w-full border-0 py-1.5 text-gray-900 ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600",{"ring-1 ring-red-500":e.unref(o)?.errors}]}),null,16,["class"]),e.createVNode(bt),e.createElementVNode("div",Bt,[e.createVNode(_t,{class:"mt-1 text-sm text-red-500"})])])),_:1},16,["class"]))}});Et.__file="src/components/forms/AGInput.vue";const Gt={String:"string",Number:"number",Boolean:"boolean",Object:"object",Date:"date"},jt=new WeakMap;class Vt extends r.MagicObject{constructor(t){super(),c.default(this,"errors",void 0),c.default(this,"_fields",void 0),c.default(this,"_data",void 0),c.default(this,"_submitted",void 0),c.default(this,"_errors",void 0),c.default(this,"_listeners",{}),this._fields=t,this._submitted=e.ref(!1),this._data=this.getInitialData(t),this._errors=this.getInitialErrors(t),jt.set(this,e.computed((()=>!Object.values(this._errors).some((e=>null!==e))))),this.errors=e.readonly(this._errors)}get valid(){return!!jt.get(this)?.value}get submitted(){return this._submitted.value}setFieldValue(e,t){this._data[e]=t,this._submitted.value&&this.validate()}getFieldValue(e){return this._data[e]}data(){return{...this._data}}validate(){const e=Object.entries(this._fields).reduce(((e,t)=>{let[r,o]=t;return e[r]=this.getFieldErrors(r,o),e}),{});return this.resetErrors(e),this.valid}reset(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._submitted.value=!1,e.keepData||this.resetData(),e.keepErrors||this.resetErrors()}submit(){this._submitted.value=!0;const e=this.validate();return e&&this._listeners.submit?.forEach((e=>e())),e}on(e,t){return this._listeners[e]??=[],this._listeners[e]?.push(t),()=>this.off(e,t)}off(e,t){r.arrayRemove(this._listeners[e]??[],t)}async focus(t){await e.nextTick(),this._listeners.focus?.forEach((e=>e(t)))}__get(e){return e in this._fields?this._data[e]:super.__get(e)}__set(e,t){e in this._fields?Object.assign(this._data,{[e]:t}):super.__set(e,t)}getFieldErrors(e,t){const r=[];return t.rules?.includes("required")&&!this._data[e]&&r.push("required"),r.length>0?r:null}getInitialData(t){if(this.static().isConjuring())return{};const r=Object.entries(t).reduce(((e,t)=>{let[r,o]=t;return e[r]=o.default??null,e}),{});return e.reactive(r)}getInitialErrors(t){if(this.static().isConjuring())return{};const r=Object.keys(t).reduce(((e,t)=>(e[t]=null,e)),{});return e.reactive(r)}resetData(){for(const[e,t]of Object.entries(this._fields))this._data[e]=t.default??null}resetErrors(e){Object.keys(this._errors).forEach((e=>delete this._errors[e])),e&&Object.assign(this._errors,e)}}function Mt(e){return new Vt(e)}function Pt(e){return{default:e,type:Gt.String,rules:"required"}}const $t={class:"mt-2 flex flex-row-reverse gap-2"};var Nt=e.defineComponent({__name:"AGPromptModal",props:mt(),setup(t){const r=t,o=Mt({draft:Pt(r.defaultValue??"")}),{renderedAcceptText:s,renderedCancelText:n}=ft(r);return(t,r)=>(e.openBlock(),e.createBlock(Ae,{cancellable:!1,title:t.title},{default:e.withCtx((({close:r})=>[e.createVNode(we,{text:t.message},null,8,["text"]),e.createVNode(ht,{form:e.unref(o),onSubmit:t=>r(e.unref(o).draft)},{default:e.withCtx((()=>[e.createVNode(Et,{name:"draft",placeholder:t.placeholder,label:t.label},null,8,["placeholder","label"]),e.createElementVNode("div",$t,[e.createVNode($e,{color:t.acceptColor,submit:""},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(e.unref(s)),1)])),_:1},8,["color"]),e.createVNode($e,{color:t.cancelColor,onClick:e=>r()},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(e.unref(n)),1)])),_:2},1032,["color","onClick"])])])),_:2},1032,["form","onSubmit"])])),_:1},8,["title"]))}});Nt.__file="src/components/modals/AGPromptModal.vue";const Ht={class:"pointer-events-auto"};var Tt=e.defineComponent({__name:"AGHeadlessSnackbar",setup:t=>(t,r)=>(e.openBlock(),e.createElementBlock("div",Ht,[e.renderSlot(t.$slots,"default")]))});Tt.__file="src/components/headless/snackbars/AGHeadlessSnackbar.vue";const qt=r.objectWithout(oe,["Primary","Clear"]),It={id:D(),message:D(),actions:A((()=>[])),color:j(qt,oe.Secondary)};function Dt(){return It}function Rt(e){return{activate:function(t){t.handler?.(),t.dismiss&&Y.hideSnackbar(e.id)}}}var Lt=e.defineComponent({__name:"AGSnackbar",props:Dt(),setup(t){const r=t,{activate:o}=Rt(r),s=e.computed((()=>r.color===oe.Danger?"bg-red-200 text-red-900":"bg-gray-900 text-white"));return(t,r)=>(e.openBlock(),e.createBlock(Tt,{class:e.normalizeClass(["flex flex-row items-center justify-center gap-3 p-4",s.value])},{default:e.withCtx((()=>[e.createVNode(we,{text:t.message,inline:""},null,8,["text"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.actions,((r,s)=>(e.openBlock(),e.createBlock($e,{key:s,color:t.color,onClick:t=>e.unref(o)(r)},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(r.text),1)])),_:2},1032,["color","onClick"])))),128))])),_:1},8,["class"]))}});Lt.__file="src/components/snackbars/AGSnackbar.vue";const Ot={class:"grid flex-grow place-items-center"},zt={class:"flex flex-col items-center space-y-6 p-8"},Ft={class:"mt-2 text-center text-4xl font-medium text-red-600"},Ut={class:"mt-4 flex flex-col space-y-4"};var Wt=e.defineComponent({__name:"AGStartupCrash",setup:t=>(t,r)=>(e.openBlock(),e.createElementBlock("div",Ot,[e.createElementVNode("div",zt,[e.createElementVNode("h1",Ft,e.toDisplayString(t.$td("startupCrash.title","Something went wrong!")),1),e.createVNode(we,{text:t.$td("startupCrash.message","Something failed trying to start the application.\n\nHere's some things you can do:"),class:"mt-4 text-center"},null,8,["text"]),e.createElementVNode("div",Ut,[e.createVNode($e,{color:"danger",onClick:r[0]||(r[0]=e=>t.$app.reload())},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(t.$td("startupCrash.reload","Try again")),1)])),_:1}),e.createVNode($e,{color:"danger",onClick:r[1]||(r[1]=e=>t.$errors.inspect(t.$errors.startupErrors))},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(t.$td("startupCrash.inspect","View error details")),1)])),_:1})])])]))});Wt.__file="src/components/lib/AGStartupCrash.vue";const Kt={$ui:Y};var Jt={async install(e,t){const r={[Q.AlertModal]:Ge,[Q.ConfirmModal]:He,[Q.ErrorReportModal]:lt,[Q.LoadingModal]:dt,[Q.PromptModal]:Nt,[Q.Snackbar]:Lt,[Q.StartupCrash]:Wt};Object.entries({...r,...t.components}).forEach((e=>{let[t,r]=e;return Y.registerComponent(t,r)})),await W(e,Kt)}};async function Qt(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=[de,O,ie,ue,K,Jt,...t.plugins??[]];await S(r,e,t),await(t.install?.(e)),await y.emit("application-ready")}const Zt={key:0};var Yt=e.defineComponent({__name:"AGAppModals",setup(t){const r=e.computed((()=>Y.modals[0]??null));return(t,o)=>r.value?(e.openBlock(),e.createElementBlock("aside",Zt,[e.createVNode(be,{"child-index":1,modal:r.value},null,8,["modal"])])):e.createCommentVNode("v-if",!0)}});Yt.__file="src/components/AGAppModals.vue";const Xt={"aria-live":"assertive",class:"pointer-events-none fixed inset-0 z-50 flex items-end px-4 py-6 sm:p-6"},er={class:"flex w-full flex-col items-end space-y-4"};const tr={render:function(t,r){return e.openBlock(),e.createElementBlock("div",Xt,[e.createElementVNode("div",er,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.$ui.snackbars,(t=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.component),e.mergeProps({id:t.id,key:t.id},t.properties),null,16,["id"])))),128))])])},__file:"src/components/AGAppSnackbars.vue"};var rr=tr,or=e.defineComponent({__name:"AGAppOverlays",setup(t){const r=e.ref(null),o=e.ref(!0);return pe("show-overlays-backdrop",(async()=>{r.value&&o.value&&(o.value=!1,r.value.classList.remove("opacity-0"))})),pe("hide-overlays-backdrop",(async()=>{r.value&&!o.value&&(o.value=!0,r.value.classList.add("opacity-0"))})),(t,o)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{id:"aerogel-overlays-backdrop",ref_key:"$backdrop",ref:r,class:"pointer-events-none fixed inset-0 z-50 bg-black/30 opacity-0"},null,512),e.createVNode(Yt),e.createVNode(rr)],64))}});or.__file="src/components/AGAppOverlays.vue";const sr={class:"flex min-h-full flex-col text-base font-normal leading-tight text-gray-900 antialiased"};var nr=e.defineComponent({__name:"AGAppLayout",setup:t=>(t,r)=>(e.openBlock(),e.createElementBlock("div",sr,[t.$errors.hasStartupErrors?e.renderSlot(t.$slots,"startup-crash",{key:0},(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.$ui.requireComponent(e.unref(Q).StartupCrash))))])):e.renderSlot(t.$slots,"default",{key:1}),e.createVNode(or)]))});nr.__file="src/components/AGAppLayout.vue";const ar={class:"ml-2"};var lr=e.defineComponent({inheritAttrs:!1,__name:"AGCheckbox",props:{name:R()},emits:["update:modelValue"],setup(t){const r=E();return(o,s)=>(e.openBlock(),e.createBlock(gt,{ref_key:"$input",ref:r,name:t.name,class:"flex","onUpdate:modelValue":s[0]||(s[0]=e=>o.$emit("update:modelValue",e))},{default:e.withCtx((()=>[e.createVNode(wt,e.mergeProps(o.$attrs,{type:"checkbox",class:{"text-indigo-600 focus:ring-indigo-600":!e.unref(r)?.errors,"border-red-200 text-red-600 focus:ring-red-600":e.unref(r)?.errors}}),null,16,["class"]),e.createElementVNode("div",ar,[o.$slots.default?(e.openBlock(),e.createBlock(At,{key:0},{default:e.withCtx((()=>[e.renderSlot(o.$slots,"default")])),_:3})):e.createCommentVNode("v-if",!0),e.createVNode(_t,{class:"text-sm text-red-600"})])])),_:3},8,["name"]))}});lr.__file="src/components/forms/AGCheckbox.vue";const ir={viewBox:"0 0 20 20",width:"1.2em",height:"1.2em"},cr=[e.createElementVNode("path",{fill:"currentColor",d:"m9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828L5.757 6.586L4.343 8z"},null,-1)];var ur={name:"zondicons-cheveron-down",render:function(t,r){return e.openBlock(),e.createElementBlock("svg",ir,[...cr])}};const dr={name:R(),label:R(),options:H(),noSelectionText:R(),optionsText:P()},pr=["update:modelValue"];function mr(){return dr}function fr(){return[...pr]}var hr=e.defineComponent({__name:"AGHeadlessSelect",props:{modelValue:P(),...mr()},emits:fr(),setup(t,{expose:o,emit:s}){const a=s,l=t,i=e.computed((()=>"function"==typeof l.optionsText?l.optionsText:"string"==typeof l.optionsText?e=>r.toString(e[l.optionsText]):e=>r.toString(e))),c=e.inject("form",null),u=e.computed((()=>l.noSelectionText??te("select.noSelection","-"))),d=e.computed((()=>c&&l.name?c.getFieldValue(l.name):l.modelValue)),p=e.computed((()=>c&&l.name?c.errors[l.name]??null:null));function m(e){c&&l.name?c.setFieldValue(l.name,e):a("update:modelValue",e)}const f={id:`select-${r.uuid()}`,noSelectionText:u,selectedOption:d,errors:p,options:e.computed((()=>l.options)),label:e.computed((()=>l.label)),buttonText:e.computed((()=>null===d.value?u.value:i.value(d.value))),renderText:i,update:m};return e.provide("select",f),o(f),(t,r)=>(e.openBlock(),e.createBlock(e.unref(n.Listbox),{"model-value":d.value,"onUpdate:modelValue":r[0]||(r[0]=e=>m(e))},{default:e.withCtx((({value:r,open:o,disabled:s})=>[e.renderSlot(t.$slots,"default",{value:r,open:o,disabled:s})])),_:3},8,["model-value"]))}});hr.__file="src/components/headless/forms/AGHeadlessSelect.vue";var vr=e.defineComponent({__name:"AGHeadlessSelectButton",props:{textClass:R()},setup(t){const r=M("select","<AGHeadlessSelectButton> must be a child of a <AGHeadlessSelect>");return(o,s)=>(e.openBlock(),e.createBlock(e.unref(n.ListboxButton),null,{default:e.withCtx((({value:s,open:n,disabled:a})=>[e.renderSlot(o.$slots,"default",{value:s,open:n,disabled:a},(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.textClass)},e.toDisplayString(e.unref(r)?.buttonText),3)])),e.renderSlot(o.$slots,"icon")])),_:3}))}});vr.__file="src/components/headless/forms/AGHeadlessSelectButton.vue";const xr=["id"];var gr=e.defineComponent({__name:"AGHeadlessSelectError",setup(t){const r=M("select","<AGHeadlessSelectError> must be a child of a <AGHeadlessSelect>"),o=e.computed((()=>r.errors?te(`errors.${r.errors[0]}`,`Error: ${r.errors[0]}`):null));return(t,s)=>o.value?(e.openBlock(),e.createElementBlock("p",{key:0,id:`${e.unref(r).id}-error`},e.toDisplayString(o.value),9,xr)):e.createCommentVNode("v-if",!0)}});gr.__file="src/components/headless/forms/AGHeadlessSelectError.vue";var br=e.defineComponent({__name:"AGHeadlessSelectLabel",setup(t){const r=M("select","<AGHeadlessSelectLabel> must be a child of a <AGHeadlessSelect>"),o=e.useSlots(),s=e.computed((()=>!(!r.label&&!o.default)));return(t,o)=>s.value?(e.openBlock(),e.createBlock(e.unref(n.ListboxLabel),{key:0},{default:e.withCtx((({open:o,disabled:s})=>[e.renderSlot(t.$slots,"default",{open:o,disabled:s},(()=>[e.createTextVNode(e.toDisplayString(e.unref(r).label),1)]))])),_:3})):e.createCommentVNode("v-if",!0)}});br.__file="src/components/headless/forms/AGHeadlessSelectLabel.vue";var yr=e.defineComponent({__name:"AGHeadlessSelectOption",props:{value:T(),selectedClass:R(),unselectedClass:R(),activeClass:R(),inactiveClass:R()},setup(t){const r=M("select","<AGHeadlessSelectOption> must be a child of a <AGHeadlessSelect>");return(o,s)=>(e.openBlock(),e.createBlock(e.unref(n.ListboxOption),{value:t.value,as:"template"},{default:e.withCtx((({active:s,selected:n,disabled:a})=>[e.renderSlot(o.$slots,"default",{active:s,selected:n,disabled:a},(()=>[e.createElementVNode("li",{class:e.normalizeClass({[t.activeClass??"active"]:s,[t.inactiveClass??"inactive"]:!s,[t.selectedClass??"selected"]:n,[t.unselectedClass??"unselected"]:!n})},e.toDisplayString(e.unref(r).renderText(t.value)),3)]))])),_:3},8,["value"]))}});yr.__file="src/components/headless/forms/AGHeadlessSelectOption.vue";const _r={class:"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2"};var kr=e.defineComponent({__name:"AGSelect",props:mr(),emits:fr(),setup(t){const r=t,o=E();return(t,s)=>(e.openBlock(),e.createBlock(hr,e.mergeProps(r,{ref_key:"$select",ref:o,as:"div","onUpdate:modelValue":s[0]||(s[0]=e=>t.$emit("update:modelValue",e))}),{default:e.withCtx((()=>[e.createVNode(br,{class:"block text-sm font-medium leading-6 text-gray-900"}),e.createElementVNode("div",{class:e.normalizeClass(["relative",{"mt-2":e.unref(o)?.label}])},[e.createVNode(vr,{class:e.normalizeClass(["relative w-full cursor-default bg-white py-1.5 pl-3 pr-10 text-left text-gray-900 ring-1 ring-inset ring-gray-300 focus:outline-none focus:ring-2 focus:ring-indigo-600",{"ring-1 ring-red-500":e.unref(o)?.errors}]),"text-class":"block truncate"},{icon:e.withCtx((()=>[e.createElementVNode("span",_r,[e.createVNode(e.unref(ur),{class:"h-5 w-5 text-gray-400"})])])),_:1},8,["class"]),e.createVNode(e.unref(n.ListboxOptions),{class:"absolute z-10 mt-1 max-h-60 w-full overflow-auto border bg-white py-1 text-base ring-1 ring-black ring-opacity-5 focus:outline-none"},{default:e.withCtx((()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o)?.options??[],((t,r)=>(e.openBlock(),e.createBlock(yr,{key:r,value:t,class:"relative block cursor-default select-none truncate py-2 pl-3 pr-9","selected-class":"font-semibold","unselected-class":"font-normal","active-class":"bg-indigo-600 text-white","inactive-class":"text-gray-900"},null,8,["value"])))),128))])),_:1})],2),e.createVNode(gr,{class:"mt-2 text-sm text-red-600"})])),_:1},16))}});kr.__file="src/components/forms/AGSelect.vue";const Cr=["id","name","value","aria-invalid","aria-describedby"];var wr=e.defineComponent({__name:"AGHeadlessInputTextArea",setup(t){const r=e.ref(),o=M("input","<AGHeadlessInputTextArea> must be a child of a <AGHeadlessInput>"),s=e.computed((()=>o.name??void 0)),n=e.computed((()=>o.value));function a(){r.value&&o.update(r.value.value)}return kt(o,(()=>r.value?.focus())),(t,l)=>(e.openBlock(),e.createElementBlock("textarea",{id:e.unref(o).id,ref_key:"$textArea",ref:r,name:s.value,value:n.value,"aria-invalid":e.unref(o).errors?"true":"false","aria-describedby":e.unref(o).errors?`${e.unref(o).id}-error`:e.unref(o).description?`${e.unref(o).id}-description`:void 0,onInput:a},null,40,Cr))}});wr.__file="src/components/headless/forms/AGHeadlessInputTextArea.vue";var Sr=e.defineComponent({__name:"AGErrorMessage",props:{error:I()},setup(t){const r=t,o=e.computed((()=>ne(r.error)));return(t,r)=>(e.openBlock(),e.createBlock(we,{text:o.value,inline:""},null,8,["text"]))}});Sr.__file="src/components/lib/AGErrorMessage.vue";var Ar=e.defineComponent({__name:"AGLink",setup:t=>(t,r)=>(e.openBlock(),e.createBlock(Pe,{class:"font-medium hover:underline"},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default")])),_:3}))});Ar.__file="src/components/lib/AGLink.vue";var Br=e.defineComponent({__name:"AGMeasured",props:{as:R("span")},setup(t){const r=e.ref(!1);return(o,s)=>{const n=e.resolveDirective("measure");return e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.as),{class:e.normalizeClass({"!invisible !absolute !w-auto":!r.value})},{default:e.withCtx((()=>[e.renderSlot(o.$slots,"default")])),_:3},8,["class"])),[[n,()=>r.value=!0]])}}});Br.__file="src/components/lib/AGMeasured.vue";var Er=e.defineComponent({__name:"AGModalTitle",setup:t=>(t,r)=>(e.openBlock(),e.createBlock(ke,{class:"mb-2 font-semibold"},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default")])),_:3}))});Er.__file="src/components/modals/AGModalTitle.vue";Object.defineProperty(exports,"AGHeadlessSelectOptions",{enumerable:!0,get:function(){return n.ListboxOptions}}),exports.AGAlertModal=Ge,exports.AGAppLayout=nr,exports.AGAppOverlays=or,exports.AGButton=$e,exports.AGCheckbox=lr,exports.AGConfirmModal=He,exports.AGErrorMessage=Sr,exports.AGErrorReportModalButtons=rt,exports.AGErrorReportModalTitle=ot,exports.AGForm=ht,exports.AGHeadlessButton=Pe,exports.AGHeadlessInput=gt,exports.AGHeadlessInputDescription=bt,exports.AGHeadlessInputError=_t,exports.AGHeadlessInputInput=wt,exports.AGHeadlessInputLabel=At,exports.AGHeadlessInputTextArea=wr,exports.AGHeadlessModal=ge,exports.AGHeadlessModalPanel=_e,exports.AGHeadlessModalTitle=ke,exports.AGHeadlessSelect=hr,exports.AGHeadlessSelectButton=vr,exports.AGHeadlessSelectError=gr,exports.AGHeadlessSelectLabel=br,exports.AGHeadlessSelectOption=yr,exports.AGHeadlessSnackbar=Tt,exports.AGInput=Et,exports.AGLink=Ar,exports.AGLoadingModal=dt,exports.AGMarkdown=we,exports.AGMeasured=Br,exports.AGModal=Ae,exports.AGModalContext=be,exports.AGModalTitle=Er,exports.AGPromptModal=Nt,exports.AGSelect=kr,exports.AGSnackbar=Lt,exports.AGStartupCrash=Wt,exports.App=C,exports.AppService=k,exports.Cache=F,exports.CacheService=z,exports.Colors=oe,exports.Errors=se,exports.EventListenerPriorities={Low:-256,Default:0,High:256},exports.Events=y,exports.EventsService=b,exports.Form=Vt,exports.FormFieldTypes=Gt,exports.Job=class{},exports.Lang=X,exports.Service=g,exports.SnackbarColors=qt,exports.UI=Y,exports.UIComponents=Q,exports.UIService=Z,exports.alertModalProps=Be,exports.arrayProp=A,exports.booleanInput=function(e){return{default:e,type:Gt.Boolean}},exports.booleanProp=B,exports.bootServices=W,exports.bootstrap=async function(t){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=e.createApp(t);await Qt(o,r),o.mount("#app"),o._container?.classList.remove("loading"),await y.emit("application-mounted")},exports.bootstrapApplication=Qt,exports.componentRef=E,exports.computedAsync=function(t){const r=e.ref(),o=e.computed(t);return e.watch(o,(async()=>r.value=await o.value),{immediate:!0}),r},exports.confirmModalProps=je,exports.dateInput=function(e){return{default:e,type:Gt.Date}},exports.defineDirective=G,exports.definePlugin=w,exports.defineServiceState=x,exports.defineServiceStore=v,exports.dispatch=async function(e){await e.run()},exports.enumProp=j,exports.errorReportModalProps=Oe,exports.extractInputProps=function(e){return fe(e,vt)},exports.extractModalProps=function(e){return fe(e,he)},exports.extractSelectProps=function(e){return fe(e,dr)},exports.getErrorMessage=ne,exports.getPiniaStore=h,exports.injectOrFail=function(t,o){return e.inject(t)??r.fail(o??`Could not resolve '${t}' injection key`)},exports.injectReactive=V,exports.injectReactiveOrFail=M,exports.inputProps=vt,exports.installPlugins=S,exports.loadingModalProps=it,exports.mixedProp=P,exports.modalProps=he,exports.numberInput=function(e){return{default:e,type:Gt.Number}},exports.numberProp=$,exports.objectProp=N,exports.onCleanMounted=function(t){let o=r.noop;e.onMounted((()=>o=t())),e.onUnmounted((()=>o()))},exports.onFormFocus=kt,exports.promptModalProps=pt,exports.removeInteractiveClasses=function(e){return e.split(/\s+/).filter((e=>!/^(hover|focus|focus-visible):/.test(e))).join(" ").trim()},exports.requiredArrayProp=H,exports.requiredBooleanInput=function(e){return{default:e,type:Gt.Boolean,rules:"required"}},exports.requiredDateInput=function(e){return{default:e,type:Gt.Date,rules:"required"}},exports.requiredEnumProp=function(e){const t=Object.values(e);return{type:String,required:!0,validator:e=>t.includes(e)}},exports.requiredMixedProp=T,exports.requiredNumberInput=function(e){return{default:e,type:Gt.Number,rules:"required"}},exports.requiredNumberProp=q,exports.requiredObjectProp=I,exports.requiredStringInput=Pt,exports.requiredStringProp=D,exports.resetPiniaStore=f,exports.selectEmits=pr,exports.selectProps=dr,exports.snackbarProps=It,exports.stringInput=function(e){return{default:e,type:Gt.String}},exports.stringProp=R,exports.translate=ee,exports.translateWithDefault=te,exports.useAlertModalProps=Ee,exports.useConfirmModal=Me,exports.useConfirmModalProps=Ve,exports.useErrorReportModal=Fe,exports.useErrorReportModalProps=ze,exports.useEvent=pe,exports.useForm=Mt,exports.useInputAttrs=me,exports.useInputProps=xt,exports.useLoadingModal=ut,exports.useLoadingModalProps=ct,exports.useModalExpose=xe,exports.useModalProps=ve,exports.usePromptModal=ft,exports.usePromptModalProps=mt,exports.useSelectEmits=fr,exports.useSelectProps=mr,exports.useSnackbar=Rt,exports.useSnackbarProps=Dt;
|
|
2
2
|
//# sourceMappingURL=aerogel-core.cjs.js.map
|