@yymojo-tec/mojo-ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/README.md +211 -0
  2. package/dist/mojo-ui.css +1 -0
  3. package/dist/mojo-ui.js +2270 -0
  4. package/dist/mojo-ui.js.map +1 -0
  5. package/dist/mojo-ui.umd.cjs +5 -0
  6. package/dist/mojo-ui.umd.cjs.map +1 -0
  7. package/dist/types/components/button/index.d.ts +60 -0
  8. package/dist/types/components/button/index.d.ts.map +1 -0
  9. package/dist/types/components/button/src/button.d.ts +35 -0
  10. package/dist/types/components/button/src/button.d.ts.map +1 -0
  11. package/dist/types/components/card/index.d.ts +62 -0
  12. package/dist/types/components/card/index.d.ts.map +1 -0
  13. package/dist/types/components/card/src/card.d.ts +13 -0
  14. package/dist/types/components/card/src/card.d.ts.map +1 -0
  15. package/dist/types/components/col/index.d.ts +26 -0
  16. package/dist/types/components/col/index.d.ts.map +1 -0
  17. package/dist/types/components/col/src/col.d.ts +4 -0
  18. package/dist/types/components/col/src/col.d.ts.map +1 -0
  19. package/dist/types/components/form/index.d.ts +56 -0
  20. package/dist/types/components/form/index.d.ts.map +1 -0
  21. package/dist/types/components/form/src/context.d.ts +22 -0
  22. package/dist/types/components/form/src/context.d.ts.map +1 -0
  23. package/dist/types/components/form/src/form.d.ts +21 -0
  24. package/dist/types/components/form/src/form.d.ts.map +1 -0
  25. package/dist/types/components/form-item/index.d.ts +41 -0
  26. package/dist/types/components/form-item/index.d.ts.map +1 -0
  27. package/dist/types/components/form-item/src/form-item.d.ts +9 -0
  28. package/dist/types/components/form-item/src/form-item.d.ts.map +1 -0
  29. package/dist/types/components/index.d.ts +15 -0
  30. package/dist/types/components/index.d.ts.map +1 -0
  31. package/dist/types/components/input/index.d.ts +36 -0
  32. package/dist/types/components/input/index.d.ts.map +1 -0
  33. package/dist/types/components/input/src/input.d.ts +21 -0
  34. package/dist/types/components/input/src/input.d.ts.map +1 -0
  35. package/dist/types/components/menu/index.d.ts +55 -0
  36. package/dist/types/components/menu/index.d.ts.map +1 -0
  37. package/dist/types/components/menu/src/menu.d.ts +16 -0
  38. package/dist/types/components/menu/src/menu.d.ts.map +1 -0
  39. package/dist/types/components/row/index.d.ts +35 -0
  40. package/dist/types/components/row/index.d.ts.map +1 -0
  41. package/dist/types/components/row/src/row.d.ts +9 -0
  42. package/dist/types/components/row/src/row.d.ts.map +1 -0
  43. package/dist/types/components/select/index.d.ts +74 -0
  44. package/dist/types/components/select/index.d.ts.map +1 -0
  45. package/dist/types/components/select/src/select.d.ts +19 -0
  46. package/dist/types/components/select/src/select.d.ts.map +1 -0
  47. package/dist/types/components/tabs/index.d.ts +55 -0
  48. package/dist/types/components/tabs/index.d.ts.map +1 -0
  49. package/dist/types/components/tabs/src/tabs.d.ts +14 -0
  50. package/dist/types/components/tabs/src/tabs.d.ts.map +1 -0
  51. package/dist/types/components/upload/index.d.ts +231 -0
  52. package/dist/types/components/upload/index.d.ts.map +1 -0
  53. package/dist/types/components/upload/src/upload.d.ts +36 -0
  54. package/dist/types/components/upload/src/upload.d.ts.map +1 -0
  55. package/dist/types/foundation/headless.d.ts +2 -0
  56. package/dist/types/foundation/headless.d.ts.map +1 -0
  57. package/dist/types/foundation/index.d.ts +3 -0
  58. package/dist/types/foundation/index.d.ts.map +1 -0
  59. package/dist/types/foundation/tokens.d.ts +6 -0
  60. package/dist/types/foundation/tokens.d.ts.map +1 -0
  61. package/dist/types/foundation/types.d.ts +5 -0
  62. package/dist/types/foundation/types.d.ts.map +1 -0
  63. package/dist/types/index.d.ts +6 -0
  64. package/dist/types/index.d.ts.map +1 -0
  65. package/dist/types/utils/install.d.ts +6 -0
  66. package/dist/types/utils/install.d.ts.map +1 -0
  67. package/dist/types/utils/validators.d.ts +14 -0
  68. package/dist/types/utils/validators.d.ts.map +1 -0
  69. package/package.json +64 -0
@@ -0,0 +1,5 @@
1
+ (function(O,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(O=typeof globalThis<"u"?globalThis:O||self,e(O.MojoUi={},O.Vue))})(this,(function(O,e){"use strict";function ft(t){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const o=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(a,n,o.get?o:{enumerable:!0,get:()=>t[n]})}}return a.default=t,Object.freeze(a)}const ye=ft(e);function D(t){return Object.assign(t,{install(a){t.name&&a.component(t.name,t)}})}const mt=["disabled"],vt={key:0,class:"mo-button__spinner","aria-hidden":"true"},ht={key:1,class:"mo-button__icon","aria-hidden":"true"},bt={key:2,class:"mo-button__icon","aria-hidden":"true"},gt={key:3,class:"mo-button__content"},yt={key:4,class:"mo-button__icon","aria-hidden":"true"},we=D(e.defineComponent({name:"MoButton",__name:"button",props:{type:{default:"default"},size:{default:"default"},theme:{default:"light"},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},round:{type:Boolean,default:!1},icon:{type:Boolean,default:!1},block:{type:Boolean,default:!1},backgroundColor:{},borderColor:{},textColor:{}},emits:["click"],setup(t,{emit:a}){const n=t,o=a,s=e.useSlots(),r=e.computed(()=>n.icon||!s.default&&!!s.icon),l=e.computed(()=>["mo-button",`mo-button--${n.type}`,`mo-button--${n.size}`,`mo-theme--${n.theme}`,{"is-block":n.block,"is-disabled":n.disabled,"is-icon-only":r.value,"is-loading":n.loading,"is-round":n.round}]),d=e.computed(()=>({"--mo-button-custom-bg":n.backgroundColor,"--mo-button-custom-border":n.borderColor,"--mo-button-custom-color":n.textColor}));function f(m){n.disabled||n.loading||o("click",m)}return(m,p)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(l.value),disabled:t.disabled||t.loading,style:e.normalizeStyle(d.value),type:"button",onClick:f},[t.loading?(e.openBlock(),e.createElementBlock("span",vt)):m.$slots.icon?(e.openBlock(),e.createElementBlock("span",ht,[e.renderSlot(m.$slots,"icon")])):e.createCommentVNode("",!0),m.$slots.prefix&&!r.value?(e.openBlock(),e.createElementBlock("span",bt,[e.renderSlot(m.$slots,"prefix")])):e.createCommentVNode("",!0),m.$slots.default?(e.openBlock(),e.createElementBlock("span",gt,[e.renderSlot(m.$slots,"default")])):e.createCommentVNode("",!0),m.$slots.suffix&&!r.value?(e.openBlock(),e.createElementBlock("span",yt,[e.renderSlot(m.$slots,"suffix")])):e.createCommentVNode("",!0)],14,mt))}})),wt=["role","tabindex","aria-pressed","onKeydown"],kt={key:0,class:"mo-card__selected-mark","aria-hidden":"true"},xt={key:1,class:"mo-card__header"},St={class:"mo-card__body"},Et={key:2,class:"mo-card__footer"},ke=D(e.defineComponent({name:"MoCard",__name:"card",props:{theme:{default:"light"},shadow:{default:"hover"},borderStyle:{default:"solid"},hoverable:{type:Boolean,default:!0},animated:{type:Boolean,default:!0},selectable:{type:Boolean,default:!1},selected:{type:Boolean,default:!1}},emits:["update:selected","select"],setup(t,{emit:a}){const n=t,o=a,s=e.computed(()=>["mo-card",`mo-theme--${n.theme}`,`mo-card--shadow-${n.shadow}`,`mo-card--border-${n.borderStyle}`,{"is-animated":n.animated,"is-hoverable":n.hoverable,"is-selectable":n.selectable,"is-selected":n.selectable&&n.selected}]);function r(){if(!n.selectable)return;const l=!n.selected;o("update:selected",l),o("select",l)}return(l,d)=>(e.openBlock(),e.createElementBlock("section",{class:e.normalizeClass(s.value),role:t.selectable?"button":void 0,tabindex:t.selectable?0:void 0,"aria-pressed":t.selectable?t.selected:void 0,onClick:r,onKeydown:[e.withKeys(e.withModifiers(r,["prevent"]),["enter"]),e.withKeys(e.withModifiers(r,["prevent"]),["space"])]},[t.selectable&&t.selected?(e.openBlock(),e.createElementBlock("div",kt,[e.renderSlot(l.$slots,"selected-icon",{},()=>[d[0]||(d[0]=e.createTextVNode("♛",-1))])])):e.createCommentVNode("",!0),l.$slots.header?(e.openBlock(),e.createElementBlock("div",xt,[e.renderSlot(l.$slots,"header")])):e.createCommentVNode("",!0),e.createElementVNode("div",St,[e.renderSlot(l.$slots,"default")]),l.$slots.footer?(e.openBlock(),e.createElementBlock("div",Et,[e.renderSlot(l.$slots,"footer")])):e.createCommentVNode("",!0)],42,wt))}})),xe=D(e.defineComponent({name:"MoCol",__name:"col",props:{span:{default:24}},setup(t){const a=t,n=e.computed(()=>{const s=Number(a.span);return Number.isFinite(s)?Math.min(Math.max(s,1),24):24}),o=e.computed(()=>({"--mo-col-span":n.value}));return(s,r)=>(e.openBlock(),e.createElementBlock("div",{class:"mo-col",style:e.normalizeStyle(o.value)},[e.renderSlot(s.$slots,"default")],4))}})),Se=Symbol("MoFormContext"),Ee=D(e.defineComponent({name:"MoForm",__name:"form",props:{model:{default:void 0},rules:{default:void 0},theme:{default:"light"},labelPosition:{default:"right"},labelWidth:{default:""},requireAsteriskPosition:{default:"left"},labelSuffix:{default:""},showMessage:{type:Boolean,default:!0}},setup(t,{expose:a}){const n=t,o=e.reactive([]),s=e.computed(()=>["mo-form",`mo-theme--${n.theme}`,`mo-form--label-${n.labelPosition}`]),r=e.computed(()=>({"--mo-form-label-width":typeof n.labelWidth=="number"?`${n.labelWidth}px`:n.labelWidth||void 0}));function l(u){o.includes(u)||o.push(u)}function d(u){const i=o.indexOf(u);i>=0&&o.splice(i,1)}async function f(){const u=await Promise.all(o.map(b=>b.validate())),i={};return o.forEach((b,h)=>{!u[h]&&b.prop&&(i[b.prop]="")}),{valid:u.every(Boolean),errors:i}}function m(){o.forEach(u=>u.resetValidation())}const p=e.computed(()=>({model:n.model,rules:n.rules,theme:n.theme,labelPosition:n.labelPosition,labelWidth:n.labelWidth,requireAsteriskPosition:n.requireAsteriskPosition,labelSuffix:n.labelSuffix,showMessage:n.showMessage,addField:l,removeField:d}));return e.provide(Se,p.value),a({validate:f,resetFields:m}),(u,i)=>(e.openBlock(),e.createElementBlock("form",{class:e.normalizeClass(s.value),style:e.normalizeStyle(r.value)},[e.renderSlot(u.$slots,"default")],6))}}));function H(t){return t==null?!0:typeof t=="string"?t.trim().length===0:Array.isArray(t)?t.length===0:!1}function _t(t){return!H(t)}function _e(t){return H(t)?!0:/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String(t))}function Ce(t){return H(t)?!0:/^1[3-9]\d{9}$/.test(String(t))}function Ct(t="该项为必填项"){return{required:!0,message:t}}function Bt(t="请输入正确的邮箱地址"){return{message:t,validator:a=>_e(a)||t}}function It(t="请输入正确的手机号"){return{message:t,validator:a=>Ce(a)||t}}const Mt={key:0,class:"mo-form-item__label"},Ot={key:0,class:"mo-form-item__asterisk"},Pt={key:1,class:"mo-form-item__suffix"},Nt={key:2,class:"mo-form-item__asterisk"},Tt={class:"mo-form-item__content"},Rt={key:0,class:"mo-form-item__help"},Vt={key:1,class:"mo-form-item__error"},Be=D(e.defineComponent({name:"MoFormItem",__name:"form-item",props:{label:{default:""},prop:{default:""},required:{type:Boolean,default:!1},rules:{default:void 0},help:{default:""}},setup(t){const a=t,n=e.inject(Se),o=e.ref(""),s=e.computed(()=>{var u;return a.prop?(u=n==null?void 0:n.model)==null?void 0:u[a.prop]:void 0}),r=e.computed(()=>{var b;const u=a.prop?(b=n==null?void 0:n.rules)==null?void 0:b[a.prop]:void 0,i=[a.rules,u].flat().filter(Boolean);return a.required&&!i.some(h=>h.required)&&i.unshift({required:!0,message:"该项为必填项"}),i}),l=e.computed(()=>a.required||r.value.some(u=>u.required)),d=e.computed(()=>["mo-form-item",{"is-error":!!o.value,"is-required":l.value}]);async function f(){o.value="";for(const u of r.value){if(u.required&&H(s.value))return o.value=u.message||"该项为必填项",!1;if(u.validator){const i=await u.validator(s.value);if(i!==!0)return o.value=typeof i=="string"?i:u.message||"校验失败",!1}}return!0}function m(){o.value=""}const p={prop:a.prop,validate:f,resetValidation:m};return e.onMounted(()=>{n==null||n.addField(p)}),e.onBeforeUnmount(()=>{n==null||n.removeField(p)}),(u,i)=>{var b,h,v,y;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(d.value)},[t.label?(e.openBlock(),e.createElementBlock("label",Mt,[l.value&&((b=e.unref(n))==null?void 0:b.requireAsteriskPosition)==="left"?(e.openBlock(),e.createElementBlock("span",Ot," * ")):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(t.label),1),(h=e.unref(n))!=null&&h.labelSuffix?(e.openBlock(),e.createElementBlock("span",Pt,e.toDisplayString(e.unref(n).labelSuffix),1)):e.createCommentVNode("",!0),l.value&&((v=e.unref(n))==null?void 0:v.requireAsteriskPosition)==="right"?(e.openBlock(),e.createElementBlock("span",Nt," * ")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Tt,[e.renderSlot(u.$slots,"default",{error:o.value,validate:f}),t.help&&!o.value?(e.openBlock(),e.createElementBlock("div",Rt,e.toDisplayString(t.help),1)):e.createCommentVNode("",!0),(y=e.unref(n))!=null&&y.showMessage&&o.value?(e.openBlock(),e.createElementBlock("div",Vt,e.toDisplayString(o.value),1)):e.createCommentVNode("",!0)])],2)}}})),Dt=["disabled","maxlength","placeholder","readonly","rows","value"],Ft={key:1,class:"mo-input__tag-wrapper"},Lt={class:"mo-input__tag-text"},At=["aria-label","onClick"],jt=["disabled","maxlength","placeholder","readonly","value"],zt=["disabled","maxlength","placeholder","readonly","value"],Ut={key:4,class:"mo-input__count"},Ie=D(e.defineComponent({name:"MoInput",__name:"input",props:{modelValue:{default:""},tags:{default:()=>[]},type:{default:"text"},size:{default:"default"},theme:{default:"light"},placeholder:{default:""},maxlength:{default:void 0},showWordLimit:{type:Boolean,default:!1},rows:{default:3},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},taggable:{type:Boolean,default:!1},allowDuplicateTags:{type:Boolean,default:!1},resize:{default:"vertical"}},emits:["update:modelValue","update:tags","input","change","clear","tagAdd","tagRemove"],setup(t,{emit:a}){const n=t,o=a,s=e.computed(()=>String(n.modelValue??"")),r=e.computed(()=>n.type==="textarea"),l=e.computed(()=>n.taggable&&!r.value),d=e.computed(()=>n.showWordLimit&&n.maxlength!==void 0),f=e.computed(()=>["mo-input",`mo-input--${n.size}`,`mo-theme--${n.theme}`,{"is-disabled":n.disabled,"is-taggable":l.value,"is-textarea":r.value}]),m=e.computed(()=>({"--mo-input-rows":n.rows}));function p(v){const y=v.target.value;o("update:modelValue",y),o("input",y)}function u(v){o("change",v.target.value)}function i(){o("update:modelValue",""),o("input",""),o("clear")}function b(v){if(!l.value||n.disabled||n.readonly)return;const y=s.value.trim();if(y){if(v.preventDefault(),!n.allowDuplicateTags&&n.tags.includes(y)){o("update:modelValue",""),o("input","");return}o("update:tags",[...n.tags,y]),o("update:modelValue",""),o("input",""),o("tagAdd",y)}}function h(v,y){const S=n.tags.filter((k,g)=>g!==y);o("update:tags",S),o("tagRemove",v,y)}return(v,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(f.value),style:e.normalizeStyle(m.value)},[r.value?(e.openBlock(),e.createElementBlock("textarea",{key:0,class:"mo-input__inner",disabled:t.disabled,maxlength:t.maxlength,placeholder:t.placeholder,readonly:t.readonly,rows:Number(t.rows),style:e.normalizeStyle({resize:t.resize}),value:s.value,onChange:u,onInput:p},null,44,Dt)):l.value?(e.openBlock(),e.createElementBlock("div",Ft,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.tags,(S,k)=>(e.openBlock(),e.createElementBlock("span",{key:`${S}-${k}`,class:"mo-input__tag"},[e.createElementVNode("span",Lt,e.toDisplayString(S),1),e.createElementVNode("button",{class:"mo-input__tag-close",type:"button","aria-label":`Remove ${S}`,onClick:g=>h(S,k)}," × ",8,At)]))),128)),e.createElementVNode("input",{class:"mo-input__tag-input",disabled:t.disabled,maxlength:t.maxlength,placeholder:t.placeholder,readonly:t.readonly,value:s.value,type:"text",onChange:u,onInput:p,onKeydown:e.withKeys(b,["enter"])},null,40,jt)])):(e.openBlock(),e.createElementBlock("input",{key:2,class:"mo-input__inner",disabled:t.disabled,maxlength:t.maxlength,placeholder:t.placeholder,readonly:t.readonly,value:s.value,type:"text",onChange:u,onInput:p,onKeydown:e.withKeys(b,["enter"])},null,40,zt)),t.clearable&&s.value&&!t.disabled&&!t.readonly&&!r.value&&!l.value?(e.openBlock(),e.createElementBlock("button",{key:3,class:"mo-input__clear",type:"button","aria-label":"Clear",onClick:i}," × ")):e.createCommentVNode("",!0),d.value?(e.openBlock(),e.createElementBlock("span",Ut,e.toDisplayString(s.value.length)+" / "+e.toDisplayString(t.maxlength),1)):e.createCommentVNode("",!0)],6))}}));function Wt(t,a,n){let o=e.ref(n==null?void 0:n.value),s=e.computed(()=>t.value!==void 0);return[e.computed(()=>s.value?t.value:o.value),function(r){return s.value||(o.value=r),a==null?void 0:a(r)}]}function qt(t){typeof queueMicrotask=="function"?queueMicrotask(t):Promise.resolve().then(t).catch(a=>setTimeout(()=>{throw a}))}var Me;let Ht=Symbol("headlessui.useid"),Kt=0;const A=(Me=ye.useId)!=null?Me:function(){return ye.inject(Ht,()=>`${++Kt}`)()};function C(t){var a;if(t==null||t.value==null)return null;let n=(a=t.value.$el)!=null?a:t.value;return n instanceof Node?n:null}function T(t,a,...n){if(t in a){let s=a[t];return typeof s=="function"?s(...n):s}let o=new Error(`Tried to handle "${t}" but there is no handler defined. Only defined handlers are: ${Object.keys(a).map(s=>`"${s}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,T),o}var Xt=Object.defineProperty,Yt=(t,a,n)=>a in t?Xt(t,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[a]=n,Oe=(t,a,n)=>(Yt(t,typeof a!="symbol"?a+"":a,n),n);let Gt=class{constructor(){Oe(this,"current",this.detect()),Oe(this,"currentId",0)}set(a){this.current!==a&&(this.currentId=0,this.current=a)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current==="server"}get isClient(){return this.current==="client"}detect(){return typeof window>"u"||typeof document>"u"?"server":"client"}},ue=new Gt;function J(t){if(ue.isServer)return null;if(t instanceof Node)return t.ownerDocument;if(t!=null&&t.hasOwnProperty("value")){let a=C(t);if(a)return a.ownerDocument}return document}let ie=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map(t=>`${t}:not([tabindex='-1'])`).join(",");var V=(t=>(t[t.First=1]="First",t[t.Previous=2]="Previous",t[t.Next=4]="Next",t[t.Last=8]="Last",t[t.WrapAround=16]="WrapAround",t[t.NoScroll=32]="NoScroll",t))(V||{}),K=(t=>(t[t.Error=0]="Error",t[t.Overflow=1]="Overflow",t[t.Success=2]="Success",t[t.Underflow=3]="Underflow",t))(K||{}),Qt=(t=>(t[t.Previous=-1]="Previous",t[t.Next=1]="Next",t))(Qt||{});function Pe(t=document.body){return t==null?[]:Array.from(t.querySelectorAll(ie)).sort((a,n)=>Math.sign((a.tabIndex||Number.MAX_SAFE_INTEGER)-(n.tabIndex||Number.MAX_SAFE_INTEGER)))}var Z=(t=>(t[t.Strict=0]="Strict",t[t.Loose=1]="Loose",t))(Z||{});function $(t,a=0){var n;return t===((n=J(t))==null?void 0:n.body)?!1:T(a,{0(){return t.matches(ie)},1(){let o=t;for(;o!==null;){if(o.matches(ie))return!0;o=o.parentElement}return!1}})}function Ne(t){let a=J(t);e.nextTick(()=>{a&&!$(a.activeElement,0)&&Zt(t)})}var Jt=(t=>(t[t.Keyboard=0]="Keyboard",t[t.Mouse=1]="Mouse",t))(Jt||{});typeof window<"u"&&typeof document<"u"&&(document.addEventListener("keydown",t=>{t.metaKey||t.altKey||t.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible="")},!0),document.addEventListener("click",t=>{t.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:t.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible="")},!0));function Zt(t){t==null||t.focus({preventScroll:!0})}let $t=["textarea","input"].join(",");function el(t){var a,n;return(n=(a=t==null?void 0:t.matches)==null?void 0:a.call(t,$t))!=null?n:!1}function U(t,a=n=>n){return t.slice().sort((n,o)=>{let s=a(n),r=a(o);if(s===null||r===null)return 0;let l=s.compareDocumentPosition(r);return l&Node.DOCUMENT_POSITION_FOLLOWING?-1:l&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function tl(t,a){return W(Pe(),a,{relativeTo:t})}function W(t,a,{sorted:n=!0,relativeTo:o=null,skipElements:s=[]}={}){var r;let l=(r=Array.isArray(t)?t.length>0?t[0].ownerDocument:document:t==null?void 0:t.ownerDocument)!=null?r:document,d=Array.isArray(t)?n?U(t):t:Pe(t);s.length>0&&d.length>1&&(d=d.filter(h=>!s.includes(h))),o=o??l.activeElement;let f=(()=>{if(a&5)return 1;if(a&10)return-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),m=(()=>{if(a&1)return 0;if(a&2)return Math.max(0,d.indexOf(o))-1;if(a&4)return Math.max(0,d.indexOf(o))+1;if(a&8)return d.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),p=a&32?{preventScroll:!0}:{},u=0,i=d.length,b;do{if(u>=i||u+i<=0)return 0;let h=m+u;if(a&16)h=(h+i)%i;else{if(h<0)return 3;if(h>=i)return 1}b=d[h],b==null||b.focus(p),u+=f}while(b!==l.activeElement);return a&6&&el(b)&&b.select(),2}function ll(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function nl(){return/Android/gi.test(window.navigator.userAgent)}function al(){return ll()||nl()}function ee(t,a,n){ue.isServer||e.watchEffect(o=>{document.addEventListener(t,a,n),o(()=>document.removeEventListener(t,a,n))})}function ol(t,a,n){ue.isServer||e.watchEffect(o=>{window.addEventListener(t,a,n),o(()=>window.removeEventListener(t,a,n))})}function Te(t,a,n=e.computed(()=>!0)){function o(r,l){if(!n.value||r.defaultPrevented)return;let d=l(r);if(d===null||!d.getRootNode().contains(d))return;let f=(function m(p){return typeof p=="function"?m(p()):Array.isArray(p)||p instanceof Set?p:[p]})(t);for(let m of f){if(m===null)continue;let p=m instanceof HTMLElement?m:C(m);if(p!=null&&p.contains(d)||r.composed&&r.composedPath().includes(p))return}return!$(d,Z.Loose)&&d.tabIndex!==-1&&r.preventDefault(),a(r,d)}let s=e.ref(null);ee("pointerdown",r=>{var l,d;n.value&&(s.value=((d=(l=r.composedPath)==null?void 0:l.call(r))==null?void 0:d[0])||r.target)},!0),ee("mousedown",r=>{var l,d;n.value&&(s.value=((d=(l=r.composedPath)==null?void 0:l.call(r))==null?void 0:d[0])||r.target)},!0),ee("click",r=>{al()||s.value&&(o(r,()=>s.value),s.value=null)},!0),ee("touchend",r=>o(r,()=>r.target instanceof HTMLElement?r.target:null),!0),ol("blur",r=>o(r,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}function Re(t,a){if(t)return t;let n=a??"button";if(typeof n=="string"&&n.toLowerCase()==="button")return"button"}function se(t,a){let n=e.ref(Re(t.value.type,t.value.as));return e.onMounted(()=>{n.value=Re(t.value.type,t.value.as)}),e.watchEffect(()=>{var o;n.value||C(a)&&C(a)instanceof HTMLButtonElement&&!((o=C(a))!=null&&o.hasAttribute("type"))&&(n.value="button")}),n}function Ve(t){return[t.screenX,t.screenY]}function De(){let t=e.ref([-1,-1]);return{wasMoved(a){let n=Ve(a);return t.value[0]===n[0]&&t.value[1]===n[1]?!1:(t.value=n,!0)},update(a){t.value=Ve(a)}}}function rl({container:t,accept:a,walk:n,enabled:o}){e.watchEffect(()=>{let s=t.value;if(!s||o!==void 0&&!o.value)return;let r=J(t);if(!r)return;let l=Object.assign(f=>a(f),{acceptNode:a}),d=r.createTreeWalker(s,NodeFilter.SHOW_ELEMENT,l,!1);for(;d.nextNode();)n(d.currentNode)})}var q=(t=>(t[t.None=0]="None",t[t.RenderStrategy=1]="RenderStrategy",t[t.Static=2]="Static",t))(q||{}),ul=(t=>(t[t.Unmount=0]="Unmount",t[t.Hidden=1]="Hidden",t))(ul||{});function R({visible:t=!0,features:a=0,ourProps:n,theirProps:o,...s}){var r;let l=Le(o,n),d=Object.assign(s,{props:l});if(t||a&2&&l.static)return de(d);if(a&1){let f=(r=l.unmount)==null||r?0:1;return T(f,{0(){return null},1(){return de({...s,props:{...l,hidden:!0,style:{display:"none"}}})}})}return de(d)}function de({props:t,attrs:a,slots:n,slot:o,name:s}){var r,l;let{as:d,...f}=ce(t,["unmount","static"]),m=(r=n.default)==null?void 0:r.call(n,o),p={};if(o){let u=!1,i=[];for(let[b,h]of Object.entries(o))typeof h=="boolean"&&(u=!0),h===!0&&i.push(b);u&&(p["data-headlessui-state"]=i.join(" "))}if(d==="template"){if(m=Fe(m??[]),Object.keys(f).length>0||Object.keys(a).length>0){let[u,...i]=m??[];if(!sl(u)||i.length>0)throw new Error(['Passing props on "template"!',"",`The current component <${s} /> is rendering a "template".`,"However we need to passthrough the following props:",Object.keys(f).concat(Object.keys(a)).map(v=>v.trim()).filter((v,y,S)=>S.indexOf(v)===y).sort((v,y)=>v.localeCompare(y)).map(v=>` - ${v}`).join(`
2
+ `),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "template".',"Render a single element as the child so that we can forward the props onto that element."].map(v=>` - ${v}`).join(`
3
+ `)].join(`
4
+ `));let b=Le((l=u.props)!=null?l:{},f,p),h=e.cloneVNode(u,b,!0);for(let v in b)v.startsWith("on")&&(h.props||(h.props={}),h.props[v]=b[v]);return h}return Array.isArray(m)&&m.length===1?m[0]:m}return e.h(d,Object.assign({},f,p),{default:()=>m})}function Fe(t){return t.flatMap(a=>a.type===e.Fragment?Fe(a.children):[a])}function Le(...t){if(t.length===0)return{};if(t.length===1)return t[0];let a={},n={};for(let o of t)for(let s in o)s.startsWith("on")&&typeof o[s]=="function"?(n[s]!=null||(n[s]=[]),n[s].push(o[s])):a[s]=o[s];if(a.disabled||a["aria-disabled"])return Object.assign(a,Object.fromEntries(Object.keys(n).map(o=>[o,void 0])));for(let o in n)Object.assign(a,{[o](s,...r){let l=n[o];for(let d of l){if(s instanceof Event&&s.defaultPrevented)return;d(s,...r)}}});return a}function il(t){let a=Object.assign({},t);for(let n in a)a[n]===void 0&&delete a[n];return a}function ce(t,a=[]){let n=Object.assign({},t);for(let o of a)o in n&&delete n[o];return n}function sl(t){return t==null?!1:typeof t.type=="string"||typeof t.type=="object"||typeof t.type=="function"}var pe=(t=>(t[t.None=1]="None",t[t.Focusable=2]="Focusable",t[t.Hidden=4]="Hidden",t))(pe||{});let fe=e.defineComponent({name:"Hidden",props:{as:{type:[Object,String],default:"div"},features:{type:Number,default:1}},setup(t,{slots:a,attrs:n}){return()=>{var o;let{features:s,...r}=t,l={"aria-hidden":(s&2)===2?!0:(o=r["aria-hidden"])!=null?o:void 0,hidden:(s&4)===4?!0:void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(s&4)===4&&(s&2)!==2&&{display:"none"}}};return R({ourProps:l,theirProps:r,slot:{},attrs:n,slots:a,name:"Hidden"})}}}),Ae=Symbol("Context");var j=(t=>(t[t.Open=1]="Open",t[t.Closed=2]="Closed",t[t.Closing=4]="Closing",t[t.Opening=8]="Opening",t))(j||{});function je(){return e.inject(Ae,null)}function ze(t){e.provide(Ae,t)}var B=(t=>(t.Space=" ",t.Enter="Enter",t.Escape="Escape",t.Backspace="Backspace",t.Delete="Delete",t.ArrowLeft="ArrowLeft",t.ArrowUp="ArrowUp",t.ArrowRight="ArrowRight",t.ArrowDown="ArrowDown",t.Home="Home",t.End="End",t.PageUp="PageUp",t.PageDown="PageDown",t.Tab="Tab",t))(B||{});function dl(t){throw new Error("Unexpected object: "+t)}var M=(t=>(t[t.First=0]="First",t[t.Previous=1]="Previous",t[t.Next=2]="Next",t[t.Last=3]="Last",t[t.Specific=4]="Specific",t[t.Nothing=5]="Nothing",t))(M||{});function Ue(t,a){let n=a.resolveItems();if(n.length<=0)return null;let o=a.resolveActiveIndex(),s=o??-1;switch(t.focus){case 0:{for(let r=0;r<n.length;++r)if(!a.resolveDisabled(n[r],r,n))return r;return o}case 1:{s===-1&&(s=n.length);for(let r=s-1;r>=0;--r)if(!a.resolveDisabled(n[r],r,n))return r;return o}case 2:{for(let r=s+1;r<n.length;++r)if(!a.resolveDisabled(n[r],r,n))return r;return o}case 3:{for(let r=n.length-1;r>=0;--r)if(!a.resolveDisabled(n[r],r,n))return r;return o}case 4:{for(let r=0;r<n.length;++r)if(a.resolveId(n[r],r,n)===t.id)return r;return o}case 5:return null;default:dl(t)}}function We(t={},a=null,n=[]){for(let[o,s]of Object.entries(t))He(n,qe(a,o),s);return n}function qe(t,a){return t?t+"["+a+"]":a}function He(t,a,n){if(Array.isArray(n))for(let[o,s]of n.entries())He(t,qe(a,o.toString()),s);else n instanceof Date?t.push([a,n.toISOString()]):typeof n=="boolean"?t.push([a,n?"1":"0"]):typeof n=="string"?t.push([a,n]):typeof n=="number"?t.push([a,`${n}`]):n==null?t.push([a,""]):We(n,a,t)}let Ke=/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g;function Xe(t){var a,n;let o=(a=t.innerText)!=null?a:"",s=t.cloneNode(!0);if(!(s instanceof HTMLElement))return o;let r=!1;for(let d of s.querySelectorAll('[hidden],[aria-hidden],[role="img"]'))d.remove(),r=!0;let l=r?(n=s.innerText)!=null?n:"":o;return Ke.test(l)&&(l=l.replace(Ke,"")),l}function cl(t){let a=t.getAttribute("aria-label");if(typeof a=="string")return a.trim();let n=t.getAttribute("aria-labelledby");if(n){let o=n.split(" ").map(s=>{let r=document.getElementById(s);if(r){let l=r.getAttribute("aria-label");return typeof l=="string"?l.trim():Xe(r).trim()}return null}).filter(Boolean);if(o.length>0)return o.join(", ")}return Xe(t).trim()}function Ye(t){let a=e.ref(""),n=e.ref("");return()=>{let o=C(t);if(!o)return"";let s=o.innerText;if(a.value===s)return n.value;let r=cl(o).trim().toLowerCase();return a.value=s,n.value=r,r}}function pl(t,a){return t===a}var fl=(t=>(t[t.Open=0]="Open",t[t.Closed=1]="Closed",t))(fl||{}),ml=(t=>(t[t.Single=0]="Single",t[t.Multi=1]="Multi",t))(ml||{}),vl=(t=>(t[t.Pointer=0]="Pointer",t[t.Other=1]="Other",t))(vl||{});function hl(t){requestAnimationFrame(()=>requestAnimationFrame(t))}let Ge=Symbol("ListboxContext");function X(t){let a=e.inject(Ge,null);if(a===null){let n=new Error(`<${t} /> is missing a parent <Listbox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(n,X),n}return a}let bl=e.defineComponent({name:"Listbox",emits:{"update:modelValue":t=>!0},props:{as:{type:[Object,String],default:"template"},disabled:{type:[Boolean],default:!1},by:{type:[String,Function],default:()=>pl},horizontal:{type:[Boolean],default:!1},modelValue:{type:[Object,String,Number,Boolean],default:void 0},defaultValue:{type:[Object,String,Number,Boolean],default:void 0},form:{type:String,optional:!0},name:{type:String,optional:!0},multiple:{type:[Boolean],default:!1}},inheritAttrs:!1,setup(t,{slots:a,attrs:n,emit:o}){let s=e.ref(1),r=e.ref(null),l=e.ref(null),d=e.ref(null),f=e.ref([]),m=e.ref(""),p=e.ref(null),u=e.ref(1);function i(g=E=>E){let E=p.value!==null?f.value[p.value]:null,x=U(g(f.value.slice()),N=>C(N.dataRef.domRef)),I=E?x.indexOf(E):null;return I===-1&&(I=null),{options:x,activeOptionIndex:I}}let b=e.computed(()=>t.multiple?1:0),[h,v]=Wt(e.computed(()=>t.modelValue),g=>o("update:modelValue",g),e.computed(()=>t.defaultValue)),y=e.computed(()=>h.value===void 0?T(b.value,{1:[],0:void 0}):h.value),S={listboxState:s,value:y,mode:b,compare(g,E){if(typeof t.by=="string"){let x=t.by;return(g==null?void 0:g[x])===(E==null?void 0:E[x])}return t.by(g,E)},orientation:e.computed(()=>t.horizontal?"horizontal":"vertical"),labelRef:r,buttonRef:l,optionsRef:d,disabled:e.computed(()=>t.disabled),options:f,searchQuery:m,activeOptionIndex:p,activationTrigger:u,closeListbox(){t.disabled||s.value!==1&&(s.value=1,p.value=null)},openListbox(){t.disabled||s.value!==0&&(s.value=0)},goToOption(g,E,x){if(t.disabled||s.value===1)return;let I=i(),N=Ue(g===M.Specific?{focus:M.Specific,id:E}:{focus:g},{resolveItems:()=>I.options,resolveActiveIndex:()=>I.activeOptionIndex,resolveId:F=>F.id,resolveDisabled:F=>F.dataRef.disabled});m.value="",p.value=N,u.value=x??1,f.value=I.options},search(g){if(t.disabled||s.value===1)return;let E=m.value!==""?0:1;m.value+=g.toLowerCase();let x=(p.value!==null?f.value.slice(p.value+E).concat(f.value.slice(0,p.value+E)):f.value).find(N=>N.dataRef.textValue.startsWith(m.value)&&!N.dataRef.disabled),I=x?f.value.indexOf(x):-1;I===-1||I===p.value||(p.value=I,u.value=1)},clearSearch(){t.disabled||s.value!==1&&m.value!==""&&(m.value="")},registerOption(g,E){let x=i(I=>[...I,{id:g,dataRef:E}]);f.value=x.options,p.value=x.activeOptionIndex},unregisterOption(g){let E=i(x=>{let I=x.findIndex(N=>N.id===g);return I!==-1&&x.splice(I,1),x});f.value=E.options,p.value=E.activeOptionIndex,u.value=1},theirOnChange(g){t.disabled||v(g)},select(g){t.disabled||v(T(b.value,{0:()=>g,1:()=>{let E=e.toRaw(S.value.value).slice(),x=e.toRaw(g),I=E.findIndex(N=>S.compare(x,e.toRaw(N)));return I===-1?E.push(x):E.splice(I,1),E}}))}};Te([l,d],(g,E)=>{var x;S.closeListbox(),$(E,Z.Loose)||(g.preventDefault(),(x=C(l))==null||x.focus())},e.computed(()=>s.value===0)),e.provide(Ge,S),ze(e.computed(()=>T(s.value,{0:j.Open,1:j.Closed})));let k=e.computed(()=>{var g;return(g=C(l))==null?void 0:g.closest("form")});return e.onMounted(()=>{e.watch([k],()=>{if(!k.value||t.defaultValue===void 0)return;function g(){S.theirOnChange(t.defaultValue)}return k.value.addEventListener("reset",g),()=>{var E;(E=k.value)==null||E.removeEventListener("reset",g)}},{immediate:!0})}),()=>{let{name:g,modelValue:E,disabled:x,form:I,...N}=t,F={open:s.value===0,disabled:x,value:y.value};return e.h(e.Fragment,[...g!=null&&y.value!=null?We({[g]:y.value}).map(([le,ve])=>e.h(fe,il({features:pe.Hidden,key:le,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:I,disabled:x,name:le,value:ve}))):[],R({ourProps:{},theirProps:{...n,...ce(N,["defaultValue","onUpdate:modelValue","horizontal","multiple","by"])},slot:F,slots:a,attrs:n,name:"Listbox"})])}}});e.defineComponent({name:"ListboxLabel",props:{as:{type:[Object,String],default:"label"},id:{type:String,default:null}},setup(t,{attrs:a,slots:n}){var o;let s=(o=t.id)!=null?o:`headlessui-listbox-label-${A()}`,r=X("ListboxLabel");function l(){var d;(d=C(r.buttonRef))==null||d.focus({preventScroll:!0})}return()=>{let d={open:r.listboxState.value===0,disabled:r.disabled.value},{...f}=t,m={id:s,ref:r.labelRef,onClick:l};return R({ourProps:m,theirProps:f,slot:d,attrs:a,slots:n,name:"ListboxLabel"})}}});let gl=e.defineComponent({name:"ListboxButton",props:{as:{type:[Object,String],default:"button"},id:{type:String,default:null}},setup(t,{attrs:a,slots:n,expose:o}){var s;let r=(s=t.id)!=null?s:`headlessui-listbox-button-${A()}`,l=X("ListboxButton");o({el:l.buttonRef,$el:l.buttonRef});function d(u){switch(u.key){case B.Space:case B.Enter:case B.ArrowDown:u.preventDefault(),l.openListbox(),e.nextTick(()=>{var i;(i=C(l.optionsRef))==null||i.focus({preventScroll:!0}),l.value.value||l.goToOption(M.First)});break;case B.ArrowUp:u.preventDefault(),l.openListbox(),e.nextTick(()=>{var i;(i=C(l.optionsRef))==null||i.focus({preventScroll:!0}),l.value.value||l.goToOption(M.Last)});break}}function f(u){switch(u.key){case B.Space:u.preventDefault();break}}function m(u){l.disabled.value||(l.listboxState.value===0?(l.closeListbox(),e.nextTick(()=>{var i;return(i=C(l.buttonRef))==null?void 0:i.focus({preventScroll:!0})})):(u.preventDefault(),l.openListbox(),hl(()=>{var i;return(i=C(l.optionsRef))==null?void 0:i.focus({preventScroll:!0})})))}let p=se(e.computed(()=>({as:t.as,type:a.type})),l.buttonRef);return()=>{var u,i;let b={open:l.listboxState.value===0,disabled:l.disabled.value,value:l.value.value},{...h}=t,v={ref:l.buttonRef,id:r,type:p.value,"aria-haspopup":"listbox","aria-controls":(u=C(l.optionsRef))==null?void 0:u.id,"aria-expanded":l.listboxState.value===0,"aria-labelledby":l.labelRef.value?[(i=C(l.labelRef))==null?void 0:i.id,r].join(" "):void 0,disabled:l.disabled.value===!0?!0:void 0,onKeydown:d,onKeyup:f,onClick:m};return R({ourProps:v,theirProps:h,slot:b,attrs:a,slots:n,name:"ListboxButton"})}}}),yl=e.defineComponent({name:"ListboxOptions",props:{as:{type:[Object,String],default:"ul"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:null}},setup(t,{attrs:a,slots:n,expose:o}){var s;let r=(s=t.id)!=null?s:`headlessui-listbox-options-${A()}`,l=X("ListboxOptions"),d=e.ref(null);o({el:l.optionsRef,$el:l.optionsRef});function f(u){switch(d.value&&clearTimeout(d.value),u.key){case B.Space:if(l.searchQuery.value!=="")return u.preventDefault(),u.stopPropagation(),l.search(u.key);case B.Enter:if(u.preventDefault(),u.stopPropagation(),l.activeOptionIndex.value!==null){let i=l.options.value[l.activeOptionIndex.value];l.select(i.dataRef.value)}l.mode.value===0&&(l.closeListbox(),e.nextTick(()=>{var i;return(i=C(l.buttonRef))==null?void 0:i.focus({preventScroll:!0})}));break;case T(l.orientation.value,{vertical:B.ArrowDown,horizontal:B.ArrowRight}):return u.preventDefault(),u.stopPropagation(),l.goToOption(M.Next);case T(l.orientation.value,{vertical:B.ArrowUp,horizontal:B.ArrowLeft}):return u.preventDefault(),u.stopPropagation(),l.goToOption(M.Previous);case B.Home:case B.PageUp:return u.preventDefault(),u.stopPropagation(),l.goToOption(M.First);case B.End:case B.PageDown:return u.preventDefault(),u.stopPropagation(),l.goToOption(M.Last);case B.Escape:u.preventDefault(),u.stopPropagation(),l.closeListbox(),e.nextTick(()=>{var i;return(i=C(l.buttonRef))==null?void 0:i.focus({preventScroll:!0})});break;case B.Tab:u.preventDefault(),u.stopPropagation();break;default:u.key.length===1&&(l.search(u.key),d.value=setTimeout(()=>l.clearSearch(),350));break}}let m=je(),p=e.computed(()=>m!==null?(m.value&j.Open)===j.Open:l.listboxState.value===0);return()=>{var u,i;let b={open:l.listboxState.value===0},{...h}=t,v={"aria-activedescendant":l.activeOptionIndex.value===null||(u=l.options.value[l.activeOptionIndex.value])==null?void 0:u.id,"aria-multiselectable":l.mode.value===1?!0:void 0,"aria-labelledby":(i=C(l.buttonRef))==null?void 0:i.id,"aria-orientation":l.orientation.value,id:r,onKeydown:f,role:"listbox",tabIndex:0,ref:l.optionsRef};return R({ourProps:v,theirProps:h,slot:b,attrs:a,slots:n,features:q.RenderStrategy|q.Static,visible:p.value,name:"ListboxOptions"})}}}),wl=e.defineComponent({name:"ListboxOption",props:{as:{type:[Object,String],default:"li"},value:{type:[Object,String,Number,Boolean]},disabled:{type:Boolean,default:!1},id:{type:String,default:null}},setup(t,{slots:a,attrs:n,expose:o}){var s;let r=(s=t.id)!=null?s:`headlessui-listbox-option-${A()}`,l=X("ListboxOption"),d=e.ref(null);o({el:d,$el:d});let f=e.computed(()=>l.activeOptionIndex.value!==null?l.options.value[l.activeOptionIndex.value].id===r:!1),m=e.computed(()=>T(l.mode.value,{0:()=>l.compare(e.toRaw(l.value.value),e.toRaw(t.value)),1:()=>e.toRaw(l.value.value).some(g=>l.compare(e.toRaw(g),e.toRaw(t.value)))})),p=e.computed(()=>T(l.mode.value,{1:()=>{var g;let E=e.toRaw(l.value.value);return((g=l.options.value.find(x=>E.some(I=>l.compare(e.toRaw(I),e.toRaw(x.dataRef.value)))))==null?void 0:g.id)===r},0:()=>m.value})),u=Ye(d),i=e.computed(()=>({disabled:t.disabled,value:t.value,get textValue(){return u()},domRef:d}));e.onMounted(()=>l.registerOption(r,i)),e.onUnmounted(()=>l.unregisterOption(r)),e.onMounted(()=>{e.watch([l.listboxState,m],()=>{l.listboxState.value===0&&m.value&&T(l.mode.value,{1:()=>{p.value&&l.goToOption(M.Specific,r)},0:()=>{l.goToOption(M.Specific,r)}})},{immediate:!0})}),e.watchEffect(()=>{l.listboxState.value===0&&f.value&&l.activationTrigger.value!==0&&e.nextTick(()=>{var g,E;return(E=(g=C(d))==null?void 0:g.scrollIntoView)==null?void 0:E.call(g,{block:"nearest"})})});function b(g){if(t.disabled)return g.preventDefault();l.select(t.value),l.mode.value===0&&(l.closeListbox(),e.nextTick(()=>{var E;return(E=C(l.buttonRef))==null?void 0:E.focus({preventScroll:!0})}))}function h(){if(t.disabled)return l.goToOption(M.Nothing);l.goToOption(M.Specific,r)}let v=De();function y(g){v.update(g)}function S(g){v.wasMoved(g)&&(t.disabled||f.value||l.goToOption(M.Specific,r,0))}function k(g){v.wasMoved(g)&&(t.disabled||f.value&&l.goToOption(M.Nothing))}return()=>{let{disabled:g}=t,E={active:f.value,selected:m.value,disabled:g},{value:x,disabled:I,...N}=t,F={id:r,ref:d,role:"option",tabIndex:g===!0?void 0:-1,"aria-disabled":g===!0?!0:void 0,"aria-selected":m.value,disabled:void 0,onClick:b,onFocus:h,onPointerenter:y,onMouseenter:y,onPointermove:S,onMousemove:S,onPointerleave:k,onMouseleave:k};return R({ourProps:F,theirProps:N,slot:E,attrs:n,slots:a,name:"ListboxOption"})}}});var kl=(t=>(t[t.Open=0]="Open",t[t.Closed=1]="Closed",t))(kl||{}),xl=(t=>(t[t.Pointer=0]="Pointer",t[t.Other=1]="Other",t))(xl||{});function Sl(t){requestAnimationFrame(()=>requestAnimationFrame(t))}let Qe=Symbol("MenuContext");function te(t){let a=e.inject(Qe,null);if(a===null){let n=new Error(`<${t} /> is missing a parent <Menu /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(n,te),n}return a}let El=e.defineComponent({name:"Menu",props:{as:{type:[Object,String],default:"template"}},setup(t,{slots:a,attrs:n}){let o=e.ref(1),s=e.ref(null),r=e.ref(null),l=e.ref([]),d=e.ref(""),f=e.ref(null),m=e.ref(1);function p(i=b=>b){let b=f.value!==null?l.value[f.value]:null,h=U(i(l.value.slice()),y=>C(y.dataRef.domRef)),v=b?h.indexOf(b):null;return v===-1&&(v=null),{items:h,activeItemIndex:v}}let u={menuState:o,buttonRef:s,itemsRef:r,items:l,searchQuery:d,activeItemIndex:f,activationTrigger:m,closeMenu:()=>{o.value=1,f.value=null},openMenu:()=>o.value=0,goToItem(i,b,h){let v=p(),y=Ue(i===M.Specific?{focus:M.Specific,id:b}:{focus:i},{resolveItems:()=>v.items,resolveActiveIndex:()=>v.activeItemIndex,resolveId:S=>S.id,resolveDisabled:S=>S.dataRef.disabled});d.value="",f.value=y,m.value=h??1,l.value=v.items},search(i){let b=d.value!==""?0:1;d.value+=i.toLowerCase();let h=(f.value!==null?l.value.slice(f.value+b).concat(l.value.slice(0,f.value+b)):l.value).find(y=>y.dataRef.textValue.startsWith(d.value)&&!y.dataRef.disabled),v=h?l.value.indexOf(h):-1;v===-1||v===f.value||(f.value=v,m.value=1)},clearSearch(){d.value=""},registerItem(i,b){let h=p(v=>[...v,{id:i,dataRef:b}]);l.value=h.items,f.value=h.activeItemIndex,m.value=1},unregisterItem(i){let b=p(h=>{let v=h.findIndex(y=>y.id===i);return v!==-1&&h.splice(v,1),h});l.value=b.items,f.value=b.activeItemIndex,m.value=1}};return Te([s,r],(i,b)=>{var h;u.closeMenu(),$(b,Z.Loose)||(i.preventDefault(),(h=C(s))==null||h.focus())},e.computed(()=>o.value===0)),e.provide(Qe,u),ze(e.computed(()=>T(o.value,{0:j.Open,1:j.Closed}))),()=>{let i={open:o.value===0,close:u.closeMenu};return R({ourProps:{},theirProps:t,slot:i,slots:a,attrs:n,name:"Menu"})}}}),_l=e.defineComponent({name:"MenuButton",props:{disabled:{type:Boolean,default:!1},as:{type:[Object,String],default:"button"},id:{type:String,default:null}},setup(t,{attrs:a,slots:n,expose:o}){var s;let r=(s=t.id)!=null?s:`headlessui-menu-button-${A()}`,l=te("MenuButton");o({el:l.buttonRef,$el:l.buttonRef});function d(u){switch(u.key){case B.Space:case B.Enter:case B.ArrowDown:u.preventDefault(),u.stopPropagation(),l.openMenu(),e.nextTick(()=>{var i;(i=C(l.itemsRef))==null||i.focus({preventScroll:!0}),l.goToItem(M.First)});break;case B.ArrowUp:u.preventDefault(),u.stopPropagation(),l.openMenu(),e.nextTick(()=>{var i;(i=C(l.itemsRef))==null||i.focus({preventScroll:!0}),l.goToItem(M.Last)});break}}function f(u){switch(u.key){case B.Space:u.preventDefault();break}}function m(u){t.disabled||(l.menuState.value===0?(l.closeMenu(),e.nextTick(()=>{var i;return(i=C(l.buttonRef))==null?void 0:i.focus({preventScroll:!0})})):(u.preventDefault(),l.openMenu(),Sl(()=>{var i;return(i=C(l.itemsRef))==null?void 0:i.focus({preventScroll:!0})})))}let p=se(e.computed(()=>({as:t.as,type:a.type})),l.buttonRef);return()=>{var u;let i={open:l.menuState.value===0},{...b}=t,h={ref:l.buttonRef,id:r,type:p.value,"aria-haspopup":"menu","aria-controls":(u=C(l.itemsRef))==null?void 0:u.id,"aria-expanded":l.menuState.value===0,onKeydown:d,onKeyup:f,onClick:m};return R({ourProps:h,theirProps:b,slot:i,attrs:a,slots:n,name:"MenuButton"})}}}),Cl=e.defineComponent({name:"MenuItems",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:null}},setup(t,{attrs:a,slots:n,expose:o}){var s;let r=(s=t.id)!=null?s:`headlessui-menu-items-${A()}`,l=te("MenuItems"),d=e.ref(null);o({el:l.itemsRef,$el:l.itemsRef}),rl({container:e.computed(()=>C(l.itemsRef)),enabled:e.computed(()=>l.menuState.value===0),accept(i){return i.getAttribute("role")==="menuitem"?NodeFilter.FILTER_REJECT:i.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(i){i.setAttribute("role","none")}});function f(i){var b;switch(d.value&&clearTimeout(d.value),i.key){case B.Space:if(l.searchQuery.value!=="")return i.preventDefault(),i.stopPropagation(),l.search(i.key);case B.Enter:if(i.preventDefault(),i.stopPropagation(),l.activeItemIndex.value!==null){let h=l.items.value[l.activeItemIndex.value];(b=C(h.dataRef.domRef))==null||b.click()}l.closeMenu(),Ne(C(l.buttonRef));break;case B.ArrowDown:return i.preventDefault(),i.stopPropagation(),l.goToItem(M.Next);case B.ArrowUp:return i.preventDefault(),i.stopPropagation(),l.goToItem(M.Previous);case B.Home:case B.PageUp:return i.preventDefault(),i.stopPropagation(),l.goToItem(M.First);case B.End:case B.PageDown:return i.preventDefault(),i.stopPropagation(),l.goToItem(M.Last);case B.Escape:i.preventDefault(),i.stopPropagation(),l.closeMenu(),e.nextTick(()=>{var h;return(h=C(l.buttonRef))==null?void 0:h.focus({preventScroll:!0})});break;case B.Tab:i.preventDefault(),i.stopPropagation(),l.closeMenu(),e.nextTick(()=>tl(C(l.buttonRef),i.shiftKey?V.Previous:V.Next));break;default:i.key.length===1&&(l.search(i.key),d.value=setTimeout(()=>l.clearSearch(),350));break}}function m(i){switch(i.key){case B.Space:i.preventDefault();break}}let p=je(),u=e.computed(()=>p!==null?(p.value&j.Open)===j.Open:l.menuState.value===0);return()=>{var i,b;let h={open:l.menuState.value===0},{...v}=t,y={"aria-activedescendant":l.activeItemIndex.value===null||(i=l.items.value[l.activeItemIndex.value])==null?void 0:i.id,"aria-labelledby":(b=C(l.buttonRef))==null?void 0:b.id,id:r,onKeydown:f,onKeyup:m,role:"menu",tabIndex:0,ref:l.itemsRef};return R({ourProps:y,theirProps:v,slot:h,attrs:a,slots:n,features:q.RenderStrategy|q.Static,visible:u.value,name:"MenuItems"})}}}),Bl=e.defineComponent({name:"MenuItem",inheritAttrs:!1,props:{as:{type:[Object,String],default:"template"},disabled:{type:Boolean,default:!1},id:{type:String,default:null}},setup(t,{slots:a,attrs:n,expose:o}){var s;let r=(s=t.id)!=null?s:`headlessui-menu-item-${A()}`,l=te("MenuItem"),d=e.ref(null);o({el:d,$el:d});let f=e.computed(()=>l.activeItemIndex.value!==null?l.items.value[l.activeItemIndex.value].id===r:!1),m=Ye(d),p=e.computed(()=>({disabled:t.disabled,get textValue(){return m()},domRef:d}));e.onMounted(()=>l.registerItem(r,p)),e.onUnmounted(()=>l.unregisterItem(r)),e.watchEffect(()=>{l.menuState.value===0&&f.value&&l.activationTrigger.value!==0&&e.nextTick(()=>{var S,k;return(k=(S=C(d))==null?void 0:S.scrollIntoView)==null?void 0:k.call(S,{block:"nearest"})})});function u(S){if(t.disabled)return S.preventDefault();l.closeMenu(),Ne(C(l.buttonRef))}function i(){if(t.disabled)return l.goToItem(M.Nothing);l.goToItem(M.Specific,r)}let b=De();function h(S){b.update(S)}function v(S){b.wasMoved(S)&&(t.disabled||f.value||l.goToItem(M.Specific,r,0))}function y(S){b.wasMoved(S)&&(t.disabled||f.value&&l.goToItem(M.Nothing))}return()=>{let{disabled:S,...k}=t,g={active:f.value,disabled:S,close:l.closeMenu};return R({ourProps:{id:r,ref:d,role:"menuitem",tabIndex:S===!0?void 0:-1,"aria-disabled":S===!0?!0:void 0,onClick:u,onFocus:i,onPointerenter:h,onMouseenter:h,onPointermove:v,onMousemove:v,onPointerleave:y,onMouseleave:y},theirProps:{...n,...k},slot:g,attrs:n,slots:a,name:"MenuItem"})}}}),Il=e.defineComponent({props:{onFocus:{type:Function,required:!0}},setup(t){let a=e.ref(!0);return()=>a.value?e.h(fe,{as:"button",type:"button",features:pe.Focusable,onFocus(n){n.preventDefault();let o,s=50;function r(){var l;if(s--<=0){o&&cancelAnimationFrame(o);return}if((l=t.onFocus)!=null&&l.call(t)){a.value=!1,cancelAnimationFrame(o);return}o=requestAnimationFrame(r)}o=requestAnimationFrame(r)}}):null}});var Ml=(t=>(t[t.Forwards=0]="Forwards",t[t.Backwards=1]="Backwards",t))(Ml||{}),Ol=(t=>(t[t.Less=-1]="Less",t[t.Equal=0]="Equal",t[t.Greater=1]="Greater",t))(Ol||{});let Je=Symbol("TabsContext");function Y(t){let a=e.inject(Je,null);if(a===null){let n=new Error(`<${t} /> is missing a parent <TabGroup /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(n,Y),n}return a}let me=Symbol("TabsSSRContext"),Pl=e.defineComponent({name:"TabGroup",emits:{change:t=>!0},props:{as:{type:[Object,String],default:"template"},selectedIndex:{type:[Number],default:null},defaultIndex:{type:[Number],default:0},vertical:{type:[Boolean],default:!1},manual:{type:[Boolean],default:!1}},inheritAttrs:!1,setup(t,{slots:a,attrs:n,emit:o}){var s;let r=e.ref((s=t.selectedIndex)!=null?s:t.defaultIndex),l=e.ref([]),d=e.ref([]),f=e.computed(()=>t.selectedIndex!==null),m=e.computed(()=>f.value?t.selectedIndex:r.value);function p(v){var y;let S=U(u.tabs.value,C),k=U(u.panels.value,C),g=S.filter(E=>{var x;return!((x=C(E))!=null&&x.hasAttribute("disabled"))});if(v<0||v>S.length-1){let E=T(r.value===null?0:Math.sign(v-r.value),{[-1]:()=>1,0:()=>T(Math.sign(v),{[-1]:()=>0,0:()=>0,1:()=>1}),1:()=>0}),x=T(E,{0:()=>S.indexOf(g[0]),1:()=>S.indexOf(g[g.length-1])});x!==-1&&(r.value=x),u.tabs.value=S,u.panels.value=k}else{let E=S.slice(0,v),x=[...S.slice(v),...E].find(N=>g.includes(N));if(!x)return;let I=(y=S.indexOf(x))!=null?y:u.selectedIndex.value;I===-1&&(I=u.selectedIndex.value),r.value=I,u.tabs.value=S,u.panels.value=k}}let u={selectedIndex:e.computed(()=>{var v,y;return(y=(v=r.value)!=null?v:t.defaultIndex)!=null?y:null}),orientation:e.computed(()=>t.vertical?"vertical":"horizontal"),activation:e.computed(()=>t.manual?"manual":"auto"),tabs:l,panels:d,setSelectedIndex(v){m.value!==v&&o("change",v),f.value||p(v)},registerTab(v){var y;if(l.value.includes(v))return;let S=l.value[r.value];if(l.value.push(v),l.value=U(l.value,C),!f.value){let k=(y=l.value.indexOf(S))!=null?y:r.value;k!==-1&&(r.value=k)}},unregisterTab(v){let y=l.value.indexOf(v);y!==-1&&l.value.splice(y,1)},registerPanel(v){d.value.includes(v)||(d.value.push(v),d.value=U(d.value,C))},unregisterPanel(v){let y=d.value.indexOf(v);y!==-1&&d.value.splice(y,1)}};e.provide(Je,u);let i=e.ref({tabs:[],panels:[]}),b=e.ref(!1);e.onMounted(()=>{b.value=!0}),e.provide(me,e.computed(()=>b.value?null:i.value));let h=e.computed(()=>t.selectedIndex);return e.onMounted(()=>{e.watch([h],()=>{var v;return p((v=t.selectedIndex)!=null?v:t.defaultIndex)},{immediate:!0})}),e.watchEffect(()=>{if(!f.value||m.value==null||u.tabs.value.length<=0)return;let v=U(u.tabs.value,C);v.some((y,S)=>C(u.tabs.value[S])!==C(y))&&u.setSelectedIndex(v.findIndex(y=>C(y)===C(u.tabs.value[m.value])))}),()=>{let v={selectedIndex:r.value};return e.h(e.Fragment,[l.value.length<=0&&e.h(Il,{onFocus:()=>{for(let y of l.value){let S=C(y);if((S==null?void 0:S.tabIndex)===0)return S.focus(),!0}return!1}}),R({theirProps:{...n,...ce(t,["selectedIndex","defaultIndex","manual","vertical","onChange"])},ourProps:{},slot:v,slots:a,attrs:n,name:"TabGroup"})])}}}),Nl=e.defineComponent({name:"TabList",props:{as:{type:[Object,String],default:"div"}},setup(t,{attrs:a,slots:n}){let o=Y("TabList");return()=>{let s={selectedIndex:o.selectedIndex.value},r={role:"tablist","aria-orientation":o.orientation.value};return R({ourProps:r,theirProps:t,slot:s,attrs:a,slots:n,name:"TabList"})}}}),Tl=e.defineComponent({name:"Tab",props:{as:{type:[Object,String],default:"button"},disabled:{type:[Boolean],default:!1},id:{type:String,default:null}},setup(t,{attrs:a,slots:n,expose:o}){var s;let r=(s=t.id)!=null?s:`headlessui-tabs-tab-${A()}`,l=Y("Tab"),d=e.ref(null);o({el:d,$el:d}),e.onMounted(()=>l.registerTab(d)),e.onUnmounted(()=>l.unregisterTab(d));let f=e.inject(me),m=e.computed(()=>{if(f.value){let k=f.value.tabs.indexOf(r);return k===-1?f.value.tabs.push(r)-1:k}return-1}),p=e.computed(()=>{let k=l.tabs.value.indexOf(d);return k===-1?m.value:k}),u=e.computed(()=>p.value===l.selectedIndex.value);function i(k){var g;let E=k();if(E===K.Success&&l.activation.value==="auto"){let x=(g=J(d))==null?void 0:g.activeElement,I=l.tabs.value.findIndex(N=>C(N)===x);I!==-1&&l.setSelectedIndex(I)}return E}function b(k){let g=l.tabs.value.map(E=>C(E)).filter(Boolean);if(k.key===B.Space||k.key===B.Enter){k.preventDefault(),k.stopPropagation(),l.setSelectedIndex(p.value);return}switch(k.key){case B.Home:case B.PageUp:return k.preventDefault(),k.stopPropagation(),i(()=>W(g,V.First));case B.End:case B.PageDown:return k.preventDefault(),k.stopPropagation(),i(()=>W(g,V.Last))}if(i(()=>T(l.orientation.value,{vertical(){return k.key===B.ArrowUp?W(g,V.Previous|V.WrapAround):k.key===B.ArrowDown?W(g,V.Next|V.WrapAround):K.Error},horizontal(){return k.key===B.ArrowLeft?W(g,V.Previous|V.WrapAround):k.key===B.ArrowRight?W(g,V.Next|V.WrapAround):K.Error}}))===K.Success)return k.preventDefault()}let h=e.ref(!1);function v(){var k;h.value||(h.value=!0,!t.disabled&&((k=C(d))==null||k.focus({preventScroll:!0}),l.setSelectedIndex(p.value),qt(()=>{h.value=!1})))}function y(k){k.preventDefault()}let S=se(e.computed(()=>({as:t.as,type:a.type})),d);return()=>{var k,g;let E={selected:u.value,disabled:(k=t.disabled)!=null?k:!1},{...x}=t,I={ref:d,onKeydown:b,onMousedown:y,onClick:v,id:r,role:"tab",type:S.value,"aria-controls":(g=C(l.panels.value[p.value]))==null?void 0:g.id,"aria-selected":u.value,tabIndex:u.value?0:-1,disabled:t.disabled?!0:void 0};return R({ourProps:I,theirProps:x,slot:E,attrs:a,slots:n,name:"Tab"})}}}),Rl=e.defineComponent({name:"TabPanels",props:{as:{type:[Object,String],default:"div"}},setup(t,{slots:a,attrs:n}){let o=Y("TabPanels");return()=>{let s={selectedIndex:o.selectedIndex.value};return R({theirProps:t,ourProps:{},slot:s,attrs:n,slots:a,name:"TabPanels"})}}}),Vl=e.defineComponent({name:"TabPanel",props:{as:{type:[Object,String],default:"div"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},id:{type:String,default:null},tabIndex:{type:Number,default:0}},setup(t,{attrs:a,slots:n,expose:o}){var s;let r=(s=t.id)!=null?s:`headlessui-tabs-panel-${A()}`,l=Y("TabPanel"),d=e.ref(null);o({el:d,$el:d}),e.onMounted(()=>l.registerPanel(d)),e.onUnmounted(()=>l.unregisterPanel(d));let f=e.inject(me),m=e.computed(()=>{if(f.value){let i=f.value.panels.indexOf(r);return i===-1?f.value.panels.push(r)-1:i}return-1}),p=e.computed(()=>{let i=l.panels.value.indexOf(d);return i===-1?m.value:i}),u=e.computed(()=>p.value===l.selectedIndex.value);return()=>{var i;let b={selected:u.value},{tabIndex:h,...v}=t,y={ref:d,id:r,role:"tabpanel","aria-labelledby":(i=C(l.tabs.value[p.value]))==null?void 0:i.id,tabIndex:u.value?h:-1};return!u.value&&t.unmount&&!t.static?e.h(fe,{as:"span","aria-hidden":!0,...y}):R({ourProps:y,theirProps:v,slot:b,attrs:a,slots:n,features:q.Static|q.RenderStrategy,visible:u.value,name:"TabPanel"})}}});const Dl=["onClick"],Fl={class:"mo-menu__icon","aria-hidden":"true"},Ll={class:"mo-menu__text"},Al={class:"mo-menu__label"},jl={key:0,class:"mo-menu__description"},Ze=D(e.defineComponent({name:"MoMenu",__name:"menu",props:{items:{default:()=>[]},theme:{default:"light"},placement:{default:"bottom-start"},width:{default:272}},emits:["select"],setup(t,{emit:a}){const n=t,o=a,s=e.computed(()=>["mo-menu",`mo-theme--${n.theme}`,`mo-menu--${n.placement}`]),r=e.computed(()=>({"--mo-menu-width":typeof n.width=="number"?`${n.width}px`:n.width}));function l(d,f){d.disabled||o("select",d.value,d,f)}return(d,f)=>(e.openBlock(),e.createBlock(e.unref(El),{as:"div",class:e.normalizeClass(s.value),style:e.normalizeStyle(r.value)},{default:e.withCtx(()=>[e.createVNode(e.unref(_l),{as:"template"},{default:e.withCtx(()=>[e.renderSlot(d.$slots,"trigger",{},()=>[f[0]||(f[0]=e.createElementVNode("button",{class:"mo-menu__trigger",type:"button"},"打开菜单",-1))])]),_:3}),e.createVNode(e.unref(Cl),{class:"mo-menu__items"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(m,p)=>(e.openBlock(),e.createBlock(e.unref(Bl),{key:m.value,as:"template",disabled:m.disabled},{default:e.withCtx(({active:u,disabled:i})=>[e.createElementVNode("button",{class:e.normalizeClass(["mo-menu__item",{"is-active":u,"is-disabled":i}]),type:"button",onClick:b=>l(m,p)},[e.createElementVNode("span",Fl,[e.renderSlot(d.$slots,"icon",{item:m,index:p,active:u},()=>[f[1]||(f[1]=e.createElementVNode("span",{class:"mo-menu__icon-dot"},null,-1))])]),e.createElementVNode("span",Ll,[e.renderSlot(d.$slots,"item",{item:m,index:p,active:u},()=>[e.createElementVNode("span",Al,e.toDisplayString(m.label),1),m.description?(e.openBlock(),e.createElementBlock("span",jl,e.toDisplayString(m.description),1)):e.createCommentVNode("",!0)])])],10,Dl)]),_:2},1032,["disabled"]))),128))]),_:3})]),_:3},8,["class","style"]))}})),$e=D(e.defineComponent({name:"MoRow",__name:"row",props:{gutter:{default:0},justify:{default:"start"},align:{default:"top"},wrap:{type:Boolean,default:!0}},setup(t){const a=t,n=e.computed(()=>typeof a.gutter=="number"?`${a.gutter}px`:a.gutter),o=e.computed(()=>["mo-row",`mo-row--justify-${a.justify}`,`mo-row--align-${a.align}`,{"is-nowrap":!a.wrap}]),s=e.computed(()=>({"--mo-row-gutter":n.value,"--mo-row-gutter-half":`calc(${n.value} / 2)`}));return(r,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(o.value),style:e.normalizeStyle(s.value)},[e.renderSlot(r.$slots,"default")],6))}})),zl={class:"mo-select__label"},et=D(e.defineComponent({name:"MoSelect",__name:"select",props:{modelValue:{type:[String,Number,Boolean,Object,null],default:null},options:{default:()=>[]},theme:{default:"light"},size:{default:"default"},placeholder:{default:"请选择"},disabled:{type:Boolean,default:!1},horizontal:{type:Boolean,default:!1},name:{default:void 0},by:{type:[String,Function],default:void 0}},emits:["update:modelValue","change"],setup(t,{emit:a}){const n=t,o=a,s=e.computed(()=>n.options.find(p=>d(p.value,n.modelValue))),r=e.computed(()=>{var p;return((p=s.value)==null?void 0:p.label)||n.placeholder}),l=e.computed(()=>["mo-select",`mo-select--${n.size}`,`mo-theme--${n.theme}`,{"is-disabled":n.disabled,"is-placeholder":!s.value}]);function d(p,u){return typeof n.by=="function"?n.by(p,u):typeof n.by=="string"&&f(p)&&f(u)?p[n.by]===u[n.by]:p===u}function f(p){return typeof p=="object"&&p!==null}function m(p){const u=n.options.find(i=>d(i.value,p));o("update:modelValue",p),o("change",p,u)}return(p,u)=>(e.openBlock(),e.createBlock(e.unref(bl),{"model-value":t.modelValue,disabled:t.disabled,horizontal:t.horizontal,name:t.name,by:t.by,"onUpdate:modelValue":m},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(l.value)},[e.createVNode(e.unref(gl),{class:"mo-select__button"},{default:e.withCtx(()=>[e.createElementVNode("span",zl,[e.renderSlot(p.$slots,"label",{option:s.value,label:r.value},()=>[e.createTextVNode(e.toDisplayString(r.value),1)])]),u[0]||(u[0]=e.createElementVNode("span",{class:"mo-select__arrow","aria-hidden":"true"},null,-1))]),_:3}),e.createVNode(e.unref(yl),{class:"mo-select__options"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,i=>(e.openBlock(),e.createBlock(e.unref(wl),{key:`${i.label}-${String(i.value)}`,as:"template",value:i.value,disabled:i.disabled},{default:e.withCtx(({active:b,selected:h,disabled:v})=>[e.createElementVNode("li",{class:e.normalizeClass(["mo-select__option",{"is-active":b,"is-selected":h,"is-disabled":v}])},[u[1]||(u[1]=e.createElementVNode("span",{class:"mo-select__check","aria-hidden":"true"},null,-1)),e.renderSlot(p.$slots,"option",{option:i,active:b,selected:h,disabled:v},()=>[e.createTextVNode(e.toDisplayString(i.label),1)])],2)]),_:2},1032,["value","disabled"]))),128))]),_:3})],2)]),_:3},8,["model-value","disabled","horizontal","name","by"]))}})),tt=D(e.defineComponent({name:"MoTabs",__name:"tabs",props:{modelValue:{default:void 0},items:{},size:{default:"default"},theme:{default:"light"}},emits:["update:modelValue","change"],setup(t,{emit:a}){const n=t,o=a,s=e.computed(()=>{const f=n.items.findIndex(m=>m.value===n.modelValue);return f>=0?f:0}),r=e.computed(()=>["mo-tabs",`mo-tabs--${n.size}`,`mo-theme--${n.theme}`]),l=e.computed(()=>({"--mo-tabs-count":Math.max(n.items.length,1),"--mo-tabs-active-index":s.value}));function d(f){const m=n.items[f];!m||m.disabled||(o("update:modelValue",m.value),o("change",m.value,m,f))}return(f,m)=>(e.openBlock(),e.createBlock(e.unref(Pl),{"selected-index":s.value,onChange:d},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(r.value),style:e.normalizeStyle(l.value)},[e.createVNode(e.unref(Nl),{class:"mo-tabs__list"},{default:e.withCtx(()=>[m[0]||(m[0]=e.createElementVNode("span",{class:"mo-tabs__indicator","aria-hidden":"true"},null,-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(p,u)=>(e.openBlock(),e.createBlock(e.unref(Tl),{key:p.value,as:"template",disabled:p.disabled},{default:e.withCtx(({selected:i})=>[e.createElementVNode("button",{class:e.normalizeClass(["mo-tabs__tab",{"is-active":i,"is-disabled":p.disabled}]),type:"button"},[e.renderSlot(f.$slots,"label",{item:p,index:u,selected:i},()=>[e.createTextVNode(e.toDisplayString(p.label),1)])],2)]),_:2},1032,["disabled"]))),128))]),_:3}),f.$slots.panel?(e.openBlock(),e.createBlock(e.unref(Rl),{key:0,class:"mo-tabs__panels"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(p,u)=>(e.openBlock(),e.createBlock(e.unref(Vl),{key:p.value,class:"mo-tabs__panel"},{default:e.withCtx(()=>[e.renderSlot(f.$slots,"panel",{item:p,index:u})]),_:2},1024))),128))]),_:3})):e.createCommentVNode("",!0)],6)]),_:3},8,["selected-index"]))}})),Ul=["onKeydown"],Wl=["accept","multiple"],ql={class:"mo-upload__hint"},Hl={key:0,class:"mo-upload__list"},Kl=["src","alt"],Xl=["src"],Yl={key:2,class:"mo-upload__file-icon"},Gl={class:"mo-upload__meta"},Ql={class:"mo-upload__name"},Jl={class:"mo-upload__size"},Zl={class:"mo-upload__progress"},$l={class:"mo-upload__status"},en=["onClick"],tn=["onClick"],ln={key:1,class:"mo-upload-cropper",role:"dialog","aria-modal":"true"},nn={class:"mo-upload-cropper__panel"},an=["src"],on={class:"mo-upload-cropper__slider"},lt=D(e.defineComponent({name:"MoUpload",__name:"upload",props:{theme:{default:"light"},accept:{default:""},multiple:{type:Boolean,default:!1},limit:{default:1},maxSize:{default:10},hint:{default:"PNG/JPG/WebP,最大10MB"},autoUpload:{type:Boolean,default:!0},request:{type:Function,default:void 0},crop:{type:Boolean,default:!1},manualCrop:{type:Boolean,default:!0},cropShape:{default:"square"},cropSize:{default:64},cropWidth:{default:void 0},cropHeight:{default:void 0}},emits:["change","success","error","remove"],setup(t,{expose:a,emit:n}){const o=t,s=n,r=e.ref(),l=e.ref(),d=e.ref([]),f=e.ref(!1),m=e.ref(),p=e.ref(""),u=e.ref(1),i=e.ref(0),b=e.ref(0),h=e.ref({width:0,height:0}),v=e.ref(!1),y=e.ref({x:0,y:0,cropX:0,cropY:0}),S=new Map,k={width:320,height:240},g=e.computed(()=>["mo-upload",`mo-theme--${o.theme}`,{"is-dragging":f.value}]),E=e.computed(()=>({"--mo-upload-crop-size":typeof o.cropSize=="number"?`${o.cropSize}px`:o.cropSize,"--mo-upload-crop-preview-width":`${Math.min(x.value.width,140)}px`,"--mo-upload-crop-preview-height":`${Math.min(x.value.height,140/x.value.width*x.value.height)}px`,"--mo-upload-crop-width":`${I.value.width}px`,"--mo-upload-crop-height":`${I.value.height}px`})),x=e.computed(()=>{if(o.cropShape==="rect")return{width:he(o.cropWidth,320),height:he(o.cropHeight,180)};const c=he(o.cropSize,96);return{width:c,height:c}}),I=e.computed(()=>{const c=h.value.width||x.value.width,w=h.value.height||x.value.height,_=ne(c,w),P=Math.min(k.width,c*_),L=Math.min(k.height,w*_),z=x.value.width/x.value.height;return z>=P/L?{width:P,height:P/z}:{width:L*z,height:L}}),N=e.computed(()=>{const c=h.value.width||x.value.width,w=h.value.height||x.value.height,_=ne(c,w);return{width:`${c*_}px`,height:`${w*_}px`,transform:`translate(calc(-50% + ${i.value}px), calc(-50% + ${b.value}px)) scale(${u.value})`}});function F(){var c;(c=r.value)==null||c.click()}function le(c){const w=c.target;at(w.files),w.value=""}function ve(c){var w;f.value=!1,at((w=c.dataTransfer)==null?void 0:w.files)}function at(c){if(!c)return;const w=Array.from(c).filter(P=>P.size<=o.maxSize*1024*1024).slice(0,Math.max(o.limit-d.value.length,0));if(o.crop&&o.manualCrop){const P=w.find(L=>L.type.startsWith("image/"));if(P){sn(P);return}}const _=w.map(rt);d.value=o.multiple?[...d.value,..._]:_.slice(0,1),s("change",d.value),o.autoUpload&&_.forEach(P=>ae(P))}function un(c){const w=rt(c);d.value=o.multiple?[...d.value,w]:[w],s("change",d.value),o.autoUpload&&ae(w)}function sn(c){G(),m.value=c,p.value=URL.createObjectURL(c),u.value=1,i.value=0,b.value=0,h.value={width:0,height:0}}function G(){p.value&&URL.revokeObjectURL(p.value),m.value=void 0,p.value="",h.value={width:0,height:0},v.value=!1}function dn(c){const w=c.target;h.value={width:w.naturalWidth,height:w.naturalHeight},hn()}function cn(c){v.value=!0,y.value={x:c.clientX,y:c.clientY,cropX:i.value,cropY:b.value},c.currentTarget.setPointerCapture(c.pointerId)}function pn(c){v.value&&be(y.value.cropX+c.clientX-y.value.x,y.value.cropY+c.clientY-y.value.y)}function ot(c){v.value=!1,c.currentTarget.releasePointerCapture(c.pointerId)}function fn(c){const w=ge(u.value+(c.deltaY>0?-.08:.08),1,4);u.value=w,be(i.value,b.value)}async function mn(){if(!m.value||!l.value)return;const c=await vn(m.value,l.value);G(),un(c)}function vn(c,w){const _=document.createElement("canvas"),P=_.getContext("2d");if(_.width=x.value.width,_.height=x.value.height,!P)return Promise.resolve(c);const L=I.value.width,z=I.value.height,oe=(k.width-L)/2,re=(k.height-z)/2,Q=ne(w.naturalWidth,w.naturalHeight),ut=w.naturalWidth*Q*u.value,it=w.naturalHeight*Q*u.value,Bn=(k.width-ut)/2+i.value,In=(k.height-it)/2+b.value,Mn=Bn-oe,On=In-re,st=x.value.width/L,dt=x.value.height/z;return o.cropShape==="circle"&&(P.beginPath(),P.arc(x.value.width/2,x.value.height/2,Math.min(x.value.width,x.value.height)/2,0,Math.PI*2),P.clip()),P.drawImage(w,Mn*st,On*dt,ut*st,it*dt),new Promise(ct=>{_.toBlob(pt=>{if(!pt){ct(c);return}const Pn=c.name.replace(/\.[^.]+$/,".png");ct(new File([pt],Pn,{type:"image/png",lastModified:Date.now()}))},"image/png")})}function he(c,w){if(typeof c=="number")return c;if(typeof c=="string"){const _=Number.parseInt(c,10);return Number.isFinite(_)?_:w}return w}function ne(c,w){return Math.min(k.width/c,k.height/w)}function hn(){u.value=1,be(0,0)}function be(c,w){const _=bn();i.value=ge(c,_.minX,_.maxX),b.value=ge(w,_.minY,_.maxY)}function bn(){const c=h.value.width||x.value.width,w=h.value.height||x.value.height,_=ne(c,w),P=c*_*u.value,L=w*_*u.value,z=(k.width-P)/2,oe=(k.height-L)/2,re=(k.width-I.value.width)/2,Q=(k.height-I.value.height)/2;return{minX:re+I.value.width-P-z,maxX:re-z,minY:Q+I.value.height-L-oe,maxY:Q-oe}}function ge(c,w,_){return Math.min(Math.max(c,w),_)}function rt(c){return{uid:`${Date.now()}-${Math.random().toString(16).slice(2)}`,name:c.name,size:c.size,type:c.type,file:c,status:"ready",percent:0,url:URL.createObjectURL(c)}}async function ae(c){c.status="uploading",c.percent=0,c.error="";try{o.request?(await o.request({file:c.file,onProgress(w){c.percent=Cn(w)}}),c.percent=100):await gn(c),c.status="success",s("success",c)}catch(w){c.status="error",c.error=w instanceof Error?w.message:"上传失败",s("error",c)}s("change",d.value)}function gn(c){return new Promise(w=>{const _=window.setInterval(()=>{c.percent=Math.min(c.percent+12,100),c.percent>=100&&(window.clearInterval(_),S.delete(c.uid),w())},120);S.set(c.uid,_)})}function yn(c){ae(c)}function wn(c){const w=S.get(c.uid);w&&(window.clearInterval(w),S.delete(c.uid)),c.url&&URL.revokeObjectURL(c.url),d.value=d.value.filter(_=>_.uid!==c.uid),s("remove",c),s("change",d.value)}function kn(){d.value.filter(c=>c.status==="ready"||c.status==="error").forEach(ae)}function xn(){d.value.forEach(c=>{c.url&&URL.revokeObjectURL(c.url)}),d.value=[],s("change",d.value)}function Sn(c){return c.type.startsWith("image/")}function En(c){return c.type.startsWith("video/")}function _n(c){return c<1024*1024?`${(c/1024).toFixed(1)}KB`:`${(c/1024/1024).toFixed(1)}MB`}function Cn(c){return Math.min(Math.max(Math.round(c),0),100)}return e.onBeforeUnmount(()=>{S.forEach(c=>window.clearInterval(c)),d.value.forEach(c=>{c.url&&URL.revokeObjectURL(c.url)}),G()}),a({files:d,submit:kn,clearFiles:xn}),(c,w)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(g.value),style:e.normalizeStyle(E.value)},[e.createElementVNode("div",{class:e.normalizeClass(["mo-upload__dropzone",{"has-custom-dropzone":c.$slots.dropzone}]),role:"button",tabindex:"0",onClick:F,onDragenter:w[0]||(w[0]=e.withModifiers(_=>f.value=!0,["prevent"])),onDragover:w[1]||(w[1]=e.withModifiers(_=>f.value=!0,["prevent"])),onDragleave:w[2]||(w[2]=e.withModifiers(_=>f.value=!1,["prevent"])),onDrop:e.withModifiers(ve,["prevent"]),onKeydown:[e.withKeys(e.withModifiers(F,["prevent"]),["enter"]),e.withKeys(e.withModifiers(F,["prevent"]),["space"])]},[e.createElementVNode("input",{ref_key:"inputRef",ref:r,class:"mo-upload__input",type:"file",accept:t.accept,multiple:t.multiple,onChange:le},null,40,Wl),c.$slots.dropzone?e.renderSlot(c.$slots,"dropzone",{key:0}):e.createCommentVNode("",!0),w[4]||(w[4]=e.createElementVNode("div",{class:"mo-upload__icon","aria-hidden":"true"},"↑",-1)),w[5]||(w[5]=e.createElementVNode("div",{class:"mo-upload__title"},"拖拽文件到这里",-1)),w[6]||(w[6]=e.createElementVNode("div",{class:"mo-upload__action"},"或点击上传",-1)),e.createElementVNode("div",ql,e.toDisplayString(t.hint),1)],42,Ul),d.value.length?(e.openBlock(),e.createElementBlock("div",Hl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,_=>(e.openBlock(),e.createElementBlock("article",{key:_.uid,class:"mo-upload__file"},[e.createElementVNode("div",{class:e.normalizeClass(["mo-upload__preview",{"is-crop":t.crop,"is-circle":t.crop&&t.cropShape==="circle","is-square":t.crop&&t.cropShape==="square","is-rect":t.crop&&t.cropShape==="rect"}])},[Sn(_)?(e.openBlock(),e.createElementBlock("img",{key:0,src:_.url,alt:_.name},null,8,Kl)):En(_)?(e.openBlock(),e.createElementBlock("video",{key:1,src:_.url,muted:"",preload:"metadata"},null,8,Xl)):(e.openBlock(),e.createElementBlock("span",Yl,"FILE"))],2),e.createElementVNode("div",Gl,[e.createElementVNode("div",Ql,e.toDisplayString(_.name),1),e.createElementVNode("div",Jl,e.toDisplayString(_n(_.size)),1),e.createElementVNode("div",Zl,[e.createElementVNode("span",{class:"mo-upload__progress-bar",style:e.normalizeStyle({width:`${_.percent}%`})},null,4)]),e.createElementVNode("div",$l,[e.createElementVNode("span",null,e.toDisplayString(_.status==="error"?_.error||"上传失败":`${_.percent}%`),1),_.status==="error"?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:P=>yn(_)}," 重新上传 ",8,en)):e.createCommentVNode("",!0)])]),e.createElementVNode("button",{class:"mo-upload__remove",type:"button","aria-label":"删除",onClick:P=>wn(_)}," × ",8,tn)]))),128))])):e.createCommentVNode("",!0),p.value?(e.openBlock(),e.createElementBlock("div",ln,[e.createElementVNode("div",nn,[e.createElementVNode("div",{class:"mo-upload-cropper__header"},[w[7]||(w[7]=e.createElementVNode("strong",null,"裁切图片",-1)),e.createElementVNode("button",{type:"button",onClick:G},"×")]),e.createElementVNode("div",{class:"mo-upload-cropper__stage",onPointerdown:e.withModifiers(cn,["prevent"]),onPointermove:e.withModifiers(pn,["prevent"]),onPointerup:e.withModifiers(ot,["prevent"]),onPointercancel:e.withModifiers(ot,["prevent"]),onWheel:e.withModifiers(fn,["prevent"])},[e.createElementVNode("img",{ref_key:"cropImageRef",ref:l,class:"mo-upload-cropper__image",src:p.value,alt:"",style:e.normalizeStyle(N.value),draggable:"false",onLoad:dn},null,44,an),e.createElementVNode("div",{class:e.normalizeClass(["mo-upload-cropper__frame",{"is-circle":t.cropShape==="circle"}])},null,2)],32),e.createElementVNode("label",on,[w[8]||(w[8]=e.createElementVNode("span",null,"缩放",-1)),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":w[3]||(w[3]=_=>u.value=_),type:"range",min:"1",max:"3",step:"0.01"},null,512),[[e.vModelText,u.value,void 0,{number:!0}]])]),e.createElementVNode("div",{class:"mo-upload-cropper__actions"},[e.createElementVNode("button",{type:"button",onClick:G},"取消"),e.createElementVNode("button",{type:"button",onClick:mn},"确认裁切")])])])):e.createCommentVNode("",!0)],6))}})),nt=[we,ke,xe,Ee,Be,Ie,Ze,$e,et,tt,lt],rn={install(t){nt.forEach(a=>{t.use(a)})}};O.MoButton=we,O.MoCard=ke,O.MoCol=xe,O.MoForm=Ee,O.MoFormItem=Be,O.MoInput=Ie,O.MoMenu=Ze,O.MoRow=$e,O.MoSelect=et,O.MoTabs=tt,O.MoUpload=lt,O.components=nt,O.default=rn,O.emailRule=Bt,O.isEmail=_e,O.isEmpty=H,O.isPhone=Ce,O.isRequired=_t,O.phoneRule=It,O.requiredRule=Ct,Object.defineProperties(O,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
5
+ //# sourceMappingURL=mojo-ui.umd.cjs.map