{"version":3,"file":"BPKJIVAj.js","sources":["../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/util/anchor.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/util/box.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/util/animation.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/component.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/util/easing.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/util/useRender.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/resizeObserver.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/border.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/density.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/elevation.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/rounded.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/tag.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/color.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/variant.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/group.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/components/VDefaultsProvider/VDefaultsProvider.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/size.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/components/VIcon/VIcon.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/intersectionObserver.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/dimensions.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/location.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/components/VProgressLinear/VProgressLinear.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/loader.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/router.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/directives/ripple/index.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/forwardRefs.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/lazy.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/ssrBoot.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/transition.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/components/transitions/createTransition.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/components/transitions/expand-transition.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/components/transitions/index.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/components/VSlideGroup/helpers.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/components/VSlideGroup/VSlideGroup.mjs","../../../../node_modules/@smenaspace/ui-layer/node_modules/vuetify/lib/composables/scopeId.mjs"],"sourcesContent":["// Utilities\nimport { includes } from \"./helpers.mjs\";\nconst block = ['top', 'bottom'];\nconst inline = ['start', 'end', 'left', 'right'];\n/** Parse a raw anchor string into an object */\nexport function parseAnchor(anchor, isRtl) {\n let [side, align] = anchor.split(' ');\n if (!align) {\n align = includes(block, side) ? 'start' : includes(inline, side) ? 'top' : 'center';\n }\n return {\n side: toPhysical(side, isRtl),\n align: toPhysical(align, isRtl)\n };\n}\nexport function toPhysical(str, isRtl) {\n if (str === 'start') return isRtl ? 'right' : 'left';\n if (str === 'end') return isRtl ? 'left' : 'right';\n return str;\n}\nexport function flipSide(anchor) {\n return {\n side: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n }[anchor.side],\n align: anchor.align\n };\n}\nexport function flipAlign(anchor) {\n return {\n side: anchor.side,\n align: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n }[anchor.align]\n };\n}\nexport function flipCorner(anchor) {\n return {\n side: anchor.align,\n align: anchor.side\n };\n}\nexport function getAxis(anchor) {\n return includes(block, anchor.side) ? 'y' : 'x';\n}\n//# sourceMappingURL=anchor.mjs.map","export class Box {\n constructor(_ref) {\n let {\n x,\n y,\n width,\n height\n } = _ref;\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n get top() {\n return this.y;\n }\n get bottom() {\n return this.y + this.height;\n }\n get left() {\n return this.x;\n }\n get right() {\n return this.x + this.width;\n }\n}\nexport function getOverflow(a, b) {\n return {\n x: {\n before: Math.max(0, b.left - a.left),\n after: Math.max(0, a.right - b.right)\n },\n y: {\n before: Math.max(0, b.top - a.top),\n after: Math.max(0, a.bottom - b.bottom)\n }\n };\n}\nexport function getTargetBox(target) {\n if (Array.isArray(target)) {\n return new Box({\n x: target[0],\n y: target[1],\n width: 0,\n height: 0\n });\n } else {\n return target.getBoundingClientRect();\n }\n}\n//# sourceMappingURL=box.mjs.map","// Utilities\nimport { Box } from \"./box.mjs\";\n/** @see https://stackoverflow.com/a/57876601/2074736 */\nexport function nullifyTransforms(el) {\n const rect = el.getBoundingClientRect();\n const style = getComputedStyle(el);\n const tx = style.transform;\n if (tx) {\n let ta, sx, sy, dx, dy;\n if (tx.startsWith('matrix3d(')) {\n ta = tx.slice(9, -1).split(/, /);\n sx = +ta[0];\n sy = +ta[5];\n dx = +ta[12];\n dy = +ta[13];\n } else if (tx.startsWith('matrix(')) {\n ta = tx.slice(7, -1).split(/, /);\n sx = +ta[0];\n sy = +ta[3];\n dx = +ta[4];\n dy = +ta[5];\n } else {\n return new Box(rect);\n }\n const to = style.transformOrigin;\n const x = rect.x - dx - (1 - sx) * parseFloat(to);\n const y = rect.y - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(' ') + 1));\n const w = sx ? rect.width / sx : el.offsetWidth + 1;\n const h = sy ? rect.height / sy : el.offsetHeight + 1;\n return new Box({\n x,\n y,\n width: w,\n height: h\n });\n } else {\n return new Box(rect);\n }\n}\nexport function animate(el, keyframes, options) {\n if (typeof el.animate === 'undefined') return {\n finished: Promise.resolve()\n };\n let animation;\n try {\n animation = el.animate(keyframes, options);\n } catch (err) {\n return {\n finished: Promise.resolve()\n };\n }\n if (typeof animation.finished === 'undefined') {\n animation.finished = new Promise(resolve => {\n animation.onfinish = () => {\n resolve(animation);\n };\n });\n }\n return animation;\n}\n//# sourceMappingURL=animation.mjs.map","// Utilities\nimport { propsFactory } from \"../util/propsFactory.mjs\"; // Types\n// Composables\nexport const makeComponentProps = propsFactory({\n class: [String, Array, Object],\n style: {\n type: [String, Array, Object],\n default: null\n }\n}, 'component');\n//# sourceMappingURL=component.mjs.map","export const standardEasing = 'cubic-bezier(0.4, 0, 0.2, 1)';\nexport const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)'; // Entering\nexport const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)'; // Leaving\n//# sourceMappingURL=easing.mjs.map","// Utilities\nimport { getCurrentInstance } from \"./getCurrentInstance.mjs\"; // Types\nexport function useRender(render) {\n const vm = getCurrentInstance('useRender');\n vm.render = render;\n}\n//# sourceMappingURL=useRender.mjs.map","// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue';\nimport { templateRef } from \"../util/index.mjs\";\nimport { IN_BROWSER } from \"../util/globals.mjs\"; // Types\nexport function useResizeObserver(callback) {\n let box = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'content';\n const resizeRef = templateRef();\n const contentRect = ref();\n if (IN_BROWSER) {\n const observer = new ResizeObserver(entries => {\n callback?.(entries, observer);\n if (!entries.length) return;\n if (box === 'content') {\n contentRect.value = entries[0].contentRect;\n } else {\n contentRect.value = entries[0].target.getBoundingClientRect();\n }\n });\n onBeforeUnmount(() => {\n observer.disconnect();\n });\n watch(() => resizeRef.el, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue);\n contentRect.value = undefined;\n }\n if (newValue) observer.observe(newValue);\n }, {\n flush: 'post'\n });\n }\n return {\n resizeRef,\n contentRect: readonly(contentRect)\n };\n}\n//# sourceMappingURL=resizeObserver.mjs.map","// Utilities\nimport { computed, isRef } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeBorderProps = propsFactory({\n border: [Boolean, Number, String]\n}, 'border');\nexport function useBorder(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const borderClasses = computed(() => {\n const border = isRef(props) ? props.value : props.border;\n const classes = [];\n if (border === true || border === '') {\n classes.push(`${name}--border`);\n } else if (typeof border === 'string' || border === 0) {\n for (const value of String(border).split(' ')) {\n classes.push(`border-${value}`);\n }\n }\n return classes;\n });\n return {\n borderClasses\n };\n}\n//# sourceMappingURL=border.mjs.map","// Utilities\nimport { computed } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\nconst allowedDensities = [null, 'default', 'comfortable', 'compact'];\n\n// typeof allowedDensities[number] evalutes to any\n// when generating api types for whatever reason.\n\n// Composables\nexport const makeDensityProps = propsFactory({\n density: {\n type: String,\n default: 'default',\n validator: v => allowedDensities.includes(v)\n }\n}, 'density');\nexport function useDensity(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const densityClasses = computed(() => {\n return `${name}--density-${props.density}`;\n });\n return {\n densityClasses\n };\n}\n//# sourceMappingURL=density.mjs.map","// Utilities\nimport { computed, isRef } from 'vue';\nimport { propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeElevationProps = propsFactory({\n elevation: {\n type: [Number, String],\n validator(v) {\n const value = parseInt(v);\n return !isNaN(value) && value >= 0 &&\n // Material Design has a maximum elevation of 24\n // https://material.io/design/environment/elevation.html#default-elevations\n value <= 24;\n }\n }\n}, 'elevation');\nexport function useElevation(props) {\n const elevationClasses = computed(() => {\n const elevation = isRef(props) ? props.value : props.elevation;\n const classes = [];\n if (elevation == null) return classes;\n classes.push(`elevation-${elevation}`);\n return classes;\n });\n return {\n elevationClasses\n };\n}\n//# sourceMappingURL=elevation.mjs.map","// Utilities\nimport { computed, isRef } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeRoundedProps = propsFactory({\n rounded: {\n type: [Boolean, Number, String],\n default: undefined\n },\n tile: Boolean\n}, 'rounded');\nexport function useRounded(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const roundedClasses = computed(() => {\n const rounded = isRef(props) ? props.value : props.rounded;\n const tile = isRef(props) ? props.value : props.tile;\n const classes = [];\n if (rounded === true || rounded === '') {\n classes.push(`${name}--rounded`);\n } else if (typeof rounded === 'string' || rounded === 0) {\n for (const value of String(rounded).split(' ')) {\n classes.push(`rounded-${value}`);\n }\n } else if (tile || rounded === false) {\n classes.push('rounded-0');\n }\n return classes;\n });\n return {\n roundedClasses\n };\n}\n//# sourceMappingURL=rounded.mjs.map","// Utilities\nimport { propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeTagProps = propsFactory({\n tag: {\n type: String,\n default: 'div'\n }\n}, 'tag');\n//# sourceMappingURL=tag.mjs.map","// Utilities\nimport { computed, isRef } from 'vue';\nimport { destructComputed, getForeground, isCssColor, isParsableColor, parseColor } from \"../util/index.mjs\"; // Types\n// Composables\nexport function useColor(colors) {\n return destructComputed(() => {\n const classes = [];\n const styles = {};\n if (colors.value.background) {\n if (isCssColor(colors.value.background)) {\n styles.backgroundColor = colors.value.background;\n if (!colors.value.text && isParsableColor(colors.value.background)) {\n const backgroundColor = parseColor(colors.value.background);\n if (backgroundColor.a == null || backgroundColor.a === 1) {\n const textColor = getForeground(backgroundColor);\n styles.color = textColor;\n styles.caretColor = textColor;\n }\n }\n } else {\n classes.push(`bg-${colors.value.background}`);\n }\n }\n if (colors.value.text) {\n if (isCssColor(colors.value.text)) {\n styles.color = colors.value.text;\n styles.caretColor = colors.value.text;\n } else {\n classes.push(`text-${colors.value.text}`);\n }\n }\n return {\n colorClasses: classes,\n colorStyles: styles\n };\n });\n}\nexport function useTextColor(props, name) {\n const colors = computed(() => ({\n text: isRef(props) ? props.value : name ? props[name] : null\n }));\n const {\n colorClasses: textColorClasses,\n colorStyles: textColorStyles\n } = useColor(colors);\n return {\n textColorClasses,\n textColorStyles\n };\n}\nexport function useBackgroundColor(props, name) {\n const colors = computed(() => ({\n background: isRef(props) ? props.value : name ? props[name] : null\n }));\n const {\n colorClasses: backgroundColorClasses,\n colorStyles: backgroundColorStyles\n } = useColor(colors);\n return {\n backgroundColorClasses,\n backgroundColorStyles\n };\n}\n//# sourceMappingURL=color.mjs.map","import { createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Composables\nimport { useColor } from \"./color.mjs\"; // Utilities\nimport { computed, unref } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\nexport const allowedVariants = ['elevated', 'flat', 'tonal', 'outlined', 'text', 'plain'];\nexport function genOverlays(isClickable, name) {\n return _createVNode(_Fragment, null, [isClickable && _createVNode(\"span\", {\n \"key\": \"overlay\",\n \"class\": `${name}__overlay`\n }, null), _createVNode(\"span\", {\n \"key\": \"underlay\",\n \"class\": `${name}__underlay`\n }, null)]);\n}\nexport const makeVariantProps = propsFactory({\n color: String,\n variant: {\n type: String,\n default: 'elevated',\n validator: v => allowedVariants.includes(v)\n }\n}, 'variant');\nexport function useVariant(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const variantClasses = computed(() => {\n const {\n variant\n } = unref(props);\n return `${name}--variant-${variant}`;\n });\n const {\n colorClasses,\n colorStyles\n } = useColor(computed(() => {\n const {\n variant,\n color\n } = unref(props);\n return {\n [['elevated', 'flat'].includes(variant) ? 'background' : 'text']: color\n };\n }));\n return {\n colorClasses,\n colorStyles,\n variantClasses\n };\n}\n//# sourceMappingURL=variant.mjs.map","// Composables\nimport { useProxiedModel } from \"./proxiedModel.mjs\"; // Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, onUpdated, provide, reactive, toRef, unref, watch } from 'vue';\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from \"../util/index.mjs\"; // Types\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: null,\n default: undefined\n },\n multiple: Boolean,\n mandatory: [Boolean, String],\n max: Number,\n selectedClass: String,\n disabled: Boolean\n}, 'group');\nexport const makeGroupItemProps = propsFactory({\n value: null,\n disabled: Boolean,\n selectedClass: String\n}, 'group-item');\n\n// Composables\n\nexport function useGroupItem(props, injectKey) {\n let required = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n const vm = getCurrentInstance('useGroupItem');\n if (!vm) {\n throw new Error('[Vuetify] useGroupItem composable must be used inside a component setup function');\n }\n const id = getUid();\n provide(Symbol.for(`${injectKey.description}:id`), id);\n const group = inject(injectKey, null);\n if (!group) {\n if (!required) return group;\n throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`);\n }\n const value = toRef(props, 'value');\n const disabled = computed(() => !!(group.disabled.value || props.disabled));\n group.register({\n id,\n value,\n disabled\n }, vm);\n onBeforeUnmount(() => {\n group.unregister(id);\n });\n const isSelected = computed(() => {\n return group.isSelected(id);\n });\n const isFirst = computed(() => {\n return group.items.value[0].id === id;\n });\n const isLast = computed(() => {\n return group.items.value[group.items.value.length - 1].id === id;\n });\n const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass]);\n watch(isSelected, value => {\n vm.emit('group:selected', {\n value\n });\n }, {\n flush: 'sync'\n });\n return {\n id,\n isSelected,\n isFirst,\n isLast,\n toggle: () => group.select(id, !isSelected.value),\n select: value => group.select(id, value),\n selectedClass,\n value,\n disabled,\n group\n };\n}\nexport function useGroup(props, injectKey) {\n let isUnmounted = false;\n const items = reactive([]);\n const selected = useProxiedModel(props, 'modelValue', [], v => {\n if (v == null) return [];\n return getIds(items, wrapInArray(v));\n }, v => {\n const arr = getValues(items, v);\n return props.multiple ? arr : arr[0];\n });\n const groupVm = getCurrentInstance('useGroup');\n function register(item, vm) {\n // Is there a better way to fix this typing?\n const unwrapped = item;\n const key = Symbol.for(`${injectKey.description}:id`);\n const children = findChildrenWithProvide(key, groupVm?.vnode);\n const index = children.indexOf(vm);\n if (unref(unwrapped.value) == null) {\n unwrapped.value = index;\n unwrapped.useIndexAsValue = true;\n }\n if (index > -1) {\n items.splice(index, 0, unwrapped);\n } else {\n items.push(unwrapped);\n }\n }\n function unregister(id) {\n if (isUnmounted) return;\n\n // TODO: re-evaluate this line's importance in the future\n // should we only modify the model if mandatory is set.\n // selected.value = selected.value.filter(v => v !== id)\n\n forceMandatoryValue();\n const index = items.findIndex(item => item.id === id);\n items.splice(index, 1);\n }\n\n // If mandatory and nothing is selected, then select first non-disabled item\n function forceMandatoryValue() {\n const item = items.find(item => !item.disabled);\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id];\n }\n }\n onMounted(() => {\n forceMandatoryValue();\n });\n onBeforeUnmount(() => {\n isUnmounted = true;\n });\n onUpdated(() => {\n // #19655 update the items that use the index as the value.\n for (let i = 0; i < items.length; i++) {\n if (items[i].useIndexAsValue) {\n items[i].value = i;\n }\n }\n });\n function select(id, value) {\n const item = items.find(item => item.id === id);\n if (value && item?.disabled) return;\n if (props.multiple) {\n const internalValue = selected.value.slice();\n const index = internalValue.findIndex(v => v === id);\n const isSelected = ~index;\n value = value ?? !isSelected;\n\n // We can't remove value if group is\n // mandatory, value already exists,\n // and it is the only value\n if (isSelected && props.mandatory && internalValue.length <= 1) return;\n\n // We can't add value if it would\n // cause max limit to be exceeded\n if (!isSelected && props.max != null && internalValue.length + 1 > props.max) return;\n if (index < 0 && value) internalValue.push(id);else if (index >= 0 && !value) internalValue.splice(index, 1);\n selected.value = internalValue;\n } else {\n const isSelected = selected.value.includes(id);\n if (props.mandatory && isSelected) return;\n selected.value = value ?? !isSelected ? [id] : [];\n }\n }\n function step(offset) {\n // getting an offset from selected value obviously won't work with multiple values\n if (props.multiple) consoleWarn('This method is not supported when using \"multiple\" prop');\n if (!selected.value.length) {\n const item = items.find(item => !item.disabled);\n item && (selected.value = [item.id]);\n } else {\n const currentId = selected.value[0];\n const currentIndex = items.findIndex(i => i.id === currentId);\n let newIndex = (currentIndex + offset) % items.length;\n let newItem = items[newIndex];\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length;\n newItem = items[newIndex];\n }\n if (newItem.disabled) return;\n selected.value = [items[newIndex].id];\n }\n }\n const state = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: id => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: value => getItemIndex(items, value)\n };\n provide(injectKey, state);\n return state;\n}\nfunction getItemIndex(items, value) {\n const ids = getIds(items, [value]);\n if (!ids.length) return -1;\n return items.findIndex(item => item.id === ids[0]);\n}\nfunction getIds(items, modelValue) {\n const ids = [];\n modelValue.forEach(value => {\n const item = items.find(item => deepEqual(value, item.value));\n const itemByIndex = items[value];\n if (item?.value != null) {\n ids.push(item.id);\n } else if (itemByIndex != null) {\n ids.push(itemByIndex.id);\n }\n });\n return ids;\n}\nfunction getValues(items, ids) {\n const values = [];\n ids.forEach(id => {\n const itemIndex = items.findIndex(item => item.id === id);\n if (~itemIndex) {\n const item = items[itemIndex];\n values.push(item.value != null ? item.value : itemIndex);\n }\n });\n return values;\n}\n//# sourceMappingURL=group.mjs.map","// Composables\nimport { provideDefaults } from \"../../composables/defaults.mjs\"; // Utilities\nimport { toRefs } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeVDefaultsProviderProps = propsFactory({\n defaults: Object,\n disabled: Boolean,\n reset: [Number, String],\n root: [Boolean, String],\n scoped: Boolean\n}, 'VDefaultsProvider');\nexport const VDefaultsProvider = genericComponent(false)({\n name: 'VDefaultsProvider',\n props: makeVDefaultsProviderProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n defaults,\n disabled,\n reset,\n root,\n scoped\n } = toRefs(props);\n provideDefaults(defaults, {\n reset,\n root,\n scoped,\n disabled\n });\n return () => slots.default?.();\n }\n});\n//# sourceMappingURL=VDefaultsProvider.mjs.map","// Utilities\nimport { convertToUnit, destructComputed, getCurrentInstanceName, includes, propsFactory } from \"../util/index.mjs\"; // Types\nconst predefinedSizes = ['x-small', 'small', 'default', 'large', 'x-large'];\n// Composables\nexport const makeSizeProps = propsFactory({\n size: {\n type: [String, Number],\n default: 'default'\n }\n}, 'size');\nexport function useSize(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n return destructComputed(() => {\n let sizeClasses;\n let sizeStyles;\n if (includes(predefinedSizes, props.size)) {\n sizeClasses = `${name}--size-${props.size}`;\n } else if (props.size) {\n sizeStyles = {\n width: convertToUnit(props.size),\n height: convertToUnit(props.size)\n };\n }\n return {\n sizeClasses,\n sizeStyles\n };\n });\n}\n//# sourceMappingURL=size.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VIcon.css\";\n\n// Composables\nimport { useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { IconValue, useIcon } from \"../../composables/icons.mjs\";\nimport { makeSizeProps, useSize } from \"../../composables/size.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, ref, Text, toRef } from 'vue';\nimport { convertToUnit, flattenFragments, genericComponent, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVIconProps = propsFactory({\n color: String,\n disabled: Boolean,\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'i'\n }),\n ...makeThemeProps()\n}, 'VIcon');\nexport const VIcon = genericComponent()({\n name: 'VIcon',\n props: makeVIconProps(),\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const slotIcon = ref();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n iconData\n } = useIcon(computed(() => slotIcon.value || props.icon));\n const {\n sizeClasses\n } = useSize(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(toRef(props, 'color'));\n useRender(() => {\n const slotValue = slots.default?.();\n if (slotValue) {\n slotIcon.value = flattenFragments(slotValue).filter(node => node.type === Text && node.children && typeof node.children === 'string')[0]?.children;\n }\n const hasClick = !!(attrs.onClick || attrs.onClickOnce);\n return _createVNode(iconData.value.component, {\n \"tag\": props.tag,\n \"icon\": iconData.value.icon,\n \"class\": ['v-icon', 'notranslate', themeClasses.value, sizeClasses.value, textColorClasses.value, {\n 'v-icon--clickable': hasClick,\n 'v-icon--disabled': props.disabled,\n 'v-icon--start': props.start,\n 'v-icon--end': props.end\n }, props.class],\n \"style\": [!sizeClasses.value ? {\n fontSize: convertToUnit(props.size),\n height: convertToUnit(props.size),\n width: convertToUnit(props.size)\n } : undefined, textColorStyles.value, props.style],\n \"role\": hasClick ? 'button' : undefined,\n \"aria-hidden\": !hasClick,\n \"tabindex\": hasClick ? props.disabled ? -1 : 0 : undefined\n }, {\n default: () => [slotValue]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VIcon.mjs.map","// Utilities\nimport { onBeforeUnmount, ref, shallowRef, watch } from 'vue';\nimport { SUPPORTS_INTERSECTION } from \"../util/index.mjs\";\nexport function useIntersectionObserver(callback, options) {\n const intersectionRef = ref();\n const isIntersecting = shallowRef(false);\n if (SUPPORTS_INTERSECTION) {\n const observer = new IntersectionObserver(entries => {\n callback?.(entries, observer);\n isIntersecting.value = !!entries.find(entry => entry.isIntersecting);\n }, options);\n onBeforeUnmount(() => {\n observer.disconnect();\n });\n watch(intersectionRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue);\n isIntersecting.value = false;\n }\n if (newValue) observer.observe(newValue);\n }, {\n flush: 'post'\n });\n }\n return {\n intersectionRef,\n isIntersecting\n };\n}\n//# sourceMappingURL=intersectionObserver.mjs.map","// Utilities\nimport { computed } from 'vue';\nimport { convertToUnit, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeDimensionProps = propsFactory({\n height: [Number, String],\n maxHeight: [Number, String],\n maxWidth: [Number, String],\n minHeight: [Number, String],\n minWidth: [Number, String],\n width: [Number, String]\n}, 'dimension');\nexport function useDimension(props) {\n const dimensionStyles = computed(() => {\n const styles = {};\n const height = convertToUnit(props.height);\n const maxHeight = convertToUnit(props.maxHeight);\n const maxWidth = convertToUnit(props.maxWidth);\n const minHeight = convertToUnit(props.minHeight);\n const minWidth = convertToUnit(props.minWidth);\n const width = convertToUnit(props.width);\n if (height != null) styles.height = height;\n if (maxHeight != null) styles.maxHeight = maxHeight;\n if (maxWidth != null) styles.maxWidth = maxWidth;\n if (minHeight != null) styles.minHeight = minHeight;\n if (minWidth != null) styles.minWidth = minWidth;\n if (width != null) styles.width = width;\n return styles;\n });\n return {\n dimensionStyles\n };\n}\n//# sourceMappingURL=dimensions.mjs.map","// Composables\nimport { useRtl } from \"./locale.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { parseAnchor, propsFactory } from \"../util/index.mjs\"; // Types\nconst oppositeMap = {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left'\n};\nexport const makeLocationProps = propsFactory({\n location: String\n}, 'location');\nexport function useLocation(props) {\n let opposite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n let offset = arguments.length > 2 ? arguments[2] : undefined;\n const {\n isRtl\n } = useRtl();\n const locationStyles = computed(() => {\n if (!props.location) return {};\n const {\n side,\n align\n } = parseAnchor(props.location.split(' ').length > 1 ? props.location : `${props.location} center`, isRtl.value);\n function getOffset(side) {\n return offset ? offset(side) : 0;\n }\n const styles = {};\n if (side !== 'center') {\n if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;else styles[side] = 0;\n }\n if (align !== 'center') {\n if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;else styles[align] = 0;\n } else {\n if (side === 'center') styles.top = styles.left = '50%';else {\n styles[{\n top: 'left',\n bottom: 'left',\n left: 'top',\n right: 'top'\n }[side]] = '50%';\n }\n styles.transform = {\n top: 'translateX(-50%)',\n bottom: 'translateX(-50%)',\n left: 'translateY(-50%)',\n right: 'translateY(-50%)',\n center: 'translate(-50%, -50%)'\n }[side];\n }\n return styles;\n });\n return {\n locationStyles\n };\n}\n//# sourceMappingURL=location.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VProgressLinear.css\";\n\n// Composables\nimport { useBackgroundColor, useTextColor } from \"../../composables/color.mjs\";\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { useIntersectionObserver } from \"../../composables/intersectionObserver.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.mjs\"; // Utilities\nimport { computed, Transition } from 'vue';\nimport { clamp, convertToUnit, genericComponent, IN_BROWSER, propsFactory, useRender } from \"../../util/index.mjs\";\nexport const makeVProgressLinearProps = propsFactory({\n absolute: Boolean,\n active: {\n type: Boolean,\n default: true\n },\n bgColor: String,\n bgOpacity: [Number, String],\n bufferValue: {\n type: [Number, String],\n default: 0\n },\n bufferColor: String,\n bufferOpacity: [Number, String],\n clickable: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 4\n },\n indeterminate: Boolean,\n max: {\n type: [Number, String],\n default: 100\n },\n modelValue: {\n type: [Number, String],\n default: 0\n },\n opacity: [Number, String],\n reverse: Boolean,\n stream: Boolean,\n striped: Boolean,\n roundedBar: Boolean,\n ...makeComponentProps(),\n ...makeLocationProps({\n location: 'top'\n }),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VProgressLinear');\nexport const VProgressLinear = genericComponent()({\n name: 'VProgressLinear',\n props: makeVProgressLinearProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const progress = useProxiedModel(props, 'modelValue');\n const {\n isRtl,\n rtlClasses\n } = useRtl();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(props, 'color');\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(computed(() => props.bgColor || props.color));\n const {\n backgroundColorClasses: bufferColorClasses,\n backgroundColorStyles: bufferColorStyles\n } = useBackgroundColor(computed(() => props.bufferColor || props.bgColor || props.color));\n const {\n backgroundColorClasses: barColorClasses,\n backgroundColorStyles: barColorStyles\n } = useBackgroundColor(props, 'color');\n const {\n roundedClasses\n } = useRounded(props);\n const {\n intersectionRef,\n isIntersecting\n } = useIntersectionObserver();\n const max = computed(() => parseFloat(props.max));\n const height = computed(() => parseFloat(props.height));\n const normalizedBuffer = computed(() => clamp(parseFloat(props.bufferValue) / max.value * 100, 0, 100));\n const normalizedValue = computed(() => clamp(parseFloat(progress.value) / max.value * 100, 0, 100));\n const isReversed = computed(() => isRtl.value !== props.reverse);\n const transition = computed(() => props.indeterminate ? 'fade-transition' : 'slide-x-transition');\n const isForcedColorsModeActive = IN_BROWSER && window.matchMedia?.('(forced-colors: active)').matches;\n function handleClick(e) {\n if (!intersectionRef.value) return;\n const {\n left,\n right,\n width\n } = intersectionRef.value.getBoundingClientRect();\n const value = isReversed.value ? width - e.clientX + (right - width) : e.clientX - left;\n progress.value = Math.round(value / width * max.value);\n }\n useRender(() => _createVNode(props.tag, {\n \"ref\": intersectionRef,\n \"class\": ['v-progress-linear', {\n 'v-progress-linear--absolute': props.absolute,\n 'v-progress-linear--active': props.active && isIntersecting.value,\n 'v-progress-linear--reverse': isReversed.value,\n 'v-progress-linear--rounded': props.rounded,\n 'v-progress-linear--rounded-bar': props.roundedBar,\n 'v-progress-linear--striped': props.striped\n }, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class],\n \"style\": [{\n bottom: props.location === 'bottom' ? 0 : undefined,\n top: props.location === 'top' ? 0 : undefined,\n height: props.active ? convertToUnit(height.value) : 0,\n '--v-progress-linear-height': convertToUnit(height.value),\n ...(props.absolute ? locationStyles.value : {})\n }, props.style],\n \"role\": \"progressbar\",\n \"aria-hidden\": props.active ? 'false' : 'true',\n \"aria-valuemin\": \"0\",\n \"aria-valuemax\": props.max,\n \"aria-valuenow\": props.indeterminate ? undefined : normalizedValue.value,\n \"onClick\": props.clickable && handleClick\n }, {\n default: () => [props.stream && _createVNode(\"div\", {\n \"key\": \"stream\",\n \"class\": ['v-progress-linear__stream', textColorClasses.value],\n \"style\": {\n ...textColorStyles.value,\n [isReversed.value ? 'left' : 'right']: convertToUnit(-height.value),\n borderTop: `${convertToUnit(height.value / 2)} dotted`,\n opacity: parseFloat(props.bufferOpacity),\n top: `calc(50% - ${convertToUnit(height.value / 4)})`,\n width: convertToUnit(100 - normalizedBuffer.value, '%'),\n '--v-progress-linear-stream-to': convertToUnit(height.value * (isReversed.value ? 1 : -1))\n }\n }, null), _createVNode(\"div\", {\n \"class\": ['v-progress-linear__background', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined],\n \"style\": [backgroundColorStyles.value, {\n opacity: parseFloat(props.bgOpacity),\n width: props.stream ? 0 : undefined\n }]\n }, null), _createVNode(\"div\", {\n \"class\": ['v-progress-linear__buffer', !isForcedColorsModeActive ? bufferColorClasses.value : undefined],\n \"style\": [bufferColorStyles.value, {\n opacity: parseFloat(props.bufferOpacity),\n width: convertToUnit(normalizedBuffer.value, '%')\n }]\n }, null), _createVNode(Transition, {\n \"name\": transition.value\n }, {\n default: () => [!props.indeterminate ? _createVNode(\"div\", {\n \"class\": ['v-progress-linear__determinate', !isForcedColorsModeActive ? barColorClasses.value : undefined],\n \"style\": [barColorStyles.value, {\n width: convertToUnit(normalizedValue.value, '%')\n }]\n }, null) : _createVNode(\"div\", {\n \"class\": \"v-progress-linear__indeterminate\"\n }, [['long', 'short'].map(bar => _createVNode(\"div\", {\n \"key\": bar,\n \"class\": ['v-progress-linear__indeterminate', bar, !isForcedColorsModeActive ? barColorClasses.value : undefined],\n \"style\": barColorStyles.value\n }, null))])]\n }), slots.default && _createVNode(\"div\", {\n \"class\": \"v-progress-linear__content\"\n }, [slots.default({\n value: normalizedValue.value,\n buffer: normalizedBuffer.value\n })])]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VProgressLinear.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Components\nimport { VProgressLinear } from \"../components/VProgressLinear/index.mjs\"; // Utilities\nimport { computed } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.mjs\"; // Types\n// Composables\nexport const makeLoaderProps = propsFactory({\n loading: [Boolean, String]\n}, 'loader');\nexport function useLoader(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const loaderClasses = computed(() => ({\n [`${name}--loading`]: props.loading\n }));\n return {\n loaderClasses\n };\n}\nexport function LoaderSlot(props, _ref) {\n let {\n slots\n } = _ref;\n return _createVNode(\"div\", {\n \"class\": `${props.name}__loader`\n }, [slots.default?.({\n color: props.color,\n isActive: props.active\n }) || _createVNode(VProgressLinear, {\n \"absolute\": props.absolute,\n \"active\": props.active,\n \"color\": props.color,\n \"height\": \"2\",\n \"indeterminate\": true\n }, null)]);\n}\n//# sourceMappingURL=loader.mjs.map","// Utilities\nimport { computed, nextTick, onScopeDispose, resolveDynamicComponent, toRef } from 'vue';\nimport { deepEqual, getCurrentInstance, hasEvent, IN_BROWSER, propsFactory } from \"../util/index.mjs\"; // Types\nexport function useRoute() {\n const vm = getCurrentInstance('useRoute');\n return computed(() => vm?.proxy?.$route);\n}\nexport function useRouter() {\n return getCurrentInstance('useRouter')?.proxy?.$router;\n}\nexport function useLink(props, attrs) {\n const RouterLink = resolveDynamicComponent('RouterLink');\n const isLink = computed(() => !!(props.href || props.to));\n const isClickable = computed(() => {\n return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click');\n });\n if (typeof RouterLink === 'string' || !('useLink' in RouterLink)) {\n return {\n isLink,\n isClickable,\n href: toRef(props, 'href')\n };\n }\n // vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined\n const linkProps = computed(() => ({\n ...props,\n to: toRef(() => props.to || '')\n }));\n const routerLink = RouterLink.useLink(linkProps.value);\n // Actual link needs to be undefined when to prop is not used\n const link = computed(() => props.to ? routerLink : undefined);\n const route = useRoute();\n return {\n isLink,\n isClickable,\n route: link.value?.route,\n navigate: link.value?.navigate,\n isActive: computed(() => {\n if (!link.value) return false;\n if (!props.exact) return link.value.isActive?.value ?? false;\n if (!route.value) return link.value.isExactActive?.value ?? false;\n return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query);\n }),\n href: computed(() => props.to ? link.value?.route.value.href : props.href)\n };\n}\nexport const makeRouterProps = propsFactory({\n href: String,\n replace: Boolean,\n to: [String, Object],\n exact: Boolean\n}, 'router');\nlet inTransition = false;\nexport function useBackButton(router, cb) {\n let popped = false;\n let removeBefore;\n let removeAfter;\n if (IN_BROWSER) {\n nextTick(() => {\n window.addEventListener('popstate', onPopstate);\n removeBefore = router?.beforeEach((to, from, next) => {\n if (!inTransition) {\n setTimeout(() => popped ? cb(next) : next());\n } else {\n popped ? cb(next) : next();\n }\n inTransition = true;\n });\n removeAfter = router?.afterEach(() => {\n inTransition = false;\n });\n });\n onScopeDispose(() => {\n window.removeEventListener('popstate', onPopstate);\n removeBefore?.();\n removeAfter?.();\n });\n }\n function onPopstate(e) {\n if (e.state?.replaced) return;\n popped = true;\n setTimeout(() => popped = false);\n }\n}\n//# sourceMappingURL=router.mjs.map","// Styles\nimport \"./VRipple.css\";\n\n// Utilities\nimport { isObject, keyCodes } from \"../../util/index.mjs\"; // Types\nconst stopSymbol = Symbol('rippleStop');\nconst DELAY_RIPPLE = 80;\nfunction transform(el, value) {\n el.style.transform = value;\n el.style.webkitTransform = value;\n}\nfunction isTouchEvent(e) {\n return e.constructor.name === 'TouchEvent';\n}\nfunction isKeyboardEvent(e) {\n return e.constructor.name === 'KeyboardEvent';\n}\nconst calculate = function (e, el) {\n let value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let localX = 0;\n let localY = 0;\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect();\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e;\n localX = target.clientX - offset.left;\n localY = target.clientY - offset.top;\n }\n let radius = 0;\n let scale = 0.3;\n if (el._ripple?.circle) {\n scale = 0.15;\n radius = el.clientWidth / 2;\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4;\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2;\n }\n const centerX = `${(el.clientWidth - radius * 2) / 2}px`;\n const centerY = `${(el.clientHeight - radius * 2) / 2}px`;\n const x = value.center ? centerX : `${localX - radius}px`;\n const y = value.center ? centerY : `${localY - radius}px`;\n return {\n radius,\n scale,\n x,\n y,\n centerX,\n centerY\n };\n};\nconst ripples = {\n /* eslint-disable max-statements */\n show(e, el) {\n let value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (!el?._ripple?.enabled) {\n return;\n }\n const container = document.createElement('span');\n const animation = document.createElement('span');\n container.appendChild(animation);\n container.className = 'v-ripple__container';\n if (value.class) {\n container.className += ` ${value.class}`;\n }\n const {\n radius,\n scale,\n x,\n y,\n centerX,\n centerY\n } = calculate(e, el, value);\n const size = `${radius * 2}px`;\n animation.className = 'v-ripple__animation';\n animation.style.width = size;\n animation.style.height = size;\n el.appendChild(container);\n const computed = window.getComputedStyle(el);\n if (computed && computed.position === 'static') {\n el.style.position = 'relative';\n el.dataset.previousPosition = 'static';\n }\n animation.classList.add('v-ripple__animation--enter');\n animation.classList.add('v-ripple__animation--visible');\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`);\n animation.dataset.activated = String(performance.now());\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter');\n animation.classList.add('v-ripple__animation--in');\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);\n }, 0);\n },\n hide(el) {\n if (!el?._ripple?.enabled) return;\n const ripples = el.getElementsByClassName('v-ripple__animation');\n if (ripples.length === 0) return;\n const animation = ripples[ripples.length - 1];\n if (animation.dataset.isHiding) return;else animation.dataset.isHiding = 'true';\n const diff = performance.now() - Number(animation.dataset.activated);\n const delay = Math.max(250 - diff, 0);\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in');\n animation.classList.add('v-ripple__animation--out');\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation');\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition;\n delete el.dataset.previousPosition;\n }\n if (animation.parentNode?.parentNode === el) el.removeChild(animation.parentNode);\n }, 300);\n }, delay);\n }\n};\nfunction isRippleEnabled(value) {\n return typeof value === 'undefined' || !!value;\n}\nfunction rippleShow(e) {\n const value = {};\n const element = e.currentTarget;\n if (!element?._ripple || element._ripple.touched || e[stopSymbol]) return;\n\n // Don't allow the event to trigger ripples on any other elements\n e[stopSymbol] = true;\n if (isTouchEvent(e)) {\n element._ripple.touched = true;\n element._ripple.isTouch = true;\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return;\n }\n value.center = element._ripple.centered || isKeyboardEvent(e);\n if (element._ripple.class) {\n value.class = element._ripple.class;\n }\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return;\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value);\n };\n element._ripple.showTimer = window.setTimeout(() => {\n if (element?._ripple?.showTimerCommit) {\n element._ripple.showTimerCommit();\n element._ripple.showTimerCommit = null;\n }\n }, DELAY_RIPPLE);\n } else {\n ripples.show(e, element, value);\n }\n}\nfunction rippleStop(e) {\n e[stopSymbol] = true;\n}\nfunction rippleHide(e) {\n const element = e.currentTarget;\n if (!element?._ripple) return;\n window.clearTimeout(element._ripple.showTimer);\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit();\n element._ripple.showTimerCommit = null;\n\n // re-queue ripple hiding\n element._ripple.showTimer = window.setTimeout(() => {\n rippleHide(e);\n });\n return;\n }\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false;\n }\n });\n ripples.hide(element);\n}\nfunction rippleCancelShow(e) {\n const element = e.currentTarget;\n if (!element?._ripple) return;\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null;\n }\n window.clearTimeout(element._ripple.showTimer);\n}\nlet keyboardRipple = false;\nfunction keyboardRippleShow(e) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true;\n rippleShow(e);\n }\n}\nfunction keyboardRippleHide(e) {\n keyboardRipple = false;\n rippleHide(e);\n}\nfunction focusRippleHide(e) {\n if (keyboardRipple) {\n keyboardRipple = false;\n rippleHide(e);\n }\n}\nfunction updateRipple(el, binding, wasEnabled) {\n const {\n value,\n modifiers\n } = binding;\n const enabled = isRippleEnabled(value);\n if (!enabled) {\n ripples.hide(el);\n }\n el._ripple = el._ripple ?? {};\n el._ripple.enabled = enabled;\n el._ripple.centered = modifiers.center;\n el._ripple.circle = modifiers.circle;\n if (isObject(value) && value.class) {\n el._ripple.class = value.class;\n }\n if (enabled && !wasEnabled) {\n if (modifiers.stop) {\n el.addEventListener('touchstart', rippleStop, {\n passive: true\n });\n el.addEventListener('mousedown', rippleStop);\n return;\n }\n el.addEventListener('touchstart', rippleShow, {\n passive: true\n });\n el.addEventListener('touchend', rippleHide, {\n passive: true\n });\n el.addEventListener('touchmove', rippleCancelShow, {\n passive: true\n });\n el.addEventListener('touchcancel', rippleHide);\n el.addEventListener('mousedown', rippleShow);\n el.addEventListener('mouseup', rippleHide);\n el.addEventListener('mouseleave', rippleHide);\n el.addEventListener('keydown', keyboardRippleShow);\n el.addEventListener('keyup', keyboardRippleHide);\n el.addEventListener('blur', focusRippleHide);\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, {\n passive: true\n });\n } else if (!enabled && wasEnabled) {\n removeListeners(el);\n }\n}\nfunction removeListeners(el) {\n el.removeEventListener('mousedown', rippleShow);\n el.removeEventListener('touchstart', rippleShow);\n el.removeEventListener('touchend', rippleHide);\n el.removeEventListener('touchmove', rippleCancelShow);\n el.removeEventListener('touchcancel', rippleHide);\n el.removeEventListener('mouseup', rippleHide);\n el.removeEventListener('mouseleave', rippleHide);\n el.removeEventListener('keydown', keyboardRippleShow);\n el.removeEventListener('keyup', keyboardRippleHide);\n el.removeEventListener('dragstart', rippleHide);\n el.removeEventListener('blur', focusRippleHide);\n}\nfunction mounted(el, binding) {\n updateRipple(el, binding, false);\n}\nfunction unmounted(el) {\n delete el._ripple;\n removeListeners(el);\n}\nfunction updated(el, binding) {\n if (binding.value === binding.oldValue) {\n return;\n }\n const wasEnabled = isRippleEnabled(binding.oldValue);\n updateRipple(el, binding, wasEnabled);\n}\nexport const Ripple = {\n mounted,\n unmounted,\n updated\n};\nexport default Ripple;\n//# sourceMappingURL=index.mjs.map","// Types\n\nconst Refs = Symbol('Forwarded refs');\n\n/** Omit properties starting with P */\n\nfunction getDescriptor(obj, key) {\n let currentObj = obj;\n while (currentObj) {\n const descriptor = Reflect.getOwnPropertyDescriptor(currentObj, key);\n if (descriptor) return descriptor;\n currentObj = Object.getPrototypeOf(currentObj);\n }\n return undefined;\n}\nexport function forwardRefs(target) {\n for (var _len = arguments.length, refs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n refs[_key - 1] = arguments[_key];\n }\n target[Refs] = refs;\n return new Proxy(target, {\n get(target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key);\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return;\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n const val = Reflect.get(ref.value, key);\n return typeof val === 'function' ? val.bind(ref.value) : val;\n }\n }\n },\n has(target, key) {\n if (Reflect.has(target, key)) {\n return true;\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false;\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return true;\n }\n }\n return false;\n },\n set(target, key, value) {\n if (Reflect.has(target, key)) {\n return Reflect.set(target, key, value);\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false;\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return Reflect.set(ref.value, key, value);\n }\n }\n return false;\n },\n getOwnPropertyDescriptor(target, key) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, key);\n if (descriptor) return descriptor;\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return;\n\n // Check each ref's own properties\n for (const ref of refs) {\n if (!ref.value) continue;\n const descriptor = getDescriptor(ref.value, key) ?? ('_' in ref.value ? getDescriptor(ref.value._?.setupState, key) : undefined);\n if (descriptor) return descriptor;\n }\n\n // Recursive search up each ref's prototype\n for (const ref of refs) {\n const childRefs = ref.value && ref.value[Refs];\n if (!childRefs) continue;\n const queue = childRefs.slice();\n while (queue.length) {\n const ref = queue.shift();\n const descriptor = getDescriptor(ref.value, key);\n if (descriptor) return descriptor;\n const childRefs = ref.value && ref.value[Refs];\n if (childRefs) queue.push(...childRefs);\n }\n }\n return undefined;\n }\n });\n}\n//# sourceMappingURL=forwardRefs.mjs.map","// Utilities\nimport { computed, shallowRef, watch } from 'vue';\nimport { propsFactory } from \"../util/index.mjs\"; // Types\nexport const makeLazyProps = propsFactory({\n eager: Boolean\n}, 'lazy');\nexport function useLazy(props, active) {\n const isBooted = shallowRef(false);\n const hasContent = computed(() => isBooted.value || props.eager || active.value);\n watch(active, () => isBooted.value = true);\n function onAfterLeave() {\n if (!props.eager) isBooted.value = false;\n }\n return {\n isBooted,\n hasContent,\n onAfterLeave\n };\n}\n//# sourceMappingURL=lazy.mjs.map","// Utilities\nimport { computed, onMounted, readonly, shallowRef } from 'vue';\n\n// Composables\nexport function useSsrBoot() {\n const isBooted = shallowRef(false);\n onMounted(() => {\n window.requestAnimationFrame(() => {\n isBooted.value = true;\n });\n });\n const ssrBootStyles = computed(() => !isBooted.value ? {\n transition: 'none !important'\n } : undefined);\n return {\n ssrBootStyles,\n isBooted: readonly(isBooted)\n };\n}\n//# sourceMappingURL=ssrBoot.mjs.map","// Utilities\nimport { h, mergeProps, Transition, TransitionGroup } from 'vue';\nimport { propsFactory } from \"../util/index.mjs\"; // Types\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: [Boolean, String, Object],\n default: 'fade-transition',\n validator: val => val !== true\n }\n}, 'transition');\nexport const MaybeTransition = (props, _ref) => {\n let {\n slots\n } = _ref;\n const {\n transition,\n disabled,\n group,\n ...rest\n } = props;\n const {\n component = group ? TransitionGroup : Transition,\n ...customProps\n } = typeof transition === 'object' ? transition : {};\n return h(component, mergeProps(typeof transition === 'string' ? {\n name: disabled ? '' : transition\n } : customProps, typeof transition === 'string' ? {} : Object.fromEntries(Object.entries({\n disabled,\n group\n }).filter(_ref2 => {\n let [_, v] = _ref2;\n return v !== undefined;\n })), rest), slots);\n};\n//# sourceMappingURL=transition.mjs.map","// Utilities\nimport { h, Transition, TransitionGroup } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.mjs\"; // Types\nexport const makeTransitionProps = propsFactory({\n disabled: Boolean,\n group: Boolean,\n hideOnLeave: Boolean,\n leaveAbsolute: Boolean,\n mode: String,\n origin: String\n}, 'transition');\nexport function createCssTransition(name, origin, mode) {\n return genericComponent()({\n name,\n props: makeTransitionProps({\n mode,\n origin\n }),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const functions = {\n onBeforeEnter(el) {\n if (props.origin) {\n el.style.transformOrigin = props.origin;\n }\n },\n onLeave(el) {\n if (props.leaveAbsolute) {\n const {\n offsetTop,\n offsetLeft,\n offsetWidth,\n offsetHeight\n } = el;\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height\n };\n el.style.position = 'absolute';\n el.style.top = `${offsetTop}px`;\n el.style.left = `${offsetLeft}px`;\n el.style.width = `${offsetWidth}px`;\n el.style.height = `${offsetHeight}px`;\n }\n if (props.hideOnLeave) {\n el.style.setProperty('display', 'none', 'important');\n }\n },\n onAfterLeave(el) {\n if (props.leaveAbsolute && el?._transitionInitialStyles) {\n const {\n position,\n top,\n left,\n width,\n height\n } = el._transitionInitialStyles;\n delete el._transitionInitialStyles;\n el.style.position = position || '';\n el.style.top = top || '';\n el.style.left = left || '';\n el.style.width = width || '';\n el.style.height = height || '';\n }\n }\n };\n return () => {\n const tag = props.group ? TransitionGroup : Transition;\n return h(tag, {\n name: props.disabled ? '' : name,\n css: !props.disabled,\n ...(props.group ? undefined : {\n mode: props.mode\n }),\n ...(props.disabled ? {} : functions)\n }, slots.default);\n };\n }\n });\n}\nexport function createJavascriptTransition(name, functions) {\n let mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'in-out';\n return genericComponent()({\n name,\n props: {\n mode: {\n type: String,\n default: mode\n },\n disabled: Boolean,\n group: Boolean\n },\n setup(props, _ref2) {\n let {\n slots\n } = _ref2;\n const tag = props.group ? TransitionGroup : Transition;\n return () => {\n return h(tag, {\n name: props.disabled ? '' : name,\n css: !props.disabled,\n // mode: props.mode, // TODO: vuejs/vue-next#3104\n ...(props.disabled ? {} : functions)\n }, slots.default);\n };\n }\n });\n}\n//# sourceMappingURL=createTransition.mjs.map","// Utilities\nimport { camelize } from 'vue';\nexport default function () {\n let expandedParentClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n let x = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const sizeProperty = x ? 'width' : 'height';\n const offsetProperty = camelize(`offset-${sizeProperty}`);\n return {\n onBeforeEnter(el) {\n el._parent = el.parentNode;\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty]\n };\n },\n onEnter(el) {\n const initialStyle = el._initialStyle;\n el.style.setProperty('transition', 'none', 'important');\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden';\n const offset = `${el[offsetProperty]}px`;\n el.style[sizeProperty] = '0';\n void el.offsetHeight; // force reflow\n\n el.style.transition = initialStyle.transition;\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass);\n }\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset;\n });\n },\n onAfterEnter: resetStyles,\n onEnterCancelled: resetStyles,\n onLeave(el) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty]\n };\n el.style.overflow = 'hidden';\n el.style[sizeProperty] = `${el[offsetProperty]}px`;\n void el.offsetHeight; // force reflow\n\n requestAnimationFrame(() => el.style[sizeProperty] = '0');\n },\n onAfterLeave,\n onLeaveCancelled: onAfterLeave\n };\n function onAfterLeave(el) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass);\n }\n resetStyles(el);\n }\n function resetStyles(el) {\n const size = el._initialStyle[sizeProperty];\n el.style.overflow = el._initialStyle.overflow;\n if (size != null) el.style[sizeProperty] = size;\n delete el._initialStyle;\n }\n}\n//# sourceMappingURL=expand-transition.mjs.map","import { createCssTransition, createJavascriptTransition } from \"./createTransition.mjs\";\nimport ExpandTransitionGenerator from \"./expand-transition.mjs\"; // Component specific transitions\nexport const VFabTransition = createCssTransition('fab-transition', 'center center', 'out-in');\n\n// Generic transitions\nexport const VDialogBottomTransition = createCssTransition('dialog-bottom-transition');\nexport const VDialogTopTransition = createCssTransition('dialog-top-transition');\nexport const VFadeTransition = createCssTransition('fade-transition');\nexport const VScaleTransition = createCssTransition('scale-transition');\nexport const VScrollXTransition = createCssTransition('scroll-x-transition');\nexport const VScrollXReverseTransition = createCssTransition('scroll-x-reverse-transition');\nexport const VScrollYTransition = createCssTransition('scroll-y-transition');\nexport const VScrollYReverseTransition = createCssTransition('scroll-y-reverse-transition');\nexport const VSlideXTransition = createCssTransition('slide-x-transition');\nexport const VSlideXReverseTransition = createCssTransition('slide-x-reverse-transition');\nexport const VSlideYTransition = createCssTransition('slide-y-transition');\nexport const VSlideYReverseTransition = createCssTransition('slide-y-reverse-transition');\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator());\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true));\nexport { VDialogTransition } from \"./dialog-transition.mjs\";\n//# sourceMappingURL=index.mjs.map","export function calculateUpdatedTarget(_ref) {\n let {\n selectedElement,\n containerElement,\n isRtl,\n isHorizontal\n } = _ref;\n const containerSize = getOffsetSize(isHorizontal, containerElement);\n const scrollPosition = getScrollPosition(isHorizontal, isRtl, containerElement);\n const childrenSize = getOffsetSize(isHorizontal, selectedElement);\n const childrenStartPosition = getOffsetPosition(isHorizontal, selectedElement);\n const additionalOffset = childrenSize * 0.4;\n if (scrollPosition > childrenStartPosition) {\n return childrenStartPosition - additionalOffset;\n } else if (scrollPosition + containerSize < childrenStartPosition + childrenSize) {\n return childrenStartPosition - containerSize + childrenSize + additionalOffset;\n }\n return scrollPosition;\n}\nexport function calculateCenteredTarget(_ref2) {\n let {\n selectedElement,\n containerElement,\n isHorizontal\n } = _ref2;\n const containerOffsetSize = getOffsetSize(isHorizontal, containerElement);\n const childrenOffsetPosition = getOffsetPosition(isHorizontal, selectedElement);\n const childrenOffsetSize = getOffsetSize(isHorizontal, selectedElement);\n return childrenOffsetPosition - containerOffsetSize / 2 + childrenOffsetSize / 2;\n}\nexport function getScrollSize(isHorizontal, element) {\n const key = isHorizontal ? 'scrollWidth' : 'scrollHeight';\n return element?.[key] || 0;\n}\nexport function getClientSize(isHorizontal, element) {\n const key = isHorizontal ? 'clientWidth' : 'clientHeight';\n return element?.[key] || 0;\n}\nexport function getScrollPosition(isHorizontal, rtl, element) {\n if (!element) {\n return 0;\n }\n const {\n scrollLeft,\n offsetWidth,\n scrollWidth\n } = element;\n if (isHorizontal) {\n return rtl ? scrollWidth - offsetWidth + scrollLeft : scrollLeft;\n }\n return element.scrollTop;\n}\nexport function getOffsetSize(isHorizontal, element) {\n const key = isHorizontal ? 'offsetWidth' : 'offsetHeight';\n return element?.[key] || 0;\n}\nexport function getOffsetPosition(isHorizontal, element) {\n const key = isHorizontal ? 'offsetLeft' : 'offsetTop';\n return element?.[key] || 0;\n}\n//# sourceMappingURL=helpers.mjs.map","import { createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VSlideGroup.css\";\n\n// Components\nimport { VFadeTransition } from \"../transitions/index.mjs\";\nimport { VIcon } from \"../VIcon/index.mjs\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.mjs\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.mjs\";\nimport { useGoTo } from \"../../composables/goto.mjs\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.mjs\";\nimport { IconValue } from \"../../composables/icons.mjs\";\nimport { useRtl } from \"../../composables/locale.mjs\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed, shallowRef, watch } from 'vue';\nimport { calculateCenteredTarget, calculateUpdatedTarget, getClientSize, getOffsetSize, getScrollPosition, getScrollSize } from \"./helpers.mjs\";\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nexport const VSlideGroupSymbol = Symbol.for('vuetify:v-slide-group');\nexport const makeVSlideGroupProps = propsFactory({\n centerActive: Boolean,\n direction: {\n type: String,\n default: 'horizontal'\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol\n },\n nextIcon: {\n type: IconValue,\n default: '$next'\n },\n prevIcon: {\n type: IconValue,\n default: '$prev'\n },\n showArrows: {\n type: [Boolean, String],\n validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)\n },\n ...makeComponentProps(),\n ...makeDisplayProps({\n mobile: null\n }),\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active'\n })\n}, 'VSlideGroup');\nexport const VSlideGroup = genericComponent()({\n name: 'VSlideGroup',\n props: makeVSlideGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n isRtl\n } = useRtl();\n const {\n displayClasses,\n mobile\n } = useDisplay(props);\n const group = useGroup(props, props.symbol);\n const isOverflowing = shallowRef(false);\n const scrollOffset = shallowRef(0);\n const containerSize = shallowRef(0);\n const contentSize = shallowRef(0);\n const isHorizontal = computed(() => props.direction === 'horizontal');\n const {\n resizeRef: containerRef,\n contentRect: containerRect\n } = useResizeObserver();\n const {\n resizeRef: contentRef,\n contentRect\n } = useResizeObserver();\n const goTo = useGoTo();\n const goToOptions = computed(() => {\n return {\n container: containerRef.el,\n duration: 200,\n easing: 'easeOutQuart'\n };\n });\n const firstSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1;\n return group.items.value.findIndex(item => item.id === group.selected.value[0]);\n });\n const lastSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1;\n return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1]);\n });\n if (IN_BROWSER) {\n let frame = -1;\n watch(() => [group.selected.value, containerRect.value, contentRect.value, isHorizontal.value], () => {\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(() => {\n if (containerRect.value && contentRect.value) {\n const sizeProperty = isHorizontal.value ? 'width' : 'height';\n containerSize.value = containerRect.value[sizeProperty];\n contentSize.value = contentRect.value[sizeProperty];\n isOverflowing.value = containerSize.value + 1 < contentSize.value;\n }\n if (firstSelectedIndex.value >= 0 && contentRef.el) {\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.el.children[lastSelectedIndex.value];\n scrollToChildren(selectedElement, props.centerActive);\n }\n });\n });\n }\n const isFocused = shallowRef(false);\n function scrollToChildren(children, center) {\n let target = 0;\n if (center) {\n target = calculateCenteredTarget({\n containerElement: containerRef.el,\n isHorizontal: isHorizontal.value,\n selectedElement: children\n });\n } else {\n target = calculateUpdatedTarget({\n containerElement: containerRef.el,\n isHorizontal: isHorizontal.value,\n isRtl: isRtl.value,\n selectedElement: children\n });\n }\n scrollToPosition(target);\n }\n function scrollToPosition(newPosition) {\n if (!IN_BROWSER || !containerRef.el) return;\n const offsetSize = getOffsetSize(isHorizontal.value, containerRef.el);\n const scrollPosition = getScrollPosition(isHorizontal.value, isRtl.value, containerRef.el);\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el);\n if (scrollSize <= offsetSize ||\n // Prevent scrolling by only a couple of pixels, which doesn't look smooth\n Math.abs(newPosition - scrollPosition) < 16) return;\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const {\n scrollWidth,\n offsetWidth: containerWidth\n } = containerRef.el;\n newPosition = scrollWidth - containerWidth - newPosition;\n }\n if (isHorizontal.value) {\n goTo.horizontal(newPosition, goToOptions.value);\n } else {\n goTo(newPosition, goToOptions.value);\n }\n }\n function onScroll(e) {\n const {\n scrollTop,\n scrollLeft\n } = e.target;\n scrollOffset.value = isHorizontal.value ? scrollLeft : scrollTop;\n }\n function onFocusin(e) {\n isFocused.value = true;\n if (!isOverflowing.value || !contentRef.el) return;\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of e.composedPath()) {\n for (const item of contentRef.el.children) {\n if (item === el) {\n scrollToChildren(item);\n return;\n }\n }\n }\n }\n function onFocusout(e) {\n isFocused.value = false;\n }\n\n // Affix clicks produce onFocus that we have to ignore to avoid extra scrollToChildren\n let ignoreFocusEvent = false;\n function onFocus(e) {\n if (!ignoreFocusEvent && !isFocused.value && !(e.relatedTarget && contentRef.el?.contains(e.relatedTarget))) focus();\n ignoreFocusEvent = false;\n }\n function onFocusAffixes() {\n ignoreFocusEvent = true;\n }\n function onKeydown(e) {\n if (!contentRef.el) return;\n function toFocus(location) {\n e.preventDefault();\n focus(location);\n }\n if (isHorizontal.value) {\n if (e.key === 'ArrowRight') {\n toFocus(isRtl.value ? 'prev' : 'next');\n } else if (e.key === 'ArrowLeft') {\n toFocus(isRtl.value ? 'next' : 'prev');\n }\n } else {\n if (e.key === 'ArrowDown') {\n toFocus('next');\n } else if (e.key === 'ArrowUp') {\n toFocus('prev');\n }\n }\n if (e.key === 'Home') {\n toFocus('first');\n } else if (e.key === 'End') {\n toFocus('last');\n }\n }\n function focus(location) {\n if (!contentRef.el) return;\n let el;\n if (!location) {\n const focusable = focusableChildren(contentRef.el);\n el = focusable[0];\n } else if (location === 'next') {\n el = contentRef.el.querySelector(':focus')?.nextElementSibling;\n if (!el) return focus('first');\n } else if (location === 'prev') {\n el = contentRef.el.querySelector(':focus')?.previousElementSibling;\n if (!el) return focus('last');\n } else if (location === 'first') {\n el = contentRef.el.firstElementChild;\n } else if (location === 'last') {\n el = contentRef.el.lastElementChild;\n }\n if (el) {\n el.focus({\n preventScroll: true\n });\n }\n }\n function scrollTo(location) {\n const direction = isHorizontal.value && isRtl.value ? -1 : 1;\n const offsetStep = (location === 'prev' ? -direction : direction) * containerSize.value;\n let newPosition = scrollOffset.value + offsetStep;\n\n // TODO: improve it\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const {\n scrollWidth,\n offsetWidth: containerWidth\n } = containerRef.el;\n newPosition += scrollWidth - containerWidth;\n }\n scrollToPosition(newPosition);\n }\n const slotProps = computed(() => ({\n next: group.next,\n prev: group.prev,\n select: group.select,\n isSelected: group.isSelected\n }));\n const hasAffixes = computed(() => {\n switch (props.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always':\n return true;\n\n // Always show arrows on desktop\n case 'desktop':\n return !mobile.value;\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true:\n return isOverflowing.value || Math.abs(scrollOffset.value) > 0;\n\n // Always show on mobile\n case 'mobile':\n return mobile.value || isOverflowing.value || Math.abs(scrollOffset.value) > 0;\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default:\n return !mobile.value && (isOverflowing.value || Math.abs(scrollOffset.value) > 0);\n }\n });\n const hasPrev = computed(() => {\n // 1 pixel in reserve, may be lost after rounding\n return Math.abs(scrollOffset.value) > 1;\n });\n const hasNext = computed(() => {\n if (!containerRef.value) return false;\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el);\n const clientSize = getClientSize(isHorizontal.value, containerRef.el);\n const scrollSizeMax = scrollSize - clientSize;\n\n // 1 pixel in reserve, may be lost after rounding\n return scrollSizeMax - Math.abs(scrollOffset.value) > 1;\n });\n useRender(() => _createVNode(props.tag, {\n \"class\": ['v-slide-group', {\n 'v-slide-group--vertical': !isHorizontal.value,\n 'v-slide-group--has-affixes': hasAffixes.value,\n 'v-slide-group--is-overflowing': isOverflowing.value\n }, displayClasses.value, props.class],\n \"style\": props.style,\n \"tabindex\": isFocused.value || group.selected.value.length ? -1 : 0,\n \"onFocus\": onFocus\n }, {\n default: () => [hasAffixes.value && _createVNode(\"div\", {\n \"key\": \"prev\",\n \"class\": ['v-slide-group__prev', {\n 'v-slide-group__prev--disabled': !hasPrev.value\n }],\n \"onMousedown\": onFocusAffixes,\n \"onClick\": () => hasPrev.value && scrollTo('prev')\n }, [slots.prev?.(slotProps.value) ?? _createVNode(VFadeTransition, null, {\n default: () => [_createVNode(VIcon, {\n \"icon\": isRtl.value ? props.nextIcon : props.prevIcon\n }, null)]\n })]), _createVNode(\"div\", {\n \"key\": \"container\",\n \"ref\": containerRef,\n \"class\": \"v-slide-group__container\",\n \"onScroll\": onScroll\n }, [_createVNode(\"div\", {\n \"ref\": contentRef,\n \"class\": \"v-slide-group__content\",\n \"onFocusin\": onFocusin,\n \"onFocusout\": onFocusout,\n \"onKeydown\": onKeydown\n }, [slots.default?.(slotProps.value)])]), hasAffixes.value && _createVNode(\"div\", {\n \"key\": \"next\",\n \"class\": ['v-slide-group__next', {\n 'v-slide-group__next--disabled': !hasNext.value\n }],\n \"onMousedown\": onFocusAffixes,\n \"onClick\": () => hasNext.value && scrollTo('next')\n }, [slots.next?.(slotProps.value) ?? _createVNode(VFadeTransition, null, {\n default: () => [_createVNode(VIcon, {\n \"icon\": isRtl.value ? props.prevIcon : props.nextIcon\n }, null)]\n })])]\n }));\n return {\n selected: group.selected,\n scrollTo,\n scrollOffset,\n focus\n };\n }\n});\n//# sourceMappingURL=VSlideGroup.mjs.map","// Utilities\nimport { getCurrentInstance } from \"../util/index.mjs\";\nexport function useScopeId() {\n const vm = getCurrentInstance('useScopeId');\n const scopeId = vm.vnode.scopeId;\n return {\n scopeId: scopeId ? {\n [scopeId]: ''\n } : undefined\n };\n}\n//# sourceMappingURL=scopeId.mjs.map"],"names":["block","inline","parseAnchor","anchor","isRtl","side","align","includes","toPhysical","str","flipSide","flipAlign","flipCorner","getAxis","Box","_ref","x","y","width","height","getOverflow","a","b","getTargetBox","target","nullifyTransforms","el","rect","style","tx","ta","sx","sy","dx","dy","to","w","h","animate","keyframes","options","animation","resolve","makeComponentProps","propsFactory","standardEasing","deceleratedEasing","acceleratedEasing","useRender","render","vm","getCurrentInstance","useResizeObserver","callback","box","resizeRef","templateRef","contentRect","ref","IN_BROWSER","observer","entries","onBeforeUnmount","watch","newValue","oldValue","readonly","makeBorderProps","useBorder","props","name","getCurrentInstanceName","computed","border","isRef","classes","value","allowedDensities","makeDensityProps","v","useDensity","makeElevationProps","useElevation","elevation","makeRoundedProps","useRounded","rounded","tile","makeTagProps","useColor","colors","destructComputed","styles","isCssColor","isParsableColor","backgroundColor","parseColor","textColor","getForeground","useTextColor","textColorClasses","textColorStyles","useBackgroundColor","backgroundColorClasses","backgroundColorStyles","allowedVariants","genOverlays","isClickable","_createVNode","_Fragment","makeVariantProps","useVariant","variantClasses","variant","unref","colorClasses","colorStyles","color","makeGroupProps","makeGroupItemProps","useGroupItem","injectKey","required","id","getUid","provide","group","inject","toRef","disabled","isSelected","isFirst","isLast","selectedClass","useGroup","isUnmounted","items","reactive","selected","useProxiedModel","getIds","wrapInArray","arr","getValues","groupVm","register","item","unwrapped","key","index","findChildrenWithProvide","unregister","forceMandatoryValue","onMounted","onUpdated","i","select","internalValue","step","offset","currentId","currentIndex","newIndex","newItem","state","getItemIndex","ids","modelValue","deepEqual","itemByIndex","values","itemIndex","makeVDefaultsProviderProps","VDefaultsProvider","genericComponent","slots","defaults","reset","root","scoped","toRefs","provideDefaults","_a","predefinedSizes","makeSizeProps","useSize","sizeClasses","sizeStyles","convertToUnit","makeVIconProps","IconValue","makeThemeProps","VIcon","attrs","slotIcon","themeClasses","provideTheme","iconData","useIcon","slotValue","_b","flattenFragments","node","Text","hasClick","useIntersectionObserver","intersectionRef","isIntersecting","shallowRef","SUPPORTS_INTERSECTION","entry","makeDimensionProps","useDimension","maxHeight","maxWidth","minHeight","minWidth","oppositeMap","makeLocationProps","useLocation","opposite","useRtl","getOffset","makeVProgressLinearProps","VProgressLinear","progress","rtlClasses","locationStyles","bufferColorClasses","bufferColorStyles","barColorClasses","barColorStyles","roundedClasses","max","normalizedBuffer","clamp","normalizedValue","isReversed","transition","isForcedColorsModeActive","handleClick","e","left","right","Transition","bar","makeLoaderProps","useLoader","LoaderSlot","useRoute","useRouter","useLink","RouterLink","resolveDynamicComponent","isLink","hasEvent","linkProps","routerLink","link","route","_c","makeRouterProps","inTransition","useBackButton","router","cb","popped","removeBefore","removeAfter","nextTick","onPopstate","from","next","onScopeDispose","stopSymbol","DELAY_RIPPLE","transform","isTouchEvent","isKeyboardEvent","calculate","localX","localY","radius","scale","centerX","centerY","ripples","container","size","diff","delay","isRippleEnabled","rippleShow","element","rippleStop","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyCodes","keyboardRippleHide","focusRippleHide","updateRipple","binding","wasEnabled","modifiers","enabled","isObject","removeListeners","mounted","unmounted","updated","Ripple","Refs","getDescriptor","obj","currentObj","descriptor","forwardRefs","_len","refs","_key","val","childRefs","queue","makeLazyProps","useLazy","active","isBooted","hasContent","onAfterLeave","useSsrBoot","makeTransitionProps","MaybeTransition","rest","component","TransitionGroup","customProps","mergeProps","_ref2","_","createCssTransition","origin","mode","functions","offsetTop","offsetLeft","offsetWidth","offsetHeight","position","top","tag","createJavascriptTransition","ExpandTransitionGenerator","expandedParentClass","sizeProperty","offsetProperty","camelize","initialStyle","resetStyles","VFadeTransition","VSlideYTransition","VExpandTransition","VExpandXTransition","calculateUpdatedTarget","selectedElement","containerElement","isHorizontal","containerSize","getOffsetSize","scrollPosition","getScrollPosition","childrenSize","childrenStartPosition","getOffsetPosition","additionalOffset","calculateCenteredTarget","containerOffsetSize","childrenOffsetPosition","childrenOffsetSize","getScrollSize","getClientSize","rtl","scrollLeft","scrollWidth","VSlideGroupSymbol","makeVSlideGroupProps","makeDisplayProps","VSlideGroup","displayClasses","mobile","useDisplay","isOverflowing","scrollOffset","contentSize","containerRef","containerRect","contentRef","goTo","useGoTo","goToOptions","firstSelectedIndex","lastSelectedIndex","frame","scrollToChildren","isFocused","children","center","scrollToPosition","newPosition","offsetSize","containerWidth","onScroll","scrollTop","onFocusin","onFocusout","ignoreFocusEvent","onFocus","focus","onFocusAffixes","onKeydown","toFocus","location","focusableChildren","scrollTo","direction","offsetStep","slotProps","hasAffixes","hasPrev","hasNext","scrollSize","clientSize","useScopeId","scopeId"],"mappings":"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","debug_id":"176b3034-c09b-5824-8e29-817523446a49"}