@halo-dev/components 2.22.0 → 2.23.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.
- package/dist/icons/icons.d.ts +2 -1
- package/dist/index.es.js +2975 -2952
- package/dist/index.es.js.map +1 -1
- package/dist/index.iife.js +1 -1
- package/dist/index.iife.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +17 -17
package/dist/index.iife.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.iife.js","names":["$slots","AvatarGroupContextInjectionKey: InjectionKey<AvatarGroupProps>","$slots","$slots","$slots","o","s","e","t","c","r","l","i","n","a","u","f","_","d","v","h","p","g","b","w","S","y","m","O","$","C","x","H","I","z","E","A","T","D","k","R","M","L","P","U","B","N","j","F","q","W","X","Y","J","K","Z","G","Q","tt","nt","ot","st","et","ct","rt","lt","it","_t","dt","vt","ht","pt","gt","bt","wt","St","yt","mt","Ot","$t","Ht","It","Et","Tt","kt","Mt","Vt","removeInstance","V","at","ut","ft","Ct","xt","F","o","a","t","n","r","l","s","d","u","e","f","g","y","P","S","O","C","m","i","p","c","w","_","$attrs","$slots","defaultProps: DialogProps","dialog: DialogEntry","y","x","i","x","y","max","offset","alignment","d","v","a","b","placements","sides","side","placement","overflow","min","n","e","t","c","i","r","s","h","f","d","g","m","y","x","w","b","o","E","l","u","a","p","T","C","W","S","A","H","O","P","e","o","i","t","s","xe","Ue","Ye","Xe","Ke","r","p","a","u","l","Je","Qe","ne","B","Ve","L","D","I","F","v","R","j","V","$attrs","$slots","$slots","$slots","SpaceSpacingSize: Record<string, number>","$slots","$slots","instances: ToastInstance[]","defaultProps: ToastProps","toast: ToastEntry"],"sources":["../src/components/alert/Alert.vue","../src/components/alert/Alert.vue","../src/components/avatar/types.ts","../src/components/avatar/Avatar.vue","../src/components/avatar/Avatar.vue","../src/components/avatar/AvatarGroup.vue","../src/components/avatar/AvatarGroup.vue","../src/components/button/Button.vue","../src/components/button/Button.vue","../src/components/card/Card.vue","../src/components/card/Card.vue","../src/components/description/Description.vue","../src/components/description/DescriptionItem.vue","../src/components/description/DescriptionItem.vue","../../../node_modules/.pnpm/overlayscrollbars@2.5.0/node_modules/overlayscrollbars/overlayscrollbars.mjs","../../../node_modules/.pnpm/overlayscrollbars-vue@0.5.7_overlayscrollbars@2.5.0_vue@3.5.24_typescript@5.9.3_/node_modules/overlayscrollbars-vue/overlayscrollbars-vue.mjs","../src/components/modal/Modal.vue","../src/components/modal/Modal.vue","../src/components/dialog/Dialog.vue","../src/components/dialog/Dialog.vue","../src/components/dialog/dialog-manager.ts","../src/components/dialog/types.ts","../../../node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../../node_modules/.pnpm/@floating-ui+core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../node_modules/.pnpm/@floating-ui+dom@1.1.1/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs","../../../node_modules/.pnpm/floating-vue@5.2.2_vue@3.5.24_typescript@5.9.3_/node_modules/floating-vue/dist/floating-vue.mjs","../src/components/dropdown/DropdownDivider.vue","../src/components/dropdown/DropdownItem.vue","../src/components/dropdown/DropdownItem.vue","../src/components/empty/Empty.svg","../src/components/empty/Empty.vue","../src/components/empty/Empty.vue","../src/components/entity/Entity.vue","../src/components/entity/Entity.vue","../src/components/entity/EntityContainer.vue","../src/components/entity/EntityField.vue","../src/components/entity/EntityField.vue","../src/components/header/PageHeader.vue","../src/components/header/PageHeader.vue","../src/components/loading/Loading.vue","../src/components/menu/Menu.vue","../src/components/menu/Menu.vue","../src/components/menu/MenuItem.vue","../src/components/menu/MenuItem.vue","../src/components/menu/MenuLabel.vue","../src/components/pagination/Pagination.vue","../src/components/pagination/Pagination.vue","../src/components/space/types.ts","../src/components/space/Space.vue","../src/components/space/Space.vue","../src/components/status/StatusDot.vue","../src/components/status/StatusDot.vue","../src/components/switch/Switch.vue","../src/components/switch/Switch.vue","../src/components/tabs/Tabbar.vue","../src/components/tabs/Tabbar.vue","../src/components/tabs/TabItem.vue","../src/components/tabs/TabItem.vue","../src/components/tabs/Tabs.vue","../src/components/tabs/Tabs.vue","../src/components/tag/Tag.vue","../src/components/tag/Tag.vue","../src/components/toast/Toast.vue","../src/components/toast/Toast.vue","../src/components/toast/toast-manager.ts"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { FunctionalComponent, Raw, SVGAttributes } from \"vue\";\nimport { computed, markRaw } from \"vue\";\nimport {\n IconCheckboxCircle,\n IconClose,\n IconCloseCircle,\n IconErrorWarning,\n IconInformation,\n} from \"../../icons/icons\";\nimport type { AlertType } from \"./types\";\n\nconst TypeIcons: Record<AlertType, Raw<FunctionalComponent<SVGAttributes>>> = {\n success: markRaw(IconCheckboxCircle),\n info: markRaw(IconInformation),\n default: markRaw(IconInformation),\n warning: markRaw(IconErrorWarning),\n error: markRaw(IconCloseCircle),\n};\n\nconst props = withDefaults(\n defineProps<{\n type?: AlertType;\n title?: string;\n description?: string;\n closable?: boolean;\n }>(),\n {\n type: \"default\",\n title: \"\",\n description: \"\",\n closable: true,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"close\"): void;\n}>();\n\nconst classes = computed(() => {\n return [`alert-${props.type}`];\n});\n\nconst handleClose = () => {\n emit(\"close\");\n};\n</script>\n\n<template>\n <div :class=\"classes\" class=\"alert-wrapper\">\n <div class=\"alert-header\">\n <div class=\"alert-icon\">\n <slot name=\"icon\">\n <component :is=\"TypeIcons[type]\" />\n </slot>\n </div>\n <div v-if=\"title || $slots.title\" class=\"alert-title\">\n <slot name=\"title\">\n {{ title }}\n </slot>\n </div>\n <div v-if=\"closable\" class=\"alert-close\" @click=\"handleClose\">\n <IconClose />\n </div>\n </div>\n <div v-if=\"description || $slots.description\" class=\"alert-description\">\n <slot name=\"description\">\n {{ description }}\n </slot>\n </div>\n <div v-if=\"$slots.actions\" class=\"alert-actions\">\n <slot name=\"actions\" />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.alert-wrapper {\n @apply box-border flex flex-col rounded-base border;\n padding: 12px 16px;\n\n .alert-header {\n @apply flex;\n\n .alert-icon {\n @apply mr-3 self-center text-lg;\n }\n\n .alert-title {\n @apply mr-3 flex-1 self-center text-sm font-medium;\n }\n\n .alert-close {\n @apply cursor-pointer self-center rounded-full p-0.5;\n\n &:hover {\n @apply bg-gray-300 text-white transition-all;\n }\n }\n }\n\n .alert-description {\n @apply mt-2 text-xs;\n }\n\n .alert-actions {\n @apply mt-3 border-t pt-2;\n }\n\n &.alert-default {\n @apply border-gray-300 bg-gray-50;\n\n .alert-icon,\n .alert-description {\n @apply text-gray-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-gray-700;\n }\n }\n\n &.alert-success {\n @apply border-green-300 bg-green-50;\n\n .alert-icon,\n .alert-description {\n @apply text-green-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-green-700;\n }\n }\n\n &.alert-info {\n @apply border-sky-300 bg-sky-50;\n\n .alert-icon,\n .alert-description {\n @apply text-sky-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-sky-700;\n }\n }\n\n &.alert-warning {\n @apply border-orange-300 bg-orange-50;\n\n .alert-icon,\n .alert-description {\n @apply text-orange-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-orange-700;\n }\n }\n\n &.alert-error {\n @apply border-red-300 bg-red-50;\n\n .alert-icon,\n .alert-description {\n @apply text-red-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-red-700;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport type { FunctionalComponent, Raw, SVGAttributes } from \"vue\";\nimport { computed, markRaw } from \"vue\";\nimport {\n IconCheckboxCircle,\n IconClose,\n IconCloseCircle,\n IconErrorWarning,\n IconInformation,\n} from \"../../icons/icons\";\nimport type { AlertType } from \"./types\";\n\nconst TypeIcons: Record<AlertType, Raw<FunctionalComponent<SVGAttributes>>> = {\n success: markRaw(IconCheckboxCircle),\n info: markRaw(IconInformation),\n default: markRaw(IconInformation),\n warning: markRaw(IconErrorWarning),\n error: markRaw(IconCloseCircle),\n};\n\nconst props = withDefaults(\n defineProps<{\n type?: AlertType;\n title?: string;\n description?: string;\n closable?: boolean;\n }>(),\n {\n type: \"default\",\n title: \"\",\n description: \"\",\n closable: true,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"close\"): void;\n}>();\n\nconst classes = computed(() => {\n return [`alert-${props.type}`];\n});\n\nconst handleClose = () => {\n emit(\"close\");\n};\n</script>\n\n<template>\n <div :class=\"classes\" class=\"alert-wrapper\">\n <div class=\"alert-header\">\n <div class=\"alert-icon\">\n <slot name=\"icon\">\n <component :is=\"TypeIcons[type]\" />\n </slot>\n </div>\n <div v-if=\"title || $slots.title\" class=\"alert-title\">\n <slot name=\"title\">\n {{ title }}\n </slot>\n </div>\n <div v-if=\"closable\" class=\"alert-close\" @click=\"handleClose\">\n <IconClose />\n </div>\n </div>\n <div v-if=\"description || $slots.description\" class=\"alert-description\">\n <slot name=\"description\">\n {{ description }}\n </slot>\n </div>\n <div v-if=\"$slots.actions\" class=\"alert-actions\">\n <slot name=\"actions\" />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.alert-wrapper {\n @apply box-border flex flex-col rounded-base border;\n padding: 12px 16px;\n\n .alert-header {\n @apply flex;\n\n .alert-icon {\n @apply mr-3 self-center text-lg;\n }\n\n .alert-title {\n @apply mr-3 flex-1 self-center text-sm font-medium;\n }\n\n .alert-close {\n @apply cursor-pointer self-center rounded-full p-0.5;\n\n &:hover {\n @apply bg-gray-300 text-white transition-all;\n }\n }\n }\n\n .alert-description {\n @apply mt-2 text-xs;\n }\n\n .alert-actions {\n @apply mt-3 border-t pt-2;\n }\n\n &.alert-default {\n @apply border-gray-300 bg-gray-50;\n\n .alert-icon,\n .alert-description {\n @apply text-gray-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-gray-700;\n }\n }\n\n &.alert-success {\n @apply border-green-300 bg-green-50;\n\n .alert-icon,\n .alert-description {\n @apply text-green-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-green-700;\n }\n }\n\n &.alert-info {\n @apply border-sky-300 bg-sky-50;\n\n .alert-icon,\n .alert-description {\n @apply text-sky-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-sky-700;\n }\n }\n\n &.alert-warning {\n @apply border-orange-300 bg-orange-50;\n\n .alert-icon,\n .alert-description {\n @apply text-orange-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-orange-700;\n }\n }\n\n &.alert-error {\n @apply border-red-300 bg-red-50;\n\n .alert-icon,\n .alert-description {\n @apply text-red-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-red-700;\n }\n }\n}\n</style>\n","import type { InjectionKey } from \"vue\";\n\nexport type AvatarSize = \"lg\" | \"md\" | \"sm\" | \"xs\";\n\nexport interface AvatarProps {\n src?: string;\n alt?: string;\n size?: AvatarSize;\n width?: string;\n height?: string;\n circle?: boolean;\n}\n\nexport type AvatarGroupProps = Omit<AvatarProps, \"src\" | \"alt\">;\n\nexport const AvatarGroupContextInjectionKey: InjectionKey<AvatarGroupProps> =\n Symbol(\"avatar-group-context\");\n","<script lang=\"ts\" setup>\nimport { computed, inject, onMounted, ref, watch } from \"vue\";\nimport { IconErrorWarning } from \"../../icons/icons\";\nimport { AvatarGroupContextInjectionKey, type AvatarProps } from \"./types\";\n\nconst props = withDefaults(defineProps<AvatarProps>(), {\n size: \"md\",\n circle: false,\n});\n\nconst groupProps = inject(AvatarGroupContextInjectionKey, undefined);\n\nconst size = computed(() => groupProps?.size || props.size);\nconst circle = computed(() => groupProps?.circle || props.circle);\nconst width = computed(() => groupProps?.width || props.width);\nconst height = computed(() => groupProps?.height || props.height);\n\nconst isLoading = ref(false);\nconst error = ref(false);\nlet init = true;\n\nconst loadImage = async (isInit: boolean) => {\n if (!props.src) {\n error.value = true;\n return;\n }\n\n isLoading.value = true;\n try {\n if (!props.src) {\n error.value = true;\n return Promise.reject();\n }\n if (!isInit) {\n error.value = false;\n }\n const image = new Image();\n image.src = props.src;\n return new Promise((resolve, reject) => {\n image.onload = () => resolve(image);\n image.onerror = (err) => {\n error.value = true;\n reject(err);\n };\n });\n } catch (_) {\n error.value = true;\n } finally {\n isLoading.value = false;\n }\n};\n\nwatch([() => props.alt, () => props.src], async () => loadImage(init));\n\nonMounted(async () => {\n loadImage(init);\n init = false;\n});\n\nconst classes = computed(() => {\n const result = [`avatar-${circle.value ? \"circle\" : \"square\"}`];\n if (size.value) {\n result.push(`avatar-${size.value}`);\n }\n return result;\n});\n\nconst styles = computed(() => {\n const result: Record<string, string> = {};\n if (width.value) {\n result.width = width.value;\n }\n if (height.value) {\n result.height = height.value;\n }\n return result;\n});\n\nconst placeholderText = computed(() => {\n if (!props.alt) {\n return undefined;\n }\n const words = props.alt.split(\" \");\n if (words.length === 1) {\n return words[0].charAt(0).toUpperCase();\n }\n if (words.length > 1) {\n return words[0].charAt(0).toUpperCase() + words[1].charAt(0).toUpperCase();\n }\n return undefined;\n});\n</script>\n\n<template>\n <div class=\"avatar-wrapper\" :class=\"classes\" :style=\"styles\">\n <div v-if=\"isLoading || error\" class=\"avatar-fallback\">\n <svg\n v-if=\"isLoading\"\n class=\"avatar-loading\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-75\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n <span v-else-if=\"placeholderText\" class=\"avatar-placeholder\">\n {{ placeholderText }}\n </span>\n <IconErrorWarning v-else class=\"avatar-error\" />\n </div>\n <img v-else :src=\"src\" :alt=\"alt\" />\n </div>\n</template>\n\n<style lang=\"scss\">\n.avatar-wrapper {\n @apply inline-flex items-center justify-center overflow-hidden bg-gray-100;\n\n img {\n @apply h-full w-full object-cover;\n }\n\n .avatar-fallback {\n @apply flex h-full w-full items-center justify-center;\n }\n\n .avatar-loading {\n @apply h-5 w-5 animate-spin;\n }\n\n .avatar-placeholder {\n @apply text-sm font-medium text-gray-800;\n }\n\n .avatar-error {\n @apply h-5 w-5 text-red-500;\n }\n\n &.avatar-circle {\n @apply rounded-full;\n }\n\n &.avatar-square {\n @apply rounded-base;\n }\n\n &.avatar-xs {\n @apply h-6 w-6;\n\n .avatar-placeholder {\n @apply text-xs;\n }\n }\n\n &.avatar-sm {\n @apply h-8 w-8;\n\n .avatar-placeholder {\n @apply text-xs;\n }\n }\n\n &.avatar-md {\n @apply h-10 w-10;\n }\n\n &.avatar-lg {\n @apply h-12 w-12;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed, inject, onMounted, ref, watch } from \"vue\";\nimport { IconErrorWarning } from \"../../icons/icons\";\nimport { AvatarGroupContextInjectionKey, type AvatarProps } from \"./types\";\n\nconst props = withDefaults(defineProps<AvatarProps>(), {\n size: \"md\",\n circle: false,\n});\n\nconst groupProps = inject(AvatarGroupContextInjectionKey, undefined);\n\nconst size = computed(() => groupProps?.size || props.size);\nconst circle = computed(() => groupProps?.circle || props.circle);\nconst width = computed(() => groupProps?.width || props.width);\nconst height = computed(() => groupProps?.height || props.height);\n\nconst isLoading = ref(false);\nconst error = ref(false);\nlet init = true;\n\nconst loadImage = async (isInit: boolean) => {\n if (!props.src) {\n error.value = true;\n return;\n }\n\n isLoading.value = true;\n try {\n if (!props.src) {\n error.value = true;\n return Promise.reject();\n }\n if (!isInit) {\n error.value = false;\n }\n const image = new Image();\n image.src = props.src;\n return new Promise((resolve, reject) => {\n image.onload = () => resolve(image);\n image.onerror = (err) => {\n error.value = true;\n reject(err);\n };\n });\n } catch (_) {\n error.value = true;\n } finally {\n isLoading.value = false;\n }\n};\n\nwatch([() => props.alt, () => props.src], async () => loadImage(init));\n\nonMounted(async () => {\n loadImage(init);\n init = false;\n});\n\nconst classes = computed(() => {\n const result = [`avatar-${circle.value ? \"circle\" : \"square\"}`];\n if (size.value) {\n result.push(`avatar-${size.value}`);\n }\n return result;\n});\n\nconst styles = computed(() => {\n const result: Record<string, string> = {};\n if (width.value) {\n result.width = width.value;\n }\n if (height.value) {\n result.height = height.value;\n }\n return result;\n});\n\nconst placeholderText = computed(() => {\n if (!props.alt) {\n return undefined;\n }\n const words = props.alt.split(\" \");\n if (words.length === 1) {\n return words[0].charAt(0).toUpperCase();\n }\n if (words.length > 1) {\n return words[0].charAt(0).toUpperCase() + words[1].charAt(0).toUpperCase();\n }\n return undefined;\n});\n</script>\n\n<template>\n <div class=\"avatar-wrapper\" :class=\"classes\" :style=\"styles\">\n <div v-if=\"isLoading || error\" class=\"avatar-fallback\">\n <svg\n v-if=\"isLoading\"\n class=\"avatar-loading\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-75\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n <span v-else-if=\"placeholderText\" class=\"avatar-placeholder\">\n {{ placeholderText }}\n </span>\n <IconErrorWarning v-else class=\"avatar-error\" />\n </div>\n <img v-else :src=\"src\" :alt=\"alt\" />\n </div>\n</template>\n\n<style lang=\"scss\">\n.avatar-wrapper {\n @apply inline-flex items-center justify-center overflow-hidden bg-gray-100;\n\n img {\n @apply h-full w-full object-cover;\n }\n\n .avatar-fallback {\n @apply flex h-full w-full items-center justify-center;\n }\n\n .avatar-loading {\n @apply h-5 w-5 animate-spin;\n }\n\n .avatar-placeholder {\n @apply text-sm font-medium text-gray-800;\n }\n\n .avatar-error {\n @apply h-5 w-5 text-red-500;\n }\n\n &.avatar-circle {\n @apply rounded-full;\n }\n\n &.avatar-square {\n @apply rounded-base;\n }\n\n &.avatar-xs {\n @apply h-6 w-6;\n\n .avatar-placeholder {\n @apply text-xs;\n }\n }\n\n &.avatar-sm {\n @apply h-8 w-8;\n\n .avatar-placeholder {\n @apply text-xs;\n }\n }\n\n &.avatar-md {\n @apply h-10 w-10;\n }\n\n &.avatar-lg {\n @apply h-12 w-12;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { provide } from \"vue\";\nimport { AvatarGroupContextInjectionKey, type AvatarGroupProps } from \"./types\";\n\nconst props = withDefaults(defineProps<AvatarGroupProps>(), {\n size: \"md\",\n circle: false,\n});\n\nprovide(AvatarGroupContextInjectionKey, props);\n</script>\n\n<template>\n <div class=\"avatar-group-wrapper\">\n <slot />\n </div>\n</template>\n\n<style lang=\"scss\">\n.avatar-group-wrapper {\n @apply inline-flex -space-x-2.5;\n\n > * {\n @apply ring-2 ring-white transition-all hover:z-10;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { provide } from \"vue\";\nimport { AvatarGroupContextInjectionKey, type AvatarGroupProps } from \"./types\";\n\nconst props = withDefaults(defineProps<AvatarGroupProps>(), {\n size: \"md\",\n circle: false,\n});\n\nprovide(AvatarGroupContextInjectionKey, props);\n</script>\n\n<template>\n <div class=\"avatar-group-wrapper\">\n <slot />\n </div>\n</template>\n\n<style lang=\"scss\">\n.avatar-group-wrapper {\n @apply inline-flex -space-x-2.5;\n\n > * {\n @apply ring-2 ring-white transition-all hover:z-10;\n }\n}\n</style>\n","<template>\n <button\n :class=\"classes\"\n :disabled=\"disabled\"\n class=\"btn\"\n type=\"button\"\n @click=\"handleClick\"\n >\n <span v-if=\"$slots.icon || loading\" class=\"btn-icon\">\n <svg\n v-if=\"loading\"\n class=\"animate-spin\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-75\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n <slot v-else name=\"icon\" />\n </span>\n <span class=\"btn-content\">\n <slot />\n </span>\n </button>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { RouteLocationRaw } from \"vue-router\";\nimport { useRouter } from \"vue-router\";\nimport type { ButtonSize, ButtonType } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n type?: ButtonType;\n size?: ButtonSize;\n circle?: boolean;\n block?: boolean;\n disabled?: boolean;\n loading?: boolean;\n route?: RouteLocationRaw | undefined;\n ghost?: boolean;\n }>(),\n {\n type: \"default\",\n size: \"md\",\n circle: false,\n block: false,\n disabled: false,\n loading: false,\n route: undefined,\n ghost: false,\n }\n);\n\nconst router = useRouter();\nconst emit = defineEmits<{\n (event: \"click\"): void;\n}>();\n\nconst classes = computed(() => {\n return [\n `btn-${props.size}`,\n `btn-${props.type}`,\n { \"btn-circle\": props.circle },\n { \"btn-block\": props.block },\n { \"btn-loading\": props.loading },\n { \"btn-ghost\": props.ghost },\n ];\n});\n\nfunction handleClick() {\n if (props.disabled || props.loading) return;\n if (props.route) {\n router.push(props.route);\n }\n emit(\"click\");\n}\n</script>\n\n<style lang=\"scss\">\n@use \"sass:map\";\n$btn-sizes: (\n xs: (\n height: theme(\"spacing.6\"),\n padding-x: theme(\"spacing.2\"),\n font-size: theme(\"fontSize.xs\"),\n icon-size: theme(\"spacing.3\"),\n icon-margin: theme(\"spacing.2\"),\n ),\n sm: (\n height: theme(\"spacing.7\"),\n padding-x: theme(\"spacing.3\"),\n font-size: theme(\"fontSize.xs\"),\n icon-size: theme(\"spacing.3\"),\n icon-margin: theme(\"spacing.2\"),\n ),\n md: (\n height: theme(\"spacing.9\"),\n padding-x: theme(\"spacing.4\"),\n font-size: theme(\"fontSize.sm\"),\n icon-size: theme(\"spacing.5\"),\n icon-margin: theme(\"spacing.3\"),\n ),\n lg: (\n height: theme(\"spacing.11\"),\n padding-x: theme(\"spacing.5\"),\n font-size: theme(\"fontSize.lg\"),\n icon-size: theme(\"spacing.5\"),\n icon-margin: theme(\"spacing.3\"),\n ),\n);\n\n$btn-themes: (\n default: (\n bg: transparent,\n color: inherit,\n border: 1px solid #d9d9d9,\n hover-bg: theme(\"colors.gray.100\"),\n icon-color: theme(\"colors.secondary\"),\n ghost-color: inherit,\n ghost-hover-bg: theme(\"colors.gray.100\"),\n ghost-icon-color: theme(\"colors.secondary\"),\n ),\n primary: (\n bg: theme(\"colors.primary\"),\n color: #fff,\n border: none,\n hover-bg: theme(\"colors.primary\"),\n icon-color: #fff,\n ghost-color: theme(\"colors.primary\"),\n ghost-hover-bg: theme(\"colors.primary / 10%\"),\n ghost-icon-color: theme(\"colors.primary\"),\n ),\n secondary: (\n bg: theme(\"colors.secondary\"),\n color: #fff,\n border: none,\n hover-bg: theme(\"colors.secondary\"),\n icon-color: #fff,\n ghost-color: theme(\"colors.secondary\"),\n ghost-hover-bg: theme(\"colors.secondary / 10%\"),\n ghost-icon-color: theme(\"colors.secondary\"),\n ),\n danger: (\n bg: theme(\"colors.danger\"),\n color: #fff,\n border: none,\n hover-bg: theme(\"colors.danger\"),\n icon-color: #fff,\n ghost-color: theme(\"colors.danger\"),\n ghost-hover-bg: theme(\"colors.danger / 10%\"),\n ghost-icon-color: theme(\"colors.danger\"),\n ),\n);\n\n.btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n flex-wrap: wrap;\n cursor: pointer;\n user-select: none;\n appearance: none;\n border-radius: theme(\"borderRadius.base\");\n transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n outline-width: 0;\n border-style: none;\n $md-config: map.get($btn-sizes, md);\n height: map.get($md-config, height);\n padding-left: map.get($md-config, padding-x);\n padding-right: map.get($md-config, padding-x);\n font-size: map.get($md-config, font-size);\n\n &:hover {\n opacity: 0.9;\n }\n\n &:active {\n opacity: 1;\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n &.btn-loading {\n cursor: not-allowed;\n\n &:hover {\n opacity: 1;\n }\n }\n\n &.btn-block {\n width: 100%;\n }\n\n .btn-icon {\n height: map.get($md-config, icon-size);\n width: map.get($md-config, icon-size);\n margin-right: map.get($md-config, icon-margin);\n color: #fff;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n > * {\n height: 100%;\n width: 100%;\n }\n }\n}\n\n@each $size, $config in $btn-sizes {\n .btn-#{$size} {\n height: map.get($config, height);\n padding-left: map.get($config, padding-x);\n padding-right: map.get($config, padding-x);\n font-size: map.get($config, font-size);\n\n .btn-icon {\n height: map.get($config, icon-size);\n width: map.get($config, icon-size);\n margin-right: map.get($config, icon-margin);\n }\n\n &.btn-circle {\n width: map.get($config, height);\n padding: 0;\n border-radius: 9999px;\n }\n }\n}\n\n@each $theme, $config in $btn-themes {\n .btn-#{$theme} {\n background-color: map.get($config, bg) !important;\n color: map.get($config, color);\n border: map.get($config, border);\n\n &:hover {\n background-color: map.get($config, hover-bg) !important;\n }\n\n .btn-icon {\n color: map.get($config, icon-color);\n }\n }\n}\n\n.btn-ghost {\n background-color: transparent !important;\n\n @each $theme, $config in $btn-themes {\n &.btn-#{$theme} {\n color: map.get($config, ghost-color);\n border: none;\n\n &:hover {\n background-color: map.get($config, ghost-hover-bg) !important;\n }\n\n .btn-icon {\n color: map.get($config, ghost-icon-color);\n }\n }\n }\n}\n</style>\n","<template>\n <button\n :class=\"classes\"\n :disabled=\"disabled\"\n class=\"btn\"\n type=\"button\"\n @click=\"handleClick\"\n >\n <span v-if=\"$slots.icon || loading\" class=\"btn-icon\">\n <svg\n v-if=\"loading\"\n class=\"animate-spin\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-75\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n <slot v-else name=\"icon\" />\n </span>\n <span class=\"btn-content\">\n <slot />\n </span>\n </button>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { RouteLocationRaw } from \"vue-router\";\nimport { useRouter } from \"vue-router\";\nimport type { ButtonSize, ButtonType } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n type?: ButtonType;\n size?: ButtonSize;\n circle?: boolean;\n block?: boolean;\n disabled?: boolean;\n loading?: boolean;\n route?: RouteLocationRaw | undefined;\n ghost?: boolean;\n }>(),\n {\n type: \"default\",\n size: \"md\",\n circle: false,\n block: false,\n disabled: false,\n loading: false,\n route: undefined,\n ghost: false,\n }\n);\n\nconst router = useRouter();\nconst emit = defineEmits<{\n (event: \"click\"): void;\n}>();\n\nconst classes = computed(() => {\n return [\n `btn-${props.size}`,\n `btn-${props.type}`,\n { \"btn-circle\": props.circle },\n { \"btn-block\": props.block },\n { \"btn-loading\": props.loading },\n { \"btn-ghost\": props.ghost },\n ];\n});\n\nfunction handleClick() {\n if (props.disabled || props.loading) return;\n if (props.route) {\n router.push(props.route);\n }\n emit(\"click\");\n}\n</script>\n\n<style lang=\"scss\">\n@use \"sass:map\";\n$btn-sizes: (\n xs: (\n height: theme(\"spacing.6\"),\n padding-x: theme(\"spacing.2\"),\n font-size: theme(\"fontSize.xs\"),\n icon-size: theme(\"spacing.3\"),\n icon-margin: theme(\"spacing.2\"),\n ),\n sm: (\n height: theme(\"spacing.7\"),\n padding-x: theme(\"spacing.3\"),\n font-size: theme(\"fontSize.xs\"),\n icon-size: theme(\"spacing.3\"),\n icon-margin: theme(\"spacing.2\"),\n ),\n md: (\n height: theme(\"spacing.9\"),\n padding-x: theme(\"spacing.4\"),\n font-size: theme(\"fontSize.sm\"),\n icon-size: theme(\"spacing.5\"),\n icon-margin: theme(\"spacing.3\"),\n ),\n lg: (\n height: theme(\"spacing.11\"),\n padding-x: theme(\"spacing.5\"),\n font-size: theme(\"fontSize.lg\"),\n icon-size: theme(\"spacing.5\"),\n icon-margin: theme(\"spacing.3\"),\n ),\n);\n\n$btn-themes: (\n default: (\n bg: transparent,\n color: inherit,\n border: 1px solid #d9d9d9,\n hover-bg: theme(\"colors.gray.100\"),\n icon-color: theme(\"colors.secondary\"),\n ghost-color: inherit,\n ghost-hover-bg: theme(\"colors.gray.100\"),\n ghost-icon-color: theme(\"colors.secondary\"),\n ),\n primary: (\n bg: theme(\"colors.primary\"),\n color: #fff,\n border: none,\n hover-bg: theme(\"colors.primary\"),\n icon-color: #fff,\n ghost-color: theme(\"colors.primary\"),\n ghost-hover-bg: theme(\"colors.primary / 10%\"),\n ghost-icon-color: theme(\"colors.primary\"),\n ),\n secondary: (\n bg: theme(\"colors.secondary\"),\n color: #fff,\n border: none,\n hover-bg: theme(\"colors.secondary\"),\n icon-color: #fff,\n ghost-color: theme(\"colors.secondary\"),\n ghost-hover-bg: theme(\"colors.secondary / 10%\"),\n ghost-icon-color: theme(\"colors.secondary\"),\n ),\n danger: (\n bg: theme(\"colors.danger\"),\n color: #fff,\n border: none,\n hover-bg: theme(\"colors.danger\"),\n icon-color: #fff,\n ghost-color: theme(\"colors.danger\"),\n ghost-hover-bg: theme(\"colors.danger / 10%\"),\n ghost-icon-color: theme(\"colors.danger\"),\n ),\n);\n\n.btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n flex-wrap: wrap;\n cursor: pointer;\n user-select: none;\n appearance: none;\n border-radius: theme(\"borderRadius.base\");\n transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n outline-width: 0;\n border-style: none;\n $md-config: map.get($btn-sizes, md);\n height: map.get($md-config, height);\n padding-left: map.get($md-config, padding-x);\n padding-right: map.get($md-config, padding-x);\n font-size: map.get($md-config, font-size);\n\n &:hover {\n opacity: 0.9;\n }\n\n &:active {\n opacity: 1;\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n &.btn-loading {\n cursor: not-allowed;\n\n &:hover {\n opacity: 1;\n }\n }\n\n &.btn-block {\n width: 100%;\n }\n\n .btn-icon {\n height: map.get($md-config, icon-size);\n width: map.get($md-config, icon-size);\n margin-right: map.get($md-config, icon-margin);\n color: #fff;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n > * {\n height: 100%;\n width: 100%;\n }\n }\n}\n\n@each $size, $config in $btn-sizes {\n .btn-#{$size} {\n height: map.get($config, height);\n padding-left: map.get($config, padding-x);\n padding-right: map.get($config, padding-x);\n font-size: map.get($config, font-size);\n\n .btn-icon {\n height: map.get($config, icon-size);\n width: map.get($config, icon-size);\n margin-right: map.get($config, icon-margin);\n }\n\n &.btn-circle {\n width: map.get($config, height);\n padding: 0;\n border-radius: 9999px;\n }\n }\n}\n\n@each $theme, $config in $btn-themes {\n .btn-#{$theme} {\n background-color: map.get($config, bg) !important;\n color: map.get($config, color);\n border: map.get($config, border);\n\n &:hover {\n background-color: map.get($config, hover-bg) !important;\n }\n\n .btn-icon {\n color: map.get($config, icon-color);\n }\n }\n}\n\n.btn-ghost {\n background-color: transparent !important;\n\n @each $theme, $config in $btn-themes {\n &.btn-#{$theme} {\n color: map.get($config, ghost-color);\n border: none;\n\n &:hover {\n background-color: map.get($config, ghost-hover-bg) !important;\n }\n\n .btn-icon {\n color: map.get($config, ghost-icon-color);\n }\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\ndefineProps<{\n title?: string;\n bodyClass?: string[];\n}>();\n</script>\n\n<template>\n <div class=\"card-wrapper\">\n <div v-if=\"title || $slots.header\" class=\"card-header\">\n <slot name=\"header\">\n <div class=\"card-header-title\">\n {{ title }}\n </div>\n <div class=\"card-header-actions\">\n <slot name=\"actions\" />\n </div>\n </slot>\n </div>\n <div :class=\"bodyClass\" class=\"card-body\">\n <slot />\n </div>\n <div v-if=\"$slots.footer\" class=\"card-footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.card-wrapper {\n @apply box-border flex flex-col rounded-base bg-white shadow-sm ring-1 ring-[#eaecf0];\n\n .card-header {\n @apply flex justify-between overflow-hidden rounded-t-base;\n border-bottom: 1px solid #eaecf0;\n\n .card-header-title {\n @apply self-center text-base font-bold;\n padding: 12px 16px;\n }\n\n .card-header-actions {\n @apply self-center;\n }\n }\n\n .card-body {\n @apply overflow-hidden rounded-base;\n padding: 12px 16px;\n }\n\n .card-footer {\n @apply overflow-hidden rounded-b-base;\n border-top: 1px solid #eaecf0;\n padding: 12px 16px;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\ndefineProps<{\n title?: string;\n bodyClass?: string[];\n}>();\n</script>\n\n<template>\n <div class=\"card-wrapper\">\n <div v-if=\"title || $slots.header\" class=\"card-header\">\n <slot name=\"header\">\n <div class=\"card-header-title\">\n {{ title }}\n </div>\n <div class=\"card-header-actions\">\n <slot name=\"actions\" />\n </div>\n </slot>\n </div>\n <div :class=\"bodyClass\" class=\"card-body\">\n <slot />\n </div>\n <div v-if=\"$slots.footer\" class=\"card-footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.card-wrapper {\n @apply box-border flex flex-col rounded-base bg-white shadow-sm ring-1 ring-[#eaecf0];\n\n .card-header {\n @apply flex justify-between overflow-hidden rounded-t-base;\n border-bottom: 1px solid #eaecf0;\n\n .card-header-title {\n @apply self-center text-base font-bold;\n padding: 12px 16px;\n }\n\n .card-header-actions {\n @apply self-center;\n }\n }\n\n .card-body {\n @apply overflow-hidden rounded-base;\n padding: 12px 16px;\n }\n\n .card-footer {\n @apply overflow-hidden rounded-b-base;\n border-top: 1px solid #eaecf0;\n padding: 12px 16px;\n }\n}\n</style>\n","<script lang=\"ts\" setup></script>\n\n<template>\n <dl class=\"description-wrapper\">\n <slot />\n </dl>\n</template>\n\n<style>\n.description-wrapper {\n @apply divide-y divide-gray-100;\n}\n</style>\n","<script lang=\"ts\" setup>\nwithDefaults(\n defineProps<{\n label: string;\n content?: string;\n verticalCenter?: boolean;\n }>(),\n {\n content: undefined,\n verticalCenter: false,\n }\n);\n</script>\n\n<template>\n <div\n class=\"description-item-wrapper\"\n :class=\"{ 'items-center': verticalCenter }\"\n >\n <dt class=\"description-item__label\">{{ label }}</dt>\n <dd class=\"description-item__content\">\n <slot v-if=\"$slots.default\" />\n <template v-else>\n {{ content }}\n </template>\n </dd>\n </div>\n</template>\n\n<style lang=\"scss\">\n.description-item-wrapper {\n @apply bg-white px-4 py-5 hover:bg-gray-50 sm:grid sm:grid-cols-6 sm:gap-4 sm:px-6;\n\n .description-item__label {\n @apply text-sm font-medium text-gray-900;\n }\n\n .description-item__content {\n @apply mt-1 text-sm text-gray-900 sm:col-span-6 sm:mt-0 md:col-span-5 lg:col-span-3;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nwithDefaults(\n defineProps<{\n label: string;\n content?: string;\n verticalCenter?: boolean;\n }>(),\n {\n content: undefined,\n verticalCenter: false,\n }\n);\n</script>\n\n<template>\n <div\n class=\"description-item-wrapper\"\n :class=\"{ 'items-center': verticalCenter }\"\n >\n <dt class=\"description-item__label\">{{ label }}</dt>\n <dd class=\"description-item__content\">\n <slot v-if=\"$slots.default\" />\n <template v-else>\n {{ content }}\n </template>\n </dd>\n </div>\n</template>\n\n<style lang=\"scss\">\n.description-item-wrapper {\n @apply bg-white px-4 py-5 hover:bg-gray-50 sm:grid sm:grid-cols-6 sm:gap-4 sm:px-6;\n\n .description-item__label {\n @apply text-sm font-medium text-gray-900;\n }\n\n .description-item__content {\n @apply mt-1 text-sm text-gray-900 sm:col-span-6 sm:mt-0 md:col-span-5 lg:col-span-3;\n }\n}\n</style>\n","/*!\n * OverlayScrollbars\n * Version: 2.5.0\n *\n * Copyright (c) Rene Haas | KingSora.\n * https://github.com/KingSora\n *\n * Released under the MIT license.\n */\nconst createCache = (t, n) => {\n const {o: o, u: s, _: e} = t;\n let c = o;\n let r;\n const cacheUpdateContextual = (t, n) => {\n const o = c;\n const l = t;\n const i = n || (s ? !s(o, l) : o !== l);\n if (i || e) {\n c = l;\n r = o;\n }\n return [ c, i, r ];\n };\n const cacheUpdateIsolated = t => cacheUpdateContextual(n(c, r), t);\n const getCurrentCache = t => [ c, !!t, r ];\n return [ n ? cacheUpdateIsolated : cacheUpdateContextual, getCurrentCache ];\n};\n\nconst t = typeof window !== \"undefined\";\n\nconst n = t ? window : {};\n\nconst o = Math.max;\n\nconst s = Math.min;\n\nconst e = Math.round;\n\nconst c = Math.abs;\n\nconst r = n.cancelAnimationFrame;\n\nconst l = n.requestAnimationFrame;\n\nconst i = n.setTimeout;\n\nconst a = n.clearTimeout;\n\nconst getApi = t => typeof n[t] !== \"undefined\" ? n[t] : void 0;\n\nconst u = getApi(\"MutationObserver\");\n\nconst f = getApi(\"IntersectionObserver\");\n\nconst _ = getApi(\"ResizeObserver\");\n\nconst d = getApi(\"ScrollTimeline\");\n\nconst v = t && Node.ELEMENT_NODE;\n\nconst {toString: h, hasOwnProperty: p} = Object.prototype;\n\nconst g = /^\\[object (.+)\\]$/;\n\nconst isUndefined = t => t === void 0;\n\nconst isNull = t => t === null;\n\nconst type = t => isUndefined(t) || isNull(t) ? `${t}` : h.call(t).replace(g, \"$1\").toLowerCase();\n\nconst isNumber = t => typeof t === \"number\";\n\nconst isString = t => typeof t === \"string\";\n\nconst isBoolean = t => typeof t === \"boolean\";\n\nconst isFunction = t => typeof t === \"function\";\n\nconst isArray = t => Array.isArray(t);\n\nconst isObject = t => typeof t === \"object\" && !isArray(t) && !isNull(t);\n\nconst isArrayLike = t => {\n const n = !!t && t.length;\n const o = isNumber(n) && n > -1 && n % 1 == 0;\n return isArray(t) || !isFunction(t) && o ? n > 0 && isObject(t) ? n - 1 in t : true : false;\n};\n\nconst isPlainObject = t => {\n if (!t || !isObject(t) || type(t) !== \"object\") {\n return false;\n }\n let n;\n const o = \"constructor\";\n const s = t[o];\n const e = s && s.prototype;\n const c = p.call(t, o);\n const r = e && p.call(e, \"isPrototypeOf\");\n if (s && !c && !r) {\n return false;\n }\n for (n in t) {}\n return isUndefined(n) || p.call(t, n);\n};\n\nconst isHTMLElement = t => {\n const n = HTMLElement;\n return t ? n ? t instanceof n : t.nodeType === v : false;\n};\n\nconst isElement = t => {\n const n = Element;\n return t ? n ? t instanceof n : t.nodeType === v : false;\n};\n\nconst animationCurrentTime = () => performance.now();\n\nconst animateNumber = (t, n, s, e, c) => {\n let i = 0;\n const a = animationCurrentTime();\n const u = o(0, s);\n const frame = s => {\n const r = animationCurrentTime();\n const f = r - a;\n const _ = f >= u;\n const d = s ? 1 : 1 - (o(0, a + u - r) / u || 0);\n const v = (n - t) * (isFunction(c) ? c(d, d * u, 0, 1, u) : d) + t;\n const h = _ || d === 1;\n e && e(v, d, h);\n i = h ? 0 : l((() => frame()));\n };\n frame();\n return t => {\n r(i);\n t && frame(t);\n };\n};\n\nfunction each(t, n) {\n if (isArrayLike(t)) {\n for (let o = 0; o < t.length; o++) {\n if (n(t[o], o, t) === false) {\n break;\n }\n }\n } else if (t) {\n each(Object.keys(t), (o => n(t[o], o, t)));\n }\n return t;\n}\n\nconst inArray = (t, n) => t.indexOf(n) >= 0;\n\nconst concat = (t, n) => t.concat(n);\n\nconst push = (t, n, o) => {\n !o && !isString(n) && isArrayLike(n) ? Array.prototype.push.apply(t, n) : t.push(n);\n return t;\n};\n\nconst from = t => Array.from(t || []);\n\nconst createOrKeepArray = t => isArray(t) ? t : [ t ];\n\nconst isEmptyArray = t => !!t && !t.length;\n\nconst deduplicateArray = t => from(new Set(t));\n\nconst runEachAndClear = (t, n, o) => {\n const runFn = t => t && t.apply(void 0, n || []);\n each(t, runFn);\n !o && (t.length = 0);\n};\n\nconst b = \"paddingTop\";\n\nconst w = \"paddingRight\";\n\nconst S = \"paddingLeft\";\n\nconst y = \"paddingBottom\";\n\nconst m = \"marginLeft\";\n\nconst O = \"marginRight\";\n\nconst $ = \"marginBottom\";\n\nconst C = \"overflowX\";\n\nconst x = \"overflowY\";\n\nconst H = \"width\";\n\nconst I = \"height\";\n\nconst z = \"hidden\";\n\nconst E = \"visible\";\n\nconst equal = (t, n, o, s) => {\n if (t && n) {\n let e = true;\n each(o, (o => {\n const c = s ? s(t[o]) : t[o];\n const r = s ? s(n[o]) : n[o];\n if (c !== r) {\n e = false;\n }\n }));\n return e;\n }\n return false;\n};\n\nconst equalWH = (t, n) => equal(t, n, [ \"w\", \"h\" ]);\n\nconst equalXY = (t, n) => equal(t, n, [ \"x\", \"y\" ]);\n\nconst equalTRBL = (t, n) => equal(t, n, [ \"t\", \"r\", \"b\", \"l\" ]);\n\nconst noop = () => {};\n\nconst bind = (t, ...n) => t.bind(0, ...n);\n\nconst selfClearTimeout = t => {\n let n;\n const o = t ? i : l;\n const s = t ? a : r;\n return [ e => {\n s(n);\n n = o(e, isFunction(t) ? t() : t);\n }, () => s(n) ];\n};\n\nconst debounce = (t, n) => {\n let o;\n let s;\n let e;\n let c = noop;\n const {v: u, p: f, S: _} = n || {};\n const d = function invokeFunctionToDebounce(n) {\n c();\n a(o);\n o = s = void 0;\n c = noop;\n t.apply(this, n);\n };\n const mergeParms = t => _ && s ? _(s, t) : t;\n const flush = () => {\n if (c !== noop) {\n d(mergeParms(e) || e);\n }\n };\n const v = function debouncedFn() {\n const t = from(arguments);\n const n = isFunction(u) ? u() : u;\n const _ = isNumber(n) && n >= 0;\n if (_) {\n const u = isFunction(f) ? f() : f;\n const _ = isNumber(u) && u >= 0;\n const v = n > 0 ? i : l;\n const h = n > 0 ? a : r;\n const p = mergeParms(t);\n const g = p || t;\n const b = d.bind(0, g);\n c();\n const w = v(b, n);\n c = () => h(w);\n if (_ && !o) {\n o = i(flush, u);\n }\n s = e = g;\n } else {\n d(t);\n }\n };\n v.m = flush;\n return v;\n};\n\nconst hasOwnProperty = (t, n) => Object.prototype.hasOwnProperty.call(t, n);\n\nconst keys = t => t ? Object.keys(t) : [];\n\nconst assignDeep = (t, n, o, s, e, c, r) => {\n const l = [ n, o, s, e, c, r ];\n if ((typeof t !== \"object\" || isNull(t)) && !isFunction(t)) {\n t = {};\n }\n each(l, (n => {\n each(n, ((o, s) => {\n const e = n[s];\n if (t === e) {\n return true;\n }\n const c = isArray(e);\n if (e && isPlainObject(e)) {\n const n = t[s];\n let o = n;\n if (c && !isArray(n)) {\n o = [];\n } else if (!c && !isPlainObject(n)) {\n o = {};\n }\n t[s] = assignDeep(o, e);\n } else {\n t[s] = c ? e.slice() : e;\n }\n }));\n }));\n return t;\n};\n\nconst removeUndefinedProperties = (t, n) => each(assignDeep({}, t), ((t, o, s) => {\n if (t === void 0) {\n delete s[o];\n } else if (n && t && isPlainObject(t)) {\n s[o] = removeUndefinedProperties(t, n);\n }\n}));\n\nconst isEmptyObject = t => {\n for (const n in t) {\n return false;\n }\n return true;\n};\n\nconst capNumber = (t, n, e) => o(t, s(n, e));\n\nconst getDomTokensArray = t => from(new Set((isArray(t) ? t : (t || \"\").split(\" \")).filter((t => t))));\n\nconst getAttr = (t, n) => t && t.getAttribute(n);\n\nconst setAttrs = (t, n, o) => {\n each(getDomTokensArray(n), (n => {\n t && t.setAttribute(n, o || \"\");\n }));\n};\n\nconst removeAttrs = (t, n) => {\n each(getDomTokensArray(n), (n => t && t.removeAttribute(n)));\n};\n\nconst domTokenListAttr = (t, n) => {\n const o = getDomTokensArray(getAttr(t, n));\n const s = bind(setAttrs, t, n);\n const domTokenListOperation = (t, n) => {\n const s = new Set(o);\n each(getDomTokensArray(t), (t => s[n](t)));\n return from(s).join(\" \");\n };\n return {\n O: t => s(domTokenListOperation(t, \"delete\")),\n $: t => s(domTokenListOperation(t, \"add\")),\n C: t => {\n const n = getDomTokensArray(t);\n return n.reduce(((t, n) => t && o.includes(n)), n.length > 0);\n }\n };\n};\n\nconst removeAttrClass = (t, n, o) => {\n domTokenListAttr(t, n).O(o);\n};\n\nconst addAttrClass = (t, n, o) => {\n domTokenListAttr(t, n).$(o);\n return bind(removeAttrClass, t, n, o);\n};\n\nconst addRemoveAttrClass = (t, n, o, s) => {\n (s ? addAttrClass : removeAttrClass)(t, n, o);\n};\n\nconst hasAttrClass = (t, n, o) => domTokenListAttr(t, n).C(o);\n\nconst createDomTokenListClass = t => domTokenListAttr(t, \"class\");\n\nconst removeClass = (t, n) => {\n createDomTokenListClass(t).O(n);\n};\n\nconst addClass = (t, n) => {\n createDomTokenListClass(t).$(n);\n return bind(removeClass, t, n);\n};\n\nconst A = t && Element.prototype;\n\nconst find = (t, n) => {\n const o = [];\n const s = n ? isElement(n) && n : document;\n return s ? push(o, s.querySelectorAll(t)) : o;\n};\n\nconst findFirst = (t, n) => {\n const o = n ? isElement(n) && n : document;\n return o ? o.querySelector(t) : null;\n};\n\nconst is = (t, n) => {\n if (isElement(t)) {\n const o = A.matches || A.msMatchesSelector;\n return o.call(t, n);\n }\n return false;\n};\n\nconst contents = t => t ? from(t.childNodes) : [];\n\nconst parent = t => t && t.parentElement;\n\nconst closest = (t, n) => isElement(t) && t.closest(n);\n\nconst liesBetween = (t, n, o) => {\n const s = closest(t, n);\n const e = t && findFirst(o, s);\n const c = closest(e, n) === s;\n return s && e ? s === t || e === t || c && closest(closest(t, o), n) !== s : false;\n};\n\nconst removeElements = t => {\n if (isArrayLike(t)) {\n each(from(t), (t => removeElements(t)));\n } else if (t) {\n const n = parent(t);\n n && n.removeChild(t);\n }\n};\n\nconst before = (t, n, o) => {\n if (o && t) {\n let s = n;\n let e;\n if (isArrayLike(o)) {\n e = document.createDocumentFragment();\n each(o, (t => {\n if (t === s) {\n s = t.previousSibling;\n }\n e.appendChild(t);\n }));\n } else {\n e = o;\n }\n if (n) {\n if (!s) {\n s = t.firstChild;\n } else if (s !== n) {\n s = s.nextSibling;\n }\n }\n t.insertBefore(e, s || null);\n return () => removeElements(o);\n }\n return noop;\n};\n\nconst appendChildren = (t, n) => before(t, null, n);\n\nconst insertAfter = (t, n) => before(parent(t), t && t.nextSibling, n);\n\nconst createDiv = t => {\n const n = document.createElement(\"div\");\n setAttrs(n, \"class\", t);\n return n;\n};\n\nconst createDOM = t => {\n const n = createDiv();\n n.innerHTML = t.trim();\n return each(contents(n), (t => removeElements(t)));\n};\n\nconst T = /^--/;\n\nconst getCSSVal = (t, n) => t.getPropertyValue(n) || t[n] || \"\";\n\nconst validFiniteNumber = t => {\n const n = t || 0;\n return isFinite(n) ? n : 0;\n};\n\nconst parseToZeroOrNumber = t => validFiniteNumber(parseFloat(t || \"\"));\n\nconst ratioToCssPercent = t => `${(validFiniteNumber(t) * 100).toFixed(3)}%`;\n\nconst numberToCssPx = t => `${validFiniteNumber(t)}px`;\n\nfunction setStyles(t, n) {\n t && each(n, ((n, o) => {\n try {\n const s = t.style;\n const e = isNumber(n) ? numberToCssPx(n) : (n || \"\") + \"\";\n if (T.test(o)) {\n s.setProperty(o, e);\n } else {\n s[o] = e;\n }\n } catch (s) {}\n }));\n}\n\nfunction getStyles(t, o, s) {\n const e = isString(o);\n let c = e ? \"\" : {};\n if (t) {\n const r = n.getComputedStyle(t, s) || t.style;\n c = e ? getCSSVal(r, o) : o.reduce(((t, n) => {\n t[n] = getCSSVal(r, n);\n return t;\n }), c);\n }\n return c;\n}\n\nconst getDirectionIsRTL = t => getStyles(t, \"direction\") === \"rtl\";\n\nconst topRightBottomLeft = (t, n, o) => {\n const s = n ? `${n}-` : \"\";\n const e = o ? `-${o}` : \"\";\n const c = `${s}top${e}`;\n const r = `${s}right${e}`;\n const l = `${s}bottom${e}`;\n const i = `${s}left${e}`;\n const a = getStyles(t, [ c, r, l, i ]);\n return {\n t: parseToZeroOrNumber(a[c]),\n r: parseToZeroOrNumber(a[r]),\n b: parseToZeroOrNumber(a[l]),\n l: parseToZeroOrNumber(a[i])\n };\n};\n\nconst getTrasformTranslateValue = (t, n) => `translate${isObject(t) ? `(${t.x},${t.y})` : `${n ? \"X\" : \"Y\"}(${t})`}`;\n\nconst D = {\n w: 0,\n h: 0\n};\n\nconst getElmWidthHeightProperty = (t, n) => n ? {\n w: n[`${t}Width`],\n h: n[`${t}Height`]\n} : D;\n\nconst windowSize = t => getElmWidthHeightProperty(\"inner\", t || n);\n\nconst k = bind(getElmWidthHeightProperty, \"offset\");\n\nconst R = bind(getElmWidthHeightProperty, \"client\");\n\nconst M = bind(getElmWidthHeightProperty, \"scroll\");\n\nconst fractionalSize = t => {\n const n = parseFloat(getStyles(t, H)) || 0;\n const o = parseFloat(getStyles(t, I)) || 0;\n return {\n w: n - e(n),\n h: o - e(o)\n };\n};\n\nconst getBoundingClientRect = t => t.getBoundingClientRect();\n\nconst domRectHasDimensions = t => !!(t && (t[I] || t[H]));\n\nconst domRectAppeared = (t, n) => {\n const o = domRectHasDimensions(t);\n const s = domRectHasDimensions(n);\n return !s && o;\n};\n\nconst removeEventListener = (t, n, o, s) => {\n each(getDomTokensArray(n), (n => {\n t.removeEventListener(n, o, s);\n }));\n};\n\nconst addEventListener = (t, n, o, s) => {\n var e;\n const c = (e = s && s.H) != null ? e : true;\n const r = s && s.I || false;\n const l = s && s.A || false;\n const i = {\n passive: c,\n capture: r\n };\n return bind(runEachAndClear, getDomTokensArray(n).map((n => {\n const s = l ? e => {\n removeEventListener(t, n, s, r);\n o(e);\n } : o;\n t.addEventListener(n, s, i);\n return bind(removeEventListener, t, n, s, r);\n })));\n};\n\nconst stopPropagation = t => t.stopPropagation();\n\nconst preventDefault = t => t.preventDefault();\n\nconst V = {\n x: 0,\n y: 0\n};\n\nconst absoluteCoordinates = t => {\n const o = t && getBoundingClientRect(t);\n return o ? {\n x: o.left + n.scrollX,\n y: o.top + n.scrollY\n } : V;\n};\n\nconst convertScrollPosition = (t, n, o) => o ? o.n ? -t + 0 : o.i ? n - t : t : t;\n\nconst getRawScrollBounds = (t, n) => [ convertScrollPosition(0, t, n), convertScrollPosition(t, t, n) ];\n\nconst getRawScrollRatio = (t, n, o) => capNumber(0, 1, convertScrollPosition(t, n, o) / n || 0);\n\nconst scrollElementTo = (t, n) => {\n const {x: o, y: s} = isNumber(n) ? {\n x: n,\n y: n\n } : n || {};\n isNumber(o) && (t.scrollLeft = o);\n isNumber(s) && (t.scrollTop = s);\n};\n\nconst getElmentScroll = t => ({\n x: t.scrollLeft,\n y: t.scrollTop\n});\n\nconst manageListener = (t, n) => {\n each(createOrKeepArray(n), t);\n};\n\nconst createEventListenerHub = t => {\n const n = new Map;\n const removeEvent = (t, o) => {\n if (t) {\n const s = n.get(t);\n manageListener((t => {\n if (s) {\n s[t ? \"delete\" : \"clear\"](t);\n }\n }), o);\n } else {\n n.forEach((t => {\n t.clear();\n }));\n n.clear();\n }\n };\n const addEvent = (t, o) => {\n if (isString(t)) {\n const s = n.get(t) || new Set;\n n.set(t, s);\n manageListener((t => {\n isFunction(t) && s.add(t);\n }), o);\n return bind(removeEvent, t, o);\n }\n if (isBoolean(o) && o) {\n removeEvent();\n }\n const s = keys(t);\n const e = [];\n each(s, (n => {\n const o = t[n];\n o && push(e, addEvent(n, o));\n }));\n return bind(runEachAndClear, e);\n };\n const triggerEvent = (t, o) => {\n each(from(n.get(t)), (t => {\n if (o && !isEmptyArray(o)) {\n t.apply(0, o);\n } else {\n t();\n }\n }));\n };\n addEvent(t || {});\n return [ addEvent, removeEvent, triggerEvent ];\n};\n\nconst opsStringify = t => JSON.stringify(t, ((t, n) => {\n if (isFunction(n)) {\n throw 0;\n }\n return n;\n}));\n\nconst getPropByPath = (t, n) => t ? `${n}`.split(\".\").reduce(((t, n) => t && hasOwnProperty(t, n) ? t[n] : void 0), t) : void 0;\n\nconst L = {\n paddingAbsolute: false,\n showNativeOverlaidScrollbars: false,\n update: {\n elementEvents: [ [ \"img\", \"load\" ] ],\n debounce: [ 0, 33 ],\n attributes: null,\n ignoreMutation: null\n },\n overflow: {\n x: \"scroll\",\n y: \"scroll\"\n },\n scrollbars: {\n theme: \"os-theme-dark\",\n visibility: \"auto\",\n autoHide: \"never\",\n autoHideDelay: 1300,\n autoHideSuspend: false,\n dragScroll: true,\n clickScroll: false,\n pointers: [ \"mouse\", \"touch\", \"pen\" ]\n }\n};\n\nconst getOptionsDiff = (t, n) => {\n const o = {};\n const s = concat(keys(n), keys(t));\n each(s, (s => {\n const e = t[s];\n const c = n[s];\n if (isObject(e) && isObject(c)) {\n assignDeep(o[s] = {}, getOptionsDiff(e, c));\n if (isEmptyObject(o[s])) {\n delete o[s];\n }\n } else if (hasOwnProperty(n, s) && c !== e) {\n let t = true;\n if (isArray(e) || isArray(c)) {\n try {\n if (opsStringify(e) === opsStringify(c)) {\n t = false;\n }\n } catch (r) {}\n }\n if (t) {\n o[s] = c;\n }\n }\n }));\n return o;\n};\n\nconst createOptionCheck = (t, n, o) => s => [ getPropByPath(t, s), o || getPropByPath(n, s) !== void 0 ];\n\nconst P = `data-overlayscrollbars`;\n\nconst U = \"os-environment\";\n\nconst B = `${U}-scrollbar-hidden`;\n\nconst N = `${P}-initialize`;\n\nconst j = P;\n\nconst F = `${j}-overflow-x`;\n\nconst q = `${j}-overflow-y`;\n\nconst W = \"overflowVisible\";\n\nconst X = \"scrollbarPressed\";\n\nconst Y = \"updating\";\n\nconst J = \"body\";\n\nconst K = `${P}-viewport`;\n\nconst Z = \"arrange\";\n\nconst G = \"scrollbarHidden\";\n\nconst Q = W;\n\nconst tt = `${P}-padding`;\n\nconst nt = Q;\n\nconst ot = `${P}-content`;\n\nconst st = \"os-size-observer\";\n\nconst et = `${st}-appear`;\n\nconst ct = `${st}-listener`;\n\nconst rt = `${ct}-scroll`;\n\nconst lt = `${ct}-item`;\n\nconst it = `${lt}-final`;\n\nconst at = \"os-trinsic-observer\";\n\nconst ut = \"os-theme-none\";\n\nconst ft = \"os-scrollbar\";\n\nconst _t = `${ft}-rtl`;\n\nconst dt = `${ft}-horizontal`;\n\nconst vt = `${ft}-vertical`;\n\nconst ht = `${ft}-track`;\n\nconst pt = `${ft}-handle`;\n\nconst gt = `${ft}-visible`;\n\nconst bt = `${ft}-cornerless`;\n\nconst wt = `${ft}-transitionless`;\n\nconst St = `${ft}-interaction`;\n\nconst yt = `${ft}-unusable`;\n\nconst mt = `${ft}-auto-hide`;\n\nconst Ot = `${mt}-hidden`;\n\nconst $t = `${ft}-wheel`;\n\nconst Ct = `${ht}-interactive`;\n\nconst xt = `${pt}-interactive`;\n\nconst Ht = {};\n\nconst It = {};\n\nconst addPlugins = t => {\n each(t, (t => each(t, ((n, o) => {\n Ht[o] = t[o];\n }))));\n};\n\nconst registerPluginModuleInstances = (t, n, o) => keys(t).map((s => {\n const {static: e, instance: c} = t[s];\n const [r, l, i] = o || [];\n const a = o ? c : e;\n if (a) {\n const t = o ? a(r, l, n) : a(n);\n return (i || It)[s] = t;\n }\n}));\n\nconst getStaticPluginModuleInstance = t => It[t];\n\nconst zt = \"__osOptionsValidationPlugin\";\n\nconst Et = \"__osSizeObserverPlugin\";\n\nconst At = /* @__PURE__ */ (() => ({\n [Et]: {\n static: () => (t, n, o) => {\n const s = 3333333;\n const e = \"scroll\";\n const c = createDOM(`<div class=\"${lt}\" dir=\"ltr\"><div class=\"${lt}\"><div class=\"${it}\"></div></div><div class=\"${lt}\"><div class=\"${it}\" style=\"width: 200%; height: 200%\"></div></div></div>`);\n const i = c[0];\n const a = i.lastChild;\n const u = i.firstChild;\n const f = u == null ? void 0 : u.firstChild;\n let _ = k(i);\n let d = _;\n let v = false;\n let h;\n const reset = () => {\n scrollElementTo(u, s);\n scrollElementTo(a, s);\n };\n const onResized = t => {\n h = 0;\n if (v) {\n _ = d;\n n(t === true);\n }\n };\n const onScroll = t => {\n d = k(i);\n v = !t || !equalWH(d, _);\n if (t) {\n stopPropagation(t);\n if (v && !h) {\n r(h);\n h = l(onResized);\n }\n } else {\n onResized(t === false);\n }\n reset();\n };\n const p = [ appendChildren(t, c), addEventListener(u, e, onScroll), addEventListener(a, e, onScroll) ];\n addClass(t, rt);\n setStyles(f, {\n [H]: s,\n [I]: s\n });\n l(reset);\n return [ o ? bind(onScroll, false) : reset, p ];\n }\n }\n}))();\n\nconst getShowNativeOverlaidScrollbars = (t, n) => {\n const {T: o} = n;\n const [s, e] = t(\"showNativeOverlaidScrollbars\");\n return [ s && o.x && o.y, e ];\n};\n\nconst overflowIsVisible = t => t.indexOf(E) === 0;\n\nconst getViewportOverflowState = (t, n) => {\n const {D: o} = t;\n const getStatePerAxis = t => {\n const s = getStyles(o, t);\n const e = n ? n[t] : s;\n const c = e === \"scroll\";\n return [ s, c ];\n };\n const [s, e] = getStatePerAxis(C);\n const [c, r] = getStatePerAxis(x);\n return {\n k: {\n x: s,\n y: c\n },\n R: {\n x: e,\n y: r\n }\n };\n};\n\nconst setViewportOverflowState = (t, n, o, s) => {\n const e = n.x || n.y;\n const setAxisOverflowStyle = (t, n) => {\n const o = overflowIsVisible(t);\n const s = o && e ? \"hidden\" : \"\";\n const c = n && o && t.replace(`${E}-`, \"\") || s;\n return [ n && !o ? t : \"\", overflowIsVisible(c) ? \"hidden\" : c ];\n };\n const [c, r] = setAxisOverflowStyle(o.x, n.x);\n const [l, i] = setAxisOverflowStyle(o.y, n.y);\n s[C] = r && l ? r : c;\n s[x] = i && c ? i : l;\n return getViewportOverflowState(t, s);\n};\n\nconst Tt = \"__osScrollbarsHidingPlugin\";\n\nconst Dt = /* @__PURE__ */ (() => ({\n [Tt]: {\n static: () => ({\n M: (t, n, o, s, e) => {\n const {V: c, D: r} = t;\n const {L: l, T: i, P: a} = s;\n const u = !c && !l && (i.x || i.y);\n const [f] = getShowNativeOverlaidScrollbars(e, s);\n const _getViewportOverflowHideOffset = t => {\n const {R: n} = t;\n const o = l || f ? 0 : 42;\n const getHideOffsetPerAxis = (t, n, s) => {\n const e = t ? o : s;\n const c = n && !l ? e : 0;\n const r = t && !!o;\n return [ c, r ];\n };\n const [s, e] = getHideOffsetPerAxis(i.x, n.x, a.x);\n const [c, r] = getHideOffsetPerAxis(i.y, n.y, a.y);\n return {\n U: {\n x: s,\n y: c\n },\n B: {\n x: e,\n y: r\n }\n };\n };\n const _hideNativeScrollbars = (t, {N: o}, s, e) => {\n assignDeep(e, {\n [O]: 0,\n [$]: 0,\n [m]: 0\n });\n if (!c) {\n const {U: c, B: r} = _getViewportOverflowHideOffset(t);\n const {x: l, y: i} = r;\n const {x: a, y: u} = c;\n const {j: f} = n;\n const _ = o ? m : O;\n const d = o ? S : w;\n const v = f[_];\n const h = f[$];\n const p = f[d];\n const g = f[y];\n e[H] = `calc(100% + ${u + v * -1}px)`;\n e[_] = -u + v;\n e[$] = -a + h;\n if (s) {\n e[d] = p + (i ? u : 0);\n e[y] = g + (l ? a : 0);\n }\n }\n };\n const _arrangeViewport = (t, s, e) => {\n if (u) {\n const {j: c} = n;\n const {U: l, B: i} = _getViewportOverflowHideOffset(t);\n const {x: a, y: u} = i;\n const {x: f, y: _} = l;\n const {N: d} = o;\n const v = d ? w : S;\n const h = c[v];\n const p = c.paddingTop;\n const g = s.w + e.w;\n const b = s.h + e.h;\n const y = {\n w: _ && u ? `${_ + g - h}px` : \"\",\n h: f && a ? `${f + b - p}px` : \"\"\n };\n setStyles(r, {\n \"--os-vaw\": y.w,\n \"--os-vah\": y.h\n });\n }\n return u;\n };\n const _undoViewportArrange = s => {\n if (u) {\n const e = s || getViewportOverflowState(t);\n const {j: c} = n;\n const {B: l} = _getViewportOverflowHideOffset(e);\n const {x: i, y: a} = l;\n const f = {};\n const assignProps = t => each(t, (t => {\n f[t] = c[t];\n }));\n if (i) {\n assignProps([ $, b, y ]);\n }\n if (a) {\n assignProps([ m, O, S, w ]);\n }\n const _ = getStyles(r, keys(f));\n removeAttrClass(r, K, Z);\n setStyles(r, f);\n return [ () => {\n _hideNativeScrollbars(e, o, u, _);\n setStyles(r, _);\n addAttrClass(r, K, Z);\n }, e ];\n }\n return [ noop ];\n };\n return {\n F: _getViewportOverflowHideOffset,\n q: _arrangeViewport,\n W: _undoViewportArrange,\n X: _hideNativeScrollbars\n };\n },\n Y: () => {\n let t = {\n w: 0,\n h: 0\n };\n let o = 0;\n const getWindowDPR = () => {\n const t = n.screen;\n const o = t.deviceXDPI || 0;\n const s = t.logicalXDPI || 1;\n return n.devicePixelRatio || o / s;\n };\n const diffBiggerThanOne = (t, n) => {\n const o = c(t);\n const s = c(n);\n return !(o === s || o + 1 === s || o - 1 === s);\n };\n return (n, s) => {\n const r = windowSize();\n const l = {\n w: r.w - t.w,\n h: r.h - t.h\n };\n if (l.w === 0 && l.h === 0) {\n return;\n }\n const i = {\n w: c(l.w),\n h: c(l.h)\n };\n const a = {\n w: c(e(r.w / (t.w / 100))),\n h: c(e(r.h / (t.h / 100)))\n };\n const u = getWindowDPR();\n const f = i.w > 2 && i.h > 2;\n const _ = !diffBiggerThanOne(a.w, a.h);\n const d = u !== o && u > 0;\n const v = f && _ && d;\n let h;\n let p;\n if (v) {\n [p, h] = s();\n assignDeep(n.P, p);\n }\n t = r;\n o = u;\n return h;\n };\n }\n })\n }\n}))();\n\nconst kt = \"__osClickScrollPlugin\";\n\nconst Rt = /* @__PURE__ */ (() => ({\n [kt]: {\n static: () => (t, n, o, s, e) => {\n let c = 0;\n let r = noop;\n const animateClickScroll = l => {\n r = animateNumber(l, l + s * Math.sign(o), 133, ((o, l, a) => {\n t(o);\n const u = n();\n const f = u + s;\n const _ = e >= u && e <= f;\n if (a && !_) {\n if (c) {\n animateClickScroll(o);\n } else {\n const t = i((() => {\n animateClickScroll(o);\n }), 222);\n r = () => {\n clearTimeout(t);\n };\n }\n c++;\n }\n }));\n };\n animateClickScroll(0);\n return () => r();\n }\n }\n}))();\n\nlet Mt;\n\nconst createEnvironment = () => {\n const getNativeScrollbarSize = (t, n, o, s) => {\n appendChildren(t, n);\n const e = R(n);\n const c = k(n);\n const r = fractionalSize(o);\n s && removeElements(n);\n return {\n x: c.h - e.h + r.h,\n y: c.w - e.w + r.w\n };\n };\n const getNativeScrollbarsHiding = t => {\n let n = false;\n const o = addClass(t, B);\n try {\n n = getStyles(t, \"scrollbar-width\") === \"none\" || getStyles(t, \"display\", \"::-webkit-scrollbar\") === \"none\";\n } catch (s) {}\n o();\n return n;\n };\n const getRtlScrollBehavior = (t, n) => {\n setStyles(t, {\n [C]: z,\n [x]: z,\n direction: \"rtl\"\n });\n scrollElementTo(t, {\n x: 0\n });\n const o = absoluteCoordinates(t);\n const s = absoluteCoordinates(n);\n scrollElementTo(t, {\n x: -999\n });\n const e = absoluteCoordinates(n);\n return {\n i: o.x === s.x,\n n: s.x !== e.x\n };\n };\n const {body: t} = document;\n const o = createDOM(`<div class=\"${U}\"><div></div></div>`);\n const s = o[0];\n const e = s.firstChild;\n const [c, , r] = createEventListenerHub();\n const [l, i] = createCache({\n o: getNativeScrollbarSize(t, s, e),\n u: equalXY\n }, bind(getNativeScrollbarSize, t, s, e, true));\n const [a] = i();\n const u = getNativeScrollbarsHiding(s);\n const f = {\n x: a.x === 0,\n y: a.y === 0\n };\n const _ = {\n elements: {\n host: null,\n padding: !u,\n viewport: t => u && t === t.ownerDocument.body && t,\n content: false\n },\n scrollbars: {\n slot: true\n },\n cancel: {\n nativeScrollbarsOverlaid: false,\n body: null\n }\n };\n const v = assignDeep({}, L);\n const h = bind(assignDeep, {}, v);\n const p = bind(assignDeep, {}, _);\n const g = {\n P: a,\n T: f,\n L: u,\n J: !!d,\n K: getRtlScrollBehavior(s, e),\n Z: bind(c, \"r\"),\n G: p,\n tt: t => assignDeep(_, t) && p(),\n nt: h,\n ot: t => assignDeep(v, t) && h(),\n st: assignDeep({}, _),\n et: assignDeep({}, v)\n };\n removeAttrs(s, \"style\");\n removeElements(s);\n n.addEventListener(\"resize\", (() => {\n let t;\n if (!u && (!f.x || !f.y)) {\n const n = getStaticPluginModuleInstance(Tt);\n const o = n ? n.Y() : noop;\n t = !!o(g, l);\n }\n r(\"r\", [ t ]);\n }));\n return g;\n};\n\nconst getEnvironment = () => {\n if (!Mt) {\n Mt = createEnvironment();\n }\n return Mt;\n};\n\nconst resolveInitialization = (t, n) => isFunction(n) ? n.apply(0, t) : n;\n\nconst staticInitializationElement = (t, n, o, s) => {\n const e = isUndefined(s) ? o : s;\n const c = resolveInitialization(t, e);\n return c || n.apply(0, t);\n};\n\nconst dynamicInitializationElement = (t, n, o, s) => {\n const e = isUndefined(s) ? o : s;\n const c = resolveInitialization(t, e);\n return !!c && (isHTMLElement(c) ? c : n.apply(0, t));\n};\n\nconst cancelInitialization = (t, n) => {\n const {nativeScrollbarsOverlaid: o, body: s} = n || {};\n const {T: e, L: c, G: r} = getEnvironment();\n const {nativeScrollbarsOverlaid: l, body: i} = r().cancel;\n const a = o != null ? o : l;\n const u = isUndefined(s) ? i : s;\n const f = (e.x || e.y) && a;\n const _ = t && (isNull(u) ? !c : u);\n return !!f || !!_;\n};\n\nconst Vt = new WeakMap;\n\nconst addInstance = (t, n) => {\n Vt.set(t, n);\n};\n\nconst removeInstance = t => {\n Vt.delete(t);\n};\n\nconst getInstance = t => Vt.get(t);\n\nconst createEventContentChange = (t, n, o) => {\n let s = false;\n const e = o ? new WeakMap : false;\n const destroy = () => {\n s = true;\n };\n const updateElements = c => {\n if (e && o) {\n const r = o.map((n => {\n const [o, s] = n || [];\n const e = s && o ? (c || find)(o, t) : [];\n return [ e, s ];\n }));\n each(r, (o => each(o[0], (c => {\n const r = o[1];\n const l = e.get(c) || [];\n const i = t.contains(c);\n if (i && r) {\n const t = addEventListener(c, r, (o => {\n if (s) {\n t();\n e.delete(c);\n } else {\n n(o);\n }\n }));\n e.set(c, push(l, t));\n } else {\n runEachAndClear(l);\n e.delete(c);\n }\n }))));\n }\n };\n updateElements();\n return [ destroy, updateElements ];\n};\n\nconst createDOMObserver = (t, n, o, s) => {\n let e = false;\n const {ct: c, rt: r, lt: l, it: i, ut: a, ft: f} = s || {};\n const _ = debounce((() => e && o(true)), {\n v: 33,\n p: 99\n });\n const [d, v] = createEventContentChange(t, _, l);\n const h = c || [];\n const p = r || [];\n const g = concat(h, p);\n const observerCallback = (e, c) => {\n if (!isEmptyArray(c)) {\n const r = a || noop;\n const l = f || noop;\n const u = [];\n const _ = [];\n let d = false;\n let h = false;\n each(c, (o => {\n const {attributeName: e, target: c, type: a, oldValue: f, addedNodes: v, removedNodes: g} = o;\n const b = a === \"attributes\";\n const w = a === \"childList\";\n const S = t === c;\n const y = b && e;\n const m = y && getAttr(c, e || \"\") || null;\n const O = y && f !== m;\n const $ = inArray(p, e) && O;\n if (n && (w || !S)) {\n const n = b && O;\n const a = n && i && is(c, i);\n const _ = a ? !r(c, e, f, m) : !b || n;\n const d = _ && !l(o, !!a, t, s);\n each(v, (t => push(u, t)));\n each(g, (t => push(u, t)));\n h = h || d;\n }\n if (!n && S && O && !r(c, e, f, m)) {\n push(_, e);\n d = d || $;\n }\n }));\n v((t => deduplicateArray(u).reduce(((n, o) => {\n push(n, find(t, o));\n return is(o, t) ? push(n, o) : n;\n }), [])));\n if (n) {\n !e && h && o(false);\n return [ false ];\n }\n if (!isEmptyArray(_) || d) {\n const t = [ deduplicateArray(_), d ];\n !e && o.apply(0, t);\n return t;\n }\n }\n };\n const b = new u(bind(observerCallback, false));\n return [ () => {\n b.observe(t, {\n attributes: true,\n attributeOldValue: true,\n attributeFilter: g,\n subtree: n,\n childList: n,\n characterData: n\n });\n e = true;\n return () => {\n if (e) {\n d();\n b.disconnect();\n e = false;\n }\n };\n }, () => {\n if (e) {\n _.m();\n return observerCallback(true, b.takeRecords());\n }\n } ];\n};\n\nconst createSizeObserver = (t, n, o) => {\n const s = 3333333;\n const {_t: e, dt: c} = o || {};\n const r = getStaticPluginModuleInstance(Et);\n const {K: l} = getEnvironment();\n const i = bind(getDirectionIsRTL, t);\n const [a] = createCache({\n o: false,\n _: true\n });\n return () => {\n const o = [];\n const u = createDOM(`<div class=\"${st}\"><div class=\"${ct}\"></div></div>`);\n const f = u[0];\n const d = f.firstChild;\n const onSizeChangedCallbackProxy = t => {\n const o = t instanceof ResizeObserverEntry;\n const c = !o && isArray(t);\n let r = false;\n let i = false;\n let u = true;\n if (o) {\n const [n, , o] = a(t.contentRect);\n const s = domRectHasDimensions(n);\n const e = domRectAppeared(n, o);\n const c = !o;\n i = c || e;\n r = !i && !s;\n u = !r;\n } else if (c) {\n [, u] = t;\n } else {\n i = t === true;\n }\n if (e && u) {\n const n = c ? t[0] : getDirectionIsRTL(f);\n scrollElementTo(f, {\n x: convertScrollPosition(s, s, n && l),\n y: s\n });\n }\n if (!r) {\n n({\n vt: c ? t : void 0,\n ht: !c,\n dt: i\n });\n }\n };\n if (_) {\n const t = new _((t => onSizeChangedCallbackProxy(t.pop())));\n t.observe(d);\n push(o, (() => {\n t.disconnect();\n }));\n } else if (r) {\n const [t, n] = r(d, onSizeChangedCallbackProxy, c);\n push(o, concat([ addClass(f, et), addEventListener(f, \"animationstart\", t) ], n));\n } else {\n return noop;\n }\n if (e) {\n const [t] = createCache({\n o: void 0\n }, i);\n push(o, addEventListener(f, \"scroll\", (n => {\n const o = t();\n const [s, e, c] = o;\n if (e) {\n removeClass(d, \"ltr rtl\");\n addClass(d, s ? \"rtl\" : \"ltr\");\n onSizeChangedCallbackProxy([ !!s, e, c ]);\n }\n stopPropagation(n);\n })));\n }\n return bind(runEachAndClear, push(o, appendChildren(t, f)));\n };\n};\n\nconst createTrinsicObserver = (t, n) => {\n let o;\n const isHeightIntrinsic = t => t.h === 0 || t.isIntersecting || t.intersectionRatio > 0;\n const s = createDiv(at);\n const [e] = createCache({\n o: false\n });\n const triggerOnTrinsicChangedCallback = (t, o) => {\n if (t) {\n const s = e(isHeightIntrinsic(t));\n const [, c] = s;\n return c && !o && n(s) && [ s ];\n }\n };\n const intersectionObserverCallback = (t, n) => triggerOnTrinsicChangedCallback(n.pop(), t);\n return [ () => {\n const n = [];\n if (f) {\n o = new f(bind(intersectionObserverCallback, false), {\n root: t\n });\n o.observe(s);\n push(n, (() => {\n o.disconnect();\n }));\n } else {\n const onSizeChanged = () => {\n const t = k(s);\n triggerOnTrinsicChangedCallback(t);\n };\n push(n, createSizeObserver(s, onSizeChanged)());\n onSizeChanged();\n }\n return bind(runEachAndClear, push(n, appendChildren(t, s)));\n }, () => o && intersectionObserverCallback(true, o.takeRecords()) ];\n};\n\nconst createObserversSetup = (t, n, o, s) => {\n let e;\n let c;\n let r;\n let l;\n let i;\n let a;\n const {L: u} = getEnvironment();\n const f = `[${j}]`;\n const d = `[${K}]`;\n const v = [ \"tabindex\" ];\n const h = [ \"wrap\", \"cols\", \"rows\" ];\n const p = [ \"id\", \"class\", \"style\", \"open\" ];\n const {gt: g, bt: b, D: w, wt: S, St: y, V: m, yt: O, Ot: $} = t;\n const C = {\n $t: false,\n N: getDirectionIsRTL(g)\n };\n const x = getEnvironment();\n const H = getStaticPluginModuleInstance(Tt);\n const [I] = createCache({\n u: equalWH,\n o: {\n w: 0,\n h: 0\n }\n }, (() => {\n const s = H && H.M(t, n, C, x, o).W;\n const e = O(Q);\n const c = !m && O(Z);\n const r = c && getElmentScroll(w);\n $(Q);\n m && $(Y, true);\n const l = c && s && s()[0];\n const i = M(S);\n const a = M(w);\n const u = fractionalSize(w);\n $(Q, e);\n m && $(Y);\n l && l();\n scrollElementTo(w, r);\n return {\n w: a.w + i.w + u.w,\n h: a.h + i.h + u.h\n };\n }));\n const z = y ? h : concat(p, h);\n const E = debounce(s, {\n v: () => e,\n p: () => c,\n S(t, n) {\n const [o] = t;\n const [s] = n;\n return [ concat(keys(o), keys(s)).reduce(((t, n) => {\n t[n] = o[n] || s[n];\n return t;\n }), {}) ];\n }\n });\n const setDirectionWhenViewportIsTarget = t => {\n if (m) {\n const n = getDirectionIsRTL(g);\n assignDeep(t, {\n Ct: a !== n\n });\n assignDeep(C, {\n N: n\n });\n a = n;\n }\n };\n const updateViewportAttrsFromHost = t => {\n each(t || v, (t => {\n if (inArray(v, t)) {\n const n = getAttr(b, t);\n if (isString(n)) {\n setAttrs(w, t, n);\n } else {\n removeAttrs(w, t);\n }\n }\n }));\n };\n const onTrinsicChanged = (t, n) => {\n const [o, e] = t;\n const c = {\n xt: e\n };\n assignDeep(C, {\n $t: o\n });\n !n && s(c);\n return c;\n };\n const onSizeChanged = ({ht: t, vt: n, dt: o}) => {\n const e = t && !o && !n;\n const c = !e && u ? E : s;\n const [r, l] = n || [];\n const i = {\n ht: t || o,\n dt: o,\n Ct: l\n };\n setDirectionWhenViewportIsTarget(i);\n n && assignDeep(C, {\n N: r\n });\n c(i);\n };\n const onContentMutation = (t, n) => {\n const [, o] = I();\n const e = {\n Ht: o\n };\n setDirectionWhenViewportIsTarget(e);\n const c = t ? s : E;\n o && !n && c(e);\n return e;\n };\n const onHostMutation = (t, n, o) => {\n const s = {\n It: n\n };\n setDirectionWhenViewportIsTarget(s);\n if (n && !o) {\n E(s);\n } else if (!m) {\n updateViewportAttrsFromHost(t);\n }\n return s;\n };\n const {Z: A} = x;\n const [T, D] = S ? createTrinsicObserver(b, onTrinsicChanged) : [];\n const k = !m && createSizeObserver(b, onSizeChanged, {\n dt: true,\n _t: true\n });\n const [R, V] = createDOMObserver(b, false, onHostMutation, {\n rt: p,\n ct: concat(p, v)\n });\n const L = m && _ && new _((t => {\n const n = t[t.length - 1].contentRect;\n onSizeChanged({\n ht: true,\n dt: domRectAppeared(n, i)\n });\n i = n;\n }));\n return [ () => {\n updateViewportAttrsFromHost();\n L && L.observe(b);\n const t = k && k();\n const n = T && T();\n const o = R();\n const s = A((t => {\n const [, n] = I();\n E({\n zt: t,\n Ht: n\n });\n }));\n return () => {\n L && L.disconnect();\n t && t();\n n && n();\n l && l();\n o();\n s();\n };\n }, ({Et: t, At: n, Tt: o}) => {\n const s = {};\n const [i] = t(\"update.ignoreMutation\");\n const [a, u] = t(\"update.attributes\");\n const [_, v] = t(\"update.elementEvents\");\n const [h, p] = t(\"update.debounce\");\n const g = v || u;\n const b = n || o;\n const ignoreMutationFromOptions = t => isFunction(i) && i(t);\n if (g) {\n r && r();\n l && l();\n const [t, n] = createDOMObserver(S || w, true, onContentMutation, {\n ct: concat(z, a || []),\n lt: _,\n it: f,\n ft: (t, n) => {\n const {target: o, attributeName: s} = t;\n const e = !n && s && !m ? liesBetween(o, f, d) : false;\n return e || !!closest(o, `.${ft}`) || !!ignoreMutationFromOptions(t);\n }\n });\n l = t();\n r = n;\n }\n if (p) {\n E.m();\n if (isArray(h)) {\n const t = h[0];\n const n = h[1];\n e = isNumber(t) && t;\n c = isNumber(n) && n;\n } else if (isNumber(h)) {\n e = h;\n c = false;\n } else {\n e = false;\n c = false;\n }\n }\n if (b) {\n const t = V();\n const n = D && D();\n const o = r && r();\n t && assignDeep(s, onHostMutation(t[0], t[1], b));\n n && assignDeep(s, onTrinsicChanged(n[0], b));\n o && assignDeep(s, onContentMutation(o[0], b));\n }\n setDirectionWhenViewportIsTarget(s);\n return s;\n }, C ];\n};\n\nconst createScrollbarsSetupElements = (t, n, o, s) => {\n const {G: e, K: c} = getEnvironment();\n const {scrollbars: r} = e();\n const {slot: l} = r;\n const {gt: a, bt: u, D: f, Dt: _, kt: v, Rt: h, V: p} = n;\n const {scrollbars: g} = _ ? {} : t;\n const {slot: b} = g || {};\n const w = new Map;\n const initScrollTimeline = t => d && new d({\n source: v,\n axis: t\n });\n const S = initScrollTimeline(\"x\");\n const y = initScrollTimeline(\"y\");\n const m = dynamicInitializationElement([ a, u, f ], (() => p && h ? a : u), l, b);\n const getScrollbarHandleLengthRatio = (t, n) => {\n if (n) {\n const o = t ? H : I;\n const {Mt: s, Vt: e} = n;\n const c = getBoundingClientRect(e)[o];\n const r = getBoundingClientRect(s)[o];\n return capNumber(0, 1, c / r || 0);\n }\n const s = t ? \"x\" : \"y\";\n const {Lt: e, Pt: c} = o;\n const r = c[s];\n const l = e[s];\n return capNumber(0, 1, r / (r + l) || 0);\n };\n const getScrollbarHandleOffsetRatio = (t, n, o, s) => {\n const e = getScrollbarHandleLengthRatio(o, t);\n return 1 / e * (1 - e) * (s ? 1 - n : n) || 0;\n };\n const addDirectionRTLKeyframes = (t, n) => assignDeep(t, n ? {\n clear: [ \"left\" ]\n } : {});\n const cancelElementAnimations = t => {\n w.forEach(((n, o) => {\n const s = t ? inArray(createOrKeepArray(t), o) : true;\n if (s) {\n each(n || [], (t => {\n t && t.cancel();\n }));\n w.delete(o);\n }\n }));\n };\n const setElementAnimation = (t, n, o, s) => {\n const e = w.get(t) || [];\n const c = e.find((t => t && t.timeline === n));\n if (c) {\n c.effect = new KeyframeEffect(t, o, {\n composite: s\n });\n } else {\n w.set(t, concat(e, [ t.animate(o, {\n timeline: n,\n composite: s\n }) ]));\n }\n };\n const scrollbarStructureAddRemoveClass = (t, n, o) => {\n const s = o ? addClass : removeClass;\n each(t, (t => {\n s(t.Ut, n);\n }));\n };\n const scrollbarStyle = (t, n) => {\n each(t, (t => {\n const [o, s] = n(t);\n setStyles(o, s);\n }));\n };\n const scrollbarStructureRefreshHandleLength = (t, n) => {\n scrollbarStyle(t, (t => {\n const {Vt: o} = t;\n return [ o, {\n [n ? H : I]: ratioToCssPercent(getScrollbarHandleLengthRatio(n))\n } ];\n }));\n };\n const scrollbarStructureRefreshHandleOffset = (t, n) => {\n const {Lt: s} = o;\n const e = n ? s.x : s.y;\n const getTransformValue = (t, o, s) => getTrasformTranslateValue(ratioToCssPercent(getScrollbarHandleOffsetRatio(t, getRawScrollRatio(o, e, s), n, s)), n);\n if (S && y) {\n each(t, (t => {\n const {Ut: o, Vt: s} = t;\n const r = n && getDirectionIsRTL(o) && c;\n setElementAnimation(s, n ? S : y, addDirectionRTLKeyframes({\n transform: getRawScrollBounds(e, r).map((n => getTransformValue(t, n, r)))\n }, r));\n }));\n } else {\n const o = getElmentScroll(v);\n scrollbarStyle(t, (t => {\n const {Vt: s, Ut: e} = t;\n return [ s, {\n transform: getTransformValue(t, n ? o.x : o.y, n && getDirectionIsRTL(e) && c)\n } ];\n }));\n }\n };\n const doRefreshScrollbarOffset = t => p && !h && parent(t) === f;\n const O = [];\n const $ = [];\n const C = [];\n const scrollbarsAddRemoveClass = (t, n, o) => {\n const s = isBoolean(o);\n const e = s ? o : true;\n const c = s ? !o : true;\n e && scrollbarStructureAddRemoveClass($, t, n);\n c && scrollbarStructureAddRemoveClass(C, t, n);\n };\n const refreshScrollbarsHandleLength = () => {\n scrollbarStructureRefreshHandleLength($, true);\n scrollbarStructureRefreshHandleLength(C);\n };\n const refreshScrollbarsHandleOffset = () => {\n scrollbarStructureRefreshHandleOffset($, true);\n scrollbarStructureRefreshHandleOffset(C);\n };\n const refreshScrollbarsScrollbarOffset = () => {\n if (p) {\n const {Lt: t} = o;\n const n = .5;\n if (S && y) {\n each(concat(C, $), (({Ut: o}) => {\n if (doRefreshScrollbarOffset(o)) {\n const setScrollbarElementAnimation = (t, s, e) => {\n const r = e && getDirectionIsRTL(o) && c;\n setElementAnimation(o, t, addDirectionRTLKeyframes({\n transform: getRawScrollBounds(s - n, r).map((t => getTrasformTranslateValue(numberToCssPx(t), e)))\n }, r), \"add\");\n };\n setScrollbarElementAnimation(S, t.x, true);\n setScrollbarElementAnimation(y, t.y);\n } else {\n cancelElementAnimations(o);\n }\n }));\n } else {\n const n = getElmentScroll(v);\n const styleScrollbarPosition = o => {\n const {Ut: s} = o;\n const e = doRefreshScrollbarOffset(s) && s;\n const getTranslateValue = (t, n, o) => {\n const s = getRawScrollRatio(t, n, o);\n const e = n * s;\n return numberToCssPx(o ? -e : e);\n };\n return [ e, {\n transform: e ? getTrasformTranslateValue({\n x: getTranslateValue(n.x, t.x, getDirectionIsRTL(s) && c),\n y: getTranslateValue(n.y, t.y)\n }) : \"\"\n } ];\n };\n scrollbarStyle($, styleScrollbarPosition);\n scrollbarStyle(C, styleScrollbarPosition);\n }\n }\n };\n const generateScrollbarDOM = t => {\n const n = t ? dt : vt;\n const o = t ? $ : C;\n const e = isEmptyArray(o) ? wt : \"\";\n const c = createDiv(`${ft} ${n} ${e}`);\n const r = createDiv(ht);\n const l = createDiv(pt);\n const i = {\n Ut: c,\n Mt: r,\n Vt: l\n };\n push(o, i);\n push(O, [ appendChildren(c, r), appendChildren(r, l), bind(removeElements, c), cancelElementAnimations, s(i, scrollbarsAddRemoveClass, scrollbarStructureRefreshHandleOffset, t) ]);\n return i;\n };\n const x = bind(generateScrollbarDOM, true);\n const z = bind(generateScrollbarDOM, false);\n const appendElements = () => {\n appendChildren(m, $[0].Ut);\n appendChildren(m, C[0].Ut);\n i((() => {\n scrollbarsAddRemoveClass(wt);\n }), 300);\n return bind(runEachAndClear, O);\n };\n x();\n z();\n return [ {\n Bt: refreshScrollbarsHandleLength,\n Nt: refreshScrollbarsHandleOffset,\n jt: refreshScrollbarsScrollbarOffset,\n Ft: scrollbarsAddRemoveClass,\n qt: {\n J: S,\n Wt: $,\n Xt: x,\n Yt: bind(scrollbarStyle, $)\n },\n Jt: {\n J: y,\n Wt: C,\n Xt: z,\n Yt: bind(scrollbarStyle, C)\n }\n }, appendElements ];\n};\n\nconst createScrollbarsSetupEvents = (t, n, o) => {\n const {bt: s, kt: c, Kt: r} = n;\n return (n, l, i, a) => {\n const {Ut: u, Mt: f, Vt: _} = n;\n const [d, v] = selfClearTimeout(333);\n const [h, p] = selfClearTimeout();\n const g = bind(i, [ n ], a);\n const b = !!c.scrollBy;\n const w = `client${a ? \"X\" : \"Y\"}`;\n const S = a ? H : I;\n const y = a ? \"left\" : \"top\";\n const m = a ? \"w\" : \"h\";\n const O = a ? \"x\" : \"y\";\n const isAffectingTransition = t => t.propertyName.indexOf(S) > -1;\n const createInteractiveScrollEvents = () => {\n const n = \"pointerup pointerleave pointercancel lostpointercapture\";\n const createRelativeHandleMove = (t, n) => s => {\n const {Lt: e} = o;\n const r = k(f)[m] - k(_)[m];\n const l = n * s / r;\n const i = l * e[O];\n scrollElementTo(c, {\n [O]: t + i\n });\n };\n return addEventListener(f, \"pointerdown\", (o => {\n const l = closest(o.target, `.${pt}`) === _;\n const i = l ? _ : f;\n const a = t.scrollbars;\n const {button: u, isPrimary: d, pointerType: v} = o;\n const {pointers: h} = a;\n const p = u === 0 && d && a[l ? \"dragScroll\" : \"clickScroll\"] && (h || []).includes(v);\n if (p) {\n const t = !l && o.shiftKey;\n const a = bind(getBoundingClientRect, _);\n const u = bind(getBoundingClientRect, f);\n const getHandleOffset = (t, n) => (t || a())[y] - (n || u())[y];\n const d = e(getBoundingClientRect(c)[S]) / k(c)[m] || 1;\n const v = createRelativeHandleMove(getElmentScroll(c)[O] || 0, 1 / d);\n const h = o[w];\n const p = a();\n const g = u();\n const b = p[S];\n const $ = getHandleOffset(p, g) + b / 2;\n const C = h - g[y];\n const x = l ? 0 : C - $;\n const releasePointerCapture = t => {\n runEachAndClear(I);\n i.releasePointerCapture(t.pointerId);\n };\n const H = addAttrClass(s, j, X);\n const I = [ H, addEventListener(r, n, releasePointerCapture), addEventListener(r, \"selectstart\", (t => preventDefault(t)), {\n H: false\n }), addEventListener(f, n, releasePointerCapture), addEventListener(f, \"pointermove\", (n => {\n const o = n[w] - h;\n if (l || t) {\n v(x + o);\n }\n })) ];\n i.setPointerCapture(o.pointerId);\n if (t) {\n v(x);\n } else if (!l) {\n const t = getStaticPluginModuleInstance(kt);\n t && push(I, t(v, getHandleOffset, x, b, C));\n }\n }\n }));\n };\n let $ = true;\n return bind(runEachAndClear, [ addEventListener(u, \"pointerenter\", (() => {\n l(St, true);\n })), addEventListener(u, \"pointerleave pointercancel\", (() => {\n l(St, false);\n })), addEventListener(u, \"wheel\", (t => {\n const {deltaX: n, deltaY: o, deltaMode: e} = t;\n if (b && $ && e === 0 && parent(u) === s) {\n c.scrollBy({\n left: n,\n top: o,\n behavior: \"smooth\"\n });\n }\n $ = false;\n l($t, true);\n d((() => {\n $ = true;\n l($t);\n }));\n preventDefault(t);\n }), {\n H: false,\n I: true\n }), addEventListener(_, \"transitionstart\", (t => {\n if (isAffectingTransition(t)) {\n const animateHandleOffset = () => {\n g();\n h(animateHandleOffset);\n };\n animateHandleOffset();\n }\n })), addEventListener(_, \"transitionend transitioncancel\", (t => {\n if (isAffectingTransition(t)) {\n p();\n g();\n }\n })), addEventListener(u, \"mousedown\", bind(addEventListener, r, \"click\", stopPropagation, {\n A: true,\n I: true\n }), {\n I: true\n }), createInteractiveScrollEvents(), v, p ]);\n };\n};\n\nconst createScrollbarsSetup = (t, n, o, s, e, c) => {\n let r;\n let l;\n let i;\n let a;\n let u;\n let f = noop;\n let _ = 0;\n const [d, v] = selfClearTimeout();\n const [h, p] = selfClearTimeout();\n const [g, b] = selfClearTimeout(100);\n const [w, S] = selfClearTimeout(100);\n const [y, m] = selfClearTimeout(100);\n const [O, $] = selfClearTimeout((() => _));\n const [C, x] = createScrollbarsSetupElements(t, e, s, createScrollbarsSetupEvents(n, e, s));\n const {bt: H, Zt: I, Rt: z} = e;\n const {Ft: E, Bt: A, Nt: T, jt: D} = C;\n const manageAutoHideSuspension = t => {\n E(mt, t, true);\n E(mt, t, false);\n };\n const manageScrollbarsAutoHide = (t, n) => {\n $();\n if (t) {\n E(Ot);\n } else {\n const t = bind(E, Ot, true);\n if (_ > 0 && !n) {\n O(t);\n } else {\n t();\n }\n }\n };\n const isHoverablePointerType = t => t.pointerType === \"mouse\";\n const onHostMouseEnter = t => {\n if (isHoverablePointerType(t)) {\n a = l;\n a && manageScrollbarsAutoHide(true);\n }\n };\n const k = [ b, $, S, m, p, v, () => f(), addEventListener(H, \"pointerover\", onHostMouseEnter, {\n A: true\n }), addEventListener(H, \"pointerenter\", onHostMouseEnter), addEventListener(H, \"pointerleave\", (t => {\n if (isHoverablePointerType(t)) {\n a = false;\n l && manageScrollbarsAutoHide(false);\n }\n })), addEventListener(H, \"pointermove\", (t => {\n isHoverablePointerType(t) && r && d((() => {\n b();\n manageScrollbarsAutoHide(true);\n w((() => {\n r && manageScrollbarsAutoHide(false);\n }));\n }));\n })), addEventListener(I, \"scroll\", (t => {\n h((() => {\n T();\n i && manageScrollbarsAutoHide(true);\n g((() => {\n i && !a && manageScrollbarsAutoHide(false);\n }));\n }));\n c(t);\n D();\n })) ];\n return [ () => bind(runEachAndClear, push(k, x())), ({Et: t, Tt: n, Gt: e, Qt: c}) => {\n const {tn: a, nn: d, sn: v} = c || {};\n const {Ct: h, dt: p} = e || {};\n const {N: g} = o;\n const {T: b} = getEnvironment();\n const {Lt: w, k: S, en: m} = s;\n const [O, $] = t(\"showNativeOverlaidScrollbars\");\n const [C, x] = t(\"scrollbars.theme\");\n const [H, k] = t(\"scrollbars.visibility\");\n const [R, M] = t(\"scrollbars.autoHide\");\n const [V, L] = t(\"scrollbars.autoHideSuspend\");\n const [P] = t(\"scrollbars.autoHideDelay\");\n const [U, B] = t(\"scrollbars.dragScroll\");\n const [N, j] = t(\"scrollbars.clickScroll\");\n const F = p && !n;\n const q = m.x || m.y;\n const W = a || d || h || n;\n const X = v || k;\n const Y = O && b.x && b.y;\n const setScrollbarVisibility = (t, n) => {\n const o = H === \"visible\" || H === \"auto\" && t === \"scroll\";\n E(gt, o, n);\n return o;\n };\n _ = P;\n if (F) {\n if (V && q) {\n manageAutoHideSuspension(false);\n f();\n y((() => {\n f = addEventListener(I, \"scroll\", bind(manageAutoHideSuspension, true), {\n A: true\n });\n }));\n } else {\n manageAutoHideSuspension(true);\n }\n }\n if ($) {\n E(ut, Y);\n }\n if (x) {\n E(u);\n E(C, true);\n u = C;\n }\n if (L && !V) {\n manageAutoHideSuspension(true);\n }\n if (M) {\n r = R === \"move\";\n l = R === \"leave\";\n i = R !== \"never\";\n manageScrollbarsAutoHide(!i, true);\n }\n if (B) {\n E(xt, U);\n }\n if (j) {\n E(Ct, N);\n }\n if (X) {\n const t = setScrollbarVisibility(S.x, true);\n const n = setScrollbarVisibility(S.y, false);\n const o = t && n;\n E(bt, !o);\n }\n if (W) {\n A();\n T();\n D();\n E(yt, !w.x, true);\n E(yt, !w.y, false);\n E(_t, g && !z);\n }\n }, {}, C ];\n};\n\nconst createStructureSetupElements = t => {\n const n = getEnvironment();\n const {G: o, L: s} = n;\n const {elements: e} = o();\n const {host: c, padding: r, viewport: l, content: i} = e;\n const a = isHTMLElement(t);\n const u = a ? {} : t;\n const {elements: f} = u;\n const {host: _, padding: d, viewport: v, content: h} = f || {};\n const p = a ? t : u.target;\n const g = is(p, \"textarea\");\n const b = p.ownerDocument;\n const w = b.documentElement;\n const S = p === b.body;\n const y = b.defaultView;\n const getFocusedElement = () => b.activeElement;\n const focusElm = t => {\n if (t && t.focus) {\n t.focus();\n }\n };\n const m = bind(staticInitializationElement, [ p ]);\n const O = bind(dynamicInitializationElement, [ p ]);\n const $ = bind(resolveInitialization, [ p ]);\n const C = bind(createDiv, \"\");\n const x = bind(m, C, l);\n const H = bind(O, C, i);\n const I = x(v);\n const z = I === p;\n const E = z && S;\n const A = !z && H(h);\n const T = !z && isHTMLElement(I) && I === A;\n const D = T && !!$(i);\n const k = D ? x() : I;\n const R = D ? A : H();\n const M = T ? k : I;\n const V = E ? w : M;\n const L = g ? m(C, c, _) : p;\n const P = E ? V : L;\n const U = T ? R : A;\n const B = {\n gt: p,\n bt: P,\n D: V,\n cn: !z && O(C, r, d),\n wt: U,\n kt: E ? w : V,\n Zt: E ? b : V,\n rn: S ? w : p,\n ln: y,\n Kt: b,\n St: g,\n Rt: S,\n Dt: a,\n V: z,\n an: T,\n yt: t => hasAttrClass(V, z ? j : K, t),\n Ot: (t, n) => addRemoveAttrClass(V, z ? j : K, t, n)\n };\n const W = keys(B).reduce(((t, n) => {\n const o = B[n];\n return push(t, o && isHTMLElement(o) && !parent(o) ? o : false);\n }), []);\n const elementIsGenerated = t => t ? inArray(W, t) : null;\n const {gt: X, bt: Y, cn: Z, D: Q, wt: nt} = B;\n const st = [ () => {\n removeAttrs(Y, [ j, N ]);\n removeAttrs(X, N);\n if (S) {\n removeAttrs(w, [ N, j ]);\n }\n } ];\n const et = g && elementIsGenerated(Y);\n let ct = g ? X : contents([ nt, Q, Z, Y, X ].find((t => elementIsGenerated(t) === false)));\n const rt = E ? X : nt || Q;\n const lt = bind(runEachAndClear, st);\n const appendElements = () => {\n const t = getFocusedElement();\n const unwrap = t => {\n appendChildren(parent(t), contents(t));\n removeElements(t);\n };\n const prepareWrapUnwrapFocus = t => t ? addEventListener(t, \"focus blur\", (t => {\n stopPropagation(t);\n t.stopImmediatePropagation();\n }), {\n I: true,\n H: false\n }) : noop;\n const n = prepareWrapUnwrapFocus(t);\n setAttrs(Y, j, z ? \"viewport\" : \"host\");\n setAttrs(Z, tt, \"\");\n setAttrs(nt, ot, \"\");\n if (!z) {\n setAttrs(Q, K, \"\");\n S && addAttrClass(w, j, J);\n }\n if (et) {\n insertAfter(X, Y);\n push(st, (() => {\n insertAfter(Y, X);\n removeElements(Y);\n }));\n }\n appendChildren(rt, ct);\n appendChildren(Y, Z);\n appendChildren(Z || Y, !z && Q);\n appendChildren(Q, nt);\n push(st, [ n, () => {\n const t = getFocusedElement();\n const n = prepareWrapUnwrapFocus(t);\n removeAttrs(Z, tt);\n removeAttrs(nt, ot);\n removeAttrs(Q, [ F, q, K ]);\n elementIsGenerated(nt) && unwrap(nt);\n elementIsGenerated(Q) && unwrap(Q);\n elementIsGenerated(Z) && unwrap(Z);\n focusElm(t);\n n();\n } ]);\n if (s && !z) {\n addAttrClass(Q, K, G);\n push(st, bind(removeAttrs, Q, K));\n }\n if (!z && y.top === y && t === p) {\n const t = \"tabindex\";\n const n = getAttr(Q, t);\n setAttrs(Q, t, \"-1\");\n focusElm(Q);\n const revertViewportTabIndex = () => n ? setAttrs(Q, t, n) : removeAttrs(Q, t);\n const o = addEventListener(b, \"pointerdown keydown\", (() => {\n revertViewportTabIndex();\n o();\n }));\n push(st, [ revertViewportTabIndex, o ]);\n } else {\n focusElm(t);\n }\n n();\n ct = 0;\n return lt;\n };\n return [ B, appendElements, lt ];\n};\n\nconst createTrinsicUpdateSegment = ({wt: t}) => ({Gt: n, un: o, Tt: s}) => {\n const {xt: e} = n || {};\n const {$t: c} = o;\n const r = t && (e || s);\n if (r) {\n setStyles(t, {\n [I]: c && \"100%\"\n });\n }\n};\n\nconst createPaddingUpdateSegment = ({bt: t, cn: n, D: o, V: s}, e) => {\n const [c, r] = createCache({\n u: equalTRBL,\n o: topRightBottomLeft()\n }, bind(topRightBottomLeft, t, \"padding\", \"\"));\n return ({Et: t, Gt: l, un: i, Tt: a}) => {\n let [u, f] = r(a);\n const {L: _} = getEnvironment();\n const {ht: d, Ht: v, Ct: h} = l || {};\n const {N: p} = i;\n const [g, C] = t(\"paddingAbsolute\");\n const x = a || v;\n if (d || f || x) {\n [u, f] = c(a);\n }\n const I = !s && (C || h || f);\n if (I) {\n const t = !g || !n && !_;\n const s = u.r + u.l;\n const c = u.t + u.b;\n const r = {\n [O]: t && !p ? -s : 0,\n [$]: t ? -c : 0,\n [m]: t && p ? -s : 0,\n top: t ? -u.t : 0,\n right: t ? p ? -u.r : \"auto\" : 0,\n left: t ? p ? \"auto\" : -u.l : 0,\n [H]: t && `calc(100% + ${s}px)`\n };\n const l = {\n [b]: t ? u.t : 0,\n [w]: t ? u.r : 0,\n [y]: t ? u.b : 0,\n [S]: t ? u.l : 0\n };\n setStyles(n || o, r);\n setStyles(o, l);\n assignDeep(e, {\n cn: u,\n fn: !t,\n j: n ? l : assignDeep({}, r, l)\n });\n }\n return {\n _n: I\n };\n };\n};\n\nconst createOverflowUpdateSegment = (t, s) => {\n const e = getEnvironment();\n const {bt: c, cn: r, D: l, V: i, Ot: a, Rt: u, ln: f} = t;\n const {L: _, T: d} = e;\n const v = u && i;\n const h = bind(o, 0);\n const p = {\n u: equalWH,\n o: {\n w: 0,\n h: 0\n }\n };\n const g = {\n u: equalXY,\n o: {\n x: z,\n y: z\n }\n };\n const getOverflowAmount = (t, o) => {\n const s = n.devicePixelRatio % 1 !== 0 ? 1 : 0;\n const e = {\n w: h(t.w - o.w),\n h: h(t.h - o.h)\n };\n return {\n w: e.w > s ? e.w : 0,\n h: e.h > s ? e.h : 0\n };\n };\n const [b, w] = createCache(p, bind(fractionalSize, l));\n const [S, y] = createCache(p, bind(M, l));\n const [m, O] = createCache(p);\n const [$, H] = createCache(p);\n const [E] = createCache(g);\n const A = getStaticPluginModuleInstance(Tt);\n return ({Et: n, Gt: u, un: p, Tt: g}, {_n: z}) => {\n const {ht: T, It: D, Ht: k, xt: M, Ct: V, zt: L} = u || {};\n const {$t: P} = p;\n const U = A && A.M(t, s, p, e, n);\n const {q: B, W: N, X: X, F: Y} = U || {};\n const fixFlexboxGlue = (t, n) => {\n setStyles(l, {\n [I]: \"\"\n });\n if (n) {\n const {fn: n, cn: o} = s;\n const {R: e} = t;\n const r = fractionalSize(c);\n const i = R(c);\n const a = getStyles(l, \"boxSizing\") === \"content-box\";\n const u = n || a ? o.b + o.t : 0;\n const f = !(d.x && a);\n setStyles(l, {\n [I]: i.h + r.h + (e.x && f && Y ? Y(t).U.x : 0) - u\n });\n }\n };\n const [J, Z] = getShowNativeOverlaidScrollbars(n, e);\n const [ot, st] = n(\"overflow\");\n const et = !i && (T || k || D || Z || M);\n const ct = T || z || k || V || L || Z;\n const rt = overflowIsVisible(ot.x);\n const lt = overflowIsVisible(ot.y);\n const it = rt || lt;\n let at = w(g);\n let ut = y(g);\n let ft = O(g);\n let _t = H(g);\n let dt;\n if (Z && _) {\n a(G, !J);\n }\n if (et) {\n dt = getViewportOverflowState(t);\n fixFlexboxGlue(dt, P);\n }\n if (ct) {\n if (it) {\n a(Q, false);\n }\n const [t, n] = N ? N(dt) : [];\n const [s, e] = at = b(g);\n const [c, r] = ut = S(g);\n const i = R(l);\n const u = c;\n const _ = i;\n t && t();\n if ((r || e || Z) && n && !J && B && B(n, c, s)) {}\n const d = windowSize(f);\n const p = {\n w: h(o(c.w, u.w) + s.w),\n h: h(o(c.h, u.h) + s.h)\n };\n const w = {\n w: h((v ? d.w : _.w + h(i.w - c.w)) + s.w),\n h: h((v ? d.h : _.h + h(i.h - c.h)) + s.h)\n };\n _t = $(w);\n ft = m(getOverflowAmount(p, w), g);\n }\n const [vt, ht] = _t;\n const [pt, gt] = ft;\n const [bt, wt] = ut;\n const [St, yt] = at;\n const mt = {\n x: pt.w > 0,\n y: pt.h > 0\n };\n const Ot = rt && lt && (mt.x || mt.y) || rt && mt.x && !mt.y || lt && mt.y && !mt.x;\n const $t = z || V || L || yt || wt || ht || gt || st || Z || et || ct;\n if ($t) {\n const n = {};\n const o = setViewportOverflowState(t, mt, ot, n);\n X && X(o, p, !!B && B(o, bt, St), n);\n if (et) {\n fixFlexboxGlue(o, P);\n }\n if (i) {\n setAttrs(c, F, n[C]);\n setAttrs(c, q, n[x]);\n } else {\n setStyles(l, n);\n }\n }\n addRemoveAttrClass(c, j, W, Ot);\n addRemoveAttrClass(r, tt, nt, Ot);\n if (!i) {\n addRemoveAttrClass(l, K, Q, it);\n }\n const [Ct, xt] = E(getViewportOverflowState(t).k);\n assignDeep(s, {\n k: Ct,\n Pt: {\n x: vt.w,\n y: vt.h\n },\n Lt: {\n x: pt.w,\n y: pt.h\n },\n en: mt\n });\n return {\n sn: xt,\n tn: ht,\n nn: gt\n };\n };\n};\n\nconst createStructureSetup = t => {\n const [n, o, s] = createStructureSetupElements(t);\n const e = {\n cn: {\n t: 0,\n r: 0,\n b: 0,\n l: 0\n },\n fn: false,\n j: {\n [O]: 0,\n [$]: 0,\n [m]: 0,\n [b]: 0,\n [w]: 0,\n [y]: 0,\n [S]: 0\n },\n Pt: {\n x: 0,\n y: 0\n },\n Lt: {\n x: 0,\n y: 0\n },\n k: {\n x: z,\n y: z\n },\n en: {\n x: false,\n y: false\n }\n };\n const {gt: c, D: r, V: l} = n;\n const {L: i, T: a} = getEnvironment();\n const u = !i && (a.x || a.y);\n const f = [ createTrinsicUpdateSegment(n), createPaddingUpdateSegment(n, e), createOverflowUpdateSegment(n, e) ];\n return [ o, t => {\n const n = {};\n const o = u;\n const s = o && getElmentScroll(r);\n const e = l ? addAttrClass(r, j, Y) : noop;\n each(f, (o => {\n assignDeep(n, o(t, n) || {});\n }));\n e();\n scrollElementTo(r, s);\n !l && scrollElementTo(c, 0);\n return n;\n }, e, n, s ];\n};\n\nconst createSetups = (t, n, o, s) => {\n const e = createOptionCheck(n, {});\n const [c, r, l, i, a] = createStructureSetup(t);\n const [u, f, _] = createObserversSetup(i, l, e, (t => {\n update({}, t);\n }));\n const [d, v, , h] = createScrollbarsSetup(t, n, _, l, i, s);\n const updateHintsAreTruthy = t => keys(t).some((n => !!t[n]));\n const update = (t, s) => {\n const {dn: e, Tt: c, At: l, vn: i} = t;\n const a = e || {};\n const u = !!c;\n const d = {\n Et: createOptionCheck(n, a, u),\n dn: a,\n Tt: u\n };\n if (i) {\n v(d);\n return false;\n }\n const h = s || f(assignDeep({}, d, {\n At: l\n }));\n const p = r(assignDeep({}, d, {\n un: _,\n Gt: h\n }));\n v(assignDeep({}, d, {\n Gt: h,\n Qt: p\n }));\n const g = updateHintsAreTruthy(h);\n const b = updateHintsAreTruthy(p);\n const w = g || b || !isEmptyObject(a) || u;\n w && o(t, {\n Gt: h,\n Qt: p\n });\n return w;\n };\n return [ () => {\n const {rn: t, D: n} = i;\n const o = getElmentScroll(t);\n const s = [ u(), c(), d() ];\n scrollElementTo(n, o);\n return bind(runEachAndClear, s);\n }, update, () => ({\n hn: _,\n pn: l\n }), {\n gn: i,\n bn: h\n }, a ];\n};\n\nconst OverlayScrollbars = (t, n, o) => {\n const {nt: s} = getEnvironment();\n const e = isHTMLElement(t);\n const c = e ? t : t.target;\n const r = getInstance(c);\n if (n && !r) {\n let r = false;\n const l = [];\n const i = {};\n const validateOptions = t => {\n const n = removeUndefinedProperties(t, true);\n const o = getStaticPluginModuleInstance(zt);\n return o ? o(n, true) : n;\n };\n const a = assignDeep({}, s(), validateOptions(n));\n const [u, f, _] = createEventListenerHub();\n const [d, v, h] = createEventListenerHub(o);\n const triggerEvent = (t, n) => {\n h(t, n);\n _(t, n);\n };\n const [p, g, b, w, S] = createSetups(t, a, (({dn: t, Tt: n}, {Gt: o, Qt: s}) => {\n const {ht: e, Ct: c, xt: r, Ht: l, It: i, dt: a} = o;\n const {tn: u, nn: f, sn: _} = s;\n triggerEvent(\"updated\", [ y, {\n updateHints: {\n sizeChanged: !!e,\n directionChanged: !!c,\n heightIntrinsicChanged: !!r,\n overflowEdgeChanged: !!u,\n overflowAmountChanged: !!f,\n overflowStyleChanged: !!_,\n contentMutation: !!l,\n hostMutation: !!i,\n appear: !!a\n },\n changedOptions: t || {},\n force: !!n\n } ]);\n }), (t => triggerEvent(\"scroll\", [ y, t ])));\n const destroy = t => {\n removeInstance(c);\n runEachAndClear(l);\n r = true;\n triggerEvent(\"destroyed\", [ y, t ]);\n f();\n v();\n };\n const y = {\n options(t, n) {\n if (t) {\n const o = n ? s() : {};\n const e = getOptionsDiff(a, assignDeep(o, validateOptions(t)));\n if (!isEmptyObject(e)) {\n assignDeep(a, e);\n g({\n dn: e\n });\n }\n }\n return assignDeep({}, a);\n },\n on: d,\n off: (t, n) => {\n t && n && v(t, n);\n },\n state() {\n const {hn: t, pn: n} = b();\n const {N: o} = t;\n const {Pt: s, Lt: e, k: c, en: l, cn: i, fn: a} = n;\n return assignDeep({}, {\n overflowEdge: s,\n overflowAmount: e,\n overflowStyle: c,\n hasOverflow: l,\n padding: i,\n paddingAbsolute: a,\n directionRTL: o,\n destroyed: r\n });\n },\n elements() {\n const {gt: t, bt: n, cn: o, D: s, wt: e, kt: c, Zt: r} = w.gn;\n const {qt: l, Jt: i} = w.bn;\n const translateScrollbarStructure = t => {\n const {Vt: n, Mt: o, Ut: s} = t;\n return {\n scrollbar: s,\n track: o,\n handle: n\n };\n };\n const translateScrollbarsSetupElement = t => {\n const {Wt: n, Xt: o} = t;\n const s = translateScrollbarStructure(n[0]);\n return assignDeep({}, s, {\n clone: () => {\n const t = translateScrollbarStructure(o());\n g({\n vn: true\n });\n return t;\n }\n });\n };\n return assignDeep({}, {\n target: t,\n host: n,\n padding: o || s,\n viewport: s,\n content: e || s,\n scrollOffsetElement: c,\n scrollEventElement: r,\n scrollbarHorizontal: translateScrollbarsSetupElement(l),\n scrollbarVertical: translateScrollbarsSetupElement(i)\n });\n },\n update: t => g({\n Tt: t,\n At: true\n }),\n destroy: bind(destroy, false),\n plugin: t => i[keys(t)[0]]\n };\n push(l, [ S ]);\n addInstance(c, y);\n registerPluginModuleInstances(Ht, OverlayScrollbars, [ y, u, i ]);\n if (cancelInitialization(w.gn.Rt, !e && t.cancel)) {\n destroy(true);\n return y;\n }\n push(l, p());\n triggerEvent(\"initialized\", [ y ]);\n y.update(true);\n return y;\n }\n return r;\n};\n\nOverlayScrollbars.plugin = t => {\n const n = isArray(t);\n const o = n ? t : [ t ];\n const s = o.map((t => registerPluginModuleInstances(t, OverlayScrollbars)[0]));\n addPlugins(o);\n return n ? s : s[0];\n};\n\nOverlayScrollbars.valid = t => {\n const n = t && t.elements;\n const o = isFunction(n) && n();\n return isPlainObject(o) && !!getInstance(o.target);\n};\n\nOverlayScrollbars.env = () => {\n const {P: t, T: n, L: o, K: s, J: e, st: c, et: r, G: l, tt: i, nt: a, ot: u} = getEnvironment();\n return assignDeep({}, {\n scrollbarsSize: t,\n scrollbarsOverlaid: n,\n scrollbarsHiding: o,\n rtlScrollBehavior: s,\n scrollTimeline: e,\n staticDefaultInitialization: c,\n staticDefaultOptions: r,\n getDefaultInitialization: l,\n setDefaultInitialization: i,\n getDefaultOptions: a,\n setDefaultOptions: u\n });\n};\n\nexport { Rt as ClickScrollPlugin, OverlayScrollbars, Dt as ScrollbarsHidingPlugin, At as SizeObserverPlugin };\n//# sourceMappingURL=overlayscrollbars.mjs.map\n","import { shallowRef as I, watch as b, unref as v, onUnmounted as k, defineComponent as E, toRefs as R, ref as A, watchPostEffect as D, openBlock as h, createBlock as z, resolveDynamicComponent as j, withCtx as q, createElementVNode as x, renderSlot as B } from \"vue\";\nimport { OverlayScrollbars as y } from \"overlayscrollbars\";\nconst F = () => {\n if (typeof window > \"u\") {\n const o = () => {\n };\n return [o, o];\n }\n let a, t;\n const n = window, r = typeof n.requestIdleCallback == \"function\", l = n.requestAnimationFrame, s = n.cancelAnimationFrame, d = r ? n.requestIdleCallback : l, u = r ? n.cancelIdleCallback : s, e = () => {\n u(a), s(t);\n };\n return [\n (o, f) => {\n e(), a = d(\n r ? () => {\n e(), t = l(o);\n } : o,\n typeof f == \"object\" ? f : { timeout: 2233 }\n );\n },\n e\n ];\n}, g = (a) => {\n let t = null, n, r, l;\n const s = I(a || {}), [d, u] = F();\n return b(\n () => {\n var e;\n return v((e = s.value) == null ? void 0 : e.defer);\n },\n (e) => {\n l = e;\n },\n { deep: !0, immediate: !0 }\n ), b(\n () => {\n var e;\n return v((e = s.value) == null ? void 0 : e.options);\n },\n (e) => {\n n = e, y.valid(t) && t.options(n || {}, !0);\n },\n { deep: !0, immediate: !0 }\n ), b(\n () => {\n var e;\n return v((e = s.value) == null ? void 0 : e.events);\n },\n (e) => {\n r = e, y.valid(t) && t.on(\n /* c8 ignore next */\n r || {},\n !0\n );\n },\n { deep: !0, immediate: !0 }\n ), k(() => {\n u(), t == null || t.destroy();\n }), [\n (e) => {\n if (y.valid(t))\n return t;\n const o = () => t = y(e, n || {}, r || {});\n l ? d(o, l) : o();\n },\n () => t\n ];\n}, P = /* @__PURE__ */ E({\n __name: \"OverlayScrollbarsComponent\",\n props: {\n element: {\n type: String,\n default: \"div\"\n },\n options: { type: Object },\n events: { type: Object },\n defer: { type: [Boolean, Object] }\n },\n emits: [\"osInitialized\", \"osUpdated\", \"osDestroyed\", \"osScroll\"],\n setup(a, { expose: t, emit: n }) {\n const r = a, l = {\n initialized: \"osInitialized\",\n updated: \"osUpdated\",\n destroyed: \"osDestroyed\",\n scroll: \"osScroll\"\n }, { element: s, options: d, events: u, defer: e } = R(r), o = I(null), f = I(null), S = A(), [O, C] = g({ options: d, events: S, defer: e });\n return t({\n osInstance: C,\n getElement: () => o.value\n }), D((p) => {\n const { value: m } = o, { value: i } = f;\n m && i && (O({\n target: m,\n elements: {\n viewport: i,\n content: i\n }\n }), p(() => {\n var c;\n return (c = C()) == null ? void 0 : c.destroy();\n }));\n }), b(\n () => v(u),\n (p) => {\n const m = p || {};\n S.value = Object.keys(l).reduce((i, c) => {\n const w = m[c];\n return i[c] = [\n (..._) => n(\n l[c],\n ..._\n ),\n ...(Array.isArray(w) ? w : [w]).filter(Boolean)\n ], i;\n }, {});\n },\n { deep: !0, immediate: !0 }\n ), (p, m) => (h(), z(j(v(s)), {\n \"data-overlayscrollbars-initialize\": \"\",\n ref_key: \"elementRef\",\n ref: o\n }, {\n default: q(() => [\n x(\"div\", {\n \"data-overlayscrollbars-contents\": \"\",\n ref_key: \"slotRef\",\n ref: f\n }, [\n B(p.$slots, \"default\")\n ], 512)\n ]),\n _: 3\n }, 512));\n }\n});\nexport {\n P as OverlayScrollbarsComponent,\n g as useOverlayScrollbars\n};\n//# sourceMappingURL=overlayscrollbars-vue.mjs.map\n","<script lang=\"ts\" setup>\nimport type { UseOverlayScrollbarsParams } from \"overlayscrollbars-vue\";\nimport { useOverlayScrollbars } from \"overlayscrollbars-vue\";\nimport { computed, nextTick, onMounted, reactive, ref, watch } from \"vue\";\nimport { IconClose } from \"../../icons/icons\";\n\nconst props = withDefaults(\n defineProps<{\n visible?: boolean;\n title?: string;\n width?: number;\n height?: string;\n fullscreen?: boolean;\n bodyClass?: string[];\n mountToBody?: boolean;\n centered?: boolean;\n layerClosable?: boolean;\n }>(),\n {\n visible: undefined,\n title: undefined,\n width: 500,\n height: undefined,\n fullscreen: false,\n bodyClass: undefined,\n mountToBody: false,\n centered: true,\n layerClosable: false,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"update:visible\", value: boolean): void;\n (event: \"close\"): void;\n}>();\n\nconst internalVisible = ref<boolean | undefined>(false);\nconst rootVisible = ref(false);\nconst modelWrapper = ref<HTMLElement>();\n\nwatch(\n () => props.visible,\n () => {\n internalVisible.value = props.visible;\n }\n);\n\nonMounted(() => {\n if (props.visible === undefined) {\n internalVisible.value = true;\n }\n});\n\nconst wrapperClasses = computed(() => {\n return {\n \"modal-wrapper-fullscreen\": props.fullscreen,\n \"modal-wrapper-centered\": props.centered,\n };\n});\n\nconst contentStyles = computed(() => {\n return {\n maxWidth: props.width + \"px\",\n height: props.height,\n };\n});\n\nfunction handleClose() {\n internalVisible.value = false;\n setTimeout(() => {\n emit(\"update:visible\", false);\n emit(\"close\");\n }, 200);\n}\n\ndefineExpose({\n close: handleClose,\n});\n\nconst focus = ref(false);\n\nfunction handleClickLayer() {\n if (props.layerClosable) {\n handleClose();\n return;\n }\n focus.value = true;\n setTimeout(() => {\n focus.value = false;\n }, 300);\n}\n\n// body scroll\nconst modalBody = ref(null);\nconst reactiveParams = reactive<UseOverlayScrollbarsParams>({\n options: {\n scrollbars: {\n autoHide: \"scroll\",\n autoHideDelay: 600,\n },\n },\n defer: true,\n});\nconst [initialize, instance] = useOverlayScrollbars(reactiveParams);\nwatch(\n () => internalVisible.value,\n (value) => {\n if (value) {\n if (modalBody.value) initialize({ target: modalBody.value });\n nextTick(() => {\n modelWrapper.value?.focus();\n });\n } else {\n instance()?.destroy();\n }\n }\n);\n</script>\n<template>\n <Teleport :disabled=\"!mountToBody\" to=\"body\">\n <div\n v-show=\"rootVisible\"\n ref=\"modelWrapper\"\n :class=\"wrapperClasses\"\n aria-modal=\"true\"\n class=\"modal-wrapper\"\n role=\"dialog\"\n tabindex=\"0\"\n v-bind=\"$attrs\"\n @keyup.esc.stop=\"handleClose()\"\n >\n <transition\n enter-active-class=\"ease-out duration-200\"\n enter-from-class=\"opacity-0\"\n enter-to-class=\"opacity-100\"\n leave-active-class=\"ease-in duration-100\"\n leave-from-class=\"opacity-100\"\n leave-to-class=\"opacity-0\"\n @before-enter=\"rootVisible = true\"\n @after-leave=\"rootVisible = false\"\n >\n <div\n v-show=\"internalVisible\"\n class=\"modal-layer\"\n @click.stop=\"handleClickLayer()\"\n />\n </transition>\n <transition\n enter-active-class=\"ease-out duration-200\"\n enter-from-class=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n enter-to-class=\"opacity-100 translate-y-0 sm:scale-100\"\n leave-active-class=\"ease-in duration-100\"\n leave-from-class=\"opacity-100 translate-y-0 sm:scale-100\"\n leave-to-class=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n >\n <div\n v-show=\"internalVisible\"\n :style=\"contentStyles\"\n class=\"modal-content transition-all duration-300\"\n :class=\"{ 'modal-focus': focus }\"\n >\n <div v-if=\"$slots.header || title\" class=\"modal-header group\">\n <slot name=\"header\">\n <div class=\"modal-header-title\">{{ title }}</div>\n <div v-if=\"$slots.center\" class=\"modal-header-center\">\n <slot name=\"center\"></slot>\n </div>\n <div class=\"modal-header-actions\">\n <slot name=\"actions\"></slot>\n <span class=\"bg-gray-50\" @click=\"handleClose()\">\n <IconClose />\n </span>\n </div>\n </slot>\n </div>\n <div ref=\"modalBody\" :class=\"bodyClass\" class=\"modal-body\">\n <slot />\n </div>\n <div v-if=\"$slots.footer\" class=\"modal-footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </transition>\n </div>\n </Teleport>\n</template>\n\n<style lang=\"scss\">\n.modal-wrapper {\n @apply fixed left-0 top-0 flex h-full w-full flex-row items-start justify-center py-10;\n z-index: 2000;\n\n .modal-layer {\n @apply absolute left-0 top-0 h-full w-full flex-none bg-gray-500 bg-opacity-75 transition-opacity;\n }\n\n .modal-content {\n @apply relative flex flex-col items-stretch rounded-base bg-white shadow-xl;\n width: calc(100vw - 20px);\n max-height: calc(100vh - 5rem);\n\n &.modal-focus {\n @apply scale-[1.02];\n }\n\n .modal-header {\n @apply flex select-none items-center justify-between border-b;\n padding: 10px 16px;\n\n .modal-header-title {\n @apply truncate text-base font-medium;\n }\n\n .modal-header-actions {\n @apply flex flex-row gap-2;\n span {\n @apply inline-flex h-7 w-7 cursor-pointer select-none items-center justify-center rounded-full text-gray-600 hover:bg-gray-100 hover:text-gray-900 group-hover:hidden;\n }\n }\n }\n\n .modal-body {\n @apply flex-1 overflow-x-hidden overflow-y-hidden;\n word-wrap: break-word;\n padding: 12px 16px;\n }\n\n .modal-footer {\n @apply border-t;\n padding: 12px 16px;\n }\n }\n\n &.modal-wrapper-centered {\n @apply items-center py-0;\n .modal-content {\n max-height: calc(100vh - 20px) !important;\n }\n }\n\n &.modal-wrapper-fullscreen {\n .modal-content {\n width: 100vw !important;\n max-width: 100vw !important;\n height: 100vh !important;\n max-height: 100vh !important;\n border-radius: 0;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport type { UseOverlayScrollbarsParams } from \"overlayscrollbars-vue\";\nimport { useOverlayScrollbars } from \"overlayscrollbars-vue\";\nimport { computed, nextTick, onMounted, reactive, ref, watch } from \"vue\";\nimport { IconClose } from \"../../icons/icons\";\n\nconst props = withDefaults(\n defineProps<{\n visible?: boolean;\n title?: string;\n width?: number;\n height?: string;\n fullscreen?: boolean;\n bodyClass?: string[];\n mountToBody?: boolean;\n centered?: boolean;\n layerClosable?: boolean;\n }>(),\n {\n visible: undefined,\n title: undefined,\n width: 500,\n height: undefined,\n fullscreen: false,\n bodyClass: undefined,\n mountToBody: false,\n centered: true,\n layerClosable: false,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"update:visible\", value: boolean): void;\n (event: \"close\"): void;\n}>();\n\nconst internalVisible = ref<boolean | undefined>(false);\nconst rootVisible = ref(false);\nconst modelWrapper = ref<HTMLElement>();\n\nwatch(\n () => props.visible,\n () => {\n internalVisible.value = props.visible;\n }\n);\n\nonMounted(() => {\n if (props.visible === undefined) {\n internalVisible.value = true;\n }\n});\n\nconst wrapperClasses = computed(() => {\n return {\n \"modal-wrapper-fullscreen\": props.fullscreen,\n \"modal-wrapper-centered\": props.centered,\n };\n});\n\nconst contentStyles = computed(() => {\n return {\n maxWidth: props.width + \"px\",\n height: props.height,\n };\n});\n\nfunction handleClose() {\n internalVisible.value = false;\n setTimeout(() => {\n emit(\"update:visible\", false);\n emit(\"close\");\n }, 200);\n}\n\ndefineExpose({\n close: handleClose,\n});\n\nconst focus = ref(false);\n\nfunction handleClickLayer() {\n if (props.layerClosable) {\n handleClose();\n return;\n }\n focus.value = true;\n setTimeout(() => {\n focus.value = false;\n }, 300);\n}\n\n// body scroll\nconst modalBody = ref(null);\nconst reactiveParams = reactive<UseOverlayScrollbarsParams>({\n options: {\n scrollbars: {\n autoHide: \"scroll\",\n autoHideDelay: 600,\n },\n },\n defer: true,\n});\nconst [initialize, instance] = useOverlayScrollbars(reactiveParams);\nwatch(\n () => internalVisible.value,\n (value) => {\n if (value) {\n if (modalBody.value) initialize({ target: modalBody.value });\n nextTick(() => {\n modelWrapper.value?.focus();\n });\n } else {\n instance()?.destroy();\n }\n }\n);\n</script>\n<template>\n <Teleport :disabled=\"!mountToBody\" to=\"body\">\n <div\n v-show=\"rootVisible\"\n ref=\"modelWrapper\"\n :class=\"wrapperClasses\"\n aria-modal=\"true\"\n class=\"modal-wrapper\"\n role=\"dialog\"\n tabindex=\"0\"\n v-bind=\"$attrs\"\n @keyup.esc.stop=\"handleClose()\"\n >\n <transition\n enter-active-class=\"ease-out duration-200\"\n enter-from-class=\"opacity-0\"\n enter-to-class=\"opacity-100\"\n leave-active-class=\"ease-in duration-100\"\n leave-from-class=\"opacity-100\"\n leave-to-class=\"opacity-0\"\n @before-enter=\"rootVisible = true\"\n @after-leave=\"rootVisible = false\"\n >\n <div\n v-show=\"internalVisible\"\n class=\"modal-layer\"\n @click.stop=\"handleClickLayer()\"\n />\n </transition>\n <transition\n enter-active-class=\"ease-out duration-200\"\n enter-from-class=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n enter-to-class=\"opacity-100 translate-y-0 sm:scale-100\"\n leave-active-class=\"ease-in duration-100\"\n leave-from-class=\"opacity-100 translate-y-0 sm:scale-100\"\n leave-to-class=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n >\n <div\n v-show=\"internalVisible\"\n :style=\"contentStyles\"\n class=\"modal-content transition-all duration-300\"\n :class=\"{ 'modal-focus': focus }\"\n >\n <div v-if=\"$slots.header || title\" class=\"modal-header group\">\n <slot name=\"header\">\n <div class=\"modal-header-title\">{{ title }}</div>\n <div v-if=\"$slots.center\" class=\"modal-header-center\">\n <slot name=\"center\"></slot>\n </div>\n <div class=\"modal-header-actions\">\n <slot name=\"actions\"></slot>\n <span class=\"bg-gray-50\" @click=\"handleClose()\">\n <IconClose />\n </span>\n </div>\n </slot>\n </div>\n <div ref=\"modalBody\" :class=\"bodyClass\" class=\"modal-body\">\n <slot />\n </div>\n <div v-if=\"$slots.footer\" class=\"modal-footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </transition>\n </div>\n </Teleport>\n</template>\n\n<style lang=\"scss\">\n.modal-wrapper {\n @apply fixed left-0 top-0 flex h-full w-full flex-row items-start justify-center py-10;\n z-index: 2000;\n\n .modal-layer {\n @apply absolute left-0 top-0 h-full w-full flex-none bg-gray-500 bg-opacity-75 transition-opacity;\n }\n\n .modal-content {\n @apply relative flex flex-col items-stretch rounded-base bg-white shadow-xl;\n width: calc(100vw - 20px);\n max-height: calc(100vh - 5rem);\n\n &.modal-focus {\n @apply scale-[1.02];\n }\n\n .modal-header {\n @apply flex select-none items-center justify-between border-b;\n padding: 10px 16px;\n\n .modal-header-title {\n @apply truncate text-base font-medium;\n }\n\n .modal-header-actions {\n @apply flex flex-row gap-2;\n span {\n @apply inline-flex h-7 w-7 cursor-pointer select-none items-center justify-center rounded-full text-gray-600 hover:bg-gray-100 hover:text-gray-900 group-hover:hidden;\n }\n }\n }\n\n .modal-body {\n @apply flex-1 overflow-x-hidden overflow-y-hidden;\n word-wrap: break-word;\n padding: 12px 16px;\n }\n\n .modal-footer {\n @apply border-t;\n padding: 12px 16px;\n }\n }\n\n &.modal-wrapper-centered {\n @apply items-center py-0;\n .modal-content {\n max-height: calc(100vh - 20px) !important;\n }\n }\n\n &.modal-wrapper-fullscreen {\n .modal-content {\n width: 100vw !important;\n max-width: 100vw !important;\n height: 100vh !important;\n max-height: 100vh !important;\n border-radius: 0;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport type { DialogProps, DialogType } from \"@/components/dialog/types\";\nimport { markRaw, ref, type Component, type Raw } from \"vue\";\nimport {\n IconCheckboxCircle,\n IconClose,\n IconErrorWarning,\n IconForbidLine,\n IconInformation,\n} from \"../../icons/icons\";\nimport { VButton } from \"../button\";\nimport { VModal } from \"../modal\";\n\nconst props = withDefaults(defineProps<DialogProps>(), {\n type: \"info\",\n title: \"提示\",\n description: \"\",\n confirmText: \"确定\",\n confirmType: \"primary\",\n showCancel: true,\n cancelText: \"取消\",\n visible: false,\n onConfirm: () => {\n return;\n },\n onCancel: () => {\n return;\n },\n});\n\nconst emit = defineEmits<{\n (event: \"update:visible\", visible: boolean): void;\n (event: \"close\"): void;\n}>();\n\nconst icons: Record<DialogType, { icon: Raw<Component>; color: string }> = {\n success: {\n icon: markRaw(IconCheckboxCircle),\n color: \"green\",\n },\n info: {\n icon: markRaw(IconInformation),\n color: \"blue\",\n },\n warning: {\n icon: markRaw(IconErrorWarning),\n color: \"orange\",\n },\n error: {\n icon: markRaw(IconForbidLine),\n color: \"red\",\n },\n};\n\nconst loading = ref(false);\n\nconst handleCancel = () => {\n if (props.onCancel) {\n props.onCancel();\n }\n handleClose();\n};\n\nconst handleConfirm = async () => {\n if (props.onConfirm) {\n loading.value = true;\n\n try {\n await props.onConfirm();\n } catch (error) {\n console.error(\"Failed to execute onConfirm: \", error);\n } finally {\n loading.value = false;\n }\n }\n handleClose();\n};\n\nconst handleClose = () => {\n loading.value = false;\n emit(\"update:visible\", false);\n emit(\"close\");\n};\n</script>\n<template>\n <VModal\n :visible=\"visible\"\n :width=\"450\"\n :layer-closable=\"false\"\n :data-unique-id=\"uniqueId\"\n @close=\"handleCancel()\"\n >\n <div class=\"mb-2 flex items-start justify-between py-2\">\n <div class=\"flex flex-row items-center gap-3\">\n <component\n :is=\"icons[type].icon\"\n :class=\"`text-${icons[type].color}-500`\"\n class=\"h-6 w-6 flex-none\"\n ></component>\n <div class=\"text-base font-bold text-gray-900\">{{ title }}</div>\n </div>\n <div>\n <IconClose class=\"cursor-pointer\" @click=\"handleCancel\" />\n </div>\n </div>\n <div class=\"flex items-center gap-4\">\n <div class=\"flex flex-1 items-stretch\">\n <div class=\"break-all text-sm text-gray-700\">{{ description }}</div>\n </div>\n </div>\n <template #footer>\n <div class=\"flex flex-row flex-wrap gap-3\">\n <VButton :loading=\"loading\" :type=\"confirmType\" @click=\"handleConfirm\">\n {{ confirmText }}\n </VButton>\n <VButton v-if=\"showCancel\" @click=\"handleCancel\">\n {{ cancelText }}\n </VButton>\n </div>\n </template>\n </VModal>\n</template>\n","<script lang=\"ts\" setup>\nimport type { DialogProps, DialogType } from \"@/components/dialog/types\";\nimport { markRaw, ref, type Component, type Raw } from \"vue\";\nimport {\n IconCheckboxCircle,\n IconClose,\n IconErrorWarning,\n IconForbidLine,\n IconInformation,\n} from \"../../icons/icons\";\nimport { VButton } from \"../button\";\nimport { VModal } from \"../modal\";\n\nconst props = withDefaults(defineProps<DialogProps>(), {\n type: \"info\",\n title: \"提示\",\n description: \"\",\n confirmText: \"确定\",\n confirmType: \"primary\",\n showCancel: true,\n cancelText: \"取消\",\n visible: false,\n onConfirm: () => {\n return;\n },\n onCancel: () => {\n return;\n },\n});\n\nconst emit = defineEmits<{\n (event: \"update:visible\", visible: boolean): void;\n (event: \"close\"): void;\n}>();\n\nconst icons: Record<DialogType, { icon: Raw<Component>; color: string }> = {\n success: {\n icon: markRaw(IconCheckboxCircle),\n color: \"green\",\n },\n info: {\n icon: markRaw(IconInformation),\n color: \"blue\",\n },\n warning: {\n icon: markRaw(IconErrorWarning),\n color: \"orange\",\n },\n error: {\n icon: markRaw(IconForbidLine),\n color: \"red\",\n },\n};\n\nconst loading = ref(false);\n\nconst handleCancel = () => {\n if (props.onCancel) {\n props.onCancel();\n }\n handleClose();\n};\n\nconst handleConfirm = async () => {\n if (props.onConfirm) {\n loading.value = true;\n\n try {\n await props.onConfirm();\n } catch (error) {\n console.error(\"Failed to execute onConfirm: \", error);\n } finally {\n loading.value = false;\n }\n }\n handleClose();\n};\n\nconst handleClose = () => {\n loading.value = false;\n emit(\"update:visible\", false);\n emit(\"close\");\n};\n</script>\n<template>\n <VModal\n :visible=\"visible\"\n :width=\"450\"\n :layer-closable=\"false\"\n :data-unique-id=\"uniqueId\"\n @close=\"handleCancel()\"\n >\n <div class=\"mb-2 flex items-start justify-between py-2\">\n <div class=\"flex flex-row items-center gap-3\">\n <component\n :is=\"icons[type].icon\"\n :class=\"`text-${icons[type].color}-500`\"\n class=\"h-6 w-6 flex-none\"\n ></component>\n <div class=\"text-base font-bold text-gray-900\">{{ title }}</div>\n </div>\n <div>\n <IconClose class=\"cursor-pointer\" @click=\"handleCancel\" />\n </div>\n </div>\n <div class=\"flex items-center gap-4\">\n <div class=\"flex flex-1 items-stretch\">\n <div class=\"break-all text-sm text-gray-700\">{{ description }}</div>\n </div>\n </div>\n <template #footer>\n <div class=\"flex flex-row flex-wrap gap-3\">\n <VButton :loading=\"loading\" :type=\"confirmType\" @click=\"handleConfirm\">\n {{ confirmText }}\n </VButton>\n <VButton v-if=\"showCancel\" @click=\"handleCancel\">\n {{ cancelText }}\n </VButton>\n </div>\n </template>\n </VModal>\n</template>\n","import { createVNode, render, type Component } from \"vue\";\nimport DialogComponent from \"./Dialog.vue\";\nimport type { DialogProps } from \"./types\";\n\nexport type DialogApiProps = Omit<DialogProps, \"type\" | \"visible\">;\n\nexport type DialogApi = (props?: DialogApiProps) => void;\n\nexport interface DialogEntry {\n (props: DialogProps): void;\n info: DialogApi;\n success: DialogApi;\n error: DialogApi;\n warning: DialogApi;\n}\n\nconst defaultProps: DialogProps = {\n title: \"\",\n visible: false,\n};\n\nconst DIALOG_CONTAINER_CLASS = \".dialog-container\";\nconst MODAL_WRAPPER_CLASS = \".modal-wrapper\";\n\nfunction getOrCreateContainer() {\n let container = document.body.querySelector(DIALOG_CONTAINER_CLASS);\n if (!container) {\n container = document.createElement(\"div\");\n container.className = \"dialog-container\";\n document.body.appendChild(container);\n }\n return container;\n}\n\nconst dialog: DialogEntry = (userProps: DialogProps) => {\n const props = {\n ...defaultProps,\n ...userProps,\n };\n\n const container = getOrCreateContainer();\n\n if (\n props.uniqueId &&\n container.querySelector(`[data-unique-id=\"${props.uniqueId}\"]`)\n ) {\n return;\n }\n\n const { vnode, container: hostContainer } = createVNodeComponent(\n DialogComponent,\n props\n );\n\n if (hostContainer.firstElementChild) {\n container.appendChild(hostContainer.firstElementChild);\n }\n\n if (vnode.component?.props) {\n vnode.component.props.visible = true;\n }\n\n if (vnode?.props) {\n vnode.props.onClose = () => {\n const modals = container.querySelectorAll(MODAL_WRAPPER_CLASS);\n\n if (modals.length > 1) {\n hostContainer.firstElementChild?.remove();\n } else {\n container.remove();\n }\n\n render(null, hostContainer);\n };\n }\n};\n\nfunction createVNodeComponent(\n component: Component,\n props: Record<string, unknown>\n) {\n const vnode = createVNode(component, props);\n const container = document.createElement(\"div\");\n render(vnode, container);\n return { vnode, container };\n}\n\ndialog.success = (props?: DialogApiProps) =>\n dialog({ ...props, type: \"success\" });\ndialog.info = (props?: DialogApiProps) => dialog({ ...props, type: \"info\" });\ndialog.warning = (props?: DialogApiProps) =>\n dialog({ ...props, type: \"warning\" });\ndialog.error = (props?: DialogApiProps) => dialog({ ...props, type: \"error\" });\n\nexport { dialog as Dialog };\n","export type DialogType = \"success\" | \"info\" | \"warning\" | \"error\";\nexport const DialogProviderProvideKey = \"DIALOG_PROVIDER_PROVIDE_KEY\";\nimport type { ButtonType } from \"../button/types\";\n\nexport interface DialogProps {\n type?: DialogType;\n visible?: boolean;\n title?: string;\n description?: string;\n confirmType?: ButtonType;\n showCancel?: boolean;\n confirmText?: string;\n cancelText?: string;\n uniqueId?: string;\n onConfirm?: () => void;\n onCancel?: () => void;\n}\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nconst yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);\nfunction getSideAxis(placement) {\n return yAxisSides.has(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","import{rectToClientRect as t,computePosition as e}from\"@floating-ui/core\";export{arrow,autoPlacement,detectOverflow,flip,hide,inline,limitShift,offset,shift,size}from\"@floating-ui/core\";function n(t){var e;return(null==(e=t.ownerDocument)?void 0:e.defaultView)||window}function o(t){return n(t).getComputedStyle(t)}const i=Math.min,r=Math.max,l=Math.round;function c(t){const e=o(t);let n=parseFloat(e.width),i=parseFloat(e.height);const r=t.offsetWidth,c=t.offsetHeight,s=l(n)!==r||l(i)!==c;return s&&(n=r,i=c),{width:n,height:i,fallback:s}}function s(t){return h(t)?(t.nodeName||\"\").toLowerCase():\"\"}let f;function u(){if(f)return f;const t=navigator.userAgentData;return t&&Array.isArray(t.brands)?(f=t.brands.map((t=>t.brand+\"/\"+t.version)).join(\" \"),f):navigator.userAgent}function a(t){return t instanceof n(t).HTMLElement}function d(t){return t instanceof n(t).Element}function h(t){return t instanceof n(t).Node}function p(t){if(\"undefined\"==typeof ShadowRoot)return!1;return t instanceof n(t).ShadowRoot||t instanceof ShadowRoot}function g(t){const{overflow:e,overflowX:n,overflowY:i,display:r}=o(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&![\"inline\",\"contents\"].includes(r)}function m(t){return[\"table\",\"td\",\"th\"].includes(s(t))}function y(t){const e=/firefox/i.test(u()),n=o(t),i=n.backdropFilter||n.WebkitBackdropFilter;return\"none\"!==n.transform||\"none\"!==n.perspective||!!i&&\"none\"!==i||e&&\"filter\"===n.willChange||e&&!!n.filter&&\"none\"!==n.filter||[\"transform\",\"perspective\"].some((t=>n.willChange.includes(t)))||[\"paint\",\"layout\",\"strict\",\"content\"].some((t=>{const e=n.contain;return null!=e&&e.includes(t)}))}function x(){return!/^((?!chrome|android).)*safari/i.test(u())}function w(t){return[\"html\",\"body\",\"#document\"].includes(s(t))}function v(t){return d(t)?t:t.contextElement}const b={x:1,y:1};function L(t){const e=v(t);if(!a(e))return b;const n=e.getBoundingClientRect(),{width:o,height:i,fallback:r}=c(e);let s=(r?l(n.width):n.width)/o,f=(r?l(n.height):n.height)/i;return s&&Number.isFinite(s)||(s=1),f&&Number.isFinite(f)||(f=1),{x:s,y:f}}function E(t,e,o,i){var r,l;void 0===e&&(e=!1),void 0===o&&(o=!1);const c=t.getBoundingClientRect(),s=v(t);let f=b;e&&(i?d(i)&&(f=L(i)):f=L(t));const u=s?n(s):window,a=!x()&&o;let h=(c.left+(a&&(null==(r=u.visualViewport)?void 0:r.offsetLeft)||0))/f.x,p=(c.top+(a&&(null==(l=u.visualViewport)?void 0:l.offsetTop)||0))/f.y,g=c.width/f.x,m=c.height/f.y;if(s){const t=n(s),e=i&&d(i)?n(i):i;let o=t.frameElement;for(;o&&i&&e!==t;){const t=L(o),e=o.getBoundingClientRect(),i=getComputedStyle(o);e.x+=(o.clientLeft+parseFloat(i.paddingLeft))*t.x,e.y+=(o.clientTop+parseFloat(i.paddingTop))*t.y,h*=t.x,p*=t.y,g*=t.x,m*=t.y,h+=e.x,p+=e.y,o=n(o).frameElement}}return{width:g,height:m,top:p,right:h+g,bottom:p+m,left:h,x:h,y:p}}function R(t){return((h(t)?t.ownerDocument:t.document)||window.document).documentElement}function T(t){return d(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function C(t){return E(R(t)).left+T(t).scrollLeft}function F(t){if(\"html\"===s(t))return t;const e=t.assignedSlot||t.parentNode||p(t)&&t.host||R(t);return p(e)?e.host:e}function W(t){const e=F(t);return w(e)?e.ownerDocument.body:a(e)&&g(e)?e:W(e)}function D(t,e){var o;void 0===e&&(e=[]);const i=W(t),r=i===(null==(o=t.ownerDocument)?void 0:o.body),l=n(i);return r?e.concat(l,l.visualViewport||[],g(i)?i:[]):e.concat(i,D(i))}function S(e,i,l){return\"viewport\"===i?t(function(t,e){const o=n(t),i=R(t),r=o.visualViewport;let l=i.clientWidth,c=i.clientHeight,s=0,f=0;if(r){l=r.width,c=r.height;const t=x();(t||!t&&\"fixed\"===e)&&(s=r.offsetLeft,f=r.offsetTop)}return{width:l,height:c,x:s,y:f}}(e,l)):d(i)?t(function(t,e){const n=E(t,!0,\"fixed\"===e),o=n.top+t.clientTop,i=n.left+t.clientLeft,r=a(t)?L(t):{x:1,y:1};return{width:t.clientWidth*r.x,height:t.clientHeight*r.y,x:i*r.x,y:o*r.y}}(i,l)):t(function(t){const e=R(t),n=T(t),i=t.ownerDocument.body,l=r(e.scrollWidth,e.clientWidth,i.scrollWidth,i.clientWidth),c=r(e.scrollHeight,e.clientHeight,i.scrollHeight,i.clientHeight);let s=-n.scrollLeft+C(t);const f=-n.scrollTop;return\"rtl\"===o(i).direction&&(s+=r(e.clientWidth,i.clientWidth)-l),{width:l,height:c,x:s,y:f}}(R(e)))}function A(t){return a(t)&&\"fixed\"!==o(t).position?t.offsetParent:null}function H(t){const e=n(t);let i=A(t);for(;i&&m(i)&&\"static\"===o(i).position;)i=A(i);return i&&(\"html\"===s(i)||\"body\"===s(i)&&\"static\"===o(i).position&&!y(i))?e:i||function(t){let e=F(t);for(;a(e)&&!w(e);){if(y(e))return e;e=F(e)}return null}(t)||e}function O(t,e,n){const o=a(e),i=R(e),r=E(t,!0,\"fixed\"===n,e);let l={scrollLeft:0,scrollTop:0};const c={x:0,y:0};if(o||!o&&\"fixed\"!==n)if((\"body\"!==s(e)||g(i))&&(l=T(e)),a(e)){const t=E(e,!0);c.x=t.x+e.clientLeft,c.y=t.y+e.clientTop}else i&&(c.x=C(i));return{x:r.left+l.scrollLeft-c.x,y:r.top+l.scrollTop-c.y,width:r.width,height:r.height}}const P={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:l,strategy:c}=t;const f=\"clippingAncestors\"===n?function(t,e){const n=e.get(t);if(n)return n;let i=D(t).filter((t=>d(t)&&\"body\"!==s(t))),r=null;const l=\"fixed\"===o(t).position;let c=l?F(t):t;for(;d(c)&&!w(c);){const t=o(c),e=y(c);(l?e||r:e||\"static\"!==t.position||!r||![\"absolute\",\"fixed\"].includes(r.position))?r=t:i=i.filter((t=>t!==c)),c=F(c)}return e.set(t,i),i}(e,this._c):[].concat(n),u=[...f,l],a=u[0],h=u.reduce(((t,n)=>{const o=S(e,n,c);return t.top=r(o.top,t.top),t.right=i(o.right,t.right),t.bottom=i(o.bottom,t.bottom),t.left=r(o.left,t.left),t}),S(e,a,c));return{width:h.right-h.left,height:h.bottom-h.top,x:h.left,y:h.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:o}=t;const i=a(n),r=R(n);if(n===r)return e;let l={scrollLeft:0,scrollTop:0},c={x:1,y:1};const f={x:0,y:0};if((i||!i&&\"fixed\"!==o)&&((\"body\"!==s(n)||g(r))&&(l=T(n)),a(n))){const t=E(n);c=L(n),f.x=t.x+n.clientLeft,f.y=t.y+n.clientTop}return{width:e.width*c.x,height:e.height*c.y,x:e.x*c.x-l.scrollLeft*c.x+f.x,y:e.y*c.y-l.scrollTop*c.y+f.y}},isElement:d,getDimensions:function(t){return a(t)?c(t):t.getBoundingClientRect()},getOffsetParent:H,getDocumentElement:R,getScale:L,async getElementRects(t){let{reference:e,floating:n,strategy:o}=t;const i=this.getOffsetParent||H,r=this.getDimensions;return{reference:O(e,await i(n),o),floating:{x:0,y:0,...await r(n)}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>\"rtl\"===o(t).direction};function z(t,e,n,o){void 0===o&&(o={});const{ancestorScroll:i=!0,ancestorResize:r=!0,elementResize:l=!0,animationFrame:c=!1}=o,s=i&&!c,f=s||r?[...d(t)?D(t):t.contextElement?D(t.contextElement):[],...D(e)]:[];f.forEach((t=>{s&&t.addEventListener(\"scroll\",n,{passive:!0}),r&&t.addEventListener(\"resize\",n)}));let u,a=null;if(l){let o=!0;a=new ResizeObserver((()=>{o||n(),o=!1})),d(t)&&!c&&a.observe(t),d(t)||!t.contextElement||c||a.observe(t.contextElement),a.observe(e)}let h=c?E(t):null;return c&&function e(){const o=E(t);!h||o.x===h.x&&o.y===h.y&&o.width===h.width&&o.height===h.height||n();h=o,u=requestAnimationFrame(e)}(),n(),()=>{var t;f.forEach((t=>{s&&t.removeEventListener(\"scroll\",n),r&&t.removeEventListener(\"resize\",n)})),null==(t=a)||t.disconnect(),a=null,c&&cancelAnimationFrame(u)}}const B=(t,n,o)=>{const i=new Map,r={platform:P,...o},l={...r.platform,_c:i};return e(t,n,{...r,platform:l})};export{z as autoUpdate,B as computePosition,D as getOverflowAncestors,P as platform};\n","import { defineComponent as O, openBlock as f, createElementBlock as T, normalizeClass as J, renderSlot as A, normalizeProps as ke, guardReactiveProps as Le, pushScopeId as De, popScopeId as Ie, nextTick as Fe, createBlock as M, withScopeId as Re, resolveComponent as P, normalizeStyle as W, withKeys as je, createElementVNode as w, Fragment as Ve, createCommentVNode as se, mergeProps as $e, withCtx as N, createVNode as ve, toDisplayString as We, ref as U, createApp as Ge, h as qe } from \"vue\";\nimport { offset as xe, autoPlacement as Ue, shift as Ye, flip as Xe, arrow as Ke, size as Je, computePosition as Qe, getOverflowAncestors as ne } from \"@floating-ui/dom\";\nfunction ye(e, t) {\n for (const o in t)\n Object.prototype.hasOwnProperty.call(t, o) && (typeof t[o] == \"object\" && e[o] ? ye(e[o], t[o]) : e[o] = t[o]);\n}\nconst h = {\n // Disable popper components\n disabled: !1,\n // Default position offset along main axis (px)\n distance: 5,\n // Default position offset along cross axis (px)\n skidding: 0,\n // Default container where the tooltip will be appended\n container: \"body\",\n // Element used to compute position and size boundaries\n boundary: void 0,\n // Skip delay & CSS transitions when another popper is shown, so that the popper appear to instanly move to the new position.\n instantMove: !1,\n // Auto destroy tooltip DOM nodes (ms)\n disposeTimeout: 150,\n // Triggers on the popper itself\n popperTriggers: [],\n // Positioning strategy\n strategy: \"absolute\",\n // Prevent overflow\n preventOverflow: !0,\n // Flip to the opposite placement if needed\n flip: !0,\n // Shift on the cross axis to prevent the popper from overflowing\n shift: !0,\n // Overflow padding (px)\n overflowPadding: 0,\n // Arrow padding (px)\n arrowPadding: 0,\n // Compute arrow overflow (useful to hide it)\n arrowOverflow: !0,\n /**\n * By default, compute autohide on 'click'.\n */\n autoHideOnMousedown: !1,\n // Themes\n themes: {\n tooltip: {\n // Default tooltip placement relative to target element\n placement: \"top\",\n // Default events that trigger the tooltip\n triggers: [\"hover\", \"focus\", \"touch\"],\n // Close tooltip on click on tooltip target\n hideTriggers: (e) => [...e, \"click\"],\n // Delay (ms)\n delay: {\n show: 200,\n hide: 0\n },\n // Update popper on content resize\n handleResize: !1,\n // Enable HTML content in directive\n html: !1,\n // Displayed when tooltip content is loading\n loadingContent: \"...\"\n },\n dropdown: {\n // Default dropdown placement relative to target element\n placement: \"bottom\",\n // Default events that trigger the dropdown\n triggers: [\"click\"],\n // Delay (ms)\n delay: 0,\n // Update popper on content resize\n handleResize: !0,\n // Hide on clock outside\n autoHide: !0\n },\n menu: {\n $extend: \"dropdown\",\n triggers: [\"hover\", \"focus\"],\n popperTriggers: [\"hover\"],\n delay: {\n show: 0,\n hide: 400\n }\n }\n }\n};\nfunction S(e, t) {\n let o = h.themes[e] || {}, i;\n do\n i = o[t], typeof i > \"u\" ? o.$extend ? o = h.themes[o.$extend] || {} : (o = null, i = h[t]) : o = null;\n while (o);\n return i;\n}\nfunction Ze(e) {\n const t = [e];\n let o = h.themes[e] || {};\n do\n o.$extend && !o.$resetCss ? (t.push(o.$extend), o = h.themes[o.$extend] || {}) : o = null;\n while (o);\n return t.map((i) => `v-popper--theme-${i}`);\n}\nfunction re(e) {\n const t = [e];\n let o = h.themes[e] || {};\n do\n o.$extend ? (t.push(o.$extend), o = h.themes[o.$extend] || {}) : o = null;\n while (o);\n return t;\n}\nlet $ = !1;\nif (typeof window < \"u\") {\n $ = !1;\n try {\n const e = Object.defineProperty({}, \"passive\", {\n get() {\n $ = !0;\n }\n });\n window.addEventListener(\"test\", null, e);\n } catch {\n }\n}\nlet _e = !1;\ntypeof window < \"u\" && typeof navigator < \"u\" && (_e = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream);\nconst Te = [\"auto\", \"top\", \"bottom\", \"left\", \"right\"].reduce((e, t) => e.concat([\n t,\n `${t}-start`,\n `${t}-end`\n]), []), pe = {\n hover: \"mouseenter\",\n focus: \"focus\",\n click: \"click\",\n touch: \"touchstart\",\n pointer: \"pointerdown\"\n}, ae = {\n hover: \"mouseleave\",\n focus: \"blur\",\n click: \"click\",\n touch: \"touchend\",\n pointer: \"pointerup\"\n};\nfunction de(e, t) {\n const o = e.indexOf(t);\n o !== -1 && e.splice(o, 1);\n}\nfunction G() {\n return new Promise((e) => requestAnimationFrame(() => {\n requestAnimationFrame(e);\n }));\n}\nconst d = [];\nlet g = null;\nconst le = {};\nfunction he(e) {\n let t = le[e];\n return t || (t = le[e] = []), t;\n}\nlet Y = function() {\n};\ntypeof window < \"u\" && (Y = window.Element);\nfunction n(e) {\n return function(t) {\n return S(t.theme, e);\n };\n}\nconst q = \"__floating-vue__popper\", Q = () => O({\n name: \"VPopper\",\n provide() {\n return {\n [q]: {\n parentPopper: this\n }\n };\n },\n inject: {\n [q]: { default: null }\n },\n props: {\n theme: {\n type: String,\n required: !0\n },\n targetNodes: {\n type: Function,\n required: !0\n },\n referenceNode: {\n type: Function,\n default: null\n },\n popperNode: {\n type: Function,\n required: !0\n },\n shown: {\n type: Boolean,\n default: !1\n },\n showGroup: {\n type: String,\n default: null\n },\n // eslint-disable-next-line vue/require-prop-types\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: n(\"disabled\")\n },\n positioningDisabled: {\n type: Boolean,\n default: n(\"positioningDisabled\")\n },\n placement: {\n type: String,\n default: n(\"placement\"),\n validator: (e) => Te.includes(e)\n },\n delay: {\n type: [String, Number, Object],\n default: n(\"delay\")\n },\n distance: {\n type: [Number, String],\n default: n(\"distance\")\n },\n skidding: {\n type: [Number, String],\n default: n(\"skidding\")\n },\n triggers: {\n type: Array,\n default: n(\"triggers\")\n },\n showTriggers: {\n type: [Array, Function],\n default: n(\"showTriggers\")\n },\n hideTriggers: {\n type: [Array, Function],\n default: n(\"hideTriggers\")\n },\n popperTriggers: {\n type: Array,\n default: n(\"popperTriggers\")\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: n(\"popperShowTriggers\")\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: n(\"popperHideTriggers\")\n },\n container: {\n type: [String, Object, Y, Boolean],\n default: n(\"container\")\n },\n boundary: {\n type: [String, Y],\n default: n(\"boundary\")\n },\n strategy: {\n type: String,\n validator: (e) => [\"absolute\", \"fixed\"].includes(e),\n default: n(\"strategy\")\n },\n autoHide: {\n type: [Boolean, Function],\n default: n(\"autoHide\")\n },\n handleResize: {\n type: Boolean,\n default: n(\"handleResize\")\n },\n instantMove: {\n type: Boolean,\n default: n(\"instantMove\")\n },\n eagerMount: {\n type: Boolean,\n default: n(\"eagerMount\")\n },\n popperClass: {\n type: [String, Array, Object],\n default: n(\"popperClass\")\n },\n computeTransformOrigin: {\n type: Boolean,\n default: n(\"computeTransformOrigin\")\n },\n /**\n * @deprecated\n */\n autoMinSize: {\n type: Boolean,\n default: n(\"autoMinSize\")\n },\n autoSize: {\n type: [Boolean, String],\n default: n(\"autoSize\")\n },\n /**\n * @deprecated\n */\n autoMaxSize: {\n type: Boolean,\n default: n(\"autoMaxSize\")\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: n(\"autoBoundaryMaxSize\")\n },\n preventOverflow: {\n type: Boolean,\n default: n(\"preventOverflow\")\n },\n overflowPadding: {\n type: [Number, String],\n default: n(\"overflowPadding\")\n },\n arrowPadding: {\n type: [Number, String],\n default: n(\"arrowPadding\")\n },\n arrowOverflow: {\n type: Boolean,\n default: n(\"arrowOverflow\")\n },\n flip: {\n type: Boolean,\n default: n(\"flip\")\n },\n shift: {\n type: Boolean,\n default: n(\"shift\")\n },\n shiftCrossAxis: {\n type: Boolean,\n default: n(\"shiftCrossAxis\")\n },\n noAutoFocus: {\n type: Boolean,\n default: n(\"noAutoFocus\")\n },\n disposeTimeout: {\n type: Number,\n default: n(\"disposeTimeout\")\n }\n },\n emits: {\n show: () => !0,\n hide: () => !0,\n \"update:shown\": (e) => !0,\n \"apply-show\": () => !0,\n \"apply-hide\": () => !0,\n \"close-group\": () => !0,\n \"close-directive\": () => !0,\n \"auto-hide\": () => !0,\n resize: () => !0\n },\n data() {\n return {\n isShown: !1,\n isMounted: !1,\n skipTransition: !1,\n classes: {\n showFrom: !1,\n showTo: !1,\n hideFrom: !1,\n hideTo: !0\n },\n result: {\n x: 0,\n y: 0,\n placement: \"\",\n strategy: this.strategy,\n arrow: {\n x: 0,\n y: 0,\n centerOffset: 0\n },\n transformOrigin: null\n },\n randomId: `popper_${[Math.random(), Date.now()].map((e) => e.toString(36).substring(2, 10)).join(\"_\")}`,\n shownChildren: /* @__PURE__ */ new Set(),\n lastAutoHide: !0,\n pendingHide: !1,\n containsGlobalTarget: !1,\n isDisposed: !0,\n mouseDownContains: !1\n };\n },\n computed: {\n popperId() {\n return this.ariaId != null ? this.ariaId : this.randomId;\n },\n shouldMountContent() {\n return this.eagerMount || this.isMounted;\n },\n slotData() {\n return {\n popperId: this.popperId,\n isShown: this.isShown,\n shouldMountContent: this.shouldMountContent,\n skipTransition: this.skipTransition,\n autoHide: typeof this.autoHide == \"function\" ? this.lastAutoHide : this.autoHide,\n show: this.show,\n hide: this.hide,\n handleResize: this.handleResize,\n onResize: this.onResize,\n classes: {\n ...this.classes,\n popperClass: this.popperClass\n },\n result: this.positioningDisabled ? null : this.result,\n attrs: this.$attrs\n };\n },\n parentPopper() {\n var e;\n return (e = this[q]) == null ? void 0 : e.parentPopper;\n },\n hasPopperShowTriggerHover() {\n var e, t;\n return ((e = this.popperTriggers) == null ? void 0 : e.includes(\"hover\")) || ((t = this.popperShowTriggers) == null ? void 0 : t.includes(\"hover\"));\n }\n },\n watch: {\n shown: \"$_autoShowHide\",\n disabled(e) {\n e ? this.dispose() : this.init();\n },\n async container() {\n this.isShown && (this.$_ensureTeleport(), await this.$_computePosition());\n },\n triggers: {\n handler: \"$_refreshListeners\",\n deep: !0\n },\n positioningDisabled: \"$_refreshListeners\",\n ...[\n \"placement\",\n \"distance\",\n \"skidding\",\n \"boundary\",\n \"strategy\",\n \"overflowPadding\",\n \"arrowPadding\",\n \"preventOverflow\",\n \"shift\",\n \"shiftCrossAxis\",\n \"flip\"\n ].reduce((e, t) => (e[t] = \"$_computePosition\", e), {})\n },\n created() {\n this.autoMinSize && console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize=\"min\"` instead.'), this.autoMaxSize && console.warn(\"[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.\");\n },\n mounted() {\n this.init(), this.$_detachPopperNode();\n },\n activated() {\n this.$_autoShowHide();\n },\n deactivated() {\n this.hide();\n },\n beforeUnmount() {\n this.dispose();\n },\n methods: {\n show({ event: e = null, skipDelay: t = !1, force: o = !1 } = {}) {\n var i, s;\n (i = this.parentPopper) != null && i.lockedChild && this.parentPopper.lockedChild !== this || (this.pendingHide = !1, (o || !this.disabled) && (((s = this.parentPopper) == null ? void 0 : s.lockedChild) === this && (this.parentPopper.lockedChild = null), this.$_scheduleShow(e, t), this.$emit(\"show\"), this.$_showFrameLocked = !0, requestAnimationFrame(() => {\n this.$_showFrameLocked = !1;\n })), this.$emit(\"update:shown\", !0));\n },\n hide({ event: e = null, skipDelay: t = !1 } = {}) {\n var o;\n if (!this.$_hideInProgress) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0;\n return;\n }\n if (this.hasPopperShowTriggerHover && this.$_isAimingPopper()) {\n this.parentPopper && (this.parentPopper.lockedChild = this, clearTimeout(this.parentPopper.lockedChildTimer), this.parentPopper.lockedChildTimer = setTimeout(() => {\n this.parentPopper.lockedChild === this && (this.parentPopper.lockedChild.hide({ skipDelay: t }), this.parentPopper.lockedChild = null);\n }, 1e3));\n return;\n }\n ((o = this.parentPopper) == null ? void 0 : o.lockedChild) === this && (this.parentPopper.lockedChild = null), this.pendingHide = !1, this.$_scheduleHide(e, t), this.$emit(\"hide\"), this.$emit(\"update:shown\", !1);\n }\n },\n init() {\n var e;\n this.isDisposed && (this.isDisposed = !1, this.isMounted = !1, this.$_events = [], this.$_preventShow = !1, this.$_referenceNode = ((e = this.referenceNode) == null ? void 0 : e.call(this)) ?? this.$el, this.$_targetNodes = this.targetNodes().filter((t) => t.nodeType === t.ELEMENT_NODE), this.$_popperNode = this.popperNode(), this.$_innerNode = this.$_popperNode.querySelector(\".v-popper__inner\"), this.$_arrowNode = this.$_popperNode.querySelector(\".v-popper__arrow-container\"), this.$_swapTargetAttrs(\"title\", \"data-original-title\"), this.$_detachPopperNode(), this.triggers.length && this.$_addEventListeners(), this.shown && this.show());\n },\n dispose() {\n this.isDisposed || (this.isDisposed = !0, this.$_removeEventListeners(), this.hide({ skipDelay: !0 }), this.$_detachPopperNode(), this.isMounted = !1, this.isShown = !1, this.$_updateParentShownChildren(!1), this.$_swapTargetAttrs(\"data-original-title\", \"title\"));\n },\n async onResize() {\n this.isShown && (await this.$_computePosition(), this.$emit(\"resize\"));\n },\n async $_computePosition() {\n if (this.isDisposed || this.positioningDisabled)\n return;\n const e = {\n strategy: this.strategy,\n middleware: []\n };\n (this.distance || this.skidding) && e.middleware.push(xe({\n mainAxis: this.distance,\n crossAxis: this.skidding\n }));\n const t = this.placement.startsWith(\"auto\");\n if (t ? e.middleware.push(Ue({\n alignment: this.placement.split(\"-\")[1] ?? \"\"\n })) : e.placement = this.placement, this.preventOverflow && (this.shift && e.middleware.push(Ye({\n padding: this.overflowPadding,\n boundary: this.boundary,\n crossAxis: this.shiftCrossAxis\n })), !t && this.flip && e.middleware.push(Xe({\n padding: this.overflowPadding,\n boundary: this.boundary\n }))), e.middleware.push(Ke({\n element: this.$_arrowNode,\n padding: this.arrowPadding\n })), this.arrowOverflow && e.middleware.push({\n name: \"arrowOverflow\",\n fn: ({ placement: i, rects: s, middlewareData: r }) => {\n let p;\n const { centerOffset: a } = r.arrow;\n return i.startsWith(\"top\") || i.startsWith(\"bottom\") ? p = Math.abs(a) > s.reference.width / 2 : p = Math.abs(a) > s.reference.height / 2, {\n data: {\n overflow: p\n }\n };\n }\n }), this.autoMinSize || this.autoSize) {\n const i = this.autoSize ? this.autoSize : this.autoMinSize ? \"min\" : null;\n e.middleware.push({\n name: \"autoSize\",\n fn: ({ rects: s, placement: r, middlewareData: p }) => {\n var u;\n if ((u = p.autoSize) != null && u.skip)\n return {};\n let a, l;\n return r.startsWith(\"top\") || r.startsWith(\"bottom\") ? a = s.reference.width : l = s.reference.height, this.$_innerNode.style[i === \"min\" ? \"minWidth\" : i === \"max\" ? \"maxWidth\" : \"width\"] = a != null ? `${a}px` : null, this.$_innerNode.style[i === \"min\" ? \"minHeight\" : i === \"max\" ? \"maxHeight\" : \"height\"] = l != null ? `${l}px` : null, {\n data: {\n skip: !0\n },\n reset: {\n rects: !0\n }\n };\n }\n });\n }\n (this.autoMaxSize || this.autoBoundaryMaxSize) && (this.$_innerNode.style.maxWidth = null, this.$_innerNode.style.maxHeight = null, e.middleware.push(Je({\n boundary: this.boundary,\n padding: this.overflowPadding,\n apply: ({ availableWidth: i, availableHeight: s }) => {\n this.$_innerNode.style.maxWidth = i != null ? `${i}px` : null, this.$_innerNode.style.maxHeight = s != null ? `${s}px` : null;\n }\n })));\n const o = await Qe(this.$_referenceNode, this.$_popperNode, e);\n Object.assign(this.result, {\n x: o.x,\n y: o.y,\n placement: o.placement,\n strategy: o.strategy,\n arrow: {\n ...o.middlewareData.arrow,\n ...o.middlewareData.arrowOverflow\n }\n });\n },\n $_scheduleShow(e, t = !1) {\n if (this.$_updateParentShownChildren(!0), this.$_hideInProgress = !1, clearTimeout(this.$_scheduleTimer), g && this.instantMove && g.instantMove && g !== this.parentPopper) {\n g.$_applyHide(!0), this.$_applyShow(!0);\n return;\n }\n t ? this.$_applyShow() : this.$_scheduleTimer = setTimeout(this.$_applyShow.bind(this), this.$_computeDelay(\"show\"));\n },\n $_scheduleHide(e, t = !1) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0;\n return;\n }\n this.$_updateParentShownChildren(!1), this.$_hideInProgress = !0, clearTimeout(this.$_scheduleTimer), this.isShown && (g = this), t ? this.$_applyHide() : this.$_scheduleTimer = setTimeout(this.$_applyHide.bind(this), this.$_computeDelay(\"hide\"));\n },\n $_computeDelay(e) {\n const t = this.delay;\n return parseInt(t && t[e] || t || 0);\n },\n async $_applyShow(e = !1) {\n clearTimeout(this.$_disposeTimer), clearTimeout(this.$_scheduleTimer), this.skipTransition = e, !this.isShown && (this.$_ensureTeleport(), await G(), await this.$_computePosition(), await this.$_applyShowEffect(), this.positioningDisabled || this.$_registerEventListeners([\n ...ne(this.$_referenceNode),\n ...ne(this.$_popperNode)\n ], \"scroll\", () => {\n this.$_computePosition();\n }));\n },\n async $_applyShowEffect() {\n if (this.$_hideInProgress)\n return;\n if (this.computeTransformOrigin) {\n const t = this.$_referenceNode.getBoundingClientRect(), o = this.$_popperNode.querySelector(\".v-popper__wrapper\"), i = o.parentNode.getBoundingClientRect(), s = t.x + t.width / 2 - (i.left + o.offsetLeft), r = t.y + t.height / 2 - (i.top + o.offsetTop);\n this.result.transformOrigin = `${s}px ${r}px`;\n }\n this.isShown = !0, this.$_applyAttrsToTarget({\n \"aria-describedby\": this.popperId,\n \"data-popper-shown\": \"\"\n });\n const e = this.showGroup;\n if (e) {\n let t;\n for (let o = 0; o < d.length; o++)\n t = d[o], t.showGroup !== e && (t.hide(), t.$emit(\"close-group\"));\n }\n d.push(this), document.body.classList.add(\"v-popper--some-open\");\n for (const t of re(this.theme))\n he(t).push(this), document.body.classList.add(`v-popper--some-open--${t}`);\n this.$emit(\"apply-show\"), this.classes.showFrom = !0, this.classes.showTo = !1, this.classes.hideFrom = !1, this.classes.hideTo = !1, await G(), this.classes.showFrom = !1, this.classes.showTo = !0, this.noAutoFocus || this.$_popperNode.focus();\n },\n async $_applyHide(e = !1) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0, this.$_hideInProgress = !1;\n return;\n }\n if (clearTimeout(this.$_scheduleTimer), !this.isShown)\n return;\n this.skipTransition = e, de(d, this), d.length === 0 && document.body.classList.remove(\"v-popper--some-open\");\n for (const o of re(this.theme)) {\n const i = he(o);\n de(i, this), i.length === 0 && document.body.classList.remove(`v-popper--some-open--${o}`);\n }\n g === this && (g = null), this.isShown = !1, this.$_applyAttrsToTarget({\n \"aria-describedby\": void 0,\n \"data-popper-shown\": void 0\n }), clearTimeout(this.$_disposeTimer);\n const t = this.disposeTimeout;\n t !== null && (this.$_disposeTimer = setTimeout(() => {\n this.$_popperNode && (this.$_detachPopperNode(), this.isMounted = !1);\n }, t)), this.$_removeEventListeners(\"scroll\"), this.$emit(\"apply-hide\"), this.classes.showFrom = !1, this.classes.showTo = !1, this.classes.hideFrom = !0, this.classes.hideTo = !1, await G(), this.classes.hideFrom = !1, this.classes.hideTo = !0;\n },\n $_autoShowHide() {\n this.shown ? this.show() : this.hide();\n },\n $_ensureTeleport() {\n if (this.isDisposed)\n return;\n let e = this.container;\n if (typeof e == \"string\" ? e = window.document.querySelector(e) : e === !1 && (e = this.$_targetNodes[0].parentNode), !e)\n throw new Error(\"No container for popover: \" + this.container);\n e.appendChild(this.$_popperNode), this.isMounted = !0;\n },\n $_addEventListeners() {\n const e = (o) => {\n this.isShown && !this.$_hideInProgress || (o.usedByTooltip = !0, !this.$_preventShow && this.show({ event: o }));\n };\n this.$_registerTriggerListeners(this.$_targetNodes, pe, this.triggers, this.showTriggers, e), this.$_registerTriggerListeners([this.$_popperNode], pe, this.popperTriggers, this.popperShowTriggers, e);\n const t = (o) => {\n o.usedByTooltip || this.hide({ event: o });\n };\n this.$_registerTriggerListeners(this.$_targetNodes, ae, this.triggers, this.hideTriggers, t), this.$_registerTriggerListeners([this.$_popperNode], ae, this.popperTriggers, this.popperHideTriggers, t);\n },\n $_registerEventListeners(e, t, o) {\n this.$_events.push({ targetNodes: e, eventType: t, handler: o }), e.forEach((i) => i.addEventListener(t, o, $ ? {\n passive: !0\n } : void 0));\n },\n $_registerTriggerListeners(e, t, o, i, s) {\n let r = o;\n i != null && (r = typeof i == \"function\" ? i(r) : i), r.forEach((p) => {\n const a = t[p];\n a && this.$_registerEventListeners(e, a, s);\n });\n },\n $_removeEventListeners(e) {\n const t = [];\n this.$_events.forEach((o) => {\n const { targetNodes: i, eventType: s, handler: r } = o;\n !e || e === s ? i.forEach((p) => p.removeEventListener(s, r)) : t.push(o);\n }), this.$_events = t;\n },\n $_refreshListeners() {\n this.isDisposed || (this.$_removeEventListeners(), this.$_addEventListeners());\n },\n $_handleGlobalClose(e, t = !1) {\n this.$_showFrameLocked || (this.hide({ event: e }), e.closePopover ? this.$emit(\"close-directive\") : this.$emit(\"auto-hide\"), t && (this.$_preventShow = !0, setTimeout(() => {\n this.$_preventShow = !1;\n }, 300)));\n },\n $_detachPopperNode() {\n this.$_popperNode.parentNode && this.$_popperNode.parentNode.removeChild(this.$_popperNode);\n },\n $_swapTargetAttrs(e, t) {\n for (const o of this.$_targetNodes) {\n const i = o.getAttribute(e);\n i && (o.removeAttribute(e), o.setAttribute(t, i));\n }\n },\n $_applyAttrsToTarget(e) {\n for (const t of this.$_targetNodes)\n for (const o in e) {\n const i = e[o];\n i == null ? t.removeAttribute(o) : t.setAttribute(o, i);\n }\n },\n $_updateParentShownChildren(e) {\n let t = this.parentPopper;\n for (; t; )\n e ? t.shownChildren.add(this.randomId) : (t.shownChildren.delete(this.randomId), t.pendingHide && t.hide()), t = t.parentPopper;\n },\n $_isAimingPopper() {\n const e = this.$_referenceNode.getBoundingClientRect();\n if (y >= e.left && y <= e.right && _ >= e.top && _ <= e.bottom) {\n const t = this.$_popperNode.getBoundingClientRect(), o = y - c, i = _ - m, r = t.left + t.width / 2 - c + (t.top + t.height / 2) - m + t.width + t.height, p = c + o * r, a = m + i * r;\n return C(c, m, p, a, t.left, t.top, t.left, t.bottom) || // Left edge\n C(c, m, p, a, t.left, t.top, t.right, t.top) || // Top edge\n C(c, m, p, a, t.right, t.top, t.right, t.bottom) || // Right edge\n C(c, m, p, a, t.left, t.bottom, t.right, t.bottom);\n }\n return !1;\n }\n },\n render() {\n return this.$slots.default(this.slotData);\n }\n});\nif (typeof document < \"u\" && typeof window < \"u\") {\n if (_e) {\n const e = $ ? {\n passive: !0,\n capture: !0\n } : !0;\n document.addEventListener(\"touchstart\", (t) => ue(t, !0), e), document.addEventListener(\"touchend\", (t) => fe(t, !0), e);\n } else\n window.addEventListener(\"mousedown\", (e) => ue(e, !1), !0), window.addEventListener(\"click\", (e) => fe(e, !1), !0);\n window.addEventListener(\"resize\", tt);\n}\nfunction ue(e, t) {\n if (h.autoHideOnMousedown)\n Pe(e, t);\n else\n for (let o = 0; o < d.length; o++) {\n const i = d[o];\n try {\n i.mouseDownContains = i.popperNode().contains(e.target);\n } catch {\n }\n }\n}\nfunction fe(e, t) {\n h.autoHideOnMousedown || Pe(e, t);\n}\nfunction Pe(e, t) {\n const o = {};\n for (let i = d.length - 1; i >= 0; i--) {\n const s = d[i];\n try {\n const r = s.containsGlobalTarget = s.mouseDownContains || s.popperNode().contains(e.target);\n s.pendingHide = !1, requestAnimationFrame(() => {\n if (s.pendingHide = !1, !o[s.randomId] && ce(s, r, e)) {\n if (s.$_handleGlobalClose(e, t), !e.closeAllPopover && e.closePopover && r) {\n let a = s.parentPopper;\n for (; a; )\n o[a.randomId] = !0, a = a.parentPopper;\n return;\n }\n let p = s.parentPopper;\n for (; p && ce(p, p.containsGlobalTarget, e); ) {\n p.$_handleGlobalClose(e, t);\n p = p.parentPopper;\n }\n }\n });\n } catch {\n }\n }\n}\nfunction ce(e, t, o) {\n return o.closeAllPopover || o.closePopover && t || et(e, o) && !t;\n}\nfunction et(e, t) {\n if (typeof e.autoHide == \"function\") {\n const o = e.autoHide(t);\n return e.lastAutoHide = o, o;\n }\n return e.autoHide;\n}\nfunction tt() {\n for (let e = 0; e < d.length; e++)\n d[e].$_computePosition();\n}\nfunction Nt() {\n for (let e = 0; e < d.length; e++)\n d[e].hide();\n}\nlet c = 0, m = 0, y = 0, _ = 0;\ntypeof window < \"u\" && window.addEventListener(\"mousemove\", (e) => {\n c = y, m = _, y = e.clientX, _ = e.clientY;\n}, $ ? {\n passive: !0\n} : void 0);\nfunction C(e, t, o, i, s, r, p, a) {\n const l = ((p - s) * (t - r) - (a - r) * (e - s)) / ((a - r) * (o - e) - (p - s) * (i - t)), u = ((o - e) * (t - r) - (i - t) * (e - s)) / ((a - r) * (o - e) - (p - s) * (i - t));\n return l >= 0 && l <= 1 && u >= 0 && u <= 1;\n}\nconst ot = {\n extends: Q()\n}, B = (e, t) => {\n const o = e.__vccOpts || e;\n for (const [i, s] of t)\n o[i] = s;\n return o;\n};\nfunction it(e, t, o, i, s, r) {\n return f(), T(\"div\", {\n ref: \"reference\",\n class: J([\"v-popper\", {\n \"v-popper--shown\": e.slotData.isShown\n }])\n }, [\n A(e.$slots, \"default\", ke(Le(e.slotData)))\n ], 2);\n}\nconst st = /* @__PURE__ */ B(ot, [[\"render\", it]]);\nfunction nt() {\n var e = window.navigator.userAgent, t = e.indexOf(\"MSIE \");\n if (t > 0)\n return parseInt(e.substring(t + 5, e.indexOf(\".\", t)), 10);\n var o = e.indexOf(\"Trident/\");\n if (o > 0) {\n var i = e.indexOf(\"rv:\");\n return parseInt(e.substring(i + 3, e.indexOf(\".\", i)), 10);\n }\n var s = e.indexOf(\"Edge/\");\n return s > 0 ? parseInt(e.substring(s + 5, e.indexOf(\".\", s)), 10) : -1;\n}\nlet z;\nfunction X() {\n X.init || (X.init = !0, z = nt() !== -1);\n}\nvar E = {\n name: \"ResizeObserver\",\n props: {\n emitOnMount: {\n type: Boolean,\n default: !1\n },\n ignoreWidth: {\n type: Boolean,\n default: !1\n },\n ignoreHeight: {\n type: Boolean,\n default: !1\n }\n },\n emits: [\n \"notify\"\n ],\n mounted() {\n X(), Fe(() => {\n this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitOnMount && this.emitSize();\n });\n const e = document.createElement(\"object\");\n this._resizeObject = e, e.setAttribute(\"aria-hidden\", \"true\"), e.setAttribute(\"tabindex\", -1), e.onload = this.addResizeHandlers, e.type = \"text/html\", z && this.$el.appendChild(e), e.data = \"about:blank\", z || this.$el.appendChild(e);\n },\n beforeUnmount() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify() {\n (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) && (this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitSize());\n },\n emitSize() {\n this.$emit(\"notify\", {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener(\"resize\", this.compareAndNotify), this.compareAndNotify();\n },\n removeResizeHandlers() {\n this._resizeObject && this._resizeObject.onload && (!z && this._resizeObject.contentDocument && this._resizeObject.contentDocument.defaultView.removeEventListener(\"resize\", this.compareAndNotify), this.$el.removeChild(this._resizeObject), this._resizeObject.onload = null, this._resizeObject = null);\n }\n }\n};\nconst rt = /* @__PURE__ */ Re(\"data-v-b329ee4c\");\nDe(\"data-v-b329ee4c\");\nconst pt = {\n class: \"resize-observer\",\n tabindex: \"-1\"\n};\nIe();\nconst at = /* @__PURE__ */ rt((e, t, o, i, s, r) => (f(), M(\"div\", pt)));\nE.render = at;\nE.__scopeId = \"data-v-b329ee4c\";\nE.__file = \"src/components/ResizeObserver.vue\";\nconst Z = (e = \"theme\") => ({\n computed: {\n themeClass() {\n return Ze(this[e]);\n }\n }\n}), dt = O({\n name: \"VPopperContent\",\n components: {\n ResizeObserver: E\n },\n mixins: [\n Z()\n ],\n props: {\n popperId: String,\n theme: String,\n shown: Boolean,\n mounted: Boolean,\n skipTransition: Boolean,\n autoHide: Boolean,\n handleResize: Boolean,\n classes: Object,\n result: Object\n },\n emits: [\n \"hide\",\n \"resize\"\n ],\n methods: {\n toPx(e) {\n return e != null && !isNaN(e) ? `${e}px` : null;\n }\n }\n}), lt = [\"id\", \"aria-hidden\", \"tabindex\", \"data-popper-placement\"], ht = {\n ref: \"inner\",\n class: \"v-popper__inner\"\n}, ut = /* @__PURE__ */ w(\"div\", { class: \"v-popper__arrow-outer\" }, null, -1), ft = /* @__PURE__ */ w(\"div\", { class: \"v-popper__arrow-inner\" }, null, -1), ct = [\n ut,\n ft\n];\nfunction mt(e, t, o, i, s, r) {\n const p = P(\"ResizeObserver\");\n return f(), T(\"div\", {\n id: e.popperId,\n ref: \"popover\",\n class: J([\"v-popper__popper\", [\n e.themeClass,\n e.classes.popperClass,\n {\n \"v-popper__popper--shown\": e.shown,\n \"v-popper__popper--hidden\": !e.shown,\n \"v-popper__popper--show-from\": e.classes.showFrom,\n \"v-popper__popper--show-to\": e.classes.showTo,\n \"v-popper__popper--hide-from\": e.classes.hideFrom,\n \"v-popper__popper--hide-to\": e.classes.hideTo,\n \"v-popper__popper--skip-transition\": e.skipTransition,\n \"v-popper__popper--arrow-overflow\": e.result && e.result.arrow.overflow,\n \"v-popper__popper--no-positioning\": !e.result\n }\n ]]),\n style: W(e.result ? {\n position: e.result.strategy,\n transform: `translate3d(${Math.round(e.result.x)}px,${Math.round(e.result.y)}px,0)`\n } : void 0),\n \"aria-hidden\": e.shown ? \"false\" : \"true\",\n tabindex: e.autoHide ? 0 : void 0,\n \"data-popper-placement\": e.result ? e.result.placement : void 0,\n onKeyup: t[2] || (t[2] = je((a) => e.autoHide && e.$emit(\"hide\"), [\"esc\"]))\n }, [\n w(\"div\", {\n class: \"v-popper__backdrop\",\n onClick: t[0] || (t[0] = (a) => e.autoHide && e.$emit(\"hide\"))\n }),\n w(\"div\", {\n class: \"v-popper__wrapper\",\n style: W(e.result ? {\n transformOrigin: e.result.transformOrigin\n } : void 0)\n }, [\n w(\"div\", ht, [\n e.mounted ? (f(), T(Ve, { key: 0 }, [\n w(\"div\", null, [\n A(e.$slots, \"default\")\n ]),\n e.handleResize ? (f(), M(p, {\n key: 0,\n onNotify: t[1] || (t[1] = (a) => e.$emit(\"resize\", a))\n })) : se(\"\", !0)\n ], 64)) : se(\"\", !0)\n ], 512),\n w(\"div\", {\n ref: \"arrow\",\n class: \"v-popper__arrow-container\",\n style: W(e.result ? {\n left: e.toPx(e.result.arrow.x),\n top: e.toPx(e.result.arrow.y)\n } : void 0)\n }, ct, 4)\n ], 4)\n ], 46, lt);\n}\nconst ee = /* @__PURE__ */ B(dt, [[\"render\", mt]]), te = {\n methods: {\n show(...e) {\n return this.$refs.popper.show(...e);\n },\n hide(...e) {\n return this.$refs.popper.hide(...e);\n },\n dispose(...e) {\n return this.$refs.popper.dispose(...e);\n },\n onResize(...e) {\n return this.$refs.popper.onResize(...e);\n }\n }\n};\nlet K = function() {\n};\ntypeof window < \"u\" && (K = window.Element);\nconst gt = O({\n name: \"VPopperWrapper\",\n components: {\n Popper: st,\n PopperContent: ee\n },\n mixins: [\n te,\n Z(\"finalTheme\")\n ],\n props: {\n theme: {\n type: String,\n default: null\n },\n referenceNode: {\n type: Function,\n default: null\n },\n shown: {\n type: Boolean,\n default: !1\n },\n showGroup: {\n type: String,\n default: null\n },\n // eslint-disable-next-line vue/require-prop-types\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: void 0\n },\n positioningDisabled: {\n type: Boolean,\n default: void 0\n },\n placement: {\n type: String,\n default: void 0\n },\n delay: {\n type: [String, Number, Object],\n default: void 0\n },\n distance: {\n type: [Number, String],\n default: void 0\n },\n skidding: {\n type: [Number, String],\n default: void 0\n },\n triggers: {\n type: Array,\n default: void 0\n },\n showTriggers: {\n type: [Array, Function],\n default: void 0\n },\n hideTriggers: {\n type: [Array, Function],\n default: void 0\n },\n popperTriggers: {\n type: Array,\n default: void 0\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: void 0\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: void 0\n },\n container: {\n type: [String, Object, K, Boolean],\n default: void 0\n },\n boundary: {\n type: [String, K],\n default: void 0\n },\n strategy: {\n type: String,\n default: void 0\n },\n autoHide: {\n type: [Boolean, Function],\n default: void 0\n },\n handleResize: {\n type: Boolean,\n default: void 0\n },\n instantMove: {\n type: Boolean,\n default: void 0\n },\n eagerMount: {\n type: Boolean,\n default: void 0\n },\n popperClass: {\n type: [String, Array, Object],\n default: void 0\n },\n computeTransformOrigin: {\n type: Boolean,\n default: void 0\n },\n /**\n * @deprecated\n */\n autoMinSize: {\n type: Boolean,\n default: void 0\n },\n autoSize: {\n type: [Boolean, String],\n default: void 0\n },\n /**\n * @deprecated\n */\n autoMaxSize: {\n type: Boolean,\n default: void 0\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: void 0\n },\n preventOverflow: {\n type: Boolean,\n default: void 0\n },\n overflowPadding: {\n type: [Number, String],\n default: void 0\n },\n arrowPadding: {\n type: [Number, String],\n default: void 0\n },\n arrowOverflow: {\n type: Boolean,\n default: void 0\n },\n flip: {\n type: Boolean,\n default: void 0\n },\n shift: {\n type: Boolean,\n default: void 0\n },\n shiftCrossAxis: {\n type: Boolean,\n default: void 0\n },\n noAutoFocus: {\n type: Boolean,\n default: void 0\n },\n disposeTimeout: {\n type: Number,\n default: void 0\n }\n },\n emits: {\n show: () => !0,\n hide: () => !0,\n \"update:shown\": (e) => !0,\n \"apply-show\": () => !0,\n \"apply-hide\": () => !0,\n \"close-group\": () => !0,\n \"close-directive\": () => !0,\n \"auto-hide\": () => !0,\n resize: () => !0\n },\n computed: {\n finalTheme() {\n return this.theme ?? this.$options.vPopperTheme;\n }\n },\n methods: {\n getTargetNodes() {\n return Array.from(this.$el.children).filter((e) => e !== this.$refs.popperContent.$el);\n }\n }\n});\nfunction wt(e, t, o, i, s, r) {\n const p = P(\"PopperContent\"), a = P(\"Popper\");\n return f(), M(a, $e({ ref: \"popper\" }, e.$props, {\n theme: e.finalTheme,\n \"target-nodes\": e.getTargetNodes,\n \"popper-node\": () => e.$refs.popperContent.$el,\n class: [\n e.themeClass\n ],\n onShow: t[0] || (t[0] = () => e.$emit(\"show\")),\n onHide: t[1] || (t[1] = () => e.$emit(\"hide\")),\n \"onUpdate:shown\": t[2] || (t[2] = (l) => e.$emit(\"update:shown\", l)),\n onApplyShow: t[3] || (t[3] = () => e.$emit(\"apply-show\")),\n onApplyHide: t[4] || (t[4] = () => e.$emit(\"apply-hide\")),\n onCloseGroup: t[5] || (t[5] = () => e.$emit(\"close-group\")),\n onCloseDirective: t[6] || (t[6] = () => e.$emit(\"close-directive\")),\n onAutoHide: t[7] || (t[7] = () => e.$emit(\"auto-hide\")),\n onResize: t[8] || (t[8] = () => e.$emit(\"resize\"))\n }), {\n default: N(({\n popperId: l,\n isShown: u,\n shouldMountContent: L,\n skipTransition: D,\n autoHide: I,\n show: F,\n hide: v,\n handleResize: R,\n onResize: j,\n classes: V,\n result: Ee\n }) => [\n A(e.$slots, \"default\", {\n shown: u,\n show: F,\n hide: v\n }),\n ve(p, {\n ref: \"popperContent\",\n \"popper-id\": l,\n theme: e.finalTheme,\n shown: u,\n mounted: L,\n \"skip-transition\": D,\n \"auto-hide\": I,\n \"handle-resize\": R,\n classes: V,\n result: Ee,\n onHide: v,\n onResize: j\n }, {\n default: N(() => [\n A(e.$slots, \"popper\", {\n shown: u,\n hide: v\n })\n ]),\n _: 2\n }, 1032, [\"popper-id\", \"theme\", \"shown\", \"mounted\", \"skip-transition\", \"auto-hide\", \"handle-resize\", \"classes\", \"result\", \"onHide\", \"onResize\"])\n ]),\n _: 3\n }, 16, [\"theme\", \"target-nodes\", \"popper-node\", \"class\"]);\n}\nconst k = /* @__PURE__ */ B(gt, [[\"render\", wt]]), Se = {\n ...k,\n name: \"VDropdown\",\n vPopperTheme: \"dropdown\"\n}, be = {\n ...k,\n name: \"VMenu\",\n vPopperTheme: \"menu\"\n}, Ce = {\n ...k,\n name: \"VTooltip\",\n vPopperTheme: \"tooltip\"\n}, $t = O({\n name: \"VTooltipDirective\",\n components: {\n Popper: Q(),\n PopperContent: ee\n },\n mixins: [\n te\n ],\n inheritAttrs: !1,\n props: {\n theme: {\n type: String,\n default: \"tooltip\"\n },\n html: {\n type: Boolean,\n default: (e) => S(e.theme, \"html\")\n },\n content: {\n type: [String, Number, Function],\n default: null\n },\n loadingContent: {\n type: String,\n default: (e) => S(e.theme, \"loadingContent\")\n },\n targetNodes: {\n type: Function,\n required: !0\n }\n },\n data() {\n return {\n asyncContent: null\n };\n },\n computed: {\n isContentAsync() {\n return typeof this.content == \"function\";\n },\n loading() {\n return this.isContentAsync && this.asyncContent == null;\n },\n finalContent() {\n return this.isContentAsync ? this.loading ? this.loadingContent : this.asyncContent : this.content;\n }\n },\n watch: {\n content: {\n handler() {\n this.fetchContent(!0);\n },\n immediate: !0\n },\n async finalContent() {\n await this.$nextTick(), this.$refs.popper.onResize();\n }\n },\n created() {\n this.$_fetchId = 0;\n },\n methods: {\n fetchContent(e) {\n if (typeof this.content == \"function\" && this.$_isShown && (e || !this.$_loading && this.asyncContent == null)) {\n this.asyncContent = null, this.$_loading = !0;\n const t = ++this.$_fetchId, o = this.content(this);\n o.then ? o.then((i) => this.onResult(t, i)) : this.onResult(t, o);\n }\n },\n onResult(e, t) {\n e === this.$_fetchId && (this.$_loading = !1, this.asyncContent = t);\n },\n onShow() {\n this.$_isShown = !0, this.fetchContent();\n },\n onHide() {\n this.$_isShown = !1;\n }\n }\n}), vt = [\"innerHTML\"], yt = [\"textContent\"];\nfunction _t(e, t, o, i, s, r) {\n const p = P(\"PopperContent\"), a = P(\"Popper\");\n return f(), M(a, $e({ ref: \"popper\" }, e.$attrs, {\n theme: e.theme,\n \"target-nodes\": e.targetNodes,\n \"popper-node\": () => e.$refs.popperContent.$el,\n onApplyShow: e.onShow,\n onApplyHide: e.onHide\n }), {\n default: N(({\n popperId: l,\n isShown: u,\n shouldMountContent: L,\n skipTransition: D,\n autoHide: I,\n hide: F,\n handleResize: v,\n onResize: R,\n classes: j,\n result: V\n }) => [\n ve(p, {\n ref: \"popperContent\",\n class: J({\n \"v-popper--tooltip-loading\": e.loading\n }),\n \"popper-id\": l,\n theme: e.theme,\n shown: u,\n mounted: L,\n \"skip-transition\": D,\n \"auto-hide\": I,\n \"handle-resize\": v,\n classes: j,\n result: V,\n onHide: F,\n onResize: R\n }, {\n default: N(() => [\n e.html ? (f(), T(\"div\", {\n key: 0,\n innerHTML: e.finalContent\n }, null, 8, vt)) : (f(), T(\"div\", {\n key: 1,\n textContent: We(e.finalContent)\n }, null, 8, yt))\n ]),\n _: 2\n }, 1032, [\"class\", \"popper-id\", \"theme\", \"shown\", \"mounted\", \"skip-transition\", \"auto-hide\", \"handle-resize\", \"classes\", \"result\", \"onHide\", \"onResize\"])\n ]),\n _: 1\n }, 16, [\"theme\", \"target-nodes\", \"popper-node\", \"onApplyShow\", \"onApplyHide\"]);\n}\nconst ze = /* @__PURE__ */ B($t, [[\"render\", _t]]), Ae = \"v-popper--has-tooltip\";\nfunction Tt(e, t) {\n let o = e.placement;\n if (!o && t)\n for (const i of Te)\n t[i] && (o = i);\n return o || (o = S(e.theme || \"tooltip\", \"placement\")), o;\n}\nfunction Ne(e, t, o) {\n let i;\n const s = typeof t;\n return s === \"string\" ? i = { content: t } : t && s === \"object\" ? i = t : i = { content: !1 }, i.placement = Tt(i, o), i.targetNodes = () => [e], i.referenceNode = () => e, i;\n}\nlet x, b, Pt = 0;\nfunction St() {\n if (x)\n return;\n b = U([]), x = Ge({\n name: \"VTooltipDirectiveApp\",\n setup() {\n return {\n directives: b\n };\n },\n render() {\n return this.directives.map((t) => qe(ze, {\n ...t.options,\n shown: t.shown || t.options.shown,\n key: t.id\n }));\n },\n devtools: {\n hide: !0\n }\n });\n const e = document.createElement(\"div\");\n document.body.appendChild(e), x.mount(e);\n}\nfunction bt(e, t, o) {\n St();\n const i = U(Ne(e, t, o)), s = U(!1), r = {\n id: Pt++,\n options: i,\n shown: s\n };\n return b.value.push(r), e.classList && e.classList.add(Ae), e.$_popper = {\n options: i,\n item: r,\n show() {\n s.value = !0;\n },\n hide() {\n s.value = !1;\n }\n };\n}\nfunction He(e) {\n if (e.$_popper) {\n const t = b.value.indexOf(e.$_popper.item);\n t !== -1 && b.value.splice(t, 1), delete e.$_popper, delete e.$_popperOldShown, delete e.$_popperMountTarget;\n }\n e.classList && e.classList.remove(Ae);\n}\nfunction me(e, { value: t, modifiers: o }) {\n const i = Ne(e, t, o);\n if (!i.content || S(i.theme || \"tooltip\", \"disabled\"))\n He(e);\n else {\n let s;\n e.$_popper ? (s = e.$_popper, s.options.value = i) : s = bt(e, t, o), typeof t.shown < \"u\" && t.shown !== e.$_popperOldShown && (e.$_popperOldShown = t.shown, t.shown ? s.show() : s.hide());\n }\n}\nconst oe = {\n beforeMount: me,\n updated: me,\n beforeUnmount(e) {\n He(e);\n }\n};\nfunction ge(e) {\n e.addEventListener(\"mousedown\", H), e.addEventListener(\"click\", H), e.addEventListener(\"touchstart\", Oe, $ ? {\n passive: !0\n } : !1);\n}\nfunction we(e) {\n e.removeEventListener(\"mousedown\", H), e.removeEventListener(\"click\", H), e.removeEventListener(\"touchstart\", Oe), e.removeEventListener(\"touchend\", Me), e.removeEventListener(\"touchcancel\", Be);\n}\nfunction H(e) {\n const t = e.currentTarget;\n e.closePopover = !t.$_vclosepopover_touch, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all;\n}\nfunction Oe(e) {\n if (e.changedTouches.length === 1) {\n const t = e.currentTarget;\n t.$_vclosepopover_touch = !0;\n const o = e.changedTouches[0];\n t.$_vclosepopover_touchPoint = o, t.addEventListener(\"touchend\", Me), t.addEventListener(\"touchcancel\", Be);\n }\n}\nfunction Me(e) {\n const t = e.currentTarget;\n if (t.$_vclosepopover_touch = !1, e.changedTouches.length === 1) {\n const o = e.changedTouches[0], i = t.$_vclosepopover_touchPoint;\n e.closePopover = Math.abs(o.screenY - i.screenY) < 20 && Math.abs(o.screenX - i.screenX) < 20, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all;\n }\n}\nfunction Be(e) {\n const t = e.currentTarget;\n t.$_vclosepopover_touch = !1;\n}\nconst ie = {\n beforeMount(e, { value: t, modifiers: o }) {\n e.$_closePopoverModifiers = o, (typeof t > \"u\" || t) && ge(e);\n },\n updated(e, { value: t, oldValue: o, modifiers: i }) {\n e.$_closePopoverModifiers = i, t !== o && (typeof t > \"u\" || t ? ge(e) : we(e));\n },\n beforeUnmount(e) {\n we(e);\n }\n}, Ht = h, Ot = oe, Mt = oe, Bt = ie, Et = ie, kt = Se, Lt = be, Dt = Q, It = ee, Ft = te, Rt = k, jt = Z, Vt = Ce, Wt = ze;\nfunction Ct(e, t = {}) {\n e.$_vTooltipInstalled || (e.$_vTooltipInstalled = !0, ye(h, t), e.directive(\"tooltip\", oe), e.directive(\"close-popper\", ie), e.component(\"VTooltip\", Ce), e.component(\"VDropdown\", Se), e.component(\"VMenu\", be));\n}\nconst Gt = {\n // eslint-disable-next-line no-undef\n version: \"5.2.2\",\n install: Ct,\n options: h\n};\nexport {\n kt as Dropdown,\n ae as HIDE_EVENT_MAP,\n Lt as Menu,\n Dt as Popper,\n It as PopperContent,\n Ft as PopperMethods,\n Rt as PopperWrapper,\n pe as SHOW_EVENT_MAP,\n jt as ThemeClass,\n Vt as Tooltip,\n Wt as TooltipDirective,\n Bt as VClosePopper,\n Ot as VTooltip,\n bt as createTooltip,\n Gt as default,\n He as destroyTooltip,\n Nt as hideAllPoppers,\n Ct as install,\n Ht as options,\n Te as placements,\n tt as recomputeAllPoppers,\n Et as vClosePopper,\n Mt as vTooltip\n};\n","<script lang=\"ts\" setup></script>\n\n<template>\n <div class=\"my-1 h-[1px] w-full bg-gray-100\"></div>\n</template>\n","<script lang=\"ts\" setup>\nimport { inject } from \"vue\";\nconst props = withDefaults(\n defineProps<{\n selected?: boolean;\n disabled?: boolean;\n type?: \"default\" | \"danger\";\n }>(),\n {\n selected: false,\n disabled: false,\n type: \"default\",\n }\n);\n\nconst emit = defineEmits<{\n (event: \"click\", e: MouseEvent): void;\n}>();\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst dropdown = inject<{ parentPopper: any }>(\"__floating-vue__popper\");\n\nfunction onClick(e: MouseEvent) {\n if (props.disabled) {\n return;\n }\n\n dropdown?.parentPopper?.hide?.();\n\n emit(\"click\", e);\n}\n</script>\n\n<template>\n <div\n class=\"dropdown-item-wrapper\"\n :class=\"[\n `dropdown-item-wrapper--${type}${selected ? '--selected' : ''}`,\n { 'dropdown-item-wrapper--disabled': disabled },\n ]\"\n role=\"menuitem\"\n tabindex=\"-1\"\n @click=\"onClick\"\n >\n <div class=\"flex items-center gap-3\">\n <slot name=\"prefix-icon\" />\n\n <slot />\n </div>\n\n <slot name=\"suffix-icon\"></slot>\n </div>\n</template>\n\n<style lang=\"scss\">\n.dropdown-item-wrapper {\n @apply flex w-full min-w-52 cursor-pointer items-center justify-between gap-1 rounded px-4 py-2 text-sm transition-colors;\n\n &--default {\n @apply text-gray-700 hover:bg-gray-100 hover:text-gray-900;\n\n &--selected {\n @apply bg-gray-100 text-gray-900;\n }\n }\n\n &--danger {\n @apply text-red-500 hover:bg-red-50 hover:text-red-700;\n\n &--selected {\n @apply bg-red-50 text-red-700;\n }\n }\n\n &--disabled {\n @apply cursor-not-allowed opacity-70;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { inject } from \"vue\";\nconst props = withDefaults(\n defineProps<{\n selected?: boolean;\n disabled?: boolean;\n type?: \"default\" | \"danger\";\n }>(),\n {\n selected: false,\n disabled: false,\n type: \"default\",\n }\n);\n\nconst emit = defineEmits<{\n (event: \"click\", e: MouseEvent): void;\n}>();\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst dropdown = inject<{ parentPopper: any }>(\"__floating-vue__popper\");\n\nfunction onClick(e: MouseEvent) {\n if (props.disabled) {\n return;\n }\n\n dropdown?.parentPopper?.hide?.();\n\n emit(\"click\", e);\n}\n</script>\n\n<template>\n <div\n class=\"dropdown-item-wrapper\"\n :class=\"[\n `dropdown-item-wrapper--${type}${selected ? '--selected' : ''}`,\n { 'dropdown-item-wrapper--disabled': disabled },\n ]\"\n role=\"menuitem\"\n tabindex=\"-1\"\n @click=\"onClick\"\n >\n <div class=\"flex items-center gap-3\">\n <slot name=\"prefix-icon\" />\n\n <slot />\n </div>\n\n <slot name=\"suffix-icon\"></slot>\n </div>\n</template>\n\n<style lang=\"scss\">\n.dropdown-item-wrapper {\n @apply flex w-full min-w-52 cursor-pointer items-center justify-between gap-1 rounded px-4 py-2 text-sm transition-colors;\n\n &--default {\n @apply text-gray-700 hover:bg-gray-100 hover:text-gray-900;\n\n &--selected {\n @apply bg-gray-100 text-gray-900;\n }\n }\n\n &--danger {\n @apply text-red-500 hover:bg-red-50 hover:text-red-700;\n\n &--selected {\n @apply bg-red-50 text-red-700;\n }\n }\n\n &--disabled {\n @apply cursor-not-allowed opacity-70;\n }\n}\n</style>\n","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20558.095%20475.798'%3e%3cg%3e%3cpath%20d='M555.536,328.049c-15.243-76.866-104.547-138.3-121.965-218.4C401.914,7.74,297.57-8.372,229.765,35.887c-107.437,70.129,7.176,87.532-203.473,253.453-52.014,40.969-35.44,221.817,128.193,180.313,88.06-22.336,114.83-25.47,154.44-29.148C408.763,431.236,581.123,457.079,555.536,328.049Z'%20fill='%23367cff'%20opacity='0.1'%3e%3c/path%3e%3cg%3e%3cg%3e%3cpolygon%20points='436.267%20347.314%20281.957%20428.813%20127.88%20347.314%20127.88%20224.244%20436.267%20224.244%20436.267%20347.314'%20fill='%23fff'%3e%3c/polygon%3e%3cpath%20d='M281.957,430.063a1.237,1.237,0,0,1-.585-.146L127.3,348.418a1.249,1.249,0,0,1-.666-1.1V224.244a1.25,1.25,0,0,1,1.25-1.25H436.267a1.25,1.25,0,0,1,1.25,1.25v123.07a1.249,1.249,0,0,1-.666,1.1l-154.31,81.5A1.244,1.244,0,0,1,281.957,430.063Zm-152.827-83.5L281.957,427.4l153.06-80.839V225.494H129.13Zm307.137.753h0Z'%20fill='%23262626'%3e%3c/path%3e%3c/g%3e%3cg%3e%3cpolygon%20points='436.267%20197.835%20281.957%20116.336%20351.298%2082.913%20505.608%20164.413%20436.267%20197.835'%20fill='%23fff'%3e%3c/polygon%3e%3cpath%20d='M436.267,199.085a1.255,1.255,0,0,1-.584-.144l-154.31-81.5a1.251,1.251,0,0,1,.041-2.232l69.341-33.423a1.244,1.244,0,0,1,1.127.021l154.31,81.5a1.25,1.25,0,0,1-.041,2.231L436.81,198.961A1.246,1.246,0,0,1,436.267,199.085Zm-151.537-82.7,151.563,80.048,66.542-32.073L351.272,84.314Z'%20fill='%23262626'%3e%3c/path%3e%3c/g%3e%3cg%3e%3cpolygon%20points='127.88%20197.835%20282.19%20116.336%20212.849%2082.913%2058.539%20164.413%20127.88%20197.835'%20fill='%23fff'%3e%3c/polygon%3e%3cpath%20d='M127.88,199.085a1.249,1.249,0,0,1-.543-.124L58,165.538a1.25,1.25,0,0,1-.041-2.231l154.31-81.5a1.244,1.244,0,0,1,1.127-.021l69.341,33.423a1.251,1.251,0,0,1,.041,2.232l-154.31,81.5A1.252,1.252,0,0,1,127.88,199.085ZM61.312,164.362l66.542,32.073,151.563-80.048L212.875,84.314Z'%20fill='%23262626'%3e%3c/path%3e%3c/g%3e%3cg%3e%3cpolygon%20points='127.88%20197.835%20282.19%20279.335%20202.849%20322.757%2048.539%20241.258%20127.88%20197.835'%20fill='%23fff'%3e%3c/polygon%3e%3cpath%20d='M202.849,324.007a1.244,1.244,0,0,1-.584-.145l-154.31-81.5a1.25,1.25,0,0,1-.016-2.2l79.341-43.423a1.246,1.246,0,0,1,1.184-.008l154.31,81.5a1.25,1.25,0,0,1,.016,2.2l-79.341,43.423A1.251,1.251,0,0,1,202.849,324.007ZM51.179,241.238l151.659,80.1,76.713-41.984-151.66-80.1Z'%20fill='%23262626'%3e%3c/path%3e%3c/g%3e%3cg%3e%3cpolygon%20points='436.267%20197.835%20281.957%20279.335%20361.298%20322.757%20515.608%20241.258%20436.267%20197.835'%20fill='%23fff'%3e%3c/polygon%3e%3cpath%20d='M361.3,324.007a1.254,1.254,0,0,1-.6-.153l-79.341-43.423a1.25,1.25,0,0,1,.016-2.2l154.31-81.5a1.246,1.246,0,0,1,1.184.008l79.341,43.423a1.25,1.25,0,0,1-.016,2.2l-154.31,81.5A1.244,1.244,0,0,1,361.3,324.007Zm-76.7-44.653,76.712,41.984,151.66-80.1-76.713-41.984Z'%20fill='%23262626'%3e%3c/path%3e%3c/g%3e%3cpolygon%20points='282.19%20116.336%20127.88%20197.835%20281.957%20279.335%20436.267%20197.835%20282.19%20116.336'%20fill='%23262626'%3e%3c/polygon%3e%3crect%20x='280.707'%20y='279.334'%20width='2.5'%20height='149.479'%20fill='%23262626'%3e%3c/rect%3e%3c/g%3e%3cg%3e%3cpath%20d='M195.5,190.436a.99.99,0,0,1-.577-.185,1,1,0,0,1-.238-1.394c.185-.261,18.258-26.389-1.918-50.209a38.006,38.006,0,0,0-29.095-13.516H163.4c1.916,6.656,1.574,12.574-1.139,17.114a12.645,12.645,0,0,1-11.68,6.42,10.041,10.041,0,0,1-8.679-6.752c-2.219-5.788.1-11.4,6.212-15.017a29.5,29.5,0,0,1,12.589-3.621,53.3,53.3,0,0,0-5.566-10.821c-7.285-11.126-20.562-18.828-36.428-21.131-13.446-1.951-26.332.347-32.833,5.853a1,1,0,0,1-1.292-1.527c6.918-5.859,20.425-8.336,34.412-6.3,16.433,2.386,30.215,10.409,37.815,22.014a54.285,54.285,0,0,1,5.968,11.816,39.976,39.976,0,0,1,31.509,14.18c21.193,25.019,2.217,52.385,2.023,52.659A1,1,0,0,1,195.5,190.436Zm-34.148-65.231a27.826,27.826,0,0,0-12.215,3.414c-5.276,3.122-7.23,7.708-5.363,12.58a8.108,8.108,0,0,0,6.984,5.476,10.669,10.669,0,0,0,9.791-5.454C163.039,137.051,163.267,131.508,161.349,125.205Z'%20fill='%23292a2e'%3e%3c/path%3e%3cg%3e%3cpath%20d='M68.617,113.3a6.809,6.809,0,1,1,.684-.246A6.652,6.652,0,0,1,68.617,113.3Zm-3.325-11.112a4.689,4.689,0,0,0-.477.172,4.791,4.791,0,1,0,.477-.172Z'%20fill='%23292a2e'%3e%3c/path%3e%3cpath%20d='M68.605,97.63a6.8,6.8,0,0,1-8.216-3.885h0a6.8,6.8,0,1,1,8.9,3.64A6.964,6.964,0,0,1,68.605,97.63ZM65.284,86.517a4.889,4.889,0,0,0-.483.173,4.8,4.8,0,0,0-2.568,6.281h0a4.8,4.8,0,1,0,3.051-6.455Z'%20fill='%23292a2e'%3e%3c/path%3e%3cellipse%20cx='66.664'%20cy='98.763'%20rx='8.892'%20ry='5.939'%20fill='%23fff'%3e%3c/ellipse%3e%3cpath%20d='M70.6,105.139a13.754,13.754,0,0,1-3.927.564c-5.548,0-9.9-3.04-9.9-6.931s4.339-6.942,9.885-6.948a12.424,12.424,0,0,1,6.845,1.9,5.676,5.676,0,0,1,.009,10.063A10.872,10.872,0,0,1,70.6,105.139ZM63.338,94.3c-2.672.8-4.566,2.527-4.565,4.467,0,2.677,3.617,4.936,7.9,4.932a10.417,10.417,0,0,0,5.732-1.576,3.706,3.706,0,0,0-.006-6.735,10.4,10.4,0,0,0-5.734-1.566A11.607,11.607,0,0,0,63.338,94.3Z'%20fill='%23292a2e'%3e%3c/path%3e%3cpolygon%20points='68.845%20104.521%2068.635%2092.971%2065.763%2092.855%2065.562%20104.656%2068.845%20104.521'%20fill='%23292a2e'%3e%3c/polygon%3e%3ccircle%20cx='54.867'%20cy='100.358'%20r='0.918'%20fill='%23292a2e'%3e%3c/circle%3e%3ccircle%20cx='55.584'%20cy='95.446'%20r='0.918'%20fill='%23292a2e'%3e%3c/circle%3e%3c/g%3e%3c/g%3e%3cg%3e%3cpath%20d='M352.625,132.766a1,1,0,0,1-.956-.707,99.236,99.236,0,0,1-2.606-38.021c2.585-18.6,12.843-43.011,47.03-53.7a88.364,88.364,0,0,1,14.748-3.381c1.611-10.061,7.739-20.975,21.444-28.505,32.562-17.892,54.557-1.839,54.775-1.675a1,1,0,0,1-1.2,1.6c-.208-.156-21.228-15.417-52.611,1.829-12.806,7.037-18.668,17.137-20.335,26.513,15.079-1.485,22.3,3.545,25.541,7.344A15.488,15.488,0,0,1,440.769,61a12.094,12.094,0,0,1-11.835,6.909c-8.421-.494-15.39-7.578-17.752-18.048a34.03,34.03,0,0,1-.614-10.8,85.533,85.533,0,0,0-13.877,3.191c-26.645,8.331-42,25.85-45.648,52.067a96.986,96.986,0,0,0,2.538,37.16,1,1,0,0,1-.956,1.293Zm59.982-93.955a32.014,32.014,0,0,0,.526,10.609c2.161,9.578,8.409,16.051,15.918,16.492a10.178,10.178,0,0,0,9.928-5.8,13.494,13.494,0,0,0-2.048-14.749C432.255,39.876,423.722,37.66,412.607,38.811Z'%20fill='%23292a2e'%3e%3c/path%3e%3cg%3e%3cpath%20d='M510.354,16.884a7.142,7.142,0,1,1,6.994-8.659h0a7.156,7.156,0,0,1-6.994,8.659ZM510.369,4.6a5.141,5.141,0,1,0,5.024,4.051A5.111,5.111,0,0,0,510.369,4.6Z'%20fill='%23292a2e'%3e%3c/path%3e%3cpath%20d='M507.343,33.205a7.162,7.162,0,1,1,1.529-.165A7.171,7.171,0,0,1,507.343,33.205Zm.025-12.285a5.164,5.164,0,0,0-1.1.119,5.112,5.112,0,1,0,1.1-.119Z'%20fill='%23292a2e'%3e%3c/path%3e%3cellipse%20cx='508.827'%20cy='18.098'%20rx='6.289'%20ry='9.416'%20transform='translate(398.692%20515.192)%20rotate(-79.545)'%20fill='%23fff'%3e%3c/ellipse%3e%3cpath%20d='M510.2,25.516a14.966,14.966,0,0,1-2.7-.25,13.1,13.1,0,0,1-6.729-3.286,6.419,6.419,0,0,1-2.191-5.772,6.422,6.422,0,0,1,4.107-4.61,13.946,13.946,0,0,1,14.187,2.618,6.419,6.419,0,0,1,2.191,5.772,6.422,6.422,0,0,1-4.107,4.61A12.088,12.088,0,0,1,510.2,25.516Zm-2.762-12.838a10.072,10.072,0,0,0-3.961.757,4.506,4.506,0,0,0-2.93,3.136,4.506,4.506,0,0,0,1.618,3.975,11.966,11.966,0,0,0,12,2.215,4.506,4.506,0,0,0,2.93-3.136h0a4.5,4.5,0,0,0-1.618-3.975,11.084,11.084,0,0,0-5.7-2.753A12.957,12.957,0,0,0,507.442,12.678Z'%20fill='%23292a2e'%3e%3c/path%3e%3cpolygon%20points='507.668%2011.682%20505.657%2023.748%20508.624%2024.424%20511.112%2012.175%20507.668%2011.682'%20fill='%23292a2e'%3e%3c/polygon%3e%3ccircle%20cx='519.723'%20cy='23.691'%20r='0.972'%20fill='%23292a2e'%3e%3c/circle%3e%3ccircle%20cx='521.417'%20cy='18.715'%20r='0.972'%20fill='%23292a2e'%3e%3c/circle%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e\"","<script lang=\"ts\" setup>\nimport Empty from \"./Empty.svg\";\n\ndefineProps<{\n title?: string;\n message?: string;\n image?: string;\n}>();\n</script>\n<template>\n <div class=\"empty-wrapper\">\n <div class=\"empty-image h-32 w-32\">\n <slot name=\"image\">\n <img :src=\"image || Empty\" alt=\"Empty\" />\n </slot>\n </div>\n <div class=\"empty-title\">{{ title }}</div>\n <div class=\"empty-message\">\n <slot name=\"message\">\n {{ message }}\n </slot>\n </div>\n <div class=\"empty-actions\">\n <slot name=\"actions\"></slot>\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.empty-wrapper {\n @apply my-10 flex flex-col items-center justify-center px-10;\n\n .empty-title {\n @apply text-center text-sm font-medium text-gray-900;\n }\n\n .empty-message {\n @apply mt-1.5 text-center text-xs text-gray-500;\n }\n\n .empty-actions {\n @apply mt-5 flex flex-row;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport Empty from \"./Empty.svg\";\n\ndefineProps<{\n title?: string;\n message?: string;\n image?: string;\n}>();\n</script>\n<template>\n <div class=\"empty-wrapper\">\n <div class=\"empty-image h-32 w-32\">\n <slot name=\"image\">\n <img :src=\"image || Empty\" alt=\"Empty\" />\n </slot>\n </div>\n <div class=\"empty-title\">{{ title }}</div>\n <div class=\"empty-message\">\n <slot name=\"message\">\n {{ message }}\n </slot>\n </div>\n <div class=\"empty-actions\">\n <slot name=\"actions\"></slot>\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.empty-wrapper {\n @apply my-10 flex flex-col items-center justify-center px-10;\n\n .empty-title {\n @apply text-center text-sm font-medium text-gray-900;\n }\n\n .empty-message {\n @apply mt-1.5 text-center text-xs text-gray-500;\n }\n\n .empty-actions {\n @apply mt-5 flex flex-row;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport { IconMore } from \"../../icons/icons\";\nimport { VDropdown } from \"../dropdown\";\n\nconst props = withDefaults(\n defineProps<{\n isSelected?: boolean;\n }>(),\n {\n isSelected: false,\n }\n);\n\nconst classes = computed(() => {\n const result = [];\n if (props.isSelected) {\n result.push(\"entity-selected\");\n }\n return result;\n});\n</script>\n\n<template>\n <tr :class=\"classes\" v-bind=\"$attrs\" class=\"entity-wrapper group\">\n <td class=\"entity-start-wrapper\">\n <slot name=\"prepend\" />\n <div v-show=\"isSelected\" class=\"entity-selected-indicator\"></div>\n <div class=\"entity-start\">\n <div v-if=\"$slots.checkbox\" class=\"entity-checkbox\">\n <slot name=\"checkbox\" />\n </div>\n <slot name=\"start\" />\n </div>\n </td>\n <td class=\"entity-end-wrapper\">\n <div class=\"entity-end\">\n <slot name=\"end\" />\n <div v-if=\"$slots.dropdownItems\" class=\"entity-dropdown\">\n <!-- @vue-ignore -->\n <VDropdown :dispose-timeout=\"null\">\n <div\n class=\"entity-dropdown-trigger group-hover:bg-gray-200/60\"\n :class=\"{ '!bg-gray-300/60': isSelected }\"\n @click.stop\n >\n <IconMore />\n </div>\n <template #popper>\n <slot name=\"dropdownItems\"></slot>\n </template>\n </VDropdown>\n </div>\n </div>\n </td>\n </tr>\n <tr v-if=\"$slots.footer\">\n <td colspan=\"2\">\n <slot name=\"footer\" />\n </td>\n </tr>\n</template>\n<style lang=\"scss\">\n.entity-wrapper {\n @apply relative w-full transition-all hover:bg-gray-50;\n\n &.entity-selected {\n @apply bg-gray-100;\n }\n\n .entity-selected-indicator {\n @apply absolute inset-y-0 left-0 w-0.5 bg-primary;\n }\n\n .entity-body {\n @apply relative flex w-full flex-row items-center;\n }\n\n .entity-checkbox {\n @apply hidden sm:inline-flex;\n }\n\n .entity-start-wrapper,\n .entity-end-wrapper {\n @apply w-auto px-4 py-3 align-middle;\n }\n\n .entity-start {\n @apply flex items-center gap-4;\n }\n\n .entity-end {\n @apply flex items-center justify-end gap-6;\n }\n\n .entity-dropdown {\n @apply inline-flex items-center;\n }\n\n .entity-dropdown-trigger {\n @apply cursor-pointer rounded p-1 transition-all hover:text-blue-600;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport { IconMore } from \"../../icons/icons\";\nimport { VDropdown } from \"../dropdown\";\n\nconst props = withDefaults(\n defineProps<{\n isSelected?: boolean;\n }>(),\n {\n isSelected: false,\n }\n);\n\nconst classes = computed(() => {\n const result = [];\n if (props.isSelected) {\n result.push(\"entity-selected\");\n }\n return result;\n});\n</script>\n\n<template>\n <tr :class=\"classes\" v-bind=\"$attrs\" class=\"entity-wrapper group\">\n <td class=\"entity-start-wrapper\">\n <slot name=\"prepend\" />\n <div v-show=\"isSelected\" class=\"entity-selected-indicator\"></div>\n <div class=\"entity-start\">\n <div v-if=\"$slots.checkbox\" class=\"entity-checkbox\">\n <slot name=\"checkbox\" />\n </div>\n <slot name=\"start\" />\n </div>\n </td>\n <td class=\"entity-end-wrapper\">\n <div class=\"entity-end\">\n <slot name=\"end\" />\n <div v-if=\"$slots.dropdownItems\" class=\"entity-dropdown\">\n <!-- @vue-ignore -->\n <VDropdown :dispose-timeout=\"null\">\n <div\n class=\"entity-dropdown-trigger group-hover:bg-gray-200/60\"\n :class=\"{ '!bg-gray-300/60': isSelected }\"\n @click.stop\n >\n <IconMore />\n </div>\n <template #popper>\n <slot name=\"dropdownItems\"></slot>\n </template>\n </VDropdown>\n </div>\n </div>\n </td>\n </tr>\n <tr v-if=\"$slots.footer\">\n <td colspan=\"2\">\n <slot name=\"footer\" />\n </td>\n </tr>\n</template>\n<style lang=\"scss\">\n.entity-wrapper {\n @apply relative w-full transition-all hover:bg-gray-50;\n\n &.entity-selected {\n @apply bg-gray-100;\n }\n\n .entity-selected-indicator {\n @apply absolute inset-y-0 left-0 w-0.5 bg-primary;\n }\n\n .entity-body {\n @apply relative flex w-full flex-row items-center;\n }\n\n .entity-checkbox {\n @apply hidden sm:inline-flex;\n }\n\n .entity-start-wrapper,\n .entity-end-wrapper {\n @apply w-auto px-4 py-3 align-middle;\n }\n\n .entity-start {\n @apply flex items-center gap-4;\n }\n\n .entity-end {\n @apply flex items-center justify-end gap-6;\n }\n\n .entity-dropdown {\n @apply inline-flex items-center;\n }\n\n .entity-dropdown-trigger {\n @apply cursor-pointer rounded p-1 transition-all hover:text-blue-600;\n }\n}\n</style>\n","<script setup lang=\"ts\"></script>\n\n<template>\n <div class=\"w-full overflow-x-auto\">\n <table class=\"w-full border-spacing-0\">\n <tbody class=\"divide-y divide-gray-100\">\n <slot></slot>\n </tbody>\n </table>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { computed, type CSSProperties } from \"vue\";\nimport type { RouteLocationRaw } from \"vue-router\";\n\nconst props = withDefaults(\n defineProps<{\n title?: string;\n description?: string;\n route?: RouteLocationRaw;\n width?: string | number;\n maxWidth?: string | number;\n }>(),\n {\n title: undefined,\n description: undefined,\n route: undefined,\n width: undefined,\n maxWidth: undefined,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"click\"): void;\n}>();\n\nconst wrapperStyles = computed(() => {\n const styles: CSSProperties = {};\n if (props.width) {\n styles.width = getWidthStyleValue(props.width);\n }\n if (props.maxWidth) {\n styles.maxWidth = getWidthStyleValue(props.maxWidth);\n }\n return styles;\n});\n\nfunction getWidthStyleValue(value: string | number) {\n return typeof value === \"string\" ? value : `${value}px`;\n}\n</script>\n\n<template>\n <div class=\"entity-field-wrapper\" :style=\"wrapperStyles\">\n <div v-if=\"title || $slots.title\" class=\"entity-field-title-body\">\n <slot name=\"title\">\n <div class=\"entity-field-title\" @click=\"emit('click')\">\n <RouterLink\n v-if=\"route\"\n class=\"hover:text-gray-600\"\n :to=\"route\"\n :title=\"title\"\n >\n {{ title }}\n </RouterLink>\n <span v-else :title=\"title\">\n {{ title }}\n </span>\n </div>\n <slot name=\"extra\" />\n </slot>\n </div>\n <div\n v-if=\"description || $slots.description\"\n class=\"entity-field-description-body\"\n >\n <slot name=\"description\">\n <span\n v-if=\"description\"\n class=\"entity-field-description\"\n :title=\"description\"\n >\n {{ description }}\n </span>\n </slot>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.entity-field-wrapper {\n @apply inline-flex max-w-xs flex-col gap-1;\n\n .entity-field-title-body {\n @apply inline-flex flex-row items-center whitespace-nowrap;\n\n .entity-field-title {\n @apply mr-2 truncate text-sm font-medium text-gray-900;\n }\n }\n\n .entity-field-description-body {\n @apply inline-flex items-center whitespace-nowrap;\n\n .entity-field-description {\n @apply truncate text-xs text-gray-500;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed, type CSSProperties } from \"vue\";\nimport type { RouteLocationRaw } from \"vue-router\";\n\nconst props = withDefaults(\n defineProps<{\n title?: string;\n description?: string;\n route?: RouteLocationRaw;\n width?: string | number;\n maxWidth?: string | number;\n }>(),\n {\n title: undefined,\n description: undefined,\n route: undefined,\n width: undefined,\n maxWidth: undefined,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"click\"): void;\n}>();\n\nconst wrapperStyles = computed(() => {\n const styles: CSSProperties = {};\n if (props.width) {\n styles.width = getWidthStyleValue(props.width);\n }\n if (props.maxWidth) {\n styles.maxWidth = getWidthStyleValue(props.maxWidth);\n }\n return styles;\n});\n\nfunction getWidthStyleValue(value: string | number) {\n return typeof value === \"string\" ? value : `${value}px`;\n}\n</script>\n\n<template>\n <div class=\"entity-field-wrapper\" :style=\"wrapperStyles\">\n <div v-if=\"title || $slots.title\" class=\"entity-field-title-body\">\n <slot name=\"title\">\n <div class=\"entity-field-title\" @click=\"emit('click')\">\n <RouterLink\n v-if=\"route\"\n class=\"hover:text-gray-600\"\n :to=\"route\"\n :title=\"title\"\n >\n {{ title }}\n </RouterLink>\n <span v-else :title=\"title\">\n {{ title }}\n </span>\n </div>\n <slot name=\"extra\" />\n </slot>\n </div>\n <div\n v-if=\"description || $slots.description\"\n class=\"entity-field-description-body\"\n >\n <slot name=\"description\">\n <span\n v-if=\"description\"\n class=\"entity-field-description\"\n :title=\"description\"\n >\n {{ description }}\n </span>\n </slot>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.entity-field-wrapper {\n @apply inline-flex max-w-xs flex-col gap-1;\n\n .entity-field-title-body {\n @apply inline-flex flex-row items-center whitespace-nowrap;\n\n .entity-field-title {\n @apply mr-2 truncate text-sm font-medium text-gray-900;\n }\n }\n\n .entity-field-description-body {\n @apply inline-flex items-center whitespace-nowrap;\n\n .entity-field-description {\n @apply truncate text-xs text-gray-500;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\ndefineProps<{\n title?: string;\n}>();\n</script>\n<template>\n <div class=\"page-header\">\n <h2 class=\"page-header__title\">\n <slot name=\"icon\" />\n <span class=\"page-header__title-text\">{{ title }}</span>\n </h2>\n <div class=\"page-header__actions\">\n <slot name=\"actions\" />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.page-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-height: 3.5rem;\n background-color: theme(\"colors.white\");\n padding-left: 1rem;\n padding-right: 1rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n flex-wrap: wrap;\n gap: theme(\"spacing.2\");\n\n &__title {\n display: flex;\n align-items: center;\n text-overflow: truncate;\n font-size: 1.25rem;\n font-weight: 700;\n color: theme(\"colors.gray.800\");\n gap: theme(\"spacing.2\");\n }\n\n &__title-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &__actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: theme(\"spacing.2\");\n flex-wrap: wrap;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\ndefineProps<{\n title?: string;\n}>();\n</script>\n<template>\n <div class=\"page-header\">\n <h2 class=\"page-header__title\">\n <slot name=\"icon\" />\n <span class=\"page-header__title-text\">{{ title }}</span>\n </h2>\n <div class=\"page-header__actions\">\n <slot name=\"actions\" />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.page-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-height: 3.5rem;\n background-color: theme(\"colors.white\");\n padding-left: 1rem;\n padding-right: 1rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n flex-wrap: wrap;\n gap: theme(\"spacing.2\");\n\n &__title {\n display: flex;\n align-items: center;\n text-overflow: truncate;\n font-size: 1.25rem;\n font-weight: 700;\n color: theme(\"colors.gray.800\");\n gap: theme(\"spacing.2\");\n }\n\n &__title-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &__actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: theme(\"spacing.2\");\n flex-wrap: wrap;\n }\n}\n</style>\n","<script lang=\"ts\" setup></script>\n\n<template>\n <div class=\"flex items-center justify-center py-4\">\n <svg\n class=\"h-5 w-5 animate-spin\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-75\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { provide } from \"vue\";\n\nconst props = defineProps<{\n openIds?: string[];\n}>();\n\nprovide<string[] | undefined>(\"openIds\", props.openIds);\n</script>\n\n<template>\n <div class=\"menu-container w-full p-3\">\n <ul>\n <slot />\n </ul>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { provide } from \"vue\";\n\nconst props = defineProps<{\n openIds?: string[];\n}>();\n\nprovide<string[] | undefined>(\"openIds\", props.openIds);\n</script>\n\n<template>\n <div class=\"menu-container w-full p-3\">\n <ul>\n <slot />\n </ul>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { computed, inject, ref, useSlots } from \"vue\";\nimport { IconArrowRight } from \"../../icons/icons\";\n\nconst props = withDefaults(\n defineProps<{\n id?: string;\n title?: string;\n active?: boolean;\n }>(),\n {\n id: \"\",\n title: \"\",\n active: false,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"select\", id: string): void;\n}>();\n\nconst slots = useSlots();\n\nconst open = ref(false);\n\nconst openIds = inject<string[] | undefined>(\"openIds\");\n\nif (openIds?.includes(props.id)) {\n open.value = true;\n}\n\nconst hasSubmenus = computed(() => {\n return slots.default && slots.default().length > 0;\n});\n\nfunction handleClick() {\n if (!open.value) {\n handleExpand();\n }\n emit(\"select\", props.id);\n}\n\nfunction handleExpand() {\n if (hasSubmenus.value) {\n open.value = !open.value;\n }\n}\n</script>\n\n<template>\n <li\n :class=\"{ 'has-submenus': hasSubmenus }\"\n class=\"menu-item group\"\n @click.stop=\"handleClick\"\n >\n <div :class=\"{ active }\" class=\"menu-item-title\">\n <span v-if=\"$slots.icon\" class=\"menu-icon mr-3 self-center\">\n <slot name=\"icon\" />\n </span>\n <span class=\"menu-title flex-1 self-center\">\n {{ title }}\n </span>\n <span\n v-if=\"$slots.default\"\n :class=\"{ open }\"\n class=\"menu-icon-collapse self-center transition-all\"\n @click.stop=\"handleExpand\"\n >\n <IconArrowRight />\n </span>\n </div>\n\n <Transition name=\"submenus-show\">\n <ul v-show=\"$slots.default && open\" class=\"sub-menu-items transition-all\">\n <slot />\n </ul>\n </Transition>\n </li>\n</template>\n\n<style lang=\"scss\">\n.menu-item {\n @apply cursor-pointer;\n}\n\n.menu-item-title {\n @apply relative flex select-none rounded-base px-2 py-[0.4rem] text-base font-normal transition-all;\n\n &:hover,\n &.active {\n @apply bg-gray-100 font-medium;\n }\n\n &.active::after {\n @apply absolute;\n top: calc(50% - 13px);\n left: -8px;\n width: 3px;\n height: 26px;\n content: \"\";\n background: #242e41;\n border-radius: 6px;\n }\n}\n\n.menu-icon-collapse {\n @apply rounded-full p-0.5 group-hover:bg-gray-200;\n\n &.open {\n @apply bg-gray-200;\n transform: rotate(90deg);\n }\n}\n\n.submenus-show-enter-active,\n.submenus-show-leave-active {\n transition: all 0.1s ease;\n}\n\n.submenus-show-enter-from,\n.submenus-show-enter-to {\n opacity: 0;\n}\n\n.sub-menu-items {\n @apply my-1 pl-5;\n\n .menu-item-title {\n @apply p-1.5 text-sm;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed, inject, ref, useSlots } from \"vue\";\nimport { IconArrowRight } from \"../../icons/icons\";\n\nconst props = withDefaults(\n defineProps<{\n id?: string;\n title?: string;\n active?: boolean;\n }>(),\n {\n id: \"\",\n title: \"\",\n active: false,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"select\", id: string): void;\n}>();\n\nconst slots = useSlots();\n\nconst open = ref(false);\n\nconst openIds = inject<string[] | undefined>(\"openIds\");\n\nif (openIds?.includes(props.id)) {\n open.value = true;\n}\n\nconst hasSubmenus = computed(() => {\n return slots.default && slots.default().length > 0;\n});\n\nfunction handleClick() {\n if (!open.value) {\n handleExpand();\n }\n emit(\"select\", props.id);\n}\n\nfunction handleExpand() {\n if (hasSubmenus.value) {\n open.value = !open.value;\n }\n}\n</script>\n\n<template>\n <li\n :class=\"{ 'has-submenus': hasSubmenus }\"\n class=\"menu-item group\"\n @click.stop=\"handleClick\"\n >\n <div :class=\"{ active }\" class=\"menu-item-title\">\n <span v-if=\"$slots.icon\" class=\"menu-icon mr-3 self-center\">\n <slot name=\"icon\" />\n </span>\n <span class=\"menu-title flex-1 self-center\">\n {{ title }}\n </span>\n <span\n v-if=\"$slots.default\"\n :class=\"{ open }\"\n class=\"menu-icon-collapse self-center transition-all\"\n @click.stop=\"handleExpand\"\n >\n <IconArrowRight />\n </span>\n </div>\n\n <Transition name=\"submenus-show\">\n <ul v-show=\"$slots.default && open\" class=\"sub-menu-items transition-all\">\n <slot />\n </ul>\n </Transition>\n </li>\n</template>\n\n<style lang=\"scss\">\n.menu-item {\n @apply cursor-pointer;\n}\n\n.menu-item-title {\n @apply relative flex select-none rounded-base px-2 py-[0.4rem] text-base font-normal transition-all;\n\n &:hover,\n &.active {\n @apply bg-gray-100 font-medium;\n }\n\n &.active::after {\n @apply absolute;\n top: calc(50% - 13px);\n left: -8px;\n width: 3px;\n height: 26px;\n content: \"\";\n background: #242e41;\n border-radius: 6px;\n }\n}\n\n.menu-icon-collapse {\n @apply rounded-full p-0.5 group-hover:bg-gray-200;\n\n &.open {\n @apply bg-gray-200;\n transform: rotate(90deg);\n }\n}\n\n.submenus-show-enter-active,\n.submenus-show-leave-active {\n transition: all 0.1s ease;\n}\n\n.submenus-show-enter-from,\n.submenus-show-enter-to {\n opacity: 0;\n}\n\n.sub-menu-items {\n @apply my-1 pl-5;\n\n .menu-item-title {\n @apply p-1.5 text-sm;\n }\n}\n</style>\n","<template>\n <li class=\"menu-label flex flex-col\">\n <slot />\n </li>\n</template>\n<style lang=\"scss\">\n.menu-label {\n padding-top: 10px;\n padding-bottom: 10px;\n color: #847e7e;\n font-size: 14px;\n font-weight: 400;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport { IconArrowLeft, IconArrowRight } from \"../../icons/icons\";\n\nconst props = withDefaults(\n defineProps<{\n page?: number;\n size?: number;\n total?: number;\n sizeOptions?: number[];\n showTotal?: boolean;\n pageLabel?: string;\n sizeLabel?: string;\n totalLabel?: string;\n }>(),\n {\n page: 1,\n size: 10,\n total: 0,\n sizeOptions: () => [10],\n showTotal: true,\n pageLabel: \"页\",\n sizeLabel: \"条 / 页\",\n totalLabel: undefined,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"update:page\", page: number): void;\n (event: \"update:size\", size: number): void;\n (event: \"change\", value: { page: number; size: number }): void;\n}>();\n\nconst totalPages = computed(() => Math.ceil(props.total / props.size));\n\nconst hasNext = computed(() => props.page < totalPages.value);\n\nconst hasPrevious = computed(() => props.page > 1);\n\nconst totalLabelText = computed(() => {\n if (props.totalLabel) {\n return props.totalLabel;\n }\n return `共 ${props.total} 项数据`;\n});\n\nconst onPageChange = (event: Event) => {\n const target = event.target as HTMLSelectElement;\n const page = Number(target.value);\n emit(\"update:page\", page);\n emit(\"change\", { page, size: props.size });\n};\n\nconst onSizeChange = (event: Event) => {\n const target = event.target as HTMLSelectElement;\n const size = Number(target.value);\n emit(\"update:size\", size);\n\n // reset page to 1\n emit(\"update:page\", 1);\n emit(\"change\", { page: 1, size });\n};\n\nconst previous = () => {\n if (hasPrevious.value) {\n const page = props.page - 1;\n emit(\"update:page\", page);\n emit(\"change\", { page: page, size: props.size });\n }\n};\n\nconst next = () => {\n if (hasNext.value) {\n const page = props.page + 1;\n emit(\"update:page\", page);\n emit(\"change\", { page: page, size: props.size });\n }\n};\n</script>\n<template>\n <div class=\"pagination\">\n <div v-if=\"showTotal\" class=\"pagination__total\">\n {{ totalLabelText }}\n </div>\n <div class=\"pagination__controller\">\n <nav aria-label=\"Pagination\" class=\"pagination__nav\">\n <button\n class=\"pagination__btn pagination__btn--prev\"\n :disabled=\"!hasPrevious\"\n @click=\"previous\"\n >\n <IconArrowLeft />\n </button>\n <button\n class=\"pagination__btn pagination__btn--next\"\n :disabled=\"!hasNext\"\n @click=\"next\"\n >\n <IconArrowRight />\n </button>\n </nav>\n <div class=\"pagination__select-wrap\">\n <select\n :value=\"page\"\n :disabled=\"totalPages === 0\"\n class=\"pagination__select\"\n @change=\"onPageChange\"\n >\n <option v-if=\"totalPages === 0\" :value=\"1\">0 / 0</option>\n <option v-for=\"i in totalPages || 1\" :key=\"i\" :value=\"i\">\n {{ i }} / {{ totalPages }}\n </option>\n </select>\n <span class=\"pagination__select-label\">\n {{ pageLabel }}\n </span>\n </div>\n <div class=\"pagination__select-wrap\">\n <select :value=\"size\" class=\"pagination__select\" @change=\"onSizeChange\">\n <option\n v-for=\"(sizeOption, index) in sizeOptions\"\n :key=\"index\"\n :value=\"sizeOption\"\n >\n {{ sizeOption }}\n </option>\n </select>\n <span class=\"pagination__select-label\">\n {{ sizeLabel }}\n </span>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.pagination {\n @apply flex flex-1 items-center gap-2 bg-white;\n\n &__total {\n @apply hidden text-sm text-gray-500 sm:block;\n }\n\n &__controller {\n @apply flex flex-1 items-center justify-end gap-2;\n }\n\n &__nav {\n @apply relative z-0 inline-flex -space-x-px rounded-base shadow-sm;\n }\n\n &__btn {\n @apply relative inline-flex h-8 cursor-pointer items-center rounded-base border border-gray-300 bg-white px-2 py-1.5 text-sm font-medium text-gray-500 outline-none hover:bg-gray-50 disabled:cursor-not-allowed;\n\n &--prev {\n @apply rounded-r-none;\n }\n\n &--next {\n @apply rounded-l-none;\n }\n }\n\n &__select-wrap {\n @apply inline-flex items-center gap-2;\n }\n\n &__select {\n @apply h-8 rounded-base border border-solid border-gray-300 px-2 pr-10 text-sm text-gray-800 outline-none focus:border-primary;\n }\n\n &__select-label {\n @apply text-sm text-gray-500;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport { IconArrowLeft, IconArrowRight } from \"../../icons/icons\";\n\nconst props = withDefaults(\n defineProps<{\n page?: number;\n size?: number;\n total?: number;\n sizeOptions?: number[];\n showTotal?: boolean;\n pageLabel?: string;\n sizeLabel?: string;\n totalLabel?: string;\n }>(),\n {\n page: 1,\n size: 10,\n total: 0,\n sizeOptions: () => [10],\n showTotal: true,\n pageLabel: \"页\",\n sizeLabel: \"条 / 页\",\n totalLabel: undefined,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"update:page\", page: number): void;\n (event: \"update:size\", size: number): void;\n (event: \"change\", value: { page: number; size: number }): void;\n}>();\n\nconst totalPages = computed(() => Math.ceil(props.total / props.size));\n\nconst hasNext = computed(() => props.page < totalPages.value);\n\nconst hasPrevious = computed(() => props.page > 1);\n\nconst totalLabelText = computed(() => {\n if (props.totalLabel) {\n return props.totalLabel;\n }\n return `共 ${props.total} 项数据`;\n});\n\nconst onPageChange = (event: Event) => {\n const target = event.target as HTMLSelectElement;\n const page = Number(target.value);\n emit(\"update:page\", page);\n emit(\"change\", { page, size: props.size });\n};\n\nconst onSizeChange = (event: Event) => {\n const target = event.target as HTMLSelectElement;\n const size = Number(target.value);\n emit(\"update:size\", size);\n\n // reset page to 1\n emit(\"update:page\", 1);\n emit(\"change\", { page: 1, size });\n};\n\nconst previous = () => {\n if (hasPrevious.value) {\n const page = props.page - 1;\n emit(\"update:page\", page);\n emit(\"change\", { page: page, size: props.size });\n }\n};\n\nconst next = () => {\n if (hasNext.value) {\n const page = props.page + 1;\n emit(\"update:page\", page);\n emit(\"change\", { page: page, size: props.size });\n }\n};\n</script>\n<template>\n <div class=\"pagination\">\n <div v-if=\"showTotal\" class=\"pagination__total\">\n {{ totalLabelText }}\n </div>\n <div class=\"pagination__controller\">\n <nav aria-label=\"Pagination\" class=\"pagination__nav\">\n <button\n class=\"pagination__btn pagination__btn--prev\"\n :disabled=\"!hasPrevious\"\n @click=\"previous\"\n >\n <IconArrowLeft />\n </button>\n <button\n class=\"pagination__btn pagination__btn--next\"\n :disabled=\"!hasNext\"\n @click=\"next\"\n >\n <IconArrowRight />\n </button>\n </nav>\n <div class=\"pagination__select-wrap\">\n <select\n :value=\"page\"\n :disabled=\"totalPages === 0\"\n class=\"pagination__select\"\n @change=\"onPageChange\"\n >\n <option v-if=\"totalPages === 0\" :value=\"1\">0 / 0</option>\n <option v-for=\"i in totalPages || 1\" :key=\"i\" :value=\"i\">\n {{ i }} / {{ totalPages }}\n </option>\n </select>\n <span class=\"pagination__select-label\">\n {{ pageLabel }}\n </span>\n </div>\n <div class=\"pagination__select-wrap\">\n <select :value=\"size\" class=\"pagination__select\" @change=\"onSizeChange\">\n <option\n v-for=\"(sizeOption, index) in sizeOptions\"\n :key=\"index\"\n :value=\"sizeOption\"\n >\n {{ sizeOption }}\n </option>\n </select>\n <span class=\"pagination__select-label\">\n {{ sizeLabel }}\n </span>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.pagination {\n @apply flex flex-1 items-center gap-2 bg-white;\n\n &__total {\n @apply hidden text-sm text-gray-500 sm:block;\n }\n\n &__controller {\n @apply flex flex-1 items-center justify-end gap-2;\n }\n\n &__nav {\n @apply relative z-0 inline-flex -space-x-px rounded-base shadow-sm;\n }\n\n &__btn {\n @apply relative inline-flex h-8 cursor-pointer items-center rounded-base border border-gray-300 bg-white px-2 py-1.5 text-sm font-medium text-gray-500 outline-none hover:bg-gray-50 disabled:cursor-not-allowed;\n\n &--prev {\n @apply rounded-r-none;\n }\n\n &--next {\n @apply rounded-l-none;\n }\n }\n\n &__select-wrap {\n @apply inline-flex items-center gap-2;\n }\n\n &__select {\n @apply h-8 rounded-base border border-solid border-gray-300 px-2 pr-10 text-sm text-gray-800 outline-none focus:border-primary;\n }\n\n &__select-label {\n @apply text-sm text-gray-500;\n }\n}\n</style>\n","export type SpaceSpacing = \"xs\" | \"sm\" | \"md\" | \"lg\";\nexport type SpaceDirection = \"row\" | \"column\";\nexport type SpaceAlign = \"start\" | \"end\" | \"center\" | \"stretch\";\nexport const SpaceSpacingSize: Record<string, number> = {\n xs: 10,\n sm: 12,\n md: 16,\n lg: 20,\n};\n","<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { SpaceAlign, SpaceDirection, SpaceSpacing } from \"./types\";\nimport { SpaceSpacingSize } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n spacing?: SpaceSpacing;\n direction?: SpaceDirection;\n align?: SpaceAlign;\n }>(),\n {\n spacing: \"xs\",\n direction: \"row\",\n align: \"center\",\n }\n);\n\nconst wrapperClasses = computed(() => {\n const { direction, align } = props;\n return [`space-direction-${direction}`, `space-align-${align}`];\n});\n</script>\n<template>\n <div\n :class=\"wrapperClasses\"\n :style=\"`gap: ${SpaceSpacingSize[spacing]}px`\"\n class=\"space-wrapper\"\n >\n <slot />\n </div>\n</template>\n<style lang=\"scss\">\n.space-wrapper {\n @apply box-border inline-flex;\n\n &.space-direction-row {\n @apply flex-row;\n }\n\n &.space-direction-column {\n @apply flex-col;\n }\n\n &.space-align-center {\n @apply items-center;\n }\n\n &.space-align-start {\n @apply items-start;\n }\n\n &.space-align-end {\n @apply items-end;\n }\n\n &.space-align-stretch {\n @apply items-stretch;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { SpaceAlign, SpaceDirection, SpaceSpacing } from \"./types\";\nimport { SpaceSpacingSize } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n spacing?: SpaceSpacing;\n direction?: SpaceDirection;\n align?: SpaceAlign;\n }>(),\n {\n spacing: \"xs\",\n direction: \"row\",\n align: \"center\",\n }\n);\n\nconst wrapperClasses = computed(() => {\n const { direction, align } = props;\n return [`space-direction-${direction}`, `space-align-${align}`];\n});\n</script>\n<template>\n <div\n :class=\"wrapperClasses\"\n :style=\"`gap: ${SpaceSpacingSize[spacing]}px`\"\n class=\"space-wrapper\"\n >\n <slot />\n </div>\n</template>\n<style lang=\"scss\">\n.space-wrapper {\n @apply box-border inline-flex;\n\n &.space-direction-row {\n @apply flex-row;\n }\n\n &.space-direction-column {\n @apply flex-col;\n }\n\n &.space-align-center {\n @apply items-center;\n }\n\n &.space-align-start {\n @apply items-start;\n }\n\n &.space-align-end {\n @apply items-end;\n }\n\n &.space-align-stretch {\n @apply items-stretch;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { StatusDotState } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n state?: StatusDotState;\n animate?: boolean;\n text?: string;\n }>(),\n { state: \"success\", animate: false, text: undefined }\n);\n\nconst classes = computed(() => {\n return [`status-dot-${props.state}`, { \"status-dot-animate\": props.animate }];\n});\n</script>\n\n<template>\n <div class=\"status-dot-wrapper\" :class=\"classes\">\n <div class=\"status-dot-body\">\n <span class=\"status-dot-inner\"></span>\n </div>\n <slot v-if=\"$slots.text || text\" name=\"text\">\n <span class=\"status-dot-text\">{{ text }}</span>\n </slot>\n </div>\n</template>\n\n<style lang=\"scss\">\n.status-dot-wrapper {\n @apply flex items-center gap-2;\n\n .status-dot-body {\n @apply inline-flex h-2 w-2 items-center justify-center rounded-full;\n }\n\n .status-dot-inner {\n @apply inline-block h-1.5 w-1.5 rounded-full;\n }\n\n .status-dot-text {\n @apply whitespace-nowrap text-xs text-gray-500;\n }\n\n &.status-dot-animate {\n .status-dot-inner {\n @apply animate-ping;\n }\n }\n\n &.status-dot-default {\n .status-dot-body {\n @apply bg-gray-300;\n }\n\n .status-dot-inner {\n @apply bg-gray-300;\n }\n }\n\n &.status-dot-success {\n .status-dot-body {\n @apply bg-green-600;\n }\n\n .status-dot-inner {\n @apply bg-green-600;\n }\n }\n\n &.status-dot-warning {\n .status-dot-body {\n @apply bg-yellow-600;\n }\n\n .status-dot-inner {\n @apply bg-yellow-600;\n }\n }\n\n &.status-dot-error {\n .status-dot-body {\n @apply bg-red-600;\n }\n\n .status-dot-inner {\n @apply bg-red-600;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { StatusDotState } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n state?: StatusDotState;\n animate?: boolean;\n text?: string;\n }>(),\n { state: \"success\", animate: false, text: undefined }\n);\n\nconst classes = computed(() => {\n return [`status-dot-${props.state}`, { \"status-dot-animate\": props.animate }];\n});\n</script>\n\n<template>\n <div class=\"status-dot-wrapper\" :class=\"classes\">\n <div class=\"status-dot-body\">\n <span class=\"status-dot-inner\"></span>\n </div>\n <slot v-if=\"$slots.text || text\" name=\"text\">\n <span class=\"status-dot-text\">{{ text }}</span>\n </slot>\n </div>\n</template>\n\n<style lang=\"scss\">\n.status-dot-wrapper {\n @apply flex items-center gap-2;\n\n .status-dot-body {\n @apply inline-flex h-2 w-2 items-center justify-center rounded-full;\n }\n\n .status-dot-inner {\n @apply inline-block h-1.5 w-1.5 rounded-full;\n }\n\n .status-dot-text {\n @apply whitespace-nowrap text-xs text-gray-500;\n }\n\n &.status-dot-animate {\n .status-dot-inner {\n @apply animate-ping;\n }\n }\n\n &.status-dot-default {\n .status-dot-body {\n @apply bg-gray-300;\n }\n\n .status-dot-inner {\n @apply bg-gray-300;\n }\n }\n\n &.status-dot-success {\n .status-dot-body {\n @apply bg-green-600;\n }\n\n .status-dot-inner {\n @apply bg-green-600;\n }\n }\n\n &.status-dot-warning {\n .status-dot-body {\n @apply bg-yellow-600;\n }\n\n .status-dot-inner {\n @apply bg-yellow-600;\n }\n }\n\n &.status-dot-error {\n .status-dot-body {\n @apply bg-red-600;\n }\n\n .status-dot-inner {\n @apply bg-red-600;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nconst props = withDefaults(\n defineProps<{\n modelValue?: boolean;\n disabled?: boolean;\n loading?: boolean;\n }>(),\n {\n modelValue: false,\n disabled: false,\n loading: false,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"update:modelValue\", value: boolean): void;\n (event: \"change\", value: boolean): void;\n}>();\n\nconst handleChange = () => {\n if (props.disabled || props.loading) return;\n\n emit(\"update:modelValue\", !props.modelValue);\n emit(\"change\", !props.modelValue);\n};\n</script>\n<template>\n <div class=\"switch-wrapper\">\n <button\n :class=\"{\n 'bg-gray-200': !modelValue,\n '!bg-primary': modelValue,\n 'switch-disabled': disabled || loading,\n }\"\n aria-checked=\"false\"\n class=\"switch-inner\"\n role=\"switch\"\n type=\"button\"\n :disabled=\"disabled || loading\"\n @click=\"handleChange\"\n >\n <span\n :class=\"{\n 'translate-x-0': !modelValue,\n 'translate-x-5': modelValue,\n }\"\n aria-hidden=\"true\"\n class=\"switch-indicator\"\n >\n <svg\n v-if=\"loading\"\n class=\"animate-spin\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"opacity-0\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-30\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n <slot v-else name=\"icon\" />\n </span>\n </button>\n </div>\n</template>\n<style lang=\"scss\">\n.switch-wrapper {\n @apply box-border inline-flex;\n\n .switch-inner {\n @apply relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out;\n\n &.switch-disabled {\n @apply cursor-not-allowed opacity-60;\n }\n\n .switch-indicator {\n @apply pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nconst props = withDefaults(\n defineProps<{\n modelValue?: boolean;\n disabled?: boolean;\n loading?: boolean;\n }>(),\n {\n modelValue: false,\n disabled: false,\n loading: false,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"update:modelValue\", value: boolean): void;\n (event: \"change\", value: boolean): void;\n}>();\n\nconst handleChange = () => {\n if (props.disabled || props.loading) return;\n\n emit(\"update:modelValue\", !props.modelValue);\n emit(\"change\", !props.modelValue);\n};\n</script>\n<template>\n <div class=\"switch-wrapper\">\n <button\n :class=\"{\n 'bg-gray-200': !modelValue,\n '!bg-primary': modelValue,\n 'switch-disabled': disabled || loading,\n }\"\n aria-checked=\"false\"\n class=\"switch-inner\"\n role=\"switch\"\n type=\"button\"\n :disabled=\"disabled || loading\"\n @click=\"handleChange\"\n >\n <span\n :class=\"{\n 'translate-x-0': !modelValue,\n 'translate-x-5': modelValue,\n }\"\n aria-hidden=\"true\"\n class=\"switch-indicator\"\n >\n <svg\n v-if=\"loading\"\n class=\"animate-spin\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"opacity-0\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-30\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n <slot v-else name=\"icon\" />\n </span>\n </button>\n </div>\n</template>\n<style lang=\"scss\">\n.switch-wrapper {\n @apply box-border inline-flex;\n\n .switch-inner {\n @apply relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out;\n\n &.switch-disabled {\n @apply cursor-not-allowed opacity-60;\n }\n\n .switch-indicator {\n @apply pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { useElementSize, useThrottleFn } from \"@vueuse/core\";\nimport type { ComputedRef } from \"vue\";\nimport { computed, onMounted, onUnmounted, ref, watch } from \"vue\";\nimport { IconArrowLeft, IconArrowRight } from \"../../icons/icons\";\nimport type { TabsArrowShow, TabsDirection, TabsType } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n activeId?: number | string;\n items?: Array<Record<string, string>>;\n type?: TabsType;\n direction?: TabsDirection;\n idKey?: string;\n labelKey?: string;\n }>(),\n {\n activeId: undefined,\n items: undefined,\n type: \"default\",\n direction: \"row\",\n idKey: \"id\",\n labelKey: \"label\",\n }\n);\n\nconst emit = defineEmits<{\n (event: \"update:activeId\", value: number | string): void;\n (event: \"change\", value: number | string): void;\n}>();\n\nconst classes = computed(() => {\n return [`tabbar-${props.type}`, `tabbar-direction-${props.direction}`];\n});\n\nconst handleChange = (id: number | string, index: number) => {\n handleClickTabItem(index);\n emit(\"update:activeId\", id);\n emit(\"change\", id);\n};\n\nconst tabbarItemsRef = ref<HTMLElement | undefined>();\nconst tabItemRefs = ref<HTMLElement[] | undefined>();\nconst itemWidthArr = ref<number[]>([]);\nconst indicatorRef = ref<HTMLElement | undefined>();\nconst arrowFlag = ref(false);\nconst { width: tabbarWidth } = useElementSize(tabbarItemsRef);\n\nconst arrowShow: ComputedRef<TabsArrowShow> = computed(() => {\n const show: TabsArrowShow = { left: false, right: false };\n if (!tabbarItemsRef.value) return show;\n void arrowFlag.value;\n void tabbarWidth.value;\n const { scrollWidth, scrollLeft, clientWidth } = tabbarItemsRef.value;\n if (scrollWidth > clientWidth) {\n if (scrollLeft < scrollWidth - clientWidth) {\n show.right = true;\n }\n if (scrollLeft > 20) {\n show.left = true;\n }\n }\n return show;\n});\n\nfunction handleHorizontalWheel(event: WheelEvent) {\n if (!tabbarItemsRef.value) {\n return;\n }\n const { scrollLeft, scrollWidth, clientWidth } = tabbarItemsRef.value;\n const toLeft = event.deltaY < 0 && scrollLeft > 0;\n const toRight = event.deltaY > 0 && scrollLeft < scrollWidth - clientWidth;\n\n if (toLeft || toRight) {\n event.preventDefault();\n event.stopPropagation();\n tabbarItemsRef.value.scrollBy({ left: event.deltaY });\n }\n}\n\nfunction saveItemsWidth() {\n if (!tabbarItemsRef.value || !tabItemRefs.value) return;\n itemWidthArr.value = [];\n for (const item of tabItemRefs.value) {\n itemWidthArr.value.push(item.offsetWidth);\n }\n arrowFlag.value = !arrowFlag.value;\n}\n\nfunction handleClickTabItem(index: number) {\n if (!tabbarItemsRef.value || !indicatorRef.value) return;\n const { scrollWidth, clientWidth } = tabbarItemsRef.value;\n if (scrollWidth <= clientWidth) return;\n if (index === 0) {\n tabbarItemsRef.value.scrollTo({ left: 0, behavior: \"smooth\" });\n return;\n }\n if (index === itemWidthArr.value.length - 1) {\n tabbarItemsRef.value.scrollTo({\n left: scrollWidth - clientWidth,\n behavior: \"smooth\",\n });\n return;\n }\n}\n\nfunction handleClickArrow(prev: boolean) {\n if (!tabbarItemsRef.value || !indicatorRef.value || !tabItemRefs.value)\n return;\n const { scrollWidth, scrollLeft, clientWidth } = tabbarItemsRef.value;\n if (scrollWidth <= clientWidth) return;\n if (!itemWidthArr.value[0]) {\n itemWidthArr.value = [];\n for (const item of tabItemRefs.value) {\n itemWidthArr.value.push(item.offsetWidth);\n }\n }\n let hiddenNum = 0;\n let totalWith = 0;\n let scrollByX = 0;\n const lastItemWidth = itemWidthArr.value[itemWidthArr.value.length - 1];\n if (prev) {\n for (let i = 0; i < itemWidthArr.value.length; i++) {\n const w = itemWidthArr.value[i];\n totalWith += w;\n if (totalWith >= scrollLeft) {\n hiddenNum = i;\n break;\n }\n }\n if (hiddenNum === 0) {\n scrollByX = -itemWidthArr.value[0];\n } else {\n scrollByX = -(\n itemWidthArr.value[hiddenNum] -\n totalWith +\n scrollLeft +\n itemWidthArr.value[hiddenNum - 1]\n );\n }\n } else {\n const overWidth = scrollWidth - scrollLeft - clientWidth;\n for (let i = itemWidthArr.value.length - 1; i >= 0; i--) {\n const w = itemWidthArr.value[i];\n totalWith += w;\n if (totalWith >= overWidth) {\n hiddenNum = i;\n break;\n }\n }\n\n if (hiddenNum === itemWidthArr.value.length - 1) {\n scrollByX =\n lastItemWidth + itemWidthArr.value[itemWidthArr.value.length - 1];\n } else {\n scrollByX =\n itemWidthArr.value[hiddenNum] -\n (totalWith - overWidth) +\n itemWidthArr.value[hiddenNum + 1];\n }\n }\n tabbarItemsRef.value.scrollBy({\n left: scrollByX,\n behavior: \"smooth\",\n });\n}\n\nconst handleScroll = useThrottleFn(\n () => {\n arrowFlag.value = !arrowFlag.value;\n },\n 100,\n true\n);\n\nwatch(() => tabItemRefs.value?.length, saveItemsWidth);\n\nonMounted(() => {\n tabbarItemsRef.value?.addEventListener(\"wheel\", handleHorizontalWheel);\n tabbarItemsRef.value?.addEventListener(\"scroll\", handleScroll);\n});\n\nonUnmounted(() => {\n tabbarItemsRef.value?.removeEventListener(\"wheel\", handleHorizontalWheel);\n tabbarItemsRef.value?.removeEventListener(\"scroll\", handleScroll);\n});\n</script>\n<template>\n <div :class=\"classes\" class=\"tabbar-wrapper\">\n <div\n ref=\"indicatorRef\"\n :class=\"['indicator', 'left', arrowShow.left ? 'visible' : 'invisible']\"\n >\n <div title=\"向前\" class=\"arrow-left\" @click=\"handleClickArrow(true)\">\n <IconArrowLeft />\n </div>\n </div>\n <div\n :class=\"['indicator', 'right', arrowShow.right ? 'visible' : 'invisible']\"\n >\n <div title=\"向后\" class=\"arrow-right\" @click=\"handleClickArrow(false)\">\n <IconArrowRight />\n </div>\n </div>\n <div ref=\"tabbarItemsRef\" class=\"tabbar-items\">\n <div\n v-for=\"(item, index) in items\"\n :key=\"index\"\n ref=\"tabItemRefs\"\n :class=\"{ 'tabbar-item-active': item[idKey] === activeId }\"\n class=\"tabbar-item\"\n @click=\"handleChange(item[idKey], index)\"\n >\n <div v-if=\"item.icon\" class=\"tabbar-item-icon\">\n <component :is=\"item.icon\" />\n </div>\n <div v-if=\"item[labelKey]\" class=\"tabbar-item-label\">\n {{ item[labelKey] }}\n </div>\n </div>\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.tabbar-wrapper {\n @apply relative;\n .indicator {\n @apply pointer-events-none absolute top-0 z-10 flex h-full w-20 items-center from-transparent from-10% via-white/80 via-30% to-white to-70% pb-1.5 pt-1;\n\n &.left {\n @apply left-0 justify-start bg-gradient-to-l;\n }\n &.right {\n @apply right-0 justify-end bg-gradient-to-r;\n }\n .arrow-left,\n .arrow-right {\n @apply pointer-events-auto flex h-9 w-10 cursor-pointer select-none items-center justify-center;\n svg {\n font-size: 1.5em;\n }\n }\n }\n\n .tabbar-items {\n @apply flex flex-row items-center overflow-x-auto py-0.5;\n\n &::-webkit-scrollbar-track-piece {\n background-color: #f8f8f8;\n -webkit-border-radius: 2em;\n -moz-border-radius: 2em;\n border-radius: 2em;\n }\n\n &::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: #ddd;\n background-clip: padding-box;\n -webkit-border-radius: 2em;\n -moz-border-radius: 2em;\n border-radius: 2em;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n background-color: #bbb;\n }\n }\n\n .tabbar-item {\n @apply inline-flex h-9 cursor-pointer justify-center gap-2 self-center whitespace-nowrap text-sm transition-all;\n\n .tabbar-item-label,\n .tabbar-item-icon {\n @apply self-center;\n }\n }\n\n &.tabbar-default {\n border-bottom-width: 2px;\n @apply border-b-gray-100;\n\n .tabbar-items {\n margin-bottom: -4px;\n justify-content: flex-start;\n }\n\n .tabbar-item {\n @apply border-b-gray-100 px-5 py-1;\n\n border-bottom-width: 2px;\n\n &.tabbar-item-active {\n @apply border-b-secondary text-secondary;\n }\n }\n }\n\n &.tabbar-pills {\n .tabbar-items {\n @apply gap-1;\n justify-content: flex-start;\n }\n\n .tabbar-item {\n @apply rounded-base px-6 py-1 opacity-70;\n\n &.tabbar-item-active {\n @apply bg-gray-100 opacity-100;\n }\n\n &:hover {\n @apply bg-gray-100;\n }\n }\n }\n\n &.tabbar-outline {\n @apply rounded-base bg-gray-100 px-1 py-0.5;\n\n .tabbar-items {\n @apply justify-start gap-1;\n }\n\n .tabbar-item {\n @apply rounded-sm px-6 py-1 opacity-70;\n\n &.tabbar-item-active {\n @apply bg-white opacity-100 shadow-sm;\n }\n\n &:hover {\n @apply bg-white;\n }\n }\n }\n\n &.tabbar-direction-row {\n .tabbar-items {\n @apply flex-row;\n }\n }\n\n &.tabbar-direction-column {\n .tabbar-items {\n @apply flex-col;\n }\n\n .tabbar-item {\n width: 100%;\n }\n\n &.tabbar-default {\n border-bottom-width: 0;\n @apply border-b-0;\n border-right-width: 2px;\n @apply border-r-gray-100;\n\n .tabbar-items {\n margin-bottom: 0;\n margin-right: -2px;\n }\n\n .tabbar-item {\n border-bottom-width: 0;\n border-right-width: 2px;\n\n &.tabbar-item-active {\n @apply border-r-secondary;\n }\n }\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { useElementSize, useThrottleFn } from \"@vueuse/core\";\nimport type { ComputedRef } from \"vue\";\nimport { computed, onMounted, onUnmounted, ref, watch } from \"vue\";\nimport { IconArrowLeft, IconArrowRight } from \"../../icons/icons\";\nimport type { TabsArrowShow, TabsDirection, TabsType } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n activeId?: number | string;\n items?: Array<Record<string, string>>;\n type?: TabsType;\n direction?: TabsDirection;\n idKey?: string;\n labelKey?: string;\n }>(),\n {\n activeId: undefined,\n items: undefined,\n type: \"default\",\n direction: \"row\",\n idKey: \"id\",\n labelKey: \"label\",\n }\n);\n\nconst emit = defineEmits<{\n (event: \"update:activeId\", value: number | string): void;\n (event: \"change\", value: number | string): void;\n}>();\n\nconst classes = computed(() => {\n return [`tabbar-${props.type}`, `tabbar-direction-${props.direction}`];\n});\n\nconst handleChange = (id: number | string, index: number) => {\n handleClickTabItem(index);\n emit(\"update:activeId\", id);\n emit(\"change\", id);\n};\n\nconst tabbarItemsRef = ref<HTMLElement | undefined>();\nconst tabItemRefs = ref<HTMLElement[] | undefined>();\nconst itemWidthArr = ref<number[]>([]);\nconst indicatorRef = ref<HTMLElement | undefined>();\nconst arrowFlag = ref(false);\nconst { width: tabbarWidth } = useElementSize(tabbarItemsRef);\n\nconst arrowShow: ComputedRef<TabsArrowShow> = computed(() => {\n const show: TabsArrowShow = { left: false, right: false };\n if (!tabbarItemsRef.value) return show;\n void arrowFlag.value;\n void tabbarWidth.value;\n const { scrollWidth, scrollLeft, clientWidth } = tabbarItemsRef.value;\n if (scrollWidth > clientWidth) {\n if (scrollLeft < scrollWidth - clientWidth) {\n show.right = true;\n }\n if (scrollLeft > 20) {\n show.left = true;\n }\n }\n return show;\n});\n\nfunction handleHorizontalWheel(event: WheelEvent) {\n if (!tabbarItemsRef.value) {\n return;\n }\n const { scrollLeft, scrollWidth, clientWidth } = tabbarItemsRef.value;\n const toLeft = event.deltaY < 0 && scrollLeft > 0;\n const toRight = event.deltaY > 0 && scrollLeft < scrollWidth - clientWidth;\n\n if (toLeft || toRight) {\n event.preventDefault();\n event.stopPropagation();\n tabbarItemsRef.value.scrollBy({ left: event.deltaY });\n }\n}\n\nfunction saveItemsWidth() {\n if (!tabbarItemsRef.value || !tabItemRefs.value) return;\n itemWidthArr.value = [];\n for (const item of tabItemRefs.value) {\n itemWidthArr.value.push(item.offsetWidth);\n }\n arrowFlag.value = !arrowFlag.value;\n}\n\nfunction handleClickTabItem(index: number) {\n if (!tabbarItemsRef.value || !indicatorRef.value) return;\n const { scrollWidth, clientWidth } = tabbarItemsRef.value;\n if (scrollWidth <= clientWidth) return;\n if (index === 0) {\n tabbarItemsRef.value.scrollTo({ left: 0, behavior: \"smooth\" });\n return;\n }\n if (index === itemWidthArr.value.length - 1) {\n tabbarItemsRef.value.scrollTo({\n left: scrollWidth - clientWidth,\n behavior: \"smooth\",\n });\n return;\n }\n}\n\nfunction handleClickArrow(prev: boolean) {\n if (!tabbarItemsRef.value || !indicatorRef.value || !tabItemRefs.value)\n return;\n const { scrollWidth, scrollLeft, clientWidth } = tabbarItemsRef.value;\n if (scrollWidth <= clientWidth) return;\n if (!itemWidthArr.value[0]) {\n itemWidthArr.value = [];\n for (const item of tabItemRefs.value) {\n itemWidthArr.value.push(item.offsetWidth);\n }\n }\n let hiddenNum = 0;\n let totalWith = 0;\n let scrollByX = 0;\n const lastItemWidth = itemWidthArr.value[itemWidthArr.value.length - 1];\n if (prev) {\n for (let i = 0; i < itemWidthArr.value.length; i++) {\n const w = itemWidthArr.value[i];\n totalWith += w;\n if (totalWith >= scrollLeft) {\n hiddenNum = i;\n break;\n }\n }\n if (hiddenNum === 0) {\n scrollByX = -itemWidthArr.value[0];\n } else {\n scrollByX = -(\n itemWidthArr.value[hiddenNum] -\n totalWith +\n scrollLeft +\n itemWidthArr.value[hiddenNum - 1]\n );\n }\n } else {\n const overWidth = scrollWidth - scrollLeft - clientWidth;\n for (let i = itemWidthArr.value.length - 1; i >= 0; i--) {\n const w = itemWidthArr.value[i];\n totalWith += w;\n if (totalWith >= overWidth) {\n hiddenNum = i;\n break;\n }\n }\n\n if (hiddenNum === itemWidthArr.value.length - 1) {\n scrollByX =\n lastItemWidth + itemWidthArr.value[itemWidthArr.value.length - 1];\n } else {\n scrollByX =\n itemWidthArr.value[hiddenNum] -\n (totalWith - overWidth) +\n itemWidthArr.value[hiddenNum + 1];\n }\n }\n tabbarItemsRef.value.scrollBy({\n left: scrollByX,\n behavior: \"smooth\",\n });\n}\n\nconst handleScroll = useThrottleFn(\n () => {\n arrowFlag.value = !arrowFlag.value;\n },\n 100,\n true\n);\n\nwatch(() => tabItemRefs.value?.length, saveItemsWidth);\n\nonMounted(() => {\n tabbarItemsRef.value?.addEventListener(\"wheel\", handleHorizontalWheel);\n tabbarItemsRef.value?.addEventListener(\"scroll\", handleScroll);\n});\n\nonUnmounted(() => {\n tabbarItemsRef.value?.removeEventListener(\"wheel\", handleHorizontalWheel);\n tabbarItemsRef.value?.removeEventListener(\"scroll\", handleScroll);\n});\n</script>\n<template>\n <div :class=\"classes\" class=\"tabbar-wrapper\">\n <div\n ref=\"indicatorRef\"\n :class=\"['indicator', 'left', arrowShow.left ? 'visible' : 'invisible']\"\n >\n <div title=\"向前\" class=\"arrow-left\" @click=\"handleClickArrow(true)\">\n <IconArrowLeft />\n </div>\n </div>\n <div\n :class=\"['indicator', 'right', arrowShow.right ? 'visible' : 'invisible']\"\n >\n <div title=\"向后\" class=\"arrow-right\" @click=\"handleClickArrow(false)\">\n <IconArrowRight />\n </div>\n </div>\n <div ref=\"tabbarItemsRef\" class=\"tabbar-items\">\n <div\n v-for=\"(item, index) in items\"\n :key=\"index\"\n ref=\"tabItemRefs\"\n :class=\"{ 'tabbar-item-active': item[idKey] === activeId }\"\n class=\"tabbar-item\"\n @click=\"handleChange(item[idKey], index)\"\n >\n <div v-if=\"item.icon\" class=\"tabbar-item-icon\">\n <component :is=\"item.icon\" />\n </div>\n <div v-if=\"item[labelKey]\" class=\"tabbar-item-label\">\n {{ item[labelKey] }}\n </div>\n </div>\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.tabbar-wrapper {\n @apply relative;\n .indicator {\n @apply pointer-events-none absolute top-0 z-10 flex h-full w-20 items-center from-transparent from-10% via-white/80 via-30% to-white to-70% pb-1.5 pt-1;\n\n &.left {\n @apply left-0 justify-start bg-gradient-to-l;\n }\n &.right {\n @apply right-0 justify-end bg-gradient-to-r;\n }\n .arrow-left,\n .arrow-right {\n @apply pointer-events-auto flex h-9 w-10 cursor-pointer select-none items-center justify-center;\n svg {\n font-size: 1.5em;\n }\n }\n }\n\n .tabbar-items {\n @apply flex flex-row items-center overflow-x-auto py-0.5;\n\n &::-webkit-scrollbar-track-piece {\n background-color: #f8f8f8;\n -webkit-border-radius: 2em;\n -moz-border-radius: 2em;\n border-radius: 2em;\n }\n\n &::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: #ddd;\n background-clip: padding-box;\n -webkit-border-radius: 2em;\n -moz-border-radius: 2em;\n border-radius: 2em;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n background-color: #bbb;\n }\n }\n\n .tabbar-item {\n @apply inline-flex h-9 cursor-pointer justify-center gap-2 self-center whitespace-nowrap text-sm transition-all;\n\n .tabbar-item-label,\n .tabbar-item-icon {\n @apply self-center;\n }\n }\n\n &.tabbar-default {\n border-bottom-width: 2px;\n @apply border-b-gray-100;\n\n .tabbar-items {\n margin-bottom: -4px;\n justify-content: flex-start;\n }\n\n .tabbar-item {\n @apply border-b-gray-100 px-5 py-1;\n\n border-bottom-width: 2px;\n\n &.tabbar-item-active {\n @apply border-b-secondary text-secondary;\n }\n }\n }\n\n &.tabbar-pills {\n .tabbar-items {\n @apply gap-1;\n justify-content: flex-start;\n }\n\n .tabbar-item {\n @apply rounded-base px-6 py-1 opacity-70;\n\n &.tabbar-item-active {\n @apply bg-gray-100 opacity-100;\n }\n\n &:hover {\n @apply bg-gray-100;\n }\n }\n }\n\n &.tabbar-outline {\n @apply rounded-base bg-gray-100 px-1 py-0.5;\n\n .tabbar-items {\n @apply justify-start gap-1;\n }\n\n .tabbar-item {\n @apply rounded-sm px-6 py-1 opacity-70;\n\n &.tabbar-item-active {\n @apply bg-white opacity-100 shadow-sm;\n }\n\n &:hover {\n @apply bg-white;\n }\n }\n }\n\n &.tabbar-direction-row {\n .tabbar-items {\n @apply flex-row;\n }\n }\n\n &.tabbar-direction-column {\n .tabbar-items {\n @apply flex-col;\n }\n\n .tabbar-item {\n width: 100%;\n }\n\n &.tabbar-default {\n border-bottom-width: 0;\n @apply border-b-0;\n border-right-width: 2px;\n @apply border-r-gray-100;\n\n .tabbar-items {\n margin-bottom: 0;\n margin-right: -2px;\n }\n\n .tabbar-item {\n border-bottom-width: 0;\n border-right-width: 2px;\n\n &.tabbar-item-active {\n @apply border-r-secondary;\n }\n }\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport type { ComputedRef } from \"vue\";\nimport { computed, inject } from \"vue\";\n\nconst props = defineProps<{\n id?: string;\n label?: string;\n}>();\n\nconst activeId = inject<ComputedRef<string | number | undefined>>(\"activeId\");\n\nconst isActive = computed(() => {\n return activeId?.value === props.id;\n});\n</script>\n<template>\n <div v-if=\"isActive\" class=\"tabs-item-wrapper\">\n <slot />\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport type { ComputedRef } from \"vue\";\nimport { computed, inject } from \"vue\";\n\nconst props = defineProps<{\n id?: string;\n label?: string;\n}>();\n\nconst activeId = inject<ComputedRef<string | number | undefined>>(\"activeId\");\n\nconst isActive = computed(() => {\n return activeId?.value === props.id;\n});\n</script>\n<template>\n <div v-if=\"isActive\" class=\"tabs-item-wrapper\">\n <slot />\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport type { ComputedRef } from \"vue\";\nimport { computed, provide, useSlots } from \"vue\";\nimport { VTabbar } from \"./index\";\nimport type { TabsDirection, TabsType } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n activeId?: number | string;\n type?: TabsType;\n direction?: TabsDirection;\n idKey?: string;\n labelKey?: string;\n }>(),\n {\n activeId: undefined,\n type: \"default\",\n direction: \"row\",\n idKey: \"id\",\n labelKey: \"label\",\n }\n);\n\nprovide<ComputedRef<string | number | undefined>>(\n \"activeId\",\n computed(() => props.activeId)\n);\n\nconst emit = defineEmits<{\n (event: \"update:activeId\", value: number | string): void;\n (event: \"change\", value: number | string): void;\n}>();\n\nconst slots = useSlots();\n\nconst tabItems = computed(() => {\n return slots.default?.().map(({ props: slotProps }) => {\n return {\n id: slotProps?.[props.idKey],\n label: slotProps?.[props.labelKey],\n };\n });\n});\n\nconst classes = computed(() => {\n return [`tabs-direction-${props.direction}`];\n});\n\nconst handleChange = (id: string | number) => {\n emit(\"update:activeId\", id);\n emit(\"change\", id);\n};\n</script>\n<template>\n <div :class=\"classes\" class=\"tabs-wrapper\">\n <div class=\"tabs-bar-wrapper\">\n <VTabbar\n :active-id=\"activeId\"\n :direction=\"direction\"\n :items=\"tabItems\"\n :type=\"type\"\n @change=\"handleChange\"\n />\n </div>\n <div class=\"tabs-items-wrapper\">\n <slot />\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.tabs-wrapper {\n @apply flex;\n\n &.tabs-direction-row {\n @apply flex-col;\n\n .tabs-items-wrapper {\n @apply mt-2;\n }\n }\n\n &.tabs-direction-column {\n .tabs-items-wrapper {\n @apply ml-2;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport type { ComputedRef } from \"vue\";\nimport { computed, provide, useSlots } from \"vue\";\nimport { VTabbar } from \"./index\";\nimport type { TabsDirection, TabsType } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n activeId?: number | string;\n type?: TabsType;\n direction?: TabsDirection;\n idKey?: string;\n labelKey?: string;\n }>(),\n {\n activeId: undefined,\n type: \"default\",\n direction: \"row\",\n idKey: \"id\",\n labelKey: \"label\",\n }\n);\n\nprovide<ComputedRef<string | number | undefined>>(\n \"activeId\",\n computed(() => props.activeId)\n);\n\nconst emit = defineEmits<{\n (event: \"update:activeId\", value: number | string): void;\n (event: \"change\", value: number | string): void;\n}>();\n\nconst slots = useSlots();\n\nconst tabItems = computed(() => {\n return slots.default?.().map(({ props: slotProps }) => {\n return {\n id: slotProps?.[props.idKey],\n label: slotProps?.[props.labelKey],\n };\n });\n});\n\nconst classes = computed(() => {\n return [`tabs-direction-${props.direction}`];\n});\n\nconst handleChange = (id: string | number) => {\n emit(\"update:activeId\", id);\n emit(\"change\", id);\n};\n</script>\n<template>\n <div :class=\"classes\" class=\"tabs-wrapper\">\n <div class=\"tabs-bar-wrapper\">\n <VTabbar\n :active-id=\"activeId\"\n :direction=\"direction\"\n :items=\"tabItems\"\n :type=\"type\"\n @change=\"handleChange\"\n />\n </div>\n <div class=\"tabs-items-wrapper\">\n <slot />\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.tabs-wrapper {\n @apply flex;\n\n &.tabs-direction-row {\n @apply flex-col;\n\n .tabs-items-wrapper {\n @apply mt-2;\n }\n }\n\n &.tabs-direction-column {\n .tabs-items-wrapper {\n @apply ml-2;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport type { CSSProperties } from \"vue\";\nimport { computed } from \"vue\";\nimport type { TagTheme } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n theme?: TagTheme;\n rounded?: boolean;\n styles?: CSSProperties;\n }>(),\n {\n theme: \"default\",\n rounded: false,\n styles: () => {\n return {};\n },\n }\n);\n\nconst classes = computed(() => {\n return [`tag-${props.theme}`, { \"tag-rounded\": props.rounded }];\n});\n</script>\n<template>\n <div :class=\"classes\" :style=\"styles\" class=\"tag-wrapper\">\n <div v-if=\"$slots.leftIcon\" class=\"tag-left-icon\">\n <slot name=\"leftIcon\" />\n </div>\n <span class=\"tag-content\">\n <slot />\n </span>\n <div v-if=\"$slots.rightIcon\" class=\"tag-right-icon\">\n <slot name=\"rightIcon\" />\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.tag-wrapper {\n @apply box-border inline-flex h-5 w-auto flex-shrink-0 cursor-pointer flex-wrap items-center justify-center rounded-base border border-solid px-1 text-center align-middle text-xs;\n\n &.tag-default {\n border: 1px solid #d9d9d9;\n }\n\n &.tag-primary {\n @apply border-primary bg-primary text-white;\n }\n\n &.tag-secondary {\n @apply border-secondary bg-secondary text-white;\n }\n\n &.tag-danger {\n background: #d71d1d;\n border: 1px solid #d71d1d;\n @apply text-white;\n }\n\n &.tag-rounded {\n @apply rounded-full;\n }\n\n .tag-content {\n @apply px-1;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport type { CSSProperties } from \"vue\";\nimport { computed } from \"vue\";\nimport type { TagTheme } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n theme?: TagTheme;\n rounded?: boolean;\n styles?: CSSProperties;\n }>(),\n {\n theme: \"default\",\n rounded: false,\n styles: () => {\n return {};\n },\n }\n);\n\nconst classes = computed(() => {\n return [`tag-${props.theme}`, { \"tag-rounded\": props.rounded }];\n});\n</script>\n<template>\n <div :class=\"classes\" :style=\"styles\" class=\"tag-wrapper\">\n <div v-if=\"$slots.leftIcon\" class=\"tag-left-icon\">\n <slot name=\"leftIcon\" />\n </div>\n <span class=\"tag-content\">\n <slot />\n </span>\n <div v-if=\"$slots.rightIcon\" class=\"tag-right-icon\">\n <slot name=\"rightIcon\" />\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.tag-wrapper {\n @apply box-border inline-flex h-5 w-auto flex-shrink-0 cursor-pointer flex-wrap items-center justify-center rounded-base border border-solid px-1 text-center align-middle text-xs;\n\n &.tag-default {\n border: 1px solid #d9d9d9;\n }\n\n &.tag-primary {\n @apply border-primary bg-primary text-white;\n }\n\n &.tag-secondary {\n @apply border-secondary bg-secondary text-white;\n }\n\n &.tag-danger {\n background: #d71d1d;\n border: 1px solid #d71d1d;\n @apply text-white;\n }\n\n &.tag-rounded {\n @apply rounded-full;\n }\n\n .tag-content {\n @apply px-1;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport {\n IconCheckboxCircle,\n IconClose,\n IconErrorWarning,\n IconForbidLine,\n IconInformation,\n} from \"@/icons/icons\";\nimport {\n markRaw,\n onMounted,\n ref,\n watchEffect,\n type Component,\n type Raw,\n} from \"vue\";\nimport type { ToastType } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n type?: ToastType;\n content?: string;\n duration?: number;\n closable?: boolean;\n frozenOnHover?: boolean;\n count?: 0;\n onClose?: () => void;\n }>(),\n {\n type: \"success\",\n content: \"\",\n duration: 3000,\n closable: true,\n frozenOnHover: true,\n count: 0,\n onClose: undefined,\n }\n);\n\nconst timer = ref();\n\nconst emit = defineEmits<{\n (event: \"close\"): void;\n}>();\n\nconst icons: Record<ToastType, { icon: Raw<Component>; color: string }> = {\n success: {\n icon: markRaw(IconCheckboxCircle),\n color: \"text-green-500\",\n },\n info: {\n icon: markRaw(IconInformation),\n color: \"text-sky-500\",\n },\n warning: {\n icon: markRaw(IconErrorWarning),\n color: \"text-orange-500\",\n },\n error: {\n icon: markRaw(IconForbidLine),\n color: \"text-red-500\",\n },\n};\n\nconst createTimer = () => {\n if (props.duration < 0) return;\n timer.value = setTimeout(() => {\n close();\n }, props.duration);\n};\n\nconst clearTimer = () => {\n clearTimeout(timer.value);\n};\n\nconst close = () => {\n emit(\"close\");\n};\n\nconst handleMouseEnter = () => {\n if (!props.frozenOnHover) {\n return;\n }\n clearTimer();\n};\n\nconst handleMouseLeave = () => {\n if (!props.frozenOnHover) {\n return;\n }\n createTimer();\n};\n\nwatchEffect(() => {\n if (props.count > 0) {\n clearTimer();\n createTimer();\n }\n});\n\nonMounted(createTimer);\n\ndefineExpose({ close });\n</script>\n\n<template>\n <transition\n appear\n enter-active-class=\"transform ease-out duration-300 transition\"\n enter-from-class=\"translate-x-0 -translate-y-2\"\n enter-to-class=\"translate-y-0\"\n leave-active-class=\"transition ease-in duration-100\"\n leave-from-class=\"opacity-100\"\n leave-to-class=\"opacity-0\"\n >\n <div\n class=\"toast-wrapper\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n >\n <div class=\"toast-body\">\n <div class=\"toast-icon\">\n <component :is=\"icons[type].icon\" :class=\"icons[type].color\" />\n </div>\n <div class=\"toast-content\">\n <div class=\"toast-description\">\n <slot>{{ content }}</slot>\n </div>\n </div>\n <div v-if=\"closable\" class=\"toast-control\">\n <IconClose class=\"\" @click=\"close\" />\n </div>\n </div>\n <div v-if=\"count\" class=\"toast-count\">\n <span>{{ count }}</span>\n </div>\n </div>\n </transition>\n</template>\n<style lang=\"scss\">\n.toast-container {\n @apply pointer-events-none fixed left-0 top-0 z-[9999] box-border flex w-full flex-col items-center justify-center gap-3 p-4 transition-all;\n\n .toast-wrapper {\n @apply pointer-events-auto relative inline-block max-w-xs;\n }\n\n .toast-body {\n @apply flex cursor-pointer items-center gap-2 overflow-hidden break-all rounded bg-white px-2.5 py-2 shadow transition-all hover:shadow-md;\n }\n\n .toast-content {\n @apply flex flex-col gap-1 text-sm;\n }\n\n .toast-description {\n @apply text-gray-800;\n }\n\n .toast-control {\n @apply cursor-pointer rounded-full p-0.5 text-gray-600 transition-all hover:bg-gray-100 hover:text-gray-900;\n }\n\n .toast-count {\n @apply absolute -right-1 -top-1 flex h-4 w-4 items-center justify-center rounded-full bg-red-500;\n\n span {\n @apply text-[0.7rem] text-white;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport {\n IconCheckboxCircle,\n IconClose,\n IconErrorWarning,\n IconForbidLine,\n IconInformation,\n} from \"@/icons/icons\";\nimport {\n markRaw,\n onMounted,\n ref,\n watchEffect,\n type Component,\n type Raw,\n} from \"vue\";\nimport type { ToastType } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n type?: ToastType;\n content?: string;\n duration?: number;\n closable?: boolean;\n frozenOnHover?: boolean;\n count?: 0;\n onClose?: () => void;\n }>(),\n {\n type: \"success\",\n content: \"\",\n duration: 3000,\n closable: true,\n frozenOnHover: true,\n count: 0,\n onClose: undefined,\n }\n);\n\nconst timer = ref();\n\nconst emit = defineEmits<{\n (event: \"close\"): void;\n}>();\n\nconst icons: Record<ToastType, { icon: Raw<Component>; color: string }> = {\n success: {\n icon: markRaw(IconCheckboxCircle),\n color: \"text-green-500\",\n },\n info: {\n icon: markRaw(IconInformation),\n color: \"text-sky-500\",\n },\n warning: {\n icon: markRaw(IconErrorWarning),\n color: \"text-orange-500\",\n },\n error: {\n icon: markRaw(IconForbidLine),\n color: \"text-red-500\",\n },\n};\n\nconst createTimer = () => {\n if (props.duration < 0) return;\n timer.value = setTimeout(() => {\n close();\n }, props.duration);\n};\n\nconst clearTimer = () => {\n clearTimeout(timer.value);\n};\n\nconst close = () => {\n emit(\"close\");\n};\n\nconst handleMouseEnter = () => {\n if (!props.frozenOnHover) {\n return;\n }\n clearTimer();\n};\n\nconst handleMouseLeave = () => {\n if (!props.frozenOnHover) {\n return;\n }\n createTimer();\n};\n\nwatchEffect(() => {\n if (props.count > 0) {\n clearTimer();\n createTimer();\n }\n});\n\nonMounted(createTimer);\n\ndefineExpose({ close });\n</script>\n\n<template>\n <transition\n appear\n enter-active-class=\"transform ease-out duration-300 transition\"\n enter-from-class=\"translate-x-0 -translate-y-2\"\n enter-to-class=\"translate-y-0\"\n leave-active-class=\"transition ease-in duration-100\"\n leave-from-class=\"opacity-100\"\n leave-to-class=\"opacity-0\"\n >\n <div\n class=\"toast-wrapper\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n >\n <div class=\"toast-body\">\n <div class=\"toast-icon\">\n <component :is=\"icons[type].icon\" :class=\"icons[type].color\" />\n </div>\n <div class=\"toast-content\">\n <div class=\"toast-description\">\n <slot>{{ content }}</slot>\n </div>\n </div>\n <div v-if=\"closable\" class=\"toast-control\">\n <IconClose class=\"\" @click=\"close\" />\n </div>\n </div>\n <div v-if=\"count\" class=\"toast-count\">\n <span>{{ count }}</span>\n </div>\n </div>\n </transition>\n</template>\n<style lang=\"scss\">\n.toast-container {\n @apply pointer-events-none fixed left-0 top-0 z-[9999] box-border flex w-full flex-col items-center justify-center gap-3 p-4 transition-all;\n\n .toast-wrapper {\n @apply pointer-events-auto relative inline-block max-w-xs;\n }\n\n .toast-body {\n @apply flex cursor-pointer items-center gap-2 overflow-hidden break-all rounded bg-white px-2.5 py-2 shadow transition-all hover:shadow-md;\n }\n\n .toast-content {\n @apply flex flex-col gap-1 text-sm;\n }\n\n .toast-description {\n @apply text-gray-800;\n }\n\n .toast-control {\n @apply cursor-pointer rounded-full p-0.5 text-gray-600 transition-all hover:bg-gray-100 hover:text-gray-900;\n }\n\n .toast-count {\n @apply absolute -right-1 -top-1 flex h-4 w-4 items-center justify-center rounded-full bg-red-500;\n\n span {\n @apply text-[0.7rem] text-white;\n }\n }\n}\n</style>\n","import { createVNode, render, type Component, type VNode } from \"vue\";\nimport ToastComponent from \"./Toast.vue\";\nimport type { ToastProps } from \"./types\";\n\nexport type ToastApiProps = Omit<ToastProps, \"type\" | \"content\">;\n\nexport interface ToastInstance {\n id: string;\n vnode: VNode;\n}\n\nexport type ToastApi = (\n content: string,\n props?: ToastApiProps\n) => ToastInstance;\n\nexport interface ToastEntry {\n (props: ToastProps): ToastInstance;\n info: ToastApi;\n success: ToastApi;\n error: ToastApi;\n warning: ToastApi;\n}\n\nlet index = 0;\n\nconst instances: ToastInstance[] = [];\n\nconst defaultProps: ToastProps = {\n frozenOnHover: true,\n duration: 3000,\n count: 0,\n};\n\nconst toast: ToastEntry = (userProps: ToastProps) => {\n const id = \"toast-\" + index++;\n\n const props = {\n ...defaultProps,\n ...userProps,\n id,\n };\n\n let container = document.body.querySelector(\".toast-container\");\n if (!container) {\n container = document.createElement(\"div\");\n container.className = \"toast-container\";\n document.body.appendChild(container);\n }\n\n // Grouping toasts\n if (instances.length > 0) {\n const instance = instances.find((item) => {\n const { vnode } = item;\n if (vnode?.props) {\n return (\n vnode.props.content === props.content &&\n vnode.props.type === props.type\n );\n }\n return undefined;\n });\n\n if (instance?.vnode.component?.props) {\n (instance.vnode.component.props.count as number) += 1;\n index = instances.length - 1;\n return instance;\n }\n }\n\n const { vnode, container: hostContainer } = createVNodeComponent(\n ToastComponent,\n props\n );\n\n if (hostContainer.firstElementChild) {\n container.appendChild(hostContainer.firstElementChild);\n }\n\n if (vnode?.props) {\n // close emit\n vnode.props.onClose = () => {\n removeInstance(id);\n render(null, hostContainer);\n };\n }\n\n const instance = {\n id,\n vnode,\n close: () => {\n vnode?.component?.exposed?.close();\n },\n };\n\n instances.push(instance);\n return instance;\n};\n\nfunction createVNodeComponent(\n component: Component,\n props: Record<string, unknown>\n) {\n const vnode = createVNode(component, props);\n const container = document.createElement(\"div\");\n render(vnode, container);\n return { vnode, container };\n}\n\nfunction removeInstance(id: string) {\n const index = instances.findIndex((instance) => instance.id === id);\n if (index >= 0) {\n instances.splice(index, 1);\n\n if (instances.length === 0) {\n const container = document.body.querySelector(\".toast-container\");\n container?.remove();\n }\n }\n}\n\ntoast.success = (content: string, props?: ToastApiProps) =>\n toast({ ...props, type: \"success\", content });\ntoast.info = (content: string, props?: ToastApiProps) =>\n toast({ ...props, type: \"info\", content });\ntoast.warning = (content: string, props?: ToastApiProps) =>\n toast({ ...props, type: \"warning\", content });\ntoast.error = (content: string, props?: ToastApiProps) =>\n toast({ ...props, type: \"error\", content });\n\nexport { toast as Toast };\n"],"x_google_ignoreList":[14,15,22,23,24,25],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.iife.js","names":["$slots","$slots","$slots","$slots","n","o","s","c","r","l","i","a","u","f","_","d","v","h","p","g","b","w","S","y","m","O","$","C","x","H","I","z","E","A","T","D","k","R","M","L","P","U","B","N","j","F","q","W","X","Y","J","K","Z","G","Q","tt","nt","ot","st","et","ct","rt","lt","it","_t","dt","vt","ht","pt","gt","bt","wt","St","yt","mt","Ot","$t","Ht","It","Et","Tt","Dt","kt","Rt","Mt","Vt","removeInstance","F","g","y","P","$attrs","$slots","n","c","h","f","d","g","m","y","x","w","b","E","T","C","W","S","t","A","H","O","P","B","e","xe","Ue","Ye","Xe","Ke","Je","Qe","ne","Ve","$attrs","$slots","$slots","$slots","$slots","$slots"],"sources":["../src/components/alert/Alert.vue","../src/components/alert/Alert.vue","../src/components/avatar/types.ts","../src/components/avatar/Avatar.vue","../src/components/avatar/Avatar.vue","../src/components/avatar/AvatarGroup.vue","../src/components/avatar/AvatarGroup.vue","../src/components/button/Button.vue","../src/components/button/Button.vue","../src/components/card/Card.vue","../src/components/card/Card.vue","../src/components/description/Description.vue","../src/components/description/DescriptionItem.vue","../src/components/description/DescriptionItem.vue","../../../node_modules/.pnpm/overlayscrollbars@2.5.0/node_modules/overlayscrollbars/overlayscrollbars.mjs","../../../node_modules/.pnpm/overlayscrollbars-vue@0.5.7_overlayscrollbars@2.5.0_vue@3.5.27_typescript@5.9.3_/node_modules/overlayscrollbars-vue/overlayscrollbars-vue.mjs","../src/components/modal/Modal.vue","../src/components/modal/Modal.vue","../src/components/dialog/Dialog.vue","../src/components/dialog/Dialog.vue","../src/components/dialog/dialog-manager.ts","../src/components/dialog/types.ts","../../../node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../../node_modules/.pnpm/@floating-ui+core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../node_modules/.pnpm/@floating-ui+dom@1.1.1/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs","../../../node_modules/.pnpm/floating-vue@5.2.2_vue@3.5.27_typescript@5.9.3_/node_modules/floating-vue/dist/floating-vue.mjs","../src/components/dropdown/DropdownDivider.vue","../src/components/dropdown/DropdownItem.vue","../src/components/dropdown/DropdownItem.vue","../src/components/empty/Empty.svg","../src/components/empty/Empty.vue","../src/components/empty/Empty.vue","../src/components/entity/Entity.vue","../src/components/entity/Entity.vue","../src/components/entity/EntityContainer.vue","../src/components/entity/EntityField.vue","../src/components/entity/EntityField.vue","../src/components/header/PageHeader.vue","../src/components/header/PageHeader.vue","../src/components/loading/Loading.vue","../src/components/menu/Menu.vue","../src/components/menu/Menu.vue","../src/components/menu/MenuItem.vue","../src/components/menu/MenuItem.vue","../src/components/menu/MenuLabel.vue","../src/components/pagination/Pagination.vue","../src/components/pagination/Pagination.vue","../src/components/space/types.ts","../src/components/space/Space.vue","../src/components/space/Space.vue","../src/components/status/StatusDot.vue","../src/components/status/StatusDot.vue","../src/components/switch/Switch.vue","../src/components/switch/Switch.vue","../src/components/tabs/Tabbar.vue","../src/components/tabs/Tabbar.vue","../src/components/tabs/TabItem.vue","../src/components/tabs/TabItem.vue","../src/components/tabs/Tabs.vue","../src/components/tabs/Tabs.vue","../src/components/tag/Tag.vue","../src/components/tag/Tag.vue","../src/components/toast/Toast.vue","../src/components/toast/Toast.vue","../src/components/toast/toast-manager.ts"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { FunctionalComponent, Raw, SVGAttributes } from \"vue\";\nimport { computed, markRaw } from \"vue\";\nimport {\n IconCheckboxCircle,\n IconClose,\n IconCloseCircle,\n IconErrorWarning,\n IconInformation,\n} from \"../../icons/icons\";\nimport type { AlertType } from \"./types\";\n\nconst TypeIcons: Record<AlertType, Raw<FunctionalComponent<SVGAttributes>>> = {\n success: markRaw(IconCheckboxCircle),\n info: markRaw(IconInformation),\n default: markRaw(IconInformation),\n warning: markRaw(IconErrorWarning),\n error: markRaw(IconCloseCircle),\n};\n\nconst props = withDefaults(\n defineProps<{\n type?: AlertType;\n title?: string;\n description?: string;\n closable?: boolean;\n }>(),\n {\n type: \"default\",\n title: \"\",\n description: \"\",\n closable: true,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"close\"): void;\n}>();\n\nconst classes = computed(() => {\n return [`alert-${props.type}`];\n});\n\nconst handleClose = () => {\n emit(\"close\");\n};\n</script>\n\n<template>\n <div :class=\"classes\" class=\"alert-wrapper\">\n <div class=\"alert-header\">\n <div class=\"alert-icon\">\n <slot name=\"icon\">\n <component :is=\"TypeIcons[type]\" />\n </slot>\n </div>\n <div v-if=\"title || $slots.title\" class=\"alert-title\">\n <slot name=\"title\">\n {{ title }}\n </slot>\n </div>\n <div v-if=\"closable\" class=\"alert-close\" @click=\"handleClose\">\n <IconClose />\n </div>\n </div>\n <div v-if=\"description || $slots.description\" class=\"alert-description\">\n <slot name=\"description\">\n {{ description }}\n </slot>\n </div>\n <div v-if=\"$slots.actions\" class=\"alert-actions\">\n <slot name=\"actions\" />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.alert-wrapper {\n @apply box-border flex flex-col rounded-base border;\n padding: 12px 16px;\n\n .alert-header {\n @apply flex;\n\n .alert-icon {\n @apply mr-3 self-center text-lg;\n }\n\n .alert-title {\n @apply mr-3 flex-1 self-center text-sm font-medium;\n }\n\n .alert-close {\n @apply cursor-pointer self-center rounded-full p-0.5;\n\n &:hover {\n @apply bg-gray-300 text-white transition-all;\n }\n }\n }\n\n .alert-description {\n @apply mt-2 text-xs;\n }\n\n .alert-actions {\n @apply mt-3 border-t pt-2;\n }\n\n &.alert-default {\n @apply border-gray-300 bg-gray-50;\n\n .alert-icon,\n .alert-description {\n @apply text-gray-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-gray-700;\n }\n }\n\n &.alert-success {\n @apply border-green-300 bg-green-50;\n\n .alert-icon,\n .alert-description {\n @apply text-green-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-green-700;\n }\n }\n\n &.alert-info {\n @apply border-sky-300 bg-sky-50;\n\n .alert-icon,\n .alert-description {\n @apply text-sky-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-sky-700;\n }\n }\n\n &.alert-warning {\n @apply border-orange-300 bg-orange-50;\n\n .alert-icon,\n .alert-description {\n @apply text-orange-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-orange-700;\n }\n }\n\n &.alert-error {\n @apply border-red-300 bg-red-50;\n\n .alert-icon,\n .alert-description {\n @apply text-red-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-red-700;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport type { FunctionalComponent, Raw, SVGAttributes } from \"vue\";\nimport { computed, markRaw } from \"vue\";\nimport {\n IconCheckboxCircle,\n IconClose,\n IconCloseCircle,\n IconErrorWarning,\n IconInformation,\n} from \"../../icons/icons\";\nimport type { AlertType } from \"./types\";\n\nconst TypeIcons: Record<AlertType, Raw<FunctionalComponent<SVGAttributes>>> = {\n success: markRaw(IconCheckboxCircle),\n info: markRaw(IconInformation),\n default: markRaw(IconInformation),\n warning: markRaw(IconErrorWarning),\n error: markRaw(IconCloseCircle),\n};\n\nconst props = withDefaults(\n defineProps<{\n type?: AlertType;\n title?: string;\n description?: string;\n closable?: boolean;\n }>(),\n {\n type: \"default\",\n title: \"\",\n description: \"\",\n closable: true,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"close\"): void;\n}>();\n\nconst classes = computed(() => {\n return [`alert-${props.type}`];\n});\n\nconst handleClose = () => {\n emit(\"close\");\n};\n</script>\n\n<template>\n <div :class=\"classes\" class=\"alert-wrapper\">\n <div class=\"alert-header\">\n <div class=\"alert-icon\">\n <slot name=\"icon\">\n <component :is=\"TypeIcons[type]\" />\n </slot>\n </div>\n <div v-if=\"title || $slots.title\" class=\"alert-title\">\n <slot name=\"title\">\n {{ title }}\n </slot>\n </div>\n <div v-if=\"closable\" class=\"alert-close\" @click=\"handleClose\">\n <IconClose />\n </div>\n </div>\n <div v-if=\"description || $slots.description\" class=\"alert-description\">\n <slot name=\"description\">\n {{ description }}\n </slot>\n </div>\n <div v-if=\"$slots.actions\" class=\"alert-actions\">\n <slot name=\"actions\" />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.alert-wrapper {\n @apply box-border flex flex-col rounded-base border;\n padding: 12px 16px;\n\n .alert-header {\n @apply flex;\n\n .alert-icon {\n @apply mr-3 self-center text-lg;\n }\n\n .alert-title {\n @apply mr-3 flex-1 self-center text-sm font-medium;\n }\n\n .alert-close {\n @apply cursor-pointer self-center rounded-full p-0.5;\n\n &:hover {\n @apply bg-gray-300 text-white transition-all;\n }\n }\n }\n\n .alert-description {\n @apply mt-2 text-xs;\n }\n\n .alert-actions {\n @apply mt-3 border-t pt-2;\n }\n\n &.alert-default {\n @apply border-gray-300 bg-gray-50;\n\n .alert-icon,\n .alert-description {\n @apply text-gray-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-gray-700;\n }\n }\n\n &.alert-success {\n @apply border-green-300 bg-green-50;\n\n .alert-icon,\n .alert-description {\n @apply text-green-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-green-700;\n }\n }\n\n &.alert-info {\n @apply border-sky-300 bg-sky-50;\n\n .alert-icon,\n .alert-description {\n @apply text-sky-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-sky-700;\n }\n }\n\n &.alert-warning {\n @apply border-orange-300 bg-orange-50;\n\n .alert-icon,\n .alert-description {\n @apply text-orange-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-orange-700;\n }\n }\n\n &.alert-error {\n @apply border-red-300 bg-red-50;\n\n .alert-icon,\n .alert-description {\n @apply text-red-600;\n }\n\n .alert-close,\n .alert-title {\n @apply text-red-700;\n }\n }\n}\n</style>\n","import type { InjectionKey } from \"vue\";\n\nexport type AvatarSize = \"lg\" | \"md\" | \"sm\" | \"xs\";\n\nexport interface AvatarProps {\n src?: string;\n alt?: string;\n size?: AvatarSize;\n width?: string;\n height?: string;\n circle?: boolean;\n}\n\nexport type AvatarGroupProps = Omit<AvatarProps, \"src\" | \"alt\">;\n\nexport const AvatarGroupContextInjectionKey: InjectionKey<AvatarGroupProps> =\n Symbol(\"avatar-group-context\");\n","<script lang=\"ts\" setup>\nimport { computed, inject, onMounted, ref, watch } from \"vue\";\nimport { IconErrorWarning } from \"../../icons/icons\";\nimport { AvatarGroupContextInjectionKey, type AvatarProps } from \"./types\";\n\nconst props = withDefaults(defineProps<AvatarProps>(), {\n size: \"md\",\n circle: false,\n});\n\nconst groupProps = inject(AvatarGroupContextInjectionKey, undefined);\n\nconst size = computed(() => groupProps?.size || props.size);\nconst circle = computed(() => groupProps?.circle || props.circle);\nconst width = computed(() => groupProps?.width || props.width);\nconst height = computed(() => groupProps?.height || props.height);\n\nconst isLoading = ref(false);\nconst error = ref(false);\nlet init = true;\n\nconst loadImage = async (isInit: boolean) => {\n if (!props.src) {\n error.value = true;\n return;\n }\n\n isLoading.value = true;\n try {\n if (!props.src) {\n error.value = true;\n return Promise.reject();\n }\n if (!isInit) {\n error.value = false;\n }\n const image = new Image();\n image.src = props.src;\n return new Promise((resolve, reject) => {\n image.onload = () => resolve(image);\n image.onerror = (err) => {\n error.value = true;\n reject(err);\n };\n });\n } catch (_) {\n error.value = true;\n } finally {\n isLoading.value = false;\n }\n};\n\nwatch([() => props.alt, () => props.src], async () => loadImage(init));\n\nonMounted(async () => {\n loadImage(init);\n init = false;\n});\n\nconst classes = computed(() => {\n const result = [`avatar-${circle.value ? \"circle\" : \"square\"}`];\n if (size.value) {\n result.push(`avatar-${size.value}`);\n }\n return result;\n});\n\nconst styles = computed(() => {\n const result: Record<string, string> = {};\n if (width.value) {\n result.width = width.value;\n }\n if (height.value) {\n result.height = height.value;\n }\n return result;\n});\n\nconst placeholderText = computed(() => {\n if (!props.alt) {\n return undefined;\n }\n const words = props.alt.split(\" \");\n if (words.length === 1) {\n return words[0].charAt(0).toUpperCase();\n }\n if (words.length > 1) {\n return words[0].charAt(0).toUpperCase() + words[1].charAt(0).toUpperCase();\n }\n return undefined;\n});\n</script>\n\n<template>\n <div class=\"avatar-wrapper\" :class=\"classes\" :style=\"styles\">\n <div v-if=\"isLoading || error\" class=\"avatar-fallback\">\n <svg\n v-if=\"isLoading\"\n class=\"avatar-loading\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-75\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n <span v-else-if=\"placeholderText\" class=\"avatar-placeholder\">\n {{ placeholderText }}\n </span>\n <IconErrorWarning v-else class=\"avatar-error\" />\n </div>\n <img v-else :src=\"src\" :alt=\"alt\" />\n </div>\n</template>\n\n<style lang=\"scss\">\n.avatar-wrapper {\n @apply inline-flex items-center justify-center overflow-hidden bg-gray-100;\n\n img {\n @apply h-full w-full object-cover;\n }\n\n .avatar-fallback {\n @apply flex h-full w-full items-center justify-center;\n }\n\n .avatar-loading {\n @apply h-5 w-5 animate-spin;\n }\n\n .avatar-placeholder {\n @apply text-sm font-medium text-gray-800;\n }\n\n .avatar-error {\n @apply h-5 w-5 text-red-500;\n }\n\n &.avatar-circle {\n @apply rounded-full;\n }\n\n &.avatar-square {\n @apply rounded-base;\n }\n\n &.avatar-xs {\n @apply h-6 w-6;\n\n .avatar-placeholder {\n @apply text-xs;\n }\n }\n\n &.avatar-sm {\n @apply h-8 w-8;\n\n .avatar-placeholder {\n @apply text-xs;\n }\n }\n\n &.avatar-md {\n @apply h-10 w-10;\n }\n\n &.avatar-lg {\n @apply h-12 w-12;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed, inject, onMounted, ref, watch } from \"vue\";\nimport { IconErrorWarning } from \"../../icons/icons\";\nimport { AvatarGroupContextInjectionKey, type AvatarProps } from \"./types\";\n\nconst props = withDefaults(defineProps<AvatarProps>(), {\n size: \"md\",\n circle: false,\n});\n\nconst groupProps = inject(AvatarGroupContextInjectionKey, undefined);\n\nconst size = computed(() => groupProps?.size || props.size);\nconst circle = computed(() => groupProps?.circle || props.circle);\nconst width = computed(() => groupProps?.width || props.width);\nconst height = computed(() => groupProps?.height || props.height);\n\nconst isLoading = ref(false);\nconst error = ref(false);\nlet init = true;\n\nconst loadImage = async (isInit: boolean) => {\n if (!props.src) {\n error.value = true;\n return;\n }\n\n isLoading.value = true;\n try {\n if (!props.src) {\n error.value = true;\n return Promise.reject();\n }\n if (!isInit) {\n error.value = false;\n }\n const image = new Image();\n image.src = props.src;\n return new Promise((resolve, reject) => {\n image.onload = () => resolve(image);\n image.onerror = (err) => {\n error.value = true;\n reject(err);\n };\n });\n } catch (_) {\n error.value = true;\n } finally {\n isLoading.value = false;\n }\n};\n\nwatch([() => props.alt, () => props.src], async () => loadImage(init));\n\nonMounted(async () => {\n loadImage(init);\n init = false;\n});\n\nconst classes = computed(() => {\n const result = [`avatar-${circle.value ? \"circle\" : \"square\"}`];\n if (size.value) {\n result.push(`avatar-${size.value}`);\n }\n return result;\n});\n\nconst styles = computed(() => {\n const result: Record<string, string> = {};\n if (width.value) {\n result.width = width.value;\n }\n if (height.value) {\n result.height = height.value;\n }\n return result;\n});\n\nconst placeholderText = computed(() => {\n if (!props.alt) {\n return undefined;\n }\n const words = props.alt.split(\" \");\n if (words.length === 1) {\n return words[0].charAt(0).toUpperCase();\n }\n if (words.length > 1) {\n return words[0].charAt(0).toUpperCase() + words[1].charAt(0).toUpperCase();\n }\n return undefined;\n});\n</script>\n\n<template>\n <div class=\"avatar-wrapper\" :class=\"classes\" :style=\"styles\">\n <div v-if=\"isLoading || error\" class=\"avatar-fallback\">\n <svg\n v-if=\"isLoading\"\n class=\"avatar-loading\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-75\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n <span v-else-if=\"placeholderText\" class=\"avatar-placeholder\">\n {{ placeholderText }}\n </span>\n <IconErrorWarning v-else class=\"avatar-error\" />\n </div>\n <img v-else :src=\"src\" :alt=\"alt\" />\n </div>\n</template>\n\n<style lang=\"scss\">\n.avatar-wrapper {\n @apply inline-flex items-center justify-center overflow-hidden bg-gray-100;\n\n img {\n @apply h-full w-full object-cover;\n }\n\n .avatar-fallback {\n @apply flex h-full w-full items-center justify-center;\n }\n\n .avatar-loading {\n @apply h-5 w-5 animate-spin;\n }\n\n .avatar-placeholder {\n @apply text-sm font-medium text-gray-800;\n }\n\n .avatar-error {\n @apply h-5 w-5 text-red-500;\n }\n\n &.avatar-circle {\n @apply rounded-full;\n }\n\n &.avatar-square {\n @apply rounded-base;\n }\n\n &.avatar-xs {\n @apply h-6 w-6;\n\n .avatar-placeholder {\n @apply text-xs;\n }\n }\n\n &.avatar-sm {\n @apply h-8 w-8;\n\n .avatar-placeholder {\n @apply text-xs;\n }\n }\n\n &.avatar-md {\n @apply h-10 w-10;\n }\n\n &.avatar-lg {\n @apply h-12 w-12;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { provide } from \"vue\";\nimport { AvatarGroupContextInjectionKey, type AvatarGroupProps } from \"./types\";\n\nconst props = withDefaults(defineProps<AvatarGroupProps>(), {\n size: \"md\",\n circle: false,\n});\n\nprovide(AvatarGroupContextInjectionKey, props);\n</script>\n\n<template>\n <div class=\"avatar-group-wrapper\">\n <slot />\n </div>\n</template>\n\n<style lang=\"scss\">\n.avatar-group-wrapper {\n @apply inline-flex -space-x-2.5;\n\n > * {\n @apply ring-2 ring-white transition-all hover:z-10;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { provide } from \"vue\";\nimport { AvatarGroupContextInjectionKey, type AvatarGroupProps } from \"./types\";\n\nconst props = withDefaults(defineProps<AvatarGroupProps>(), {\n size: \"md\",\n circle: false,\n});\n\nprovide(AvatarGroupContextInjectionKey, props);\n</script>\n\n<template>\n <div class=\"avatar-group-wrapper\">\n <slot />\n </div>\n</template>\n\n<style lang=\"scss\">\n.avatar-group-wrapper {\n @apply inline-flex -space-x-2.5;\n\n > * {\n @apply ring-2 ring-white transition-all hover:z-10;\n }\n}\n</style>\n","<template>\n <button\n :class=\"classes\"\n :disabled=\"disabled\"\n class=\"btn\"\n type=\"button\"\n @click=\"handleClick\"\n >\n <span v-if=\"$slots.icon || loading\" class=\"btn-icon\">\n <svg\n v-if=\"loading\"\n class=\"animate-spin\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-75\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n <slot v-else name=\"icon\" />\n </span>\n <span class=\"btn-content\">\n <slot />\n </span>\n </button>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { RouteLocationRaw } from \"vue-router\";\nimport { useRouter } from \"vue-router\";\nimport type { ButtonSize, ButtonType } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n type?: ButtonType;\n size?: ButtonSize;\n circle?: boolean;\n block?: boolean;\n disabled?: boolean;\n loading?: boolean;\n route?: RouteLocationRaw | undefined;\n ghost?: boolean;\n }>(),\n {\n type: \"default\",\n size: \"md\",\n circle: false,\n block: false,\n disabled: false,\n loading: false,\n route: undefined,\n ghost: false,\n }\n);\n\nconst router = useRouter();\nconst emit = defineEmits<{\n (event: \"click\"): void;\n}>();\n\nconst classes = computed(() => {\n return [\n `btn-${props.size}`,\n `btn-${props.type}`,\n { \"btn-circle\": props.circle },\n { \"btn-block\": props.block },\n { \"btn-loading\": props.loading },\n { \"btn-ghost\": props.ghost },\n ];\n});\n\nfunction handleClick() {\n if (props.disabled || props.loading) return;\n if (props.route) {\n router.push(props.route);\n }\n emit(\"click\");\n}\n</script>\n\n<style lang=\"scss\">\n@use \"sass:map\";\n$btn-sizes: (\n xs: (\n height: theme(\"spacing.6\"),\n padding-x: theme(\"spacing.2\"),\n font-size: theme(\"fontSize.xs\"),\n icon-size: theme(\"spacing.3\"),\n icon-margin: theme(\"spacing.2\"),\n ),\n sm: (\n height: theme(\"spacing.7\"),\n padding-x: theme(\"spacing.3\"),\n font-size: theme(\"fontSize.xs\"),\n icon-size: theme(\"spacing.3\"),\n icon-margin: theme(\"spacing.2\"),\n ),\n md: (\n height: theme(\"spacing.9\"),\n padding-x: theme(\"spacing.4\"),\n font-size: theme(\"fontSize.sm\"),\n icon-size: theme(\"spacing.5\"),\n icon-margin: theme(\"spacing.3\"),\n ),\n lg: (\n height: theme(\"spacing.11\"),\n padding-x: theme(\"spacing.5\"),\n font-size: theme(\"fontSize.lg\"),\n icon-size: theme(\"spacing.5\"),\n icon-margin: theme(\"spacing.3\"),\n ),\n);\n\n$btn-themes: (\n default: (\n bg: transparent,\n color: inherit,\n border: 1px solid #d9d9d9,\n hover-bg: theme(\"colors.gray.100\"),\n icon-color: theme(\"colors.secondary\"),\n ghost-color: inherit,\n ghost-hover-bg: theme(\"colors.gray.100\"),\n ghost-icon-color: theme(\"colors.secondary\"),\n ),\n primary: (\n bg: theme(\"colors.primary\"),\n color: #fff,\n border: none,\n hover-bg: theme(\"colors.primary\"),\n icon-color: #fff,\n ghost-color: theme(\"colors.primary\"),\n ghost-hover-bg: theme(\"colors.primary / 10%\"),\n ghost-icon-color: theme(\"colors.primary\"),\n ),\n secondary: (\n bg: theme(\"colors.secondary\"),\n color: #fff,\n border: none,\n hover-bg: theme(\"colors.secondary\"),\n icon-color: #fff,\n ghost-color: theme(\"colors.secondary\"),\n ghost-hover-bg: theme(\"colors.secondary / 10%\"),\n ghost-icon-color: theme(\"colors.secondary\"),\n ),\n danger: (\n bg: theme(\"colors.danger\"),\n color: #fff,\n border: none,\n hover-bg: theme(\"colors.danger\"),\n icon-color: #fff,\n ghost-color: theme(\"colors.danger\"),\n ghost-hover-bg: theme(\"colors.danger / 10%\"),\n ghost-icon-color: theme(\"colors.danger\"),\n ),\n);\n\n.btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n flex-wrap: wrap;\n cursor: pointer;\n user-select: none;\n appearance: none;\n border-radius: theme(\"borderRadius.base\");\n transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n outline-width: 0;\n border-style: none;\n $md-config: map.get($btn-sizes, md);\n height: map.get($md-config, height);\n padding-left: map.get($md-config, padding-x);\n padding-right: map.get($md-config, padding-x);\n font-size: map.get($md-config, font-size);\n\n &:hover {\n opacity: 0.9;\n }\n\n &:active {\n opacity: 1;\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n &.btn-loading {\n cursor: not-allowed;\n\n &:hover {\n opacity: 1;\n }\n }\n\n &.btn-block {\n width: 100%;\n }\n\n .btn-icon {\n height: map.get($md-config, icon-size);\n width: map.get($md-config, icon-size);\n margin-right: map.get($md-config, icon-margin);\n color: #fff;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n > * {\n height: 100%;\n width: 100%;\n }\n }\n}\n\n@each $size, $config in $btn-sizes {\n .btn-#{$size} {\n height: map.get($config, height);\n padding-left: map.get($config, padding-x);\n padding-right: map.get($config, padding-x);\n font-size: map.get($config, font-size);\n\n .btn-icon {\n height: map.get($config, icon-size);\n width: map.get($config, icon-size);\n margin-right: map.get($config, icon-margin);\n }\n\n &.btn-circle {\n width: map.get($config, height);\n padding: 0;\n border-radius: 9999px;\n }\n }\n}\n\n@each $theme, $config in $btn-themes {\n .btn-#{$theme} {\n background-color: map.get($config, bg) !important;\n color: map.get($config, color);\n border: map.get($config, border);\n\n &:hover {\n background-color: map.get($config, hover-bg) !important;\n }\n\n .btn-icon {\n color: map.get($config, icon-color);\n }\n }\n}\n\n.btn-ghost {\n background-color: transparent !important;\n\n @each $theme, $config in $btn-themes {\n &.btn-#{$theme} {\n color: map.get($config, ghost-color);\n border: none;\n\n &:hover {\n background-color: map.get($config, ghost-hover-bg) !important;\n }\n\n .btn-icon {\n color: map.get($config, ghost-icon-color);\n }\n }\n }\n}\n</style>\n","<template>\n <button\n :class=\"classes\"\n :disabled=\"disabled\"\n class=\"btn\"\n type=\"button\"\n @click=\"handleClick\"\n >\n <span v-if=\"$slots.icon || loading\" class=\"btn-icon\">\n <svg\n v-if=\"loading\"\n class=\"animate-spin\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-75\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n <slot v-else name=\"icon\" />\n </span>\n <span class=\"btn-content\">\n <slot />\n </span>\n </button>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { RouteLocationRaw } from \"vue-router\";\nimport { useRouter } from \"vue-router\";\nimport type { ButtonSize, ButtonType } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n type?: ButtonType;\n size?: ButtonSize;\n circle?: boolean;\n block?: boolean;\n disabled?: boolean;\n loading?: boolean;\n route?: RouteLocationRaw | undefined;\n ghost?: boolean;\n }>(),\n {\n type: \"default\",\n size: \"md\",\n circle: false,\n block: false,\n disabled: false,\n loading: false,\n route: undefined,\n ghost: false,\n }\n);\n\nconst router = useRouter();\nconst emit = defineEmits<{\n (event: \"click\"): void;\n}>();\n\nconst classes = computed(() => {\n return [\n `btn-${props.size}`,\n `btn-${props.type}`,\n { \"btn-circle\": props.circle },\n { \"btn-block\": props.block },\n { \"btn-loading\": props.loading },\n { \"btn-ghost\": props.ghost },\n ];\n});\n\nfunction handleClick() {\n if (props.disabled || props.loading) return;\n if (props.route) {\n router.push(props.route);\n }\n emit(\"click\");\n}\n</script>\n\n<style lang=\"scss\">\n@use \"sass:map\";\n$btn-sizes: (\n xs: (\n height: theme(\"spacing.6\"),\n padding-x: theme(\"spacing.2\"),\n font-size: theme(\"fontSize.xs\"),\n icon-size: theme(\"spacing.3\"),\n icon-margin: theme(\"spacing.2\"),\n ),\n sm: (\n height: theme(\"spacing.7\"),\n padding-x: theme(\"spacing.3\"),\n font-size: theme(\"fontSize.xs\"),\n icon-size: theme(\"spacing.3\"),\n icon-margin: theme(\"spacing.2\"),\n ),\n md: (\n height: theme(\"spacing.9\"),\n padding-x: theme(\"spacing.4\"),\n font-size: theme(\"fontSize.sm\"),\n icon-size: theme(\"spacing.5\"),\n icon-margin: theme(\"spacing.3\"),\n ),\n lg: (\n height: theme(\"spacing.11\"),\n padding-x: theme(\"spacing.5\"),\n font-size: theme(\"fontSize.lg\"),\n icon-size: theme(\"spacing.5\"),\n icon-margin: theme(\"spacing.3\"),\n ),\n);\n\n$btn-themes: (\n default: (\n bg: transparent,\n color: inherit,\n border: 1px solid #d9d9d9,\n hover-bg: theme(\"colors.gray.100\"),\n icon-color: theme(\"colors.secondary\"),\n ghost-color: inherit,\n ghost-hover-bg: theme(\"colors.gray.100\"),\n ghost-icon-color: theme(\"colors.secondary\"),\n ),\n primary: (\n bg: theme(\"colors.primary\"),\n color: #fff,\n border: none,\n hover-bg: theme(\"colors.primary\"),\n icon-color: #fff,\n ghost-color: theme(\"colors.primary\"),\n ghost-hover-bg: theme(\"colors.primary / 10%\"),\n ghost-icon-color: theme(\"colors.primary\"),\n ),\n secondary: (\n bg: theme(\"colors.secondary\"),\n color: #fff,\n border: none,\n hover-bg: theme(\"colors.secondary\"),\n icon-color: #fff,\n ghost-color: theme(\"colors.secondary\"),\n ghost-hover-bg: theme(\"colors.secondary / 10%\"),\n ghost-icon-color: theme(\"colors.secondary\"),\n ),\n danger: (\n bg: theme(\"colors.danger\"),\n color: #fff,\n border: none,\n hover-bg: theme(\"colors.danger\"),\n icon-color: #fff,\n ghost-color: theme(\"colors.danger\"),\n ghost-hover-bg: theme(\"colors.danger / 10%\"),\n ghost-icon-color: theme(\"colors.danger\"),\n ),\n);\n\n.btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n flex-wrap: wrap;\n cursor: pointer;\n user-select: none;\n appearance: none;\n border-radius: theme(\"borderRadius.base\");\n transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n outline-width: 0;\n border-style: none;\n $md-config: map.get($btn-sizes, md);\n height: map.get($md-config, height);\n padding-left: map.get($md-config, padding-x);\n padding-right: map.get($md-config, padding-x);\n font-size: map.get($md-config, font-size);\n\n &:hover {\n opacity: 0.9;\n }\n\n &:active {\n opacity: 1;\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n &.btn-loading {\n cursor: not-allowed;\n\n &:hover {\n opacity: 1;\n }\n }\n\n &.btn-block {\n width: 100%;\n }\n\n .btn-icon {\n height: map.get($md-config, icon-size);\n width: map.get($md-config, icon-size);\n margin-right: map.get($md-config, icon-margin);\n color: #fff;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n > * {\n height: 100%;\n width: 100%;\n }\n }\n}\n\n@each $size, $config in $btn-sizes {\n .btn-#{$size} {\n height: map.get($config, height);\n padding-left: map.get($config, padding-x);\n padding-right: map.get($config, padding-x);\n font-size: map.get($config, font-size);\n\n .btn-icon {\n height: map.get($config, icon-size);\n width: map.get($config, icon-size);\n margin-right: map.get($config, icon-margin);\n }\n\n &.btn-circle {\n width: map.get($config, height);\n padding: 0;\n border-radius: 9999px;\n }\n }\n}\n\n@each $theme, $config in $btn-themes {\n .btn-#{$theme} {\n background-color: map.get($config, bg) !important;\n color: map.get($config, color);\n border: map.get($config, border);\n\n &:hover {\n background-color: map.get($config, hover-bg) !important;\n }\n\n .btn-icon {\n color: map.get($config, icon-color);\n }\n }\n}\n\n.btn-ghost {\n background-color: transparent !important;\n\n @each $theme, $config in $btn-themes {\n &.btn-#{$theme} {\n color: map.get($config, ghost-color);\n border: none;\n\n &:hover {\n background-color: map.get($config, ghost-hover-bg) !important;\n }\n\n .btn-icon {\n color: map.get($config, ghost-icon-color);\n }\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\ndefineProps<{\n title?: string;\n bodyClass?: string[];\n}>();\n</script>\n\n<template>\n <div class=\"card-wrapper\">\n <div v-if=\"title || $slots.header\" class=\"card-header\">\n <slot name=\"header\">\n <div class=\"card-header-title\">\n {{ title }}\n </div>\n <div class=\"card-header-actions\">\n <slot name=\"actions\" />\n </div>\n </slot>\n </div>\n <div :class=\"bodyClass\" class=\"card-body\">\n <slot />\n </div>\n <div v-if=\"$slots.footer\" class=\"card-footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.card-wrapper {\n @apply box-border flex flex-col rounded-base bg-white shadow-sm ring-1 ring-[#eaecf0];\n\n .card-header {\n @apply flex justify-between overflow-hidden rounded-t-base;\n border-bottom: 1px solid #eaecf0;\n\n .card-header-title {\n @apply self-center text-base font-bold;\n padding: 12px 16px;\n }\n\n .card-header-actions {\n @apply self-center;\n }\n }\n\n .card-body {\n @apply overflow-hidden rounded-base;\n padding: 12px 16px;\n }\n\n .card-footer {\n @apply overflow-hidden rounded-b-base;\n border-top: 1px solid #eaecf0;\n padding: 12px 16px;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\ndefineProps<{\n title?: string;\n bodyClass?: string[];\n}>();\n</script>\n\n<template>\n <div class=\"card-wrapper\">\n <div v-if=\"title || $slots.header\" class=\"card-header\">\n <slot name=\"header\">\n <div class=\"card-header-title\">\n {{ title }}\n </div>\n <div class=\"card-header-actions\">\n <slot name=\"actions\" />\n </div>\n </slot>\n </div>\n <div :class=\"bodyClass\" class=\"card-body\">\n <slot />\n </div>\n <div v-if=\"$slots.footer\" class=\"card-footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.card-wrapper {\n @apply box-border flex flex-col rounded-base bg-white shadow-sm ring-1 ring-[#eaecf0];\n\n .card-header {\n @apply flex justify-between overflow-hidden rounded-t-base;\n border-bottom: 1px solid #eaecf0;\n\n .card-header-title {\n @apply self-center text-base font-bold;\n padding: 12px 16px;\n }\n\n .card-header-actions {\n @apply self-center;\n }\n }\n\n .card-body {\n @apply overflow-hidden rounded-base;\n padding: 12px 16px;\n }\n\n .card-footer {\n @apply overflow-hidden rounded-b-base;\n border-top: 1px solid #eaecf0;\n padding: 12px 16px;\n }\n}\n</style>\n","<script lang=\"ts\" setup></script>\n\n<template>\n <dl class=\"description-wrapper\">\n <slot />\n </dl>\n</template>\n\n<style>\n.description-wrapper {\n @apply divide-y divide-gray-100;\n}\n</style>\n","<script lang=\"ts\" setup>\nwithDefaults(\n defineProps<{\n label: string;\n content?: string;\n verticalCenter?: boolean;\n }>(),\n {\n content: undefined,\n verticalCenter: false,\n }\n);\n</script>\n\n<template>\n <div\n class=\"description-item-wrapper\"\n :class=\"{ 'items-center': verticalCenter }\"\n >\n <dt class=\"description-item__label\">{{ label }}</dt>\n <dd class=\"description-item__content\">\n <slot v-if=\"$slots.default\" />\n <template v-else>\n {{ content }}\n </template>\n </dd>\n </div>\n</template>\n\n<style lang=\"scss\">\n.description-item-wrapper {\n @apply bg-white px-4 py-5 hover:bg-gray-50 sm:grid sm:grid-cols-6 sm:gap-4 sm:px-6;\n\n .description-item__label {\n @apply text-sm font-medium text-gray-900;\n }\n\n .description-item__content {\n @apply mt-1 text-sm text-gray-900 sm:col-span-6 sm:mt-0 md:col-span-5 lg:col-span-3;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nwithDefaults(\n defineProps<{\n label: string;\n content?: string;\n verticalCenter?: boolean;\n }>(),\n {\n content: undefined,\n verticalCenter: false,\n }\n);\n</script>\n\n<template>\n <div\n class=\"description-item-wrapper\"\n :class=\"{ 'items-center': verticalCenter }\"\n >\n <dt class=\"description-item__label\">{{ label }}</dt>\n <dd class=\"description-item__content\">\n <slot v-if=\"$slots.default\" />\n <template v-else>\n {{ content }}\n </template>\n </dd>\n </div>\n</template>\n\n<style lang=\"scss\">\n.description-item-wrapper {\n @apply bg-white px-4 py-5 hover:bg-gray-50 sm:grid sm:grid-cols-6 sm:gap-4 sm:px-6;\n\n .description-item__label {\n @apply text-sm font-medium text-gray-900;\n }\n\n .description-item__content {\n @apply mt-1 text-sm text-gray-900 sm:col-span-6 sm:mt-0 md:col-span-5 lg:col-span-3;\n }\n}\n</style>\n","/*!\n * OverlayScrollbars\n * Version: 2.5.0\n *\n * Copyright (c) Rene Haas | KingSora.\n * https://github.com/KingSora\n *\n * Released under the MIT license.\n */\nconst createCache = (t, n) => {\n const {o: o, u: s, _: e} = t;\n let c = o;\n let r;\n const cacheUpdateContextual = (t, n) => {\n const o = c;\n const l = t;\n const i = n || (s ? !s(o, l) : o !== l);\n if (i || e) {\n c = l;\n r = o;\n }\n return [ c, i, r ];\n };\n const cacheUpdateIsolated = t => cacheUpdateContextual(n(c, r), t);\n const getCurrentCache = t => [ c, !!t, r ];\n return [ n ? cacheUpdateIsolated : cacheUpdateContextual, getCurrentCache ];\n};\n\nconst t = typeof window !== \"undefined\";\n\nconst n = t ? window : {};\n\nconst o = Math.max;\n\nconst s = Math.min;\n\nconst e = Math.round;\n\nconst c = Math.abs;\n\nconst r = n.cancelAnimationFrame;\n\nconst l = n.requestAnimationFrame;\n\nconst i = n.setTimeout;\n\nconst a = n.clearTimeout;\n\nconst getApi = t => typeof n[t] !== \"undefined\" ? n[t] : void 0;\n\nconst u = getApi(\"MutationObserver\");\n\nconst f = getApi(\"IntersectionObserver\");\n\nconst _ = getApi(\"ResizeObserver\");\n\nconst d = getApi(\"ScrollTimeline\");\n\nconst v = t && Node.ELEMENT_NODE;\n\nconst {toString: h, hasOwnProperty: p} = Object.prototype;\n\nconst g = /^\\[object (.+)\\]$/;\n\nconst isUndefined = t => t === void 0;\n\nconst isNull = t => t === null;\n\nconst type = t => isUndefined(t) || isNull(t) ? `${t}` : h.call(t).replace(g, \"$1\").toLowerCase();\n\nconst isNumber = t => typeof t === \"number\";\n\nconst isString = t => typeof t === \"string\";\n\nconst isBoolean = t => typeof t === \"boolean\";\n\nconst isFunction = t => typeof t === \"function\";\n\nconst isArray = t => Array.isArray(t);\n\nconst isObject = t => typeof t === \"object\" && !isArray(t) && !isNull(t);\n\nconst isArrayLike = t => {\n const n = !!t && t.length;\n const o = isNumber(n) && n > -1 && n % 1 == 0;\n return isArray(t) || !isFunction(t) && o ? n > 0 && isObject(t) ? n - 1 in t : true : false;\n};\n\nconst isPlainObject = t => {\n if (!t || !isObject(t) || type(t) !== \"object\") {\n return false;\n }\n let n;\n const o = \"constructor\";\n const s = t[o];\n const e = s && s.prototype;\n const c = p.call(t, o);\n const r = e && p.call(e, \"isPrototypeOf\");\n if (s && !c && !r) {\n return false;\n }\n for (n in t) {}\n return isUndefined(n) || p.call(t, n);\n};\n\nconst isHTMLElement = t => {\n const n = HTMLElement;\n return t ? n ? t instanceof n : t.nodeType === v : false;\n};\n\nconst isElement = t => {\n const n = Element;\n return t ? n ? t instanceof n : t.nodeType === v : false;\n};\n\nconst animationCurrentTime = () => performance.now();\n\nconst animateNumber = (t, n, s, e, c) => {\n let i = 0;\n const a = animationCurrentTime();\n const u = o(0, s);\n const frame = s => {\n const r = animationCurrentTime();\n const f = r - a;\n const _ = f >= u;\n const d = s ? 1 : 1 - (o(0, a + u - r) / u || 0);\n const v = (n - t) * (isFunction(c) ? c(d, d * u, 0, 1, u) : d) + t;\n const h = _ || d === 1;\n e && e(v, d, h);\n i = h ? 0 : l((() => frame()));\n };\n frame();\n return t => {\n r(i);\n t && frame(t);\n };\n};\n\nfunction each(t, n) {\n if (isArrayLike(t)) {\n for (let o = 0; o < t.length; o++) {\n if (n(t[o], o, t) === false) {\n break;\n }\n }\n } else if (t) {\n each(Object.keys(t), (o => n(t[o], o, t)));\n }\n return t;\n}\n\nconst inArray = (t, n) => t.indexOf(n) >= 0;\n\nconst concat = (t, n) => t.concat(n);\n\nconst push = (t, n, o) => {\n !o && !isString(n) && isArrayLike(n) ? Array.prototype.push.apply(t, n) : t.push(n);\n return t;\n};\n\nconst from = t => Array.from(t || []);\n\nconst createOrKeepArray = t => isArray(t) ? t : [ t ];\n\nconst isEmptyArray = t => !!t && !t.length;\n\nconst deduplicateArray = t => from(new Set(t));\n\nconst runEachAndClear = (t, n, o) => {\n const runFn = t => t && t.apply(void 0, n || []);\n each(t, runFn);\n !o && (t.length = 0);\n};\n\nconst b = \"paddingTop\";\n\nconst w = \"paddingRight\";\n\nconst S = \"paddingLeft\";\n\nconst y = \"paddingBottom\";\n\nconst m = \"marginLeft\";\n\nconst O = \"marginRight\";\n\nconst $ = \"marginBottom\";\n\nconst C = \"overflowX\";\n\nconst x = \"overflowY\";\n\nconst H = \"width\";\n\nconst I = \"height\";\n\nconst z = \"hidden\";\n\nconst E = \"visible\";\n\nconst equal = (t, n, o, s) => {\n if (t && n) {\n let e = true;\n each(o, (o => {\n const c = s ? s(t[o]) : t[o];\n const r = s ? s(n[o]) : n[o];\n if (c !== r) {\n e = false;\n }\n }));\n return e;\n }\n return false;\n};\n\nconst equalWH = (t, n) => equal(t, n, [ \"w\", \"h\" ]);\n\nconst equalXY = (t, n) => equal(t, n, [ \"x\", \"y\" ]);\n\nconst equalTRBL = (t, n) => equal(t, n, [ \"t\", \"r\", \"b\", \"l\" ]);\n\nconst noop = () => {};\n\nconst bind = (t, ...n) => t.bind(0, ...n);\n\nconst selfClearTimeout = t => {\n let n;\n const o = t ? i : l;\n const s = t ? a : r;\n return [ e => {\n s(n);\n n = o(e, isFunction(t) ? t() : t);\n }, () => s(n) ];\n};\n\nconst debounce = (t, n) => {\n let o;\n let s;\n let e;\n let c = noop;\n const {v: u, p: f, S: _} = n || {};\n const d = function invokeFunctionToDebounce(n) {\n c();\n a(o);\n o = s = void 0;\n c = noop;\n t.apply(this, n);\n };\n const mergeParms = t => _ && s ? _(s, t) : t;\n const flush = () => {\n if (c !== noop) {\n d(mergeParms(e) || e);\n }\n };\n const v = function debouncedFn() {\n const t = from(arguments);\n const n = isFunction(u) ? u() : u;\n const _ = isNumber(n) && n >= 0;\n if (_) {\n const u = isFunction(f) ? f() : f;\n const _ = isNumber(u) && u >= 0;\n const v = n > 0 ? i : l;\n const h = n > 0 ? a : r;\n const p = mergeParms(t);\n const g = p || t;\n const b = d.bind(0, g);\n c();\n const w = v(b, n);\n c = () => h(w);\n if (_ && !o) {\n o = i(flush, u);\n }\n s = e = g;\n } else {\n d(t);\n }\n };\n v.m = flush;\n return v;\n};\n\nconst hasOwnProperty = (t, n) => Object.prototype.hasOwnProperty.call(t, n);\n\nconst keys = t => t ? Object.keys(t) : [];\n\nconst assignDeep = (t, n, o, s, e, c, r) => {\n const l = [ n, o, s, e, c, r ];\n if ((typeof t !== \"object\" || isNull(t)) && !isFunction(t)) {\n t = {};\n }\n each(l, (n => {\n each(n, ((o, s) => {\n const e = n[s];\n if (t === e) {\n return true;\n }\n const c = isArray(e);\n if (e && isPlainObject(e)) {\n const n = t[s];\n let o = n;\n if (c && !isArray(n)) {\n o = [];\n } else if (!c && !isPlainObject(n)) {\n o = {};\n }\n t[s] = assignDeep(o, e);\n } else {\n t[s] = c ? e.slice() : e;\n }\n }));\n }));\n return t;\n};\n\nconst removeUndefinedProperties = (t, n) => each(assignDeep({}, t), ((t, o, s) => {\n if (t === void 0) {\n delete s[o];\n } else if (n && t && isPlainObject(t)) {\n s[o] = removeUndefinedProperties(t, n);\n }\n}));\n\nconst isEmptyObject = t => {\n for (const n in t) {\n return false;\n }\n return true;\n};\n\nconst capNumber = (t, n, e) => o(t, s(n, e));\n\nconst getDomTokensArray = t => from(new Set((isArray(t) ? t : (t || \"\").split(\" \")).filter((t => t))));\n\nconst getAttr = (t, n) => t && t.getAttribute(n);\n\nconst setAttrs = (t, n, o) => {\n each(getDomTokensArray(n), (n => {\n t && t.setAttribute(n, o || \"\");\n }));\n};\n\nconst removeAttrs = (t, n) => {\n each(getDomTokensArray(n), (n => t && t.removeAttribute(n)));\n};\n\nconst domTokenListAttr = (t, n) => {\n const o = getDomTokensArray(getAttr(t, n));\n const s = bind(setAttrs, t, n);\n const domTokenListOperation = (t, n) => {\n const s = new Set(o);\n each(getDomTokensArray(t), (t => s[n](t)));\n return from(s).join(\" \");\n };\n return {\n O: t => s(domTokenListOperation(t, \"delete\")),\n $: t => s(domTokenListOperation(t, \"add\")),\n C: t => {\n const n = getDomTokensArray(t);\n return n.reduce(((t, n) => t && o.includes(n)), n.length > 0);\n }\n };\n};\n\nconst removeAttrClass = (t, n, o) => {\n domTokenListAttr(t, n).O(o);\n};\n\nconst addAttrClass = (t, n, o) => {\n domTokenListAttr(t, n).$(o);\n return bind(removeAttrClass, t, n, o);\n};\n\nconst addRemoveAttrClass = (t, n, o, s) => {\n (s ? addAttrClass : removeAttrClass)(t, n, o);\n};\n\nconst hasAttrClass = (t, n, o) => domTokenListAttr(t, n).C(o);\n\nconst createDomTokenListClass = t => domTokenListAttr(t, \"class\");\n\nconst removeClass = (t, n) => {\n createDomTokenListClass(t).O(n);\n};\n\nconst addClass = (t, n) => {\n createDomTokenListClass(t).$(n);\n return bind(removeClass, t, n);\n};\n\nconst A = t && Element.prototype;\n\nconst find = (t, n) => {\n const o = [];\n const s = n ? isElement(n) && n : document;\n return s ? push(o, s.querySelectorAll(t)) : o;\n};\n\nconst findFirst = (t, n) => {\n const o = n ? isElement(n) && n : document;\n return o ? o.querySelector(t) : null;\n};\n\nconst is = (t, n) => {\n if (isElement(t)) {\n const o = A.matches || A.msMatchesSelector;\n return o.call(t, n);\n }\n return false;\n};\n\nconst contents = t => t ? from(t.childNodes) : [];\n\nconst parent = t => t && t.parentElement;\n\nconst closest = (t, n) => isElement(t) && t.closest(n);\n\nconst liesBetween = (t, n, o) => {\n const s = closest(t, n);\n const e = t && findFirst(o, s);\n const c = closest(e, n) === s;\n return s && e ? s === t || e === t || c && closest(closest(t, o), n) !== s : false;\n};\n\nconst removeElements = t => {\n if (isArrayLike(t)) {\n each(from(t), (t => removeElements(t)));\n } else if (t) {\n const n = parent(t);\n n && n.removeChild(t);\n }\n};\n\nconst before = (t, n, o) => {\n if (o && t) {\n let s = n;\n let e;\n if (isArrayLike(o)) {\n e = document.createDocumentFragment();\n each(o, (t => {\n if (t === s) {\n s = t.previousSibling;\n }\n e.appendChild(t);\n }));\n } else {\n e = o;\n }\n if (n) {\n if (!s) {\n s = t.firstChild;\n } else if (s !== n) {\n s = s.nextSibling;\n }\n }\n t.insertBefore(e, s || null);\n return () => removeElements(o);\n }\n return noop;\n};\n\nconst appendChildren = (t, n) => before(t, null, n);\n\nconst insertAfter = (t, n) => before(parent(t), t && t.nextSibling, n);\n\nconst createDiv = t => {\n const n = document.createElement(\"div\");\n setAttrs(n, \"class\", t);\n return n;\n};\n\nconst createDOM = t => {\n const n = createDiv();\n n.innerHTML = t.trim();\n return each(contents(n), (t => removeElements(t)));\n};\n\nconst T = /^--/;\n\nconst getCSSVal = (t, n) => t.getPropertyValue(n) || t[n] || \"\";\n\nconst validFiniteNumber = t => {\n const n = t || 0;\n return isFinite(n) ? n : 0;\n};\n\nconst parseToZeroOrNumber = t => validFiniteNumber(parseFloat(t || \"\"));\n\nconst ratioToCssPercent = t => `${(validFiniteNumber(t) * 100).toFixed(3)}%`;\n\nconst numberToCssPx = t => `${validFiniteNumber(t)}px`;\n\nfunction setStyles(t, n) {\n t && each(n, ((n, o) => {\n try {\n const s = t.style;\n const e = isNumber(n) ? numberToCssPx(n) : (n || \"\") + \"\";\n if (T.test(o)) {\n s.setProperty(o, e);\n } else {\n s[o] = e;\n }\n } catch (s) {}\n }));\n}\n\nfunction getStyles(t, o, s) {\n const e = isString(o);\n let c = e ? \"\" : {};\n if (t) {\n const r = n.getComputedStyle(t, s) || t.style;\n c = e ? getCSSVal(r, o) : o.reduce(((t, n) => {\n t[n] = getCSSVal(r, n);\n return t;\n }), c);\n }\n return c;\n}\n\nconst getDirectionIsRTL = t => getStyles(t, \"direction\") === \"rtl\";\n\nconst topRightBottomLeft = (t, n, o) => {\n const s = n ? `${n}-` : \"\";\n const e = o ? `-${o}` : \"\";\n const c = `${s}top${e}`;\n const r = `${s}right${e}`;\n const l = `${s}bottom${e}`;\n const i = `${s}left${e}`;\n const a = getStyles(t, [ c, r, l, i ]);\n return {\n t: parseToZeroOrNumber(a[c]),\n r: parseToZeroOrNumber(a[r]),\n b: parseToZeroOrNumber(a[l]),\n l: parseToZeroOrNumber(a[i])\n };\n};\n\nconst getTrasformTranslateValue = (t, n) => `translate${isObject(t) ? `(${t.x},${t.y})` : `${n ? \"X\" : \"Y\"}(${t})`}`;\n\nconst D = {\n w: 0,\n h: 0\n};\n\nconst getElmWidthHeightProperty = (t, n) => n ? {\n w: n[`${t}Width`],\n h: n[`${t}Height`]\n} : D;\n\nconst windowSize = t => getElmWidthHeightProperty(\"inner\", t || n);\n\nconst k = bind(getElmWidthHeightProperty, \"offset\");\n\nconst R = bind(getElmWidthHeightProperty, \"client\");\n\nconst M = bind(getElmWidthHeightProperty, \"scroll\");\n\nconst fractionalSize = t => {\n const n = parseFloat(getStyles(t, H)) || 0;\n const o = parseFloat(getStyles(t, I)) || 0;\n return {\n w: n - e(n),\n h: o - e(o)\n };\n};\n\nconst getBoundingClientRect = t => t.getBoundingClientRect();\n\nconst domRectHasDimensions = t => !!(t && (t[I] || t[H]));\n\nconst domRectAppeared = (t, n) => {\n const o = domRectHasDimensions(t);\n const s = domRectHasDimensions(n);\n return !s && o;\n};\n\nconst removeEventListener = (t, n, o, s) => {\n each(getDomTokensArray(n), (n => {\n t.removeEventListener(n, o, s);\n }));\n};\n\nconst addEventListener = (t, n, o, s) => {\n var e;\n const c = (e = s && s.H) != null ? e : true;\n const r = s && s.I || false;\n const l = s && s.A || false;\n const i = {\n passive: c,\n capture: r\n };\n return bind(runEachAndClear, getDomTokensArray(n).map((n => {\n const s = l ? e => {\n removeEventListener(t, n, s, r);\n o(e);\n } : o;\n t.addEventListener(n, s, i);\n return bind(removeEventListener, t, n, s, r);\n })));\n};\n\nconst stopPropagation = t => t.stopPropagation();\n\nconst preventDefault = t => t.preventDefault();\n\nconst V = {\n x: 0,\n y: 0\n};\n\nconst absoluteCoordinates = t => {\n const o = t && getBoundingClientRect(t);\n return o ? {\n x: o.left + n.scrollX,\n y: o.top + n.scrollY\n } : V;\n};\n\nconst convertScrollPosition = (t, n, o) => o ? o.n ? -t + 0 : o.i ? n - t : t : t;\n\nconst getRawScrollBounds = (t, n) => [ convertScrollPosition(0, t, n), convertScrollPosition(t, t, n) ];\n\nconst getRawScrollRatio = (t, n, o) => capNumber(0, 1, convertScrollPosition(t, n, o) / n || 0);\n\nconst scrollElementTo = (t, n) => {\n const {x: o, y: s} = isNumber(n) ? {\n x: n,\n y: n\n } : n || {};\n isNumber(o) && (t.scrollLeft = o);\n isNumber(s) && (t.scrollTop = s);\n};\n\nconst getElmentScroll = t => ({\n x: t.scrollLeft,\n y: t.scrollTop\n});\n\nconst manageListener = (t, n) => {\n each(createOrKeepArray(n), t);\n};\n\nconst createEventListenerHub = t => {\n const n = new Map;\n const removeEvent = (t, o) => {\n if (t) {\n const s = n.get(t);\n manageListener((t => {\n if (s) {\n s[t ? \"delete\" : \"clear\"](t);\n }\n }), o);\n } else {\n n.forEach((t => {\n t.clear();\n }));\n n.clear();\n }\n };\n const addEvent = (t, o) => {\n if (isString(t)) {\n const s = n.get(t) || new Set;\n n.set(t, s);\n manageListener((t => {\n isFunction(t) && s.add(t);\n }), o);\n return bind(removeEvent, t, o);\n }\n if (isBoolean(o) && o) {\n removeEvent();\n }\n const s = keys(t);\n const e = [];\n each(s, (n => {\n const o = t[n];\n o && push(e, addEvent(n, o));\n }));\n return bind(runEachAndClear, e);\n };\n const triggerEvent = (t, o) => {\n each(from(n.get(t)), (t => {\n if (o && !isEmptyArray(o)) {\n t.apply(0, o);\n } else {\n t();\n }\n }));\n };\n addEvent(t || {});\n return [ addEvent, removeEvent, triggerEvent ];\n};\n\nconst opsStringify = t => JSON.stringify(t, ((t, n) => {\n if (isFunction(n)) {\n throw 0;\n }\n return n;\n}));\n\nconst getPropByPath = (t, n) => t ? `${n}`.split(\".\").reduce(((t, n) => t && hasOwnProperty(t, n) ? t[n] : void 0), t) : void 0;\n\nconst L = {\n paddingAbsolute: false,\n showNativeOverlaidScrollbars: false,\n update: {\n elementEvents: [ [ \"img\", \"load\" ] ],\n debounce: [ 0, 33 ],\n attributes: null,\n ignoreMutation: null\n },\n overflow: {\n x: \"scroll\",\n y: \"scroll\"\n },\n scrollbars: {\n theme: \"os-theme-dark\",\n visibility: \"auto\",\n autoHide: \"never\",\n autoHideDelay: 1300,\n autoHideSuspend: false,\n dragScroll: true,\n clickScroll: false,\n pointers: [ \"mouse\", \"touch\", \"pen\" ]\n }\n};\n\nconst getOptionsDiff = (t, n) => {\n const o = {};\n const s = concat(keys(n), keys(t));\n each(s, (s => {\n const e = t[s];\n const c = n[s];\n if (isObject(e) && isObject(c)) {\n assignDeep(o[s] = {}, getOptionsDiff(e, c));\n if (isEmptyObject(o[s])) {\n delete o[s];\n }\n } else if (hasOwnProperty(n, s) && c !== e) {\n let t = true;\n if (isArray(e) || isArray(c)) {\n try {\n if (opsStringify(e) === opsStringify(c)) {\n t = false;\n }\n } catch (r) {}\n }\n if (t) {\n o[s] = c;\n }\n }\n }));\n return o;\n};\n\nconst createOptionCheck = (t, n, o) => s => [ getPropByPath(t, s), o || getPropByPath(n, s) !== void 0 ];\n\nconst P = `data-overlayscrollbars`;\n\nconst U = \"os-environment\";\n\nconst B = `${U}-scrollbar-hidden`;\n\nconst N = `${P}-initialize`;\n\nconst j = P;\n\nconst F = `${j}-overflow-x`;\n\nconst q = `${j}-overflow-y`;\n\nconst W = \"overflowVisible\";\n\nconst X = \"scrollbarPressed\";\n\nconst Y = \"updating\";\n\nconst J = \"body\";\n\nconst K = `${P}-viewport`;\n\nconst Z = \"arrange\";\n\nconst G = \"scrollbarHidden\";\n\nconst Q = W;\n\nconst tt = `${P}-padding`;\n\nconst nt = Q;\n\nconst ot = `${P}-content`;\n\nconst st = \"os-size-observer\";\n\nconst et = `${st}-appear`;\n\nconst ct = `${st}-listener`;\n\nconst rt = `${ct}-scroll`;\n\nconst lt = `${ct}-item`;\n\nconst it = `${lt}-final`;\n\nconst at = \"os-trinsic-observer\";\n\nconst ut = \"os-theme-none\";\n\nconst ft = \"os-scrollbar\";\n\nconst _t = `${ft}-rtl`;\n\nconst dt = `${ft}-horizontal`;\n\nconst vt = `${ft}-vertical`;\n\nconst ht = `${ft}-track`;\n\nconst pt = `${ft}-handle`;\n\nconst gt = `${ft}-visible`;\n\nconst bt = `${ft}-cornerless`;\n\nconst wt = `${ft}-transitionless`;\n\nconst St = `${ft}-interaction`;\n\nconst yt = `${ft}-unusable`;\n\nconst mt = `${ft}-auto-hide`;\n\nconst Ot = `${mt}-hidden`;\n\nconst $t = `${ft}-wheel`;\n\nconst Ct = `${ht}-interactive`;\n\nconst xt = `${pt}-interactive`;\n\nconst Ht = {};\n\nconst It = {};\n\nconst addPlugins = t => {\n each(t, (t => each(t, ((n, o) => {\n Ht[o] = t[o];\n }))));\n};\n\nconst registerPluginModuleInstances = (t, n, o) => keys(t).map((s => {\n const {static: e, instance: c} = t[s];\n const [r, l, i] = o || [];\n const a = o ? c : e;\n if (a) {\n const t = o ? a(r, l, n) : a(n);\n return (i || It)[s] = t;\n }\n}));\n\nconst getStaticPluginModuleInstance = t => It[t];\n\nconst zt = \"__osOptionsValidationPlugin\";\n\nconst Et = \"__osSizeObserverPlugin\";\n\nconst At = /* @__PURE__ */ (() => ({\n [Et]: {\n static: () => (t, n, o) => {\n const s = 3333333;\n const e = \"scroll\";\n const c = createDOM(`<div class=\"${lt}\" dir=\"ltr\"><div class=\"${lt}\"><div class=\"${it}\"></div></div><div class=\"${lt}\"><div class=\"${it}\" style=\"width: 200%; height: 200%\"></div></div></div>`);\n const i = c[0];\n const a = i.lastChild;\n const u = i.firstChild;\n const f = u == null ? void 0 : u.firstChild;\n let _ = k(i);\n let d = _;\n let v = false;\n let h;\n const reset = () => {\n scrollElementTo(u, s);\n scrollElementTo(a, s);\n };\n const onResized = t => {\n h = 0;\n if (v) {\n _ = d;\n n(t === true);\n }\n };\n const onScroll = t => {\n d = k(i);\n v = !t || !equalWH(d, _);\n if (t) {\n stopPropagation(t);\n if (v && !h) {\n r(h);\n h = l(onResized);\n }\n } else {\n onResized(t === false);\n }\n reset();\n };\n const p = [ appendChildren(t, c), addEventListener(u, e, onScroll), addEventListener(a, e, onScroll) ];\n addClass(t, rt);\n setStyles(f, {\n [H]: s,\n [I]: s\n });\n l(reset);\n return [ o ? bind(onScroll, false) : reset, p ];\n }\n }\n}))();\n\nconst getShowNativeOverlaidScrollbars = (t, n) => {\n const {T: o} = n;\n const [s, e] = t(\"showNativeOverlaidScrollbars\");\n return [ s && o.x && o.y, e ];\n};\n\nconst overflowIsVisible = t => t.indexOf(E) === 0;\n\nconst getViewportOverflowState = (t, n) => {\n const {D: o} = t;\n const getStatePerAxis = t => {\n const s = getStyles(o, t);\n const e = n ? n[t] : s;\n const c = e === \"scroll\";\n return [ s, c ];\n };\n const [s, e] = getStatePerAxis(C);\n const [c, r] = getStatePerAxis(x);\n return {\n k: {\n x: s,\n y: c\n },\n R: {\n x: e,\n y: r\n }\n };\n};\n\nconst setViewportOverflowState = (t, n, o, s) => {\n const e = n.x || n.y;\n const setAxisOverflowStyle = (t, n) => {\n const o = overflowIsVisible(t);\n const s = o && e ? \"hidden\" : \"\";\n const c = n && o && t.replace(`${E}-`, \"\") || s;\n return [ n && !o ? t : \"\", overflowIsVisible(c) ? \"hidden\" : c ];\n };\n const [c, r] = setAxisOverflowStyle(o.x, n.x);\n const [l, i] = setAxisOverflowStyle(o.y, n.y);\n s[C] = r && l ? r : c;\n s[x] = i && c ? i : l;\n return getViewportOverflowState(t, s);\n};\n\nconst Tt = \"__osScrollbarsHidingPlugin\";\n\nconst Dt = /* @__PURE__ */ (() => ({\n [Tt]: {\n static: () => ({\n M: (t, n, o, s, e) => {\n const {V: c, D: r} = t;\n const {L: l, T: i, P: a} = s;\n const u = !c && !l && (i.x || i.y);\n const [f] = getShowNativeOverlaidScrollbars(e, s);\n const _getViewportOverflowHideOffset = t => {\n const {R: n} = t;\n const o = l || f ? 0 : 42;\n const getHideOffsetPerAxis = (t, n, s) => {\n const e = t ? o : s;\n const c = n && !l ? e : 0;\n const r = t && !!o;\n return [ c, r ];\n };\n const [s, e] = getHideOffsetPerAxis(i.x, n.x, a.x);\n const [c, r] = getHideOffsetPerAxis(i.y, n.y, a.y);\n return {\n U: {\n x: s,\n y: c\n },\n B: {\n x: e,\n y: r\n }\n };\n };\n const _hideNativeScrollbars = (t, {N: o}, s, e) => {\n assignDeep(e, {\n [O]: 0,\n [$]: 0,\n [m]: 0\n });\n if (!c) {\n const {U: c, B: r} = _getViewportOverflowHideOffset(t);\n const {x: l, y: i} = r;\n const {x: a, y: u} = c;\n const {j: f} = n;\n const _ = o ? m : O;\n const d = o ? S : w;\n const v = f[_];\n const h = f[$];\n const p = f[d];\n const g = f[y];\n e[H] = `calc(100% + ${u + v * -1}px)`;\n e[_] = -u + v;\n e[$] = -a + h;\n if (s) {\n e[d] = p + (i ? u : 0);\n e[y] = g + (l ? a : 0);\n }\n }\n };\n const _arrangeViewport = (t, s, e) => {\n if (u) {\n const {j: c} = n;\n const {U: l, B: i} = _getViewportOverflowHideOffset(t);\n const {x: a, y: u} = i;\n const {x: f, y: _} = l;\n const {N: d} = o;\n const v = d ? w : S;\n const h = c[v];\n const p = c.paddingTop;\n const g = s.w + e.w;\n const b = s.h + e.h;\n const y = {\n w: _ && u ? `${_ + g - h}px` : \"\",\n h: f && a ? `${f + b - p}px` : \"\"\n };\n setStyles(r, {\n \"--os-vaw\": y.w,\n \"--os-vah\": y.h\n });\n }\n return u;\n };\n const _undoViewportArrange = s => {\n if (u) {\n const e = s || getViewportOverflowState(t);\n const {j: c} = n;\n const {B: l} = _getViewportOverflowHideOffset(e);\n const {x: i, y: a} = l;\n const f = {};\n const assignProps = t => each(t, (t => {\n f[t] = c[t];\n }));\n if (i) {\n assignProps([ $, b, y ]);\n }\n if (a) {\n assignProps([ m, O, S, w ]);\n }\n const _ = getStyles(r, keys(f));\n removeAttrClass(r, K, Z);\n setStyles(r, f);\n return [ () => {\n _hideNativeScrollbars(e, o, u, _);\n setStyles(r, _);\n addAttrClass(r, K, Z);\n }, e ];\n }\n return [ noop ];\n };\n return {\n F: _getViewportOverflowHideOffset,\n q: _arrangeViewport,\n W: _undoViewportArrange,\n X: _hideNativeScrollbars\n };\n },\n Y: () => {\n let t = {\n w: 0,\n h: 0\n };\n let o = 0;\n const getWindowDPR = () => {\n const t = n.screen;\n const o = t.deviceXDPI || 0;\n const s = t.logicalXDPI || 1;\n return n.devicePixelRatio || o / s;\n };\n const diffBiggerThanOne = (t, n) => {\n const o = c(t);\n const s = c(n);\n return !(o === s || o + 1 === s || o - 1 === s);\n };\n return (n, s) => {\n const r = windowSize();\n const l = {\n w: r.w - t.w,\n h: r.h - t.h\n };\n if (l.w === 0 && l.h === 0) {\n return;\n }\n const i = {\n w: c(l.w),\n h: c(l.h)\n };\n const a = {\n w: c(e(r.w / (t.w / 100))),\n h: c(e(r.h / (t.h / 100)))\n };\n const u = getWindowDPR();\n const f = i.w > 2 && i.h > 2;\n const _ = !diffBiggerThanOne(a.w, a.h);\n const d = u !== o && u > 0;\n const v = f && _ && d;\n let h;\n let p;\n if (v) {\n [p, h] = s();\n assignDeep(n.P, p);\n }\n t = r;\n o = u;\n return h;\n };\n }\n })\n }\n}))();\n\nconst kt = \"__osClickScrollPlugin\";\n\nconst Rt = /* @__PURE__ */ (() => ({\n [kt]: {\n static: () => (t, n, o, s, e) => {\n let c = 0;\n let r = noop;\n const animateClickScroll = l => {\n r = animateNumber(l, l + s * Math.sign(o), 133, ((o, l, a) => {\n t(o);\n const u = n();\n const f = u + s;\n const _ = e >= u && e <= f;\n if (a && !_) {\n if (c) {\n animateClickScroll(o);\n } else {\n const t = i((() => {\n animateClickScroll(o);\n }), 222);\n r = () => {\n clearTimeout(t);\n };\n }\n c++;\n }\n }));\n };\n animateClickScroll(0);\n return () => r();\n }\n }\n}))();\n\nlet Mt;\n\nconst createEnvironment = () => {\n const getNativeScrollbarSize = (t, n, o, s) => {\n appendChildren(t, n);\n const e = R(n);\n const c = k(n);\n const r = fractionalSize(o);\n s && removeElements(n);\n return {\n x: c.h - e.h + r.h,\n y: c.w - e.w + r.w\n };\n };\n const getNativeScrollbarsHiding = t => {\n let n = false;\n const o = addClass(t, B);\n try {\n n = getStyles(t, \"scrollbar-width\") === \"none\" || getStyles(t, \"display\", \"::-webkit-scrollbar\") === \"none\";\n } catch (s) {}\n o();\n return n;\n };\n const getRtlScrollBehavior = (t, n) => {\n setStyles(t, {\n [C]: z,\n [x]: z,\n direction: \"rtl\"\n });\n scrollElementTo(t, {\n x: 0\n });\n const o = absoluteCoordinates(t);\n const s = absoluteCoordinates(n);\n scrollElementTo(t, {\n x: -999\n });\n const e = absoluteCoordinates(n);\n return {\n i: o.x === s.x,\n n: s.x !== e.x\n };\n };\n const {body: t} = document;\n const o = createDOM(`<div class=\"${U}\"><div></div></div>`);\n const s = o[0];\n const e = s.firstChild;\n const [c, , r] = createEventListenerHub();\n const [l, i] = createCache({\n o: getNativeScrollbarSize(t, s, e),\n u: equalXY\n }, bind(getNativeScrollbarSize, t, s, e, true));\n const [a] = i();\n const u = getNativeScrollbarsHiding(s);\n const f = {\n x: a.x === 0,\n y: a.y === 0\n };\n const _ = {\n elements: {\n host: null,\n padding: !u,\n viewport: t => u && t === t.ownerDocument.body && t,\n content: false\n },\n scrollbars: {\n slot: true\n },\n cancel: {\n nativeScrollbarsOverlaid: false,\n body: null\n }\n };\n const v = assignDeep({}, L);\n const h = bind(assignDeep, {}, v);\n const p = bind(assignDeep, {}, _);\n const g = {\n P: a,\n T: f,\n L: u,\n J: !!d,\n K: getRtlScrollBehavior(s, e),\n Z: bind(c, \"r\"),\n G: p,\n tt: t => assignDeep(_, t) && p(),\n nt: h,\n ot: t => assignDeep(v, t) && h(),\n st: assignDeep({}, _),\n et: assignDeep({}, v)\n };\n removeAttrs(s, \"style\");\n removeElements(s);\n n.addEventListener(\"resize\", (() => {\n let t;\n if (!u && (!f.x || !f.y)) {\n const n = getStaticPluginModuleInstance(Tt);\n const o = n ? n.Y() : noop;\n t = !!o(g, l);\n }\n r(\"r\", [ t ]);\n }));\n return g;\n};\n\nconst getEnvironment = () => {\n if (!Mt) {\n Mt = createEnvironment();\n }\n return Mt;\n};\n\nconst resolveInitialization = (t, n) => isFunction(n) ? n.apply(0, t) : n;\n\nconst staticInitializationElement = (t, n, o, s) => {\n const e = isUndefined(s) ? o : s;\n const c = resolveInitialization(t, e);\n return c || n.apply(0, t);\n};\n\nconst dynamicInitializationElement = (t, n, o, s) => {\n const e = isUndefined(s) ? o : s;\n const c = resolveInitialization(t, e);\n return !!c && (isHTMLElement(c) ? c : n.apply(0, t));\n};\n\nconst cancelInitialization = (t, n) => {\n const {nativeScrollbarsOverlaid: o, body: s} = n || {};\n const {T: e, L: c, G: r} = getEnvironment();\n const {nativeScrollbarsOverlaid: l, body: i} = r().cancel;\n const a = o != null ? o : l;\n const u = isUndefined(s) ? i : s;\n const f = (e.x || e.y) && a;\n const _ = t && (isNull(u) ? !c : u);\n return !!f || !!_;\n};\n\nconst Vt = new WeakMap;\n\nconst addInstance = (t, n) => {\n Vt.set(t, n);\n};\n\nconst removeInstance = t => {\n Vt.delete(t);\n};\n\nconst getInstance = t => Vt.get(t);\n\nconst createEventContentChange = (t, n, o) => {\n let s = false;\n const e = o ? new WeakMap : false;\n const destroy = () => {\n s = true;\n };\n const updateElements = c => {\n if (e && o) {\n const r = o.map((n => {\n const [o, s] = n || [];\n const e = s && o ? (c || find)(o, t) : [];\n return [ e, s ];\n }));\n each(r, (o => each(o[0], (c => {\n const r = o[1];\n const l = e.get(c) || [];\n const i = t.contains(c);\n if (i && r) {\n const t = addEventListener(c, r, (o => {\n if (s) {\n t();\n e.delete(c);\n } else {\n n(o);\n }\n }));\n e.set(c, push(l, t));\n } else {\n runEachAndClear(l);\n e.delete(c);\n }\n }))));\n }\n };\n updateElements();\n return [ destroy, updateElements ];\n};\n\nconst createDOMObserver = (t, n, o, s) => {\n let e = false;\n const {ct: c, rt: r, lt: l, it: i, ut: a, ft: f} = s || {};\n const _ = debounce((() => e && o(true)), {\n v: 33,\n p: 99\n });\n const [d, v] = createEventContentChange(t, _, l);\n const h = c || [];\n const p = r || [];\n const g = concat(h, p);\n const observerCallback = (e, c) => {\n if (!isEmptyArray(c)) {\n const r = a || noop;\n const l = f || noop;\n const u = [];\n const _ = [];\n let d = false;\n let h = false;\n each(c, (o => {\n const {attributeName: e, target: c, type: a, oldValue: f, addedNodes: v, removedNodes: g} = o;\n const b = a === \"attributes\";\n const w = a === \"childList\";\n const S = t === c;\n const y = b && e;\n const m = y && getAttr(c, e || \"\") || null;\n const O = y && f !== m;\n const $ = inArray(p, e) && O;\n if (n && (w || !S)) {\n const n = b && O;\n const a = n && i && is(c, i);\n const _ = a ? !r(c, e, f, m) : !b || n;\n const d = _ && !l(o, !!a, t, s);\n each(v, (t => push(u, t)));\n each(g, (t => push(u, t)));\n h = h || d;\n }\n if (!n && S && O && !r(c, e, f, m)) {\n push(_, e);\n d = d || $;\n }\n }));\n v((t => deduplicateArray(u).reduce(((n, o) => {\n push(n, find(t, o));\n return is(o, t) ? push(n, o) : n;\n }), [])));\n if (n) {\n !e && h && o(false);\n return [ false ];\n }\n if (!isEmptyArray(_) || d) {\n const t = [ deduplicateArray(_), d ];\n !e && o.apply(0, t);\n return t;\n }\n }\n };\n const b = new u(bind(observerCallback, false));\n return [ () => {\n b.observe(t, {\n attributes: true,\n attributeOldValue: true,\n attributeFilter: g,\n subtree: n,\n childList: n,\n characterData: n\n });\n e = true;\n return () => {\n if (e) {\n d();\n b.disconnect();\n e = false;\n }\n };\n }, () => {\n if (e) {\n _.m();\n return observerCallback(true, b.takeRecords());\n }\n } ];\n};\n\nconst createSizeObserver = (t, n, o) => {\n const s = 3333333;\n const {_t: e, dt: c} = o || {};\n const r = getStaticPluginModuleInstance(Et);\n const {K: l} = getEnvironment();\n const i = bind(getDirectionIsRTL, t);\n const [a] = createCache({\n o: false,\n _: true\n });\n return () => {\n const o = [];\n const u = createDOM(`<div class=\"${st}\"><div class=\"${ct}\"></div></div>`);\n const f = u[0];\n const d = f.firstChild;\n const onSizeChangedCallbackProxy = t => {\n const o = t instanceof ResizeObserverEntry;\n const c = !o && isArray(t);\n let r = false;\n let i = false;\n let u = true;\n if (o) {\n const [n, , o] = a(t.contentRect);\n const s = domRectHasDimensions(n);\n const e = domRectAppeared(n, o);\n const c = !o;\n i = c || e;\n r = !i && !s;\n u = !r;\n } else if (c) {\n [, u] = t;\n } else {\n i = t === true;\n }\n if (e && u) {\n const n = c ? t[0] : getDirectionIsRTL(f);\n scrollElementTo(f, {\n x: convertScrollPosition(s, s, n && l),\n y: s\n });\n }\n if (!r) {\n n({\n vt: c ? t : void 0,\n ht: !c,\n dt: i\n });\n }\n };\n if (_) {\n const t = new _((t => onSizeChangedCallbackProxy(t.pop())));\n t.observe(d);\n push(o, (() => {\n t.disconnect();\n }));\n } else if (r) {\n const [t, n] = r(d, onSizeChangedCallbackProxy, c);\n push(o, concat([ addClass(f, et), addEventListener(f, \"animationstart\", t) ], n));\n } else {\n return noop;\n }\n if (e) {\n const [t] = createCache({\n o: void 0\n }, i);\n push(o, addEventListener(f, \"scroll\", (n => {\n const o = t();\n const [s, e, c] = o;\n if (e) {\n removeClass(d, \"ltr rtl\");\n addClass(d, s ? \"rtl\" : \"ltr\");\n onSizeChangedCallbackProxy([ !!s, e, c ]);\n }\n stopPropagation(n);\n })));\n }\n return bind(runEachAndClear, push(o, appendChildren(t, f)));\n };\n};\n\nconst createTrinsicObserver = (t, n) => {\n let o;\n const isHeightIntrinsic = t => t.h === 0 || t.isIntersecting || t.intersectionRatio > 0;\n const s = createDiv(at);\n const [e] = createCache({\n o: false\n });\n const triggerOnTrinsicChangedCallback = (t, o) => {\n if (t) {\n const s = e(isHeightIntrinsic(t));\n const [, c] = s;\n return c && !o && n(s) && [ s ];\n }\n };\n const intersectionObserverCallback = (t, n) => triggerOnTrinsicChangedCallback(n.pop(), t);\n return [ () => {\n const n = [];\n if (f) {\n o = new f(bind(intersectionObserverCallback, false), {\n root: t\n });\n o.observe(s);\n push(n, (() => {\n o.disconnect();\n }));\n } else {\n const onSizeChanged = () => {\n const t = k(s);\n triggerOnTrinsicChangedCallback(t);\n };\n push(n, createSizeObserver(s, onSizeChanged)());\n onSizeChanged();\n }\n return bind(runEachAndClear, push(n, appendChildren(t, s)));\n }, () => o && intersectionObserverCallback(true, o.takeRecords()) ];\n};\n\nconst createObserversSetup = (t, n, o, s) => {\n let e;\n let c;\n let r;\n let l;\n let i;\n let a;\n const {L: u} = getEnvironment();\n const f = `[${j}]`;\n const d = `[${K}]`;\n const v = [ \"tabindex\" ];\n const h = [ \"wrap\", \"cols\", \"rows\" ];\n const p = [ \"id\", \"class\", \"style\", \"open\" ];\n const {gt: g, bt: b, D: w, wt: S, St: y, V: m, yt: O, Ot: $} = t;\n const C = {\n $t: false,\n N: getDirectionIsRTL(g)\n };\n const x = getEnvironment();\n const H = getStaticPluginModuleInstance(Tt);\n const [I] = createCache({\n u: equalWH,\n o: {\n w: 0,\n h: 0\n }\n }, (() => {\n const s = H && H.M(t, n, C, x, o).W;\n const e = O(Q);\n const c = !m && O(Z);\n const r = c && getElmentScroll(w);\n $(Q);\n m && $(Y, true);\n const l = c && s && s()[0];\n const i = M(S);\n const a = M(w);\n const u = fractionalSize(w);\n $(Q, e);\n m && $(Y);\n l && l();\n scrollElementTo(w, r);\n return {\n w: a.w + i.w + u.w,\n h: a.h + i.h + u.h\n };\n }));\n const z = y ? h : concat(p, h);\n const E = debounce(s, {\n v: () => e,\n p: () => c,\n S(t, n) {\n const [o] = t;\n const [s] = n;\n return [ concat(keys(o), keys(s)).reduce(((t, n) => {\n t[n] = o[n] || s[n];\n return t;\n }), {}) ];\n }\n });\n const setDirectionWhenViewportIsTarget = t => {\n if (m) {\n const n = getDirectionIsRTL(g);\n assignDeep(t, {\n Ct: a !== n\n });\n assignDeep(C, {\n N: n\n });\n a = n;\n }\n };\n const updateViewportAttrsFromHost = t => {\n each(t || v, (t => {\n if (inArray(v, t)) {\n const n = getAttr(b, t);\n if (isString(n)) {\n setAttrs(w, t, n);\n } else {\n removeAttrs(w, t);\n }\n }\n }));\n };\n const onTrinsicChanged = (t, n) => {\n const [o, e] = t;\n const c = {\n xt: e\n };\n assignDeep(C, {\n $t: o\n });\n !n && s(c);\n return c;\n };\n const onSizeChanged = ({ht: t, vt: n, dt: o}) => {\n const e = t && !o && !n;\n const c = !e && u ? E : s;\n const [r, l] = n || [];\n const i = {\n ht: t || o,\n dt: o,\n Ct: l\n };\n setDirectionWhenViewportIsTarget(i);\n n && assignDeep(C, {\n N: r\n });\n c(i);\n };\n const onContentMutation = (t, n) => {\n const [, o] = I();\n const e = {\n Ht: o\n };\n setDirectionWhenViewportIsTarget(e);\n const c = t ? s : E;\n o && !n && c(e);\n return e;\n };\n const onHostMutation = (t, n, o) => {\n const s = {\n It: n\n };\n setDirectionWhenViewportIsTarget(s);\n if (n && !o) {\n E(s);\n } else if (!m) {\n updateViewportAttrsFromHost(t);\n }\n return s;\n };\n const {Z: A} = x;\n const [T, D] = S ? createTrinsicObserver(b, onTrinsicChanged) : [];\n const k = !m && createSizeObserver(b, onSizeChanged, {\n dt: true,\n _t: true\n });\n const [R, V] = createDOMObserver(b, false, onHostMutation, {\n rt: p,\n ct: concat(p, v)\n });\n const L = m && _ && new _((t => {\n const n = t[t.length - 1].contentRect;\n onSizeChanged({\n ht: true,\n dt: domRectAppeared(n, i)\n });\n i = n;\n }));\n return [ () => {\n updateViewportAttrsFromHost();\n L && L.observe(b);\n const t = k && k();\n const n = T && T();\n const o = R();\n const s = A((t => {\n const [, n] = I();\n E({\n zt: t,\n Ht: n\n });\n }));\n return () => {\n L && L.disconnect();\n t && t();\n n && n();\n l && l();\n o();\n s();\n };\n }, ({Et: t, At: n, Tt: o}) => {\n const s = {};\n const [i] = t(\"update.ignoreMutation\");\n const [a, u] = t(\"update.attributes\");\n const [_, v] = t(\"update.elementEvents\");\n const [h, p] = t(\"update.debounce\");\n const g = v || u;\n const b = n || o;\n const ignoreMutationFromOptions = t => isFunction(i) && i(t);\n if (g) {\n r && r();\n l && l();\n const [t, n] = createDOMObserver(S || w, true, onContentMutation, {\n ct: concat(z, a || []),\n lt: _,\n it: f,\n ft: (t, n) => {\n const {target: o, attributeName: s} = t;\n const e = !n && s && !m ? liesBetween(o, f, d) : false;\n return e || !!closest(o, `.${ft}`) || !!ignoreMutationFromOptions(t);\n }\n });\n l = t();\n r = n;\n }\n if (p) {\n E.m();\n if (isArray(h)) {\n const t = h[0];\n const n = h[1];\n e = isNumber(t) && t;\n c = isNumber(n) && n;\n } else if (isNumber(h)) {\n e = h;\n c = false;\n } else {\n e = false;\n c = false;\n }\n }\n if (b) {\n const t = V();\n const n = D && D();\n const o = r && r();\n t && assignDeep(s, onHostMutation(t[0], t[1], b));\n n && assignDeep(s, onTrinsicChanged(n[0], b));\n o && assignDeep(s, onContentMutation(o[0], b));\n }\n setDirectionWhenViewportIsTarget(s);\n return s;\n }, C ];\n};\n\nconst createScrollbarsSetupElements = (t, n, o, s) => {\n const {G: e, K: c} = getEnvironment();\n const {scrollbars: r} = e();\n const {slot: l} = r;\n const {gt: a, bt: u, D: f, Dt: _, kt: v, Rt: h, V: p} = n;\n const {scrollbars: g} = _ ? {} : t;\n const {slot: b} = g || {};\n const w = new Map;\n const initScrollTimeline = t => d && new d({\n source: v,\n axis: t\n });\n const S = initScrollTimeline(\"x\");\n const y = initScrollTimeline(\"y\");\n const m = dynamicInitializationElement([ a, u, f ], (() => p && h ? a : u), l, b);\n const getScrollbarHandleLengthRatio = (t, n) => {\n if (n) {\n const o = t ? H : I;\n const {Mt: s, Vt: e} = n;\n const c = getBoundingClientRect(e)[o];\n const r = getBoundingClientRect(s)[o];\n return capNumber(0, 1, c / r || 0);\n }\n const s = t ? \"x\" : \"y\";\n const {Lt: e, Pt: c} = o;\n const r = c[s];\n const l = e[s];\n return capNumber(0, 1, r / (r + l) || 0);\n };\n const getScrollbarHandleOffsetRatio = (t, n, o, s) => {\n const e = getScrollbarHandleLengthRatio(o, t);\n return 1 / e * (1 - e) * (s ? 1 - n : n) || 0;\n };\n const addDirectionRTLKeyframes = (t, n) => assignDeep(t, n ? {\n clear: [ \"left\" ]\n } : {});\n const cancelElementAnimations = t => {\n w.forEach(((n, o) => {\n const s = t ? inArray(createOrKeepArray(t), o) : true;\n if (s) {\n each(n || [], (t => {\n t && t.cancel();\n }));\n w.delete(o);\n }\n }));\n };\n const setElementAnimation = (t, n, o, s) => {\n const e = w.get(t) || [];\n const c = e.find((t => t && t.timeline === n));\n if (c) {\n c.effect = new KeyframeEffect(t, o, {\n composite: s\n });\n } else {\n w.set(t, concat(e, [ t.animate(o, {\n timeline: n,\n composite: s\n }) ]));\n }\n };\n const scrollbarStructureAddRemoveClass = (t, n, o) => {\n const s = o ? addClass : removeClass;\n each(t, (t => {\n s(t.Ut, n);\n }));\n };\n const scrollbarStyle = (t, n) => {\n each(t, (t => {\n const [o, s] = n(t);\n setStyles(o, s);\n }));\n };\n const scrollbarStructureRefreshHandleLength = (t, n) => {\n scrollbarStyle(t, (t => {\n const {Vt: o} = t;\n return [ o, {\n [n ? H : I]: ratioToCssPercent(getScrollbarHandleLengthRatio(n))\n } ];\n }));\n };\n const scrollbarStructureRefreshHandleOffset = (t, n) => {\n const {Lt: s} = o;\n const e = n ? s.x : s.y;\n const getTransformValue = (t, o, s) => getTrasformTranslateValue(ratioToCssPercent(getScrollbarHandleOffsetRatio(t, getRawScrollRatio(o, e, s), n, s)), n);\n if (S && y) {\n each(t, (t => {\n const {Ut: o, Vt: s} = t;\n const r = n && getDirectionIsRTL(o) && c;\n setElementAnimation(s, n ? S : y, addDirectionRTLKeyframes({\n transform: getRawScrollBounds(e, r).map((n => getTransformValue(t, n, r)))\n }, r));\n }));\n } else {\n const o = getElmentScroll(v);\n scrollbarStyle(t, (t => {\n const {Vt: s, Ut: e} = t;\n return [ s, {\n transform: getTransformValue(t, n ? o.x : o.y, n && getDirectionIsRTL(e) && c)\n } ];\n }));\n }\n };\n const doRefreshScrollbarOffset = t => p && !h && parent(t) === f;\n const O = [];\n const $ = [];\n const C = [];\n const scrollbarsAddRemoveClass = (t, n, o) => {\n const s = isBoolean(o);\n const e = s ? o : true;\n const c = s ? !o : true;\n e && scrollbarStructureAddRemoveClass($, t, n);\n c && scrollbarStructureAddRemoveClass(C, t, n);\n };\n const refreshScrollbarsHandleLength = () => {\n scrollbarStructureRefreshHandleLength($, true);\n scrollbarStructureRefreshHandleLength(C);\n };\n const refreshScrollbarsHandleOffset = () => {\n scrollbarStructureRefreshHandleOffset($, true);\n scrollbarStructureRefreshHandleOffset(C);\n };\n const refreshScrollbarsScrollbarOffset = () => {\n if (p) {\n const {Lt: t} = o;\n const n = .5;\n if (S && y) {\n each(concat(C, $), (({Ut: o}) => {\n if (doRefreshScrollbarOffset(o)) {\n const setScrollbarElementAnimation = (t, s, e) => {\n const r = e && getDirectionIsRTL(o) && c;\n setElementAnimation(o, t, addDirectionRTLKeyframes({\n transform: getRawScrollBounds(s - n, r).map((t => getTrasformTranslateValue(numberToCssPx(t), e)))\n }, r), \"add\");\n };\n setScrollbarElementAnimation(S, t.x, true);\n setScrollbarElementAnimation(y, t.y);\n } else {\n cancelElementAnimations(o);\n }\n }));\n } else {\n const n = getElmentScroll(v);\n const styleScrollbarPosition = o => {\n const {Ut: s} = o;\n const e = doRefreshScrollbarOffset(s) && s;\n const getTranslateValue = (t, n, o) => {\n const s = getRawScrollRatio(t, n, o);\n const e = n * s;\n return numberToCssPx(o ? -e : e);\n };\n return [ e, {\n transform: e ? getTrasformTranslateValue({\n x: getTranslateValue(n.x, t.x, getDirectionIsRTL(s) && c),\n y: getTranslateValue(n.y, t.y)\n }) : \"\"\n } ];\n };\n scrollbarStyle($, styleScrollbarPosition);\n scrollbarStyle(C, styleScrollbarPosition);\n }\n }\n };\n const generateScrollbarDOM = t => {\n const n = t ? dt : vt;\n const o = t ? $ : C;\n const e = isEmptyArray(o) ? wt : \"\";\n const c = createDiv(`${ft} ${n} ${e}`);\n const r = createDiv(ht);\n const l = createDiv(pt);\n const i = {\n Ut: c,\n Mt: r,\n Vt: l\n };\n push(o, i);\n push(O, [ appendChildren(c, r), appendChildren(r, l), bind(removeElements, c), cancelElementAnimations, s(i, scrollbarsAddRemoveClass, scrollbarStructureRefreshHandleOffset, t) ]);\n return i;\n };\n const x = bind(generateScrollbarDOM, true);\n const z = bind(generateScrollbarDOM, false);\n const appendElements = () => {\n appendChildren(m, $[0].Ut);\n appendChildren(m, C[0].Ut);\n i((() => {\n scrollbarsAddRemoveClass(wt);\n }), 300);\n return bind(runEachAndClear, O);\n };\n x();\n z();\n return [ {\n Bt: refreshScrollbarsHandleLength,\n Nt: refreshScrollbarsHandleOffset,\n jt: refreshScrollbarsScrollbarOffset,\n Ft: scrollbarsAddRemoveClass,\n qt: {\n J: S,\n Wt: $,\n Xt: x,\n Yt: bind(scrollbarStyle, $)\n },\n Jt: {\n J: y,\n Wt: C,\n Xt: z,\n Yt: bind(scrollbarStyle, C)\n }\n }, appendElements ];\n};\n\nconst createScrollbarsSetupEvents = (t, n, o) => {\n const {bt: s, kt: c, Kt: r} = n;\n return (n, l, i, a) => {\n const {Ut: u, Mt: f, Vt: _} = n;\n const [d, v] = selfClearTimeout(333);\n const [h, p] = selfClearTimeout();\n const g = bind(i, [ n ], a);\n const b = !!c.scrollBy;\n const w = `client${a ? \"X\" : \"Y\"}`;\n const S = a ? H : I;\n const y = a ? \"left\" : \"top\";\n const m = a ? \"w\" : \"h\";\n const O = a ? \"x\" : \"y\";\n const isAffectingTransition = t => t.propertyName.indexOf(S) > -1;\n const createInteractiveScrollEvents = () => {\n const n = \"pointerup pointerleave pointercancel lostpointercapture\";\n const createRelativeHandleMove = (t, n) => s => {\n const {Lt: e} = o;\n const r = k(f)[m] - k(_)[m];\n const l = n * s / r;\n const i = l * e[O];\n scrollElementTo(c, {\n [O]: t + i\n });\n };\n return addEventListener(f, \"pointerdown\", (o => {\n const l = closest(o.target, `.${pt}`) === _;\n const i = l ? _ : f;\n const a = t.scrollbars;\n const {button: u, isPrimary: d, pointerType: v} = o;\n const {pointers: h} = a;\n const p = u === 0 && d && a[l ? \"dragScroll\" : \"clickScroll\"] && (h || []).includes(v);\n if (p) {\n const t = !l && o.shiftKey;\n const a = bind(getBoundingClientRect, _);\n const u = bind(getBoundingClientRect, f);\n const getHandleOffset = (t, n) => (t || a())[y] - (n || u())[y];\n const d = e(getBoundingClientRect(c)[S]) / k(c)[m] || 1;\n const v = createRelativeHandleMove(getElmentScroll(c)[O] || 0, 1 / d);\n const h = o[w];\n const p = a();\n const g = u();\n const b = p[S];\n const $ = getHandleOffset(p, g) + b / 2;\n const C = h - g[y];\n const x = l ? 0 : C - $;\n const releasePointerCapture = t => {\n runEachAndClear(I);\n i.releasePointerCapture(t.pointerId);\n };\n const H = addAttrClass(s, j, X);\n const I = [ H, addEventListener(r, n, releasePointerCapture), addEventListener(r, \"selectstart\", (t => preventDefault(t)), {\n H: false\n }), addEventListener(f, n, releasePointerCapture), addEventListener(f, \"pointermove\", (n => {\n const o = n[w] - h;\n if (l || t) {\n v(x + o);\n }\n })) ];\n i.setPointerCapture(o.pointerId);\n if (t) {\n v(x);\n } else if (!l) {\n const t = getStaticPluginModuleInstance(kt);\n t && push(I, t(v, getHandleOffset, x, b, C));\n }\n }\n }));\n };\n let $ = true;\n return bind(runEachAndClear, [ addEventListener(u, \"pointerenter\", (() => {\n l(St, true);\n })), addEventListener(u, \"pointerleave pointercancel\", (() => {\n l(St, false);\n })), addEventListener(u, \"wheel\", (t => {\n const {deltaX: n, deltaY: o, deltaMode: e} = t;\n if (b && $ && e === 0 && parent(u) === s) {\n c.scrollBy({\n left: n,\n top: o,\n behavior: \"smooth\"\n });\n }\n $ = false;\n l($t, true);\n d((() => {\n $ = true;\n l($t);\n }));\n preventDefault(t);\n }), {\n H: false,\n I: true\n }), addEventListener(_, \"transitionstart\", (t => {\n if (isAffectingTransition(t)) {\n const animateHandleOffset = () => {\n g();\n h(animateHandleOffset);\n };\n animateHandleOffset();\n }\n })), addEventListener(_, \"transitionend transitioncancel\", (t => {\n if (isAffectingTransition(t)) {\n p();\n g();\n }\n })), addEventListener(u, \"mousedown\", bind(addEventListener, r, \"click\", stopPropagation, {\n A: true,\n I: true\n }), {\n I: true\n }), createInteractiveScrollEvents(), v, p ]);\n };\n};\n\nconst createScrollbarsSetup = (t, n, o, s, e, c) => {\n let r;\n let l;\n let i;\n let a;\n let u;\n let f = noop;\n let _ = 0;\n const [d, v] = selfClearTimeout();\n const [h, p] = selfClearTimeout();\n const [g, b] = selfClearTimeout(100);\n const [w, S] = selfClearTimeout(100);\n const [y, m] = selfClearTimeout(100);\n const [O, $] = selfClearTimeout((() => _));\n const [C, x] = createScrollbarsSetupElements(t, e, s, createScrollbarsSetupEvents(n, e, s));\n const {bt: H, Zt: I, Rt: z} = e;\n const {Ft: E, Bt: A, Nt: T, jt: D} = C;\n const manageAutoHideSuspension = t => {\n E(mt, t, true);\n E(mt, t, false);\n };\n const manageScrollbarsAutoHide = (t, n) => {\n $();\n if (t) {\n E(Ot);\n } else {\n const t = bind(E, Ot, true);\n if (_ > 0 && !n) {\n O(t);\n } else {\n t();\n }\n }\n };\n const isHoverablePointerType = t => t.pointerType === \"mouse\";\n const onHostMouseEnter = t => {\n if (isHoverablePointerType(t)) {\n a = l;\n a && manageScrollbarsAutoHide(true);\n }\n };\n const k = [ b, $, S, m, p, v, () => f(), addEventListener(H, \"pointerover\", onHostMouseEnter, {\n A: true\n }), addEventListener(H, \"pointerenter\", onHostMouseEnter), addEventListener(H, \"pointerleave\", (t => {\n if (isHoverablePointerType(t)) {\n a = false;\n l && manageScrollbarsAutoHide(false);\n }\n })), addEventListener(H, \"pointermove\", (t => {\n isHoverablePointerType(t) && r && d((() => {\n b();\n manageScrollbarsAutoHide(true);\n w((() => {\n r && manageScrollbarsAutoHide(false);\n }));\n }));\n })), addEventListener(I, \"scroll\", (t => {\n h((() => {\n T();\n i && manageScrollbarsAutoHide(true);\n g((() => {\n i && !a && manageScrollbarsAutoHide(false);\n }));\n }));\n c(t);\n D();\n })) ];\n return [ () => bind(runEachAndClear, push(k, x())), ({Et: t, Tt: n, Gt: e, Qt: c}) => {\n const {tn: a, nn: d, sn: v} = c || {};\n const {Ct: h, dt: p} = e || {};\n const {N: g} = o;\n const {T: b} = getEnvironment();\n const {Lt: w, k: S, en: m} = s;\n const [O, $] = t(\"showNativeOverlaidScrollbars\");\n const [C, x] = t(\"scrollbars.theme\");\n const [H, k] = t(\"scrollbars.visibility\");\n const [R, M] = t(\"scrollbars.autoHide\");\n const [V, L] = t(\"scrollbars.autoHideSuspend\");\n const [P] = t(\"scrollbars.autoHideDelay\");\n const [U, B] = t(\"scrollbars.dragScroll\");\n const [N, j] = t(\"scrollbars.clickScroll\");\n const F = p && !n;\n const q = m.x || m.y;\n const W = a || d || h || n;\n const X = v || k;\n const Y = O && b.x && b.y;\n const setScrollbarVisibility = (t, n) => {\n const o = H === \"visible\" || H === \"auto\" && t === \"scroll\";\n E(gt, o, n);\n return o;\n };\n _ = P;\n if (F) {\n if (V && q) {\n manageAutoHideSuspension(false);\n f();\n y((() => {\n f = addEventListener(I, \"scroll\", bind(manageAutoHideSuspension, true), {\n A: true\n });\n }));\n } else {\n manageAutoHideSuspension(true);\n }\n }\n if ($) {\n E(ut, Y);\n }\n if (x) {\n E(u);\n E(C, true);\n u = C;\n }\n if (L && !V) {\n manageAutoHideSuspension(true);\n }\n if (M) {\n r = R === \"move\";\n l = R === \"leave\";\n i = R !== \"never\";\n manageScrollbarsAutoHide(!i, true);\n }\n if (B) {\n E(xt, U);\n }\n if (j) {\n E(Ct, N);\n }\n if (X) {\n const t = setScrollbarVisibility(S.x, true);\n const n = setScrollbarVisibility(S.y, false);\n const o = t && n;\n E(bt, !o);\n }\n if (W) {\n A();\n T();\n D();\n E(yt, !w.x, true);\n E(yt, !w.y, false);\n E(_t, g && !z);\n }\n }, {}, C ];\n};\n\nconst createStructureSetupElements = t => {\n const n = getEnvironment();\n const {G: o, L: s} = n;\n const {elements: e} = o();\n const {host: c, padding: r, viewport: l, content: i} = e;\n const a = isHTMLElement(t);\n const u = a ? {} : t;\n const {elements: f} = u;\n const {host: _, padding: d, viewport: v, content: h} = f || {};\n const p = a ? t : u.target;\n const g = is(p, \"textarea\");\n const b = p.ownerDocument;\n const w = b.documentElement;\n const S = p === b.body;\n const y = b.defaultView;\n const getFocusedElement = () => b.activeElement;\n const focusElm = t => {\n if (t && t.focus) {\n t.focus();\n }\n };\n const m = bind(staticInitializationElement, [ p ]);\n const O = bind(dynamicInitializationElement, [ p ]);\n const $ = bind(resolveInitialization, [ p ]);\n const C = bind(createDiv, \"\");\n const x = bind(m, C, l);\n const H = bind(O, C, i);\n const I = x(v);\n const z = I === p;\n const E = z && S;\n const A = !z && H(h);\n const T = !z && isHTMLElement(I) && I === A;\n const D = T && !!$(i);\n const k = D ? x() : I;\n const R = D ? A : H();\n const M = T ? k : I;\n const V = E ? w : M;\n const L = g ? m(C, c, _) : p;\n const P = E ? V : L;\n const U = T ? R : A;\n const B = {\n gt: p,\n bt: P,\n D: V,\n cn: !z && O(C, r, d),\n wt: U,\n kt: E ? w : V,\n Zt: E ? b : V,\n rn: S ? w : p,\n ln: y,\n Kt: b,\n St: g,\n Rt: S,\n Dt: a,\n V: z,\n an: T,\n yt: t => hasAttrClass(V, z ? j : K, t),\n Ot: (t, n) => addRemoveAttrClass(V, z ? j : K, t, n)\n };\n const W = keys(B).reduce(((t, n) => {\n const o = B[n];\n return push(t, o && isHTMLElement(o) && !parent(o) ? o : false);\n }), []);\n const elementIsGenerated = t => t ? inArray(W, t) : null;\n const {gt: X, bt: Y, cn: Z, D: Q, wt: nt} = B;\n const st = [ () => {\n removeAttrs(Y, [ j, N ]);\n removeAttrs(X, N);\n if (S) {\n removeAttrs(w, [ N, j ]);\n }\n } ];\n const et = g && elementIsGenerated(Y);\n let ct = g ? X : contents([ nt, Q, Z, Y, X ].find((t => elementIsGenerated(t) === false)));\n const rt = E ? X : nt || Q;\n const lt = bind(runEachAndClear, st);\n const appendElements = () => {\n const t = getFocusedElement();\n const unwrap = t => {\n appendChildren(parent(t), contents(t));\n removeElements(t);\n };\n const prepareWrapUnwrapFocus = t => t ? addEventListener(t, \"focus blur\", (t => {\n stopPropagation(t);\n t.stopImmediatePropagation();\n }), {\n I: true,\n H: false\n }) : noop;\n const n = prepareWrapUnwrapFocus(t);\n setAttrs(Y, j, z ? \"viewport\" : \"host\");\n setAttrs(Z, tt, \"\");\n setAttrs(nt, ot, \"\");\n if (!z) {\n setAttrs(Q, K, \"\");\n S && addAttrClass(w, j, J);\n }\n if (et) {\n insertAfter(X, Y);\n push(st, (() => {\n insertAfter(Y, X);\n removeElements(Y);\n }));\n }\n appendChildren(rt, ct);\n appendChildren(Y, Z);\n appendChildren(Z || Y, !z && Q);\n appendChildren(Q, nt);\n push(st, [ n, () => {\n const t = getFocusedElement();\n const n = prepareWrapUnwrapFocus(t);\n removeAttrs(Z, tt);\n removeAttrs(nt, ot);\n removeAttrs(Q, [ F, q, K ]);\n elementIsGenerated(nt) && unwrap(nt);\n elementIsGenerated(Q) && unwrap(Q);\n elementIsGenerated(Z) && unwrap(Z);\n focusElm(t);\n n();\n } ]);\n if (s && !z) {\n addAttrClass(Q, K, G);\n push(st, bind(removeAttrs, Q, K));\n }\n if (!z && y.top === y && t === p) {\n const t = \"tabindex\";\n const n = getAttr(Q, t);\n setAttrs(Q, t, \"-1\");\n focusElm(Q);\n const revertViewportTabIndex = () => n ? setAttrs(Q, t, n) : removeAttrs(Q, t);\n const o = addEventListener(b, \"pointerdown keydown\", (() => {\n revertViewportTabIndex();\n o();\n }));\n push(st, [ revertViewportTabIndex, o ]);\n } else {\n focusElm(t);\n }\n n();\n ct = 0;\n return lt;\n };\n return [ B, appendElements, lt ];\n};\n\nconst createTrinsicUpdateSegment = ({wt: t}) => ({Gt: n, un: o, Tt: s}) => {\n const {xt: e} = n || {};\n const {$t: c} = o;\n const r = t && (e || s);\n if (r) {\n setStyles(t, {\n [I]: c && \"100%\"\n });\n }\n};\n\nconst createPaddingUpdateSegment = ({bt: t, cn: n, D: o, V: s}, e) => {\n const [c, r] = createCache({\n u: equalTRBL,\n o: topRightBottomLeft()\n }, bind(topRightBottomLeft, t, \"padding\", \"\"));\n return ({Et: t, Gt: l, un: i, Tt: a}) => {\n let [u, f] = r(a);\n const {L: _} = getEnvironment();\n const {ht: d, Ht: v, Ct: h} = l || {};\n const {N: p} = i;\n const [g, C] = t(\"paddingAbsolute\");\n const x = a || v;\n if (d || f || x) {\n [u, f] = c(a);\n }\n const I = !s && (C || h || f);\n if (I) {\n const t = !g || !n && !_;\n const s = u.r + u.l;\n const c = u.t + u.b;\n const r = {\n [O]: t && !p ? -s : 0,\n [$]: t ? -c : 0,\n [m]: t && p ? -s : 0,\n top: t ? -u.t : 0,\n right: t ? p ? -u.r : \"auto\" : 0,\n left: t ? p ? \"auto\" : -u.l : 0,\n [H]: t && `calc(100% + ${s}px)`\n };\n const l = {\n [b]: t ? u.t : 0,\n [w]: t ? u.r : 0,\n [y]: t ? u.b : 0,\n [S]: t ? u.l : 0\n };\n setStyles(n || o, r);\n setStyles(o, l);\n assignDeep(e, {\n cn: u,\n fn: !t,\n j: n ? l : assignDeep({}, r, l)\n });\n }\n return {\n _n: I\n };\n };\n};\n\nconst createOverflowUpdateSegment = (t, s) => {\n const e = getEnvironment();\n const {bt: c, cn: r, D: l, V: i, Ot: a, Rt: u, ln: f} = t;\n const {L: _, T: d} = e;\n const v = u && i;\n const h = bind(o, 0);\n const p = {\n u: equalWH,\n o: {\n w: 0,\n h: 0\n }\n };\n const g = {\n u: equalXY,\n o: {\n x: z,\n y: z\n }\n };\n const getOverflowAmount = (t, o) => {\n const s = n.devicePixelRatio % 1 !== 0 ? 1 : 0;\n const e = {\n w: h(t.w - o.w),\n h: h(t.h - o.h)\n };\n return {\n w: e.w > s ? e.w : 0,\n h: e.h > s ? e.h : 0\n };\n };\n const [b, w] = createCache(p, bind(fractionalSize, l));\n const [S, y] = createCache(p, bind(M, l));\n const [m, O] = createCache(p);\n const [$, H] = createCache(p);\n const [E] = createCache(g);\n const A = getStaticPluginModuleInstance(Tt);\n return ({Et: n, Gt: u, un: p, Tt: g}, {_n: z}) => {\n const {ht: T, It: D, Ht: k, xt: M, Ct: V, zt: L} = u || {};\n const {$t: P} = p;\n const U = A && A.M(t, s, p, e, n);\n const {q: B, W: N, X: X, F: Y} = U || {};\n const fixFlexboxGlue = (t, n) => {\n setStyles(l, {\n [I]: \"\"\n });\n if (n) {\n const {fn: n, cn: o} = s;\n const {R: e} = t;\n const r = fractionalSize(c);\n const i = R(c);\n const a = getStyles(l, \"boxSizing\") === \"content-box\";\n const u = n || a ? o.b + o.t : 0;\n const f = !(d.x && a);\n setStyles(l, {\n [I]: i.h + r.h + (e.x && f && Y ? Y(t).U.x : 0) - u\n });\n }\n };\n const [J, Z] = getShowNativeOverlaidScrollbars(n, e);\n const [ot, st] = n(\"overflow\");\n const et = !i && (T || k || D || Z || M);\n const ct = T || z || k || V || L || Z;\n const rt = overflowIsVisible(ot.x);\n const lt = overflowIsVisible(ot.y);\n const it = rt || lt;\n let at = w(g);\n let ut = y(g);\n let ft = O(g);\n let _t = H(g);\n let dt;\n if (Z && _) {\n a(G, !J);\n }\n if (et) {\n dt = getViewportOverflowState(t);\n fixFlexboxGlue(dt, P);\n }\n if (ct) {\n if (it) {\n a(Q, false);\n }\n const [t, n] = N ? N(dt) : [];\n const [s, e] = at = b(g);\n const [c, r] = ut = S(g);\n const i = R(l);\n const u = c;\n const _ = i;\n t && t();\n if ((r || e || Z) && n && !J && B && B(n, c, s)) {}\n const d = windowSize(f);\n const p = {\n w: h(o(c.w, u.w) + s.w),\n h: h(o(c.h, u.h) + s.h)\n };\n const w = {\n w: h((v ? d.w : _.w + h(i.w - c.w)) + s.w),\n h: h((v ? d.h : _.h + h(i.h - c.h)) + s.h)\n };\n _t = $(w);\n ft = m(getOverflowAmount(p, w), g);\n }\n const [vt, ht] = _t;\n const [pt, gt] = ft;\n const [bt, wt] = ut;\n const [St, yt] = at;\n const mt = {\n x: pt.w > 0,\n y: pt.h > 0\n };\n const Ot = rt && lt && (mt.x || mt.y) || rt && mt.x && !mt.y || lt && mt.y && !mt.x;\n const $t = z || V || L || yt || wt || ht || gt || st || Z || et || ct;\n if ($t) {\n const n = {};\n const o = setViewportOverflowState(t, mt, ot, n);\n X && X(o, p, !!B && B(o, bt, St), n);\n if (et) {\n fixFlexboxGlue(o, P);\n }\n if (i) {\n setAttrs(c, F, n[C]);\n setAttrs(c, q, n[x]);\n } else {\n setStyles(l, n);\n }\n }\n addRemoveAttrClass(c, j, W, Ot);\n addRemoveAttrClass(r, tt, nt, Ot);\n if (!i) {\n addRemoveAttrClass(l, K, Q, it);\n }\n const [Ct, xt] = E(getViewportOverflowState(t).k);\n assignDeep(s, {\n k: Ct,\n Pt: {\n x: vt.w,\n y: vt.h\n },\n Lt: {\n x: pt.w,\n y: pt.h\n },\n en: mt\n });\n return {\n sn: xt,\n tn: ht,\n nn: gt\n };\n };\n};\n\nconst createStructureSetup = t => {\n const [n, o, s] = createStructureSetupElements(t);\n const e = {\n cn: {\n t: 0,\n r: 0,\n b: 0,\n l: 0\n },\n fn: false,\n j: {\n [O]: 0,\n [$]: 0,\n [m]: 0,\n [b]: 0,\n [w]: 0,\n [y]: 0,\n [S]: 0\n },\n Pt: {\n x: 0,\n y: 0\n },\n Lt: {\n x: 0,\n y: 0\n },\n k: {\n x: z,\n y: z\n },\n en: {\n x: false,\n y: false\n }\n };\n const {gt: c, D: r, V: l} = n;\n const {L: i, T: a} = getEnvironment();\n const u = !i && (a.x || a.y);\n const f = [ createTrinsicUpdateSegment(n), createPaddingUpdateSegment(n, e), createOverflowUpdateSegment(n, e) ];\n return [ o, t => {\n const n = {};\n const o = u;\n const s = o && getElmentScroll(r);\n const e = l ? addAttrClass(r, j, Y) : noop;\n each(f, (o => {\n assignDeep(n, o(t, n) || {});\n }));\n e();\n scrollElementTo(r, s);\n !l && scrollElementTo(c, 0);\n return n;\n }, e, n, s ];\n};\n\nconst createSetups = (t, n, o, s) => {\n const e = createOptionCheck(n, {});\n const [c, r, l, i, a] = createStructureSetup(t);\n const [u, f, _] = createObserversSetup(i, l, e, (t => {\n update({}, t);\n }));\n const [d, v, , h] = createScrollbarsSetup(t, n, _, l, i, s);\n const updateHintsAreTruthy = t => keys(t).some((n => !!t[n]));\n const update = (t, s) => {\n const {dn: e, Tt: c, At: l, vn: i} = t;\n const a = e || {};\n const u = !!c;\n const d = {\n Et: createOptionCheck(n, a, u),\n dn: a,\n Tt: u\n };\n if (i) {\n v(d);\n return false;\n }\n const h = s || f(assignDeep({}, d, {\n At: l\n }));\n const p = r(assignDeep({}, d, {\n un: _,\n Gt: h\n }));\n v(assignDeep({}, d, {\n Gt: h,\n Qt: p\n }));\n const g = updateHintsAreTruthy(h);\n const b = updateHintsAreTruthy(p);\n const w = g || b || !isEmptyObject(a) || u;\n w && o(t, {\n Gt: h,\n Qt: p\n });\n return w;\n };\n return [ () => {\n const {rn: t, D: n} = i;\n const o = getElmentScroll(t);\n const s = [ u(), c(), d() ];\n scrollElementTo(n, o);\n return bind(runEachAndClear, s);\n }, update, () => ({\n hn: _,\n pn: l\n }), {\n gn: i,\n bn: h\n }, a ];\n};\n\nconst OverlayScrollbars = (t, n, o) => {\n const {nt: s} = getEnvironment();\n const e = isHTMLElement(t);\n const c = e ? t : t.target;\n const r = getInstance(c);\n if (n && !r) {\n let r = false;\n const l = [];\n const i = {};\n const validateOptions = t => {\n const n = removeUndefinedProperties(t, true);\n const o = getStaticPluginModuleInstance(zt);\n return o ? o(n, true) : n;\n };\n const a = assignDeep({}, s(), validateOptions(n));\n const [u, f, _] = createEventListenerHub();\n const [d, v, h] = createEventListenerHub(o);\n const triggerEvent = (t, n) => {\n h(t, n);\n _(t, n);\n };\n const [p, g, b, w, S] = createSetups(t, a, (({dn: t, Tt: n}, {Gt: o, Qt: s}) => {\n const {ht: e, Ct: c, xt: r, Ht: l, It: i, dt: a} = o;\n const {tn: u, nn: f, sn: _} = s;\n triggerEvent(\"updated\", [ y, {\n updateHints: {\n sizeChanged: !!e,\n directionChanged: !!c,\n heightIntrinsicChanged: !!r,\n overflowEdgeChanged: !!u,\n overflowAmountChanged: !!f,\n overflowStyleChanged: !!_,\n contentMutation: !!l,\n hostMutation: !!i,\n appear: !!a\n },\n changedOptions: t || {},\n force: !!n\n } ]);\n }), (t => triggerEvent(\"scroll\", [ y, t ])));\n const destroy = t => {\n removeInstance(c);\n runEachAndClear(l);\n r = true;\n triggerEvent(\"destroyed\", [ y, t ]);\n f();\n v();\n };\n const y = {\n options(t, n) {\n if (t) {\n const o = n ? s() : {};\n const e = getOptionsDiff(a, assignDeep(o, validateOptions(t)));\n if (!isEmptyObject(e)) {\n assignDeep(a, e);\n g({\n dn: e\n });\n }\n }\n return assignDeep({}, a);\n },\n on: d,\n off: (t, n) => {\n t && n && v(t, n);\n },\n state() {\n const {hn: t, pn: n} = b();\n const {N: o} = t;\n const {Pt: s, Lt: e, k: c, en: l, cn: i, fn: a} = n;\n return assignDeep({}, {\n overflowEdge: s,\n overflowAmount: e,\n overflowStyle: c,\n hasOverflow: l,\n padding: i,\n paddingAbsolute: a,\n directionRTL: o,\n destroyed: r\n });\n },\n elements() {\n const {gt: t, bt: n, cn: o, D: s, wt: e, kt: c, Zt: r} = w.gn;\n const {qt: l, Jt: i} = w.bn;\n const translateScrollbarStructure = t => {\n const {Vt: n, Mt: o, Ut: s} = t;\n return {\n scrollbar: s,\n track: o,\n handle: n\n };\n };\n const translateScrollbarsSetupElement = t => {\n const {Wt: n, Xt: o} = t;\n const s = translateScrollbarStructure(n[0]);\n return assignDeep({}, s, {\n clone: () => {\n const t = translateScrollbarStructure(o());\n g({\n vn: true\n });\n return t;\n }\n });\n };\n return assignDeep({}, {\n target: t,\n host: n,\n padding: o || s,\n viewport: s,\n content: e || s,\n scrollOffsetElement: c,\n scrollEventElement: r,\n scrollbarHorizontal: translateScrollbarsSetupElement(l),\n scrollbarVertical: translateScrollbarsSetupElement(i)\n });\n },\n update: t => g({\n Tt: t,\n At: true\n }),\n destroy: bind(destroy, false),\n plugin: t => i[keys(t)[0]]\n };\n push(l, [ S ]);\n addInstance(c, y);\n registerPluginModuleInstances(Ht, OverlayScrollbars, [ y, u, i ]);\n if (cancelInitialization(w.gn.Rt, !e && t.cancel)) {\n destroy(true);\n return y;\n }\n push(l, p());\n triggerEvent(\"initialized\", [ y ]);\n y.update(true);\n return y;\n }\n return r;\n};\n\nOverlayScrollbars.plugin = t => {\n const n = isArray(t);\n const o = n ? t : [ t ];\n const s = o.map((t => registerPluginModuleInstances(t, OverlayScrollbars)[0]));\n addPlugins(o);\n return n ? s : s[0];\n};\n\nOverlayScrollbars.valid = t => {\n const n = t && t.elements;\n const o = isFunction(n) && n();\n return isPlainObject(o) && !!getInstance(o.target);\n};\n\nOverlayScrollbars.env = () => {\n const {P: t, T: n, L: o, K: s, J: e, st: c, et: r, G: l, tt: i, nt: a, ot: u} = getEnvironment();\n return assignDeep({}, {\n scrollbarsSize: t,\n scrollbarsOverlaid: n,\n scrollbarsHiding: o,\n rtlScrollBehavior: s,\n scrollTimeline: e,\n staticDefaultInitialization: c,\n staticDefaultOptions: r,\n getDefaultInitialization: l,\n setDefaultInitialization: i,\n getDefaultOptions: a,\n setDefaultOptions: u\n });\n};\n\nexport { Rt as ClickScrollPlugin, OverlayScrollbars, Dt as ScrollbarsHidingPlugin, At as SizeObserverPlugin };\n//# sourceMappingURL=overlayscrollbars.mjs.map\n","import { shallowRef as I, watch as b, unref as v, onUnmounted as k, defineComponent as E, toRefs as R, ref as A, watchPostEffect as D, openBlock as h, createBlock as z, resolveDynamicComponent as j, withCtx as q, createElementVNode as x, renderSlot as B } from \"vue\";\nimport { OverlayScrollbars as y } from \"overlayscrollbars\";\nconst F = () => {\n if (typeof window > \"u\") {\n const o = () => {\n };\n return [o, o];\n }\n let a, t;\n const n = window, r = typeof n.requestIdleCallback == \"function\", l = n.requestAnimationFrame, s = n.cancelAnimationFrame, d = r ? n.requestIdleCallback : l, u = r ? n.cancelIdleCallback : s, e = () => {\n u(a), s(t);\n };\n return [\n (o, f) => {\n e(), a = d(\n r ? () => {\n e(), t = l(o);\n } : o,\n typeof f == \"object\" ? f : { timeout: 2233 }\n );\n },\n e\n ];\n}, g = (a) => {\n let t = null, n, r, l;\n const s = I(a || {}), [d, u] = F();\n return b(\n () => {\n var e;\n return v((e = s.value) == null ? void 0 : e.defer);\n },\n (e) => {\n l = e;\n },\n { deep: !0, immediate: !0 }\n ), b(\n () => {\n var e;\n return v((e = s.value) == null ? void 0 : e.options);\n },\n (e) => {\n n = e, y.valid(t) && t.options(n || {}, !0);\n },\n { deep: !0, immediate: !0 }\n ), b(\n () => {\n var e;\n return v((e = s.value) == null ? void 0 : e.events);\n },\n (e) => {\n r = e, y.valid(t) && t.on(\n /* c8 ignore next */\n r || {},\n !0\n );\n },\n { deep: !0, immediate: !0 }\n ), k(() => {\n u(), t == null || t.destroy();\n }), [\n (e) => {\n if (y.valid(t))\n return t;\n const o = () => t = y(e, n || {}, r || {});\n l ? d(o, l) : o();\n },\n () => t\n ];\n}, P = /* @__PURE__ */ E({\n __name: \"OverlayScrollbarsComponent\",\n props: {\n element: {\n type: String,\n default: \"div\"\n },\n options: { type: Object },\n events: { type: Object },\n defer: { type: [Boolean, Object] }\n },\n emits: [\"osInitialized\", \"osUpdated\", \"osDestroyed\", \"osScroll\"],\n setup(a, { expose: t, emit: n }) {\n const r = a, l = {\n initialized: \"osInitialized\",\n updated: \"osUpdated\",\n destroyed: \"osDestroyed\",\n scroll: \"osScroll\"\n }, { element: s, options: d, events: u, defer: e } = R(r), o = I(null), f = I(null), S = A(), [O, C] = g({ options: d, events: S, defer: e });\n return t({\n osInstance: C,\n getElement: () => o.value\n }), D((p) => {\n const { value: m } = o, { value: i } = f;\n m && i && (O({\n target: m,\n elements: {\n viewport: i,\n content: i\n }\n }), p(() => {\n var c;\n return (c = C()) == null ? void 0 : c.destroy();\n }));\n }), b(\n () => v(u),\n (p) => {\n const m = p || {};\n S.value = Object.keys(l).reduce((i, c) => {\n const w = m[c];\n return i[c] = [\n (..._) => n(\n l[c],\n ..._\n ),\n ...(Array.isArray(w) ? w : [w]).filter(Boolean)\n ], i;\n }, {});\n },\n { deep: !0, immediate: !0 }\n ), (p, m) => (h(), z(j(v(s)), {\n \"data-overlayscrollbars-initialize\": \"\",\n ref_key: \"elementRef\",\n ref: o\n }, {\n default: q(() => [\n x(\"div\", {\n \"data-overlayscrollbars-contents\": \"\",\n ref_key: \"slotRef\",\n ref: f\n }, [\n B(p.$slots, \"default\")\n ], 512)\n ]),\n _: 3\n }, 512));\n }\n});\nexport {\n P as OverlayScrollbarsComponent,\n g as useOverlayScrollbars\n};\n//# sourceMappingURL=overlayscrollbars-vue.mjs.map\n","<script lang=\"ts\" setup>\nimport type { UseOverlayScrollbarsParams } from \"overlayscrollbars-vue\";\nimport { useOverlayScrollbars } from \"overlayscrollbars-vue\";\nimport { computed, nextTick, onMounted, reactive, ref, watch } from \"vue\";\nimport { IconClose } from \"../../icons/icons\";\n\nconst props = withDefaults(\n defineProps<{\n visible?: boolean;\n title?: string;\n width?: number;\n height?: string;\n fullscreen?: boolean;\n bodyClass?: string[];\n mountToBody?: boolean;\n centered?: boolean;\n layerClosable?: boolean;\n }>(),\n {\n visible: undefined,\n title: undefined,\n width: 500,\n height: undefined,\n fullscreen: false,\n bodyClass: undefined,\n mountToBody: false,\n centered: true,\n layerClosable: false,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"update:visible\", value: boolean): void;\n (event: \"close\"): void;\n}>();\n\nconst internalVisible = ref<boolean | undefined>(false);\nconst rootVisible = ref(false);\nconst modelWrapper = ref<HTMLElement>();\n\nwatch(\n () => props.visible,\n () => {\n internalVisible.value = props.visible;\n }\n);\n\nonMounted(() => {\n if (props.visible === undefined) {\n internalVisible.value = true;\n }\n});\n\nconst wrapperClasses = computed(() => {\n return {\n \"modal-wrapper-fullscreen\": props.fullscreen,\n \"modal-wrapper-centered\": props.centered,\n };\n});\n\nconst contentStyles = computed(() => {\n return {\n maxWidth: props.width + \"px\",\n height: props.height,\n };\n});\n\nfunction handleClose() {\n internalVisible.value = false;\n setTimeout(() => {\n emit(\"update:visible\", false);\n emit(\"close\");\n }, 200);\n}\n\ndefineExpose({\n close: handleClose,\n});\n\nconst focus = ref(false);\n\nfunction handleClickLayer() {\n if (props.layerClosable) {\n handleClose();\n return;\n }\n focus.value = true;\n setTimeout(() => {\n focus.value = false;\n }, 300);\n}\n\n// body scroll\nconst modalBody = ref(null);\nconst reactiveParams = reactive<UseOverlayScrollbarsParams>({\n options: {\n scrollbars: {\n autoHide: \"scroll\",\n autoHideDelay: 600,\n },\n },\n defer: true,\n});\nconst [initialize, instance] = useOverlayScrollbars(reactiveParams);\nwatch(\n () => internalVisible.value,\n (value) => {\n if (value) {\n if (modalBody.value) initialize({ target: modalBody.value });\n nextTick(() => {\n modelWrapper.value?.focus();\n });\n } else {\n instance()?.destroy();\n }\n }\n);\n</script>\n<template>\n <Teleport :disabled=\"!mountToBody\" to=\"body\">\n <div\n v-show=\"rootVisible\"\n ref=\"modelWrapper\"\n :class=\"wrapperClasses\"\n aria-modal=\"true\"\n class=\"modal-wrapper\"\n role=\"dialog\"\n tabindex=\"0\"\n v-bind=\"$attrs\"\n @keyup.esc.stop=\"handleClose()\"\n >\n <transition\n enter-active-class=\"ease-out duration-200\"\n enter-from-class=\"opacity-0\"\n enter-to-class=\"opacity-100\"\n leave-active-class=\"ease-in duration-100\"\n leave-from-class=\"opacity-100\"\n leave-to-class=\"opacity-0\"\n @before-enter=\"rootVisible = true\"\n @after-leave=\"rootVisible = false\"\n >\n <div\n v-show=\"internalVisible\"\n class=\"modal-layer\"\n @click.stop=\"handleClickLayer()\"\n />\n </transition>\n <transition\n enter-active-class=\"ease-out duration-200\"\n enter-from-class=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n enter-to-class=\"opacity-100 translate-y-0 sm:scale-100\"\n leave-active-class=\"ease-in duration-100\"\n leave-from-class=\"opacity-100 translate-y-0 sm:scale-100\"\n leave-to-class=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n >\n <div\n v-show=\"internalVisible\"\n :style=\"contentStyles\"\n class=\"modal-content transition-all duration-300\"\n :class=\"{ 'modal-focus': focus }\"\n >\n <div v-if=\"$slots.header || title\" class=\"modal-header group\">\n <slot name=\"header\">\n <div class=\"modal-header-title\">{{ title }}</div>\n <div v-if=\"$slots.center\" class=\"modal-header-center\">\n <slot name=\"center\"></slot>\n </div>\n <div class=\"modal-header-actions\">\n <slot name=\"actions\"></slot>\n <span class=\"bg-gray-50\" @click=\"handleClose()\">\n <IconClose />\n </span>\n </div>\n </slot>\n </div>\n <div ref=\"modalBody\" :class=\"bodyClass\" class=\"modal-body\">\n <slot />\n </div>\n <div v-if=\"$slots.footer\" class=\"modal-footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </transition>\n </div>\n </Teleport>\n</template>\n\n<style lang=\"scss\">\n.modal-wrapper {\n @apply fixed left-0 top-0 flex h-full w-full flex-row items-start justify-center py-10;\n z-index: 2000;\n\n .modal-layer {\n @apply absolute left-0 top-0 h-full w-full flex-none bg-gray-500 bg-opacity-75 transition-opacity;\n }\n\n .modal-content {\n @apply relative flex flex-col items-stretch rounded-base bg-white shadow-xl;\n width: calc(100vw - 20px);\n max-height: calc(100vh - 5rem);\n\n &.modal-focus {\n @apply scale-[1.02];\n }\n\n .modal-header {\n @apply flex select-none items-center justify-between border-b;\n padding: 10px 16px;\n\n .modal-header-title {\n @apply truncate text-base font-medium;\n }\n\n .modal-header-actions {\n @apply flex flex-row gap-2;\n span {\n @apply inline-flex h-7 w-7 cursor-pointer select-none items-center justify-center rounded-full text-gray-600 hover:bg-gray-100 hover:text-gray-900 group-hover:hidden;\n }\n }\n }\n\n .modal-body {\n @apply flex-1 overflow-x-hidden overflow-y-hidden;\n word-wrap: break-word;\n padding: 12px 16px;\n }\n\n .modal-footer {\n @apply border-t;\n padding: 12px 16px;\n }\n }\n\n &.modal-wrapper-centered {\n @apply items-center py-0;\n .modal-content {\n max-height: calc(100vh - 20px) !important;\n }\n }\n\n &.modal-wrapper-fullscreen {\n .modal-content {\n width: 100vw !important;\n max-width: 100vw !important;\n height: 100vh !important;\n max-height: 100vh !important;\n border-radius: 0;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport type { UseOverlayScrollbarsParams } from \"overlayscrollbars-vue\";\nimport { useOverlayScrollbars } from \"overlayscrollbars-vue\";\nimport { computed, nextTick, onMounted, reactive, ref, watch } from \"vue\";\nimport { IconClose } from \"../../icons/icons\";\n\nconst props = withDefaults(\n defineProps<{\n visible?: boolean;\n title?: string;\n width?: number;\n height?: string;\n fullscreen?: boolean;\n bodyClass?: string[];\n mountToBody?: boolean;\n centered?: boolean;\n layerClosable?: boolean;\n }>(),\n {\n visible: undefined,\n title: undefined,\n width: 500,\n height: undefined,\n fullscreen: false,\n bodyClass: undefined,\n mountToBody: false,\n centered: true,\n layerClosable: false,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"update:visible\", value: boolean): void;\n (event: \"close\"): void;\n}>();\n\nconst internalVisible = ref<boolean | undefined>(false);\nconst rootVisible = ref(false);\nconst modelWrapper = ref<HTMLElement>();\n\nwatch(\n () => props.visible,\n () => {\n internalVisible.value = props.visible;\n }\n);\n\nonMounted(() => {\n if (props.visible === undefined) {\n internalVisible.value = true;\n }\n});\n\nconst wrapperClasses = computed(() => {\n return {\n \"modal-wrapper-fullscreen\": props.fullscreen,\n \"modal-wrapper-centered\": props.centered,\n };\n});\n\nconst contentStyles = computed(() => {\n return {\n maxWidth: props.width + \"px\",\n height: props.height,\n };\n});\n\nfunction handleClose() {\n internalVisible.value = false;\n setTimeout(() => {\n emit(\"update:visible\", false);\n emit(\"close\");\n }, 200);\n}\n\ndefineExpose({\n close: handleClose,\n});\n\nconst focus = ref(false);\n\nfunction handleClickLayer() {\n if (props.layerClosable) {\n handleClose();\n return;\n }\n focus.value = true;\n setTimeout(() => {\n focus.value = false;\n }, 300);\n}\n\n// body scroll\nconst modalBody = ref(null);\nconst reactiveParams = reactive<UseOverlayScrollbarsParams>({\n options: {\n scrollbars: {\n autoHide: \"scroll\",\n autoHideDelay: 600,\n },\n },\n defer: true,\n});\nconst [initialize, instance] = useOverlayScrollbars(reactiveParams);\nwatch(\n () => internalVisible.value,\n (value) => {\n if (value) {\n if (modalBody.value) initialize({ target: modalBody.value });\n nextTick(() => {\n modelWrapper.value?.focus();\n });\n } else {\n instance()?.destroy();\n }\n }\n);\n</script>\n<template>\n <Teleport :disabled=\"!mountToBody\" to=\"body\">\n <div\n v-show=\"rootVisible\"\n ref=\"modelWrapper\"\n :class=\"wrapperClasses\"\n aria-modal=\"true\"\n class=\"modal-wrapper\"\n role=\"dialog\"\n tabindex=\"0\"\n v-bind=\"$attrs\"\n @keyup.esc.stop=\"handleClose()\"\n >\n <transition\n enter-active-class=\"ease-out duration-200\"\n enter-from-class=\"opacity-0\"\n enter-to-class=\"opacity-100\"\n leave-active-class=\"ease-in duration-100\"\n leave-from-class=\"opacity-100\"\n leave-to-class=\"opacity-0\"\n @before-enter=\"rootVisible = true\"\n @after-leave=\"rootVisible = false\"\n >\n <div\n v-show=\"internalVisible\"\n class=\"modal-layer\"\n @click.stop=\"handleClickLayer()\"\n />\n </transition>\n <transition\n enter-active-class=\"ease-out duration-200\"\n enter-from-class=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n enter-to-class=\"opacity-100 translate-y-0 sm:scale-100\"\n leave-active-class=\"ease-in duration-100\"\n leave-from-class=\"opacity-100 translate-y-0 sm:scale-100\"\n leave-to-class=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n >\n <div\n v-show=\"internalVisible\"\n :style=\"contentStyles\"\n class=\"modal-content transition-all duration-300\"\n :class=\"{ 'modal-focus': focus }\"\n >\n <div v-if=\"$slots.header || title\" class=\"modal-header group\">\n <slot name=\"header\">\n <div class=\"modal-header-title\">{{ title }}</div>\n <div v-if=\"$slots.center\" class=\"modal-header-center\">\n <slot name=\"center\"></slot>\n </div>\n <div class=\"modal-header-actions\">\n <slot name=\"actions\"></slot>\n <span class=\"bg-gray-50\" @click=\"handleClose()\">\n <IconClose />\n </span>\n </div>\n </slot>\n </div>\n <div ref=\"modalBody\" :class=\"bodyClass\" class=\"modal-body\">\n <slot />\n </div>\n <div v-if=\"$slots.footer\" class=\"modal-footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </transition>\n </div>\n </Teleport>\n</template>\n\n<style lang=\"scss\">\n.modal-wrapper {\n @apply fixed left-0 top-0 flex h-full w-full flex-row items-start justify-center py-10;\n z-index: 2000;\n\n .modal-layer {\n @apply absolute left-0 top-0 h-full w-full flex-none bg-gray-500 bg-opacity-75 transition-opacity;\n }\n\n .modal-content {\n @apply relative flex flex-col items-stretch rounded-base bg-white shadow-xl;\n width: calc(100vw - 20px);\n max-height: calc(100vh - 5rem);\n\n &.modal-focus {\n @apply scale-[1.02];\n }\n\n .modal-header {\n @apply flex select-none items-center justify-between border-b;\n padding: 10px 16px;\n\n .modal-header-title {\n @apply truncate text-base font-medium;\n }\n\n .modal-header-actions {\n @apply flex flex-row gap-2;\n span {\n @apply inline-flex h-7 w-7 cursor-pointer select-none items-center justify-center rounded-full text-gray-600 hover:bg-gray-100 hover:text-gray-900 group-hover:hidden;\n }\n }\n }\n\n .modal-body {\n @apply flex-1 overflow-x-hidden overflow-y-hidden;\n word-wrap: break-word;\n padding: 12px 16px;\n }\n\n .modal-footer {\n @apply border-t;\n padding: 12px 16px;\n }\n }\n\n &.modal-wrapper-centered {\n @apply items-center py-0;\n .modal-content {\n max-height: calc(100vh - 20px) !important;\n }\n }\n\n &.modal-wrapper-fullscreen {\n .modal-content {\n width: 100vw !important;\n max-width: 100vw !important;\n height: 100vh !important;\n max-height: 100vh !important;\n border-radius: 0;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { markRaw, ref, type Component, type Raw } from \"vue\";\nimport type { DialogProps, DialogType } from \"@/components/dialog/types\";\nimport {\n IconCheckboxCircle,\n IconClose,\n IconErrorWarning,\n IconForbidLine,\n IconInformation,\n} from \"../../icons/icons\";\nimport { VButton } from \"../button\";\nimport { VModal } from \"../modal\";\n\nconst props = withDefaults(defineProps<DialogProps>(), {\n type: \"info\",\n title: \"提示\",\n description: \"\",\n confirmText: \"确定\",\n confirmType: \"primary\",\n showCancel: true,\n cancelText: \"取消\",\n visible: false,\n onConfirm: () => {\n return;\n },\n onCancel: () => {\n return;\n },\n});\n\nconst emit = defineEmits<{\n (event: \"update:visible\", visible: boolean): void;\n (event: \"close\"): void;\n}>();\n\nconst icons: Record<DialogType, { icon: Raw<Component>; color: string }> = {\n success: {\n icon: markRaw(IconCheckboxCircle),\n color: \"green\",\n },\n info: {\n icon: markRaw(IconInformation),\n color: \"blue\",\n },\n warning: {\n icon: markRaw(IconErrorWarning),\n color: \"orange\",\n },\n error: {\n icon: markRaw(IconForbidLine),\n color: \"red\",\n },\n};\n\nconst loading = ref(false);\n\nconst handleCancel = () => {\n if (props.onCancel) {\n props.onCancel();\n }\n handleClose();\n};\n\nconst handleConfirm = async () => {\n if (props.onConfirm) {\n loading.value = true;\n\n try {\n await props.onConfirm();\n } catch (error) {\n console.error(\"Failed to execute onConfirm: \", error);\n } finally {\n loading.value = false;\n }\n }\n handleClose();\n};\n\nconst handleClose = () => {\n loading.value = false;\n emit(\"update:visible\", false);\n emit(\"close\");\n};\n</script>\n<template>\n <VModal\n :visible=\"visible\"\n :width=\"450\"\n :layer-closable=\"false\"\n :data-unique-id=\"uniqueId\"\n @close=\"handleCancel()\"\n >\n <div class=\"mb-2 flex items-start justify-between py-2\">\n <div class=\"flex flex-row items-center gap-3\">\n <component\n :is=\"icons[type].icon\"\n :class=\"`text-${icons[type].color}-500`\"\n class=\"h-6 w-6 flex-none\"\n ></component>\n <div class=\"text-base font-bold text-gray-900\">{{ title }}</div>\n </div>\n <div>\n <IconClose class=\"cursor-pointer\" @click=\"handleCancel\" />\n </div>\n </div>\n <div class=\"flex items-center gap-4\">\n <div class=\"flex flex-1 items-stretch\">\n <div class=\"break-all text-sm text-gray-700\">{{ description }}</div>\n </div>\n </div>\n <template #footer>\n <div class=\"flex flex-row flex-wrap gap-3\">\n <VButton :loading=\"loading\" :type=\"confirmType\" @click=\"handleConfirm\">\n {{ confirmText }}\n </VButton>\n <VButton v-if=\"showCancel\" @click=\"handleCancel\">\n {{ cancelText }}\n </VButton>\n </div>\n </template>\n </VModal>\n</template>\n","<script lang=\"ts\" setup>\nimport { markRaw, ref, type Component, type Raw } from \"vue\";\nimport type { DialogProps, DialogType } from \"@/components/dialog/types\";\nimport {\n IconCheckboxCircle,\n IconClose,\n IconErrorWarning,\n IconForbidLine,\n IconInformation,\n} from \"../../icons/icons\";\nimport { VButton } from \"../button\";\nimport { VModal } from \"../modal\";\n\nconst props = withDefaults(defineProps<DialogProps>(), {\n type: \"info\",\n title: \"提示\",\n description: \"\",\n confirmText: \"确定\",\n confirmType: \"primary\",\n showCancel: true,\n cancelText: \"取消\",\n visible: false,\n onConfirm: () => {\n return;\n },\n onCancel: () => {\n return;\n },\n});\n\nconst emit = defineEmits<{\n (event: \"update:visible\", visible: boolean): void;\n (event: \"close\"): void;\n}>();\n\nconst icons: Record<DialogType, { icon: Raw<Component>; color: string }> = {\n success: {\n icon: markRaw(IconCheckboxCircle),\n color: \"green\",\n },\n info: {\n icon: markRaw(IconInformation),\n color: \"blue\",\n },\n warning: {\n icon: markRaw(IconErrorWarning),\n color: \"orange\",\n },\n error: {\n icon: markRaw(IconForbidLine),\n color: \"red\",\n },\n};\n\nconst loading = ref(false);\n\nconst handleCancel = () => {\n if (props.onCancel) {\n props.onCancel();\n }\n handleClose();\n};\n\nconst handleConfirm = async () => {\n if (props.onConfirm) {\n loading.value = true;\n\n try {\n await props.onConfirm();\n } catch (error) {\n console.error(\"Failed to execute onConfirm: \", error);\n } finally {\n loading.value = false;\n }\n }\n handleClose();\n};\n\nconst handleClose = () => {\n loading.value = false;\n emit(\"update:visible\", false);\n emit(\"close\");\n};\n</script>\n<template>\n <VModal\n :visible=\"visible\"\n :width=\"450\"\n :layer-closable=\"false\"\n :data-unique-id=\"uniqueId\"\n @close=\"handleCancel()\"\n >\n <div class=\"mb-2 flex items-start justify-between py-2\">\n <div class=\"flex flex-row items-center gap-3\">\n <component\n :is=\"icons[type].icon\"\n :class=\"`text-${icons[type].color}-500`\"\n class=\"h-6 w-6 flex-none\"\n ></component>\n <div class=\"text-base font-bold text-gray-900\">{{ title }}</div>\n </div>\n <div>\n <IconClose class=\"cursor-pointer\" @click=\"handleCancel\" />\n </div>\n </div>\n <div class=\"flex items-center gap-4\">\n <div class=\"flex flex-1 items-stretch\">\n <div class=\"break-all text-sm text-gray-700\">{{ description }}</div>\n </div>\n </div>\n <template #footer>\n <div class=\"flex flex-row flex-wrap gap-3\">\n <VButton :loading=\"loading\" :type=\"confirmType\" @click=\"handleConfirm\">\n {{ confirmText }}\n </VButton>\n <VButton v-if=\"showCancel\" @click=\"handleCancel\">\n {{ cancelText }}\n </VButton>\n </div>\n </template>\n </VModal>\n</template>\n","import { createVNode, render, type Component } from \"vue\";\nimport DialogComponent from \"./Dialog.vue\";\nimport type { DialogProps } from \"./types\";\n\nexport type DialogApiProps = Omit<DialogProps, \"type\" | \"visible\">;\n\nexport type DialogApi = (props?: DialogApiProps) => void;\n\nexport interface DialogEntry {\n (props: DialogProps): void;\n info: DialogApi;\n success: DialogApi;\n error: DialogApi;\n warning: DialogApi;\n}\n\nconst defaultProps: DialogProps = {\n title: \"\",\n visible: false,\n};\n\nconst DIALOG_CONTAINER_CLASS = \".dialog-container\";\nconst MODAL_WRAPPER_CLASS = \".modal-wrapper\";\n\nfunction getOrCreateContainer() {\n let container = document.body.querySelector(DIALOG_CONTAINER_CLASS);\n if (!container) {\n container = document.createElement(\"div\");\n container.className = \"dialog-container\";\n document.body.appendChild(container);\n }\n return container;\n}\n\nconst dialog: DialogEntry = (userProps: DialogProps) => {\n const props = {\n ...defaultProps,\n ...userProps,\n };\n\n const container = getOrCreateContainer();\n\n if (\n props.uniqueId &&\n container.querySelector(`[data-unique-id=\"${props.uniqueId}\"]`)\n ) {\n return;\n }\n\n const { vnode, container: hostContainer } = createVNodeComponent(\n DialogComponent,\n props\n );\n\n if (hostContainer.firstElementChild) {\n container.appendChild(hostContainer.firstElementChild);\n }\n\n if (vnode.component?.props) {\n vnode.component.props.visible = true;\n }\n\n if (vnode?.props) {\n vnode.props.onClose = () => {\n const modals = container.querySelectorAll(MODAL_WRAPPER_CLASS);\n\n if (modals.length > 1) {\n hostContainer.firstElementChild?.remove();\n } else {\n container.remove();\n }\n\n render(null, hostContainer);\n };\n }\n};\n\nfunction createVNodeComponent(\n component: Component,\n props: Record<string, unknown>\n) {\n const vnode = createVNode(component, props);\n const container = document.createElement(\"div\");\n render(vnode, container);\n return { vnode, container };\n}\n\ndialog.success = (props?: DialogApiProps) =>\n dialog({ ...props, type: \"success\" });\ndialog.info = (props?: DialogApiProps) => dialog({ ...props, type: \"info\" });\ndialog.warning = (props?: DialogApiProps) =>\n dialog({ ...props, type: \"warning\" });\ndialog.error = (props?: DialogApiProps) => dialog({ ...props, type: \"error\" });\n\nexport { dialog as Dialog };\n","export type DialogType = \"success\" | \"info\" | \"warning\" | \"error\";\nexport const DialogProviderProvideKey = \"DIALOG_PROVIDER_PROVIDE_KEY\";\nimport type { ButtonType } from \"../button/types\";\n\nexport interface DialogProps {\n type?: DialogType;\n visible?: boolean;\n title?: string;\n description?: string;\n confirmType?: ButtonType;\n showCancel?: boolean;\n confirmText?: string;\n cancelText?: string;\n uniqueId?: string;\n onConfirm?: () => void;\n onCancel?: () => void;\n}\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nconst yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);\nfunction getSideAxis(placement) {\n return yAxisSides.has(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","import{rectToClientRect as t,computePosition as e}from\"@floating-ui/core\";export{arrow,autoPlacement,detectOverflow,flip,hide,inline,limitShift,offset,shift,size}from\"@floating-ui/core\";function n(t){var e;return(null==(e=t.ownerDocument)?void 0:e.defaultView)||window}function o(t){return n(t).getComputedStyle(t)}const i=Math.min,r=Math.max,l=Math.round;function c(t){const e=o(t);let n=parseFloat(e.width),i=parseFloat(e.height);const r=t.offsetWidth,c=t.offsetHeight,s=l(n)!==r||l(i)!==c;return s&&(n=r,i=c),{width:n,height:i,fallback:s}}function s(t){return h(t)?(t.nodeName||\"\").toLowerCase():\"\"}let f;function u(){if(f)return f;const t=navigator.userAgentData;return t&&Array.isArray(t.brands)?(f=t.brands.map((t=>t.brand+\"/\"+t.version)).join(\" \"),f):navigator.userAgent}function a(t){return t instanceof n(t).HTMLElement}function d(t){return t instanceof n(t).Element}function h(t){return t instanceof n(t).Node}function p(t){if(\"undefined\"==typeof ShadowRoot)return!1;return t instanceof n(t).ShadowRoot||t instanceof ShadowRoot}function g(t){const{overflow:e,overflowX:n,overflowY:i,display:r}=o(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&![\"inline\",\"contents\"].includes(r)}function m(t){return[\"table\",\"td\",\"th\"].includes(s(t))}function y(t){const e=/firefox/i.test(u()),n=o(t),i=n.backdropFilter||n.WebkitBackdropFilter;return\"none\"!==n.transform||\"none\"!==n.perspective||!!i&&\"none\"!==i||e&&\"filter\"===n.willChange||e&&!!n.filter&&\"none\"!==n.filter||[\"transform\",\"perspective\"].some((t=>n.willChange.includes(t)))||[\"paint\",\"layout\",\"strict\",\"content\"].some((t=>{const e=n.contain;return null!=e&&e.includes(t)}))}function x(){return!/^((?!chrome|android).)*safari/i.test(u())}function w(t){return[\"html\",\"body\",\"#document\"].includes(s(t))}function v(t){return d(t)?t:t.contextElement}const b={x:1,y:1};function L(t){const e=v(t);if(!a(e))return b;const n=e.getBoundingClientRect(),{width:o,height:i,fallback:r}=c(e);let s=(r?l(n.width):n.width)/o,f=(r?l(n.height):n.height)/i;return s&&Number.isFinite(s)||(s=1),f&&Number.isFinite(f)||(f=1),{x:s,y:f}}function E(t,e,o,i){var r,l;void 0===e&&(e=!1),void 0===o&&(o=!1);const c=t.getBoundingClientRect(),s=v(t);let f=b;e&&(i?d(i)&&(f=L(i)):f=L(t));const u=s?n(s):window,a=!x()&&o;let h=(c.left+(a&&(null==(r=u.visualViewport)?void 0:r.offsetLeft)||0))/f.x,p=(c.top+(a&&(null==(l=u.visualViewport)?void 0:l.offsetTop)||0))/f.y,g=c.width/f.x,m=c.height/f.y;if(s){const t=n(s),e=i&&d(i)?n(i):i;let o=t.frameElement;for(;o&&i&&e!==t;){const t=L(o),e=o.getBoundingClientRect(),i=getComputedStyle(o);e.x+=(o.clientLeft+parseFloat(i.paddingLeft))*t.x,e.y+=(o.clientTop+parseFloat(i.paddingTop))*t.y,h*=t.x,p*=t.y,g*=t.x,m*=t.y,h+=e.x,p+=e.y,o=n(o).frameElement}}return{width:g,height:m,top:p,right:h+g,bottom:p+m,left:h,x:h,y:p}}function R(t){return((h(t)?t.ownerDocument:t.document)||window.document).documentElement}function T(t){return d(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function C(t){return E(R(t)).left+T(t).scrollLeft}function F(t){if(\"html\"===s(t))return t;const e=t.assignedSlot||t.parentNode||p(t)&&t.host||R(t);return p(e)?e.host:e}function W(t){const e=F(t);return w(e)?e.ownerDocument.body:a(e)&&g(e)?e:W(e)}function D(t,e){var o;void 0===e&&(e=[]);const i=W(t),r=i===(null==(o=t.ownerDocument)?void 0:o.body),l=n(i);return r?e.concat(l,l.visualViewport||[],g(i)?i:[]):e.concat(i,D(i))}function S(e,i,l){return\"viewport\"===i?t(function(t,e){const o=n(t),i=R(t),r=o.visualViewport;let l=i.clientWidth,c=i.clientHeight,s=0,f=0;if(r){l=r.width,c=r.height;const t=x();(t||!t&&\"fixed\"===e)&&(s=r.offsetLeft,f=r.offsetTop)}return{width:l,height:c,x:s,y:f}}(e,l)):d(i)?t(function(t,e){const n=E(t,!0,\"fixed\"===e),o=n.top+t.clientTop,i=n.left+t.clientLeft,r=a(t)?L(t):{x:1,y:1};return{width:t.clientWidth*r.x,height:t.clientHeight*r.y,x:i*r.x,y:o*r.y}}(i,l)):t(function(t){const e=R(t),n=T(t),i=t.ownerDocument.body,l=r(e.scrollWidth,e.clientWidth,i.scrollWidth,i.clientWidth),c=r(e.scrollHeight,e.clientHeight,i.scrollHeight,i.clientHeight);let s=-n.scrollLeft+C(t);const f=-n.scrollTop;return\"rtl\"===o(i).direction&&(s+=r(e.clientWidth,i.clientWidth)-l),{width:l,height:c,x:s,y:f}}(R(e)))}function A(t){return a(t)&&\"fixed\"!==o(t).position?t.offsetParent:null}function H(t){const e=n(t);let i=A(t);for(;i&&m(i)&&\"static\"===o(i).position;)i=A(i);return i&&(\"html\"===s(i)||\"body\"===s(i)&&\"static\"===o(i).position&&!y(i))?e:i||function(t){let e=F(t);for(;a(e)&&!w(e);){if(y(e))return e;e=F(e)}return null}(t)||e}function O(t,e,n){const o=a(e),i=R(e),r=E(t,!0,\"fixed\"===n,e);let l={scrollLeft:0,scrollTop:0};const c={x:0,y:0};if(o||!o&&\"fixed\"!==n)if((\"body\"!==s(e)||g(i))&&(l=T(e)),a(e)){const t=E(e,!0);c.x=t.x+e.clientLeft,c.y=t.y+e.clientTop}else i&&(c.x=C(i));return{x:r.left+l.scrollLeft-c.x,y:r.top+l.scrollTop-c.y,width:r.width,height:r.height}}const P={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:l,strategy:c}=t;const f=\"clippingAncestors\"===n?function(t,e){const n=e.get(t);if(n)return n;let i=D(t).filter((t=>d(t)&&\"body\"!==s(t))),r=null;const l=\"fixed\"===o(t).position;let c=l?F(t):t;for(;d(c)&&!w(c);){const t=o(c),e=y(c);(l?e||r:e||\"static\"!==t.position||!r||![\"absolute\",\"fixed\"].includes(r.position))?r=t:i=i.filter((t=>t!==c)),c=F(c)}return e.set(t,i),i}(e,this._c):[].concat(n),u=[...f,l],a=u[0],h=u.reduce(((t,n)=>{const o=S(e,n,c);return t.top=r(o.top,t.top),t.right=i(o.right,t.right),t.bottom=i(o.bottom,t.bottom),t.left=r(o.left,t.left),t}),S(e,a,c));return{width:h.right-h.left,height:h.bottom-h.top,x:h.left,y:h.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:o}=t;const i=a(n),r=R(n);if(n===r)return e;let l={scrollLeft:0,scrollTop:0},c={x:1,y:1};const f={x:0,y:0};if((i||!i&&\"fixed\"!==o)&&((\"body\"!==s(n)||g(r))&&(l=T(n)),a(n))){const t=E(n);c=L(n),f.x=t.x+n.clientLeft,f.y=t.y+n.clientTop}return{width:e.width*c.x,height:e.height*c.y,x:e.x*c.x-l.scrollLeft*c.x+f.x,y:e.y*c.y-l.scrollTop*c.y+f.y}},isElement:d,getDimensions:function(t){return a(t)?c(t):t.getBoundingClientRect()},getOffsetParent:H,getDocumentElement:R,getScale:L,async getElementRects(t){let{reference:e,floating:n,strategy:o}=t;const i=this.getOffsetParent||H,r=this.getDimensions;return{reference:O(e,await i(n),o),floating:{x:0,y:0,...await r(n)}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>\"rtl\"===o(t).direction};function z(t,e,n,o){void 0===o&&(o={});const{ancestorScroll:i=!0,ancestorResize:r=!0,elementResize:l=!0,animationFrame:c=!1}=o,s=i&&!c,f=s||r?[...d(t)?D(t):t.contextElement?D(t.contextElement):[],...D(e)]:[];f.forEach((t=>{s&&t.addEventListener(\"scroll\",n,{passive:!0}),r&&t.addEventListener(\"resize\",n)}));let u,a=null;if(l){let o=!0;a=new ResizeObserver((()=>{o||n(),o=!1})),d(t)&&!c&&a.observe(t),d(t)||!t.contextElement||c||a.observe(t.contextElement),a.observe(e)}let h=c?E(t):null;return c&&function e(){const o=E(t);!h||o.x===h.x&&o.y===h.y&&o.width===h.width&&o.height===h.height||n();h=o,u=requestAnimationFrame(e)}(),n(),()=>{var t;f.forEach((t=>{s&&t.removeEventListener(\"scroll\",n),r&&t.removeEventListener(\"resize\",n)})),null==(t=a)||t.disconnect(),a=null,c&&cancelAnimationFrame(u)}}const B=(t,n,o)=>{const i=new Map,r={platform:P,...o},l={...r.platform,_c:i};return e(t,n,{...r,platform:l})};export{z as autoUpdate,B as computePosition,D as getOverflowAncestors,P as platform};\n","import { defineComponent as O, openBlock as f, createElementBlock as T, normalizeClass as J, renderSlot as A, normalizeProps as ke, guardReactiveProps as Le, pushScopeId as De, popScopeId as Ie, nextTick as Fe, createBlock as M, withScopeId as Re, resolveComponent as P, normalizeStyle as W, withKeys as je, createElementVNode as w, Fragment as Ve, createCommentVNode as se, mergeProps as $e, withCtx as N, createVNode as ve, toDisplayString as We, ref as U, createApp as Ge, h as qe } from \"vue\";\nimport { offset as xe, autoPlacement as Ue, shift as Ye, flip as Xe, arrow as Ke, size as Je, computePosition as Qe, getOverflowAncestors as ne } from \"@floating-ui/dom\";\nfunction ye(e, t) {\n for (const o in t)\n Object.prototype.hasOwnProperty.call(t, o) && (typeof t[o] == \"object\" && e[o] ? ye(e[o], t[o]) : e[o] = t[o]);\n}\nconst h = {\n // Disable popper components\n disabled: !1,\n // Default position offset along main axis (px)\n distance: 5,\n // Default position offset along cross axis (px)\n skidding: 0,\n // Default container where the tooltip will be appended\n container: \"body\",\n // Element used to compute position and size boundaries\n boundary: void 0,\n // Skip delay & CSS transitions when another popper is shown, so that the popper appear to instanly move to the new position.\n instantMove: !1,\n // Auto destroy tooltip DOM nodes (ms)\n disposeTimeout: 150,\n // Triggers on the popper itself\n popperTriggers: [],\n // Positioning strategy\n strategy: \"absolute\",\n // Prevent overflow\n preventOverflow: !0,\n // Flip to the opposite placement if needed\n flip: !0,\n // Shift on the cross axis to prevent the popper from overflowing\n shift: !0,\n // Overflow padding (px)\n overflowPadding: 0,\n // Arrow padding (px)\n arrowPadding: 0,\n // Compute arrow overflow (useful to hide it)\n arrowOverflow: !0,\n /**\n * By default, compute autohide on 'click'.\n */\n autoHideOnMousedown: !1,\n // Themes\n themes: {\n tooltip: {\n // Default tooltip placement relative to target element\n placement: \"top\",\n // Default events that trigger the tooltip\n triggers: [\"hover\", \"focus\", \"touch\"],\n // Close tooltip on click on tooltip target\n hideTriggers: (e) => [...e, \"click\"],\n // Delay (ms)\n delay: {\n show: 200,\n hide: 0\n },\n // Update popper on content resize\n handleResize: !1,\n // Enable HTML content in directive\n html: !1,\n // Displayed when tooltip content is loading\n loadingContent: \"...\"\n },\n dropdown: {\n // Default dropdown placement relative to target element\n placement: \"bottom\",\n // Default events that trigger the dropdown\n triggers: [\"click\"],\n // Delay (ms)\n delay: 0,\n // Update popper on content resize\n handleResize: !0,\n // Hide on clock outside\n autoHide: !0\n },\n menu: {\n $extend: \"dropdown\",\n triggers: [\"hover\", \"focus\"],\n popperTriggers: [\"hover\"],\n delay: {\n show: 0,\n hide: 400\n }\n }\n }\n};\nfunction S(e, t) {\n let o = h.themes[e] || {}, i;\n do\n i = o[t], typeof i > \"u\" ? o.$extend ? o = h.themes[o.$extend] || {} : (o = null, i = h[t]) : o = null;\n while (o);\n return i;\n}\nfunction Ze(e) {\n const t = [e];\n let o = h.themes[e] || {};\n do\n o.$extend && !o.$resetCss ? (t.push(o.$extend), o = h.themes[o.$extend] || {}) : o = null;\n while (o);\n return t.map((i) => `v-popper--theme-${i}`);\n}\nfunction re(e) {\n const t = [e];\n let o = h.themes[e] || {};\n do\n o.$extend ? (t.push(o.$extend), o = h.themes[o.$extend] || {}) : o = null;\n while (o);\n return t;\n}\nlet $ = !1;\nif (typeof window < \"u\") {\n $ = !1;\n try {\n const e = Object.defineProperty({}, \"passive\", {\n get() {\n $ = !0;\n }\n });\n window.addEventListener(\"test\", null, e);\n } catch {\n }\n}\nlet _e = !1;\ntypeof window < \"u\" && typeof navigator < \"u\" && (_e = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream);\nconst Te = [\"auto\", \"top\", \"bottom\", \"left\", \"right\"].reduce((e, t) => e.concat([\n t,\n `${t}-start`,\n `${t}-end`\n]), []), pe = {\n hover: \"mouseenter\",\n focus: \"focus\",\n click: \"click\",\n touch: \"touchstart\",\n pointer: \"pointerdown\"\n}, ae = {\n hover: \"mouseleave\",\n focus: \"blur\",\n click: \"click\",\n touch: \"touchend\",\n pointer: \"pointerup\"\n};\nfunction de(e, t) {\n const o = e.indexOf(t);\n o !== -1 && e.splice(o, 1);\n}\nfunction G() {\n return new Promise((e) => requestAnimationFrame(() => {\n requestAnimationFrame(e);\n }));\n}\nconst d = [];\nlet g = null;\nconst le = {};\nfunction he(e) {\n let t = le[e];\n return t || (t = le[e] = []), t;\n}\nlet Y = function() {\n};\ntypeof window < \"u\" && (Y = window.Element);\nfunction n(e) {\n return function(t) {\n return S(t.theme, e);\n };\n}\nconst q = \"__floating-vue__popper\", Q = () => O({\n name: \"VPopper\",\n provide() {\n return {\n [q]: {\n parentPopper: this\n }\n };\n },\n inject: {\n [q]: { default: null }\n },\n props: {\n theme: {\n type: String,\n required: !0\n },\n targetNodes: {\n type: Function,\n required: !0\n },\n referenceNode: {\n type: Function,\n default: null\n },\n popperNode: {\n type: Function,\n required: !0\n },\n shown: {\n type: Boolean,\n default: !1\n },\n showGroup: {\n type: String,\n default: null\n },\n // eslint-disable-next-line vue/require-prop-types\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: n(\"disabled\")\n },\n positioningDisabled: {\n type: Boolean,\n default: n(\"positioningDisabled\")\n },\n placement: {\n type: String,\n default: n(\"placement\"),\n validator: (e) => Te.includes(e)\n },\n delay: {\n type: [String, Number, Object],\n default: n(\"delay\")\n },\n distance: {\n type: [Number, String],\n default: n(\"distance\")\n },\n skidding: {\n type: [Number, String],\n default: n(\"skidding\")\n },\n triggers: {\n type: Array,\n default: n(\"triggers\")\n },\n showTriggers: {\n type: [Array, Function],\n default: n(\"showTriggers\")\n },\n hideTriggers: {\n type: [Array, Function],\n default: n(\"hideTriggers\")\n },\n popperTriggers: {\n type: Array,\n default: n(\"popperTriggers\")\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: n(\"popperShowTriggers\")\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: n(\"popperHideTriggers\")\n },\n container: {\n type: [String, Object, Y, Boolean],\n default: n(\"container\")\n },\n boundary: {\n type: [String, Y],\n default: n(\"boundary\")\n },\n strategy: {\n type: String,\n validator: (e) => [\"absolute\", \"fixed\"].includes(e),\n default: n(\"strategy\")\n },\n autoHide: {\n type: [Boolean, Function],\n default: n(\"autoHide\")\n },\n handleResize: {\n type: Boolean,\n default: n(\"handleResize\")\n },\n instantMove: {\n type: Boolean,\n default: n(\"instantMove\")\n },\n eagerMount: {\n type: Boolean,\n default: n(\"eagerMount\")\n },\n popperClass: {\n type: [String, Array, Object],\n default: n(\"popperClass\")\n },\n computeTransformOrigin: {\n type: Boolean,\n default: n(\"computeTransformOrigin\")\n },\n /**\n * @deprecated\n */\n autoMinSize: {\n type: Boolean,\n default: n(\"autoMinSize\")\n },\n autoSize: {\n type: [Boolean, String],\n default: n(\"autoSize\")\n },\n /**\n * @deprecated\n */\n autoMaxSize: {\n type: Boolean,\n default: n(\"autoMaxSize\")\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: n(\"autoBoundaryMaxSize\")\n },\n preventOverflow: {\n type: Boolean,\n default: n(\"preventOverflow\")\n },\n overflowPadding: {\n type: [Number, String],\n default: n(\"overflowPadding\")\n },\n arrowPadding: {\n type: [Number, String],\n default: n(\"arrowPadding\")\n },\n arrowOverflow: {\n type: Boolean,\n default: n(\"arrowOverflow\")\n },\n flip: {\n type: Boolean,\n default: n(\"flip\")\n },\n shift: {\n type: Boolean,\n default: n(\"shift\")\n },\n shiftCrossAxis: {\n type: Boolean,\n default: n(\"shiftCrossAxis\")\n },\n noAutoFocus: {\n type: Boolean,\n default: n(\"noAutoFocus\")\n },\n disposeTimeout: {\n type: Number,\n default: n(\"disposeTimeout\")\n }\n },\n emits: {\n show: () => !0,\n hide: () => !0,\n \"update:shown\": (e) => !0,\n \"apply-show\": () => !0,\n \"apply-hide\": () => !0,\n \"close-group\": () => !0,\n \"close-directive\": () => !0,\n \"auto-hide\": () => !0,\n resize: () => !0\n },\n data() {\n return {\n isShown: !1,\n isMounted: !1,\n skipTransition: !1,\n classes: {\n showFrom: !1,\n showTo: !1,\n hideFrom: !1,\n hideTo: !0\n },\n result: {\n x: 0,\n y: 0,\n placement: \"\",\n strategy: this.strategy,\n arrow: {\n x: 0,\n y: 0,\n centerOffset: 0\n },\n transformOrigin: null\n },\n randomId: `popper_${[Math.random(), Date.now()].map((e) => e.toString(36).substring(2, 10)).join(\"_\")}`,\n shownChildren: /* @__PURE__ */ new Set(),\n lastAutoHide: !0,\n pendingHide: !1,\n containsGlobalTarget: !1,\n isDisposed: !0,\n mouseDownContains: !1\n };\n },\n computed: {\n popperId() {\n return this.ariaId != null ? this.ariaId : this.randomId;\n },\n shouldMountContent() {\n return this.eagerMount || this.isMounted;\n },\n slotData() {\n return {\n popperId: this.popperId,\n isShown: this.isShown,\n shouldMountContent: this.shouldMountContent,\n skipTransition: this.skipTransition,\n autoHide: typeof this.autoHide == \"function\" ? this.lastAutoHide : this.autoHide,\n show: this.show,\n hide: this.hide,\n handleResize: this.handleResize,\n onResize: this.onResize,\n classes: {\n ...this.classes,\n popperClass: this.popperClass\n },\n result: this.positioningDisabled ? null : this.result,\n attrs: this.$attrs\n };\n },\n parentPopper() {\n var e;\n return (e = this[q]) == null ? void 0 : e.parentPopper;\n },\n hasPopperShowTriggerHover() {\n var e, t;\n return ((e = this.popperTriggers) == null ? void 0 : e.includes(\"hover\")) || ((t = this.popperShowTriggers) == null ? void 0 : t.includes(\"hover\"));\n }\n },\n watch: {\n shown: \"$_autoShowHide\",\n disabled(e) {\n e ? this.dispose() : this.init();\n },\n async container() {\n this.isShown && (this.$_ensureTeleport(), await this.$_computePosition());\n },\n triggers: {\n handler: \"$_refreshListeners\",\n deep: !0\n },\n positioningDisabled: \"$_refreshListeners\",\n ...[\n \"placement\",\n \"distance\",\n \"skidding\",\n \"boundary\",\n \"strategy\",\n \"overflowPadding\",\n \"arrowPadding\",\n \"preventOverflow\",\n \"shift\",\n \"shiftCrossAxis\",\n \"flip\"\n ].reduce((e, t) => (e[t] = \"$_computePosition\", e), {})\n },\n created() {\n this.autoMinSize && console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize=\"min\"` instead.'), this.autoMaxSize && console.warn(\"[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.\");\n },\n mounted() {\n this.init(), this.$_detachPopperNode();\n },\n activated() {\n this.$_autoShowHide();\n },\n deactivated() {\n this.hide();\n },\n beforeUnmount() {\n this.dispose();\n },\n methods: {\n show({ event: e = null, skipDelay: t = !1, force: o = !1 } = {}) {\n var i, s;\n (i = this.parentPopper) != null && i.lockedChild && this.parentPopper.lockedChild !== this || (this.pendingHide = !1, (o || !this.disabled) && (((s = this.parentPopper) == null ? void 0 : s.lockedChild) === this && (this.parentPopper.lockedChild = null), this.$_scheduleShow(e, t), this.$emit(\"show\"), this.$_showFrameLocked = !0, requestAnimationFrame(() => {\n this.$_showFrameLocked = !1;\n })), this.$emit(\"update:shown\", !0));\n },\n hide({ event: e = null, skipDelay: t = !1 } = {}) {\n var o;\n if (!this.$_hideInProgress) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0;\n return;\n }\n if (this.hasPopperShowTriggerHover && this.$_isAimingPopper()) {\n this.parentPopper && (this.parentPopper.lockedChild = this, clearTimeout(this.parentPopper.lockedChildTimer), this.parentPopper.lockedChildTimer = setTimeout(() => {\n this.parentPopper.lockedChild === this && (this.parentPopper.lockedChild.hide({ skipDelay: t }), this.parentPopper.lockedChild = null);\n }, 1e3));\n return;\n }\n ((o = this.parentPopper) == null ? void 0 : o.lockedChild) === this && (this.parentPopper.lockedChild = null), this.pendingHide = !1, this.$_scheduleHide(e, t), this.$emit(\"hide\"), this.$emit(\"update:shown\", !1);\n }\n },\n init() {\n var e;\n this.isDisposed && (this.isDisposed = !1, this.isMounted = !1, this.$_events = [], this.$_preventShow = !1, this.$_referenceNode = ((e = this.referenceNode) == null ? void 0 : e.call(this)) ?? this.$el, this.$_targetNodes = this.targetNodes().filter((t) => t.nodeType === t.ELEMENT_NODE), this.$_popperNode = this.popperNode(), this.$_innerNode = this.$_popperNode.querySelector(\".v-popper__inner\"), this.$_arrowNode = this.$_popperNode.querySelector(\".v-popper__arrow-container\"), this.$_swapTargetAttrs(\"title\", \"data-original-title\"), this.$_detachPopperNode(), this.triggers.length && this.$_addEventListeners(), this.shown && this.show());\n },\n dispose() {\n this.isDisposed || (this.isDisposed = !0, this.$_removeEventListeners(), this.hide({ skipDelay: !0 }), this.$_detachPopperNode(), this.isMounted = !1, this.isShown = !1, this.$_updateParentShownChildren(!1), this.$_swapTargetAttrs(\"data-original-title\", \"title\"));\n },\n async onResize() {\n this.isShown && (await this.$_computePosition(), this.$emit(\"resize\"));\n },\n async $_computePosition() {\n if (this.isDisposed || this.positioningDisabled)\n return;\n const e = {\n strategy: this.strategy,\n middleware: []\n };\n (this.distance || this.skidding) && e.middleware.push(xe({\n mainAxis: this.distance,\n crossAxis: this.skidding\n }));\n const t = this.placement.startsWith(\"auto\");\n if (t ? e.middleware.push(Ue({\n alignment: this.placement.split(\"-\")[1] ?? \"\"\n })) : e.placement = this.placement, this.preventOverflow && (this.shift && e.middleware.push(Ye({\n padding: this.overflowPadding,\n boundary: this.boundary,\n crossAxis: this.shiftCrossAxis\n })), !t && this.flip && e.middleware.push(Xe({\n padding: this.overflowPadding,\n boundary: this.boundary\n }))), e.middleware.push(Ke({\n element: this.$_arrowNode,\n padding: this.arrowPadding\n })), this.arrowOverflow && e.middleware.push({\n name: \"arrowOverflow\",\n fn: ({ placement: i, rects: s, middlewareData: r }) => {\n let p;\n const { centerOffset: a } = r.arrow;\n return i.startsWith(\"top\") || i.startsWith(\"bottom\") ? p = Math.abs(a) > s.reference.width / 2 : p = Math.abs(a) > s.reference.height / 2, {\n data: {\n overflow: p\n }\n };\n }\n }), this.autoMinSize || this.autoSize) {\n const i = this.autoSize ? this.autoSize : this.autoMinSize ? \"min\" : null;\n e.middleware.push({\n name: \"autoSize\",\n fn: ({ rects: s, placement: r, middlewareData: p }) => {\n var u;\n if ((u = p.autoSize) != null && u.skip)\n return {};\n let a, l;\n return r.startsWith(\"top\") || r.startsWith(\"bottom\") ? a = s.reference.width : l = s.reference.height, this.$_innerNode.style[i === \"min\" ? \"minWidth\" : i === \"max\" ? \"maxWidth\" : \"width\"] = a != null ? `${a}px` : null, this.$_innerNode.style[i === \"min\" ? \"minHeight\" : i === \"max\" ? \"maxHeight\" : \"height\"] = l != null ? `${l}px` : null, {\n data: {\n skip: !0\n },\n reset: {\n rects: !0\n }\n };\n }\n });\n }\n (this.autoMaxSize || this.autoBoundaryMaxSize) && (this.$_innerNode.style.maxWidth = null, this.$_innerNode.style.maxHeight = null, e.middleware.push(Je({\n boundary: this.boundary,\n padding: this.overflowPadding,\n apply: ({ availableWidth: i, availableHeight: s }) => {\n this.$_innerNode.style.maxWidth = i != null ? `${i}px` : null, this.$_innerNode.style.maxHeight = s != null ? `${s}px` : null;\n }\n })));\n const o = await Qe(this.$_referenceNode, this.$_popperNode, e);\n Object.assign(this.result, {\n x: o.x,\n y: o.y,\n placement: o.placement,\n strategy: o.strategy,\n arrow: {\n ...o.middlewareData.arrow,\n ...o.middlewareData.arrowOverflow\n }\n });\n },\n $_scheduleShow(e, t = !1) {\n if (this.$_updateParentShownChildren(!0), this.$_hideInProgress = !1, clearTimeout(this.$_scheduleTimer), g && this.instantMove && g.instantMove && g !== this.parentPopper) {\n g.$_applyHide(!0), this.$_applyShow(!0);\n return;\n }\n t ? this.$_applyShow() : this.$_scheduleTimer = setTimeout(this.$_applyShow.bind(this), this.$_computeDelay(\"show\"));\n },\n $_scheduleHide(e, t = !1) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0;\n return;\n }\n this.$_updateParentShownChildren(!1), this.$_hideInProgress = !0, clearTimeout(this.$_scheduleTimer), this.isShown && (g = this), t ? this.$_applyHide() : this.$_scheduleTimer = setTimeout(this.$_applyHide.bind(this), this.$_computeDelay(\"hide\"));\n },\n $_computeDelay(e) {\n const t = this.delay;\n return parseInt(t && t[e] || t || 0);\n },\n async $_applyShow(e = !1) {\n clearTimeout(this.$_disposeTimer), clearTimeout(this.$_scheduleTimer), this.skipTransition = e, !this.isShown && (this.$_ensureTeleport(), await G(), await this.$_computePosition(), await this.$_applyShowEffect(), this.positioningDisabled || this.$_registerEventListeners([\n ...ne(this.$_referenceNode),\n ...ne(this.$_popperNode)\n ], \"scroll\", () => {\n this.$_computePosition();\n }));\n },\n async $_applyShowEffect() {\n if (this.$_hideInProgress)\n return;\n if (this.computeTransformOrigin) {\n const t = this.$_referenceNode.getBoundingClientRect(), o = this.$_popperNode.querySelector(\".v-popper__wrapper\"), i = o.parentNode.getBoundingClientRect(), s = t.x + t.width / 2 - (i.left + o.offsetLeft), r = t.y + t.height / 2 - (i.top + o.offsetTop);\n this.result.transformOrigin = `${s}px ${r}px`;\n }\n this.isShown = !0, this.$_applyAttrsToTarget({\n \"aria-describedby\": this.popperId,\n \"data-popper-shown\": \"\"\n });\n const e = this.showGroup;\n if (e) {\n let t;\n for (let o = 0; o < d.length; o++)\n t = d[o], t.showGroup !== e && (t.hide(), t.$emit(\"close-group\"));\n }\n d.push(this), document.body.classList.add(\"v-popper--some-open\");\n for (const t of re(this.theme))\n he(t).push(this), document.body.classList.add(`v-popper--some-open--${t}`);\n this.$emit(\"apply-show\"), this.classes.showFrom = !0, this.classes.showTo = !1, this.classes.hideFrom = !1, this.classes.hideTo = !1, await G(), this.classes.showFrom = !1, this.classes.showTo = !0, this.noAutoFocus || this.$_popperNode.focus();\n },\n async $_applyHide(e = !1) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0, this.$_hideInProgress = !1;\n return;\n }\n if (clearTimeout(this.$_scheduleTimer), !this.isShown)\n return;\n this.skipTransition = e, de(d, this), d.length === 0 && document.body.classList.remove(\"v-popper--some-open\");\n for (const o of re(this.theme)) {\n const i = he(o);\n de(i, this), i.length === 0 && document.body.classList.remove(`v-popper--some-open--${o}`);\n }\n g === this && (g = null), this.isShown = !1, this.$_applyAttrsToTarget({\n \"aria-describedby\": void 0,\n \"data-popper-shown\": void 0\n }), clearTimeout(this.$_disposeTimer);\n const t = this.disposeTimeout;\n t !== null && (this.$_disposeTimer = setTimeout(() => {\n this.$_popperNode && (this.$_detachPopperNode(), this.isMounted = !1);\n }, t)), this.$_removeEventListeners(\"scroll\"), this.$emit(\"apply-hide\"), this.classes.showFrom = !1, this.classes.showTo = !1, this.classes.hideFrom = !0, this.classes.hideTo = !1, await G(), this.classes.hideFrom = !1, this.classes.hideTo = !0;\n },\n $_autoShowHide() {\n this.shown ? this.show() : this.hide();\n },\n $_ensureTeleport() {\n if (this.isDisposed)\n return;\n let e = this.container;\n if (typeof e == \"string\" ? e = window.document.querySelector(e) : e === !1 && (e = this.$_targetNodes[0].parentNode), !e)\n throw new Error(\"No container for popover: \" + this.container);\n e.appendChild(this.$_popperNode), this.isMounted = !0;\n },\n $_addEventListeners() {\n const e = (o) => {\n this.isShown && !this.$_hideInProgress || (o.usedByTooltip = !0, !this.$_preventShow && this.show({ event: o }));\n };\n this.$_registerTriggerListeners(this.$_targetNodes, pe, this.triggers, this.showTriggers, e), this.$_registerTriggerListeners([this.$_popperNode], pe, this.popperTriggers, this.popperShowTriggers, e);\n const t = (o) => {\n o.usedByTooltip || this.hide({ event: o });\n };\n this.$_registerTriggerListeners(this.$_targetNodes, ae, this.triggers, this.hideTriggers, t), this.$_registerTriggerListeners([this.$_popperNode], ae, this.popperTriggers, this.popperHideTriggers, t);\n },\n $_registerEventListeners(e, t, o) {\n this.$_events.push({ targetNodes: e, eventType: t, handler: o }), e.forEach((i) => i.addEventListener(t, o, $ ? {\n passive: !0\n } : void 0));\n },\n $_registerTriggerListeners(e, t, o, i, s) {\n let r = o;\n i != null && (r = typeof i == \"function\" ? i(r) : i), r.forEach((p) => {\n const a = t[p];\n a && this.$_registerEventListeners(e, a, s);\n });\n },\n $_removeEventListeners(e) {\n const t = [];\n this.$_events.forEach((o) => {\n const { targetNodes: i, eventType: s, handler: r } = o;\n !e || e === s ? i.forEach((p) => p.removeEventListener(s, r)) : t.push(o);\n }), this.$_events = t;\n },\n $_refreshListeners() {\n this.isDisposed || (this.$_removeEventListeners(), this.$_addEventListeners());\n },\n $_handleGlobalClose(e, t = !1) {\n this.$_showFrameLocked || (this.hide({ event: e }), e.closePopover ? this.$emit(\"close-directive\") : this.$emit(\"auto-hide\"), t && (this.$_preventShow = !0, setTimeout(() => {\n this.$_preventShow = !1;\n }, 300)));\n },\n $_detachPopperNode() {\n this.$_popperNode.parentNode && this.$_popperNode.parentNode.removeChild(this.$_popperNode);\n },\n $_swapTargetAttrs(e, t) {\n for (const o of this.$_targetNodes) {\n const i = o.getAttribute(e);\n i && (o.removeAttribute(e), o.setAttribute(t, i));\n }\n },\n $_applyAttrsToTarget(e) {\n for (const t of this.$_targetNodes)\n for (const o in e) {\n const i = e[o];\n i == null ? t.removeAttribute(o) : t.setAttribute(o, i);\n }\n },\n $_updateParentShownChildren(e) {\n let t = this.parentPopper;\n for (; t; )\n e ? t.shownChildren.add(this.randomId) : (t.shownChildren.delete(this.randomId), t.pendingHide && t.hide()), t = t.parentPopper;\n },\n $_isAimingPopper() {\n const e = this.$_referenceNode.getBoundingClientRect();\n if (y >= e.left && y <= e.right && _ >= e.top && _ <= e.bottom) {\n const t = this.$_popperNode.getBoundingClientRect(), o = y - c, i = _ - m, r = t.left + t.width / 2 - c + (t.top + t.height / 2) - m + t.width + t.height, p = c + o * r, a = m + i * r;\n return C(c, m, p, a, t.left, t.top, t.left, t.bottom) || // Left edge\n C(c, m, p, a, t.left, t.top, t.right, t.top) || // Top edge\n C(c, m, p, a, t.right, t.top, t.right, t.bottom) || // Right edge\n C(c, m, p, a, t.left, t.bottom, t.right, t.bottom);\n }\n return !1;\n }\n },\n render() {\n return this.$slots.default(this.slotData);\n }\n});\nif (typeof document < \"u\" && typeof window < \"u\") {\n if (_e) {\n const e = $ ? {\n passive: !0,\n capture: !0\n } : !0;\n document.addEventListener(\"touchstart\", (t) => ue(t, !0), e), document.addEventListener(\"touchend\", (t) => fe(t, !0), e);\n } else\n window.addEventListener(\"mousedown\", (e) => ue(e, !1), !0), window.addEventListener(\"click\", (e) => fe(e, !1), !0);\n window.addEventListener(\"resize\", tt);\n}\nfunction ue(e, t) {\n if (h.autoHideOnMousedown)\n Pe(e, t);\n else\n for (let o = 0; o < d.length; o++) {\n const i = d[o];\n try {\n i.mouseDownContains = i.popperNode().contains(e.target);\n } catch {\n }\n }\n}\nfunction fe(e, t) {\n h.autoHideOnMousedown || Pe(e, t);\n}\nfunction Pe(e, t) {\n const o = {};\n for (let i = d.length - 1; i >= 0; i--) {\n const s = d[i];\n try {\n const r = s.containsGlobalTarget = s.mouseDownContains || s.popperNode().contains(e.target);\n s.pendingHide = !1, requestAnimationFrame(() => {\n if (s.pendingHide = !1, !o[s.randomId] && ce(s, r, e)) {\n if (s.$_handleGlobalClose(e, t), !e.closeAllPopover && e.closePopover && r) {\n let a = s.parentPopper;\n for (; a; )\n o[a.randomId] = !0, a = a.parentPopper;\n return;\n }\n let p = s.parentPopper;\n for (; p && ce(p, p.containsGlobalTarget, e); ) {\n p.$_handleGlobalClose(e, t);\n p = p.parentPopper;\n }\n }\n });\n } catch {\n }\n }\n}\nfunction ce(e, t, o) {\n return o.closeAllPopover || o.closePopover && t || et(e, o) && !t;\n}\nfunction et(e, t) {\n if (typeof e.autoHide == \"function\") {\n const o = e.autoHide(t);\n return e.lastAutoHide = o, o;\n }\n return e.autoHide;\n}\nfunction tt() {\n for (let e = 0; e < d.length; e++)\n d[e].$_computePosition();\n}\nfunction Nt() {\n for (let e = 0; e < d.length; e++)\n d[e].hide();\n}\nlet c = 0, m = 0, y = 0, _ = 0;\ntypeof window < \"u\" && window.addEventListener(\"mousemove\", (e) => {\n c = y, m = _, y = e.clientX, _ = e.clientY;\n}, $ ? {\n passive: !0\n} : void 0);\nfunction C(e, t, o, i, s, r, p, a) {\n const l = ((p - s) * (t - r) - (a - r) * (e - s)) / ((a - r) * (o - e) - (p - s) * (i - t)), u = ((o - e) * (t - r) - (i - t) * (e - s)) / ((a - r) * (o - e) - (p - s) * (i - t));\n return l >= 0 && l <= 1 && u >= 0 && u <= 1;\n}\nconst ot = {\n extends: Q()\n}, B = (e, t) => {\n const o = e.__vccOpts || e;\n for (const [i, s] of t)\n o[i] = s;\n return o;\n};\nfunction it(e, t, o, i, s, r) {\n return f(), T(\"div\", {\n ref: \"reference\",\n class: J([\"v-popper\", {\n \"v-popper--shown\": e.slotData.isShown\n }])\n }, [\n A(e.$slots, \"default\", ke(Le(e.slotData)))\n ], 2);\n}\nconst st = /* @__PURE__ */ B(ot, [[\"render\", it]]);\nfunction nt() {\n var e = window.navigator.userAgent, t = e.indexOf(\"MSIE \");\n if (t > 0)\n return parseInt(e.substring(t + 5, e.indexOf(\".\", t)), 10);\n var o = e.indexOf(\"Trident/\");\n if (o > 0) {\n var i = e.indexOf(\"rv:\");\n return parseInt(e.substring(i + 3, e.indexOf(\".\", i)), 10);\n }\n var s = e.indexOf(\"Edge/\");\n return s > 0 ? parseInt(e.substring(s + 5, e.indexOf(\".\", s)), 10) : -1;\n}\nlet z;\nfunction X() {\n X.init || (X.init = !0, z = nt() !== -1);\n}\nvar E = {\n name: \"ResizeObserver\",\n props: {\n emitOnMount: {\n type: Boolean,\n default: !1\n },\n ignoreWidth: {\n type: Boolean,\n default: !1\n },\n ignoreHeight: {\n type: Boolean,\n default: !1\n }\n },\n emits: [\n \"notify\"\n ],\n mounted() {\n X(), Fe(() => {\n this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitOnMount && this.emitSize();\n });\n const e = document.createElement(\"object\");\n this._resizeObject = e, e.setAttribute(\"aria-hidden\", \"true\"), e.setAttribute(\"tabindex\", -1), e.onload = this.addResizeHandlers, e.type = \"text/html\", z && this.$el.appendChild(e), e.data = \"about:blank\", z || this.$el.appendChild(e);\n },\n beforeUnmount() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify() {\n (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) && (this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitSize());\n },\n emitSize() {\n this.$emit(\"notify\", {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener(\"resize\", this.compareAndNotify), this.compareAndNotify();\n },\n removeResizeHandlers() {\n this._resizeObject && this._resizeObject.onload && (!z && this._resizeObject.contentDocument && this._resizeObject.contentDocument.defaultView.removeEventListener(\"resize\", this.compareAndNotify), this.$el.removeChild(this._resizeObject), this._resizeObject.onload = null, this._resizeObject = null);\n }\n }\n};\nconst rt = /* @__PURE__ */ Re(\"data-v-b329ee4c\");\nDe(\"data-v-b329ee4c\");\nconst pt = {\n class: \"resize-observer\",\n tabindex: \"-1\"\n};\nIe();\nconst at = /* @__PURE__ */ rt((e, t, o, i, s, r) => (f(), M(\"div\", pt)));\nE.render = at;\nE.__scopeId = \"data-v-b329ee4c\";\nE.__file = \"src/components/ResizeObserver.vue\";\nconst Z = (e = \"theme\") => ({\n computed: {\n themeClass() {\n return Ze(this[e]);\n }\n }\n}), dt = O({\n name: \"VPopperContent\",\n components: {\n ResizeObserver: E\n },\n mixins: [\n Z()\n ],\n props: {\n popperId: String,\n theme: String,\n shown: Boolean,\n mounted: Boolean,\n skipTransition: Boolean,\n autoHide: Boolean,\n handleResize: Boolean,\n classes: Object,\n result: Object\n },\n emits: [\n \"hide\",\n \"resize\"\n ],\n methods: {\n toPx(e) {\n return e != null && !isNaN(e) ? `${e}px` : null;\n }\n }\n}), lt = [\"id\", \"aria-hidden\", \"tabindex\", \"data-popper-placement\"], ht = {\n ref: \"inner\",\n class: \"v-popper__inner\"\n}, ut = /* @__PURE__ */ w(\"div\", { class: \"v-popper__arrow-outer\" }, null, -1), ft = /* @__PURE__ */ w(\"div\", { class: \"v-popper__arrow-inner\" }, null, -1), ct = [\n ut,\n ft\n];\nfunction mt(e, t, o, i, s, r) {\n const p = P(\"ResizeObserver\");\n return f(), T(\"div\", {\n id: e.popperId,\n ref: \"popover\",\n class: J([\"v-popper__popper\", [\n e.themeClass,\n e.classes.popperClass,\n {\n \"v-popper__popper--shown\": e.shown,\n \"v-popper__popper--hidden\": !e.shown,\n \"v-popper__popper--show-from\": e.classes.showFrom,\n \"v-popper__popper--show-to\": e.classes.showTo,\n \"v-popper__popper--hide-from\": e.classes.hideFrom,\n \"v-popper__popper--hide-to\": e.classes.hideTo,\n \"v-popper__popper--skip-transition\": e.skipTransition,\n \"v-popper__popper--arrow-overflow\": e.result && e.result.arrow.overflow,\n \"v-popper__popper--no-positioning\": !e.result\n }\n ]]),\n style: W(e.result ? {\n position: e.result.strategy,\n transform: `translate3d(${Math.round(e.result.x)}px,${Math.round(e.result.y)}px,0)`\n } : void 0),\n \"aria-hidden\": e.shown ? \"false\" : \"true\",\n tabindex: e.autoHide ? 0 : void 0,\n \"data-popper-placement\": e.result ? e.result.placement : void 0,\n onKeyup: t[2] || (t[2] = je((a) => e.autoHide && e.$emit(\"hide\"), [\"esc\"]))\n }, [\n w(\"div\", {\n class: \"v-popper__backdrop\",\n onClick: t[0] || (t[0] = (a) => e.autoHide && e.$emit(\"hide\"))\n }),\n w(\"div\", {\n class: \"v-popper__wrapper\",\n style: W(e.result ? {\n transformOrigin: e.result.transformOrigin\n } : void 0)\n }, [\n w(\"div\", ht, [\n e.mounted ? (f(), T(Ve, { key: 0 }, [\n w(\"div\", null, [\n A(e.$slots, \"default\")\n ]),\n e.handleResize ? (f(), M(p, {\n key: 0,\n onNotify: t[1] || (t[1] = (a) => e.$emit(\"resize\", a))\n })) : se(\"\", !0)\n ], 64)) : se(\"\", !0)\n ], 512),\n w(\"div\", {\n ref: \"arrow\",\n class: \"v-popper__arrow-container\",\n style: W(e.result ? {\n left: e.toPx(e.result.arrow.x),\n top: e.toPx(e.result.arrow.y)\n } : void 0)\n }, ct, 4)\n ], 4)\n ], 46, lt);\n}\nconst ee = /* @__PURE__ */ B(dt, [[\"render\", mt]]), te = {\n methods: {\n show(...e) {\n return this.$refs.popper.show(...e);\n },\n hide(...e) {\n return this.$refs.popper.hide(...e);\n },\n dispose(...e) {\n return this.$refs.popper.dispose(...e);\n },\n onResize(...e) {\n return this.$refs.popper.onResize(...e);\n }\n }\n};\nlet K = function() {\n};\ntypeof window < \"u\" && (K = window.Element);\nconst gt = O({\n name: \"VPopperWrapper\",\n components: {\n Popper: st,\n PopperContent: ee\n },\n mixins: [\n te,\n Z(\"finalTheme\")\n ],\n props: {\n theme: {\n type: String,\n default: null\n },\n referenceNode: {\n type: Function,\n default: null\n },\n shown: {\n type: Boolean,\n default: !1\n },\n showGroup: {\n type: String,\n default: null\n },\n // eslint-disable-next-line vue/require-prop-types\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: void 0\n },\n positioningDisabled: {\n type: Boolean,\n default: void 0\n },\n placement: {\n type: String,\n default: void 0\n },\n delay: {\n type: [String, Number, Object],\n default: void 0\n },\n distance: {\n type: [Number, String],\n default: void 0\n },\n skidding: {\n type: [Number, String],\n default: void 0\n },\n triggers: {\n type: Array,\n default: void 0\n },\n showTriggers: {\n type: [Array, Function],\n default: void 0\n },\n hideTriggers: {\n type: [Array, Function],\n default: void 0\n },\n popperTriggers: {\n type: Array,\n default: void 0\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: void 0\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: void 0\n },\n container: {\n type: [String, Object, K, Boolean],\n default: void 0\n },\n boundary: {\n type: [String, K],\n default: void 0\n },\n strategy: {\n type: String,\n default: void 0\n },\n autoHide: {\n type: [Boolean, Function],\n default: void 0\n },\n handleResize: {\n type: Boolean,\n default: void 0\n },\n instantMove: {\n type: Boolean,\n default: void 0\n },\n eagerMount: {\n type: Boolean,\n default: void 0\n },\n popperClass: {\n type: [String, Array, Object],\n default: void 0\n },\n computeTransformOrigin: {\n type: Boolean,\n default: void 0\n },\n /**\n * @deprecated\n */\n autoMinSize: {\n type: Boolean,\n default: void 0\n },\n autoSize: {\n type: [Boolean, String],\n default: void 0\n },\n /**\n * @deprecated\n */\n autoMaxSize: {\n type: Boolean,\n default: void 0\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: void 0\n },\n preventOverflow: {\n type: Boolean,\n default: void 0\n },\n overflowPadding: {\n type: [Number, String],\n default: void 0\n },\n arrowPadding: {\n type: [Number, String],\n default: void 0\n },\n arrowOverflow: {\n type: Boolean,\n default: void 0\n },\n flip: {\n type: Boolean,\n default: void 0\n },\n shift: {\n type: Boolean,\n default: void 0\n },\n shiftCrossAxis: {\n type: Boolean,\n default: void 0\n },\n noAutoFocus: {\n type: Boolean,\n default: void 0\n },\n disposeTimeout: {\n type: Number,\n default: void 0\n }\n },\n emits: {\n show: () => !0,\n hide: () => !0,\n \"update:shown\": (e) => !0,\n \"apply-show\": () => !0,\n \"apply-hide\": () => !0,\n \"close-group\": () => !0,\n \"close-directive\": () => !0,\n \"auto-hide\": () => !0,\n resize: () => !0\n },\n computed: {\n finalTheme() {\n return this.theme ?? this.$options.vPopperTheme;\n }\n },\n methods: {\n getTargetNodes() {\n return Array.from(this.$el.children).filter((e) => e !== this.$refs.popperContent.$el);\n }\n }\n});\nfunction wt(e, t, o, i, s, r) {\n const p = P(\"PopperContent\"), a = P(\"Popper\");\n return f(), M(a, $e({ ref: \"popper\" }, e.$props, {\n theme: e.finalTheme,\n \"target-nodes\": e.getTargetNodes,\n \"popper-node\": () => e.$refs.popperContent.$el,\n class: [\n e.themeClass\n ],\n onShow: t[0] || (t[0] = () => e.$emit(\"show\")),\n onHide: t[1] || (t[1] = () => e.$emit(\"hide\")),\n \"onUpdate:shown\": t[2] || (t[2] = (l) => e.$emit(\"update:shown\", l)),\n onApplyShow: t[3] || (t[3] = () => e.$emit(\"apply-show\")),\n onApplyHide: t[4] || (t[4] = () => e.$emit(\"apply-hide\")),\n onCloseGroup: t[5] || (t[5] = () => e.$emit(\"close-group\")),\n onCloseDirective: t[6] || (t[6] = () => e.$emit(\"close-directive\")),\n onAutoHide: t[7] || (t[7] = () => e.$emit(\"auto-hide\")),\n onResize: t[8] || (t[8] = () => e.$emit(\"resize\"))\n }), {\n default: N(({\n popperId: l,\n isShown: u,\n shouldMountContent: L,\n skipTransition: D,\n autoHide: I,\n show: F,\n hide: v,\n handleResize: R,\n onResize: j,\n classes: V,\n result: Ee\n }) => [\n A(e.$slots, \"default\", {\n shown: u,\n show: F,\n hide: v\n }),\n ve(p, {\n ref: \"popperContent\",\n \"popper-id\": l,\n theme: e.finalTheme,\n shown: u,\n mounted: L,\n \"skip-transition\": D,\n \"auto-hide\": I,\n \"handle-resize\": R,\n classes: V,\n result: Ee,\n onHide: v,\n onResize: j\n }, {\n default: N(() => [\n A(e.$slots, \"popper\", {\n shown: u,\n hide: v\n })\n ]),\n _: 2\n }, 1032, [\"popper-id\", \"theme\", \"shown\", \"mounted\", \"skip-transition\", \"auto-hide\", \"handle-resize\", \"classes\", \"result\", \"onHide\", \"onResize\"])\n ]),\n _: 3\n }, 16, [\"theme\", \"target-nodes\", \"popper-node\", \"class\"]);\n}\nconst k = /* @__PURE__ */ B(gt, [[\"render\", wt]]), Se = {\n ...k,\n name: \"VDropdown\",\n vPopperTheme: \"dropdown\"\n}, be = {\n ...k,\n name: \"VMenu\",\n vPopperTheme: \"menu\"\n}, Ce = {\n ...k,\n name: \"VTooltip\",\n vPopperTheme: \"tooltip\"\n}, $t = O({\n name: \"VTooltipDirective\",\n components: {\n Popper: Q(),\n PopperContent: ee\n },\n mixins: [\n te\n ],\n inheritAttrs: !1,\n props: {\n theme: {\n type: String,\n default: \"tooltip\"\n },\n html: {\n type: Boolean,\n default: (e) => S(e.theme, \"html\")\n },\n content: {\n type: [String, Number, Function],\n default: null\n },\n loadingContent: {\n type: String,\n default: (e) => S(e.theme, \"loadingContent\")\n },\n targetNodes: {\n type: Function,\n required: !0\n }\n },\n data() {\n return {\n asyncContent: null\n };\n },\n computed: {\n isContentAsync() {\n return typeof this.content == \"function\";\n },\n loading() {\n return this.isContentAsync && this.asyncContent == null;\n },\n finalContent() {\n return this.isContentAsync ? this.loading ? this.loadingContent : this.asyncContent : this.content;\n }\n },\n watch: {\n content: {\n handler() {\n this.fetchContent(!0);\n },\n immediate: !0\n },\n async finalContent() {\n await this.$nextTick(), this.$refs.popper.onResize();\n }\n },\n created() {\n this.$_fetchId = 0;\n },\n methods: {\n fetchContent(e) {\n if (typeof this.content == \"function\" && this.$_isShown && (e || !this.$_loading && this.asyncContent == null)) {\n this.asyncContent = null, this.$_loading = !0;\n const t = ++this.$_fetchId, o = this.content(this);\n o.then ? o.then((i) => this.onResult(t, i)) : this.onResult(t, o);\n }\n },\n onResult(e, t) {\n e === this.$_fetchId && (this.$_loading = !1, this.asyncContent = t);\n },\n onShow() {\n this.$_isShown = !0, this.fetchContent();\n },\n onHide() {\n this.$_isShown = !1;\n }\n }\n}), vt = [\"innerHTML\"], yt = [\"textContent\"];\nfunction _t(e, t, o, i, s, r) {\n const p = P(\"PopperContent\"), a = P(\"Popper\");\n return f(), M(a, $e({ ref: \"popper\" }, e.$attrs, {\n theme: e.theme,\n \"target-nodes\": e.targetNodes,\n \"popper-node\": () => e.$refs.popperContent.$el,\n onApplyShow: e.onShow,\n onApplyHide: e.onHide\n }), {\n default: N(({\n popperId: l,\n isShown: u,\n shouldMountContent: L,\n skipTransition: D,\n autoHide: I,\n hide: F,\n handleResize: v,\n onResize: R,\n classes: j,\n result: V\n }) => [\n ve(p, {\n ref: \"popperContent\",\n class: J({\n \"v-popper--tooltip-loading\": e.loading\n }),\n \"popper-id\": l,\n theme: e.theme,\n shown: u,\n mounted: L,\n \"skip-transition\": D,\n \"auto-hide\": I,\n \"handle-resize\": v,\n classes: j,\n result: V,\n onHide: F,\n onResize: R\n }, {\n default: N(() => [\n e.html ? (f(), T(\"div\", {\n key: 0,\n innerHTML: e.finalContent\n }, null, 8, vt)) : (f(), T(\"div\", {\n key: 1,\n textContent: We(e.finalContent)\n }, null, 8, yt))\n ]),\n _: 2\n }, 1032, [\"class\", \"popper-id\", \"theme\", \"shown\", \"mounted\", \"skip-transition\", \"auto-hide\", \"handle-resize\", \"classes\", \"result\", \"onHide\", \"onResize\"])\n ]),\n _: 1\n }, 16, [\"theme\", \"target-nodes\", \"popper-node\", \"onApplyShow\", \"onApplyHide\"]);\n}\nconst ze = /* @__PURE__ */ B($t, [[\"render\", _t]]), Ae = \"v-popper--has-tooltip\";\nfunction Tt(e, t) {\n let o = e.placement;\n if (!o && t)\n for (const i of Te)\n t[i] && (o = i);\n return o || (o = S(e.theme || \"tooltip\", \"placement\")), o;\n}\nfunction Ne(e, t, o) {\n let i;\n const s = typeof t;\n return s === \"string\" ? i = { content: t } : t && s === \"object\" ? i = t : i = { content: !1 }, i.placement = Tt(i, o), i.targetNodes = () => [e], i.referenceNode = () => e, i;\n}\nlet x, b, Pt = 0;\nfunction St() {\n if (x)\n return;\n b = U([]), x = Ge({\n name: \"VTooltipDirectiveApp\",\n setup() {\n return {\n directives: b\n };\n },\n render() {\n return this.directives.map((t) => qe(ze, {\n ...t.options,\n shown: t.shown || t.options.shown,\n key: t.id\n }));\n },\n devtools: {\n hide: !0\n }\n });\n const e = document.createElement(\"div\");\n document.body.appendChild(e), x.mount(e);\n}\nfunction bt(e, t, o) {\n St();\n const i = U(Ne(e, t, o)), s = U(!1), r = {\n id: Pt++,\n options: i,\n shown: s\n };\n return b.value.push(r), e.classList && e.classList.add(Ae), e.$_popper = {\n options: i,\n item: r,\n show() {\n s.value = !0;\n },\n hide() {\n s.value = !1;\n }\n };\n}\nfunction He(e) {\n if (e.$_popper) {\n const t = b.value.indexOf(e.$_popper.item);\n t !== -1 && b.value.splice(t, 1), delete e.$_popper, delete e.$_popperOldShown, delete e.$_popperMountTarget;\n }\n e.classList && e.classList.remove(Ae);\n}\nfunction me(e, { value: t, modifiers: o }) {\n const i = Ne(e, t, o);\n if (!i.content || S(i.theme || \"tooltip\", \"disabled\"))\n He(e);\n else {\n let s;\n e.$_popper ? (s = e.$_popper, s.options.value = i) : s = bt(e, t, o), typeof t.shown < \"u\" && t.shown !== e.$_popperOldShown && (e.$_popperOldShown = t.shown, t.shown ? s.show() : s.hide());\n }\n}\nconst oe = {\n beforeMount: me,\n updated: me,\n beforeUnmount(e) {\n He(e);\n }\n};\nfunction ge(e) {\n e.addEventListener(\"mousedown\", H), e.addEventListener(\"click\", H), e.addEventListener(\"touchstart\", Oe, $ ? {\n passive: !0\n } : !1);\n}\nfunction we(e) {\n e.removeEventListener(\"mousedown\", H), e.removeEventListener(\"click\", H), e.removeEventListener(\"touchstart\", Oe), e.removeEventListener(\"touchend\", Me), e.removeEventListener(\"touchcancel\", Be);\n}\nfunction H(e) {\n const t = e.currentTarget;\n e.closePopover = !t.$_vclosepopover_touch, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all;\n}\nfunction Oe(e) {\n if (e.changedTouches.length === 1) {\n const t = e.currentTarget;\n t.$_vclosepopover_touch = !0;\n const o = e.changedTouches[0];\n t.$_vclosepopover_touchPoint = o, t.addEventListener(\"touchend\", Me), t.addEventListener(\"touchcancel\", Be);\n }\n}\nfunction Me(e) {\n const t = e.currentTarget;\n if (t.$_vclosepopover_touch = !1, e.changedTouches.length === 1) {\n const o = e.changedTouches[0], i = t.$_vclosepopover_touchPoint;\n e.closePopover = Math.abs(o.screenY - i.screenY) < 20 && Math.abs(o.screenX - i.screenX) < 20, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all;\n }\n}\nfunction Be(e) {\n const t = e.currentTarget;\n t.$_vclosepopover_touch = !1;\n}\nconst ie = {\n beforeMount(e, { value: t, modifiers: o }) {\n e.$_closePopoverModifiers = o, (typeof t > \"u\" || t) && ge(e);\n },\n updated(e, { value: t, oldValue: o, modifiers: i }) {\n e.$_closePopoverModifiers = i, t !== o && (typeof t > \"u\" || t ? ge(e) : we(e));\n },\n beforeUnmount(e) {\n we(e);\n }\n}, Ht = h, Ot = oe, Mt = oe, Bt = ie, Et = ie, kt = Se, Lt = be, Dt = Q, It = ee, Ft = te, Rt = k, jt = Z, Vt = Ce, Wt = ze;\nfunction Ct(e, t = {}) {\n e.$_vTooltipInstalled || (e.$_vTooltipInstalled = !0, ye(h, t), e.directive(\"tooltip\", oe), e.directive(\"close-popper\", ie), e.component(\"VTooltip\", Ce), e.component(\"VDropdown\", Se), e.component(\"VMenu\", be));\n}\nconst Gt = {\n // eslint-disable-next-line no-undef\n version: \"5.2.2\",\n install: Ct,\n options: h\n};\nexport {\n kt as Dropdown,\n ae as HIDE_EVENT_MAP,\n Lt as Menu,\n Dt as Popper,\n It as PopperContent,\n Ft as PopperMethods,\n Rt as PopperWrapper,\n pe as SHOW_EVENT_MAP,\n jt as ThemeClass,\n Vt as Tooltip,\n Wt as TooltipDirective,\n Bt as VClosePopper,\n Ot as VTooltip,\n bt as createTooltip,\n Gt as default,\n He as destroyTooltip,\n Nt as hideAllPoppers,\n Ct as install,\n Ht as options,\n Te as placements,\n tt as recomputeAllPoppers,\n Et as vClosePopper,\n Mt as vTooltip\n};\n","<script lang=\"ts\" setup></script>\n\n<template>\n <div class=\"my-1 h-[1px] w-full bg-gray-100\"></div>\n</template>\n","<script lang=\"ts\" setup>\nimport { inject } from \"vue\";\nconst props = withDefaults(\n defineProps<{\n selected?: boolean;\n disabled?: boolean;\n type?: \"default\" | \"danger\";\n }>(),\n {\n selected: false,\n disabled: false,\n type: \"default\",\n }\n);\n\nconst emit = defineEmits<{\n (event: \"click\", e: MouseEvent): void;\n}>();\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst dropdown = inject<{ parentPopper: any }>(\"__floating-vue__popper\");\n\nfunction onClick(e: MouseEvent) {\n if (props.disabled) {\n return;\n }\n\n dropdown?.parentPopper?.hide?.();\n\n emit(\"click\", e);\n}\n</script>\n\n<template>\n <div\n class=\"dropdown-item-wrapper\"\n :class=\"[\n `dropdown-item-wrapper--${type}${selected ? '--selected' : ''}`,\n { 'dropdown-item-wrapper--disabled': disabled },\n ]\"\n role=\"menuitem\"\n tabindex=\"-1\"\n @click=\"onClick\"\n >\n <div class=\"flex items-center gap-3\">\n <slot name=\"prefix-icon\" />\n\n <slot />\n </div>\n\n <slot name=\"suffix-icon\"></slot>\n </div>\n</template>\n\n<style lang=\"scss\">\n.dropdown-item-wrapper {\n @apply flex w-full min-w-52 cursor-pointer items-center justify-between gap-1 rounded px-4 py-2 text-sm transition-colors;\n\n &--default {\n @apply text-gray-700 hover:bg-gray-100 hover:text-gray-900;\n\n &--selected {\n @apply bg-gray-100 text-gray-900;\n }\n }\n\n &--danger {\n @apply text-red-500 hover:bg-red-50 hover:text-red-700;\n\n &--selected {\n @apply bg-red-50 text-red-700;\n }\n }\n\n &--disabled {\n @apply cursor-not-allowed opacity-70;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { inject } from \"vue\";\nconst props = withDefaults(\n defineProps<{\n selected?: boolean;\n disabled?: boolean;\n type?: \"default\" | \"danger\";\n }>(),\n {\n selected: false,\n disabled: false,\n type: \"default\",\n }\n);\n\nconst emit = defineEmits<{\n (event: \"click\", e: MouseEvent): void;\n}>();\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst dropdown = inject<{ parentPopper: any }>(\"__floating-vue__popper\");\n\nfunction onClick(e: MouseEvent) {\n if (props.disabled) {\n return;\n }\n\n dropdown?.parentPopper?.hide?.();\n\n emit(\"click\", e);\n}\n</script>\n\n<template>\n <div\n class=\"dropdown-item-wrapper\"\n :class=\"[\n `dropdown-item-wrapper--${type}${selected ? '--selected' : ''}`,\n { 'dropdown-item-wrapper--disabled': disabled },\n ]\"\n role=\"menuitem\"\n tabindex=\"-1\"\n @click=\"onClick\"\n >\n <div class=\"flex items-center gap-3\">\n <slot name=\"prefix-icon\" />\n\n <slot />\n </div>\n\n <slot name=\"suffix-icon\"></slot>\n </div>\n</template>\n\n<style lang=\"scss\">\n.dropdown-item-wrapper {\n @apply flex w-full min-w-52 cursor-pointer items-center justify-between gap-1 rounded px-4 py-2 text-sm transition-colors;\n\n &--default {\n @apply text-gray-700 hover:bg-gray-100 hover:text-gray-900;\n\n &--selected {\n @apply bg-gray-100 text-gray-900;\n }\n }\n\n &--danger {\n @apply text-red-500 hover:bg-red-50 hover:text-red-700;\n\n &--selected {\n @apply bg-red-50 text-red-700;\n }\n }\n\n &--disabled {\n @apply cursor-not-allowed opacity-70;\n }\n}\n</style>\n","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20558.095%20475.798'%3e%3cg%3e%3cpath%20d='M555.536,328.049c-15.243-76.866-104.547-138.3-121.965-218.4C401.914,7.74,297.57-8.372,229.765,35.887c-107.437,70.129,7.176,87.532-203.473,253.453-52.014,40.969-35.44,221.817,128.193,180.313,88.06-22.336,114.83-25.47,154.44-29.148C408.763,431.236,581.123,457.079,555.536,328.049Z'%20fill='%23367cff'%20opacity='0.1'%3e%3c/path%3e%3cg%3e%3cg%3e%3cpolygon%20points='436.267%20347.314%20281.957%20428.813%20127.88%20347.314%20127.88%20224.244%20436.267%20224.244%20436.267%20347.314'%20fill='%23fff'%3e%3c/polygon%3e%3cpath%20d='M281.957,430.063a1.237,1.237,0,0,1-.585-.146L127.3,348.418a1.249,1.249,0,0,1-.666-1.1V224.244a1.25,1.25,0,0,1,1.25-1.25H436.267a1.25,1.25,0,0,1,1.25,1.25v123.07a1.249,1.249,0,0,1-.666,1.1l-154.31,81.5A1.244,1.244,0,0,1,281.957,430.063Zm-152.827-83.5L281.957,427.4l153.06-80.839V225.494H129.13Zm307.137.753h0Z'%20fill='%23262626'%3e%3c/path%3e%3c/g%3e%3cg%3e%3cpolygon%20points='436.267%20197.835%20281.957%20116.336%20351.298%2082.913%20505.608%20164.413%20436.267%20197.835'%20fill='%23fff'%3e%3c/polygon%3e%3cpath%20d='M436.267,199.085a1.255,1.255,0,0,1-.584-.144l-154.31-81.5a1.251,1.251,0,0,1,.041-2.232l69.341-33.423a1.244,1.244,0,0,1,1.127.021l154.31,81.5a1.25,1.25,0,0,1-.041,2.231L436.81,198.961A1.246,1.246,0,0,1,436.267,199.085Zm-151.537-82.7,151.563,80.048,66.542-32.073L351.272,84.314Z'%20fill='%23262626'%3e%3c/path%3e%3c/g%3e%3cg%3e%3cpolygon%20points='127.88%20197.835%20282.19%20116.336%20212.849%2082.913%2058.539%20164.413%20127.88%20197.835'%20fill='%23fff'%3e%3c/polygon%3e%3cpath%20d='M127.88,199.085a1.249,1.249,0,0,1-.543-.124L58,165.538a1.25,1.25,0,0,1-.041-2.231l154.31-81.5a1.244,1.244,0,0,1,1.127-.021l69.341,33.423a1.251,1.251,0,0,1,.041,2.232l-154.31,81.5A1.252,1.252,0,0,1,127.88,199.085ZM61.312,164.362l66.542,32.073,151.563-80.048L212.875,84.314Z'%20fill='%23262626'%3e%3c/path%3e%3c/g%3e%3cg%3e%3cpolygon%20points='127.88%20197.835%20282.19%20279.335%20202.849%20322.757%2048.539%20241.258%20127.88%20197.835'%20fill='%23fff'%3e%3c/polygon%3e%3cpath%20d='M202.849,324.007a1.244,1.244,0,0,1-.584-.145l-154.31-81.5a1.25,1.25,0,0,1-.016-2.2l79.341-43.423a1.246,1.246,0,0,1,1.184-.008l154.31,81.5a1.25,1.25,0,0,1,.016,2.2l-79.341,43.423A1.251,1.251,0,0,1,202.849,324.007ZM51.179,241.238l151.659,80.1,76.713-41.984-151.66-80.1Z'%20fill='%23262626'%3e%3c/path%3e%3c/g%3e%3cg%3e%3cpolygon%20points='436.267%20197.835%20281.957%20279.335%20361.298%20322.757%20515.608%20241.258%20436.267%20197.835'%20fill='%23fff'%3e%3c/polygon%3e%3cpath%20d='M361.3,324.007a1.254,1.254,0,0,1-.6-.153l-79.341-43.423a1.25,1.25,0,0,1,.016-2.2l154.31-81.5a1.246,1.246,0,0,1,1.184.008l79.341,43.423a1.25,1.25,0,0,1-.016,2.2l-154.31,81.5A1.244,1.244,0,0,1,361.3,324.007Zm-76.7-44.653,76.712,41.984,151.66-80.1-76.713-41.984Z'%20fill='%23262626'%3e%3c/path%3e%3c/g%3e%3cpolygon%20points='282.19%20116.336%20127.88%20197.835%20281.957%20279.335%20436.267%20197.835%20282.19%20116.336'%20fill='%23262626'%3e%3c/polygon%3e%3crect%20x='280.707'%20y='279.334'%20width='2.5'%20height='149.479'%20fill='%23262626'%3e%3c/rect%3e%3c/g%3e%3cg%3e%3cpath%20d='M195.5,190.436a.99.99,0,0,1-.577-.185,1,1,0,0,1-.238-1.394c.185-.261,18.258-26.389-1.918-50.209a38.006,38.006,0,0,0-29.095-13.516H163.4c1.916,6.656,1.574,12.574-1.139,17.114a12.645,12.645,0,0,1-11.68,6.42,10.041,10.041,0,0,1-8.679-6.752c-2.219-5.788.1-11.4,6.212-15.017a29.5,29.5,0,0,1,12.589-3.621,53.3,53.3,0,0,0-5.566-10.821c-7.285-11.126-20.562-18.828-36.428-21.131-13.446-1.951-26.332.347-32.833,5.853a1,1,0,0,1-1.292-1.527c6.918-5.859,20.425-8.336,34.412-6.3,16.433,2.386,30.215,10.409,37.815,22.014a54.285,54.285,0,0,1,5.968,11.816,39.976,39.976,0,0,1,31.509,14.18c21.193,25.019,2.217,52.385,2.023,52.659A1,1,0,0,1,195.5,190.436Zm-34.148-65.231a27.826,27.826,0,0,0-12.215,3.414c-5.276,3.122-7.23,7.708-5.363,12.58a8.108,8.108,0,0,0,6.984,5.476,10.669,10.669,0,0,0,9.791-5.454C163.039,137.051,163.267,131.508,161.349,125.205Z'%20fill='%23292a2e'%3e%3c/path%3e%3cg%3e%3cpath%20d='M68.617,113.3a6.809,6.809,0,1,1,.684-.246A6.652,6.652,0,0,1,68.617,113.3Zm-3.325-11.112a4.689,4.689,0,0,0-.477.172,4.791,4.791,0,1,0,.477-.172Z'%20fill='%23292a2e'%3e%3c/path%3e%3cpath%20d='M68.605,97.63a6.8,6.8,0,0,1-8.216-3.885h0a6.8,6.8,0,1,1,8.9,3.64A6.964,6.964,0,0,1,68.605,97.63ZM65.284,86.517a4.889,4.889,0,0,0-.483.173,4.8,4.8,0,0,0-2.568,6.281h0a4.8,4.8,0,1,0,3.051-6.455Z'%20fill='%23292a2e'%3e%3c/path%3e%3cellipse%20cx='66.664'%20cy='98.763'%20rx='8.892'%20ry='5.939'%20fill='%23fff'%3e%3c/ellipse%3e%3cpath%20d='M70.6,105.139a13.754,13.754,0,0,1-3.927.564c-5.548,0-9.9-3.04-9.9-6.931s4.339-6.942,9.885-6.948a12.424,12.424,0,0,1,6.845,1.9,5.676,5.676,0,0,1,.009,10.063A10.872,10.872,0,0,1,70.6,105.139ZM63.338,94.3c-2.672.8-4.566,2.527-4.565,4.467,0,2.677,3.617,4.936,7.9,4.932a10.417,10.417,0,0,0,5.732-1.576,3.706,3.706,0,0,0-.006-6.735,10.4,10.4,0,0,0-5.734-1.566A11.607,11.607,0,0,0,63.338,94.3Z'%20fill='%23292a2e'%3e%3c/path%3e%3cpolygon%20points='68.845%20104.521%2068.635%2092.971%2065.763%2092.855%2065.562%20104.656%2068.845%20104.521'%20fill='%23292a2e'%3e%3c/polygon%3e%3ccircle%20cx='54.867'%20cy='100.358'%20r='0.918'%20fill='%23292a2e'%3e%3c/circle%3e%3ccircle%20cx='55.584'%20cy='95.446'%20r='0.918'%20fill='%23292a2e'%3e%3c/circle%3e%3c/g%3e%3c/g%3e%3cg%3e%3cpath%20d='M352.625,132.766a1,1,0,0,1-.956-.707,99.236,99.236,0,0,1-2.606-38.021c2.585-18.6,12.843-43.011,47.03-53.7a88.364,88.364,0,0,1,14.748-3.381c1.611-10.061,7.739-20.975,21.444-28.505,32.562-17.892,54.557-1.839,54.775-1.675a1,1,0,0,1-1.2,1.6c-.208-.156-21.228-15.417-52.611,1.829-12.806,7.037-18.668,17.137-20.335,26.513,15.079-1.485,22.3,3.545,25.541,7.344A15.488,15.488,0,0,1,440.769,61a12.094,12.094,0,0,1-11.835,6.909c-8.421-.494-15.39-7.578-17.752-18.048a34.03,34.03,0,0,1-.614-10.8,85.533,85.533,0,0,0-13.877,3.191c-26.645,8.331-42,25.85-45.648,52.067a96.986,96.986,0,0,0,2.538,37.16,1,1,0,0,1-.956,1.293Zm59.982-93.955a32.014,32.014,0,0,0,.526,10.609c2.161,9.578,8.409,16.051,15.918,16.492a10.178,10.178,0,0,0,9.928-5.8,13.494,13.494,0,0,0-2.048-14.749C432.255,39.876,423.722,37.66,412.607,38.811Z'%20fill='%23292a2e'%3e%3c/path%3e%3cg%3e%3cpath%20d='M510.354,16.884a7.142,7.142,0,1,1,6.994-8.659h0a7.156,7.156,0,0,1-6.994,8.659ZM510.369,4.6a5.141,5.141,0,1,0,5.024,4.051A5.111,5.111,0,0,0,510.369,4.6Z'%20fill='%23292a2e'%3e%3c/path%3e%3cpath%20d='M507.343,33.205a7.162,7.162,0,1,1,1.529-.165A7.171,7.171,0,0,1,507.343,33.205Zm.025-12.285a5.164,5.164,0,0,0-1.1.119,5.112,5.112,0,1,0,1.1-.119Z'%20fill='%23292a2e'%3e%3c/path%3e%3cellipse%20cx='508.827'%20cy='18.098'%20rx='6.289'%20ry='9.416'%20transform='translate(398.692%20515.192)%20rotate(-79.545)'%20fill='%23fff'%3e%3c/ellipse%3e%3cpath%20d='M510.2,25.516a14.966,14.966,0,0,1-2.7-.25,13.1,13.1,0,0,1-6.729-3.286,6.419,6.419,0,0,1-2.191-5.772,6.422,6.422,0,0,1,4.107-4.61,13.946,13.946,0,0,1,14.187,2.618,6.419,6.419,0,0,1,2.191,5.772,6.422,6.422,0,0,1-4.107,4.61A12.088,12.088,0,0,1,510.2,25.516Zm-2.762-12.838a10.072,10.072,0,0,0-3.961.757,4.506,4.506,0,0,0-2.93,3.136,4.506,4.506,0,0,0,1.618,3.975,11.966,11.966,0,0,0,12,2.215,4.506,4.506,0,0,0,2.93-3.136h0a4.5,4.5,0,0,0-1.618-3.975,11.084,11.084,0,0,0-5.7-2.753A12.957,12.957,0,0,0,507.442,12.678Z'%20fill='%23292a2e'%3e%3c/path%3e%3cpolygon%20points='507.668%2011.682%20505.657%2023.748%20508.624%2024.424%20511.112%2012.175%20507.668%2011.682'%20fill='%23292a2e'%3e%3c/polygon%3e%3ccircle%20cx='519.723'%20cy='23.691'%20r='0.972'%20fill='%23292a2e'%3e%3c/circle%3e%3ccircle%20cx='521.417'%20cy='18.715'%20r='0.972'%20fill='%23292a2e'%3e%3c/circle%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e\"","<script lang=\"ts\" setup>\nimport Empty from \"./Empty.svg\";\n\ndefineProps<{\n title?: string;\n message?: string;\n image?: string;\n}>();\n</script>\n<template>\n <div class=\"empty-wrapper\">\n <div class=\"empty-image h-32 w-32\">\n <slot name=\"image\">\n <img :src=\"image || Empty\" alt=\"Empty\" />\n </slot>\n </div>\n <div class=\"empty-title\">{{ title }}</div>\n <div class=\"empty-message\">\n <slot name=\"message\">\n {{ message }}\n </slot>\n </div>\n <div class=\"empty-actions\">\n <slot name=\"actions\"></slot>\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.empty-wrapper {\n @apply my-10 flex flex-col items-center justify-center px-10;\n\n .empty-title {\n @apply text-center text-sm font-medium text-gray-900;\n }\n\n .empty-message {\n @apply mt-1.5 text-center text-xs text-gray-500;\n }\n\n .empty-actions {\n @apply mt-5 flex flex-row;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport Empty from \"./Empty.svg\";\n\ndefineProps<{\n title?: string;\n message?: string;\n image?: string;\n}>();\n</script>\n<template>\n <div class=\"empty-wrapper\">\n <div class=\"empty-image h-32 w-32\">\n <slot name=\"image\">\n <img :src=\"image || Empty\" alt=\"Empty\" />\n </slot>\n </div>\n <div class=\"empty-title\">{{ title }}</div>\n <div class=\"empty-message\">\n <slot name=\"message\">\n {{ message }}\n </slot>\n </div>\n <div class=\"empty-actions\">\n <slot name=\"actions\"></slot>\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.empty-wrapper {\n @apply my-10 flex flex-col items-center justify-center px-10;\n\n .empty-title {\n @apply text-center text-sm font-medium text-gray-900;\n }\n\n .empty-message {\n @apply mt-1.5 text-center text-xs text-gray-500;\n }\n\n .empty-actions {\n @apply mt-5 flex flex-row;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport { IconMore } from \"../../icons/icons\";\nimport { VDropdown } from \"../dropdown\";\n\nconst props = withDefaults(\n defineProps<{\n isSelected?: boolean;\n }>(),\n {\n isSelected: false,\n }\n);\n\nconst classes = computed(() => {\n const result = [];\n if (props.isSelected) {\n result.push(\"entity-selected\");\n }\n return result;\n});\n</script>\n\n<template>\n <tr :class=\"classes\" v-bind=\"$attrs\" class=\"entity-wrapper group\">\n <td class=\"entity-start-wrapper\">\n <slot name=\"prepend\" />\n <div v-show=\"isSelected\" class=\"entity-selected-indicator\"></div>\n <div class=\"entity-start\">\n <div v-if=\"$slots.checkbox\" class=\"entity-checkbox\">\n <slot name=\"checkbox\" />\n </div>\n <slot name=\"start\" />\n </div>\n </td>\n <td class=\"entity-end-wrapper\">\n <div class=\"entity-end\">\n <slot name=\"end\" />\n <div v-if=\"$slots.dropdownItems\" class=\"entity-dropdown\">\n <!-- @vue-ignore -->\n <VDropdown :dispose-timeout=\"null\">\n <div\n class=\"entity-dropdown-trigger group-hover:bg-gray-200/60\"\n :class=\"{ '!bg-gray-300/60': isSelected }\"\n @click.stop\n >\n <IconMore />\n </div>\n <template #popper>\n <slot name=\"dropdownItems\"></slot>\n </template>\n </VDropdown>\n </div>\n </div>\n </td>\n </tr>\n <tr v-if=\"$slots.footer\">\n <td colspan=\"2\">\n <slot name=\"footer\" />\n </td>\n </tr>\n</template>\n<style lang=\"scss\">\n.entity-wrapper {\n @apply relative w-full transition-all hover:bg-gray-50;\n\n &.entity-selected {\n @apply bg-gray-100;\n }\n\n .entity-selected-indicator {\n @apply absolute inset-y-0 left-0 w-0.5 bg-primary;\n }\n\n .entity-body {\n @apply relative flex w-full flex-row items-center;\n }\n\n .entity-checkbox {\n @apply hidden sm:inline-flex;\n }\n\n .entity-start-wrapper,\n .entity-end-wrapper {\n @apply w-auto px-4 py-3 align-middle;\n }\n\n .entity-start {\n @apply flex items-center gap-4;\n }\n\n .entity-end {\n @apply flex items-center justify-end gap-6;\n }\n\n .entity-dropdown {\n @apply inline-flex items-center;\n }\n\n .entity-dropdown-trigger {\n @apply cursor-pointer rounded p-1 transition-all hover:text-blue-600;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport { IconMore } from \"../../icons/icons\";\nimport { VDropdown } from \"../dropdown\";\n\nconst props = withDefaults(\n defineProps<{\n isSelected?: boolean;\n }>(),\n {\n isSelected: false,\n }\n);\n\nconst classes = computed(() => {\n const result = [];\n if (props.isSelected) {\n result.push(\"entity-selected\");\n }\n return result;\n});\n</script>\n\n<template>\n <tr :class=\"classes\" v-bind=\"$attrs\" class=\"entity-wrapper group\">\n <td class=\"entity-start-wrapper\">\n <slot name=\"prepend\" />\n <div v-show=\"isSelected\" class=\"entity-selected-indicator\"></div>\n <div class=\"entity-start\">\n <div v-if=\"$slots.checkbox\" class=\"entity-checkbox\">\n <slot name=\"checkbox\" />\n </div>\n <slot name=\"start\" />\n </div>\n </td>\n <td class=\"entity-end-wrapper\">\n <div class=\"entity-end\">\n <slot name=\"end\" />\n <div v-if=\"$slots.dropdownItems\" class=\"entity-dropdown\">\n <!-- @vue-ignore -->\n <VDropdown :dispose-timeout=\"null\">\n <div\n class=\"entity-dropdown-trigger group-hover:bg-gray-200/60\"\n :class=\"{ '!bg-gray-300/60': isSelected }\"\n @click.stop\n >\n <IconMore />\n </div>\n <template #popper>\n <slot name=\"dropdownItems\"></slot>\n </template>\n </VDropdown>\n </div>\n </div>\n </td>\n </tr>\n <tr v-if=\"$slots.footer\">\n <td colspan=\"2\">\n <slot name=\"footer\" />\n </td>\n </tr>\n</template>\n<style lang=\"scss\">\n.entity-wrapper {\n @apply relative w-full transition-all hover:bg-gray-50;\n\n &.entity-selected {\n @apply bg-gray-100;\n }\n\n .entity-selected-indicator {\n @apply absolute inset-y-0 left-0 w-0.5 bg-primary;\n }\n\n .entity-body {\n @apply relative flex w-full flex-row items-center;\n }\n\n .entity-checkbox {\n @apply hidden sm:inline-flex;\n }\n\n .entity-start-wrapper,\n .entity-end-wrapper {\n @apply w-auto px-4 py-3 align-middle;\n }\n\n .entity-start {\n @apply flex items-center gap-4;\n }\n\n .entity-end {\n @apply flex items-center justify-end gap-6;\n }\n\n .entity-dropdown {\n @apply inline-flex items-center;\n }\n\n .entity-dropdown-trigger {\n @apply cursor-pointer rounded p-1 transition-all hover:text-blue-600;\n }\n}\n</style>\n","<script setup lang=\"ts\"></script>\n\n<template>\n <div class=\"w-full overflow-x-auto\">\n <table class=\"w-full border-spacing-0\">\n <tbody class=\"divide-y divide-gray-100\">\n <slot></slot>\n </tbody>\n </table>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { computed, type CSSProperties } from \"vue\";\nimport type { RouteLocationRaw } from \"vue-router\";\n\nconst props = withDefaults(\n defineProps<{\n title?: string;\n description?: string;\n route?: RouteLocationRaw;\n width?: string | number;\n maxWidth?: string | number;\n }>(),\n {\n title: undefined,\n description: undefined,\n route: undefined,\n width: undefined,\n maxWidth: undefined,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"click\"): void;\n}>();\n\nconst wrapperStyles = computed(() => {\n const styles: CSSProperties = {};\n if (props.width) {\n styles.width = getWidthStyleValue(props.width);\n }\n if (props.maxWidth) {\n styles.maxWidth = getWidthStyleValue(props.maxWidth);\n }\n return styles;\n});\n\nfunction getWidthStyleValue(value: string | number) {\n return typeof value === \"string\" ? value : `${value}px`;\n}\n</script>\n\n<template>\n <div class=\"entity-field-wrapper\" :style=\"wrapperStyles\">\n <div v-if=\"title || $slots.title\" class=\"entity-field-title-body\">\n <slot name=\"title\">\n <div class=\"entity-field-title\" @click=\"emit('click')\">\n <RouterLink\n v-if=\"route\"\n class=\"hover:text-gray-600\"\n :to=\"route\"\n :title=\"title\"\n >\n {{ title }}\n </RouterLink>\n <span v-else :title=\"title\">\n {{ title }}\n </span>\n </div>\n <slot name=\"extra\" />\n </slot>\n </div>\n <div\n v-if=\"description || $slots.description\"\n class=\"entity-field-description-body\"\n >\n <slot name=\"description\">\n <span\n v-if=\"description\"\n class=\"entity-field-description\"\n :title=\"description\"\n >\n {{ description }}\n </span>\n </slot>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.entity-field-wrapper {\n @apply inline-flex max-w-xs flex-col gap-1;\n\n .entity-field-title-body {\n @apply inline-flex flex-row items-center whitespace-nowrap;\n\n .entity-field-title {\n @apply mr-2 truncate text-sm font-medium text-gray-900;\n }\n }\n\n .entity-field-description-body {\n @apply inline-flex items-center whitespace-nowrap;\n\n .entity-field-description {\n @apply truncate text-xs text-gray-500;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed, type CSSProperties } from \"vue\";\nimport type { RouteLocationRaw } from \"vue-router\";\n\nconst props = withDefaults(\n defineProps<{\n title?: string;\n description?: string;\n route?: RouteLocationRaw;\n width?: string | number;\n maxWidth?: string | number;\n }>(),\n {\n title: undefined,\n description: undefined,\n route: undefined,\n width: undefined,\n maxWidth: undefined,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"click\"): void;\n}>();\n\nconst wrapperStyles = computed(() => {\n const styles: CSSProperties = {};\n if (props.width) {\n styles.width = getWidthStyleValue(props.width);\n }\n if (props.maxWidth) {\n styles.maxWidth = getWidthStyleValue(props.maxWidth);\n }\n return styles;\n});\n\nfunction getWidthStyleValue(value: string | number) {\n return typeof value === \"string\" ? value : `${value}px`;\n}\n</script>\n\n<template>\n <div class=\"entity-field-wrapper\" :style=\"wrapperStyles\">\n <div v-if=\"title || $slots.title\" class=\"entity-field-title-body\">\n <slot name=\"title\">\n <div class=\"entity-field-title\" @click=\"emit('click')\">\n <RouterLink\n v-if=\"route\"\n class=\"hover:text-gray-600\"\n :to=\"route\"\n :title=\"title\"\n >\n {{ title }}\n </RouterLink>\n <span v-else :title=\"title\">\n {{ title }}\n </span>\n </div>\n <slot name=\"extra\" />\n </slot>\n </div>\n <div\n v-if=\"description || $slots.description\"\n class=\"entity-field-description-body\"\n >\n <slot name=\"description\">\n <span\n v-if=\"description\"\n class=\"entity-field-description\"\n :title=\"description\"\n >\n {{ description }}\n </span>\n </slot>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.entity-field-wrapper {\n @apply inline-flex max-w-xs flex-col gap-1;\n\n .entity-field-title-body {\n @apply inline-flex flex-row items-center whitespace-nowrap;\n\n .entity-field-title {\n @apply mr-2 truncate text-sm font-medium text-gray-900;\n }\n }\n\n .entity-field-description-body {\n @apply inline-flex items-center whitespace-nowrap;\n\n .entity-field-description {\n @apply truncate text-xs text-gray-500;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\ndefineProps<{\n title?: string;\n}>();\n</script>\n<template>\n <div class=\"page-header\">\n <h2 class=\"page-header__title\">\n <slot name=\"icon\" />\n <span class=\"page-header__title-text\">{{ title }}</span>\n </h2>\n <div class=\"page-header__actions\">\n <slot name=\"actions\" />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.page-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-height: 3.5rem;\n background-color: theme(\"colors.white\");\n padding-left: 1rem;\n padding-right: 1rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n flex-wrap: wrap;\n gap: theme(\"spacing.2\");\n\n &__title {\n display: flex;\n align-items: center;\n text-overflow: truncate;\n font-size: 1.25rem;\n font-weight: 700;\n color: theme(\"colors.gray.800\");\n gap: theme(\"spacing.2\");\n }\n\n &__title-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &__actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: theme(\"spacing.2\");\n flex-wrap: wrap;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\ndefineProps<{\n title?: string;\n}>();\n</script>\n<template>\n <div class=\"page-header\">\n <h2 class=\"page-header__title\">\n <slot name=\"icon\" />\n <span class=\"page-header__title-text\">{{ title }}</span>\n </h2>\n <div class=\"page-header__actions\">\n <slot name=\"actions\" />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.page-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-height: 3.5rem;\n background-color: theme(\"colors.white\");\n padding-left: 1rem;\n padding-right: 1rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n flex-wrap: wrap;\n gap: theme(\"spacing.2\");\n\n &__title {\n display: flex;\n align-items: center;\n text-overflow: truncate;\n font-size: 1.25rem;\n font-weight: 700;\n color: theme(\"colors.gray.800\");\n gap: theme(\"spacing.2\");\n }\n\n &__title-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &__actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: theme(\"spacing.2\");\n flex-wrap: wrap;\n }\n}\n</style>\n","<script lang=\"ts\" setup></script>\n\n<template>\n <div class=\"flex items-center justify-center py-4\">\n <svg\n class=\"h-5 w-5 animate-spin\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-75\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { provide } from \"vue\";\n\nconst props = defineProps<{\n openIds?: string[];\n}>();\n\nprovide<string[] | undefined>(\"openIds\", props.openIds);\n</script>\n\n<template>\n <div class=\"menu-container w-full p-3\">\n <ul>\n <slot />\n </ul>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { provide } from \"vue\";\n\nconst props = defineProps<{\n openIds?: string[];\n}>();\n\nprovide<string[] | undefined>(\"openIds\", props.openIds);\n</script>\n\n<template>\n <div class=\"menu-container w-full p-3\">\n <ul>\n <slot />\n </ul>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { computed, inject, ref, useSlots } from \"vue\";\nimport { IconArrowRight } from \"../../icons/icons\";\n\nconst props = withDefaults(\n defineProps<{\n id?: string;\n title?: string;\n active?: boolean;\n }>(),\n {\n id: \"\",\n title: \"\",\n active: false,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"select\", id: string): void;\n}>();\n\nconst slots = useSlots();\n\nconst open = ref(false);\n\nconst openIds = inject<string[] | undefined>(\"openIds\");\n\nif (openIds?.includes(props.id)) {\n open.value = true;\n}\n\nconst hasSubmenus = computed(() => {\n return slots.default && slots.default().length > 0;\n});\n\nfunction handleClick() {\n if (!open.value) {\n handleExpand();\n }\n emit(\"select\", props.id);\n}\n\nfunction handleExpand() {\n if (hasSubmenus.value) {\n open.value = !open.value;\n }\n}\n</script>\n\n<template>\n <li\n :class=\"{ 'has-submenus': hasSubmenus }\"\n class=\"menu-item group\"\n @click.stop=\"handleClick\"\n >\n <div :class=\"{ active }\" class=\"menu-item-title\">\n <span v-if=\"$slots.icon\" class=\"menu-icon mr-3 self-center\">\n <slot name=\"icon\" />\n </span>\n <span class=\"menu-title flex-1 self-center\">\n {{ title }}\n </span>\n <span\n v-if=\"$slots.default\"\n :class=\"{ open }\"\n class=\"menu-icon-collapse self-center transition-all\"\n @click.stop=\"handleExpand\"\n >\n <IconArrowRight />\n </span>\n </div>\n\n <Transition name=\"submenus-show\">\n <ul v-show=\"$slots.default && open\" class=\"sub-menu-items transition-all\">\n <slot />\n </ul>\n </Transition>\n </li>\n</template>\n\n<style lang=\"scss\">\n.menu-item {\n @apply cursor-pointer;\n}\n\n.menu-item-title {\n @apply relative flex select-none rounded-base px-2 py-[0.4rem] text-base font-normal transition-all;\n\n &:hover,\n &.active {\n @apply bg-gray-100 font-medium;\n }\n\n &.active::after {\n @apply absolute;\n top: calc(50% - 13px);\n left: -8px;\n width: 3px;\n height: 26px;\n content: \"\";\n background: #242e41;\n border-radius: 6px;\n }\n}\n\n.menu-icon-collapse {\n @apply rounded-full p-0.5 group-hover:bg-gray-200;\n\n &.open {\n @apply bg-gray-200;\n transform: rotate(90deg);\n }\n}\n\n.submenus-show-enter-active,\n.submenus-show-leave-active {\n transition: all 0.1s ease;\n}\n\n.submenus-show-enter-from,\n.submenus-show-enter-to {\n opacity: 0;\n}\n\n.sub-menu-items {\n @apply my-1 pl-5;\n\n .menu-item-title {\n @apply p-1.5 text-sm;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed, inject, ref, useSlots } from \"vue\";\nimport { IconArrowRight } from \"../../icons/icons\";\n\nconst props = withDefaults(\n defineProps<{\n id?: string;\n title?: string;\n active?: boolean;\n }>(),\n {\n id: \"\",\n title: \"\",\n active: false,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"select\", id: string): void;\n}>();\n\nconst slots = useSlots();\n\nconst open = ref(false);\n\nconst openIds = inject<string[] | undefined>(\"openIds\");\n\nif (openIds?.includes(props.id)) {\n open.value = true;\n}\n\nconst hasSubmenus = computed(() => {\n return slots.default && slots.default().length > 0;\n});\n\nfunction handleClick() {\n if (!open.value) {\n handleExpand();\n }\n emit(\"select\", props.id);\n}\n\nfunction handleExpand() {\n if (hasSubmenus.value) {\n open.value = !open.value;\n }\n}\n</script>\n\n<template>\n <li\n :class=\"{ 'has-submenus': hasSubmenus }\"\n class=\"menu-item group\"\n @click.stop=\"handleClick\"\n >\n <div :class=\"{ active }\" class=\"menu-item-title\">\n <span v-if=\"$slots.icon\" class=\"menu-icon mr-3 self-center\">\n <slot name=\"icon\" />\n </span>\n <span class=\"menu-title flex-1 self-center\">\n {{ title }}\n </span>\n <span\n v-if=\"$slots.default\"\n :class=\"{ open }\"\n class=\"menu-icon-collapse self-center transition-all\"\n @click.stop=\"handleExpand\"\n >\n <IconArrowRight />\n </span>\n </div>\n\n <Transition name=\"submenus-show\">\n <ul v-show=\"$slots.default && open\" class=\"sub-menu-items transition-all\">\n <slot />\n </ul>\n </Transition>\n </li>\n</template>\n\n<style lang=\"scss\">\n.menu-item {\n @apply cursor-pointer;\n}\n\n.menu-item-title {\n @apply relative flex select-none rounded-base px-2 py-[0.4rem] text-base font-normal transition-all;\n\n &:hover,\n &.active {\n @apply bg-gray-100 font-medium;\n }\n\n &.active::after {\n @apply absolute;\n top: calc(50% - 13px);\n left: -8px;\n width: 3px;\n height: 26px;\n content: \"\";\n background: #242e41;\n border-radius: 6px;\n }\n}\n\n.menu-icon-collapse {\n @apply rounded-full p-0.5 group-hover:bg-gray-200;\n\n &.open {\n @apply bg-gray-200;\n transform: rotate(90deg);\n }\n}\n\n.submenus-show-enter-active,\n.submenus-show-leave-active {\n transition: all 0.1s ease;\n}\n\n.submenus-show-enter-from,\n.submenus-show-enter-to {\n opacity: 0;\n}\n\n.sub-menu-items {\n @apply my-1 pl-5;\n\n .menu-item-title {\n @apply p-1.5 text-sm;\n }\n}\n</style>\n","<template>\n <li class=\"menu-label flex flex-col\">\n <slot />\n </li>\n</template>\n<style lang=\"scss\">\n.menu-label {\n padding-top: 10px;\n padding-bottom: 10px;\n color: #847e7e;\n font-size: 14px;\n font-weight: 400;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport { IconArrowLeft, IconArrowRight } from \"../../icons/icons\";\n\nconst props = withDefaults(\n defineProps<{\n page?: number;\n size?: number;\n total?: number;\n sizeOptions?: number[];\n showTotal?: boolean;\n pageLabel?: string;\n sizeLabel?: string;\n totalLabel?: string;\n }>(),\n {\n page: 1,\n size: 10,\n total: 0,\n sizeOptions: () => [10],\n showTotal: true,\n pageLabel: \"页\",\n sizeLabel: \"条 / 页\",\n totalLabel: undefined,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"update:page\", page: number): void;\n (event: \"update:size\", size: number): void;\n (event: \"change\", value: { page: number; size: number }): void;\n}>();\n\nconst totalPages = computed(() => Math.ceil(props.total / props.size));\n\nconst hasNext = computed(() => props.page < totalPages.value);\n\nconst hasPrevious = computed(() => props.page > 1);\n\nconst totalLabelText = computed(() => {\n if (props.totalLabel) {\n return props.totalLabel;\n }\n return `共 ${props.total} 项数据`;\n});\n\nconst onPageChange = (event: Event) => {\n const target = event.target as HTMLSelectElement;\n const page = Number(target.value);\n emit(\"update:page\", page);\n emit(\"change\", { page, size: props.size });\n};\n\nconst onSizeChange = (event: Event) => {\n const target = event.target as HTMLSelectElement;\n const size = Number(target.value);\n emit(\"update:size\", size);\n\n // reset page to 1\n emit(\"update:page\", 1);\n emit(\"change\", { page: 1, size });\n};\n\nconst previous = () => {\n if (hasPrevious.value) {\n const page = props.page - 1;\n emit(\"update:page\", page);\n emit(\"change\", { page: page, size: props.size });\n }\n};\n\nconst next = () => {\n if (hasNext.value) {\n const page = props.page + 1;\n emit(\"update:page\", page);\n emit(\"change\", { page: page, size: props.size });\n }\n};\n</script>\n<template>\n <div class=\"pagination\">\n <div v-if=\"showTotal\" class=\"pagination__total\">\n {{ totalLabelText }}\n </div>\n <div class=\"pagination__controller\">\n <nav aria-label=\"Pagination\" class=\"pagination__nav\">\n <button\n class=\"pagination__btn pagination__btn--prev\"\n :disabled=\"!hasPrevious\"\n @click=\"previous\"\n >\n <IconArrowLeft />\n </button>\n <button\n class=\"pagination__btn pagination__btn--next\"\n :disabled=\"!hasNext\"\n @click=\"next\"\n >\n <IconArrowRight />\n </button>\n </nav>\n <div class=\"pagination__select-wrap\">\n <select\n :value=\"page\"\n :disabled=\"totalPages === 0\"\n class=\"pagination__select\"\n @change=\"onPageChange\"\n >\n <option v-if=\"totalPages === 0\" :value=\"1\">0 / 0</option>\n <option v-for=\"i in totalPages || 1\" :key=\"i\" :value=\"i\">\n {{ i }} / {{ totalPages }}\n </option>\n </select>\n <span class=\"pagination__select-label\">\n {{ pageLabel }}\n </span>\n </div>\n <div class=\"pagination__select-wrap\">\n <select :value=\"size\" class=\"pagination__select\" @change=\"onSizeChange\">\n <option\n v-for=\"(sizeOption, index) in sizeOptions\"\n :key=\"index\"\n :value=\"sizeOption\"\n >\n {{ sizeOption }}\n </option>\n </select>\n <span class=\"pagination__select-label\">\n {{ sizeLabel }}\n </span>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.pagination {\n @apply flex flex-1 items-center gap-2 bg-white;\n\n &__total {\n @apply hidden text-sm text-gray-500 sm:block;\n }\n\n &__controller {\n @apply flex flex-1 items-center justify-end gap-2;\n }\n\n &__nav {\n @apply relative z-0 inline-flex -space-x-px rounded-base shadow-sm;\n }\n\n &__btn {\n @apply relative inline-flex h-8 cursor-pointer items-center rounded-base border border-gray-300 bg-white px-2 py-1.5 text-sm font-medium text-gray-500 outline-none hover:bg-gray-50 disabled:cursor-not-allowed;\n\n &--prev {\n @apply rounded-r-none;\n }\n\n &--next {\n @apply rounded-l-none;\n }\n }\n\n &__select-wrap {\n @apply inline-flex items-center gap-2;\n }\n\n &__select {\n @apply h-8 rounded-base border border-solid border-gray-300 px-2 pr-10 text-sm text-gray-800 outline-none focus:border-primary;\n }\n\n &__select-label {\n @apply text-sm text-gray-500;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport { IconArrowLeft, IconArrowRight } from \"../../icons/icons\";\n\nconst props = withDefaults(\n defineProps<{\n page?: number;\n size?: number;\n total?: number;\n sizeOptions?: number[];\n showTotal?: boolean;\n pageLabel?: string;\n sizeLabel?: string;\n totalLabel?: string;\n }>(),\n {\n page: 1,\n size: 10,\n total: 0,\n sizeOptions: () => [10],\n showTotal: true,\n pageLabel: \"页\",\n sizeLabel: \"条 / 页\",\n totalLabel: undefined,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"update:page\", page: number): void;\n (event: \"update:size\", size: number): void;\n (event: \"change\", value: { page: number; size: number }): void;\n}>();\n\nconst totalPages = computed(() => Math.ceil(props.total / props.size));\n\nconst hasNext = computed(() => props.page < totalPages.value);\n\nconst hasPrevious = computed(() => props.page > 1);\n\nconst totalLabelText = computed(() => {\n if (props.totalLabel) {\n return props.totalLabel;\n }\n return `共 ${props.total} 项数据`;\n});\n\nconst onPageChange = (event: Event) => {\n const target = event.target as HTMLSelectElement;\n const page = Number(target.value);\n emit(\"update:page\", page);\n emit(\"change\", { page, size: props.size });\n};\n\nconst onSizeChange = (event: Event) => {\n const target = event.target as HTMLSelectElement;\n const size = Number(target.value);\n emit(\"update:size\", size);\n\n // reset page to 1\n emit(\"update:page\", 1);\n emit(\"change\", { page: 1, size });\n};\n\nconst previous = () => {\n if (hasPrevious.value) {\n const page = props.page - 1;\n emit(\"update:page\", page);\n emit(\"change\", { page: page, size: props.size });\n }\n};\n\nconst next = () => {\n if (hasNext.value) {\n const page = props.page + 1;\n emit(\"update:page\", page);\n emit(\"change\", { page: page, size: props.size });\n }\n};\n</script>\n<template>\n <div class=\"pagination\">\n <div v-if=\"showTotal\" class=\"pagination__total\">\n {{ totalLabelText }}\n </div>\n <div class=\"pagination__controller\">\n <nav aria-label=\"Pagination\" class=\"pagination__nav\">\n <button\n class=\"pagination__btn pagination__btn--prev\"\n :disabled=\"!hasPrevious\"\n @click=\"previous\"\n >\n <IconArrowLeft />\n </button>\n <button\n class=\"pagination__btn pagination__btn--next\"\n :disabled=\"!hasNext\"\n @click=\"next\"\n >\n <IconArrowRight />\n </button>\n </nav>\n <div class=\"pagination__select-wrap\">\n <select\n :value=\"page\"\n :disabled=\"totalPages === 0\"\n class=\"pagination__select\"\n @change=\"onPageChange\"\n >\n <option v-if=\"totalPages === 0\" :value=\"1\">0 / 0</option>\n <option v-for=\"i in totalPages || 1\" :key=\"i\" :value=\"i\">\n {{ i }} / {{ totalPages }}\n </option>\n </select>\n <span class=\"pagination__select-label\">\n {{ pageLabel }}\n </span>\n </div>\n <div class=\"pagination__select-wrap\">\n <select :value=\"size\" class=\"pagination__select\" @change=\"onSizeChange\">\n <option\n v-for=\"(sizeOption, index) in sizeOptions\"\n :key=\"index\"\n :value=\"sizeOption\"\n >\n {{ sizeOption }}\n </option>\n </select>\n <span class=\"pagination__select-label\">\n {{ sizeLabel }}\n </span>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.pagination {\n @apply flex flex-1 items-center gap-2 bg-white;\n\n &__total {\n @apply hidden text-sm text-gray-500 sm:block;\n }\n\n &__controller {\n @apply flex flex-1 items-center justify-end gap-2;\n }\n\n &__nav {\n @apply relative z-0 inline-flex -space-x-px rounded-base shadow-sm;\n }\n\n &__btn {\n @apply relative inline-flex h-8 cursor-pointer items-center rounded-base border border-gray-300 bg-white px-2 py-1.5 text-sm font-medium text-gray-500 outline-none hover:bg-gray-50 disabled:cursor-not-allowed;\n\n &--prev {\n @apply rounded-r-none;\n }\n\n &--next {\n @apply rounded-l-none;\n }\n }\n\n &__select-wrap {\n @apply inline-flex items-center gap-2;\n }\n\n &__select {\n @apply h-8 rounded-base border border-solid border-gray-300 px-2 pr-10 text-sm text-gray-800 outline-none focus:border-primary;\n }\n\n &__select-label {\n @apply text-sm text-gray-500;\n }\n}\n</style>\n","export type SpaceSpacing = \"xs\" | \"sm\" | \"md\" | \"lg\";\nexport type SpaceDirection = \"row\" | \"column\";\nexport type SpaceAlign = \"start\" | \"end\" | \"center\" | \"stretch\";\nexport const SpaceSpacingSize: Record<string, number> = {\n xs: 10,\n sm: 12,\n md: 16,\n lg: 20,\n};\n","<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { SpaceAlign, SpaceDirection, SpaceSpacing } from \"./types\";\nimport { SpaceSpacingSize } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n spacing?: SpaceSpacing;\n direction?: SpaceDirection;\n align?: SpaceAlign;\n }>(),\n {\n spacing: \"xs\",\n direction: \"row\",\n align: \"center\",\n }\n);\n\nconst wrapperClasses = computed(() => {\n const { direction, align } = props;\n return [`space-direction-${direction}`, `space-align-${align}`];\n});\n</script>\n<template>\n <div\n :class=\"wrapperClasses\"\n :style=\"`gap: ${SpaceSpacingSize[spacing]}px`\"\n class=\"space-wrapper\"\n >\n <slot />\n </div>\n</template>\n<style lang=\"scss\">\n.space-wrapper {\n @apply box-border inline-flex;\n\n &.space-direction-row {\n @apply flex-row;\n }\n\n &.space-direction-column {\n @apply flex-col;\n }\n\n &.space-align-center {\n @apply items-center;\n }\n\n &.space-align-start {\n @apply items-start;\n }\n\n &.space-align-end {\n @apply items-end;\n }\n\n &.space-align-stretch {\n @apply items-stretch;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { SpaceAlign, SpaceDirection, SpaceSpacing } from \"./types\";\nimport { SpaceSpacingSize } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n spacing?: SpaceSpacing;\n direction?: SpaceDirection;\n align?: SpaceAlign;\n }>(),\n {\n spacing: \"xs\",\n direction: \"row\",\n align: \"center\",\n }\n);\n\nconst wrapperClasses = computed(() => {\n const { direction, align } = props;\n return [`space-direction-${direction}`, `space-align-${align}`];\n});\n</script>\n<template>\n <div\n :class=\"wrapperClasses\"\n :style=\"`gap: ${SpaceSpacingSize[spacing]}px`\"\n class=\"space-wrapper\"\n >\n <slot />\n </div>\n</template>\n<style lang=\"scss\">\n.space-wrapper {\n @apply box-border inline-flex;\n\n &.space-direction-row {\n @apply flex-row;\n }\n\n &.space-direction-column {\n @apply flex-col;\n }\n\n &.space-align-center {\n @apply items-center;\n }\n\n &.space-align-start {\n @apply items-start;\n }\n\n &.space-align-end {\n @apply items-end;\n }\n\n &.space-align-stretch {\n @apply items-stretch;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { StatusDotState } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n state?: StatusDotState;\n animate?: boolean;\n text?: string;\n }>(),\n { state: \"success\", animate: false, text: undefined }\n);\n\nconst classes = computed(() => {\n return [`status-dot-${props.state}`, { \"status-dot-animate\": props.animate }];\n});\n</script>\n\n<template>\n <div class=\"status-dot-wrapper\" :class=\"classes\">\n <div class=\"status-dot-body\">\n <span class=\"status-dot-inner\"></span>\n </div>\n <slot v-if=\"$slots.text || text\" name=\"text\">\n <span class=\"status-dot-text\">{{ text }}</span>\n </slot>\n </div>\n</template>\n\n<style lang=\"scss\">\n.status-dot-wrapper {\n @apply flex items-center gap-2;\n\n .status-dot-body {\n @apply inline-flex h-2 w-2 items-center justify-center rounded-full;\n }\n\n .status-dot-inner {\n @apply inline-block h-1.5 w-1.5 rounded-full;\n }\n\n .status-dot-text {\n @apply whitespace-nowrap text-xs text-gray-500;\n }\n\n &.status-dot-animate {\n .status-dot-inner {\n @apply animate-ping;\n }\n }\n\n &.status-dot-default {\n .status-dot-body {\n @apply bg-gray-300;\n }\n\n .status-dot-inner {\n @apply bg-gray-300;\n }\n }\n\n &.status-dot-success {\n .status-dot-body {\n @apply bg-green-600;\n }\n\n .status-dot-inner {\n @apply bg-green-600;\n }\n }\n\n &.status-dot-warning {\n .status-dot-body {\n @apply bg-yellow-600;\n }\n\n .status-dot-inner {\n @apply bg-yellow-600;\n }\n }\n\n &.status-dot-error {\n .status-dot-body {\n @apply bg-red-600;\n }\n\n .status-dot-inner {\n @apply bg-red-600;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed } from \"vue\";\nimport type { StatusDotState } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n state?: StatusDotState;\n animate?: boolean;\n text?: string;\n }>(),\n { state: \"success\", animate: false, text: undefined }\n);\n\nconst classes = computed(() => {\n return [`status-dot-${props.state}`, { \"status-dot-animate\": props.animate }];\n});\n</script>\n\n<template>\n <div class=\"status-dot-wrapper\" :class=\"classes\">\n <div class=\"status-dot-body\">\n <span class=\"status-dot-inner\"></span>\n </div>\n <slot v-if=\"$slots.text || text\" name=\"text\">\n <span class=\"status-dot-text\">{{ text }}</span>\n </slot>\n </div>\n</template>\n\n<style lang=\"scss\">\n.status-dot-wrapper {\n @apply flex items-center gap-2;\n\n .status-dot-body {\n @apply inline-flex h-2 w-2 items-center justify-center rounded-full;\n }\n\n .status-dot-inner {\n @apply inline-block h-1.5 w-1.5 rounded-full;\n }\n\n .status-dot-text {\n @apply whitespace-nowrap text-xs text-gray-500;\n }\n\n &.status-dot-animate {\n .status-dot-inner {\n @apply animate-ping;\n }\n }\n\n &.status-dot-default {\n .status-dot-body {\n @apply bg-gray-300;\n }\n\n .status-dot-inner {\n @apply bg-gray-300;\n }\n }\n\n &.status-dot-success {\n .status-dot-body {\n @apply bg-green-600;\n }\n\n .status-dot-inner {\n @apply bg-green-600;\n }\n }\n\n &.status-dot-warning {\n .status-dot-body {\n @apply bg-yellow-600;\n }\n\n .status-dot-inner {\n @apply bg-yellow-600;\n }\n }\n\n &.status-dot-error {\n .status-dot-body {\n @apply bg-red-600;\n }\n\n .status-dot-inner {\n @apply bg-red-600;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nconst props = withDefaults(\n defineProps<{\n modelValue?: boolean;\n disabled?: boolean;\n loading?: boolean;\n }>(),\n {\n modelValue: false,\n disabled: false,\n loading: false,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"update:modelValue\", value: boolean): void;\n (event: \"change\", value: boolean): void;\n}>();\n\nconst handleChange = () => {\n if (props.disabled || props.loading) return;\n\n emit(\"update:modelValue\", !props.modelValue);\n emit(\"change\", !props.modelValue);\n};\n</script>\n<template>\n <div class=\"switch-wrapper\">\n <button\n :class=\"{\n 'bg-gray-200': !modelValue,\n '!bg-primary': modelValue,\n 'switch-disabled': disabled || loading,\n }\"\n aria-checked=\"false\"\n class=\"switch-inner\"\n role=\"switch\"\n type=\"button\"\n :disabled=\"disabled || loading\"\n @click=\"handleChange\"\n >\n <span\n :class=\"{\n 'translate-x-0': !modelValue,\n 'translate-x-5': modelValue,\n }\"\n aria-hidden=\"true\"\n class=\"switch-indicator\"\n >\n <svg\n v-if=\"loading\"\n class=\"animate-spin\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"opacity-0\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-30\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n <slot v-else name=\"icon\" />\n </span>\n </button>\n </div>\n</template>\n<style lang=\"scss\">\n.switch-wrapper {\n @apply box-border inline-flex;\n\n .switch-inner {\n @apply relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out;\n\n &.switch-disabled {\n @apply cursor-not-allowed opacity-60;\n }\n\n .switch-indicator {\n @apply pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nconst props = withDefaults(\n defineProps<{\n modelValue?: boolean;\n disabled?: boolean;\n loading?: boolean;\n }>(),\n {\n modelValue: false,\n disabled: false,\n loading: false,\n }\n);\n\nconst emit = defineEmits<{\n (event: \"update:modelValue\", value: boolean): void;\n (event: \"change\", value: boolean): void;\n}>();\n\nconst handleChange = () => {\n if (props.disabled || props.loading) return;\n\n emit(\"update:modelValue\", !props.modelValue);\n emit(\"change\", !props.modelValue);\n};\n</script>\n<template>\n <div class=\"switch-wrapper\">\n <button\n :class=\"{\n 'bg-gray-200': !modelValue,\n '!bg-primary': modelValue,\n 'switch-disabled': disabled || loading,\n }\"\n aria-checked=\"false\"\n class=\"switch-inner\"\n role=\"switch\"\n type=\"button\"\n :disabled=\"disabled || loading\"\n @click=\"handleChange\"\n >\n <span\n :class=\"{\n 'translate-x-0': !modelValue,\n 'translate-x-5': modelValue,\n }\"\n aria-hidden=\"true\"\n class=\"switch-indicator\"\n >\n <svg\n v-if=\"loading\"\n class=\"animate-spin\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"opacity-0\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-30\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n ></path>\n </svg>\n <slot v-else name=\"icon\" />\n </span>\n </button>\n </div>\n</template>\n<style lang=\"scss\">\n.switch-wrapper {\n @apply box-border inline-flex;\n\n .switch-inner {\n @apply relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out;\n\n &.switch-disabled {\n @apply cursor-not-allowed opacity-60;\n }\n\n .switch-indicator {\n @apply pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { useElementSize, useThrottleFn } from \"@vueuse/core\";\nimport type { ComputedRef } from \"vue\";\nimport { computed, onMounted, onUnmounted, ref, watch } from \"vue\";\nimport { IconArrowLeft, IconArrowRight } from \"../../icons/icons\";\nimport type { TabsArrowShow, TabsDirection, TabsType } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n activeId?: number | string;\n items?: Array<Record<string, string>>;\n type?: TabsType;\n direction?: TabsDirection;\n idKey?: string;\n labelKey?: string;\n }>(),\n {\n activeId: undefined,\n items: undefined,\n type: \"default\",\n direction: \"row\",\n idKey: \"id\",\n labelKey: \"label\",\n }\n);\n\nconst emit = defineEmits<{\n (event: \"update:activeId\", value: number | string): void;\n (event: \"change\", value: number | string): void;\n}>();\n\nconst classes = computed(() => {\n return [`tabbar-${props.type}`, `tabbar-direction-${props.direction}`];\n});\n\nconst handleChange = (id: number | string, index: number) => {\n handleClickTabItem(index);\n emit(\"update:activeId\", id);\n emit(\"change\", id);\n};\n\nconst tabbarItemsRef = ref<HTMLElement | undefined>();\nconst tabItemRefs = ref<HTMLElement[] | undefined>();\nconst itemWidthArr = ref<number[]>([]);\nconst indicatorRef = ref<HTMLElement | undefined>();\nconst arrowFlag = ref(false);\nconst { width: tabbarWidth } = useElementSize(tabbarItemsRef);\n\nconst arrowShow: ComputedRef<TabsArrowShow> = computed(() => {\n const show: TabsArrowShow = { left: false, right: false };\n if (!tabbarItemsRef.value) return show;\n void arrowFlag.value;\n void tabbarWidth.value;\n const { scrollWidth, scrollLeft, clientWidth } = tabbarItemsRef.value;\n if (scrollWidth > clientWidth) {\n if (scrollLeft < scrollWidth - clientWidth) {\n show.right = true;\n }\n if (scrollLeft > 20) {\n show.left = true;\n }\n }\n return show;\n});\n\nfunction handleHorizontalWheel(event: WheelEvent) {\n if (!tabbarItemsRef.value) {\n return;\n }\n const { scrollLeft, scrollWidth, clientWidth } = tabbarItemsRef.value;\n const toLeft = event.deltaY < 0 && scrollLeft > 0;\n const toRight = event.deltaY > 0 && scrollLeft < scrollWidth - clientWidth;\n\n if (toLeft || toRight) {\n event.preventDefault();\n event.stopPropagation();\n tabbarItemsRef.value.scrollBy({ left: event.deltaY });\n }\n}\n\nfunction saveItemsWidth() {\n if (!tabbarItemsRef.value || !tabItemRefs.value) return;\n itemWidthArr.value = [];\n for (const item of tabItemRefs.value) {\n itemWidthArr.value.push(item.offsetWidth);\n }\n arrowFlag.value = !arrowFlag.value;\n}\n\nfunction handleClickTabItem(index: number) {\n if (!tabbarItemsRef.value || !indicatorRef.value) return;\n const { scrollWidth, clientWidth } = tabbarItemsRef.value;\n if (scrollWidth <= clientWidth) return;\n if (index === 0) {\n tabbarItemsRef.value.scrollTo({ left: 0, behavior: \"smooth\" });\n return;\n }\n if (index === itemWidthArr.value.length - 1) {\n tabbarItemsRef.value.scrollTo({\n left: scrollWidth - clientWidth,\n behavior: \"smooth\",\n });\n return;\n }\n}\n\nfunction handleClickArrow(prev: boolean) {\n if (!tabbarItemsRef.value || !indicatorRef.value || !tabItemRefs.value)\n return;\n const { scrollWidth, scrollLeft, clientWidth } = tabbarItemsRef.value;\n if (scrollWidth <= clientWidth) return;\n if (!itemWidthArr.value[0]) {\n itemWidthArr.value = [];\n for (const item of tabItemRefs.value) {\n itemWidthArr.value.push(item.offsetWidth);\n }\n }\n let hiddenNum = 0;\n let totalWith = 0;\n let scrollByX = 0;\n const lastItemWidth = itemWidthArr.value[itemWidthArr.value.length - 1];\n if (prev) {\n for (let i = 0; i < itemWidthArr.value.length; i++) {\n const w = itemWidthArr.value[i];\n totalWith += w;\n if (totalWith >= scrollLeft) {\n hiddenNum = i;\n break;\n }\n }\n if (hiddenNum === 0) {\n scrollByX = -itemWidthArr.value[0];\n } else {\n scrollByX = -(\n itemWidthArr.value[hiddenNum] -\n totalWith +\n scrollLeft +\n itemWidthArr.value[hiddenNum - 1]\n );\n }\n } else {\n const overWidth = scrollWidth - scrollLeft - clientWidth;\n for (let i = itemWidthArr.value.length - 1; i >= 0; i--) {\n const w = itemWidthArr.value[i];\n totalWith += w;\n if (totalWith >= overWidth) {\n hiddenNum = i;\n break;\n }\n }\n\n if (hiddenNum === itemWidthArr.value.length - 1) {\n scrollByX =\n lastItemWidth + itemWidthArr.value[itemWidthArr.value.length - 1];\n } else {\n scrollByX =\n itemWidthArr.value[hiddenNum] -\n (totalWith - overWidth) +\n itemWidthArr.value[hiddenNum + 1];\n }\n }\n tabbarItemsRef.value.scrollBy({\n left: scrollByX,\n behavior: \"smooth\",\n });\n}\n\nconst handleScroll = useThrottleFn(\n () => {\n arrowFlag.value = !arrowFlag.value;\n },\n 100,\n true\n);\n\nwatch(() => tabItemRefs.value?.length, saveItemsWidth);\n\nonMounted(() => {\n tabbarItemsRef.value?.addEventListener(\"wheel\", handleHorizontalWheel);\n tabbarItemsRef.value?.addEventListener(\"scroll\", handleScroll);\n});\n\nonUnmounted(() => {\n tabbarItemsRef.value?.removeEventListener(\"wheel\", handleHorizontalWheel);\n tabbarItemsRef.value?.removeEventListener(\"scroll\", handleScroll);\n});\n</script>\n<template>\n <div :class=\"classes\" class=\"tabbar-wrapper\">\n <div\n ref=\"indicatorRef\"\n :class=\"['indicator', 'left', arrowShow.left ? 'visible' : 'invisible']\"\n >\n <div title=\"向前\" class=\"arrow-left\" @click=\"handleClickArrow(true)\">\n <IconArrowLeft />\n </div>\n </div>\n <div\n :class=\"['indicator', 'right', arrowShow.right ? 'visible' : 'invisible']\"\n >\n <div title=\"向后\" class=\"arrow-right\" @click=\"handleClickArrow(false)\">\n <IconArrowRight />\n </div>\n </div>\n <div ref=\"tabbarItemsRef\" class=\"tabbar-items\">\n <div\n v-for=\"(item, index) in items\"\n :key=\"index\"\n ref=\"tabItemRefs\"\n :class=\"{ 'tabbar-item-active': item[idKey] === activeId }\"\n class=\"tabbar-item\"\n @click=\"handleChange(item[idKey], index)\"\n >\n <div v-if=\"item.icon\" class=\"tabbar-item-icon\">\n <component :is=\"item.icon\" />\n </div>\n <div v-if=\"item[labelKey]\" class=\"tabbar-item-label\">\n {{ item[labelKey] }}\n </div>\n </div>\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.tabbar-wrapper {\n @apply relative;\n .indicator {\n @apply pointer-events-none absolute top-0 z-10 flex h-full w-20 items-center from-transparent from-10% via-white/80 via-30% to-white to-70% pb-1.5 pt-1;\n\n &.left {\n @apply left-0 justify-start bg-gradient-to-l;\n }\n &.right {\n @apply right-0 justify-end bg-gradient-to-r;\n }\n .arrow-left,\n .arrow-right {\n @apply pointer-events-auto flex h-9 w-10 cursor-pointer select-none items-center justify-center;\n svg {\n font-size: 1.5em;\n }\n }\n }\n\n .tabbar-items {\n @apply flex flex-row items-center overflow-x-auto py-0.5;\n\n &::-webkit-scrollbar-track-piece {\n background-color: #f8f8f8;\n -webkit-border-radius: 2em;\n -moz-border-radius: 2em;\n border-radius: 2em;\n }\n\n &::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: #ddd;\n background-clip: padding-box;\n -webkit-border-radius: 2em;\n -moz-border-radius: 2em;\n border-radius: 2em;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n background-color: #bbb;\n }\n }\n\n .tabbar-item {\n @apply inline-flex h-9 cursor-pointer justify-center gap-2 self-center whitespace-nowrap text-sm transition-all;\n\n .tabbar-item-label,\n .tabbar-item-icon {\n @apply self-center;\n }\n }\n\n &.tabbar-default {\n border-bottom-width: 2px;\n @apply border-b-gray-100;\n\n .tabbar-items {\n margin-bottom: -4px;\n justify-content: flex-start;\n }\n\n .tabbar-item {\n @apply border-b-gray-100 px-5 py-1;\n\n border-bottom-width: 2px;\n\n &.tabbar-item-active {\n @apply border-b-secondary text-secondary;\n }\n }\n }\n\n &.tabbar-pills {\n .tabbar-items {\n @apply gap-1;\n justify-content: flex-start;\n }\n\n .tabbar-item {\n @apply rounded-base px-6 py-1 opacity-70;\n\n &.tabbar-item-active {\n @apply bg-gray-100 opacity-100;\n }\n\n &:hover {\n @apply bg-gray-100;\n }\n }\n }\n\n &.tabbar-outline {\n @apply rounded-base bg-gray-100 px-1 py-0.5;\n\n .tabbar-items {\n @apply justify-start gap-1;\n }\n\n .tabbar-item {\n @apply rounded-sm px-6 py-1 opacity-70;\n\n &.tabbar-item-active {\n @apply bg-white opacity-100 shadow-sm;\n }\n\n &:hover {\n @apply bg-white;\n }\n }\n }\n\n &.tabbar-direction-row {\n .tabbar-items {\n @apply flex-row;\n }\n }\n\n &.tabbar-direction-column {\n .tabbar-items {\n @apply flex-col;\n }\n\n .tabbar-item {\n width: 100%;\n }\n\n &.tabbar-default {\n border-bottom-width: 0;\n @apply border-b-0;\n border-right-width: 2px;\n @apply border-r-gray-100;\n\n .tabbar-items {\n margin-bottom: 0;\n margin-right: -2px;\n }\n\n .tabbar-item {\n border-bottom-width: 0;\n border-right-width: 2px;\n\n &.tabbar-item-active {\n @apply border-r-secondary;\n }\n }\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { useElementSize, useThrottleFn } from \"@vueuse/core\";\nimport type { ComputedRef } from \"vue\";\nimport { computed, onMounted, onUnmounted, ref, watch } from \"vue\";\nimport { IconArrowLeft, IconArrowRight } from \"../../icons/icons\";\nimport type { TabsArrowShow, TabsDirection, TabsType } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n activeId?: number | string;\n items?: Array<Record<string, string>>;\n type?: TabsType;\n direction?: TabsDirection;\n idKey?: string;\n labelKey?: string;\n }>(),\n {\n activeId: undefined,\n items: undefined,\n type: \"default\",\n direction: \"row\",\n idKey: \"id\",\n labelKey: \"label\",\n }\n);\n\nconst emit = defineEmits<{\n (event: \"update:activeId\", value: number | string): void;\n (event: \"change\", value: number | string): void;\n}>();\n\nconst classes = computed(() => {\n return [`tabbar-${props.type}`, `tabbar-direction-${props.direction}`];\n});\n\nconst handleChange = (id: number | string, index: number) => {\n handleClickTabItem(index);\n emit(\"update:activeId\", id);\n emit(\"change\", id);\n};\n\nconst tabbarItemsRef = ref<HTMLElement | undefined>();\nconst tabItemRefs = ref<HTMLElement[] | undefined>();\nconst itemWidthArr = ref<number[]>([]);\nconst indicatorRef = ref<HTMLElement | undefined>();\nconst arrowFlag = ref(false);\nconst { width: tabbarWidth } = useElementSize(tabbarItemsRef);\n\nconst arrowShow: ComputedRef<TabsArrowShow> = computed(() => {\n const show: TabsArrowShow = { left: false, right: false };\n if (!tabbarItemsRef.value) return show;\n void arrowFlag.value;\n void tabbarWidth.value;\n const { scrollWidth, scrollLeft, clientWidth } = tabbarItemsRef.value;\n if (scrollWidth > clientWidth) {\n if (scrollLeft < scrollWidth - clientWidth) {\n show.right = true;\n }\n if (scrollLeft > 20) {\n show.left = true;\n }\n }\n return show;\n});\n\nfunction handleHorizontalWheel(event: WheelEvent) {\n if (!tabbarItemsRef.value) {\n return;\n }\n const { scrollLeft, scrollWidth, clientWidth } = tabbarItemsRef.value;\n const toLeft = event.deltaY < 0 && scrollLeft > 0;\n const toRight = event.deltaY > 0 && scrollLeft < scrollWidth - clientWidth;\n\n if (toLeft || toRight) {\n event.preventDefault();\n event.stopPropagation();\n tabbarItemsRef.value.scrollBy({ left: event.deltaY });\n }\n}\n\nfunction saveItemsWidth() {\n if (!tabbarItemsRef.value || !tabItemRefs.value) return;\n itemWidthArr.value = [];\n for (const item of tabItemRefs.value) {\n itemWidthArr.value.push(item.offsetWidth);\n }\n arrowFlag.value = !arrowFlag.value;\n}\n\nfunction handleClickTabItem(index: number) {\n if (!tabbarItemsRef.value || !indicatorRef.value) return;\n const { scrollWidth, clientWidth } = tabbarItemsRef.value;\n if (scrollWidth <= clientWidth) return;\n if (index === 0) {\n tabbarItemsRef.value.scrollTo({ left: 0, behavior: \"smooth\" });\n return;\n }\n if (index === itemWidthArr.value.length - 1) {\n tabbarItemsRef.value.scrollTo({\n left: scrollWidth - clientWidth,\n behavior: \"smooth\",\n });\n return;\n }\n}\n\nfunction handleClickArrow(prev: boolean) {\n if (!tabbarItemsRef.value || !indicatorRef.value || !tabItemRefs.value)\n return;\n const { scrollWidth, scrollLeft, clientWidth } = tabbarItemsRef.value;\n if (scrollWidth <= clientWidth) return;\n if (!itemWidthArr.value[0]) {\n itemWidthArr.value = [];\n for (const item of tabItemRefs.value) {\n itemWidthArr.value.push(item.offsetWidth);\n }\n }\n let hiddenNum = 0;\n let totalWith = 0;\n let scrollByX = 0;\n const lastItemWidth = itemWidthArr.value[itemWidthArr.value.length - 1];\n if (prev) {\n for (let i = 0; i < itemWidthArr.value.length; i++) {\n const w = itemWidthArr.value[i];\n totalWith += w;\n if (totalWith >= scrollLeft) {\n hiddenNum = i;\n break;\n }\n }\n if (hiddenNum === 0) {\n scrollByX = -itemWidthArr.value[0];\n } else {\n scrollByX = -(\n itemWidthArr.value[hiddenNum] -\n totalWith +\n scrollLeft +\n itemWidthArr.value[hiddenNum - 1]\n );\n }\n } else {\n const overWidth = scrollWidth - scrollLeft - clientWidth;\n for (let i = itemWidthArr.value.length - 1; i >= 0; i--) {\n const w = itemWidthArr.value[i];\n totalWith += w;\n if (totalWith >= overWidth) {\n hiddenNum = i;\n break;\n }\n }\n\n if (hiddenNum === itemWidthArr.value.length - 1) {\n scrollByX =\n lastItemWidth + itemWidthArr.value[itemWidthArr.value.length - 1];\n } else {\n scrollByX =\n itemWidthArr.value[hiddenNum] -\n (totalWith - overWidth) +\n itemWidthArr.value[hiddenNum + 1];\n }\n }\n tabbarItemsRef.value.scrollBy({\n left: scrollByX,\n behavior: \"smooth\",\n });\n}\n\nconst handleScroll = useThrottleFn(\n () => {\n arrowFlag.value = !arrowFlag.value;\n },\n 100,\n true\n);\n\nwatch(() => tabItemRefs.value?.length, saveItemsWidth);\n\nonMounted(() => {\n tabbarItemsRef.value?.addEventListener(\"wheel\", handleHorizontalWheel);\n tabbarItemsRef.value?.addEventListener(\"scroll\", handleScroll);\n});\n\nonUnmounted(() => {\n tabbarItemsRef.value?.removeEventListener(\"wheel\", handleHorizontalWheel);\n tabbarItemsRef.value?.removeEventListener(\"scroll\", handleScroll);\n});\n</script>\n<template>\n <div :class=\"classes\" class=\"tabbar-wrapper\">\n <div\n ref=\"indicatorRef\"\n :class=\"['indicator', 'left', arrowShow.left ? 'visible' : 'invisible']\"\n >\n <div title=\"向前\" class=\"arrow-left\" @click=\"handleClickArrow(true)\">\n <IconArrowLeft />\n </div>\n </div>\n <div\n :class=\"['indicator', 'right', arrowShow.right ? 'visible' : 'invisible']\"\n >\n <div title=\"向后\" class=\"arrow-right\" @click=\"handleClickArrow(false)\">\n <IconArrowRight />\n </div>\n </div>\n <div ref=\"tabbarItemsRef\" class=\"tabbar-items\">\n <div\n v-for=\"(item, index) in items\"\n :key=\"index\"\n ref=\"tabItemRefs\"\n :class=\"{ 'tabbar-item-active': item[idKey] === activeId }\"\n class=\"tabbar-item\"\n @click=\"handleChange(item[idKey], index)\"\n >\n <div v-if=\"item.icon\" class=\"tabbar-item-icon\">\n <component :is=\"item.icon\" />\n </div>\n <div v-if=\"item[labelKey]\" class=\"tabbar-item-label\">\n {{ item[labelKey] }}\n </div>\n </div>\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.tabbar-wrapper {\n @apply relative;\n .indicator {\n @apply pointer-events-none absolute top-0 z-10 flex h-full w-20 items-center from-transparent from-10% via-white/80 via-30% to-white to-70% pb-1.5 pt-1;\n\n &.left {\n @apply left-0 justify-start bg-gradient-to-l;\n }\n &.right {\n @apply right-0 justify-end bg-gradient-to-r;\n }\n .arrow-left,\n .arrow-right {\n @apply pointer-events-auto flex h-9 w-10 cursor-pointer select-none items-center justify-center;\n svg {\n font-size: 1.5em;\n }\n }\n }\n\n .tabbar-items {\n @apply flex flex-row items-center overflow-x-auto py-0.5;\n\n &::-webkit-scrollbar-track-piece {\n background-color: #f8f8f8;\n -webkit-border-radius: 2em;\n -moz-border-radius: 2em;\n border-radius: 2em;\n }\n\n &::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: #ddd;\n background-clip: padding-box;\n -webkit-border-radius: 2em;\n -moz-border-radius: 2em;\n border-radius: 2em;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n background-color: #bbb;\n }\n }\n\n .tabbar-item {\n @apply inline-flex h-9 cursor-pointer justify-center gap-2 self-center whitespace-nowrap text-sm transition-all;\n\n .tabbar-item-label,\n .tabbar-item-icon {\n @apply self-center;\n }\n }\n\n &.tabbar-default {\n border-bottom-width: 2px;\n @apply border-b-gray-100;\n\n .tabbar-items {\n margin-bottom: -4px;\n justify-content: flex-start;\n }\n\n .tabbar-item {\n @apply border-b-gray-100 px-5 py-1;\n\n border-bottom-width: 2px;\n\n &.tabbar-item-active {\n @apply border-b-secondary text-secondary;\n }\n }\n }\n\n &.tabbar-pills {\n .tabbar-items {\n @apply gap-1;\n justify-content: flex-start;\n }\n\n .tabbar-item {\n @apply rounded-base px-6 py-1 opacity-70;\n\n &.tabbar-item-active {\n @apply bg-gray-100 opacity-100;\n }\n\n &:hover {\n @apply bg-gray-100;\n }\n }\n }\n\n &.tabbar-outline {\n @apply rounded-base bg-gray-100 px-1 py-0.5;\n\n .tabbar-items {\n @apply justify-start gap-1;\n }\n\n .tabbar-item {\n @apply rounded-sm px-6 py-1 opacity-70;\n\n &.tabbar-item-active {\n @apply bg-white opacity-100 shadow-sm;\n }\n\n &:hover {\n @apply bg-white;\n }\n }\n }\n\n &.tabbar-direction-row {\n .tabbar-items {\n @apply flex-row;\n }\n }\n\n &.tabbar-direction-column {\n .tabbar-items {\n @apply flex-col;\n }\n\n .tabbar-item {\n width: 100%;\n }\n\n &.tabbar-default {\n border-bottom-width: 0;\n @apply border-b-0;\n border-right-width: 2px;\n @apply border-r-gray-100;\n\n .tabbar-items {\n margin-bottom: 0;\n margin-right: -2px;\n }\n\n .tabbar-item {\n border-bottom-width: 0;\n border-right-width: 2px;\n\n &.tabbar-item-active {\n @apply border-r-secondary;\n }\n }\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport type { ComputedRef } from \"vue\";\nimport { computed, inject } from \"vue\";\n\nconst props = defineProps<{\n id?: string;\n label?: string;\n}>();\n\nconst activeId = inject<ComputedRef<string | number | undefined>>(\"activeId\");\n\nconst isActive = computed(() => {\n return activeId?.value === props.id;\n});\n</script>\n<template>\n <div v-if=\"isActive\" class=\"tabs-item-wrapper\">\n <slot />\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport type { ComputedRef } from \"vue\";\nimport { computed, inject } from \"vue\";\n\nconst props = defineProps<{\n id?: string;\n label?: string;\n}>();\n\nconst activeId = inject<ComputedRef<string | number | undefined>>(\"activeId\");\n\nconst isActive = computed(() => {\n return activeId?.value === props.id;\n});\n</script>\n<template>\n <div v-if=\"isActive\" class=\"tabs-item-wrapper\">\n <slot />\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport type { ComputedRef } from \"vue\";\nimport { computed, provide, useSlots } from \"vue\";\nimport { VTabbar } from \"./index\";\nimport type { TabsDirection, TabsType } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n activeId?: number | string;\n type?: TabsType;\n direction?: TabsDirection;\n idKey?: string;\n labelKey?: string;\n }>(),\n {\n activeId: undefined,\n type: \"default\",\n direction: \"row\",\n idKey: \"id\",\n labelKey: \"label\",\n }\n);\n\nprovide<ComputedRef<string | number | undefined>>(\n \"activeId\",\n computed(() => props.activeId)\n);\n\nconst emit = defineEmits<{\n (event: \"update:activeId\", value: number | string): void;\n (event: \"change\", value: number | string): void;\n}>();\n\nconst slots = useSlots();\n\nconst tabItems = computed(() => {\n return slots\n .default?.()\n .map(({ props: slotProps }) => {\n return {\n id: slotProps?.[props.idKey],\n label: slotProps?.[props.labelKey],\n };\n })\n .filter((item) => item.id !== undefined && item.label !== undefined);\n});\n\nconst classes = computed(() => {\n return [`tabs-direction-${props.direction}`];\n});\n\nconst handleChange = (id: string | number) => {\n emit(\"update:activeId\", id);\n emit(\"change\", id);\n};\n</script>\n<template>\n <div :class=\"classes\" class=\"tabs-wrapper\">\n <div class=\"tabs-bar-wrapper\">\n <VTabbar\n :active-id=\"activeId\"\n :direction=\"direction\"\n :items=\"tabItems\"\n :type=\"type\"\n @change=\"handleChange\"\n />\n </div>\n <div class=\"tabs-items-wrapper\">\n <slot />\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.tabs-wrapper {\n @apply flex;\n\n &.tabs-direction-row {\n @apply flex-col;\n\n .tabs-items-wrapper {\n @apply mt-2;\n }\n }\n\n &.tabs-direction-column {\n .tabs-items-wrapper {\n @apply ml-2;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport type { ComputedRef } from \"vue\";\nimport { computed, provide, useSlots } from \"vue\";\nimport { VTabbar } from \"./index\";\nimport type { TabsDirection, TabsType } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n activeId?: number | string;\n type?: TabsType;\n direction?: TabsDirection;\n idKey?: string;\n labelKey?: string;\n }>(),\n {\n activeId: undefined,\n type: \"default\",\n direction: \"row\",\n idKey: \"id\",\n labelKey: \"label\",\n }\n);\n\nprovide<ComputedRef<string | number | undefined>>(\n \"activeId\",\n computed(() => props.activeId)\n);\n\nconst emit = defineEmits<{\n (event: \"update:activeId\", value: number | string): void;\n (event: \"change\", value: number | string): void;\n}>();\n\nconst slots = useSlots();\n\nconst tabItems = computed(() => {\n return slots\n .default?.()\n .map(({ props: slotProps }) => {\n return {\n id: slotProps?.[props.idKey],\n label: slotProps?.[props.labelKey],\n };\n })\n .filter((item) => item.id !== undefined && item.label !== undefined);\n});\n\nconst classes = computed(() => {\n return [`tabs-direction-${props.direction}`];\n});\n\nconst handleChange = (id: string | number) => {\n emit(\"update:activeId\", id);\n emit(\"change\", id);\n};\n</script>\n<template>\n <div :class=\"classes\" class=\"tabs-wrapper\">\n <div class=\"tabs-bar-wrapper\">\n <VTabbar\n :active-id=\"activeId\"\n :direction=\"direction\"\n :items=\"tabItems\"\n :type=\"type\"\n @change=\"handleChange\"\n />\n </div>\n <div class=\"tabs-items-wrapper\">\n <slot />\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.tabs-wrapper {\n @apply flex;\n\n &.tabs-direction-row {\n @apply flex-col;\n\n .tabs-items-wrapper {\n @apply mt-2;\n }\n }\n\n &.tabs-direction-column {\n .tabs-items-wrapper {\n @apply ml-2;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport type { CSSProperties } from \"vue\";\nimport { computed } from \"vue\";\nimport type { TagTheme } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n theme?: TagTheme;\n rounded?: boolean;\n styles?: CSSProperties;\n }>(),\n {\n theme: \"default\",\n rounded: false,\n styles: () => {\n return {};\n },\n }\n);\n\nconst classes = computed(() => {\n return [`tag-${props.theme}`, { \"tag-rounded\": props.rounded }];\n});\n</script>\n<template>\n <div :class=\"classes\" :style=\"styles\" class=\"tag-wrapper\">\n <div v-if=\"$slots.leftIcon\" class=\"tag-left-icon\">\n <slot name=\"leftIcon\" />\n </div>\n <span class=\"tag-content\">\n <slot />\n </span>\n <div v-if=\"$slots.rightIcon\" class=\"tag-right-icon\">\n <slot name=\"rightIcon\" />\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.tag-wrapper {\n @apply box-border inline-flex h-5 w-auto flex-shrink-0 cursor-pointer flex-wrap items-center justify-center rounded-base border border-solid px-1 text-center align-middle text-xs;\n\n &.tag-default {\n border: 1px solid #d9d9d9;\n }\n\n &.tag-primary {\n @apply border-primary bg-primary text-white;\n }\n\n &.tag-secondary {\n @apply border-secondary bg-secondary text-white;\n }\n\n &.tag-danger {\n background: #d71d1d;\n border: 1px solid #d71d1d;\n @apply text-white;\n }\n\n &.tag-rounded {\n @apply rounded-full;\n }\n\n .tag-content {\n @apply px-1;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport type { CSSProperties } from \"vue\";\nimport { computed } from \"vue\";\nimport type { TagTheme } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n theme?: TagTheme;\n rounded?: boolean;\n styles?: CSSProperties;\n }>(),\n {\n theme: \"default\",\n rounded: false,\n styles: () => {\n return {};\n },\n }\n);\n\nconst classes = computed(() => {\n return [`tag-${props.theme}`, { \"tag-rounded\": props.rounded }];\n});\n</script>\n<template>\n <div :class=\"classes\" :style=\"styles\" class=\"tag-wrapper\">\n <div v-if=\"$slots.leftIcon\" class=\"tag-left-icon\">\n <slot name=\"leftIcon\" />\n </div>\n <span class=\"tag-content\">\n <slot />\n </span>\n <div v-if=\"$slots.rightIcon\" class=\"tag-right-icon\">\n <slot name=\"rightIcon\" />\n </div>\n </div>\n</template>\n<style lang=\"scss\">\n.tag-wrapper {\n @apply box-border inline-flex h-5 w-auto flex-shrink-0 cursor-pointer flex-wrap items-center justify-center rounded-base border border-solid px-1 text-center align-middle text-xs;\n\n &.tag-default {\n border: 1px solid #d9d9d9;\n }\n\n &.tag-primary {\n @apply border-primary bg-primary text-white;\n }\n\n &.tag-secondary {\n @apply border-secondary bg-secondary text-white;\n }\n\n &.tag-danger {\n background: #d71d1d;\n border: 1px solid #d71d1d;\n @apply text-white;\n }\n\n &.tag-rounded {\n @apply rounded-full;\n }\n\n .tag-content {\n @apply px-1;\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport {\n markRaw,\n onMounted,\n ref,\n watchEffect,\n type Component,\n type Raw,\n} from \"vue\";\nimport {\n IconCheckboxCircle,\n IconClose,\n IconErrorWarning,\n IconForbidLine,\n IconInformation,\n} from \"@/icons/icons\";\nimport type { ToastType } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n type?: ToastType;\n content?: string;\n duration?: number;\n closable?: boolean;\n frozenOnHover?: boolean;\n count?: 0;\n onClose?: () => void;\n }>(),\n {\n type: \"success\",\n content: \"\",\n duration: 3000,\n closable: true,\n frozenOnHover: true,\n count: 0,\n onClose: undefined,\n }\n);\n\nconst timer = ref();\n\nconst emit = defineEmits<{\n (event: \"close\"): void;\n}>();\n\nconst icons: Record<ToastType, { icon: Raw<Component>; color: string }> = {\n success: {\n icon: markRaw(IconCheckboxCircle),\n color: \"text-green-500\",\n },\n info: {\n icon: markRaw(IconInformation),\n color: \"text-sky-500\",\n },\n warning: {\n icon: markRaw(IconErrorWarning),\n color: \"text-orange-500\",\n },\n error: {\n icon: markRaw(IconForbidLine),\n color: \"text-red-500\",\n },\n};\n\nconst createTimer = () => {\n if (props.duration < 0) return;\n timer.value = setTimeout(() => {\n close();\n }, props.duration);\n};\n\nconst clearTimer = () => {\n clearTimeout(timer.value);\n};\n\nconst close = () => {\n emit(\"close\");\n};\n\nconst handleMouseEnter = () => {\n if (!props.frozenOnHover) {\n return;\n }\n clearTimer();\n};\n\nconst handleMouseLeave = () => {\n if (!props.frozenOnHover) {\n return;\n }\n createTimer();\n};\n\nwatchEffect(() => {\n if (props.count > 0) {\n clearTimer();\n createTimer();\n }\n});\n\nonMounted(createTimer);\n\ndefineExpose({ close });\n</script>\n\n<template>\n <transition\n appear\n enter-active-class=\"transform ease-out duration-300 transition\"\n enter-from-class=\"translate-x-0 -translate-y-2\"\n enter-to-class=\"translate-y-0\"\n leave-active-class=\"transition ease-in duration-100\"\n leave-from-class=\"opacity-100\"\n leave-to-class=\"opacity-0\"\n >\n <div\n class=\"toast-wrapper\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n >\n <div class=\"toast-body\">\n <div class=\"toast-icon\">\n <component :is=\"icons[type].icon\" :class=\"icons[type].color\" />\n </div>\n <div class=\"toast-content\">\n <div class=\"toast-description\">\n <slot>{{ content }}</slot>\n </div>\n </div>\n <div v-if=\"closable\" class=\"toast-control\">\n <IconClose class=\"\" @click=\"close\" />\n </div>\n </div>\n <div v-if=\"count\" class=\"toast-count\">\n <span>{{ count }}</span>\n </div>\n </div>\n </transition>\n</template>\n<style lang=\"scss\">\n.toast-container {\n @apply pointer-events-none fixed left-0 top-0 z-[9999] box-border flex w-full flex-col items-center justify-center gap-3 p-4 transition-all;\n\n .toast-wrapper {\n @apply pointer-events-auto relative inline-block max-w-xs;\n }\n\n .toast-body {\n @apply flex cursor-pointer items-center gap-2 overflow-hidden break-all rounded bg-white px-2.5 py-2 shadow transition-all hover:shadow-md;\n }\n\n .toast-content {\n @apply flex flex-col gap-1 text-sm;\n }\n\n .toast-description {\n @apply text-gray-800;\n }\n\n .toast-control {\n @apply cursor-pointer rounded-full p-0.5 text-gray-600 transition-all hover:bg-gray-100 hover:text-gray-900;\n }\n\n .toast-count {\n @apply absolute -right-1 -top-1 flex h-4 w-4 items-center justify-center rounded-full bg-red-500;\n\n span {\n @apply text-[0.7rem] text-white;\n }\n }\n}\n</style>\n","<script lang=\"ts\" setup>\nimport {\n markRaw,\n onMounted,\n ref,\n watchEffect,\n type Component,\n type Raw,\n} from \"vue\";\nimport {\n IconCheckboxCircle,\n IconClose,\n IconErrorWarning,\n IconForbidLine,\n IconInformation,\n} from \"@/icons/icons\";\nimport type { ToastType } from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n type?: ToastType;\n content?: string;\n duration?: number;\n closable?: boolean;\n frozenOnHover?: boolean;\n count?: 0;\n onClose?: () => void;\n }>(),\n {\n type: \"success\",\n content: \"\",\n duration: 3000,\n closable: true,\n frozenOnHover: true,\n count: 0,\n onClose: undefined,\n }\n);\n\nconst timer = ref();\n\nconst emit = defineEmits<{\n (event: \"close\"): void;\n}>();\n\nconst icons: Record<ToastType, { icon: Raw<Component>; color: string }> = {\n success: {\n icon: markRaw(IconCheckboxCircle),\n color: \"text-green-500\",\n },\n info: {\n icon: markRaw(IconInformation),\n color: \"text-sky-500\",\n },\n warning: {\n icon: markRaw(IconErrorWarning),\n color: \"text-orange-500\",\n },\n error: {\n icon: markRaw(IconForbidLine),\n color: \"text-red-500\",\n },\n};\n\nconst createTimer = () => {\n if (props.duration < 0) return;\n timer.value = setTimeout(() => {\n close();\n }, props.duration);\n};\n\nconst clearTimer = () => {\n clearTimeout(timer.value);\n};\n\nconst close = () => {\n emit(\"close\");\n};\n\nconst handleMouseEnter = () => {\n if (!props.frozenOnHover) {\n return;\n }\n clearTimer();\n};\n\nconst handleMouseLeave = () => {\n if (!props.frozenOnHover) {\n return;\n }\n createTimer();\n};\n\nwatchEffect(() => {\n if (props.count > 0) {\n clearTimer();\n createTimer();\n }\n});\n\nonMounted(createTimer);\n\ndefineExpose({ close });\n</script>\n\n<template>\n <transition\n appear\n enter-active-class=\"transform ease-out duration-300 transition\"\n enter-from-class=\"translate-x-0 -translate-y-2\"\n enter-to-class=\"translate-y-0\"\n leave-active-class=\"transition ease-in duration-100\"\n leave-from-class=\"opacity-100\"\n leave-to-class=\"opacity-0\"\n >\n <div\n class=\"toast-wrapper\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n >\n <div class=\"toast-body\">\n <div class=\"toast-icon\">\n <component :is=\"icons[type].icon\" :class=\"icons[type].color\" />\n </div>\n <div class=\"toast-content\">\n <div class=\"toast-description\">\n <slot>{{ content }}</slot>\n </div>\n </div>\n <div v-if=\"closable\" class=\"toast-control\">\n <IconClose class=\"\" @click=\"close\" />\n </div>\n </div>\n <div v-if=\"count\" class=\"toast-count\">\n <span>{{ count }}</span>\n </div>\n </div>\n </transition>\n</template>\n<style lang=\"scss\">\n.toast-container {\n @apply pointer-events-none fixed left-0 top-0 z-[9999] box-border flex w-full flex-col items-center justify-center gap-3 p-4 transition-all;\n\n .toast-wrapper {\n @apply pointer-events-auto relative inline-block max-w-xs;\n }\n\n .toast-body {\n @apply flex cursor-pointer items-center gap-2 overflow-hidden break-all rounded bg-white px-2.5 py-2 shadow transition-all hover:shadow-md;\n }\n\n .toast-content {\n @apply flex flex-col gap-1 text-sm;\n }\n\n .toast-description {\n @apply text-gray-800;\n }\n\n .toast-control {\n @apply cursor-pointer rounded-full p-0.5 text-gray-600 transition-all hover:bg-gray-100 hover:text-gray-900;\n }\n\n .toast-count {\n @apply absolute -right-1 -top-1 flex h-4 w-4 items-center justify-center rounded-full bg-red-500;\n\n span {\n @apply text-[0.7rem] text-white;\n }\n }\n}\n</style>\n","import { createVNode, render, type Component, type VNode } from \"vue\";\nimport ToastComponent from \"./Toast.vue\";\nimport type { ToastProps } from \"./types\";\n\nexport type ToastApiProps = Omit<ToastProps, \"type\" | \"content\">;\n\nexport interface ToastInstance {\n id: string;\n vnode: VNode;\n}\n\nexport type ToastApi = (\n content: string,\n props?: ToastApiProps\n) => ToastInstance;\n\nexport interface ToastEntry {\n (props: ToastProps): ToastInstance;\n info: ToastApi;\n success: ToastApi;\n error: ToastApi;\n warning: ToastApi;\n}\n\nlet index = 0;\n\nconst instances: ToastInstance[] = [];\n\nconst defaultProps: ToastProps = {\n frozenOnHover: true,\n duration: 3000,\n count: 0,\n};\n\nconst toast: ToastEntry = (userProps: ToastProps) => {\n const id = \"toast-\" + index++;\n\n const props = {\n ...defaultProps,\n ...userProps,\n id,\n };\n\n let container = document.body.querySelector(\".toast-container\");\n if (!container) {\n container = document.createElement(\"div\");\n container.className = \"toast-container\";\n document.body.appendChild(container);\n }\n\n // Grouping toasts\n if (instances.length > 0) {\n const instance = instances.find((item) => {\n const { vnode } = item;\n if (vnode?.props) {\n return (\n vnode.props.content === props.content &&\n vnode.props.type === props.type\n );\n }\n return undefined;\n });\n\n if (instance?.vnode.component?.props) {\n (instance.vnode.component.props.count as number) += 1;\n index = instances.length - 1;\n return instance;\n }\n }\n\n const { vnode, container: hostContainer } = createVNodeComponent(\n ToastComponent,\n props\n );\n\n if (hostContainer.firstElementChild) {\n container.appendChild(hostContainer.firstElementChild);\n }\n\n if (vnode?.props) {\n // close emit\n vnode.props.onClose = () => {\n removeInstance(id);\n render(null, hostContainer);\n };\n }\n\n const instance = {\n id,\n vnode,\n close: () => {\n vnode?.component?.exposed?.close();\n },\n };\n\n instances.push(instance);\n return instance;\n};\n\nfunction createVNodeComponent(\n component: Component,\n props: Record<string, unknown>\n) {\n const vnode = createVNode(component, props);\n const container = document.createElement(\"div\");\n render(vnode, container);\n return { vnode, container };\n}\n\nfunction removeInstance(id: string) {\n const index = instances.findIndex((instance) => instance.id === id);\n if (index >= 0) {\n instances.splice(index, 1);\n\n if (instances.length === 0) {\n const container = document.body.querySelector(\".toast-container\");\n container?.remove();\n }\n }\n}\n\ntoast.success = (content: string, props?: ToastApiProps) =>\n toast({ ...props, type: \"success\", content });\ntoast.info = (content: string, props?: ToastApiProps) =>\n toast({ ...props, type: \"info\", content });\ntoast.warning = (content: string, props?: ToastApiProps) =>\n toast({ ...props, type: \"warning\", content });\ntoast.error = (content: string, props?: ToastApiProps) =>\n toast({ ...props, type: \"error\", content });\n\nexport { toast as Toast };\n"],"x_google_ignoreList":[14,15,22,23,24,25],"mappings":"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"}
|