@aerogel/core 0.0.0-next.d7394c3aa6aac799b0971e63819a8713d05a5123 → 0.0.0-next.e4c0d5bd2801fbe93545477ea515af53df69b522
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.css +1 -0
- package/dist/aerogel-core.d.ts +2038 -1801
- package/dist/aerogel-core.js +3432 -0
- package/dist/aerogel-core.js.map +1 -0
- package/package.json +31 -37
- package/src/bootstrap/bootstrap.test.ts +4 -7
- package/src/bootstrap/index.ts +25 -16
- package/src/bootstrap/options.ts +1 -1
- package/src/components/AppLayout.vue +14 -0
- package/src/components/{AGAppModals.vue → AppModals.vue} +3 -4
- package/src/components/AppOverlays.vue +9 -0
- package/src/components/AppToasts.vue +16 -0
- package/src/components/contracts/AlertModal.ts +19 -0
- package/src/components/contracts/Button.ts +16 -0
- package/src/components/contracts/ConfirmModal.ts +48 -0
- package/src/components/contracts/DropdownMenu.ts +25 -0
- package/src/components/contracts/ErrorReportModal.ts +33 -0
- package/src/components/contracts/Input.ts +26 -0
- package/src/components/contracts/LoadingModal.ts +26 -0
- package/src/components/contracts/Modal.ts +21 -0
- package/src/components/contracts/PromptModal.ts +34 -0
- package/src/components/contracts/Select.ts +45 -0
- package/src/components/contracts/Toast.ts +15 -0
- package/src/components/contracts/index.ts +11 -0
- package/src/components/headless/HeadlessButton.vue +51 -0
- package/src/components/headless/HeadlessInput.vue +59 -0
- package/src/components/headless/{forms/AGHeadlessInputDescription.vue → HeadlessInputDescription.vue} +7 -8
- package/src/components/headless/{forms/AGHeadlessInputError.vue → HeadlessInputError.vue} +4 -8
- package/src/components/headless/{forms/AGHeadlessInputInput.vue → HeadlessInputInput.vue} +16 -25
- package/src/components/headless/{forms/AGHeadlessInputLabel.vue → HeadlessInputLabel.vue} +3 -7
- package/src/components/headless/{forms/AGHeadlessInputTextArea.vue → HeadlessInputTextArea.vue} +10 -13
- package/src/components/headless/HeadlessModal.vue +57 -0
- package/src/components/headless/HeadlessModalContent.vue +30 -0
- package/src/components/headless/HeadlessModalDescription.vue +12 -0
- package/src/components/headless/HeadlessModalOverlay.vue +12 -0
- package/src/components/headless/HeadlessModalTitle.vue +12 -0
- package/src/components/headless/HeadlessSelect.vue +120 -0
- package/src/components/headless/{forms/AGHeadlessSelectError.vue → HeadlessSelectError.vue} +5 -6
- package/src/components/headless/HeadlessSelectLabel.vue +25 -0
- package/src/components/headless/HeadlessSelectOption.vue +34 -0
- package/src/components/headless/HeadlessSelectOptions.vue +42 -0
- package/src/components/headless/HeadlessSelectTrigger.vue +22 -0
- package/src/components/headless/HeadlessSelectValue.vue +18 -0
- package/src/components/headless/HeadlessToast.vue +18 -0
- package/src/components/headless/HeadlessToastAction.vue +13 -0
- package/src/components/headless/index.ts +19 -3
- package/src/components/index.ts +6 -11
- package/src/components/ui/AdvancedOptions.vue +18 -0
- package/src/components/ui/AlertModal.vue +17 -0
- package/src/components/ui/Button.vue +100 -0
- package/src/components/ui/Checkbox.vue +56 -0
- package/src/components/ui/ConfirmModal.vue +50 -0
- package/src/components/ui/DropdownMenu.vue +32 -0
- package/src/components/ui/DropdownMenuOption.vue +22 -0
- package/src/components/ui/DropdownMenuOptions.vue +44 -0
- package/src/components/ui/EditableContent.vue +82 -0
- package/src/components/ui/ErrorLogs.vue +19 -0
- package/src/components/ui/ErrorLogsModal.vue +48 -0
- package/src/components/ui/ErrorMessage.vue +15 -0
- package/src/components/ui/ErrorReportModal.vue +73 -0
- package/src/components/{modals/AGErrorReportModalButtons.vue → ui/ErrorReportModalButtons.vue} +34 -27
- package/src/components/ui/ErrorReportModalTitle.vue +24 -0
- package/src/components/{forms/AGForm.vue → ui/Form.vue} +4 -5
- package/src/components/ui/Input.vue +56 -0
- package/src/components/ui/Link.vue +12 -0
- package/src/components/ui/LoadingModal.vue +34 -0
- package/src/components/ui/Markdown.vue +97 -0
- package/src/components/ui/Modal.vue +123 -0
- package/src/components/ui/ModalContext.vue +31 -0
- package/src/components/ui/ProgressBar.vue +51 -0
- package/src/components/ui/PromptModal.vue +38 -0
- package/src/components/ui/Select.vue +27 -0
- package/src/components/ui/SelectLabel.vue +17 -0
- package/src/components/ui/SelectOption.vue +29 -0
- package/src/components/ui/SelectOptions.vue +35 -0
- package/src/components/ui/SelectTrigger.vue +29 -0
- package/src/components/ui/SettingsModal.vue +15 -0
- package/src/components/{lib/AGStartupCrash.vue → ui/StartupCrash.vue} +8 -8
- package/src/components/ui/Toast.vue +46 -0
- package/src/components/ui/index.ts +32 -0
- package/src/directives/index.ts +9 -5
- package/src/directives/measure.ts +12 -6
- package/src/errors/Errors.state.ts +1 -1
- package/src/errors/Errors.ts +29 -27
- package/src/errors/JobCancelledError.ts +3 -0
- package/src/errors/index.ts +9 -6
- package/src/errors/utils.ts +17 -1
- package/src/forms/{Form.test.ts → FormController.test.ts} +32 -8
- package/src/forms/{Form.ts → FormController.ts} +51 -40
- package/src/forms/index.ts +3 -3
- package/src/forms/utils.ts +40 -24
- package/src/forms/validation.ts +19 -0
- package/src/index.css +73 -0
- package/src/jobs/Job.ts +144 -2
- package/src/jobs/index.ts +4 -1
- package/src/jobs/listeners.ts +3 -0
- package/src/jobs/status.ts +4 -0
- package/src/lang/DefaultLangProvider.ts +7 -4
- package/src/lang/Lang.state.ts +1 -1
- package/src/lang/Lang.ts +5 -1
- package/src/lang/index.ts +12 -6
- package/src/lang/settings/Language.vue +48 -0
- package/src/lang/settings/index.ts +10 -0
- package/src/plugins/Plugin.ts +1 -1
- package/src/plugins/index.ts +10 -7
- package/src/services/App.state.ts +23 -4
- package/src/services/App.ts +16 -3
- package/src/services/Cache.ts +1 -1
- package/src/services/Events.test.ts +8 -8
- package/src/services/Events.ts +16 -12
- package/src/services/Service.ts +116 -53
- package/src/services/Storage.ts +20 -0
- package/src/services/index.ts +14 -5
- package/src/services/utils.ts +18 -0
- package/src/testing/index.ts +4 -3
- package/src/testing/setup.ts +5 -19
- package/src/ui/UI.state.ts +8 -13
- package/src/ui/UI.ts +222 -128
- package/src/ui/index.ts +27 -28
- package/src/ui/utils.ts +1 -1
- package/src/utils/classes.ts +41 -0
- package/src/utils/composition/events.ts +4 -6
- package/src/utils/composition/forms.ts +20 -4
- package/src/utils/composition/persistent.test.ts +33 -0
- package/src/utils/composition/persistent.ts +11 -0
- package/src/utils/composition/state.test.ts +47 -0
- package/src/utils/composition/state.ts +33 -0
- package/src/utils/index.ts +5 -1
- package/src/utils/markdown.test.ts +50 -0
- package/src/utils/markdown.ts +53 -6
- package/src/utils/types.ts +3 -0
- package/src/utils/vue.ts +38 -134
- package/dist/aerogel-core.cjs.js +0 -2
- package/dist/aerogel-core.cjs.js.map +0 -1
- package/dist/aerogel-core.esm.js +0 -2
- package/dist/aerogel-core.esm.js.map +0 -1
- package/histoire.config.ts +0 -7
- package/noeldemartin.config.js +0 -5
- package/postcss.config.js +0 -6
- package/src/assets/histoire.css +0 -3
- package/src/components/AGAppLayout.vue +0 -16
- package/src/components/AGAppOverlays.vue +0 -41
- package/src/components/AGAppSnackbars.vue +0 -13
- package/src/components/composition.ts +0 -23
- package/src/components/constants.ts +0 -8
- package/src/components/forms/AGButton.vue +0 -44
- package/src/components/forms/AGCheckbox.vue +0 -41
- package/src/components/forms/AGInput.vue +0 -40
- package/src/components/forms/AGSelect.story.vue +0 -46
- package/src/components/forms/AGSelect.vue +0 -60
- package/src/components/forms/index.ts +0 -5
- package/src/components/headless/forms/AGHeadlessButton.ts +0 -3
- package/src/components/headless/forms/AGHeadlessButton.vue +0 -62
- package/src/components/headless/forms/AGHeadlessInput.ts +0 -34
- package/src/components/headless/forms/AGHeadlessInput.vue +0 -70
- package/src/components/headless/forms/AGHeadlessSelect.ts +0 -42
- package/src/components/headless/forms/AGHeadlessSelect.vue +0 -77
- package/src/components/headless/forms/AGHeadlessSelectButton.vue +0 -24
- package/src/components/headless/forms/AGHeadlessSelectLabel.vue +0 -24
- package/src/components/headless/forms/AGHeadlessSelectOption.ts +0 -4
- package/src/components/headless/forms/AGHeadlessSelectOption.vue +0 -39
- package/src/components/headless/forms/AGHeadlessSelectOptions.ts +0 -3
- package/src/components/headless/forms/composition.ts +0 -10
- package/src/components/headless/forms/index.ts +0 -18
- package/src/components/headless/modals/AGHeadlessModal.ts +0 -34
- package/src/components/headless/modals/AGHeadlessModal.vue +0 -86
- package/src/components/headless/modals/AGHeadlessModalPanel.vue +0 -28
- package/src/components/headless/modals/AGHeadlessModalTitle.vue +0 -13
- package/src/components/headless/modals/index.ts +0 -4
- package/src/components/headless/snackbars/AGHeadlessSnackbar.vue +0 -10
- package/src/components/headless/snackbars/index.ts +0 -40
- package/src/components/interfaces.ts +0 -24
- package/src/components/lib/AGErrorMessage.vue +0 -16
- package/src/components/lib/AGLink.vue +0 -9
- package/src/components/lib/AGMarkdown.vue +0 -41
- package/src/components/lib/AGMeasured.vue +0 -16
- package/src/components/lib/index.ts +0 -5
- package/src/components/modals/AGAlertModal.ts +0 -15
- package/src/components/modals/AGAlertModal.vue +0 -14
- package/src/components/modals/AGConfirmModal.ts +0 -33
- package/src/components/modals/AGConfirmModal.vue +0 -26
- package/src/components/modals/AGErrorReportModal.ts +0 -46
- package/src/components/modals/AGErrorReportModal.vue +0 -54
- package/src/components/modals/AGErrorReportModalTitle.vue +0 -25
- package/src/components/modals/AGLoadingModal.ts +0 -23
- package/src/components/modals/AGLoadingModal.vue +0 -15
- package/src/components/modals/AGModal.ts +0 -10
- package/src/components/modals/AGModal.vue +0 -39
- package/src/components/modals/AGModalContext.ts +0 -8
- package/src/components/modals/AGModalContext.vue +0 -22
- package/src/components/modals/AGModalTitle.vue +0 -9
- package/src/components/modals/AGPromptModal.ts +0 -36
- package/src/components/modals/AGPromptModal.vue +0 -34
- package/src/components/modals/index.ts +0 -17
- package/src/components/snackbars/AGSnackbar.vue +0 -36
- package/src/components/snackbars/index.ts +0 -3
- package/src/components/utils.ts +0 -10
- package/src/directives/initial-focus.ts +0 -11
- package/src/forms/composition.ts +0 -6
- package/src/main.histoire.ts +0 -1
- package/src/utils/tailwindcss.test.ts +0 -26
- package/src/utils/tailwindcss.ts +0 -7
- package/tailwind.config.js +0 -4
- package/tsconfig.json +0 -11
- package/vite.config.ts +0 -17
- /package/src/{main.ts → index.ts} +0 -0
package/dist/aerogel-core.esm.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{ref as e,computed as t,watch as s,inject as r,reactive as o,markRaw as n,nextTick as a,onUnmounted as l,useAttrs as i,onMounted as c,defineComponent as u,toRef as d,openBlock as p,createBlock as m,unref as f,withCtx as h,renderSlot as v,provide as g,resolveDynamicComponent as b,normalizeProps as _,guardReactiveProps as y,createElementBlock as x,Fragment as w,createVNode as A,createCommentVNode as k,createElementVNode as S,h as G,mergeProps as C,customRef as $,normalizeClass as j,createTextVNode as M,toDisplayString as E,renderList as H,watchEffect as L,withModifiers as T,readonly as I,useSlots as R,createApp as P,resolveDirective as D,withDirectives as B}from"vue";import"core-js/modules/esnext.async-iterator.reduce.js";import"core-js/modules/esnext.iterator.constructor.js";import"core-js/modules/esnext.iterator.reduce.js";import"core-js/modules/esnext.async-iterator.map.js";import"core-js/modules/esnext.iterator.map.js";import O from"@babel/runtime/helpers/esm/defineProperty";import q from"virtual:aerogel";import{JSError as V,tap as z,MagicObject as F,PromisedValue as U,Storage as N,objectOnly as W,isEmpty as K,objectDeepClone as Q,fail as Z,facade as Y,arrayRemove as J,updateLocationQueryParameters as X,forever as ee,after as te,uuid as se,isObject as re,objectWithoutEmpty as oe,toString as ne,objectWithout as ae,noop as le,stringExcerpt as ie}from"@noeldemartin/utils";import"core-js/modules/esnext.async-iterator.for-each.js";import"core-js/modules/esnext.iterator.for-each.js";import"core-js/modules/esnext.set.add-all.js";import"core-js/modules/esnext.set.delete-all.js";import"core-js/modules/esnext.set.difference.js";import"core-js/modules/esnext.set.every.js";import"core-js/modules/esnext.set.filter.js";import"core-js/modules/esnext.set.find.js";import"core-js/modules/esnext.set.intersection.js";import"core-js/modules/esnext.set.is-disjoint-from.js";import"core-js/modules/esnext.set.is-subset-of.js";import"core-js/modules/esnext.set.is-superset-of.js";import"core-js/modules/esnext.set.join.js";import"core-js/modules/esnext.set.map.js";import"core-js/modules/esnext.set.reduce.js";import"core-js/modules/esnext.set.some.js";import"core-js/modules/esnext.set.symmetric-difference.js";import"core-js/modules/esnext.set.union.js";import{createPinia as ce,setActivePinia as ue,defineStore as de}from"pinia";import"core-js/modules/esnext.weak-map.delete-all.js";import"core-js/modules/esnext.weak-map.emplace.js";import"core-js/modules/esnext.async-iterator.filter.js";import"core-js/modules/esnext.iterator.filter.js";import"core-js/modules/esnext.string.at.js";import"core-js/modules/esnext.async-iterator.find.js";import"core-js/modules/esnext.iterator.find.js";import"core-js/modules/esnext.async-iterator.some.js";import"core-js/modules/esnext.iterator.some.js";import{Dialog as pe,DialogPanel as me,DialogTitle as fe,Listbox as he,ListboxButton as ve,ListboxLabel as ge,ListboxOption as be,ListboxOptions as _e}from"@headlessui/vue";export{ListboxOptions as AGHeadlessSelectOptions}from"@headlessui/vue";import ye from"dompurify";import{marked as xe,Renderer as we}from"marked";class ServiceBootError extends V{constructor(e,t){super(`Service '${e}' failed booting`,{cause:t})}}let Ae=null;function ke(){return Ae??Se()}function Se(){return z(ce(),(e=>{Ae=e,ue(e)}))}function Ge(){return Ae??ke()}function Ce(e,t){return ke(),de(e,t)()}function $e(e){var t;return O(t=class extends je{usesStore(){return!0}getName(){return e.name??null}getInitialState(){return"function"==typeof e.initialState?e.initialState():Object.entries(e.initialState).reduce(((e,t)=>{let[s,r]=t;try{r=structuredClone(r)}catch(e){console.warn(`Could not clone '${s}' 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[s]=r,e}),{})}getComputedStateDefinition(){return e.computed??{}}serializePersistedState(t){return e.serialize?.(t)??t}},"persist",e.persist??[]),t}class je extends F{constructor(){super(),O(this,"_name",void 0),O(this,"_booted",void 0),O(this,"_computedStateKeys",void 0),O(this,"_store",void 0);const e=this.getComputedStateDefinition();this._name=this.getName()??new.target.name,this._booted=new U,this._computedStateKeys=new Set(Object.keys(e)),this._store=this.usesStore()&&Ce(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 N.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 s="string"==typeof e?{[e]:t}:e;Object.assign(this._store.$state,s),this.onStateUpdated(s)}__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,s=W(e,t);if(K(s))return;const r=N.get(this._name);r&&N.set(this._name,{...r,...this.serializePersistedState(Q(s))})}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()&&!K(e))if(N.has(this._name)){const e=N.require(this._name);this.setState(e)}else N.set(this._name,W(this.getState(),e))}requireStore(){return this._store?this._store:Z(`Failed getting '${this._name}' store`)}}O(je,"persist",[]);const Me={Low:-256,Default:0,High:256};class Ee extends je{constructor(){super(...arguments),O(this,"listeners",{})}async boot(){Object.entries(globalThis.__aerogelEvents__??{}).forEach((e=>{let[t,s]=e;return this.on(t,s)}))}async emit(e,t){const s=this.listeners[e]??{priorities:[],handlers:{}};for(const e of s.priorities)await Promise.all(s.handlers[e]?.map((e=>e(t)))??[])}on(e,t,s){const r="function"==typeof t?{}:t,o="function"==typeof t?t:s;return this.registerListener(e,r,o),()=>this.off(e,o)}once(e,t,s){let r=null;const o="function"==typeof t?{}:t,n="function"==typeof t?t:s;return z((()=>r&&this.off(e,r)),(t=>{r=function(){return t(),n(...arguments)},this.registerListener(e,o,n)}))}off(e,t){const s=this.listeners[e];if(!s)return;const r=[...s.priorities];for(const e of r)J(s.handlers[e]??[],t),0===s.handlers[e]?.length&&(delete s.handlers[e],J(s.priorities,e));0===s.priorities.length&&delete this.listeners[e]}registerListener(e,t,s){const r=t.priority??0;e in this.listeners||(this.listeners[e]={priorities:[],handlers:{}});const o=this.listeners[e]?.priorities??Z(`priorities missing for event '${e}'`),n=this.listeners[e]?.handlers??Z(`handlers missing for event '${e}'`);o.includes(r)||(o.push(r),o.sort(((e,t)=>t-e)),n[r]=[]),n[r]?.push(s)}}var He=Y(Ee),Le=$e({name:"app",initialState:{plugins:{},environment:q.environment,version:q.version,sourceUrl:q.sourceUrl},computed:{development:e=>"development"===e.environment,testing:e=>"test"===e.environment||"testing"===e.environment,versionName(e){return this.development?"dev."+q.sourceHash.toString().substring(0,7):`v${e.version}`},versionUrl(e){return e.sourceUrl+(this.development?`/tree/${q.sourceHash}`:`/releases/tag/${this.versionName}`)}}});class Te extends Le{constructor(){super(...arguments),O(this,"name",q.name),O(this,"ready",new U),O(this,"mounted",new U)}isReady(){return this.ready.isResolved()}isMounted(){return this.mounted.isResolved()}async whenReady(e){return await this.ready.then(e)}async reload(e){e&&X(e),location.reload(),await ee()}plugin(e){return this.plugins[e]??null}async boot(){He.once("application-ready",(()=>this.ready.resolve())),He.once("application-mounted",(()=>this.mounted.resolve()))}}var Ie=Y(Te);function Re(e){return e}async function Pe(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),r=1;r<t;r++)s[r-1]=arguments[r];Ie.setState("plugins",e.reduce(((e,t)=>(t.name&&(e[t.name]=t),e)),{})),await Promise.all(e.map((e=>e.install(...s)))??[])}function De(e){return{type:Array,default:e??(()=>[])}}function Be(){return{type:Boolean,default:arguments.length>0&&void 0!==arguments[0]&&arguments[0]}}function Oe(){return e()}function qe(r){const o=e(),n=t(r);return s(n,(async()=>o.value=await n.value),{immediate:!0}),o}function Ve(e){return e}function ze(e,t){const s=Object.values(e);return{type:String,default:t??s[0]??null,validator:e=>s.includes(e)}}function Fe(e){const t=r(e);return t?o(t):void 0}function Ue(e,t){return Fe(e)??Z(t??`Could not resolve '${e}' injection key`)}function Ne(e,t){return r(e)??Z(t??`Could not resolve '${e}' injection key`)}function We(e,t){return{type:e,default:t??null}}function Ke(){return{type:Number,default:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}}function Qe(){return{type:Object,default:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}}function Ze(){return{type:Array,required:!0}}function Ye(e){const t=Object.values(e);return{type:String,required:!0,validator:e=>t.includes(e)}}function Je(e){return{type:e,required:!0}}function Xe(){return{type:Number,required:!0}}function et(){return{type:Object,required:!0}}function tt(){return{type:String,required:!0}}function st(){return{type:String,default:arguments.length>0&&void 0!==arguments[0]?arguments[0]:null}}var rt={mounted(e,t){let{value:s}=t;!1!==s&&e.focus()}};const ot=new WeakMap;const nt={"initial-focus":rt,measure:{mounted(e,t){let{value:s}=t;const r="function"==typeof s?s:null,o=()=>{const t=e.getBoundingClientRect();e.style.setProperty("--width",`${t.width}px`),e.style.setProperty("--height",`${t.height}px`),r?.({width:t.width,height:t.height})};ot.set(e,z(new ResizeObserver(o)).observe(e)),o()},unmounted(e){ot.get(e)?.unobserve(e),ot.delete(e)}}};var at={install(e,t){const s={...nt,...t.directives};for(const[t,r]of Object.entries(s))e.directive(t,r)}};class lt extends je{constructor(){super(...arguments),O(this,"cache",void 0)}async get(e){const t=await this.open();return await t.match(e)??null}async store(e,t){const s=await this.open();await s.put(e,t)}async replace(e,t){const s=await this.open();0!==(await s.keys(e)).length&&await s.put(e,t)}async open(){return this.cache=this.cache??z(new U,(e=>{caches.open("app").then((t=>e.resolve(t)))}))}}var it=Y(lt);const ct={$app:Ie,$events:He};async function ut(e,t){await Promise.all(Object.entries(t).map((async t=>{let[s,r]=t;await r.launch().catch((t=>e.config.errorHandler?.(t,null,`Failed launching ${s}.`)))}))),Object.assign(e.config.globalProperties,t),Ie.development&&Object.assign(window,t)}var dt={async install(e,t){const s={...ct,...t.services};e.use(Ge()),await ut(e,s)}};const pt=768,mt={Mobile:"mobile",Desktop:"desktop"};function ft(){return window.innerWidth>768?mt.Desktop:mt.Mobile}var ht=$e({name:"ui",initialState:{modals:[],snackbars:[],layout:ft()},computed:{mobile:e=>{let{layout:t}=e;return t===mt.Mobile},desktop:e=>{let{layout:t}=e;return t===mt.Desktop}}});const vt={AlertModal:"alert-modal",ConfirmModal:"confirm-modal",ErrorReportModal:"error-report-modal",LoadingModal:"loading-modal",PromptModal:"prompt-modal",Snackbar:"snackbar",StartupCrash:"startup-crash"};class gt extends ht{constructor(){super(...arguments),O(this,"modalCallbacks",{}),O(this,"components",{})}requireComponent(e){return this.components[e]??Z(`UI Component '${e}' is not defined!`)}alert(e,t){this.openModal(this.requireComponent(vt.AlertModal),"string"!=typeof t?{message:e}:{title:e,message:t})}async confirm(e,t,s){const r=await this.openModal(this.requireComponent(vt.ConfirmModal),"string"!=typeof t?{message:e,...t??{}}:{title:e,message:t,...s??{}});return await r.beforeClose??!1}async prompt(e,t,s){const r=s?.trim??!0,o=await this.openModal(this.requireComponent(vt.PromptModal),"string"!=typeof t?{message:e,...t??{}}:{title:e,message:t,...s??{}}),n=await o.beforeClose;return(r&&"string"==typeof n?n?.trim():n)??null}async loading(e,t){const s=await this.openModal(this.requireComponent(vt.LoadingModal),"string"!=typeof e?{}:{message:e});try{t="function"==typeof(t="string"==typeof e?t:e)?Promise.resolve(t()):t;const[s]=await Promise.all([t,te({seconds:1})]);return s}finally{await this.closeModal(s.id)}}showSnackbar(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s={id:se(),properties:{message:e,...t},component:n(t.component??this.requireComponent(vt.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(e,t){const s=se(),r={},o={id:s,properties:t??{},component:n(e),beforeClose:new Promise((e=>r.willClose=e)),afterClose:new Promise((e=>r.closed=e))},l=this.modals.at(-1),i=this.modals.concat(o);return this.modalCallbacks[o.id]=r,this.setState({modals:i}),await a(),await(l&&He.emit("hide-modal",{id:l.id})),await Promise.all([l||He.emit("show-overlays-backdrop"),He.emit("show-modal",{id:o.id})]),o}async closeModal(e,t){await He.emit("close-modal",{id:e,result:t})}async boot(){this.watchModalEvents(),this.watchMountedEvent(),this.watchWindowMedia()}watchModalEvents(){He.on("modal-will-close",(e=>{let{modal:t,result:s}=e;this.modalCallbacks[t.id]?.willClose?.(s),1===this.modals.length&&He.emit("hide-overlays-backdrop")})),He.on("modal-closed",(async e=>{let{modal:t,result:s}=e;this.setState("modals",this.modals.filter((e=>e.id!==t.id))),this.modalCallbacks[t.id]?.closed?.(s),delete this.modalCallbacks[t.id];const r=this.modals.at(-1);await(r&&He.emit("show-modal",{id:r.id}))}))}watchMountedEvent(){He.once("application-mounted",(async()=>{const e=document.getElementById("splash");e&&("0"!==window.getComputedStyle(e).opacity&&(e.style.opacity="0",await te({ms:600})),e.remove())}))}watchWindowMedia(){window.matchMedia("(min-width: 768px)").addEventListener("change",(()=>this.setState({layout:ft()})))}}var bt=Y(gt);class _t{constructor(e,t){O(this,"locale",void 0),O(this,"fallbackLocale",void 0),this.locale=e,this.fallbackLocale=t}getLocale(){return this.locale}async setLocale(e){this.locale=e}getFallbackLocale(){return this.fallbackLocale}async setFallbackLocale(e){this.fallbackLocale=e}getLocales(){return["en"]}translate(e){return Ie.development&&console.warn("Lang provider is missing"),e}translateWithDefault(e,t){return Ie.development&&console.warn("Lang provider is missing"),t}}var yt=$e({name:"lang",persist:["locale","fallbackLocale"],initialState:{locale:null,locales:["en"],fallbackLocale:"en"}});var xt=Y(class extends yt{constructor(){super(),O(this,"provider",void 0),this.provider=new _t(this.getState("locale")??this.getBrowserLocale(),this.getState("fallbackLocale"))}async setProvider(e){this.provider=e,this.locales=e.getLocales(),await e.setLocale(this.locale??this.getBrowserLocale()),await e.setFallbackLocale(this.fallbackLocale)}translate(e,t){return this.provider.translate(e,t)??e}translateWithDefault(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.provider.translateWithDefault(e,t,s)}getBrowserLocale(){const e=this.getState("locales");return navigator.languages.find((t=>e.includes(t)))??"en"}async boot(){this.requireStore().$subscribe((async()=>{await this.provider.setLocale(this.locale??this.getBrowserLocale()),await this.provider.setFallbackLocale(this.fallbackLocale),this.locale?document.querySelector("html")?.setAttribute("lang",this.locale):document.querySelector("html")?.removeAttribute("lang")}),{immediate:!0})}});const wt=xt.translate.bind(xt),At=xt.translateWithDefault.bind(xt);var kt=$e({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 St={Primary:"primary",Secondary:"secondary",Danger:"danger",Clear:"clear"};var Gt=Y(class extends kt{constructor(){super(...arguments),O(this,"forceReporting",!1),O(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?bt.openModal(bt.requireComponent(vt.ErrorReportModal),{reports:t}):bt.alert(At("errors.inspectEmpty","Nothing to inspect!"))}async report(e,t){if(await He.emit("error",{error:e,message:t}),Ie.testing)throw e;if(Ie.development&&this.logError(e),!this.enabled)throw e;if(!Ie.isMounted()){const t=await this.createStartupErrorReport(e);return void(t&&this.setState({startupErrors:this.startupErrors.concat(t)}))}const s=await this.createErrorReport(e),r={report:s,seen:!1,date:new Date};bt.showSnackbar(t??At("errors.notice","Something went wrong, but it's not your fault. Try again!"),{color:St.Danger,actions:[{text:At("errors.viewDetails","View details"),dismiss:!0,handler:()=>bt.openModal(bt.requireComponent(vt.ErrorReportModal),{reports:[s]})}]}),this.setState({logs:[r].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),re(e)&&e.cause&&this.logError(e.cause)}async createErrorReport(e){return"string"==typeof e?{title:e}:e instanceof Error||e instanceof V?this.createErrorReportFromError(e):re(e)?oe({title:ne(e.name??e.title??At("errors.unknown","Unknown Error")),description:ne(e.message??e.description??At("errors.unknownDescription","Unknown error object")),error:e}):{title:At("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 Ct(e){return"string"==typeof e?e:e instanceof Error||e instanceof V?e.message:re(e)?ne(e.message??e.description??"Unknown error object"):At("errors.unknown","Unknown Error")}const $t={$errors:Gt};function jt(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:()=>!1;const s=e=>t(e)||(e=>(Gt.report(e),!0))(e);e.config.errorHandler=s,globalThis.onerror=(e,t,r,o,n)=>s(n??e),globalThis.onunhandledrejection=e=>s(e.reason)}var Mt={async install(e,t){jt(e,t.handleError),await ut(e,$t)}};const Et={$lang:xt};var Ht={async install(e){e.config.globalProperties.$t??=wt,e.config.globalProperties.$td=At,await ut(e,Et)}},Lt={async install(){"testing"===import.meta.env.MODE&&(globalThis.testingRuntime={on:function(){return He.on(...arguments)}})}};function Tt(e,t){const s=He.on(e,t);l((()=>s()))}function It(){const e=i(),s=t((()=>e.class));return[t((()=>ae(e,"class"))),s]}function Rt(e){let t=le;c((()=>t=e())),l((()=>t()))}function Pt(e){return e.split(/\s+/).filter((e=>!/^(hover|focus|focus-visible):/.test(e))).join(" ").trim()}function Dt(e,t){return Object.keys(t).reduce(((t,s)=>(t[s]=e[s],t)),{})}const Bt={cancellable:Be(!0),title:st()};function Ot(){return Bt}function qt(e){return Dt(e,Bt)}function Vt(e){return{close:async()=>e.value?.close(),cancellable:t((()=>!!e.value?.cancellable))}}var zt=u({__name:"AGHeadlessModal",props:Ot(),setup(t,{expose:s}){const r=t,o=e(null),n=e(!0),a=e(!1),{modal:l}=Ue("modal","could not obtain modal reference from <AGHeadlessModal>, did you render this component manually? Show it using $ui.openModal() instead");async function i(){o.value?.$el&&(n.value=!0)}async function c(e){a.value||(He.emit("modal-will-close",{modal:l,result:e}),await i(),a.value=!0,He.emit("modal-closed",{modal:l,result:e}))}return Tt("close-modal",(async({id:e,result:t})=>{e===l.id&&await c(t)})),Tt("hide-modal",(async({id:e})=>{e===l.id&&await i()})),Tt("show-modal",(async({id:e})=>{e===l.id&&await async function(){o.value?.$el&&(n.value=!1)}()})),s({close:c,cancellable:d(r,"cancellable")}),(e,t)=>(p(),m(f(pe),{ref_key:"$root",ref:o,open:!0,onClose:t[0]||(t[0]=t=>e.cancellable&&c())},{default:h((()=>[v(e.$slots,"default",{close:c})])),_:3},512))}});zt.__file="src/components/headless/modals/AGHeadlessModal.vue";var Ft=u({__name:"AGModalContext",props:{modal:et(),childIndex:Xe()},setup(e){const t=e;return g("modal",{modal:d(t,"modal"),childIndex:d(t,"childIndex")}),(t,s)=>(p(),m(b(e.modal.component),_(y(e.modal.properties)),null,16))}});Ft.__file="src/components/modals/AGModalContext.vue";const Ut=S("div",{class:"pointer-events-none fixed inset-0 z-50 bg-black/30"},null,-1);var Nt=u({__name:"AGHeadlessModalPanel",setup(e){const s=Ue("modal","could not obtain modal reference from <AGHeadlessModalPanel>, did you render this component manually? Show it using $ui.openModal() instead"),r=t((()=>bt.modals[s.childIndex]??null));return(e,t)=>(p(),m(f(me),null,{default:h((()=>[v(e.$slots,"default"),r.value?(p(),x(w,{key:0},[Ut,A(Ft,{"child-index":f(s).childIndex+1,modal:r.value},null,8,["child-index","modal"])],64)):k("v-if",!0)])),_:3}))}});Nt.__file="src/components/headless/modals/AGHeadlessModalPanel.vue";var Wt=u({__name:"AGHeadlessModalTitle",props:{as:st("h2")},setup:e=>(t,s)=>(p(),m(f(fe),{as:e.as},{default:h((()=>[v(t.$slots,"default")])),_:3},8,["as"]))});function Kt(e){return t=xe(e,{mangle:!1,headerIds:!1,renderer:z(new we,(e=>{e.link=function(e,t,s){return we.prototype.link.apply(this,[e,t,s]).replace("<a",'<a target="_blank"')}}))}),ye.sanitize(t,{ADD_ATTR:["target"]});var t}Wt.__file="src/components/headless/modals/AGHeadlessModalTitle.vue";var Qt=u({__name:"AGMarkdown",props:{as:st(),inline:Be(),langKey:st(),langParams:We(),text:st()},setup(e){const s=e,r=i(),o=t((()=>s.text??(s.langKey&&wt(s.langKey,s.langParams??{})))),n=t((()=>{if(!o.value)return null;let e=Kt(o.value);return s.inline&&(e=e.replace("<p>","<span>").replace("</p>","</span>")),e})),a=()=>G(s.as??(s.inline?"span":"div"),{innerHTML:n.value,...r,class:`${r.class??""} ${s.inline?"":"prose"}`});return(e,t)=>(p(),m(a))}});Qt.__file="src/components/lib/AGMarkdown.vue";const Zt={class:"fixed inset-0 flex items-center justify-center p-8"};var Yt=u({inheritAttrs:!1,__name:"AGModal",props:Ot(),setup(t,{expose:s}){const r=t,o=e();return s(Vt(o)),(e,t)=>(p(),m(zt,C({ref_key:"$modal",ref:o},r,{class:"relative z-50"}),{default:h((({close:t})=>[S("div",Zt,[A(Nt,{class:"flex max-h-full max-w-full flex-col overflow-hidden bg-white p-4"},{default:h((()=>[e.title?(p(),m(Wt,{key:0,class:"mb-2 text-lg font-semibold"},{default:h((()=>[A(Qt,{text:e.title,inline:""},null,8,["text"])])),_:1})):k("v-if",!0),S("div",C({class:"flex max-h-full flex-col overflow-auto"},e.$attrs),[v(e.$slots,"default",{close:t})],16)])),_:2},1024)])])),_:3},16))}});Yt.__file="src/components/modals/AGModal.vue";const Jt={title:st(),message:tt()};function Xt(){return Jt}var es=u({__name:"AGAlertModal",props:Xt(),setup:e=>(e,t)=>(p(),m(Yt,{title:e.title},{default:h((()=>[A(Qt,{text:e.message},null,8,["text"])])),_:1},8,["title"]))});es.__file="src/components/modals/AGAlertModal.vue";const ts={title:st(),message:tt(),acceptText:st(),acceptColor:ze(St,St.Primary),cancelText:st(),cancelColor:ze(St,St.Clear)};function ss(){return ts}function rs(e){return{renderedAcceptText:t((()=>e.acceptText??At("ui.accept","Ok"))),renderedCancelText:t((()=>e.cancelText??At("ui.cancel","Cancel")))}}function os(e){return e instanceof HTMLElement?e:ns(e)?e.$el:void 0}function ns(e){return re(e)&&"$el"in e}function as(){return $(((e,t)=>{let s;return{get:()=>(e(),s),set(e){s=os(e),t()}}}))}var ls=u({__name:"AGHeadlessButton",props:{as:Qe(),href:st(),url:st(),route:st(),routeParams:Qe((()=>({}))),routeQuery:Qe((()=>({}))),submit:Be()},setup(e,{expose:s}){const r=e,o=as(),n=t((()=>r.as?{as:r.as,props:{}}:r.route?{as:"router-link",props:{to:oe({name:r.route,params:r.routeParams,query:r.routeQuery})}}:r.href||r.url?{as:"a",props:{target:"_blank",href:r.href||r.url}}:{as:"button",props:{type:r.submit?"submit":"button"}}));return s({$el:o}),(e,t)=>(p(),m(b(n.value.as),C({ref_key:"$root",ref:o},n.value.props),{default:h((()=>[v(e.$slots,"default")])),_:3},16))}});ls.__file="src/components/headless/forms/AGHeadlessButton.vue";var is=u({__name:"AGButton",props:{color:ze(St,St.Primary)},setup(e){const s=e,r=t((()=>{switch(s.color){case St.Secondary:return["text-white bg-gray-600","hover:bg-gray-500","focus-visible:outline-offset-2 focus-visible:outline-gray-600"].join(" ");case St.Clear:return"hover:bg-gray-500/20 focus-visible:outline-gray-500/60";case St.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(e,t)=>(p(),m(ls,{class:j(["px-2.5 py-1.5 focus-visible:outline focus-visible:outline-2",r.value])},{default:h((()=>[v(e.$slots,"default")])),_:3},8,["class"]))}});is.__file="src/components/forms/AGButton.vue";const cs={class:"mt-2 flex flex-row-reverse gap-2"};var us=u({__name:"AGConfirmModal",props:ss(),setup(e){const t=e,{renderedAcceptText:s,renderedCancelText:r}=rs(t);return(e,t)=>(p(),m(Yt,{cancellable:!1,title:e.title},{default:h((({close:t})=>[A(Qt,{text:e.message},null,8,["text"]),S("div",cs,[A(is,{color:e.acceptColor,onClick:e=>t(!0)},{default:h((()=>[M(E(f(s)),1)])),_:2},1032,["color","onClick"]),A(is,{color:e.cancelColor,onClick:e=>t()},{default:h((()=>[M(E(f(r)),1)])),_:2},1032,["color","onClick"])])])),_:1},8,["title"]))}});us.__file="src/components/modals/AGConfirmModal.vue";const ds={viewBox:"0 0 20 20",width:"1.2em",height:"1.2em"},ps=[S("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 ms={name:"zondicons-cheveron-right",render:function(e,t){return p(),x("svg",ds,[...ps])}};const fs={viewBox:"0 0 20 20",width:"1.2em",height:"1.2em"},hs=[S("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 vs={name:"zondicons-cheveron-left",render:function(e,t){return p(),x("svg",fs,[...hs])}};const gs={reports:Ze()};function bs(){return gs}function _s(s){const r=e(0),o=t((()=>s.reports[r.value])),n=t((()=>o.value.details?.trim()||At("errors.detailsEmpty","This error is missing a stacktrace."))),a=At("errors.previousReport","Show previous report"),l=At("errors.nextReport","Show next report");return{activeReportIndex:r,details:n,nextReportText:l,previousReportText:a,report:o}}const ys={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"},xs=[S("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 ws={name:"mdi-console",render:function(e,t){return p(),x("svg",ys,[...xs])}};const As={viewBox:"0 0 20 20",width:"1.2em",height:"1.2em"},ks=[S("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 Ss={name:"zondicons-copy",render:function(e,t){return p(),x("svg",As,[...ks])}};const Gs={viewBox:"0 0 24 24",width:"1.2em",height:"1.2em"},Cs=[S("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 $s={name:"mdi-github",render:function(e,t){return p(),x("svg",Gs,[...Cs])}};const js={class:"flex"};var Ms=u({__name:"AGErrorReportModalButtons",props:{report:et()},setup(e){const s=e,r=t((()=>s.report.description?`${s.report.title}: ${s.report.description}`:s.report.title)),o=t((()=>{if(!Ie.sourceUrl)return!1;const e=encodeURIComponent(r.value),t=encodeURIComponent(["[Please, explain here what you were trying to do when this error appeared]","","Error details:","```",ie(s.report.details??"Details missing from report",1800-e.length-Ie.sourceUrl.length).trim(),"```"].join("\n"));return`${Ie.sourceUrl}/issues/new?title=${e}&body=${t}`})),n=t((()=>z([{id:"clipboard",description:"Copy to clipboard",iconComponent:Ss,async handler(){await navigator.clipboard.writeText(`${r.value}\n\n${s.report.details}`),bt.showSnackbar(At("errors.copiedToClipboard","Debug information copied to clipboard"))}},{id:"console",description:"Log to console",iconComponent:ws,handler(){const e=s.report.error??s.report;window.error=e,console.error(e),bt.showSnackbar(At("errors.addedToConsole","You can now use the **error** variable in the console"))}}],(e=>{o.value&&e.push({id:"github",description:"Report in GitHub",iconComponent:$s,url:o.value})}))));return(e,t)=>(p(),x("div",js,[(p(!0),x(w,null,H(n.value,((t,s)=>v(e.$slots,"default",C(t,{key:s}),(()=>[A(is,{color:"clear",url:t.url,title:e.$td(`errors.report_${t.id}`,t.description),"aria-label":e.$td(`errors.report_${t.id}`,t.description),onClick:t.handler},{default:h((()=>[(p(),m(b(t.iconComponent),{class:"h-4 w-4","aria-hidden":"true"}))])),_:2},1032,["url","title","aria-label","onClick"])])))),128))]))}});Ms.__file="src/components/modals/AGErrorReportModalButtons.vue";var Es=u({__name:"AGErrorReportModalTitle",props:{report:et(),currentReport:Ke(),totalReports:Ke()},setup(e){const s=e,r=t((()=>!s.totalReports||s.totalReports<=1?s.report.title:`${s.report.title} (${s.currentReport}/${s.totalReports})`));return(e,t)=>(p(),m(Qt,{text:r.value,inline:""},null,8,["text"]))}});Es.__file="src/components/modals/AGErrorReportModalTitle.vue";const Hs={class:"flex items-center justify-between text-lg font-medium"},Ls={class:"flex items-center"},Ts=["textContent"];var Is=u({__name:"AGErrorReportModal",props:bs(),setup(e){const t=e,{activeReportIndex:s,details:r,nextReportText:o,previousReportText:n,report:a}=_s(t);return(e,t)=>(p(),m(Yt,null,{default:h((()=>[S("div",null,[S("h2",Hs,[S("div",Ls,[A(Es,{report:f(a),"current-report":f(s)+1,"total-reports":e.reports.length},null,8,["report","current-report","total-reports"]),e.reports.length>1?(p(),x(w,{key:0},[A(is,{color:"clear",disabled:0===f(s),title:f(n),"aria-label":f(n),onClick:t[0]||(t[0]=e=>s.value--)},{default:h((()=>[A(f(vs),{"aria-hidden":"true",class:"h-4 w-4"})])),_:1},8,["disabled","title","aria-label"]),A(is,{color:"clear",disabled:f(s)===e.reports.length-1,title:f(o),"aria-label":f(o),onClick:t[1]||(t[1]=e=>s.value++)},{default:h((()=>[A(f(ms),{"aria-hidden":"true",class:"h-4 w-4"})])),_:1},8,["disabled","title","aria-label"])],64)):k("v-if",!0)]),A(Ms,{report:f(a)},null,8,["report"])]),f(a).description?(p(),m(Qt,{key:0,text:f(a).description,class:"mt-2"},null,8,["text"])):k("v-if",!0)]),S("pre",{class:"h-full overflow-auto bg-gray-200 p-4 text-xs text-red-900",textContent:E(f(r))},null,8,Ts)])),_:1}))}});Is.__file="src/components/modals/AGErrorReportModal.vue";const Rs={message:st()};function Ps(){return Rs}function Ds(e){return{renderedMessage:t((()=>e.message??At("ui.loading","Loading...")))}}var Bs=u({__name:"AGLoadingModal",props:Ps(),setup(e){const t=e,{renderedMessage:s}=Ds(t);return(e,t)=>(p(),m(Yt,{cancellable:!1},{default:h((()=>[A(Qt,{text:f(s)},null,8,["text"])])),_:1}))}});Bs.__file="src/components/modals/AGLoadingModal.vue";const Os={title:st(),message:tt(),label:st(),defaultValue:st(),placeholder:st(),acceptText:st(),acceptColor:ze(St,St.Primary),cancelText:st(),cancelColor:ze(St,St.Clear)};function qs(){return Os}function Vs(e){return{renderedAcceptText:t((()=>e.acceptText??At("ui.accept","Ok"))),renderedCancelText:t((()=>e.cancelText??At("ui.cancel","Cancel")))}}var zs=u({__name:"AGForm",props:{form:Qe()},emits:["submit"],setup(e,{emit:t}){let s;const r=e,o=t;return L((e=>{s?.(),s=r.form?.on("submit",(()=>o("submit"))),e((()=>s?.()))})),g("form",r.form),(t,s)=>(p(),x("form",{onSubmit:s[0]||(s[0]=T((t=>e.form?.submit()),["prevent"]))},[v(t.$slots,"default")],32))}});zs.__file="src/components/forms/AGForm.vue";const Fs={name:st(),label:st(),description:st(),modelValue:We([String,Number,Boolean])};function Us(){return Fs}function Ns(e){return Dt(e,Fs)}var Ws=u({__name:"AGHeadlessInput",props:{as:st("div"),...Us()},emits:["update:modelValue"],setup(s,{expose:o,emit:n}){const a=n,l=s,i=e(),c=t((()=>u&&l.name?u.errors[l.name]??null:null)),u=r("form",null),d={$el:i,id:`input-${se()}`,name:t((()=>l.name)),label:t((()=>l.label)),description:t((()=>l.description)),value:t((()=>u&&l.name?u.getFieldValue(l.name):l.modelValue)),errors:I(c),required:t((()=>l.name&&u?u.getFieldRules(l.name).includes("required"):null)),update(e){u&&l.name?u.setFieldValue(l.name,e):a("update:modelValue",e)},__setElement(e){i.value=e}};return g("input",d),o(d),(e,t)=>s.as?(p(),m(b(s.as),{key:0},{default:h((()=>[v(e.$slots,"default")])),_:3})):v(e.$slots,"default",{key:1})}});Ws.__file="src/components/headless/forms/AGHeadlessInput.vue";var Ks=u({inheritAttrs:!1,__name:"AGHeadlessInputDescription",setup(e){const s=Ue("input","<AGHeadlessInputDescription> must be a child of a <AGHeadlessInput>"),r=t((()=>"string"==typeof s.description?s.description:"")),o=t((()=>!!s.description));return(e,t)=>v(e.$slots,"default",{id:`${f(s).id}-description`},(()=>[o.value?(p(),m(Qt,C({key:0},e.$attrs,{id:`${f(s).id}-description`,text:r.value}),null,16,["id","text"])):k("v-if",!0)]))}});Ks.__file="src/components/headless/forms/AGHeadlessInputDescription.vue";const Qs=["id"];var Zs=u({__name:"AGHeadlessInputError",setup(e){const s=Ue("input","<AGHeadlessInputError> must be a child of a <AGHeadlessInput>"),r=t((()=>s.errors?At(`errors.${s.errors[0]}`,`Error: ${s.errors[0]}`):null));return(e,t)=>r.value?(p(),x("p",{key:0,id:`${f(s).id}-error`},E(r.value),9,Qs)):k("v-if",!0)}});function Ys(e,t){const s=r("form",null),o=s?.on("focus",(s=>e.name===s&&t()));l((()=>o?.()))}Zs.__file="src/components/headless/forms/AGHeadlessInputError.vue";const Js=["id","name","type","required","aria-invalid","aria-describedby","checked"];var Xs=u({__name:"AGHeadlessInputInput",props:{type:st("text")},setup(s){const r=s,o=e(),n=Ue("input","<AGHeadlessInputInput> must be a child of a <AGHeadlessInput>"),a=t((()=>n.name??void 0)),l=t((()=>n.value)),i=t((()=>{if("checkbox"===r.type)return!!l.value}));function c(){o.value&&n.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 Ys(n,(()=>o.value?.focus())),L((()=>n.__setElement(o.value))),L((()=>{o.value&&("date"!==r.type?o.value.value=l.value:o.value.valueAsDate=l.value)})),(e,t)=>(p(),x("input",{id:f(n).id,ref_key:"$input",ref:o,name:a.value,type:s.type,required:f(n).required??void 0,"aria-invalid":f(n).errors?"true":"false","aria-describedby":f(n).errors?`${f(n).id}-error`:f(n).description?`${f(n).id}-description`:void 0,checked:i.value,onInput:c},null,40,Js))}});Xs.__file="src/components/headless/forms/AGHeadlessInputInput.vue";const er=["for"];var tr=u({__name:"AGHeadlessInputLabel",setup(e){const s=Ue("input","<AGHeadlessInputLabel> must be a child of a <AGHeadlessInput>"),r=R(),o=t((()=>!(!s.label&&!r.default)));return(e,t)=>o.value?(p(),x("label",{key:0,for:f(s).id},[v(e.$slots,"default",{},(()=>[M(E(f(s).label),1)]))],8,er)):k("v-if",!0)}});tr.__file="src/components/headless/forms/AGHeadlessInputLabel.vue";const sr={class:"absolute bottom-0 left-0 translate-y-full"};var rr=u({inheritAttrs:!1,__name:"AGInput",props:Us(),setup(e){const t=e,s=Oe(),[r,o]=It();return(e,n)=>(p(),m(Ws,C({ref_key:"$input",ref:s,class:["relative flex flex-col items-center",f(o)]},t),{default:h((()=>[A(tr,{class:"sr-only"}),A(Xs,C(f(r),{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":f(s)?.errors}]}),null,16,["class"]),A(Ks),S("div",sr,[A(Zs,{class:"mt-1 text-sm text-red-500"})])])),_:1},16,["class"]))}});rr.__file="src/components/forms/AGInput.vue";const or={String:"string",Number:"number",Boolean:"boolean",Object:"object",Date:"date"},nr=new WeakMap;class ar extends F{constructor(s){super(),O(this,"errors",void 0),O(this,"_fields",void 0),O(this,"_data",void 0),O(this,"_submitted",void 0),O(this,"_errors",void 0),O(this,"_listeners",{}),this._fields=s,this._submitted=e(!1),this._data=this.getInitialData(s),this._errors=this.getInitialErrors(s),nr.set(this,t((()=>!Object.values(this._errors).some((e=>null!==e))))),this.errors=I(this._errors)}get valid(){return!!nr.get(this)?.value}get submitted(){return this._submitted.value}setFieldValue(e,t){const s=this._fields[e]??Z(`Trying to set undefined '${ne(e)}' field`);this._data[e]=s.type===or.String&&(s.trim??1)?ne(t).trim():t,this._submitted.value&&this.validate()}getFieldValue(e){return this._data[e]}getFieldRules(e){return this._fields[e]?.rules?.split("|")??[]}data(){return{...this._data}}validate(){const e=Object.entries(this._fields).reduce(((e,t)=>{let[s,r]=t;return e[s]=this.getFieldErrors(s,r),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){J(this._listeners[e]??[],t)}async focus(e){await a(),this._listeners.focus?.forEach((t=>t(e)))}__get(e){return e in this._fields?this.getFieldValue(e):super.__get(e)}__set(e,t){e in this._fields?this.setFieldValue(e,t):super.__set(e,t)}getFieldErrors(e,t){const s=[];return t.rules?.includes("required")&&!this._data[e]&&s.push("required"),s.length>0?s:null}getInitialData(e){if(this.static().isConjuring())return{};const t=Object.entries(e).reduce(((e,t)=>{let[s,r]=t;return e[s]=r.default??null,e}),{});return o(t)}getInitialErrors(e){if(this.static().isConjuring())return{};const t=Object.keys(e).reduce(((e,t)=>(e[t]=null,e)),{});return o(t)}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 lr(e){return new ar(e)}function ir(e){return{default:e,type:or.Boolean}}function cr(e){return{default:e,type:or.Date}}function ur(e){return{default:e,type:or.Boolean,rules:"required"}}function dr(e){return{default:e,type:or.Date,rules:"required"}}function pr(e){return{default:e,type:or.Number,rules:"required"}}function mr(e){return{default:e,type:or.String,rules:"required"}}function fr(e){return{default:e,type:or.Number}}function hr(e){return{default:e,type:or.String}}const vr={class:"mt-2 flex flex-row-reverse gap-2"};var gr=u({__name:"AGPromptModal",props:qs(),setup(e){const t=e,s=lr({draft:mr(t.defaultValue??"")}),{renderedAcceptText:r,renderedCancelText:o}=Vs(t);return(e,t)=>(p(),m(Yt,{cancellable:!1,title:e.title},{default:h((({close:t})=>[A(Qt,{text:e.message},null,8,["text"]),A(zs,{form:f(s),onSubmit:e=>t(f(s).draft)},{default:h((()=>[A(rr,{name:"draft",placeholder:e.placeholder,label:e.label},null,8,["placeholder","label"]),S("div",vr,[A(is,{color:e.acceptColor,submit:""},{default:h((()=>[M(E(f(r)),1)])),_:1},8,["color"]),A(is,{color:e.cancelColor,onClick:e=>t()},{default:h((()=>[M(E(f(o)),1)])),_:2},1032,["color","onClick"])])])),_:2},1032,["form","onSubmit"])])),_:1},8,["title"]))}});gr.__file="src/components/modals/AGPromptModal.vue";const br={class:"pointer-events-auto"};var _r=u({__name:"AGHeadlessSnackbar",setup:e=>(e,t)=>(p(),x("div",br,[v(e.$slots,"default")]))});_r.__file="src/components/headless/snackbars/AGHeadlessSnackbar.vue";const yr=ae(St,["Primary","Clear"]),xr={id:tt(),message:tt(),actions:De((()=>[])),color:ze(yr,St.Secondary)};function wr(){return xr}function Ar(e){return{activate:function(t){t.handler?.(),t.dismiss&&bt.hideSnackbar(e.id)}}}var kr=u({__name:"AGSnackbar",props:wr(),setup(e){const s=e,{activate:r}=Ar(s),o=t((()=>s.color===St.Danger?"bg-red-200 text-red-900":"bg-gray-900 text-white"));return(e,t)=>(p(),m(_r,{class:j(["flex flex-row items-center justify-center gap-3 p-4",o.value])},{default:h((()=>[A(Qt,{text:e.message,inline:""},null,8,["text"]),(p(!0),x(w,null,H(e.actions,((t,s)=>(p(),m(is,{key:s,color:e.color,onClick:e=>f(r)(t)},{default:h((()=>[M(E(t.text),1)])),_:2},1032,["color","onClick"])))),128))])),_:1},8,["class"]))}});kr.__file="src/components/snackbars/AGSnackbar.vue";const Sr={class:"grid flex-grow place-items-center"},Gr={class:"flex flex-col items-center space-y-6 p-8"},Cr={class:"mt-2 text-center text-4xl font-medium text-red-600"},$r={class:"mt-4 flex flex-col space-y-4"};var jr=u({__name:"AGStartupCrash",setup:e=>(e,t)=>(p(),x("div",Sr,[S("div",Gr,[S("h1",Cr,E(e.$td("startupCrash.title","Something went wrong!")),1),A(Qt,{text:e.$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"]),S("div",$r,[A(is,{color:"danger",onClick:t[0]||(t[0]=t=>e.$app.reload())},{default:h((()=>[M(E(e.$td("startupCrash.reload","Try again")),1)])),_:1}),A(is,{color:"danger",onClick:t[1]||(t[1]=t=>e.$errors.inspect(e.$errors.startupErrors))},{default:h((()=>[M(E(e.$td("startupCrash.inspect","View error details")),1)])),_:1})])])]))});jr.__file="src/components/lib/AGStartupCrash.vue";const Mr={$ui:bt};var Er={async install(e,t){const s={[vt.AlertModal]:es,[vt.ConfirmModal]:us,[vt.ErrorReportModal]:Is,[vt.LoadingModal]:Bs,[vt.PromptModal]:gr,[vt.Snackbar]:kr,[vt.StartupCrash]:jr};Object.entries({...s,...t.components}).forEach((e=>{let[t,s]=e;return bt.registerComponent(t,s)})),await ut(e,Mr)}};async function Hr(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=[Lt,at,Mt,Ht,dt,Er,...t.plugins??[]];await Pe(s,e,t),await(t.install?.(e)),await He.emit("application-ready")}async function Lr(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=P(e);await Hr(s,t),s.mount("#app"),s._container?.classList.remove("loading"),await He.emit("application-mounted")}const Tr={key:0};var Ir=u({__name:"AGAppModals",setup(e){const s=t((()=>bt.modals[0]??null));return(e,t)=>s.value?(p(),x("aside",Tr,[A(Ft,{"child-index":1,modal:s.value},null,8,["modal"])])):k("v-if",!0)}});Ir.__file="src/components/AGAppModals.vue";const Rr={"aria-live":"assertive",class:"pointer-events-none fixed inset-0 z-50 flex items-end px-4 py-6 sm:p-6"},Pr={class:"flex w-full flex-col items-end space-y-4"};const Dr={render:function(e,t){return p(),x("div",Rr,[S("div",Pr,[(p(!0),x(w,null,H(e.$ui.snackbars,(e=>(p(),m(b(e.component),C({id:e.id,key:e.id},e.properties),null,16,["id"])))),128))])])},__file:"src/components/AGAppSnackbars.vue"};var Br=Dr,Or=u({__name:"AGAppOverlays",setup(t){const s=e(null),r=e(!0);return Tt("show-overlays-backdrop",(async()=>{s.value&&r.value&&(r.value=!1,s.value.classList.remove("opacity-0"))})),Tt("hide-overlays-backdrop",(async()=>{s.value&&!r.value&&(r.value=!0,s.value.classList.add("opacity-0"))})),(e,t)=>(p(),x(w,null,[S("div",{id:"aerogel-overlays-backdrop",ref_key:"$backdrop",ref:s,class:"pointer-events-none fixed inset-0 z-50 bg-black/30 opacity-0"},null,512),A(Ir),A(Br)],64))}});Or.__file="src/components/AGAppOverlays.vue";const qr={class:"flex min-h-full flex-col text-base font-normal leading-tight text-gray-900 antialiased"};var Vr=u({__name:"AGAppLayout",setup:e=>(e,t)=>(p(),x("div",qr,[e.$errors.hasStartupErrors?v(e.$slots,"startup-crash",{key:0},(()=>[(p(),m(b(e.$ui.requireComponent(f(vt).StartupCrash))))])):v(e.$slots,"default",{key:1}),A(Or)]))});Vr.__file="src/components/AGAppLayout.vue";const zr={class:"ml-2"};var Fr=u({inheritAttrs:!1,__name:"AGCheckbox",props:{name:st()},emits:["update:modelValue"],setup(e){const t=Oe();return(s,r)=>(p(),m(Ws,{ref_key:"$input",ref:t,name:e.name,class:"flex","onUpdate:modelValue":r[0]||(r[0]=e=>s.$emit("update:modelValue",e))},{default:h((()=>[A(Xs,C(s.$attrs,{type:"checkbox",class:{"text-indigo-600 focus:ring-indigo-600":!f(t)?.errors,"border-red-200 text-red-600 focus:ring-red-600":f(t)?.errors}}),null,16,["class"]),S("div",zr,[s.$slots.default?(p(),m(tr,{key:0},{default:h((()=>[v(s.$slots,"default")])),_:3})):k("v-if",!0),A(Zs,{class:"text-sm text-red-600"})])])),_:3},8,["name"]))}});Fr.__file="src/components/forms/AGCheckbox.vue";const Ur={viewBox:"0 0 20 20",width:"1.2em",height:"1.2em"},Nr=[S("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 Wr={name:"zondicons-cheveron-down",render:function(e,t){return p(),x("svg",Ur,[...Nr])}};const Kr={name:st(),label:st(),options:Ze(),noSelectionText:st(),optionsText:We()},Qr=["update:modelValue"];function Zr(){return Kr}function Yr(){return[...Qr]}function Jr(e){return Dt(e,Kr)}var Xr=u({__name:"AGHeadlessSelect",props:{modelValue:We(),...Zr()},emits:Yr(),setup(e,{expose:s,emit:o}){const n=o,a=e,l=t((()=>"function"==typeof a.optionsText?a.optionsText:"string"==typeof a.optionsText?e=>ne(e[a.optionsText]):e=>ne(e))),i=r("form",null),c=t((()=>a.noSelectionText??At("select.noSelection","-"))),u=t((()=>i&&a.name?i.getFieldValue(a.name):a.modelValue)),d=t((()=>i&&a.name?i.errors[a.name]??null:null));function b(e){i&&a.name?i.setFieldValue(a.name,e):n("update:modelValue",e)}const _={id:`select-${se()}`,noSelectionText:c,selectedOption:u,errors:d,options:t((()=>a.options)),label:t((()=>a.label)),buttonText:t((()=>null===u.value?c.value:l.value(u.value))),renderText:l,update:b};return g("select",_),s(_),(e,t)=>(p(),m(f(he),{"model-value":u.value,"onUpdate:modelValue":t[0]||(t[0]=e=>b(e))},{default:h((({value:t,open:s,disabled:r})=>[v(e.$slots,"default",{value:t,open:s,disabled:r})])),_:3},8,["model-value"]))}});Xr.__file="src/components/headless/forms/AGHeadlessSelect.vue";var eo=u({__name:"AGHeadlessSelectButton",props:{textClass:st()},setup(e){const t=Ue("select","<AGHeadlessSelectButton> must be a child of a <AGHeadlessSelect>");return(s,r)=>(p(),m(f(ve),null,{default:h((({value:r,open:o,disabled:n})=>[v(s.$slots,"default",{value:r,open:o,disabled:n},(()=>[S("span",{class:j(e.textClass)},E(f(t)?.buttonText),3)])),v(s.$slots,"icon")])),_:3}))}});eo.__file="src/components/headless/forms/AGHeadlessSelectButton.vue";const to=["id"];var so=u({__name:"AGHeadlessSelectError",setup(e){const s=Ue("select","<AGHeadlessSelectError> must be a child of a <AGHeadlessSelect>"),r=t((()=>s.errors?At(`errors.${s.errors[0]}`,`Error: ${s.errors[0]}`):null));return(e,t)=>r.value?(p(),x("p",{key:0,id:`${f(s).id}-error`},E(r.value),9,to)):k("v-if",!0)}});so.__file="src/components/headless/forms/AGHeadlessSelectError.vue";var ro=u({__name:"AGHeadlessSelectLabel",setup(e){const s=Ue("select","<AGHeadlessSelectLabel> must be a child of a <AGHeadlessSelect>"),r=R(),o=t((()=>!(!s.label&&!r.default)));return(e,t)=>o.value?(p(),m(f(ge),{key:0},{default:h((({open:t,disabled:r})=>[v(e.$slots,"default",{open:t,disabled:r},(()=>[M(E(f(s).label),1)]))])),_:3})):k("v-if",!0)}});ro.__file="src/components/headless/forms/AGHeadlessSelectLabel.vue";var oo=u({__name:"AGHeadlessSelectOption",props:{value:Je(),selectedClass:st(),unselectedClass:st(),activeClass:st(),inactiveClass:st()},setup(e){const t=Ue("select","<AGHeadlessSelectOption> must be a child of a <AGHeadlessSelect>");return(s,r)=>(p(),m(f(be),{value:e.value,as:"template"},{default:h((({active:r,selected:o,disabled:n})=>[v(s.$slots,"default",{active:r,selected:o,disabled:n},(()=>[S("li",{class:j({[e.activeClass??"active"]:r,[e.inactiveClass??"inactive"]:!r,[e.selectedClass??"selected"]:o,[e.unselectedClass??"unselected"]:!o})},E(f(t).renderText(e.value)),3)]))])),_:3},8,["value"]))}});oo.__file="src/components/headless/forms/AGHeadlessSelectOption.vue";const no={class:"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2"};var ao=u({__name:"AGSelect",props:Zr(),emits:Yr(),setup(e){const t=e,s=Oe();return(e,r)=>(p(),m(Xr,C(t,{ref_key:"$select",ref:s,as:"div","onUpdate:modelValue":r[0]||(r[0]=t=>e.$emit("update:modelValue",t))}),{default:h((()=>[A(ro,{class:"block text-sm font-medium leading-6 text-gray-900"}),S("div",{class:j(["relative",{"mt-2":f(s)?.label}])},[A(eo,{class:j(["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":f(s)?.errors}]),"text-class":"block truncate"},{icon:h((()=>[S("span",no,[A(f(Wr),{class:"h-5 w-5 text-gray-400"})])])),_:1},8,["class"]),A(f(_e),{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:h((()=>[(p(!0),x(w,null,H(f(s)?.options??[],((e,t)=>(p(),m(oo,{key:t,value:e,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),A(so,{class:"mt-2 text-sm text-red-600"})])),_:1},16))}});ao.__file="src/components/forms/AGSelect.vue";const lo=["id","name","required","value","aria-invalid","aria-describedby"];var io=u({__name:"AGHeadlessInputTextArea",setup(s){const r=e(),o=Ue("input","<AGHeadlessInputTextArea> must be a child of a <AGHeadlessInput>"),n=t((()=>o.name??void 0)),a=t((()=>o.value));function l(){r.value&&o.update(r.value.value)}return L((()=>o.__setElement(r.value))),Ys(o,(()=>r.value?.focus())),(e,t)=>(p(),x("textarea",{id:f(o).id,ref_key:"$textArea",ref:r,name:n.value,required:f(o).required??void 0,value:a.value,"aria-invalid":f(o).errors?"true":"false","aria-describedby":f(o).errors?`${f(o).id}-error`:f(o).description?`${f(o).id}-description`:void 0,onInput:l},null,40,lo))}});io.__file="src/components/headless/forms/AGHeadlessInputTextArea.vue";var co=u({__name:"AGErrorMessage",props:{error:et()},setup(e){const s=e,r=t((()=>Ct(s.error)));return(e,t)=>(p(),m(Qt,{text:r.value,inline:""},null,8,["text"]))}});co.__file="src/components/lib/AGErrorMessage.vue";var uo=u({__name:"AGLink",setup:e=>(e,t)=>(p(),m(ls,{class:"font-medium hover:underline"},{default:h((()=>[v(e.$slots,"default")])),_:3}))});uo.__file="src/components/lib/AGLink.vue";var po=u({__name:"AGMeasured",props:{as:st("span")},setup(t){const s=e(!1);return(e,r)=>{const o=D("measure");return B((p(),m(b(t.as),{class:j({"!invisible !absolute !w-auto":!s.value})},{default:h((()=>[v(e.$slots,"default")])),_:3},8,["class"])),[[o,()=>s.value=!0]])}}});po.__file="src/components/lib/AGMeasured.vue";var mo=u({__name:"AGModalTitle",setup:e=>(e,t)=>(p(),m(Wt,{class:"mb-2 font-semibold"},{default:h((()=>[v(e.$slots,"default")])),_:3}))});mo.__file="src/components/modals/AGModalTitle.vue";class fo{}async function ho(e){await e.run()}export{es as AGAlertModal,Vr as AGAppLayout,Or as AGAppOverlays,is as AGButton,Fr as AGCheckbox,us as AGConfirmModal,co as AGErrorMessage,Ms as AGErrorReportModalButtons,Es as AGErrorReportModalTitle,zs as AGForm,ls as AGHeadlessButton,Ws as AGHeadlessInput,Ks as AGHeadlessInputDescription,Zs as AGHeadlessInputError,Xs as AGHeadlessInputInput,tr as AGHeadlessInputLabel,io as AGHeadlessInputTextArea,zt as AGHeadlessModal,Nt as AGHeadlessModalPanel,Wt as AGHeadlessModalTitle,Xr as AGHeadlessSelect,eo as AGHeadlessSelectButton,so as AGHeadlessSelectError,ro as AGHeadlessSelectLabel,oo as AGHeadlessSelectOption,_r as AGHeadlessSnackbar,rr as AGInput,uo as AGLink,Bs as AGLoadingModal,Qt as AGMarkdown,po as AGMeasured,Yt as AGModal,Ft as AGModalContext,mo as AGModalTitle,gr as AGPromptModal,ao as AGSelect,kr as AGSnackbar,jr as AGStartupCrash,Ie as App,Te as AppService,it as Cache,lt as CacheService,St as Colors,Gt as Errors,Me as EventListenerPriorities,He as Events,Ee as EventsService,ar as Form,or as FormFieldTypes,fo as Job,xt as Lang,mt as Layouts,pt as MOBILE_BREAKPOINT,je as Service,yr as SnackbarColors,bt as UI,vt as UIComponents,gt as UIService,Jt as alertModalProps,De as arrayProp,ir as booleanInput,Be as booleanProp,ut as bootServices,Lr as bootstrap,Hr as bootstrapApplication,Oe as componentRef,qe as computedAsync,ts as confirmModalProps,cr as dateInput,Ve as defineDirective,Re as definePlugin,$e as defineServiceState,Ce as defineServiceStore,ho as dispatch,as as elementRef,ze as enumProp,gs as errorReportModalProps,Ns as extractInputProps,qt as extractModalProps,Jr as extractSelectProps,ft as getCurrentLayout,os as getElement,Ct as getErrorMessage,Ge as getPiniaStore,ns as hasElement,Ne as injectOrFail,Fe as injectReactive,Ue as injectReactiveOrFail,Fs as inputProps,Pe as installPlugins,Rs as loadingModalProps,We as mixedProp,Bt as modalProps,fr as numberInput,Ke as numberProp,Qe as objectProp,Rt as onCleanMounted,Ys as onFormFocus,Os as promptModalProps,Pt as removeInteractiveClasses,Ze as requiredArrayProp,ur as requiredBooleanInput,dr as requiredDateInput,Ye as requiredEnumProp,Je as requiredMixedProp,pr as requiredNumberInput,Xe as requiredNumberProp,et as requiredObjectProp,mr as requiredStringInput,tt as requiredStringProp,Se as resetPiniaStore,Qr as selectEmits,Kr as selectProps,xr as snackbarProps,hr as stringInput,st as stringProp,wt as translate,At as translateWithDefault,Xt as useAlertModalProps,rs as useConfirmModal,ss as useConfirmModalProps,_s as useErrorReportModal,bs as useErrorReportModalProps,Tt as useEvent,lr as useForm,It as useInputAttrs,Us as useInputProps,Ds as useLoadingModal,Ps as useLoadingModalProps,Vt as useModalExpose,Ot as useModalProps,Vs as usePromptModal,qs as usePromptModalProps,Yr as useSelectEmits,Zr as useSelectProps,Ar as useSnackbar,wr as useSnackbarProps};
|
|
2
|
-
//# sourceMappingURL=aerogel-core.esm.js.map
|