@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.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.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","z","E","A","T","D","k","R","L","P","B","F","q","W","X","Y","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","I","V","M","U","N","j","J","at","ut","ft","Ct","xt","F","o","a","t","n","r","l","s","d","u","e","f","g","I","b","v","y","k","P","R","S","A","O","C","D","m","i","p","c","w","_","h","z","j","q","x","B","$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","d","g","m","y","x","b","o","f","E","l","u","a","p","C","S","H","h","e","o","i","t","O","s","xe","Ue","Ye","Xe","Ke","r","p","a","u","l","Je","Qe","ne","B","f","T","J","A","ke","Le","Fe","De","Ie","M","P","W","je","w","Ve","se","$e","N","L","D","I","F","v","R","j","V","ve","We","U","Ge","qe","$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.es.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","z","E","A","T","D","k","R","L","P","B","F","q","W","X","Y","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","I","b","v","y","k","P","R","A","D","h","z","j","q","x","B","$attrs","$slots","n","c","h","d","g","m","y","x","b","E","C","S","t","H","B","e","h","O","xe","Ue","Ye","Xe","Ke","Je","Qe","ne","f","T","J","A","ke","Le","Fe","De","Ie","M","P","W","je","w","Ve","se","$e","N","ve","We","U","Ge","qe","$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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"}
|