@halo-dev/components 2.21.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.
Files changed (88) hide show
  1. package/dist/components/alert/Alert.vue.d.ts +13 -16
  2. package/dist/components/alert/index.d.ts +1 -0
  3. package/dist/components/alert/types.d.ts +1 -0
  4. package/dist/components/avatar/Avatar.vue.d.ts +3 -3
  5. package/dist/components/avatar/AvatarGroup.vue.d.ts +5 -4
  6. package/dist/components/avatar/index.d.ts +1 -0
  7. package/dist/components/avatar/{interface.d.ts → types.d.ts} +2 -2
  8. package/dist/components/button/Button.vue.d.ts +18 -25
  9. package/dist/components/button/index.d.ts +1 -0
  10. package/dist/components/button/types.d.ts +2 -0
  11. package/dist/components/card/Card.vue.d.ts +7 -8
  12. package/dist/components/description/Description.vue.d.ts +3 -2
  13. package/dist/components/description/DescriptionItem.vue.d.ts +9 -11
  14. package/dist/components/dialog/Dialog.vue.d.ts +3 -3
  15. package/dist/components/dialog/dialog-manager.d.ts +1 -1
  16. package/dist/components/dialog/index.d.ts +2 -1
  17. package/dist/components/dialog/{interface.d.ts → types.d.ts} +3 -3
  18. package/dist/components/dropdown/DropdownDivider.vue.d.ts +1 -1
  19. package/dist/components/dropdown/DropdownItem.vue.d.ts +12 -14
  20. package/dist/components/dropdown/index.d.ts +1 -3
  21. package/dist/components/empty/Empty.vue.d.ts +8 -10
  22. package/dist/components/entity/Entity.vue.d.ts +6 -6
  23. package/dist/components/entity/EntityContainer.vue.d.ts +3 -2
  24. package/dist/components/entity/EntityField.vue.d.ts +13 -14
  25. package/dist/components/header/PageHeader.vue.d.ts +6 -6
  26. package/dist/components/loading/Loading.vue.d.ts +1 -1
  27. package/dist/components/menu/Menu.vue.d.ts +6 -6
  28. package/dist/components/menu/MenuItem.vue.d.ts +10 -12
  29. package/dist/components/menu/MenuLabel.vue.d.ts +3 -2
  30. package/dist/components/modal/Modal.vue.d.ts +19 -24
  31. package/dist/components/pagination/Pagination.vue.d.ts +5 -13
  32. package/dist/components/space/Space.vue.d.ts +13 -15
  33. package/dist/components/space/index.d.ts +1 -0
  34. package/dist/components/space/types.d.ts +4 -0
  35. package/dist/components/status/StatusDot.vue.d.ts +11 -13
  36. package/dist/components/status/index.d.ts +1 -0
  37. package/dist/components/status/types.d.ts +1 -0
  38. package/dist/components/switch/Switch.vue.d.ts +10 -12
  39. package/dist/components/tabs/TabItem.vue.d.ts +7 -8
  40. package/dist/components/tabs/Tabbar.vue.d.ts +14 -16
  41. package/dist/components/tabs/Tabs.vue.d.ts +15 -19
  42. package/dist/components/tabs/index.d.ts +2 -1
  43. package/dist/components/tabs/types.d.ts +6 -0
  44. package/dist/components/tag/Tag.vue.d.ts +11 -13
  45. package/dist/components/tag/index.d.ts +1 -0
  46. package/dist/components/tag/types.d.ts +1 -0
  47. package/dist/components/toast/Toast.vue.d.ts +15 -21
  48. package/dist/components/toast/index.d.ts +1 -0
  49. package/dist/components/toast/toast-manager.d.ts +1 -1
  50. package/dist/components/toast/{interface.d.ts → types.d.ts} +2 -2
  51. package/dist/components/tooltip/index.d.ts +1 -1
  52. package/dist/icons/icons.d.ts +2 -1
  53. package/dist/index.es.js +5800 -0
  54. package/dist/index.es.js.map +1 -0
  55. package/dist/index.iife.js +2 -0
  56. package/dist/index.iife.js.map +1 -0
  57. package/dist/style.css +3 -1
  58. package/package.json +39 -47
  59. package/dist/components/alert/Alert.stories.d.ts +0 -10
  60. package/dist/components/alert/interface.d.ts +0 -1
  61. package/dist/components/avatar/Avatar.stories.d.ts +0 -8
  62. package/dist/components/avatar/AvatarGroup.stories.d.ts +0 -7
  63. package/dist/components/button/Button.stories.d.ts +0 -9
  64. package/dist/components/button/interface.d.ts +0 -2
  65. package/dist/components/card/Card.stories.d.ts +0 -6
  66. package/dist/components/dialog/Dialog.stories.d.ts +0 -8
  67. package/dist/components/dropdown/Draopdown.stories.d.ts +0 -6
  68. package/dist/components/dropdown/Dropdown.vue.d.ts +0 -22
  69. package/dist/components/dropdown/symbols.d.ts +0 -4
  70. package/dist/components/empty/Empty.stories.d.ts +0 -6
  71. package/dist/components/loading/Loading.stories.d.ts +0 -6
  72. package/dist/components/menu/Menu.stories.d.ts +0 -6
  73. package/dist/components/modal/Modal.stories.d.ts +0 -6
  74. package/dist/components/pagination/Pagination.stories.d.ts +0 -6
  75. package/dist/components/space/Space.stories.d.ts +0 -6
  76. package/dist/components/space/interface.d.ts +0 -4
  77. package/dist/components/status/StatusDot.stories.d.ts +0 -9
  78. package/dist/components/status/interface.d.ts +0 -1
  79. package/dist/components/switch/Switch.stories.d.ts +0 -6
  80. package/dist/components/tabs/Tabbar.stories.d.ts +0 -8
  81. package/dist/components/tabs/Tabs.stories.d.ts +0 -8
  82. package/dist/components/tabs/interface.d.ts +0 -6
  83. package/dist/components/tag/Tag.stories.d.ts +0 -10
  84. package/dist/components/tag/interface.d.ts +0 -1
  85. package/dist/halo-components.es.js +0 -6434
  86. package/dist/halo-components.es.js.map +0 -1
  87. package/dist/halo-components.iife.js +0 -10
  88. package/dist/halo-components.iife.js.map +0 -1
@@ -0,0 +1 @@
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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"}