@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 @@
1
+ {"version":3,"file":"mojo-ui.js","sources":["../src/utils/install.ts","../src/components/button/src/button.vue","../src/components/button/index.ts","../src/components/card/src/card.vue","../src/components/card/index.ts","../src/components/col/src/col.vue","../src/components/col/index.ts","../src/components/form/src/context.ts","../src/components/form/src/form.vue","../src/components/form/index.ts","../src/utils/validators.ts","../src/components/form-item/src/form-item.vue","../src/components/form-item/index.ts","../src/components/input/src/input.vue","../src/components/input/index.ts","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/hooks/use-controllable.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/utils/micro-task.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/hooks/use-id.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/utils/dom.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/utils/match.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/utils/env.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/utils/owner.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/utils/focus-management.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/utils/platform.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/hooks/use-document-event.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/hooks/use-window-event.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/hooks/use-outside-click.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/hooks/use-resolve-button-type.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/hooks/use-tracked-pointer.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/hooks/use-tree-walker.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/utils/render.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/internal/hidden.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/internal/open-closed.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/keyboard.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/utils/calculate-active-index.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/utils/form.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/utils/get-text-value.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/hooks/use-text-value.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/components/listbox/listbox.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/components/menu/menu.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/internal/focus-sentinel.js","../node_modules/.pnpm/@headlessui+vue@1.7.23_vue@3.5.38_typescript@5.8.3_/node_modules/@headlessui/vue/dist/components/tabs/tabs.js","../src/components/menu/src/menu.vue","../src/components/menu/index.ts","../src/components/row/src/row.vue","../src/components/row/index.ts","../src/components/select/src/select.vue","../src/components/select/index.ts","../src/components/tabs/src/tabs.vue","../src/components/tabs/index.ts","../src/components/upload/src/upload.vue","../src/components/upload/index.ts","../src/components/index.ts","../src/index.ts"],"sourcesContent":["import type { App, Plugin } from \"vue\";\n\nexport type SfcWithInstall<T> = T & Plugin;\n\nexport function withInstall<T extends { name?: string }>(component: T) {\n return Object.assign(component, {\n install(app: App) {\n if (!component.name) {\n return;\n }\n\n app.component(component.name, component);\n }\n }) as SfcWithInstall<T>;\n}\n","<script setup lang=\"ts\">\nimport { computed, useSlots } from \"vue\";\nimport type { StyleValue } from \"vue\";\nimport type { ButtonProps } from \"./button\";\n\ndefineOptions({\n name: \"MoButton\"\n});\n\nconst props = withDefaults(defineProps<ButtonProps>(), {\n type: \"default\",\n size: \"default\",\n theme: \"light\",\n disabled: false,\n loading: false,\n round: false,\n icon: false,\n block: false\n});\n\nconst emit = defineEmits<{\n click: [event: MouseEvent];\n}>();\n\nconst slots = useSlots();\n\nconst isIconOnly = computed(() => props.icon || (!slots.default && Boolean(slots.icon)));\n\nconst classes = computed(() => [\n \"mo-button\",\n `mo-button--${props.type}`,\n `mo-button--${props.size}`,\n `mo-theme--${props.theme}`,\n {\n \"is-block\": props.block,\n \"is-disabled\": props.disabled,\n \"is-icon-only\": isIconOnly.value,\n \"is-loading\": props.loading,\n \"is-round\": props.round\n }\n]);\n\nconst styles = computed<StyleValue>(() => ({\n \"--mo-button-custom-bg\": props.backgroundColor,\n \"--mo-button-custom-border\": props.borderColor,\n \"--mo-button-custom-color\": props.textColor\n}));\n\nfunction handleClick(event: MouseEvent) {\n if (props.disabled || props.loading) {\n return;\n }\n\n emit(\"click\", event);\n}\n</script>\n\n<template>\n <button\n :class=\"classes\"\n :disabled=\"disabled || loading\"\n :style=\"styles\"\n type=\"button\"\n @click=\"handleClick\"\n >\n <span v-if=\"loading\" class=\"mo-button__spinner\" aria-hidden=\"true\" />\n <span v-else-if=\"$slots.icon\" class=\"mo-button__icon\" aria-hidden=\"true\">\n <slot name=\"icon\" />\n </span>\n\n <span v-if=\"$slots.prefix && !isIconOnly\" class=\"mo-button__icon\" aria-hidden=\"true\">\n <slot name=\"prefix\" />\n </span>\n\n <span v-if=\"$slots.default\" class=\"mo-button__content\">\n <slot />\n </span>\n\n <span v-if=\"$slots.suffix && !isIconOnly\" class=\"mo-button__icon\" aria-hidden=\"true\">\n <slot name=\"suffix\" />\n </span>\n </button>\n</template>\n","import { withInstall } from \"@/utils/install\";\nimport Button from \"./src/button.vue\";\n\nexport const MoButton = withInstall(Button);\n\nexport default MoButton;\nexport type { ButtonProps } from \"./src/button\";\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport type { CardProps } from \"./card\";\n\ndefineOptions({\n name: \"MoCard\"\n});\n\nconst props = withDefaults(defineProps<CardProps>(), {\n theme: \"light\",\n shadow: \"hover\",\n borderStyle: \"solid\",\n hoverable: true,\n animated: true,\n selectable: false,\n selected: false\n});\n\nconst emit = defineEmits<{\n \"update:selected\": [value: boolean];\n select: [value: boolean];\n}>();\n\nconst classes = computed(() => [\n \"mo-card\",\n `mo-theme--${props.theme}`,\n `mo-card--shadow-${props.shadow}`,\n `mo-card--border-${props.borderStyle}`,\n {\n \"is-animated\": props.animated,\n \"is-hoverable\": props.hoverable,\n \"is-selectable\": props.selectable,\n \"is-selected\": props.selectable && props.selected\n }\n]);\n\nfunction toggleSelected() {\n if (!props.selectable) {\n return;\n }\n\n const nextValue = !props.selected;\n emit(\"update:selected\", nextValue);\n emit(\"select\", nextValue);\n}\n</script>\n\n<template>\n <section\n :class=\"classes\"\n :role=\"selectable ? 'button' : undefined\"\n :tabindex=\"selectable ? 0 : undefined\"\n :aria-pressed=\"selectable ? selected : undefined\"\n @click=\"toggleSelected\"\n @keydown.enter.prevent=\"toggleSelected\"\n @keydown.space.prevent=\"toggleSelected\"\n >\n <div v-if=\"selectable && selected\" class=\"mo-card__selected-mark\" aria-hidden=\"true\">\n <slot name=\"selected-icon\">♛</slot>\n </div>\n\n <div v-if=\"$slots.header\" class=\"mo-card__header\">\n <slot name=\"header\" />\n </div>\n\n <div class=\"mo-card__body\">\n <slot />\n </div>\n\n <div v-if=\"$slots.footer\" class=\"mo-card__footer\">\n <slot name=\"footer\" />\n </div>\n </section>\n</template>\n","import { withInstall } from \"@/utils/install\";\nimport Card from \"./src/card.vue\";\n\nexport const MoCard = withInstall(Card);\n\nexport default MoCard;\nexport type { CardProps } from \"./src/card\";\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport type { StyleValue } from \"vue\";\nimport type { ColProps } from \"./col\";\n\ndefineOptions({\n name: \"MoCol\"\n});\n\nconst props = withDefaults(defineProps<ColProps>(), {\n span: 24\n});\n\nconst normalizedSpan = computed(() => {\n const span = Number(props.span);\n\n if (!Number.isFinite(span)) {\n return 24;\n }\n\n return Math.min(Math.max(span, 1), 24);\n});\n\nconst styles = computed<StyleValue>(() => ({\n \"--mo-col-span\": normalizedSpan.value\n}));\n</script>\n\n<template>\n <div class=\"mo-col\" :style=\"styles\">\n <slot />\n </div>\n</template>\n","import { withInstall } from \"@/utils/install\";\nimport Col from \"./src/col.vue\";\n\nexport const MoCol = withInstall(Col);\n\nexport default MoCol;\nexport type { ColProps } from \"./src/col\";\n","import type { InjectionKey } from \"vue\";\nimport type { FormLabelPosition, FormModel, FormRequireAsteriskPosition, FormRules } from \"./form\";\nimport type { MojoTheme } from \"@/foundation\";\n\nexport interface FormItemContext {\n prop?: string;\n validate: () => Promise<boolean>;\n resetValidation: () => void;\n}\n\nexport interface FormContext {\n model?: FormModel;\n rules?: FormRules;\n theme: MojoTheme;\n labelPosition: FormLabelPosition;\n labelWidth?: string | number;\n requireAsteriskPosition: FormRequireAsteriskPosition;\n labelSuffix: string;\n showMessage: boolean;\n addField: (field: FormItemContext) => void;\n removeField: (field: FormItemContext) => void;\n}\n\nexport const formContextKey: InjectionKey<FormContext> = Symbol(\"MoFormContext\");\n","<script setup lang=\"ts\">\nimport { computed, provide, reactive } from \"vue\";\nimport type { StyleValue } from \"vue\";\nimport type { FormItemContext, FormContext } from \"./context\";\nimport { formContextKey } from \"./context\";\nimport type { FormProps, FormValidateResult } from \"./form\";\n\ndefineOptions({\n name: \"MoForm\"\n});\n\nconst props = withDefaults(defineProps<FormProps>(), {\n model: undefined,\n rules: undefined,\n theme: \"light\",\n labelPosition: \"right\",\n labelWidth: \"\",\n requireAsteriskPosition: \"left\",\n labelSuffix: \"\",\n showMessage: true\n});\n\nconst fields = reactive<FormItemContext[]>([]);\n\nconst classes = computed(() => [\n \"mo-form\",\n `mo-theme--${props.theme}`,\n `mo-form--label-${props.labelPosition}`\n]);\n\nconst styles = computed<StyleValue>(() => ({\n \"--mo-form-label-width\":\n typeof props.labelWidth === \"number\" ? `${props.labelWidth}px` : props.labelWidth || undefined\n}));\n\nfunction addField(field: FormItemContext) {\n if (!fields.includes(field)) {\n fields.push(field);\n }\n}\n\nfunction removeField(field: FormItemContext) {\n const index = fields.indexOf(field);\n\n if (index >= 0) {\n fields.splice(index, 1);\n }\n}\n\nasync function validate(): Promise<FormValidateResult> {\n const results = await Promise.all(fields.map((field) => field.validate()));\n const errors: Record<string, string> = {};\n\n fields.forEach((field, index) => {\n if (!results[index] && field.prop) {\n errors[field.prop] = \"\";\n }\n });\n\n return {\n valid: results.every(Boolean),\n errors\n };\n}\n\nfunction resetFields() {\n fields.forEach((field) => field.resetValidation());\n}\n\nconst context = computed<FormContext>(() => ({\n model: props.model,\n rules: props.rules,\n theme: props.theme,\n labelPosition: props.labelPosition,\n labelWidth: props.labelWidth,\n requireAsteriskPosition: props.requireAsteriskPosition,\n labelSuffix: props.labelSuffix,\n showMessage: props.showMessage,\n addField,\n removeField\n}));\n\nprovide(formContextKey, context.value);\n\ndefineExpose({\n validate,\n resetFields\n});\n</script>\n\n<template>\n <form :class=\"classes\" :style=\"styles\">\n <slot />\n </form>\n</template>\n","import { withInstall } from \"@/utils/install\";\nimport Form from \"./src/form.vue\";\n\nexport const MoForm = withInstall(Form);\n\nexport default MoForm;\nexport type { FormLabelPosition, FormProps, FormRequireAsteriskPosition, FormRules } from \"./src/form\";\n","export type ValidatorValue = unknown;\n\nexport interface MojoRule {\n required?: boolean;\n message?: string;\n validator?: (value: ValidatorValue) => boolean | string | Promise<boolean | string>;\n}\n\nexport function isEmpty(value: ValidatorValue) {\n if (value === null || value === undefined) {\n return true;\n }\n\n if (typeof value === \"string\") {\n return value.trim().length === 0;\n }\n\n if (Array.isArray(value)) {\n return value.length === 0;\n }\n\n return false;\n}\n\nexport function isRequired(value: ValidatorValue) {\n return !isEmpty(value);\n}\n\nexport function isEmail(value: ValidatorValue) {\n if (isEmpty(value)) {\n return true;\n }\n\n return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(String(value));\n}\n\nexport function isPhone(value: ValidatorValue) {\n if (isEmpty(value)) {\n return true;\n }\n\n return /^1[3-9]\\d{9}$/.test(String(value));\n}\n\nexport function requiredRule(message = \"该项为必填项\"): MojoRule {\n return {\n required: true,\n message\n };\n}\n\nexport function emailRule(message = \"请输入正确的邮箱地址\"): MojoRule {\n return {\n message,\n validator: (value) => isEmail(value) || message\n };\n}\n\nexport function phoneRule(message = \"请输入正确的手机号\"): MojoRule {\n return {\n message,\n validator: (value) => isPhone(value) || message\n };\n}\n","<script setup lang=\"ts\">\nimport { computed, inject, onBeforeUnmount, onMounted, ref } from \"vue\";\nimport { formContextKey } from \"@/components/form/src/context\";\nimport type { FormItemContext } from \"@/components/form/src/context\";\nimport { isEmpty } from \"@/utils/validators\";\nimport type { MojoRule } from \"@/utils/validators\";\nimport type { FormItemProps } from \"./form-item\";\n\ndefineOptions({\n name: \"MoFormItem\"\n});\n\nconst props = withDefaults(defineProps<FormItemProps>(), {\n label: \"\",\n prop: \"\",\n required: false,\n rules: undefined,\n help: \"\"\n});\n\nconst form = inject(formContextKey);\nconst errorMessage = ref(\"\");\n\nconst value = computed(() => (props.prop ? form?.model?.[props.prop] : undefined));\n\nconst normalizedRules = computed<MojoRule[]>(() => {\n const formRule = props.prop ? form?.rules?.[props.prop] : undefined;\n const rules = [props.rules, formRule].flat().filter(Boolean) as MojoRule[];\n\n if (props.required && !rules.some((rule) => rule.required)) {\n rules.unshift({ required: true, message: \"该项为必填项\" });\n }\n\n return rules;\n});\n\nconst isRequiredField = computed(\n () => props.required || normalizedRules.value.some((rule) => rule.required)\n);\n\nconst classes = computed(() => [\n \"mo-form-item\",\n {\n \"is-error\": Boolean(errorMessage.value),\n \"is-required\": isRequiredField.value\n }\n]);\n\nasync function validate() {\n errorMessage.value = \"\";\n\n for (const rule of normalizedRules.value) {\n if (rule.required && isEmpty(value.value)) {\n errorMessage.value = rule.message || \"该项为必填项\";\n return false;\n }\n\n if (rule.validator) {\n const result = await rule.validator(value.value);\n\n if (result !== true) {\n errorMessage.value = typeof result === \"string\" ? result : rule.message || \"校验失败\";\n return false;\n }\n }\n }\n\n return true;\n}\n\nfunction resetValidation() {\n errorMessage.value = \"\";\n}\n\nconst fieldContext: FormItemContext = {\n prop: props.prop,\n validate,\n resetValidation\n};\n\nonMounted(() => {\n form?.addField(fieldContext);\n});\n\nonBeforeUnmount(() => {\n form?.removeField(fieldContext);\n});\n</script>\n\n<template>\n <div :class=\"classes\">\n <label v-if=\"label\" class=\"mo-form-item__label\">\n <span\n v-if=\"isRequiredField && form?.requireAsteriskPosition === 'left'\"\n class=\"mo-form-item__asterisk\"\n >\n *\n </span>\n <span>{{ label }}</span>\n <span v-if=\"form?.labelSuffix\" class=\"mo-form-item__suffix\">{{ form.labelSuffix }}</span>\n <span\n v-if=\"isRequiredField && form?.requireAsteriskPosition === 'right'\"\n class=\"mo-form-item__asterisk\"\n >\n *\n </span>\n </label>\n\n <div class=\"mo-form-item__content\">\n <slot :error=\"errorMessage\" :validate=\"validate\" />\n <div v-if=\"help && !errorMessage\" class=\"mo-form-item__help\">{{ help }}</div>\n <div v-if=\"form?.showMessage && errorMessage\" class=\"mo-form-item__error\">\n {{ errorMessage }}\n </div>\n </div>\n </div>\n</template>\n","import { withInstall } from \"@/utils/install\";\nimport FormItem from \"./src/form-item.vue\";\n\nexport const MoFormItem = withInstall(FormItem);\n\nexport default MoFormItem;\nexport type { FormItemProps } from \"./src/form-item\";\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport type { StyleValue } from \"vue\";\nimport type { InputProps } from \"./input\";\n\ndefineOptions({\n name: \"MoInput\"\n});\n\nconst props = withDefaults(defineProps<InputProps>(), {\n modelValue: \"\",\n tags: () => [],\n type: \"text\",\n size: \"default\",\n theme: \"light\",\n placeholder: \"\",\n maxlength: undefined,\n showWordLimit: false,\n rows: 3,\n disabled: false,\n readonly: false,\n clearable: false,\n taggable: false,\n allowDuplicateTags: false,\n resize: \"vertical\"\n});\n\nconst emit = defineEmits<{\n \"update:modelValue\": [value: string];\n \"update:tags\": [value: string[]];\n input: [value: string];\n change: [value: string];\n clear: [];\n tagAdd: [value: string];\n tagRemove: [value: string, index: number];\n}>();\n\nconst inputValue = computed(() => String(props.modelValue ?? \"\"));\nconst isTextarea = computed(() => props.type === \"textarea\");\nconst isTaggable = computed(() => props.taggable && !isTextarea.value);\nconst shouldShowWordLimit = computed(() => props.showWordLimit && props.maxlength !== undefined);\n\nconst classes = computed(() => [\n \"mo-input\",\n `mo-input--${props.size}`,\n `mo-theme--${props.theme}`,\n {\n \"is-disabled\": props.disabled,\n \"is-taggable\": isTaggable.value,\n \"is-textarea\": isTextarea.value\n }\n]);\n\nconst styles = computed<StyleValue>(() => ({\n \"--mo-input-rows\": props.rows\n}));\n\nfunction handleInput(event: Event) {\n const value = (event.target as HTMLInputElement | HTMLTextAreaElement).value;\n emit(\"update:modelValue\", value);\n emit(\"input\", value);\n}\n\nfunction handleChange(event: Event) {\n emit(\"change\", (event.target as HTMLInputElement | HTMLTextAreaElement).value);\n}\n\nfunction handleClear() {\n emit(\"update:modelValue\", \"\");\n emit(\"input\", \"\");\n emit(\"clear\");\n}\n\nfunction handleEnter(event: KeyboardEvent) {\n if (!isTaggable.value || props.disabled || props.readonly) {\n return;\n }\n\n const value = inputValue.value.trim();\n\n if (!value) {\n return;\n }\n\n event.preventDefault();\n\n if (!props.allowDuplicateTags && props.tags.includes(value)) {\n emit(\"update:modelValue\", \"\");\n emit(\"input\", \"\");\n return;\n }\n\n emit(\"update:tags\", [...props.tags, value]);\n emit(\"update:modelValue\", \"\");\n emit(\"input\", \"\");\n emit(\"tagAdd\", value);\n}\n\nfunction handleRemoveTag(tag: string, index: number) {\n const nextTags = props.tags.filter((_, tagIndex) => tagIndex !== index);\n emit(\"update:tags\", nextTags);\n emit(\"tagRemove\", tag, index);\n}\n</script>\n\n<template>\n <div :class=\"classes\" :style=\"styles\">\n <textarea\n v-if=\"isTextarea\"\n class=\"mo-input__inner\"\n :disabled=\"disabled\"\n :maxlength=\"maxlength\"\n :placeholder=\"placeholder\"\n :readonly=\"readonly\"\n :rows=\"Number(rows)\"\n :style=\"{ resize }\"\n :value=\"inputValue\"\n @change=\"handleChange\"\n @input=\"handleInput\"\n />\n <div v-else-if=\"isTaggable\" class=\"mo-input__tag-wrapper\">\n <span v-for=\"(tag, index) in tags\" :key=\"`${tag}-${index}`\" class=\"mo-input__tag\">\n <span class=\"mo-input__tag-text\">{{ tag }}</span>\n <button\n class=\"mo-input__tag-close\"\n type=\"button\"\n :aria-label=\"`Remove ${tag}`\"\n @click=\"handleRemoveTag(tag, index)\"\n >\n ×\n </button>\n </span>\n <input\n class=\"mo-input__tag-input\"\n :disabled=\"disabled\"\n :maxlength=\"maxlength\"\n :placeholder=\"placeholder\"\n :readonly=\"readonly\"\n :value=\"inputValue\"\n type=\"text\"\n @change=\"handleChange\"\n @input=\"handleInput\"\n @keydown.enter=\"handleEnter\"\n />\n </div>\n <input\n v-else\n class=\"mo-input__inner\"\n :disabled=\"disabled\"\n :maxlength=\"maxlength\"\n :placeholder=\"placeholder\"\n :readonly=\"readonly\"\n :value=\"inputValue\"\n type=\"text\"\n @change=\"handleChange\"\n @input=\"handleInput\"\n @keydown.enter=\"handleEnter\"\n />\n\n <button\n v-if=\"clearable && inputValue && !disabled && !readonly && !isTextarea && !isTaggable\"\n class=\"mo-input__clear\"\n type=\"button\"\n aria-label=\"Clear\"\n @click=\"handleClear\"\n >\n ×\n </button>\n\n <span v-if=\"shouldShowWordLimit\" class=\"mo-input__count\">\n {{ inputValue.length }} / {{ maxlength }}\n </span>\n </div>\n</template>\n","import { withInstall } from \"@/utils/install\";\nimport Input from \"./src/input.vue\";\n\nexport const MoInput = withInstall(Input);\n\nexport default MoInput;\nexport type { InputProps } from \"./src/input\";\n","import{computed as p,ref as s}from\"vue\";function d(u,e,r){let i=s(r==null?void 0:r.value),f=p(()=>u.value!==void 0);return[p(()=>f.value?u.value:i.value),function(t){return f.value||(i.value=t),e==null?void 0:e(t)}]}export{d as useControllable};\n","function t(e){typeof queueMicrotask==\"function\"?queueMicrotask(e):Promise.resolve().then(e).catch(o=>setTimeout(()=>{throw o}))}export{t as microTask};\n","var r;import*as e from\"vue\";let n=Symbol(\"headlessui.useid\"),o=0;const i=(r=e.useId)!=null?r:function(){return e.inject(n,()=>`${++o}`)()};function s(t){e.provide(n,t)}export{s as provideUseId,i as useId};\n","function o(e){var l;if(e==null||e.value==null)return null;let n=(l=e.value.$el)!=null?l:e.value;return n instanceof Node?n:null}export{o as dom};\n","function u(r,n,...a){if(r in n){let e=n[r];return typeof e==\"function\"?e(...a):e}let t=new Error(`Tried to handle \"${r}\" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(e=>`\"${e}\"`).join(\", \")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,u),t}export{u as match};\n","var i=Object.defineProperty;var d=(t,e,r)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var n=(t,e,r)=>(d(t,typeof e!=\"symbol\"?e+\"\":e,r),r);class s{constructor(){n(this,\"current\",this.detect());n(this,\"currentId\",0)}set(e){this.current!==e&&(this.currentId=0,this.current=e)}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==\"undefined\"||typeof document==\"undefined\"?\"server\":\"client\"}}let c=new s;export{c as env};\n","import{dom as o}from'./dom.js';import{env as t}from'./env.js';function i(r){if(t.isServer)return null;if(r instanceof Node)return r.ownerDocument;if(r!=null&&r.hasOwnProperty(\"value\")){let n=o(r);if(n)return n.ownerDocument}return document}export{i as getOwnerDocument};\n","import{nextTick as b}from\"vue\";import{match as M}from'./match.js';import{getOwnerDocument as f}from'./owner.js';let c=[\"[contentEditable=true]\",\"[tabindex]\",\"a[href]\",\"area[href]\",\"button:not([disabled])\",\"iframe\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\");var N=(n=>(n[n.First=1]=\"First\",n[n.Previous=2]=\"Previous\",n[n.Next=4]=\"Next\",n[n.Last=8]=\"Last\",n[n.WrapAround=16]=\"WrapAround\",n[n.NoScroll=32]=\"NoScroll\",n))(N||{}),T=(o=>(o[o.Error=0]=\"Error\",o[o.Overflow=1]=\"Overflow\",o[o.Success=2]=\"Success\",o[o.Underflow=3]=\"Underflow\",o))(T||{}),F=(t=>(t[t.Previous=-1]=\"Previous\",t[t.Next=1]=\"Next\",t))(F||{});function E(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(c)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}var h=(t=>(t[t.Strict=0]=\"Strict\",t[t.Loose=1]=\"Loose\",t))(h||{});function w(e,r=0){var t;return e===((t=f(e))==null?void 0:t.body)?!1:M(r,{[0](){return e.matches(c)},[1](){let l=e;for(;l!==null;){if(l.matches(c))return!0;l=l.parentElement}return!1}})}function _(e){let r=f(e);b(()=>{r&&!w(r.activeElement,0)&&S(e)})}var y=(t=>(t[t.Keyboard=0]=\"Keyboard\",t[t.Mouse=1]=\"Mouse\",t))(y||{});typeof window!=\"undefined\"&&typeof document!=\"undefined\"&&(document.addEventListener(\"keydown\",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0),document.addEventListener(\"click\",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0));function S(e){e==null||e.focus({preventScroll:!0})}let H=[\"textarea\",\"input\"].join(\",\");function I(e){var r,t;return(t=(r=e==null?void 0:e.matches)==null?void 0:r.call(e,H))!=null?t:!1}function O(e,r=t=>t){return e.slice().sort((t,l)=>{let o=r(t),i=r(l);if(o===null||i===null)return 0;let n=o.compareDocumentPosition(i);return n&Node.DOCUMENT_POSITION_FOLLOWING?-1:n&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function v(e,r){return P(E(),r,{relativeTo:e})}function P(e,r,{sorted:t=!0,relativeTo:l=null,skipElements:o=[]}={}){var m;let i=(m=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e==null?void 0:e.ownerDocument)!=null?m:document,n=Array.isArray(e)?t?O(e):e:E(e);o.length>0&&n.length>1&&(n=n.filter(s=>!o.includes(s))),l=l!=null?l:i.activeElement;let x=(()=>{if(r&5)return 1;if(r&10)return-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),p=(()=>{if(r&1)return 0;if(r&2)return Math.max(0,n.indexOf(l))-1;if(r&4)return Math.max(0,n.indexOf(l))+1;if(r&8)return n.length-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),L=r&32?{preventScroll:!0}:{},a=0,d=n.length,u;do{if(a>=d||a+d<=0)return 0;let s=p+a;if(r&16)s=(s+d)%d;else{if(s<0)return 3;if(s>=d)return 1}u=n[s],u==null||u.focus(L),a+=x}while(u!==i.activeElement);return r&6&&I(u)&&u.select(),2}export{N as Focus,T as FocusResult,h as FocusableMode,S as focusElement,v as focusFrom,P as focusIn,E as getFocusableElements,w as isFocusableElement,_ as restoreFocusIfNecessary,O as sortByDomNode};\n","function t(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function i(){return/Android/gi.test(window.navigator.userAgent)}function n(){return t()||i()}export{i as isAndroid,t as isIOS,n as isMobile};\n","import{watchEffect as r}from\"vue\";import{env as m}from'../utils/env.js';function u(e,t,n){m.isServer||r(o=>{document.addEventListener(e,t,n),o(()=>document.removeEventListener(e,t,n))})}export{u as useDocumentEvent};\n","import{watchEffect as i}from\"vue\";import{env as r}from'../utils/env.js';function w(e,n,t){r.isServer||i(o=>{window.addEventListener(e,n,t),o(()=>window.removeEventListener(e,n,t))})}export{w as useWindowEvent};\n","import{computed as s,ref as E}from\"vue\";import{dom as p}from'../utils/dom.js';import{FocusableMode as d,isFocusableElement as C}from'../utils/focus-management.js';import{isMobile as T}from'../utils/platform.js';import{useDocumentEvent as i}from'./use-document-event.js';import{useWindowEvent as M}from'./use-window-event.js';function w(f,m,l=s(()=>!0)){function a(e,r){if(!l.value||e.defaultPrevented)return;let t=r(e);if(t===null||!t.getRootNode().contains(t))return;let c=function o(n){return typeof n==\"function\"?o(n()):Array.isArray(n)||n instanceof Set?n:[n]}(f);for(let o of c){if(o===null)continue;let n=o instanceof HTMLElement?o:p(o);if(n!=null&&n.contains(t)||e.composed&&e.composedPath().includes(n))return}return!C(t,d.Loose)&&t.tabIndex!==-1&&e.preventDefault(),m(e,t)}let u=E(null);i(\"pointerdown\",e=>{var r,t;l.value&&(u.value=((t=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:t[0])||e.target)},!0),i(\"mousedown\",e=>{var r,t;l.value&&(u.value=((t=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:t[0])||e.target)},!0),i(\"click\",e=>{T()||u.value&&(a(e,()=>u.value),u.value=null)},!0),i(\"touchend\",e=>a(e,()=>e.target instanceof HTMLElement?e.target:null),!0),M(\"blur\",e=>a(e,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}export{w as useOutsideClick};\n","import{onMounted as i,ref as f,watchEffect as l}from\"vue\";import{dom as o}from'../utils/dom.js';function r(t,e){if(t)return t;let n=e!=null?e:\"button\";if(typeof n==\"string\"&&n.toLowerCase()===\"button\")return\"button\"}function s(t,e){let n=f(r(t.value.type,t.value.as));return i(()=>{n.value=r(t.value.type,t.value.as)}),l(()=>{var u;n.value||o(e)&&o(e)instanceof HTMLButtonElement&&!((u=o(e))!=null&&u.hasAttribute(\"type\"))&&(n.value=\"button\")}),n}export{s as useResolveButtonType};\n","import{ref as o}from\"vue\";function r(e){return[e.screenX,e.screenY]}function u(){let e=o([-1,-1]);return{wasMoved(n){let t=r(n);return e.value[0]===t[0]&&e.value[1]===t[1]?!1:(e.value=t,!0)},update(n){e.value=r(n)}}}export{u as useTrackedPointer};\n","import{watchEffect as p}from\"vue\";import{getOwnerDocument as u}from'../utils/owner.js';function i({container:e,accept:t,walk:d,enabled:o}){p(()=>{let r=e.value;if(!r||o!==void 0&&!o.value)return;let l=u(e);if(!l)return;let c=Object.assign(f=>t(f),{acceptNode:t}),n=l.createTreeWalker(r,NodeFilter.SHOW_ELEMENT,c,!1);for(;n.nextNode();)d(n.currentNode)})}export{i as useTreeWalker};\n","import{cloneVNode as O,Fragment as x,h as k}from\"vue\";import{match as w}from'./match.js';var N=(o=>(o[o.None=0]=\"None\",o[o.RenderStrategy=1]=\"RenderStrategy\",o[o.Static=2]=\"Static\",o))(N||{}),S=(e=>(e[e.Unmount=0]=\"Unmount\",e[e.Hidden=1]=\"Hidden\",e))(S||{});function A({visible:r=!0,features:t=0,ourProps:e,theirProps:o,...i}){var a;let n=j(o,e),l=Object.assign(i,{props:n});if(r||t&2&&n.static)return y(l);if(t&1){let d=(a=n.unmount)==null||a?0:1;return w(d,{[0](){return null},[1](){return y({...i,props:{...n,hidden:!0,style:{display:\"none\"}}})}})}return y(l)}function y({props:r,attrs:t,slots:e,slot:o,name:i}){var m,h;let{as:n,...l}=T(r,[\"unmount\",\"static\"]),a=(m=e.default)==null?void 0:m.call(e,o),d={};if(o){let u=!1,c=[];for(let[p,f]of Object.entries(o))typeof f==\"boolean\"&&(u=!0),f===!0&&c.push(p);u&&(d[\"data-headlessui-state\"]=c.join(\" \"))}if(n===\"template\"){if(a=b(a!=null?a:[]),Object.keys(l).length>0||Object.keys(t).length>0){let[u,...c]=a!=null?a:[];if(!v(u)||c.length>0)throw new Error(['Passing props on \"template\"!',\"\",`The current component <${i} /> is rendering a \"template\".`,\"However we need to passthrough the following props:\",Object.keys(l).concat(Object.keys(t)).map(s=>s.trim()).filter((s,g,R)=>R.indexOf(s)===g).sort((s,g)=>s.localeCompare(g)).map(s=>` - ${s}`).join(`\n`),\"\",\"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(s=>` - ${s}`).join(`\n`)].join(`\n`));let p=j((h=u.props)!=null?h:{},l,d),f=O(u,p,!0);for(let s in p)s.startsWith(\"on\")&&(f.props||(f.props={}),f.props[s]=p[s]);return f}return Array.isArray(a)&&a.length===1?a[0]:a}return k(n,Object.assign({},l,d),{default:()=>a})}function b(r){return r.flatMap(t=>t.type===x?b(t.children):[t])}function j(...r){var o;if(r.length===0)return{};if(r.length===1)return r[0];let t={},e={};for(let i of r)for(let n in i)n.startsWith(\"on\")&&typeof i[n]==\"function\"?((o=e[n])!=null||(e[n]=[]),e[n].push(i[n])):t[n]=i[n];if(t.disabled||t[\"aria-disabled\"])return Object.assign(t,Object.fromEntries(Object.keys(e).map(i=>[i,void 0])));for(let i in e)Object.assign(t,{[i](n,...l){let a=e[i];for(let d of a){if(n instanceof Event&&n.defaultPrevented)return;d(n,...l)}}});return t}function E(r){let t=Object.assign({},r);for(let e in t)t[e]===void 0&&delete t[e];return t}function T(r,t=[]){let e=Object.assign({},r);for(let o of t)o in e&&delete e[o];return e}function v(r){return r==null?!1:typeof r.type==\"string\"||typeof r.type==\"object\"||typeof r.type==\"function\"}export{N as Features,S as RenderStrategy,E as compact,T as omit,A as render};\n","import{defineComponent as a}from\"vue\";import{render as p}from'../utils/render.js';var u=(e=>(e[e.None=1]=\"None\",e[e.Focusable=2]=\"Focusable\",e[e.Hidden=4]=\"Hidden\",e))(u||{});let f=a({name:\"Hidden\",props:{as:{type:[Object,String],default:\"div\"},features:{type:Number,default:1}},setup(t,{slots:n,attrs:i}){return()=>{var r;let{features:e,...d}=t,o={\"aria-hidden\":(e&2)===2?!0:(r=d[\"aria-hidden\"])!=null?r:void 0,hidden:(e&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\",...(e&4)===4&&(e&2)!==2&&{display:\"none\"}}};return p({ourProps:o,theirProps:d,slot:{},attrs:i,slots:n,name:\"Hidden\"})}}});export{u as Features,f as Hidden};\n","import{inject as p,provide as r}from\"vue\";let n=Symbol(\"Context\");var i=(e=>(e[e.Open=1]=\"Open\",e[e.Closed=2]=\"Closed\",e[e.Closing=4]=\"Closing\",e[e.Opening=8]=\"Opening\",e))(i||{});function s(){return l()!==null}function l(){return p(n,null)}function t(o){r(n,o)}export{i as State,s as hasOpenClosed,l as useOpenClosed,t as useOpenClosedProvider};\n","var o=(r=>(r.Space=\" \",r.Enter=\"Enter\",r.Escape=\"Escape\",r.Backspace=\"Backspace\",r.Delete=\"Delete\",r.ArrowLeft=\"ArrowLeft\",r.ArrowUp=\"ArrowUp\",r.ArrowRight=\"ArrowRight\",r.ArrowDown=\"ArrowDown\",r.Home=\"Home\",r.End=\"End\",r.PageUp=\"PageUp\",r.PageDown=\"PageDown\",r.Tab=\"Tab\",r))(o||{});export{o as Keys};\n","function u(l){throw new Error(\"Unexpected object: \"+l)}var c=(i=>(i[i.First=0]=\"First\",i[i.Previous=1]=\"Previous\",i[i.Next=2]=\"Next\",i[i.Last=3]=\"Last\",i[i.Specific=4]=\"Specific\",i[i.Nothing=5]=\"Nothing\",i))(c||{});function f(l,n){let t=n.resolveItems();if(t.length<=0)return null;let r=n.resolveActiveIndex(),s=r!=null?r:-1;switch(l.focus){case 0:{for(let e=0;e<t.length;++e)if(!n.resolveDisabled(t[e],e,t))return e;return r}case 1:{s===-1&&(s=t.length);for(let e=s-1;e>=0;--e)if(!n.resolveDisabled(t[e],e,t))return e;return r}case 2:{for(let e=s+1;e<t.length;++e)if(!n.resolveDisabled(t[e],e,t))return e;return r}case 3:{for(let e=t.length-1;e>=0;--e)if(!n.resolveDisabled(t[e],e,t))return e;return r}case 4:{for(let e=0;e<t.length;++e)if(n.resolveId(t[e],e,t)===l.id)return e;return r}case 5:return null;default:u(l)}}export{c as Focus,f as calculateActiveIndex};\n","function e(i={},s=null,t=[]){for(let[r,n]of Object.entries(i))o(t,f(s,r),n);return t}function f(i,s){return i?i+\"[\"+s+\"]\":s}function o(i,s,t){if(Array.isArray(t))for(let[r,n]of t.entries())o(i,f(s,r.toString()),n);else t instanceof Date?i.push([s,t.toISOString()]):typeof t==\"boolean\"?i.push([s,t?\"1\":\"0\"]):typeof t==\"string\"?i.push([s,t]):typeof t==\"number\"?i.push([s,`${t}`]):t==null?i.push([s,\"\"]):e(t,s,i)}function p(i){var t,r;let s=(t=i==null?void 0:i.form)!=null?t:i.closest(\"form\");if(s){for(let n of s.elements)if(n!==i&&(n.tagName===\"INPUT\"&&n.type===\"submit\"||n.tagName===\"BUTTON\"&&n.type===\"submit\"||n.nodeName===\"INPUT\"&&n.type===\"image\")){n.click();return}(r=s.requestSubmit)==null||r.call(s)}}export{p as attemptSubmit,e as objectToFormEntries};\n","let a=/([\\u2700-\\u27BF]|[\\uE000-\\uF8FF]|\\uD83C[\\uDC00-\\uDFFF]|\\uD83D[\\uDC00-\\uDFFF]|[\\u2011-\\u26FF]|\\uD83E[\\uDD10-\\uDDFF])/g;function o(e){var r,i;let n=(r=e.innerText)!=null?r:\"\",t=e.cloneNode(!0);if(!(t instanceof HTMLElement))return n;let u=!1;for(let f of t.querySelectorAll('[hidden],[aria-hidden],[role=\"img\"]'))f.remove(),u=!0;let l=u?(i=t.innerText)!=null?i:\"\":n;return a.test(l)&&(l=l.replace(a,\"\")),l}function g(e){let n=e.getAttribute(\"aria-label\");if(typeof n==\"string\")return n.trim();let t=e.getAttribute(\"aria-labelledby\");if(t){let u=t.split(\" \").map(l=>{let r=document.getElementById(l);if(r){let i=r.getAttribute(\"aria-label\");return typeof i==\"string\"?i.trim():o(r).trim()}return null}).filter(Boolean);if(u.length>0)return u.join(\", \")}return o(e).trim()}export{g as getTextValue};\n","import{ref as n}from\"vue\";import{dom as o}from'../utils/dom.js';import{getTextValue as i}from'../utils/get-text-value.js';function p(a){let t=n(\"\"),r=n(\"\");return()=>{let e=o(a);if(!e)return\"\";let l=e.innerText;if(t.value===l)return r.value;let u=i(e).trim().toLowerCase();return t.value=l,r.value=u,u}}export{p as useTextValue};\n","import{computed as x,defineComponent as E,Fragment as z,h as N,inject as _,nextTick as V,onMounted as K,onUnmounted as q,provide as W,ref as T,toRaw as R,watch as H,watchEffect as G}from\"vue\";import{useControllable as J}from'../../hooks/use-controllable.js';import{useId as F}from'../../hooks/use-id.js';import{useOutsideClick as X}from'../../hooks/use-outside-click.js';import{useResolveButtonType as Y}from'../../hooks/use-resolve-button-type.js';import{useTextValue as Z}from'../../hooks/use-text-value.js';import{useTrackedPointer as ee}from'../../hooks/use-tracked-pointer.js';import{Features as te,Hidden as oe}from'../../internal/hidden.js';import{State as B,useOpenClosed as ae,useOpenClosedProvider as ie}from'../../internal/open-closed.js';import{Keys as c}from'../../keyboard.js';import{calculateActiveIndex as ne,Focus as g}from'../../utils/calculate-active-index.js';import{dom as S}from'../../utils/dom.js';import{FocusableMode as le,isFocusableElement as ue,sortByDomNode as re}from'../../utils/focus-management.js';import{objectToFormEntries as se}from'../../utils/form.js';import{match as P}from'../../utils/match.js';import{compact as de,Features as U,omit as fe,render as j}from'../../utils/render.js';function pe(o,b){return o===b}var ce=(r=>(r[r.Open=0]=\"Open\",r[r.Closed=1]=\"Closed\",r))(ce||{}),ve=(r=>(r[r.Single=0]=\"Single\",r[r.Multi=1]=\"Multi\",r))(ve||{}),be=(r=>(r[r.Pointer=0]=\"Pointer\",r[r.Other=1]=\"Other\",r))(be||{});function me(o){requestAnimationFrame(()=>requestAnimationFrame(o))}let $=Symbol(\"ListboxContext\");function A(o){let b=_($,null);if(b===null){let r=new Error(`<${o} /> is missing a parent <Listbox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,A),r}return b}let Ie=E({name:\"Listbox\",emits:{\"update:modelValue\":o=>!0},props:{as:{type:[Object,String],default:\"template\"},disabled:{type:[Boolean],default:!1},by:{type:[String,Function],default:()=>pe},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(o,{slots:b,attrs:r,emit:w}){let n=T(1),e=T(null),f=T(null),v=T(null),s=T([]),m=T(\"\"),p=T(null),a=T(1);function u(t=i=>i){let i=p.value!==null?s.value[p.value]:null,l=re(t(s.value.slice()),O=>S(O.dataRef.domRef)),d=i?l.indexOf(i):null;return d===-1&&(d=null),{options:l,activeOptionIndex:d}}let D=x(()=>o.multiple?1:0),[y,L]=J(x(()=>o.modelValue),t=>w(\"update:modelValue\",t),x(()=>o.defaultValue)),M=x(()=>y.value===void 0?P(D.value,{[1]:[],[0]:void 0}):y.value),k={listboxState:n,value:M,mode:D,compare(t,i){if(typeof o.by==\"string\"){let l=o.by;return(t==null?void 0:t[l])===(i==null?void 0:i[l])}return o.by(t,i)},orientation:x(()=>o.horizontal?\"horizontal\":\"vertical\"),labelRef:e,buttonRef:f,optionsRef:v,disabled:x(()=>o.disabled),options:s,searchQuery:m,activeOptionIndex:p,activationTrigger:a,closeListbox(){o.disabled||n.value!==1&&(n.value=1,p.value=null)},openListbox(){o.disabled||n.value!==0&&(n.value=0)},goToOption(t,i,l){if(o.disabled||n.value===1)return;let d=u(),O=ne(t===g.Specific?{focus:g.Specific,id:i}:{focus:t},{resolveItems:()=>d.options,resolveActiveIndex:()=>d.activeOptionIndex,resolveId:h=>h.id,resolveDisabled:h=>h.dataRef.disabled});m.value=\"\",p.value=O,a.value=l!=null?l:1,s.value=d.options},search(t){if(o.disabled||n.value===1)return;let l=m.value!==\"\"?0:1;m.value+=t.toLowerCase();let O=(p.value!==null?s.value.slice(p.value+l).concat(s.value.slice(0,p.value+l)):s.value).find(I=>I.dataRef.textValue.startsWith(m.value)&&!I.dataRef.disabled),h=O?s.value.indexOf(O):-1;h===-1||h===p.value||(p.value=h,a.value=1)},clearSearch(){o.disabled||n.value!==1&&m.value!==\"\"&&(m.value=\"\")},registerOption(t,i){let l=u(d=>[...d,{id:t,dataRef:i}]);s.value=l.options,p.value=l.activeOptionIndex},unregisterOption(t){let i=u(l=>{let d=l.findIndex(O=>O.id===t);return d!==-1&&l.splice(d,1),l});s.value=i.options,p.value=i.activeOptionIndex,a.value=1},theirOnChange(t){o.disabled||L(t)},select(t){o.disabled||L(P(D.value,{[0]:()=>t,[1]:()=>{let i=R(k.value.value).slice(),l=R(t),d=i.findIndex(O=>k.compare(l,R(O)));return d===-1?i.push(l):i.splice(d,1),i}}))}};X([f,v],(t,i)=>{var l;k.closeListbox(),ue(i,le.Loose)||(t.preventDefault(),(l=S(f))==null||l.focus())},x(()=>n.value===0)),W($,k),ie(x(()=>P(n.value,{[0]:B.Open,[1]:B.Closed})));let C=x(()=>{var t;return(t=S(f))==null?void 0:t.closest(\"form\")});return K(()=>{H([C],()=>{if(!C.value||o.defaultValue===void 0)return;function t(){k.theirOnChange(o.defaultValue)}return C.value.addEventListener(\"reset\",t),()=>{var i;(i=C.value)==null||i.removeEventListener(\"reset\",t)}},{immediate:!0})}),()=>{let{name:t,modelValue:i,disabled:l,form:d,...O}=o,h={open:n.value===0,disabled:l,value:M.value};return N(z,[...t!=null&&M.value!=null?se({[t]:M.value}).map(([I,Q])=>N(oe,de({features:te.Hidden,key:I,as:\"input\",type:\"hidden\",hidden:!0,readOnly:!0,form:d,disabled:l,name:I,value:Q}))):[],j({ourProps:{},theirProps:{...r,...fe(O,[\"defaultValue\",\"onUpdate:modelValue\",\"horizontal\",\"multiple\",\"by\"])},slot:h,slots:b,attrs:r,name:\"Listbox\"})])}}}),Ee=E({name:\"ListboxLabel\",props:{as:{type:[Object,String],default:\"label\"},id:{type:String,default:null}},setup(o,{attrs:b,slots:r}){var f;let w=(f=o.id)!=null?f:`headlessui-listbox-label-${F()}`,n=A(\"ListboxLabel\");function e(){var v;(v=S(n.buttonRef))==null||v.focus({preventScroll:!0})}return()=>{let v={open:n.listboxState.value===0,disabled:n.disabled.value},{...s}=o,m={id:w,ref:n.labelRef,onClick:e};return j({ourProps:m,theirProps:s,slot:v,attrs:b,slots:r,name:\"ListboxLabel\"})}}}),je=E({name:\"ListboxButton\",props:{as:{type:[Object,String],default:\"button\"},id:{type:String,default:null}},setup(o,{attrs:b,slots:r,expose:w}){var p;let n=(p=o.id)!=null?p:`headlessui-listbox-button-${F()}`,e=A(\"ListboxButton\");w({el:e.buttonRef,$el:e.buttonRef});function f(a){switch(a.key){case c.Space:case c.Enter:case c.ArrowDown:a.preventDefault(),e.openListbox(),V(()=>{var u;(u=S(e.optionsRef))==null||u.focus({preventScroll:!0}),e.value.value||e.goToOption(g.First)});break;case c.ArrowUp:a.preventDefault(),e.openListbox(),V(()=>{var u;(u=S(e.optionsRef))==null||u.focus({preventScroll:!0}),e.value.value||e.goToOption(g.Last)});break}}function v(a){switch(a.key){case c.Space:a.preventDefault();break}}function s(a){e.disabled.value||(e.listboxState.value===0?(e.closeListbox(),V(()=>{var u;return(u=S(e.buttonRef))==null?void 0:u.focus({preventScroll:!0})})):(a.preventDefault(),e.openListbox(),me(()=>{var u;return(u=S(e.optionsRef))==null?void 0:u.focus({preventScroll:!0})})))}let m=Y(x(()=>({as:o.as,type:b.type})),e.buttonRef);return()=>{var y,L;let a={open:e.listboxState.value===0,disabled:e.disabled.value,value:e.value.value},{...u}=o,D={ref:e.buttonRef,id:n,type:m.value,\"aria-haspopup\":\"listbox\",\"aria-controls\":(y=S(e.optionsRef))==null?void 0:y.id,\"aria-expanded\":e.listboxState.value===0,\"aria-labelledby\":e.labelRef.value?[(L=S(e.labelRef))==null?void 0:L.id,n].join(\" \"):void 0,disabled:e.disabled.value===!0?!0:void 0,onKeydown:f,onKeyup:v,onClick:s};return j({ourProps:D,theirProps:u,slot:a,attrs:b,slots:r,name:\"ListboxButton\"})}}}),Ae=E({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(o,{attrs:b,slots:r,expose:w}){var p;let n=(p=o.id)!=null?p:`headlessui-listbox-options-${F()}`,e=A(\"ListboxOptions\"),f=T(null);w({el:e.optionsRef,$el:e.optionsRef});function v(a){switch(f.value&&clearTimeout(f.value),a.key){case c.Space:if(e.searchQuery.value!==\"\")return a.preventDefault(),a.stopPropagation(),e.search(a.key);case c.Enter:if(a.preventDefault(),a.stopPropagation(),e.activeOptionIndex.value!==null){let u=e.options.value[e.activeOptionIndex.value];e.select(u.dataRef.value)}e.mode.value===0&&(e.closeListbox(),V(()=>{var u;return(u=S(e.buttonRef))==null?void 0:u.focus({preventScroll:!0})}));break;case P(e.orientation.value,{vertical:c.ArrowDown,horizontal:c.ArrowRight}):return a.preventDefault(),a.stopPropagation(),e.goToOption(g.Next);case P(e.orientation.value,{vertical:c.ArrowUp,horizontal:c.ArrowLeft}):return a.preventDefault(),a.stopPropagation(),e.goToOption(g.Previous);case c.Home:case c.PageUp:return a.preventDefault(),a.stopPropagation(),e.goToOption(g.First);case c.End:case c.PageDown:return a.preventDefault(),a.stopPropagation(),e.goToOption(g.Last);case c.Escape:a.preventDefault(),a.stopPropagation(),e.closeListbox(),V(()=>{var u;return(u=S(e.buttonRef))==null?void 0:u.focus({preventScroll:!0})});break;case c.Tab:a.preventDefault(),a.stopPropagation();break;default:a.key.length===1&&(e.search(a.key),f.value=setTimeout(()=>e.clearSearch(),350));break}}let s=ae(),m=x(()=>s!==null?(s.value&B.Open)===B.Open:e.listboxState.value===0);return()=>{var y,L;let a={open:e.listboxState.value===0},{...u}=o,D={\"aria-activedescendant\":e.activeOptionIndex.value===null||(y=e.options.value[e.activeOptionIndex.value])==null?void 0:y.id,\"aria-multiselectable\":e.mode.value===1?!0:void 0,\"aria-labelledby\":(L=S(e.buttonRef))==null?void 0:L.id,\"aria-orientation\":e.orientation.value,id:n,onKeydown:v,role:\"listbox\",tabIndex:0,ref:e.optionsRef};return j({ourProps:D,theirProps:u,slot:a,attrs:b,slots:r,features:U.RenderStrategy|U.Static,visible:m.value,name:\"ListboxOptions\"})}}}),Fe=E({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(o,{slots:b,attrs:r,expose:w}){var C;let n=(C=o.id)!=null?C:`headlessui-listbox-option-${F()}`,e=A(\"ListboxOption\"),f=T(null);w({el:f,$el:f});let v=x(()=>e.activeOptionIndex.value!==null?e.options.value[e.activeOptionIndex.value].id===n:!1),s=x(()=>P(e.mode.value,{[0]:()=>e.compare(R(e.value.value),R(o.value)),[1]:()=>R(e.value.value).some(t=>e.compare(R(t),R(o.value)))})),m=x(()=>P(e.mode.value,{[1]:()=>{var i;let t=R(e.value.value);return((i=e.options.value.find(l=>t.some(d=>e.compare(R(d),R(l.dataRef.value)))))==null?void 0:i.id)===n},[0]:()=>s.value})),p=Z(f),a=x(()=>({disabled:o.disabled,value:o.value,get textValue(){return p()},domRef:f}));K(()=>e.registerOption(n,a)),q(()=>e.unregisterOption(n)),K(()=>{H([e.listboxState,s],()=>{e.listboxState.value===0&&s.value&&P(e.mode.value,{[1]:()=>{m.value&&e.goToOption(g.Specific,n)},[0]:()=>{e.goToOption(g.Specific,n)}})},{immediate:!0})}),G(()=>{e.listboxState.value===0&&v.value&&e.activationTrigger.value!==0&&V(()=>{var t,i;return(i=(t=S(f))==null?void 0:t.scrollIntoView)==null?void 0:i.call(t,{block:\"nearest\"})})});function u(t){if(o.disabled)return t.preventDefault();e.select(o.value),e.mode.value===0&&(e.closeListbox(),V(()=>{var i;return(i=S(e.buttonRef))==null?void 0:i.focus({preventScroll:!0})}))}function D(){if(o.disabled)return e.goToOption(g.Nothing);e.goToOption(g.Specific,n)}let y=ee();function L(t){y.update(t)}function M(t){y.wasMoved(t)&&(o.disabled||v.value||e.goToOption(g.Specific,n,0))}function k(t){y.wasMoved(t)&&(o.disabled||v.value&&e.goToOption(g.Nothing))}return()=>{let{disabled:t}=o,i={active:v.value,selected:s.value,disabled:t},{value:l,disabled:d,...O}=o,h={id:n,ref:f,role:\"option\",tabIndex:t===!0?void 0:-1,\"aria-disabled\":t===!0?!0:void 0,\"aria-selected\":s.value,disabled:void 0,onClick:u,onFocus:D,onPointerenter:L,onMouseenter:L,onPointermove:M,onMousemove:M,onPointerleave:k,onMouseleave:k};return j({ourProps:h,theirProps:O,slot:i,attrs:r,slots:b,name:\"ListboxOption\"})}}});export{Ie as Listbox,je as ListboxButton,Ee as ListboxLabel,Fe as ListboxOption,Ae as ListboxOptions};\n","import{computed as y,defineComponent as T,inject as K,nextTick as x,onMounted as N,onUnmounted as j,provide as L,ref as R,watchEffect as B}from\"vue\";import{useId as w}from'../../hooks/use-id.js';import{useOutsideClick as U}from'../../hooks/use-outside-click.js';import{useResolveButtonType as $}from'../../hooks/use-resolve-button-type.js';import{useTextValue as V}from'../../hooks/use-text-value.js';import{useTrackedPointer as H}from'../../hooks/use-tracked-pointer.js';import{useTreeWalker as Q}from'../../hooks/use-tree-walker.js';import{State as D,useOpenClosed as _,useOpenClosedProvider as q}from'../../internal/open-closed.js';import{Keys as c}from'../../keyboard.js';import{calculateActiveIndex as W,Focus as S}from'../../utils/calculate-active-index.js';import{dom as m}from'../../utils/dom.js';import{Focus as E,FocusableMode as J,focusFrom as z,isFocusableElement as G,restoreFocusIfNecessary as k,sortByDomNode as X}from'../../utils/focus-management.js';import{match as Y}from'../../utils/match.js';import{Features as F,render as P}from'../../utils/render.js';var Z=(i=>(i[i.Open=0]=\"Open\",i[i.Closed=1]=\"Closed\",i))(Z||{}),ee=(i=>(i[i.Pointer=0]=\"Pointer\",i[i.Other=1]=\"Other\",i))(ee||{});function te(o){requestAnimationFrame(()=>requestAnimationFrame(o))}let A=Symbol(\"MenuContext\");function O(o){let M=K(A,null);if(M===null){let i=new Error(`<${o} /> is missing a parent <Menu /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(i,O),i}return M}let ge=T({name:\"Menu\",props:{as:{type:[Object,String],default:\"template\"}},setup(o,{slots:M,attrs:i}){let I=R(1),p=R(null),e=R(null),r=R([]),f=R(\"\"),d=R(null),g=R(1);function b(t=a=>a){let a=d.value!==null?r.value[d.value]:null,n=X(t(r.value.slice()),v=>m(v.dataRef.domRef)),s=a?n.indexOf(a):null;return s===-1&&(s=null),{items:n,activeItemIndex:s}}let l={menuState:I,buttonRef:p,itemsRef:e,items:r,searchQuery:f,activeItemIndex:d,activationTrigger:g,closeMenu:()=>{I.value=1,d.value=null},openMenu:()=>I.value=0,goToItem(t,a,n){let s=b(),v=W(t===S.Specific?{focus:S.Specific,id:a}:{focus:t},{resolveItems:()=>s.items,resolveActiveIndex:()=>s.activeItemIndex,resolveId:u=>u.id,resolveDisabled:u=>u.dataRef.disabled});f.value=\"\",d.value=v,g.value=n!=null?n:1,r.value=s.items},search(t){let n=f.value!==\"\"?0:1;f.value+=t.toLowerCase();let v=(d.value!==null?r.value.slice(d.value+n).concat(r.value.slice(0,d.value+n)):r.value).find(h=>h.dataRef.textValue.startsWith(f.value)&&!h.dataRef.disabled),u=v?r.value.indexOf(v):-1;u===-1||u===d.value||(d.value=u,g.value=1)},clearSearch(){f.value=\"\"},registerItem(t,a){let n=b(s=>[...s,{id:t,dataRef:a}]);r.value=n.items,d.value=n.activeItemIndex,g.value=1},unregisterItem(t){let a=b(n=>{let s=n.findIndex(v=>v.id===t);return s!==-1&&n.splice(s,1),n});r.value=a.items,d.value=a.activeItemIndex,g.value=1}};return U([p,e],(t,a)=>{var n;l.closeMenu(),G(a,J.Loose)||(t.preventDefault(),(n=m(p))==null||n.focus())},y(()=>I.value===0)),L(A,l),q(y(()=>Y(I.value,{[0]:D.Open,[1]:D.Closed}))),()=>{let t={open:I.value===0,close:l.closeMenu};return P({ourProps:{},theirProps:o,slot:t,slots:M,attrs:i,name:\"Menu\"})}}}),Se=T({name:\"MenuButton\",props:{disabled:{type:Boolean,default:!1},as:{type:[Object,String],default:\"button\"},id:{type:String,default:null}},setup(o,{attrs:M,slots:i,expose:I}){var b;let p=(b=o.id)!=null?b:`headlessui-menu-button-${w()}`,e=O(\"MenuButton\");I({el:e.buttonRef,$el:e.buttonRef});function r(l){switch(l.key){case c.Space:case c.Enter:case c.ArrowDown:l.preventDefault(),l.stopPropagation(),e.openMenu(),x(()=>{var t;(t=m(e.itemsRef))==null||t.focus({preventScroll:!0}),e.goToItem(S.First)});break;case c.ArrowUp:l.preventDefault(),l.stopPropagation(),e.openMenu(),x(()=>{var t;(t=m(e.itemsRef))==null||t.focus({preventScroll:!0}),e.goToItem(S.Last)});break}}function f(l){switch(l.key){case c.Space:l.preventDefault();break}}function d(l){o.disabled||(e.menuState.value===0?(e.closeMenu(),x(()=>{var t;return(t=m(e.buttonRef))==null?void 0:t.focus({preventScroll:!0})})):(l.preventDefault(),e.openMenu(),te(()=>{var t;return(t=m(e.itemsRef))==null?void 0:t.focus({preventScroll:!0})})))}let g=$(y(()=>({as:o.as,type:M.type})),e.buttonRef);return()=>{var n;let l={open:e.menuState.value===0},{...t}=o,a={ref:e.buttonRef,id:p,type:g.value,\"aria-haspopup\":\"menu\",\"aria-controls\":(n=m(e.itemsRef))==null?void 0:n.id,\"aria-expanded\":e.menuState.value===0,onKeydown:r,onKeyup:f,onClick:d};return P({ourProps:a,theirProps:t,slot:l,attrs:M,slots:i,name:\"MenuButton\"})}}}),Me=T({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(o,{attrs:M,slots:i,expose:I}){var l;let p=(l=o.id)!=null?l:`headlessui-menu-items-${w()}`,e=O(\"MenuItems\"),r=R(null);I({el:e.itemsRef,$el:e.itemsRef}),Q({container:y(()=>m(e.itemsRef)),enabled:y(()=>e.menuState.value===0),accept(t){return t.getAttribute(\"role\")===\"menuitem\"?NodeFilter.FILTER_REJECT:t.hasAttribute(\"role\")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(t){t.setAttribute(\"role\",\"none\")}});function f(t){var a;switch(r.value&&clearTimeout(r.value),t.key){case c.Space:if(e.searchQuery.value!==\"\")return t.preventDefault(),t.stopPropagation(),e.search(t.key);case c.Enter:if(t.preventDefault(),t.stopPropagation(),e.activeItemIndex.value!==null){let s=e.items.value[e.activeItemIndex.value];(a=m(s.dataRef.domRef))==null||a.click()}e.closeMenu(),k(m(e.buttonRef));break;case c.ArrowDown:return t.preventDefault(),t.stopPropagation(),e.goToItem(S.Next);case c.ArrowUp:return t.preventDefault(),t.stopPropagation(),e.goToItem(S.Previous);case c.Home:case c.PageUp:return t.preventDefault(),t.stopPropagation(),e.goToItem(S.First);case c.End:case c.PageDown:return t.preventDefault(),t.stopPropagation(),e.goToItem(S.Last);case c.Escape:t.preventDefault(),t.stopPropagation(),e.closeMenu(),x(()=>{var n;return(n=m(e.buttonRef))==null?void 0:n.focus({preventScroll:!0})});break;case c.Tab:t.preventDefault(),t.stopPropagation(),e.closeMenu(),x(()=>z(m(e.buttonRef),t.shiftKey?E.Previous:E.Next));break;default:t.key.length===1&&(e.search(t.key),r.value=setTimeout(()=>e.clearSearch(),350));break}}function d(t){switch(t.key){case c.Space:t.preventDefault();break}}let g=_(),b=y(()=>g!==null?(g.value&D.Open)===D.Open:e.menuState.value===0);return()=>{var s,v;let t={open:e.menuState.value===0},{...a}=o,n={\"aria-activedescendant\":e.activeItemIndex.value===null||(s=e.items.value[e.activeItemIndex.value])==null?void 0:s.id,\"aria-labelledby\":(v=m(e.buttonRef))==null?void 0:v.id,id:p,onKeydown:f,onKeyup:d,role:\"menu\",tabIndex:0,ref:e.itemsRef};return P({ourProps:n,theirProps:a,slot:t,attrs:M,slots:i,features:F.RenderStrategy|F.Static,visible:b.value,name:\"MenuItems\"})}}}),be=T({name:\"MenuItem\",inheritAttrs:!1,props:{as:{type:[Object,String],default:\"template\"},disabled:{type:Boolean,default:!1},id:{type:String,default:null}},setup(o,{slots:M,attrs:i,expose:I}){var v;let p=(v=o.id)!=null?v:`headlessui-menu-item-${w()}`,e=O(\"MenuItem\"),r=R(null);I({el:r,$el:r});let f=y(()=>e.activeItemIndex.value!==null?e.items.value[e.activeItemIndex.value].id===p:!1),d=V(r),g=y(()=>({disabled:o.disabled,get textValue(){return d()},domRef:r}));N(()=>e.registerItem(p,g)),j(()=>e.unregisterItem(p)),B(()=>{e.menuState.value===0&&f.value&&e.activationTrigger.value!==0&&x(()=>{var u,h;return(h=(u=m(r))==null?void 0:u.scrollIntoView)==null?void 0:h.call(u,{block:\"nearest\"})})});function b(u){if(o.disabled)return u.preventDefault();e.closeMenu(),k(m(e.buttonRef))}function l(){if(o.disabled)return e.goToItem(S.Nothing);e.goToItem(S.Specific,p)}let t=H();function a(u){t.update(u)}function n(u){t.wasMoved(u)&&(o.disabled||f.value||e.goToItem(S.Specific,p,0))}function s(u){t.wasMoved(u)&&(o.disabled||f.value&&e.goToItem(S.Nothing))}return()=>{let{disabled:u,...h}=o,C={active:f.value,disabled:u,close:e.closeMenu};return P({ourProps:{id:p,ref:r,role:\"menuitem\",tabIndex:u===!0?void 0:-1,\"aria-disabled\":u===!0?!0:void 0,onClick:b,onFocus:l,onPointerenter:a,onMouseenter:a,onPointermove:n,onMousemove:n,onPointerleave:s,onMouseleave:s},theirProps:{...i,...h},slot:C,attrs:i,slots:M,name:\"MenuItem\"})}}});export{ge as Menu,Se as MenuButton,be as MenuItem,Me as MenuItems};\n","import{defineComponent as i,h as m,ref as f}from\"vue\";import{Features as l,Hidden as F}from'./hidden.js';let d=i({props:{onFocus:{type:Function,required:!0}},setup(t){let n=f(!0);return()=>n.value?m(F,{as:\"button\",type:\"button\",features:l.Focusable,onFocus(o){o.preventDefault();let e,a=50;function r(){var u;if(a--<=0){e&&cancelAnimationFrame(e);return}if((u=t.onFocus)!=null&&u.call(t)){n.value=!1,cancelAnimationFrame(e);return}e=requestAnimationFrame(r)}e=requestAnimationFrame(r)}}):null}});export{d as FocusSentinel};\n","import{computed as v,defineComponent as L,Fragment as z,h as A,inject as j,onMounted as F,onUnmounted as K,provide as N,ref as P,watch as _,watchEffect as J}from\"vue\";import{useId as $}from'../../hooks/use-id.js';import{useResolveButtonType as Q}from'../../hooks/use-resolve-button-type.js';import{FocusSentinel as V}from'../../internal/focus-sentinel.js';import{Hidden as X}from'../../internal/hidden.js';import{Keys as S}from'../../keyboard.js';import{dom as f}from'../../utils/dom.js';import{Focus as g,focusIn as D,FocusResult as B,sortByDomNode as k}from'../../utils/focus-management.js';import{match as H}from'../../utils/match.js';import{microTask as Y}from'../../utils/micro-task.js';import{getOwnerDocument as Z}from'../../utils/owner.js';import{Features as q,omit as ee,render as M}from'../../utils/render.js';var te=(s=>(s[s.Forwards=0]=\"Forwards\",s[s.Backwards=1]=\"Backwards\",s))(te||{}),le=(d=>(d[d.Less=-1]=\"Less\",d[d.Equal=0]=\"Equal\",d[d.Greater=1]=\"Greater\",d))(le||{});let U=Symbol(\"TabsContext\");function C(a){let b=j(U,null);if(b===null){let s=new Error(`<${a} /> is missing a parent <TabGroup /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(s,C),s}return b}let G=Symbol(\"TabsSSRContext\"),me=L({name:\"TabGroup\",emits:{change:a=>!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(a,{slots:b,attrs:s,emit:d}){var E;let i=P((E=a.selectedIndex)!=null?E:a.defaultIndex),l=P([]),r=P([]),p=v(()=>a.selectedIndex!==null),R=v(()=>p.value?a.selectedIndex:i.value);function y(t){var c;let n=k(u.tabs.value,f),o=k(u.panels.value,f),e=n.filter(I=>{var m;return!((m=f(I))!=null&&m.hasAttribute(\"disabled\"))});if(t<0||t>n.length-1){let I=H(i.value===null?0:Math.sign(t-i.value),{[-1]:()=>1,[0]:()=>H(Math.sign(t),{[-1]:()=>0,[0]:()=>0,[1]:()=>1}),[1]:()=>0}),m=H(I,{[0]:()=>n.indexOf(e[0]),[1]:()=>n.indexOf(e[e.length-1])});m!==-1&&(i.value=m),u.tabs.value=n,u.panels.value=o}else{let I=n.slice(0,t),h=[...n.slice(t),...I].find(W=>e.includes(W));if(!h)return;let O=(c=n.indexOf(h))!=null?c:u.selectedIndex.value;O===-1&&(O=u.selectedIndex.value),i.value=O,u.tabs.value=n,u.panels.value=o}}let u={selectedIndex:v(()=>{var t,n;return(n=(t=i.value)!=null?t:a.defaultIndex)!=null?n:null}),orientation:v(()=>a.vertical?\"vertical\":\"horizontal\"),activation:v(()=>a.manual?\"manual\":\"auto\"),tabs:l,panels:r,setSelectedIndex(t){R.value!==t&&d(\"change\",t),p.value||y(t)},registerTab(t){var o;if(l.value.includes(t))return;let n=l.value[i.value];if(l.value.push(t),l.value=k(l.value,f),!p.value){let e=(o=l.value.indexOf(n))!=null?o:i.value;e!==-1&&(i.value=e)}},unregisterTab(t){let n=l.value.indexOf(t);n!==-1&&l.value.splice(n,1)},registerPanel(t){r.value.includes(t)||(r.value.push(t),r.value=k(r.value,f))},unregisterPanel(t){let n=r.value.indexOf(t);n!==-1&&r.value.splice(n,1)}};N(U,u);let T=P({tabs:[],panels:[]}),x=P(!1);F(()=>{x.value=!0}),N(G,v(()=>x.value?null:T.value));let w=v(()=>a.selectedIndex);return F(()=>{_([w],()=>{var t;return y((t=a.selectedIndex)!=null?t:a.defaultIndex)},{immediate:!0})}),J(()=>{if(!p.value||R.value==null||u.tabs.value.length<=0)return;let t=k(u.tabs.value,f);t.some((o,e)=>f(u.tabs.value[e])!==f(o))&&u.setSelectedIndex(t.findIndex(o=>f(o)===f(u.tabs.value[R.value])))}),()=>{let t={selectedIndex:i.value};return A(z,[l.value.length<=0&&A(V,{onFocus:()=>{for(let n of l.value){let o=f(n);if((o==null?void 0:o.tabIndex)===0)return o.focus(),!0}return!1}}),M({theirProps:{...s,...ee(a,[\"selectedIndex\",\"defaultIndex\",\"manual\",\"vertical\",\"onChange\"])},ourProps:{},slot:t,slots:b,attrs:s,name:\"TabGroup\"})])}}}),pe=L({name:\"TabList\",props:{as:{type:[Object,String],default:\"div\"}},setup(a,{attrs:b,slots:s}){let d=C(\"TabList\");return()=>{let i={selectedIndex:d.selectedIndex.value},l={role:\"tablist\",\"aria-orientation\":d.orientation.value};return M({ourProps:l,theirProps:a,slot:i,attrs:b,slots:s,name:\"TabList\"})}}}),xe=L({name:\"Tab\",props:{as:{type:[Object,String],default:\"button\"},disabled:{type:[Boolean],default:!1},id:{type:String,default:null}},setup(a,{attrs:b,slots:s,expose:d}){var o;let i=(o=a.id)!=null?o:`headlessui-tabs-tab-${$()}`,l=C(\"Tab\"),r=P(null);d({el:r,$el:r}),F(()=>l.registerTab(r)),K(()=>l.unregisterTab(r));let p=j(G),R=v(()=>{if(p.value){let e=p.value.tabs.indexOf(i);return e===-1?p.value.tabs.push(i)-1:e}return-1}),y=v(()=>{let e=l.tabs.value.indexOf(r);return e===-1?R.value:e}),u=v(()=>y.value===l.selectedIndex.value);function T(e){var I;let c=e();if(c===B.Success&&l.activation.value===\"auto\"){let m=(I=Z(r))==null?void 0:I.activeElement,h=l.tabs.value.findIndex(O=>f(O)===m);h!==-1&&l.setSelectedIndex(h)}return c}function x(e){let c=l.tabs.value.map(m=>f(m)).filter(Boolean);if(e.key===S.Space||e.key===S.Enter){e.preventDefault(),e.stopPropagation(),l.setSelectedIndex(y.value);return}switch(e.key){case S.Home:case S.PageUp:return e.preventDefault(),e.stopPropagation(),T(()=>D(c,g.First));case S.End:case S.PageDown:return e.preventDefault(),e.stopPropagation(),T(()=>D(c,g.Last))}if(T(()=>H(l.orientation.value,{vertical(){return e.key===S.ArrowUp?D(c,g.Previous|g.WrapAround):e.key===S.ArrowDown?D(c,g.Next|g.WrapAround):B.Error},horizontal(){return e.key===S.ArrowLeft?D(c,g.Previous|g.WrapAround):e.key===S.ArrowRight?D(c,g.Next|g.WrapAround):B.Error}}))===B.Success)return e.preventDefault()}let w=P(!1);function E(){var e;w.value||(w.value=!0,!a.disabled&&((e=f(r))==null||e.focus({preventScroll:!0}),l.setSelectedIndex(y.value),Y(()=>{w.value=!1})))}function t(e){e.preventDefault()}let n=Q(v(()=>({as:a.as,type:b.type})),r);return()=>{var m,h;let e={selected:u.value,disabled:(m=a.disabled)!=null?m:!1},{...c}=a,I={ref:r,onKeydown:x,onMousedown:t,onClick:E,id:i,role:\"tab\",type:n.value,\"aria-controls\":(h=f(l.panels.value[y.value]))==null?void 0:h.id,\"aria-selected\":u.value,tabIndex:u.value?0:-1,disabled:a.disabled?!0:void 0};return M({ourProps:I,theirProps:c,slot:e,attrs:b,slots:s,name:\"Tab\"})}}}),Ie=L({name:\"TabPanels\",props:{as:{type:[Object,String],default:\"div\"}},setup(a,{slots:b,attrs:s}){let d=C(\"TabPanels\");return()=>{let i={selectedIndex:d.selectedIndex.value};return M({theirProps:a,ourProps:{},slot:i,attrs:s,slots:b,name:\"TabPanels\"})}}}),ye=L({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(a,{attrs:b,slots:s,expose:d}){var T;let i=(T=a.id)!=null?T:`headlessui-tabs-panel-${$()}`,l=C(\"TabPanel\"),r=P(null);d({el:r,$el:r}),F(()=>l.registerPanel(r)),K(()=>l.unregisterPanel(r));let p=j(G),R=v(()=>{if(p.value){let x=p.value.panels.indexOf(i);return x===-1?p.value.panels.push(i)-1:x}return-1}),y=v(()=>{let x=l.panels.value.indexOf(r);return x===-1?R.value:x}),u=v(()=>y.value===l.selectedIndex.value);return()=>{var n;let x={selected:u.value},{tabIndex:w,...E}=a,t={ref:r,id:i,role:\"tabpanel\",\"aria-labelledby\":(n=f(l.tabs.value[y.value]))==null?void 0:n.id,tabIndex:u.value?w:-1};return!u.value&&a.unmount&&!a.static?A(X,{as:\"span\",\"aria-hidden\":!0,...t}):M({ourProps:t,theirProps:E,slot:x,attrs:b,slots:s,features:q.Static|q.RenderStrategy,visible:u.value,name:\"TabPanel\"})}}});export{xe as Tab,me as TabGroup,pe as TabList,ye as TabPanel,Ie as TabPanels};\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport type { StyleValue } from \"vue\";\nimport { Menu, MenuButton, MenuItem, MenuItems } from \"@/foundation/headless\";\nimport type { MenuItemOption, MenuProps, MenuValue } from \"./menu\";\n\ndefineOptions({\n name: \"MoMenu\"\n});\n\nconst props = withDefaults(defineProps<MenuProps>(), {\n items: () => [],\n theme: \"light\",\n placement: \"bottom-start\",\n width: 272\n});\n\nconst emit = defineEmits<{\n select: [value: MenuValue, item: MenuItemOption, index: number];\n}>();\n\nconst classes = computed(() => [\n \"mo-menu\",\n `mo-theme--${props.theme}`,\n `mo-menu--${props.placement}`\n]);\n\nconst styles = computed<StyleValue>(() => ({\n \"--mo-menu-width\": typeof props.width === \"number\" ? `${props.width}px` : props.width\n}));\n\nfunction handleSelect(item: MenuItemOption, index: number) {\n if (item.disabled) {\n return;\n }\n\n emit(\"select\", item.value, item, index);\n}\n</script>\n\n<template>\n <Menu as=\"div\" :class=\"classes\" :style=\"styles\">\n <MenuButton as=\"template\">\n <slot name=\"trigger\">\n <button class=\"mo-menu__trigger\" type=\"button\">打开菜单</button>\n </slot>\n </MenuButton>\n\n <MenuItems class=\"mo-menu__items\">\n <MenuItem\n v-for=\"(item, index) in items\"\n :key=\"item.value\"\n v-slot=\"{ active, disabled }\"\n as=\"template\"\n :disabled=\"item.disabled\"\n >\n <button\n class=\"mo-menu__item\"\n :class=\"{ 'is-active': active, 'is-disabled': disabled }\"\n type=\"button\"\n @click=\"handleSelect(item, index)\"\n >\n <span class=\"mo-menu__icon\" aria-hidden=\"true\">\n <slot name=\"icon\" :item=\"item\" :index=\"index\" :active=\"active\">\n <span class=\"mo-menu__icon-dot\" />\n </slot>\n </span>\n <span class=\"mo-menu__text\">\n <slot name=\"item\" :item=\"item\" :index=\"index\" :active=\"active\">\n <span class=\"mo-menu__label\">{{ item.label }}</span>\n <span v-if=\"item.description\" class=\"mo-menu__description\">\n {{ item.description }}\n </span>\n </slot>\n </span>\n </button>\n </MenuItem>\n </MenuItems>\n </Menu>\n</template>\n","import { withInstall } from \"@/utils/install\";\nimport Menu from \"./src/menu.vue\";\n\nexport const MoMenu = withInstall(Menu);\n\nexport default MoMenu;\nexport type { MenuItemOption, MenuPlacement, MenuProps } from \"./src/menu\";\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport type { StyleValue } from \"vue\";\nimport type { RowProps } from \"./row\";\n\ndefineOptions({\n name: \"MoRow\"\n});\n\nconst props = withDefaults(defineProps<RowProps>(), {\n gutter: 0,\n justify: \"start\",\n align: \"top\",\n wrap: true\n});\n\nconst gutterValue = computed(() => {\n if (typeof props.gutter === \"number\") {\n return `${props.gutter}px`;\n }\n\n return props.gutter;\n});\n\nconst classes = computed(() => [\n \"mo-row\",\n `mo-row--justify-${props.justify}`,\n `mo-row--align-${props.align}`,\n {\n \"is-nowrap\": !props.wrap\n }\n]);\n\nconst styles = computed<StyleValue>(() => ({\n \"--mo-row-gutter\": gutterValue.value,\n \"--mo-row-gutter-half\": `calc(${gutterValue.value} / 2)`\n}));\n</script>\n\n<template>\n <div :class=\"classes\" :style=\"styles\">\n <slot />\n </div>\n</template>\n","import { withInstall } from \"@/utils/install\";\nimport Row from \"./src/row.vue\";\n\nexport const MoRow = withInstall(Row);\n\nexport default MoRow;\nexport type { RowProps } from \"./src/row\";\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport { Listbox, ListboxButton, ListboxOption, ListboxOptions } from \"@/foundation/headless\";\nimport type { SelectOption, SelectProps, SelectValue } from \"./select\";\n\ndefineOptions({\n name: \"MoSelect\"\n});\n\nconst props = withDefaults(defineProps<SelectProps>(), {\n modelValue: null,\n options: () => [],\n theme: \"light\",\n size: \"default\",\n placeholder: \"请选择\",\n disabled: false,\n horizontal: false,\n name: undefined,\n by: undefined\n});\n\nconst emit = defineEmits<{\n \"update:modelValue\": [value: SelectValue];\n change: [value: SelectValue, option?: SelectOption];\n}>();\n\nconst selectedOption = computed(() =>\n props.options.find((option) => isSameValue(option.value, props.modelValue))\n);\n\nconst displayLabel = computed(() => selectedOption.value?.label || props.placeholder);\n\nconst classes = computed(() => [\n \"mo-select\",\n `mo-select--${props.size}`,\n `mo-theme--${props.theme}`,\n {\n \"is-disabled\": props.disabled,\n \"is-placeholder\": !selectedOption.value\n }\n]);\n\nfunction isSameValue(a: SelectValue, b: SelectValue) {\n if (typeof props.by === \"function\") {\n return props.by(a, b);\n }\n\n if (typeof props.by === \"string\" && isRecord(a) && isRecord(b)) {\n return a[props.by] === b[props.by];\n }\n\n return a === b;\n}\n\nfunction isRecord(value: SelectValue): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null;\n}\n\nfunction handleChange(value: SelectValue) {\n const option = props.options.find((item) => isSameValue(item.value, value));\n emit(\"update:modelValue\", value);\n emit(\"change\", value, option);\n}\n</script>\n\n<template>\n <Listbox\n :model-value=\"modelValue\"\n :disabled=\"disabled\"\n :horizontal=\"horizontal\"\n :name=\"name\"\n :by=\"by\"\n @update:model-value=\"handleChange\"\n >\n <div :class=\"classes\">\n <ListboxButton class=\"mo-select__button\">\n <span class=\"mo-select__label\">\n <slot name=\"label\" :option=\"selectedOption\" :label=\"displayLabel\">\n {{ displayLabel }}\n </slot>\n </span>\n <span class=\"mo-select__arrow\" aria-hidden=\"true\" />\n </ListboxButton>\n\n <ListboxOptions class=\"mo-select__options\">\n <ListboxOption\n v-for=\"option in options\"\n :key=\"`${option.label}-${String(option.value)}`\"\n v-slot=\"{ active, selected, disabled: optionDisabled }\"\n as=\"template\"\n :value=\"option.value\"\n :disabled=\"option.disabled\"\n >\n <li\n class=\"mo-select__option\"\n :class=\"{\n 'is-active': active,\n 'is-selected': selected,\n 'is-disabled': optionDisabled\n }\"\n >\n <span class=\"mo-select__check\" aria-hidden=\"true\" />\n <slot\n name=\"option\"\n :option=\"option\"\n :active=\"active\"\n :selected=\"selected\"\n :disabled=\"optionDisabled\"\n >\n {{ option.label }}\n </slot>\n </li>\n </ListboxOption>\n </ListboxOptions>\n </div>\n </Listbox>\n</template>\n","import { withInstall } from \"@/utils/install\";\nimport Select from \"./src/select.vue\";\n\nexport const MoSelect = withInstall(Select);\n\nexport default MoSelect;\nexport type { SelectOption, SelectProps, SelectValue } from \"./src/select\";\n","<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport type { StyleValue } from \"vue\";\nimport { Tab, TabGroup, TabList, TabPanel, TabPanels } from \"@/foundation/headless\";\nimport type { TabsItem, TabsProps, TabsValue } from \"./tabs\";\n\ndefineOptions({\n name: \"MoTabs\"\n});\n\nconst props = withDefaults(defineProps<TabsProps>(), {\n modelValue: undefined,\n size: \"default\",\n theme: \"light\"\n});\n\nconst emit = defineEmits<{\n \"update:modelValue\": [value: TabsValue];\n change: [value: TabsValue, item: TabsItem, index: number];\n}>();\n\nconst selectedIndex = computed(() => {\n const index = props.items.findIndex((item) => item.value === props.modelValue);\n return index >= 0 ? index : 0;\n});\n\nconst classes = computed(() => [\"mo-tabs\", `mo-tabs--${props.size}`, `mo-theme--${props.theme}`]);\n\nconst styles = computed<StyleValue>(() => ({\n \"--mo-tabs-count\": Math.max(props.items.length, 1),\n \"--mo-tabs-active-index\": selectedIndex.value\n}));\n\nfunction handleChange(index: number) {\n const item = props.items[index];\n\n if (!item || item.disabled) {\n return;\n }\n\n emit(\"update:modelValue\", item.value);\n emit(\"change\", item.value, item, index);\n}\n</script>\n\n<template>\n <TabGroup :selected-index=\"selectedIndex\" @change=\"handleChange\">\n <div :class=\"classes\" :style=\"styles\">\n <TabList class=\"mo-tabs__list\">\n <span class=\"mo-tabs__indicator\" aria-hidden=\"true\" />\n <Tab\n v-for=\"(item, index) in items\"\n :key=\"item.value\"\n v-slot=\"{ selected }\"\n as=\"template\"\n :disabled=\"item.disabled\"\n >\n <button\n class=\"mo-tabs__tab\"\n :class=\"{ 'is-active': selected, 'is-disabled': item.disabled }\"\n type=\"button\"\n >\n <slot name=\"label\" :item=\"item\" :index=\"index\" :selected=\"selected\">\n {{ item.label }}\n </slot>\n </button>\n </Tab>\n </TabList>\n\n <TabPanels v-if=\"$slots.panel\" class=\"mo-tabs__panels\">\n <TabPanel v-for=\"(item, index) in items\" :key=\"item.value\" class=\"mo-tabs__panel\">\n <slot name=\"panel\" :item=\"item\" :index=\"index\" />\n </TabPanel>\n </TabPanels>\n </div>\n </TabGroup>\n</template>\n","import { withInstall } from \"@/utils/install\";\nimport Tabs from \"./src/tabs.vue\";\n\nexport const MoTabs = withInstall(Tabs);\n\nexport default MoTabs;\nexport type { TabsItem, TabsProps } from \"./src/tabs\";\n","<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, ref } from \"vue\";\nimport type { StyleValue } from \"vue\";\nimport type { UploadFileItem, UploadProps } from \"./upload\";\n\ndefineOptions({\n name: \"MoUpload\"\n});\n\nconst props = withDefaults(defineProps<UploadProps>(), {\n theme: \"light\",\n accept: \"\",\n multiple: false,\n limit: 1,\n maxSize: 10,\n hint: \"PNG/JPG/WebP,最大10MB\",\n autoUpload: true,\n request: undefined,\n crop: false,\n manualCrop: true,\n cropShape: \"square\",\n cropSize: 64,\n cropWidth: undefined,\n cropHeight: undefined\n});\n\nconst emit = defineEmits<{\n change: [files: UploadFileItem[]];\n success: [file: UploadFileItem];\n error: [file: UploadFileItem];\n remove: [file: UploadFileItem];\n}>();\n\nconst inputRef = ref<HTMLInputElement>();\nconst cropImageRef = ref<HTMLImageElement>();\nconst files = ref<UploadFileItem[]>([]);\nconst isDragging = ref(false);\nconst cropFile = ref<File>();\nconst cropUrl = ref(\"\");\nconst cropScale = ref(1);\nconst cropX = ref(0);\nconst cropY = ref(0);\nconst cropNaturalSize = ref({ width: 0, height: 0 });\nconst isCropDragging = ref(false);\nconst cropDragStart = ref({ x: 0, y: 0, cropX: 0, cropY: 0 });\nconst timers = new Map<string, number>();\nconst cropStageSize = {\n width: 320,\n height: 240\n};\n\nconst classes = computed(() => [\n \"mo-upload\",\n `mo-theme--${props.theme}`,\n {\n \"is-dragging\": isDragging.value\n }\n]);\n\nconst styles = computed<StyleValue>(() => ({\n \"--mo-upload-crop-size\":\n typeof props.cropSize === \"number\" ? `${props.cropSize}px` : props.cropSize,\n \"--mo-upload-crop-preview-width\": `${Math.min(cropOutput.value.width, 140)}px`,\n \"--mo-upload-crop-preview-height\": `${Math.min(\n cropOutput.value.height,\n (140 / cropOutput.value.width) * cropOutput.value.height\n )}px`,\n \"--mo-upload-crop-width\": `${cropFrame.value.width}px`,\n \"--mo-upload-crop-height\": `${cropFrame.value.height}px`\n}));\n\nconst cropOutput = computed(() => {\n if (props.cropShape === \"rect\") {\n return {\n width: parseSizeValue(props.cropWidth, 320),\n height: parseSizeValue(props.cropHeight, 180)\n };\n }\n\n const size = parseSizeValue(props.cropSize, 96);\n return {\n width: size,\n height: size\n };\n});\n\nconst cropFrame = computed(() => {\n const naturalWidth = cropNaturalSize.value.width || cropOutput.value.width;\n const naturalHeight = cropNaturalSize.value.height || cropOutput.value.height;\n const baseScale = getContainScale(naturalWidth, naturalHeight);\n const maxWidth = Math.min(cropStageSize.width, naturalWidth * baseScale);\n const maxHeight = Math.min(cropStageSize.height, naturalHeight * baseScale);\n const ratio = cropOutput.value.width / cropOutput.value.height;\n\n if (ratio >= maxWidth / maxHeight) {\n return {\n width: maxWidth,\n height: maxWidth / ratio\n };\n }\n\n return {\n width: maxHeight * ratio,\n height: maxHeight\n };\n});\n\nconst cropImageStyle = computed<StyleValue>(() => {\n const naturalWidth = cropNaturalSize.value.width || cropOutput.value.width;\n const naturalHeight = cropNaturalSize.value.height || cropOutput.value.height;\n const baseScale = getContainScale(naturalWidth, naturalHeight);\n\n return {\n width: `${naturalWidth * baseScale}px`,\n height: `${naturalHeight * baseScale}px`,\n transform: `translate(calc(-50% + ${cropX.value}px), calc(-50% + ${cropY.value}px)) scale(${cropScale.value})`\n };\n});\n\nfunction openFileDialog() {\n inputRef.value?.click();\n}\n\nfunction handleInputChange(event: Event) {\n const target = event.target as HTMLInputElement;\n addFiles(target.files);\n target.value = \"\";\n}\n\nfunction handleDrop(event: DragEvent) {\n isDragging.value = false;\n addFiles(event.dataTransfer?.files);\n}\n\nfunction addFiles(fileList?: FileList | null) {\n if (!fileList) {\n return;\n }\n\n const rawFiles = Array.from(fileList)\n .filter((file) => file.size <= props.maxSize * 1024 * 1024)\n .slice(0, Math.max(props.limit - files.value.length, 0));\n\n if (props.crop && props.manualCrop) {\n const imageFile = rawFiles.find((file) => file.type.startsWith(\"image/\"));\n\n if (imageFile) {\n openCropper(imageFile);\n return;\n }\n }\n\n const nextFiles = rawFiles.map(createUploadFile);\n\n files.value = props.multiple ? [...files.value, ...nextFiles] : nextFiles.slice(0, 1);\n emit(\"change\", files.value);\n\n if (props.autoUpload) {\n nextFiles.forEach((file) => upload(file));\n }\n}\n\nfunction appendUploadFile(file: File) {\n const item = createUploadFile(file);\n files.value = props.multiple ? [...files.value, item] : [item];\n emit(\"change\", files.value);\n\n if (props.autoUpload) {\n upload(item);\n }\n}\n\nfunction openCropper(file: File) {\n closeCropper();\n cropFile.value = file;\n cropUrl.value = URL.createObjectURL(file);\n cropScale.value = 1;\n cropX.value = 0;\n cropY.value = 0;\n cropNaturalSize.value = { width: 0, height: 0 };\n}\n\nfunction closeCropper() {\n if (cropUrl.value) {\n URL.revokeObjectURL(cropUrl.value);\n }\n\n cropFile.value = undefined;\n cropUrl.value = \"\";\n cropNaturalSize.value = { width: 0, height: 0 };\n isCropDragging.value = false;\n}\n\nfunction handleCropImageLoad(event: Event) {\n const image = event.target as HTMLImageElement;\n cropNaturalSize.value = {\n width: image.naturalWidth,\n height: image.naturalHeight\n };\n resetCropPosition();\n}\n\nfunction startCropDrag(event: PointerEvent) {\n isCropDragging.value = true;\n cropDragStart.value = {\n x: event.clientX,\n y: event.clientY,\n cropX: cropX.value,\n cropY: cropY.value\n };\n (event.currentTarget as HTMLElement).setPointerCapture(event.pointerId);\n}\n\nfunction moveCrop(event: PointerEvent) {\n if (!isCropDragging.value) {\n return;\n }\n\n setCropPosition(\n cropDragStart.value.cropX + event.clientX - cropDragStart.value.x,\n cropDragStart.value.cropY + event.clientY - cropDragStart.value.y\n );\n}\n\nfunction stopCropDrag(event: PointerEvent) {\n isCropDragging.value = false;\n (event.currentTarget as HTMLElement).releasePointerCapture(event.pointerId);\n}\n\nfunction handleCropWheel(event: WheelEvent) {\n const nextScale = clampNumber(cropScale.value + (event.deltaY > 0 ? -0.08 : 0.08), 1, 4);\n\n cropScale.value = nextScale;\n setCropPosition(cropX.value, cropY.value);\n}\n\nasync function confirmCrop() {\n if (!cropFile.value || !cropImageRef.value) {\n return;\n }\n\n const croppedFile = await createCroppedFile(cropFile.value, cropImageRef.value);\n closeCropper();\n appendUploadFile(croppedFile);\n}\n\nfunction createCroppedFile(file: File, image: HTMLImageElement) {\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\");\n\n canvas.width = cropOutput.value.width;\n canvas.height = cropOutput.value.height;\n\n if (!context) {\n return Promise.resolve(file);\n }\n\n const frameWidth = cropFrame.value.width;\n const frameHeight = cropFrame.value.height;\n const frameX = (cropStageSize.width - frameWidth) / 2;\n const frameY = (cropStageSize.height - frameHeight) / 2;\n const baseScale = getContainScale(image.naturalWidth, image.naturalHeight);\n const renderWidth = image.naturalWidth * baseScale * cropScale.value;\n const renderHeight = image.naturalHeight * baseScale * cropScale.value;\n const renderStageX = (cropStageSize.width - renderWidth) / 2 + cropX.value;\n const renderStageY = (cropStageSize.height - renderHeight) / 2 + cropY.value;\n const renderX = renderStageX - frameX;\n const renderY = renderStageY - frameY;\n const scaleXToOutput = cropOutput.value.width / frameWidth;\n const scaleYToOutput = cropOutput.value.height / frameHeight;\n\n if (props.cropShape === \"circle\") {\n context.beginPath();\n context.arc(\n cropOutput.value.width / 2,\n cropOutput.value.height / 2,\n Math.min(cropOutput.value.width, cropOutput.value.height) / 2,\n 0,\n Math.PI * 2\n );\n context.clip();\n }\n\n context.drawImage(\n image,\n renderX * scaleXToOutput,\n renderY * scaleYToOutput,\n renderWidth * scaleXToOutput,\n renderHeight * scaleYToOutput\n );\n\n return new Promise<File>((resolve) => {\n canvas.toBlob((blob) => {\n if (!blob) {\n resolve(file);\n return;\n }\n\n const name = file.name.replace(/\\.[^.]+$/, \".png\");\n resolve(new File([blob], name, { type: \"image/png\", lastModified: Date.now() }));\n }, \"image/png\");\n });\n}\n\nfunction parseSizeValue(value: number | string | undefined, fallback: number) {\n if (typeof value === \"number\") {\n return value;\n }\n\n if (typeof value === \"string\") {\n const parsed = Number.parseInt(value, 10);\n return Number.isFinite(parsed) ? parsed : fallback;\n }\n\n return fallback;\n}\n\nfunction getContainScale(width: number, height: number) {\n return Math.min(cropStageSize.width / width, cropStageSize.height / height);\n}\n\nfunction resetCropPosition() {\n cropScale.value = 1;\n setCropPosition(0, 0);\n}\n\nfunction setCropPosition(x: number, y: number) {\n const bounds = getCropPositionBounds();\n\n cropX.value = clampNumber(x, bounds.minX, bounds.maxX);\n cropY.value = clampNumber(y, bounds.minY, bounds.maxY);\n}\n\nfunction getCropPositionBounds() {\n const naturalWidth = cropNaturalSize.value.width || cropOutput.value.width;\n const naturalHeight = cropNaturalSize.value.height || cropOutput.value.height;\n const baseScale = getContainScale(naturalWidth, naturalHeight);\n const renderWidth = naturalWidth * baseScale * cropScale.value;\n const renderHeight = naturalHeight * baseScale * cropScale.value;\n const imageX = (cropStageSize.width - renderWidth) / 2;\n const imageY = (cropStageSize.height - renderHeight) / 2;\n const frameX = (cropStageSize.width - cropFrame.value.width) / 2;\n const frameY = (cropStageSize.height - cropFrame.value.height) / 2;\n\n return {\n minX: frameX + cropFrame.value.width - renderWidth - imageX,\n maxX: frameX - imageX,\n minY: frameY + cropFrame.value.height - renderHeight - imageY,\n maxY: frameY - imageY\n };\n}\n\nfunction clampNumber(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n\nfunction createUploadFile(file: File): UploadFileItem {\n return {\n uid: `${Date.now()}-${Math.random().toString(16).slice(2)}`,\n name: file.name,\n size: file.size,\n type: file.type,\n file,\n status: \"ready\",\n percent: 0,\n url: URL.createObjectURL(file)\n };\n}\n\nasync function upload(item: UploadFileItem) {\n item.status = \"uploading\";\n item.percent = 0;\n item.error = \"\";\n\n try {\n if (props.request) {\n await props.request({\n file: item.file,\n onProgress(percent) {\n item.percent = clampPercent(percent);\n }\n });\n item.percent = 100;\n } else {\n await simulateUpload(item);\n }\n\n item.status = \"success\";\n emit(\"success\", item);\n } catch (error) {\n item.status = \"error\";\n item.error = error instanceof Error ? error.message : \"上传失败\";\n emit(\"error\", item);\n }\n\n emit(\"change\", files.value);\n}\n\nfunction simulateUpload(item: UploadFileItem) {\n return new Promise<void>((resolve) => {\n const timer = window.setInterval(() => {\n item.percent = Math.min(item.percent + 12, 100);\n\n if (item.percent >= 100) {\n window.clearInterval(timer);\n timers.delete(item.uid);\n resolve();\n }\n }, 120);\n\n timers.set(item.uid, timer);\n });\n}\n\nfunction retry(item: UploadFileItem) {\n upload(item);\n}\n\nfunction remove(item: UploadFileItem) {\n const timer = timers.get(item.uid);\n\n if (timer) {\n window.clearInterval(timer);\n timers.delete(item.uid);\n }\n\n if (item.url) {\n URL.revokeObjectURL(item.url);\n }\n\n files.value = files.value.filter((file) => file.uid !== item.uid);\n emit(\"remove\", item);\n emit(\"change\", files.value);\n}\n\nfunction submit() {\n files.value.filter((file) => file.status === \"ready\" || file.status === \"error\").forEach(upload);\n}\n\nfunction clearFiles() {\n files.value.forEach((file) => {\n if (file.url) {\n URL.revokeObjectURL(file.url);\n }\n });\n files.value = [];\n emit(\"change\", files.value);\n}\n\nfunction isImage(file: UploadFileItem) {\n return file.type.startsWith(\"image/\");\n}\n\nfunction isVideo(file: UploadFileItem) {\n return file.type.startsWith(\"video/\");\n}\n\nfunction formatSize(size: number) {\n if (size < 1024 * 1024) {\n return `${(size / 1024).toFixed(1)}KB`;\n }\n\n return `${(size / 1024 / 1024).toFixed(1)}MB`;\n}\n\nfunction clampPercent(percent: number) {\n return Math.min(Math.max(Math.round(percent), 0), 100);\n}\n\nonBeforeUnmount(() => {\n timers.forEach((timer) => window.clearInterval(timer));\n files.value.forEach((file) => {\n if (file.url) {\n URL.revokeObjectURL(file.url);\n }\n });\n closeCropper();\n});\n\ndefineExpose({\n files,\n submit,\n clearFiles\n});\n</script>\n\n<template>\n <div :class=\"classes\" :style=\"styles\">\n <div\n class=\"mo-upload__dropzone\"\n :class=\"{ 'has-custom-dropzone': $slots.dropzone }\"\n role=\"button\"\n tabindex=\"0\"\n @click=\"openFileDialog\"\n @dragenter.prevent=\"isDragging = true\"\n @dragover.prevent=\"isDragging = true\"\n @dragleave.prevent=\"isDragging = false\"\n @drop.prevent=\"handleDrop\"\n @keydown.enter.prevent=\"openFileDialog\"\n @keydown.space.prevent=\"openFileDialog\"\n >\n <input\n ref=\"inputRef\"\n class=\"mo-upload__input\"\n type=\"file\"\n :accept=\"accept\"\n :multiple=\"multiple\"\n @change=\"handleInputChange\"\n />\n <slot v-if=\"$slots.dropzone\" name=\"dropzone\" />\n <div class=\"mo-upload__icon\" aria-hidden=\"true\">↑</div>\n <div class=\"mo-upload__title\">拖拽文件到这里</div>\n <div class=\"mo-upload__action\">或点击上传</div>\n <div class=\"mo-upload__hint\">{{ hint }}</div>\n </div>\n\n <div v-if=\"files.length\" class=\"mo-upload__list\">\n <article v-for=\"file in files\" :key=\"file.uid\" class=\"mo-upload__file\">\n <div\n class=\"mo-upload__preview\"\n :class=\"{\n 'is-crop': crop,\n 'is-circle': crop && cropShape === 'circle',\n 'is-square': crop && cropShape === 'square',\n 'is-rect': crop && cropShape === 'rect'\n }\"\n >\n <img v-if=\"isImage(file)\" :src=\"file.url\" :alt=\"file.name\" />\n <video v-else-if=\"isVideo(file)\" :src=\"file.url\" muted preload=\"metadata\" />\n <span v-else class=\"mo-upload__file-icon\">FILE</span>\n </div>\n\n <div class=\"mo-upload__meta\">\n <div class=\"mo-upload__name\">{{ file.name }}</div>\n <div class=\"mo-upload__size\">{{ formatSize(file.size) }}</div>\n <div class=\"mo-upload__progress\">\n <span class=\"mo-upload__progress-bar\" :style=\"{ width: `${file.percent}%` }\" />\n </div>\n <div class=\"mo-upload__status\">\n <span>{{ file.status === \"error\" ? file.error || \"上传失败\" : `${file.percent}%` }}</span>\n <button v-if=\"file.status === 'error'\" type=\"button\" @click=\"retry(file)\">\n 重新上传\n </button>\n </div>\n </div>\n\n <button class=\"mo-upload__remove\" type=\"button\" aria-label=\"删除\" @click=\"remove(file)\">\n ×\n </button>\n </article>\n </div>\n\n <div v-if=\"cropUrl\" class=\"mo-upload-cropper\" role=\"dialog\" aria-modal=\"true\">\n <div class=\"mo-upload-cropper__panel\">\n <div class=\"mo-upload-cropper__header\">\n <strong>裁切图片</strong>\n <button type=\"button\" @click=\"closeCropper\">×</button>\n </div>\n <div\n class=\"mo-upload-cropper__stage\"\n @pointerdown.prevent=\"startCropDrag\"\n @pointermove.prevent=\"moveCrop\"\n @pointerup.prevent=\"stopCropDrag\"\n @pointercancel.prevent=\"stopCropDrag\"\n @wheel.prevent=\"handleCropWheel\"\n >\n <img\n ref=\"cropImageRef\"\n class=\"mo-upload-cropper__image\"\n :src=\"cropUrl\"\n alt=\"\"\n :style=\"cropImageStyle\"\n draggable=\"false\"\n @load=\"handleCropImageLoad\"\n />\n <div\n class=\"mo-upload-cropper__frame\"\n :class=\"{ 'is-circle': cropShape === 'circle' }\"\n />\n </div>\n <label class=\"mo-upload-cropper__slider\">\n <span>缩放</span>\n <input v-model.number=\"cropScale\" type=\"range\" min=\"1\" max=\"3\" step=\"0.01\" />\n </label>\n <div class=\"mo-upload-cropper__actions\">\n <button type=\"button\" @click=\"closeCropper\">取消</button>\n <button type=\"button\" @click=\"confirmCrop\">确认裁切</button>\n </div>\n </div>\n </div>\n </div>\n</template>\n","import { withInstall } from \"@/utils/install\";\nimport Upload from \"./src/upload.vue\";\n\nexport const MoUpload = withInstall(Upload);\n\nexport default MoUpload;\nexport type {\n UploadCropShape,\n UploadFileItem,\n UploadFileStatus,\n UploadProps,\n UploadRequest\n} from \"./src/upload\";\n","import type { Plugin } from \"vue\";\nimport { MoButton } from \"./button\";\nimport { MoCard } from \"./card\";\nimport { MoCol } from \"./col\";\nimport { MoForm } from \"./form\";\nimport { MoFormItem } from \"./form-item\";\nimport { MoInput } from \"./input\";\nimport { MoMenu } from \"./menu\";\nimport { MoRow } from \"./row\";\nimport { MoSelect } from \"./select\";\nimport { MoTabs } from \"./tabs\";\nimport { MoUpload } from \"./upload\";\n\nexport {\n MoButton,\n MoCard,\n MoCol,\n MoForm,\n MoFormItem,\n MoInput,\n MoMenu,\n MoRow,\n MoSelect,\n MoTabs,\n MoUpload\n};\n\nexport const components: Plugin[] = [\n MoButton,\n MoCard,\n MoCol,\n MoForm,\n MoFormItem,\n MoInput,\n MoMenu,\n MoRow,\n MoSelect,\n MoTabs,\n MoUpload\n];\n","import type { App, Plugin } from \"vue\";\nimport { components } from \"./components\";\nimport \"./theme/index.scss\";\n\nexport * from \"./components\";\nexport * from \"./utils/validators\";\n\nconst MojoUi: Plugin = {\n install(app: App) {\n components.forEach((component) => {\n app.use(component);\n });\n }\n};\n\nexport default MojoUi;\n"],"names":["withInstall","component","app","props","__props","emit","__emit","slots","useSlots","isIconOnly","computed","classes","styles","handleClick","event","_createElementBlock","_openBlock","_hoisted_2","$slots","_hoisted_3","_renderSlot","_ctx","_hoisted_4","_hoisted_5","_hoisted_6","MoButton","Button","toggleSelected","nextValue","_createElementVNode","MoCard","Card","normalizedSpan","span","MoCol","Col","formContextKey","fields","reactive","addField","field","removeField","index","validate","results","errors","resetFields","context","provide","__expose","MoForm","Form","isEmpty","value","isRequired","isEmail","isPhone","requiredRule","message","emailRule","phoneRule","form","inject","errorMessage","ref","_a","normalizedRules","formRule","rules","rule","isRequiredField","result","resetValidation","fieldContext","onMounted","onBeforeUnmount","_hoisted_1","_unref","_toDisplayString","_hoisted_7","MoFormItem","FormItem","inputValue","isTextarea","isTaggable","shouldShowWordLimit","handleInput","handleChange","handleClear","handleEnter","handleRemoveTag","tag","nextTags","_","tagIndex","_Fragment","_renderList","$event","MoInput","Input","d","u","e","r","i","s","f","p","t","o","n","l","a","s$1","c","N","T","F","E","h","w","M","b","S","y","H","I","O","v","P","m","x","L","C","A","j","g","R","k","pe","ce","ve","be","me","$","Ie","re","D","J","ne","X","ue","le","W","ie","B","K","z","se","Q","oe","de","te","fe","je","V","Y","Ae","ae","U","Fe","Z","q","G","ee","ge","Se","Me","xe","ye","handleSelect","item","_createBlock","Menu","_createVNode","MenuButton","MenuItems","MenuItem","active","disabled","_normalizeClass","MoMenu","gutterValue","MoRow","Row","selectedOption","option","isSameValue","displayLabel","isRecord","Listbox","ListboxButton","ListboxOptions","ListboxOption","_withCtx","selected","optionDisabled","_createTextVNode","MoSelect","Select","selectedIndex","TabGroup","TabList","Tab","TabPanels","TabPanel","MoTabs","Tabs","inputRef","cropImageRef","files","isDragging","cropFile","cropUrl","cropScale","cropX","cropY","cropNaturalSize","isCropDragging","cropDragStart","timers","cropStageSize","cropOutput","cropFrame","parseSizeValue","size","naturalWidth","naturalHeight","baseScale","getContainScale","maxWidth","maxHeight","ratio","cropImageStyle","openFileDialog","handleInputChange","target","addFiles","handleDrop","fileList","rawFiles","file","imageFile","openCropper","nextFiles","createUploadFile","upload","appendUploadFile","closeCropper","handleCropImageLoad","image","resetCropPosition","startCropDrag","moveCrop","setCropPosition","stopCropDrag","handleCropWheel","nextScale","clampNumber","confirmCrop","croppedFile","createCroppedFile","canvas","frameWidth","frameHeight","frameX","frameY","renderWidth","renderHeight","renderStageX","renderStageY","renderX","renderY","scaleXToOutput","scaleYToOutput","resolve","blob","name","fallback","parsed","width","height","bounds","getCropPositionBounds","imageX","imageY","min","max","percent","clampPercent","simulateUpload","error","timer","retry","remove","submit","clearFiles","isImage","isVideo","formatSize","_cache","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_normalizeStyle","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_18","MoUpload","Upload","components","MojoUi"],"mappings":"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","x_google_ignoreList":[15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41]}