{"version":3,"file":"CMzee4mH.js","sources":["../../../../node_modules/vuetify/lib/components/VTabs/shared.mjs","../../../../node_modules/vuetify/lib/components/VTabs/VTab.mjs","../../../../node_modules/vuetify/lib/components/VTabs/VTabs.mjs"],"sourcesContent":["// Types\n\nexport const VTabsSymbol = Symbol.for('vuetify:v-tabs');\n//# sourceMappingURL=shared.mjs.map","import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from \"vue\";\n// Styles\nimport \"./VTab.css\";\n\n// Components\nimport { makeVBtnProps, VBtn } from \"../VBtn/VBtn.mjs\"; // Composables\nimport { useTextColor } from \"../../composables/color.mjs\"; // Utilities\nimport { computed, ref, shallowRef } from 'vue';\nimport { VTabsSymbol } from \"./shared.mjs\";\nimport { animate, genericComponent, omit, propsFactory, standardEasing, useRender } from \"../../util/index.mjs\"; // Types\nexport const makeVTabProps = propsFactory({\n fixed: Boolean,\n sliderColor: String,\n hideSlider: Boolean,\n direction: {\n type: String,\n default: 'horizontal'\n },\n ...omit(makeVBtnProps({\n selectedClass: 'v-tab--selected',\n variant: 'text'\n }), ['active', 'block', 'flat', 'location', 'position', 'symbol'])\n}, 'VTab');\nexport const VTab = genericComponent()({\n name: 'VTab',\n props: makeVTabProps(),\n setup(props, _ref) {\n let {\n slots,\n attrs\n } = _ref;\n const {\n textColorClasses: sliderColorClasses,\n textColorStyles: sliderColorStyles\n } = useTextColor(props, 'sliderColor');\n const isHorizontal = computed(() => props.direction === 'horizontal');\n const isSelected = shallowRef(false);\n const rootEl = ref();\n const sliderEl = ref();\n function updateSlider(_ref2) {\n let {\n value\n } = _ref2;\n isSelected.value = value;\n if (value) {\n const prevEl = rootEl.value?.$el.parentElement?.querySelector('.v-tab--selected .v-tab__slider');\n const nextEl = sliderEl.value;\n if (!prevEl || !nextEl) return;\n const color = getComputedStyle(prevEl).color;\n const prevBox = prevEl.getBoundingClientRect();\n const nextBox = nextEl.getBoundingClientRect();\n const xy = isHorizontal.value ? 'x' : 'y';\n const XY = isHorizontal.value ? 'X' : 'Y';\n const rightBottom = isHorizontal.value ? 'right' : 'bottom';\n const widthHeight = isHorizontal.value ? 'width' : 'height';\n const prevPos = prevBox[xy];\n const nextPos = nextBox[xy];\n const delta = prevPos > nextPos ? prevBox[rightBottom] - nextBox[rightBottom] : prevBox[xy] - nextBox[xy];\n const origin = Math.sign(delta) > 0 ? isHorizontal.value ? 'right' : 'bottom' : Math.sign(delta) < 0 ? isHorizontal.value ? 'left' : 'top' : 'center';\n const size = Math.abs(delta) + (Math.sign(delta) < 0 ? prevBox[widthHeight] : nextBox[widthHeight]);\n const scale = size / Math.max(prevBox[widthHeight], nextBox[widthHeight]) || 0;\n const initialScale = prevBox[widthHeight] / nextBox[widthHeight] || 0;\n const sigma = 1.5;\n animate(nextEl, {\n backgroundColor: [color, 'currentcolor'],\n transform: [`translate${XY}(${delta}px) scale${XY}(${initialScale})`, `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`, 'none'],\n transformOrigin: Array(3).fill(origin)\n }, {\n duration: 225,\n easing: standardEasing\n });\n }\n }\n useRender(() => {\n const btnProps = VBtn.filterProps(props);\n return _createVNode(VBtn, _mergeProps({\n \"symbol\": VTabsSymbol,\n \"ref\": rootEl,\n \"class\": ['v-tab', props.class],\n \"style\": props.style,\n \"tabindex\": isSelected.value ? 0 : -1,\n \"role\": \"tab\",\n \"aria-selected\": String(isSelected.value),\n \"active\": false\n }, btnProps, attrs, {\n \"block\": props.fixed,\n \"maxWidth\": props.fixed ? 300 : undefined,\n \"onGroup:selected\": updateSlider\n }), {\n ...slots,\n default: () => _createVNode(_Fragment, null, [slots.default?.() ?? props.text, !props.hideSlider && _createVNode(\"div\", {\n \"ref\": sliderEl,\n \"class\": ['v-tab__slider', sliderColorClasses.value],\n \"style\": sliderColorStyles.value\n }, null)])\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VTab.mjs.map","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VTabs.css\";\n\n// Components\nimport { VTab } from \"./VTab.mjs\";\nimport { makeVSlideGroupProps, VSlideGroup } from \"../VSlideGroup/VSlideGroup.mjs\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.mjs\";\nimport { provideDefaults } from \"../../composables/defaults.mjs\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.mjs\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.mjs\";\nimport { makeTagProps } from \"../../composables/tag.mjs\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { convertToUnit, genericComponent, isObject, propsFactory, useRender } from \"../../util/index.mjs\"; // Types\nimport { VTabsSymbol } from \"./shared.mjs\";\nfunction parseItems(items) {\n if (!items) return [];\n return items.map(item => {\n if (!isObject(item)) return {\n text: item,\n value: item\n };\n return item;\n });\n}\nexport const makeVTabsProps = propsFactory({\n alignTabs: {\n type: String,\n default: 'start'\n },\n color: String,\n fixedTabs: Boolean,\n items: {\n type: Array,\n default: () => []\n },\n stacked: Boolean,\n bgColor: String,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined\n },\n hideSlider: Boolean,\n sliderColor: String,\n ...makeVSlideGroupProps({\n mandatory: 'force'\n }),\n ...makeDensityProps(),\n ...makeTagProps()\n}, 'VTabs');\nexport const VTabs = genericComponent()({\n name: 'VTabs',\n props: makeVTabsProps(),\n emits: {\n 'update:modelValue': v => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const parsedItems = computed(() => parseItems(props.items));\n const {\n densityClasses\n } = useDensity(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(toRef(props, 'bgColor'));\n provideDefaults({\n VTab: {\n color: toRef(props, 'color'),\n direction: toRef(props, 'direction'),\n stacked: toRef(props, 'stacked'),\n fixed: toRef(props, 'fixedTabs'),\n sliderColor: toRef(props, 'sliderColor'),\n hideSlider: toRef(props, 'hideSlider')\n }\n });\n useRender(() => {\n const slideGroupProps = VSlideGroup.filterProps(props);\n return _createVNode(VSlideGroup, _mergeProps(slideGroupProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-tabs', `v-tabs--${props.direction}`, `v-tabs--align-tabs-${props.alignTabs}`, {\n 'v-tabs--fixed-tabs': props.fixedTabs,\n 'v-tabs--grow': props.grow,\n 'v-tabs--stacked': props.stacked\n }, densityClasses.value, backgroundColorClasses.value, props.class],\n \"style\": [{\n '--v-tabs-height': convertToUnit(props.height)\n }, backgroundColorStyles.value, props.style],\n \"role\": \"tablist\",\n \"symbol\": VTabsSymbol\n }), {\n default: () => [slots.default ? slots.default() : parsedItems.value.map(item => _createVNode(VTab, _mergeProps(item, {\n \"key\": item.text\n }), null))]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VTabs.mjs.map"],"names":["VTabsSymbol","makeVTabProps","propsFactory","omit","makeVBtnProps","VTab","genericComponent","props","_ref","slots","attrs","sliderColorClasses","sliderColorStyles","useTextColor","isHorizontal","computed","isSelected","shallowRef","rootEl","ref","sliderEl","updateSlider","_ref2","value","prevEl","_b","_a","nextEl","color","prevBox","nextBox","xy","XY","rightBottom","widthHeight","prevPos","nextPos","delta","origin","scale","initialScale","sigma","animate","standardEasing","useRender","btnProps","VBtn","_createVNode","_mergeProps","_Fragment","parseItems","items","item","isObject","makeVTabsProps","makeVSlideGroupProps","makeDensityProps","makeTagProps","VTabs","v","model","useProxiedModel","parsedItems","densityClasses","useDensity","backgroundColorClasses","backgroundColorStyles","useBackgroundColor","toRef","provideDefaults","slideGroupProps","VSlideGroup","$event","convertToUnit"],"mappings":"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","debug_id":"ba8a517b-63cf-5d3f-9567-0225736d68d3"}