@up-packages/ui 0.1.1-qa.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/README.md +360 -0
- package/dist/components/UpAccordion/UpAccordion.vue.d.ts +26 -0
- package/dist/components/UpAccordion/index.d.ts +2 -0
- package/dist/components/UpBadge/UpBadge.vue.d.ts +41 -0
- package/dist/components/UpBadge/index.d.ts +2 -0
- package/dist/components/UpButton/UpButton.vue.d.ts +30 -0
- package/dist/components/UpButton/index.d.ts +2 -0
- package/dist/components/UpCalendar/UpCalendar.vue.d.ts +35 -0
- package/dist/components/UpCalendar/index.d.ts +2 -0
- package/dist/components/UpCard/UpCard.vue.d.ts +20 -0
- package/dist/components/UpCard/UpCardIndicator.vue.d.ts +17 -0
- package/dist/components/UpCard/UpCardInfo.vue.d.ts +16 -0
- package/dist/components/UpCard/UpCardInteractive.vue.d.ts +23 -0
- package/dist/components/UpCard/UpCardItem.vue.d.ts +15 -0
- package/dist/components/UpCard/UpCardList.vue.d.ts +12 -0
- package/dist/components/UpCard/UpCardNode.vue.d.ts +21 -0
- package/dist/components/UpCard/UpCardProduct.vue.d.ts +16 -0
- package/dist/components/UpCard/index.d.ts +9 -0
- package/dist/components/UpCard/types.d.ts +33 -0
- package/dist/components/UpCell/UpCell.vue.d.ts +17 -0
- package/dist/components/UpCell/index.d.ts +6 -0
- package/dist/components/UpCell/types.d.ts +24 -0
- package/dist/components/UpCheckbox/UpCheckbox.vue.d.ts +11 -0
- package/dist/components/UpCheckbox/index.d.ts +6 -0
- package/dist/components/UpCheckbox/types.d.ts +31 -0
- package/dist/components/UpDataTable/UpDataTable.vue.d.ts +70 -0
- package/dist/components/UpDataTable/index.d.ts +2 -0
- package/dist/components/UpDatePicker/UpDatePicker.vue.d.ts +59 -0
- package/dist/components/UpDatePicker/index.d.ts +2 -0
- package/dist/components/UpDivider/UpDivider.vue.d.ts +5 -0
- package/dist/components/UpDivider/index.d.ts +2 -0
- package/dist/components/UpDivider/types.d.ts +7 -0
- package/dist/components/UpEnvironmentBadge/UpEnvironmentBadge.vue.d.ts +2 -0
- package/dist/components/UpEnvironmentBadge/index.d.ts +1 -0
- package/dist/components/UpFloatMenu/UpFloatMenu.vue.d.ts +16 -0
- package/dist/components/UpFloatMenu/index.d.ts +2 -0
- package/dist/components/UpFloatMenu/types.d.ts +41 -0
- package/dist/components/UpNotification/UpNotification.vue.d.ts +11 -0
- package/dist/components/UpNotification/index.d.ts +2 -0
- package/dist/components/UpPagination/UpPagination.vue.d.ts +26 -0
- package/dist/components/UpPagination/index.d.ts +2 -0
- package/dist/components/UpPagination/types.d.ts +20 -0
- package/dist/components/UpProduct/UpProduct.vue.d.ts +3 -0
- package/dist/components/UpProduct/index.d.ts +2 -0
- package/dist/components/UpProduct/types.d.ts +7 -0
- package/dist/components/UpRadio/UpRadio.vue.d.ts +52 -0
- package/dist/components/UpRadio/index.d.ts +2 -0
- package/dist/components/UpSelect/UpSelect.vue.d.ts +97 -0
- package/dist/components/UpSelect/index.d.ts +2 -0
- package/dist/components/UpSelect/types.d.ts +38 -0
- package/dist/components/UpSideBar/UpSideBar.vue.d.ts +23 -0
- package/dist/components/UpSideBar/index.d.ts +2 -0
- package/dist/components/UpSideBar/types.d.ts +11 -0
- package/dist/components/UpStepper/UpStepper.vue.d.ts +11 -0
- package/dist/components/UpStepper/index.d.ts +2 -0
- package/dist/components/UpStepper/types.d.ts +9 -0
- package/dist/components/UpSwitch/UpSwitch.vue.d.ts +15 -0
- package/dist/components/UpSwitch/index.d.ts +2 -0
- package/dist/components/UpTab/UpTab.vue.d.ts +13 -0
- package/dist/components/UpTab/index.d.ts +2 -0
- package/dist/components/UpTab/types.d.ts +11 -0
- package/dist/components/UpTextField/UpTextField.vue.d.ts +73 -0
- package/dist/components/UpTextField/index.d.ts +2 -0
- package/dist/components/UpTitleBar/UpTitleBar.vue.d.ts +13 -0
- package/dist/components/UpTitleBar/index.d.ts +2 -0
- package/dist/components/UpTitleBar/types.d.ts +9 -0
- package/dist/components/UpToast/UpToast.vue.d.ts +44 -0
- package/dist/components/UpToast/index.d.ts +2 -0
- package/dist/components/UpTooltip/UpTooltip.vue.d.ts +19 -0
- package/dist/components/UpTooltip/index.d.ts +2 -0
- package/dist/components/UpTooltip/types.d.ts +6 -0
- package/dist/components/UpWindow/UpWindow.vue.d.ts +22 -0
- package/dist/components/UpWindow/index.d.ts +2 -0
- package/dist/components/UpWindow/types.d.ts +16 -0
- package/dist/components/index.d.ts +50 -0
- package/dist/composables/index.d.ts +6 -0
- package/dist/composables/useToast.d.ts +40 -0
- package/dist/config/environments.d.ts +26 -0
- package/dist/directives/index.d.ts +21 -0
- package/dist/directives/textFormat.d.ts +15 -0
- package/dist/index.d.ts +10 -0
- package/dist/install.d.ts +35 -0
- package/dist/plugins/vuetify.d.ts +142 -0
- package/dist/uplexis-ui.css +5 -0
- package/dist/uplexis-ui.js +15474 -0
- package/dist/uplexis-ui.js.map +1 -0
- package/dist/uplexis-ui.umd.cjs +5 -0
- package/dist/uplexis-ui.umd.cjs.map +1 -0
- package/dist/utils/formatters.d.ts +49 -0
- package/dist/utils/helpers.d.ts +19 -0
- package/dist/utils/index.d.ts +6 -0
- package/package.json +82 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uplexis-ui.umd.cjs","sources":["../node_modules/vuetify/lib/util/console.js","../node_modules/vuetify/lib/util/globals.js","../node_modules/vuetify/lib/util/helpers.js","../node_modules/vuetify/lib/util/anchor.js","../node_modules/vuetify/lib/util/box.js","../node_modules/vuetify/lib/util/animation.js","../node_modules/vuetify/lib/util/bindProps.js","../node_modules/vuetify/lib/util/color/APCA.js","../node_modules/vuetify/lib/util/colorUtils.js","../node_modules/vuetify/lib/util/propsFactory.js","../node_modules/vuetify/lib/composables/component.js","../node_modules/vuetify/lib/util/getCurrentInstance.js","../node_modules/vuetify/lib/util/injectSelf.js","../node_modules/vuetify/lib/composables/defaults.js","../node_modules/vuetify/lib/util/defineComponent.js","../node_modules/vuetify/lib/util/createSimpleFunctional.js","../node_modules/vuetify/lib/util/deepEqual.js","../node_modules/vuetify/lib/util/dom.js","../node_modules/vuetify/lib/util/easing.js","../node_modules/vuetify/lib/util/events.js","../node_modules/vuetify/lib/util/getScrollParent.js","../node_modules/vuetify/lib/util/isFixedPosition.js","../node_modules/vuetify/lib/util/useRender.js","../node_modules/vuetify/lib/util/throttle.js","../node_modules/vuetify/lib/composables/icons.js","../node_modules/vuetify/lib/iconsets/mdi.js","../src/plugins/vuetify.ts","../node_modules/vuetify/lib/composables/color.js","../node_modules/vuetify/lib/composables/size.js","../node_modules/vuetify/lib/composables/tag.js","../node_modules/vuetify/lib/composables/theme.js","../node_modules/vuetify/lib/components/VIcon/VIcon.js","../src/components/UpAccordion/UpAccordion.vue","../src/components/UpBadge/UpBadge.vue","../node_modules/vuetify/lib/composables/intersectionObserver.js","../node_modules/vuetify/lib/composables/resizeObserver.js","../node_modules/vuetify/lib/components/VProgressCircular/VProgressCircular.js","../src/components/UpButton/UpButton.vue","../node_modules/vuetify/lib/composables/border.js","../node_modules/vuetify/lib/composables/density.js","../node_modules/vuetify/lib/composables/elevation.js","../node_modules/vuetify/lib/composables/rounded.js","../node_modules/vuetify/lib/composables/variant.js","../node_modules/vuetify/lib/components/VBtnGroup/VBtnGroup.js","../node_modules/vuetify/lib/composables/toggleScope.js","../node_modules/vuetify/lib/composables/proxiedModel.js","../node_modules/vuetify/lib/composables/group.js","../node_modules/vuetify/lib/components/VBtnToggle/VBtnToggle.js","../node_modules/vuetify/lib/components/VDefaultsProvider/VDefaultsProvider.js","../node_modules/vuetify/lib/composables/dimensions.js","../node_modules/vuetify/lib/composables/locale.js","../node_modules/vuetify/lib/composables/location.js","../node_modules/vuetify/lib/components/VProgressLinear/chunks.js","../node_modules/vuetify/lib/components/VProgressLinear/VProgressLinear.js","../node_modules/vuetify/lib/composables/loader.js","../node_modules/vuetify/lib/composables/position.js","../node_modules/vuetify/lib/composables/router.js","../node_modules/vuetify/lib/composables/selectLink.js","../node_modules/vuetify/lib/directives/ripple/index.js","../node_modules/vuetify/lib/components/VBtn/VBtn.js","../node_modules/vuetify/lib/components/transitions/createTransition.js","../node_modules/vuetify/lib/components/transitions/expand-transition.js","../node_modules/vuetify/lib/components/transitions/dialog-transition.js","../node_modules/vuetify/lib/components/transitions/index.js","../node_modules/vuetify/lib/components/VList/list.js","../node_modules/vuetify/lib/composables/nested/activeStrategies.js","../node_modules/vuetify/lib/composables/nested/openStrategies.js","../node_modules/vuetify/lib/composables/nested/selectStrategies.js","../node_modules/vuetify/lib/composables/nested/nested.js","../node_modules/vuetify/lib/composables/ssrBoot.js","../node_modules/vuetify/lib/composables/transition.js","../node_modules/vuetify/lib/components/VList/VListGroup.js","../node_modules/vuetify/lib/components/VList/VListItemSubtitle.js","../node_modules/vuetify/lib/components/VList/VListItemTitle.js","../node_modules/vuetify/lib/components/VResponsive/VResponsive.js","../node_modules/vuetify/lib/directives/intersect/index.js","../node_modules/vuetify/lib/components/VImg/VImg.js","../node_modules/vuetify/lib/components/VAvatar/VAvatar.js","../node_modules/vuetify/lib/components/VList/VListItem.js","../node_modules/vuetify/lib/components/VList/VListSubheader.js","../node_modules/vuetify/lib/components/VDivider/VDivider.js","../node_modules/vuetify/lib/components/VList/VListChildren.js","../node_modules/vuetify/lib/composables/list-items.js","../node_modules/vuetify/lib/components/VList/VList.js","../node_modules/vuetify/lib/components/VOverlay/util/point.js","../node_modules/vuetify/lib/components/VOverlay/locationStrategies.js","../node_modules/vuetify/lib/components/VOverlay/requestNewFrame.js","../node_modules/vuetify/lib/components/VOverlay/scrollStrategies.js","../node_modules/vuetify/lib/components/VMenu/shared.js","../node_modules/vuetify/lib/composables/delay.js","../node_modules/vuetify/lib/components/VOverlay/useActivator.js","../node_modules/vuetify/lib/composables/display.js","../node_modules/vuetify/lib/composables/hydration.js","../node_modules/vuetify/lib/composables/lazy.js","../node_modules/vuetify/lib/composables/scopeId.js","../node_modules/vuetify/lib/composables/stack.js","../node_modules/vuetify/lib/composables/teleport.js","../node_modules/vuetify/lib/directives/click-outside/index.js","../node_modules/vuetify/lib/components/VOverlay/VOverlay.js","../node_modules/vuetify/lib/composables/forwardRefs.js","../node_modules/vuetify/lib/components/VMenu/VMenu.js","../src/components/UpCalendar/UpCalendar.vue","../src/components/UpCard/UpCardNode.vue","../src/components/UpCard/UpCardInfo.vue","../src/components/UpCard/UpCardList.vue","../src/components/UpCard/UpCardItem.vue","../src/components/UpCard/UpCardProduct.vue","../src/components/UpCard/UpCardInteractive.vue","../src/components/UpCard/UpCardIndicator.vue","../src/components/UpCard/UpCard.vue","../node_modules/@iconify/vue/dist/iconify.mjs","../src/components/UpCell/UpCell.vue","../src/components/UpCheckbox/UpCheckbox.vue","../node_modules/vuetify/lib/composables/goto.js","../node_modules/vuetify/lib/composables/refs.js","../node_modules/vuetify/lib/components/VPagination/VPagination.js","../node_modules/vuetify/lib/components/VLabel/VLabel.js","../node_modules/vuetify/lib/components/VSelectionControlGroup/VSelectionControlGroup.js","../node_modules/vuetify/lib/components/VSelectionControl/VSelectionControl.js","../node_modules/vuetify/lib/components/VCheckbox/VCheckboxBtn.js","../node_modules/vuetify/lib/components/VInput/InputIcon.js","../node_modules/vuetify/lib/components/VMessages/VMessages.js","../node_modules/vuetify/lib/composables/focus.js","../node_modules/vuetify/lib/composables/form.js","../node_modules/vuetify/lib/labs/rules/rules.js","../node_modules/vuetify/lib/composables/validation.js","../node_modules/vuetify/lib/components/VInput/VInput.js","../node_modules/vuetify/lib/components/VSlideGroup/helpers.js","../node_modules/vuetify/lib/components/VSlideGroup/VSlideGroup.js","../node_modules/vuetify/lib/components/VChipGroup/VChipGroup.js","../node_modules/vuetify/lib/components/VChip/VChip.js","../node_modules/vuetify/lib/components/VCounter/VCounter.js","../node_modules/vuetify/lib/components/VField/VFieldLabel.js","../node_modules/vuetify/lib/components/VField/VField.js","../node_modules/vuetify/lib/composables/autocomplete.js","../node_modules/vuetify/lib/composables/autofocus.js","../node_modules/vuetify/lib/components/VTextField/VTextField.js","../node_modules/vuetify/lib/components/VVirtualScroll/VVirtualScrollItem.js","../node_modules/vuetify/lib/composables/virtual.js","../node_modules/vuetify/lib/components/VVirtualScroll/VVirtualScroll.js","../node_modules/vuetify/lib/components/VSelect/useScrolling.js","../node_modules/vuetify/lib/composables/menuActivator.js","../node_modules/vuetify/lib/components/VSelect/VSelect.js","../node_modules/vuetify/lib/components/VDataTable/composables/paginate.js","../node_modules/vuetify/lib/components/VDataTable/VDataTableFooter.js","../node_modules/vuetify/lib/components/VDataTable/VDataTableColumn.js","../node_modules/vuetify/lib/components/VDataTable/composables/headers.js","../node_modules/vuetify/lib/components/VDataTable/composables/select.js","../node_modules/vuetify/lib/components/VDataTable/composables/sort.js","../node_modules/vuetify/lib/components/VDataTable/VDataTableHeaders.js","../node_modules/vuetify/lib/components/VDataTable/composables/group.js","../node_modules/vuetify/lib/components/VDataTable/VDataTableGroupHeaderRow.js","../node_modules/vuetify/lib/components/VDataTable/composables/expand.js","../node_modules/vuetify/lib/components/VDataTable/VDataTableRow.js","../node_modules/vuetify/lib/components/VDataTable/VDataTableRows.js","../node_modules/vuetify/lib/components/VTable/VTable.js","../node_modules/vuetify/lib/components/VDataTable/composables/items.js","../node_modules/vuetify/lib/components/VDataTable/composables/options.js","../node_modules/vuetify/lib/composables/filter.js","../node_modules/vuetify/lib/components/VDataTable/VDataTable.js","../src/components/UpDataTable/UpDataTable.vue","../node_modules/vuetify/lib/components/VCard/VCardActions.js","../node_modules/vuetify/lib/components/VCard/VCardSubtitle.js","../node_modules/vuetify/lib/components/VCard/VCardTitle.js","../node_modules/vuetify/lib/components/VCard/VCardItem.js","../node_modules/vuetify/lib/components/VCard/VCardText.js","../node_modules/vuetify/lib/components/VCard/VCard.js","../src/components/UpDatePicker/UpDatePicker.vue","../src/components/UpDivider/UpDivider.vue","../src/config/environments.ts","../src/components/UpEnvironmentBadge/UpEnvironmentBadge.vue","../src/components/UpFloatMenu/UpFloatMenu.vue","../src/components/UpNotification/UpNotification.vue","../src/components/UpPagination/UpPagination.vue","../src/components/UpProduct/UpProduct.vue","../node_modules/vuetify/lib/components/VRadio/VRadio.js","../node_modules/vuetify/lib/components/VRadioGroup/VRadioGroup.js","../src/components/UpRadio/UpRadio.vue","../node_modules/vuetify/lib/components/VAutocomplete/VAutocomplete.js","../src/components/UpSelect/UpSelect.vue","../src/components/UpSideBar/UpSideBar.vue","../src/components/UpStepper/UpStepper.vue","../src/components/UpSwitch/UpSwitch.vue","../src/components/UpTab/UpTab.vue","../src/components/UpTextField/UpTextField.vue","../src/components/UpTitleBar/UpTitleBar.vue","../src/components/UpToast/UpToast.vue","../node_modules/vuetify/lib/components/VTooltip/VTooltip.js","../src/components/UpTooltip/UpTooltip.vue","../src/components/UpWindow/UpWindow.vue","../src/install.ts","../src/utils/formatters.ts","../src/utils/helpers.ts","../src/composables/useToast.ts","../src/directives/textFormat.ts","../src/directives/index.ts"],"sourcesContent":["/* eslint-disable no-console */\n\n// Utilities\nimport { warn } from 'vue';\nexport function consoleWarn(message) {\n warn(`Vuetify: ${message}`);\n}\nexport function consoleError(message) {\n warn(`Vuetify error: ${message}`);\n}\nexport function deprecate(original, replacement) {\n replacement = Array.isArray(replacement) ? replacement.slice(0, -1).map(s => `'${s}'`).join(', ') + ` or '${replacement.at(-1)}'` : `'${replacement}'`;\n warn(`[Vuetify UPGRADE] '${original}' is deprecated, use ${replacement} instead.`);\n}\nexport function breaking(original, replacement) {\n // warn(`[Vuetify BREAKING] '${original}' has been removed, use '${replacement}' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide`)\n}\nexport function removed(original) {\n // warn(`[Vuetify REMOVED] '${original}' has been removed. You can safely omit it.`)\n}\n//# sourceMappingURL=console.js.map","export const IN_BROWSER = typeof window !== 'undefined';\nexport const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;\nexport const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);\nexport const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window;\nexport const SUPPORTS_MATCH_MEDIA = IN_BROWSER && 'matchMedia' in window && typeof window.matchMedia === 'function';\nexport const PREFERS_REDUCED_MOTION = () => SUPPORTS_MATCH_MEDIA && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n//# sourceMappingURL=globals.js.map","function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\n// Utilities\nimport { camelize, capitalize, Comment, Fragment, isProxy, isReactive, isRef, isVNode, reactive, shallowRef, toRaw, toRef, unref, watchEffect } from 'vue';\nimport { consoleError } from \"./console.js\";\nimport { IN_BROWSER } from \"./globals.js\"; // Types\nexport function getNestedValue(obj, path, fallback) {\n const last = path.length - 1;\n if (last < 0) return obj === undefined ? fallback : obj;\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback;\n }\n obj = obj[path[i]];\n }\n if (obj == null) return fallback;\n return obj[path[last]] === undefined ? fallback : obj[path[last]];\n}\nexport function getObjectValueByPath(obj, path, fallback) {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n if (obj == null || !path || typeof path !== 'string') return fallback;\n if (obj[path] !== undefined) return obj[path];\n path = path.replace(/\\[(\\w+)\\]/g, '.$1'); // convert indexes to properties\n path = path.replace(/^\\./, ''); // strip a leading dot\n return getNestedValue(obj, path.split('.'), fallback);\n}\nexport function getPropertyFromItem(item, property, fallback) {\n if (property === true) return item === undefined ? fallback : item;\n if (property == null || typeof property === 'boolean') return fallback;\n if (item !== Object(item)) {\n if (typeof property !== 'function') return fallback;\n const value = property(item, fallback);\n return typeof value === 'undefined' ? fallback : value;\n }\n if (typeof property === 'string') return getObjectValueByPath(item, property, fallback);\n if (Array.isArray(property)) return getNestedValue(item, property, fallback);\n if (typeof property !== 'function') return fallback;\n const value = property(item, fallback);\n return typeof value === 'undefined' ? fallback : value;\n}\nexport function createRange(length) {\n let start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return Array.from({\n length\n }, (v, k) => start + k);\n}\nexport function getZIndex(el) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0;\n const index = Number(window.getComputedStyle(el).getPropertyValue('z-index'));\n if (!index) return getZIndex(el.parentNode);\n return index;\n}\nexport function convertToUnit(str) {\n let unit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'px';\n if (str == null || str === '') {\n return undefined;\n }\n const num = Number(str);\n if (isNaN(num)) {\n return String(str);\n } else if (!isFinite(num)) {\n return undefined;\n } else {\n return `${num}${unit}`;\n }\n}\nexport function isObject(obj) {\n return obj !== null && typeof obj === 'object' && !Array.isArray(obj);\n}\nexport function isPlainObject(obj) {\n let proto;\n return obj !== null && typeof obj === 'object' && ((proto = Object.getPrototypeOf(obj)) === Object.prototype || proto === null);\n}\nexport function refElement(obj) {\n if (obj && '$el' in obj) {\n const el = obj.$el;\n if (el?.nodeType === Node.TEXT_NODE) {\n // Multi-root component, use the first element\n return el.nextElementSibling;\n }\n return el;\n }\n return obj;\n}\n\n// KeyboardEvent.keyCode aliases\nexport const keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16\n});\nexport const keyValues = Object.freeze({\n enter: 'Enter',\n tab: 'Tab',\n delete: 'Delete',\n esc: 'Escape',\n space: 'Space',\n up: 'ArrowUp',\n down: 'ArrowDown',\n left: 'ArrowLeft',\n right: 'ArrowRight',\n end: 'End',\n home: 'Home',\n del: 'Delete',\n backspace: 'Backspace',\n insert: 'Insert',\n pageup: 'PageUp',\n pagedown: 'PageDown',\n shift: 'Shift'\n});\nexport function keys(o) {\n return Object.keys(o);\n}\nexport function has(obj, key) {\n return key.every(k => obj.hasOwnProperty(k));\n}\n// Array of keys\nexport function pick(obj, paths) {\n const found = {};\n for (const key of paths) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n found[key] = obj[key];\n }\n }\n return found;\n}\n\n// Array of keys\n\n// Array of keys or RegExp to test keys against\n\nexport function pickWithRest(obj, paths, exclude) {\n const found = Object.create(null);\n const rest = Object.create(null);\n for (const key in obj) {\n if (paths.some(path => path instanceof RegExp ? path.test(key) : path === key) && !exclude?.some(path => path === key)) {\n found[key] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n }\n return [found, rest];\n}\nexport function omit(obj, exclude) {\n const clone = {\n ...obj\n };\n exclude.forEach(prop => delete clone[prop]);\n return clone;\n}\nconst onRE = /^on[^a-z]/;\nexport const isOn = key => onRE.test(key);\nconst bubblingEvents = ['onAfterscriptexecute', 'onAnimationcancel', 'onAnimationend', 'onAnimationiteration', 'onAnimationstart', 'onAuxclick', 'onBeforeinput', 'onBeforescriptexecute', 'onChange', 'onClick', 'onCompositionend', 'onCompositionstart', 'onCompositionupdate', 'onContextmenu', 'onCopy', 'onCut', 'onDblclick', 'onFocusin', 'onFocusout', 'onFullscreenchange', 'onFullscreenerror', 'onGesturechange', 'onGestureend', 'onGesturestart', 'onGotpointercapture', 'onInput', 'onKeydown', 'onKeypress', 'onKeyup', 'onLostpointercapture', 'onMousedown', 'onMousemove', 'onMouseout', 'onMouseover', 'onMouseup', 'onMousewheel', 'onPaste', 'onPointercancel', 'onPointerdown', 'onPointerenter', 'onPointerleave', 'onPointermove', 'onPointerout', 'onPointerover', 'onPointerup', 'onReset', 'onSelect', 'onSubmit', 'onTouchcancel', 'onTouchend', 'onTouchmove', 'onTouchstart', 'onTransitioncancel', 'onTransitionend', 'onTransitionrun', 'onTransitionstart', 'onWheel'];\nconst compositionIgnoreKeys = ['ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft', 'Enter', 'Escape', 'Tab', ' '];\nexport function isComposingIgnoreKey(e) {\n return e.isComposing && compositionIgnoreKeys.includes(e.key);\n}\n\n/**\n * Filter attributes that should be applied to\n * the root element of an input component. Remaining\n * attributes should be passed to the <input> element inside.\n */\nexport function filterInputAttrs(attrs) {\n const [events, props] = pickWithRest(attrs, [onRE]);\n const inputEvents = omit(events, bubblingEvents);\n const [rootAttrs, inputAttrs] = pickWithRest(props, ['class', 'style', 'id', /^data-/]);\n Object.assign(rootAttrs, events);\n Object.assign(inputAttrs, inputEvents);\n return [rootAttrs, inputAttrs];\n}\n\n/**\n * Returns the set difference of B and A, i.e. the set of elements in B but not in A\n */\nexport function arrayDiff(a, b) {\n const diff = [];\n for (let i = 0; i < b.length; i++) {\n if (!a.includes(b[i])) diff.push(b[i]);\n }\n return diff;\n}\nexport function wrapInArray(v) {\n return v == null ? [] : Array.isArray(v) ? v : [v];\n}\nexport function defaultFilter(value, search, item) {\n return value != null && search != null && typeof value !== 'boolean' && value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1;\n}\nexport function debounce(fn, delay) {\n let timeoutId = 0;\n const wrap = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn(...args), unref(delay));\n };\n wrap.clear = () => {\n clearTimeout(timeoutId);\n };\n wrap.immediate = fn;\n return wrap;\n}\nexport function clamp(value) {\n let min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n let max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n return Math.max(min, Math.min(max, value));\n}\nexport function getDecimals(value) {\n const trimmedStr = value.toString().trim();\n return trimmedStr.includes('.') ? trimmedStr.length - trimmedStr.indexOf('.') - 1 : 0;\n}\nexport function padEnd(str, length) {\n let char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';\n return str + char.repeat(Math.max(0, length - str.length));\n}\nexport function padStart(str, length) {\n let char = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';\n return char.repeat(Math.max(0, length - str.length)) + str;\n}\nexport function chunk(str) {\n let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n const chunked = [];\n let index = 0;\n while (index < str.length) {\n chunked.push(str.substr(index, size));\n index += size;\n }\n return chunked;\n}\nexport function chunkArray(array) {\n let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n return Array.from({\n length: Math.ceil(array.length / size)\n }, (v, i) => array.slice(i * size, i * size + size));\n}\nexport function humanReadableFileSize(bytes) {\n let base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\n if (bytes < base) {\n return `${bytes} B`;\n }\n const prefix = base === 1024 ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G'];\n let unit = -1;\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base;\n ++unit;\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`;\n}\nexport function mergeDeep() {\n let source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let arrayFn = arguments.length > 2 ? arguments[2] : undefined;\n const out = {};\n for (const key in source) {\n out[key] = source[key];\n }\n for (const key in target) {\n const sourceProperty = source[key];\n const targetProperty = target[key];\n\n // Only continue deep merging if\n // both properties are plain objects\n if (isPlainObject(sourceProperty) && isPlainObject(targetProperty)) {\n out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn);\n continue;\n }\n if (arrayFn && Array.isArray(sourceProperty) && Array.isArray(targetProperty)) {\n out[key] = arrayFn(sourceProperty, targetProperty);\n continue;\n }\n out[key] = targetProperty;\n }\n return out;\n}\nexport function flattenFragments(nodes) {\n return nodes.map(node => {\n if (node.type === Fragment) {\n return flattenFragments(node.children);\n } else {\n return node;\n }\n }).flat();\n}\nexport function toKebabCase() {\n let str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str);\n const kebab = str.replace(/[^a-z]/gi, '-').replace(/\\B([A-Z])/g, '-$1').toLowerCase();\n toKebabCase.cache.set(str, kebab);\n return kebab;\n}\ntoKebabCase.cache = new Map();\nexport function findChildrenWithProvide(key, vnode) {\n if (!vnode || typeof vnode !== 'object') return [];\n if (Array.isArray(vnode)) {\n return vnode.map(child => findChildrenWithProvide(key, child)).flat(1);\n } else if (vnode.suspense) {\n return findChildrenWithProvide(key, vnode.ssContent);\n } else if (Array.isArray(vnode.children)) {\n return vnode.children.map(child => findChildrenWithProvide(key, child)).flat(1);\n } else if (vnode.component) {\n if (Object.getOwnPropertySymbols(vnode.component.provides).includes(key)) {\n return [vnode.component];\n } else if (vnode.component.subTree) {\n return findChildrenWithProvide(key, vnode.component.subTree).flat(1);\n }\n }\n return [];\n}\nvar _arr = /*#__PURE__*/new WeakMap();\nvar _pointer = /*#__PURE__*/new WeakMap();\nexport class CircularBuffer {\n constructor(size) {\n _classPrivateFieldInitSpec(this, _arr, []);\n _classPrivateFieldInitSpec(this, _pointer, 0);\n this.size = size;\n }\n get isFull() {\n return _classPrivateFieldGet(_arr, this).length === this.size;\n }\n push(val) {\n _classPrivateFieldGet(_arr, this)[_classPrivateFieldGet(_pointer, this)] = val;\n _classPrivateFieldSet(_pointer, this, (_classPrivateFieldGet(_pointer, this) + 1) % this.size);\n }\n values() {\n return _classPrivateFieldGet(_arr, this).slice(_classPrivateFieldGet(_pointer, this)).concat(_classPrivateFieldGet(_arr, this).slice(0, _classPrivateFieldGet(_pointer, this)));\n }\n clear() {\n _classPrivateFieldGet(_arr, this).length = 0;\n _classPrivateFieldSet(_pointer, this, 0);\n }\n}\nexport function getEventCoordinates(e) {\n if ('touches' in e) {\n return {\n clientX: e.touches[0].clientX,\n clientY: e.touches[0].clientY\n };\n }\n return {\n clientX: e.clientX,\n clientY: e.clientY\n };\n}\n\n// Only allow a single return type\n\n/**\n * Convert a computed ref to a record of refs.\n * The getter function must always return an object with the same keys.\n */\n\nexport function destructComputed(getter) {\n const refs = reactive({});\n watchEffect(() => {\n const base = getter();\n for (const key in base) {\n refs[key] = base[key];\n }\n }, {\n flush: 'sync'\n });\n const obj = {};\n for (const key in refs) {\n obj[key] = toRef(() => refs[key]);\n }\n return obj;\n}\n\n/** Array.includes but value can be any type */\nexport function includes(arr, val) {\n return arr.includes(val);\n}\nexport function eventName(propName) {\n return propName[2].toLowerCase() + propName.slice(3);\n}\n\n// TODO: this should be an array but vue's types don't accept arrays: vuejs/core#8025\n\nexport const EventProp = () => [Function, Array];\nexport function hasEvent(props, name) {\n name = 'on' + capitalize(name);\n return !!(props[name] || props[`${name}Once`] || props[`${name}Capture`] || props[`${name}OnceCapture`] || props[`${name}CaptureOnce`]);\n}\nexport function callEvent(handler) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n if (Array.isArray(handler)) {\n for (const h of handler) {\n h(...args);\n }\n } else if (typeof handler === 'function') {\n handler(...args);\n }\n}\nexport function focusableChildren(el) {\n let filterByTabIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const targets = ['button', '[href]', 'input:not([type=\"hidden\"])', 'select', 'textarea', 'details:not(:has(> summary))', 'details > summary', '[tabindex]', '[contenteditable]:not([contenteditable=\"false\"])', 'audio[controls]', 'video[controls]'].map(s => `${s}${filterByTabIndex ? ':not([tabindex=\"-1\"])' : ''}:not([disabled], [inert])`).join(', ');\n let elements;\n try {\n elements = [...el.querySelectorAll(targets)];\n } catch (err) {\n consoleError(String(err));\n return [];\n }\n return elements.filter(x => !x.closest('[inert]')) // does not have inert parent\n .filter(x => !!x.offsetParent || x.getClientRects().length > 0) // is rendered\n .filter(x => !x.parentElement?.closest('details:not([open])') || x.tagName === 'SUMMARY' && x.parentElement?.tagName === 'DETAILS');\n}\nexport function getNextElement(elements, location, condition) {\n let _el;\n let idx = elements.indexOf(document.activeElement);\n const inc = location === 'next' ? 1 : -1;\n do {\n idx += inc;\n _el = elements[idx];\n } while ((!_el || _el.offsetParent == null || !(condition?.(_el) ?? true)) && idx < elements.length && idx >= 0);\n return _el;\n}\nexport function focusChild(el, location) {\n const focusable = focusableChildren(el);\n if (location == null) {\n if (el === document.activeElement || !el.contains(document.activeElement)) {\n focusable[0]?.focus();\n }\n } else if (location === 'first') {\n focusable[0]?.focus();\n } else if (location === 'last') {\n focusable.at(-1)?.focus();\n } else if (typeof location === 'number') {\n focusable[location]?.focus();\n } else {\n const _el = getNextElement(focusable, location);\n if (_el) _el.focus();else focusChild(el, location === 'next' ? 'first' : 'last');\n }\n}\nexport function isEmpty(val) {\n return val === null || val === undefined || typeof val === 'string' && val.trim() === '';\n}\nexport function noop() {}\n\n/** Returns null if the selector is not supported or we can't check */\nexport function matchesSelector(el, selector) {\n const supportsSelector = IN_BROWSER && typeof CSS !== 'undefined' && typeof CSS.supports !== 'undefined' && CSS.supports(`selector(${selector})`);\n if (!supportsSelector) return null;\n try {\n return !!el && el.matches(selector);\n } catch (err) {\n return null;\n }\n}\nexport function ensureValidVNode(vnodes) {\n return vnodes.some(child => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n return child.type !== Fragment || ensureValidVNode(child.children);\n }) ? vnodes : null;\n}\nexport function renderSlot(slot, props, fallback) {\n // TODO: check if slot returns elements: #18308\n return slot?.(props) ?? fallback?.(props);\n}\nexport function defer(timeout, cb) {\n if (!IN_BROWSER || timeout === 0) {\n cb();\n return () => {};\n }\n const timeoutId = window.setTimeout(cb, timeout);\n return () => window.clearTimeout(timeoutId);\n}\nexport function isClickInsideElement(event, targetDiv) {\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const divRect = targetDiv.getBoundingClientRect();\n const divLeft = divRect.left;\n const divTop = divRect.top;\n const divRight = divRect.right;\n const divBottom = divRect.bottom;\n return mouseX >= divLeft && mouseX <= divRight && mouseY >= divTop && mouseY <= divBottom;\n}\nexport function templateRef() {\n const el = shallowRef();\n const fn = target => {\n el.value = target;\n };\n Object.defineProperty(fn, 'value', {\n enumerable: true,\n get: () => el.value,\n set: val => el.value = val\n });\n Object.defineProperty(fn, 'el', {\n enumerable: true,\n get: () => refElement(el.value)\n });\n return fn;\n}\nexport function checkPrintable(e) {\n const isPrintableChar = e.key.length === 1;\n const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;\n return isPrintableChar && noModifier;\n}\nexport function isPrimitive(value) {\n return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint';\n}\nexport function escapeForRegex(sign) {\n return '\\\\^$*+?.()|{}[]'.includes(sign) ? `\\\\${sign}` : sign;\n}\nexport function extractNumber(text, decimalDigitsLimit, decimalSeparator) {\n const onlyValidCharacters = new RegExp(`[\\\\d\\\\-${escapeForRegex(decimalSeparator)}]`);\n const cleanText = text.split('').filter(x => onlyValidCharacters.test(x)).filter((x, i, all) => i === 0 && /[-]/.test(x) ||\n // sign allowed at the start\n x === decimalSeparator && i === all.indexOf(x) ||\n // decimal separator allowed only once\n /\\d/.test(x)).join('');\n if (decimalDigitsLimit === 0) {\n return cleanText.split(decimalSeparator)[0];\n }\n const decimalPart = new RegExp(`${escapeForRegex(decimalSeparator)}\\\\d`);\n if (decimalDigitsLimit !== null && decimalPart.test(cleanText)) {\n const parts = cleanText.split(decimalSeparator);\n return [parts[0], parts[1].substring(0, decimalDigitsLimit)].join(decimalSeparator);\n }\n return cleanText;\n}\nexport function camelizeProps(props) {\n const out = {};\n for (const prop in props) {\n out[camelize(prop)] = props[prop];\n }\n return out;\n}\nexport function onlyDefinedProps(props) {\n const booleanAttributes = ['checked', 'disabled'];\n return Object.fromEntries(Object.entries(props).filter(_ref => {\n let [key, v] = _ref;\n return booleanAttributes.includes(key) ? !!v : v !== undefined;\n }));\n}\nexport function deepToRaw(value) {\n const objectIterator = input => {\n if (Array.isArray(input)) {\n return input.map(item => objectIterator(item));\n }\n if (isRef(input) || isReactive(input) || isProxy(input)) {\n return objectIterator(toRaw(input));\n }\n if (isPlainObject(input)) {\n return Object.keys(input).reduce((acc, key) => {\n acc[key] = objectIterator(input[key]);\n return acc;\n }, {});\n }\n return input;\n };\n return objectIterator(value);\n}\n//# sourceMappingURL=helpers.js.map","// Utilities\nimport { includes } from \"./helpers.js\";\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.js.map","export class Box {\n constructor(args) {\n const pageScale = document.body.currentCSSZoom ?? 1;\n const factor = args instanceof DOMRect ? 1 + (1 - pageScale) / pageScale : 1;\n const {\n x,\n y,\n width,\n height\n } = args;\n this.x = x * factor;\n this.y = y * factor;\n this.width = width * factor;\n this.height = height * factor;\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 const pageScale = document.body.currentCSSZoom ?? 1;\n const factor = 1 + (1 - pageScale) / pageScale;\n return new Box({\n x: target[0] * factor,\n y: target[1] * factor,\n width: 0 * factor,\n height: 0 * factor\n });\n } else {\n return new Box(target.getBoundingClientRect());\n }\n}\nexport function getElementBox(el) {\n if (el === document.documentElement) {\n if (!visualViewport) {\n return new Box({\n x: 0,\n y: 0,\n width: document.documentElement.clientWidth,\n height: document.documentElement.clientHeight\n });\n } else {\n const pageScale = document.body.currentCSSZoom ?? 1;\n return new Box({\n x: visualViewport.scale > 1 ? 0 : visualViewport.offsetLeft,\n y: visualViewport.scale > 1 ? 0 : visualViewport.offsetTop,\n width: visualViewport.width * visualViewport.scale / pageScale,\n height: visualViewport.height * visualViewport.scale / pageScale\n });\n }\n } else {\n const rect = el.getBoundingClientRect();\n return new Box({\n x: rect.x,\n y: rect.y,\n width: el.clientWidth,\n height: el.clientHeight\n });\n }\n}\n//# sourceMappingURL=box.js.map","// Utilities\nimport { Box } from \"./box.js\";\n/** @see https://stackoverflow.com/a/57876601/2074736 */\nexport function nullifyTransforms(el) {\n const rect = new Box(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 = Number(ta[0]);\n sy = Number(ta[5]);\n dx = Number(ta[12]);\n dy = Number(ta[13]);\n } else if (tx.startsWith('matrix(')) {\n ta = tx.slice(7, -1).split(/, /);\n sx = Number(ta[0]);\n sy = Number(ta[3]);\n dx = Number(ta[4]);\n dy = Number(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.js.map","// Utilities\nimport { eventName, isOn } from \"./helpers.js\";\nconst handlers = new WeakMap();\nexport function bindProps(el, props) {\n Object.keys(props).forEach(k => {\n if (isOn(k)) {\n const name = eventName(k);\n const handler = handlers.get(el);\n if (props[k] == null) {\n handler?.forEach(v => {\n const [n, fn] = v;\n if (n === name) {\n el.removeEventListener(name, fn);\n handler.delete(v);\n }\n });\n } else if (!handler || ![...handler]?.some(v => v[0] === name && v[1] === props[k])) {\n el.addEventListener(name, props[k]);\n const _handler = handler || new Set();\n _handler.add([name, props[k]]);\n if (!handlers.has(el)) handlers.set(el, _handler);\n }\n } else {\n if (props[k] == null) {\n el.removeAttribute(k);\n } else {\n el.setAttribute(k, props[k]);\n }\n }\n });\n}\nexport function unbindProps(el, props) {\n Object.keys(props).forEach(k => {\n if (isOn(k)) {\n const name = eventName(k);\n const handler = handlers.get(el);\n handler?.forEach(v => {\n const [n, fn] = v;\n if (n === name) {\n el.removeEventListener(name, fn);\n handler.delete(v);\n }\n });\n } else {\n el.removeAttribute(k);\n }\n });\n}\n//# sourceMappingURL=bindProps.js.map","/**\n * WCAG 3.0 APCA perceptual contrast algorithm from https://github.com/Myndex/SAPC-APCA\n * @licence https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @see https://www.w3.org/WAI/GL/task-forces/silver/wiki/Visual_Contrast_of_Text_Subgroup\n */\n// Types\n\n// MAGICAL NUMBERS\n\n// sRGB Conversion to Relative Luminance (Y)\n\n// Transfer Curve (aka \"Gamma\") for sRGB linearization\n// Simple power curve vs piecewise described in docs\n// Essentially, 2.4 best models actual display\n// characteristics in combination with the total method\nconst mainTRC = 2.4;\nconst Rco = 0.2126729; // sRGB Red Coefficient (from matrix)\nconst Gco = 0.7151522; // sRGB Green Coefficient (from matrix)\nconst Bco = 0.0721750; // sRGB Blue Coefficient (from matrix)\n\n// For Finding Raw SAPC Contrast from Relative Luminance (Y)\n\n// Constants for SAPC Power Curve Exponents\n// One pair for normal text, and one for reverse\n// These are the \"beating heart\" of SAPC\nconst normBG = 0.55;\nconst normTXT = 0.58;\nconst revTXT = 0.57;\nconst revBG = 0.62;\n\n// For Clamping and Scaling Values\n\nconst blkThrs = 0.03; // Level that triggers the soft black clamp\nconst blkClmp = 1.45; // Exponent for the soft black clamp curve\nconst deltaYmin = 0.0005; // Lint trap\nconst scaleBoW = 1.25; // Scaling for dark text on light\nconst scaleWoB = 1.25; // Scaling for light text on dark\nconst loConThresh = 0.078; // Threshold for new simple offset scale\nconst loConFactor = 12.82051282051282; // = 1/0.078,\nconst loConOffset = 0.06; // The simple offset\nconst loClip = 0.001; // Output clip (lint trap #2)\n\nexport function APCAcontrast(text, background) {\n // Linearize sRGB\n const Rtxt = (text.r / 255) ** mainTRC;\n const Gtxt = (text.g / 255) ** mainTRC;\n const Btxt = (text.b / 255) ** mainTRC;\n const Rbg = (background.r / 255) ** mainTRC;\n const Gbg = (background.g / 255) ** mainTRC;\n const Bbg = (background.b / 255) ** mainTRC;\n\n // Apply the standard coefficients and sum to Y\n let Ytxt = Rtxt * Rco + Gtxt * Gco + Btxt * Bco;\n let Ybg = Rbg * Rco + Gbg * Gco + Bbg * Bco;\n\n // Soft clamp Y when near black.\n // Now clamping all colors to prevent crossover errors\n if (Ytxt <= blkThrs) Ytxt += (blkThrs - Ytxt) ** blkClmp;\n if (Ybg <= blkThrs) Ybg += (blkThrs - Ybg) ** blkClmp;\n\n // Return 0 Early for extremely low ∆Y (lint trap #1)\n if (Math.abs(Ybg - Ytxt) < deltaYmin) return 0.0;\n\n // SAPC CONTRAST\n\n let outputContrast; // For weighted final values\n if (Ybg > Ytxt) {\n // For normal polarity, black text on white\n // Calculate the SAPC contrast value and scale\n\n const SAPC = (Ybg ** normBG - Ytxt ** normTXT) * scaleBoW;\n\n // NEW! SAPC SmoothScale™\n // Low Contrast Smooth Scale Rollout to prevent polarity reversal\n // and also a low clip for very low contrasts (lint trap #2)\n // much of this is for very low contrasts, less than 10\n // therefore for most reversing needs, only loConOffset is important\n outputContrast = SAPC < loClip ? 0.0 : SAPC < loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC - loConOffset;\n } else {\n // For reverse polarity, light text on dark\n // WoB should always return negative value.\n\n const SAPC = (Ybg ** revBG - Ytxt ** revTXT) * scaleWoB;\n outputContrast = SAPC > -loClip ? 0.0 : SAPC > -loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC + loConOffset;\n }\n return outputContrast * 100;\n}\n//# sourceMappingURL=APCA.js.map","// Utilities\nimport { APCAcontrast } from \"./color/APCA.js\";\nimport { consoleWarn } from \"./console.js\";\nimport { chunk, has, padEnd } from \"./helpers.js\";\nimport * as CIELAB from \"./color/transformCIELAB.js\";\nimport * as sRGB from \"./color/transformSRGB.js\"; // Types\nexport function isCssColor(color) {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color);\n}\nexport function isParsableColor(color) {\n return isCssColor(color) && !/^((rgb|hsl)a?\\()?var\\(--/.test(color);\n}\nconst cssColorRe = /^(?<fn>(?:rgb|hsl)a?)\\((?<values>.+)\\)/;\nconst mappers = {\n rgb: (r, g, b, a) => ({\n r,\n g,\n b,\n a\n }),\n rgba: (r, g, b, a) => ({\n r,\n g,\n b,\n a\n }),\n hsl: (h, s, l, a) => HSLtoRGB({\n h,\n s,\n l,\n a\n }),\n hsla: (h, s, l, a) => HSLtoRGB({\n h,\n s,\n l,\n a\n }),\n hsv: (h, s, v, a) => HSVtoRGB({\n h,\n s,\n v,\n a\n }),\n hsva: (h, s, v, a) => HSVtoRGB({\n h,\n s,\n v,\n a\n })\n};\nexport function parseColor(color) {\n if (typeof color === 'number') {\n if (isNaN(color) || color < 0 || color > 0xFFFFFF) {\n // int can't have opacity\n consoleWarn(`'${color}' is not a valid hex color`);\n }\n return {\n r: (color & 0xFF0000) >> 16,\n g: (color & 0xFF00) >> 8,\n b: color & 0xFF\n };\n } else if (typeof color === 'string' && cssColorRe.test(color)) {\n const {\n groups\n } = color.match(cssColorRe);\n const {\n fn,\n values\n } = groups;\n const realValues = values.split(/,\\s*|\\s*\\/\\s*|\\s+/).map((v, i) => {\n if (v.endsWith('%') ||\n // unitless slv are %\n i > 0 && i < 3 && ['hsl', 'hsla', 'hsv', 'hsva'].includes(fn)) {\n return parseFloat(v) / 100;\n } else {\n return parseFloat(v);\n }\n });\n return mappers[fn](...realValues);\n } else if (typeof color === 'string') {\n let hex = color.startsWith('#') ? color.slice(1) : color;\n if ([3, 4].includes(hex.length)) {\n hex = hex.split('').map(char => char + char).join('');\n } else if (![6, 8].includes(hex.length)) {\n consoleWarn(`'${color}' is not a valid hex(a) color`);\n }\n const int = parseInt(hex, 16);\n if (isNaN(int) || int < 0 || int > 0xFFFFFFFF) {\n consoleWarn(`'${color}' is not a valid hex(a) color`);\n }\n return HexToRGB(hex);\n } else if (typeof color === 'object') {\n if (has(color, ['r', 'g', 'b'])) {\n return color;\n } else if (has(color, ['h', 's', 'l'])) {\n return HSVtoRGB(HSLtoHSV(color));\n } else if (has(color, ['h', 's', 'v'])) {\n return HSVtoRGB(color);\n }\n }\n throw new TypeError(`Invalid color: ${color == null ? color : String(color) || color.constructor.name}\\nExpected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`);\n}\nexport function RGBToInt(color) {\n return (color.r << 16) + (color.g << 8) + color.b;\n}\nexport function classToHex(color, colors, currentTheme) {\n const [colorName, colorModifier] = color.toString().trim().replace('-', '').split(' ', 2);\n let hexColor = '';\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier];\n } else if ('base' in colors[colorName]) {\n hexColor = colors[colorName].base;\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName];\n }\n return hexColor;\n}\n\n/** Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function HSVtoRGB(hsva) {\n const {\n h,\n s,\n v,\n a\n } = hsva;\n const f = n => {\n const k = (n + h / 60) % 6;\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n };\n const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255));\n return {\n r: rgb[0],\n g: rgb[1],\n b: rgb[2],\n a\n };\n}\nexport function HSLtoRGB(hsla) {\n return HSVtoRGB(HSLtoHSV(hsla));\n}\n\n/** Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV */\nexport function RGBtoHSV(rgba) {\n if (!rgba) return {\n h: 0,\n s: 1,\n v: 1,\n a: 1\n };\n const r = rgba.r / 255;\n const g = rgba.g / 255;\n const b = rgba.b / 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + (g - b) / (max - min));\n } else if (max === g) {\n h = 60 * (2 + (b - r) / (max - min));\n } else if (max === b) {\n h = 60 * (4 + (r - g) / (max - min));\n }\n }\n if (h < 0) h = h + 360;\n const s = max === 0 ? 0 : (max - min) / max;\n const hsv = [h, s, max];\n return {\n h: hsv[0],\n s: hsv[1],\n v: hsv[2],\n a: rgba.a\n };\n}\nexport function HSVtoHSL(hsva) {\n const {\n h,\n s,\n v,\n a\n } = hsva;\n const l = v - v * s / 2;\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l);\n return {\n h,\n s: sprime,\n l,\n a\n };\n}\nexport function HSLtoHSV(hsl) {\n const {\n h,\n s,\n l,\n a\n } = hsl;\n const v = l + s * Math.min(l, 1 - l);\n const sprime = v === 0 ? 0 : 2 - 2 * l / v;\n return {\n h,\n s: sprime,\n v,\n a\n };\n}\nexport function RGBtoCSS(_ref) {\n let {\n r,\n g,\n b,\n a\n } = _ref;\n return a === undefined ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${a})`;\n}\nexport function HSVtoCSS(hsva) {\n return RGBtoCSS(HSVtoRGB(hsva));\n}\nfunction toHex(v) {\n const h = Math.round(v).toString(16);\n return ('00'.substr(0, 2 - h.length) + h).toUpperCase();\n}\nexport function RGBtoHex(_ref2) {\n let {\n r,\n g,\n b,\n a\n } = _ref2;\n return `#${[toHex(r), toHex(g), toHex(b), a !== undefined ? toHex(Math.round(a * 255)) : ''].join('')}`;\n}\nexport function HexToRGB(hex) {\n hex = parseHex(hex);\n let [r, g, b, a] = chunk(hex, 2).map(c => parseInt(c, 16));\n a = a === undefined ? a : a / 255;\n return {\n r,\n g,\n b,\n a\n };\n}\nexport function HexToHSV(hex) {\n const rgb = HexToRGB(hex);\n return RGBtoHSV(rgb);\n}\nexport function HSVtoHex(hsva) {\n return RGBtoHex(HSVtoRGB(hsva));\n}\nexport function parseHex(hex) {\n if (hex.startsWith('#')) {\n hex = hex.slice(1);\n }\n hex = hex.replace(/([^0-9a-f])/gi, 'F');\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(x => x + x).join('');\n }\n if (hex.length !== 6) {\n hex = padEnd(padEnd(hex, 6), 8, 'F');\n }\n return hex;\n}\nexport function parseGradient(gradient, colors, currentTheme) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n return classToHex(x, colors, currentTheme) || x;\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n return 'rgba(' + Object.values(HexToRGB(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',');\n });\n}\nexport function lighten(value, amount) {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value));\n lab[0] = lab[0] + amount * 10;\n return sRGB.fromXYZ(CIELAB.toXYZ(lab));\n}\nexport function darken(value, amount) {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value));\n lab[0] = lab[0] - amount * 10;\n return sRGB.fromXYZ(CIELAB.toXYZ(lab));\n}\n\n/**\n * Calculate the relative luminance of a given color\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nexport function getLuma(color) {\n const rgb = parseColor(color);\n return sRGB.toXYZ(rgb)[1];\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n * @see https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n */\nexport function getContrast(first, second) {\n const l1 = getLuma(first);\n const l2 = getLuma(second);\n const light = Math.max(l1, l2);\n const dark = Math.min(l1, l2);\n return (light + 0.05) / (dark + 0.05);\n}\nexport function getForeground(color) {\n const blackContrast = Math.abs(APCAcontrast(parseColor(0), parseColor(color)));\n const whiteContrast = Math.abs(APCAcontrast(parseColor(0xffffff), parseColor(color)));\n\n // TODO: warn about poor color selections\n // const contrastAsText = Math.abs(APCAcontrast(colorVal, colorToInt(theme.colors.background)))\n // const minContrast = Math.max(blackContrast, whiteContrast)\n // if (minContrast < 60) {\n // consoleInfo(`${key} theme color ${color} has poor contrast (${minContrast.toFixed()}%)`)\n // } else if (contrastAsText < 60 && !['background', 'surface'].includes(color)) {\n // consoleInfo(`${key} theme color ${color} has poor contrast as text (${contrastAsText.toFixed()}%)`)\n // }\n\n // Prefer white text if both have an acceptable contrast ratio\n return whiteContrast > Math.min(blackContrast, 50) ? '#fff' : '#000';\n}\n//# sourceMappingURL=colorUtils.js.map","// Types\n// eslint-disable-line vue/prefer-import-from-vue\n\n/**\n * Creates a factory function for props definitions.\n * This is used to define props in a composable then override\n * default values in an implementing component.\n *\n * @example Simplified signature\n * (props: Props) => (defaults?: Record<keyof props, any>) => Props\n *\n * @example Usage\n * const makeProps = propsFactory({\n * foo: String,\n * })\n *\n * defineComponent({\n * props: {\n * ...makeProps({\n * foo: 'a',\n * }),\n * },\n * setup (props) {\n * // would be \"string | undefined\", now \"string\" because a default has been provided\n * props.foo\n * },\n * }\n */\n\nexport function propsFactory(props, source) {\n return defaults => {\n return Object.keys(props).reduce((obj, prop) => {\n const isObjectDefinition = typeof props[prop] === 'object' && props[prop] != null && !Array.isArray(props[prop]);\n const definition = isObjectDefinition ? props[prop] : {\n type: props[prop]\n };\n if (defaults && prop in defaults) {\n obj[prop] = {\n ...definition,\n default: defaults[prop]\n };\n } else {\n obj[prop] = definition;\n }\n if (source && !obj[prop].source) {\n obj[prop].source = source;\n }\n return obj;\n }, {});\n };\n}\n\n/**\n * Like `Partial<T>` but doesn't care what the value is\n */\n\n// Copied from Vue\n//# sourceMappingURL=propsFactory.js.map","// Utilities\nimport { propsFactory } from \"../util/propsFactory.js\"; // 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.js.map","// Utilities\nimport { getCurrentInstance as _getCurrentInstance } from 'vue';\nimport { toKebabCase } from \"./helpers.js\";\nexport function getCurrentInstance(name, message) {\n const vm = _getCurrentInstance();\n if (!vm) {\n throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);\n }\n return vm;\n}\nexport function getCurrentInstanceName() {\n let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';\n const vm = getCurrentInstance(name).type;\n return toKebabCase(vm?.aliasName || vm?.name);\n}\n//# sourceMappingURL=getCurrentInstance.js.map","// Utilities\nimport { getCurrentInstance } from \"./getCurrentInstance.js\"; // Types\nexport function injectSelf(key) {\n let vm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstance('injectSelf');\n const {\n provides\n } = vm;\n if (provides && key in provides) {\n // TS doesn't allow symbol as index type\n return provides[key];\n }\n return undefined;\n}\n//# sourceMappingURL=injectSelf.js.map","// Utilities\nimport { computed, inject, provide, ref, shallowRef, unref, watchEffect } from 'vue';\nimport { getCurrentInstance } from \"../util/getCurrentInstance.js\";\nimport { mergeDeep, toKebabCase } from \"../util/helpers.js\";\nimport { injectSelf } from \"../util/injectSelf.js\"; // Types\nexport const DefaultsSymbol = Symbol.for('vuetify:defaults');\nexport function createDefaults(options) {\n return ref(options);\n}\nexport function injectDefaults() {\n const defaults = inject(DefaultsSymbol);\n if (!defaults) throw new Error('[Vuetify] Could not find defaults instance');\n return defaults;\n}\nexport function provideDefaults(defaults, options) {\n const injectedDefaults = injectDefaults();\n const providedDefaults = ref(defaults);\n const newDefaults = computed(() => {\n const disabled = unref(options?.disabled);\n if (disabled) return injectedDefaults.value;\n const scoped = unref(options?.scoped);\n const reset = unref(options?.reset);\n const root = unref(options?.root);\n if (providedDefaults.value == null && !(scoped || reset || root)) return injectedDefaults.value;\n let properties = mergeDeep(providedDefaults.value, {\n prev: injectedDefaults.value\n });\n if (scoped) return properties;\n if (reset || root) {\n const len = Number(reset || Infinity);\n for (let i = 0; i <= len; i++) {\n if (!properties || !('prev' in properties)) {\n break;\n }\n properties = properties.prev;\n }\n if (properties && typeof root === 'string' && root in properties) {\n properties = mergeDeep(mergeDeep(properties, {\n prev: properties\n }), properties[root]);\n }\n return properties;\n }\n return properties.prev ? mergeDeep(properties.prev, properties) : properties;\n });\n provide(DefaultsSymbol, newDefaults);\n return newDefaults;\n}\nfunction propIsDefined(vnode, prop) {\n return vnode.props && (typeof vnode.props[prop] !== 'undefined' || typeof vnode.props[toKebabCase(prop)] !== 'undefined');\n}\nexport function internalUseDefaults() {\n let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let name = arguments.length > 1 ? arguments[1] : undefined;\n let defaults = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : injectDefaults();\n const vm = getCurrentInstance('useDefaults');\n name = name ?? vm.type.name ?? vm.type.__name;\n if (!name) {\n throw new Error('[Vuetify] Could not determine component name');\n }\n const componentDefaults = computed(() => defaults.value?.[props._as ?? name]);\n const _props = new Proxy(props, {\n get(target, prop) {\n const propValue = Reflect.get(target, prop);\n if (prop === 'class' || prop === 'style') {\n return [componentDefaults.value?.[prop], propValue].filter(v => v != null);\n }\n if (propIsDefined(vm.vnode, prop)) return propValue;\n const _componentDefault = componentDefaults.value?.[prop];\n if (_componentDefault !== undefined) return _componentDefault;\n const _globalDefault = defaults.value?.global?.[prop];\n if (_globalDefault !== undefined) return _globalDefault;\n return propValue;\n }\n });\n const _subcomponentDefaults = shallowRef();\n watchEffect(() => {\n if (componentDefaults.value) {\n const subComponents = Object.entries(componentDefaults.value).filter(_ref => {\n let [key] = _ref;\n return key.startsWith(key[0].toUpperCase());\n });\n _subcomponentDefaults.value = subComponents.length ? Object.fromEntries(subComponents) : undefined;\n } else {\n _subcomponentDefaults.value = undefined;\n }\n });\n function provideSubDefaults() {\n const injected = injectSelf(DefaultsSymbol, vm);\n provide(DefaultsSymbol, computed(() => {\n return _subcomponentDefaults.value ? mergeDeep(injected?.value ?? {}, _subcomponentDefaults.value) : injected?.value;\n }));\n }\n return {\n props: _props,\n provideSubDefaults\n };\n}\nexport function useDefaults() {\n let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let name = arguments.length > 1 ? arguments[1] : undefined;\n const {\n props: _props,\n provideSubDefaults\n } = internalUseDefaults(props, name);\n provideSubDefaults();\n return _props;\n}\n//# sourceMappingURL=defaults.js.map","// Composables\nimport { injectDefaults, internalUseDefaults } from \"../composables/defaults.js\"; // Utilities\nimport { defineComponent as _defineComponent // eslint-disable-line no-restricted-imports\n} from 'vue';\nimport { consoleWarn } from \"./console.js\";\nimport { pick } from \"./helpers.js\";\nimport { propsFactory } from \"./propsFactory.js\"; // Types\n// No props\n// Object Props\n// Implementation\nexport function defineComponent(options) {\n options._setup = options._setup ?? options.setup;\n if (!options.name) {\n consoleWarn('The component is missing an explicit name, unable to generate default prop value');\n return options;\n }\n if (options._setup) {\n options.props = propsFactory(options.props ?? {}, options.name)();\n const propKeys = Object.keys(options.props).filter(key => key !== 'class' && key !== 'style');\n options.filterProps = function filterProps(props) {\n return pick(props, propKeys);\n };\n options.props._as = String;\n options.setup = function setup(props, ctx) {\n const defaults = injectDefaults();\n\n // Skip props proxy if defaults are not provided\n if (!defaults.value) return options._setup(props, ctx);\n const {\n props: _props,\n provideSubDefaults\n } = internalUseDefaults(props, props._as ?? options.name, defaults);\n const setupBindings = options._setup(_props, ctx);\n provideSubDefaults();\n return setupBindings;\n };\n }\n return options;\n}\n\n// No argument - simple default slot\n\n// Generic constructor argument - generic props and slots\n\n// Slots argument - simple slots\n\n// Implementation\nexport function genericComponent() {\n let exposeDefaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n return options => (exposeDefaults ? defineComponent : _defineComponent)(options);\n}\nexport function defineFunctionalComponent(props, render) {\n render.props = props;\n return render;\n}\n\n// Adds a filterProps method to the component options\n\n// https://github.com/vuejs/core/pull/10557\n\n// not a vue Component\n//# sourceMappingURL=defineComponent.js.map","// Composables\nimport { makeComponentProps } from \"../composables/component.js\"; // Utilities\nimport { camelize, capitalize, h } from 'vue';\nimport { genericComponent } from \"./defineComponent.js\";\nexport function createSimpleFunctional(klass) {\n let tag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'div';\n let name = arguments.length > 2 ? arguments[2] : undefined;\n return genericComponent()({\n name: name ?? capitalize(camelize(klass.replace(/__/g, '-'))),\n props: {\n tag: {\n type: String,\n default: tag\n },\n ...makeComponentProps()\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n return () => {\n return h(props.tag, {\n class: [klass, props.class],\n style: props.style\n }, slots.default?.());\n };\n }\n });\n}\n//# sourceMappingURL=createSimpleFunctional.js.map","import { isPrimitive } from \"./helpers.js\";\nfunction updateRecursionCache(a, b, cache, result) {\n if (!cache || isPrimitive(a) || isPrimitive(b)) return;\n const visitedObject = cache.get(a);\n if (visitedObject) {\n visitedObject.set(b, result);\n } else {\n const newCacheItem = new WeakMap();\n newCacheItem.set(b, result);\n cache.set(a, newCacheItem);\n }\n}\nfunction findCachedComparison(a, b, cache) {\n if (!cache || isPrimitive(a) || isPrimitive(b)) return null;\n const r1 = cache.get(a)?.get(b);\n if (typeof r1 === 'boolean') return r1;\n const r2 = cache.get(b)?.get(a);\n if (typeof r2 === 'boolean') return r2;\n return null;\n}\nexport function deepEqual(a, b) {\n let recursionCache = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new WeakMap();\n if (a === b) return true;\n if (a instanceof Date && b instanceof Date && a.getTime() !== b.getTime()) {\n // If the values are Date, compare them as timestamps\n return false;\n }\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false;\n }\n const props = Object.keys(a);\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false;\n }\n const cachedComparisonResult = findCachedComparison(a, b, recursionCache);\n if (cachedComparisonResult) {\n return cachedComparisonResult;\n }\n updateRecursionCache(a, b, recursionCache, true);\n return props.every(p => deepEqual(a[p], b[p], recursionCache));\n}\n//# sourceMappingURL=deepEqual.js.map","/**\n * Returns:\n * - 'null' if the node is not attached to the DOM\n * - the root node (HTMLDocument | ShadowRoot) otherwise\n */\nexport function attachedRoot(node) {\n /* istanbul ignore next */\n if (typeof node.getRootNode !== 'function') {\n // Shadow DOM not supported (IE11), lets find the root of this node\n while (node.parentNode) node = node.parentNode;\n\n // The root parent is the document if the node is attached to the DOM\n if (node !== document) return null;\n return document;\n }\n const root = node.getRootNode();\n\n // The composed root node is the document if the node is attached to the DOM\n if (root !== document && root.getRootNode({\n composed: true\n }) !== document) return null;\n return root;\n}\n//# sourceMappingURL=dom.js.map","// Utilities\nimport { computed, shallowRef, toValue, watch } from 'vue';\nimport { clamp } from \"./helpers.js\";\nimport { PREFERS_REDUCED_MOTION } from \"./globals.js\"; // Types\nexport 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\nexport const easingPatterns = {\n linear: t => t,\n easeInQuad: t => t ** 2,\n easeOutQuad: t => t * (2 - t),\n easeInOutQuad: t => t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t,\n easeInCubic: t => t ** 3,\n easeOutCubic: t => --t ** 3 + 1,\n easeInOutCubic: t => t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,\n easeInQuart: t => t ** 4,\n easeOutQuart: t => 1 - --t ** 4,\n easeInOutQuart: t => t < 0.5 ? 8 * t ** 4 : 1 - 8 * --t ** 4,\n easeInQuint: t => t ** 5,\n easeOutQuint: t => 1 + --t ** 5,\n easeInOutQuint: t => t < 0.5 ? 16 * t ** 5 : 1 + 16 * --t ** 5,\n instant: t => 1\n};\nexport function useTransition(source, options) {\n const defaultTransition = {\n duration: 300,\n transition: easingPatterns.easeInOutCubic\n };\n let raf = -1;\n const outputRef = shallowRef(toValue(source));\n watch(() => toValue(source), async to => {\n cancelAnimationFrame(raf);\n const easing = {\n ...defaultTransition,\n ...toValue(options)\n };\n await executeTransition(outputRef, outputRef.value, to, easing);\n });\n function executeTransition(out, from, to, options) {\n const startTime = performance.now();\n const ease = PREFERS_REDUCED_MOTION() ? easingPatterns.instant : options.transition ?? easingPatterns.easeInOutCubic;\n return new Promise(resolve => {\n raf = requestAnimationFrame(function step(currentTime) {\n const timeElapsed = currentTime - startTime;\n const progress = timeElapsed / options.duration;\n out.value = from + (to - from) * ease(clamp(progress, 0, 1));\n if (progress < 1) {\n raf = requestAnimationFrame(step);\n } else {\n out.value = to;\n resolve();\n }\n });\n });\n }\n return computed(() => outputRef.value);\n}\n//# sourceMappingURL=easing.js.map","// Utilities\nimport { callEvent, isOn } from \"./helpers.js\";\nexport function getPrefixedEventHandlers(attrs, suffix, getData) {\n return Object.keys(attrs).filter(key => isOn(key) && key.endsWith(suffix)).reduce((acc, key) => {\n acc[key.slice(0, -suffix.length)] = event => callEvent(attrs[key], event, getData(event));\n return acc;\n }, {});\n}\n//# sourceMappingURL=events.js.map","export function getScrollParent(el) {\n let includeHidden = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n while (el) {\n if (includeHidden ? isPotentiallyScrollable(el) : hasScrollbar(el)) return el;\n el = el.parentElement;\n }\n return document.scrollingElement;\n}\nexport function getScrollParents(el, stopAt) {\n const elements = [];\n if (stopAt && el && !stopAt.contains(el)) return elements;\n while (el) {\n if (hasScrollbar(el)) elements.push(el);\n if (el === stopAt) break;\n el = el.parentElement;\n }\n return elements;\n}\nexport function hasScrollbar(el) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;\n const style = window.getComputedStyle(el);\n const hasVerticalScrollbar = style.overflowY === 'scroll' || style.overflowY === 'auto' && el.scrollHeight > el.clientHeight;\n const hasHorizontalScrollbar = style.overflowX === 'scroll' || style.overflowX === 'auto' && el.scrollWidth > el.clientWidth;\n return hasVerticalScrollbar || hasHorizontalScrollbar;\n}\nfunction isPotentiallyScrollable(el) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;\n const style = window.getComputedStyle(el);\n return ['scroll', 'auto'].includes(style.overflowY);\n}\n//# sourceMappingURL=getScrollParent.js.map","export function isFixedPosition(el) {\n while (el) {\n if (window.getComputedStyle(el).position === 'fixed') {\n return true;\n }\n el = el.offsetParent;\n }\n return false;\n}\n//# sourceMappingURL=isFixedPosition.js.map","// Utilities\nimport { getCurrentInstance } from \"./getCurrentInstance.js\"; // Types\nexport function useRender(render) {\n const vm = getCurrentInstance('useRender');\n vm.render = render;\n}\n//# sourceMappingURL=useRender.js.map","export function throttle(fn, delay) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n leading: true,\n trailing: true\n };\n let timeoutId = 0;\n let lastExec = 0;\n let throttling = false;\n let start = 0;\n function clear() {\n clearTimeout(timeoutId);\n throttling = false;\n start = 0;\n }\n const wrap = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n clearTimeout(timeoutId);\n const now = Date.now();\n if (!start) start = now;\n const elapsed = now - Math.max(start, lastExec);\n function invoke() {\n lastExec = Date.now();\n timeoutId = setTimeout(clear, delay);\n fn(...args);\n }\n if (!throttling) {\n throttling = true;\n if (options.leading) {\n invoke();\n }\n } else if (elapsed >= delay) {\n invoke();\n } else if (options.trailing) {\n timeoutId = setTimeout(invoke, delay - elapsed);\n }\n };\n wrap.clear = clear;\n wrap.immediate = fn;\n return wrap;\n}\n//# sourceMappingURL=throttle.js.map","import { createVNode as _createVNode, createElementVNode as _createElementVNode, mergeProps as _mergeProps, normalizeClass as _normalizeClass } from \"vue\";\n// Icons\nimport { aliases, mdi } from \"../iconsets/mdi.js\"; // Utilities\nimport { computed, inject, toValue } from 'vue';\nimport { consoleWarn, defineComponent, genericComponent, mergeDeep, propsFactory } from \"../util/index.js\"; // Types\nexport const IconValue = [String, Function, Object, Array];\nexport const IconSymbol = Symbol.for('vuetify:icons');\nexport const makeIconProps = propsFactory({\n icon: {\n type: IconValue\n },\n // Could not remove this and use makeTagProps, types complained because it is not required\n tag: {\n type: [String, Object, Function],\n required: true\n }\n}, 'icon');\nexport const VComponentIcon = genericComponent()({\n name: 'VComponentIcon',\n props: makeIconProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n return () => {\n const Icon = props.icon;\n return _createVNode(props.tag, null, {\n default: () => [props.icon ? _createVNode(Icon, null, null) : slots.default?.()]\n });\n };\n }\n});\nexport const VSvgIcon = defineComponent({\n name: 'VSvgIcon',\n inheritAttrs: false,\n props: makeIconProps(),\n setup(props, _ref2) {\n let {\n attrs\n } = _ref2;\n return () => {\n return _createVNode(props.tag, _mergeProps(attrs, {\n \"style\": null\n }), {\n default: () => [_createElementVNode(\"svg\", {\n \"class\": \"v-icon__svg\",\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"viewBox\": \"0 0 24 24\",\n \"role\": \"img\",\n \"aria-hidden\": \"true\"\n }, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? _createElementVNode(\"path\", {\n \"d\": path[0],\n \"fill-opacity\": path[1]\n }, null) : _createElementVNode(\"path\", {\n \"d\": path\n }, null)) : _createElementVNode(\"path\", {\n \"d\": props.icon\n }, null)])]\n });\n };\n }\n});\nexport const VLigatureIcon = defineComponent({\n name: 'VLigatureIcon',\n props: makeIconProps(),\n setup(props) {\n return () => {\n return _createVNode(props.tag, null, {\n default: () => [props.icon]\n });\n };\n }\n});\nexport const VClassIcon = defineComponent({\n name: 'VClassIcon',\n props: makeIconProps(),\n setup(props) {\n return () => {\n return _createVNode(props.tag, {\n \"class\": _normalizeClass(props.icon)\n }, null);\n };\n }\n});\nfunction genDefaults() {\n return {\n svg: {\n component: VSvgIcon\n },\n class: {\n component: VClassIcon\n }\n };\n}\n\n// Composables\nexport function createIcons(options) {\n const sets = genDefaults();\n const defaultSet = options?.defaultSet ?? 'mdi';\n if (defaultSet === 'mdi' && !sets.mdi) {\n sets.mdi = mdi;\n }\n return mergeDeep({\n defaultSet,\n sets,\n aliases: {\n ...aliases,\n /* eslint-disable max-len */\n vuetify: ['M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z', ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6]],\n 'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z',\n 'vuetify-play': ['m6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z', ['M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z', 0.6]]\n /* eslint-enable max-len */\n }\n }, options);\n}\nexport const useIcon = props => {\n const icons = inject(IconSymbol);\n if (!icons) throw new Error('Missing Vuetify Icons provide!');\n const iconData = computed(() => {\n const iconAlias = toValue(props);\n if (!iconAlias) return {\n component: VComponentIcon\n };\n let icon = iconAlias;\n if (typeof icon === 'string') {\n icon = icon.trim();\n if (icon.startsWith('$')) {\n icon = icons.aliases?.[icon.slice(1)];\n }\n }\n if (!icon) consoleWarn(`Could not find aliased icon \"${iconAlias}\"`);\n if (Array.isArray(icon)) {\n return {\n component: VSvgIcon,\n icon\n };\n } else if (typeof icon !== 'string') {\n return {\n component: VComponentIcon,\n icon\n };\n }\n const iconSetName = Object.keys(icons.sets).find(setName => typeof icon === 'string' && icon.startsWith(`${setName}:`));\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;\n const iconSet = icons.sets[iconSetName ?? icons.defaultSet];\n return {\n component: iconSet.component,\n icon: iconName\n };\n });\n return {\n iconData\n };\n};\n//# sourceMappingURL=icons.js.map","// Composables\nimport { VClassIcon } from \"../composables/icons.js\"; // Utilities\nimport { h } from 'vue';\n\n// Types\n\nconst aliases = {\n collapse: 'mdi-chevron-up',\n complete: 'mdi-check',\n cancel: 'mdi-close-circle',\n close: 'mdi-close',\n delete: 'mdi-close-circle',\n // delete (e.g. v-chip close)\n clear: 'mdi-close-circle',\n success: 'mdi-check-circle',\n info: 'mdi-information',\n warning: 'mdi-alert-circle',\n error: 'mdi-close-circle',\n prev: 'mdi-chevron-left',\n next: 'mdi-chevron-right',\n checkboxOn: 'mdi-checkbox-marked',\n checkboxOff: 'mdi-checkbox-blank-outline',\n checkboxIndeterminate: 'mdi-minus-box',\n delimiter: 'mdi-circle',\n // for carousel\n sortAsc: 'mdi-arrow-up',\n sortDesc: 'mdi-arrow-down',\n expand: 'mdi-chevron-down',\n menu: 'mdi-menu',\n subgroup: 'mdi-menu-down',\n dropdown: 'mdi-menu-down',\n radioOn: 'mdi-radiobox-marked',\n radioOff: 'mdi-radiobox-blank',\n edit: 'mdi-pencil',\n ratingEmpty: 'mdi-star-outline',\n ratingFull: 'mdi-star',\n ratingHalf: 'mdi-star-half-full',\n loading: 'mdi-cached',\n first: 'mdi-page-first',\n last: 'mdi-page-last',\n unfold: 'mdi-unfold-more-horizontal',\n file: 'mdi-paperclip',\n plus: 'mdi-plus',\n minus: 'mdi-minus',\n calendar: 'mdi-calendar',\n treeviewCollapse: 'mdi-menu-down',\n treeviewExpand: 'mdi-menu-right',\n tableGroupCollapse: 'mdi-chevron-down',\n tableGroupExpand: 'mdi-chevron-right',\n eyeDropper: 'mdi-eyedropper',\n upload: 'mdi-cloud-upload',\n color: 'mdi-palette',\n command: 'mdi-apple-keyboard-command',\n ctrl: 'mdi-apple-keyboard-control',\n space: 'mdi-keyboard-space',\n shift: 'mdi-apple-keyboard-shift',\n alt: 'mdi-apple-keyboard-option',\n enter: 'mdi-keyboard-return',\n arrowup: 'mdi-arrow-up',\n arrowdown: 'mdi-arrow-down',\n arrowleft: 'mdi-arrow-left',\n arrowright: 'mdi-arrow-right',\n backspace: 'mdi-backspace',\n play: 'mdi-play',\n pause: 'mdi-pause',\n fullscreen: 'mdi-fullscreen',\n fullscreenExit: 'mdi-fullscreen-exit',\n volumeHigh: 'mdi-volume-high',\n volumeMedium: 'mdi-volume-medium',\n volumeLow: 'mdi-volume-low',\n volumeOff: 'mdi-volume-variant-off'\n};\nconst mdi = {\n // Not using mergeProps here, functional components merge props by default (?)\n component: props => h(VClassIcon, {\n ...props,\n class: 'mdi'\n })\n};\nexport { aliases, mdi };\n//# sourceMappingURL=mdi.js.map","import \"vuetify/styles\";\nimport { createVuetify, type ThemeDefinition } from \"vuetify\";\nimport { aliases, mdi } from \"vuetify/iconsets/mdi\";\nimport \"@mdi/font/css/materialdesignicons.css\";\n\nexport const uplexisColors = {\n brand: {\n primary: {\n pure: \"#FF8C1A\",\n 1: \"#FFA64D\",\n 2: \"#FFCC99\",\n 3: \"#FFE5CC\",\n },\n secondary: {\n pure: \"#551782\",\n 1: \"#7922B9\",\n 2: \"#9D32EC\",\n 3: \"#C371FF\",\n },\n },\n neutral: {\n light: {\n pure: \"#FFFFFF\",\n 1: \"#B8B8B8\",\n 2: \"#CCCCCC\",\n 3: \"#F0F0F0\",\n },\n dark: {\n pure: \"#121212\",\n 1: \"#1F1F1F\",\n 2: \"#3D3D3D\",\n 3: \"#666666\",\n },\n },\n feedback: {\n success: \"#0A9E5A\",\n info: \"#505AFF\",\n error: \"#CC3333\",\n warning: \"#D77B0A\",\n },\n chart: {\n 1: \"#FBC105\",\n 2: \"#54D088\",\n 3: \"#0A9E5A\",\n 4: \"#4AD6E5\",\n 5: \"#4D90FF\",\n 6: \"#0D5FC2\",\n 7: \"#9072F1\",\n 8: \"#8000FF\",\n 9: \"#F65ADD\",\n 10: \"#D904B5\",\n 11: \"#FF685D\",\n 12: \"#CC3333\",\n 13: \"#E0AD00\",\n 14: \"#D77B0A\",\n },\n};\n\nexport const uplexisLight: ThemeDefinition = {\n dark: false,\n colors: {\n primary: uplexisColors.brand.primary.pure,\n \"primary-darken-1\": uplexisColors.brand.primary[1],\n \"primary-lighten-1\": uplexisColors.brand.primary[2],\n \"primary-lighten-2\": uplexisColors.brand.primary[3],\n\n secondary: uplexisColors.brand.secondary.pure,\n \"secondary-darken-1\": uplexisColors.brand.secondary[1],\n \"secondary-lighten-1\": uplexisColors.brand.secondary[2],\n \"secondary-lighten-2\": uplexisColors.brand.secondary[3],\n\n success: uplexisColors.feedback.success,\n info: uplexisColors.feedback.info,\n warning: uplexisColors.feedback.warning,\n error: uplexisColors.feedback.error,\n\n surface: uplexisColors.neutral.light.pure,\n \"surface-variant\": uplexisColors.neutral.light[3],\n \"surface-bright\": uplexisColors.neutral.light.pure,\n background: uplexisColors.neutral.light[3],\n\n \"on-primary\": uplexisColors.neutral.light.pure,\n \"on-secondary\": uplexisColors.neutral.light.pure,\n \"on-success\": uplexisColors.neutral.light.pure,\n \"on-info\": uplexisColors.neutral.light.pure,\n \"on-warning\": uplexisColors.neutral.light.pure,\n \"on-error\": uplexisColors.neutral.light.pure,\n \"on-surface\": uplexisColors.neutral.dark.pure,\n \"on-surface-variant\": uplexisColors.neutral.dark[3],\n \"on-background\": uplexisColors.neutral.dark.pure,\n },\n};\n\nexport const uplexisDark: ThemeDefinition = {\n dark: true,\n colors: {\n primary: uplexisColors.brand.primary[1],\n \"primary-darken-1\": uplexisColors.brand.primary.pure,\n \"primary-lighten-1\": uplexisColors.brand.primary[2],\n \"primary-lighten-2\": uplexisColors.brand.primary[3],\n\n secondary: uplexisColors.brand.secondary[2],\n \"secondary-darken-1\": uplexisColors.brand.secondary[1],\n \"secondary-lighten-1\": uplexisColors.brand.secondary[3],\n \"secondary-lighten-2\": uplexisColors.brand.secondary[3],\n\n success: uplexisColors.chart[2],\n info: uplexisColors.chart[5],\n warning: uplexisColors.chart[13],\n error: uplexisColors.chart[11],\n\n surface: uplexisColors.neutral.dark[1],\n \"surface-variant\": uplexisColors.neutral.dark[2],\n \"surface-bright\": uplexisColors.neutral.dark[2],\n background: uplexisColors.neutral.dark.pure,\n\n \"on-primary\": uplexisColors.neutral.dark.pure,\n \"on-secondary\": uplexisColors.neutral.light.pure,\n \"on-success\": uplexisColors.neutral.dark.pure,\n \"on-info\": uplexisColors.neutral.light.pure,\n \"on-warning\": uplexisColors.neutral.dark.pure,\n \"on-error\": uplexisColors.neutral.light.pure,\n \"on-surface\": uplexisColors.neutral.light.pure,\n \"on-surface-variant\": uplexisColors.neutral.light[2],\n \"on-background\": uplexisColors.neutral.light.pure,\n },\n};\n\nconst vuetify = createVuetify({\n theme: {\n defaultTheme: \"uplexisLight\",\n themes: {\n uplexisLight,\n uplexisDark,\n },\n variations: {\n colors: [\"primary\", \"secondary\", \"accent\"],\n lighten: 2,\n darken: 2,\n },\n },\n defaults: {\n VBtn: {\n rounded: \"md\", // 8px (ajustado para match com antiga)\n height: 40,\n class: \"text-none font-weight-medium\",\n elevation: 0,\n },\n VTextField: {\n variant: \"outlined\",\n density: \"comfortable\",\n color: \"primary\",\n rounded: \"md\", // 8px\n },\n VTextarea: {\n variant: \"outlined\",\n density: \"comfortable\",\n color: \"primary\",\n rounded: \"md\", // 8px\n },\n VSelect: {\n variant: \"outlined\",\n density: \"comfortable\",\n color: \"primary\",\n rounded: \"md\", // 8px\n },\n VAutocomplete: {\n variant: \"outlined\",\n density: \"comfortable\",\n color: \"primary\",\n rounded: \"md\", // 8px\n },\n VCard: {\n rounded: \"lg\", // 16px (ajustado para match com antiga)\n elevation: 1,\n },\n VCardTitle: {\n class: \"text-h6 font-weight-bold\",\n },\n VChip: {\n rounded: \"md\", // 8px (ajustado)\n size: \"default\",\n },\n VDialog: {\n rounded: \"lg\", // 16px\n },\n VDataTable: {\n density: \"comfortable\",\n class: \"elevation-1\",\n },\n },\n icons: {\n defaultSet: \"mdi\",\n aliases,\n sets: {\n mdi,\n },\n },\n});\n\nexport default vuetify;\n","// Utilities\nimport { toValue } from 'vue';\nimport { destructComputed, getForeground, isCssColor, isParsableColor, parseColor } from \"../util/index.js\"; // Types\n// Composables\nexport function useColor(colors) {\n return destructComputed(() => {\n const {\n class: colorClasses,\n style: colorStyles\n } = computeColor(colors);\n return {\n colorClasses,\n colorStyles\n };\n });\n}\nexport function useTextColor(color) {\n const {\n colorClasses: textColorClasses,\n colorStyles: textColorStyles\n } = useColor(() => ({\n text: toValue(color)\n }));\n return {\n textColorClasses,\n textColorStyles\n };\n}\nexport function useBackgroundColor(color) {\n const {\n colorClasses: backgroundColorClasses,\n colorStyles: backgroundColorStyles\n } = useColor(() => ({\n background: toValue(color)\n }));\n return {\n backgroundColorClasses,\n backgroundColorStyles\n };\n}\nexport function computeColor(colors) {\n const _colors = toValue(colors);\n const classes = [];\n const styles = {};\n if (_colors.background) {\n if (isCssColor(_colors.background)) {\n styles.backgroundColor = _colors.background;\n if (!_colors.text && isParsableColor(_colors.background)) {\n const backgroundColor = parseColor(_colors.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.background}`);\n }\n }\n if (_colors.text) {\n if (isCssColor(_colors.text)) {\n styles.color = _colors.text;\n styles.caretColor = _colors.text;\n } else {\n classes.push(`text-${_colors.text}`);\n }\n }\n return {\n class: classes,\n style: styles\n };\n}\n//# sourceMappingURL=color.js.map","// Utilities\nimport { convertToUnit, destructComputed, getCurrentInstanceName, includes, propsFactory } from \"../util/index.js\"; // 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 const size = props.size;\n let sizeClasses;\n let sizeStyles;\n if (includes(predefinedSizes, size)) {\n sizeClasses = `${name}--size-${size}`;\n } else if (size) {\n sizeStyles = {\n width: convertToUnit(size),\n height: convertToUnit(size)\n };\n }\n return {\n sizeClasses,\n sizeStyles\n };\n });\n}\n//# sourceMappingURL=size.js.map","// Utilities\nimport { propsFactory } from \"../util/index.js\"; // Types\n// Types\n// Composables\nexport const makeTagProps = propsFactory({\n tag: {\n type: [String, Object, Function],\n default: 'div'\n }\n}, 'tag');\n//# sourceMappingURL=tag.js.map","// Utilities\nimport { computed, getCurrentScope, inject, onScopeDispose, provide, ref, shallowRef, toRef, watch, watchEffect } from 'vue';\nimport { consoleWarn, createRange, darken, deprecate, getCurrentInstance, getForeground, getLuma, IN_BROWSER, lighten, mergeDeep, parseColor, propsFactory, RGBtoHex, SUPPORTS_MATCH_MEDIA } from \"../util/index.js\"; // Types\nexport const ThemeSymbol = Symbol.for('vuetify:theme');\nexport const makeThemeProps = propsFactory({\n theme: String\n}, 'theme');\nfunction genDefaults() {\n return {\n defaultTheme: 'light',\n prefix: 'v-',\n variations: {\n colors: [],\n lighten: 0,\n darken: 0\n },\n themes: {\n light: {\n dark: false,\n colors: {\n background: '#FFFFFF',\n surface: '#FFFFFF',\n 'surface-bright': '#FFFFFF',\n 'surface-light': '#EEEEEE',\n 'surface-variant': '#424242',\n 'on-surface-variant': '#EEEEEE',\n primary: '#1867C0',\n 'primary-darken-1': '#1F5592',\n secondary: '#48A9A6',\n 'secondary-darken-1': '#018786',\n error: '#B00020',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00'\n },\n variables: {\n 'border-color': '#000000',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 0.87,\n 'medium-emphasis-opacity': 0.60,\n 'disabled-opacity': 0.38,\n 'idle-opacity': 0.04,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.12,\n 'dragged-opacity': 0.08,\n 'theme-kbd': '#EEEEEE',\n 'theme-on-kbd': '#000000',\n 'theme-code': '#F5F5F5',\n 'theme-on-code': '#000000'\n }\n },\n dark: {\n dark: true,\n colors: {\n background: '#121212',\n surface: '#212121',\n 'surface-bright': '#ccbfd6',\n 'surface-light': '#424242',\n 'surface-variant': '#c8c8c8',\n 'on-surface-variant': '#000000',\n primary: '#2196F3',\n 'primary-darken-1': '#277CC1',\n secondary: '#54B6B2',\n 'secondary-darken-1': '#48A9A6',\n error: '#CF6679',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00'\n },\n variables: {\n 'border-color': '#FFFFFF',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 1,\n 'medium-emphasis-opacity': 0.70,\n 'disabled-opacity': 0.50,\n 'idle-opacity': 0.10,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.16,\n 'dragged-opacity': 0.08,\n 'theme-kbd': '#424242',\n 'theme-on-kbd': '#FFFFFF',\n 'theme-code': '#343434',\n 'theme-on-code': '#CCCCCC'\n }\n }\n },\n stylesheetId: 'vuetify-theme-stylesheet',\n scoped: false,\n unimportant: false,\n utilities: true\n };\n}\nfunction parseThemeOptions() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : genDefaults();\n const defaults = genDefaults();\n if (!options) return {\n ...defaults,\n isDisabled: true\n };\n const themes = {};\n for (const [key, theme] of Object.entries(options.themes ?? {})) {\n const defaultTheme = theme.dark || key === 'dark' ? defaults.themes?.dark : defaults.themes?.light;\n themes[key] = mergeDeep(defaultTheme, theme);\n }\n return mergeDeep(defaults, {\n ...options,\n themes\n });\n}\nfunction createCssClass(lines, selector, content, scope) {\n lines.push(`${getScopedSelector(selector, scope)} {\\n`, ...content.map(line => ` ${line};\\n`), '}\\n');\n}\nfunction genCssVariables(theme, prefix) {\n const lightOverlay = theme.dark ? 2 : 1;\n const darkOverlay = theme.dark ? 1 : 2;\n const variables = [];\n for (const [key, value] of Object.entries(theme.colors)) {\n const rgb = parseColor(value);\n variables.push(`--${prefix}theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);\n if (!key.startsWith('on-')) {\n variables.push(`--${prefix}theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);\n }\n }\n for (const [key, value] of Object.entries(theme.variables)) {\n const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;\n const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;\n variables.push(`--${prefix}${key}: ${rgb ?? value}`);\n }\n return variables;\n}\nfunction genVariation(name, color, variations) {\n const object = {};\n if (variations) {\n for (const variation of ['lighten', 'darken']) {\n const fn = variation === 'lighten' ? lighten : darken;\n for (const amount of createRange(variations[variation], 1)) {\n object[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor(color), amount));\n }\n }\n }\n return object;\n}\nfunction genVariations(colors, variations) {\n if (!variations) return {};\n let variationColors = {};\n for (const name of variations.colors) {\n const color = colors[name];\n if (!color) continue;\n variationColors = {\n ...variationColors,\n ...genVariation(name, color, variations)\n };\n }\n return variationColors;\n}\nfunction genOnColors(colors) {\n const onColors = {};\n for (const color of Object.keys(colors)) {\n if (color.startsWith('on-') || colors[`on-${color}`]) continue;\n const onColor = `on-${color}`;\n const colorVal = parseColor(colors[color]);\n onColors[onColor] = getForeground(colorVal);\n }\n return onColors;\n}\nfunction getScopedSelector(selector, scope) {\n if (!scope) return selector;\n const scopeSelector = `:where(${scope})`;\n return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`;\n}\nfunction upsertStyles(id, cspNonce, styles) {\n const styleEl = getOrCreateStyleElement(id, cspNonce);\n if (!styleEl) return;\n styleEl.innerHTML = styles;\n}\nfunction getOrCreateStyleElement(id, cspNonce) {\n if (!IN_BROWSER) return null;\n let style = document.getElementById(id);\n if (!style) {\n style = document.createElement('style');\n style.id = id;\n style.type = 'text/css';\n if (cspNonce) style.setAttribute('nonce', cspNonce);\n document.head.appendChild(style);\n }\n return style;\n}\n\n// Composables\nexport function createTheme(options) {\n const parsedOptions = parseThemeOptions(options);\n const _name = shallowRef(parsedOptions.defaultTheme);\n const themes = ref(parsedOptions.themes);\n const systemName = shallowRef('light');\n const name = computed({\n get() {\n return _name.value === 'system' ? systemName.value : _name.value;\n },\n set(val) {\n _name.value = val;\n }\n });\n const computedThemes = computed(() => {\n const acc = {};\n for (const [name, original] of Object.entries(themes.value)) {\n const colors = {\n ...original.colors,\n ...genVariations(original.colors, parsedOptions.variations)\n };\n acc[name] = {\n ...original,\n colors: {\n ...colors,\n ...genOnColors(colors)\n }\n };\n }\n return acc;\n });\n const current = toRef(() => computedThemes.value[name.value]);\n const isSystem = toRef(() => _name.value === 'system');\n const styles = computed(() => {\n const lines = [];\n const important = parsedOptions.unimportant ? '' : ' !important';\n const scoped = parsedOptions.scoped ? parsedOptions.prefix : '';\n if (current.value?.dark) {\n createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);\n }\n createCssClass(lines, ':root', genCssVariables(current.value, parsedOptions.prefix), parsedOptions.scope);\n for (const [themeName, theme] of Object.entries(computedThemes.value)) {\n createCssClass(lines, `.${parsedOptions.prefix}theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme, parsedOptions.prefix)], parsedOptions.scope);\n }\n if (parsedOptions.utilities) {\n const bgLines = [];\n const fgLines = [];\n const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));\n for (const key of colors) {\n if (key.startsWith('on-')) {\n createCssClass(fgLines, `.${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope);\n } else {\n createCssClass(bgLines, `.${scoped}bg-${key}`, [`--${parsedOptions.prefix}theme-overlay-multiplier: var(--${parsedOptions.prefix}theme-${key}-overlay-multiplier)`, `background-color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`, `color: rgb(var(--${parsedOptions.prefix}theme-on-${key}))${important}`], parsedOptions.scope);\n createCssClass(fgLines, `.${scoped}text-${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope);\n createCssClass(fgLines, `.${scoped}border-${key}`, [`--${parsedOptions.prefix}border-color: var(--${parsedOptions.prefix}theme-${key})`], parsedOptions.scope);\n }\n }\n lines.push(...bgLines, ...fgLines);\n }\n return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');\n });\n const themeClasses = toRef(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`);\n const themeNames = toRef(() => Object.keys(computedThemes.value));\n if (SUPPORTS_MATCH_MEDIA) {\n const media = window.matchMedia('(prefers-color-scheme: dark)');\n function updateSystemName() {\n systemName.value = media.matches ? 'dark' : 'light';\n }\n updateSystemName();\n media.addEventListener('change', updateSystemName, {\n passive: true\n });\n if (getCurrentScope()) {\n onScopeDispose(() => {\n media.removeEventListener('change', updateSystemName);\n });\n }\n }\n function install(app) {\n if (parsedOptions.isDisabled) return;\n const head = app._context.provides.usehead;\n if (head) {\n function getHead() {\n return {\n style: [{\n textContent: styles.value,\n id: parsedOptions.stylesheetId,\n nonce: parsedOptions.cspNonce || false\n }]\n };\n }\n if (head.push) {\n const entry = head.push(getHead);\n if (IN_BROWSER) {\n watch(styles, () => {\n entry.patch(getHead);\n });\n }\n } else {\n if (IN_BROWSER) {\n head.addHeadObjs(toRef(getHead));\n watchEffect(() => head.updateDOM());\n } else {\n head.addHeadObjs(getHead());\n }\n }\n } else {\n if (IN_BROWSER) {\n watch(styles, updateStyles, {\n immediate: true\n });\n } else {\n updateStyles();\n }\n function updateStyles() {\n upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);\n }\n }\n }\n function change(themeName) {\n if (themeName !== 'system' && !themeNames.value.includes(themeName)) {\n consoleWarn(`Theme \"${themeName}\" not found on the Vuetify theme instance`);\n return;\n }\n name.value = themeName;\n }\n function cycle() {\n let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : themeNames.value;\n const currentIndex = themeArray.indexOf(name.value);\n const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % themeArray.length;\n change(themeArray[nextIndex]);\n }\n function toggle() {\n let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['light', 'dark'];\n cycle(themeArray);\n }\n const globalName = new Proxy(name, {\n get(target, prop) {\n return Reflect.get(target, prop);\n },\n set(target, prop, val) {\n if (prop === 'value') {\n deprecate(`theme.global.name.value = ${val}`, `theme.change('${val}')`);\n }\n return Reflect.set(target, prop, val);\n }\n });\n return {\n install,\n change,\n cycle,\n toggle,\n isDisabled: parsedOptions.isDisabled,\n isSystem,\n name,\n themes,\n current,\n computedThemes,\n prefix: parsedOptions.prefix,\n themeClasses,\n styles,\n global: {\n name: globalName,\n current\n }\n };\n}\nexport function provideTheme(props) {\n getCurrentInstance('provideTheme');\n const theme = inject(ThemeSymbol, null);\n if (!theme) throw new Error('Could not find Vuetify theme injection');\n const name = toRef(() => props.theme ?? theme.name.value);\n const current = toRef(() => theme.themes.value[name.value]);\n const themeClasses = toRef(() => theme.isDisabled ? undefined : `${theme.prefix}theme--${name.value}`);\n const newTheme = {\n ...theme,\n name,\n current,\n themeClasses\n };\n provide(ThemeSymbol, newTheme);\n return newTheme;\n}\nexport function useTheme() {\n getCurrentInstance('useTheme');\n const theme = inject(ThemeSymbol, null);\n if (!theme) throw new Error('Could not find Vuetify theme injection');\n return theme;\n}\n//# sourceMappingURL=theme.js.map","import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VIcon.css\";\n\n// Composables\nimport { useTextColor } from \"../../composables/color.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { IconValue, useIcon } from \"../../composables/icons.js\";\nimport { makeSizeProps, useSize } from \"../../composables/size.js\";\nimport { makeTagProps } from \"../../composables/tag.js\";\nimport { makeThemeProps, useTheme } from \"../../composables/theme.js\"; // Utilities\nimport { shallowRef, Text } from 'vue';\nimport { convertToUnit, flattenFragments, genericComponent, propsFactory, useRender } from \"../../util/index.js\";\nexport const makeVIconProps = propsFactory({\n color: String,\n disabled: Boolean,\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n opacity: [String, Number],\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 = shallowRef();\n const {\n themeClasses\n } = useTheme();\n const {\n iconData\n } = useIcon(() => slotIcon.value || props.icon);\n const {\n sizeClasses\n } = useSize(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(() => 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\": _normalizeClass(['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\": _normalizeStyle([{\n '--v-icon-opacity': props.opacity\n }, !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.js.map","<template>\n <div class=\"up-accordion\">\n <div\n v-for=\"item in items\"\n :key=\"item.value\"\n class=\"up-accordion__item\"\n :class=\"{ 'up-accordion__item--focused': focusedItem === item.value }\"\n >\n <div class=\"up-accordion__header\">\n <button\n class=\"up-accordion__trigger\"\n :class=\"{ 'up-accordion__trigger--open': openItem === item.value }\"\n :aria-expanded=\"openItem === item.value\"\n @click=\"toggleItem(item.value)\"\n @focus=\"focusedItem = item.value\"\n @blur=\"focusedItem = null\"\n >\n <span class=\"up-accordion__title\">{{ item.title }}</span>\n <v-icon\n class=\"up-accordion__icon\"\n :class=\"{ 'up-accordion__icon--open': openItem === item.value }\"\n :size=\"16\"\n >\n mdi-chevron-down\n </v-icon>\n </button>\n </div>\n <Transition name=\"accordion\">\n <div v-if=\"openItem === item.value\" class=\"up-accordion__content\">\n <slot :name=\"item.value\" />\n </div>\n </Transition>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\n\nexport interface UpAccordionItem {\n title: string;\n value: string;\n}\n\nexport interface UpAccordionProps {\n items: UpAccordionItem[];\n modelValue?: string | null;\n}\n\nconst props = withDefaults(defineProps<UpAccordionProps>(), {\n modelValue: null,\n});\n\nconst emit = defineEmits<{\n \"update:modelValue\": [value: string | null];\n}>();\n\nconst openItem = ref<string | null>(props.modelValue);\nconst focusedItem = ref<string | null>(null);\n\nconst toggleItem = (value: string) => {\n // Se o item já está aberto, fecha (collapsible)\n if (openItem.value === value) {\n openItem.value = null;\n emit(\"update:modelValue\", null);\n } else {\n // Abre o novo item (single - fecha o anterior automaticamente)\n openItem.value = value;\n emit(\"update:modelValue\", value);\n }\n};\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-accordion {\n width: 100%;\n border-radius: $radius-lg; // 8px (rounded-md)\n}\n\n.up-accordion__item {\n overflow: hidden;\n\n &--focused {\n position: relative;\n z-index: 10;\n }\n}\n\n.up-accordion__header {\n display: flex;\n}\n\n.up-accordion__trigger {\n display: flex;\n height: 32px; // Aumentado de 20px para 32px\n width: 100%;\n flex: 1;\n align-items: center;\n justify-content: space-between;\n padding: 0 12px; // Aumentado de 8px para 12px\n background-color: $neutral-light-3; // #F0F0F0 (bg-neutral-light-3)\n border: none;\n border-bottom: 1px solid $brand-secondary-1; // #7922B9 (border-brand-secondary-1)\n border-radius: $radius-sm; // 4px (rounded-sm)\n color: $neutral-dark-pure; // #121212 (text-neutral-dark-pure)\n font-size: $font-size-xs; // Aumentado de xxxs para xs\n cursor: default; // cursor-default (igual lib antiga)\n transition: all 200ms; // transition-all duration-200\n outline: none;\n\n &:hover {\n opacity: 0.9;\n }\n\n &:focus-visible {\n outline: 2px solid $brand-secondary-1;\n outline-offset: 2px;\n }\n\n // data-[state=open]:border-none\n &--open {\n border-bottom: none;\n }\n}\n\n.up-accordion__title {\n text-align: left;\n font-weight: $font-weight-regular;\n}\n\n.up-accordion__icon {\n color: $brand-secondary-1; // #7922B9 (text-brand-secondary-1)\n font-size: 16px; // Aumentado de 12px para 16px\n transition: transform 300ms cubic-bezier(0.87, 0, 0.13, 1); // ease-[cubic-bezier(0.87,_0,_0.13,_1)] transition-transform duration-300\n\n // group-data-[state=open]:rotate-180\n &--open {\n transform: rotate(180deg);\n }\n}\n\n.up-accordion__content {\n overflow: hidden; // overflow-hidden\n}\n\n// Animações de expansão/colapso\n// data-[state=open]:animate-slideDown\n.accordion-enter-active {\n animation: slideDown 300ms ease-out;\n}\n\n// data-[state=closed]:animate-slideUp\n.accordion-leave-active {\n animation: slideUp 300ms ease-out;\n}\n\n@keyframes slideDown {\n from {\n max-height: 0;\n opacity: 0;\n }\n to {\n max-height: 500px;\n opacity: 1;\n }\n}\n\n@keyframes slideUp {\n from {\n max-height: 500px;\n opacity: 1;\n }\n to {\n max-height: 0;\n opacity: 0;\n }\n}\n</style>\n","<template>\n <div\n class=\"up-badge\"\n :class=\"[computedClass, sizeClass, { 'up-badge--block': block }]\"\n >\n <!-- Prepend Icon -->\n <button\n v-if=\"prependIcon && prependIconBtn\"\n class=\"up-badge__icon up-badge__icon--prepend\"\n @click=\"handlePrependClick\"\n >\n <slot name=\"prependIcon\">\n <v-icon :size=\"12\">{{ prependIcon }}</v-icon>\n </slot>\n </button>\n <span\n v-else-if=\"prependIcon\"\n class=\"up-badge__icon up-badge__icon--prepend\"\n >\n <slot name=\"prependIcon\">\n <v-icon :size=\"12\">{{ prependIcon }}</v-icon>\n </slot>\n </span>\n\n <!-- Content -->\n <span class=\"up-badge__content\">\n <slot>{{ displayText }}</slot>\n </span>\n\n <!-- Append Icon -->\n <button\n v-if=\"appendIcon && appendIconBtn\"\n class=\"up-badge__icon up-badge__icon--append\"\n @click=\"handleAppendClick\"\n >\n <slot name=\"appendIcon\">\n <v-icon :size=\"12\">{{ appendIcon }}</v-icon>\n </slot>\n </button>\n <span v-else-if=\"appendIcon\" class=\"up-badge__icon up-badge__icon--append\">\n <slot name=\"appendIcon\">\n <v-icon :size=\"12\">{{ appendIcon }}</v-icon>\n </slot>\n </span>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nexport type UpBadgeType =\n | \"PF\"\n | \"PF-admin\"\n | \"SP\"\n | \"PEP\"\n | \"PJ\"\n | \"PJ-filial\"\n | \"ADM-PEP-SP\"\n | \"custom\";\nexport type UpBadgeVariant =\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"info\"\n | \"error\"\n | \"warning\"\n | \"text\"\n | \"success\";\nexport type UpBadgeSize = \"sm\" | \"lg\";\n\nexport interface UpBadgeProps {\n type: UpBadgeType;\n variant?: UpBadgeVariant;\n size?: UpBadgeSize;\n disabled?: boolean;\n block?: boolean;\n prependIcon?: string;\n appendIcon?: string;\n prependIconBtn?: boolean;\n appendIconBtn?: boolean;\n prependIconEvent?: string;\n appendIconEvent?: string;\n content?: string;\n}\n\nconst props = defineProps<UpBadgeProps>();\n\nconst emit = defineEmits<{\n [key: string]: [value: string];\n}>();\n\n// Dicionários\nconst classesDict: Record<UpBadgeType, string> = {\n PF: \"physical-person\",\n \"PF-admin\": \"physical-person-admin\",\n SP: \"public-server\",\n PEP: \"politically-exposed-person\",\n PJ: \"legal-person\",\n \"PJ-filial\": \"legal-person-branch\",\n \"ADM-PEP-SP\": \"admin-pep-sp\",\n custom: \"\",\n};\n\nconst valueDict: Record<UpBadgeType, string> = {\n PF: \"Pessoa Física\",\n \"PF-admin\": \"Pessoa Física Administrador\",\n SP: \"Servidor Público\",\n PEP: \"Pessoa Politicamente Exposta\",\n PJ: \"Pessoa Jurídica\",\n \"PJ-filial\": \"Pessoa Jurídica Filial\",\n \"ADM-PEP-SP\": \"ADM | PEP | SP\",\n custom: \"custom\",\n};\n\n// Computed\nconst computedClass = computed(() => {\n if (props.disabled) {\n return \"up-badge--disabled\";\n }\n if (props.variant) {\n return `up-badge--${props.variant}`;\n }\n const typeClass = classesDict[props.type];\n return typeClass ? `up-badge--${typeClass}` : \"\";\n});\n\nconst sizeClass = computed(() => {\n if (props.size === \"sm\") return \"up-badge--sm\";\n if (props.size === \"lg\") return \"up-badge--lg\";\n return \"\";\n});\n\nconst displayText = computed(() => {\n const baseText = props.content || valueDict[props.type];\n return props.disabled ? `${baseText} Inativa` : baseText;\n});\n\n// Handlers\nconst handlePrependClick = () => {\n if (props.prependIconEvent) {\n emit(props.prependIconEvent, \"prepend\");\n }\n};\n\nconst handleAppendClick = () => {\n if (props.appendIconEvent) {\n emit(props.appendIconEvent, \"append\");\n }\n};\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-badge {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n height: 22px;\n padding: 8px;\n width: fit-content;\n border-radius: $radius-sm; // 4px\n font-size: $font-size-usu; // 12px\n font-weight: $font-weight-bold;\n\n // Block mode\n &--block {\n width: 100% !important;\n }\n\n // Sizes\n &--sm {\n height: 16px;\n }\n\n &--lg {\n height: 24px;\n }\n\n // Icon styles\n &__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n // Button icon styles\n button.up-badge__icon {\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n color: inherit;\n }\n\n // Tipos de Entidade\n &--physical-person {\n background-color: $chart-3; // #0A9E5A - verde\n color: $neutral-light-pure; // #FFFFFF\n }\n\n &--physical-person-admin {\n background-color: $chart-2; // #54D088 - verde claro\n color: $neutral-dark-pure; // #121212\n }\n\n &--public-server {\n background-color: $chart-1; // #FBC105 - amarelo\n color: $neutral-dark-pure; // #121212\n }\n\n &--politically-exposed-person {\n background-color: $chart-14; // #D77B0A - laranja\n color: $neutral-light-pure; // #FFFFFF\n }\n\n &--legal-person {\n background-color: $chart-6; // #0D5FC2 - azul\n color: $neutral-light-pure; // #FFFFFF\n }\n\n &--legal-person-branch {\n background-color: $chart-5; // #4D90FF - azul claro\n color: $neutral-light-pure; // #FFFFFF\n }\n\n &--admin-pep-sp {\n background-color: $chart-11; // #FF685D - vermelho claro\n color: $neutral-light-pure; // #FFFFFF\n }\n\n // Variantes (para type=\"custom\")\n &--primary {\n background-color: $brand-primary-pure; // #FF8C1A - laranja\n color: $neutral-light-pure; // #FFFFFF\n }\n\n &--secondary {\n background-color: $brand-secondary-pure; // #551782 - roxo\n color: $neutral-light-pure; // #FFFFFF\n }\n\n &--tertiary {\n background-color: $neutral-dark-pure; // #121212 - preto\n color: $neutral-light-pure; // #FFFFFF\n }\n\n &--info {\n background-color: $color-info; // #505AFF - azul\n color: $neutral-light-pure; // #FFFFFF\n }\n\n &--success {\n background-color: $color-success; // #0A9E5A - verde\n color: $neutral-light-pure; // #FFFFFF\n }\n\n &--error {\n background-color: $color-error; // #CC3333 - vermelho\n color: $neutral-light-pure; // #FFFFFF\n }\n\n &--warning {\n background-color: $color-warning; // #D77B0A - laranja\n color: $neutral-light-pure; // #FFFFFF\n }\n\n &--text {\n background-color: $neutral-light-3; // #F0F0F0 - cinza claro\n color: $neutral-dark-pure; // #121212 - preto\n }\n\n // Estado Disabled\n &--disabled {\n background-color: $neutral-light-2; // #CCCCCC - cinza\n color: $neutral-dark-pure; // #121212\n }\n}\n</style>\n","// Utilities\nimport { onScopeDispose, ref, shallowRef, watch } from 'vue';\nimport { SUPPORTS_INTERSECTION } from \"../util/index.js\";\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 onScopeDispose(() => {\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.js.map","// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue';\nimport { templateRef } from \"../util/index.js\";\nimport { IN_BROWSER } from \"../util/globals.js\"; // 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.js.map","import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VProgressCircular.css\";\n\n// Composables\nimport { useTextColor } from \"../../composables/color.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { useIntersectionObserver } from \"../../composables/intersectionObserver.js\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.js\";\nimport { makeSizeProps, useSize } from \"../../composables/size.js\";\nimport { makeTagProps } from \"../../composables/tag.js\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.js\"; // Utilities\nimport { ref, toRef, watchEffect } from 'vue';\nimport { clamp, convertToUnit, genericComponent, PREFERS_REDUCED_MOTION, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVProgressCircularProps = propsFactory({\n bgColor: String,\n color: String,\n indeterminate: [Boolean, String],\n modelValue: {\n type: [Number, String],\n default: 0\n },\n rotate: {\n type: [Number, String],\n default: 0\n },\n width: {\n type: [Number, String],\n default: 4\n },\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'div'\n }),\n ...makeThemeProps()\n}, 'VProgressCircular');\nexport const VProgressCircular = genericComponent()({\n name: 'VProgressCircular',\n props: makeVProgressCircularProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const MAGIC_RADIUS_CONSTANT = 20;\n const CIRCUMFERENCE = 2 * Math.PI * MAGIC_RADIUS_CONSTANT;\n const root = ref();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n sizeClasses,\n sizeStyles\n } = useSize(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(() => props.color);\n const {\n textColorClasses: underlayColorClasses,\n textColorStyles: underlayColorStyles\n } = useTextColor(() => props.bgColor);\n const {\n intersectionRef,\n isIntersecting\n } = useIntersectionObserver();\n const {\n resizeRef,\n contentRect\n } = useResizeObserver();\n const normalizedValue = toRef(() => clamp(parseFloat(props.modelValue), 0, 100));\n const width = toRef(() => Number(props.width));\n const size = toRef(() => {\n // Get size from element if size prop value is small, large etc\n return sizeStyles.value ? Number(props.size) : contentRect.value ? contentRect.value.width : Math.max(width.value, 32);\n });\n const diameter = toRef(() => MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value) * 2);\n const strokeWidth = toRef(() => width.value / size.value * diameter.value);\n const strokeDashOffset = toRef(() => convertToUnit((100 - normalizedValue.value) / 100 * CIRCUMFERENCE));\n watchEffect(() => {\n intersectionRef.value = root.value;\n resizeRef.value = root.value;\n });\n useRender(() => _createVNode(props.tag, {\n \"ref\": root,\n \"class\": _normalizeClass(['v-progress-circular', {\n 'v-progress-circular--indeterminate': !!props.indeterminate,\n 'v-progress-circular--visible': isIntersecting.value,\n 'v-progress-circular--disable-shrink': props.indeterminate && (props.indeterminate === 'disable-shrink' || PREFERS_REDUCED_MOTION())\n }, themeClasses.value, sizeClasses.value, textColorClasses.value, props.class]),\n \"style\": _normalizeStyle([sizeStyles.value, textColorStyles.value, props.style]),\n \"role\": \"progressbar\",\n \"aria-valuemin\": \"0\",\n \"aria-valuemax\": \"100\",\n \"aria-valuenow\": props.indeterminate ? undefined : normalizedValue.value\n }, {\n default: () => [_createElementVNode(\"svg\", {\n \"style\": {\n transform: `rotate(calc(-90deg + ${Number(props.rotate)}deg))`\n },\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"viewBox\": `0 0 ${diameter.value} ${diameter.value}`\n }, [_createElementVNode(\"circle\", {\n \"class\": _normalizeClass(['v-progress-circular__underlay', underlayColorClasses.value]),\n \"style\": _normalizeStyle(underlayColorStyles.value),\n \"fill\": \"transparent\",\n \"cx\": \"50%\",\n \"cy\": \"50%\",\n \"r\": MAGIC_RADIUS_CONSTANT,\n \"stroke-width\": strokeWidth.value,\n \"stroke-dasharray\": CIRCUMFERENCE,\n \"stroke-dashoffset\": 0\n }, null), _createElementVNode(\"circle\", {\n \"class\": \"v-progress-circular__overlay\",\n \"fill\": \"transparent\",\n \"cx\": \"50%\",\n \"cy\": \"50%\",\n \"r\": MAGIC_RADIUS_CONSTANT,\n \"stroke-width\": strokeWidth.value,\n \"stroke-dasharray\": CIRCUMFERENCE,\n \"stroke-dashoffset\": strokeDashOffset.value\n }, null)]), slots.default && _createElementVNode(\"div\", {\n \"class\": \"v-progress-circular__content\"\n }, [slots.default({\n value: normalizedValue.value\n })])]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VProgressCircular.js.map","<template>\n <button\n :type=\"nativeType\"\n :disabled=\"disabled || loading\"\n :class=\"computedClasses\"\n @click=\"handleClick\"\n >\n <v-progress-circular\n v-if=\"loading\"\n indeterminate\n size=\"16\"\n width=\"2\"\n class=\"up-button__spinner\"\n />\n <v-icon v-else-if=\"prependIcon\" :icon=\"`mdi-${prependIcon}`\" size=\"small\" />\n <slot />\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nexport interface UpButtonProps {\n type?: \"primary\" | \"secondary\" | \"tertiary\";\n size?: \"small\" | \"medium\" | \"large\";\n prependIcon?: string;\n nativeType?: \"button\" | \"submit\" | \"reset\";\n disabled?: boolean;\n loading?: boolean;\n}\n\nconst props = withDefaults(defineProps<UpButtonProps>(), {\n type: \"primary\",\n size: \"medium\",\n nativeType: \"button\",\n disabled: false,\n loading: false,\n});\n\nconst computedClasses = computed(() => [\n \"up-button\",\n `up-button--${props.type}`,\n `up-button--size-${props.size}`,\n {\n \"up-button--with-icon\": props.prependIcon,\n \"up-button--loading\": props.loading,\n },\n]);\n\nconst emit = defineEmits<{\n click: [event: MouseEvent];\n}>();\n\nconst handleClick = (event: MouseEvent) => {\n if (!props.disabled && !props.loading) {\n emit(\"click\", event);\n }\n};\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-button {\n // Base styles\n display: flex;\n justify-content: center;\n align-items: center;\n font-weight: $font-weight-bold;\n height: fit-content;\n gap: $spacing-sm; // 8px gap entre ícone e texto\n padding: 0 $spacing-sm; // 8px padding horizontal\n border-radius: $radius-sm; // 4px\n color: $neutral-light-pure;\n transition: all 200ms;\n cursor: pointer;\n border: none;\n outline: none;\n\n // Disabled state (comum para todos os tipos)\n &:disabled {\n background-color: $neutral-light-2 !important;\n color: $neutral-dark-3 !important;\n cursor: not-allowed;\n border-color: transparent !important;\n }\n\n // Loading state\n &--loading {\n cursor: wait;\n position: relative;\n }\n\n &__spinner {\n color: currentColor;\n }\n\n // Padding reduzido quando há ícone\n &--with-icon {\n padding: 0 $spacing-xs; // 4px quando tem ícone\n }\n\n // Size modifiers\n &--size-small {\n height: 24px;\n font-size: $font-size-us; // 12px\n }\n\n &--size-medium {\n height: 32px;\n font-size: $font-size-xxxs; // 14px\n }\n\n &--size-large {\n height: 40px;\n font-size: $font-size-xxxs; // 14px\n }\n\n // Type modifiers\n &--primary {\n background-color: $brand-secondary-1; // #7922B9\n color: $neutral-light-pure;\n\n &:not(:disabled):hover {\n background-color: $brand-secondary-2; // #9D32EC\n }\n\n &:not(:disabled):active {\n background-color: transparent;\n color: $brand-secondary-1;\n border: 1px solid $brand-secondary-1;\n }\n }\n\n &--secondary {\n border: 1px solid $brand-secondary-1; // #7922B9\n background-color: transparent;\n color: $brand-secondary-1;\n\n &:not(:disabled):hover {\n border-color: $brand-secondary-2;\n color: $brand-secondary-2;\n }\n\n &:not(:disabled):active {\n border-color: transparent;\n color: $brand-secondary-1;\n }\n }\n\n &--tertiary {\n background-color: transparent;\n color: $brand-secondary-1; // #7922B9\n\n &:not(:disabled):hover {\n color: $brand-secondary-2; // #9D32EC\n }\n\n &:not(:disabled):active {\n color: $brand-secondary-3; // #C371FF\n }\n\n &:disabled {\n background-color: $neutral-light-2 !important;\n }\n }\n}\n</style>\n","// Utilities\nimport { computed } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.js\"; // 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 = props.border;\n if (border === true || border === '') {\n return `${name}--border`;\n } else if (typeof border === 'string' || border === 0) {\n return String(border).split(' ').map(v => `border-${v}`);\n }\n return [];\n });\n return {\n borderClasses\n };\n}\n//# sourceMappingURL=border.js.map","// Utilities\nimport { toRef } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.js\"; // Types\nconst allowedDensities = [null, 'default', 'comfortable', 'compact'];\n\n// typeof allowedDensities[number] evaluates 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 = toRef(() => {\n return `${name}--density-${props.density}`;\n });\n return {\n densityClasses\n };\n}\n//# sourceMappingURL=density.js.map","// Utilities\nimport { isRef, toRef } from 'vue';\nimport { propsFactory } from \"../util/index.js\"; // 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 = toRef(() => {\n const elevation = isRef(props) ? props.value : props.elevation;\n if (elevation == null) return [];\n return [`elevation-${elevation}`];\n });\n return {\n elevationClasses\n };\n}\n//# sourceMappingURL=elevation.js.map","// Utilities\nimport { computed, isRef } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.js\"; // 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) ? false : props.tile;\n const classes = [];\n if (tile || rounded === false) {\n classes.push('rounded-0');\n } else 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 }\n return classes;\n });\n return {\n roundedClasses\n };\n}\n//# sourceMappingURL=rounded.js.map","import { Fragment as _Fragment, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode } from \"vue\";\n// Composables\nimport { useColor } from \"./color.js\"; // Utilities\nimport { toRef, toValue } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.js\"; // Types\nexport const allowedVariants = ['elevated', 'flat', 'tonal', 'outlined', 'text', 'plain'];\nexport function genOverlays(isClickable, name) {\n return _createElementVNode(_Fragment, null, [isClickable && _createElementVNode(\"span\", {\n \"key\": \"overlay\",\n \"class\": _normalizeClass(`${name}__overlay`)\n }, null), _createElementVNode(\"span\", {\n \"key\": \"underlay\",\n \"class\": _normalizeClass(`${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 = toRef(() => {\n const {\n variant\n } = toValue(props);\n return `${name}--variant-${variant}`;\n });\n const {\n colorClasses,\n colorStyles\n } = useColor(() => {\n const {\n variant,\n color\n } = toValue(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.js.map","import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VBtnGroup.css\";\n\n// Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { provideDefaults } from \"../../composables/defaults.js\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.js\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.js\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.js\";\nimport { makeTagProps } from \"../../composables/tag.js\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.js\";\nimport { makeVariantProps } from \"../../composables/variant.js\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVBtnGroupProps = propsFactory({\n baseColor: String,\n divided: Boolean,\n direction: {\n type: String,\n default: 'horizontal'\n },\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps()\n}, 'VBtnGroup');\nexport const VBtnGroup = genericComponent()({\n name: 'VBtnGroup',\n props: makeVBtnGroupProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n provideDefaults({\n VBtn: {\n height: toRef(() => props.direction === 'horizontal' ? 'auto' : null),\n baseColor: toRef(() => props.baseColor),\n color: toRef(() => props.color),\n density: toRef(() => props.density),\n flat: true,\n variant: toRef(() => props.variant)\n }\n });\n useRender(() => {\n return _createVNode(props.tag, {\n \"class\": _normalizeClass(['v-btn-group', `v-btn-group--${props.direction}`, {\n 'v-btn-group--divided': props.divided\n }, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class]),\n \"style\": _normalizeStyle(props.style)\n }, slots);\n });\n }\n});\n//# sourceMappingURL=VBtnGroup.js.map","// Utilities\nimport { effectScope, onScopeDispose, watch } from 'vue';\n\n// Types\n\nexport function useToggleScope(source, fn) {\n let scope;\n function start() {\n scope = effectScope();\n scope.run(() => fn.length ? fn(() => {\n scope?.stop();\n start();\n }) : fn());\n }\n watch(source, active => {\n if (active && !scope) {\n start();\n } else if (!active) {\n scope?.stop();\n scope = undefined;\n }\n }, {\n immediate: true\n });\n onScopeDispose(() => {\n scope?.stop();\n });\n}\n//# sourceMappingURL=toggleScope.js.map","// Composables\nimport { useToggleScope } from \"./toggleScope.js\"; // Utilities\nimport { computed, ref, toRaw, watch } from 'vue';\nimport { getCurrentInstance, toKebabCase } from \"../util/index.js\"; // Types\n// Composables\nexport function useProxiedModel(props, prop, defaultValue) {\n let transformIn = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : v => v;\n let transformOut = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : v => v;\n const vm = getCurrentInstance('useProxiedModel');\n const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue);\n const kebabProp = toKebabCase(prop);\n const checkKebab = kebabProp !== prop;\n const isControlled = checkKebab ? computed(() => {\n void props[prop];\n return !!((vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) && (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`)));\n }) : computed(() => {\n void props[prop];\n return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`));\n });\n useToggleScope(() => !isControlled.value, () => {\n watch(() => props[prop], val => {\n internal.value = val;\n });\n });\n const model = computed({\n get() {\n const externalValue = props[prop];\n return transformIn(isControlled.value ? externalValue : internal.value);\n },\n set(internalValue) {\n const newValue = transformOut(internalValue);\n const value = toRaw(isControlled.value ? props[prop] : internal.value);\n if (value === newValue || transformIn(value) === internalValue) {\n return;\n }\n internal.value = newValue;\n vm?.emit(`update:${prop}`, newValue);\n }\n });\n Object.defineProperty(model, 'externalValue', {\n get: () => isControlled.value ? props[prop] : internal.value\n });\n return model;\n}\n//# sourceMappingURL=proxiedModel.js.map","// Composables\nimport { useProxiedModel } from \"./proxiedModel.js\"; // Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, onUpdated, provide, reactive, toRef, unref, useId, watch } from 'vue';\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, propsFactory, wrapInArray } from \"../util/index.js\"; // 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 = useId();\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 function register() {\n group?.register({\n id,\n value,\n disabled\n }, vm);\n }\n function unregister() {\n group?.unregister(id);\n }\n register();\n onBeforeUnmount(() => unregister());\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 register,\n unregister\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 === undefined) return [];\n return getIds(items, v === null ? [null] : 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) === undefined) {\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 if (!isSelected && !value) 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: toRef(() => props.selectedClass),\n items: toRef(() => 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 !== undefined) {\n ids.push(item.id);\n } else if (itemByIndex?.useIndexAsValue) {\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 !== undefined ? item.value : itemIndex);\n }\n });\n return values;\n}\n//# sourceMappingURL=group.js.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VBtnToggle.css\";\n\n// Components\nimport { makeVBtnGroupProps, VBtnGroup } from \"../VBtnGroup/VBtnGroup.js\"; // Composables\nimport { makeGroupProps, useGroup } from \"../../composables/group.js\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const VBtnToggleSymbol = Symbol.for('vuetify:v-btn-toggle');\nexport const makeVBtnToggleProps = propsFactory({\n ...makeVBtnGroupProps(),\n ...makeGroupProps()\n}, 'VBtnToggle');\nexport const VBtnToggle = genericComponent()({\n name: 'VBtnToggle',\n props: makeVBtnToggleProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n isSelected,\n next,\n prev,\n select,\n selected\n } = useGroup(props, VBtnToggleSymbol);\n useRender(() => {\n const btnGroupProps = VBtnGroup.filterProps(props);\n return _createVNode(VBtnGroup, _mergeProps({\n \"class\": ['v-btn-toggle', props.class]\n }, btnGroupProps, {\n \"style\": props.style\n }), {\n default: () => [slots.default?.({\n isSelected,\n next,\n prev,\n select,\n selected\n })]\n });\n });\n return {\n next,\n prev,\n select\n };\n }\n});\n//# sourceMappingURL=VBtnToggle.js.map","// Composables\nimport { provideDefaults } from \"../../composables/defaults.js\"; // Utilities\nimport { toRefs } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.js\"; // 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.js.map","// Utilities\nimport { computed } from 'vue';\nimport { convertToUnit, propsFactory } from \"../util/index.js\"; // 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.js.map","// Utilities\nimport { computed, inject, provide, ref, toRef } from 'vue';\nimport { createVuetifyAdapter } from \"../locale/adapters/vuetify.js\"; // Types\nexport const LocaleSymbol = Symbol.for('vuetify:locale');\nfunction isLocaleInstance(obj) {\n return obj.name != null;\n}\nexport function createLocale(options) {\n const i18n = options?.adapter && isLocaleInstance(options?.adapter) ? options?.adapter : createVuetifyAdapter(options);\n const rtl = createRtl(i18n, options);\n return {\n ...i18n,\n ...rtl\n };\n}\nexport function useLocale() {\n const locale = inject(LocaleSymbol);\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance');\n return locale;\n}\nexport function provideLocale(props) {\n const locale = inject(LocaleSymbol);\n if (!locale) throw new Error('[Vuetify] Could not find injected locale instance');\n const i18n = locale.provide(props);\n const rtl = provideRtl(i18n, locale.rtl, props);\n const data = {\n ...i18n,\n ...rtl\n };\n provide(LocaleSymbol, data);\n return data;\n}\n\n// RTL\n\nexport const RtlSymbol = Symbol.for('vuetify:rtl');\nfunction genDefaults() {\n return {\n af: false,\n ar: true,\n bg: false,\n ca: false,\n ckb: false,\n cs: false,\n de: false,\n el: false,\n en: false,\n es: false,\n et: false,\n fa: true,\n fi: false,\n fr: false,\n hr: false,\n hu: false,\n he: true,\n id: false,\n it: false,\n ja: false,\n km: false,\n ko: false,\n lv: false,\n lt: false,\n nl: false,\n no: false,\n pl: false,\n pt: false,\n ro: false,\n ru: false,\n sk: false,\n sl: false,\n srCyrl: false,\n srLatn: false,\n sv: false,\n th: false,\n tr: false,\n az: false,\n uk: false,\n vi: false,\n zhHans: false,\n zhHant: false\n };\n}\nexport function createRtl(i18n, options) {\n const rtl = ref(options?.rtl ?? genDefaults());\n const isRtl = computed(() => rtl.value[i18n.current.value] ?? false);\n return {\n isRtl,\n rtl,\n rtlClasses: toRef(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)\n };\n}\nexport function provideRtl(locale, rtl, props) {\n const isRtl = computed(() => props.rtl ?? rtl.value[locale.current.value] ?? false);\n return {\n isRtl,\n rtl,\n rtlClasses: toRef(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)\n };\n}\nexport function useRtl() {\n const locale = inject(LocaleSymbol);\n if (!locale) throw new Error('[Vuetify] Could not find injected rtl instance');\n return {\n isRtl: locale.isRtl,\n rtlClasses: locale.rtlClasses\n };\n}\n//# sourceMappingURL=locale.js.map","// Composables\nimport { useRtl } from \"./locale.js\"; // Utilities\nimport { computed } from 'vue';\nimport { parseAnchor, propsFactory } from \"../util/index.js\"; // 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.js.map","// Utilities\nimport { computed, toRef, toValue } from 'vue';\nimport { clamp, convertToUnit, propsFactory } from \"../../util/index.js\"; // Types\n// Composables\nexport const makeChunksProps = propsFactory({\n chunkCount: {\n type: [Number, String],\n default: null\n },\n chunkWidth: {\n type: [Number, String],\n default: null\n },\n chunkGap: {\n type: [Number, String],\n default: 4\n }\n}, 'chunks');\nexport function useChunks(props, containerWidth) {\n const hasChunks = toRef(() => !!props.chunkCount || !!props.chunkWidth);\n const chunkWidth = computed(() => {\n const containerSize = toValue(containerWidth);\n if (!containerSize) {\n return 0;\n }\n if (!props.chunkCount) {\n return Number(props.chunkWidth);\n }\n const count = Number(props.chunkCount);\n const availableWidth = containerSize - Number(props.chunkGap) * (count - 1);\n return availableWidth / count;\n });\n const chunkGap = toRef(() => Number(props.chunkGap));\n const chunksMaskStyles = computed(() => {\n if (!hasChunks.value) {\n return {};\n }\n const chunkGapPx = convertToUnit(chunkGap.value);\n const chunkWidthPx = convertToUnit(chunkWidth.value);\n return {\n maskRepeat: 'repeat-x',\n maskImage: `linear-gradient(90deg, #000, #000 ${chunkWidthPx}, transparent ${chunkWidthPx}, transparent)`,\n maskSize: `calc(${chunkWidthPx} + ${chunkGapPx}) 100%`\n };\n });\n function snapValueToChunk(val) {\n const containerSize = toValue(containerWidth);\n if (!containerSize) {\n return val;\n }\n const gapRelativeSize = 100 * chunkGap.value / containerSize;\n const chunkRelativeSize = 100 * (chunkWidth.value + chunkGap.value) / containerSize;\n const filledChunks = Math.floor((val + gapRelativeSize) / chunkRelativeSize);\n return clamp(0, filledChunks * chunkRelativeSize - gapRelativeSize / 2, 100);\n }\n return {\n hasChunks,\n chunksMaskStyles,\n snapValueToChunk\n };\n}\n//# sourceMappingURL=chunks.js.map","import { normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VProgressLinear.css\";\n\n// Composables\nimport { useBackgroundColor, useTextColor } from \"../../composables/color.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { useIntersectionObserver } from \"../../composables/intersectionObserver.js\";\nimport { useRtl } from \"../../composables/locale.js\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.js\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.js\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.js\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.js\";\nimport { makeTagProps } from \"../../composables/tag.js\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.js\";\nimport { useToggleScope } from \"../../composables/toggleScope.js\"; // Utilities\nimport { computed, ref, shallowRef, Transition, watchEffect } from 'vue';\nimport { makeChunksProps, useChunks } from \"./chunks.js\";\nimport { clamp, convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.js\";\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 ...makeChunksProps(),\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 root = 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(() => props.bgColor || props.color);\n const {\n backgroundColorClasses: bufferColorClasses,\n backgroundColorStyles: bufferColorStyles\n } = useBackgroundColor(() => 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 containerWidth = shallowRef(0);\n const {\n hasChunks,\n chunksMaskStyles,\n snapValueToChunk\n } = useChunks(props, containerWidth);\n useToggleScope(hasChunks, () => {\n const {\n resizeRef\n } = useResizeObserver(entries => containerWidth.value = entries[0].contentRect.width);\n watchEffect(() => resizeRef.value = root.value);\n });\n const bufferWidth = computed(() => {\n return hasChunks.value ? snapValueToChunk(normalizedBuffer.value) : normalizedBuffer.value;\n });\n const barWidth = computed(() => {\n return hasChunks.value ? snapValueToChunk(normalizedValue.value) : normalizedValue.value;\n });\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 watchEffect(() => {\n intersectionRef.value = root.value;\n });\n useRender(() => _createVNode(props.tag, {\n \"ref\": root,\n \"class\": _normalizeClass(['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 'v-progress-linear--clickable': props.clickable\n }, roundedClasses.value, themeClasses.value, rtlClasses.value, props.class]),\n \"style\": _normalizeStyle([{\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 }, chunksMaskStyles.value, 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 : Math.min(parseFloat(progress.value), max.value),\n \"onClick\": props.clickable && handleClick\n }, {\n default: () => [props.stream && _createElementVNode(\"div\", {\n \"key\": \"stream\",\n \"class\": _normalizeClass(['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), _createElementVNode(\"div\", {\n \"class\": _normalizeClass(['v-progress-linear__background', backgroundColorClasses.value]),\n \"style\": _normalizeStyle([backgroundColorStyles.value, {\n opacity: parseFloat(props.bgOpacity),\n width: props.stream ? 0 : undefined\n }])\n }, null), _createElementVNode(\"div\", {\n \"class\": _normalizeClass(['v-progress-linear__buffer', bufferColorClasses.value]),\n \"style\": _normalizeStyle([bufferColorStyles.value, {\n opacity: parseFloat(props.bufferOpacity),\n width: convertToUnit(bufferWidth.value, '%')\n }])\n }, null), _createVNode(Transition, {\n \"name\": transition.value\n }, {\n default: () => [!props.indeterminate ? _createElementVNode(\"div\", {\n \"class\": _normalizeClass(['v-progress-linear__determinate', barColorClasses.value]),\n \"style\": _normalizeStyle([barColorStyles.value, {\n width: convertToUnit(barWidth.value, '%')\n }])\n }, null) : _createElementVNode(\"div\", {\n \"class\": \"v-progress-linear__indeterminate\"\n }, [['long', 'short'].map(bar => _createElementVNode(\"div\", {\n \"key\": bar,\n \"class\": _normalizeClass(['v-progress-linear__indeterminate', bar, barColorClasses.value]),\n \"style\": _normalizeStyle(barColorStyles.value)\n }, null))])]\n }), slots.default && _createElementVNode(\"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.js.map","import { createVNode as _createVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode } from \"vue\";\n// Components\nimport { VProgressLinear } from \"../components/VProgressLinear/index.js\"; // Utilities\nimport { toRef } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.js\"; // 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 = toRef(() => ({\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 _createElementVNode(\"div\", {\n \"class\": _normalizeClass(`${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.js.map","// Utilities\nimport { toRef } from 'vue';\nimport { getCurrentInstanceName, propsFactory } from \"../util/index.js\"; // Types\nconst positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'];\n// Composables\nexport const makePositionProps = propsFactory({\n position: {\n type: String,\n validator: /* istanbul ignore next */v => positionValues.includes(v)\n }\n}, 'position');\nexport function usePosition(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const positionClasses = toRef(() => {\n return props.position ? `${name}--${props.position}` : undefined;\n });\n return {\n positionClasses\n };\n}\n//# sourceMappingURL=position.js.map","// Utilities\nimport { computed, nextTick, onScopeDispose, reactive, resolveDynamicComponent, toRef } from 'vue';\nimport { deepEqual, getCurrentInstance, hasEvent, IN_BROWSER, propsFactory } from \"../util/index.js\"; // 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 = toRef(() => !!(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 const href = toRef(() => props.href);\n return {\n isLink,\n isRouterLink: toRef(() => false),\n isClickable,\n href,\n linkProps: reactive({\n href\n })\n };\n }\n\n // vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined\n const routerLink = RouterLink.useLink({\n to: toRef(() => props.to || ''),\n replace: toRef(() => props.replace)\n });\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 const 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 const href = computed(() => props.to ? link.value?.route.value.href : props.href);\n const isRouterLink = toRef(() => !!props.to);\n return {\n isLink,\n isRouterLink,\n isClickable,\n isActive,\n route: link.value?.route,\n navigate: link.value?.navigate,\n href,\n linkProps: reactive({\n href,\n 'aria-current': toRef(() => isActive.value ? 'page' : undefined),\n 'aria-disabled': toRef(() => props.disabled && isLink.value ? 'true' : undefined),\n tabindex: toRef(() => props.disabled && isLink.value ? '-1' : undefined)\n })\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 && router?.beforeEach) {\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.js.map","// Utilities\nimport { nextTick, watch } from 'vue';\n\n// Types\n\nexport function useSelectLink(link, select) {\n watch(() => link.isActive?.value, isActive => {\n if (link.isLink.value && isActive != null && select) {\n nextTick(() => {\n select(isActive);\n });\n }\n }, {\n immediate: true\n });\n}\n//# sourceMappingURL=selectLink.js.map","// Styles\nimport \"./VRipple.css\";\n\n// Utilities\nimport { isObject } from \"../../util/index.js\"; // 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 requestAnimationFrame(() => {\n requestAnimationFrame(() => {\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 });\n });\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 = Array.from(ripples).findLast(ripple => !ripple.dataset.isHiding);\n if (!animation) 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, keys) {\n if (!keyboardRipple && keys.includes(e.key)) {\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 const bindingValue = isObject(value) ? value : {};\n if (bindingValue.class) {\n el._ripple.class = bindingValue.class;\n }\n const allowedKeys = bindingValue.keys ?? ['Enter', 'Space'];\n el._ripple.keyDownHandler = e => keyboardRippleShow(e, allowedKeys);\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', e => keyboardRippleShow(e, allowedKeys));\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 if (el._ripple?.keyDownHandler) {\n el.removeEventListener('keydown', el._ripple.keyDownHandler);\n }\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 removeListeners(el);\n delete el._ripple;\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.js.map","import { createVNode as _createVNode, createElementVNode as _createElementVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VBtn.css\";\n\n// Components\nimport { VBtnToggleSymbol } from \"../VBtnToggle/VBtnToggle.js\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.js\";\nimport { VIcon } from \"../VIcon/index.js\";\nimport { VProgressCircular } from \"../VProgressCircular/index.js\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.js\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.js\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.js\";\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.js\";\nimport { IconValue } from \"../../composables/icons.js\";\nimport { makeLoaderProps, useLoader } from \"../../composables/loader.js\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.js\";\nimport { makePositionProps, usePosition } from \"../../composables/position.js\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.js\";\nimport { makeRouterProps, useLink } from \"../../composables/router.js\";\nimport { useSelectLink } from \"../../composables/selectLink.js\";\nimport { makeSizeProps, useSize } from \"../../composables/size.js\";\nimport { makeTagProps } from \"../../composables/tag.js\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.js\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.js\"; // Directives\nimport vRipple from \"../../directives/ripple/index.js\"; // Utilities\nimport { computed, toDisplayString, toRef, withDirectives } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVBtnProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined\n },\n activeColor: String,\n baseColor: String,\n symbol: {\n type: null,\n default: VBtnToggleSymbol\n },\n flat: Boolean,\n icon: [Boolean, String, Function, Object],\n prependIcon: IconValue,\n appendIcon: IconValue,\n block: Boolean,\n readonly: Boolean,\n slim: Boolean,\n stacked: Boolean,\n spaced: String,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n text: {\n type: [String, Number, Boolean],\n default: undefined\n },\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'button'\n }),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'elevated'\n })\n}, 'VBtn');\nexport const VBtn = genericComponent()({\n name: 'VBtn',\n props: makeVBtnProps(),\n emits: {\n 'group:selected': val => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n loaderClasses\n } = useLoader(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n positionClasses\n } = usePosition(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n sizeClasses,\n sizeStyles\n } = useSize(props);\n const group = useGroupItem(props, props.symbol, false);\n const link = useLink(props, attrs);\n const isActive = computed(() => {\n if (props.active !== undefined) {\n return props.active;\n }\n if (link.isRouterLink.value) {\n return link.isActive?.value;\n }\n return group?.isSelected.value;\n });\n const color = toRef(() => isActive.value ? props.activeColor ?? props.color : props.color);\n const variantProps = computed(() => {\n const showColor = group?.isSelected.value && (!link.isLink.value || link.isActive?.value) || !group || link.isActive?.value;\n return {\n color: showColor ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant\n };\n });\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(variantProps);\n const isDisabled = computed(() => group?.disabled.value || props.disabled);\n const isElevated = toRef(() => {\n return props.variant === 'elevated' && !(props.disabled || props.flat || props.border);\n });\n const valueAttr = computed(() => {\n if (props.value === undefined || typeof props.value === 'symbol') return undefined;\n return Object(props.value) === props.value ? JSON.stringify(props.value, null, 0) : props.value;\n });\n function onClick(e) {\n if (isDisabled.value || link.isLink.value && (e.metaKey || e.ctrlKey || e.shiftKey || e.button !== 0 || attrs.target === '_blank')) return;\n if (link.isRouterLink.value) {\n link.navigate?.(e);\n } else {\n // Group active state for links is handled by useSelectLink\n group?.toggle();\n }\n }\n useSelectLink(link, group?.select);\n useRender(() => {\n const Tag = link.isLink.value ? 'a' : props.tag;\n const hasPrepend = !!(props.prependIcon || slots.prepend);\n const hasAppend = !!(props.appendIcon || slots.append);\n const hasIcon = !!(props.icon && props.icon !== true);\n return withDirectives(_createVNode(Tag, _mergeProps(link.linkProps, {\n \"type\": Tag === 'a' ? undefined : 'button',\n \"class\": ['v-btn', group?.selectedClass.value, {\n 'v-btn--active': isActive.value,\n 'v-btn--block': props.block,\n 'v-btn--disabled': isDisabled.value,\n 'v-btn--elevated': isElevated.value,\n 'v-btn--flat': props.flat,\n 'v-btn--icon': !!props.icon,\n 'v-btn--loading': props.loading,\n 'v-btn--readonly': props.readonly,\n 'v-btn--slim': props.slim,\n 'v-btn--stacked': props.stacked\n }, props.spaced ? ['v-btn--spaced', `v-btn--spaced-${props.spaced}`] : [], themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],\n \"style\": [colorStyles.value, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],\n \"aria-busy\": props.loading ? true : undefined,\n \"disabled\": isDisabled.value && Tag !== 'a' || undefined,\n \"tabindex\": props.loading || props.readonly ? -1 : undefined,\n \"onClick\": onClick,\n \"value\": valueAttr.value\n }), {\n default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && _createElementVNode(\"span\", {\n \"key\": \"prepend\",\n \"class\": \"v-btn__prepend\"\n }, [!slots.prepend ? _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"icon\": props.prependIcon\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !props.prependIcon,\n \"defaults\": {\n VIcon: {\n icon: props.prependIcon\n }\n }\n }, slots.prepend)]), _createElementVNode(\"span\", {\n \"class\": \"v-btn__content\",\n \"data-no-activator\": \"\"\n }, [!slots.default && hasIcon ? _createVNode(VIcon, {\n \"key\": \"content-icon\",\n \"icon\": props.icon\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"content-defaults\",\n \"disabled\": !hasIcon,\n \"defaults\": {\n VIcon: {\n icon: props.icon\n }\n }\n }, {\n default: () => [slots.default?.() ?? toDisplayString(props.text)]\n })]), !props.icon && hasAppend && _createElementVNode(\"span\", {\n \"key\": \"append\",\n \"class\": \"v-btn__append\"\n }, [!slots.append ? _createVNode(VIcon, {\n \"key\": \"append-icon\",\n \"icon\": props.appendIcon\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"append-defaults\",\n \"disabled\": !props.appendIcon,\n \"defaults\": {\n VIcon: {\n icon: props.appendIcon\n }\n }\n }, slots.append)]), !!props.loading && _createElementVNode(\"span\", {\n \"key\": \"loader\",\n \"class\": \"v-btn__loader\"\n }, [slots.loader?.() ?? _createVNode(VProgressCircular, {\n \"color\": typeof props.loading === 'boolean' ? undefined : props.loading,\n \"indeterminate\": true,\n \"width\": \"2\"\n }, null)])]\n }), [[vRipple, !isDisabled.value && props.ripple, '', {\n center: !!props.icon\n }]]);\n });\n return {\n group\n };\n }\n});\n//# sourceMappingURL=VBtn.js.map","// Utilities\nimport { h, Transition, TransitionGroup } from 'vue';\nimport { genericComponent, PREFERS_REDUCED_MOTION, propsFactory } from \"../../util/index.js\"; // 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: {\n type: Boolean,\n default: PREFERS_REDUCED_MOTION()\n },\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.js.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 if (!initialStyle) return;\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 if (!el._initialStyle) return;\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.js.map","// Utilities\nimport { Transition, mergeProps as _mergeProps, createVNode as _createVNode } from 'vue';\nimport { acceleratedEasing, animate, deceleratedEasing, genericComponent, nullifyTransforms, PREFERS_REDUCED_MOTION, propsFactory, standardEasing } from \"../../util/index.js\";\nimport { getTargetBox } from \"../../util/box.js\"; // Types\nexport const makeVDialogTransitionProps = propsFactory({\n target: [Object, Array]\n}, 'v-dialog-transition');\nconst saved = new WeakMap();\nexport const VDialogTransition = genericComponent()({\n name: 'VDialogTransition',\n props: makeVDialogTransitionProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const functions = {\n onBeforeEnter(el) {\n el.style.pointerEvents = 'none';\n el.style.visibility = 'hidden';\n },\n async onEnter(el, done) {\n await new Promise(resolve => requestAnimationFrame(resolve));\n await new Promise(resolve => requestAnimationFrame(resolve));\n el.style.visibility = '';\n const dimensions = getDimensions(props.target, el);\n const {\n x,\n y,\n sx,\n sy,\n speed\n } = dimensions;\n saved.set(el, dimensions);\n if (PREFERS_REDUCED_MOTION()) {\n animate(el, [{\n opacity: 0\n }, {}], {\n duration: 125 * speed,\n easing: deceleratedEasing\n }).finished.then(() => done());\n } else {\n const animation = animate(el, [{\n transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,\n opacity: 0\n }, {}], {\n duration: 225 * speed,\n easing: deceleratedEasing\n });\n getChildren(el)?.forEach(el => {\n animate(el, [{\n opacity: 0\n }, {\n opacity: 0,\n offset: 0.33\n }, {}], {\n duration: 225 * 2 * speed,\n easing: standardEasing\n });\n });\n animation.finished.then(() => done());\n }\n },\n onAfterEnter(el) {\n el.style.removeProperty('pointer-events');\n },\n onBeforeLeave(el) {\n el.style.pointerEvents = 'none';\n },\n async onLeave(el, done) {\n await new Promise(resolve => requestAnimationFrame(resolve));\n let dimensions;\n if (!saved.has(el) || Array.isArray(props.target) || props.target.offsetParent || props.target.getClientRects().length) {\n dimensions = getDimensions(props.target, el);\n } else {\n dimensions = saved.get(el);\n }\n const {\n x,\n y,\n sx,\n sy,\n speed\n } = dimensions;\n if (PREFERS_REDUCED_MOTION()) {\n animate(el, [{}, {\n opacity: 0\n }], {\n duration: 85 * speed,\n easing: acceleratedEasing\n }).finished.then(() => done());\n } else {\n const animation = animate(el, [{}, {\n transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`,\n opacity: 0\n }], {\n duration: 125 * speed,\n easing: acceleratedEasing\n });\n animation.finished.then(() => done());\n getChildren(el)?.forEach(el => {\n animate(el, [{}, {\n opacity: 0,\n offset: 0.2\n }, {\n opacity: 0\n }], {\n duration: 125 * 2 * speed,\n easing: standardEasing\n });\n });\n }\n },\n onAfterLeave(el) {\n el.style.removeProperty('pointer-events');\n }\n };\n return () => {\n return props.target ? _createVNode(Transition, _mergeProps({\n \"name\": \"dialog-transition\"\n }, functions, {\n \"css\": false\n }), slots) : _createVNode(Transition, {\n \"name\": \"dialog-transition\"\n }, slots);\n };\n }\n});\n\n/** Animatable children (card, sheet, list) */\nfunction getChildren(el) {\n const els = el.querySelector(':scope > .v-card, :scope > .v-sheet, :scope > .v-list')?.children;\n return els && [...els];\n}\nfunction getDimensions(target, el) {\n const targetBox = getTargetBox(target);\n const elBox = nullifyTransforms(el);\n const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v));\n const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ');\n let offsetX = targetBox.left + targetBox.width / 2;\n if (anchorSide === 'left' || anchorOffset === 'left') {\n offsetX -= targetBox.width / 2;\n } else if (anchorSide === 'right' || anchorOffset === 'right') {\n offsetX += targetBox.width / 2;\n }\n let offsetY = targetBox.top + targetBox.height / 2;\n if (anchorSide === 'top' || anchorOffset === 'top') {\n offsetY -= targetBox.height / 2;\n } else if (anchorSide === 'bottom' || anchorOffset === 'bottom') {\n offsetY += targetBox.height / 2;\n }\n const tsx = targetBox.width / elBox.width;\n const tsy = targetBox.height / elBox.height;\n const maxs = Math.max(1, tsx, tsy);\n const sx = tsx / maxs || 0;\n const sy = tsy / maxs || 0;\n\n // Animate elements larger than 12% of the screen area up to 1.5x slower\n const asa = elBox.width * elBox.height / (window.innerWidth * window.innerHeight);\n const speed = asa > 0.12 ? Math.min(1.5, (asa - 0.12) * 10 + 1) : 1;\n return {\n x: offsetX - (originX + elBox.left),\n y: offsetY - (originY + elBox.top),\n sx,\n sy,\n speed\n };\n}\n//# sourceMappingURL=dialog-transition.js.map","import { createCssTransition, createJavascriptTransition } from \"./createTransition.js\";\nimport ExpandTransitionGenerator from \"./expand-transition.js\"; // 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.js\";\n//# sourceMappingURL=index.js.map","// Utilities\nimport { computed, inject, provide, shallowRef } from 'vue';\n\n// Types\n\n// Depth\nexport const DepthKey = Symbol.for('vuetify:depth');\nexport function useDepth(hasPrepend) {\n const parent = inject(DepthKey, shallowRef(-1));\n const depth = computed(() => parent.value + 1 + (hasPrepend?.value ? 1 : 0));\n provide(DepthKey, depth);\n return depth;\n}\n\n// List\nexport const ListKey = Symbol.for('vuetify:list');\nexport function createList() {\n let {\n filterable\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n filterable: false\n };\n const parent = inject(ListKey, {\n filterable: false,\n hasPrepend: shallowRef(false),\n updateHasPrepend: () => null\n });\n const data = {\n filterable: parent.filterable || filterable,\n hasPrepend: shallowRef(false),\n updateHasPrepend: value => {\n if (value) data.hasPrepend.value = value;\n }\n };\n provide(ListKey, data);\n return parent;\n}\nexport function useList() {\n return inject(ListKey, null);\n}\n//# sourceMappingURL=list.js.map","/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue';\nimport { wrapInArray } from \"../../util/index.js\";\nexport const independentActiveStrategy = mandatory => {\n const strategy = {\n activate: _ref => {\n let {\n id,\n value,\n activated\n } = _ref;\n id = toRaw(id);\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value && activated.size === 1 && activated.has(id)) return activated;\n if (value) {\n activated.add(id);\n } else {\n activated.delete(id);\n }\n return activated;\n },\n in: (v, children, parents) => {\n let set = new Set();\n if (v != null) {\n for (const id of wrapInArray(v)) {\n set = strategy.activate({\n id,\n value: true,\n activated: new Set(set),\n children,\n parents\n });\n }\n }\n return set;\n },\n out: v => {\n return Array.from(v);\n }\n };\n return strategy;\n};\nexport const independentSingleActiveStrategy = mandatory => {\n const parentStrategy = independentActiveStrategy(mandatory);\n const strategy = {\n activate: _ref2 => {\n let {\n activated,\n id,\n ...rest\n } = _ref2;\n id = toRaw(id);\n const singleSelected = activated.has(id) ? new Set([id]) : new Set();\n return parentStrategy.activate({\n ...rest,\n id,\n activated: singleSelected\n });\n },\n in: (v, children, parents) => {\n let set = new Set();\n if (v != null) {\n const arr = wrapInArray(v);\n if (arr.length) {\n set = parentStrategy.in(arr.slice(0, 1), children, parents);\n }\n }\n return set;\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents);\n }\n };\n return strategy;\n};\nexport const leafActiveStrategy = mandatory => {\n const parentStrategy = independentActiveStrategy(mandatory);\n const strategy = {\n activate: _ref3 => {\n let {\n id,\n activated,\n children,\n ...rest\n } = _ref3;\n id = toRaw(id);\n if (children.has(id)) return activated;\n return parentStrategy.activate({\n id,\n activated,\n children,\n ...rest\n });\n },\n in: parentStrategy.in,\n out: parentStrategy.out\n };\n return strategy;\n};\nexport const leafSingleActiveStrategy = mandatory => {\n const parentStrategy = independentSingleActiveStrategy(mandatory);\n const strategy = {\n activate: _ref4 => {\n let {\n id,\n activated,\n children,\n ...rest\n } = _ref4;\n id = toRaw(id);\n if (children.has(id)) return activated;\n return parentStrategy.activate({\n id,\n activated,\n children,\n ...rest\n });\n },\n in: parentStrategy.in,\n out: parentStrategy.out\n };\n return strategy;\n};\n//# sourceMappingURL=activeStrategies.js.map","export const singleOpenStrategy = {\n open: _ref => {\n let {\n id,\n value,\n opened,\n parents\n } = _ref;\n if (value) {\n const newOpened = new Set();\n newOpened.add(id);\n let parent = parents.get(id);\n while (parent != null) {\n newOpened.add(parent);\n parent = parents.get(parent);\n }\n return newOpened;\n } else {\n opened.delete(id);\n return opened;\n }\n },\n select: () => null\n};\nexport const multipleOpenStrategy = {\n open: _ref2 => {\n let {\n id,\n value,\n opened,\n parents\n } = _ref2;\n if (value) {\n let parent = parents.get(id);\n opened.add(id);\n while (parent != null && parent !== id) {\n opened.add(parent);\n parent = parents.get(parent);\n }\n return opened;\n } else {\n opened.delete(id);\n }\n return opened;\n },\n select: () => null\n};\nexport const listOpenStrategy = {\n open: multipleOpenStrategy.open,\n select: _ref3 => {\n let {\n id,\n value,\n opened,\n parents\n } = _ref3;\n if (!value) return opened;\n const path = [];\n let parent = parents.get(id);\n while (parent != null) {\n path.push(parent);\n parent = parents.get(parent);\n }\n return new Set(path);\n }\n};\n//# sourceMappingURL=openStrategies.js.map","/* eslint-disable sonarjs/no-identical-functions */\n// Utilities\nimport { toRaw } from 'vue';\nexport const independentSelectStrategy = mandatory => {\n const strategy = {\n select: _ref => {\n let {\n id,\n value,\n selected\n } = _ref;\n id = toRaw(id);\n\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, _ref2) => {\n let [key, value] = _ref2;\n if (value === 'on') arr.push(key);\n return arr;\n }, []);\n if (on.length === 1 && on[0] === id) return selected;\n }\n selected.set(id, value ? 'on' : 'off');\n return selected;\n },\n in: (v, children, parents, disabled) => {\n const map = new Map();\n for (const id of v || []) {\n strategy.select({\n id,\n value: true,\n selected: map,\n children,\n parents,\n disabled\n });\n }\n return map;\n },\n out: v => {\n const arr = [];\n for (const [key, value] of v.entries()) {\n if (value === 'on') arr.push(key);\n }\n return arr;\n }\n };\n return strategy;\n};\nexport const independentSingleSelectStrategy = mandatory => {\n const parentStrategy = independentSelectStrategy(mandatory);\n const strategy = {\n select: _ref3 => {\n let {\n selected,\n id,\n ...rest\n } = _ref3;\n id = toRaw(id);\n const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)]]) : new Map();\n return parentStrategy.select({\n ...rest,\n id,\n selected: singleSelected\n });\n },\n in: (v, children, parents, disabled) => {\n if (v?.length) {\n return parentStrategy.in(v.slice(0, 1), children, parents, disabled);\n }\n return new Map();\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents);\n }\n };\n return strategy;\n};\nexport const leafSelectStrategy = mandatory => {\n const parentStrategy = independentSelectStrategy(mandatory);\n const strategy = {\n select: _ref4 => {\n let {\n id,\n selected,\n children,\n ...rest\n } = _ref4;\n id = toRaw(id);\n if (children.has(id)) return selected;\n return parentStrategy.select({\n id,\n selected,\n children,\n ...rest\n });\n },\n in: parentStrategy.in,\n out: parentStrategy.out\n };\n return strategy;\n};\nexport const leafSingleSelectStrategy = mandatory => {\n const parentStrategy = independentSingleSelectStrategy(mandatory);\n const strategy = {\n select: _ref5 => {\n let {\n id,\n selected,\n children,\n ...rest\n } = _ref5;\n id = toRaw(id);\n if (children.has(id)) return selected;\n return parentStrategy.select({\n id,\n selected,\n children,\n ...rest\n });\n },\n in: parentStrategy.in,\n out: parentStrategy.out\n };\n return strategy;\n};\nexport const classicSelectStrategy = mandatory => {\n const strategy = {\n select: _ref6 => {\n let {\n id,\n value,\n selected,\n children,\n parents,\n disabled\n } = _ref6;\n id = toRaw(id);\n const original = new Map(selected);\n const items = [id];\n while (items.length) {\n const item = items.shift();\n if (!disabled.has(item)) {\n selected.set(toRaw(item), value ? 'on' : 'off');\n }\n if (children.has(item)) {\n items.push(...children.get(item));\n }\n }\n let parent = toRaw(parents.get(id));\n while (parent) {\n let everySelected = true;\n let noneSelected = true;\n for (const child of children.get(parent)) {\n const cid = toRaw(child);\n if (disabled.has(cid)) continue;\n if (selected.get(cid) !== 'on') everySelected = false;\n if (selected.has(cid) && selected.get(cid) !== 'off') noneSelected = false;\n if (!everySelected && !noneSelected) break;\n }\n selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate');\n parent = toRaw(parents.get(parent));\n }\n\n // If mandatory and planned deselect results in no selected\n // items then we can't do it, so return original state\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, _ref7) => {\n let [key, value] = _ref7;\n if (value === 'on') arr.push(key);\n return arr;\n }, []);\n if (on.length === 0) return original;\n }\n return selected;\n },\n in: (v, children, parents, disabled) => {\n let map = new Map();\n for (const id of v || []) {\n map = strategy.select({\n id,\n value: true,\n selected: map,\n children,\n parents,\n disabled\n });\n }\n return map;\n },\n out: (v, children) => {\n const arr = [];\n for (const [key, value] of v.entries()) {\n if (value === 'on' && !children.has(key)) arr.push(key);\n }\n return arr;\n }\n };\n return strategy;\n};\nexport const trunkSelectStrategy = mandatory => {\n const parentStrategy = classicSelectStrategy(mandatory);\n const strategy = {\n select: parentStrategy.select,\n in: parentStrategy.in,\n out: (v, children, parents) => {\n const arr = [];\n for (const [key, value] of v.entries()) {\n if (value === 'on') {\n if (parents.has(key)) {\n const parent = parents.get(key);\n if (v.get(parent) === 'on') continue;\n }\n arr.push(key);\n }\n }\n return arr;\n }\n };\n return strategy;\n};\n//# sourceMappingURL=selectStrategies.js.map","// Composables\nimport { useProxiedModel } from \"../proxiedModel.js\"; // Utilities\nimport { computed, inject, nextTick, onBeforeMount, onBeforeUnmount, provide, ref, shallowRef, toRaw, toRef, toValue, watch } from 'vue';\nimport { independentActiveStrategy, independentSingleActiveStrategy, leafActiveStrategy, leafSingleActiveStrategy } from \"./activeStrategies.js\";\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from \"./openStrategies.js\";\nimport { classicSelectStrategy, independentSelectStrategy, independentSingleSelectStrategy, leafSelectStrategy, leafSingleSelectStrategy, trunkSelectStrategy } from \"./selectStrategies.js\";\nimport { consoleError, getCurrentInstance, propsFactory, throttle } from \"../../util/index.js\"; // Types\nexport const VNestedSymbol = Symbol.for('vuetify:nested');\nexport const emptyNested = {\n id: shallowRef(),\n root: {\n register: () => null,\n unregister: () => null,\n children: ref(new Map()),\n parents: ref(new Map()),\n disabled: ref(new Set()),\n open: () => null,\n openOnSelect: () => null,\n activate: () => null,\n select: () => null,\n activatable: ref(false),\n selectable: ref(false),\n opened: ref(new Set()),\n activated: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n getPath: () => []\n }\n};\nexport const makeNestedProps = propsFactory({\n activatable: Boolean,\n selectable: Boolean,\n activeStrategy: [String, Function, Object],\n selectStrategy: [String, Function, Object],\n openStrategy: [String, Object],\n opened: null,\n activated: null,\n selected: null,\n mandatory: Boolean\n}, 'nested');\nexport const useNested = props => {\n let isUnmounted = false;\n const children = shallowRef(new Map());\n const parents = shallowRef(new Map());\n const disabled = shallowRef(new Set());\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(Array.isArray(v) ? v.map(i => toRaw(i)) : v), v => [...v.values()]);\n const activeStrategy = computed(() => {\n if (typeof props.activeStrategy === 'object') return props.activeStrategy;\n if (typeof props.activeStrategy === 'function') return props.activeStrategy(props.mandatory);\n switch (props.activeStrategy) {\n case 'leaf':\n return leafActiveStrategy(props.mandatory);\n case 'single-leaf':\n return leafSingleActiveStrategy(props.mandatory);\n case 'independent':\n return independentActiveStrategy(props.mandatory);\n case 'single-independent':\n default:\n return independentSingleActiveStrategy(props.mandatory);\n }\n });\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy;\n if (typeof props.selectStrategy === 'function') return props.selectStrategy(props.mandatory);\n switch (props.selectStrategy) {\n case 'single-leaf':\n return leafSingleSelectStrategy(props.mandatory);\n case 'leaf':\n return leafSelectStrategy(props.mandatory);\n case 'independent':\n return independentSelectStrategy(props.mandatory);\n case 'single-independent':\n return independentSingleSelectStrategy(props.mandatory);\n case 'trunk':\n return trunkSelectStrategy(props.mandatory);\n case 'classic':\n default:\n return classicSelectStrategy(props.mandatory);\n }\n });\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'object') return props.openStrategy;\n switch (props.openStrategy) {\n case 'list':\n return listOpenStrategy;\n case 'single':\n return singleOpenStrategy;\n case 'multiple':\n default:\n return multipleOpenStrategy;\n }\n });\n const activated = useProxiedModel(props, 'activated', props.activated, v => activeStrategy.value.in(v, children.value, parents.value), v => activeStrategy.value.out(v, children.value, parents.value));\n const selected = useProxiedModel(props, 'selected', props.selected, v => selectStrategy.value.in(v, children.value, parents.value, disabled.value), v => selectStrategy.value.out(v, children.value, parents.value));\n onBeforeUnmount(() => {\n isUnmounted = true;\n });\n function getPath(id) {\n const path = [];\n let parent = toRaw(id);\n while (parent !== undefined) {\n path.unshift(parent);\n parent = parents.value.get(parent);\n }\n return path;\n }\n const vm = getCurrentInstance('nested');\n const nodeIds = new Set();\n const itemsUpdatePropagation = throttle(() => {\n nextTick(() => {\n children.value = new Map(children.value);\n parents.value = new Map(parents.value);\n });\n }, 100);\n const nested = {\n id: shallowRef(),\n root: {\n opened,\n activatable: toRef(() => props.activatable),\n selectable: toRef(() => props.selectable),\n activated,\n selected,\n selectedValues: computed(() => {\n const arr = [];\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key);\n }\n return arr;\n }),\n register: (id, parentId, isDisabled, isGroup) => {\n if (nodeIds.has(id)) {\n const path = getPath(id).map(String).join(' -> ');\n const newPath = getPath(parentId).concat(id).map(String).join(' -> ');\n consoleError(`Multiple nodes with the same ID\\n\\t${path}\\n\\t${newPath}`);\n return;\n } else {\n nodeIds.add(id);\n }\n parentId && id !== parentId && parents.value.set(id, parentId);\n isDisabled && disabled.value.add(id);\n isGroup && children.value.set(id, []);\n if (parentId != null) {\n children.value.set(parentId, [...(children.value.get(parentId) || []), id]);\n }\n itemsUpdatePropagation();\n },\n unregister: id => {\n if (isUnmounted) return;\n nodeIds.delete(id);\n children.value.delete(id);\n disabled.value.delete(id);\n const parent = parents.value.get(id);\n if (parent) {\n const list = children.value.get(parent) ?? [];\n children.value.set(parent, list.filter(child => child !== id));\n }\n parents.value.delete(id);\n itemsUpdatePropagation();\n },\n open: (id, value, event) => {\n vm.emit('click:open', {\n id,\n value,\n path: getPath(id),\n event\n });\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event\n });\n newOpened && (opened.value = newOpened);\n },\n openOnSelect: (id, value, event) => {\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event\n });\n newOpened && (opened.value = newOpened);\n },\n select: (id, value, event) => {\n vm.emit('click:select', {\n id,\n value,\n path: getPath(id),\n event\n });\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n disabled: disabled.value,\n event\n });\n newSelected && (selected.value = newSelected);\n nested.root.openOnSelect(id, value, event);\n },\n activate: (id, value, event) => {\n if (!props.activatable) {\n return nested.root.select(id, true, event);\n }\n vm.emit('click:activate', {\n id,\n value,\n path: getPath(id),\n event\n });\n const newActivated = activeStrategy.value.activate({\n id,\n value,\n activated: new Set(activated.value),\n children: children.value,\n parents: parents.value,\n event\n });\n if (newActivated.size !== activated.value.size) {\n activated.value = newActivated;\n } else {\n for (const value of newActivated) {\n if (!activated.value.has(value)) {\n activated.value = newActivated;\n return;\n }\n }\n for (const value of activated.value) {\n if (!newActivated.has(value)) {\n activated.value = newActivated;\n return;\n }\n }\n }\n },\n children,\n parents,\n disabled,\n getPath\n }\n };\n provide(VNestedSymbol, nested);\n return nested.root;\n};\nexport const useNestedItem = (id, isDisabled, isGroup) => {\n const parent = inject(VNestedSymbol, emptyNested);\n const uidSymbol = Symbol('nested item');\n const computedId = computed(() => {\n const idValue = toRaw(toValue(id));\n return idValue !== undefined ? idValue : uidSymbol;\n });\n const item = {\n ...parent,\n id: computedId,\n open: (open, e) => parent.root.open(computedId.value, open, e),\n openOnSelect: (open, e) => parent.root.openOnSelect(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n activate: (activated, e) => parent.root.activate(computedId.value, activated, e),\n isActivated: computed(() => parent.root.activated.value.has(computedId.value)),\n select: (selected, e) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(computedId.value) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator\n };\n onBeforeMount(() => {\n if (!parent.isGroupActivator) {\n nextTick(() => {\n parent.root.register(computedId.value, parent.id.value, toValue(isDisabled), isGroup);\n });\n }\n });\n onBeforeUnmount(() => {\n if (!parent.isGroupActivator) {\n parent.root.unregister(computedId.value);\n }\n });\n watch(computedId, (val, oldVal) => {\n if (!parent.isGroupActivator) {\n parent.root.unregister(oldVal);\n nextTick(() => {\n parent.root.register(val, parent.id.value, toValue(isDisabled), isGroup);\n });\n }\n });\n isGroup && provide(VNestedSymbol, item);\n return item;\n};\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested);\n provide(VNestedSymbol, {\n ...parent,\n isGroupActivator: true\n });\n};\n//# sourceMappingURL=nested.js.map","// Utilities\nimport { onMounted, readonly, shallowRef, toRef } 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 = toRef(() => !isBooted.value ? {\n transition: 'none !important'\n } : undefined);\n return {\n ssrBootStyles,\n isBooted: readonly(isBooted)\n };\n}\n//# sourceMappingURL=ssrBoot.js.map","// Utilities\nimport { h, mergeProps, Transition, TransitionGroup } from 'vue';\nimport { isObject, onlyDefinedProps, propsFactory } from \"../util/index.js\"; // Types\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: null,\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 } = isObject(transition) ? transition : {};\n let transitionProps;\n if (isObject(transition)) {\n transitionProps = mergeProps(customProps, onlyDefinedProps({\n disabled,\n group\n }), rest);\n } else {\n transitionProps = mergeProps({\n name: disabled || !transition ? '' : transition\n }, rest);\n }\n return h(component, transitionProps, slots);\n};\n//# sourceMappingURL=transition.js.map","import { createVNode as _createVNode, vShow as _vShow, createElementVNode as _createElementVNode, withDirectives as _withDirectives, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from \"vue\";\n// Components\nimport { VExpandTransition } from \"../transitions/index.js\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.js\"; // Composables\nimport { useList } from \"./list.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { IconValue } from \"../../composables/icons.js\";\nimport { useNestedGroupActivator, useNestedItem } from \"../../composables/nested/nested.js\";\nimport { useSsrBoot } from \"../../composables/ssrBoot.js\";\nimport { makeTagProps } from \"../../composables/tag.js\";\nimport { MaybeTransition } from \"../../composables/transition.js\"; // Utilities\nimport { computed } from 'vue';\nimport { defineComponent, genericComponent, propsFactory, useRender } from \"../../util/index.js\";\nconst VListGroupActivator = defineComponent({\n name: 'VListGroupActivator',\n setup(_, _ref) {\n let {\n slots\n } = _ref;\n useNestedGroupActivator();\n return () => slots.default?.();\n }\n});\nexport const makeVListGroupProps = propsFactory({\n /* @deprecated */\n activeColor: String,\n baseColor: String,\n color: String,\n collapseIcon: {\n type: IconValue,\n default: '$collapse'\n },\n disabled: Boolean,\n expandIcon: {\n type: IconValue,\n default: '$expand'\n },\n rawId: [String, Number],\n prependIcon: IconValue,\n appendIcon: IconValue,\n fluid: Boolean,\n subgroup: Boolean,\n title: String,\n value: null,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VListGroup');\nexport const VListGroup = genericComponent()({\n name: 'VListGroup',\n props: makeVListGroupProps(),\n setup(props, _ref2) {\n let {\n slots\n } = _ref2;\n const {\n isOpen,\n open,\n id: _id\n } = useNestedItem(() => props.value, () => props.disabled, true);\n const id = computed(() => `v-list-group--id-${String(props.rawId ?? _id.value)}`);\n const list = useList();\n const {\n isBooted\n } = useSsrBoot();\n function onClick(e) {\n if (['INPUT', 'TEXTAREA'].includes(e.target?.tagName)) return;\n open(!isOpen.value, e);\n }\n const activatorProps = computed(() => ({\n onClick,\n class: 'v-list-group__header',\n id: id.value\n }));\n const toggleIcon = computed(() => isOpen.value ? props.collapseIcon : props.expandIcon);\n const activatorDefaults = computed(() => ({\n VListItem: {\n activeColor: props.activeColor,\n baseColor: props.baseColor,\n color: props.color,\n prependIcon: props.prependIcon || props.subgroup && toggleIcon.value,\n appendIcon: props.appendIcon || !props.subgroup && toggleIcon.value,\n title: props.title,\n value: props.value\n }\n }));\n useRender(() => _createVNode(props.tag, {\n \"class\": _normalizeClass(['v-list-group', {\n 'v-list-group--prepend': list?.hasPrepend.value,\n 'v-list-group--fluid': props.fluid,\n 'v-list-group--subgroup': props.subgroup,\n 'v-list-group--open': isOpen.value\n }, props.class]),\n \"style\": _normalizeStyle(props.style)\n }, {\n default: () => [slots.activator && _createVNode(VDefaultsProvider, {\n \"defaults\": activatorDefaults.value\n }, {\n default: () => [_createVNode(VListGroupActivator, null, {\n default: () => [slots.activator({\n props: activatorProps.value,\n isOpen: isOpen.value\n })]\n })]\n }), _createVNode(MaybeTransition, {\n \"transition\": {\n component: VExpandTransition\n },\n \"disabled\": !isBooted.value\n }, {\n default: () => [_withDirectives(_createElementVNode(\"div\", {\n \"class\": \"v-list-group__items\",\n \"role\": \"group\",\n \"aria-labelledby\": id.value\n }, [slots.default?.()]), [[_vShow, isOpen.value]])]\n })]\n }));\n return {\n isOpen\n };\n }\n});\n//# sourceMappingURL=VListGroup.js.map","import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeTagProps } from \"../../composables/tag.js\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\";\nexport const makeVListItemSubtitleProps = propsFactory({\n opacity: [Number, String],\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VListItemSubtitle');\nexport const VListItemSubtitle = genericComponent()({\n name: 'VListItemSubtitle',\n props: makeVListItemSubtitleProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(props.tag, {\n \"class\": _normalizeClass(['v-list-item-subtitle', props.class]),\n \"style\": _normalizeStyle([{\n '--v-list-item-subtitle-opacity': props.opacity\n }, props.style])\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VListItemSubtitle.js.map","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.js\";\nexport const VListItemTitle = createSimpleFunctional('v-list-item-title');\n//# sourceMappingURL=VListItemTitle.js.map","import { normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\";\n// Styles\nimport \"./VResponsive.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.js\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\";\nexport function useAspectStyles(props) {\n return {\n aspectStyles: computed(() => {\n const ratio = Number(props.aspectRatio);\n return ratio ? {\n paddingBottom: String(1 / ratio * 100) + '%'\n } : undefined;\n })\n };\n}\nexport const makeVResponsiveProps = propsFactory({\n aspectRatio: [String, Number],\n contentClass: null,\n inline: Boolean,\n ...makeComponentProps(),\n ...makeDimensionProps()\n}, 'VResponsive');\nexport const VResponsive = genericComponent()({\n name: 'VResponsive',\n props: makeVResponsiveProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n aspectStyles\n } = useAspectStyles(props);\n const {\n dimensionStyles\n } = useDimension(props);\n useRender(() => _createElementVNode(\"div\", {\n \"class\": _normalizeClass(['v-responsive', {\n 'v-responsive--inline': props.inline\n }, props.class]),\n \"style\": _normalizeStyle([dimensionStyles.value, props.style])\n }, [_createElementVNode(\"div\", {\n \"class\": \"v-responsive__sizer\",\n \"style\": _normalizeStyle(aspectStyles.value)\n }, null), slots.additional?.(), slots.default && _createElementVNode(\"div\", {\n \"class\": _normalizeClass(['v-responsive__content', props.contentClass])\n }, [slots.default()])]));\n return {};\n }\n});\n//# sourceMappingURL=VResponsive.js.map","// Utilities\nimport { SUPPORTS_INTERSECTION } from \"../../util/index.js\"; // Types\nfunction mounted(el, binding) {\n if (!SUPPORTS_INTERSECTION) return;\n const modifiers = binding.modifiers || {};\n const value = binding.value;\n const {\n handler,\n options\n } = typeof value === 'object' ? value : {\n handler: value,\n options: {}\n };\n const observer = new IntersectionObserver(function () {\n let entries = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let observer = arguments.length > 1 ? arguments[1] : undefined;\n const _observe = el._observe?.[binding.instance.$.uid];\n if (!_observe) return; // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting);\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (handler && (!modifiers.quiet || _observe.init) && (!modifiers.once || isIntersecting || _observe.init)) {\n handler(isIntersecting, entries, observer);\n }\n if (isIntersecting && modifiers.once) unmounted(el, binding);else _observe.init = true;\n }, options);\n el._observe = Object(el._observe);\n el._observe[binding.instance.$.uid] = {\n init: false,\n observer\n };\n observer.observe(el);\n}\nfunction unmounted(el, binding) {\n const observe = el._observe?.[binding.instance.$.uid];\n if (!observe) return;\n observe.observer.unobserve(el);\n delete el._observe[binding.instance.$.uid];\n}\nexport const Intersect = {\n mounted,\n unmounted\n};\nexport default Intersect;\n//# sourceMappingURL=index.js.map","import { normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, createVNode as _createVNode, Fragment as _Fragment, mergeProps as _mergeProps, withDirectives as _withDirectives } from \"vue\";\n// Styles\nimport \"./VImg.css\";\n\n// Components\nimport { makeVResponsiveProps, VResponsive } from \"../VResponsive/VResponsive.js\"; // Composables\nimport { useBackgroundColor } from \"../../composables/color.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.js\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.js\"; // Directives\nimport vIntersect from \"../../directives/intersect/index.js\"; // Utilities\nimport { computed, nextTick, onBeforeMount, onBeforeUnmount, ref, shallowRef, toRef, vShow, watch, withDirectives } from 'vue';\nimport { convertToUnit, genericComponent, getCurrentInstance, propsFactory, SUPPORTS_INTERSECTION, useRender } from \"../../util/index.js\"; // Types\n// not intended for public use, this is passed in by vuetify-loader\nexport const makeVImgProps = propsFactory({\n absolute: Boolean,\n alt: String,\n cover: Boolean,\n color: String,\n draggable: {\n type: [Boolean, String],\n default: undefined\n },\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined\n })\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: ''\n },\n crossorigin: String,\n referrerpolicy: String,\n srcset: String,\n position: String,\n ...makeVResponsiveProps(),\n ...makeComponentProps(),\n ...makeRoundedProps(),\n ...makeTransitionProps()\n}, 'VImg');\nexport const VImg = genericComponent()({\n name: 'VImg',\n directives: {\n vIntersect\n },\n props: makeVImgProps(),\n emits: {\n loadstart: value => true,\n load: value => true,\n error: value => true\n },\n setup(props, _ref) {\n let {\n emit,\n slots\n } = _ref;\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(() => props.color);\n const {\n roundedClasses\n } = useRounded(props);\n const vm = getCurrentInstance('VImg');\n const currentSrc = shallowRef(''); // Set from srcset\n const image = ref();\n const state = shallowRef(props.eager ? 'loading' : 'idle');\n const naturalWidth = shallowRef();\n const naturalHeight = shallowRef();\n const normalisedSrc = computed(() => {\n return props.src && typeof props.src === 'object' ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect || 0)\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0)\n };\n });\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value / naturalHeight.value || 0;\n });\n watch(() => props.src, () => {\n init(state.value !== 'idle');\n });\n watch(aspectRatio, (val, oldVal) => {\n if (!val && oldVal && image.value) {\n pollForSize(image.value);\n }\n });\n\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init());\n function init(isIntersecting) {\n if (props.eager && isIntersecting) return;\n if (SUPPORTS_INTERSECTION && !isIntersecting && !props.eager) return;\n state.value = 'loading';\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image();\n lazyImg.src = normalisedSrc.value.lazySrc;\n pollForSize(lazyImg, null);\n }\n if (!normalisedSrc.value.src) return;\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src);\n setTimeout(() => {\n if (vm.isUnmounted) return;\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError();\n }\n if (state.value === 'error') return;\n if (!aspectRatio.value) pollForSize(image.value, null);\n if (state.value === 'loading') onLoad();\n } else {\n if (!aspectRatio.value) pollForSize(image.value);\n getSrc();\n }\n });\n });\n }\n function onLoad() {\n if (vm.isUnmounted) return;\n getSrc();\n pollForSize(image.value);\n state.value = 'loaded';\n emit('load', image.value?.currentSrc || normalisedSrc.value.src);\n }\n function onError() {\n if (vm.isUnmounted) return;\n state.value = 'error';\n emit('error', image.value?.currentSrc || normalisedSrc.value.src);\n }\n function getSrc() {\n const img = image.value;\n if (img) currentSrc.value = img.currentSrc || img.src;\n }\n let timer = -1;\n onBeforeUnmount(() => {\n clearTimeout(timer);\n });\n function pollForSize(img) {\n let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;\n const poll = () => {\n clearTimeout(timer);\n if (vm.isUnmounted) return;\n const {\n naturalHeight: imgHeight,\n naturalWidth: imgWidth\n } = img;\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth;\n naturalHeight.value = imgHeight;\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n timer = window.setTimeout(poll, timeout);\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1;\n naturalHeight.value = 1;\n }\n };\n poll();\n }\n const containClasses = toRef(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover\n }));\n const __image = () => {\n if (!normalisedSrc.value.src || state.value === 'idle') return null;\n const img = _createElementVNode(\"img\", {\n \"class\": _normalizeClass(['v-img__img', containClasses.value]),\n \"style\": {\n objectPosition: props.position\n },\n \"crossorigin\": props.crossorigin,\n \"src\": normalisedSrc.value.src,\n \"srcset\": normalisedSrc.value.srcset,\n \"alt\": props.alt,\n \"referrerpolicy\": props.referrerpolicy,\n \"draggable\": props.draggable,\n \"sizes\": props.sizes,\n \"ref\": image,\n \"onLoad\": onLoad,\n \"onError\": onError\n }, null);\n const sources = slots.sources?.();\n return _createVNode(MaybeTransition, {\n \"transition\": props.transition,\n \"appear\": true\n }, {\n default: () => [withDirectives(sources ? _createElementVNode(\"picture\", {\n \"class\": \"v-img__picture\"\n }, [sources, img]) : img, [[vShow, state.value === 'loaded']])]\n });\n };\n const __preloadImage = () => _createVNode(MaybeTransition, {\n \"transition\": props.transition\n }, {\n default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && _createElementVNode(\"img\", {\n \"class\": _normalizeClass(['v-img__img', 'v-img__img--preload', containClasses.value]),\n \"style\": {\n objectPosition: props.position\n },\n \"crossorigin\": props.crossorigin,\n \"src\": normalisedSrc.value.lazySrc,\n \"alt\": props.alt,\n \"referrerpolicy\": props.referrerpolicy,\n \"draggable\": props.draggable\n }, null)]\n });\n const __placeholder = () => {\n if (!slots.placeholder) return null;\n return _createVNode(MaybeTransition, {\n \"transition\": props.transition,\n \"appear\": true\n }, {\n default: () => [(state.value === 'loading' || state.value === 'error' && !slots.error) && _createElementVNode(\"div\", {\n \"class\": \"v-img__placeholder\"\n }, [slots.placeholder()])]\n });\n };\n const __error = () => {\n if (!slots.error) return null;\n return _createVNode(MaybeTransition, {\n \"transition\": props.transition,\n \"appear\": true\n }, {\n default: () => [state.value === 'error' && _createElementVNode(\"div\", {\n \"class\": \"v-img__error\"\n }, [slots.error()])]\n });\n };\n const __gradient = () => {\n if (!props.gradient) return null;\n return _createElementVNode(\"div\", {\n \"class\": \"v-img__gradient\",\n \"style\": {\n backgroundImage: `linear-gradient(${props.gradient})`\n }\n }, null);\n };\n const isBooted = shallowRef(false);\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true;\n });\n });\n stop();\n }\n });\n }\n useRender(() => {\n const responsiveProps = VResponsive.filterProps(props);\n return _withDirectives(_createVNode(VResponsive, _mergeProps({\n \"class\": ['v-img', {\n 'v-img--absolute': props.absolute,\n 'v-img--booting': !isBooted.value\n }, backgroundColorClasses.value, roundedClasses.value, props.class],\n \"style\": [{\n width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width)\n }, backgroundColorStyles.value, props.style]\n }, responsiveProps, {\n \"aspectRatio\": aspectRatio.value,\n \"aria-label\": props.alt,\n \"role\": props.alt ? 'img' : undefined\n }), {\n additional: () => _createElementVNode(_Fragment, null, [_createVNode(__image, null, null), _createVNode(__preloadImage, null, null), _createVNode(__gradient, null, null), _createVNode(__placeholder, null, null), _createVNode(__error, null, null)]),\n default: slots.default\n }), [[vIntersect, {\n handler: init,\n options: props.options\n }, null, {\n once: true\n }]]);\n });\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight\n };\n }\n});\n//# sourceMappingURL=VImg.js.map","import { createVNode as _createVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from \"vue\";\n// Styles\nimport \"./VAvatar.css\";\n\n// Components\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.js\";\nimport { VIcon } from \"../VIcon/index.js\";\nimport { VImg } from \"../VImg/index.js\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.js\";\nimport { IconValue } from \"../../composables/icons.js\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.js\";\nimport { makeSizeProps, useSize } from \"../../composables/size.js\";\nimport { makeTagProps } from \"../../composables/tag.js\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.js\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.js\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\";\nexport const makeVAvatarProps = propsFactory({\n start: Boolean,\n end: Boolean,\n icon: IconValue,\n image: String,\n text: String,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'flat'\n })\n}, 'VAvatar');\nexport const VAvatar = genericComponent()({\n name: 'VAvatar',\n props: makeVAvatarProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n sizeClasses,\n sizeStyles\n } = useSize(props);\n useRender(() => _createVNode(props.tag, {\n \"class\": _normalizeClass(['v-avatar', {\n 'v-avatar--start': props.start,\n 'v-avatar--end': props.end\n }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class]),\n \"style\": _normalizeStyle([colorStyles.value, sizeStyles.value, props.style])\n }, {\n default: () => [!slots.default ? props.image ? _createVNode(VImg, {\n \"key\": \"image\",\n \"src\": props.image,\n \"alt\": \"\",\n \"cover\": true\n }, null) : props.icon ? _createVNode(VIcon, {\n \"key\": \"icon\",\n \"icon\": props.icon\n }, null) : props.text : _createVNode(VDefaultsProvider, {\n \"key\": \"content-defaults\",\n \"defaults\": {\n VImg: {\n cover: true,\n src: props.image\n },\n VIcon: {\n icon: props.icon\n }\n }\n }, {\n default: () => [slots.default()]\n }), genOverlays(false, 'v-avatar')]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VAvatar.js.map","import { Fragment as _Fragment, createVNode as _createVNode, createElementVNode as _createElementVNode, mergeProps as _mergeProps, withDirectives as _withDirectives } from \"vue\";\n// Styles\nimport \"./VListItem.css\";\n\n// Components\nimport { VListItemSubtitle } from \"./VListItemSubtitle.js\";\nimport { VListItemTitle } from \"./VListItemTitle.js\";\nimport { VAvatar } from \"../VAvatar/index.js\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.js\";\nimport { VIcon } from \"../VIcon/index.js\"; // Composables\nimport { useList } from \"./list.js\";\nimport { makeBorderProps, useBorder } from \"../../composables/border.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.js\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.js\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.js\";\nimport { IconValue } from \"../../composables/icons.js\";\nimport { useNestedItem } from \"../../composables/nested/nested.js\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.js\";\nimport { makeRouterProps, useLink } from \"../../composables/router.js\";\nimport { makeTagProps } from \"../../composables/tag.js\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.js\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.js\"; // Directives\nimport vRipple from \"../../directives/ripple/index.js\"; // Utilities\nimport { computed, nextTick, onBeforeMount, toDisplayString, toRef, watch } from 'vue';\nimport { deprecate, EventProp, genericComponent, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVListItemProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined\n },\n activeClass: String,\n /* @deprecated */\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n baseColor: String,\n disabled: Boolean,\n lines: [Boolean, String],\n link: {\n type: Boolean,\n default: undefined\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n slim: Boolean,\n subtitle: {\n type: [String, Number, Boolean],\n default: undefined\n },\n title: {\n type: [String, Number, Boolean],\n default: undefined\n },\n value: null,\n onClick: EventProp(),\n onClickOnce: EventProp(),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'text'\n })\n}, 'VListItem');\nexport const VListItem = genericComponent()({\n name: 'VListItem',\n directives: {\n vRipple\n },\n props: makeVListItemProps(),\n emits: {\n click: e => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots,\n emit\n } = _ref;\n const link = useLink(props, attrs);\n const id = computed(() => props.value === undefined ? link.href.value : props.value);\n const {\n activate,\n isActivated,\n select,\n isOpen,\n isSelected,\n isIndeterminate,\n isGroupActivator,\n root,\n parent,\n openOnSelect,\n id: uid\n } = useNestedItem(id, () => props.disabled, false);\n const list = useList();\n const isActive = computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));\n const isLink = toRef(() => props.link !== false && link.isLink.value);\n const isSelectable = computed(() => !!list && (root.selectable.value || root.activatable.value || props.value != null));\n const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || isSelectable.value));\n const role = computed(() => list ? isLink.value ? 'link' : isSelectable.value ? 'option' : 'listitem' : undefined);\n const ariaSelected = computed(() => {\n if (!isSelectable.value) return undefined;\n return root.activatable.value ? isActivated.value : root.selectable.value ? isSelected.value : isActive.value;\n });\n const roundedProps = toRef(() => props.rounded || props.nav);\n const color = toRef(() => props.color ?? props.activeColor);\n const variantProps = toRef(() => ({\n color: isActive.value ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant\n }));\n\n // useNestedItem doesn't call register until beforeMount,\n // so this can't be an immediate watcher as we don't know parent yet\n watch(() => link.isActive?.value, val => {\n if (!val) return;\n handleActiveLink();\n });\n onBeforeMount(() => {\n if (link.isActive?.value) {\n nextTick(() => handleActiveLink());\n }\n });\n function handleActiveLink() {\n if (parent.value != null) {\n root.open(parent.value, true);\n }\n openOnSelect(true);\n }\n const {\n themeClasses\n } = provideTheme(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(variantProps);\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(roundedProps);\n const lineClasses = toRef(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);\n const rippleOptions = toRef(() => props.ripple !== undefined && !!props.ripple && list?.filterable ? {\n keys: ['Enter']\n } : props.ripple);\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isOpen: isOpen.value,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value\n }));\n function onClick(e) {\n emit('click', e);\n if (['INPUT', 'TEXTAREA'].includes(e.target?.tagName)) return;\n if (!isClickable.value) return;\n link.navigate?.(e);\n if (isGroupActivator) return;\n if (root.activatable.value) {\n activate(!isActivated.value, e);\n } else if (root.selectable.value) {\n select(!isSelected.value, e);\n } else if (props.value != null && !isLink.value) {\n select(!isSelected.value, e);\n }\n }\n function onKeyDown(e) {\n const target = e.target;\n if (['INPUT', 'TEXTAREA'].includes(target.tagName)) return;\n if (e.key === 'Enter' || e.key === ' ' && !list?.filterable) {\n e.preventDefault();\n e.stopPropagation();\n e.target.dispatchEvent(new MouseEvent('click', e));\n }\n }\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag;\n const hasTitle = slots.title || props.title != null;\n const hasSubtitle = slots.subtitle || props.subtitle != null;\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon);\n const hasAppend = !!(hasAppendMedia || slots.append);\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon);\n const hasPrepend = !!(hasPrependMedia || slots.prepend);\n list?.updateHasPrepend(hasPrepend);\n if (props.activeColor) {\n deprecate('active-color', ['color', 'base-color']);\n }\n return _withDirectives(_createVNode(Tag, _mergeProps(link.linkProps, {\n \"class\": ['v-list-item', {\n 'v-list-item--active': isActive.value,\n 'v-list-item--disabled': props.disabled,\n 'v-list-item--link': isClickable.value,\n 'v-list-item--nav': props.nav,\n 'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,\n 'v-list-item--slim': props.slim,\n [`${props.activeClass}`]: props.activeClass && isActive.value\n }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],\n \"style\": [colorStyles.value, dimensionStyles.value, props.style],\n \"tabindex\": isClickable.value ? list ? -2 : 0 : undefined,\n \"aria-selected\": ariaSelected.value,\n \"role\": role.value,\n \"onClick\": onClick,\n \"onKeydown\": isClickable.value && !isLink.value && onKeyDown\n }), {\n default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && _createElementVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-list-item__prepend\"\n }, [!slots.prepend ? _createElementVNode(_Fragment, null, [props.prependAvatar && _createVNode(VAvatar, {\n \"key\": \"prepend-avatar\",\n \"density\": props.density,\n \"image\": props.prependAvatar\n }, null), props.prependIcon && _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"density\": props.density,\n \"icon\": props.prependIcon\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !hasPrependMedia,\n \"defaults\": {\n VAvatar: {\n density: props.density,\n image: props.prependAvatar\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon\n },\n VListItemAction: {\n start: true\n }\n }\n }, {\n default: () => [slots.prepend?.(slotProps.value)]\n }), _createElementVNode(\"div\", {\n \"class\": \"v-list-item__spacer\"\n }, null)]), _createElementVNode(\"div\", {\n \"class\": \"v-list-item__content\",\n \"data-no-activator\": \"\"\n }, [hasTitle && _createVNode(VListItemTitle, {\n \"key\": \"title\"\n }, {\n default: () => [slots.title?.({\n title: props.title\n }) ?? toDisplayString(props.title)]\n }), hasSubtitle && _createVNode(VListItemSubtitle, {\n \"key\": \"subtitle\"\n }, {\n default: () => [slots.subtitle?.({\n subtitle: props.subtitle\n }) ?? toDisplayString(props.subtitle)]\n }), slots.default?.(slotProps.value)]), hasAppend && _createElementVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-list-item__append\"\n }, [!slots.append ? _createElementVNode(_Fragment, null, [props.appendIcon && _createVNode(VIcon, {\n \"key\": \"append-icon\",\n \"density\": props.density,\n \"icon\": props.appendIcon\n }, null), props.appendAvatar && _createVNode(VAvatar, {\n \"key\": \"append-avatar\",\n \"density\": props.density,\n \"image\": props.appendAvatar\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"append-defaults\",\n \"disabled\": !hasAppendMedia,\n \"defaults\": {\n VAvatar: {\n density: props.density,\n image: props.appendAvatar\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon\n },\n VListItemAction: {\n end: true\n }\n }\n }, {\n default: () => [slots.append?.(slotProps.value)]\n }), _createElementVNode(\"div\", {\n \"class\": \"v-list-item__spacer\"\n }, null)])]\n }), [[vRipple, isClickable.value && rippleOptions.value]]);\n });\n return {\n activate,\n isActivated,\n isGroupActivator,\n isSelected,\n list,\n select,\n root,\n id: uid,\n link\n };\n }\n});\n//# sourceMappingURL=VListItem.js.map","import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createVNode as _createVNode } from \"vue\";\n// Composables\nimport { useTextColor } from \"../../composables/color.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeTagProps } from \"../../composables/tag.js\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\";\nexport const makeVListSubheaderProps = propsFactory({\n color: String,\n inset: Boolean,\n sticky: Boolean,\n title: String,\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VListSubheader');\nexport const VListSubheader = genericComponent()({\n name: 'VListSubheader',\n props: makeVListSubheaderProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(() => props.color);\n useRender(() => {\n const hasText = !!(slots.default || props.title);\n return _createVNode(props.tag, {\n \"class\": _normalizeClass(['v-list-subheader', {\n 'v-list-subheader--inset': props.inset,\n 'v-list-subheader--sticky': props.sticky\n }, textColorClasses.value, props.class]),\n \"style\": _normalizeStyle([{\n textColorStyles\n }, props.style])\n }, {\n default: () => [hasText && _createElementVNode(\"div\", {\n \"class\": \"v-list-subheader__text\"\n }, [slots.default?.() ?? props.title])]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VListSubheader.js.map","import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode } from \"vue\";\n// Styles\nimport \"./VDivider.css\";\n\n// Composables\nimport { useTextColor } from \"../../composables/color.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.js\"; // Utilities\nimport { computed } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.js\";\nexport const makeVDividerProps = propsFactory({\n color: String,\n inset: Boolean,\n length: [Number, String],\n opacity: [Number, String],\n thickness: [Number, String],\n vertical: Boolean,\n ...makeComponentProps(),\n ...makeThemeProps()\n}, 'VDivider');\nexport const VDivider = genericComponent()({\n name: 'VDivider',\n props: makeVDividerProps(),\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(() => props.color);\n const dividerStyles = computed(() => {\n const styles = {};\n if (props.length) {\n styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);\n }\n if (props.thickness) {\n styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);\n }\n return styles;\n });\n useRender(() => {\n const divider = _createElementVNode(\"hr\", {\n \"class\": _normalizeClass([{\n 'v-divider': true,\n 'v-divider--inset': props.inset,\n 'v-divider--vertical': props.vertical\n }, themeClasses.value, textColorClasses.value, props.class]),\n \"style\": _normalizeStyle([dividerStyles.value, textColorStyles.value, {\n '--v-border-opacity': props.opacity\n }, props.style]),\n \"aria-orientation\": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,\n \"role\": `${attrs.role || 'separator'}`\n }, null);\n if (!slots.default) return divider;\n return _createElementVNode(\"div\", {\n \"class\": _normalizeClass(['v-divider__wrapper', {\n 'v-divider__wrapper--vertical': props.vertical,\n 'v-divider__wrapper--inset': props.inset\n }])\n }, [divider, _createElementVNode(\"div\", {\n \"class\": \"v-divider__content\"\n }, [slots.default()]), divider]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VDivider.js.map","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Components\nimport { VListGroup } from \"./VListGroup.js\";\nimport { VListItem } from \"./VListItem.js\";\nimport { VListSubheader } from \"./VListSubheader.js\";\nimport { VDivider } from \"../VDivider/index.js\"; // Utilities\nimport { mergeProps } from 'vue';\nimport { createList } from \"./list.js\";\nimport { genericComponent, propsFactory } from \"../../util/index.js\"; // Types\nexport const makeVListChildrenProps = propsFactory({\n items: Array,\n returnObject: Boolean\n}, 'VListChildren');\nexport const VListChildren = genericComponent()({\n name: 'VListChildren',\n props: makeVListChildrenProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n createList();\n return () => slots.default?.() ?? props.items?.map(_ref2 => {\n let {\n children,\n props: itemProps,\n type,\n raw: item\n } = _ref2;\n if (type === 'divider') {\n return slots.divider?.({\n props: itemProps\n }) ?? _createVNode(VDivider, itemProps, null);\n }\n if (type === 'subheader') {\n return slots.subheader?.({\n props: itemProps\n }) ?? _createVNode(VListSubheader, itemProps, null);\n }\n const slotsWithItem = {\n subtitle: slots.subtitle ? slotProps => slots.subtitle?.({\n ...slotProps,\n item\n }) : undefined,\n prepend: slots.prepend ? slotProps => slots.prepend?.({\n ...slotProps,\n item\n }) : undefined,\n append: slots.append ? slotProps => slots.append?.({\n ...slotProps,\n item\n }) : undefined,\n title: slots.title ? slotProps => slots.title?.({\n ...slotProps,\n item\n }) : undefined\n };\n const listGroupProps = VListGroup.filterProps(itemProps);\n return children ? _createVNode(VListGroup, _mergeProps(listGroupProps, {\n \"value\": props.returnObject ? item : itemProps?.value,\n \"rawId\": itemProps?.value\n }), {\n activator: _ref3 => {\n let {\n props: activatorProps\n } = _ref3;\n const listItemProps = mergeProps(itemProps, activatorProps, {\n value: props.returnObject ? item : itemProps.value\n });\n return slots.header ? slots.header({\n props: listItemProps\n }) : _createVNode(VListItem, listItemProps, slotsWithItem);\n },\n default: () => _createVNode(VListChildren, {\n \"items\": children,\n \"returnObject\": props.returnObject\n }, slots)\n }) : slots.item ? slots.item({\n props: itemProps\n }) : _createVNode(VListItem, _mergeProps(itemProps, {\n \"value\": props.returnObject ? item : itemProps.value\n }), slotsWithItem);\n });\n }\n});\n//# sourceMappingURL=VListChildren.js.map","// Utilities\nimport { computed, shallowRef, watchEffect } from 'vue';\nimport { deepEqual, getPropertyFromItem, isPrimitive, omit, pick, propsFactory } from \"../util/index.js\"; // Types\n// Composables\nexport const makeItemsProps = propsFactory({\n items: {\n type: Array,\n default: () => []\n },\n itemTitle: {\n type: [String, Array, Function],\n default: 'title'\n },\n itemValue: {\n type: [String, Array, Function],\n default: 'value'\n },\n itemChildren: {\n type: [Boolean, String, Array, Function],\n default: 'children'\n },\n itemProps: {\n type: [Boolean, String, Array, Function],\n default: 'props'\n },\n itemType: {\n type: [Boolean, String, Array, Function],\n default: 'type'\n },\n returnObject: Boolean,\n valueComparator: Function\n}, 'list-items');\nconst itemTypes = new Set(['item', 'divider', 'subheader']);\nexport function transformItem(props, item) {\n const title = getPropertyFromItem(item, props.itemTitle, item);\n const value = getPropertyFromItem(item, props.itemValue, title);\n const children = getPropertyFromItem(item, props.itemChildren);\n const itemProps = props.itemProps === true ? typeof item === 'object' && item != null && !Array.isArray(item) ? 'children' in item ? omit(item, ['children']) : item : undefined : getPropertyFromItem(item, props.itemProps);\n let type = getPropertyFromItem(item, props.itemType, 'item');\n if (!itemTypes.has(type)) {\n type = 'item';\n }\n const _props = {\n title,\n value,\n ...itemProps\n };\n return {\n type,\n title: String(_props.title ?? ''),\n value: _props.value,\n props: _props,\n children: type === 'item' && Array.isArray(children) ? transformItems(props, children) : undefined,\n raw: item\n };\n}\ntransformItem.neededProps = ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'itemType'];\nexport function transformItems(props, items) {\n // avoid reactive access in the loop\n const _props = pick(props, transformItem.neededProps);\n const array = [];\n for (const item of items) {\n array.push(transformItem(_props, item));\n }\n return array;\n}\nexport function useItems(props) {\n const items = computed(() => transformItems(props, props.items));\n const hasNullItem = computed(() => items.value.some(item => item.value === null));\n const itemsMap = shallowRef(new Map());\n const keylessItems = shallowRef([]);\n watchEffect(() => {\n const _items = items.value;\n const map = new Map();\n const keyless = [];\n for (let i = 0; i < _items.length; i++) {\n const item = _items[i];\n if (isPrimitive(item.value) || item.value === null) {\n let values = map.get(item.value);\n if (!values) {\n values = [];\n map.set(item.value, values);\n }\n values.push(item);\n } else {\n keyless.push(item);\n }\n }\n itemsMap.value = map;\n keylessItems.value = keyless;\n });\n function transformIn(value) {\n // Cache unrefed values outside the loop,\n // proxy getters can be slow when you call them a billion times\n const _items = itemsMap.value;\n const _allItems = items.value;\n const _keylessItems = keylessItems.value;\n const _hasNullItem = hasNullItem.value;\n const _returnObject = props.returnObject;\n const hasValueComparator = !!props.valueComparator;\n const valueComparator = props.valueComparator || deepEqual;\n const _props = pick(props, transformItem.neededProps);\n const returnValue = [];\n main: for (const v of value) {\n // When the model value is null, return an InternalItem\n // based on null only if null is one of the items\n if (!_hasNullItem && v === null) continue;\n\n // String model value means value is a custom input value from combobox\n // Don't look up existing items if the model value is a string\n if (_returnObject && typeof v === 'string') {\n returnValue.push(transformItem(_props, v));\n continue;\n }\n\n // Fast path, items with primitive values and no\n // custom valueComparator can use a constant-time\n // map lookup instead of searching the items array\n const fastItems = _items.get(v);\n\n // Slow path, always use valueComparator.\n // This is O(n^2) so we really don't want to\n // do it for more than a couple hundred items.\n if (hasValueComparator || !fastItems) {\n for (const item of hasValueComparator ? _allItems : _keylessItems) {\n if (valueComparator(v, item.value)) {\n returnValue.push(item);\n continue main;\n }\n }\n // Not an existing item, construct it from the model (#4000)\n returnValue.push(transformItem(_props, v));\n continue;\n }\n returnValue.push(...fastItems);\n }\n return returnValue;\n }\n function transformOut(value) {\n return props.returnObject ? value.map(_ref => {\n let {\n raw\n } = _ref;\n return raw;\n }) : value.map(_ref2 => {\n let {\n value\n } = _ref2;\n return value;\n });\n }\n return {\n items,\n transformIn,\n transformOut\n };\n}\n//# sourceMappingURL=list-items.js.map","import { createVNode as _createVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from \"vue\";\n// Styles\nimport \"./VList.css\";\n\n// Components\nimport { VListChildren } from \"./VListChildren.js\"; // Composables\nimport { createList } from \"./list.js\";\nimport { makeBorderProps, useBorder } from \"../../composables/border.js\";\nimport { useBackgroundColor } from \"../../composables/color.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { provideDefaults } from \"../../composables/defaults.js\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.js\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.js\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.js\";\nimport { IconValue } from \"../../composables/icons.js\";\nimport { makeItemsProps } from \"../../composables/list-items.js\";\nimport { makeNestedProps, useNested } from \"../../composables/nested/nested.js\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.js\";\nimport { makeTagProps } from \"../../composables/tag.js\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.js\";\nimport { makeVariantProps } from \"../../composables/variant.js\"; // Utilities\nimport { computed, ref, shallowRef, toRef } from 'vue';\nimport { EventProp, focusChild, genericComponent, getPropertyFromItem, isPrimitive, omit, propsFactory, useRender } from \"../../util/index.js\"; // Types\nconst itemTypes = new Set(['item', 'divider', 'subheader']);\nfunction transformItem(props, item) {\n const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle);\n const value = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemValue, undefined);\n const children = getPropertyFromItem(item, props.itemChildren);\n const itemProps = props.itemProps === true ? omit(item, ['children']) : getPropertyFromItem(item, props.itemProps);\n let type = getPropertyFromItem(item, props.itemType, 'item');\n if (!itemTypes.has(type)) {\n type = 'item';\n }\n const _props = {\n title,\n value,\n ...itemProps\n };\n return {\n type,\n title: _props.title,\n value: _props.value,\n props: _props,\n children: type === 'item' && children ? transformItems(props, children) : undefined,\n raw: item\n };\n}\nfunction transformItems(props, items) {\n const array = [];\n for (const item of items) {\n array.push(transformItem(props, item));\n }\n return array;\n}\nexport function useListItems(props) {\n const items = computed(() => transformItems(props, props.items));\n return {\n items\n };\n}\nexport const makeVListProps = propsFactory({\n baseColor: String,\n /* @deprecated */\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n filterable: Boolean,\n expandIcon: IconValue,\n collapseIcon: IconValue,\n lines: {\n type: [Boolean, String],\n default: 'one'\n },\n slim: Boolean,\n nav: Boolean,\n 'onClick:open': EventProp(),\n 'onClick:select': EventProp(),\n 'onUpdate:opened': EventProp(),\n ...makeNestedProps({\n selectStrategy: 'single-leaf',\n openStrategy: 'list'\n }),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeItemsProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'text'\n })\n}, 'VList');\nexport const VList = genericComponent()({\n name: 'VList',\n props: makeVListProps(),\n emits: {\n 'update:selected': value => true,\n 'update:activated': value => true,\n 'update:opened': value => true,\n 'click:open': value => true,\n 'click:activate': value => true,\n 'click:select': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n items\n } = useListItems(props);\n const {\n themeClasses\n } = provideTheme(props);\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(() => props.bgColor);\n const {\n borderClasses\n } = useBorder(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n children,\n open,\n parents,\n select,\n getPath\n } = useNested(props);\n const lineClasses = toRef(() => props.lines ? `v-list--${props.lines}-line` : undefined);\n const activeColor = toRef(() => props.activeColor);\n const baseColor = toRef(() => props.baseColor);\n const color = toRef(() => props.color);\n const isSelectable = toRef(() => props.selectable || props.activatable);\n createList({\n filterable: props.filterable\n });\n provideDefaults({\n VListGroup: {\n activeColor,\n baseColor,\n color,\n expandIcon: toRef(() => props.expandIcon),\n collapseIcon: toRef(() => props.collapseIcon)\n },\n VListItem: {\n activeClass: toRef(() => props.activeClass),\n activeColor,\n baseColor,\n color,\n density: toRef(() => props.density),\n disabled: toRef(() => props.disabled),\n lines: toRef(() => props.lines),\n nav: toRef(() => props.nav),\n slim: toRef(() => props.slim),\n variant: toRef(() => props.variant)\n }\n });\n const isFocused = shallowRef(false);\n const contentRef = ref();\n function onFocusin(e) {\n isFocused.value = true;\n }\n function onFocusout(e) {\n isFocused.value = false;\n }\n function onFocus(e) {\n if (!isFocused.value && !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget))) focus();\n }\n function onKeydown(e) {\n const target = e.target;\n if (!contentRef.value || target.tagName === 'INPUT' && ['Home', 'End'].includes(e.key) || target.tagName === 'TEXTAREA') {\n return;\n }\n if (e.key === 'ArrowDown') {\n focus('next');\n } else if (e.key === 'ArrowUp') {\n focus('prev');\n } else if (e.key === 'Home') {\n focus('first');\n } else if (e.key === 'End') {\n focus('last');\n } else {\n return;\n }\n e.preventDefault();\n }\n function onMousedown(e) {\n isFocused.value = true;\n }\n function focus(location) {\n if (contentRef.value) {\n return focusChild(contentRef.value, location);\n }\n }\n useRender(() => {\n return _createVNode(props.tag, {\n \"ref\": contentRef,\n \"class\": _normalizeClass(['v-list', {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n 'v-list--slim': props.slim\n }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class]),\n \"style\": _normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, props.style]),\n \"tabindex\": props.disabled ? -1 : 0,\n \"role\": isSelectable.value ? 'listbox' : 'list',\n \"aria-activedescendant\": undefined,\n \"onFocusin\": onFocusin,\n \"onFocusout\": onFocusout,\n \"onFocus\": onFocus,\n \"onKeydown\": onKeydown,\n \"onMousedown\": onMousedown\n }, {\n default: () => [_createVNode(VListChildren, {\n \"items\": items.value,\n \"returnObject\": props.returnObject\n }, slots)]\n });\n });\n return {\n open,\n select,\n focus,\n children,\n parents,\n getPath\n };\n }\n});\n//# sourceMappingURL=VList.js.map","// Types\n\n/** Convert a point in local space to viewport space */\nexport function elementToViewport(point, offset) {\n return {\n x: point.x + offset.x,\n y: point.y + offset.y\n };\n}\n\n/** Convert a point in viewport space to local space */\nexport function viewportToElement(point, offset) {\n return {\n x: point.x - offset.x,\n y: point.y - offset.y\n };\n}\n\n/** Get the difference between two points */\nexport function getOffset(a, b) {\n return {\n x: a.x - b.x,\n y: a.y - b.y\n };\n}\n\n/** Convert an anchor object to a point in local space */\nexport function anchorToPoint(anchor, box) {\n if (anchor.side === 'top' || anchor.side === 'bottom') {\n const {\n side,\n align\n } = anchor;\n const x = align === 'left' ? 0 : align === 'center' ? box.width / 2 : align === 'right' ? box.width : align;\n const y = side === 'top' ? 0 : side === 'bottom' ? box.height : side;\n return elementToViewport({\n x,\n y\n }, box);\n } else if (anchor.side === 'left' || anchor.side === 'right') {\n const {\n side,\n align\n } = anchor;\n const x = side === 'left' ? 0 : side === 'right' ? box.width : side;\n const y = align === 'top' ? 0 : align === 'center' ? box.height / 2 : align === 'bottom' ? box.height : align;\n return elementToViewport({\n x,\n y\n }, box);\n }\n return elementToViewport({\n x: box.width / 2,\n y: box.height / 2\n }, box);\n}\n//# sourceMappingURL=point.js.map","// Composables\nimport { useToggleScope } from \"../../composables/toggleScope.js\"; // Utilities\nimport { computed, nextTick, onScopeDispose, ref, watch } from 'vue';\nimport { anchorToPoint, getOffset } from \"./util/point.js\";\nimport { CircularBuffer, clamp, consoleError, convertToUnit, deepEqual, destructComputed, flipAlign, flipCorner, flipSide, getAxis, getScrollParents, IN_BROWSER, isFixedPosition, nullifyTransforms, parseAnchor, propsFactory } from \"../../util/index.js\";\nimport { Box, getElementBox, getOverflow, getTargetBox } from \"../../util/box.js\"; // Types\nconst locationStrategies = {\n static: staticLocationStrategy,\n // specific viewport position, usually centered\n connected: connectedLocationStrategy // connected to a certain element\n};\nexport const makeLocationStrategyProps = propsFactory({\n locationStrategy: {\n type: [String, Function],\n default: 'static',\n validator: val => typeof val === 'function' || val in locationStrategies\n },\n location: {\n type: String,\n default: 'bottom'\n },\n origin: {\n type: String,\n default: 'auto'\n },\n offset: [Number, String, Array],\n stickToTarget: Boolean\n}, 'VOverlay-location-strategies');\nexport function useLocationStrategies(props, data) {\n const contentStyles = ref({});\n const updateLocation = ref();\n if (IN_BROWSER) {\n useToggleScope(() => !!(data.isActive.value && props.locationStrategy), reset => {\n watch(() => props.locationStrategy, reset);\n onScopeDispose(() => {\n window.removeEventListener('resize', onResize);\n visualViewport?.removeEventListener('resize', onVisualResize);\n visualViewport?.removeEventListener('scroll', onVisualScroll);\n updateLocation.value = undefined;\n });\n window.addEventListener('resize', onResize, {\n passive: true\n });\n visualViewport?.addEventListener('resize', onVisualResize, {\n passive: true\n });\n visualViewport?.addEventListener('scroll', onVisualScroll, {\n passive: true\n });\n if (typeof props.locationStrategy === 'function') {\n updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation;\n } else {\n updateLocation.value = locationStrategies[props.locationStrategy](data, props, contentStyles)?.updateLocation;\n }\n });\n }\n function onResize(e) {\n updateLocation.value?.(e);\n }\n function onVisualResize(e) {\n updateLocation.value?.(e);\n }\n function onVisualScroll(e) {\n updateLocation.value?.(e);\n }\n return {\n contentStyles,\n updateLocation\n };\n}\nfunction staticLocationStrategy() {\n // TODO\n}\n\n/** Get size of element ignoring max-width/max-height */\nfunction getIntrinsicSize(el, isRtl) {\n // const scrollables = new Map<Element, [number, number]>()\n // el.querySelectorAll('*').forEach(el => {\n // const x = el.scrollLeft\n // const y = el.scrollTop\n // if (x || y) {\n // scrollables.set(el, [x, y])\n // }\n // })\n\n // const initialMaxWidth = el.style.maxWidth\n // const initialMaxHeight = el.style.maxHeight\n // el.style.removeProperty('max-width')\n // el.style.removeProperty('max-height')\n\n /* eslint-disable-next-line sonarjs/prefer-immediate-return */\n const contentBox = nullifyTransforms(el);\n if (isRtl) {\n contentBox.x += parseFloat(el.style.right || 0);\n } else {\n contentBox.x -= parseFloat(el.style.left || 0);\n }\n contentBox.y -= parseFloat(el.style.top || 0);\n\n // el.style.maxWidth = initialMaxWidth\n // el.style.maxHeight = initialMaxHeight\n // scrollables.forEach((position, el) => {\n // el.scrollTo(...position)\n // })\n\n return contentBox;\n}\nfunction connectedLocationStrategy(data, props, contentStyles) {\n const activatorFixed = Array.isArray(data.target.value) || isFixedPosition(data.target.value);\n if (activatorFixed) {\n Object.assign(contentStyles.value, {\n position: 'fixed',\n top: 0,\n [data.isRtl.value ? 'right' : 'left']: 0\n });\n }\n const {\n preferredAnchor,\n preferredOrigin\n } = destructComputed(() => {\n const parsedAnchor = parseAnchor(props.location, data.isRtl.value);\n const parsedOrigin = props.origin === 'overlap' ? parsedAnchor : props.origin === 'auto' ? flipSide(parsedAnchor) : parseAnchor(props.origin, data.isRtl.value);\n\n // Some combinations of props may produce an invalid origin\n if (parsedAnchor.side === parsedOrigin.side && parsedAnchor.align === flipAlign(parsedOrigin).align) {\n return {\n preferredAnchor: flipCorner(parsedAnchor),\n preferredOrigin: flipCorner(parsedOrigin)\n };\n } else {\n return {\n preferredAnchor: parsedAnchor,\n preferredOrigin: parsedOrigin\n };\n }\n });\n const [minWidth, minHeight, maxWidth, maxHeight] = ['minWidth', 'minHeight', 'maxWidth', 'maxHeight'].map(key => {\n return computed(() => {\n const val = parseFloat(props[key]);\n return isNaN(val) ? Infinity : val;\n });\n });\n const offset = computed(() => {\n if (Array.isArray(props.offset)) {\n return props.offset;\n }\n if (typeof props.offset === 'string') {\n const offset = props.offset.split(' ').map(parseFloat);\n if (offset.length < 2) offset.push(0);\n return offset;\n }\n return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0];\n });\n let observe = false;\n let lastFrame = -1;\n const flipped = new CircularBuffer(4);\n const observer = new ResizeObserver(() => {\n if (!observe) return;\n\n // Detect consecutive frames\n requestAnimationFrame(newTime => {\n if (newTime !== lastFrame) flipped.clear();\n requestAnimationFrame(newNewTime => {\n lastFrame = newNewTime;\n });\n });\n if (flipped.isFull) {\n const values = flipped.values();\n if (deepEqual(values.at(-1), values.at(-3)) && !deepEqual(values.at(-1), values.at(-2))) {\n // Flipping is causing a container resize loop\n return;\n }\n }\n const result = updateLocation();\n if (result) flipped.push(result.flipped);\n });\n let targetBox = new Box({\n x: 0,\n y: 0,\n width: 0,\n height: 0\n });\n watch(data.target, (newTarget, oldTarget) => {\n if (oldTarget && !Array.isArray(oldTarget)) observer.unobserve(oldTarget);\n if (!Array.isArray(newTarget)) {\n if (newTarget) observer.observe(newTarget);\n } else if (!deepEqual(newTarget, oldTarget)) {\n updateLocation();\n }\n }, {\n immediate: true\n });\n watch(data.contentEl, (newContentEl, oldContentEl) => {\n if (oldContentEl) observer.unobserve(oldContentEl);\n if (newContentEl) observer.observe(newContentEl);\n }, {\n immediate: true\n });\n onScopeDispose(() => {\n observer.disconnect();\n });\n\n // eslint-disable-next-line max-statements\n function updateLocation() {\n observe = false;\n requestAnimationFrame(() => observe = true);\n if (!data.target.value || !data.contentEl.value) return;\n if (Array.isArray(data.target.value) || data.target.value.offsetParent || data.target.value.getClientRects().length) {\n targetBox = getTargetBox(data.target.value);\n } // Otherwise target element is hidden, use last known value\n\n const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);\n const scrollParents = getScrollParents(data.contentEl.value);\n const viewportMargin = props.stickToTarget ? 0 : 12; // TOOD: prop.viewportMargin\n\n if (!scrollParents.length) {\n scrollParents.push(document.documentElement);\n if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {\n contentBox.x -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-x') || 0);\n contentBox.y -= parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-y') || 0);\n }\n }\n const viewport = scrollParents.reduce((box, el) => {\n const scrollBox = getElementBox(el);\n if (box) {\n return new Box({\n x: Math.max(box.left, scrollBox.left),\n y: Math.max(box.top, scrollBox.top),\n width: Math.min(box.right, scrollBox.right) - Math.max(box.left, scrollBox.left),\n height: Math.min(box.bottom, scrollBox.bottom) - Math.max(box.top, scrollBox.top)\n });\n }\n return scrollBox;\n }, undefined);\n if (props.stickToTarget) {\n viewport.x += Math.min(0, targetBox.x);\n viewport.y += Math.min(0, targetBox.y);\n viewport.width = Math.max(viewport.width, targetBox.x + targetBox.width);\n viewport.height = Math.max(viewport.height, targetBox.y + targetBox.height);\n } else {\n viewport.x += viewportMargin;\n viewport.y += viewportMargin;\n viewport.width -= viewportMargin * 2;\n viewport.height -= viewportMargin * 2;\n }\n let placement = {\n anchor: preferredAnchor.value,\n origin: preferredOrigin.value\n };\n function checkOverflow(_placement) {\n const box = new Box(contentBox);\n const targetPoint = anchorToPoint(_placement.anchor, targetBox);\n const contentPoint = anchorToPoint(_placement.origin, box);\n let {\n x,\n y\n } = getOffset(targetPoint, contentPoint);\n switch (_placement.anchor.side) {\n case 'top':\n y -= offset.value[0];\n break;\n case 'bottom':\n y += offset.value[0];\n break;\n case 'left':\n x -= offset.value[0];\n break;\n case 'right':\n x += offset.value[0];\n break;\n }\n switch (_placement.anchor.align) {\n case 'top':\n y -= offset.value[1];\n break;\n case 'bottom':\n y += offset.value[1];\n break;\n case 'left':\n x -= offset.value[1];\n break;\n case 'right':\n x += offset.value[1];\n break;\n }\n box.x += x;\n box.y += y;\n box.width = Math.min(box.width, maxWidth.value);\n box.height = Math.min(box.height, maxHeight.value);\n const overflows = getOverflow(box, viewport);\n return {\n overflows,\n x,\n y\n };\n }\n let x = 0;\n let y = 0;\n const available = {\n x: 0,\n y: 0\n };\n const flipped = {\n x: false,\n y: false\n };\n let resets = -1;\n while (true) {\n if (resets++ > 10) {\n consoleError('Infinite loop detected in connectedLocationStrategy');\n break;\n }\n const {\n x: _x,\n y: _y,\n overflows\n } = checkOverflow(placement);\n x += _x;\n y += _y;\n contentBox.x += _x;\n contentBox.y += _y;\n\n // flip\n {\n const axis = getAxis(placement.anchor);\n const hasOverflowX = overflows.x.before || overflows.x.after;\n const hasOverflowY = overflows.y.before || overflows.y.after;\n let reset = false;\n ['x', 'y'].forEach(key => {\n if (key === 'x' && hasOverflowX && !flipped.x || key === 'y' && hasOverflowY && !flipped.y) {\n const newPlacement = {\n anchor: {\n ...placement.anchor\n },\n origin: {\n ...placement.origin\n }\n };\n const flip = key === 'x' ? axis === 'y' ? flipAlign : flipSide : axis === 'y' ? flipSide : flipAlign;\n newPlacement.anchor = flip(newPlacement.anchor);\n newPlacement.origin = flip(newPlacement.origin);\n const {\n overflows: newOverflows\n } = checkOverflow(newPlacement);\n if (newOverflows[key].before <= overflows[key].before && newOverflows[key].after <= overflows[key].after || newOverflows[key].before + newOverflows[key].after < (overflows[key].before + overflows[key].after) / 2) {\n placement = newPlacement;\n reset = flipped[key] = true;\n }\n }\n });\n if (reset) continue;\n }\n\n // shift\n if (overflows.x.before) {\n x += overflows.x.before;\n contentBox.x += overflows.x.before;\n }\n if (overflows.x.after) {\n x -= overflows.x.after;\n contentBox.x -= overflows.x.after;\n }\n if (overflows.y.before) {\n y += overflows.y.before;\n contentBox.y += overflows.y.before;\n }\n if (overflows.y.after) {\n y -= overflows.y.after;\n contentBox.y -= overflows.y.after;\n }\n\n // size\n {\n const overflows = getOverflow(contentBox, viewport);\n available.x = viewport.width - overflows.x.before - overflows.x.after;\n available.y = viewport.height - overflows.y.before - overflows.y.after;\n x += overflows.x.before;\n contentBox.x += overflows.x.before;\n y += overflows.y.before;\n contentBox.y += overflows.y.before;\n }\n break;\n }\n const axis = getAxis(placement.anchor);\n Object.assign(contentStyles.value, {\n '--v-overlay-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,\n transformOrigin: `${placement.origin.side} ${placement.origin.align}`,\n // transform: `translate(${pixelRound(x)}px, ${pixelRound(y)}px)`,\n top: convertToUnit(pixelRound(y)),\n left: data.isRtl.value ? undefined : convertToUnit(pixelRound(x)),\n right: data.isRtl.value ? convertToUnit(pixelRound(-x)) : undefined,\n minWidth: convertToUnit(axis === 'y' ? Math.min(minWidth.value, targetBox.width) : minWidth.value),\n maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),\n maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value)))\n });\n return {\n available,\n contentBox,\n flipped\n };\n }\n watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation());\n nextTick(() => {\n const result = updateLocation();\n\n // TODO: overflowing content should only require a single updateLocation call\n // Icky hack to make sure the content is positioned consistently\n if (!result) return;\n const {\n available,\n contentBox\n } = result;\n if (contentBox.height > available.y) {\n requestAnimationFrame(() => {\n updateLocation();\n requestAnimationFrame(() => {\n updateLocation();\n });\n });\n }\n });\n return {\n updateLocation\n };\n}\nfunction pixelRound(val) {\n return Math.round(val * devicePixelRatio) / devicePixelRatio;\n}\nfunction pixelCeil(val) {\n return Math.ceil(val * devicePixelRatio) / devicePixelRatio;\n}\n//# sourceMappingURL=locationStrategies.js.map","let clean = true;\nconst frames = [];\n\n/**\n * Schedule a task to run in an animation frame on its own\n * This is useful for heavy tasks that may cause jank if all ran together\n */\nexport function requestNewFrame(cb) {\n if (!clean || frames.length) {\n frames.push(cb);\n run();\n } else {\n clean = false;\n cb();\n run();\n }\n}\nlet raf = -1;\nfunction run() {\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(() => {\n const frame = frames.shift();\n if (frame) frame();\n if (frames.length) run();else clean = true;\n });\n}\n//# sourceMappingURL=requestNewFrame.js.map","// Utilities\nimport { effectScope, onScopeDispose, watchEffect } from 'vue';\nimport { requestNewFrame } from \"./requestNewFrame.js\";\nimport { convertToUnit, getScrollParents, hasScrollbar, IN_BROWSER, propsFactory } from \"../../util/index.js\"; // Types\nconst scrollStrategies = {\n none: null,\n close: closeScrollStrategy,\n block: blockScrollStrategy,\n reposition: repositionScrollStrategy\n};\nexport const makeScrollStrategyProps = propsFactory({\n scrollStrategy: {\n type: [String, Function],\n default: 'block',\n validator: val => typeof val === 'function' || val in scrollStrategies\n }\n}, 'VOverlay-scroll-strategies');\nexport function useScrollStrategies(props, data) {\n if (!IN_BROWSER) return;\n let scope;\n watchEffect(async () => {\n scope?.stop();\n if (!(data.isActive.value && props.scrollStrategy)) return;\n scope = effectScope();\n await new Promise(resolve => setTimeout(resolve));\n scope.active && scope.run(() => {\n if (typeof props.scrollStrategy === 'function') {\n props.scrollStrategy(data, props, scope);\n } else {\n scrollStrategies[props.scrollStrategy]?.(data, props, scope);\n }\n });\n });\n onScopeDispose(() => {\n scope?.stop();\n });\n}\nfunction closeScrollStrategy(data) {\n function onScroll(e) {\n data.isActive.value = false;\n }\n bindScroll(getTargetEl(data.target.value, data.contentEl.value), onScroll);\n}\nfunction blockScrollStrategy(data, props) {\n const offsetParent = data.root.value?.offsetParent;\n const target = getTargetEl(data.target.value, data.contentEl.value);\n const scrollElements = [...new Set([...getScrollParents(target, props.contained ? offsetParent : undefined), ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined)])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'));\n const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth;\n const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement);\n if (scrollableParent) {\n data.root.value.classList.add('v-overlay--scroll-blocked');\n }\n scrollElements.forEach((el, i) => {\n el.style.setProperty('--v-body-scroll-x', convertToUnit(-el.scrollLeft));\n el.style.setProperty('--v-body-scroll-y', convertToUnit(-el.scrollTop));\n if (el !== document.documentElement) {\n el.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth));\n }\n el.classList.add('v-overlay-scroll-blocked');\n });\n onScopeDispose(() => {\n scrollElements.forEach((el, i) => {\n const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'));\n const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'));\n const scrollBehavior = el.style.scrollBehavior;\n el.style.scrollBehavior = 'auto';\n el.style.removeProperty('--v-body-scroll-x');\n el.style.removeProperty('--v-body-scroll-y');\n el.style.removeProperty('--v-scrollbar-offset');\n el.classList.remove('v-overlay-scroll-blocked');\n el.scrollLeft = -x;\n el.scrollTop = -y;\n el.style.scrollBehavior = scrollBehavior;\n });\n if (scrollableParent) {\n data.root.value.classList.remove('v-overlay--scroll-blocked');\n }\n });\n}\nfunction repositionScrollStrategy(data, props, scope) {\n let slow = false;\n let raf = -1;\n let ric = -1;\n function update(e) {\n requestNewFrame(() => {\n const start = performance.now();\n data.updateLocation.value?.(e);\n const time = performance.now() - start;\n slow = time / (1000 / 60) > 2;\n });\n }\n ric = (typeof requestIdleCallback === 'undefined' ? cb => cb() : requestIdleCallback)(() => {\n scope.run(() => {\n bindScroll(getTargetEl(data.target.value, data.contentEl.value), e => {\n if (slow) {\n // If the position calculation is slow,\n // defer updates until scrolling is finished.\n // Browsers usually fire one scroll event per frame so\n // we just wait until we've got two frames without an event\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(() => {\n update(e);\n });\n });\n } else {\n update(e);\n }\n });\n });\n });\n onScopeDispose(() => {\n typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(ric);\n cancelAnimationFrame(raf);\n });\n}\nfunction getTargetEl(target, contentEl) {\n return Array.isArray(target) ? document.elementsFromPoint(...target).find(el => !contentEl?.contains(el)) : target ?? contentEl;\n}\nfunction bindScroll(el, onScroll) {\n const scrollElements = [document, ...getScrollParents(el)];\n scrollElements.forEach(el => {\n el.addEventListener('scroll', onScroll, {\n passive: true\n });\n });\n onScopeDispose(() => {\n scrollElements.forEach(el => {\n el.removeEventListener('scroll', onScroll);\n });\n });\n}\n//# sourceMappingURL=scrollStrategies.js.map","// Types\n\nexport const VMenuSymbol = Symbol.for('vuetify:v-menu');\n//# sourceMappingURL=shared.js.map","// Utilities\nimport { defer, propsFactory } from \"../util/index.js\"; // Types\n// Composables\nexport const makeDelayProps = propsFactory({\n closeDelay: [Number, String],\n openDelay: [Number, String]\n}, 'delay');\nexport function useDelay(props, cb) {\n let clearDelay = () => {};\n function runDelay(isOpening, options) {\n clearDelay?.();\n const delay = Math.max(options?.minDelay ?? 0, Number(isOpening ? props.openDelay : props.closeDelay));\n return new Promise(resolve => {\n clearDelay = defer(delay, () => {\n cb?.(isOpening);\n resolve(isOpening);\n });\n });\n }\n function runOpenDelay() {\n return runDelay(true);\n }\n function runCloseDelay(options) {\n return runDelay(false, options);\n }\n return {\n clearDelay,\n runOpenDelay,\n runCloseDelay\n };\n}\n//# sourceMappingURL=delay.js.map","// Components\nimport { VMenuSymbol } from \"../VMenu/shared.js\"; // Composables\nimport { makeDelayProps, useDelay } from \"../../composables/delay.js\"; // Utilities\nimport { computed, effectScope, inject, mergeProps, nextTick, onScopeDispose, ref, watch, watchEffect } from 'vue';\nimport { bindProps, getCurrentInstance, IN_BROWSER, matchesSelector, propsFactory, templateRef, unbindProps } from \"../../util/index.js\"; // Types\nexport const makeActivatorProps = propsFactory({\n target: [String, Object],\n activator: [String, Object],\n activatorProps: {\n type: Object,\n default: () => ({})\n },\n openOnClick: {\n type: Boolean,\n default: undefined\n },\n openOnHover: Boolean,\n openOnFocus: {\n type: Boolean,\n default: undefined\n },\n closeOnContentClick: Boolean,\n ...makeDelayProps()\n}, 'VOverlay-activator');\nexport function useActivator(props, _ref) {\n let {\n isActive,\n isTop,\n contentEl\n } = _ref;\n const vm = getCurrentInstance('useActivator');\n const activatorEl = ref();\n let isHovered = false;\n let isFocused = false;\n let firstEnter = true;\n const openOnFocus = computed(() => props.openOnFocus || props.openOnFocus == null && props.openOnHover);\n const openOnClick = computed(() => props.openOnClick || props.openOnClick == null && !props.openOnHover && !openOnFocus.value);\n const {\n runOpenDelay,\n runCloseDelay\n } = useDelay(props, value => {\n if (value === (props.openOnHover && isHovered || openOnFocus.value && isFocused) && !(props.openOnHover && isActive.value && !isTop.value)) {\n if (isActive.value !== value) {\n firstEnter = true;\n }\n isActive.value = value;\n }\n });\n const cursorTarget = ref();\n const availableEvents = {\n onClick: e => {\n e.stopPropagation();\n activatorEl.value = e.currentTarget || e.target;\n if (!isActive.value) {\n cursorTarget.value = [e.clientX, e.clientY];\n }\n isActive.value = !isActive.value;\n },\n onMouseenter: e => {\n isHovered = true;\n activatorEl.value = e.currentTarget || e.target;\n runOpenDelay();\n },\n onMouseleave: e => {\n isHovered = false;\n runCloseDelay();\n },\n onFocus: e => {\n if (matchesSelector(e.target, ':focus-visible') === false) return;\n isFocused = true;\n e.stopPropagation();\n activatorEl.value = e.currentTarget || e.target;\n runOpenDelay();\n },\n onBlur: e => {\n isFocused = false;\n e.stopPropagation();\n runCloseDelay({\n minDelay: 1\n });\n }\n };\n const activatorEvents = computed(() => {\n const events = {};\n if (openOnClick.value) {\n events.onClick = availableEvents.onClick;\n }\n if (props.openOnHover) {\n events.onMouseenter = availableEvents.onMouseenter;\n events.onMouseleave = availableEvents.onMouseleave;\n }\n if (openOnFocus.value) {\n events.onFocus = availableEvents.onFocus;\n events.onBlur = availableEvents.onBlur;\n }\n return events;\n });\n const contentEvents = computed(() => {\n const events = {};\n if (props.openOnHover) {\n events.onMouseenter = () => {\n isHovered = true;\n runOpenDelay();\n };\n events.onMouseleave = () => {\n isHovered = false;\n runCloseDelay();\n };\n }\n if (openOnFocus.value) {\n events.onFocusin = e => {\n if (!e.target.matches(':focus-visible')) return;\n isFocused = true;\n runOpenDelay();\n };\n events.onFocusout = () => {\n isFocused = false;\n runCloseDelay({\n minDelay: 1\n });\n };\n }\n if (props.closeOnContentClick) {\n const menu = inject(VMenuSymbol, null);\n events.onClick = () => {\n isActive.value = false;\n menu?.closeParents();\n };\n }\n return events;\n });\n const scrimEvents = computed(() => {\n const events = {};\n if (props.openOnHover) {\n events.onMouseenter = () => {\n if (firstEnter) {\n isHovered = true;\n firstEnter = false;\n runOpenDelay();\n }\n };\n events.onMouseleave = () => {\n isHovered = false;\n runCloseDelay();\n };\n }\n return events;\n });\n watch(isTop, val => {\n if (val && (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused) || openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered)) && !contentEl.value?.contains(document.activeElement)) {\n isActive.value = false;\n }\n });\n watch(isActive, val => {\n if (!val) {\n setTimeout(() => {\n cursorTarget.value = undefined;\n });\n }\n }, {\n flush: 'post'\n });\n const activatorRef = templateRef();\n watchEffect(() => {\n if (!activatorRef.value) return;\n nextTick(() => {\n activatorEl.value = activatorRef.el;\n });\n });\n const targetRef = templateRef();\n const target = computed(() => {\n if (props.target === 'cursor' && cursorTarget.value) return cursorTarget.value;\n if (targetRef.value) return targetRef.el;\n return getTarget(props.target, vm) || activatorEl.value;\n });\n const targetEl = computed(() => {\n return Array.isArray(target.value) ? undefined : target.value;\n });\n let scope;\n watch(() => !!props.activator, val => {\n if (val && IN_BROWSER) {\n scope = effectScope();\n scope.run(() => {\n _useActivator(props, vm, {\n activatorEl,\n activatorEvents\n });\n });\n } else if (scope) {\n scope.stop();\n }\n }, {\n flush: 'post',\n immediate: true\n });\n onScopeDispose(() => {\n scope?.stop();\n });\n return {\n activatorEl,\n activatorRef,\n target,\n targetEl,\n targetRef,\n activatorEvents,\n contentEvents,\n scrimEvents\n };\n}\nfunction _useActivator(props, vm, _ref2) {\n let {\n activatorEl,\n activatorEvents\n } = _ref2;\n watch(() => props.activator, (val, oldVal) => {\n if (oldVal && val !== oldVal) {\n const activator = getActivator(oldVal);\n activator && unbindActivatorProps(activator);\n }\n if (val) {\n nextTick(() => bindActivatorProps());\n }\n }, {\n immediate: true\n });\n watch(() => props.activatorProps, () => {\n bindActivatorProps();\n });\n onScopeDispose(() => {\n unbindActivatorProps();\n });\n function bindActivatorProps() {\n let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getActivator();\n let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;\n if (!el) return;\n bindProps(el, mergeProps(activatorEvents.value, _props));\n }\n function unbindActivatorProps() {\n let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getActivator();\n let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;\n if (!el) return;\n unbindProps(el, mergeProps(activatorEvents.value, _props));\n }\n function getActivator() {\n let selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : props.activator;\n const activator = getTarget(selector, vm);\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : undefined;\n return activatorEl.value;\n }\n}\nfunction getTarget(selector, vm) {\n if (!selector) return;\n let target;\n if (selector === 'parent') {\n let el = vm?.proxy?.$el?.parentNode;\n while (el?.hasAttribute('data-no-activator')) {\n el = el.parentNode;\n }\n target = el;\n } else if (typeof selector === 'string') {\n // Selector\n target = document.querySelector(selector);\n } else if ('$el' in selector) {\n // Component (ref)\n target = selector.$el;\n } else {\n // HTMLElement | Element | [x, y]\n target = selector;\n }\n return target;\n}\n//# sourceMappingURL=useActivator.js.map","// Utilities\nimport { computed, inject, onScopeDispose, reactive, shallowRef, toRef, toRefs, watchEffect } from 'vue';\nimport { getCurrentInstanceName, mergeDeep, propsFactory } from \"../util/index.js\";\nimport { IN_BROWSER, SUPPORTS_TOUCH } from \"../util/globals.js\"; // Types\nexport const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl']; // no xs\n\nexport const DisplaySymbol = Symbol.for('vuetify:display');\nconst defaultDisplayOptions = {\n mobileBreakpoint: 'lg',\n thresholds: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560\n }\n};\nconst parseDisplayOptions = function () {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultDisplayOptions;\n return mergeDeep(defaultDisplayOptions, options);\n};\nfunction getClientWidth(ssr) {\n return IN_BROWSER && !ssr ? window.innerWidth : typeof ssr === 'object' && ssr.clientWidth || 0;\n}\nfunction getClientHeight(ssr) {\n return IN_BROWSER && !ssr ? window.innerHeight : typeof ssr === 'object' && ssr.clientHeight || 0;\n}\nfunction getPlatform(ssr) {\n const userAgent = IN_BROWSER && !ssr ? window.navigator.userAgent : 'ssr';\n function match(regexp) {\n return Boolean(userAgent.match(regexp));\n }\n const android = match(/android/i);\n const ios = match(/iphone|ipad|ipod/i);\n const cordova = match(/cordova/i);\n const electron = match(/electron/i);\n const chrome = match(/chrome/i);\n const edge = match(/edge/i);\n const firefox = match(/firefox/i);\n const opera = match(/opera/i);\n const win = match(/win/i);\n const mac = match(/mac/i);\n const linux = match(/linux/i);\n return {\n android,\n ios,\n cordova,\n electron,\n chrome,\n edge,\n firefox,\n opera,\n win,\n mac,\n linux,\n touch: SUPPORTS_TOUCH,\n ssr: userAgent === 'ssr'\n };\n}\nexport function createDisplay(options, ssr) {\n const {\n thresholds,\n mobileBreakpoint\n } = parseDisplayOptions(options);\n const height = shallowRef(getClientHeight(ssr));\n const platform = shallowRef(getPlatform(ssr));\n const state = reactive({});\n const width = shallowRef(getClientWidth(ssr));\n function updateSize() {\n height.value = getClientHeight();\n width.value = getClientWidth();\n }\n function update() {\n updateSize();\n platform.value = getPlatform();\n }\n\n // eslint-disable-next-line max-statements\n watchEffect(() => {\n const xs = width.value < thresholds.sm;\n const sm = width.value < thresholds.md && !xs;\n const md = width.value < thresholds.lg && !(sm || xs);\n const lg = width.value < thresholds.xl && !(md || sm || xs);\n const xl = width.value < thresholds.xxl && !(lg || md || sm || xs);\n const xxl = width.value >= thresholds.xxl;\n const name = xs ? 'xs' : sm ? 'sm' : md ? 'md' : lg ? 'lg' : xl ? 'xl' : 'xxl';\n const breakpointValue = typeof mobileBreakpoint === 'number' ? mobileBreakpoint : thresholds[mobileBreakpoint];\n const mobile = width.value < breakpointValue;\n state.xs = xs;\n state.sm = sm;\n state.md = md;\n state.lg = lg;\n state.xl = xl;\n state.xxl = xxl;\n state.smAndUp = !xs;\n state.mdAndUp = !(xs || sm);\n state.lgAndUp = !(xs || sm || md);\n state.xlAndUp = !(xs || sm || md || lg);\n state.smAndDown = !(md || lg || xl || xxl);\n state.mdAndDown = !(lg || xl || xxl);\n state.lgAndDown = !(xl || xxl);\n state.xlAndDown = !xxl;\n state.name = name;\n state.height = height.value;\n state.width = width.value;\n state.mobile = mobile;\n state.mobileBreakpoint = mobileBreakpoint;\n state.platform = platform.value;\n state.thresholds = thresholds;\n });\n if (IN_BROWSER) {\n window.addEventListener('resize', updateSize, {\n passive: true\n });\n onScopeDispose(() => {\n window.removeEventListener('resize', updateSize);\n }, true);\n }\n return {\n ...toRefs(state),\n update,\n ssr: !!ssr\n };\n}\nexport const makeDisplayProps = propsFactory({\n mobile: {\n type: Boolean,\n default: false\n },\n mobileBreakpoint: [Number, String]\n}, 'display');\nexport function useDisplay() {\n let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n mobile: null\n };\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const display = inject(DisplaySymbol);\n if (!display) throw new Error('Could not find Vuetify display injection');\n const mobile = computed(() => {\n if (props.mobile) {\n return true;\n } else if (typeof props.mobileBreakpoint === 'number') {\n return display.width.value < props.mobileBreakpoint;\n } else if (props.mobileBreakpoint) {\n return display.width.value < display.thresholds.value[props.mobileBreakpoint];\n } else if (props.mobile === null) {\n return display.mobile.value;\n } else {\n return false;\n }\n });\n const displayClasses = toRef(() => {\n if (!name) return {};\n return {\n [`${name}--mobile`]: mobile.value\n };\n });\n return {\n ...display,\n displayClasses,\n mobile\n };\n}\n//# sourceMappingURL=display.js.map","// Composables\nimport { useDisplay } from \"./display.js\"; // Utilities\nimport { onMounted, shallowRef } from 'vue';\nimport { IN_BROWSER } from \"../util/index.js\";\nexport function useHydration() {\n if (!IN_BROWSER) return shallowRef(false);\n const {\n ssr\n } = useDisplay();\n if (ssr) {\n const isMounted = shallowRef(false);\n onMounted(() => {\n isMounted.value = true;\n });\n return isMounted;\n } else {\n return shallowRef(true);\n }\n}\n//# sourceMappingURL=hydration.js.map","// Utilities\nimport { shallowRef, toRef, watch } from 'vue';\nimport { propsFactory } from \"../util/index.js\"; // Types\nexport const makeLazyProps = propsFactory({\n eager: Boolean\n}, 'lazy');\nexport function useLazy(props, active) {\n const isBooted = shallowRef(false);\n const hasContent = toRef(() => 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.js.map","// Utilities\nimport { getCurrentInstance } from \"../util/index.js\";\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.js.map","// Composables\nimport { useToggleScope } from \"./toggleScope.js\"; // Utilities\nimport { inject, onScopeDispose, provide, reactive, readonly, shallowRef, toRaw, toRef, toValue, watchEffect } from 'vue';\nimport { getCurrentInstance } from \"../util/index.js\"; // Types\nconst StackSymbol = Symbol.for('vuetify:stack');\nconst globalStack = reactive([]);\nexport function useStack(isActive, zIndex, disableGlobalStack) {\n const vm = getCurrentInstance('useStack');\n const createStackEntry = !disableGlobalStack;\n const parent = inject(StackSymbol, undefined);\n const stack = reactive({\n activeChildren: new Set()\n });\n provide(StackSymbol, stack);\n const _zIndex = shallowRef(Number(toValue(zIndex)));\n useToggleScope(isActive, () => {\n const lastZIndex = globalStack.at(-1)?.[1];\n _zIndex.value = lastZIndex ? lastZIndex + 10 : Number(toValue(zIndex));\n if (createStackEntry) {\n globalStack.push([vm.uid, _zIndex.value]);\n }\n parent?.activeChildren.add(vm.uid);\n onScopeDispose(() => {\n if (createStackEntry) {\n const idx = toRaw(globalStack).findIndex(v => v[0] === vm.uid);\n globalStack.splice(idx, 1);\n }\n parent?.activeChildren.delete(vm.uid);\n });\n });\n const globalTop = shallowRef(true);\n if (createStackEntry) {\n watchEffect(() => {\n const _isTop = globalStack.at(-1)?.[0] === vm.uid;\n setTimeout(() => globalTop.value = _isTop);\n });\n }\n const localTop = toRef(() => !stack.activeChildren.size);\n return {\n globalTop: readonly(globalTop),\n localTop,\n stackStyles: toRef(() => ({\n zIndex: _zIndex.value\n }))\n };\n}\n//# sourceMappingURL=stack.js.map","// Utilities\nimport { computed, warn } from 'vue';\nimport { IN_BROWSER } from \"../util/index.js\";\nexport function useTeleport(target) {\n const teleportTarget = computed(() => {\n const _target = target();\n if (_target === true || !IN_BROWSER) return undefined;\n const targetElement = _target === false ? document.body : typeof _target === 'string' ? document.querySelector(_target) : _target;\n if (targetElement == null) {\n warn(`Unable to locate target ${_target}`);\n return undefined;\n }\n let container = [...targetElement.children].find(el => el.matches('.v-overlay-container'));\n if (!container) {\n container = document.createElement('div');\n container.className = 'v-overlay-container';\n targetElement.appendChild(container);\n }\n return container;\n });\n return {\n teleportTarget\n };\n}\n//# sourceMappingURL=teleport.js.map","// Utilities\nimport { attachedRoot } from \"../../util/index.js\"; // Types\nfunction defaultConditional() {\n return true;\n}\nfunction checkEvent(e, el, binding) {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false;\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el);\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot && root.host === e.target) return false;\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = (typeof binding.value === 'object' && binding.value.include || (() => []))();\n // Add the root element for the component this directive was defined on\n elements.push(el);\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el?.contains(e.target));\n}\nfunction checkIsActive(e, binding) {\n const isActive = typeof binding.value === 'object' && binding.value.closeConditional || defaultConditional;\n return isActive(e);\n}\nfunction directive(e, el, binding) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value.handler;\n\n // Clicks in the Shadow DOM change their target while using setTimeout, so the original target is saved here\n e.shadowTarget = e.target;\n el._clickOutside.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e);\n }, 0);\n}\nfunction handleShadow(el, callback) {\n const root = attachedRoot(el);\n callback(document);\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root);\n }\n}\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n mounted(el, binding) {\n const onClick = e => directive(e, el, binding);\n const onMousedown = e => {\n el._clickOutside.lastMousedownWasOutside = checkEvent(e, el, binding);\n };\n handleShadow(el, app => {\n app.addEventListener('click', onClick, true);\n app.addEventListener('mousedown', onMousedown, true);\n });\n if (!el._clickOutside) {\n el._clickOutside = {\n lastMousedownWasOutside: false\n };\n }\n el._clickOutside[binding.instance.$.uid] = {\n onClick,\n onMousedown\n };\n },\n beforeUnmount(el, binding) {\n if (!el._clickOutside) return;\n handleShadow(el, app => {\n if (!app || !el._clickOutside?.[binding.instance.$.uid]) return;\n const {\n onClick,\n onMousedown\n } = el._clickOutside[binding.instance.$.uid];\n app.removeEventListener('click', onClick, true);\n app.removeEventListener('mousedown', onMousedown, true);\n });\n delete el._clickOutside[binding.instance.$.uid];\n }\n};\nexport default ClickOutside;\n//# sourceMappingURL=index.js.map","import { mergeProps as _mergeProps, createElementVNode as _createElementVNode, createVNode as _createVNode, Fragment as _Fragment, vShow as _vShow, withDirectives as _withDirectives } from \"vue\";\n// Styles\nimport \"./VOverlay.css\";\n\n// Composables\nimport { makeLocationStrategyProps, useLocationStrategies } from \"./locationStrategies.js\";\nimport { makeScrollStrategyProps, useScrollStrategies } from \"./scrollStrategies.js\";\nimport { makeActivatorProps, useActivator } from \"./useActivator.js\";\nimport { useBackgroundColor } from \"../../composables/color.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.js\";\nimport { useHydration } from \"../../composables/hydration.js\";\nimport { makeLazyProps, useLazy } from \"../../composables/lazy.js\";\nimport { useRtl } from \"../../composables/locale.js\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.js\";\nimport { useBackButton, useRouter } from \"../../composables/router.js\";\nimport { useScopeId } from \"../../composables/scopeId.js\";\nimport { useStack } from \"../../composables/stack.js\";\nimport { useTeleport } from \"../../composables/teleport.js\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.js\";\nimport { useToggleScope } from \"../../composables/toggleScope.js\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.js\"; // Directives\nimport vClickOutside from \"../../directives/click-outside/index.js\"; // Utilities\nimport { computed, mergeProps, onBeforeUnmount, ref, Teleport, Transition, watch } from 'vue';\nimport { animate, convertToUnit, genericComponent, getCurrentInstance, getScrollParent, IN_BROWSER, propsFactory, standardEasing, useRender } from \"../../util/index.js\"; // Types\nfunction Scrim(props) {\n const {\n modelValue,\n color,\n ...rest\n } = props;\n return _createVNode(Transition, {\n \"name\": \"fade-transition\",\n \"appear\": true\n }, {\n default: () => [props.modelValue && _createElementVNode(\"div\", _mergeProps({\n \"class\": ['v-overlay__scrim', props.color.backgroundColorClasses.value],\n \"style\": props.color.backgroundColorStyles.value\n }, rest), null)]\n });\n}\nexport const makeVOverlayProps = propsFactory({\n absolute: Boolean,\n attach: [Boolean, String, Object],\n closeOnBack: {\n type: Boolean,\n default: true\n },\n contained: Boolean,\n contentClass: null,\n contentProps: null,\n disabled: Boolean,\n opacity: [Number, String],\n noClickAnimation: Boolean,\n modelValue: Boolean,\n persistent: Boolean,\n scrim: {\n type: [Boolean, String],\n default: true\n },\n zIndex: {\n type: [Number, String],\n default: 2000\n },\n ...makeActivatorProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeLazyProps(),\n ...makeLocationStrategyProps(),\n ...makeScrollStrategyProps(),\n ...makeThemeProps(),\n ...makeTransitionProps()\n}, 'VOverlay');\nexport const VOverlay = genericComponent()({\n name: 'VOverlay',\n directives: {\n vClickOutside\n },\n inheritAttrs: false,\n props: {\n _disableGlobalStack: Boolean,\n ...makeVOverlayProps()\n },\n emits: {\n 'click:outside': e => true,\n 'update:modelValue': value => true,\n keydown: e => true,\n afterEnter: () => true,\n afterLeave: () => true\n },\n setup(props, _ref) {\n let {\n slots,\n attrs,\n emit\n } = _ref;\n const vm = getCurrentInstance('VOverlay');\n const root = ref();\n const scrimEl = ref();\n const contentEl = ref();\n const model = useProxiedModel(props, 'modelValue');\n const isActive = computed({\n get: () => model.value,\n set: v => {\n if (!(v && props.disabled)) model.value = v;\n }\n });\n const {\n themeClasses\n } = provideTheme(props);\n const {\n rtlClasses,\n isRtl\n } = useRtl();\n const {\n hasContent,\n onAfterLeave: _onAfterLeave\n } = useLazy(props, isActive);\n const scrimColor = useBackgroundColor(() => {\n return typeof props.scrim === 'string' ? props.scrim : null;\n });\n const {\n globalTop,\n localTop,\n stackStyles\n } = useStack(isActive, () => props.zIndex, props._disableGlobalStack);\n const {\n activatorEl,\n activatorRef,\n target,\n targetEl,\n targetRef,\n activatorEvents,\n contentEvents,\n scrimEvents\n } = useActivator(props, {\n isActive,\n isTop: localTop,\n contentEl\n });\n const {\n teleportTarget\n } = useTeleport(() => {\n const target = props.attach || props.contained;\n if (target) return target;\n const rootNode = activatorEl?.value?.getRootNode() || vm.proxy?.$el?.getRootNode();\n if (rootNode instanceof ShadowRoot) return rootNode;\n return false;\n });\n const {\n dimensionStyles\n } = useDimension(props);\n const isMounted = useHydration();\n const {\n scopeId\n } = useScopeId();\n watch(() => props.disabled, v => {\n if (v) isActive.value = false;\n });\n const {\n contentStyles,\n updateLocation\n } = useLocationStrategies(props, {\n isRtl,\n contentEl,\n target,\n isActive\n });\n useScrollStrategies(props, {\n root,\n contentEl,\n targetEl,\n target,\n isActive,\n updateLocation\n });\n function onClickOutside(e) {\n emit('click:outside', e);\n if (!props.persistent) isActive.value = false;else animateClick();\n }\n function closeConditional(e) {\n return isActive.value && globalTop.value && (\n // If using scrim, only close if clicking on it rather than anything opened on top\n !props.scrim || e.target === scrimEl.value || e instanceof MouseEvent && e.shadowTarget === scrimEl.value);\n }\n IN_BROWSER && watch(isActive, val => {\n if (val) {\n window.addEventListener('keydown', onKeydown);\n } else {\n window.removeEventListener('keydown', onKeydown);\n }\n }, {\n immediate: true\n });\n onBeforeUnmount(() => {\n if (!IN_BROWSER) return;\n window.removeEventListener('keydown', onKeydown);\n });\n function onKeydown(e) {\n if (e.key === 'Escape' && globalTop.value) {\n if (!contentEl.value?.contains(document.activeElement)) {\n emit('keydown', e);\n }\n if (!props.persistent) {\n isActive.value = false;\n if (contentEl.value?.contains(document.activeElement)) {\n activatorEl.value?.focus();\n }\n } else animateClick();\n }\n }\n function onKeydownSelf(e) {\n if (e.key === 'Escape' && !globalTop.value) return;\n emit('keydown', e);\n }\n const router = useRouter();\n useToggleScope(() => props.closeOnBack, () => {\n useBackButton(router, next => {\n if (globalTop.value && isActive.value) {\n next(false);\n if (!props.persistent) isActive.value = false;else animateClick();\n } else {\n next();\n }\n });\n });\n const top = ref();\n watch(() => isActive.value && (props.absolute || props.contained) && teleportTarget.value == null, val => {\n if (val) {\n const scrollParent = getScrollParent(root.value);\n if (scrollParent && scrollParent !== document.scrollingElement) {\n top.value = scrollParent.scrollTop;\n }\n }\n });\n\n // Add a quick \"bounce\" animation to the content\n function animateClick() {\n if (props.noClickAnimation) return;\n contentEl.value && animate(contentEl.value, [{\n transformOrigin: 'center'\n }, {\n transform: 'scale(1.03)'\n }, {\n transformOrigin: 'center'\n }], {\n duration: 150,\n easing: standardEasing\n });\n }\n function onAfterEnter() {\n emit('afterEnter');\n }\n function onAfterLeave() {\n _onAfterLeave();\n emit('afterLeave');\n }\n useRender(() => _createElementVNode(_Fragment, null, [slots.activator?.({\n isActive: isActive.value,\n targetRef,\n props: mergeProps({\n ref: activatorRef\n }, activatorEvents.value, props.activatorProps)\n }), isMounted.value && hasContent.value && _createVNode(Teleport, {\n \"disabled\": !teleportTarget.value,\n \"to\": teleportTarget.value\n }, {\n default: () => [_createElementVNode(\"div\", _mergeProps({\n \"class\": ['v-overlay', {\n 'v-overlay--absolute': props.absolute || props.contained,\n 'v-overlay--active': isActive.value,\n 'v-overlay--contained': props.contained\n }, themeClasses.value, rtlClasses.value, props.class],\n \"style\": [stackStyles.value, {\n '--v-overlay-opacity': props.opacity,\n top: convertToUnit(top.value)\n }, props.style],\n \"ref\": root,\n \"onKeydown\": onKeydownSelf\n }, scopeId, attrs), [_createVNode(Scrim, _mergeProps({\n \"color\": scrimColor,\n \"modelValue\": isActive.value && !!props.scrim,\n \"ref\": scrimEl\n }, scrimEvents.value), null), _createVNode(MaybeTransition, {\n \"appear\": true,\n \"persisted\": true,\n \"transition\": props.transition,\n \"target\": target.value,\n \"onAfterEnter\": onAfterEnter,\n \"onAfterLeave\": onAfterLeave\n }, {\n default: () => [_withDirectives(_createElementVNode(\"div\", _mergeProps({\n \"ref\": contentEl,\n \"class\": ['v-overlay__content', props.contentClass],\n \"style\": [dimensionStyles.value, contentStyles.value]\n }, contentEvents.value, props.contentProps), [slots.default?.({\n isActive\n })]), [[_vShow, isActive.value], [vClickOutside, {\n handler: onClickOutside,\n closeConditional,\n include: () => [activatorEl.value]\n }]])]\n })])]\n })]));\n return {\n activatorEl,\n scrimEl,\n target,\n animateClick,\n contentEl,\n rootEl: root,\n globalTop,\n localTop,\n updateLocation\n };\n }\n});\n//# sourceMappingURL=VOverlay.js.map","// Types\n\nconst Refs = Symbol('Forwarded refs');\n\n/** Omit properties starting with P */\n\n/** Omit keyof $props from T */\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.js.map","import { createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VMenu.css\";\n\n// Components\nimport { VDialogTransition } from \"../transitions/index.js\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.js\";\nimport { VOverlay } from \"../VOverlay/index.js\";\nimport { makeVOverlayProps } from \"../VOverlay/VOverlay.js\"; // Composables\nimport { forwardRefs } from \"../../composables/forwardRefs.js\";\nimport { useRtl } from \"../../composables/locale.js\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.js\";\nimport { useScopeId } from \"../../composables/scopeId.js\"; // Utilities\nimport { computed, inject, mergeProps, nextTick, onBeforeUnmount, onDeactivated, provide, ref, shallowRef, toRef, useId, watch } from 'vue';\nimport { VMenuSymbol } from \"./shared.js\";\nimport { focusableChildren, focusChild, genericComponent, getNextElement, IN_BROWSER, isClickInsideElement, omit, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVMenuProps = propsFactory({\n // TODO\n // disableKeys: Boolean,\n id: String,\n submenu: Boolean,\n disableInitialFocus: Boolean,\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected',\n location: undefined,\n openDelay: 300,\n scrim: false,\n scrollStrategy: 'reposition',\n transition: {\n component: VDialogTransition\n }\n }), ['absolute'])\n}, 'VMenu');\nexport const VMenu = genericComponent()({\n name: 'VMenu',\n props: makeVMenuProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const {\n scopeId\n } = useScopeId();\n const {\n isRtl\n } = useRtl();\n const uid = useId();\n const id = toRef(() => props.id || `v-menu-${uid}`);\n const overlay = ref();\n const parent = inject(VMenuSymbol, null);\n const openChildren = shallowRef(new Set());\n provide(VMenuSymbol, {\n register() {\n openChildren.value.add(uid);\n },\n unregister() {\n openChildren.value.delete(uid);\n },\n closeParents(e) {\n setTimeout(() => {\n if (!openChildren.value.size && !props.persistent && (e == null || overlay.value?.contentEl && !isClickInsideElement(e, overlay.value.contentEl))) {\n isActive.value = false;\n parent?.closeParents();\n }\n }, 40);\n }\n });\n onBeforeUnmount(() => {\n parent?.unregister();\n document.removeEventListener('focusin', onFocusIn);\n });\n onDeactivated(() => isActive.value = false);\n let focusTrapSuppressed = false;\n let focusTrapSuppressionTimeout = -1;\n async function onPointerdown() {\n focusTrapSuppressed = true;\n focusTrapSuppressionTimeout = window.setTimeout(() => {\n focusTrapSuppressed = false;\n }, 100);\n }\n async function onFocusIn(e) {\n const before = e.relatedTarget;\n const after = e.target;\n await nextTick();\n if (isActive.value && before !== after && overlay.value?.rootEl && overlay.value?.contentEl &&\n // We're the menu without open submenus or overlays\n overlay.value?.localTop &&\n // It isn't the document or the menu body\n ![document, overlay.value.rootEl].includes(after) &&\n // It isn't inside the menu body\n !overlay.value.rootEl.contains(after)) {\n if (focusTrapSuppressed) {\n if (!props.openOnHover && !overlay.value.activatorEl?.contains(after)) {\n isActive.value = false;\n }\n } else {\n const focusable = focusableChildren(overlay.value.contentEl);\n focusable[0]?.focus();\n document.removeEventListener('pointerdown', onPointerdown);\n }\n }\n }\n watch(isActive, val => {\n if (val) {\n parent?.register();\n if (IN_BROWSER && !props.disableInitialFocus) {\n document.addEventListener('pointerdown', onPointerdown);\n document.addEventListener('focusin', onFocusIn, {\n once: true\n });\n }\n } else {\n parent?.unregister();\n if (IN_BROWSER) {\n clearTimeout(focusTrapSuppressionTimeout);\n document.removeEventListener('pointerdown', onPointerdown);\n document.removeEventListener('focusin', onFocusIn);\n }\n }\n }, {\n immediate: true\n });\n function onClickOutside(e) {\n parent?.closeParents(e);\n }\n function onKeydown(e) {\n if (props.disabled) return;\n if (e.key === 'Tab' || e.key === 'Enter' && !props.closeOnContentClick) {\n if (e.key === 'Enter' && (e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLInputElement && !!e.target.closest('form'))) return;\n if (e.key === 'Enter') e.preventDefault();\n const nextElement = getNextElement(focusableChildren(overlay.value?.contentEl, false), e.shiftKey ? 'prev' : 'next', el => el.tabIndex >= 0);\n if (!nextElement) {\n isActive.value = false;\n overlay.value?.activatorEl?.focus();\n }\n } else if (props.submenu && e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false;\n overlay.value?.activatorEl?.focus();\n }\n }\n function onActivatorKeydown(e) {\n if (props.disabled) return;\n const el = overlay.value?.contentEl;\n if (el && isActive.value) {\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n e.stopImmediatePropagation();\n focusChild(el, 'next');\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n e.stopImmediatePropagation();\n focusChild(el, 'prev');\n } else if (props.submenu) {\n if (e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false;\n } else if (e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')) {\n e.preventDefault();\n focusChild(el, 'first');\n }\n }\n } else if (props.submenu ? e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight') : ['ArrowDown', 'ArrowUp'].includes(e.key)) {\n isActive.value = true;\n e.preventDefault();\n setTimeout(() => setTimeout(() => onActivatorKeydown(e)));\n }\n }\n const activatorProps = computed(() => mergeProps({\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-controls': id.value,\n 'aria-owns': id.value,\n onKeydown: onActivatorKeydown\n }, props.activatorProps));\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props);\n return _createVNode(VOverlay, _mergeProps({\n \"ref\": overlay,\n \"id\": id.value,\n \"class\": ['v-menu', props.class],\n \"style\": props.style\n }, overlayProps, {\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"absolute\": true,\n \"activatorProps\": activatorProps.value,\n \"location\": props.location ?? (props.submenu ? 'end' : 'bottom'),\n \"onClick:outside\": onClickOutside,\n \"onKeydown\": onKeydown\n }, scopeId), {\n activator: slots.activator,\n default: function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _createVNode(VDefaultsProvider, {\n \"root\": \"VMenu\"\n }, {\n default: () => [slots.default?.(...args)]\n });\n }\n });\n });\n return forwardRefs({\n id,\n ΨopenChildren: openChildren\n }, overlay);\n }\n});\n//# sourceMappingURL=VMenu.js.map","<template>\n <div class=\"up-calendar\">\n <div class=\"up-calendar__header\">\n <v-btn\n icon=\"mdi-chevron-left\"\n variant=\"text\"\n size=\"small\"\n @click=\"previousMonth\"\n />\n\n <div class=\"up-calendar__title\">\n <v-menu>\n <template #activator=\"{ props }\">\n <v-btn v-bind=\"props\" variant=\"text\" size=\"small\">\n {{ monthYearText }}\n <v-icon end size=\"small\">mdi-menu-down</v-icon>\n </v-btn>\n </template>\n <v-list>\n <v-list-item\n v-for=\"month in months\"\n :key=\"month.value\"\n @click=\"currentMonth = month.value\"\n >\n {{ month.label }}\n </v-list-item>\n </v-list>\n </v-menu>\n\n <v-menu>\n <template #activator=\"{ props }\">\n <v-btn v-bind=\"props\" variant=\"text\" size=\"small\">\n {{ currentYear }}\n <v-icon end size=\"small\">mdi-menu-down</v-icon>\n </v-btn>\n </template>\n <v-list max-height=\"300\">\n <v-list-item\n v-for=\"year in years\"\n :key=\"year\"\n @click=\"currentYear = year\"\n >\n {{ year }}\n </v-list-item>\n </v-list>\n </v-menu>\n </div>\n\n <v-btn\n icon=\"mdi-chevron-right\"\n variant=\"text\"\n size=\"small\"\n @click=\"nextMonth\"\n />\n </div>\n\n <div class=\"up-calendar__weekdays\">\n <div v-for=\"day in weekdays\" :key=\"day\">{{ day }}</div>\n </div>\n\n <div class=\"up-calendar__days\">\n <div\n v-for=\"(day, index) in calendarDays\"\n :key=\"index\"\n :class=\"getDayClasses(day)\"\n @click=\"selectDate(day)\"\n >\n <div class=\"up-calendar__day-number\">{{ day.day }}</div>\n <div\n v-if=\"day.events && day.events.length > 0\"\n class=\"up-calendar__events\"\n >\n <div\n v-for=\"(event, eventIndex) in day.events.slice(0, 3)\"\n :key=\"eventIndex\"\n class=\"up-calendar__event\"\n :style=\"{ backgroundColor: event.color || '#FF8C1A' }\"\n :title=\"event.title\"\n >\n {{ event.title }}\n </div>\n <div v-if=\"day.events.length > 3\" class=\"up-calendar__more-events\">\n +{{ day.events.length - 3 }} mais\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, watch } from \"vue\";\n\nexport interface UpCalendarEvent {\n title: string;\n date: Date;\n color?: string;\n}\n\nexport interface UpCalendarDay {\n day: number;\n date: Date;\n isCurrentMonth: boolean;\n isToday: boolean;\n isSelected: boolean;\n isWeekend: boolean;\n events?: UpCalendarEvent[];\n}\n\nexport interface UpCalendarProps {\n modelValue?: Date | string | null;\n events?: UpCalendarEvent[];\n color?: string;\n firstDayOfWeek?: number;\n}\n\nconst props = withDefaults(defineProps<UpCalendarProps>(), {\n modelValue: null,\n events: () => [],\n color: \"primary\",\n firstDayOfWeek: 0,\n});\n\nconst emit = defineEmits<{\n \"update:modelValue\": [value: Date | null];\n \"click:date\": [date: Date];\n \"click:event\": [event: UpCalendarEvent];\n}>();\n\nconst today = new Date();\nconst currentMonth = ref(today.getMonth());\nconst currentYear = ref(today.getFullYear());\nconst selectedDate = ref<Date | null>(null);\n\nwatch(\n () => props.modelValue,\n (newValue) => {\n if (newValue) {\n const date = typeof newValue === \"string\" ? new Date(newValue) : newValue;\n selectedDate.value = date;\n currentMonth.value = date.getMonth();\n currentYear.value = date.getFullYear();\n } else {\n selectedDate.value = null;\n }\n },\n { immediate: true }\n);\n\nconst months = [\n { value: 0, label: \"Janeiro\" },\n { value: 1, label: \"Fevereiro\" },\n { value: 2, label: \"Março\" },\n { value: 3, label: \"Abril\" },\n { value: 4, label: \"Maio\" },\n { value: 5, label: \"Junho\" },\n { value: 6, label: \"Julho\" },\n { value: 7, label: \"Agosto\" },\n { value: 8, label: \"Setembro\" },\n { value: 9, label: \"Outubro\" },\n { value: 10, label: \"Novembro\" },\n { value: 11, label: \"Dezembro\" },\n];\n\nconst years = computed(() => {\n const currentYear = new Date().getFullYear();\n const yearList = [];\n for (let i = currentYear - 50; i <= currentYear + 50; i++) {\n yearList.push(i);\n }\n return yearList;\n});\n\nconst monthYearText = computed(() => {\n return `${months[currentMonth.value].label} ${currentYear.value}`;\n});\n\nconst weekdays = computed(() => {\n const days = [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sáb\"];\n const rotated = [\n ...days.slice(props.firstDayOfWeek),\n ...days.slice(0, props.firstDayOfWeek),\n ];\n return rotated;\n});\n\nconst calendarDays = computed(() => {\n const days: UpCalendarDay[] = [];\n const firstDay = new Date(currentYear.value, currentMonth.value, 1);\n const lastDay = new Date(currentYear.value, currentMonth.value + 1, 0);\n\n let startDay = firstDay.getDay() - props.firstDayOfWeek;\n if (startDay < 0) startDay += 7;\n\n const prevMonthLastDay = new Date(currentYear.value, currentMonth.value, 0);\n for (let i = startDay - 1; i >= 0; i--) {\n const date = new Date(\n currentYear.value,\n currentMonth.value - 1,\n prevMonthLastDay.getDate() - i\n );\n days.push(createDay(date, false));\n }\n\n for (let i = 1; i <= lastDay.getDate(); i++) {\n const date = new Date(currentYear.value, currentMonth.value, i);\n days.push(createDay(date, true));\n }\n\n const remainingDays = 42 - days.length;\n for (let i = 1; i <= remainingDays; i++) {\n const date = new Date(currentYear.value, currentMonth.value + 1, i);\n days.push(createDay(date, false));\n }\n\n return days;\n});\n\nconst createDay = (date: Date, isCurrentMonth: boolean): UpCalendarDay => {\n const dayEvents = props.events.filter((event) => {\n const eventDate = new Date(event.date);\n return (\n eventDate.getDate() === date.getDate() &&\n eventDate.getMonth() === date.getMonth() &&\n eventDate.getFullYear() === date.getFullYear()\n );\n });\n\n return {\n day: date.getDate(),\n date,\n isCurrentMonth,\n isToday: isSameDay(date, today),\n isSelected: selectedDate.value\n ? isSameDay(date, selectedDate.value)\n : false,\n isWeekend: date.getDay() === 0 || date.getDay() === 6,\n events: dayEvents,\n };\n};\n\nconst isSameDay = (date1: Date, date2: Date): boolean => {\n return (\n date1.getDate() === date2.getDate() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getFullYear() === date2.getFullYear()\n );\n};\n\nconst getDayClasses = (day: UpCalendarDay) => {\n return {\n \"up-calendar__day\": true,\n \"up-calendar__day--other-month\": !day.isCurrentMonth,\n \"up-calendar__day--today\": day.isToday,\n \"up-calendar__day--selected\": day.isSelected,\n \"up-calendar__day--weekend\": day.isWeekend,\n \"up-calendar__day--has-events\": day.events && day.events.length > 0,\n };\n};\n\nconst selectDate = (day: UpCalendarDay) => {\n if (!day.isCurrentMonth) return;\n\n selectedDate.value = day.date;\n emit(\"update:modelValue\", day.date);\n emit(\"click:date\", day.date);\n};\n\nconst previousMonth = () => {\n if (currentMonth.value === 0) {\n currentMonth.value = 11;\n currentYear.value--;\n } else {\n currentMonth.value--;\n }\n};\n\nconst nextMonth = () => {\n if (currentMonth.value === 11) {\n currentMonth.value = 0;\n currentYear.value++;\n } else {\n currentMonth.value++;\n }\n};\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-calendar {\n width: 100%;\n max-width: 400px;\n background: white;\n border-radius: $radius-md;\n padding: $spacing-md;\n box-shadow: $shadow-sm;\n\n &__header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: $spacing-md;\n }\n\n &__title {\n display: flex;\n gap: $spacing-xs;\n }\n\n &__weekdays {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: $spacing-xs;\n margin-bottom: $spacing-sm;\n\n > div {\n text-align: center;\n font-size: $font-size-us;\n font-weight: $font-weight-semibolder;\n color: rgba(0, 0, 0, 0.6);\n padding: $spacing-sm 0;\n }\n }\n\n &__days {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: $spacing-xs;\n }\n\n &__day {\n aspect-ratio: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n padding: $spacing-xs;\n border-radius: $radius-md;\n cursor: pointer;\n transition: all 0.2s;\n font-size: $font-size-xxxs;\n position: relative;\n background: white;\n\n &:hover:not(&--other-month) {\n background: rgba(var(--v-theme-on-surface), 0.08);\n }\n\n &--other-month {\n opacity: 0.3;\n cursor: default;\n }\n\n &--today {\n border: 1px solid rgb(var(--v-theme-primary));\n font-weight: $font-weight-semibolder;\n }\n\n &--selected {\n background: rgba(var(--v-theme-primary), 0.1);\n border: 2px solid rgb(var(--v-theme-primary));\n font-weight: $font-weight-semibolder;\n\n .up-calendar__day-number {\n color: rgb(var(--v-theme-primary));\n }\n }\n\n &--weekend {\n color: #cc3333;\n }\n\n &--has-events {\n padding: $spacing-xs;\n }\n }\n\n &__day-number {\n font-size: $font-size-xxxs;\n margin-bottom: 2px;\n }\n\n &__events {\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n &__event {\n font-size: $font-size-usu;\n padding: 1px 2px;\n border-radius: 2px;\n color: white;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n }\n\n &__more-events {\n font-size: $font-size-usu;\n color: rgba(0, 0, 0, 0.6);\n text-align: center;\n }\n}\n</style>\n","<template>\n <div class=\"up-card-node\" :class=\"computedClasses\">\n <UpBadge :type=\"variant\" :disabled=\"disabled\" />\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport { UpBadge } from \"../UpBadge\";\nimport type { UpCardEntityType } from \"./types\";\n\nexport interface UpCardNodeProps {\n variant: UpCardEntityType;\n bordered?: boolean;\n disabled?: boolean;\n}\n\nconst props = withDefaults(defineProps<UpCardNodeProps>(), {\n bordered: false,\n disabled: false,\n});\n\nconst computedClasses = computed(() => [\n `up-card-node--${props.variant}`,\n {\n \"up-card-node--bordered\": props.bordered,\n \"up-card-node--disabled\": props.disabled,\n },\n]);\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-card-node {\n display: flex;\n flex-direction: column;\n text-align: left;\n height: 101px;\n width: fit-content;\n padding: $spacing-sm; // 8px\n gap: $spacing-sm; // 8px\n background-color: $neutral-light-pure; // #FFFFFF\n border-radius: $radius-sm; // 4px\n\n // Bordered state\n &--bordered {\n border: 1px solid $neutral-light-2; // #CCCCCC\n }\n\n // Disabled state\n &--disabled {\n border-right: 4px solid $neutral-light-1; // #B8B8B8\n }\n\n // Entity type borders (right border 4px)\n &--PF:not(&--disabled) {\n border-right: 4px solid $chart-3; // #0A9E5A - verde\n }\n\n &--PF-admin:not(&--disabled) {\n border-right: 4px solid $chart-2; // #54D088 - verde claro\n }\n\n &--PJ:not(&--disabled) {\n border-right: 4px solid $chart-6; // #0D5FC2 - azul\n }\n\n &--PJ-filial:not(&--disabled) {\n border-right: 4px solid $chart-5; // #4D90FF - azul claro\n }\n\n &--SP:not(&--disabled) {\n border-right: 4px solid $chart-1; // #FBC105 - amarelo\n }\n\n &--PEP:not(&--disabled) {\n border-right: 4px solid $chart-14; // #D77B0A - laranja\n }\n\n &--ADM-PEP-SP:not(&--disabled) {\n border-right: 4px solid $chart-11; // #FF685D - vermelho claro\n }\n\n &--custom:not(&--disabled) {\n border-right: 4px solid $neutral-light-1; // #B8B8B8\n }\n}\n</style>\n","<template>\n <div class=\"up-card-info\" :class=\"`up-card-info--${variant}`\">\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { UpCardInfoVariant } from \"./types\";\n\nexport interface UpCardInfoProps {\n variant: UpCardInfoVariant;\n}\n\ndefineProps<UpCardInfoProps>();\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-card-info {\n display: flex;\n flex-direction: column;\n background-color: $neutral-light-3; // #F0F0F0\n border-radius: $radius-sm; // 4px\n gap: $spacing-sm; // 8px\n width: 360px;\n padding: $spacing-sm; // 8px\n\n // CNPJ variant - 360px × 148px\n &--CNPJ {\n height: 148px;\n\n :deep(> :nth-child(1)),\n :deep(> :nth-child(2)) {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n\n :deep(> :nth-child(3)) {\n display: flex;\n gap: 12px;\n\n > div {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n }\n }\n\n // Protestos variant - 360px × 148px\n &--Protestos {\n height: 148px;\n\n :deep(> :nth-child(1)) {\n display: flex;\n gap: 12px;\n }\n\n :deep(> :nth-child(2)),\n :deep(> :nth-child(3)) {\n display: flex;\n }\n }\n\n // RendaPresumida variant - 360px × 148px\n &--RendaPresumida {\n height: 148px;\n\n :deep(> *) {\n display: flex;\n gap: 12px;\n }\n }\n\n // Falencia variant - 360px × 148px\n &--Falencia {\n height: 148px;\n\n :deep(> *) {\n display: flex;\n gap: 12px;\n }\n }\n\n // ParticipacaoEmEmpresas variant - 360px × 192px\n &--ParticipacaoEmEmpresas {\n height: 192px;\n\n :deep(> *) {\n display: flex;\n gap: 12px;\n }\n }\n\n // Transparencia variant - 360px × 192px\n &--Transparencia {\n height: 192px;\n\n :deep(> *) {\n display: flex;\n gap: 12px;\n }\n }\n\n // Remuneracao variant - 360px × min-h-[216px]\n &--Remuneracao {\n min-height: 216px;\n gap: $spacing-sm 20px; // gap-y-2 gap-x-5\n\n :deep(> :nth-child(1)) {\n display: flex;\n }\n\n :deep(> :nth-child(2)) {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: $spacing-sm 20px; // gap-x-5 gap-y-2\n }\n }\n\n // PEP variant - 360px × 216px\n &--PEP {\n height: 216px;\n justify-content: center;\n\n :deep(> *) {\n display: flex;\n gap: 12px;\n }\n }\n\n // Orgao variant - 360px × 534px\n &--Orgao {\n height: 534px;\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: $spacing-sm 0; // gap-y-2\n\n :deep(> :nth-child(1)) {\n grid-column: span 2;\n }\n\n :deep(> :nth-child(5)) {\n grid-column: span 2;\n gap: 16px;\n }\n }\n\n // ChequesSemFundo variant - similar to others\n &--ChequesSemFundo {\n height: 148px;\n\n :deep(> *) {\n display: flex;\n gap: 12px;\n }\n }\n}\n</style>\n","<template>\n <div class=\"up-card-list\">\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\n// No props needed for List Card\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-card-list {\n display: flex;\n justify-content: space-between;\n align-items: center;\n min-height: 66px;\n min-width: 360px;\n padding: $spacing-sm; // 8px\n gap: 12px; // gap-3\n background-color: $neutral-light-3; // #F0F0F0\n border-radius: $radius-sm; // 4px\n}\n</style>\n\n","<template>\n <div class=\"up-card-item\" :class=\"{ 'up-card-item--button': variant === 'button' }\">\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nexport interface UpCardItemProps {\n variant?: \"button\";\n}\n\ndefineProps<UpCardItemProps>();\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-card-item {\n display: flex;\n align-items: center;\n min-height: 68px;\n width: 355px;\n gap: $spacing-sm; // 8px\n}\n</style>\n\n","<template>\n <div\n class=\"up-card-product\"\n :class=\"[`up-card-product--${variant}`, `up-card-product--${size}`]\"\n tabindex=\"0\"\n >\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nexport interface UpCardProductProps {\n variant: \"product\" | \"custom\";\n size: \"lg\" | \"sm\";\n}\n\ndefineProps<UpCardProductProps>();\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-card-product {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: $spacing-sm; // 8px\n border: 1px solid $neutral-light-1; // #B8B8B8\n border-radius: $radius-sm; // 4px\n background-color: $neutral-light-pure; // #FFFFFF\n transition: border 200ms;\n outline: none;\n\n &:focus-within,\n &:focus {\n border: 2px solid $brand-secondary-1; // #7922B9\n }\n\n // Product variant with Large size - 220px × 129px\n &--product.up-card-product--lg {\n width: 220px;\n height: 129px;\n align-items: center;\n\n :deep(> :nth-child(1)) {\n margin-bottom: $spacing-sm; // 8px\n }\n\n :deep(> :nth-child(2)) {\n margin-bottom: 12px;\n }\n }\n\n // Product variant with Small size - 166px × 102px\n &--product.up-card-product--sm {\n width: 166px;\n height: 102px;\n align-items: flex-start;\n gap: 4px; // gap-y-1\n }\n\n // Custom variant - 245px × 137px\n &--custom {\n width: 245px;\n height: 137px;\n align-items: flex-start;\n justify-content: center;\n gap: $spacing-sm; // 8px (gap-y-2)\n text-align: left;\n }\n}\n</style>\n\n","<template>\n <div class=\"up-card-interactive\" :class=\"`up-card-interactive--${variant}`\">\n <!-- Icon slot (absolute positioned) -->\n <div class=\"up-card-interactive__icon\" @click=\"handleIconClick\">\n <slot name=\"icon\">\n <v-icon size=\"small\">mdi-close</v-icon>\n </slot>\n </div>\n\n <!-- Header/Title slot -->\n <div class=\"up-card-interactive__header\">\n <slot name=\"title\" />\n </div>\n\n <!-- Body/Description slot -->\n <div class=\"up-card-interactive__body\">\n <slot name=\"description\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nexport interface UpCardInteractiveProps {\n variant: \"positive\" | \"negative\" | \"neutral\";\n}\n\ndefineProps<UpCardInteractiveProps>();\n\nconst emit = defineEmits<{\n update: [];\n}>();\n\nconst handleIconClick = () => {\n emit(\"update\");\n};\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-card-interactive {\n position: relative;\n width: 169px;\n padding: $spacing-sm; // 8px\n border: 1px solid;\n border-radius: $radius-sm; // 4px\n\n // Icon container\n &__icon {\n position: absolute;\n right: 12px;\n top: 8px;\n cursor: pointer;\n }\n\n // Header/Title\n &__header {\n display: flex;\n justify-content: center;\n align-items: center;\n font-weight: $font-weight-semibold; // 600\n margin-bottom: $spacing-xs; // 4px\n }\n\n // Body/Description\n &__body {\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n font-size: 10px;\n line-height: 14px;\n color: $neutral-dark-3; // #666666\n }\n\n // Positive variant\n &--positive {\n border-color: $color-success; // #0A9E5A\n\n .up-card-interactive__header {\n color: $color-success;\n }\n }\n\n // Negative variant\n &--negative {\n border-color: $color-error; // #CC3333\n\n .up-card-interactive__header {\n color: $color-error;\n }\n }\n\n // Neutral variant\n &--neutral {\n border-color: $neutral-light-1; // #B8B8B8\n\n .up-card-interactive__header {\n color: $neutral-dark-pure; // #121212\n }\n }\n}\n</style>\n","<template>\n <div class=\"up-card-indicator\" :class=\"levelClass\">\n <!-- Icon slot -->\n <div v-if=\"$slots.icon\" class=\"up-card-indicator__icon\">\n <slot name=\"icon\" />\n </div>\n\n <!-- Label/Content -->\n <div class=\"up-card-indicator__label\">\n <slot />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nexport interface UpCardIndicatorProps {\n level?: \"low\" | \"medium\" | \"high\" | \"error\";\n}\n\nconst props = defineProps<UpCardIndicatorProps>();\n\nconst levelClass = computed(() => {\n if (!props.level || props.level === \"error\") {\n return \"up-card-indicator--error\";\n }\n return `up-card-indicator--${props.level}`;\n});\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-card-indicator {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 169px;\n height: 166px;\n padding: $spacing-sm; // 8px\n border-radius: $radius-lg; // 8px\n gap: $spacing-sm; // 8px\n color: $neutral-light-pure; // #FFFFFF (default)\n\n &__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n &__label {\n text-align: center;\n }\n\n // Low level - green\n &--low {\n background-color: $color-success; // #0A9E5A\n }\n\n // Medium level - orange/warning\n &--medium {\n background-color: $color-warning; // #D77B0A\n }\n\n // High level - red/error\n &--high {\n background-color: $color-error; // #CC3333\n }\n\n // Error/Undefined level - transparent with border\n &--error {\n background-color: transparent;\n border: 1px solid $neutral-dark-pure; // #121212\n color: $neutral-dark-pure; // #121212\n text-align: center;\n }\n}\n</style>\n","<template>\n <component\n :is=\"componentDict[props.type]\"\n v-bind=\"componentProps\"\n @update=\"$emit('update')\"\n >\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotData\">\n <slot :name=\"name\" v-bind=\"slotData\" />\n </template>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport UpCardNode from \"./UpCardNode.vue\";\nimport UpCardInfo from \"./UpCardInfo.vue\";\nimport UpCardList from \"./UpCardList.vue\";\nimport UpCardItem from \"./UpCardItem.vue\";\nimport UpCardProduct from \"./UpCardProduct.vue\";\nimport UpCardInteractive from \"./UpCardInteractive.vue\";\nimport UpCardIndicator from \"./UpCardIndicator.vue\";\nimport type { UpCardProps } from \"./types\";\n\nexport interface Props {\n props: UpCardProps;\n}\n\nconst { props } = defineProps<Props>();\n\n// Define emits\ndefineEmits<{\n update: [];\n}>();\n\n// Dictionary mapping card types to their components\nconst componentDict = {\n node: UpCardNode,\n info: UpCardInfo,\n list: UpCardList,\n item: UpCardItem,\n product: UpCardProduct,\n interactive: UpCardInteractive,\n indicator: UpCardIndicator,\n};\n\n// Extract props without the 'type' field to pass to child components\nconst componentProps = computed(() => {\n const { type, ...rest } = props;\n return rest;\n});\n</script>\n","import { h, defineComponent, ref, shallowRef, onMounted, watch, onUnmounted, nextTick } from 'vue';\n\nconst matchIconName = /^[a-z0-9]+(-[a-z0-9]+)*$/;\nconst stringToIcon = (value, validate, allowSimpleName, provider = \"\") => {\n const colonSeparated = value.split(\":\");\n if (value.slice(0, 1) === \"@\") {\n if (colonSeparated.length < 2 || colonSeparated.length > 3) {\n return null;\n }\n provider = colonSeparated.shift().slice(1);\n }\n if (colonSeparated.length > 3 || !colonSeparated.length) {\n return null;\n }\n if (colonSeparated.length > 1) {\n const name2 = colonSeparated.pop();\n const prefix = colonSeparated.pop();\n const result = {\n // Allow provider without '@': \"provider:prefix:name\"\n provider: colonSeparated.length > 0 ? colonSeparated[0] : provider,\n prefix,\n name: name2\n };\n return validate && !validateIconName(result) ? null : result;\n }\n const name = colonSeparated[0];\n const dashSeparated = name.split(\"-\");\n if (dashSeparated.length > 1) {\n const result = {\n provider,\n prefix: dashSeparated.shift(),\n name: dashSeparated.join(\"-\")\n };\n return validate && !validateIconName(result) ? null : result;\n }\n if (allowSimpleName && provider === \"\") {\n const result = {\n provider,\n prefix: \"\",\n name\n };\n return validate && !validateIconName(result, allowSimpleName) ? null : result;\n }\n return null;\n};\nconst validateIconName = (icon, allowSimpleName) => {\n if (!icon) {\n return false;\n }\n return !!// Check prefix: cannot be empty, unless allowSimpleName is enabled\n // Check name: cannot be empty\n ((allowSimpleName && icon.prefix === \"\" || !!icon.prefix) && !!icon.name);\n};\n\nconst defaultIconDimensions = Object.freeze(\n {\n left: 0,\n top: 0,\n width: 16,\n height: 16\n }\n);\nconst defaultIconTransformations = Object.freeze({\n rotate: 0,\n vFlip: false,\n hFlip: false\n});\nconst defaultIconProps = Object.freeze({\n ...defaultIconDimensions,\n ...defaultIconTransformations\n});\nconst defaultExtendedIconProps = Object.freeze({\n ...defaultIconProps,\n body: \"\",\n hidden: false\n});\n\nfunction mergeIconTransformations(obj1, obj2) {\n const result = {};\n if (!obj1.hFlip !== !obj2.hFlip) {\n result.hFlip = true;\n }\n if (!obj1.vFlip !== !obj2.vFlip) {\n result.vFlip = true;\n }\n const rotate = ((obj1.rotate || 0) + (obj2.rotate || 0)) % 4;\n if (rotate) {\n result.rotate = rotate;\n }\n return result;\n}\n\nfunction mergeIconData(parent, child) {\n const result = mergeIconTransformations(parent, child);\n for (const key in defaultExtendedIconProps) {\n if (key in defaultIconTransformations) {\n if (key in parent && !(key in result)) {\n result[key] = defaultIconTransformations[key];\n }\n } else if (key in child) {\n result[key] = child[key];\n } else if (key in parent) {\n result[key] = parent[key];\n }\n }\n return result;\n}\n\nfunction getIconsTree(data, names) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n const resolved = /* @__PURE__ */ Object.create(null);\n function resolve(name) {\n if (icons[name]) {\n return resolved[name] = [];\n }\n if (!(name in resolved)) {\n resolved[name] = null;\n const parent = aliases[name] && aliases[name].parent;\n const value = parent && resolve(parent);\n if (value) {\n resolved[name] = [parent].concat(value);\n }\n }\n return resolved[name];\n }\n (Object.keys(icons).concat(Object.keys(aliases))).forEach(resolve);\n return resolved;\n}\n\nfunction internalGetIconData(data, name, tree) {\n const icons = data.icons;\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n let currentProps = {};\n function parse(name2) {\n currentProps = mergeIconData(\n icons[name2] || aliases[name2],\n currentProps\n );\n }\n parse(name);\n tree.forEach(parse);\n return mergeIconData(data, currentProps);\n}\n\nfunction parseIconSet(data, callback) {\n const names = [];\n if (typeof data !== \"object\" || typeof data.icons !== \"object\") {\n return names;\n }\n if (data.not_found instanceof Array) {\n data.not_found.forEach((name) => {\n callback(name, null);\n names.push(name);\n });\n }\n const tree = getIconsTree(data);\n for (const name in tree) {\n const item = tree[name];\n if (item) {\n callback(name, internalGetIconData(data, name, item));\n names.push(name);\n }\n }\n return names;\n}\n\nconst optionalPropertyDefaults = {\n provider: \"\",\n aliases: {},\n not_found: {},\n ...defaultIconDimensions\n};\nfunction checkOptionalProps(item, defaults) {\n for (const prop in defaults) {\n if (prop in item && typeof item[prop] !== typeof defaults[prop]) {\n return false;\n }\n }\n return true;\n}\nfunction quicklyValidateIconSet(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return null;\n }\n const data = obj;\n if (typeof data.prefix !== \"string\" || !obj.icons || typeof obj.icons !== \"object\") {\n return null;\n }\n if (!checkOptionalProps(obj, optionalPropertyDefaults)) {\n return null;\n }\n const icons = data.icons;\n for (const name in icons) {\n const icon = icons[name];\n if (\n // Name cannot be empty\n !name || // Must have body\n typeof icon.body !== \"string\" || // Check other props\n !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )\n ) {\n return null;\n }\n }\n const aliases = data.aliases || /* @__PURE__ */ Object.create(null);\n for (const name in aliases) {\n const icon = aliases[name];\n const parent = icon.parent;\n if (\n // Name cannot be empty\n !name || // Parent must be set and point to existing icon\n typeof parent !== \"string\" || !icons[parent] && !aliases[parent] || // Check other props\n !checkOptionalProps(\n icon,\n defaultExtendedIconProps\n )\n ) {\n return null;\n }\n }\n return data;\n}\n\nconst dataStorage = /* @__PURE__ */ Object.create(null);\nfunction newStorage(provider, prefix) {\n return {\n provider,\n prefix,\n icons: /* @__PURE__ */ Object.create(null),\n missing: /* @__PURE__ */ new Set()\n };\n}\nfunction getStorage(provider, prefix) {\n const providerStorage = dataStorage[provider] || (dataStorage[provider] = /* @__PURE__ */ Object.create(null));\n return providerStorage[prefix] || (providerStorage[prefix] = newStorage(provider, prefix));\n}\nfunction addIconSet(storage, data) {\n if (!quicklyValidateIconSet(data)) {\n return [];\n }\n return parseIconSet(data, (name, icon) => {\n if (icon) {\n storage.icons[name] = icon;\n } else {\n storage.missing.add(name);\n }\n });\n}\nfunction addIconToStorage(storage, name, icon) {\n try {\n if (typeof icon.body === \"string\") {\n storage.icons[name] = { ...icon };\n return true;\n }\n } catch (err) {\n }\n return false;\n}\nfunction listIcons(provider, prefix) {\n let allIcons = [];\n const providers = typeof provider === \"string\" ? [provider] : Object.keys(dataStorage);\n providers.forEach((provider2) => {\n const prefixes = typeof provider2 === \"string\" && typeof prefix === \"string\" ? [prefix] : Object.keys(dataStorage[provider2] || {});\n prefixes.forEach((prefix2) => {\n const storage = getStorage(provider2, prefix2);\n allIcons = allIcons.concat(\n Object.keys(storage.icons).map(\n (name) => (provider2 !== \"\" ? \"@\" + provider2 + \":\" : \"\") + prefix2 + \":\" + name\n )\n );\n });\n });\n return allIcons;\n}\n\nlet simpleNames = false;\nfunction allowSimpleNames(allow) {\n if (typeof allow === \"boolean\") {\n simpleNames = allow;\n }\n return simpleNames;\n}\nfunction getIconData(name) {\n const icon = typeof name === \"string\" ? stringToIcon(name, true, simpleNames) : name;\n if (icon) {\n const storage = getStorage(icon.provider, icon.prefix);\n const iconName = icon.name;\n return storage.icons[iconName] || (storage.missing.has(iconName) ? null : void 0);\n }\n}\nfunction addIcon(name, data) {\n const icon = stringToIcon(name, true, simpleNames);\n if (!icon) {\n return false;\n }\n const storage = getStorage(icon.provider, icon.prefix);\n if (data) {\n return addIconToStorage(storage, icon.name, data);\n } else {\n storage.missing.add(icon.name);\n return true;\n }\n}\nfunction addCollection(data, provider) {\n if (typeof data !== \"object\") {\n return false;\n }\n if (typeof provider !== \"string\") {\n provider = data.provider || \"\";\n }\n if (simpleNames && !provider && !data.prefix) {\n let added = false;\n if (quicklyValidateIconSet(data)) {\n data.prefix = \"\";\n parseIconSet(data, (name, icon) => {\n if (addIcon(name, icon)) {\n added = true;\n }\n });\n }\n return added;\n }\n const prefix = data.prefix;\n if (!validateIconName({\n prefix,\n name: \"a\"\n })) {\n return false;\n }\n const storage = getStorage(provider, prefix);\n return !!addIconSet(storage, data);\n}\nfunction iconLoaded(name) {\n return !!getIconData(name);\n}\nfunction getIcon(name) {\n const result = getIconData(name);\n return result ? {\n ...defaultIconProps,\n ...result\n } : result;\n}\n\nconst defaultIconSizeCustomisations = Object.freeze({\n width: null,\n height: null\n});\nconst defaultIconCustomisations = Object.freeze({\n // Dimensions\n ...defaultIconSizeCustomisations,\n // Transformations\n ...defaultIconTransformations\n});\n\nconst unitsSplit = /(-?[0-9.]*[0-9]+[0-9.]*)/g;\nconst unitsTest = /^-?[0-9.]*[0-9]+[0-9.]*$/g;\nfunction calculateSize(size, ratio, precision) {\n if (ratio === 1) {\n return size;\n }\n precision = precision || 100;\n if (typeof size === \"number\") {\n return Math.ceil(size * ratio * precision) / precision;\n }\n if (typeof size !== \"string\") {\n return size;\n }\n const oldParts = size.split(unitsSplit);\n if (oldParts === null || !oldParts.length) {\n return size;\n }\n const newParts = [];\n let code = oldParts.shift();\n let isNumber = unitsTest.test(code);\n while (true) {\n if (isNumber) {\n const num = parseFloat(code);\n if (isNaN(num)) {\n newParts.push(code);\n } else {\n newParts.push(Math.ceil(num * ratio * precision) / precision);\n }\n } else {\n newParts.push(code);\n }\n code = oldParts.shift();\n if (code === void 0) {\n return newParts.join(\"\");\n }\n isNumber = !isNumber;\n }\n}\n\nfunction splitSVGDefs(content, tag = \"defs\") {\n let defs = \"\";\n const index = content.indexOf(\"<\" + tag);\n while (index >= 0) {\n const start = content.indexOf(\">\", index);\n const end = content.indexOf(\"</\" + tag);\n if (start === -1 || end === -1) {\n break;\n }\n const endEnd = content.indexOf(\">\", end);\n if (endEnd === -1) {\n break;\n }\n defs += content.slice(start + 1, end).trim();\n content = content.slice(0, index).trim() + content.slice(endEnd + 1);\n }\n return {\n defs,\n content\n };\n}\nfunction mergeDefsAndContent(defs, content) {\n return defs ? \"<defs>\" + defs + \"</defs>\" + content : content;\n}\nfunction wrapSVGContent(body, start, end) {\n const split = splitSVGDefs(body);\n return mergeDefsAndContent(split.defs, start + split.content + end);\n}\n\nconst isUnsetKeyword = (value) => value === \"unset\" || value === \"undefined\" || value === \"none\";\nfunction iconToSVG(icon, customisations) {\n const fullIcon = {\n ...defaultIconProps,\n ...icon\n };\n const fullCustomisations = {\n ...defaultIconCustomisations,\n ...customisations\n };\n const box = {\n left: fullIcon.left,\n top: fullIcon.top,\n width: fullIcon.width,\n height: fullIcon.height\n };\n let body = fullIcon.body;\n [fullIcon, fullCustomisations].forEach((props) => {\n const transformations = [];\n const hFlip = props.hFlip;\n const vFlip = props.vFlip;\n let rotation = props.rotate;\n if (hFlip) {\n if (vFlip) {\n rotation += 2;\n } else {\n transformations.push(\n \"translate(\" + (box.width + box.left).toString() + \" \" + (0 - box.top).toString() + \")\"\n );\n transformations.push(\"scale(-1 1)\");\n box.top = box.left = 0;\n }\n } else if (vFlip) {\n transformations.push(\n \"translate(\" + (0 - box.left).toString() + \" \" + (box.height + box.top).toString() + \")\"\n );\n transformations.push(\"scale(1 -1)\");\n box.top = box.left = 0;\n }\n let tempValue;\n if (rotation < 0) {\n rotation -= Math.floor(rotation / 4) * 4;\n }\n rotation = rotation % 4;\n switch (rotation) {\n case 1:\n tempValue = box.height / 2 + box.top;\n transformations.unshift(\n \"rotate(90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n case 2:\n transformations.unshift(\n \"rotate(180 \" + (box.width / 2 + box.left).toString() + \" \" + (box.height / 2 + box.top).toString() + \")\"\n );\n break;\n case 3:\n tempValue = box.width / 2 + box.left;\n transformations.unshift(\n \"rotate(-90 \" + tempValue.toString() + \" \" + tempValue.toString() + \")\"\n );\n break;\n }\n if (rotation % 2 === 1) {\n if (box.left !== box.top) {\n tempValue = box.left;\n box.left = box.top;\n box.top = tempValue;\n }\n if (box.width !== box.height) {\n tempValue = box.width;\n box.width = box.height;\n box.height = tempValue;\n }\n }\n if (transformations.length) {\n body = wrapSVGContent(\n body,\n '<g transform=\"' + transformations.join(\" \") + '\">',\n \"</g>\"\n );\n }\n });\n const customisationsWidth = fullCustomisations.width;\n const customisationsHeight = fullCustomisations.height;\n const boxWidth = box.width;\n const boxHeight = box.height;\n let width;\n let height;\n if (customisationsWidth === null) {\n height = customisationsHeight === null ? \"1em\" : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n width = calculateSize(height, boxWidth / boxHeight);\n } else {\n width = customisationsWidth === \"auto\" ? boxWidth : customisationsWidth;\n height = customisationsHeight === null ? calculateSize(width, boxHeight / boxWidth) : customisationsHeight === \"auto\" ? boxHeight : customisationsHeight;\n }\n const attributes = {};\n const setAttr = (prop, value) => {\n if (!isUnsetKeyword(value)) {\n attributes[prop] = value.toString();\n }\n };\n setAttr(\"width\", width);\n setAttr(\"height\", height);\n const viewBox = [box.left, box.top, boxWidth, boxHeight];\n attributes.viewBox = viewBox.join(\" \");\n return {\n attributes,\n viewBox,\n body\n };\n}\n\nconst regex = /\\sid=\"(\\S+)\"/g;\nconst randomPrefix = \"IconifyId\" + Date.now().toString(16) + (Math.random() * 16777216 | 0).toString(16);\nlet counter = 0;\nfunction replaceIDs(body, prefix = randomPrefix) {\n const ids = [];\n let match;\n while (match = regex.exec(body)) {\n ids.push(match[1]);\n }\n if (!ids.length) {\n return body;\n }\n const suffix = \"suffix\" + (Math.random() * 16777216 | Date.now()).toString(16);\n ids.forEach((id) => {\n const newID = typeof prefix === \"function\" ? prefix(id) : prefix + (counter++).toString();\n const escapedID = id.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n body = body.replace(\n // Allowed characters before id: [#;\"]\n // Allowed characters after id: [)\"], .[a-z]\n new RegExp('([#;\"])(' + escapedID + ')([\")]|\\\\.[a-z])', \"g\"),\n \"$1\" + newID + suffix + \"$3\"\n );\n });\n body = body.replace(new RegExp(suffix, \"g\"), \"\");\n return body;\n}\n\nconst storage = /* @__PURE__ */ Object.create(null);\nfunction setAPIModule(provider, item) {\n storage[provider] = item;\n}\nfunction getAPIModule(provider) {\n return storage[provider] || storage[\"\"];\n}\n\nfunction createAPIConfig(source) {\n let resources;\n if (typeof source.resources === \"string\") {\n resources = [source.resources];\n } else {\n resources = source.resources;\n if (!(resources instanceof Array) || !resources.length) {\n return null;\n }\n }\n const result = {\n // API hosts\n resources,\n // Root path\n path: source.path || \"/\",\n // URL length limit\n maxURL: source.maxURL || 500,\n // Timeout before next host is used.\n rotate: source.rotate || 750,\n // Timeout before failing query.\n timeout: source.timeout || 5e3,\n // Randomise default API end point.\n random: source.random === true,\n // Start index\n index: source.index || 0,\n // Receive data after time out (used if time out kicks in first, then API module sends data anyway).\n dataAfterTimeout: source.dataAfterTimeout !== false\n };\n return result;\n}\nconst configStorage = /* @__PURE__ */ Object.create(null);\nconst fallBackAPISources = [\n \"https://api.simplesvg.com\",\n \"https://api.unisvg.com\"\n];\nconst fallBackAPI = [];\nwhile (fallBackAPISources.length > 0) {\n if (fallBackAPISources.length === 1) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n if (Math.random() > 0.5) {\n fallBackAPI.push(fallBackAPISources.shift());\n } else {\n fallBackAPI.push(fallBackAPISources.pop());\n }\n }\n}\nconfigStorage[\"\"] = createAPIConfig({\n resources: [\"https://api.iconify.design\"].concat(fallBackAPI)\n});\nfunction addAPIProvider(provider, customConfig) {\n const config = createAPIConfig(customConfig);\n if (config === null) {\n return false;\n }\n configStorage[provider] = config;\n return true;\n}\nfunction getAPIConfig(provider) {\n return configStorage[provider];\n}\nfunction listAPIProviders() {\n return Object.keys(configStorage);\n}\n\nconst detectFetch = () => {\n let callback;\n try {\n callback = fetch;\n if (typeof callback === \"function\") {\n return callback;\n }\n } catch (err) {\n }\n};\nlet fetchModule = detectFetch();\nfunction setFetch(fetch2) {\n fetchModule = fetch2;\n}\nfunction getFetch() {\n return fetchModule;\n}\nfunction calculateMaxLength(provider, prefix) {\n const config = getAPIConfig(provider);\n if (!config) {\n return 0;\n }\n let result;\n if (!config.maxURL) {\n result = 0;\n } else {\n let maxHostLength = 0;\n config.resources.forEach((item) => {\n const host = item;\n maxHostLength = Math.max(maxHostLength, host.length);\n });\n const url = prefix + \".json?icons=\";\n result = config.maxURL - maxHostLength - config.path.length - url.length;\n }\n return result;\n}\nfunction shouldAbort(status) {\n return status === 404;\n}\nconst prepare = (provider, prefix, icons) => {\n const results = [];\n const maxLength = calculateMaxLength(provider, prefix);\n const type = \"icons\";\n let item = {\n type,\n provider,\n prefix,\n icons: []\n };\n let length = 0;\n icons.forEach((name, index) => {\n length += name.length + 1;\n if (length >= maxLength && index > 0) {\n results.push(item);\n item = {\n type,\n provider,\n prefix,\n icons: []\n };\n length = name.length;\n }\n item.icons.push(name);\n });\n results.push(item);\n return results;\n};\nfunction getPath(provider) {\n if (typeof provider === \"string\") {\n const config = getAPIConfig(provider);\n if (config) {\n return config.path;\n }\n }\n return \"/\";\n}\nconst send = (host, params, callback) => {\n if (!fetchModule) {\n callback(\"abort\", 424);\n return;\n }\n let path = getPath(params.provider);\n switch (params.type) {\n case \"icons\": {\n const prefix = params.prefix;\n const icons = params.icons;\n const iconsList = icons.join(\",\");\n const urlParams = new URLSearchParams({\n icons: iconsList\n });\n path += prefix + \".json?\" + urlParams.toString();\n break;\n }\n case \"custom\": {\n const uri = params.uri;\n path += uri.slice(0, 1) === \"/\" ? uri.slice(1) : uri;\n break;\n }\n default:\n callback(\"abort\", 400);\n return;\n }\n let defaultError = 503;\n fetchModule(host + path).then((response) => {\n const status = response.status;\n if (status !== 200) {\n setTimeout(() => {\n callback(shouldAbort(status) ? \"abort\" : \"next\", status);\n });\n return;\n }\n defaultError = 501;\n return response.json();\n }).then((data) => {\n if (typeof data !== \"object\" || data === null) {\n setTimeout(() => {\n if (data === 404) {\n callback(\"abort\", data);\n } else {\n callback(\"next\", defaultError);\n }\n });\n return;\n }\n setTimeout(() => {\n callback(\"success\", data);\n });\n }).catch(() => {\n callback(\"next\", defaultError);\n });\n};\nconst fetchAPIModule = {\n prepare,\n send\n};\n\nfunction sortIcons(icons) {\n const result = {\n loaded: [],\n missing: [],\n pending: []\n };\n const storage = /* @__PURE__ */ Object.create(null);\n icons.sort((a, b) => {\n if (a.provider !== b.provider) {\n return a.provider.localeCompare(b.provider);\n }\n if (a.prefix !== b.prefix) {\n return a.prefix.localeCompare(b.prefix);\n }\n return a.name.localeCompare(b.name);\n });\n let lastIcon = {\n provider: \"\",\n prefix: \"\",\n name: \"\"\n };\n icons.forEach((icon) => {\n if (lastIcon.name === icon.name && lastIcon.prefix === icon.prefix && lastIcon.provider === icon.provider) {\n return;\n }\n lastIcon = icon;\n const provider = icon.provider;\n const prefix = icon.prefix;\n const name = icon.name;\n const providerStorage = storage[provider] || (storage[provider] = /* @__PURE__ */ Object.create(null));\n const localStorage = providerStorage[prefix] || (providerStorage[prefix] = getStorage(provider, prefix));\n let list;\n if (name in localStorage.icons) {\n list = result.loaded;\n } else if (prefix === \"\" || localStorage.missing.has(name)) {\n list = result.missing;\n } else {\n list = result.pending;\n }\n const item = {\n provider,\n prefix,\n name\n };\n list.push(item);\n });\n return result;\n}\n\nfunction removeCallback(storages, id) {\n storages.forEach((storage) => {\n const items = storage.loaderCallbacks;\n if (items) {\n storage.loaderCallbacks = items.filter((row) => row.id !== id);\n }\n });\n}\nfunction updateCallbacks(storage) {\n if (!storage.pendingCallbacksFlag) {\n storage.pendingCallbacksFlag = true;\n setTimeout(() => {\n storage.pendingCallbacksFlag = false;\n const items = storage.loaderCallbacks ? storage.loaderCallbacks.slice(0) : [];\n if (!items.length) {\n return;\n }\n let hasPending = false;\n const provider = storage.provider;\n const prefix = storage.prefix;\n items.forEach((item) => {\n const icons = item.icons;\n const oldLength = icons.pending.length;\n icons.pending = icons.pending.filter((icon) => {\n if (icon.prefix !== prefix) {\n return true;\n }\n const name = icon.name;\n if (storage.icons[name]) {\n icons.loaded.push({\n provider,\n prefix,\n name\n });\n } else if (storage.missing.has(name)) {\n icons.missing.push({\n provider,\n prefix,\n name\n });\n } else {\n hasPending = true;\n return true;\n }\n return false;\n });\n if (icons.pending.length !== oldLength) {\n if (!hasPending) {\n removeCallback([storage], item.id);\n }\n item.callback(\n icons.loaded.slice(0),\n icons.missing.slice(0),\n icons.pending.slice(0),\n item.abort\n );\n }\n });\n });\n }\n}\nlet idCounter = 0;\nfunction storeCallback(callback, icons, pendingSources) {\n const id = idCounter++;\n const abort = removeCallback.bind(null, pendingSources, id);\n if (!icons.pending.length) {\n return abort;\n }\n const item = {\n id,\n icons,\n callback,\n abort\n };\n pendingSources.forEach((storage) => {\n (storage.loaderCallbacks || (storage.loaderCallbacks = [])).push(item);\n });\n return abort;\n}\n\nfunction listToIcons(list, validate = true, simpleNames = false) {\n const result = [];\n list.forEach((item) => {\n const icon = typeof item === \"string\" ? stringToIcon(item, validate, simpleNames) : item;\n if (icon) {\n result.push(icon);\n }\n });\n return result;\n}\n\n// src/config.ts\nvar defaultConfig = {\n resources: [],\n index: 0,\n timeout: 2e3,\n rotate: 750,\n random: false,\n dataAfterTimeout: false\n};\n\n// src/query.ts\nfunction sendQuery(config, payload, query, done) {\n const resourcesCount = config.resources.length;\n const startIndex = config.random ? Math.floor(Math.random() * resourcesCount) : config.index;\n let resources;\n if (config.random) {\n let list = config.resources.slice(0);\n resources = [];\n while (list.length > 1) {\n const nextIndex = Math.floor(Math.random() * list.length);\n resources.push(list[nextIndex]);\n list = list.slice(0, nextIndex).concat(list.slice(nextIndex + 1));\n }\n resources = resources.concat(list);\n } else {\n resources = config.resources.slice(startIndex).concat(config.resources.slice(0, startIndex));\n }\n const startTime = Date.now();\n let status = \"pending\";\n let queriesSent = 0;\n let lastError;\n let timer = null;\n let queue = [];\n let doneCallbacks = [];\n if (typeof done === \"function\") {\n doneCallbacks.push(done);\n }\n function resetTimer() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function abort() {\n if (status === \"pending\") {\n status = \"aborted\";\n }\n resetTimer();\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function subscribe(callback, overwrite) {\n if (overwrite) {\n doneCallbacks = [];\n }\n if (typeof callback === \"function\") {\n doneCallbacks.push(callback);\n }\n }\n function getQueryStatus() {\n return {\n startTime,\n payload,\n status,\n queriesSent,\n queriesPending: queue.length,\n subscribe,\n abort\n };\n }\n function failQuery() {\n status = \"failed\";\n doneCallbacks.forEach((callback) => {\n callback(void 0, lastError);\n });\n }\n function clearQueue() {\n queue.forEach((item) => {\n if (item.status === \"pending\") {\n item.status = \"aborted\";\n }\n });\n queue = [];\n }\n function moduleResponse(item, response, data) {\n const isError = response !== \"success\";\n queue = queue.filter((queued) => queued !== item);\n switch (status) {\n case \"pending\":\n break;\n case \"failed\":\n if (isError || !config.dataAfterTimeout) {\n return;\n }\n break;\n default:\n return;\n }\n if (response === \"abort\") {\n lastError = data;\n failQuery();\n return;\n }\n if (isError) {\n lastError = data;\n if (!queue.length) {\n if (!resources.length) {\n failQuery();\n } else {\n execNext();\n }\n }\n return;\n }\n resetTimer();\n clearQueue();\n if (!config.random) {\n const index = config.resources.indexOf(item.resource);\n if (index !== -1 && index !== config.index) {\n config.index = index;\n }\n }\n status = \"completed\";\n doneCallbacks.forEach((callback) => {\n callback(data);\n });\n }\n function execNext() {\n if (status !== \"pending\") {\n return;\n }\n resetTimer();\n const resource = resources.shift();\n if (resource === void 0) {\n if (queue.length) {\n timer = setTimeout(() => {\n resetTimer();\n if (status === \"pending\") {\n clearQueue();\n failQuery();\n }\n }, config.timeout);\n return;\n }\n failQuery();\n return;\n }\n const item = {\n status: \"pending\",\n resource,\n callback: (status2, data) => {\n moduleResponse(item, status2, data);\n }\n };\n queue.push(item);\n queriesSent++;\n timer = setTimeout(execNext, config.rotate);\n query(resource, payload, item.callback);\n }\n setTimeout(execNext);\n return getQueryStatus;\n}\n\n// src/index.ts\nfunction initRedundancy(cfg) {\n const config = {\n ...defaultConfig,\n ...cfg\n };\n let queries = [];\n function cleanup() {\n queries = queries.filter((item) => item().status === \"pending\");\n }\n function query(payload, queryCallback, doneCallback) {\n const query2 = sendQuery(\n config,\n payload,\n queryCallback,\n (data, error) => {\n cleanup();\n if (doneCallback) {\n doneCallback(data, error);\n }\n }\n );\n queries.push(query2);\n return query2;\n }\n function find(callback) {\n return queries.find((value) => {\n return callback(value);\n }) || null;\n }\n const instance = {\n query,\n find,\n setIndex: (index) => {\n config.index = index;\n },\n getIndex: () => config.index,\n cleanup\n };\n return instance;\n}\n\nfunction emptyCallback$1() {\n}\nconst redundancyCache = /* @__PURE__ */ Object.create(null);\nfunction getRedundancyCache(provider) {\n if (!redundancyCache[provider]) {\n const config = getAPIConfig(provider);\n if (!config) {\n return;\n }\n const redundancy = initRedundancy(config);\n const cachedReundancy = {\n config,\n redundancy\n };\n redundancyCache[provider] = cachedReundancy;\n }\n return redundancyCache[provider];\n}\nfunction sendAPIQuery(target, query, callback) {\n let redundancy;\n let send;\n if (typeof target === \"string\") {\n const api = getAPIModule(target);\n if (!api) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n send = api.send;\n const cached = getRedundancyCache(target);\n if (cached) {\n redundancy = cached.redundancy;\n }\n } else {\n const config = createAPIConfig(target);\n if (config) {\n redundancy = initRedundancy(config);\n const moduleKey = target.resources ? target.resources[0] : \"\";\n const api = getAPIModule(moduleKey);\n if (api) {\n send = api.send;\n }\n }\n }\n if (!redundancy || !send) {\n callback(void 0, 424);\n return emptyCallback$1;\n }\n return redundancy.query(query, send, callback)().abort;\n}\n\nfunction emptyCallback() {\n}\nfunction loadedNewIcons(storage) {\n if (!storage.iconsLoaderFlag) {\n storage.iconsLoaderFlag = true;\n setTimeout(() => {\n storage.iconsLoaderFlag = false;\n updateCallbacks(storage);\n });\n }\n}\nfunction checkIconNamesForAPI(icons) {\n const valid = [];\n const invalid = [];\n icons.forEach((name) => {\n (name.match(matchIconName) ? valid : invalid).push(name);\n });\n return {\n valid,\n invalid\n };\n}\nfunction parseLoaderResponse(storage, icons, data) {\n function checkMissing() {\n const pending = storage.pendingIcons;\n icons.forEach((name) => {\n if (pending) {\n pending.delete(name);\n }\n if (!storage.icons[name]) {\n storage.missing.add(name);\n }\n });\n }\n if (data && typeof data === \"object\") {\n try {\n const parsed = addIconSet(storage, data);\n if (!parsed.length) {\n checkMissing();\n return;\n }\n } catch (err) {\n console.error(err);\n }\n }\n checkMissing();\n loadedNewIcons(storage);\n}\nfunction parsePossiblyAsyncResponse(response, callback) {\n if (response instanceof Promise) {\n response.then((data) => {\n callback(data);\n }).catch(() => {\n callback(null);\n });\n } else {\n callback(response);\n }\n}\nfunction loadNewIcons(storage, icons) {\n if (!storage.iconsToLoad) {\n storage.iconsToLoad = icons;\n } else {\n storage.iconsToLoad = storage.iconsToLoad.concat(icons).sort();\n }\n if (!storage.iconsQueueFlag) {\n storage.iconsQueueFlag = true;\n setTimeout(() => {\n storage.iconsQueueFlag = false;\n const { provider, prefix } = storage;\n const icons2 = storage.iconsToLoad;\n delete storage.iconsToLoad;\n if (!icons2 || !icons2.length) {\n return;\n }\n const customIconLoader = storage.loadIcon;\n if (storage.loadIcons && (icons2.length > 1 || !customIconLoader)) {\n parsePossiblyAsyncResponse(\n storage.loadIcons(icons2, prefix, provider),\n (data) => {\n parseLoaderResponse(storage, icons2, data);\n }\n );\n return;\n }\n if (customIconLoader) {\n icons2.forEach((name) => {\n const response = customIconLoader(name, prefix, provider);\n parsePossiblyAsyncResponse(response, (data) => {\n const iconSet = data ? {\n prefix,\n icons: {\n [name]: data\n }\n } : null;\n parseLoaderResponse(storage, [name], iconSet);\n });\n });\n return;\n }\n const { valid, invalid } = checkIconNamesForAPI(icons2);\n if (invalid.length) {\n parseLoaderResponse(storage, invalid, null);\n }\n if (!valid.length) {\n return;\n }\n const api = prefix.match(matchIconName) ? getAPIModule(provider) : null;\n if (!api) {\n parseLoaderResponse(storage, valid, null);\n return;\n }\n const params = api.prepare(provider, prefix, valid);\n params.forEach((item) => {\n sendAPIQuery(provider, item, (data) => {\n parseLoaderResponse(storage, item.icons, data);\n });\n });\n });\n }\n}\nconst loadIcons = (icons, callback) => {\n const cleanedIcons = listToIcons(icons, true, allowSimpleNames());\n const sortedIcons = sortIcons(cleanedIcons);\n if (!sortedIcons.pending.length) {\n let callCallback = true;\n if (callback) {\n setTimeout(() => {\n if (callCallback) {\n callback(\n sortedIcons.loaded,\n sortedIcons.missing,\n sortedIcons.pending,\n emptyCallback\n );\n }\n });\n }\n return () => {\n callCallback = false;\n };\n }\n const newIcons = /* @__PURE__ */ Object.create(null);\n const sources = [];\n let lastProvider, lastPrefix;\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix } = icon;\n if (prefix === lastPrefix && provider === lastProvider) {\n return;\n }\n lastProvider = provider;\n lastPrefix = prefix;\n sources.push(getStorage(provider, prefix));\n const providerNewIcons = newIcons[provider] || (newIcons[provider] = /* @__PURE__ */ Object.create(null));\n if (!providerNewIcons[prefix]) {\n providerNewIcons[prefix] = [];\n }\n });\n sortedIcons.pending.forEach((icon) => {\n const { provider, prefix, name } = icon;\n const storage = getStorage(provider, prefix);\n const pendingQueue = storage.pendingIcons || (storage.pendingIcons = /* @__PURE__ */ new Set());\n if (!pendingQueue.has(name)) {\n pendingQueue.add(name);\n newIcons[provider][prefix].push(name);\n }\n });\n sources.forEach((storage) => {\n const list = newIcons[storage.provider][storage.prefix];\n if (list.length) {\n loadNewIcons(storage, list);\n }\n });\n return callback ? storeCallback(callback, sortedIcons, sources) : emptyCallback;\n};\nconst loadIcon = (icon) => {\n return new Promise((fulfill, reject) => {\n const iconObj = typeof icon === \"string\" ? stringToIcon(icon, true) : icon;\n if (!iconObj) {\n reject(icon);\n return;\n }\n loadIcons([iconObj || icon], (loaded) => {\n if (loaded.length && iconObj) {\n const data = getIconData(iconObj);\n if (data) {\n fulfill({\n ...defaultIconProps,\n ...data\n });\n return;\n }\n }\n reject(icon);\n });\n });\n};\n\nfunction setCustomIconsLoader(loader, prefix, provider) {\n getStorage(provider || \"\", prefix).loadIcons = loader;\n}\nfunction setCustomIconLoader(loader, prefix, provider) {\n getStorage(provider || \"\", prefix).loadIcon = loader;\n}\n\nfunction mergeCustomisations(defaults, item) {\n const result = {\n ...defaults\n };\n for (const key in item) {\n const value = item[key];\n const valueType = typeof value;\n if (key in defaultIconSizeCustomisations) {\n if (value === null || value && (valueType === \"string\" || valueType === \"number\")) {\n result[key] = value;\n }\n } else if (valueType === typeof result[key]) {\n result[key] = key === \"rotate\" ? value % 4 : value;\n }\n }\n return result;\n}\n\nconst separator = /[\\s,]+/;\nfunction flipFromString(custom, flip) {\n flip.split(separator).forEach((str) => {\n const value = str.trim();\n switch (value) {\n case \"horizontal\":\n custom.hFlip = true;\n break;\n case \"vertical\":\n custom.vFlip = true;\n break;\n }\n });\n}\n\nfunction rotateFromString(value, defaultValue = 0) {\n const units = value.replace(/^-?[0-9.]*/, \"\");\n function cleanup(value2) {\n while (value2 < 0) {\n value2 += 4;\n }\n return value2 % 4;\n }\n if (units === \"\") {\n const num = parseInt(value);\n return isNaN(num) ? 0 : cleanup(num);\n } else if (units !== value) {\n let split = 0;\n switch (units) {\n case \"%\":\n split = 25;\n break;\n case \"deg\":\n split = 90;\n }\n if (split) {\n let num = parseFloat(value.slice(0, value.length - units.length));\n if (isNaN(num)) {\n return 0;\n }\n num = num / split;\n return num % 1 === 0 ? cleanup(num) : 0;\n }\n }\n return defaultValue;\n}\n\nfunction iconToHTML(body, attributes) {\n let renderAttribsHTML = body.indexOf(\"xlink:\") === -1 ? \"\" : ' xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n for (const attr in attributes) {\n renderAttribsHTML += \" \" + attr + '=\"' + attributes[attr] + '\"';\n }\n return '<svg xmlns=\"http://www.w3.org/2000/svg\"' + renderAttribsHTML + \">\" + body + \"</svg>\";\n}\n\nfunction encodeSVGforURL(svg) {\n return svg.replace(/\"/g, \"'\").replace(/%/g, \"%25\").replace(/#/g, \"%23\").replace(/</g, \"%3C\").replace(/>/g, \"%3E\").replace(/\\s+/g, \" \");\n}\nfunction svgToData(svg) {\n return \"data:image/svg+xml,\" + encodeSVGforURL(svg);\n}\nfunction svgToURL(svg) {\n return 'url(\"' + svgToData(svg) + '\")';\n}\n\nconst defaultExtendedIconCustomisations = {\n ...defaultIconCustomisations,\n inline: false,\n};\n\n/**\n * Default SVG attributes\n */\nconst svgDefaults = {\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'xmlns:xlink': 'http://www.w3.org/1999/xlink',\n 'aria-hidden': true,\n 'role': 'img',\n};\n/**\n * Style modes\n */\nconst commonProps = {\n display: 'inline-block',\n};\nconst monotoneProps = {\n backgroundColor: 'currentColor',\n};\nconst coloredProps = {\n backgroundColor: 'transparent',\n};\n// Dynamically add common props to variables above\nconst propsToAdd = {\n Image: 'var(--svg)',\n Repeat: 'no-repeat',\n Size: '100% 100%',\n};\nconst propsToAddTo = {\n webkitMask: monotoneProps,\n mask: monotoneProps,\n background: coloredProps,\n};\nfor (const prefix in propsToAddTo) {\n const list = propsToAddTo[prefix];\n for (const prop in propsToAdd) {\n list[prefix + prop] = propsToAdd[prop];\n }\n}\n/**\n * Aliases for customisations.\n * In Vue 'v-' properties are reserved, so v-flip must be renamed\n */\nconst customisationAliases = {};\n['horizontal', 'vertical'].forEach((prefix) => {\n const attr = prefix.slice(0, 1) + 'Flip';\n // vertical-flip\n customisationAliases[prefix + '-flip'] = attr;\n // v-flip\n customisationAliases[prefix.slice(0, 1) + '-flip'] = attr;\n // verticalFlip\n customisationAliases[prefix + 'Flip'] = attr;\n});\n/**\n * Fix size: add 'px' to numbers\n */\nfunction fixSize(value) {\n return value + (value.match(/^[-0-9.]+$/) ? 'px' : '');\n}\n/**\n * Render icon\n */\nconst render = (\n// Icon must be validated before calling this function\nicon, \n// Partial properties\nprops) => {\n // Split properties\n const customisations = mergeCustomisations(defaultExtendedIconCustomisations, props);\n const componentProps = { ...svgDefaults };\n // Check mode\n const mode = props.mode || 'svg';\n // Copy style\n const style = {};\n const propsStyle = props.style;\n const customStyle = typeof propsStyle === 'object' && !(propsStyle instanceof Array)\n ? propsStyle\n : {};\n // Get element properties\n for (let key in props) {\n const value = props[key];\n if (value === void 0) {\n continue;\n }\n switch (key) {\n // Properties to ignore\n case 'icon':\n case 'style':\n case 'onLoad':\n case 'mode':\n case 'ssr':\n break;\n // Boolean attributes\n case 'inline':\n case 'hFlip':\n case 'vFlip':\n customisations[key] =\n value === true || value === 'true' || value === 1;\n break;\n // Flip as string: 'horizontal,vertical'\n case 'flip':\n if (typeof value === 'string') {\n flipFromString(customisations, value);\n }\n break;\n // Color: override style\n case 'color':\n style.color = value;\n break;\n // Rotation as string\n case 'rotate':\n if (typeof value === 'string') {\n customisations[key] = rotateFromString(value);\n }\n else if (typeof value === 'number') {\n customisations[key] = value;\n }\n break;\n // Remove aria-hidden\n case 'ariaHidden':\n case 'aria-hidden':\n // Vue transforms 'aria-hidden' property to 'ariaHidden'\n if (value !== true && value !== 'true') {\n delete componentProps['aria-hidden'];\n }\n break;\n default: {\n const alias = customisationAliases[key];\n if (alias) {\n // Aliases for boolean customisations\n if (value === true || value === 'true' || value === 1) {\n customisations[alias] = true;\n }\n }\n else if (defaultExtendedIconCustomisations[key] === void 0) {\n // Copy missing property if it does not exist in customisations\n componentProps[key] = value;\n }\n }\n }\n }\n // Generate icon\n const item = iconToSVG(icon, customisations);\n const renderAttribs = item.attributes;\n // Inline display\n if (customisations.inline) {\n style.verticalAlign = '-0.125em';\n }\n if (mode === 'svg') {\n // Add style\n componentProps.style = {\n ...style,\n ...customStyle,\n };\n // Add icon stuff\n Object.assign(componentProps, renderAttribs);\n // Counter for ids based on \"id\" property to render icons consistently on server and client\n let localCounter = 0;\n let id = props.id;\n if (typeof id === 'string') {\n // Convert '-' to '_' to avoid errors in animations\n id = id.replace(/-/g, '_');\n }\n // Add innerHTML and style to props\n componentProps['innerHTML'] = replaceIDs(item.body, id ? () => id + 'ID' + localCounter++ : 'iconifyVue');\n // Render icon\n return h('svg', componentProps);\n }\n // Render <span> with style\n const { body, width, height } = icon;\n const useMask = mode === 'mask' ||\n (mode === 'bg' ? false : body.indexOf('currentColor') !== -1);\n // Generate SVG\n const html = iconToHTML(body, {\n ...renderAttribs,\n width: width + '',\n height: height + '',\n });\n // Generate style\n componentProps.style = {\n ...style,\n '--svg': svgToURL(html),\n 'width': fixSize(renderAttribs.width),\n 'height': fixSize(renderAttribs.height),\n ...commonProps,\n ...(useMask ? monotoneProps : coloredProps),\n ...customStyle,\n };\n return h('span', componentProps);\n};\n\n/**\n * Initialise stuff\n */\n// Enable short names\nallowSimpleNames(true);\n// Set API module\nsetAPIModule('', fetchAPIModule);\n/**\n * Browser stuff\n */\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n const _window = window;\n // Load icons from global \"IconifyPreload\"\n if (_window.IconifyPreload !== void 0) {\n const preload = _window.IconifyPreload;\n const err = 'Invalid IconifyPreload syntax.';\n if (typeof preload === 'object' && preload !== null) {\n (preload instanceof Array ? preload : [preload]).forEach((item) => {\n try {\n if (\n // Check if item is an object and not null/array\n typeof item !== 'object' ||\n item === null ||\n item instanceof Array ||\n // Check for 'icons' and 'prefix'\n typeof item.icons !== 'object' ||\n typeof item.prefix !== 'string' ||\n // Add icon set\n !addCollection(item)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n });\n }\n }\n // Set API from global \"IconifyProviders\"\n if (_window.IconifyProviders !== void 0) {\n const providers = _window.IconifyProviders;\n if (typeof providers === 'object' && providers !== null) {\n for (let key in providers) {\n const err = 'IconifyProviders[' + key + '] is invalid.';\n try {\n const value = providers[key];\n if (typeof value !== 'object' ||\n !value ||\n value.resources === void 0) {\n continue;\n }\n if (!addAPIProvider(key, value)) {\n console.error(err);\n }\n }\n catch (e) {\n console.error(err);\n }\n }\n }\n }\n}\n/**\n * Empty icon data, rendered when icon is not available\n */\nconst emptyIcon = {\n ...defaultIconProps,\n body: '',\n};\n/**\n * Component\n */\nconst Icon = defineComponent((props, { emit }) => {\n const loader = ref(null);\n function abortLoading() {\n if (loader.value) {\n loader.value.abort?.();\n loader.value = null;\n }\n }\n // Render state\n const rendering = ref(!!props.ssr);\n const lastRenderedIconName = ref('');\n const iconData = shallowRef(null);\n // Update icon data\n function getIcon() {\n const icon = props.icon;\n // Icon is an object\n if (typeof icon === 'object' &&\n icon !== null &&\n typeof icon.body === 'string') {\n lastRenderedIconName.value = '';\n return {\n data: icon,\n };\n }\n // Check for valid icon name\n let iconName;\n if (typeof icon !== 'string' ||\n (iconName = stringToIcon(icon, false, true)) === null) {\n return null;\n }\n // Load icon\n let data = getIconData(iconName);\n if (!data) {\n // Icon data is not available\n const oldState = loader.value;\n if (!oldState || oldState.name !== icon) {\n // Icon name does not match old loader state\n if (data === null) {\n // Failed to load\n loader.value = {\n name: icon,\n };\n }\n else {\n loader.value = {\n name: icon,\n abort: loadIcons([iconName], updateIconData),\n };\n }\n }\n return null;\n }\n // Icon data is available\n abortLoading();\n if (lastRenderedIconName.value !== icon) {\n lastRenderedIconName.value = icon;\n // Emit on next tick because render will be called on next tick\n nextTick(() => {\n emit('load', icon);\n });\n }\n // Customise icon\n const customise = props.customise;\n if (customise) {\n // Clone data and customise it\n data = Object.assign({}, data);\n const customised = customise(data.body, iconName.name, iconName.prefix, iconName.provider);\n if (typeof customised === 'string') {\n data.body = customised;\n }\n }\n // Add classes\n const classes = ['iconify'];\n if (iconName.prefix !== '') {\n classes.push('iconify--' + iconName.prefix);\n }\n if (iconName.provider !== '') {\n classes.push('iconify--' + iconName.provider);\n }\n return { data, classes };\n }\n function updateIconData() {\n const icon = getIcon();\n if (!icon) {\n iconData.value = null;\n }\n else if (icon.data !== iconData.value?.data) {\n iconData.value = icon;\n }\n }\n // Set icon data\n if (rendering.value) {\n updateIconData();\n }\n else {\n onMounted(() => {\n rendering.value = true;\n updateIconData();\n });\n }\n watch(() => props.icon, updateIconData);\n // Abort loading on unmount\n onUnmounted(abortLoading);\n // Render function\n return () => {\n // Get icon data\n const icon = iconData.value;\n if (!icon) {\n // Icon is not available\n return render(emptyIcon, props);\n }\n // Add classes\n let newProps = props;\n if (icon.classes) {\n newProps = {\n ...props,\n class: icon.classes.join(' '),\n };\n }\n // Render icon\n return render({\n ...defaultIconProps,\n ...icon.data,\n }, newProps);\n };\n}, {\n props: [\n // Icon and render mode\n 'icon',\n 'mode',\n 'ssr',\n // Layout and style\n 'width',\n 'height',\n 'style',\n 'color',\n 'inline',\n // Transformations\n 'rotate',\n 'hFlip',\n 'horizontalFlip',\n 'vFlip',\n 'verticalFlip',\n 'flip',\n // Misc\n 'id',\n 'ariaHidden',\n 'customise',\n 'title',\n ],\n emits: ['load'],\n});\n/**\n * Internal API\n */\nconst _api = {\n getAPIConfig,\n setAPIModule,\n sendAPIQuery,\n setFetch,\n getFetch,\n listAPIProviders,\n};\n\nexport { Icon, _api, addAPIProvider, addCollection, addIcon, iconToSVG as buildIcon, calculateSize, getIcon, iconLoaded, listIcons, loadIcon, loadIcons, replaceIDs, setCustomIconLoader, setCustomIconsLoader };\n","<template>\n <div\n class=\"up-cell\"\n :class=\"{\n 'up-cell--title': type === 'title',\n 'up-cell--padded': underlined || icon || type === 'title' || type === 'normal',\n }\"\n >\n <!-- Label -->\n <p\n v-if=\"label\"\n class=\"up-cell__label\"\n :class=\"{ 'up-cell__label--bold': !value }\"\n >\n {{ label }}\n </p>\n\n <!-- Value -->\n <div\n v-if=\"value || $slots.value\"\n class=\"up-cell__value\"\n :class=\"{\n 'up-cell__value--underlined': underlined,\n 'up-cell__value--link': href,\n 'up-cell__value--no-label': !label,\n }\"\n >\n <!-- Slot customizado para value -->\n <slot name=\"value\">\n <!-- Link com formatação -->\n <a\n v-if=\"href && valueFormatter\"\n :href=\"href\"\n target=\"_blank\"\n class=\"up-cell__link\"\n >\n <p v-text-format=\"valueFormatter\">{{ value }}</p>\n <Icon\n v-if=\"linkIcon\"\n :icon=\"`material-symbols:${typeof linkIcon === 'string' ? linkIcon : 'open-in-new'}`\"\n class=\"up-cell__icon\"\n />\n </a>\n\n <!-- Link sem formatação -->\n <a v-else-if=\"href\" :href=\"href\" target=\"_blank\" class=\"up-cell__link\">\n <p>{{ value }}</p>\n <Icon\n v-if=\"linkIcon\"\n :icon=\"`material-symbols:${typeof linkIcon === 'string' ? linkIcon : 'open-in-new'}`\"\n class=\"up-cell__icon\"\n />\n </a>\n\n <!-- Valor com formatação -->\n <p v-else-if=\"valueFormatter\" v-text-format=\"valueFormatter\">\n {{ value }}\n </p>\n\n <!-- Valor simples -->\n <p v-else>{{ value }}</p>\n </slot>\n\n <!-- Ícone após o valor (não exibido quando type=\"title\") -->\n <slot name=\"value-icon\">\n <Icon\n v-if=\"icon && type !== 'title'\"\n :icon=\"`material-symbols:${typeof icon === 'string' ? icon : 'open-in-new'}`\"\n class=\"up-cell__icon\"\n />\n </slot>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { Icon } from \"@iconify/vue\";\nimport type { UpCellProps } from \"./types\";\n\nwithDefaults(defineProps<UpCellProps>(), {\n type: \"normal\",\n});\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-cell {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: $spacing-xs; // 4px\n min-height: 20px;\n\n &--title {\n background-color: $neutral-light-3; // #F0F0F0\n }\n\n &--padded {\n padding: $spacing-xs; // 4px\n }\n\n &__label {\n font-size: $font-size-usu; // 10px\n color: $neutral-dark-pure; // #121212\n white-space: nowrap;\n font-weight: $font-weight-regular; // 400\n\n &--bold {\n font-weight: $font-weight-semibolder; // 600\n }\n }\n\n &__value {\n display: flex;\n align-items: center;\n text-align: left;\n gap: $spacing-sm; // 8px\n font-size: $font-size-us; // 12px\n font-weight: $font-weight-bold; // 500\n color: $neutral-dark-pure; // #121212\n\n &--underlined {\n border-bottom: 2px solid $neutral-light-2; // #CCCCCC\n padding-bottom: $spacing-xs; // 4px\n }\n\n &--link {\n color: $brand-secondary-1; // #7922B9\n border-bottom-color: $brand-secondary-1; // #7922B9\n }\n\n &--no-label {\n font-weight: $font-weight-regular; // 400\n color: $neutral-dark-3; // #666666\n }\n\n p {\n margin: 0;\n }\n }\n\n &__link {\n display: flex;\n align-items: center;\n gap: $spacing-sm; // 8px\n color: inherit;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n &__icon {\n color: $brand-secondary-1; // #7922B9\n }\n}\n</style>\n\n","<template>\n <label class=\"up-checkbox\" :class=\"{ 'up-checkbox--disabled': disabled }\">\n <input\n type=\"checkbox\"\n :id=\"id\"\n :checked=\"isChecked\"\n :disabled=\"disabled\"\n :name=\"name\"\n :value=\"String(value)\"\n :required=\"required\"\n class=\"up-checkbox__input\"\n @change=\"handleChange\"\n />\n <span\n class=\"up-checkbox__box\"\n :class=\"{\n 'up-checkbox__box--checked': isChecked,\n 'up-checkbox__box--disabled': disabled,\n }\"\n >\n <Icon\n v-if=\"isChecked\"\n icon=\"material-symbols:check-small\"\n class=\"up-checkbox__icon\"\n />\n </span>\n\n <span\n v-if=\"label\"\n class=\"up-checkbox__label\"\n :class=\"{ 'up-checkbox__label--disabled': disabled }\"\n >\n {{ label }}\n </span>\n </label>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport { Icon } from \"@iconify/vue\";\nimport type { UpCheckboxProps } from \"./types\";\n\nconst props = defineProps<UpCheckboxProps>();\n\nconst model = defineModel<boolean | Array<string | number>>(\"checked\", {\n required: true,\n});\n\n// Computed: verifica se o checkbox está marcado\nconst isChecked = computed(() => {\n if (Array.isArray(model.value)) {\n return model.value.includes(props.value);\n }\n return model.value;\n});\n\n// Função: atualiza o estado do checkbox\nconst handleChange = (event: Event) => {\n const target = event.target as HTMLInputElement;\n const isCheckedFromEvent = target.checked;\n\n if (Array.isArray(model.value)) {\n const newModelValue = [...model.value];\n\n if (isCheckedFromEvent) {\n newModelValue.push(props.value);\n } else {\n newModelValue.splice(newModelValue.indexOf(props.value), 1);\n }\n\n model.value = newModelValue;\n } else {\n model.value = isCheckedFromEvent;\n }\n};\n</script>\n\n<style lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-checkbox {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: $spacing-sm; // 8px\n height: fit-content;\n cursor: pointer;\n position: relative;\n\n &--disabled {\n cursor: not-allowed;\n }\n\n &__input {\n position: absolute;\n opacity: 0;\n width: 0;\n height: 0;\n pointer-events: none;\n }\n\n &__box {\n width: 16px;\n height: 16px;\n min-width: 16px;\n min-height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #ffffff;\n border: 2px solid #7922b9; // Borda roxa mais grossa\n border-radius: 4px;\n cursor: pointer;\n flex-shrink: 0;\n box-sizing: border-box;\n transition: all 0.2s ease;\n\n &--checked {\n background-color: #7922b9; // Roxo forte - brand-secondary-1\n border-color: #7922b9;\n }\n\n &--disabled {\n border-color: #999999;\n background-color: #ffffff;\n cursor: not-allowed;\n\n &.up-checkbox__box--checked {\n background-color: #cccccc;\n border-color: #999999;\n }\n }\n }\n\n &__icon {\n color: #ffffff;\n font-size: 18px;\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n &__label {\n font-size: 13px;\n font-weight: $font-weight-regular; // 400\n color: #7922b9;\n user-select: none;\n\n &--disabled {\n color: #999999;\n }\n }\n}\n</style>\n","// Utilities\nimport { inject, toRef } from 'vue';\nimport { useRtl } from \"./locale.js\";\nimport { clamp, consoleWarn, easingPatterns, mergeDeep, PREFERS_REDUCED_MOTION, refElement } from \"../util/index.js\"; // Types\nexport const GoToSymbol = Symbol.for('vuetify:goto');\nfunction genDefaults() {\n return {\n container: undefined,\n duration: 300,\n layout: false,\n offset: 0,\n easing: 'easeInOutCubic',\n patterns: easingPatterns\n };\n}\nfunction getContainer(el) {\n return getTarget(el) ?? (document.scrollingElement || document.body);\n}\nfunction getTarget(el) {\n return typeof el === 'string' ? document.querySelector(el) : refElement(el);\n}\nfunction getOffset(target, horizontal, rtl) {\n if (typeof target === 'number') return horizontal && rtl ? -target : target;\n let el = getTarget(target);\n let totalOffset = 0;\n while (el) {\n totalOffset += horizontal ? el.offsetLeft : el.offsetTop;\n el = el.offsetParent;\n }\n return totalOffset;\n}\nexport function createGoTo(options, locale) {\n return {\n rtl: locale.isRtl,\n options: mergeDeep(genDefaults(), options)\n };\n}\nexport async function scrollTo(_target, _options, horizontal, goTo) {\n const property = horizontal ? 'scrollLeft' : 'scrollTop';\n const options = mergeDeep(goTo?.options ?? genDefaults(), _options);\n const rtl = goTo?.rtl.value;\n const target = (typeof _target === 'number' ? _target : getTarget(_target)) ?? 0;\n const container = options.container === 'parent' && target instanceof HTMLElement ? target.parentElement : getContainer(options.container);\n const ease = PREFERS_REDUCED_MOTION() ? options.patterns.instant : typeof options.easing === 'function' ? options.easing : options.patterns[options.easing];\n if (!ease) throw new TypeError(`Easing function \"${options.easing}\" not found.`);\n let targetLocation;\n if (typeof target === 'number') {\n targetLocation = getOffset(target, horizontal, rtl);\n } else {\n targetLocation = getOffset(target, horizontal, rtl) - getOffset(container, horizontal, rtl);\n if (options.layout) {\n const styles = window.getComputedStyle(target);\n const layoutOffset = styles.getPropertyValue('--v-layout-top');\n if (layoutOffset) targetLocation -= parseInt(layoutOffset, 10);\n }\n }\n targetLocation += options.offset;\n targetLocation = clampTarget(container, targetLocation, !!rtl, !!horizontal);\n const startLocation = container[property] ?? 0;\n if (targetLocation === startLocation) return Promise.resolve(targetLocation);\n const startTime = performance.now();\n return new Promise(resolve => requestAnimationFrame(function step(currentTime) {\n const timeElapsed = currentTime - startTime;\n const progress = timeElapsed / options.duration;\n const location = Math.floor(startLocation + (targetLocation - startLocation) * ease(clamp(progress, 0, 1)));\n container[property] = location;\n\n // Allow for some jitter if target time has elapsed\n if (progress >= 1 && Math.abs(location - container[property]) < 10) {\n return resolve(targetLocation);\n } else if (progress > 2) {\n // The target might not be reachable\n consoleWarn('Scroll target is not reachable');\n return resolve(container[property]);\n }\n requestAnimationFrame(step);\n }));\n}\nexport function useGoTo() {\n let _options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const goToInstance = inject(GoToSymbol);\n const {\n isRtl\n } = useRtl();\n if (!goToInstance) throw new Error('[Vuetify] Could not find injected goto instance');\n const goTo = {\n ...goToInstance,\n // can be set via VLocaleProvider\n rtl: toRef(() => goToInstance.rtl.value || isRtl.value)\n };\n async function go(target, options) {\n return scrollTo(target, mergeDeep(_options, options), false, goTo);\n }\n go.horizontal = async (target, options) => {\n return scrollTo(target, mergeDeep(_options, options), true, goTo);\n };\n return go;\n}\n\n/**\n * Clamp target value to achieve a smooth scroll animation\n * when the value goes outside the scroll container size\n */\nfunction clampTarget(container, value, rtl, horizontal) {\n const {\n scrollWidth,\n scrollHeight\n } = container;\n const [containerWidth, containerHeight] = container === document.scrollingElement ? [window.innerWidth, window.innerHeight] : [container.offsetWidth, container.offsetHeight];\n let min;\n let max;\n if (horizontal) {\n if (rtl) {\n min = -(scrollWidth - containerWidth);\n max = 0;\n } else {\n min = 0;\n max = scrollWidth - containerWidth;\n }\n } else {\n min = 0;\n max = scrollHeight + -containerHeight;\n }\n return clamp(value, min, max);\n}\n//# sourceMappingURL=goto.js.map","// Utilities\nimport { onBeforeUpdate, ref } from 'vue';\n\n// Types\n\nexport function useRefs() {\n const refs = ref([]);\n onBeforeUpdate(() => refs.value = []);\n function updateRef(e, i) {\n refs.value[i] = e;\n }\n return {\n refs,\n updateRef\n };\n}\n//# sourceMappingURL=refs.js.map","import { mergeProps as _mergeProps, createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from \"vue\";\n// Styles\nimport \"./VPagination.css\";\n\n// Components\nimport { VBtn } from \"../VBtn/index.js\"; // Composables\nimport { useDisplay } from \"../../composables/index.js\";\nimport { makeBorderProps } from \"../../composables/border.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { provideDefaults } from \"../../composables/defaults.js\";\nimport { makeDensityProps } from \"../../composables/density.js\";\nimport { makeElevationProps } from \"../../composables/elevation.js\";\nimport { IconValue } from \"../../composables/icons.js\";\nimport { useLocale, useRtl } from \"../../composables/locale.js\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.js\";\nimport { useRefs } from \"../../composables/refs.js\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.js\";\nimport { makeRoundedProps } from \"../../composables/rounded.js\";\nimport { makeSizeProps } from \"../../composables/size.js\";\nimport { makeTagProps } from \"../../composables/tag.js\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.js\";\nimport { makeVariantProps } from \"../../composables/variant.js\"; // Utilities\nimport { computed, nextTick, shallowRef, toRef } from 'vue';\nimport { createRange, genericComponent, keyValues, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVPaginationProps = propsFactory({\n activeColor: String,\n start: {\n type: [Number, String],\n default: 1\n },\n modelValue: {\n type: Number,\n default: props => props.start\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: val => val % 1 === 0\n },\n totalVisible: [Number, String],\n firstIcon: {\n type: IconValue,\n default: '$first'\n },\n prevIcon: {\n type: IconValue,\n default: '$prev'\n },\n nextIcon: {\n type: IconValue,\n default: '$next'\n },\n lastIcon: {\n type: IconValue,\n default: '$last'\n },\n ariaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.root'\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page'\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage'\n },\n firstAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.first'\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous'\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next'\n },\n lastAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.last'\n },\n ellipsis: {\n type: String,\n default: '...'\n },\n showFirstLastPage: Boolean,\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'nav'\n }),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'text'\n })\n}, 'VPagination');\nexport const VPagination = genericComponent()({\n name: 'VPagination',\n props: makeVPaginationProps(),\n emits: {\n 'update:modelValue': value => true,\n first: value => true,\n prev: value => true,\n next: value => true,\n last: value => true\n },\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const page = useProxiedModel(props, 'modelValue');\n const {\n t,\n n\n } = useLocale();\n const {\n isRtl\n } = useRtl();\n const {\n themeClasses\n } = provideTheme(props);\n const {\n width\n } = useDisplay();\n const maxButtons = shallowRef(-1);\n provideDefaults(undefined, {\n scoped: true\n });\n const {\n resizeRef\n } = useResizeObserver(entries => {\n if (!entries.length) return;\n const {\n target,\n contentRect\n } = entries[0];\n const firstItem = target.querySelector('.v-pagination__list > *');\n if (!firstItem) return;\n const totalWidth = contentRect.width;\n const itemWidth = firstItem.offsetWidth + parseFloat(getComputedStyle(firstItem).marginRight) * 2;\n maxButtons.value = getMax(totalWidth, itemWidth);\n });\n const length = computed(() => parseInt(props.length, 10));\n const start = computed(() => parseInt(props.start, 10));\n const totalVisible = computed(() => {\n if (props.totalVisible != null) return parseInt(props.totalVisible, 10);else if (maxButtons.value >= 0) return maxButtons.value;\n return getMax(width.value, 58);\n });\n function getMax(totalWidth, itemWidth) {\n const minButtons = props.showFirstLastPage ? 5 : 3;\n return Math.max(0, Math.floor(\n // Round to two decimal places to avoid floating point errors\n Number(((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2))));\n }\n const range = computed(() => {\n if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return [];\n if (totalVisible.value <= 0) return [];else if (totalVisible.value === 1) return [page.value];\n if (length.value <= totalVisible.value) {\n return createRange(length.value, start.value);\n }\n const even = totalVisible.value % 2 === 0;\n const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2);\n const left = even ? middle : middle + 1;\n const right = length.value - middle;\n if (left - page.value >= 0) {\n return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value];\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1;\n const rangeStart = length.value - rangeLength + start.value;\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)];\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 2);\n const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value;\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value];\n }\n });\n\n // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?\n function setValue(e, value, event) {\n e.preventDefault();\n page.value = value;\n event && emit(event, value);\n }\n const {\n refs,\n updateRef\n } = useRefs();\n provideDefaults({\n VPaginationBtn: {\n color: toRef(() => props.color),\n border: toRef(() => props.border),\n density: toRef(() => props.density),\n size: toRef(() => props.size),\n variant: toRef(() => props.variant),\n rounded: toRef(() => props.rounded),\n elevation: toRef(() => props.elevation)\n }\n });\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = e => updateRef(e, index);\n if (typeof item === 'string') {\n return {\n isActive: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n icon: true,\n disabled: true\n }\n };\n } else {\n const isActive = item === page.value;\n return {\n isActive,\n key: item,\n page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || Number(props.length) < 2,\n color: isActive ? props.activeColor : props.color,\n 'aria-current': isActive,\n 'aria-label': t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),\n onClick: e => setValue(e, item)\n }\n };\n }\n });\n });\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value;\n const nextDisabled = !!props.disabled || page.value >= start.value + length.value - 1;\n return {\n first: props.showFirstLastPage ? {\n icon: isRtl.value ? props.lastIcon : props.firstIcon,\n onClick: e => setValue(e, start.value, 'first'),\n disabled: prevDisabled,\n 'aria-label': t(props.firstAriaLabel),\n 'aria-disabled': prevDisabled\n } : undefined,\n prev: {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n onClick: e => setValue(e, page.value - 1, 'prev'),\n disabled: prevDisabled,\n 'aria-label': t(props.previousAriaLabel),\n 'aria-disabled': prevDisabled\n },\n next: {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n onClick: e => setValue(e, page.value + 1, 'next'),\n disabled: nextDisabled,\n 'aria-label': t(props.nextAriaLabel),\n 'aria-disabled': nextDisabled\n },\n last: props.showFirstLastPage ? {\n icon: isRtl.value ? props.firstIcon : props.lastIcon,\n onClick: e => setValue(e, start.value + length.value - 1, 'last'),\n disabled: nextDisabled,\n 'aria-label': t(props.lastAriaLabel),\n 'aria-disabled': nextDisabled\n } : undefined\n };\n });\n function updateFocus() {\n const currentIndex = page.value - start.value;\n refs.value[currentIndex]?.$el.focus();\n }\n function onKeydown(e) {\n if (e.key === keyValues.left && !props.disabled && page.value > Number(props.start)) {\n page.value = page.value - 1;\n nextTick(updateFocus);\n } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {\n page.value = page.value + 1;\n nextTick(updateFocus);\n }\n }\n useRender(() => _createVNode(props.tag, {\n \"ref\": resizeRef,\n \"class\": _normalizeClass(['v-pagination', themeClasses.value, props.class]),\n \"style\": _normalizeStyle(props.style),\n \"role\": \"navigation\",\n \"aria-label\": t(props.ariaLabel),\n \"onKeydown\": onKeydown,\n \"data-test\": \"v-pagination-root\"\n }, {\n default: () => [_createElementVNode(\"ul\", {\n \"class\": \"v-pagination__list\"\n }, [props.showFirstLastPage && _createElementVNode(\"li\", {\n \"key\": \"first\",\n \"class\": \"v-pagination__first\",\n \"data-test\": \"v-pagination-first\"\n }, [slots.first ? slots.first(controls.value.first) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, controls.value.first), null)]), _createElementVNode(\"li\", {\n \"key\": \"prev\",\n \"class\": \"v-pagination__prev\",\n \"data-test\": \"v-pagination-prev\"\n }, [slots.prev ? slots.prev(controls.value.prev) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, controls.value.prev), null)]), items.value.map((item, index) => _createElementVNode(\"li\", {\n \"key\": item.key,\n \"class\": _normalizeClass(['v-pagination__item', {\n 'v-pagination__item--is-active': item.isActive\n }]),\n \"data-test\": \"v-pagination-item\"\n }, [slots.item ? slots.item(item) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, item.props), {\n default: () => [item.page]\n })])), _createElementVNode(\"li\", {\n \"key\": \"next\",\n \"class\": \"v-pagination__next\",\n \"data-test\": \"v-pagination-next\"\n }, [slots.next ? slots.next(controls.value.next) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, controls.value.next), null)]), props.showFirstLastPage && _createElementVNode(\"li\", {\n \"key\": \"last\",\n \"class\": \"v-pagination__last\",\n \"data-test\": \"v-pagination-last\"\n }, [slots.last ? slots.last(controls.value.last) : _createVNode(VBtn, _mergeProps({\n \"_as\": \"VPaginationBtn\"\n }, controls.value.last), null)])])]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VPagination.js.map","import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode } from \"vue\";\n// Styles\nimport \"./VLabel.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeThemeProps } from \"../../composables/theme.js\"; // Utilities\nimport { EventProp, genericComponent, propsFactory, useRender } from \"../../util/index.js\";\nexport const makeVLabelProps = propsFactory({\n text: String,\n onClick: EventProp(),\n ...makeComponentProps(),\n ...makeThemeProps()\n}, 'VLabel');\nexport const VLabel = genericComponent()({\n name: 'VLabel',\n props: makeVLabelProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createElementVNode(\"label\", {\n \"class\": _normalizeClass(['v-label', {\n 'v-label--clickable': !!props.onClick\n }, props.class]),\n \"style\": _normalizeStyle(props.style),\n \"onClick\": props.onClick\n }, [props.text, slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VLabel.js.map","import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode } from \"vue\";\n// Styles\nimport \"./VSelectionControlGroup.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { provideDefaults } from \"../../composables/defaults.js\";\nimport { makeDensityProps } from \"../../composables/density.js\";\nimport { IconValue } from \"../../composables/icons.js\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.js\";\nimport { makeThemeProps } from \"../../composables/theme.js\"; // Utilities\nimport { onScopeDispose, provide, toRef, useId } from 'vue';\nimport { deepEqual, genericComponent, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const VSelectionControlGroupSymbol = Symbol.for('vuetify:selection-control-group');\nexport const makeSelectionControlGroupProps = propsFactory({\n color: String,\n disabled: {\n type: Boolean,\n default: null\n },\n defaultsTarget: String,\n error: Boolean,\n id: String,\n inline: Boolean,\n falseIcon: IconValue,\n trueIcon: IconValue,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n multiple: {\n type: Boolean,\n default: null\n },\n name: String,\n readonly: {\n type: Boolean,\n default: null\n },\n modelValue: null,\n type: String,\n valueComparator: {\n type: Function,\n default: deepEqual\n },\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeThemeProps()\n}, 'SelectionControlGroup');\nexport const makeVSelectionControlGroupProps = propsFactory({\n ...makeSelectionControlGroupProps({\n defaultsTarget: 'VSelectionControl'\n })\n}, 'VSelectionControlGroup');\nexport const VSelectionControlGroup = genericComponent()({\n name: 'VSelectionControlGroup',\n props: makeVSelectionControlGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const modelValue = useProxiedModel(props, 'modelValue');\n const uid = useId();\n const id = toRef(() => props.id || `v-selection-control-group-${uid}`);\n const name = toRef(() => props.name || id.value);\n const updateHandlers = new Set();\n provide(VSelectionControlGroupSymbol, {\n modelValue,\n forceUpdate: () => {\n updateHandlers.forEach(fn => fn());\n },\n onForceUpdate: cb => {\n updateHandlers.add(cb);\n onScopeDispose(() => {\n updateHandlers.delete(cb);\n });\n }\n });\n provideDefaults({\n [props.defaultsTarget]: {\n color: toRef(() => props.color),\n disabled: toRef(() => props.disabled),\n density: toRef(() => props.density),\n error: toRef(() => props.error),\n inline: toRef(() => props.inline),\n modelValue,\n multiple: toRef(() => !!props.multiple || props.multiple == null && Array.isArray(modelValue.value)),\n name,\n falseIcon: toRef(() => props.falseIcon),\n trueIcon: toRef(() => props.trueIcon),\n readonly: toRef(() => props.readonly),\n ripple: toRef(() => props.ripple),\n type: toRef(() => props.type),\n valueComparator: toRef(() => props.valueComparator)\n }\n });\n useRender(() => _createElementVNode(\"div\", {\n \"class\": _normalizeClass(['v-selection-control-group', {\n 'v-selection-control-group--inline': props.inline\n }, props.class]),\n \"style\": _normalizeStyle(props.style),\n \"role\": props.type === 'radio' ? 'radiogroup' : undefined\n }, [slots.default?.()]));\n return {};\n }\n});\n//# sourceMappingURL=VSelectionControlGroup.js.map","import { mergeProps as _mergeProps, createElementVNode as _createElementVNode, Fragment as _Fragment, createVNode as _createVNode, normalizeClass as _normalizeClass, withDirectives as _withDirectives, normalizeStyle as _normalizeStyle } from \"vue\";\n// Styles\nimport \"./VSelectionControl.css\";\n\n// Components\nimport { VIcon } from \"../VIcon/index.js\";\nimport { VLabel } from \"../VLabel/index.js\";\nimport { makeSelectionControlGroupProps, VSelectionControlGroupSymbol } from \"../VSelectionControlGroup/VSelectionControlGroup.js\"; // Composables\nimport { useBackgroundColor, useTextColor } from \"../../composables/color.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { useDensity } from \"../../composables/density.js\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.js\"; // Directives\nimport vRipple from \"../../directives/ripple/index.js\"; // Utilities\nimport { computed, inject, nextTick, ref, shallowRef, toRef, useId } from 'vue';\nimport { filterInputAttrs, genericComponent, matchesSelector, propsFactory, useRender, wrapInArray } from \"../../util/index.js\"; // Types\nexport const makeVSelectionControlProps = propsFactory({\n label: String,\n baseColor: String,\n trueValue: null,\n falseValue: null,\n value: null,\n ...makeComponentProps(),\n ...makeSelectionControlGroupProps()\n}, 'VSelectionControl');\nexport function useSelectionControl(props) {\n const group = inject(VSelectionControlGroupSymbol, undefined);\n const {\n densityClasses\n } = useDensity(props);\n const modelValue = useProxiedModel(props, 'modelValue');\n const trueValue = computed(() => props.trueValue !== undefined ? props.trueValue : props.value !== undefined ? props.value : true);\n const falseValue = computed(() => props.falseValue !== undefined ? props.falseValue : false);\n const isMultiple = computed(() => !!props.multiple || props.multiple == null && Array.isArray(modelValue.value));\n const model = computed({\n get() {\n const val = group ? group.modelValue.value : modelValue.value;\n return isMultiple.value ? wrapInArray(val).some(v => props.valueComparator(v, trueValue.value)) : props.valueComparator(val, trueValue.value);\n },\n set(val) {\n if (props.readonly) return;\n const currentValue = val ? trueValue.value : falseValue.value;\n let newVal = currentValue;\n if (isMultiple.value) {\n newVal = val ? [...wrapInArray(modelValue.value), currentValue] : wrapInArray(modelValue.value).filter(item => !props.valueComparator(item, trueValue.value));\n }\n if (group) {\n group.modelValue.value = newVal;\n } else {\n modelValue.value = newVal;\n }\n }\n });\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(() => {\n if (props.error || props.disabled) return undefined;\n return model.value ? props.color : props.baseColor;\n });\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(() => {\n return model.value && !props.error && !props.disabled ? props.color : props.baseColor;\n });\n const icon = computed(() => model.value ? props.trueIcon : props.falseIcon);\n return {\n group,\n densityClasses,\n trueValue,\n falseValue,\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n icon\n };\n}\nexport const VSelectionControl = genericComponent()({\n name: 'VSelectionControl',\n directives: {\n vRipple\n },\n inheritAttrs: false,\n props: makeVSelectionControlProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n group,\n densityClasses,\n icon,\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n trueValue\n } = useSelectionControl(props);\n const uid = useId();\n const isFocused = shallowRef(false);\n const isFocusVisible = shallowRef(false);\n const input = ref();\n const id = toRef(() => props.id || `input-${uid}`);\n const isInteractive = toRef(() => !props.disabled && !props.readonly);\n group?.onForceUpdate(() => {\n if (input.value) {\n input.value.checked = model.value;\n }\n });\n function onFocus(e) {\n if (!isInteractive.value) return;\n isFocused.value = true;\n if (matchesSelector(e.target, ':focus-visible') !== false) {\n isFocusVisible.value = true;\n }\n }\n function onBlur() {\n isFocused.value = false;\n isFocusVisible.value = false;\n }\n function onClickLabel(e) {\n e.stopPropagation();\n }\n function onInput(e) {\n if (!isInteractive.value) {\n if (input.value) {\n // model value is not updated when input is not interactive\n // but the internal checked state of the input is still updated,\n // so here it's value is restored\n input.value.checked = model.value;\n }\n return;\n }\n if (props.readonly && group) {\n nextTick(() => group.forceUpdate());\n }\n model.value = e.target.checked;\n }\n useRender(() => {\n const label = slots.label ? slots.label({\n label: props.label,\n props: {\n for: id.value\n }\n }) : props.label;\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);\n const inputNode = _createElementVNode(\"input\", _mergeProps({\n \"ref\": input,\n \"checked\": model.value,\n \"disabled\": !!props.disabled,\n \"id\": id.value,\n \"onBlur\": onBlur,\n \"onFocus\": onFocus,\n \"onInput\": onInput,\n \"aria-disabled\": !!props.disabled,\n \"aria-label\": props.label,\n \"type\": props.type,\n \"value\": trueValue.value,\n \"name\": props.name,\n \"aria-checked\": props.type === 'checkbox' ? model.value : undefined\n }, inputAttrs), null);\n return _createElementVNode(\"div\", _mergeProps({\n \"class\": ['v-selection-control', {\n 'v-selection-control--dirty': model.value,\n 'v-selection-control--disabled': props.disabled,\n 'v-selection-control--error': props.error,\n 'v-selection-control--focused': isFocused.value,\n 'v-selection-control--focus-visible': isFocusVisible.value,\n 'v-selection-control--inline': props.inline\n }, densityClasses.value, props.class]\n }, rootAttrs, {\n \"style\": props.style\n }), [_createElementVNode(\"div\", {\n \"class\": _normalizeClass(['v-selection-control__wrapper', textColorClasses.value]),\n \"style\": _normalizeStyle(textColorStyles.value)\n }, [slots.default?.({\n backgroundColorClasses,\n backgroundColorStyles\n }), _withDirectives(_createElementVNode(\"div\", {\n \"class\": _normalizeClass(['v-selection-control__input'])\n }, [slots.input?.({\n model,\n textColorClasses,\n textColorStyles,\n backgroundColorClasses,\n backgroundColorStyles,\n inputNode,\n icon: icon.value,\n props: {\n onFocus,\n onBlur,\n id: id.value\n }\n }) ?? _createElementVNode(_Fragment, null, [icon.value && _createVNode(VIcon, {\n \"key\": \"icon\",\n \"icon\": icon.value\n }, null), inputNode])]), [[vRipple, !props.disabled && !props.readonly && props.ripple, null, {\n center: true,\n circle: true\n }]])]), label && _createVNode(VLabel, {\n \"for\": id.value,\n \"onClick\": onClickLabel\n }, {\n default: () => [label]\n })]);\n });\n return {\n isFocused,\n input\n };\n }\n});\n//# sourceMappingURL=VSelectionControl.js.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Components\nimport { makeVSelectionControlProps, VSelectionControl } from \"../VSelectionControl/VSelectionControl.js\"; // Composables\nimport { IconValue } from \"../../composables/icons.js\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.js\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, omit, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVCheckboxBtnProps = propsFactory({\n indeterminate: Boolean,\n indeterminateIcon: {\n type: IconValue,\n default: '$checkboxIndeterminate'\n },\n ...makeVSelectionControlProps({\n falseIcon: '$checkboxOff',\n trueIcon: '$checkboxOn'\n })\n}, 'VCheckboxBtn');\nexport const VCheckboxBtn = genericComponent()({\n name: 'VCheckboxBtn',\n props: makeVCheckboxBtnProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:indeterminate': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const indeterminate = useProxiedModel(props, 'indeterminate');\n const model = useProxiedModel(props, 'modelValue');\n function onChange(v) {\n if (indeterminate.value) {\n indeterminate.value = false;\n }\n }\n const falseIcon = toRef(() => {\n return indeterminate.value ? props.indeterminateIcon : props.falseIcon;\n });\n const trueIcon = toRef(() => {\n return indeterminate.value ? props.indeterminateIcon : props.trueIcon;\n });\n useRender(() => {\n const controlProps = omit(VSelectionControl.filterProps(props), ['modelValue']);\n return _createVNode(VSelectionControl, _mergeProps(controlProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": [$event => model.value = $event, onChange],\n \"class\": ['v-checkbox-btn', props.class],\n \"style\": props.style,\n \"type\": \"checkbox\",\n \"falseIcon\": falseIcon.value,\n \"trueIcon\": trueIcon.value,\n \"aria-checked\": indeterminate.value ? 'mixed' : undefined\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VCheckboxBtn.js.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VIcon } from \"../VIcon/index.js\"; // Composables\nimport { useLocale } from \"../../composables/locale.js\"; // Utilities\nimport { callEvent } from \"../../util/index.js\"; // Types\nexport function useInputIcon(props) {\n const {\n t\n } = useLocale();\n function InputIcon(_ref) {\n let {\n name,\n color,\n ...attrs\n } = _ref;\n const localeKey = {\n prepend: 'prependAction',\n prependInner: 'prependAction',\n append: 'appendAction',\n appendInner: 'appendAction',\n clear: 'clear'\n }[name];\n const listener = props[`onClick:${name}`];\n function onKeydown(e) {\n if (e.key !== 'Enter' && e.key !== ' ') return;\n e.preventDefault();\n e.stopPropagation();\n callEvent(listener, new PointerEvent('click', e));\n }\n const label = listener && localeKey ? t(`$vuetify.input.${localeKey}`, props.label ?? '') : undefined;\n return _createVNode(VIcon, _mergeProps({\n \"icon\": props[`${name}Icon`],\n \"aria-label\": label,\n \"onClick\": listener,\n \"onKeydown\": onKeydown,\n \"color\": color\n }, attrs), null);\n }\n return {\n InputIcon\n };\n}\n//# sourceMappingURL=InputIcon.js.map","import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VMessages.css\";\n\n// Components\nimport { VSlideYTransition } from \"../transitions/index.js\"; // Composables\nimport { useTextColor } from \"../../composables/color.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.js\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender, wrapInArray } from \"../../util/index.js\"; // Types\nexport const makeVMessagesProps = propsFactory({\n active: Boolean,\n color: String,\n messages: {\n type: [Array, String],\n default: () => []\n },\n ...makeComponentProps(),\n ...makeTransitionProps({\n transition: {\n component: VSlideYTransition,\n leaveAbsolute: true,\n group: true\n }\n })\n}, 'VMessages');\nexport const VMessages = genericComponent()({\n name: 'VMessages',\n props: makeVMessagesProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const messages = computed(() => wrapInArray(props.messages));\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(() => props.color);\n useRender(() => _createVNode(MaybeTransition, {\n \"transition\": props.transition,\n \"tag\": \"div\",\n \"class\": _normalizeClass(['v-messages', textColorClasses.value, props.class]),\n \"style\": _normalizeStyle([textColorStyles.value, props.style])\n }, {\n default: () => [props.active && messages.value.map((message, i) => _createElementVNode(\"div\", {\n \"class\": \"v-messages__message\",\n \"key\": `${i}-${messages.value}`\n }, [slots.message ? slots.message({\n message\n }) : message]))]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VMessages.js.map","// Composables\nimport { useProxiedModel } from \"./proxiedModel.js\"; // Utilities\nimport { toRef } from 'vue';\nimport { EventProp, getCurrentInstanceName, propsFactory } from \"../util/index.js\"; // Types\n// Composables\nexport const makeFocusProps = propsFactory({\n focused: Boolean,\n 'onUpdate:focused': EventProp()\n}, 'focus');\nexport function useFocus(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n const isFocused = useProxiedModel(props, 'focused');\n const focusClasses = toRef(() => {\n return {\n [`${name}--focused`]: isFocused.value\n };\n });\n function focus() {\n isFocused.value = true;\n }\n function blur() {\n isFocused.value = false;\n }\n return {\n focusClasses,\n isFocused,\n focus,\n blur\n };\n}\n//# sourceMappingURL=focus.js.map","// Composables\nimport { useProxiedModel } from \"./proxiedModel.js\"; // Utilities\nimport { computed, inject, markRaw, provide, ref, shallowRef, toRef, watch } from 'vue';\nimport { consoleWarn, propsFactory } from \"../util/index.js\"; // Types\nexport const FormKey = Symbol.for('vuetify:form');\nexport const makeFormProps = propsFactory({\n disabled: Boolean,\n fastFail: Boolean,\n readonly: Boolean,\n modelValue: {\n type: Boolean,\n default: null\n },\n validateOn: {\n type: String,\n default: 'input'\n }\n}, 'form');\nexport function createForm(props) {\n const model = useProxiedModel(props, 'modelValue');\n const isDisabled = toRef(() => props.disabled);\n const isReadonly = toRef(() => props.readonly);\n const isValidating = shallowRef(false);\n const items = ref([]);\n const errors = ref([]);\n async function validate() {\n const results = [];\n let valid = true;\n errors.value = [];\n isValidating.value = true;\n for (const item of items.value) {\n const itemErrorMessages = await item.validate();\n if (itemErrorMessages.length > 0) {\n valid = false;\n results.push({\n id: item.id,\n errorMessages: itemErrorMessages\n });\n }\n if (!valid && props.fastFail) break;\n }\n errors.value = results;\n isValidating.value = false;\n return {\n valid,\n errors: errors.value\n };\n }\n function reset() {\n items.value.forEach(item => item.reset());\n }\n function resetValidation() {\n items.value.forEach(item => item.resetValidation());\n }\n watch(items, () => {\n let valid = 0;\n let invalid = 0;\n const results = [];\n for (const item of items.value) {\n if (item.isValid === false) {\n invalid++;\n results.push({\n id: item.id,\n errorMessages: item.errorMessages\n });\n } else if (item.isValid === true) valid++;\n }\n errors.value = results;\n model.value = invalid > 0 ? false : valid === items.value.length ? true : null;\n }, {\n deep: true,\n flush: 'post'\n });\n provide(FormKey, {\n register: _ref => {\n let {\n id,\n vm,\n validate,\n reset,\n resetValidation\n } = _ref;\n if (items.value.some(item => item.id === id)) {\n consoleWarn(`Duplicate input name \"${id}\"`);\n }\n items.value.push({\n id,\n validate,\n reset,\n resetValidation,\n vm: markRaw(vm),\n isValid: null,\n errorMessages: []\n });\n },\n unregister: id => {\n items.value = items.value.filter(item => {\n return item.id !== id;\n });\n },\n update: (id, isValid, errorMessages) => {\n const found = items.value.find(item => item.id === id);\n if (!found) return;\n found.isValid = isValid;\n found.errorMessages = errorMessages;\n },\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validateOn: toRef(() => props.validateOn)\n });\n return {\n errors,\n isDisabled,\n isReadonly,\n isValidating,\n isValid: model,\n items,\n validate,\n reset,\n resetValidation\n };\n}\nexport function useForm(props) {\n const form = inject(FormKey, null);\n return {\n ...form,\n isReadonly: computed(() => !!(props?.readonly ?? form?.isReadonly.value)),\n isDisabled: computed(() => !!(props?.disabled ?? form?.isDisabled.value))\n };\n}\n//# sourceMappingURL=form.js.map","// Utilities\nimport { computed, inject, toRef } from 'vue';\n\n// Types\n\nexport function createRules(options, locale) {\n const {\n t\n } = locale;\n const aliases = {\n required: err => {\n return v => {\n // If the modifier .number is used, the 0 will be a number and it's a falsy value so we need to check for it\n return v === 0 || !!v || t(err || '$vuetify.rules.required');\n };\n },\n email: err => {\n return v => !v || typeof v === 'string' && /^.+@\\S+\\.\\S+$/.test(v) || t(err || '$vuetify.rules.email');\n },\n number: err => {\n return v => !v || !isNaN(Number(v)) || t(err || '$vuetify.rules.number');\n },\n integer: err => {\n return v => /^[\\d]*$/.test(v) || t(err || '$vuetify.rules.integer');\n },\n capital: err => {\n return v => /^[A-Z]*$/.test(v) || t(err || '$vuetify.rules.capital');\n },\n maxLength: (len, err) => {\n return v => !v || v.length <= len || t(err || '$vuetify.rules.maxLength', len);\n },\n minLength: (len, err) => {\n return v => !v || v.length >= len || t(err || '$vuetify.rules.minLength', len);\n },\n strictLength: (len, err) => {\n return v => !v || v.length === len || t(err || '$vuetify.rules.strictLength', len);\n },\n exclude: (forbiddenCharacters, err) => {\n return v => {\n let error = true;\n for (const character of forbiddenCharacters) {\n if (v.includes(character)) error = err || t('$vuetify.rules.exclude', character);\n }\n return error;\n };\n },\n notEmpty: err => {\n return v => v && v.length > 0 || t(err || '$vuetify.rules.notEmpty');\n },\n pattern: (pattern, err) => {\n return v => !v || pattern.test(v) || t(err || '$vuetify.rules.pattern');\n },\n ...options?.aliases\n };\n function resolve(fn) {\n return computed(() => fn().map(rule => {\n let ruleName = null;\n let ruleParams = [undefined];\n if (Array.isArray(rule)) {\n ruleName = rule[0];\n ruleParams = rule.slice(1);\n } else if (typeof rule === 'string') {\n ruleName = rule;\n }\n if (ruleName !== null) {\n if (ruleName.startsWith('$')) {\n ruleName = ruleName.slice(1);\n }\n return aliases[ruleName]?.(...ruleParams);\n } else {\n return rule;\n }\n }));\n }\n return {\n resolve,\n aliases\n };\n}\nexport const RulesSymbol = Symbol.for('vuetify:rules');\nexport function useRules(fn) {\n const rules = inject(RulesSymbol, null);\n if (!fn) {\n if (!rules) {\n throw new Error('Could not find Vuetify rules injection');\n }\n return rules.aliases;\n }\n return rules?.resolve(fn) ?? toRef(fn);\n}\n//# sourceMappingURL=rules.js.map","// Composables\nimport { makeFocusProps } from \"./focus.js\";\nimport { useForm } from \"./form.js\";\nimport { useProxiedModel } from \"./proxiedModel.js\";\nimport { useToggleScope } from \"./toggleScope.js\";\nimport { useRules } from \"../labs/rules/index.js\"; // Utilities\nimport { computed, nextTick, onBeforeMount, onBeforeUnmount, onMounted, ref, shallowRef, unref, useId, watch } from 'vue';\nimport { getCurrentInstance, getCurrentInstanceName, propsFactory, wrapInArray } from \"../util/index.js\"; // Types\nexport const makeValidationProps = propsFactory({\n disabled: {\n type: Boolean,\n default: null\n },\n error: Boolean,\n errorMessages: {\n type: [Array, String],\n default: () => []\n },\n maxErrors: {\n type: [Number, String],\n default: 1\n },\n name: String,\n label: String,\n readonly: {\n type: Boolean,\n default: null\n },\n rules: {\n type: Array,\n default: () => []\n },\n modelValue: null,\n validateOn: String,\n validationValue: null,\n ...makeFocusProps()\n}, 'validation');\nexport function useValidation(props) {\n let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();\n let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : useId();\n const model = useProxiedModel(props, 'modelValue');\n const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue);\n const form = useForm(props);\n const rules = useRules(() => props.rules);\n const internalErrorMessages = ref([]);\n const isPristine = shallowRef(true);\n const isDirty = computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));\n const errorMessages = computed(() => {\n return props.errorMessages?.length ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, Number(props.maxErrors))) : internalErrorMessages.value;\n });\n const validateOn = computed(() => {\n let value = (props.validateOn ?? form.validateOn?.value) || 'input';\n if (value === 'lazy') value = 'input lazy';\n if (value === 'eager') value = 'input eager';\n const set = new Set(value?.split(' ') ?? []);\n return {\n input: set.has('input'),\n blur: set.has('blur') || set.has('input') || set.has('invalid-input'),\n invalidInput: set.has('invalid-input'),\n lazy: set.has('lazy'),\n eager: set.has('eager')\n };\n });\n const isValid = computed(() => {\n if (props.error || props.errorMessages?.length) return false;\n if (!props.rules.length) return true;\n if (isPristine.value) {\n return internalErrorMessages.value.length || validateOn.value.lazy ? null : true;\n } else {\n return !internalErrorMessages.value.length;\n }\n });\n const isValidating = shallowRef(false);\n const validationClasses = computed(() => {\n return {\n [`${name}--error`]: isValid.value === false,\n [`${name}--dirty`]: isDirty.value,\n [`${name}--disabled`]: form.isDisabled.value,\n [`${name}--readonly`]: form.isReadonly.value\n };\n });\n const vm = getCurrentInstance('validation');\n const uid = computed(() => props.name ?? unref(id));\n onBeforeMount(() => {\n form.register?.({\n id: uid.value,\n vm,\n validate,\n reset,\n resetValidation\n });\n });\n onBeforeUnmount(() => {\n form.unregister?.(uid.value);\n });\n onMounted(async () => {\n if (!validateOn.value.lazy) {\n await validate(!validateOn.value.eager);\n }\n form.update?.(uid.value, isValid.value, errorMessages.value);\n });\n useToggleScope(() => validateOn.value.input || validateOn.value.invalidInput && isValid.value === false, () => {\n watch(validationModel, () => {\n if (validationModel.value != null) {\n validate();\n } else if (props.focused) {\n const unwatch = watch(() => props.focused, val => {\n if (!val) validate();\n unwatch();\n });\n }\n });\n });\n useToggleScope(() => validateOn.value.blur, () => {\n watch(() => props.focused, val => {\n if (!val) validate();\n });\n });\n watch([isValid, errorMessages], () => {\n form.update?.(uid.value, isValid.value, errorMessages.value);\n });\n async function reset() {\n model.value = null;\n await nextTick();\n await resetValidation();\n }\n async function resetValidation() {\n isPristine.value = true;\n if (!validateOn.value.lazy) {\n await validate(!validateOn.value.eager);\n } else {\n internalErrorMessages.value = [];\n }\n }\n async function validate() {\n let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n const results = [];\n isValidating.value = true;\n for (const rule of rules.value) {\n if (results.length >= Number(props.maxErrors ?? 1)) {\n break;\n }\n const handler = typeof rule === 'function' ? rule : () => rule;\n const result = await handler(validationModel.value);\n if (result === true) continue;\n if (result !== false && typeof result !== 'string') {\n // eslint-disable-next-line no-console\n console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`);\n continue;\n }\n results.push(result || '');\n }\n internalErrorMessages.value = results;\n isValidating.value = false;\n isPristine.value = silent;\n return internalErrorMessages.value;\n }\n return {\n errorMessages,\n isDirty,\n isDisabled: form.isDisabled,\n isReadonly: form.isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses\n };\n}\n//# sourceMappingURL=validation.js.map","import { createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from \"vue\";\n// Styles\nimport \"./VInput.css\";\n\n// Components\nimport { useInputIcon } from \"./InputIcon.js\";\nimport { VMessages } from \"../VMessages/VMessages.js\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.js\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.js\";\nimport { IconValue } from \"../../composables/icons.js\";\nimport { useRtl } from \"../../composables/locale.js\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.js\";\nimport { makeValidationProps, useValidation } from \"../../composables/validation.js\"; // Utilities\nimport { computed, toRef, useId } from 'vue';\nimport { EventProp, genericComponent, pick, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: IconValue,\n baseColor: String,\n centerAffix: {\n type: Boolean,\n default: true\n },\n color: String,\n glow: Boolean,\n iconColor: [Boolean, String],\n prependIcon: IconValue,\n hideDetails: [Boolean, String],\n hideSpinButtons: Boolean,\n hint: String,\n persistentHint: Boolean,\n messages: {\n type: [Array, String],\n default: () => []\n },\n direction: {\n type: String,\n default: 'horizontal',\n validator: v => ['horizontal', 'vertical'].includes(v)\n },\n 'onClick:prepend': EventProp(),\n 'onClick:append': EventProp(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...pick(makeDimensionProps(), ['maxWidth', 'minWidth', 'width']),\n ...makeThemeProps(),\n ...makeValidationProps()\n}, 'VInput');\nexport const VInput = genericComponent()({\n name: 'VInput',\n props: {\n ...makeVInputProps()\n },\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots,\n emit\n } = _ref;\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n themeClasses\n } = provideTheme(props);\n const {\n rtlClasses\n } = useRtl();\n const {\n InputIcon\n } = useInputIcon(props);\n const uid = useId();\n const id = computed(() => props.id || `input-${uid}`);\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses\n } = useValidation(props, 'v-input', id);\n const messages = computed(() => {\n if (props.errorMessages?.length || !isPristine.value && errorMessages.value.length) {\n return errorMessages.value;\n } else if (props.hint && (props.persistentHint || props.focused)) {\n return props.hint;\n } else {\n return props.messages;\n }\n });\n const hasMessages = toRef(() => messages.value.length > 0);\n const hasDetails = toRef(() => !props.hideDetails || props.hideDetails === 'auto' && (hasMessages.value || !!slots.details));\n const messagesId = computed(() => hasDetails.value ? `${id.value}-messages` : undefined);\n const slotProps = computed(() => ({\n id,\n messagesId,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n hasDetails,\n reset,\n resetValidation,\n validate\n }));\n const color = toRef(() => {\n return props.error || props.disabled ? undefined : props.focused ? props.color : props.baseColor;\n });\n const iconColor = toRef(() => {\n if (!props.iconColor) return undefined;\n return props.iconColor === true ? color.value : props.iconColor;\n });\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon);\n const hasAppend = !!(slots.append || props.appendIcon);\n return _createElementVNode(\"div\", {\n \"class\": _normalizeClass(['v-input', `v-input--${props.direction}`, {\n 'v-input--center-affix': props.centerAffix,\n 'v-input--focused': props.focused,\n 'v-input--glow': props.glow,\n 'v-input--hide-spin-buttons': props.hideSpinButtons\n }, densityClasses.value, themeClasses.value, rtlClasses.value, validationClasses.value, props.class]),\n \"style\": _normalizeStyle([dimensionStyles.value, props.style])\n }, [hasPrepend && _createElementVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-input__prepend\"\n }, [slots.prepend?.(slotProps.value), props.prependIcon && _createVNode(InputIcon, {\n \"key\": \"prepend-icon\",\n \"name\": \"prepend\",\n \"color\": iconColor.value\n }, null)]), slots.default && _createElementVNode(\"div\", {\n \"class\": \"v-input__control\"\n }, [slots.default?.(slotProps.value)]), hasAppend && _createElementVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-input__append\"\n }, [props.appendIcon && _createVNode(InputIcon, {\n \"key\": \"append-icon\",\n \"name\": \"append\",\n \"color\": iconColor.value\n }, null), slots.append?.(slotProps.value)]), hasDetails.value && _createElementVNode(\"div\", {\n \"id\": messagesId.value,\n \"class\": \"v-input__details\",\n \"role\": \"alert\",\n \"aria-live\": \"polite\"\n }, [_createVNode(VMessages, {\n \"active\": hasMessages.value,\n \"messages\": messages.value\n }, {\n message: slots.message\n }), slots.details?.(slotProps.value)])]);\n });\n return {\n reset,\n resetValidation,\n validate,\n isValid,\n errorMessages\n };\n }\n});\n//# sourceMappingURL=VInput.js.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.js.map","import { createVNode as _createVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle } from \"vue\";\n// Styles\nimport \"./VSlideGroup.css\";\n\n// Components\nimport { VFadeTransition } from \"../transitions/index.js\";\nimport { VIcon } from \"../VIcon/index.js\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.js\";\nimport { useGoTo } from \"../../composables/goto.js\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.js\";\nimport { IconValue } from \"../../composables/icons.js\";\nimport { useRtl } from \"../../composables/locale.js\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.js\";\nimport { makeTagProps } from \"../../composables/tag.js\"; // Utilities\nimport { computed, shallowRef, watch } from 'vue';\nimport { calculateCenteredTarget, calculateUpdatedTarget, getClientSize, getOffsetSize, getScrollPosition, getScrollSize } from \"./helpers.js\";\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const VSlideGroupSymbol = Symbol.for('vuetify:v-slide-group');\nexport const makeVSlideGroupProps = propsFactory({\n centerActive: Boolean,\n scrollToActive: {\n type: Boolean,\n default: true\n },\n contentClass: null,\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 (props.scrollToActive && 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 getSiblingElement(el, location) {\n if (!el) return undefined;\n let sibling = el;\n do {\n sibling = sibling?.[location === 'next' ? 'nextElementSibling' : 'previousElementSibling'];\n } while (sibling?.hasAttribute('disabled'));\n return sibling;\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 = getSiblingElement(contentRef.el.querySelector(':focus'), location);\n if (!el) return focus('first');\n } else if (location === 'prev') {\n el = getSiblingElement(contentRef.el.querySelector(':focus'), location);\n if (!el) return focus('last');\n } else if (location === 'first') {\n el = contentRef.el.firstElementChild;\n if (el?.hasAttribute('disabled')) el = getSiblingElement(el, 'next');\n } else if (location === 'last') {\n el = contentRef.el.lastElementChild;\n if (el?.hasAttribute('disabled')) el = getSiblingElement(el, 'prev');\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 hasOverflowOrScroll = computed(() => isOverflowing.value || Math.abs(scrollOffset.value) > 0);\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 hasOverflowOrScroll.value;\n\n // Always show on mobile\n case 'mobile':\n return mobile.value || hasOverflowOrScroll.value;\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default:\n return !mobile.value && hasOverflowOrScroll.value;\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 || !hasOverflowOrScroll.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\": _normalizeClass(['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\": _normalizeStyle(props.style),\n \"tabindex\": isFocused.value || group.selected.value.length ? -1 : 0,\n \"onFocus\": onFocus\n }, {\n default: () => [hasAffixes.value && _createElementVNode(\"div\", {\n \"key\": \"prev\",\n \"class\": _normalizeClass(['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 })]), _createElementVNode(\"div\", {\n \"key\": \"container\",\n \"ref\": containerRef,\n \"class\": _normalizeClass(['v-slide-group__container', props.contentClass]),\n \"onScroll\": onScroll\n }, [_createElementVNode(\"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 && _createElementVNode(\"div\", {\n \"key\": \"next\",\n \"class\": _normalizeClass(['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 hasPrev,\n hasNext\n };\n }\n});\n//# sourceMappingURL=VSlideGroup.js.map","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VChipGroup.css\";\n\n// Components\nimport { makeVSlideGroupProps, VSlideGroup } from \"../VSlideGroup/VSlideGroup.js\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { provideDefaults } from \"../../composables/defaults.js\";\nimport { makeGroupProps, useGroup } from \"../../composables/group.js\";\nimport { makeTagProps } from \"../../composables/tag.js\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.js\";\nimport { makeVariantProps } from \"../../composables/variant.js\"; // Utilities\nimport { toRef } from 'vue';\nimport { deepEqual, genericComponent, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group');\nexport const makeVChipGroupProps = propsFactory({\n baseColor: String,\n column: Boolean,\n filter: Boolean,\n valueComparator: {\n type: Function,\n default: deepEqual\n },\n ...makeVSlideGroupProps({\n scrollToActive: false\n }),\n ...makeComponentProps(),\n ...makeGroupProps({\n selectedClass: 'v-chip--selected'\n }),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'tonal'\n })\n}, 'VChipGroup');\nexport const VChipGroup = genericComponent()({\n name: 'VChipGroup',\n props: makeVChipGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n isSelected,\n select,\n next,\n prev,\n selected\n } = useGroup(props, VChipGroupSymbol);\n provideDefaults({\n VChip: {\n baseColor: toRef(() => props.baseColor),\n color: toRef(() => props.color),\n disabled: toRef(() => props.disabled),\n filter: toRef(() => props.filter),\n variant: toRef(() => props.variant)\n }\n });\n useRender(() => {\n const slideGroupProps = VSlideGroup.filterProps(props);\n return _createVNode(VSlideGroup, _mergeProps(slideGroupProps, {\n \"class\": ['v-chip-group', {\n 'v-chip-group--column': props.column\n }, themeClasses.value, props.class],\n \"style\": props.style\n }), {\n default: () => [slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value\n })]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VChipGroup.js.map","import { createVNode as _createVNode, vShow as _vShow, createElementVNode as _createElementVNode, withDirectives as _withDirectives, Fragment as _Fragment, mergeProps as _mergeProps } from \"vue\";\n/* eslint-disable complexity */\n// Styles\nimport \"./VChip.css\";\n\n// Components\nimport { VExpandXTransition } from \"../transitions/index.js\";\nimport { VAvatar } from \"../VAvatar/index.js\";\nimport { VChipGroupSymbol } from \"../VChipGroup/VChipGroup.js\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.js\";\nimport { VIcon } from \"../VIcon/index.js\";\nimport { VSlideGroupSymbol } from \"../VSlideGroup/VSlideGroup.js\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.js\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.js\";\nimport { makeGroupItemProps, useGroupItem } from \"../../composables/group.js\";\nimport { IconValue } from \"../../composables/icons.js\";\nimport { useLocale } from \"../../composables/locale.js\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.js\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.js\";\nimport { makeRouterProps, useLink } from \"../../composables/router.js\";\nimport { makeSizeProps, useSize } from \"../../composables/size.js\";\nimport { makeTagProps } from \"../../composables/tag.js\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.js\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.js\"; // Directives\nimport vRipple from \"../../directives/ripple/index.js\"; // Utilities\nimport { computed, toDisplayString, toRef, watch } from 'vue';\nimport { EventProp, genericComponent, propsFactory } from \"../../util/index.js\"; // Types\nexport const makeVChipProps = propsFactory({\n activeClass: String,\n appendAvatar: String,\n appendIcon: IconValue,\n baseColor: String,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$delete'\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close'\n },\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: IconValue,\n default: '$complete'\n },\n label: Boolean,\n link: {\n type: Boolean,\n default: undefined\n },\n pill: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n text: {\n type: [String, Number, Boolean],\n default: undefined\n },\n modelValue: {\n type: Boolean,\n default: true\n },\n onClick: EventProp(),\n onClickOnce: EventProp(),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({\n tag: 'span'\n }),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'tonal'\n })\n}, 'VChip');\nexport const VChip = genericComponent()({\n name: 'VChip',\n directives: {\n vRipple\n },\n props: makeVChipProps(),\n emits: {\n 'click:close': e => true,\n 'update:modelValue': value => true,\n 'group:selected': val => true,\n click: e => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const {\n borderClasses\n } = useBorder(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n sizeClasses\n } = useSize(props);\n const {\n themeClasses\n } = provideTheme(props);\n const isActive = useProxiedModel(props, 'modelValue');\n const group = useGroupItem(props, VChipGroupSymbol, false);\n const slideGroup = useGroupItem(props, VSlideGroupSymbol, false);\n const link = useLink(props, attrs);\n const isLink = toRef(() => props.link !== false && link.isLink.value);\n const isClickable = computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));\n const closeProps = toRef(() => ({\n 'aria-label': t(props.closeLabel),\n disabled: props.disabled,\n onClick(e) {\n e.preventDefault();\n e.stopPropagation();\n isActive.value = false;\n emit('click:close', e);\n }\n }));\n watch(isActive, val => {\n if (val) {\n group?.register();\n slideGroup?.register();\n } else {\n group?.unregister();\n slideGroup?.unregister();\n }\n });\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(() => {\n const showColor = !group || group.isSelected.value;\n return {\n color: showColor ? props.color ?? props.baseColor : props.baseColor,\n variant: props.variant\n };\n });\n function onClick(e) {\n emit('click', e);\n if (!isClickable.value) return;\n link.navigate?.(e);\n group?.toggle();\n }\n function onKeyDown(e) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClick(e);\n }\n }\n return () => {\n const Tag = link.isLink.value ? 'a' : props.tag;\n const hasAppendMedia = !!(props.appendIcon || props.appendAvatar);\n const hasAppend = !!(hasAppendMedia || slots.append);\n const hasClose = !!(slots.close || props.closable);\n const hasFilter = !!(slots.filter || props.filter) && group;\n const hasPrependMedia = !!(props.prependIcon || props.prependAvatar);\n const hasPrepend = !!(hasPrependMedia || slots.prepend);\n return isActive.value && _withDirectives(_createVNode(Tag, _mergeProps(link.linkProps, {\n \"class\": ['v-chip', {\n 'v-chip--disabled': props.disabled,\n 'v-chip--label': props.label,\n 'v-chip--link': isClickable.value,\n 'v-chip--filter': hasFilter,\n 'v-chip--pill': props.pill,\n [`${props.activeClass}`]: props.activeClass && link.isActive?.value\n }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value, props.class],\n \"style\": [colorStyles.value, props.style],\n \"disabled\": props.disabled || undefined,\n \"draggable\": props.draggable,\n \"tabindex\": isClickable.value ? 0 : undefined,\n \"onClick\": onClick,\n \"onKeydown\": isClickable.value && !isLink.value && onKeyDown\n }), {\n default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && _createVNode(VExpandXTransition, {\n \"key\": \"filter\"\n }, {\n default: () => [_withDirectives(_createElementVNode(\"div\", {\n \"class\": \"v-chip__filter\"\n }, [!slots.filter ? _createVNode(VIcon, {\n \"key\": \"filter-icon\",\n \"icon\": props.filterIcon\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"filter-defaults\",\n \"disabled\": !props.filterIcon,\n \"defaults\": {\n VIcon: {\n icon: props.filterIcon\n }\n }\n }, slots.filter)]), [[_vShow, group.isSelected.value]])]\n }), hasPrepend && _createElementVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-chip__prepend\"\n }, [!slots.prepend ? _createElementVNode(_Fragment, null, [props.prependIcon && _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"icon\": props.prependIcon,\n \"start\": true\n }, null), props.prependAvatar && _createVNode(VAvatar, {\n \"key\": \"prepend-avatar\",\n \"image\": props.prependAvatar,\n \"start\": true\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !hasPrependMedia,\n \"defaults\": {\n VAvatar: {\n image: props.prependAvatar,\n start: true\n },\n VIcon: {\n icon: props.prependIcon,\n start: true\n }\n }\n }, slots.prepend)]), _createElementVNode(\"div\", {\n \"class\": \"v-chip__content\",\n \"data-no-activator\": \"\"\n }, [slots.default?.({\n isSelected: group?.isSelected.value,\n selectedClass: group?.selectedClass.value,\n select: group?.select,\n toggle: group?.toggle,\n value: group?.value.value,\n disabled: props.disabled\n }) ?? toDisplayString(props.text)]), hasAppend && _createElementVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-chip__append\"\n }, [!slots.append ? _createElementVNode(_Fragment, null, [props.appendIcon && _createVNode(VIcon, {\n \"key\": \"append-icon\",\n \"end\": true,\n \"icon\": props.appendIcon\n }, null), props.appendAvatar && _createVNode(VAvatar, {\n \"key\": \"append-avatar\",\n \"end\": true,\n \"image\": props.appendAvatar\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"append-defaults\",\n \"disabled\": !hasAppendMedia,\n \"defaults\": {\n VAvatar: {\n end: true,\n image: props.appendAvatar\n },\n VIcon: {\n end: true,\n icon: props.appendIcon\n }\n }\n }, slots.append)]), hasClose && _createElementVNode(\"button\", _mergeProps({\n \"key\": \"close\",\n \"class\": \"v-chip__close\",\n \"type\": \"button\",\n \"data-testid\": \"close-chip\"\n }, closeProps.value), [!slots.close ? _createVNode(VIcon, {\n \"key\": \"close-icon\",\n \"icon\": props.closeIcon,\n \"size\": \"x-small\"\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"close-defaults\",\n \"defaults\": {\n VIcon: {\n icon: props.closeIcon,\n size: 'x-small'\n }\n }\n }, slots.close)])]\n }), [[vRipple, isClickable.value && props.ripple, null]]);\n };\n }\n});\n//# sourceMappingURL=VChip.js.map","import { vShow as _vShow, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VCounter.css\";\n\n// Components\nimport { VSlideYTransition } from \"../transitions/index.js\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeTransitionProps, MaybeTransition } from \"../../composables/transition.js\"; // Utilities\nimport { toRef } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVCounterProps = propsFactory({\n active: Boolean,\n disabled: Boolean,\n max: [Number, String],\n value: {\n type: [Number, String],\n default: 0\n },\n ...makeComponentProps(),\n ...makeTransitionProps({\n transition: {\n component: VSlideYTransition\n }\n })\n}, 'VCounter');\nexport const VCounter = genericComponent()({\n name: 'VCounter',\n functional: true,\n props: makeVCounterProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const counter = toRef(() => {\n return props.max ? `${props.value} / ${props.max}` : String(props.value);\n });\n useRender(() => _createVNode(MaybeTransition, {\n \"transition\": props.transition\n }, {\n default: () => [_withDirectives(_createElementVNode(\"div\", {\n \"class\": _normalizeClass(['v-counter', {\n 'text-error': props.max && !props.disabled && parseFloat(props.value) > parseFloat(props.max)\n }, props.class]),\n \"style\": _normalizeStyle(props.style)\n }, [slots.default ? slots.default({\n counter: counter.value,\n max: props.max,\n value: props.value\n }) : counter.value]), [[_vShow, props.active]])]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VCounter.js.map","import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createVNode as _createVNode } from \"vue\";\n// Components\nimport { VLabel } from \"../VLabel/index.js\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.js\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\";\nexport const makeVFieldLabelProps = propsFactory({\n floating: Boolean,\n ...makeComponentProps()\n}, 'VFieldLabel');\nexport const VFieldLabel = genericComponent()({\n name: 'VFieldLabel',\n props: makeVFieldLabelProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(VLabel, {\n \"class\": _normalizeClass(['v-field-label', {\n 'v-field-label--floating': props.floating\n }, props.class]),\n \"style\": _normalizeStyle(props.style)\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VFieldLabel.js.map","import { createElementVNode as _createElementVNode, createVNode as _createVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, vShow as _vShow, withDirectives as _withDirectives, Fragment as _Fragment, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VField.css\";\n\n// Components\nimport { VFieldLabel } from \"./VFieldLabel.js\";\nimport { VExpandXTransition } from \"../transitions/index.js\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.js\";\nimport { useInputIcon } from \"../VInput/InputIcon.js\"; // Composables\nimport { useBackgroundColor, useTextColor } from \"../../composables/color.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeFocusProps, useFocus } from \"../../composables/focus.js\";\nimport { IconValue } from \"../../composables/icons.js\";\nimport { LoaderSlot, makeLoaderProps, useLoader } from \"../../composables/loader.js\";\nimport { useRtl } from \"../../composables/locale.js\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.js\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.js\"; // Utilities\nimport { computed, ref, toRef, useId, watch } from 'vue';\nimport { animate, convertToUnit, EventProp, genericComponent, nullifyTransforms, PREFERS_REDUCED_MOTION, propsFactory, standardEasing, useRender } from \"../../util/index.js\"; // Types\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', 'solo-inverted', 'solo-filled', 'plain'];\nexport const makeVFieldProps = propsFactory({\n appendInnerIcon: IconValue,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: IconValue,\n default: '$clear'\n },\n active: Boolean,\n centerAffix: {\n type: Boolean,\n default: undefined\n },\n color: String,\n baseColor: String,\n details: Boolean,\n dirty: Boolean,\n disabled: {\n type: Boolean,\n default: null\n },\n glow: Boolean,\n error: Boolean,\n flat: Boolean,\n iconColor: [Boolean, String],\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: IconValue,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String,\n default: 'filled',\n validator: v => allowedVariants.includes(v)\n },\n 'onClick:clear': EventProp(),\n 'onClick:appendInner': EventProp(),\n 'onClick:prependInner': EventProp(),\n ...makeComponentProps(),\n ...makeLoaderProps(),\n ...makeRoundedProps(),\n ...makeThemeProps()\n}, 'VField');\nexport const VField = genericComponent()({\n name: 'VField',\n inheritAttrs: false,\n props: {\n id: String,\n ...makeFocusProps(),\n ...makeVFieldProps()\n },\n emits: {\n 'update:focused': focused => true,\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n loaderClasses\n } = useLoader(props);\n const {\n focusClasses,\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const {\n InputIcon\n } = useInputIcon(props);\n const {\n roundedClasses\n } = useRounded(props);\n const {\n rtlClasses\n } = useRtl();\n const isActive = toRef(() => props.dirty || props.active);\n const hasLabel = toRef(() => !!(props.label || slots.label));\n const hasFloatingLabel = toRef(() => !props.singleLine && hasLabel.value);\n const uid = useId();\n const id = computed(() => props.id || `input-${uid}`);\n const messagesId = toRef(() => !props.details ? undefined : `${id.value}-messages`);\n const labelRef = ref();\n const floatingLabelRef = ref();\n const controlRef = ref();\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));\n const color = computed(() => {\n return props.error || props.disabled ? undefined : isActive.value && isFocused.value ? props.color : props.baseColor;\n });\n const iconColor = computed(() => {\n if (!props.iconColor || props.glow && !isFocused.value) return undefined;\n return props.iconColor === true ? color.value : props.iconColor;\n });\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(() => props.bgColor);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(color);\n watch(isActive, val => {\n if (hasFloatingLabel.value && !PREFERS_REDUCED_MOTION()) {\n const el = labelRef.value.$el;\n const targetEl = floatingLabelRef.value.$el;\n requestAnimationFrame(() => {\n const rect = nullifyTransforms(el);\n const targetRect = targetEl.getBoundingClientRect();\n const x = targetRect.x - rect.x;\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2);\n const targetWidth = targetRect.width / 0.75;\n const width = Math.abs(targetWidth - rect.width) > 1 ? {\n maxWidth: convertToUnit(targetWidth)\n } : undefined;\n const style = getComputedStyle(el);\n const targetStyle = getComputedStyle(targetEl);\n const duration = parseFloat(style.transitionDuration) * 1000 || 150;\n const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'));\n const color = targetStyle.getPropertyValue('color');\n el.style.visibility = 'visible';\n targetEl.style.visibility = 'hidden';\n animate(el, {\n transform: `translate(${x}px, ${y}px) scale(${scale})`,\n color,\n ...width\n }, {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse'\n }).finished.then(() => {\n el.style.removeProperty('visibility');\n targetEl.style.removeProperty('visibility');\n });\n });\n }\n }, {\n flush: 'post'\n });\n const slotProps = computed(() => ({\n isActive,\n isFocused,\n controlRef,\n blur,\n focus\n }));\n function onClick(e) {\n if (e.target !== document.activeElement) {\n e.preventDefault();\n }\n }\n useRender(() => {\n const isOutlined = props.variant === 'outlined';\n const hasPrepend = !!(slots['prepend-inner'] || props.prependInnerIcon);\n const hasClear = !!(props.clearable || slots.clear) && !props.disabled;\n const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear);\n const label = () => slots.label ? slots.label({\n ...slotProps.value,\n label: props.label,\n props: {\n for: id.value\n }\n }) : props.label;\n return _createElementVNode(\"div\", _mergeProps({\n \"class\": ['v-field', {\n 'v-field--active': isActive.value,\n 'v-field--appended': hasAppend,\n 'v-field--center-affix': props.centerAffix ?? !isPlainOrUnderlined.value,\n 'v-field--disabled': props.disabled,\n 'v-field--dirty': props.dirty,\n 'v-field--error': props.error,\n 'v-field--glow': props.glow,\n 'v-field--flat': props.flat,\n 'v-field--has-background': !!props.bgColor,\n 'v-field--persistent-clear': props.persistentClear,\n 'v-field--prepended': hasPrepend,\n 'v-field--reverse': props.reverse,\n 'v-field--single-line': props.singleLine,\n 'v-field--no-label': !label(),\n [`v-field--variant-${props.variant}`]: true\n }, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, rtlClasses.value, props.class],\n \"style\": [backgroundColorStyles.value, props.style],\n \"onClick\": onClick\n }, attrs), [_createElementVNode(\"div\", {\n \"class\": \"v-field__overlay\"\n }, null), _createVNode(LoaderSlot, {\n \"name\": \"v-field\",\n \"active\": !!props.loading,\n \"color\": props.error ? 'error' : typeof props.loading === 'string' ? props.loading : props.color\n }, {\n default: slots.loader\n }), hasPrepend && _createElementVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-field__prepend-inner\"\n }, [props.prependInnerIcon && _createVNode(InputIcon, {\n \"key\": \"prepend-icon\",\n \"name\": \"prependInner\",\n \"color\": iconColor.value\n }, null), slots['prepend-inner']?.(slotProps.value)]), _createElementVNode(\"div\", {\n \"class\": \"v-field__field\",\n \"data-no-activator\": \"\"\n }, [['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasFloatingLabel.value && _createVNode(VFieldLabel, {\n \"key\": \"floating-label\",\n \"ref\": floatingLabelRef,\n \"class\": _normalizeClass([textColorClasses.value]),\n \"floating\": true,\n \"for\": id.value,\n \"aria-hidden\": !isActive.value,\n \"style\": _normalizeStyle(textColorStyles.value)\n }, {\n default: () => [label()]\n }), hasLabel.value && _createVNode(VFieldLabel, {\n \"key\": \"label\",\n \"ref\": labelRef,\n \"for\": id.value\n }, {\n default: () => [label()]\n }), slots.default?.({\n ...slotProps.value,\n props: {\n id: id.value,\n class: 'v-field__input',\n 'aria-describedby': messagesId.value\n },\n focus,\n blur\n }) ?? _createElementVNode(\"div\", {\n \"id\": id.value,\n \"class\": \"v-field__input\",\n \"aria-describedby\": messagesId.value\n }, null)]), hasClear && _createVNode(VExpandXTransition, {\n \"key\": \"clear\"\n }, {\n default: () => [_withDirectives(_createElementVNode(\"div\", {\n \"class\": \"v-field__clearable\",\n \"onMousedown\": e => {\n e.preventDefault();\n e.stopPropagation();\n }\n }, [_createVNode(VDefaultsProvider, {\n \"defaults\": {\n VIcon: {\n icon: props.clearIcon\n }\n }\n }, {\n default: () => [slots.clear ? slots.clear({\n ...slotProps.value,\n props: {\n onFocus: focus,\n onBlur: blur,\n onClick: props['onClick:clear'],\n tabindex: -1\n }\n }) : _createVNode(InputIcon, {\n \"name\": \"clear\",\n \"onFocus\": focus,\n \"onBlur\": blur,\n \"tabindex\": -1\n }, null)]\n })]), [[_vShow, props.dirty]])]\n }), hasAppend && _createElementVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-field__append-inner\"\n }, [slots['append-inner']?.(slotProps.value), props.appendInnerIcon && _createVNode(InputIcon, {\n \"key\": \"append-icon\",\n \"name\": \"appendInner\",\n \"color\": iconColor.value\n }, null)]), _createElementVNode(\"div\", {\n \"class\": _normalizeClass(['v-field__outline', textColorClasses.value]),\n \"style\": _normalizeStyle(textColorStyles.value)\n }, [isOutlined && _createElementVNode(_Fragment, null, [_createElementVNode(\"div\", {\n \"class\": \"v-field__outline__start\"\n }, null), hasFloatingLabel.value && _createElementVNode(\"div\", {\n \"class\": \"v-field__outline__notch\"\n }, [_createVNode(VFieldLabel, {\n \"ref\": floatingLabelRef,\n \"floating\": true,\n \"for\": id.value,\n \"aria-hidden\": !isActive.value\n }, {\n default: () => [label()]\n })]), _createElementVNode(\"div\", {\n \"class\": \"v-field__outline__end\"\n }, null)]), isPlainOrUnderlined.value && hasFloatingLabel.value && _createVNode(VFieldLabel, {\n \"ref\": floatingLabelRef,\n \"floating\": true,\n \"for\": id.value,\n \"aria-hidden\": !isActive.value\n }, {\n default: () => [label()]\n })])]);\n });\n return {\n controlRef,\n fieldIconColor: iconColor\n };\n }\n});\n//# sourceMappingURL=VField.js.map","// Utilities\nimport { shallowRef, toRef, useId } from 'vue';\nimport { propsFactory } from \"../util/index.js\"; // Types\n// Types\n// Composables\nexport const makeAutocompleteProps = propsFactory({\n autocomplete: String\n}, 'autocomplete');\nexport function useAutocomplete(props) {\n const uniqueId = useId();\n const reloadTrigger = shallowRef(0);\n const isSuppressing = toRef(() => props.autocomplete === 'suppress');\n const fieldName = toRef(() => {\n return isSuppressing.value ? `${props.name}-${uniqueId}-${reloadTrigger.value}` : props.name;\n });\n const fieldAutocomplete = toRef(() => {\n return isSuppressing.value ? 'off' : props.autocomplete;\n });\n return {\n isSuppressing,\n fieldAutocomplete,\n fieldName,\n update: () => reloadTrigger.value = new Date().getTime()\n };\n}\n//# sourceMappingURL=autocomplete.js.map","export function useAutofocus(props) {\n function onIntersect(isIntersecting, entries) {\n if (!props.autofocus || !isIntersecting) return;\n entries[0].target?.focus?.();\n }\n return {\n onIntersect\n };\n}\n//# sourceMappingURL=autofocus.js.map","import { mergeProps as _mergeProps, createElementVNode as _createElementVNode, withDirectives as _withDirectives, Fragment as _Fragment, normalizeClass as _normalizeClass, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VTextField.css\";\n\n// Components\nimport { VCounter } from \"../VCounter/VCounter.js\";\nimport { makeVFieldProps, VField } from \"../VField/VField.js\";\nimport { makeVInputProps, VInput } from \"../VInput/VInput.js\"; // Composables\nimport { makeAutocompleteProps, useAutocomplete } from \"../../composables/autocomplete.js\";\nimport { useAutofocus } from \"../../composables/autofocus.js\";\nimport { useFocus } from \"../../composables/focus.js\";\nimport { forwardRefs } from \"../../composables/forwardRefs.js\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.js\"; // Directives\nimport vIntersect from \"../../directives/intersect/index.js\"; // Utilities\nimport { cloneVNode, computed, nextTick, ref } from 'vue';\nimport { callEvent, filterInputAttrs, genericComponent, omit, propsFactory, useRender } from \"../../util/index.js\"; // Types\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month'];\nexport const makeVTextFieldProps = propsFactory({\n autofocus: Boolean,\n counter: [Boolean, Number, String],\n counterValue: [Number, Function],\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n suffix: String,\n role: String,\n type: {\n type: String,\n default: 'text'\n },\n modelModifiers: Object,\n ...makeAutocompleteProps(),\n ...makeVInputProps(),\n ...makeVFieldProps()\n}, 'VTextField');\nexport const VTextField = genericComponent()({\n name: 'VTextField',\n directives: {\n vIntersect\n },\n inheritAttrs: false,\n props: makeVTextFieldProps(),\n emits: {\n 'click:control': e => true,\n 'mousedown:control': e => true,\n 'update:focused': focused => true,\n 'update:modelValue': val => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const model = useProxiedModel(props, 'modelValue');\n const {\n isFocused,\n focus,\n blur\n } = useFocus(props);\n const {\n onIntersect\n } = useAutofocus(props);\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : (model.value ?? '').toString().length;\n });\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength;\n if (!props.counter || typeof props.counter !== 'number' && typeof props.counter !== 'string') return undefined;\n return props.counter;\n });\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));\n const vInputRef = ref();\n const vFieldRef = ref();\n const inputRef = ref();\n const autocomplete = useAutocomplete(props);\n const isActive = computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value || props.active);\n function onFocus() {\n if (autocomplete.isSuppressing.value) {\n autocomplete.update();\n }\n if (!isFocused.value) focus();\n nextTick(() => {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus();\n }\n });\n }\n function onControlMousedown(e) {\n emit('mousedown:control', e);\n if (e.target === inputRef.value) return;\n onFocus();\n e.preventDefault();\n }\n function onControlClick(e) {\n emit('click:control', e);\n }\n function onClear(e, reset) {\n e.stopPropagation();\n onFocus();\n nextTick(() => {\n reset();\n callEvent(props['onClick:clear'], e);\n });\n }\n function onInput(e) {\n const el = e.target;\n model.value = el.value;\n if (props.modelModifiers?.trim && ['text', 'search', 'password', 'tel', 'url'].includes(props.type)) {\n const caretPosition = [el.selectionStart, el.selectionEnd];\n nextTick(() => {\n el.selectionStart = caretPosition[0];\n el.selectionEnd = caretPosition[1];\n });\n }\n }\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter !== false && props.counter != null);\n const hasDetails = !!(hasCounter || slots.details);\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);\n const {\n modelValue: _,\n ...inputProps\n } = VInput.filterProps(props);\n const fieldProps = VField.filterProps(props);\n return _createVNode(VInput, _mergeProps({\n \"ref\": vInputRef,\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"class\": ['v-text-field', {\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-input--plain-underlined': isPlainOrUnderlined.value\n }, props.class],\n \"style\": props.style\n }, rootAttrs, inputProps, {\n \"centerAffix\": !isPlainOrUnderlined.value,\n \"focused\": isFocused.value\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n hasDetails,\n reset\n } = _ref2;\n return _createVNode(VField, _mergeProps({\n \"ref\": vFieldRef,\n \"onMousedown\": onControlMousedown,\n \"onClick\": onControlClick,\n \"onClick:clear\": e => onClear(e, reset),\n \"role\": props.role\n }, omit(fieldProps, ['onClick:clear']), {\n \"id\": id.value,\n \"active\": isActive.value || isDirty.value,\n \"dirty\": isDirty.value || props.dirty,\n \"disabled\": isDisabled.value,\n \"focused\": isFocused.value,\n \"details\": hasDetails.value,\n \"error\": isValid.value === false\n }), {\n ...slots,\n default: _ref3 => {\n let {\n props: {\n class: fieldClass,\n ...slotProps\n },\n controlRef\n } = _ref3;\n const inputNode = _withDirectives(_createElementVNode(\"input\", _mergeProps({\n \"ref\": val => inputRef.value = controlRef.value = val,\n \"value\": model.value,\n \"onInput\": onInput,\n \"autofocus\": props.autofocus,\n \"readonly\": isReadonly.value,\n \"disabled\": isDisabled.value,\n \"name\": autocomplete.fieldName.value,\n \"autocomplete\": autocomplete.fieldAutocomplete.value,\n \"placeholder\": props.placeholder,\n \"size\": 1,\n \"role\": props.role,\n \"type\": props.type,\n \"onFocus\": focus,\n \"onBlur\": blur\n }, slotProps, inputAttrs), null), [[vIntersect, {\n handler: onIntersect\n }, null, {\n once: true\n }]]);\n return _createElementVNode(_Fragment, null, [props.prefix && _createElementVNode(\"span\", {\n \"class\": \"v-text-field__prefix\"\n }, [_createElementVNode(\"span\", {\n \"class\": \"v-text-field__prefix__text\"\n }, [props.prefix])]), slots.default ? _createElementVNode(\"div\", {\n \"class\": _normalizeClass(fieldClass),\n \"data-no-activator\": \"\"\n }, [slots.default(), inputNode]) : cloneVNode(inputNode, {\n class: fieldClass\n }), props.suffix && _createElementVNode(\"span\", {\n \"class\": \"v-text-field__suffix\"\n }, [_createElementVNode(\"span\", {\n \"class\": \"v-text-field__suffix__text\"\n }, [props.suffix])])]);\n }\n });\n },\n details: hasDetails ? slotProps => _createElementVNode(_Fragment, null, [slots.details?.(slotProps), hasCounter && _createElementVNode(_Fragment, null, [_createElementVNode(\"span\", null, null), _createVNode(VCounter, {\n \"active\": props.persistentCounter || isFocused.value,\n \"value\": counterValue.value,\n \"max\": max.value,\n \"disabled\": props.disabled\n }, slots.counter)])]) : undefined\n });\n });\n return forwardRefs({}, vInputRef, vFieldRef, inputRef);\n }\n});\n//# sourceMappingURL=VTextField.js.map","import { Fragment as _Fragment, createElementVNode as _createElementVNode, mergeProps as _mergeProps } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { useResizeObserver } from \"../../composables/resizeObserver.js\"; // Utilities\nimport { watch } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVVirtualScrollItemProps = propsFactory({\n renderless: Boolean,\n ...makeComponentProps()\n}, 'VVirtualScrollItem');\nexport const VVirtualScrollItem = genericComponent()({\n name: 'VVirtualScrollItem',\n inheritAttrs: false,\n props: makeVVirtualScrollItemProps(),\n emits: {\n 'update:height': height => true\n },\n setup(props, _ref) {\n let {\n attrs,\n emit,\n slots\n } = _ref;\n const {\n resizeRef,\n contentRect\n } = useResizeObserver(undefined, 'border');\n watch(() => contentRect.value?.height, height => {\n if (height != null) emit('update:height', height);\n });\n useRender(() => props.renderless ? _createElementVNode(_Fragment, null, [slots.default?.({\n itemRef: resizeRef\n })]) : _createElementVNode(\"div\", _mergeProps({\n \"ref\": resizeRef,\n \"class\": ['v-virtual-scroll__item', props.class],\n \"style\": props.style\n }, attrs), [slots.default?.()]));\n }\n});\n//# sourceMappingURL=VVirtualScrollItem.js.map","// Composables\nimport { useDisplay } from \"./display.js\";\nimport { useResizeObserver } from \"./resizeObserver.js\"; // Utilities\nimport { computed, nextTick, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue';\nimport { clamp, debounce, getPropertyFromItem, IN_BROWSER, propsFactory } from \"../util/index.js\"; // Types\nconst UP = -1;\nconst DOWN = 1;\n\n/** Determines how large each batch of items should be */\nconst BUFFER_PX = 100;\nexport const makeVirtualProps = propsFactory({\n itemHeight: {\n type: [Number, String],\n default: null\n },\n itemKey: {\n type: [String, Array, Function],\n default: null\n },\n height: [Number, String]\n}, 'virtual');\nexport function useVirtual(props, items) {\n const display = useDisplay();\n const itemHeight = shallowRef(0);\n watchEffect(() => {\n itemHeight.value = parseFloat(props.itemHeight || 0);\n });\n const first = shallowRef(0);\n const last = shallowRef(Math.ceil(\n // Assume 16px items filling the entire screen height if\n // not provided. This is probably incorrect but it minimises\n // the chance of ending up with empty space at the bottom.\n // The default value is set here to avoid poisoning getSize()\n (parseInt(props.height) || display.height.value) / (itemHeight.value || 16)) || 1);\n const paddingTop = shallowRef(0);\n const paddingBottom = shallowRef(0);\n\n /** The scrollable element */\n const containerRef = ref();\n /** An element marking the top of the scrollable area,\n * used to add an offset if there's padding or other elements above the virtual list */\n const markerRef = ref();\n /** markerRef's offsetTop, lazily evaluated */\n let markerOffset = 0;\n const {\n resizeRef,\n contentRect\n } = useResizeObserver();\n watchEffect(() => {\n resizeRef.value = containerRef.value;\n });\n const viewportHeight = computed(() => {\n return containerRef.value === document.documentElement ? display.height.value : contentRect.value?.height || parseInt(props.height) || 0;\n });\n /** All static elements have been rendered and we have an assumed item height */\n const hasInitialRender = computed(() => {\n return !!(containerRef.value && markerRef.value && viewportHeight.value && itemHeight.value);\n });\n let sizes = Array.from({\n length: items.value.length\n });\n let offsets = Array.from({\n length: items.value.length\n });\n const updateTime = shallowRef(0);\n let targetScrollIndex = -1;\n function getSize(index) {\n return sizes[index] || itemHeight.value;\n }\n const updateOffsets = debounce(() => {\n const start = performance.now();\n offsets[0] = 0;\n const length = items.value.length;\n for (let i = 1; i <= length; i++) {\n offsets[i] = (offsets[i - 1] || 0) + getSize(i - 1);\n }\n updateTime.value = Math.max(updateTime.value, performance.now() - start);\n }, updateTime);\n const unwatch = watch(hasInitialRender, v => {\n if (!v) return;\n // First render is complete, update offsets and visible\n // items in case our assumed item height was incorrect\n\n unwatch();\n markerOffset = markerRef.value.offsetTop;\n updateOffsets.immediate();\n calculateVisibleItems();\n if (!~targetScrollIndex) return;\n nextTick(() => {\n IN_BROWSER && window.requestAnimationFrame(() => {\n scrollToIndex(targetScrollIndex);\n targetScrollIndex = -1;\n });\n });\n });\n onScopeDispose(() => {\n updateOffsets.clear();\n });\n function handleItemResize(index, height) {\n const prevHeight = sizes[index];\n const prevMinHeight = itemHeight.value;\n itemHeight.value = prevMinHeight ? Math.min(itemHeight.value, height) : height;\n if (prevHeight !== height || prevMinHeight !== itemHeight.value) {\n sizes[index] = height;\n updateOffsets();\n }\n }\n function calculateOffset(index) {\n index = clamp(index, 0, items.value.length);\n const whole = Math.floor(index);\n const fraction = index % 1;\n const next = whole + 1;\n const wholeOffset = offsets[whole] || 0;\n const nextOffset = offsets[next] || wholeOffset;\n return wholeOffset + (nextOffset - wholeOffset) * fraction;\n }\n function calculateIndex(scrollTop) {\n return binaryClosest(offsets, scrollTop);\n }\n let lastScrollTop = 0;\n let scrollVelocity = 0;\n let lastScrollTime = 0;\n watch(viewportHeight, (val, oldVal) => {\n if (oldVal) {\n calculateVisibleItems();\n if (val < oldVal) {\n requestAnimationFrame(() => {\n scrollVelocity = 0;\n calculateVisibleItems();\n });\n }\n }\n });\n let scrollTimeout = -1;\n function handleScroll() {\n if (!containerRef.value || !markerRef.value) return;\n const scrollTop = containerRef.value.scrollTop;\n const scrollTime = performance.now();\n const scrollDeltaT = scrollTime - lastScrollTime;\n if (scrollDeltaT > 500) {\n scrollVelocity = Math.sign(scrollTop - lastScrollTop);\n\n // Not super important, only update at the\n // start of a scroll sequence to avoid reflows\n markerOffset = markerRef.value.offsetTop;\n } else {\n scrollVelocity = scrollTop - lastScrollTop;\n }\n lastScrollTop = scrollTop;\n lastScrollTime = scrollTime;\n window.clearTimeout(scrollTimeout);\n scrollTimeout = window.setTimeout(handleScrollend, 500);\n calculateVisibleItems();\n }\n function handleScrollend() {\n if (!containerRef.value || !markerRef.value) return;\n scrollVelocity = 0;\n lastScrollTime = 0;\n window.clearTimeout(scrollTimeout);\n calculateVisibleItems();\n }\n let raf = -1;\n function calculateVisibleItems() {\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(_calculateVisibleItems);\n }\n function _calculateVisibleItems() {\n if (!containerRef.value || !viewportHeight.value || !itemHeight.value) return;\n const scrollTop = lastScrollTop - markerOffset;\n const direction = Math.sign(scrollVelocity);\n const startPx = Math.max(0, scrollTop - BUFFER_PX);\n const start = clamp(calculateIndex(startPx), 0, items.value.length);\n const endPx = scrollTop + viewportHeight.value + BUFFER_PX;\n const end = clamp(calculateIndex(endPx) + 1, start + 1, items.value.length);\n if (\n // Only update the side we're scrolling towards,\n // the other side will be updated incidentally\n (direction !== UP || start < first.value) && (direction !== DOWN || end > last.value)) {\n const topOverflow = calculateOffset(first.value) - calculateOffset(start);\n const bottomOverflow = calculateOffset(end) - calculateOffset(last.value);\n const bufferOverflow = Math.max(topOverflow, bottomOverflow);\n if (bufferOverflow > BUFFER_PX) {\n first.value = start;\n last.value = end;\n } else {\n // Only update the side that's reached its limit if there's still buffer left\n if (start <= 0) first.value = start;\n if (end >= items.value.length) last.value = end;\n }\n }\n paddingTop.value = calculateOffset(first.value);\n paddingBottom.value = calculateOffset(items.value.length) - calculateOffset(last.value);\n }\n function scrollToIndex(index) {\n const offset = calculateOffset(index);\n if (!containerRef.value || index && !offset) {\n targetScrollIndex = index;\n } else {\n containerRef.value.scrollTop = offset;\n }\n }\n const computedItems = computed(() => {\n return items.value.slice(first.value, last.value).map((item, index) => {\n const _index = index + first.value;\n return {\n raw: item,\n index: _index,\n key: getPropertyFromItem(item, props.itemKey, _index)\n };\n });\n });\n watch(items, () => {\n sizes = Array.from({\n length: items.value.length\n });\n offsets = Array.from({\n length: items.value.length\n });\n updateOffsets.immediate();\n calculateVisibleItems();\n }, {\n deep: 1\n });\n return {\n calculateVisibleItems,\n containerRef,\n markerRef,\n computedItems,\n paddingTop,\n paddingBottom,\n scrollToIndex,\n handleScroll,\n handleScrollend,\n handleItemResize\n };\n}\n\n// https://gist.github.com/robertleeplummerjr/1cc657191d34ecd0a324\nfunction binaryClosest(arr, val) {\n let high = arr.length - 1;\n let low = 0;\n let mid = 0;\n let item = null;\n let target = -1;\n if (arr[high] < val) {\n return high;\n }\n while (low <= high) {\n mid = low + high >> 1;\n item = arr[mid];\n if (item > val) {\n high = mid - 1;\n } else if (item < val) {\n target = mid;\n low = mid + 1;\n } else if (item === val) {\n return mid;\n } else {\n return low;\n }\n }\n return target;\n}\n//# sourceMappingURL=virtual.js.map","import { createVNode as _createVNode, Fragment as _Fragment, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from \"vue\";\n// Styles\nimport \"./VVirtualScroll.css\";\n\n// Components\nimport { VVirtualScrollItem } from \"./VVirtualScrollItem.js\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.js\";\nimport { useToggleScope } from \"../../composables/toggleScope.js\";\nimport { makeVirtualProps, useVirtual } from \"../../composables/virtual.js\"; // Utilities\nimport { onMounted, onScopeDispose, toRef } from 'vue';\nimport { convertToUnit, genericComponent, getCurrentInstance, getScrollParent, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVVirtualScrollProps = propsFactory({\n items: {\n type: Array,\n default: () => []\n },\n renderless: Boolean,\n ...makeVirtualProps(),\n ...makeComponentProps(),\n ...makeDimensionProps()\n}, 'VVirtualScroll');\nexport const VVirtualScroll = genericComponent()({\n name: 'VVirtualScroll',\n props: makeVVirtualScrollProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const vm = getCurrentInstance('VVirtualScroll');\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n calculateVisibleItems,\n containerRef,\n markerRef,\n handleScroll,\n handleScrollend,\n handleItemResize,\n scrollToIndex,\n paddingTop,\n paddingBottom,\n computedItems\n } = useVirtual(props, toRef(() => props.items));\n useToggleScope(() => props.renderless, () => {\n function handleListeners() {\n let add = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n const method = add ? 'addEventListener' : 'removeEventListener';\n if (containerRef.value === document.documentElement) {\n document[method]('scroll', handleScroll, {\n passive: true\n });\n document[method]('scrollend', handleScrollend);\n } else {\n containerRef.value?.[method]('scroll', handleScroll, {\n passive: true\n });\n containerRef.value?.[method]('scrollend', handleScrollend);\n }\n }\n onMounted(() => {\n containerRef.value = getScrollParent(vm.vnode.el, true);\n handleListeners(true);\n });\n onScopeDispose(handleListeners);\n });\n useRender(() => {\n const children = computedItems.value.map(item => _createVNode(VVirtualScrollItem, {\n \"key\": item.key,\n \"renderless\": props.renderless,\n \"onUpdate:height\": height => handleItemResize(item.index, height)\n }, {\n default: slotProps => slots.default?.({\n item: item.raw,\n index: item.index,\n ...slotProps\n })\n }));\n return props.renderless ? _createElementVNode(_Fragment, null, [_createElementVNode(\"div\", {\n \"ref\": markerRef,\n \"class\": \"v-virtual-scroll__spacer\",\n \"style\": {\n paddingTop: convertToUnit(paddingTop.value)\n }\n }, null), children, _createElementVNode(\"div\", {\n \"class\": \"v-virtual-scroll__spacer\",\n \"style\": {\n paddingBottom: convertToUnit(paddingBottom.value)\n }\n }, null)]) : _createElementVNode(\"div\", {\n \"ref\": containerRef,\n \"class\": _normalizeClass(['v-virtual-scroll', props.class]),\n \"onScrollPassive\": handleScroll,\n \"onScrollend\": handleScrollend,\n \"style\": _normalizeStyle([dimensionStyles.value, props.style])\n }, [_createElementVNode(\"div\", {\n \"ref\": markerRef,\n \"class\": \"v-virtual-scroll__container\",\n \"style\": {\n paddingTop: convertToUnit(paddingTop.value),\n paddingBottom: convertToUnit(paddingBottom.value)\n }\n }, [children])]);\n });\n return {\n calculateVisibleItems,\n scrollToIndex\n };\n }\n});\n//# sourceMappingURL=VVirtualScroll.js.map","// Utilities\nimport { shallowRef, watch } from 'vue';\n\n// Types\n\nexport function useScrolling(listRef, textFieldRef) {\n const isScrolling = shallowRef(false);\n let scrollTimeout;\n function onListScroll(e) {\n cancelAnimationFrame(scrollTimeout);\n isScrolling.value = true;\n scrollTimeout = requestAnimationFrame(() => {\n scrollTimeout = requestAnimationFrame(() => {\n isScrolling.value = false;\n });\n });\n }\n async function finishScrolling() {\n await new Promise(resolve => requestAnimationFrame(resolve));\n await new Promise(resolve => requestAnimationFrame(resolve));\n await new Promise(resolve => requestAnimationFrame(resolve));\n await new Promise(resolve => {\n if (isScrolling.value) {\n const stop = watch(isScrolling, () => {\n stop();\n resolve();\n });\n } else resolve();\n });\n }\n async function onListKeydown(e) {\n if (e.key === 'Tab') {\n textFieldRef.value?.focus();\n }\n if (!['PageDown', 'PageUp', 'Home', 'End'].includes(e.key)) return;\n const el = listRef.value?.$el;\n if (!el) return;\n if (e.key === 'Home' || e.key === 'End') {\n el.scrollTo({\n top: e.key === 'Home' ? 0 : el.scrollHeight,\n behavior: 'smooth'\n });\n }\n await finishScrolling();\n const children = el.querySelectorAll(':scope > :not(.v-virtual-scroll__spacer)');\n if (e.key === 'PageDown' || e.key === 'Home') {\n const top = el.getBoundingClientRect().top;\n for (const child of children) {\n if (child.getBoundingClientRect().top >= top) {\n child.focus();\n break;\n }\n }\n } else {\n const bottom = el.getBoundingClientRect().bottom;\n for (const child of [...children].reverse()) {\n if (child.getBoundingClientRect().bottom <= bottom) {\n child.focus();\n break;\n }\n }\n }\n }\n return {\n onScrollPassive: onListScroll,\n onKeydown: onListKeydown\n }; // typescript doesn't know about vue's event merging\n}\n//# sourceMappingURL=useScrolling.js.map","// Utilities\nimport { computed, toRef, toValue, useId } from 'vue';\nimport { propsFactory } from \"../util/index.js\"; // Types\nimport { useLocale } from \"./locale.js\"; // Types\n// Composables\nexport const makeMenuActivatorProps = propsFactory({\n closeText: {\n type: String,\n default: '$vuetify.close'\n },\n openText: {\n type: String,\n default: '$vuetify.open'\n }\n}, 'autocomplete');\nexport function useMenuActivator(props, isOpen) {\n const {\n t\n } = useLocale();\n const uid = useId();\n const menuId = computed(() => `menu-${uid}`);\n const ariaExpanded = toRef(() => toValue(isOpen));\n const ariaControls = toRef(() => menuId.value);\n const ariaLabel = toRef(() => t(toValue(isOpen) ? props.closeText : props.openText));\n return {\n menuId,\n ariaExpanded,\n ariaControls,\n ariaLabel\n };\n}\n//# sourceMappingURL=menuActivator.js.map","import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode } from \"vue\";\n// Styles\nimport \"./VSelect.css\";\n\n// Components\nimport { VDialogTransition } from \"../transitions/index.js\";\nimport { VAvatar } from \"../VAvatar/index.js\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.js\";\nimport { VChip } from \"../VChip/index.js\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.js\";\nimport { VDivider } from \"../VDivider/index.js\";\nimport { VIcon } from \"../VIcon/index.js\";\nimport { VList, VListItem, VListSubheader } from \"../VList/index.js\";\nimport { VMenu } from \"../VMenu/index.js\";\nimport { makeVTextFieldProps, VTextField } from \"../VTextField/VTextField.js\";\nimport { VVirtualScroll } from \"../VVirtualScroll/index.js\"; // Composables\nimport { useScrolling } from \"./useScrolling.js\";\nimport { useForm } from \"../../composables/form.js\";\nimport { forwardRefs } from \"../../composables/forwardRefs.js\";\nimport { IconValue } from \"../../composables/icons.js\";\nimport { makeItemsProps, useItems } from \"../../composables/list-items.js\";\nimport { useLocale } from \"../../composables/locale.js\";\nimport { makeMenuActivatorProps, useMenuActivator } from \"../../composables/menuActivator.js\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.js\";\nimport { makeTransitionProps } from \"../../composables/transition.js\"; // Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue';\nimport { camelizeProps, checkPrintable, deepEqual, ensureValidVNode, genericComponent, IN_BROWSER, matchesSelector, omit, propsFactory, useRender, wrapInArray } from \"../../util/index.js\"; // Types\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n listProps: {\n type: Object\n },\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown'\n },\n menuProps: {\n type: Object\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText'\n },\n openOnClear: Boolean,\n itemColor: String,\n noAutoScroll: Boolean,\n ...makeMenuActivatorProps(),\n ...makeItemsProps({\n itemChildren: false\n })\n}, 'Select');\nexport const makeVSelectProps = propsFactory({\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox'\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({\n transition: {\n component: VDialogTransition\n }\n })\n}, 'VSelect');\nexport const VSelect = genericComponent()({\n name: 'VSelect',\n props: makeVSelectProps(),\n emits: {\n 'update:focused': focused => true,\n 'update:modelValue': value => true,\n 'update:menu': ue => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const vTextFieldRef = ref();\n const vMenuRef = ref();\n const vVirtualScrollRef = ref();\n const {\n items,\n transformIn,\n transformOut\n } = useItems(props);\n const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {\n const transformed = transformOut(v);\n return props.multiple ? transformed : transformed[0] ?? null;\n });\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;\n });\n const form = useForm(props);\n const selectedValues = computed(() => model.value.map(selection => selection.value));\n const isFocused = shallowRef(false);\n let keyboardLookupPrefix = '';\n let keyboardLookupIndex = -1;\n let keyboardLookupLastTime;\n const displayItems = computed(() => {\n if (props.hideSelected) {\n return items.value.filter(item => !model.value.some(s => (props.valueComparator || deepEqual)(s, item)));\n }\n return items.value;\n });\n const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);\n const _menu = useProxiedModel(props, 'menu');\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;\n if (v && menuDisabled.value) return;\n _menu.value = v;\n }\n });\n const {\n menuId,\n ariaExpanded,\n ariaControls,\n ariaLabel\n } = useMenuActivator(props, menu);\n const computedMenuProps = computed(() => {\n return {\n ...props.menuProps,\n activatorProps: {\n ...(props.menuProps?.activatorProps || {}),\n 'aria-haspopup': 'listbox' // Set aria-haspopup to 'listbox'\n }\n };\n });\n const listRef = ref();\n const listEvents = useScrolling(listRef, vTextFieldRef);\n function onClear(e) {\n if (props.openOnClear) {\n menu.value = true;\n }\n }\n function onMousedownControl() {\n if (menuDisabled.value) return;\n menu.value = !menu.value;\n }\n function onListKeydown(e) {\n if (checkPrintable(e)) {\n onKeydown(e);\n }\n }\n function onKeydown(e) {\n if (!e.key || form.isReadonly.value) return;\n if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {\n e.preventDefault();\n }\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n menu.value = true;\n }\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false;\n }\n if (e.key === 'Home') {\n listRef.value?.focus('first');\n } else if (e.key === 'End') {\n listRef.value?.focus('last');\n }\n\n // html select hotkeys\n const KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds\n\n if (!checkPrintable(e)) return;\n const now = performance.now();\n if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n keyboardLookupPrefix = '';\n keyboardLookupIndex = -1;\n }\n keyboardLookupPrefix += e.key.toLowerCase();\n keyboardLookupLastTime = now;\n const items = displayItems.value;\n function findItem() {\n let result = findItemBase();\n if (result) return result;\n if (keyboardLookupPrefix.at(-1) === keyboardLookupPrefix.at(-2)) {\n // No matches but we have a repeated letter, try the next item with that prefix\n keyboardLookupPrefix = keyboardLookupPrefix.slice(0, -1);\n result = findItemBase();\n if (result) return result;\n }\n\n // Still nothing, wrap around to the top\n keyboardLookupIndex = -1;\n result = findItemBase();\n if (result) return result;\n\n // Still nothing, try just the new letter\n keyboardLookupPrefix = e.key.toLowerCase();\n return findItemBase();\n }\n function findItemBase() {\n for (let i = keyboardLookupIndex + 1; i < items.length; i++) {\n const _item = items[i];\n if (_item.title.toLowerCase().startsWith(keyboardLookupPrefix)) {\n return [_item, i];\n }\n }\n return undefined;\n }\n const result = findItem();\n if (!result) return;\n const [item, index] = result;\n keyboardLookupIndex = index;\n listRef.value?.focus(index);\n if (!props.multiple) {\n model.value = [item];\n }\n }\n\n /** @param set - null means toggle */\n function select(item) {\n let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (item.props.disabled) return;\n if (props.multiple) {\n const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));\n const add = set == null ? !~index : set;\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value];\n value.splice(index, 1);\n model.value = value;\n } else if (add) {\n model.value = [...model.value, item];\n }\n } else {\n const add = set !== false;\n model.value = add ? [item] : [];\n nextTick(() => {\n menu.value = false;\n });\n }\n }\n function onBlur(e) {\n if (!listRef.value?.$el.contains(e.relatedTarget)) {\n menu.value = false;\n }\n }\n function onAfterEnter() {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems();\n }\n }\n function onAfterLeave() {\n if (isFocused.value) {\n vTextFieldRef.value?.focus();\n }\n }\n function onFocusin(e) {\n isFocused.value = true;\n }\n function onModelUpdate(v) {\n if (v == null) model.value = [];else if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {\n const item = items.value.find(item => item.title === v);\n if (item) {\n select(item);\n }\n } else if (vTextFieldRef.value) {\n vTextFieldRef.value.value = '';\n }\n }\n watch(menu, () => {\n if (!props.hideSelected && menu.value && model.value.length) {\n const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));\n IN_BROWSER && !props.noAutoScroll && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);\n });\n }\n });\n watch(items, (newVal, oldVal) => {\n if (menu.value) return;\n if (isFocused.value && props.hideNoData && !oldVal.length && newVal.length) {\n menu.value = true;\n }\n });\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip);\n const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);\n const isDirty = model.value.length > 0;\n const textFieldProps = VTextField.filterProps(props);\n const placeholder = isDirty || !isFocused.value && props.label && !props.persistentPlaceholder ? undefined : props.placeholder;\n return _createVNode(VTextField, _mergeProps({\n \"ref\": vTextFieldRef\n }, textFieldProps, {\n \"modelValue\": model.value.map(v => v.props.value).join(', '),\n \"onUpdate:modelValue\": onModelUpdate,\n \"focused\": isFocused.value,\n \"onUpdate:focused\": $event => isFocused.value = $event,\n \"validationValue\": model.externalValue,\n \"counterValue\": counterValue.value,\n \"dirty\": isDirty,\n \"class\": ['v-select', {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-select--selected': model.value.length,\n 'v-select--selection-slot': !!slots.selection\n }, props.class],\n \"style\": props.style,\n \"inputmode\": \"none\",\n \"placeholder\": placeholder,\n \"onClick:clear\": onClear,\n \"onMousedown:control\": onMousedownControl,\n \"onBlur\": onBlur,\n \"onKeydown\": onKeydown,\n \"aria-expanded\": ariaExpanded.value,\n \"aria-controls\": ariaControls.value,\n \"aria-label\": ariaLabel.value,\n \"title\": ariaLabel.value\n }), {\n ...slots,\n default: () => _createElementVNode(_Fragment, null, [_createVNode(VMenu, _mergeProps({\n \"id\": menuId.value,\n \"ref\": vMenuRef,\n \"modelValue\": menu.value,\n \"onUpdate:modelValue\": $event => menu.value = $event,\n \"activator\": \"parent\",\n \"contentClass\": \"v-select__content\",\n \"disabled\": menuDisabled.value,\n \"eager\": props.eager,\n \"maxHeight\": 310,\n \"openOnClick\": false,\n \"closeOnContentClick\": false,\n \"transition\": props.transition,\n \"onAfterEnter\": onAfterEnter,\n \"onAfterLeave\": onAfterLeave\n }, computedMenuProps.value), {\n default: () => [hasList && _createVNode(VList, _mergeProps({\n \"ref\": listRef,\n \"selected\": selectedValues.value,\n \"selectStrategy\": props.multiple ? 'independent' : 'single-independent',\n \"onMousedown\": e => e.preventDefault(),\n \"onKeydown\": onListKeydown,\n \"onFocusin\": onFocusin,\n \"tabindex\": \"-1\",\n \"selectable\": true,\n \"aria-live\": \"polite\",\n \"aria-label\": `${props.label}-list`,\n \"color\": props.itemColor ?? props.color\n }, listEvents, props.listProps), {\n default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? _createVNode(VListItem, {\n \"key\": \"no-data\",\n \"title\": t(props.noDataText)\n }, null)), _createVNode(VVirtualScroll, {\n \"ref\": vVirtualScrollRef,\n \"renderless\": true,\n \"items\": displayItems.value,\n \"itemKey\": \"value\"\n }, {\n default: _ref2 => {\n let {\n item,\n index,\n itemRef\n } = _ref2;\n const camelizedProps = camelizeProps(item.props);\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: item.value,\n onClick: () => select(item, null)\n });\n if (item.type === 'divider') {\n return slots.divider?.({\n props: item.raw,\n index\n }) ?? _createVNode(VDivider, _mergeProps(item.props, {\n \"key\": `divider-${index}`\n }), null);\n }\n if (item.type === 'subheader') {\n return slots.subheader?.({\n props: item.raw,\n index\n }) ?? _createVNode(VListSubheader, _mergeProps(item.props, {\n \"key\": `subheader-${index}`\n }), null);\n }\n return slots.item?.({\n item,\n index,\n props: itemProps\n }) ?? _createVNode(VListItem, _mergeProps(itemProps, {\n \"role\": \"option\"\n }), {\n prepend: _ref3 => {\n let {\n isSelected\n } = _ref3;\n return _createElementVNode(_Fragment, null, [props.multiple && !props.hideSelected ? _createVNode(VCheckboxBtn, {\n \"key\": item.value,\n \"modelValue\": isSelected,\n \"ripple\": false,\n \"tabindex\": \"-1\",\n \"onClick\": event => event.preventDefault()\n }, null) : undefined, camelizedProps.prependAvatar && _createVNode(VAvatar, {\n \"image\": camelizedProps.prependAvatar\n }, null), camelizedProps.prependIcon && _createVNode(VIcon, {\n \"icon\": camelizedProps.prependIcon\n }, null)]);\n }\n });\n }\n }), slots['append-item']?.()]\n })]\n }), model.value.map((item, index) => {\n function onChipClose(e) {\n e.stopPropagation();\n e.preventDefault();\n select(item, false);\n }\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown(e) {\n if (e.key !== 'Enter' && e.key !== ' ') return;\n e.preventDefault();\n e.stopPropagation();\n onChipClose(e);\n },\n onMousedown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined\n };\n const hasSlot = hasChips ? !!slots.chip : !!slots.selection;\n const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({\n item,\n index,\n props: slotProps\n }) : slots.selection({\n item,\n index\n })) : undefined;\n if (hasSlot && !slotContent) return undefined;\n return _createElementVNode(\"div\", {\n \"key\": item.value,\n \"class\": \"v-select__selection\"\n }, [hasChips ? !slots.chip ? _createVNode(VChip, _mergeProps({\n \"key\": \"chip\",\n \"closable\": props.closableChips,\n \"size\": \"small\",\n \"text\": item.title,\n \"disabled\": item.props.disabled\n }, slotProps), null) : _createVNode(VDefaultsProvider, {\n \"key\": \"chip-defaults\",\n \"defaults\": {\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title\n }\n }\n }, {\n default: () => [slotContent]\n }) : slotContent ?? _createElementVNode(\"span\", {\n \"class\": \"v-select__selection-text\"\n }, [item.title, props.multiple && index < model.value.length - 1 && _createElementVNode(\"span\", {\n \"class\": \"v-select__selection-comma\"\n }, [_createTextVNode(\",\")])])]);\n })]),\n 'append-inner': function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _createElementVNode(_Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? _createVNode(VIcon, {\n \"class\": \"v-select__menu-icon\",\n \"color\": vTextFieldRef.value?.fieldIconColor,\n \"icon\": props.menuIcon\n }, null) : undefined]);\n }\n });\n });\n return forwardRefs({\n isFocused,\n menu,\n select\n }, vTextFieldRef);\n }\n});\n//# sourceMappingURL=VSelect.js.map","// Composables\nimport { useProxiedModel } from \"../../../composables/proxiedModel.js\"; // Utilities\nimport { computed, inject, provide, watch } from 'vue';\nimport { clamp, getCurrentInstance, propsFactory } from \"../../../util/index.js\"; // Types\nexport const makeDataTablePaginateProps = propsFactory({\n page: {\n type: [Number, String],\n default: 1\n },\n itemsPerPage: {\n type: [Number, String],\n default: 10\n }\n}, 'DataTable-paginate');\nconst VDataTablePaginationSymbol = Symbol.for('vuetify:data-table-pagination');\nexport function createPagination(props) {\n const page = useProxiedModel(props, 'page', undefined, value => Number(value ?? 1));\n const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => Number(value ?? 10));\n return {\n page,\n itemsPerPage\n };\n}\nexport function providePagination(options) {\n const {\n page,\n itemsPerPage,\n itemsLength\n } = options;\n const startIndex = computed(() => {\n if (itemsPerPage.value === -1) return 0;\n return itemsPerPage.value * (page.value - 1);\n });\n const stopIndex = computed(() => {\n if (itemsPerPage.value === -1) return itemsLength.value;\n return Math.min(itemsLength.value, startIndex.value + itemsPerPage.value);\n });\n const pageCount = computed(() => {\n if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1;\n return Math.ceil(itemsLength.value / itemsPerPage.value);\n });\n\n // Don't run immediately, items may not have been loaded yet: #17966\n watch([page, pageCount], () => {\n if (page.value > pageCount.value) {\n page.value = pageCount.value;\n }\n });\n function setItemsPerPage(value) {\n itemsPerPage.value = value;\n page.value = 1;\n }\n function nextPage() {\n page.value = clamp(page.value + 1, 1, pageCount.value);\n }\n function prevPage() {\n page.value = clamp(page.value - 1, 1, pageCount.value);\n }\n function setPage(value) {\n page.value = clamp(value, 1, pageCount.value);\n }\n const data = {\n page,\n itemsPerPage,\n startIndex,\n stopIndex,\n pageCount,\n itemsLength,\n nextPage,\n prevPage,\n setPage,\n setItemsPerPage\n };\n provide(VDataTablePaginationSymbol, data);\n return data;\n}\nexport function usePagination() {\n const data = inject(VDataTablePaginationSymbol);\n if (!data) throw new Error('Missing pagination!');\n return data;\n}\nexport function usePaginatedItems(options) {\n const vm = getCurrentInstance('usePaginatedItems');\n const {\n items,\n startIndex,\n stopIndex,\n itemsPerPage\n } = options;\n const paginatedItems = computed(() => {\n if (itemsPerPage.value <= 0) return items.value;\n return items.value.slice(startIndex.value, stopIndex.value);\n });\n watch(paginatedItems, val => {\n vm.emit('update:currentItems', val);\n }, {\n immediate: true\n });\n return {\n paginatedItems\n };\n}\n//# sourceMappingURL=paginate.js.map","import { createElementVNode as _createElementVNode, createVNode as _createVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VDataTableFooter.css\";\n\n// Components\nimport { VPagination } from \"../VPagination/index.js\";\nimport { VSelect } from \"../VSelect/index.js\"; // Composables\nimport { usePagination } from \"./composables/paginate.js\";\nimport { IconValue } from \"../../composables/icons.js\";\nimport { useLocale } from \"../../composables/locale.js\"; // Utilities\nimport { computed } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVDataTableFooterProps = propsFactory({\n prevIcon: {\n type: IconValue,\n default: '$prev'\n },\n nextIcon: {\n type: IconValue,\n default: '$next'\n },\n firstIcon: {\n type: IconValue,\n default: '$first'\n },\n lastIcon: {\n type: IconValue,\n default: '$last'\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText'\n },\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText'\n },\n firstPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.firstPage'\n },\n prevPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.prevPage'\n },\n nextPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.nextPage'\n },\n lastPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.lastPage'\n },\n itemsPerPageOptions: {\n type: Array,\n default: () => [{\n value: 10,\n title: '10'\n }, {\n value: 25,\n title: '25'\n }, {\n value: 50,\n title: '50'\n }, {\n value: 100,\n title: '100'\n }, {\n value: -1,\n title: '$vuetify.dataFooter.itemsPerPageAll'\n }]\n },\n showCurrentPage: Boolean\n}, 'VDataTableFooter');\nexport const VDataTableFooter = genericComponent()({\n name: 'VDataTableFooter',\n props: makeVDataTableFooterProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const {\n page,\n pageCount,\n startIndex,\n stopIndex,\n itemsLength,\n itemsPerPage,\n setItemsPerPage\n } = usePagination();\n const itemsPerPageOptions = computed(() => props.itemsPerPageOptions.map(option => {\n if (typeof option === 'number') {\n return {\n value: option,\n title: option === -1 ? t('$vuetify.dataFooter.itemsPerPageAll') : String(option)\n };\n }\n return {\n ...option,\n title: !isNaN(Number(option.title)) ? option.title : t(option.title)\n };\n }));\n useRender(() => {\n const paginationProps = VPagination.filterProps(props);\n return _createElementVNode(\"div\", {\n \"class\": \"v-data-table-footer\"\n }, [slots.prepend?.(), _createElementVNode(\"div\", {\n \"class\": \"v-data-table-footer__items-per-page\"\n }, [_createElementVNode(\"span\", {\n \"aria-label\": t(props.itemsPerPageText)\n }, [t(props.itemsPerPageText)]), _createVNode(VSelect, {\n \"items\": itemsPerPageOptions.value,\n \"modelValue\": itemsPerPage.value,\n \"onUpdate:modelValue\": v => setItemsPerPage(Number(v)),\n \"density\": \"compact\",\n \"variant\": \"outlined\",\n \"hideDetails\": true\n }, null)]), _createElementVNode(\"div\", {\n \"class\": \"v-data-table-footer__info\"\n }, [_createElementVNode(\"div\", null, [t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value)])]), _createElementVNode(\"div\", {\n \"class\": \"v-data-table-footer__pagination\"\n }, [_createVNode(VPagination, _mergeProps({\n \"modelValue\": page.value,\n \"onUpdate:modelValue\": $event => page.value = $event,\n \"density\": \"comfortable\",\n \"firstAriaLabel\": props.firstPageLabel,\n \"lastAriaLabel\": props.lastPageLabel,\n \"length\": pageCount.value,\n \"nextAriaLabel\": props.nextPageLabel,\n \"previousAriaLabel\": props.prevPageLabel,\n \"rounded\": true,\n \"showFirstLastPage\": true,\n \"totalVisible\": props.showCurrentPage ? 1 : 0,\n \"variant\": \"plain\"\n }, paginationProps), null)])]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VDataTableFooter.js.map","import { normalizeClass as _normalizeClass, createVNode as _createVNode } from \"vue\";\n// Utilities\nimport { convertToUnit, defineFunctionalComponent } from \"../../util/index.js\"; // Types\nexport const VDataTableColumn = defineFunctionalComponent({\n align: {\n type: String,\n default: 'start'\n },\n fixed: {\n type: [Boolean, String],\n default: false\n },\n fixedOffset: [Number, String],\n fixedEndOffset: [Number, String],\n height: [Number, String],\n lastFixed: Boolean,\n firstFixedEnd: Boolean,\n noPadding: Boolean,\n indent: [Number, String],\n empty: Boolean,\n tag: String,\n width: [Number, String],\n maxWidth: [Number, String],\n nowrap: Boolean\n}, (props, _ref) => {\n let {\n slots\n } = _ref;\n const Tag = props.tag ?? 'td';\n const fixedSide = typeof props.fixed === 'string' ? props.fixed : props.fixed ? 'start' : 'none';\n return _createVNode(Tag, {\n \"class\": _normalizeClass(['v-data-table__td', {\n 'v-data-table-column--fixed': fixedSide === 'start',\n 'v-data-table-column--fixed-end': fixedSide === 'end',\n 'v-data-table-column--last-fixed': props.lastFixed,\n 'v-data-table-column--first-fixed-end': props.firstFixedEnd,\n 'v-data-table-column--no-padding': props.noPadding,\n 'v-data-table-column--nowrap': props.nowrap,\n 'v-data-table-column--empty': props.empty\n }, `v-data-table-column--align-${props.align}`]),\n \"style\": {\n height: convertToUnit(props.height),\n width: convertToUnit(props.width),\n maxWidth: convertToUnit(props.maxWidth),\n left: fixedSide === 'start' ? convertToUnit(props.fixedOffset || null) : undefined,\n right: fixedSide === 'end' ? convertToUnit(props.fixedEndOffset || null) : undefined,\n paddingInlineStart: props.indent ? convertToUnit(props.indent) : undefined\n }\n }, {\n default: () => [slots.default?.()]\n });\n});\n//# sourceMappingURL=VDataTableColumn.js.map","// Utilities\nimport { capitalize, inject, provide, ref, watchEffect } from 'vue';\nimport { consoleError, propsFactory } from \"../../../util/index.js\"; // Types\nexport const makeDataTableHeaderProps = propsFactory({\n headers: Array\n}, 'DataTable-header');\nexport const VDataTableHeadersSymbol = Symbol.for('vuetify:data-table-headers');\nconst defaultHeader = {\n title: '',\n sortable: false\n};\nconst defaultActionHeader = {\n ...defaultHeader,\n width: 48\n};\nfunction priorityQueue() {\n let arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n const queue = arr.map(element => ({\n element,\n priority: 0\n }));\n return {\n enqueue: (element, priority) => {\n let added = false;\n for (let i = 0; i < queue.length; i++) {\n const item = queue[i];\n if (item.priority > priority) {\n queue.splice(i, 0, {\n element,\n priority\n });\n added = true;\n break;\n }\n }\n if (!added) queue.push({\n element,\n priority\n });\n },\n size: () => queue.length,\n count: () => {\n let count = 0;\n if (!queue.length) return 0;\n const whole = Math.floor(queue[0].priority);\n for (let i = 0; i < queue.length; i++) {\n if (Math.floor(queue[i].priority) === whole) count += 1;\n }\n return count;\n },\n dequeue: () => {\n return queue.shift();\n }\n };\n}\nfunction extractLeaves(item) {\n let columns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n if (!item.children) {\n columns.push(item);\n } else {\n for (const child of item.children) {\n extractLeaves(child, columns);\n }\n }\n return columns;\n}\nfunction extractKeys(headers) {\n let keys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n for (const item of headers) {\n if (item.key) keys.add(item.key);\n if (item.children) {\n extractKeys(item.children, keys);\n }\n }\n return keys;\n}\nfunction getDefaultItem(item) {\n if (!item.key) return undefined;\n if (item.key === 'data-table-group') return defaultHeader;\n if (['data-table-expand', 'data-table-select'].includes(item.key)) return defaultActionHeader;\n return undefined;\n}\nfunction getDepth(item) {\n let depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (!item.children) return depth;\n return Math.max(depth, ...item.children.map(child => getDepth(child, depth + 1)));\n}\nfunction parseFixedColumns(items) {\n let seenFixed = false;\n function setFixed(item, side) {\n let parentFixedSide = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'none';\n if (!item) return;\n if (parentFixedSide !== 'none') {\n item.fixed = parentFixedSide;\n }\n\n // normalize to simplify logic below\n if (item.fixed === true) {\n item.fixed = 'start';\n }\n if (item.fixed === side) {\n if (item.children) {\n if (side === 'start') {\n for (let i = item.children.length - 1; i >= 0; i--) {\n setFixed(item.children[i], side, side);\n }\n } else {\n for (let i = 0; i < item.children.length; i++) {\n setFixed(item.children[i], side, side);\n }\n }\n } else {\n if (!seenFixed && side === 'start') {\n item.lastFixed = true;\n } else if (!seenFixed && side === 'end') {\n item.firstFixedEnd = true;\n } else if (isNaN(Number(item.width))) {\n consoleError(`Multiple fixed columns should have a static width (key: ${item.key})`);\n } else {\n item.minWidth = Math.max(Number(item.width) || 0, Number(item.minWidth) || 0);\n }\n seenFixed = true;\n }\n } else {\n if (item.children) {\n if (side === 'start') {\n for (let i = item.children.length - 1; i >= 0; i--) {\n setFixed(item.children[i], side);\n }\n } else {\n for (let i = 0; i < item.children.length; i++) {\n setFixed(item.children[i], side);\n }\n }\n } else {\n seenFixed = false;\n }\n }\n }\n for (let i = items.length - 1; i >= 0; i--) {\n setFixed(items[i], 'start');\n }\n for (let i = 0; i < items.length; i++) {\n setFixed(items[i], 'end');\n }\n let fixedOffset = 0;\n for (let i = 0; i < items.length; i++) {\n fixedOffset = setFixedOffset(items[i], fixedOffset);\n }\n let fixedEndOffset = 0;\n for (let i = items.length - 1; i >= 0; i--) {\n fixedEndOffset = setFixedEndOffset(items[i], fixedEndOffset);\n }\n}\nfunction setFixedOffset(item) {\n let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (!item) return offset;\n if (item.children) {\n item.fixedOffset = offset;\n for (const child of item.children) {\n offset = setFixedOffset(child, offset);\n }\n } else if (item.fixed && item.fixed !== 'end') {\n item.fixedOffset = offset;\n offset += parseFloat(item.width || '0') || 0;\n }\n return offset;\n}\nfunction setFixedEndOffset(item) {\n let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (!item) return offset;\n if (item.children) {\n item.fixedEndOffset = offset;\n for (const child of item.children) {\n offset = setFixedEndOffset(child, offset);\n }\n } else if (item.fixed === 'end') {\n item.fixedEndOffset = offset;\n offset += parseFloat(item.width || '0') || 0;\n }\n return offset;\n}\nfunction parse(items, maxDepth) {\n const headers = [];\n let currentDepth = 0;\n const queue = priorityQueue(items);\n while (queue.size() > 0) {\n let rowSize = queue.count();\n const row = [];\n let fraction = 1;\n while (rowSize > 0) {\n const {\n element: item,\n priority\n } = queue.dequeue();\n const diff = maxDepth - currentDepth - getDepth(item);\n row.push({\n ...item,\n rowspan: diff ?? 1,\n colspan: item.children ? extractLeaves(item).length : 1\n });\n if (item.children) {\n for (const child of item.children) {\n // This internally sorts items that are on the same priority \"row\"\n const sort = priority % 1 + fraction / Math.pow(10, currentDepth + 2);\n queue.enqueue(child, currentDepth + diff + sort);\n }\n }\n fraction += 1;\n rowSize -= 1;\n }\n currentDepth += 1;\n headers.push(row);\n }\n const columns = items.map(item => extractLeaves(item)).flat();\n return {\n columns,\n headers\n };\n}\nfunction convertToInternalHeaders(items) {\n const internalHeaders = [];\n for (const item of items) {\n const defaultItem = {\n ...getDefaultItem(item),\n ...item\n };\n const key = defaultItem.key ?? (typeof defaultItem.value === 'string' ? defaultItem.value : null);\n const value = defaultItem.value ?? key ?? null;\n const internalItem = {\n ...defaultItem,\n key,\n value,\n sortable: defaultItem.sortable ?? (defaultItem.key != null || !!defaultItem.sort),\n children: defaultItem.children ? convertToInternalHeaders(defaultItem.children) : undefined\n };\n internalHeaders.push(internalItem);\n }\n return internalHeaders;\n}\nexport function createHeaders(props, options) {\n const headers = ref([]);\n const columns = ref([]);\n const sortFunctions = ref({});\n const sortRawFunctions = ref({});\n const filterFunctions = ref({});\n watchEffect(() => {\n const _headers = props.headers || Object.keys(props.items[0] ?? {}).map(key => ({\n key,\n title: capitalize(key)\n }));\n const items = _headers.slice();\n const keys = extractKeys(items);\n if (options?.groupBy?.value.length && !keys.has('data-table-group')) {\n items.unshift({\n key: 'data-table-group',\n title: 'Group'\n });\n }\n if (options?.showSelect?.value && !keys.has('data-table-select')) {\n items.unshift({\n key: 'data-table-select'\n });\n }\n if (options?.showExpand?.value && !keys.has('data-table-expand')) {\n items.push({\n key: 'data-table-expand'\n });\n }\n const internalHeaders = convertToInternalHeaders(items);\n parseFixedColumns(internalHeaders);\n const maxDepth = Math.max(...internalHeaders.map(item => getDepth(item))) + 1;\n const parsed = parse(internalHeaders, maxDepth);\n headers.value = parsed.headers;\n columns.value = parsed.columns;\n const flatHeaders = parsed.headers.flat(1);\n for (const header of flatHeaders) {\n if (!header.key) continue;\n if (header.sortable) {\n if (header.sort) {\n sortFunctions.value[header.key] = header.sort;\n }\n if (header.sortRaw) {\n sortRawFunctions.value[header.key] = header.sortRaw;\n }\n }\n if (header.filter) {\n filterFunctions.value[header.key] = header.filter;\n }\n }\n });\n const data = {\n headers,\n columns,\n sortFunctions,\n sortRawFunctions,\n filterFunctions\n };\n provide(VDataTableHeadersSymbol, data);\n return data;\n}\nexport function useHeaders() {\n const data = inject(VDataTableHeadersSymbol);\n if (!data) throw new Error('Missing headers!');\n return data;\n}\n//# sourceMappingURL=headers.js.map","// Composables\nimport { useProxiedModel } from \"../../../composables/proxiedModel.js\"; // Utilities\nimport { computed, inject, provide, shallowRef, toRef } from 'vue';\nimport { deepEqual, isPrimitive, propsFactory, wrapInArray } from \"../../../util/index.js\"; // Types\nconst singleSelectStrategy = {\n showSelectAll: false,\n allSelected: () => [],\n select: _ref => {\n let {\n items,\n value\n } = _ref;\n return new Set(value ? [items[0]?.value] : []);\n },\n selectAll: _ref2 => {\n let {\n selected\n } = _ref2;\n return selected;\n }\n};\nconst pageSelectStrategy = {\n showSelectAll: true,\n allSelected: _ref3 => {\n let {\n currentPage\n } = _ref3;\n return currentPage;\n },\n select: _ref4 => {\n let {\n items,\n value,\n selected\n } = _ref4;\n for (const item of items) {\n if (value) selected.add(item.value);else selected.delete(item.value);\n }\n return selected;\n },\n selectAll: _ref5 => {\n let {\n value,\n currentPage,\n selected\n } = _ref5;\n return pageSelectStrategy.select({\n items: currentPage,\n value,\n selected\n });\n }\n};\nconst allSelectStrategy = {\n showSelectAll: true,\n allSelected: _ref6 => {\n let {\n allItems\n } = _ref6;\n return allItems;\n },\n select: _ref7 => {\n let {\n items,\n value,\n selected\n } = _ref7;\n for (const item of items) {\n if (value) selected.add(item.value);else selected.delete(item.value);\n }\n return selected;\n },\n selectAll: _ref8 => {\n let {\n value,\n allItems\n } = _ref8;\n return new Set(value ? allItems.map(item => item.value) : []);\n }\n};\nexport const makeDataTableSelectProps = propsFactory({\n showSelect: Boolean,\n selectStrategy: {\n type: [String, Object],\n default: 'page'\n },\n modelValue: {\n type: Array,\n default: () => []\n },\n valueComparator: Function\n}, 'DataTable-select');\nexport const VDataTableSelectionSymbol = Symbol.for('vuetify:data-table-selection');\nexport function provideSelection(props, _ref9) {\n let {\n allItems,\n currentPage\n } = _ref9;\n const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {\n const customComparator = props.valueComparator;\n if (customComparator) {\n return new Set(wrapInArray(v).map(v => {\n return allItems.value.find(item => customComparator(v, item.value))?.value ?? v;\n }));\n }\n return new Set(wrapInArray(v).map(v => {\n return isPrimitive(v) ? allItems.value.find(item => v === item.value)?.value ?? v : allItems.value.find(item => deepEqual(v, item.value))?.value ?? v;\n }));\n }, v => {\n return [...v.values()];\n });\n const allSelectable = computed(() => allItems.value.filter(item => item.selectable));\n const currentPageSelectable = computed(() => currentPage.value.filter(item => item.selectable));\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy;\n switch (props.selectStrategy) {\n case 'single':\n return singleSelectStrategy;\n case 'all':\n return allSelectStrategy;\n case 'page':\n default:\n return pageSelectStrategy;\n }\n });\n const lastSelectedIndex = shallowRef(null);\n function isSelected(items) {\n return wrapInArray(items).every(item => selected.value.has(item.value));\n }\n function isSomeSelected(items) {\n return wrapInArray(items).some(item => selected.value.has(item.value));\n }\n function select(items, value) {\n const newSelected = selectStrategy.value.select({\n items,\n value,\n selected: new Set(selected.value)\n });\n selected.value = newSelected;\n }\n function toggleSelect(item, index, event) {\n const items = [];\n index = index ?? currentPage.value.findIndex(i => i.value === item.value);\n if (props.selectStrategy !== 'single' && event?.shiftKey && lastSelectedIndex.value !== null) {\n const [start, end] = [lastSelectedIndex.value, index].sort((a, b) => a - b);\n items.push(...currentPage.value.slice(start, end + 1).filter(item => item.selectable));\n } else {\n items.push(item);\n lastSelectedIndex.value = index;\n }\n select(items, !isSelected([item]));\n }\n function selectAll(value) {\n const newSelected = selectStrategy.value.selectAll({\n value,\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n selected: new Set(selected.value)\n });\n selected.value = newSelected;\n }\n const someSelected = computed(() => selected.value.size > 0);\n const allSelected = computed(() => {\n const items = selectStrategy.value.allSelected({\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value\n });\n return !!items.length && isSelected(items);\n });\n const showSelectAll = toRef(() => selectStrategy.value.showSelectAll);\n const data = {\n toggleSelect,\n select,\n selectAll,\n isSelected,\n isSomeSelected,\n someSelected,\n allSelected,\n showSelectAll,\n lastSelectedIndex,\n selectStrategy\n };\n provide(VDataTableSelectionSymbol, data);\n return data;\n}\nexport function useSelection() {\n const data = inject(VDataTableSelectionSymbol);\n if (!data) throw new Error('Missing selection!');\n return data;\n}\n//# sourceMappingURL=select.js.map","// Composables\nimport { useLocale } from \"../../../composables/locale.js\";\nimport { useProxiedModel } from \"../../../composables/proxiedModel.js\"; // Utilities\nimport { computed, inject, provide, toRef } from 'vue';\nimport { getObjectValueByPath, isEmpty, propsFactory } from \"../../../util/index.js\"; // Types\nexport const makeDataTableSortProps = propsFactory({\n sortBy: {\n type: Array,\n default: () => []\n },\n customKeySort: Object,\n multiSort: Boolean,\n mustSort: Boolean\n}, 'DataTable-sort');\nconst VDataTableSortSymbol = Symbol.for('vuetify:data-table-sort');\nexport function createSort(props) {\n const sortBy = useProxiedModel(props, 'sortBy');\n const mustSort = toRef(() => props.mustSort);\n const multiSort = toRef(() => props.multiSort);\n return {\n sortBy,\n mustSort,\n multiSort\n };\n}\nexport function provideSort(options) {\n const {\n sortBy,\n mustSort,\n multiSort,\n page\n } = options;\n const toggleSort = column => {\n if (column.key == null) return;\n let newSortBy = sortBy.value.map(x => ({\n ...x\n })) ?? [];\n const item = newSortBy.find(x => x.key === column.key);\n if (!item) {\n if (multiSort.value) {\n newSortBy.push({\n key: column.key,\n order: 'asc'\n });\n } else {\n newSortBy = [{\n key: column.key,\n order: 'asc'\n }];\n }\n } else if (item.order === 'desc') {\n if (mustSort.value && newSortBy.length === 1) {\n item.order = 'asc';\n } else {\n newSortBy = newSortBy.filter(x => x.key !== column.key);\n }\n } else {\n item.order = 'desc';\n }\n sortBy.value = newSortBy;\n if (page) page.value = 1;\n };\n function isSorted(column) {\n return !!sortBy.value.find(item => item.key === column.key);\n }\n const data = {\n sortBy,\n toggleSort,\n isSorted\n };\n provide(VDataTableSortSymbol, data);\n return data;\n}\nexport function useSort() {\n const data = inject(VDataTableSortSymbol);\n if (!data) throw new Error('Missing sort!');\n return data;\n}\n\n// TODO: abstract into project composable\nexport function useSortedItems(props, items, sortBy, options) {\n const locale = useLocale();\n const sortedItems = computed(() => {\n if (!sortBy.value.length) return items.value;\n return sortItems(items.value, sortBy.value, locale.current.value, {\n transform: options?.transform,\n sortFunctions: {\n ...props.customKeySort,\n ...options?.sortFunctions?.value\n },\n sortRawFunctions: options?.sortRawFunctions?.value\n });\n });\n return {\n sortedItems\n };\n}\nexport function sortItems(items, sortByItems, locale, options) {\n const stringCollator = new Intl.Collator(locale, {\n sensitivity: 'accent',\n usage: 'sort'\n });\n const transformedItems = items.map(item => [item, options?.transform ? options.transform(item) : item]);\n return transformedItems.sort((a, b) => {\n for (let i = 0; i < sortByItems.length; i++) {\n let hasCustomResult = false;\n const sortKey = sortByItems[i].key;\n const sortOrder = sortByItems[i].order ?? 'asc';\n if (sortOrder === false) continue;\n let sortA = getObjectValueByPath(a[1], sortKey);\n let sortB = getObjectValueByPath(b[1], sortKey);\n let sortARaw = a[0].raw;\n let sortBRaw = b[0].raw;\n if (sortOrder === 'desc') {\n [sortA, sortB] = [sortB, sortA];\n [sortARaw, sortBRaw] = [sortBRaw, sortARaw];\n }\n if (options?.sortRawFunctions?.[sortKey]) {\n const customResult = options.sortRawFunctions[sortKey](sortARaw, sortBRaw);\n if (customResult == null) continue;\n hasCustomResult = true;\n if (customResult) return customResult;\n }\n if (options?.sortFunctions?.[sortKey]) {\n const customResult = options.sortFunctions[sortKey](sortA, sortB);\n if (customResult == null) continue;\n hasCustomResult = true;\n if (customResult) return customResult;\n }\n if (hasCustomResult) continue;\n\n // Dates should be compared numerically\n if (sortA instanceof Date && sortB instanceof Date) {\n sortA = sortA.getTime();\n sortB = sortB.getTime();\n }\n [sortA, sortB] = [sortA, sortB].map(s => s != null ? s.toString().toLocaleLowerCase() : s);\n if (sortA !== sortB) {\n if (isEmpty(sortA) && isEmpty(sortB)) return 0;\n if (isEmpty(sortA)) return -1;\n if (isEmpty(sortB)) return 1;\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB);\n return stringCollator.compare(sortA, sortB);\n }\n }\n return 0;\n }).map(_ref => {\n let [item] = _ref;\n return item;\n });\n}\n//# sourceMappingURL=sort.js.map","import { createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, mergeProps as _mergeProps, Fragment as _Fragment } from \"vue\";\n// Components\nimport { VDataTableColumn } from \"./VDataTableColumn.js\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.js\";\nimport { VChip } from \"../VChip/index.js\";\nimport { VIcon } from \"../VIcon/index.js\";\nimport { VSelect } from \"../VSelect/index.js\"; // Composables\nimport { useHeaders } from \"./composables/headers.js\";\nimport { useSelection } from \"./composables/select.js\";\nimport { useSort } from \"./composables/sort.js\";\nimport { useBackgroundColor } from \"../../composables/color.js\";\nimport { makeDensityProps } from \"../../composables/density.js\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.js\";\nimport { IconValue } from \"../../composables/icons.js\";\nimport { LoaderSlot, makeLoaderProps, useLoader } from \"../../composables/loader.js\";\nimport { useLocale } from \"../../composables/locale.js\"; // Utilities\nimport { computed, mergeProps } from 'vue';\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVDataTableHeadersProps = propsFactory({\n color: String,\n disableSort: Boolean,\n fixedHeader: Boolean,\n multiSort: Boolean,\n sortAscIcon: {\n type: IconValue,\n default: '$sortAsc'\n },\n sortDescIcon: {\n type: IconValue,\n default: '$sortDesc'\n },\n headerProps: {\n type: Object\n },\n /** @deprecated */\n sticky: Boolean,\n ...makeDensityProps(),\n ...makeDisplayProps(),\n ...makeLoaderProps()\n}, 'VDataTableHeaders');\nexport const VDataTableHeaders = genericComponent()({\n name: 'VDataTableHeaders',\n props: makeVDataTableHeadersProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const {\n toggleSort,\n sortBy,\n isSorted\n } = useSort();\n const {\n someSelected,\n allSelected,\n selectAll,\n showSelectAll\n } = useSelection();\n const {\n columns,\n headers\n } = useHeaders();\n const {\n loaderClasses\n } = useLoader(props);\n function getFixedStyles(column, y) {\n if (!(props.sticky || props.fixedHeader) && !column.fixed) return undefined;\n const fixedSide = typeof column.fixed === 'string' ? column.fixed : column.fixed ? 'start' : 'none';\n return {\n position: 'sticky',\n left: fixedSide === 'start' ? convertToUnit(column.fixedOffset) : undefined,\n right: fixedSide === 'end' ? convertToUnit(column.fixedEndOffset) : undefined,\n top: props.sticky || props.fixedHeader ? `calc(var(--v-table-header-height) * ${y})` : undefined\n };\n }\n function handleEnterKeyPress(event, column) {\n if (event.key === 'Enter' && !props.disableSort) {\n toggleSort(column);\n }\n }\n function getSortIcon(column) {\n const item = sortBy.value.find(item => item.key === column.key);\n if (!item) return props.sortAscIcon;\n return item.order === 'asc' ? props.sortAscIcon : props.sortDescIcon;\n }\n const {\n backgroundColorClasses,\n backgroundColorStyles\n } = useBackgroundColor(() => props.color);\n const {\n displayClasses,\n mobile\n } = useDisplay(props);\n const slotProps = computed(() => ({\n headers: headers.value,\n columns: columns.value,\n toggleSort,\n isSorted,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n selectAll,\n getSortIcon\n }));\n const headerCellClasses = computed(() => ['v-data-table__th', {\n 'v-data-table__th--sticky': props.sticky || props.fixedHeader\n }, displayClasses.value, loaderClasses.value]);\n const VDataTableHeaderCell = _ref2 => {\n let {\n column,\n x,\n y\n } = _ref2;\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand';\n const isEmpty = column.key === 'data-table-group' && column.width === 0 && !column.title;\n const headerProps = mergeProps(props.headerProps ?? {}, column.headerProps ?? {});\n return _createVNode(VDataTableColumn, _mergeProps({\n \"tag\": \"th\",\n \"align\": column.align,\n \"class\": [{\n 'v-data-table__th--sortable': column.sortable && !props.disableSort,\n 'v-data-table__th--sorted': isSorted(column),\n 'v-data-table__th--fixed': column.fixed\n }, ...headerCellClasses.value],\n \"style\": {\n width: convertToUnit(column.width),\n minWidth: convertToUnit(column.minWidth),\n maxWidth: convertToUnit(column.maxWidth),\n ...getFixedStyles(column, y)\n },\n \"colspan\": column.colspan,\n \"rowspan\": column.rowspan,\n \"fixed\": column.fixed,\n \"nowrap\": column.nowrap,\n \"lastFixed\": column.lastFixed,\n \"firstFixedEnd\": column.firstFixedEnd,\n \"noPadding\": noPadding,\n \"empty\": isEmpty,\n \"tabindex\": column.sortable ? 0 : undefined,\n \"onClick\": column.sortable ? () => toggleSort(column) : undefined,\n \"onKeydown\": column.sortable ? event => handleEnterKeyPress(event, column) : undefined\n }, headerProps), {\n default: () => {\n const columnSlotName = `header.${column.key}`;\n const columnSlotProps = {\n column,\n selectAll,\n isSorted,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n getSortIcon\n };\n if (slots[columnSlotName]) return slots[columnSlotName](columnSlotProps);\n if (isEmpty) return '';\n if (column.key === 'data-table-select') {\n return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll.value && _createVNode(VCheckboxBtn, {\n \"density\": props.density,\n \"modelValue\": allSelected.value,\n \"indeterminate\": someSelected.value && !allSelected.value,\n \"onUpdate:modelValue\": selectAll\n }, null));\n }\n return _createElementVNode(\"div\", {\n \"class\": \"v-data-table-header__content\"\n }, [_createElementVNode(\"span\", null, [column.title]), column.sortable && !props.disableSort && _createVNode(VIcon, {\n \"key\": \"icon\",\n \"class\": \"v-data-table-header__sort-icon\",\n \"icon\": getSortIcon(column)\n }, null), props.multiSort && isSorted(column) && _createElementVNode(\"div\", {\n \"key\": \"badge\",\n \"class\": _normalizeClass(['v-data-table-header__sort-badge', ...backgroundColorClasses.value]),\n \"style\": _normalizeStyle(backgroundColorStyles.value)\n }, [sortBy.value.findIndex(x => x.key === column.key) + 1])]);\n }\n });\n };\n const VDataTableMobileHeaderCell = () => {\n const displayItems = computed(() => {\n return columns.value.filter(column => column?.sortable && !props.disableSort);\n });\n const appendIcon = computed(() => {\n const showSelectColumn = columns.value.find(column => column.key === 'data-table-select');\n if (showSelectColumn == null) return;\n return allSelected.value ? '$checkboxOn' : someSelected.value ? '$checkboxIndeterminate' : '$checkboxOff';\n });\n return _createVNode(VDataTableColumn, _mergeProps({\n \"tag\": \"th\",\n \"class\": [...headerCellClasses.value],\n \"colspan\": headers.value.length + 1\n }, props.headerProps), {\n default: () => [_createElementVNode(\"div\", {\n \"class\": \"v-data-table-header__content\"\n }, [_createVNode(VSelect, {\n \"chips\": true,\n \"class\": \"v-data-table__td-sort-select\",\n \"clearable\": true,\n \"density\": \"default\",\n \"items\": displayItems.value,\n \"label\": t('$vuetify.dataTable.sortBy'),\n \"multiple\": props.multiSort,\n \"variant\": \"underlined\",\n \"onClick:clear\": () => sortBy.value = [],\n \"appendIcon\": appendIcon.value,\n \"onClick:append\": () => selectAll(!allSelected.value)\n }, {\n chip: props => _createVNode(VChip, {\n \"onClick\": props.item.raw?.sortable ? () => toggleSort(props.item.raw) : undefined,\n \"onMousedown\": e => {\n e.preventDefault();\n e.stopPropagation();\n }\n }, {\n default: () => [props.item.title, _createVNode(VIcon, {\n \"class\": _normalizeClass(['v-data-table__td-sort-icon', isSorted(props.item.raw) && 'v-data-table__td-sort-icon-active']),\n \"icon\": getSortIcon(props.item.raw),\n \"size\": \"small\"\n }, null)]\n })\n })])]\n });\n };\n useRender(() => {\n return mobile.value ? _createElementVNode(\"tr\", null, [_createVNode(VDataTableMobileHeaderCell, null, null)]) : _createElementVNode(_Fragment, null, [slots.headers ? slots.headers(slotProps.value) : headers.value.map((row, y) => _createElementVNode(\"tr\", null, [row.map((column, x) => _createVNode(VDataTableHeaderCell, {\n \"column\": column,\n \"x\": x,\n \"y\": y\n }, null))])), props.loading && _createElementVNode(\"tr\", {\n \"class\": \"v-data-table-progress\"\n }, [_createElementVNode(\"th\", {\n \"colspan\": columns.value.length\n }, [_createVNode(LoaderSlot, {\n \"name\": \"v-data-table-progress\",\n \"absolute\": true,\n \"active\": true,\n \"color\": typeof props.loading === 'boolean' ? undefined : props.loading,\n \"indeterminate\": true\n }, {\n default: slots.loader\n })])])]);\n });\n }\n});\n//# sourceMappingURL=VDataTableHeaders.js.map","// Composables\nimport { useProxiedModel } from \"../../../composables/proxiedModel.js\"; // Utilities\nimport { computed, inject, provide, ref, toValue } from 'vue';\nimport { getObjectValueByPath, propsFactory } from \"../../../util/index.js\"; // Types\nexport const makeDataTableGroupProps = propsFactory({\n groupBy: {\n type: Array,\n default: () => []\n }\n}, 'DataTable-group');\nconst VDataTableGroupSymbol = Symbol.for('vuetify:data-table-group');\nexport function createGroupBy(props) {\n const groupBy = useProxiedModel(props, 'groupBy');\n return {\n groupBy\n };\n}\nexport function provideGroupBy(options) {\n const {\n disableSort,\n groupBy,\n sortBy\n } = options;\n const opened = ref(new Set());\n const sortByWithGroups = computed(() => {\n return groupBy.value.map(val => ({\n ...val,\n order: val.order ?? false\n })).concat(disableSort?.value ? [] : sortBy.value);\n });\n function isGroupOpen(group) {\n return opened.value.has(group.id);\n }\n function toggleGroup(group) {\n const newOpened = new Set(opened.value);\n if (!isGroupOpen(group)) newOpened.add(group.id);else newOpened.delete(group.id);\n opened.value = newOpened;\n }\n function extractRows(items) {\n function dive(group) {\n const arr = [];\n for (const item of group.items) {\n if ('type' in item && item.type === 'group') {\n arr.push(...dive(item));\n } else {\n arr.push(item);\n }\n }\n return [...new Set(arr)];\n }\n return dive({\n type: 'group',\n items,\n id: 'dummy',\n key: 'dummy',\n value: 'dummy',\n depth: 0\n });\n }\n\n // onBeforeMount(() => {\n // for (const key of groupedItems.value.keys()) {\n // opened.value.add(key)\n // }\n // })\n\n const data = {\n sortByWithGroups,\n toggleGroup,\n opened,\n groupBy,\n extractRows,\n isGroupOpen\n };\n provide(VDataTableGroupSymbol, data);\n return data;\n}\nexport function useGroupBy() {\n const data = inject(VDataTableGroupSymbol);\n if (!data) throw new Error('Missing group!');\n return data;\n}\nfunction groupItemsByProperty(items, groupBy) {\n if (!items.length) return [];\n const groups = new Map();\n for (const item of items) {\n const value = getObjectValueByPath(item.raw, groupBy);\n if (!groups.has(value)) {\n groups.set(value, []);\n }\n groups.get(value).push(item);\n }\n return groups;\n}\nfunction groupItems(items, groupBy) {\n let depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n let prefix = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'root';\n if (!groupBy.length) return [];\n const groupedItems = groupItemsByProperty(items, groupBy[0]);\n const groups = [];\n const rest = groupBy.slice(1);\n groupedItems.forEach((items, value) => {\n const key = groupBy[0];\n const id = `${prefix}_${key}_${value}`;\n groups.push({\n depth,\n id,\n key,\n value,\n items: rest.length ? groupItems(items, rest, depth + 1, id) : items,\n type: 'group'\n });\n });\n return groups;\n}\nfunction flattenItems(items, opened, hasSummary) {\n const flatItems = [];\n for (const item of items) {\n // TODO: make this better\n if ('type' in item && item.type === 'group') {\n if (item.value != null) {\n flatItems.push(item);\n }\n if (opened.has(item.id) || item.value == null) {\n flatItems.push(...flattenItems(item.items, opened, hasSummary));\n if (hasSummary) {\n flatItems.push({\n ...item,\n type: 'group-summary'\n });\n }\n }\n } else {\n flatItems.push(item);\n }\n }\n return flatItems;\n}\nexport function useGroupedItems(items, groupBy, opened, hasSummary) {\n const flatItems = computed(() => {\n if (!groupBy.value.length) return items.value;\n const groupedItems = groupItems(items.value, groupBy.value.map(item => item.key));\n return flattenItems(groupedItems, opened.value, toValue(hasSummary));\n });\n return {\n flatItems\n };\n}\n//# sourceMappingURL=group.js.map","import { createVNode as _createVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode } from \"vue\";\n// Components\nimport { VDataTableColumn } from \"./VDataTableColumn.js\";\nimport { VBtn } from \"../VBtn/index.js\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.js\"; // Composables\nimport { useGroupBy } from \"./composables/group.js\";\nimport { useHeaders } from \"./composables/headers.js\";\nimport { useSelection } from \"./composables/select.js\";\nimport { makeDensityProps } from \"../../composables/density.js\";\nimport { IconValue } from \"../../composables/icons.js\"; // Utilities\nimport { computed, toRef } from 'vue';\nimport { genericComponent, propsFactory } from \"../../util/index.js\"; // Types\nexport const makeVDataTableGroupHeaderRowProps = propsFactory({\n item: {\n type: Object,\n required: true\n },\n groupCollapseIcon: {\n type: IconValue,\n default: '$tableGroupCollapse'\n },\n groupExpandIcon: {\n type: IconValue,\n default: '$tableGroupExpand'\n },\n ...makeDensityProps()\n}, 'VDataTableGroupHeaderRow');\nexport const VDataTableGroupHeaderRow = genericComponent()({\n name: 'VDataTableGroupHeaderRow',\n props: makeVDataTableGroupHeaderRowProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n isGroupOpen,\n toggleGroup,\n extractRows\n } = useGroupBy();\n const {\n isSelected,\n isSomeSelected,\n select\n } = useSelection();\n const {\n columns\n } = useHeaders();\n const rows = computed(() => {\n return extractRows([props.item]);\n });\n const colspan = toRef(() => columns.value.length - (columns.value.some(c => c.key === 'data-table-select') ? 1 : 0));\n return () => _createElementVNode(\"tr\", {\n \"class\": \"v-data-table-group-header-row\",\n \"style\": {\n '--v-data-table-group-header-row-depth': props.item.depth\n }\n }, [columns.value.map(column => {\n if (column.key === 'data-table-group') {\n const icon = isGroupOpen(props.item) ? props.groupCollapseIcon : props.groupExpandIcon;\n const onClick = () => toggleGroup(props.item);\n return slots['data-table-group']?.({\n item: props.item,\n count: rows.value.length,\n props: {\n icon,\n onClick\n }\n }) ?? _createVNode(VDataTableColumn, {\n \"class\": \"v-data-table-group-header-row__column\",\n \"colspan\": colspan.value\n }, {\n default: () => [_createVNode(VBtn, {\n \"size\": \"small\",\n \"variant\": \"text\",\n \"icon\": icon,\n \"onClick\": onClick\n }, null), _createElementVNode(\"span\", null, [props.item.value]), _createElementVNode(\"span\", null, [_createTextVNode(\"(\"), rows.value.length, _createTextVNode(\")\")])]\n });\n } else if (column.key === 'data-table-select') {\n const modelValue = isSelected(rows.value);\n const indeterminate = isSomeSelected(rows.value) && !modelValue;\n const selectGroup = v => select(rows.value, v);\n return slots['data-table-select']?.({\n props: {\n modelValue,\n indeterminate,\n 'onUpdate:modelValue': selectGroup\n }\n }) ?? _createVNode(VDataTableColumn, {\n \"class\": \"v-data-table__td--select-row\",\n \"noPadding\": true\n }, {\n default: () => [_createVNode(VCheckboxBtn, {\n \"density\": props.density,\n \"modelValue\": modelValue,\n \"indeterminate\": indeterminate,\n \"onUpdate:modelValue\": selectGroup\n }, null)]\n });\n }\n return '';\n })]);\n }\n});\n//# sourceMappingURL=VDataTableGroupHeaderRow.js.map","// Composables\nimport { useProxiedModel } from \"../../../composables/proxiedModel.js\"; // Utilities\nimport { inject, provide, toRaw, toRef } from 'vue';\nimport { propsFactory } from \"../../../util/index.js\"; // Types\nexport const makeDataTableExpandProps = propsFactory({\n expandOnClick: Boolean,\n showExpand: Boolean,\n expanded: {\n type: Array,\n default: () => []\n }\n}, 'DataTable-expand');\nexport const VDataTableExpandedKey = Symbol.for('vuetify:datatable:expanded');\nexport function provideExpanded(props) {\n const expandOnClick = toRef(() => props.expandOnClick);\n const expanded = useProxiedModel(props, 'expanded', props.expanded, v => {\n return new Set(v);\n }, v => {\n return [...v.values()];\n });\n function expand(item, value) {\n const newExpanded = new Set(expanded.value);\n const rawValue = toRaw(item.value);\n if (!value) {\n const item = [...expanded.value].find(x => toRaw(x) === rawValue);\n newExpanded.delete(item);\n } else {\n newExpanded.add(rawValue);\n }\n expanded.value = newExpanded;\n }\n function isExpanded(item) {\n const rawValue = toRaw(item.value);\n return [...expanded.value].some(x => toRaw(x) === rawValue);\n }\n function toggleExpand(item) {\n expand(item, !isExpanded(item));\n }\n const data = {\n expand,\n expanded,\n expandOnClick,\n isExpanded,\n toggleExpand\n };\n provide(VDataTableExpandedKey, data);\n return data;\n}\nexport function useExpanded() {\n const data = inject(VDataTableExpandedKey);\n if (!data) throw new Error('foo');\n return data;\n}\n//# sourceMappingURL=expand.js.map","import { createVNode as _createVNode, Fragment as _Fragment, createElementVNode as _createElementVNode, mergeProps as _mergeProps, normalizeClass as _normalizeClass } from \"vue\";\n// Components\nimport { VDataTableColumn } from \"./VDataTableColumn.js\";\nimport { VBtn } from \"../VBtn/index.js\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.js\"; // Composables\nimport { useExpanded } from \"./composables/expand.js\";\nimport { useHeaders } from \"./composables/headers.js\";\nimport { useSelection } from \"./composables/select.js\";\nimport { useSort } from \"./composables/sort.js\";\nimport { makeDensityProps } from \"../../composables/density.js\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.js\";\nimport { IconValue } from \"../../composables/icons.js\"; // Utilities\nimport { toDisplayString, withModifiers } from 'vue';\nimport { EventProp, genericComponent, getObjectValueByPath, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVDataTableRowProps = propsFactory({\n index: Number,\n item: Object,\n cellProps: [Object, Function],\n collapseIcon: {\n type: IconValue,\n default: '$collapse'\n },\n expandIcon: {\n type: IconValue,\n default: '$expand'\n },\n onClick: EventProp(),\n onContextmenu: EventProp(),\n onDblclick: EventProp(),\n ...makeDensityProps(),\n ...makeDisplayProps()\n}, 'VDataTableRow');\nexport const VDataTableRow = genericComponent()({\n name: 'VDataTableRow',\n props: makeVDataTableRowProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n displayClasses,\n mobile\n } = useDisplay(props, 'v-data-table__tr');\n const {\n isSelected,\n toggleSelect,\n someSelected,\n allSelected,\n selectAll\n } = useSelection();\n const {\n isExpanded,\n toggleExpand\n } = useExpanded();\n const {\n toggleSort,\n sortBy,\n isSorted\n } = useSort();\n const {\n columns\n } = useHeaders();\n useRender(() => _createElementVNode(\"tr\", {\n \"class\": _normalizeClass(['v-data-table__tr', {\n 'v-data-table__tr--clickable': !!(props.onClick || props.onContextmenu || props.onDblclick)\n }, displayClasses.value]),\n \"onClick\": props.onClick,\n \"onContextmenu\": props.onContextmenu,\n \"onDblclick\": props.onDblclick\n }, [props.item && columns.value.map((column, i) => {\n const item = props.item;\n const slotName = `item.${column.key}`;\n const headerSlotName = `header.${column.key}`;\n const slotProps = {\n index: props.index,\n item: item.raw,\n internalItem: item,\n value: getObjectValueByPath(item.columns, column.key),\n column,\n isSelected,\n toggleSelect,\n isExpanded,\n toggleExpand\n };\n const columnSlotProps = {\n column,\n selectAll,\n isSorted,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n getSortIcon: () => ''\n };\n const cellProps = typeof props.cellProps === 'function' ? props.cellProps({\n index: slotProps.index,\n item: slotProps.item,\n internalItem: slotProps.internalItem,\n value: slotProps.value,\n column\n }) : props.cellProps;\n const columnCellProps = typeof column.cellProps === 'function' ? column.cellProps({\n index: slotProps.index,\n item: slotProps.item,\n internalItem: slotProps.internalItem,\n value: slotProps.value\n }) : column.cellProps;\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand';\n const isEmpty = column.key === 'data-table-group' && column.width === 0 && !column.title;\n return _createVNode(VDataTableColumn, _mergeProps({\n \"align\": column.align,\n \"indent\": column.intent,\n \"class\": {\n 'v-data-table__td--expanded-row': column.key === 'data-table-expand',\n 'v-data-table__td--select-row': column.key === 'data-table-select'\n },\n \"fixed\": column.fixed,\n \"fixedOffset\": column.fixedOffset,\n \"fixedEndOffset\": column.fixedEndOffset,\n \"lastFixed\": column.lastFixed,\n \"firstFixedEnd\": column.firstFixedEnd,\n \"maxWidth\": !mobile.value ? column.maxWidth : undefined,\n \"noPadding\": noPadding,\n \"empty\": isEmpty,\n \"nowrap\": column.nowrap,\n \"width\": !mobile.value ? column.width : undefined\n }, cellProps, columnCellProps), {\n default: () => {\n if (column.key === 'data-table-select') {\n return slots['item.data-table-select']?.({\n ...slotProps,\n props: {\n disabled: !item.selectable,\n modelValue: isSelected([item]),\n onClick: withModifiers(() => toggleSelect(item), ['stop'])\n }\n }) ?? _createVNode(VCheckboxBtn, {\n \"disabled\": !item.selectable,\n \"density\": props.density,\n \"modelValue\": isSelected([item]),\n \"onClick\": withModifiers(event => toggleSelect(item, props.index, event), ['stop'])\n }, null);\n }\n if (column.key === 'data-table-expand') {\n return slots['item.data-table-expand']?.({\n ...slotProps,\n props: {\n icon: isExpanded(item) ? props.collapseIcon : props.expandIcon,\n size: 'small',\n variant: 'text',\n onClick: withModifiers(() => toggleExpand(item), ['stop'])\n }\n }) ?? _createVNode(VBtn, {\n \"icon\": isExpanded(item) ? props.collapseIcon : props.expandIcon,\n \"size\": \"small\",\n \"variant\": \"text\",\n \"onClick\": withModifiers(() => toggleExpand(item), ['stop'])\n }, null);\n }\n if (slots[slotName] && !mobile.value) return slots[slotName](slotProps);\n const displayValue = toDisplayString(slotProps.value);\n return !mobile.value ? displayValue : _createElementVNode(_Fragment, null, [_createElementVNode(\"div\", {\n \"class\": \"v-data-table__td-title\"\n }, [slots[headerSlotName]?.(columnSlotProps) ?? column.title]), _createElementVNode(\"div\", {\n \"class\": \"v-data-table__td-value\"\n }, [slots[slotName]?.(slotProps) ?? displayValue])]);\n }\n });\n })]));\n }\n});\n//# sourceMappingURL=VDataTableRow.js.map","import { createElementVNode as _createElementVNode, Fragment as _Fragment, mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Components\nimport { makeVDataTableGroupHeaderRowProps, VDataTableGroupHeaderRow } from \"./VDataTableGroupHeaderRow.js\";\nimport { makeVDataTableRowProps, VDataTableRow } from \"./VDataTableRow.js\"; // Composables\nimport { useExpanded } from \"./composables/expand.js\";\nimport { useGroupBy } from \"./composables/group.js\";\nimport { useHeaders } from \"./composables/headers.js\";\nimport { useSelection } from \"./composables/select.js\";\nimport { makeDisplayProps, useDisplay } from \"../../composables/display.js\";\nimport { useLocale } from \"../../composables/locale.js\"; // Utilities\nimport { Fragment, mergeProps } from 'vue';\nimport { genericComponent, getPrefixedEventHandlers, pick, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVDataTableRowsProps = propsFactory({\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText'\n },\n hideNoData: Boolean,\n items: {\n type: Array,\n default: () => []\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText'\n },\n rowProps: [Object, Function],\n cellProps: [Object, Function],\n ...pick(makeVDataTableRowProps(), ['collapseIcon', 'expandIcon', 'density']),\n ...pick(makeVDataTableGroupHeaderRowProps(), ['groupCollapseIcon', 'groupExpandIcon', 'density']),\n ...makeDisplayProps()\n}, 'VDataTableRows');\nexport const VDataTableRows = genericComponent()({\n name: 'VDataTableRows',\n inheritAttrs: false,\n props: makeVDataTableRowsProps(),\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n columns\n } = useHeaders();\n const {\n expandOnClick,\n toggleExpand,\n isExpanded\n } = useExpanded();\n const {\n isSelected,\n toggleSelect\n } = useSelection();\n const {\n toggleGroup,\n isGroupOpen\n } = useGroupBy();\n const {\n t\n } = useLocale();\n const {\n mobile\n } = useDisplay(props);\n useRender(() => {\n const groupHeaderRowProps = pick(props, ['groupCollapseIcon', 'groupExpandIcon', 'density']);\n if (props.loading && (!props.items.length || slots.loading)) {\n return _createElementVNode(\"tr\", {\n \"class\": \"v-data-table-rows-loading\",\n \"key\": \"loading\"\n }, [_createElementVNode(\"td\", {\n \"colspan\": columns.value.length\n }, [slots.loading?.() ?? t(props.loadingText)])]);\n }\n if (!props.loading && !props.items.length && !props.hideNoData) {\n return _createElementVNode(\"tr\", {\n \"class\": \"v-data-table-rows-no-data\",\n \"key\": \"no-data\"\n }, [_createElementVNode(\"td\", {\n \"colspan\": columns.value.length\n }, [slots['no-data']?.() ?? t(props.noDataText)])]);\n }\n return _createElementVNode(_Fragment, null, [props.items.map((item, index) => {\n if (item.type === 'group') {\n const slotProps = {\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n toggleGroup,\n isGroupOpen\n };\n return slots['group-header'] ? slots['group-header'](slotProps) : _createVNode(VDataTableGroupHeaderRow, _mergeProps({\n \"key\": `group-header_${item.id}`,\n \"item\": item\n }, getPrefixedEventHandlers(attrs, ':groupHeader', () => slotProps), groupHeaderRowProps), slots);\n }\n if (item.type === 'group-summary') {\n const slotProps = {\n index,\n item,\n columns: columns.value,\n toggleGroup\n };\n return slots['group-summary']?.(slotProps) ?? '';\n }\n const slotProps = {\n index,\n item: item.raw,\n internalItem: item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect\n };\n const itemSlotProps = {\n ...slotProps,\n props: mergeProps({\n key: `item_${item.key ?? item.index}`,\n onClick: expandOnClick.value ? () => {\n toggleExpand(item);\n } : undefined,\n index,\n item,\n cellProps: props.cellProps,\n collapseIcon: props.collapseIcon,\n expandIcon: props.expandIcon,\n density: props.density,\n mobile: mobile.value\n }, getPrefixedEventHandlers(attrs, ':row', () => slotProps), typeof props.rowProps === 'function' ? props.rowProps({\n item: slotProps.item,\n index: slotProps.index,\n internalItem: slotProps.internalItem\n }) : props.rowProps)\n };\n return _createElementVNode(_Fragment, {\n \"key\": itemSlotProps.props.key\n }, [slots.item ? slots.item(itemSlotProps) : _createVNode(VDataTableRow, itemSlotProps.props, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]);\n })]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VDataTableRows.js.map","import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VTable.css\";\n\n// Composables\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.js\";\nimport { makeTagProps } from \"../../composables/tag.js\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.js\"; // Utilities\nimport { convertToUnit, genericComponent, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVTableProps = propsFactory({\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n height: [Number, String],\n hover: Boolean,\n striped: {\n type: String,\n default: null,\n validator: v => ['even', 'odd'].includes(v)\n },\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps()\n}, 'VTable');\nexport const VTable = genericComponent()({\n name: 'VTable',\n props: makeVTableProps(),\n setup(props, _ref) {\n let {\n slots,\n emit\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n densityClasses\n } = useDensity(props);\n useRender(() => _createVNode(props.tag, {\n \"class\": _normalizeClass(['v-table', {\n 'v-table--fixed-height': !!props.height,\n 'v-table--fixed-header': props.fixedHeader,\n 'v-table--fixed-footer': props.fixedFooter,\n 'v-table--has-top': !!slots.top,\n 'v-table--has-bottom': !!slots.bottom,\n 'v-table--hover': props.hover,\n 'v-table--striped-even': props.striped === 'even',\n 'v-table--striped-odd': props.striped === 'odd'\n }, themeClasses.value, densityClasses.value, props.class]),\n \"style\": _normalizeStyle(props.style)\n }, {\n default: () => [slots.top?.(), slots.default ? _createElementVNode(\"div\", {\n \"class\": \"v-table__wrapper\",\n \"style\": {\n height: convertToUnit(props.height)\n }\n }, [_createElementVNode(\"table\", null, [slots.default()])]) : slots.wrapper?.(), slots.bottom?.()]\n }));\n return {};\n }\n});\n//# sourceMappingURL=VTable.js.map","// Utilities\nimport { computed } from 'vue';\nimport { getPropertyFromItem, propsFactory } from \"../../../util/index.js\"; // Types\n// Composables\nexport const makeDataTableItemsProps = propsFactory({\n items: {\n type: Array,\n default: () => []\n },\n itemValue: {\n type: [String, Array, Function],\n default: 'id'\n },\n itemSelectable: {\n type: [String, Array, Function],\n default: null\n },\n rowProps: [Object, Function],\n cellProps: [Object, Function],\n returnObject: Boolean\n}, 'DataTable-items');\nexport function transformItem(props, item, index, columns) {\n const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue);\n const selectable = getPropertyFromItem(item, props.itemSelectable, true);\n const itemColumns = columns.reduce((obj, column) => {\n if (column.key != null) obj[column.key] = getPropertyFromItem(item, column.value);\n return obj;\n }, {});\n return {\n type: 'item',\n key: props.returnObject ? getPropertyFromItem(item, props.itemValue) : value,\n index,\n value,\n selectable,\n columns: itemColumns,\n raw: item\n };\n}\nexport function transformItems(props, items, columns) {\n return items.map((item, index) => transformItem(props, item, index, columns));\n}\nexport function useDataTableItems(props, columns) {\n const items = computed(() => transformItems(props, props.items, columns.value));\n return {\n items\n };\n}\n//# sourceMappingURL=items.js.map","// Utilities\nimport { watch } from 'vue';\nimport { deepEqual, getCurrentInstance } from \"../../../util/index.js\"; // Types\nexport function useOptions(_ref) {\n let {\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search\n } = _ref;\n const vm = getCurrentInstance('VDataTable');\n const options = () => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n groupBy: groupBy.value,\n search: search.value\n });\n let oldOptions = null;\n watch(options, value => {\n if (deepEqual(oldOptions, value)) return;\n\n // Reset page when searching\n if (oldOptions && oldOptions.search !== value.search) {\n page.value = 1;\n }\n vm.emit('update:options', value);\n oldOptions = value;\n }, {\n deep: true,\n immediate: true\n });\n}\n//# sourceMappingURL=options.js.map","/* eslint-disable max-statements */\n/* eslint-disable no-labels */\n\n// Utilities\nimport { computed, shallowRef, unref, watchEffect, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, Fragment as _Fragment } from 'vue';\nimport { getPropertyFromItem, propsFactory, wrapInArray } from \"../util/index.js\"; // Types\n/**\n * - boolean: match without highlight\n * - number: single match (index), length already known\n * - []: single match (start, end)\n * - [][]: multiple matches (start, end), shouldn't overlap\n */\n// Composables\nexport const defaultFilter = (value, query, item) => {\n if (value == null || query == null) return -1;\n if (!query.length) return 0;\n value = value.toString().toLocaleLowerCase();\n query = query.toString().toLocaleLowerCase();\n const result = [];\n let idx = value.indexOf(query);\n while (~idx) {\n result.push([idx, idx + query.length]);\n idx = value.indexOf(query, idx + query.length);\n }\n return result.length ? result : -1;\n};\nfunction normaliseMatch(match, query) {\n if (match == null || typeof match === 'boolean' || match === -1) return;\n if (typeof match === 'number') return [[match, match + query.length]];\n if (Array.isArray(match[0])) return match;\n return [match];\n}\nexport const makeFilterProps = propsFactory({\n customFilter: Function,\n customKeyFilter: Object,\n filterKeys: [Array, String],\n filterMode: {\n type: String,\n default: 'intersection'\n },\n noFilter: Boolean\n}, 'filter');\n\n// eslint-disable-next-line complexity\nexport function filterItems(items, query, options) {\n const array = [];\n // always ensure we fall back to a functioning filter\n const filter = options?.default ?? defaultFilter;\n const keys = options?.filterKeys ? wrapInArray(options.filterKeys) : false;\n const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length;\n if (!items?.length) return array;\n let lookAheadItem = null;\n loop: for (let i = 0; i < items.length; i++) {\n const [item, transformed = item] = wrapInArray(items[i]);\n const customMatches = {};\n const defaultMatches = {};\n let match = -1;\n if ((query || customFiltersLength > 0) && !options?.noFilter) {\n let hasOnlyCustomFilters = false;\n if (typeof item === 'object') {\n if (item.type === 'divider' || item.type === 'subheader') {\n if (lookAheadItem?.type === 'divider' && item.type === 'subheader') {\n array.push(lookAheadItem); // divider before subheader\n }\n lookAheadItem = {\n index: i,\n matches: {},\n type: item.type\n };\n continue;\n }\n const filterKeys = keys || Object.keys(transformed);\n hasOnlyCustomFilters = filterKeys.length === customFiltersLength;\n for (const key of filterKeys) {\n const value = getPropertyFromItem(transformed, key);\n const keyFilter = options?.customKeyFilter?.[key];\n match = keyFilter ? keyFilter(value, query, item) : filter(value, query, item);\n if (match !== -1 && match !== false) {\n if (keyFilter) customMatches[key] = normaliseMatch(match, query);else defaultMatches[key] = normaliseMatch(match, query);\n } else if (options?.filterMode === 'every') {\n continue loop;\n }\n }\n } else {\n match = filter(item, query, item);\n if (match !== -1 && match !== false) {\n defaultMatches.title = normaliseMatch(match, query);\n }\n }\n const defaultMatchesLength = Object.keys(defaultMatches).length;\n const customMatchesLength = Object.keys(customMatches).length;\n if (!defaultMatchesLength && !customMatchesLength) continue;\n if (options?.filterMode === 'union' && customMatchesLength !== customFiltersLength && !defaultMatchesLength) continue;\n if (options?.filterMode === 'intersection' && (customMatchesLength !== customFiltersLength || !defaultMatchesLength && customFiltersLength > 0 && !hasOnlyCustomFilters)) continue;\n }\n if (lookAheadItem) {\n array.push(lookAheadItem);\n lookAheadItem = null;\n }\n array.push({\n index: i,\n matches: {\n ...defaultMatches,\n ...customMatches\n }\n });\n }\n return array;\n}\nexport function useFilter(props, items, query, options) {\n const filteredItems = shallowRef([]);\n const filteredMatches = shallowRef(new Map());\n const transformedItems = computed(() => options?.transform ? unref(items).map(item => [item, options.transform(item)]) : unref(items));\n watchEffect(() => {\n const _query = typeof query === 'function' ? query() : unref(query);\n const strQuery = typeof _query !== 'string' && typeof _query !== 'number' ? '' : String(_query);\n const results = filterItems(transformedItems.value, strQuery, {\n customKeyFilter: {\n ...props.customKeyFilter,\n ...unref(options?.customKeyFilter)\n },\n default: props.customFilter,\n filterKeys: props.filterKeys,\n filterMode: props.filterMode,\n noFilter: props.noFilter\n });\n const originalItems = unref(items);\n const _filteredItems = [];\n const _filteredMatches = new Map();\n results.forEach(_ref => {\n let {\n index,\n matches\n } = _ref;\n const item = originalItems[index];\n _filteredItems.push(item);\n _filteredMatches.set(item.value, matches);\n });\n filteredItems.value = _filteredItems;\n filteredMatches.value = _filteredMatches;\n });\n function getMatches(item) {\n return filteredMatches.value.get(item.value);\n }\n return {\n filteredItems,\n filteredMatches,\n getMatches\n };\n}\nexport function highlightResult(name, text, matches) {\n if (matches == null || !matches.length) return text;\n return matches.map((match, i) => {\n const start = i === 0 ? 0 : matches[i - 1][1];\n const result = [_createElementVNode(\"span\", {\n \"class\": _normalizeClass(`${name}__unmask`)\n }, [text.slice(start, match[0])]), _createElementVNode(\"span\", {\n \"class\": _normalizeClass(`${name}__mask`)\n }, [text.slice(match[0], match[1])])];\n if (i === matches.length - 1) {\n result.push(_createElementVNode(\"span\", {\n \"class\": _normalizeClass(`${name}__unmask`)\n }, [text.slice(match[1])]));\n }\n return _createElementVNode(_Fragment, null, [result]);\n });\n}\n//# sourceMappingURL=filter.js.map","import { Fragment as _Fragment, createVNode as _createVNode, createElementVNode as _createElementVNode, mergeProps as _mergeProps } from \"vue\";\n// Styles\nimport \"./VDataTable.css\";\n\n// Components\nimport { makeVDataTableFooterProps, VDataTableFooter } from \"./VDataTableFooter.js\";\nimport { makeVDataTableHeadersProps, VDataTableHeaders } from \"./VDataTableHeaders.js\";\nimport { makeVDataTableRowsProps, VDataTableRows } from \"./VDataTableRows.js\";\nimport { VDivider } from \"../VDivider/index.js\";\nimport { makeVTableProps, VTable } from \"../VTable/VTable.js\"; // Composables\nimport { makeDataTableExpandProps, provideExpanded } from \"./composables/expand.js\";\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from \"./composables/group.js\";\nimport { createHeaders, makeDataTableHeaderProps } from \"./composables/headers.js\";\nimport { makeDataTableItemsProps, useDataTableItems } from \"./composables/items.js\";\nimport { useOptions } from \"./composables/options.js\";\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from \"./composables/paginate.js\";\nimport { makeDataTableSelectProps, provideSelection } from \"./composables/select.js\";\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from \"./composables/sort.js\";\nimport { provideDefaults } from \"../../composables/defaults.js\";\nimport { makeFilterProps, useFilter } from \"../../composables/filter.js\"; // Utilities\nimport { computed, toRef, toRefs } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeDataTableProps = propsFactory({\n ...makeVDataTableRowsProps(),\n hideDefaultBody: Boolean,\n hideDefaultFooter: Boolean,\n hideDefaultHeader: Boolean,\n width: [String, Number],\n search: String,\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemsProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeVDataTableHeadersProps(),\n ...makeVTableProps()\n}, 'DataTable');\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeFilterProps(),\n ...makeVDataTableFooterProps()\n}, 'VDataTable');\nexport const VDataTable = genericComponent()({\n name: 'VDataTable',\n props: makeVDataTableProps(),\n emits: {\n 'update:modelValue': value => true,\n 'update:page': value => true,\n 'update:itemsPerPage': value => true,\n 'update:sortBy': value => true,\n 'update:options': value => true,\n 'update:groupBy': value => true,\n 'update:expanded': value => true,\n 'update:currentItems': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n groupBy\n } = createGroupBy(props);\n const {\n sortBy,\n multiSort,\n mustSort\n } = createSort(props);\n const {\n page,\n itemsPerPage\n } = createPagination(props);\n const {\n disableSort\n } = toRefs(props);\n const {\n columns,\n headers,\n sortFunctions,\n sortRawFunctions,\n filterFunctions\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(() => props.showSelect),\n showExpand: toRef(() => props.showExpand)\n });\n const {\n items\n } = useDataTableItems(props, columns);\n const search = toRef(() => props.search);\n const {\n filteredItems\n } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions\n });\n const {\n toggleSort\n } = provideSort({\n sortBy,\n multiSort,\n mustSort,\n page\n });\n const {\n sortByWithGroups,\n opened,\n extractRows,\n isGroupOpen,\n toggleGroup\n } = provideGroupBy({\n groupBy,\n sortBy,\n disableSort\n });\n const {\n sortedItems\n } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => ({\n ...item.raw,\n ...item.columns\n }),\n sortFunctions,\n sortRawFunctions\n });\n const {\n flatItems\n } = useGroupedItems(sortedItems, groupBy, opened, () => !!slots['group-summary']);\n const itemsLength = computed(() => flatItems.value.length);\n const {\n startIndex,\n stopIndex,\n pageCount,\n setItemsPerPage\n } = providePagination({\n page,\n itemsPerPage,\n itemsLength\n });\n const {\n paginatedItems\n } = usePaginatedItems({\n items: flatItems,\n startIndex,\n stopIndex,\n itemsPerPage\n });\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value));\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected\n } = provideSelection(props, {\n allItems: items,\n currentPage: paginatedItemsWithoutGroups\n });\n const {\n isExpanded,\n toggleExpand\n } = provideExpanded(props);\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search\n });\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(() => props.hideNoData),\n noDataText: toRef(() => props.noDataText),\n loading: toRef(() => props.loading),\n loadingText: toRef(() => props.loadingText)\n }\n });\n const slotProps = computed(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n setItemsPerPage,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: paginatedItemsWithoutGroups.value.map(item => item.raw),\n internalItems: paginatedItemsWithoutGroups.value,\n groupedItems: paginatedItems.value,\n columns: columns.value,\n headers: headers.value\n }));\n useRender(() => {\n const dataTableFooterProps = VDataTableFooter.filterProps(props);\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props);\n const dataTableRowsProps = VDataTableRows.filterProps(props);\n const tableProps = VTable.filterProps(props);\n return _createVNode(VTable, _mergeProps({\n \"class\": ['v-data-table', {\n 'v-data-table--show-select': props.showSelect,\n 'v-data-table--loading': props.loading\n }, props.class],\n \"style\": props.style\n }, tableProps, {\n \"fixedHeader\": props.fixedHeader || props.sticky\n }), {\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : _createElementVNode(_Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && _createElementVNode(\"thead\", {\n \"key\": \"thead\"\n }, [_createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && _createElementVNode(\"tbody\", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : _createVNode(VDataTableRows, _mergeProps(attrs, dataTableRowsProps, {\n \"items\": paginatedItems.value\n }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && _createElementVNode(_Fragment, null, [_createVNode(VDivider, null, null), _createVNode(VDataTableFooter, dataTableFooterProps, {\n prepend: slots['footer.prepend']\n })])\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VDataTable.js.map","<template>\n <v-data-table\n :headers=\"headers\"\n :items=\"items\"\n :loading=\"loading\"\n :search=\"search\"\n :items-per-page=\"itemsPerPage\"\n :items-per-page-options=\"itemsPerPageOptions\"\n :density=\"density\"\n :hover=\"hover\"\n :fixed-header=\"fixedHeader\"\n :height=\"height\"\n :show-select=\"showSelect\"\n v-model=\"selectedItems\"\n v-bind=\"$attrs\"\n @update:options=\"handleOptionsUpdate\"\n >\n <template v-if=\"$slots.top\" #top>\n <slot name=\"top\" />\n </template>\n\n <template\n v-for=\"header in headers\"\n :key=\"header.key\"\n #[`item.${header.key}`]=\"{ item, value }\"\n >\n <slot :name=\"`item.${header.key}`\" :item=\"item\" :value=\"value\">\n {{ value }}\n </slot>\n </template>\n\n <template v-if=\"$slots.actions\" #item.actions=\"{ item }\">\n <slot name=\"actions\" :item=\"item\" />\n </template>\n\n <template v-if=\"$slots['no-data']\" #no-data>\n <slot name=\"no-data\" />\n </template>\n\n <template v-if=\"$slots.loading\" #loading>\n <slot name=\"loading\" />\n </template>\n\n <template v-if=\"$slots.bottom\" #bottom>\n <slot name=\"bottom\" />\n </template>\n </v-data-table>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch } from 'vue'\n\nexport interface UpDataTableHeader {\n key: string\n title: string\n align?: 'start' | 'center' | 'end'\n sortable?: boolean\n width?: string | number\n minWidth?: string | number\n maxWidth?: string | number\n}\n\nexport interface UpDataTableProps {\n headers: UpDataTableHeader[]\n items: any[]\n loading?: boolean\n search?: string\n itemsPerPage?: number\n itemsPerPageOptions?: Array<{ value: number; title: string }>\n density?: 'default' | 'comfortable' | 'compact'\n hover?: boolean\n fixedHeader?: boolean\n height?: string | number\n showSelect?: boolean\n modelValue?: any[]\n}\n\nconst props = withDefaults(defineProps<UpDataTableProps>(), {\n loading: false,\n itemsPerPage: 10,\n itemsPerPageOptions: () => [\n { value: 5, title: '5' },\n { value: 10, title: '10' },\n { value: 25, title: '25' },\n { value: 50, title: '50' },\n { value: 100, title: '100' }\n ],\n density: 'comfortable',\n hover: true,\n fixedHeader: false,\n showSelect: false\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: any[]]\n 'update:options': [value: any]\n}>()\n\nconst selectedItems = ref(props.modelValue || [])\n\nwatch(() => props.modelValue, (newValue) => {\n selectedItems.value = newValue || []\n})\n\nwatch(selectedItems, (newValue) => {\n emit('update:modelValue', newValue)\n})\n\nconst handleOptionsUpdate = (options: any) => {\n emit('update:options', options)\n}\n</script>\n\n<style scoped lang=\"scss\">\n</style>\n\n","import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { provideDefaults } from \"../../composables/defaults.js\";\nimport { makeTagProps } from \"../../composables/tag.js\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\";\nexport const makeVCardActionsProps = propsFactory({\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VCardActions');\nexport const VCardActions = genericComponent()({\n name: 'VCardActions',\n props: makeVCardActionsProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n provideDefaults({\n VBtn: {\n slim: true,\n variant: 'text'\n }\n });\n useRender(() => _createVNode(props.tag, {\n \"class\": _normalizeClass(['v-card-actions', props.class]),\n \"style\": _normalizeStyle(props.style)\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VCardActions.js.map","import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeTagProps } from \"../../composables/tag.js\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\";\nexport const makeVCardSubtitleProps = propsFactory({\n opacity: [Number, String],\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VCardSubtitle');\nexport const VCardSubtitle = genericComponent()({\n name: 'VCardSubtitle',\n props: makeVCardSubtitleProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(props.tag, {\n \"class\": _normalizeClass(['v-card-subtitle', props.class]),\n \"style\": _normalizeStyle([{\n '--v-card-subtitle-opacity': props.opacity\n }, props.style])\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VCardSubtitle.js.map","// Utilities\nimport { createSimpleFunctional } from \"../../util/index.js\";\nexport const VCardTitle = createSimpleFunctional('v-card-title');\n//# sourceMappingURL=VCardTitle.js.map","import { Fragment as _Fragment, createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from \"vue\";\n// Components\nimport { VCardSubtitle } from \"./VCardSubtitle.js\";\nimport { VCardTitle } from \"./VCardTitle.js\";\nimport { VAvatar } from \"../VAvatar/index.js\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.js\";\nimport { VIcon } from \"../VIcon/index.js\"; // Composables\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeDensityProps } from \"../../composables/density.js\";\nimport { IconValue } from \"../../composables/icons.js\";\nimport { makeTagProps } from \"../../composables/tag.js\"; // Utilities\nimport { toDisplayString } from 'vue';\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\";\nexport const makeCardItemProps = propsFactory({\n appendAvatar: String,\n appendIcon: IconValue,\n prependAvatar: String,\n prependIcon: IconValue,\n subtitle: {\n type: [String, Number, Boolean],\n default: undefined\n },\n title: {\n type: [String, Number, Boolean],\n default: undefined\n },\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeTagProps()\n}, 'VCardItem');\nexport const VCardItem = genericComponent()({\n name: 'VCardItem',\n props: makeCardItemProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon);\n const hasPrepend = !!(hasPrependMedia || slots.prepend);\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon);\n const hasAppend = !!(hasAppendMedia || slots.append);\n const hasTitle = !!(props.title != null || slots.title);\n const hasSubtitle = !!(props.subtitle != null || slots.subtitle);\n return _createVNode(props.tag, {\n \"class\": _normalizeClass(['v-card-item', props.class]),\n \"style\": _normalizeStyle(props.style)\n }, {\n default: () => [hasPrepend && _createElementVNode(\"div\", {\n \"key\": \"prepend\",\n \"class\": \"v-card-item__prepend\"\n }, [!slots.prepend ? _createElementVNode(_Fragment, null, [props.prependAvatar && _createVNode(VAvatar, {\n \"key\": \"prepend-avatar\",\n \"density\": props.density,\n \"image\": props.prependAvatar\n }, null), props.prependIcon && _createVNode(VIcon, {\n \"key\": \"prepend-icon\",\n \"density\": props.density,\n \"icon\": props.prependIcon\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"prepend-defaults\",\n \"disabled\": !hasPrependMedia,\n \"defaults\": {\n VAvatar: {\n density: props.density,\n image: props.prependAvatar\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon\n }\n }\n }, slots.prepend)]), _createElementVNode(\"div\", {\n \"class\": \"v-card-item__content\"\n }, [hasTitle && _createVNode(VCardTitle, {\n \"key\": \"title\"\n }, {\n default: () => [slots.title?.() ?? toDisplayString(props.title)]\n }), hasSubtitle && _createVNode(VCardSubtitle, {\n \"key\": \"subtitle\"\n }, {\n default: () => [slots.subtitle?.() ?? toDisplayString(props.subtitle)]\n }), slots.default?.()]), hasAppend && _createElementVNode(\"div\", {\n \"key\": \"append\",\n \"class\": \"v-card-item__append\"\n }, [!slots.append ? _createElementVNode(_Fragment, null, [props.appendIcon && _createVNode(VIcon, {\n \"key\": \"append-icon\",\n \"density\": props.density,\n \"icon\": props.appendIcon\n }, null), props.appendAvatar && _createVNode(VAvatar, {\n \"key\": \"append-avatar\",\n \"density\": props.density,\n \"image\": props.appendAvatar\n }, null)]) : _createVNode(VDefaultsProvider, {\n \"key\": \"append-defaults\",\n \"disabled\": !hasAppendMedia,\n \"defaults\": {\n VAvatar: {\n density: props.density,\n image: props.appendAvatar\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon\n }\n }\n }, slots.append)])]\n });\n });\n return {};\n }\n});\n//# sourceMappingURL=VCardItem.js.map","import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createVNode as _createVNode } from \"vue\";\n// Composables\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeTagProps } from \"../../composables/tag.js\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\";\nexport const makeVCardTextProps = propsFactory({\n opacity: [Number, String],\n ...makeComponentProps(),\n ...makeTagProps()\n}, 'VCardText');\nexport const VCardText = genericComponent()({\n name: 'VCardText',\n props: makeVCardTextProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => _createVNode(props.tag, {\n \"class\": _normalizeClass(['v-card-text', props.class]),\n \"style\": _normalizeStyle([{\n '--v-card-text-opacity': props.opacity\n }, props.style])\n }, slots));\n return {};\n }\n});\n//# sourceMappingURL=VCardText.js.map","import { createVNode as _createVNode, createElementVNode as _createElementVNode, mergeProps as _mergeProps, withDirectives as _withDirectives } from \"vue\";\n/* eslint-disable complexity */\n\n// Styles\nimport \"./VCard.css\";\n\n// Components\nimport { VCardActions } from \"./VCardActions.js\";\nimport { VCardItem } from \"./VCardItem.js\";\nimport { VCardText } from \"./VCardText.js\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.js\";\nimport { VImg } from \"../VImg/index.js\"; // Composables\nimport { makeBorderProps, useBorder } from \"../../composables/border.js\";\nimport { makeComponentProps } from \"../../composables/component.js\";\nimport { makeDensityProps, useDensity } from \"../../composables/density.js\";\nimport { makeDimensionProps, useDimension } from \"../../composables/dimensions.js\";\nimport { makeElevationProps, useElevation } from \"../../composables/elevation.js\";\nimport { IconValue } from \"../../composables/icons.js\";\nimport { LoaderSlot, makeLoaderProps, useLoader } from \"../../composables/loader.js\";\nimport { makeLocationProps, useLocation } from \"../../composables/location.js\";\nimport { makePositionProps, usePosition } from \"../../composables/position.js\";\nimport { makeRoundedProps, useRounded } from \"../../composables/rounded.js\";\nimport { makeRouterProps, useLink } from \"../../composables/router.js\";\nimport { makeTagProps } from \"../../composables/tag.js\";\nimport { makeThemeProps, provideTheme } from \"../../composables/theme.js\";\nimport { genOverlays, makeVariantProps, useVariant } from \"../../composables/variant.js\"; // Directives\nimport vRipple from \"../../directives/ripple/index.js\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVCardProps = propsFactory({\n appendAvatar: String,\n appendIcon: IconValue,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n image: String,\n link: {\n type: Boolean,\n default: undefined\n },\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object],\n default: true\n },\n subtitle: {\n type: [String, Number, Boolean],\n default: undefined\n },\n text: {\n type: [String, Number, Boolean],\n default: undefined\n },\n title: {\n type: [String, Number, Boolean],\n default: undefined\n },\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLoaderProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({\n variant: 'elevated'\n })\n}, 'VCard');\nexport const VCard = genericComponent()({\n name: 'VCard',\n directives: {\n vRipple\n },\n props: makeVCardProps(),\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const {\n themeClasses\n } = provideTheme(props);\n const {\n borderClasses\n } = useBorder(props);\n const {\n colorClasses,\n colorStyles,\n variantClasses\n } = useVariant(props);\n const {\n densityClasses\n } = useDensity(props);\n const {\n dimensionStyles\n } = useDimension(props);\n const {\n elevationClasses\n } = useElevation(props);\n const {\n loaderClasses\n } = useLoader(props);\n const {\n locationStyles\n } = useLocation(props);\n const {\n positionClasses\n } = usePosition(props);\n const {\n roundedClasses\n } = useRounded(props);\n const link = useLink(props, attrs);\n useRender(() => {\n const isLink = props.link !== false && link.isLink.value;\n const isClickable = !props.disabled && props.link !== false && (props.link || link.isClickable.value);\n const Tag = isLink ? 'a' : props.tag;\n const hasTitle = !!(slots.title || props.title != null);\n const hasSubtitle = !!(slots.subtitle || props.subtitle != null);\n const hasHeader = hasTitle || hasSubtitle;\n const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon);\n const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon);\n const hasImage = !!(slots.image || props.image);\n const hasCardItem = hasHeader || hasPrepend || hasAppend;\n const hasText = !!(slots.text || props.text != null);\n return _withDirectives(_createVNode(Tag, _mergeProps(link.linkProps, {\n \"class\": ['v-card', {\n 'v-card--disabled': props.disabled,\n 'v-card--flat': props.flat,\n 'v-card--hover': props.hover && !(props.disabled || props.flat),\n 'v-card--link': isClickable\n }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],\n \"style\": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],\n \"onClick\": isClickable && link.navigate,\n \"tabindex\": props.disabled ? -1 : undefined\n }), {\n default: () => [hasImage && _createElementVNode(\"div\", {\n \"key\": \"image\",\n \"class\": \"v-card__image\"\n }, [!slots.image ? _createVNode(VImg, {\n \"key\": \"image-img\",\n \"cover\": true,\n \"src\": props.image\n }, null) : _createVNode(VDefaultsProvider, {\n \"key\": \"image-defaults\",\n \"disabled\": !props.image,\n \"defaults\": {\n VImg: {\n cover: true,\n src: props.image\n }\n }\n }, slots.image)]), _createVNode(LoaderSlot, {\n \"name\": \"v-card\",\n \"active\": !!props.loading,\n \"color\": typeof props.loading === 'boolean' ? undefined : props.loading\n }, {\n default: slots.loader\n }), hasCardItem && _createVNode(VCardItem, {\n \"key\": \"item\",\n \"prependAvatar\": props.prependAvatar,\n \"prependIcon\": props.prependIcon,\n \"title\": props.title,\n \"subtitle\": props.subtitle,\n \"appendAvatar\": props.appendAvatar,\n \"appendIcon\": props.appendIcon\n }, {\n default: slots.item,\n prepend: slots.prepend,\n title: slots.title,\n subtitle: slots.subtitle,\n append: slots.append\n }), hasText && _createVNode(VCardText, {\n \"key\": \"text\"\n }, {\n default: () => [slots.text?.() ?? props.text]\n }), slots.default?.(), slots.actions && _createVNode(VCardActions, null, {\n default: slots.actions\n }), genOverlays(isClickable, 'v-card')]\n }), [[vRipple, isClickable && props.ripple]]);\n });\n return {};\n }\n});\n//# sourceMappingURL=VCard.js.map","<template>\n <v-menu\n v-model=\"menuOpen\"\n :close-on-content-click=\"false\"\n location=\"bottom\"\n offset=\"8\"\n >\n <template #activator=\"{ props: menuProps }\">\n <v-text-field\n v-bind=\"menuProps\"\n :model-value=\"displayValue\"\n :label=\"label\"\n :placeholder=\"placeholder\"\n :color=\"color\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :error=\"error\"\n :error-messages=\"errorMessages\"\n :hint=\"hint\"\n :persistent-hint=\"persistentHint\"\n :density=\"density\"\n :hide-details=\"hideDetails\"\n :clearable=\"clearable\"\n @click:clear=\"clearDates\"\n >\n <template #prepend-inner>\n <v-icon :color=\"color\">mdi-calendar</v-icon>\n </template>\n </v-text-field>\n </template>\n\n <v-card class=\"up-date-picker-card\">\n <div class=\"up-date-picker\">\n <div class=\"up-date-picker__header\">\n <v-btn\n icon=\"mdi-chevron-left\"\n variant=\"text\"\n size=\"small\"\n @click=\"previousMonth\"\n />\n\n <div class=\"up-date-picker__title\">\n <v-menu>\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n variant=\"text\"\n size=\"small\"\n class=\"up-date-picker__month-btn\"\n >\n {{ monthYearText }}\n <v-icon end size=\"small\">mdi-menu-down</v-icon>\n </v-btn>\n </template>\n <v-list>\n <v-list-item\n v-for=\"month in months\"\n :key=\"month.value\"\n @click=\"currentMonth = month.value\"\n >\n {{ month.label }}\n </v-list-item>\n </v-list>\n </v-menu>\n\n <v-menu>\n <template #activator=\"{ props }\">\n <v-btn\n v-bind=\"props\"\n variant=\"text\"\n size=\"small\"\n class=\"up-date-picker__year-btn\"\n >\n {{ currentYear }}\n <v-icon end size=\"small\">mdi-menu-down</v-icon>\n </v-btn>\n </template>\n <v-list max-height=\"300\">\n <v-list-item\n v-for=\"year in years\"\n :key=\"year\"\n @click=\"currentYear = year\"\n >\n {{ year }}\n </v-list-item>\n </v-list>\n </v-menu>\n </div>\n\n <v-btn\n icon=\"mdi-chevron-right\"\n variant=\"text\"\n size=\"small\"\n @click=\"nextMonth\"\n />\n </div>\n\n <div class=\"up-date-picker__weekdays\">\n <div\n v-for=\"day in weekdays\"\n :key=\"day\"\n class=\"up-date-picker__weekday\"\n >\n {{ day }}\n </div>\n </div>\n\n <div class=\"up-date-picker__days\">\n <div\n v-for=\"(day, index) in calendarDays\"\n :key=\"index\"\n :class=\"getDayClasses(day)\"\n @click=\"selectDate(day)\"\n >\n {{ day.day }}\n </div>\n </div>\n\n <div\n v-if=\"mode === 'range' && !autoApply\"\n class=\"up-date-picker__footer\"\n >\n <div class=\"up-date-picker__range-info\">\n <div v-if=\"tempStartDate\">\n <small>Início:</small>\n <strong>{{ formatDate(tempStartDate) }}</strong>\n </div>\n <div v-if=\"tempEndDate\">\n <small>Fim:</small>\n <strong>{{ formatDate(tempEndDate) }}</strong>\n </div>\n </div>\n </div>\n\n <template v-if=\"!autoApply\">\n <v-divider />\n\n <div class=\"up-date-picker__actions\">\n <UpButton type=\"tertiary\" size=\"small\" @click=\"cancel\">\n Cancelar\n </UpButton>\n <UpButton type=\"primary\" size=\"small\" @click=\"confirm\">\n Confirmar\n </UpButton>\n </div>\n </template>\n </div>\n </v-card>\n </v-menu>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, watch } from \"vue\";\nimport { UpButton } from \"@/components/UpButton\";\n\nexport interface UpDatePickerDay {\n day: number;\n date: Date;\n isCurrentMonth: boolean;\n isToday: boolean;\n isSelected: boolean;\n isInRange: boolean;\n isRangeStart: boolean;\n isRangeEnd: boolean;\n isWeekend: boolean;\n isDisabled: boolean;\n}\n\nexport interface UpDatePickerProps {\n modelValue?:\n | Date\n | string\n | null\n | [Date | string | null, Date | string | null];\n mode?: \"single\" | \"range\";\n label?: string;\n placeholder?: string;\n pattern?: string | ((date: Date) => string) | ((dates: Date[]) => string);\n locale?: string;\n daynames?: string[];\n color?: string;\n disabled?: boolean;\n readonly?: boolean;\n error?: boolean;\n errorMessages?: string | string[];\n hint?: string;\n persistentHint?: boolean;\n density?: \"default\" | \"comfortable\" | \"compact\";\n hideDetails?: boolean | \"auto\";\n clearable?: boolean;\n firstDayOfWeek?: number;\n minDate?: Date | string;\n maxDate?: Date | string;\n preventMinMaxNavigation?: boolean;\n disabledDates?: Date[] | string[] | ((date: Date) => boolean);\n autoApply?: boolean;\n}\n\nconst props = withDefaults(defineProps<UpDatePickerProps>(), {\n mode: \"single\",\n pattern: \"dd/MM/yyyy\",\n locale: \"pt-BR\",\n daynames: () => [\"D\", \"S\", \"T\", \"Q\", \"Q\", \"S\", \"S\"],\n color: \"primary\",\n disabled: false,\n readonly: false,\n error: false,\n persistentHint: false,\n density: \"default\",\n hideDetails: false,\n clearable: false,\n firstDayOfWeek: 0,\n preventMinMaxNavigation: false,\n autoApply: true,\n});\n\nconst emit = defineEmits<{\n \"update:modelValue\": [value: Date | [Date, Date] | null];\n}>();\n\nconst menuOpen = ref(false);\nconst currentMonth = ref(new Date().getMonth());\nconst currentYear = ref(new Date().getFullYear());\nconst startDate = ref<Date | null>(null);\nconst endDate = ref<Date | null>(null);\nconst tempStartDate = ref<Date | null>(null);\nconst tempEndDate = ref<Date | null>(null);\n\nconst months = [\n { value: 0, label: \"Janeiro\" },\n { value: 1, label: \"Fevereiro\" },\n { value: 2, label: \"Março\" },\n { value: 3, label: \"Abril\" },\n { value: 4, label: \"Maio\" },\n { value: 5, label: \"Junho\" },\n { value: 6, label: \"Julho\" },\n { value: 7, label: \"Agosto\" },\n { value: 8, label: \"Setembro\" },\n { value: 9, label: \"Outubro\" },\n { value: 10, label: \"Novembro\" },\n { value: 11, label: \"Dezembro\" },\n];\n\nconst years = computed(() => {\n const currentYearValue = new Date().getFullYear();\n const yearsList = [];\n for (let i = currentYearValue - 50; i <= currentYearValue + 50; i++) {\n yearsList.push(i);\n }\n return yearsList;\n});\n\nconst weekdays = computed(() => {\n const days = props.daynames || [\"D\", \"S\", \"T\", \"Q\", \"Q\", \"S\", \"S\"];\n const rotated = [\n ...days.slice(props.firstDayOfWeek),\n ...days.slice(0, props.firstDayOfWeek),\n ];\n return rotated;\n});\n\nconst monthYearText = computed(() => {\n return `${months[currentMonth.value].label} ${currentYear.value}`;\n});\n\nconst displayValue = computed(() => {\n if (props.mode === \"single\") {\n if (!startDate.value) return \"\";\n\n // Se pattern é uma função\n if (typeof props.pattern === \"function\") {\n return (props.pattern as (date: Date) => string)(startDate.value);\n }\n\n // Se pattern é uma string ou padrão\n return formatDate(startDate.value);\n } else {\n if (startDate.value && endDate.value) {\n // Se pattern é uma função para range\n if (typeof props.pattern === \"function\") {\n return (props.pattern as (dates: Date[]) => string)([\n startDate.value,\n endDate.value,\n ]);\n }\n\n return `${formatDate(startDate.value)} - ${formatDate(endDate.value)}`;\n } else if (startDate.value) {\n return formatDate(startDate.value);\n }\n return \"\";\n }\n});\n\nconst calendarDays = computed(() => {\n const days: UpDatePickerDay[] = [];\n const firstDay = new Date(currentYear.value, currentMonth.value, 1);\n const lastDay = new Date(currentYear.value, currentMonth.value + 1, 0);\n\n let startDay = firstDay.getDay() - props.firstDayOfWeek;\n if (startDay < 0) startDay += 7;\n\n const prevMonthLastDay = new Date(currentYear.value, currentMonth.value, 0);\n for (let i = startDay - 1; i >= 0; i--) {\n const date = new Date(\n currentYear.value,\n currentMonth.value - 1,\n prevMonthLastDay.getDate() - i\n );\n days.push(createDay(date, false));\n }\n\n for (let i = 1; i <= lastDay.getDate(); i++) {\n const date = new Date(currentYear.value, currentMonth.value, i);\n days.push(createDay(date, true));\n }\n\n const remainingDays = 42 - days.length;\n for (let i = 1; i <= remainingDays; i++) {\n const date = new Date(currentYear.value, currentMonth.value + 1, i);\n days.push(createDay(date, false));\n }\n\n return days;\n});\n\nconst createDay = (date: Date, isCurrentMonth: boolean): UpDatePickerDay => {\n const today = new Date();\n const isToday = date.toDateString() === today.toDateString();\n const isWeekend = date.getDay() === 0 || date.getDay() === 6;\n\n const tempStart = tempStartDate.value;\n const tempEnd = tempEndDate.value;\n\n let isSelected = false;\n let isInRange = false;\n let isRangeStart = false;\n let isRangeEnd = false;\n\n if (props.mode === \"single\") {\n isSelected = tempStart\n ? date.toDateString() === tempStart.toDateString()\n : false;\n } else {\n if (tempStart) {\n isRangeStart = date.toDateString() === tempStart.toDateString();\n }\n if (tempEnd) {\n isRangeEnd = date.toDateString() === tempEnd.toDateString();\n }\n if (tempStart && tempEnd) {\n isInRange = date >= tempStart && date <= tempEnd;\n }\n isSelected = isRangeStart || isRangeEnd;\n }\n\n let isDisabled = false;\n\n // Check minDate\n if (props.minDate) {\n const min = new Date(props.minDate);\n min.setHours(0, 0, 0, 0);\n if (date < min) isDisabled = true;\n }\n\n // Check maxDate\n if (props.maxDate) {\n const max = new Date(props.maxDate);\n max.setHours(23, 59, 59, 999);\n if (date > max) isDisabled = true;\n }\n\n // Check disabledDates\n if (props.disabledDates && !isDisabled) {\n if (typeof props.disabledDates === \"function\") {\n // Function: (date: Date) => boolean\n isDisabled = props.disabledDates(date);\n } else if (Array.isArray(props.disabledDates)) {\n // Array: Date[] | string[]\n isDisabled = props.disabledDates.some((disabledDate) => {\n const disabled = new Date(disabledDate);\n return date.toDateString() === disabled.toDateString();\n });\n }\n }\n\n return {\n day: date.getDate(),\n date,\n isCurrentMonth,\n isToday,\n isSelected,\n isInRange,\n isRangeStart,\n isRangeEnd,\n isWeekend,\n isDisabled,\n };\n};\n\nconst getDayClasses = (day: UpDatePickerDay) => {\n return {\n \"up-date-picker__day\": true,\n \"up-date-picker__day--other-month\": !day.isCurrentMonth,\n \"up-date-picker__day--today\": day.isToday,\n \"up-date-picker__day--selected\": day.isSelected,\n \"up-date-picker__day--in-range\": day.isInRange && !day.isSelected,\n \"up-date-picker__day--range-start\": day.isRangeStart,\n \"up-date-picker__day--range-end\": day.isRangeEnd,\n \"up-date-picker__day--weekend\": day.isWeekend,\n \"up-date-picker__day--disabled\": day.isDisabled,\n };\n};\n\nconst selectDate = (day: UpDatePickerDay) => {\n if (day.isDisabled) return;\n\n if (props.mode === \"single\") {\n tempStartDate.value = day.date;\n tempEndDate.value = null;\n\n // Auto-apply for single mode\n if (props.autoApply) {\n startDate.value = tempStartDate.value;\n endDate.value = null;\n emit(\"update:modelValue\", startDate.value);\n menuOpen.value = false;\n }\n } else {\n if (!tempStartDate.value || (tempStartDate.value && tempEndDate.value)) {\n tempStartDate.value = day.date;\n tempEndDate.value = null;\n } else {\n if (day.date < tempStartDate.value) {\n tempEndDate.value = tempStartDate.value;\n tempStartDate.value = day.date;\n } else {\n tempEndDate.value = day.date;\n }\n\n // Auto-apply for range mode when both dates are selected\n if (props.autoApply && tempStartDate.value && tempEndDate.value) {\n startDate.value = tempStartDate.value;\n endDate.value = tempEndDate.value;\n emit(\"update:modelValue\", [startDate.value, endDate.value]);\n menuOpen.value = false;\n }\n }\n }\n};\n\nconst formatDate = (date: Date): string => {\n // Use locale from props\n const locale = props.locale || \"pt-BR\";\n\n // If pattern is a string, apply simple formatting\n if (typeof props.pattern === \"string\") {\n const day = String(date.getDate()).padStart(2, \"0\");\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const year = date.getFullYear();\n\n return props.pattern\n .replace(\"dd\", day)\n .replace(\"MM\", month)\n .replace(\"yyyy\", String(year))\n .replace(\"yy\", String(year).slice(-2));\n }\n\n return date.toLocaleDateString(locale);\n};\n\nconst previousMonth = () => {\n // Check preventMinMaxNavigation\n if (props.preventMinMaxNavigation && props.minDate) {\n const minDate = new Date(props.minDate);\n const targetDate = new Date(currentYear.value, currentMonth.value - 1, 1);\n\n if (targetDate < new Date(minDate.getFullYear(), minDate.getMonth(), 1)) {\n return; // Don't navigate\n }\n }\n\n if (currentMonth.value === 0) {\n currentMonth.value = 11;\n currentYear.value--;\n } else {\n currentMonth.value--;\n }\n};\n\nconst nextMonth = () => {\n // Check preventMinMaxNavigation\n if (props.preventMinMaxNavigation && props.maxDate) {\n const maxDate = new Date(props.maxDate);\n const targetDate = new Date(currentYear.value, currentMonth.value + 1, 1);\n\n if (targetDate > new Date(maxDate.getFullYear(), maxDate.getMonth(), 1)) {\n return; // Don't navigate\n }\n }\n\n if (currentMonth.value === 11) {\n currentMonth.value = 0;\n currentYear.value++;\n } else {\n currentMonth.value++;\n }\n};\n\nconst confirm = () => {\n if (props.mode === \"single\") {\n startDate.value = tempStartDate.value;\n endDate.value = null;\n emit(\"update:modelValue\", startDate.value);\n } else {\n if (tempStartDate.value && tempEndDate.value) {\n startDate.value = tempStartDate.value;\n endDate.value = tempEndDate.value;\n emit(\"update:modelValue\", [startDate.value, endDate.value]);\n }\n }\n menuOpen.value = false;\n};\n\nconst cancel = () => {\n tempStartDate.value = startDate.value;\n tempEndDate.value = endDate.value;\n menuOpen.value = false;\n};\n\nconst clearDates = () => {\n startDate.value = null;\n endDate.value = null;\n tempStartDate.value = null;\n tempEndDate.value = null;\n emit(\"update:modelValue\", null);\n};\n\nwatch(\n () => props.modelValue,\n (newValue) => {\n if (!newValue) {\n startDate.value = null;\n endDate.value = null;\n tempStartDate.value = null;\n tempEndDate.value = null;\n } else if (props.mode === \"single\") {\n const date = new Date(newValue as Date | string);\n startDate.value = date;\n tempStartDate.value = date;\n } else if (Array.isArray(newValue)) {\n if (newValue[0]) {\n startDate.value = new Date(newValue[0]);\n tempStartDate.value = startDate.value;\n }\n if (newValue[1]) {\n endDate.value = new Date(newValue[1]);\n tempEndDate.value = endDate.value;\n }\n }\n },\n { immediate: true }\n);\n\nwatch(menuOpen, (isOpen) => {\n if (isOpen) {\n tempStartDate.value = startDate.value;\n tempEndDate.value = endDate.value;\n }\n});\n</script>\n\n<style scoped lang=\"scss\">\n.up-date-picker-card {\n padding: 0;\n}\n\n.up-date-picker {\n width: 320px;\n padding: 16px;\n\n &__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 16px;\n }\n\n &__title {\n display: flex;\n gap: 4px;\n }\n\n &__month-btn,\n &__year-btn {\n font-weight: 600;\n color: rgb(var(--v-theme-on-surface)) !important;\n }\n\n &__weekdays {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 4px;\n margin-bottom: 8px;\n }\n\n &__weekday {\n text-align: center;\n font-weight: 600;\n font-size: 12px;\n color: rgb(var(--v-theme-on-surface));\n opacity: 0.6;\n padding: 8px 0;\n }\n\n &__days {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 4px;\n margin-bottom: 16px;\n }\n\n &__day {\n aspect-ratio: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n cursor: pointer;\n transition: all 0.2s;\n font-size: 14px;\n font-weight: 500;\n position: relative;\n\n &:hover:not(&--disabled) {\n background: rgba(var(--v-theme-on-surface), 0.08);\n }\n\n &--other-month {\n opacity: 0.3;\n }\n\n &--today {\n border: 1px solid rgb(var(--v-theme-primary));\n font-weight: 600;\n }\n\n &--selected {\n background: rgb(var(--v-theme-primary));\n color: white;\n font-weight: 600;\n\n &:hover {\n background: rgb(var(--v-theme-primary));\n }\n }\n\n &--in-range {\n background: rgba(var(--v-theme-primary), 0.12);\n border-radius: 0;\n }\n\n &--range-start {\n background: rgb(var(--v-theme-primary));\n color: white;\n font-weight: 600;\n border-radius: 50%;\n }\n\n &--range-end {\n background: rgb(var(--v-theme-primary));\n color: white;\n font-weight: 600;\n border-radius: 50%;\n }\n\n &--weekend {\n color: rgb(var(--v-theme-error));\n }\n\n &--disabled {\n opacity: 0.3;\n cursor: not-allowed;\n pointer-events: none;\n }\n }\n\n &__footer {\n margin-bottom: 16px;\n }\n\n &__range-info {\n display: flex;\n gap: 16px;\n padding: 12px;\n background: rgba(var(--v-theme-on-surface), 0.04);\n border-radius: 8px;\n border: 1px solid rgba(var(--v-theme-on-surface), 0.08);\n\n > div {\n display: flex;\n flex-direction: column;\n gap: 4px;\n\n small {\n font-size: 11px;\n opacity: 0.6;\n text-transform: uppercase;\n font-weight: 500;\n }\n\n strong {\n font-size: 13px;\n color: rgb(var(--v-theme-primary));\n }\n }\n }\n\n &__actions {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n padding-top: 12px;\n }\n}\n</style>\n","<template>\n <div :class=\"computedClass\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport type { UpDividerProps } from \"./types\";\n\nconst props = withDefaults(defineProps<UpDividerProps>(), {\n direction: \"horizontal\",\n});\n\nconst computedClass = computed(() => {\n return [\"up-divider\", `up-divider--${props.direction}`];\n});\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables.scss\" as *;\n\n.up-divider {\n display: block;\n background-color: $neutral-light-1; // #B8B8B8\n\n &--horizontal {\n width: 100%;\n height: 1px;\n }\n\n &--vertical {\n width: 1px;\n height: 100%;\n }\n}\n</style>\n","export type Environment = 'development' | 'qa' | 'staging' | 'production'\n\nexport interface EnvironmentConfig {\n name: Environment\n version: string\n debug: boolean\n telemetry: boolean\n apiUrl?: string\n storagePrefix: string\n theme: {\n showEnvironmentBadge: boolean\n environmentBadgeColor?: string\n }\n}\n\nconst environments: Record<Environment, Omit<EnvironmentConfig, 'version'>> = {\n development: {\n name: 'development',\n debug: true,\n telemetry: false,\n apiUrl: 'http://localhost:3000',\n storagePrefix: 'uplexis_dev_',\n theme: {\n showEnvironmentBadge: true,\n environmentBadgeColor: '#4D90FF'\n }\n },\n\n qa: {\n name: 'qa',\n debug: true,\n telemetry: true,\n apiUrl: 'https://api-qa.uplexis.com',\n storagePrefix: 'uplexis_qa_',\n theme: {\n showEnvironmentBadge: true,\n environmentBadgeColor: '#FBC105'\n }\n },\n\n staging: {\n name: 'staging',\n debug: false,\n telemetry: true,\n apiUrl: 'https://api-staging.uplexis.com',\n storagePrefix: 'uplexis_staging_',\n theme: {\n showEnvironmentBadge: true,\n environmentBadgeColor: '#D77B0A'\n }\n },\n \n production: {\n name: 'production',\n debug: false,\n telemetry: true,\n apiUrl: 'https://api.uplexis.com',\n storagePrefix: 'uplexis_',\n theme: {\n showEnvironmentBadge: false\n }\n }\n}\n\nfunction detectEnvironment(): Environment {\n const env = import.meta.env.VITE_UPLEXIS_ENV as Environment | undefined\n\n if (env && env in environments) {\n return env\n }\n\n const mode = import.meta.env.MODE\n\n if (mode === 'production') return 'production'\n if (mode === 'staging') return 'staging'\n if (mode === 'qa') return 'qa'\n\n return 'development'\n}\n\nfunction getVersion(): string {\n return import.meta.env.VITE_UPLEXIS_VERSION || '0.1.0'\n}\n\nexport const currentEnvironment = detectEnvironment()\n\nexport const config: EnvironmentConfig = {\n ...environments[currentEnvironment],\n version: getVersion()\n}\n\nexport const isDevelopment = currentEnvironment === 'development'\n\nexport const isQA = currentEnvironment === 'qa'\n\nexport const isStaging = currentEnvironment === 'staging'\n\nexport const isProduction = currentEnvironment === 'production'\n\nexport const logger = {\n debug: (...args: any[]) => {\n if (config.debug) {\n console.log('[Uplexis UI - Debug]', ...args)\n }\n },\n \n info: (...args: any[]) => {\n if (config.debug) {\n console.info('[Uplexis UI - Info]', ...args)\n }\n },\n \n warn: (...args: any[]) => {\n console.warn('[Uplexis UI - Warning]', ...args)\n },\n \n error: (...args: any[]) => {\n console.error('[Uplexis UI - Error]', ...args)\n }\n}\n\nif (!isProduction) {\n logger.info('Environment:', config.name)\n logger.info('Version:', config.version)\n logger.info('Debug:', config.debug)\n logger.info('API URL:', config.apiUrl)\n}\n\nexport default config\n\n","<template>\n <v-chip\n v-if=\"shouldShow\"\n :color=\"badgeColor\"\n size=\"small\"\n class=\"up-environment-badge\"\n :class=\"`up-environment-badge--${config.name}`\"\n >\n <v-icon icon=\"mdi-test-tube\" size=\"x-small\" class=\"mr-1\" />\n {{ badgeText }}\n </v-chip>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport { config } from \"@/config/environments\";\n\nconst shouldShow = computed(() => config.theme.showEnvironmentBadge);\n\nconst badgeColor = computed(\n () => config.theme.environmentBadgeColor || \"#666666\"\n);\n\nconst badgeText = computed(() => {\n const envNames = {\n development: \"DEV\",\n qa: \"QA\",\n staging: \"STAGING\",\n production: \"PROD\",\n };\n\n return `${envNames[config.name]} v${config.version}`;\n});\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-environment-badge {\n position: fixed;\n bottom: $spacing-md;\n right: $spacing-md;\n z-index: 9999;\n font-weight: $font-weight-semibolder;\n font-size: $font-size-usu;\n text-transform: uppercase;\n letter-spacing: $letter-spacing-wide;\n box-shadow: $shadow-md;\n\n &--development {\n animation: pulse-dev 2s ease-in-out infinite;\n }\n\n &--qa {\n animation: pulse-qa 2s ease-in-out infinite;\n }\n\n &--staging {\n animation: pulse-staging 2s ease-in-out infinite;\n }\n}\n\n@keyframes pulse-dev {\n 0%,\n 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.7;\n }\n}\n\n@keyframes pulse-qa {\n 0%,\n 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.8;\n }\n}\n\n@keyframes pulse-staging {\n 0%,\n 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.85;\n }\n}\n</style>\n","<template>\n <v-menu :location=\"menuLocation\" :offset=\"4\">\n <template #activator=\"{ props: menuProps }\">\n <div v-bind=\"menuProps\">\n <slot name=\"trigger\" />\n </div>\n </template>\n\n <v-list class=\"up-float-menu\" min-width=\"160\">\n <template v-for=\"(item, index) in items\" :key=\"index\">\n <!-- Divisor -->\n <v-divider\n v-if=\"item.type === 'divider'\"\n class=\"up-float-menu__divider\"\n />\n\n <!-- Item normal -->\n <v-list-item\n v-else\n :disabled=\"item.disabled\"\n class=\"up-float-menu__item\"\n @click=\"item.handler\"\n >\n <template v-if=\"item.icon\" #prepend>\n <v-icon\n :icon=\"`mdi-${item.icon}`\"\n size=\"small\"\n class=\"up-float-menu__icon\"\n />\n </template>\n <v-list-item-title class=\"up-float-menu__text\">\n {{ item.text }}\n </v-list-item-title>\n </v-list-item>\n </template>\n </v-list>\n </v-menu>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport type { UpFloatMenuProps } from \"./types\";\n\nconst props = withDefaults(defineProps<UpFloatMenuProps>(), {\n align: \"start\",\n side: \"bottom\",\n});\n\n// Converte as props align e side para o formato do Vuetify v-menu location\nconst menuLocation = computed(() => {\n const alignMap = {\n start: \"start\",\n center: \"center\",\n end: \"end\",\n };\n\n const sideMap = {\n top: \"top\",\n right: \"right\",\n bottom: \"bottom\",\n left: \"left\",\n };\n\n return `${sideMap[props.side]} ${alignMap[props.align]}` as any;\n});\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables.scss\" as *;\n\n.up-float-menu {\n background-color: $neutral-light-pure; // #FFFFFF\n border: 1px solid $neutral-light-2; // #CCCCCC\n border-radius: $radius-sm; // 4px\n padding: $spacing-sm; // 8px\n box-shadow: $shadow-md;\n\n // Remove padding padrão do v-list\n :deep(.v-list) {\n padding: 0;\n }\n\n &__item {\n min-height: 40px !important;\n padding: $spacing-sm $spacing-md !important; // 8px 16px\n border-radius: 2px;\n font-size: $font-size-xxxs !important; // 14px\n font-weight: $font-weight-regular !important; // 400\n color: $neutral-dark-3 !important; // #666666\n transition: background-color 150ms;\n\n &:hover {\n background-color: $neutral-light-3 !important; // #F0F0F0\n }\n\n // Item desabilitado\n &.v-list-item--disabled {\n color: $neutral-light-1 !important; // #B8B8B8\n opacity: 0.6;\n }\n\n // Remove padding padrão do prepend\n :deep(.v-list-item__prepend) {\n margin-right: $spacing-sm; // 8px\n }\n }\n\n &__icon {\n color: $brand-primary-pure !important; // #FF8C1A\n }\n\n &__text {\n font-size: $font-size-xxxs !important; // 14px\n font-weight: $font-weight-regular !important; // 400\n color: $neutral-dark-3 !important; // #666666\n }\n\n &__divider {\n margin: $spacing-xs 0 !important; // 4px 0\n border-color: $neutral-light-2 !important; // #CCCCCC\n }\n}\n</style>\n","<template>\n <div :class=\"computedClasses\">\n <p class=\"up-notification__title\">{{ title }}</p>\n <p class=\"up-notification__content\">{{ truncatedContent }}</p>\n <span\n v-if=\"productName\"\n :class=\"['up-notification__badge', { 'up-notification__badge--read': isRead }]\"\n >\n {{ productName }}\n </span>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nexport interface UpNotificationProps {\n type?: \"success\" | \"error\" | \"warning\";\n title: string;\n content: string;\n productName?: string;\n isRead: boolean;\n}\n\nconst props = withDefaults(defineProps<UpNotificationProps>(), {\n isRead: false,\n});\n\n/**\n * Trunca o texto em um limite de caracteres\n * @param text - Texto a ser truncado\n * @param limit - Limite de caracteres (padrão: 78)\n * @returns Texto truncado com \"...\" se exceder o limite\n */\nconst truncateText = (text: string, limit: number = 78): string => {\n if (text.length <= limit) {\n return text;\n }\n return text.substring(0, limit) + \"...\";\n};\n\nconst truncatedContent = computed(() => {\n return truncateText(props.content, 78);\n});\n\nconst computedClasses = computed(() => {\n const classes = [\"up-notification\"];\n\n // Estado de leitura\n if (props.isRead) {\n classes.push(\"up-notification--read\");\n } else {\n classes.push(\"up-notification--unread\");\n }\n\n // Tipo de notificação (borda colorida)\n if (props.type) {\n classes.push(`up-notification--${props.type}`);\n }\n\n return classes;\n});\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-notification {\n // Dimensões fixas\n width: 241px;\n height: 108px;\n \n // Espaçamento interno\n padding: $spacing-md; // 16px\n \n // Layout\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: $spacing-sm; // 8px\n \n // Border radius\n border-radius: $radius-sm; // 4px\n \n // Transição suave\n transition: all $transition-base;\n \n // Estado não lida (padrão)\n &--unread {\n background-color: $neutral-light-pure; // #FFFFFF\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.25);\n }\n \n // Estado lida\n &--read {\n background-color: $neutral-light-3; // #F0F0F0\n box-shadow: none;\n }\n \n // Tipos com borda colorida à direita (4px)\n &--success {\n border-right: 4px solid $chart-3; // #0A9E5A (verde)\n }\n \n &--error {\n border-right: 4px solid $color-error; // #CC3333 (vermelho)\n }\n \n &--warning {\n border-right: 4px solid $color-warning; // #D77B0A (laranja)\n }\n \n // Título\n &__title {\n font-weight: $font-weight-bold; // 500\n font-size: $font-size-us; // 12px (0.75rem)\n color: $neutral-dark-pure; // #000000\n margin: 0;\n line-height: 1.2;\n }\n \n // Conteúdo\n &__content {\n font-weight: $font-weight-regular; // 400\n font-size: $font-size-usu; // 10px (0.625rem)\n color: $neutral-dark-3; // #666666\n margin: 0;\n flex: 1; // Ocupa espaço disponível\n line-height: 1.4;\n overflow: hidden;\n }\n \n // Badge de produto\n &__badge {\n display: inline-block;\n padding: 2px 8px;\n font-size: $font-size-usu; // 10px\n font-weight: $font-weight-regular;\n color: $neutral-dark-3;\n background-color: $neutral-light-3; // #F0F0F0\n border-radius: $radius-sm; // 4px\n margin-top: auto; // Empurra para o final\n \n // Badge quando notificação está lida\n &--read {\n background-color: $neutral-light-2; // #CCCCCC\n }\n }\n}\n</style>\n\n","<template>\n <nav class=\"up-pagination\">\n <div class=\"up-pagination__list\">\n <!-- Botão Primeira Página (<<) -->\n <button\n class=\"up-pagination__button up-pagination__button--edge\"\n :disabled=\"currentPage === 1\"\n :class=\"{ 'up-pagination__button--disabled': currentPage === 1 }\"\n @click=\"goToPage(1)\"\n >\n <slot name=\"first-page-icon\">\n <Icon icon=\"mdi:chevron-double-left\" />\n </slot>\n </button>\n\n <!-- Botão Página Anterior (<) -->\n <button\n class=\"up-pagination__button up-pagination__button--nav\"\n :disabled=\"currentPage === 1\"\n :class=\"{ 'up-pagination__button--disabled': currentPage === 1 }\"\n @click=\"goToPage(currentPage - 1)\"\n >\n <slot name=\"previous-page-icon\">\n <Icon icon=\"mdi:chevron-left\" />\n </slot>\n </button>\n\n <!-- Páginas -->\n <template v-for=\"(item, index) in paginationItems\" :key=\"index\">\n <!-- Reticências -->\n <span v-if=\"item === 'ellipsis'\" class=\"up-pagination__ellipsis\">\n …\n </span>\n\n <!-- Botão de Página -->\n <button\n v-else\n class=\"up-pagination__button up-pagination__button--page\"\n :class=\"{ 'up-pagination__button--active': item === currentPage }\"\n @click=\"goToPage(item as number)\"\n >\n {{ formatPageNumber(item as number) }}\n </button>\n </template>\n\n <!-- Botão Próxima Página (>) -->\n <button\n class=\"up-pagination__button up-pagination__button--nav\"\n :disabled=\"currentPage === totalPages\"\n :class=\"{\n 'up-pagination__button--disabled': currentPage === totalPages,\n }\"\n @click=\"goToPage(currentPage + 1)\"\n >\n <slot name=\"next-page-icon\">\n <Icon icon=\"mdi:chevron-right\" />\n </slot>\n </button>\n\n <!-- Botão Última Página (>>) -->\n <button\n class=\"up-pagination__button up-pagination__button--edge\"\n :disabled=\"currentPage === totalPages\"\n :class=\"{\n 'up-pagination__button--disabled': currentPage === totalPages,\n }\"\n @click=\"goToPage(totalPages)\"\n >\n <slot name=\"last-page-icon\">\n <Icon icon=\"mdi:chevron-double-right\" />\n </slot>\n </button>\n </div>\n </nav>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport { Icon } from \"@iconify/vue\";\nimport type { UpPaginationProps } from \"./types\";\n\nconst props = withDefaults(defineProps<UpPaginationProps>(), {\n modelValue: 1,\n siblingCount: 1,\n});\n\nconst emit = defineEmits<{\n \"update:modelValue\": [value: number];\n}>();\n\nconst currentPage = computed({\n get: () => props.modelValue,\n set: (value: number) => emit(\"update:modelValue\", value),\n});\n\n// Calcula o total de páginas\nconst totalPages = computed(() => {\n return Math.ceil(props.total / props.itemsPerPage);\n});\n\n// Formata o número da página com 2 dígitos\nconst formatPageNumber = (page: number): string => {\n return new Intl.NumberFormat(\"pt-BR\", {\n minimumIntegerDigits: 2,\n }).format(page);\n};\n\n// Navega para uma página específica\nconst goToPage = (page: number) => {\n if (page >= 1 && page <= totalPages.value) {\n currentPage.value = page;\n }\n};\n\n// Calcula os itens de paginação (páginas e reticências)\nconst paginationItems = computed(() => {\n const items: (number | \"ellipsis\")[] = [];\n const total = totalPages.value;\n const current = currentPage.value;\n const siblings = props.siblingCount;\n\n // Se tiver poucas páginas, mostra todas\n if (total <= 7) {\n for (let i = 1; i <= total; i++) {\n items.push(i);\n }\n return items;\n }\n\n // Sempre mostra primeira página\n items.push(1);\n\n // Calcula o range de páginas ao redor da atual\n const leftSibling = Math.max(current - siblings, 2);\n const rightSibling = Math.min(current + siblings, total - 1);\n\n // Adiciona reticências à esquerda se necessário\n if (leftSibling > 2) {\n items.push(\"ellipsis\");\n }\n\n // Adiciona páginas ao redor da atual\n for (let i = leftSibling; i <= rightSibling; i++) {\n items.push(i);\n }\n\n // Adiciona reticências à direita se necessário\n if (rightSibling < total - 1) {\n items.push(\"ellipsis\");\n }\n\n // Sempre mostra última página\n if (total > 1) {\n items.push(total);\n }\n\n return items;\n});\n</script>\n\n<style scoped lang=\"scss\">\n@use \"../../styles/variables\" as *;\n\n.up-pagination {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.up-pagination__list {\n display: flex;\n align-items: center;\n gap: $spacing-sm;\n font-size: $font-size-xxxs;\n color: $neutral-dark-pure;\n}\n\n.up-pagination__button {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 32px;\n height: 32px;\n padding: $spacing-xs $spacing-sm;\n border: none;\n background: transparent;\n color: $brand-secondary-1;\n font-size: $font-size-xxxs;\n font-weight: $font-weight-regular;\n cursor: pointer;\n transition: all 0.2s ease;\n border-radius: $radius-sm;\n\n &:hover:not(&--disabled):not(&--active) {\n background-color: $neutral-light-3;\n }\n\n &:focus-visible {\n outline: 2px solid $brand-secondary-1;\n outline-offset: 2px;\n }\n\n &--page {\n // Sem borda\n }\n\n &--active {\n background-color: $brand-secondary-1;\n color: $neutral-light-pure;\n font-weight: $font-weight-bold;\n cursor: default;\n }\n\n &--nav {\n color: $brand-secondary-1;\n font-size: $font-size-xxs;\n }\n\n &--edge {\n color: $brand-secondary-1;\n }\n\n &--disabled {\n opacity: 0;\n cursor: not-allowed;\n pointer-events: none;\n }\n}\n\n.up-pagination__ellipsis {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 32px;\n height: 32px;\n color: $neutral-dark-2;\n font-size: $font-size-xxxs;\n}\n</style>\n","<template>\n <div class=\"up-product\">\n <Icon :icon=\"iconName\" class=\"up-product__icon\" />\n <p class=\"up-product__label\">{{ labelText }}</p>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport { Icon } from \"@iconify/vue\";\nimport type { UpProductProps, UpProductType } from \"./types\";\n\nconst props = defineProps<UpProductProps>();\n\n// Dicionário de ícones Material Symbols\nconst iconDict: Record<UpProductType, string> = {\n upAcademy: \"school-outline\",\n UpLink: \"share-outline\",\n UpScore: \"readiness-score-outline\",\n UpMatch: \"supervised-user-circle-outline\",\n Certidoes: \"description-outline\",\n RG: \"assignment-ind-outline\",\n Ficha: \"assignment-outline\",\n Dossie: \"lab-profile-outline\",\n UpSearch: \"data-loss-prevention-outline\",\n UpMap: \"person-pin-circle-outline\",\n UpFlag: \"flag-outline\",\n Veiculos: \"directions-car-outline\",\n Imoveis: \"real-estate-agent-outline\",\n EnrDados: \"database-outline\",\n UpJuris: \"gavel\",\n UpFolder: \"folder-supervised-outline\",\n UpMonitor: \"markunread-mailbox-outline\",\n MktApi: \"backup-outline\",\n Societario: \"business-center-outline\",\n Balanco: \"price-change-outline\",\n Historico: \"history\",\n};\n\n// Dicionário de labels\nconst labelDict: Record<UpProductType, string> = {\n upAcademy: \"upAcademy\",\n UpLink: \"UpLink\",\n UpScore: \"UpScore\",\n UpMatch: \"UpMatch\",\n Certidoes: \"Certidões\",\n RG: \"RG\",\n Ficha: \"Ficha\",\n Dossie: \"Dossiê\",\n UpSearch: \"UpSearch\",\n UpMap: \"UpMap\",\n UpFlag: \"UpFlag\",\n Veiculos: \"Veículos\",\n Imoveis: \"Imóveis\",\n EnrDados: \"Enr. Dados\",\n UpJuris: \"UpJuris\",\n UpFolder: \"UpFolder\",\n UpMonitor: \"UpMonitor\",\n MktApi: \"MktApi\",\n Societario: \"Societário\",\n Balanco: \"Balanço\",\n Historico: \"Histórico\",\n};\n\n// Computed para o nome do ícone com prefixo Material Symbols\nconst iconName = computed(() => {\n const icon = iconDict[props.type];\n return `material-symbols:${icon}`;\n});\n\n// Computed para o texto do label\nconst labelText = computed(() => {\n return labelDict[props.type];\n});\n</script>\n\n<style scoped lang=\"scss\">\n@use \"../../styles/variables.scss\" as *;\n\n.up-product {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: $spacing-xs;\n height: 63px;\n width: 86px;\n padding: $spacing-xs $spacing-sm;\n border-radius: 2px;\n border: 1px solid $neutral-light-1;\n background-color: $neutral-light-pure;\n font-weight: $font-weight-bold;\n font-size: $font-size-usu;\n white-space: nowrap;\n}\n\n.up-product__icon {\n font-size: 20px; // Aumentado de 14px para 20px\n color: $brand-primary;\n}\n\n.up-product__label {\n font-weight: $font-weight-bold;\n font-size: 12px; // Aumentado de 11px (font-size-usu) para 12px\n line-height: 1.2;\n}\n</style>\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Components\nimport { makeVSelectionControlProps, VSelectionControl } from \"../VSelectionControl/VSelectionControl.js\"; // Utilities\nimport { genericComponent, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVRadioProps = propsFactory({\n ...makeVSelectionControlProps({\n falseIcon: '$radioOff',\n trueIcon: '$radioOn'\n })\n}, 'VRadio');\nexport const VRadio = genericComponent()({\n name: 'VRadio',\n props: makeVRadioProps(),\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n useRender(() => {\n const controlProps = VSelectionControl.filterProps(props);\n return _createVNode(VSelectionControl, _mergeProps(controlProps, {\n \"class\": ['v-radio', props.class],\n \"style\": props.style,\n \"type\": \"radio\"\n }), slots);\n });\n return {};\n }\n});\n//# sourceMappingURL=VRadio.js.map","import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps, createElementVNode as _createElementVNode } from \"vue\";\n// Styles\nimport \"./VRadioGroup.css\";\n\n// Components\nimport { makeVInputProps, VInput } from \"../VInput/VInput.js\";\nimport { VLabel } from \"../VLabel/index.js\";\nimport { VSelectionControl } from \"../VSelectionControl/index.js\";\nimport { makeSelectionControlGroupProps, VSelectionControlGroup } from \"../VSelectionControlGroup/VSelectionControlGroup.js\"; // Composables\nimport { forwardRefs } from \"../../composables/forwardRefs.js\";\nimport { IconValue } from \"../../composables/icons.js\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.js\"; // Utilities\nimport { computed, ref, useId } from 'vue';\nimport { filterInputAttrs, genericComponent, omit, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVRadioGroupProps = propsFactory({\n height: {\n type: [Number, String],\n default: 'auto'\n },\n ...makeVInputProps(),\n ...omit(makeSelectionControlGroupProps(), ['multiple']),\n trueIcon: {\n type: IconValue,\n default: '$radioOn'\n },\n falseIcon: {\n type: IconValue,\n default: '$radioOff'\n },\n type: {\n type: String,\n default: 'radio'\n }\n}, 'VRadioGroup');\nexport const VRadioGroup = genericComponent()({\n name: 'VRadioGroup',\n inheritAttrs: false,\n props: makeVRadioGroupProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n attrs,\n slots\n } = _ref;\n const uid = useId();\n const id = computed(() => props.id || `radio-group-${uid}`);\n const model = useProxiedModel(props, 'modelValue');\n const inputRef = ref();\n useRender(() => {\n const [rootAttrs, controlAttrs] = filterInputAttrs(attrs);\n const inputProps = VInput.filterProps(props);\n const controlProps = VSelectionControl.filterProps(props);\n const label = slots.label ? slots.label({\n label: props.label,\n props: {\n for: id.value\n }\n }) : props.label;\n return _createVNode(VInput, _mergeProps({\n \"ref\": inputRef,\n \"class\": ['v-radio-group', props.class],\n \"style\": props.style\n }, rootAttrs, inputProps, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event,\n \"id\": id.value\n }), {\n ...slots,\n default: _ref2 => {\n let {\n id,\n messagesId,\n isDisabled,\n isReadonly\n } = _ref2;\n return _createElementVNode(_Fragment, null, [label && _createVNode(VLabel, {\n \"id\": id.value\n }, {\n default: () => [label]\n }), _createVNode(VSelectionControlGroup, _mergeProps(controlProps, {\n \"id\": id.value,\n \"aria-describedby\": messagesId.value,\n \"defaultsTarget\": \"VRadio\",\n \"trueIcon\": props.trueIcon,\n \"falseIcon\": props.falseIcon,\n \"type\": props.type,\n \"disabled\": isDisabled.value,\n \"readonly\": isReadonly.value,\n \"aria-labelledby\": label ? id.value : undefined,\n \"multiple\": false\n }, controlAttrs, {\n \"modelValue\": model.value,\n \"onUpdate:modelValue\": $event => model.value = $event\n }), slots)]);\n }\n });\n });\n return forwardRefs({}, inputRef);\n }\n});\n//# sourceMappingURL=VRadioGroup.js.map","<template>\n <v-radio-group\n :id=\"id\"\n :model-value=\"modelValue\"\n @update:model-value=\"$emit('update:modelValue', $event)\"\n :color=\"color\"\n :inline=\"inline\"\n :column=\"column\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :error=\"error\"\n :error-messages=\"errorMessages\"\n :hint=\"hint\"\n :persistent-hint=\"persistentHint\"\n :density=\"density\"\n :hide-details=\"hideDetails\"\n >\n <template v-if=\"label\" #label>\n <span :class=\"labelClass\">{{ label }}</span>\n </template>\n\n <v-radio\n v-for=\"option in options\"\n :key=\"String(getOptionValue(option))\"\n :value=\"getOptionValue(option)\"\n :color=\"color\"\n :disabled=\"disabled || getOptionDisabled(option)\"\n >\n <template #label>\n <div class=\"d-flex align-center\">\n <v-icon\n v-if=\"getOptionIcon(option)\"\n :icon=\"getOptionIcon(option)\"\n class=\"mr-2\"\n size=\"20\"\n />\n <span>{{ getOptionLabel(option) }}</span>\n </div>\n </template>\n </v-radio>\n\n <template v-if=\"$slots.message\" #message=\"{ message }\">\n <slot name=\"message\" :message=\"message\" />\n </template>\n </v-radio-group>\n</template>\n\n<script setup lang=\"ts\">\n// Removed unused import: computed\n\nexport interface UpRadioOption {\n label: string;\n value: string | number | boolean;\n icon?: string;\n disabled?: boolean;\n}\n\nexport interface UpRadioProps {\n modelValue?: string | number | boolean | null;\n id?: string;\n options: (string | UpRadioOption)[];\n label?: string;\n color?: string;\n inline?: boolean;\n column?: boolean;\n disabled?: boolean;\n readonly?: boolean;\n error?: boolean;\n errorMessages?: string | string[];\n hint?: string;\n persistentHint?: boolean;\n density?: \"default\" | \"comfortable\" | \"compact\";\n hideDetails?: boolean | \"auto\";\n labelClass?: string;\n}\n\n// @ts-ignore - props is used in template\nconst props = withDefaults(defineProps<UpRadioProps>(), {\n color: \"primary\",\n inline: false,\n column: false,\n disabled: false,\n readonly: false,\n error: false,\n persistentHint: false,\n density: \"default\",\n hideDetails: false,\n});\n\ndefineEmits<{\n \"update:modelValue\": [value: string | number | boolean | null];\n}>();\n\nconst getOptionLabel = (option: string | UpRadioOption): string => {\n if (typeof option === \"string\") {\n return option;\n }\n return option.label;\n};\n\nconst getOptionValue = (\n option: string | UpRadioOption\n): string | number | boolean => {\n if (typeof option === \"string\") {\n return option;\n }\n return option.value;\n};\n\nconst getOptionIcon = (option: string | UpRadioOption): string | undefined => {\n if (typeof option === \"string\") {\n return undefined;\n }\n return option.icon;\n};\n\nconst getOptionDisabled = (option: string | UpRadioOption): boolean => {\n if (typeof option === \"string\") {\n return false;\n }\n return option.disabled || false;\n};\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n:deep(.v-label) {\n opacity: 1;\n font-weight: $font-weight-bold;\n}\n\n:deep(.v-selection-control-group) {\n .v-selection-control {\n .v-label {\n font-weight: $font-weight-regular;\n }\n }\n}\n</style>\n","import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from \"vue\";\n// Styles\nimport \"./VAutocomplete.css\";\n\n// Components\nimport { VAvatar } from \"../VAvatar/index.js\";\nimport { VCheckboxBtn } from \"../VCheckbox/index.js\";\nimport { VChip } from \"../VChip/index.js\";\nimport { VDefaultsProvider } from \"../VDefaultsProvider/index.js\";\nimport { VDivider } from \"../VDivider/index.js\";\nimport { VIcon } from \"../VIcon/index.js\";\nimport { VList, VListItem, VListSubheader } from \"../VList/index.js\";\nimport { VMenu } from \"../VMenu/index.js\";\nimport { makeSelectProps } from \"../VSelect/VSelect.js\";\nimport { makeVTextFieldProps, VTextField } from \"../VTextField/VTextField.js\";\nimport { VVirtualScroll } from \"../VVirtualScroll/index.js\"; // Composables\nimport { useScrolling } from \"../VSelect/useScrolling.js\";\nimport { useTextColor } from \"../../composables/color.js\";\nimport { highlightResult, makeFilterProps, useFilter } from \"../../composables/filter.js\";\nimport { useForm } from \"../../composables/form.js\";\nimport { forwardRefs } from \"../../composables/forwardRefs.js\";\nimport { useItems } from \"../../composables/list-items.js\";\nimport { useLocale } from \"../../composables/locale.js\";\nimport { useMenuActivator } from \"../../composables/menuActivator.js\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.js\"; // Utilities\nimport { computed, mergeProps, nextTick, ref, shallowRef, watch } from 'vue';\nimport { checkPrintable, deepEqual, ensureValidVNode, genericComponent, IN_BROWSER, matchesSelector, noop, omit, propsFactory, useRender, wrapInArray } from \"../../util/index.js\"; // Types\nexport const makeVAutocompleteProps = propsFactory({\n autoSelectFirst: {\n type: [Boolean, String]\n },\n clearOnSelect: Boolean,\n search: String,\n ...makeFilterProps({\n filterKeys: ['title']\n }),\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n role: 'combobox'\n }), ['validationValue', 'dirty', 'appendInnerIcon'])\n}, 'VAutocomplete');\nexport const VAutocomplete = genericComponent()({\n name: 'VAutocomplete',\n props: makeVAutocompleteProps(),\n emits: {\n 'update:focused': focused => true,\n 'update:search': value => true,\n 'update:modelValue': value => true,\n 'update:menu': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const {\n t\n } = useLocale();\n const vTextFieldRef = ref();\n const isFocused = shallowRef(false);\n const isPristine = shallowRef(true);\n const listHasFocus = shallowRef(false);\n const vMenuRef = ref();\n const vVirtualScrollRef = ref();\n const selectionIndex = shallowRef(-1);\n const _searchLock = shallowRef(null);\n const {\n items,\n transformIn,\n transformOut\n } = useItems(props);\n const {\n textColorClasses,\n textColorStyles\n } = useTextColor(() => vTextFieldRef.value?.color);\n const search = useProxiedModel(props, 'search', '');\n const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {\n const transformed = transformOut(v);\n return props.multiple ? transformed : transformed[0] ?? null;\n });\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;\n });\n const form = useForm(props);\n const {\n filteredItems,\n getMatches\n } = useFilter(props, items, () => _searchLock.value ?? (isPristine.value ? '' : search.value));\n const displayItems = computed(() => {\n if (props.hideSelected && _searchLock.value === null) {\n return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value));\n }\n return filteredItems.value;\n });\n const hasChips = computed(() => !!(props.chips || slots.chip));\n const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection);\n const selectedValues = computed(() => model.value.map(selection => selection.props.value));\n const highlightFirst = computed(() => {\n const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;\n return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;\n });\n const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);\n const _menu = useProxiedModel(props, 'menu');\n const menu = computed({\n get: () => _menu.value,\n set: v => {\n if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;\n if (v && menuDisabled.value) return;\n _menu.value = v;\n }\n });\n const {\n menuId,\n ariaExpanded,\n ariaControls,\n ariaLabel\n } = useMenuActivator(props, menu);\n const listRef = ref();\n const listEvents = useScrolling(listRef, vTextFieldRef);\n function onClear(e) {\n if (props.openOnClear) {\n menu.value = true;\n }\n search.value = '';\n }\n function onMousedownControl() {\n if (menuDisabled.value) return;\n menu.value = true;\n }\n function onMousedownMenuIcon(e) {\n if (menuDisabled.value) return;\n if (isFocused.value) {\n e.preventDefault();\n e.stopPropagation();\n }\n menu.value = !menu.value;\n }\n function onListKeydown(e) {\n if (checkPrintable(e) || e.key === 'Backspace') {\n vTextFieldRef.value?.focus();\n }\n }\n function onKeydown(e) {\n if (form.isReadonly.value) return;\n const selectionStart = vTextFieldRef.value?.selectionStart;\n const length = model.value.length;\n if (['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault();\n }\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true;\n }\n if (['Escape'].includes(e.key)) {\n menu.value = false;\n }\n if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key) && !model.value.some(_ref2 => {\n let {\n value\n } = _ref2;\n return value === displayItems.value[0].value;\n })) {\n select(displayItems.value[0]);\n }\n if (e.key === 'ArrowDown' && highlightFirst.value) {\n listRef.value?.focus('next');\n }\n if (['Backspace', 'Delete'].includes(e.key)) {\n if (!props.multiple && hasSelectionSlot.value && model.value.length > 0 && !search.value) return select(model.value[0], false);\n if (~selectionIndex.value) {\n e.preventDefault();\n const originalSelectionIndex = selectionIndex.value;\n select(model.value[selectionIndex.value], false);\n selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;\n } else if (e.key === 'Backspace' && !search.value) {\n selectionIndex.value = length - 1;\n }\n return;\n }\n if (!props.multiple) return;\n if (e.key === 'ArrowLeft') {\n if (selectionIndex.value < 0 && selectionStart && selectionStart > 0) return;\n const prev = selectionIndex.value > -1 ? selectionIndex.value - 1 : length - 1;\n if (model.value[prev]) {\n selectionIndex.value = prev;\n } else {\n const searchLength = search.value?.length ?? null;\n selectionIndex.value = -1;\n vTextFieldRef.value?.setSelectionRange(searchLength, searchLength);\n }\n } else if (e.key === 'ArrowRight') {\n if (selectionIndex.value < 0) return;\n const next = selectionIndex.value + 1;\n if (model.value[next]) {\n selectionIndex.value = next;\n } else {\n selectionIndex.value = -1;\n vTextFieldRef.value?.setSelectionRange(0, 0);\n }\n } else if (~selectionIndex.value && checkPrintable(e)) {\n selectionIndex.value = -1;\n }\n }\n function onChange(e) {\n if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {\n const item = items.value.find(item => item.title === e.target.value);\n if (item) {\n select(item);\n }\n }\n }\n function onAfterEnter() {\n if (props.eager) {\n vVirtualScrollRef.value?.calculateVisibleItems();\n }\n }\n function onAfterLeave() {\n if (isFocused.value) {\n isPristine.value = true;\n vTextFieldRef.value?.focus();\n }\n _searchLock.value = null;\n }\n function onFocusin(e) {\n isFocused.value = true;\n setTimeout(() => {\n listHasFocus.value = true;\n });\n }\n function onFocusout(e) {\n listHasFocus.value = false;\n }\n function onUpdateModelValue(v) {\n if (v == null || v === '' && !props.multiple && !hasSelectionSlot.value) model.value = [];\n }\n const isSelecting = shallowRef(false);\n\n /** @param set - null means toggle */\n function select(item) {\n let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (!item || item.props.disabled) return;\n if (props.multiple) {\n const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));\n const add = set == null ? !~index : set;\n if (~index) {\n const value = add ? [...model.value, item] : [...model.value];\n value.splice(index, 1);\n model.value = value;\n } else if (add) {\n model.value = [...model.value, item];\n }\n if (props.clearOnSelect) {\n search.value = '';\n }\n } else {\n const add = set !== false;\n model.value = add ? [item] : [];\n _searchLock.value = isPristine.value ? '' : search.value ?? '';\n search.value = add && !hasSelectionSlot.value ? item.title : '';\n\n // watch for search watcher to trigger\n nextTick(() => {\n menu.value = false;\n isPristine.value = true;\n });\n }\n }\n watch(isFocused, (val, oldVal) => {\n if (val === oldVal) return;\n if (val) {\n isSelecting.value = true;\n search.value = props.multiple || hasSelectionSlot.value ? '' : String(model.value.at(-1)?.props.title ?? '');\n isPristine.value = true;\n nextTick(() => isSelecting.value = false);\n } else {\n if (!props.multiple && search.value == null) model.value = [];\n menu.value = false;\n if (!isPristine.value && search.value) {\n _searchLock.value = search.value;\n }\n search.value = '';\n selectionIndex.value = -1;\n }\n });\n watch(search, val => {\n if (!isFocused.value || isSelecting.value) return;\n if (val) menu.value = true;\n isPristine.value = !val;\n });\n watch(menu, val => {\n if (!props.hideSelected && val && model.value.length && isPristine.value) {\n const index = displayItems.value.findIndex(item => model.value.some(s => item.value === s.value));\n IN_BROWSER && window.requestAnimationFrame(() => {\n index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);\n });\n }\n if (val) _searchLock.value = null;\n });\n watch(items, (newVal, oldVal) => {\n if (menu.value) return;\n if (isFocused.value && !oldVal.length && newVal.length) {\n menu.value = true;\n }\n });\n useRender(() => {\n const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);\n const isDirty = model.value.length > 0;\n const textFieldProps = VTextField.filterProps(props);\n return _createVNode(VTextField, _mergeProps({\n \"ref\": vTextFieldRef\n }, textFieldProps, {\n \"modelValue\": search.value,\n \"onUpdate:modelValue\": [$event => search.value = $event, onUpdateModelValue],\n \"focused\": isFocused.value,\n \"onUpdate:focused\": $event => isFocused.value = $event,\n \"validationValue\": model.externalValue,\n \"counterValue\": counterValue.value,\n \"dirty\": isDirty,\n \"onChange\": onChange,\n \"class\": ['v-autocomplete', `v-autocomplete--${props.multiple ? 'multiple' : 'single'}`, {\n 'v-autocomplete--active-menu': menu.value,\n 'v-autocomplete--chips': !!props.chips,\n 'v-autocomplete--selection-slot': !!hasSelectionSlot.value,\n 'v-autocomplete--selecting-index': selectionIndex.value > -1\n }, props.class],\n \"style\": props.style,\n \"readonly\": form.isReadonly.value,\n \"placeholder\": isDirty ? undefined : props.placeholder,\n \"onClick:clear\": onClear,\n \"onMousedown:control\": onMousedownControl,\n \"onKeydown\": onKeydown,\n \"aria-expanded\": ariaExpanded.value,\n \"aria-controls\": ariaControls.value\n }), {\n ...slots,\n default: () => _createElementVNode(_Fragment, null, [_createVNode(VMenu, _mergeProps({\n \"id\": menuId.value,\n \"ref\": vMenuRef,\n \"modelValue\": menu.value,\n \"onUpdate:modelValue\": $event => menu.value = $event,\n \"activator\": \"parent\",\n \"contentClass\": \"v-autocomplete__content\",\n \"disabled\": menuDisabled.value,\n \"eager\": props.eager,\n \"maxHeight\": 310,\n \"openOnClick\": false,\n \"closeOnContentClick\": false,\n \"onAfterEnter\": onAfterEnter,\n \"onAfterLeave\": onAfterLeave\n }, props.menuProps), {\n default: () => [hasList && _createVNode(VList, _mergeProps({\n \"ref\": listRef,\n \"filterable\": true,\n \"selected\": selectedValues.value,\n \"selectStrategy\": props.multiple ? 'independent' : 'single-independent',\n \"onMousedown\": e => e.preventDefault(),\n \"onKeydown\": onListKeydown,\n \"onFocusin\": onFocusin,\n \"onFocusout\": onFocusout,\n \"tabindex\": \"-1\",\n \"selectable\": true,\n \"aria-live\": \"polite\",\n \"color\": props.itemColor ?? props.color\n }, listEvents, props.listProps), {\n default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? _createVNode(VListItem, {\n \"key\": \"no-data\",\n \"title\": t(props.noDataText)\n }, null)), _createVNode(VVirtualScroll, {\n \"ref\": vVirtualScrollRef,\n \"renderless\": true,\n \"items\": displayItems.value,\n \"itemKey\": \"value\"\n }, {\n default: _ref3 => {\n let {\n item,\n index,\n itemRef\n } = _ref3;\n const itemProps = mergeProps(item.props, {\n ref: itemRef,\n key: item.value,\n active: highlightFirst.value && index === 0 ? true : undefined,\n onClick: () => select(item, null)\n });\n if (item.type === 'divider') {\n return slots.divider?.({\n props: item.raw,\n index\n }) ?? _createVNode(VDivider, _mergeProps(item.props, {\n \"key\": `divider-${index}`\n }), null);\n }\n if (item.type === 'subheader') {\n return slots.subheader?.({\n props: item.raw,\n index\n }) ?? _createVNode(VListSubheader, _mergeProps(item.props, {\n \"key\": `subheader-${index}`\n }), null);\n }\n return slots.item?.({\n item,\n index,\n props: itemProps\n }) ?? _createVNode(VListItem, _mergeProps(itemProps, {\n \"role\": \"option\"\n }), {\n prepend: _ref4 => {\n let {\n isSelected\n } = _ref4;\n return _createElementVNode(_Fragment, null, [props.multiple && !props.hideSelected ? _createVNode(VCheckboxBtn, {\n \"key\": item.value,\n \"modelValue\": isSelected,\n \"ripple\": false,\n \"tabindex\": \"-1\",\n \"onClick\": event => event.preventDefault()\n }, null) : undefined, item.props.prependAvatar && _createVNode(VAvatar, {\n \"image\": item.props.prependAvatar\n }, null), item.props.prependIcon && _createVNode(VIcon, {\n \"icon\": item.props.prependIcon\n }, null)]);\n },\n title: () => {\n return isPristine.value ? item.title : highlightResult('v-autocomplete', item.title, getMatches(item)?.title);\n }\n });\n }\n }), slots['append-item']?.()]\n })]\n }), model.value.map((item, index) => {\n function onChipClose(e) {\n e.stopPropagation();\n e.preventDefault();\n select(item, false);\n }\n const slotProps = {\n 'onClick:close': onChipClose,\n onKeydown(e) {\n if (e.key !== 'Enter' && e.key !== ' ') return;\n e.preventDefault();\n e.stopPropagation();\n onChipClose(e);\n },\n onMousedown(e) {\n e.preventDefault();\n e.stopPropagation();\n },\n modelValue: true,\n 'onUpdate:modelValue': undefined\n };\n const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;\n const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({\n item,\n index,\n props: slotProps\n }) : slots.selection({\n item,\n index\n })) : undefined;\n if (hasSlot && !slotContent) return undefined;\n return _createElementVNode(\"div\", {\n \"key\": item.value,\n \"class\": _normalizeClass(['v-autocomplete__selection', index === selectionIndex.value && ['v-autocomplete__selection--selected', textColorClasses.value]]),\n \"style\": _normalizeStyle(index === selectionIndex.value ? textColorStyles.value : {})\n }, [hasChips.value ? !slots.chip ? _createVNode(VChip, _mergeProps({\n \"key\": \"chip\",\n \"closable\": props.closableChips,\n \"size\": \"small\",\n \"text\": item.title,\n \"disabled\": item.props.disabled\n }, slotProps), null) : _createVNode(VDefaultsProvider, {\n \"key\": \"chip-defaults\",\n \"defaults\": {\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title\n }\n }\n }, {\n default: () => [slotContent]\n }) : slotContent ?? _createElementVNode(\"span\", {\n \"class\": \"v-autocomplete__selection-text\"\n }, [item.title, props.multiple && index < model.value.length - 1 && _createElementVNode(\"span\", {\n \"class\": \"v-autocomplete__selection-comma\"\n }, [_createTextVNode(\",\")])])]);\n })]),\n 'append-inner': function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _createElementVNode(_Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? _createVNode(VIcon, {\n \"class\": \"v-autocomplete__menu-icon\",\n \"color\": vTextFieldRef.value?.fieldIconColor,\n \"icon\": props.menuIcon,\n \"onMousedown\": onMousedownMenuIcon,\n \"onClick\": noop,\n \"aria-label\": ariaLabel.value,\n \"title\": ariaLabel.value,\n \"tabindex\": \"-1\"\n }, null) : undefined]);\n }\n });\n });\n return forwardRefs({\n isFocused,\n isPristine,\n menu,\n search,\n filteredItems,\n select\n }, vTextFieldRef);\n }\n});\n//# sourceMappingURL=VAutocomplete.js.map","<template>\n <v-autocomplete\n v-model=\"internalValue\"\n v-model:search=\"searchQuery\"\n :id=\"id\"\n :items=\"items\"\n :label=\"label\"\n :placeholder=\"placeholder\"\n :hint=\"hint\"\n :persistent-hint=\"persistentHint\"\n :variant=\"variant\"\n :density=\"density\"\n :color=\"color\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :loading=\"loading\"\n :clearable=\"clearable\"\n :multiple=\"multiple\"\n :chips=\"chips\"\n :prepend-icon=\"prependIcon\"\n :prepend-inner-icon=\"prependInnerIcon\"\n :append-icon=\"appendIcon\"\n :append-inner-icon=\"appendInnerIcon\"\n :rules=\"rules\"\n :error-messages=\"errorMessages\"\n :item-title=\"itemTitle\"\n :item-value=\"itemValue\"\n :return-object=\"returnObject\"\n :rounded=\"rounded\"\n :menu-icon=\"menuIcon\"\n :no-filter=\"noFilter\"\n :custom-filter=\"customFilter\"\n :auto-select-first=\"autoSelectFirst\"\n v-bind=\"$attrs\"\n @update:model-value=\"handleChange\"\n @update:search=\"handleSearch\"\n @blur=\"handleBlur\"\n @focus=\"handleFocus\"\n >\n <template v-if=\"$slots.prepend\" #prepend>\n <slot name=\"prepend\" />\n </template>\n <template v-if=\"$slots['prepend-inner']\" #prepend-inner>\n <slot name=\"prepend-inner\" />\n </template>\n <template v-if=\"$slots.append\" #append>\n <slot name=\"append\" />\n </template>\n <template v-if=\"$slots['append-inner']\" #append-inner>\n <slot name=\"append-inner\" />\n </template>\n <template v-if=\"$slots.selection\" #selection=\"{ item, index }\">\n <slot name=\"selection\" :item=\"item\" :index=\"index\" />\n </template>\n <template v-if=\"$slots.item\" #item=\"{ item, props: itemProps }\">\n <slot name=\"item\" :item=\"item\" :props=\"itemProps\" />\n </template>\n <template v-if=\"$slots.chip\" #chip=\"{ item, props: chipProps }\">\n <slot name=\"chip\" :item=\"item\" :props=\"chipProps\" />\n </template>\n <template v-if=\"$slots['no-data']\" #no-data>\n <slot name=\"no-data\" />\n </template>\n </v-autocomplete>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch } from \"vue\";\n\nexport interface UpSelectProps {\n modelValue?: any;\n id?: string;\n items?: any[];\n label?: string;\n placeholder?: string;\n hint?: string;\n persistentHint?: boolean;\n variant?:\n | \"outlined\"\n | \"filled\"\n | \"underlined\"\n | \"solo\"\n | \"solo-inverted\"\n | \"solo-filled\"\n | \"plain\";\n density?: \"default\" | \"comfortable\" | \"compact\";\n color?: string;\n disabled?: boolean;\n readonly?: boolean;\n loading?: boolean;\n clearable?: boolean;\n multiple?: boolean;\n chips?: boolean;\n prependIcon?: string;\n prependInnerIcon?: string;\n appendIcon?: string;\n appendInnerIcon?: string;\n rules?: Array<(value: any) => boolean | string>;\n errorMessages?: string | string[];\n itemTitle?: string;\n itemValue?: string;\n returnObject?: boolean;\n rounded?: string | number | boolean;\n menuIcon?: string;\n noFilter?: boolean;\n customFilter?: (itemTitle: string, queryText: string, item: any) => boolean;\n autoSelectFirst?: boolean | \"exact\";\n}\n\nconst props = withDefaults(defineProps<UpSelectProps>(), {\n variant: \"outlined\",\n density: \"comfortable\",\n color: \"primary\",\n disabled: false,\n readonly: false,\n loading: false,\n clearable: true,\n multiple: false,\n chips: false,\n persistentHint: false,\n returnObject: false,\n rounded: \"md\",\n itemTitle: \"title\",\n itemValue: \"value\",\n menuIcon: \"mdi-menu-down\",\n noFilter: false,\n autoSelectFirst: false,\n});\n\nconst emit = defineEmits<{\n \"update:modelValue\": [value: any];\n \"update:search\": [search: string];\n search: [term: string];\n blur: [event: FocusEvent];\n focus: [event: FocusEvent];\n}>();\n\nconst internalValue = ref(props.modelValue);\nconst searchQuery = ref(\"\");\n\nwatch(\n () => props.modelValue,\n (newValue) => {\n internalValue.value = newValue;\n }\n);\n\nconst handleChange = (value: any) => {\n emit(\"update:modelValue\", value);\n};\n\nconst handleSearch = (search: string) => {\n emit(\"update:search\", search);\n emit(\"search\", search);\n};\n\nconst handleBlur = (event: FocusEvent) => {\n emit(\"blur\", event);\n};\n\nconst handleFocus = (event: FocusEvent) => {\n emit(\"focus\", event);\n};\n</script>\n\n<style scoped lang=\"scss\"></style>\n","<template>\n <nav\n class=\"up-sidebar\"\n :class=\"{ 'up-sidebar--open': isHovered, 'up-sidebar--closed': !isHovered }\"\n @mouseenter=\"isHovered = true\"\n @mouseleave=\"isHovered = false\"\n >\n <!-- Header -->\n <div class=\"up-sidebar__header\">\n <slot name=\"header\" />\n </div>\n\n <!-- Menu Items -->\n <div class=\"up-sidebar__items\">\n <template v-for=\"(item, index) in items\" :key=\"index\">\n <!-- Espaçador -->\n <div v-if=\"item.space\" class=\"up-sidebar__spacer\" />\n\n <!-- Item clicável -->\n <button\n v-else-if=\"item.clickable\"\n class=\"up-sidebar__item\"\n :class=\"{ 'up-sidebar__item--closed': !isHovered }\"\n @click=\"handleItemClick(item)\"\n >\n <v-icon v-if=\"item.icon\" size=\"20\" class=\"up-sidebar__icon\">\n mdi-{{ item.icon }}\n </v-icon>\n <span v-if=\"isHovered\" class=\"up-sidebar__label\">\n {{ item.label }}\n </span>\n </button>\n\n <!-- Item com submenu -->\n <v-menu\n v-else\n :location=\"'end'\"\n :offset=\"isHovered ? 28 : 16\"\n :open-on-hover=\"false\"\n >\n <template #activator=\"{ props: menuProps }\">\n <button\n v-bind=\"menuProps\"\n class=\"up-sidebar__item\"\n :class=\"{\n 'up-sidebar__item--closed': !isHovered,\n 'up-sidebar__item--active': currentMenu === item.label,\n }\"\n @click=\"toggleMenu(item.label)\"\n >\n <v-icon v-if=\"item.icon\" size=\"20\" class=\"up-sidebar__icon\">\n mdi-{{ item.icon }}\n </v-icon>\n <span v-if=\"isHovered\" class=\"up-sidebar__label\">\n {{ item.label }}\n </span>\n </button>\n </template>\n\n <div\n v-if=\"currentMenu === item.label\"\n class=\"up-sidebar__submenu\"\n :style=\"getSubmenuStyle(item)\"\n >\n <slot :name=\"item.label\" :close=\"closeMenu\" />\n </div>\n </v-menu>\n </template>\n </div>\n </nav>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport type { UpSideBarProps, UpSideBarItem } from \"./types\";\n\n// @ts-ignore - props is used in template\nconst props = withDefaults(defineProps<UpSideBarProps>(), {\n to: \"body\",\n});\n\nconst emit = defineEmits<{\n itemClick: [item: UpSideBarItem];\n}>();\n\nconst currentMenu = ref<string>(\"\");\nconst isHovered = ref<boolean>(false);\n\nconst handleItemClick = (item: UpSideBarItem) => {\n emit(\"itemClick\", item);\n closeMenu();\n};\n\nconst toggleMenu = (label?: string) => {\n if (currentMenu.value === label) {\n closeMenu();\n } else {\n currentMenu.value = label || \"\";\n }\n};\n\nconst closeMenu = () => {\n currentMenu.value = \"\";\n};\n\nconst getSubmenuStyle = (item: UpSideBarItem) => {\n const padding = item.collisionPadding;\n if (!padding) return {};\n\n if (typeof padding === \"number\") {\n return { padding: `${padding}px` };\n }\n\n return {\n paddingTop: padding.top ? `${padding.top}px` : undefined,\n paddingRight: padding.right ? `${padding.right}px` : undefined,\n paddingBottom: padding.bottom ? `${padding.bottom}px` : undefined,\n paddingLeft: padding.left ? `${padding.left}px` : undefined,\n };\n};\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-sidebar {\n display: flex;\n flex-direction: column;\n gap: 0;\n padding: 0;\n background-color: $neutral-light-pure; // Fundo branco\n height: 500px;\n transition: width 200ms ease;\n width: 69px;\n border-radius: $radius-lg;\n\n &--open {\n width: 163px;\n }\n\n &--closed {\n width: 69px;\n }\n}\n\n.up-sidebar__header {\n padding: 24px 0;\n margin: 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.up-sidebar__items {\n display: flex;\n flex-direction: column;\n gap: 0;\n padding: 16px 0;\n}\n\n.up-sidebar__spacer {\n height: 24px; // Espaçamento maior entre grupos\n}\n\n.up-sidebar__item {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 8px;\n padding: 12px 16px;\n background: transparent;\n border: none;\n cursor: pointer;\n transition: background-color 150ms ease;\n color: $brand-primary; // Laranja\n font-family: $font-family-base;\n font-size: 13px;\n font-weight: $font-weight-regular;\n text-align: left;\n width: 100%;\n min-height: 44px;\n\n &:hover {\n background-color: rgba($brand-primary, 0.08); // Hover laranja suave\n }\n\n &:focus {\n outline: none;\n }\n\n &--active {\n background-color: rgba($brand-primary, 0.12);\n }\n\n &--closed {\n justify-content: center;\n }\n}\n\n.up-sidebar__icon {\n flex-shrink: 0;\n color: $brand-primary; // Ícones laranja\n font-size: 20px !important;\n}\n\n.up-sidebar__label {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: $neutral-dark-2; // Texto escuro\n font-size: 13px;\n line-height: 1.2;\n}\n\n.up-sidebar__submenu {\n z-index: 100;\n background-color: $neutral-light-pure;\n border-radius: $radius-sm;\n box-shadow: $shadow-md;\n min-width: 200px;\n}\n</style>\n","<template>\n <nav class=\"up-stepper\">\n <ol class=\"up-stepper__list\">\n <template v-for=\"(item, index) in items\" :key=\"item.label\">\n <li\n class=\"up-stepper__item\"\n :class=\"{\n 'up-stepper__item--active': modelValue?.label === item.label,\n 'up-stepper__item--disabled': item.disabled,\n }\"\n >\n <button\n class=\"up-stepper__button\"\n :disabled=\"item.disabled\"\n @click=\"handleClick(item)\"\n >\n {{ item.label }}\n </button>\n </li>\n <span v-if=\"index < items.length - 1\" class=\"up-stepper__separator\"\n >/</span\n >\n </template>\n </ol>\n </nav>\n</template>\n\n<script setup lang=\"ts\">\nimport type { NavigationItem, UpStepperProps } from \"./types\";\n\n// @ts-ignore - props is used in template\nconst props = defineProps<UpStepperProps>();\n\nconst modelValue = defineModel<NavigationItem>({ default: {} });\n\nconst handleClick = (item: NavigationItem) => {\n if (!item.disabled) {\n modelValue.value = item;\n }\n};\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-stepper {\n display: block;\n}\n\n.up-stepper__list {\n display: flex;\n align-items: center;\n gap: 8px;\n list-style: none;\n padding: 0;\n margin: 0;\n font-size: 13px;\n}\n\n.up-stepper__item {\n display: flex;\n align-items: center;\n font-size: 13px;\n font-weight: $font-weight-regular;\n color: $neutral-dark-3;\n\n &--active {\n font-weight: $font-weight-bold;\n color: $neutral-dark-2;\n }\n\n &--disabled {\n color: $neutral-light-1;\n }\n}\n\n.up-stepper__button {\n background: none;\n border: none;\n padding: 0;\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n color: inherit;\n cursor: pointer;\n text-align: left;\n\n &:disabled {\n cursor: not-allowed;\n }\n\n &:focus {\n outline: 2px solid $brand-primary;\n outline-offset: 2px;\n border-radius: 2px;\n }\n}\n\n.up-stepper__separator {\n color: $neutral-dark-3;\n user-select: none;\n}\n</style>\n","<template>\n <div class=\"up-switch\" :class=\"computedClasses.switch\" @click=\"handleClick\">\n <div class=\"up-switch__thumb\" :class=\"computedClasses.thumb\"></div>\n <label class=\"up-switch__labels\">\n <span\n v-if=\"offLabel\"\n class=\"up-switch__label up-switch__label--off\"\n :class=\"computedClasses.offLabel\"\n >\n {{ offLabel }}\n </span>\n <input\n type=\"checkbox\"\n :id=\"id\"\n v-model=\"switchState\"\n class=\"up-switch__input\"\n />\n <span\n v-if=\"onLabel\"\n class=\"up-switch__label up-switch__label--on\"\n :class=\"computedClasses.onLabel\"\n >\n {{ onLabel }}\n </span>\n </label>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nexport interface UpSwitchProps {\n id?: string;\n onLabel?: string;\n offLabel?: string;\n}\n\nconst props = defineProps<UpSwitchProps>();\n\nconst switchState = defineModel<boolean>(\"state\", {\n default: false,\n});\n\nconst handleClick = () => {\n switchState.value = !switchState.value;\n};\n\nconst hasLabels = computed(() => !!(props.offLabel && props.onLabel));\n\nconst computedClasses = computed(() => {\n return {\n switch: [\n hasLabels.value\n ? \"up-switch--with-labels\"\n : switchState.value\n ? \"up-switch--on\"\n : \"up-switch--off\",\n ],\n thumb: [\n !hasLabels.value\n ? switchState.value\n ? \"up-switch__thumb--simple-on\"\n : \"up-switch__thumb--simple-off\"\n : switchState.value\n ? \"up-switch__thumb--labels-on\"\n : \"up-switch__thumb--labels-off\",\n ],\n offLabel: [\n !switchState.value\n ? \"up-switch__label--active\"\n : \"up-switch__label--inactive\",\n ],\n onLabel: [\n switchState.value\n ? \"up-switch__label--active\"\n : \"up-switch__label--inactive\",\n ],\n };\n});\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-switch {\n position: relative;\n display: inline-flex;\n align-items: center;\n border-radius: 9999px;\n cursor: pointer;\n transition: all 300ms;\n min-width: 32px;\n\n // Switch simples (sem labels)\n &--off {\n background-color: $neutral-light-2;\n height: 12px;\n width: 20px;\n }\n\n &--on {\n background-color: $brand-secondary-3;\n height: 12px;\n width: 20px;\n }\n\n // Switch com labels\n &--with-labels {\n background-color: transparent;\n width: fit-content;\n height: 16px;\n border: 1px solid $neutral-dark-3;\n padding: 0 8px;\n }\n}\n\n.up-switch__thumb {\n position: absolute;\n background-color: $brand-secondary-1;\n transition: all 100ms;\n\n // Thumb do switch simples\n &--simple-off {\n left: 5%;\n width: 12px;\n height: 12px;\n border-radius: 8px;\n }\n\n &--simple-on {\n left: 55%;\n width: 12px;\n height: 12px;\n border-radius: 8px;\n }\n\n // Thumb do switch com labels\n &--labels-off {\n left: -0.3%;\n width: 50%;\n height: 110%;\n border-radius: 9999px;\n }\n\n &--labels-on {\n left: 50.2%;\n width: 50%;\n height: 110%;\n border-radius: 9999px;\n }\n}\n\n.up-switch__labels {\n position: relative;\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 8px;\n width: 100%;\n cursor: pointer;\n z-index: 10;\n}\n\n.up-switch__label {\n font-size: 11px;\n text-align: center;\n transition: color 150ms;\n\n &--active {\n color: $neutral-light-3;\n }\n\n &--inactive {\n color: $neutral-dark-3;\n }\n}\n\n.up-switch__input {\n position: absolute;\n width: 100%;\n height: 100%;\n opacity: 0;\n cursor: pointer;\n}\n</style>\n","<template>\n <div class=\"up-tab\" :class=\"{ 'up-tab--with-arrows': showArrows }\">\n <!-- Botão Anterior -->\n <button\n v-if=\"showArrows\"\n class=\"up-tab__button\"\n :disabled=\"!isValidPreviousNavigation\"\n @click=\"previous\"\n >\n <v-icon size=\"20\" class=\"up-tab__button__icon\">mdi-chevron-left</v-icon>\n </button>\n\n <!-- Container de Itens -->\n <div\n class=\"up-tab__items\"\n :class=\"{ 'up-tab__items--scrollable': showArrows }\"\n >\n <span\n v-for=\"(item, index) in items\"\n :key=\"item.value\"\n :id=\"item.value\"\n class=\"up-tab__items__item\"\n :class=\"{\n 'up-tab__items__item--active': currentIndex === index,\n }\"\n @click=\"setCurrentIndex(index)\"\n >\n <v-icon v-if=\"item.icon\" size=\"18\" class=\"up-tab__items__item__icon\">\n mdi-{{ item.icon }}\n </v-icon>\n {{ item.label }}\n </span>\n </div>\n\n <!-- Botão Próximo -->\n <button\n v-if=\"showArrows\"\n class=\"up-tab__button\"\n :disabled=\"!isValidNextNavigation\"\n @click=\"next\"\n >\n <v-icon size=\"20\" class=\"up-tab__button__icon\">mdi-chevron-right</v-icon>\n </button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, onMounted } from \"vue\";\nimport type { UpTabProps } from \"./types\";\n\nconst props = withDefaults(defineProps<UpTabProps>(), {\n showArrows: false,\n});\n\nconst value = defineModel<string>(\"tab\");\n\nconst currentIndex = ref<number>(0);\n\nonMounted(() => {\n if (props.items.length > 0) {\n value.value = props.items[0].value;\n }\n});\n\nconst isValidPreviousNavigation = computed(() => currentIndex.value > 0);\nconst isValidNextNavigation = computed(\n () => currentIndex.value < props.items.length - 1\n);\n\nconst setCurrentIndex = (index: number) => {\n currentIndex.value = index;\n value.value = props.items[index].value;\n if (props.showArrows) {\n scrollElement(props.items[index].value);\n }\n};\n\nconst scrollElement = (valueID: string) => {\n const element = document.getElementById(valueID);\n if (element) {\n element.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"center\",\n });\n }\n};\n\nconst next = () => {\n if (currentIndex.value < props.items.length - 1) {\n currentIndex.value++;\n value.value = props.items[currentIndex.value].value;\n if (props.showArrows) {\n scrollElement(props.items[currentIndex.value].value);\n }\n }\n};\n\nconst previous = () => {\n if (currentIndex.value > 0) {\n currentIndex.value--;\n value.value = props.items[currentIndex.value].value;\n scrollElement(props.items[currentIndex.value].value);\n }\n};\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-tab {\n display: flex;\n align-items: center;\n font-weight: $font-weight-bold;\n font-size: 13px;\n min-height: 20px;\n color: $neutral-dark-3;\n transition: all 200ms;\n\n &--with-arrows {\n display: grid;\n grid-template-columns: auto 1fr auto;\n gap: 8px;\n }\n}\n\n.up-tab__button {\n color: $brand-secondary-1;\n font-size: 12px;\n transition: all 200ms;\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:disabled {\n color: $neutral-dark-2;\n cursor: not-allowed;\n }\n\n &__icon {\n font-size: 20px;\n }\n}\n\n.up-tab__items {\n display: flex;\n height: 100%;\n gap: 12px;\n padding: 8px;\n white-space: nowrap;\n\n &--scrollable {\n overflow: hidden;\n }\n}\n\n.up-tab__items__item {\n padding: 4px 8px;\n min-height: 20px;\n cursor: pointer;\n display: flex;\n gap: 10px;\n align-items: center;\n transition: all 200ms;\n\n &--active {\n font-weight: $font-weight-bold;\n border-bottom: 2px solid $brand-secondary-1;\n color: $brand-secondary-1;\n }\n\n &__icon {\n font-size: 18px;\n }\n}\n</style>\n","<template>\n <v-text-field\n ref=\"textFieldRef\"\n v-model=\"internalValue\"\n :id=\"id\"\n :label=\"label\"\n :placeholder=\"placeholder\"\n :hint=\"hint\"\n :persistent-hint=\"persistentHint\"\n :type=\"type\"\n :variant=\"variant\"\n :density=\"density\"\n :color=\"color\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :loading=\"loading\"\n :clearable=\"clearable\"\n :prepend-icon=\"prependIcon\"\n :prepend-inner-icon=\"prependInnerIcon\"\n :append-icon=\"appendIcon || icon\"\n :append-inner-icon=\"appendInnerIcon\"\n :rules=\"rules\"\n :error-messages=\"errorMessages || (error ? error.message : undefined)\"\n :counter=\"counter\"\n :maxlength=\"maxlength\"\n :rounded=\"rounded\"\n :required=\"required\"\n v-bind=\"$attrs\"\n @update:model-value=\"handleInput\"\n @blur=\"handleBlur\"\n @focus=\"handleFocus\"\n @keydown.enter=\"handleEnter\"\n @click:append=\"handleIconClick\"\n >\n <template v-if=\"$slots.prepend\" #prepend>\n <slot name=\"prepend\" />\n </template>\n <template v-if=\"$slots['prepend-inner']\" #prepend-inner>\n <slot name=\"prepend-inner\" />\n </template>\n <template v-if=\"$slots.append\" #append>\n <slot name=\"append\" />\n </template>\n <template v-if=\"$slots['append-inner']\" #append-inner>\n <slot name=\"append-inner\" />\n </template>\n </v-text-field>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, nextTick } from \"vue\";\n\nexport interface UpTextFieldProps {\n modelValue?: string | number;\n id?: string;\n label?: string;\n placeholder?: string;\n hint?: string;\n persistentHint?: boolean;\n type?: string;\n variant?:\n | \"outlined\"\n | \"filled\"\n | \"underlined\"\n | \"solo\"\n | \"solo-inverted\"\n | \"solo-filled\"\n | \"plain\";\n density?: \"default\" | \"comfortable\" | \"compact\";\n color?: string;\n disabled?: boolean;\n readonly?: boolean;\n loading?: boolean;\n clearable?: boolean;\n prependIcon?: string;\n prependInnerIcon?: string;\n appendIcon?: string;\n appendInnerIcon?: string;\n rules?: Array<(value: any) => boolean | string>;\n errorMessages?: string | string[];\n counter?: boolean | number | string;\n maxlength?: number | string;\n rounded?: string | number | boolean;\n // Novas props do UpInput antigo\n pattern?: string; // Máscara de formatação (CPF, CNPJ, CEP, etc.)\n required?: boolean; // Campo obrigatório\n error?: { message: string } | null; // Objeto de erro\n icon?: string; // Ícone à direita (MDI)\n}\n\nconst props = withDefaults(defineProps<UpTextFieldProps>(), {\n type: \"text\",\n variant: \"outlined\",\n density: \"comfortable\",\n color: \"primary\",\n disabled: false,\n readonly: false,\n loading: false,\n clearable: false,\n persistentHint: false,\n rounded: \"md\",\n required: false,\n});\n\nconst emit = defineEmits<{\n \"update:modelValue\": [value: string | number];\n blur: [event: FocusEvent];\n focus: [event: FocusEvent];\n enter: []; // Novo evento @enter\n click: []; // Novo evento @click no ícone\n}>();\n\nconst textFieldRef = ref();\nconst internalValue = ref(props.modelValue);\n\n// Função para aplicar máscara\nconst applyMask = (value: string, mask: string): string => {\n if (!mask || !value) return value;\n\n let maskedValue = \"\";\n let valueIndex = 0;\n\n for (let i = 0; i < mask.length && valueIndex < value.length; i++) {\n if (mask[i] === \"#\") {\n // # representa um dígito\n if (/\\d/.test(value[valueIndex])) {\n maskedValue += value[valueIndex];\n valueIndex++;\n } else {\n // Pula caracteres não numéricos\n valueIndex++;\n i--;\n }\n } else {\n // Adiciona o caractere da máscara\n maskedValue += mask[i];\n // Se o valor atual já tem esse caractere, pula\n if (value[valueIndex] === mask[i]) {\n valueIndex++;\n }\n }\n }\n\n return maskedValue;\n};\n\nwatch(\n () => props.modelValue,\n (newValue) => {\n internalValue.value = newValue;\n }\n);\n\n// Aplica máscara quando o valor muda\nwatch(internalValue, (newValue) => {\n if (props.pattern && typeof newValue === \"string\") {\n const cleanValue = newValue.replace(/\\D/g, \"\"); // Remove tudo que não é dígito\n const masked = applyMask(cleanValue, props.pattern);\n if (masked !== newValue) {\n nextTick(() => {\n internalValue.value = masked;\n });\n }\n }\n});\n\n// Watch error para focar automaticamente no input quando erro aparece\nwatch(\n () => props.error,\n (newError) => {\n if (newError) {\n nextTick(() => {\n // v-text-field expõe o método focus()\n if (\n textFieldRef.value &&\n typeof textFieldRef.value.focus === \"function\"\n ) {\n textFieldRef.value.focus();\n }\n });\n }\n }\n);\n\nconst handleInput = (value: string | number) => {\n emit(\"update:modelValue\", value);\n};\n\nconst handleBlur = (event: FocusEvent) => {\n emit(\"blur\", event);\n};\n\nconst handleFocus = (event: FocusEvent) => {\n emit(\"focus\", event);\n};\n\nconst handleEnter = () => {\n emit(\"enter\");\n};\n\nconst handleIconClick = () => {\n emit(\"click\");\n // Foca no input após clicar no ícone\n nextTick(() => {\n // v-text-field expõe o método focus()\n if (textFieldRef.value && typeof textFieldRef.value.focus === \"function\") {\n textFieldRef.value.focus();\n }\n });\n};\n</script>\n\n<style scoped lang=\"scss\"></style>\n","<template>\n <div\n class=\"up-title-bar\"\n :class=\"{\n 'up-title-bar--bordered': bordered,\n 'up-title-bar--disabled': disabled,\n }\"\n >\n <div class=\"up-title-bar__left\">\n <v-icon v-if=\"prependIcon\" size=\"12\" class=\"up-title-bar__icon\">\n mdi-{{ prependIcon }}\n </v-icon>\n <component :is=\"headingType\" class=\"up-title-bar__title\">\n {{ title }}\n </component>\n </div>\n\n <button\n v-if=\"closeable\"\n class=\"up-title-bar__close\"\n :disabled=\"disabled\"\n @click=\"handleClose\"\n >\n <v-icon size=\"12\">mdi-close</v-icon>\n </button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { UpTitleBarProps } from \"./types\";\n\nconst props = withDefaults(defineProps<UpTitleBarProps>(), {\n headingType: \"h1\",\n closeable: false,\n bordered: true,\n disabled: false,\n title: \"Title bar\",\n});\n\nconst emits = defineEmits<{\n (e: \"close\"): void;\n}>();\n\nconst handleClose = () => {\n if (!props.disabled) {\n emits(\"close\");\n }\n};\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-title-bar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 32px;\n width: 100%;\n background-color: $neutral-light-3;\n padding: 0 4px;\n font-weight: $font-weight-regular;\n font-size: 13px;\n color: $neutral-dark-2;\n\n &--bordered {\n border: 1px solid $neutral-light-1;\n border-bottom: 0;\n border-radius: 2px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n &--disabled {\n color: $neutral-light-1;\n border-color: $neutral-light-1;\n cursor: not-allowed;\n }\n}\n\n.up-title-bar__left {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n.up-title-bar__icon {\n flex-shrink: 0;\n font-size: 12px !important;\n}\n\n.up-title-bar__title {\n display: flex;\n font-size: 13px;\n font-weight: $font-weight-regular;\n margin: 0;\n}\n\n.up-title-bar__close {\n cursor: pointer;\n background: none;\n border: none;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:disabled {\n cursor: not-allowed;\n }\n}\n</style>\n\n","<template>\n <Teleport to=\"body\">\n <Transition :name=\"transitionName\">\n <div\n v-if=\"internalShow\"\n :class=\"['up-toast', positionClass]\"\n :style=\"toastStyle\"\n >\n <div :class=\"['up-toast__content', `up-toast__content--${type}`]\">\n <div class=\"d-flex align-center\">\n <v-icon v-if=\"icon\" :icon=\"icon\" class=\"mr-3\" size=\"24\" />\n\n <div class=\"flex-grow-1\">\n <div v-if=\"title\" class=\"up-toast__title\">{{ title }}</div>\n <div class=\"up-toast__message\">{{ message }}</div>\n </div>\n\n <v-btn\n v-if=\"requireClose || closable\"\n :icon=\"closeIcon\"\n variant=\"text\"\n size=\"small\"\n class=\"ml-3\"\n @click=\"close\"\n />\n </div>\n\n <div v-if=\"$slots.actions\" class=\"up-toast__actions mt-3\">\n <slot name=\"actions\" :close=\"close\" />\n </div>\n\n <div\n v-if=\"!requireClose && showProgress\"\n class=\"up-toast__progress\"\n :style=\"progressStyle\"\n />\n </div>\n </div>\n </Transition>\n </Teleport>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, computed, onMounted, onUnmounted } from \"vue\";\n\nexport interface UpToastProps {\n modelValue?: boolean;\n message: string;\n title?: string;\n type?: \"success\" | \"info\" | \"warning\" | \"error\" | \"default\";\n icon?: string;\n requireClose?: boolean;\n closable?: boolean;\n duration?: number;\n position?:\n | \"top\"\n | \"top-right\"\n | \"top-left\"\n | \"bottom\"\n | \"bottom-right\"\n | \"bottom-left\";\n showProgress?: boolean;\n maxWidth?: string | number;\n closeIcon?: string;\n}\n\nconst props = withDefaults(defineProps<UpToastProps>(), {\n modelValue: false,\n type: \"default\",\n requireClose: false,\n closable: true,\n duration: 5000,\n position: \"top-right\",\n showProgress: true,\n maxWidth: 400,\n closeIcon: \"mdi-close\",\n});\n\nconst emit = defineEmits<{\n \"update:modelValue\": [value: boolean];\n close: [];\n}>();\n\nconst internalShow = ref(props.modelValue);\nconst progress = ref(100);\nlet timeoutId: ReturnType<typeof setTimeout> | null = null;\nlet intervalId: ReturnType<typeof setInterval> | null = null;\n\nwatch(\n () => props.modelValue,\n (newValue) => {\n internalShow.value = newValue;\n if (newValue && !props.requireClose) {\n startProgress();\n }\n }\n);\n\nconst positionClass = computed(() => {\n return `up-toast--${props.position}`;\n});\n\nconst transitionName = computed(() => {\n if (props.position.includes(\"right\")) return \"slide-right\";\n if (props.position.includes(\"left\")) return \"slide-left\";\n return \"slide-down\";\n});\n\nconst toastStyle = computed(() => {\n return {\n maxWidth:\n typeof props.maxWidth === \"number\"\n ? `${props.maxWidth}px`\n : props.maxWidth,\n };\n});\n\nconst progressStyle = computed(() => {\n return {\n width: `${progress.value}%`,\n transition: `width ${props.duration}ms linear`,\n };\n});\n\nconst startProgress = () => {\n clearTimers();\n progress.value = 100;\n\n timeoutId = setTimeout(() => {\n close();\n }, props.duration);\n\n const steps = 100;\n const interval = props.duration / steps;\n\n intervalId = setInterval(() => {\n progress.value -= 100 / steps;\n if (progress.value <= 0) {\n clearTimers();\n }\n }, interval);\n};\n\nconst clearTimers = () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n if (intervalId) {\n clearInterval(intervalId);\n intervalId = null;\n }\n};\n\nconst close = () => {\n clearTimers();\n internalShow.value = false;\n emit(\"update:modelValue\", false);\n emit(\"close\");\n};\n\nonMounted(() => {\n if (internalShow.value && !props.requireClose) {\n startProgress();\n }\n});\n\nonUnmounted(() => {\n clearTimers();\n});\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-toast {\n position: fixed;\n z-index: 9999;\n padding: $spacing-md;\n\n &--top {\n top: $spacing-md;\n left: 50%;\n transform: translateX(-50%);\n }\n\n &--top-right {\n top: $spacing-md;\n right: $spacing-md;\n }\n\n &--top-left {\n top: $spacing-md;\n left: $spacing-md;\n }\n\n &--bottom {\n bottom: $spacing-md;\n left: 50%;\n transform: translateX(-50%);\n }\n\n &--bottom-right {\n bottom: $spacing-md;\n right: $spacing-md;\n }\n\n &--bottom-left {\n bottom: $spacing-md;\n left: $spacing-md;\n }\n\n &__content {\n position: relative;\n padding: $spacing-md $spacing-lg;\n border-radius: $radius-lg;\n box-shadow: $shadow-md;\n background: white;\n overflow: hidden;\n min-width: 300px;\n\n &--success {\n background: rgb(var(--v-theme-success));\n color: white;\n }\n\n &--error {\n background: rgb(var(--v-theme-error));\n color: white;\n }\n\n &--warning {\n background: rgb(var(--v-theme-warning));\n color: white;\n }\n\n &--info {\n background: rgb(var(--v-theme-info));\n color: white;\n }\n\n &--default {\n background: rgb(var(--v-theme-primary));\n color: white;\n }\n }\n\n &__title {\n font-weight: $font-weight-semibolder;\n font-size: $font-size-xxs;\n margin-bottom: $spacing-xs;\n }\n\n &__message {\n font-size: $font-size-xxxs;\n line-height: $line-height-xxxs;\n }\n\n &__actions {\n display: flex;\n gap: $spacing-sm;\n justify-content: flex-end;\n }\n\n &__progress {\n position: absolute;\n bottom: 0;\n left: 0;\n height: $spacing-xs;\n background: rgba(255, 255, 255, 0.3);\n border-radius: 0 0 $radius-lg $radius-lg;\n }\n}\n\n.slide-right-enter-active,\n.slide-right-leave-active {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.slide-right-enter-from {\n opacity: 0;\n transform: translateX(100%);\n}\n\n.slide-right-leave-to {\n opacity: 0;\n transform: translateX(100%);\n}\n\n.slide-left-enter-active,\n.slide-left-leave-active {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.slide-left-enter-from {\n opacity: 0;\n transform: translateX(-100%);\n}\n\n.slide-left-leave-to {\n opacity: 0;\n transform: translateX(-100%);\n}\n\n.slide-down-enter-active,\n.slide-down-leave-active {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n.slide-down-enter-from {\n opacity: 0;\n transform: translateY(-100%) translateX(-50%);\n}\n\n.slide-down-leave-to {\n opacity: 0;\n transform: translateY(-100%) translateX(-50%);\n}\n</style>\n","import { mergeProps as _mergeProps, createVNode as _createVNode } from \"vue\";\n// Styles\nimport \"./VTooltip.css\";\n\n// Components\nimport { VOverlay } from \"../VOverlay/index.js\";\nimport { makeVOverlayProps } from \"../VOverlay/VOverlay.js\"; // Composables\nimport { forwardRefs } from \"../../composables/forwardRefs.js\";\nimport { useProxiedModel } from \"../../composables/proxiedModel.js\";\nimport { useScopeId } from \"../../composables/scopeId.js\"; // Utilities\nimport { computed, mergeProps, ref, toRef, useId } from 'vue';\nimport { genericComponent, omit, propsFactory, useRender } from \"../../util/index.js\"; // Types\nexport const makeVTooltipProps = propsFactory({\n id: String,\n interactive: Boolean,\n text: String,\n ...omit(makeVOverlayProps({\n closeOnBack: false,\n location: 'end',\n locationStrategy: 'connected',\n eager: true,\n minWidth: 0,\n offset: 10,\n openOnClick: false,\n openOnHover: true,\n origin: 'auto',\n scrim: false,\n scrollStrategy: 'reposition',\n transition: null\n }), ['absolute', 'persistent'])\n}, 'VTooltip');\nexport const VTooltip = genericComponent()({\n name: 'VTooltip',\n props: makeVTooltipProps(),\n emits: {\n 'update:modelValue': value => true\n },\n setup(props, _ref) {\n let {\n slots\n } = _ref;\n const isActive = useProxiedModel(props, 'modelValue');\n const {\n scopeId\n } = useScopeId();\n const uid = useId();\n const id = toRef(() => props.id || `v-tooltip-${uid}`);\n const overlay = ref();\n const location = computed(() => {\n return props.location.split(' ').length > 1 ? props.location : props.location + ' center';\n });\n const origin = computed(() => {\n return props.origin === 'auto' || props.origin === 'overlap' || props.origin.split(' ').length > 1 || props.location.split(' ').length > 1 ? props.origin : props.origin + ' center';\n });\n const transition = toRef(() => {\n if (props.transition != null) return props.transition;\n return isActive.value ? 'scale-transition' : 'fade-transition';\n });\n const activatorProps = computed(() => mergeProps({\n 'aria-describedby': id.value\n }, props.activatorProps));\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props);\n return _createVNode(VOverlay, _mergeProps({\n \"ref\": overlay,\n \"class\": ['v-tooltip', {\n 'v-tooltip--interactive': props.interactive\n }, props.class],\n \"style\": props.style,\n \"id\": id.value\n }, overlayProps, {\n \"modelValue\": isActive.value,\n \"onUpdate:modelValue\": $event => isActive.value = $event,\n \"transition\": transition.value,\n \"absolute\": true,\n \"location\": location.value,\n \"origin\": origin.value,\n \"persistent\": true,\n \"role\": \"tooltip\",\n \"activatorProps\": activatorProps.value,\n \"_disableGlobalStack\": true\n }, scopeId), {\n activator: slots.activator,\n default: function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return slots.default?.(...args) ?? props.text;\n }\n });\n });\n return forwardRefs({}, overlay);\n }\n});\n//# sourceMappingURL=VTooltip.js.map","<template>\n <v-tooltip :location=\"locationMap[side]\" :open-delay=\"delay\" :offset=\"5\">\n <template #activator=\"{ props: tooltipProps }\">\n <span v-bind=\"tooltipProps\" class=\"up-tooltip__trigger\">\n <slot name=\"trigger\" />\n </span>\n </template>\n\n <div class=\"up-tooltip__content\">\n <slot name=\"content\">\n {{ tooltipText }}\n </slot>\n </div>\n </v-tooltip>\n</template>\n\n<script setup lang=\"ts\">\nimport type { UpTooltipProps } from \"./types\";\n\n// @ts-ignore - props is used in template\nconst props = withDefaults(defineProps<UpTooltipProps>(), {\n side: \"top\",\n delay: 500,\n tooltipText: \"\",\n});\n\n// Mapeamento de side para location do Vuetify\nconst locationMap = {\n top: \"top\",\n right: \"end\",\n bottom: \"bottom\",\n left: \"start\",\n} as const;\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-tooltip__trigger {\n display: inline-flex;\n align-items: center;\n height: fit-content;\n}\n\n:deep(.v-overlay__content) {\n background-color: $neutral-dark-pure !important;\n color: $neutral-light-3 !important;\n border-radius: 6px !important;\n padding: 8px !important;\n min-height: 46px !important;\n font-size: 11px !important;\n font-weight: $font-weight-regular !important;\n display: flex !important;\n align-items: center !important;\n}\n\n.up-tooltip__content {\n font-size: 11px;\n font-weight: $font-weight-regular;\n color: $neutral-light-3;\n}\n</style>\n","<template>\n <div\n :class=\"[\n 'up-window',\n `up-window--${props.type}`,\n {\n 'up-window--scrollable': props.type === 'window' && props.scrollable,\n 'up-window--modal--border-top':\n props.type === 'modal' && props.border === 'top',\n 'up-window--modal--border-left':\n props.type === 'modal' && props.border === 'left',\n 'up-window--modal--color-white':\n props.type === 'modal' && props.color === 'white',\n 'up-window--modal--color-grey':\n props.type === 'modal' && props.color === 'grey',\n },\n ]\"\n >\n <!-- UpTitleBar para type='window' -->\n <UpTitleBar\n v-if=\"props.type === 'window'\"\n :title=\"props.title\"\n :disabled=\"props.disabled\"\n :prepend-icon=\"props.titleIcon\"\n :closeable=\"true\"\n class=\"up-window__title-bar\"\n @close=\"emits('close')\"\n />\n\n <!-- Content com scroll customizado -->\n <div\n v-if=\"props.type === 'window' && props.scrollable\"\n class=\"up-window__scroll-area\"\n >\n <slot />\n </div>\n\n <!-- Content sem scroll -->\n <div\n v-else\n :class=\"{\n 'up-window__content': props.type === 'window',\n }\"\n >\n <slot />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { toRefs } from \"vue\";\nimport type { UpWindowProps } from \"./types\";\nimport { UpTitleBar } from \"../UpTitleBar\";\n\nconst rawProps = defineProps<{\n props: UpWindowProps;\n}>();\n\nconst { props } = toRefs(rawProps);\n\nconst emits = defineEmits<{\n (e: \"close\"): void;\n}>();\n</script>\n\n<style scoped lang=\"scss\">\n@use \"@/styles/variables\" as *;\n\n.up-window {\n position: relative;\n overflow: hidden;\n}\n\n// Type: Window\n.up-window--window {\n border: 1px solid $neutral-light-2;\n border-top: none;\n border-radius: 0 0 4px 4px;\n background-color: $neutral-light-pure;\n}\n\n.up-window__title-bar {\n position: sticky;\n top: 0;\n z-index: 20;\n}\n\n.up-window__content {\n border: 1px solid $neutral-light-2;\n border-top: 0;\n}\n\n// Scroll customizado\n.up-window--scrollable {\n overflow-y: auto !important;\n overflow-x: hidden;\n}\n\n.up-window__scroll-area {\n width: 99.5%;\n height: 99%;\n margin: 0 auto;\n padding-top: 16px;\n overflow-y: auto;\n overflow-x: hidden;\n\n // Scrollbar customizada\n &::-webkit-scrollbar {\n width: 10px;\n }\n\n &::-webkit-scrollbar-track {\n background: transparent;\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: $neutral-light-2;\n border-radius: 20px;\n min-width: 8px;\n min-height: 8px;\n }\n\n &::-webkit-scrollbar-thumb:hover {\n background-color: $neutral-light-1;\n }\n\n // Firefox\n scrollbar-width: thin;\n scrollbar-color: $neutral-light-2 transparent;\n}\n\n// Type: Modal\n.up-window--modal {\n width: 392px;\n height: 701px;\n border-radius: 6px;\n overflow: hidden;\n}\n\n.up-window--modal--color-white {\n background-color: $neutral-light-pure;\n}\n\n.up-window--modal--color-grey {\n background-color: $neutral-light-3;\n}\n\n.up-window--modal--border-top {\n border-top: 4px solid $brand-primary;\n}\n\n.up-window--modal--border-left {\n border-left: 4px solid $brand-primary;\n}\n</style>\n","import type { App } from \"vue\";\nimport vuetify from \"./plugins/vuetify\";\nimport \"./styles/index.scss\";\n\nimport { UpAccordion } from \"./components/UpAccordion\";\nimport { UpBadge } from \"./components/UpBadge\";\nimport { UpButton } from \"./components/UpButton\";\nimport { UpCalendar } from \"./components/UpCalendar\";\nimport { UpCard } from \"./components/UpCard\";\nimport { UpCell } from \"./components/UpCell\";\nimport { UpCheckbox } from \"./components/UpCheckbox\";\nimport { UpDataTable } from \"./components/UpDataTable\";\nimport { UpDatePicker } from \"./components/UpDatePicker\";\nimport { UpDivider } from \"./components/UpDivider\";\nimport { UpEnvironmentBadge } from \"./components/UpEnvironmentBadge\";\nimport { UpFloatMenu } from \"./components/UpFloatMenu\";\nimport { UpNotification } from \"./components/UpNotification\";\nimport { UpPagination } from \"./components/UpPagination\";\nimport { UpProduct } from \"./components/UpProduct\";\nimport { UpRadio } from \"./components/UpRadio\";\nimport { UpSelect } from \"./components/UpSelect\";\nimport { UpSideBar } from \"./components/UpSideBar\";\nimport { UpStepper } from \"./components/UpStepper\";\nimport { UpSwitch } from \"./components/UpSwitch\";\nimport { UpTab } from \"./components/UpTab\";\nimport { UpTextField } from \"./components/UpTextField\";\nimport { UpTitleBar } from \"./components/UpTitleBar\";\nimport { UpToast } from \"./components/UpToast\";\nimport { UpTooltip } from \"./components/UpTooltip\";\nimport { UpWindow } from \"./components/UpWindow\";\n\nconst components = {\n UpAccordion,\n UpBadge,\n UpButton,\n UpCalendar,\n UpCard,\n UpCell,\n UpCheckbox,\n UpDataTable,\n UpDatePicker,\n UpDivider,\n UpEnvironmentBadge,\n UpFloatMenu,\n UpNotification,\n UpPagination,\n UpProduct,\n UpRadio,\n UpSelect,\n UpSideBar,\n UpStepper,\n UpSwitch,\n UpTab,\n UpTextField,\n UpTitleBar,\n UpToast,\n UpTooltip,\n UpWindow,\n};\n\nexport default {\n install(app: App, options?: { vuetify?: any }) {\n if (!options?.vuetify) {\n app.use(vuetify);\n } else {\n app.use(options.vuetify);\n }\n\n Object.entries(components).forEach(([name, component]) => {\n app.component(name, component);\n });\n },\n};\n\nexport {\n UpAccordion,\n UpBadge,\n UpButton,\n UpCalendar,\n UpCard,\n UpCell,\n UpCheckbox,\n UpDataTable,\n UpDatePicker,\n UpDivider,\n UpEnvironmentBadge,\n UpFloatMenu,\n UpNotification,\n UpPagination,\n UpProduct,\n UpRadio,\n UpSelect,\n UpSideBar,\n UpStepper,\n UpSwitch,\n UpTab,\n UpTextField,\n UpTitleBar,\n UpToast,\n UpTooltip,\n UpWindow,\n};\n","/**\n * Formatadores de dados\n * Compatível com @aplicativo/uplexis-ui v1.7.7\n */\n\n/**\n * Formata CPF\n * @param text - CPF sem formatação (11 dígitos)\n * @returns CPF formatado (123.456.789-00)\n * @example\n * formatCPF('12345678900') // '123.456.789-00'\n */\nexport function formatCPF(text: string): string {\n if (!text) return ''\n \n // Remove tudo que não é dígito\n const cleaned = text.replace(/\\D/g, '')\n \n // Limita a 11 dígitos\n const limited = cleaned.slice(0, 11)\n \n // Aplica a máscara: 123.456.789-00\n if (limited.length <= 3) {\n return limited\n } else if (limited.length <= 6) {\n return `${limited.slice(0, 3)}.${limited.slice(3)}`\n } else if (limited.length <= 9) {\n return `${limited.slice(0, 3)}.${limited.slice(3, 6)}.${limited.slice(6)}`\n } else {\n return `${limited.slice(0, 3)}.${limited.slice(3, 6)}.${limited.slice(6, 9)}-${limited.slice(9)}`\n }\n}\n\n/**\n * Formata CNPJ\n * @param text - CNPJ sem formatação (14 dígitos)\n * @returns CNPJ formatado (12.345.678/0001-90)\n * @example\n * formatCNPJ('12345678000190') // '12.345.678/0001-90'\n */\nexport function formatCNPJ(text: string): string {\n if (!text) return ''\n \n // Remove tudo que não é dígito\n const cleaned = text.replace(/\\D/g, '')\n \n // Limita a 14 dígitos\n const limited = cleaned.slice(0, 14)\n \n // Aplica a máscara: 12.345.678/0001-90\n if (limited.length <= 2) {\n return limited\n } else if (limited.length <= 5) {\n return `${limited.slice(0, 2)}.${limited.slice(2)}`\n } else if (limited.length <= 8) {\n return `${limited.slice(0, 2)}.${limited.slice(2, 5)}.${limited.slice(5)}`\n } else if (limited.length <= 12) {\n return `${limited.slice(0, 2)}.${limited.slice(2, 5)}.${limited.slice(5, 8)}/${limited.slice(8)}`\n } else {\n return `${limited.slice(0, 2)}.${limited.slice(2, 5)}.${limited.slice(5, 8)}/${limited.slice(8, 12)}-${limited.slice(12)}`\n }\n}\n\n/**\n * Formata moeda (Real Brasileiro)\n * @param text - Valor numérico ou string\n * @param el - Elemento HTML (opcional, para aplicar cor vermelha em valores negativos)\n * @returns Valor formatado (R$ 1.234,56)\n * @example\n * formatCurrency('1234.56') // 'R$ 1.234,56'\n * formatCurrency('-1234.56') // 'R$ -1.234,56' (com cor vermelha se el fornecido)\n */\nexport function formatCurrency(text: string | number, el?: HTMLElement): string {\n if (text === null || text === undefined || text === '') return ''\n \n // Converte para número\n const num = typeof text === 'string' ? parseFloat(text) : text\n \n if (isNaN(num)) return ''\n \n // Formata como moeda brasileira\n const formatted = new Intl.NumberFormat('pt-BR', {\n style: 'currency',\n currency: 'BRL',\n }).format(num)\n \n // Se o valor é negativo e um elemento foi fornecido, aplica cor vermelha\n if (num < 0 && el) {\n el.style.color = '#C33'\n }\n \n return formatted\n}\n\n/**\n * Formata data\n * @param text - Data sem formatação (DDMMYYYY ou DDMMYY)\n * @returns Data formatada (DD/MM/YYYY)\n * @example\n * formatDate('01012024') // '01/01/2024'\n * formatDate('010124') // '01/01/2024'\n */\nexport function formatDate(text: string): string {\n if (!text) return ''\n \n // Remove tudo que não é dígito\n const cleaned = text.replace(/\\D/g, '')\n \n // Limita a 8 dígitos\n const limited = cleaned.slice(0, 8)\n \n // Aplica a máscara: DD/MM/YYYY\n if (limited.length <= 2) {\n return limited\n } else if (limited.length <= 4) {\n return `${limited.slice(0, 2)}/${limited.slice(2)}`\n } else if (limited.length <= 6) {\n return `${limited.slice(0, 2)}/${limited.slice(2, 4)}/${limited.slice(4)}`\n } else {\n return `${limited.slice(0, 2)}/${limited.slice(2, 4)}/${limited.slice(4, 8)}`\n }\n}\n\n/**\n * Objeto formatters para compatibilidade com biblioteca antiga\n */\nexport const formatters = {\n cpf: formatCPF,\n cnpj: formatCNPJ,\n currency: formatCurrency,\n date: formatDate,\n}\n\nexport default formatters\n\n","/**\n * Funções auxiliares (helpers)\n * Compatível com @aplicativo/uplexis-ui v1.7.7\n */\n\n/**\n * Trunca texto adicionando reticências\n * @param text - Texto a ser truncado\n * @param from - Posição inicial (geralmente 0)\n * @param limit - Limite de caracteres\n * @returns Texto truncado com \"...\" no final\n * @example\n * truncateText('Texto muito longo', 0, 10) // 'Texto muit...'\n * truncateText('Curto', 0, 10) // 'Curto'\n */\nexport function truncateText(text: string, from: number, limit: number): string {\n if (!text) return ''\n \n // Se o texto é menor ou igual ao limite, retorna o texto original\n if (text.length <= limit) {\n return text\n }\n \n // Trunca o texto e adiciona reticências\n return text.slice(from, limit) + '...'\n}\n\nexport default {\n truncateText\n}\n\n","/**\n * Composable useToast\n * Sistema de gerenciamento de notificações toast\n * Compatível com @aplicativo/uplexis-ui v1.7.7\n */\n\nimport { ref, type Ref } from \"vue\";\n\nexport interface ToastOptions {\n id?: number | string;\n title?: string;\n content: string;\n type?: \"success\" | \"error\" | \"warning\" | \"info\" | \"neutral\";\n icon?: string;\n size?: \"sm\" | \"lg\";\n outlined?: boolean;\n duration?: number;\n}\n\nexport interface Toast extends Required<Omit<ToastOptions, \"duration\">> {\n duration: number;\n timestamp: number;\n}\n\n// Estado global dos toasts\nconst toasts: Ref<Toast[]> = ref([]);\nlet toastIdCounter = 0;\n\n/**\n * Composable para gerenciar toasts/notificações\n * @param toastRef - Referência opcional do componente UpToast\n * @returns Objeto com funções para gerenciar toasts\n * @example\n * const { addToast, removeToast, clearToasts } = useToast()\n *\n * addToast({\n * title: 'Sucesso',\n * content: 'Operação realizada com sucesso!',\n * type: 'success'\n * })\n */\nexport function useToast(toastRef?: any) {\n // Se uma referência foi fornecida, inicializa o componente\n if (toastRef) {\n // Compatibilidade com biblioteca antiga\n // Na biblioteca antiga, o toastRef era usado para inicializar o sistema\n console.debug(\"[useToast] Toast ref inicializado:\", toastRef);\n }\n\n /**\n * Adiciona um novo toast\n */\n function addToast(options: ToastOptions): Toast {\n const toast: Toast = {\n id: options.id ?? ++toastIdCounter,\n title: options.title ?? \"\",\n content: options.content,\n type: options.type ?? \"neutral\",\n icon: options.icon ?? getDefaultIcon(options.type ?? \"neutral\"),\n size: options.size ?? \"lg\",\n outlined: options.outlined ?? false,\n duration: options.duration ?? 5000,\n timestamp: Date.now(),\n };\n\n toasts.value.push(toast);\n\n // Remove automaticamente após a duração\n if (toast.duration > 0) {\n setTimeout(() => {\n removeToast(toast.id);\n }, toast.duration);\n }\n\n return toast;\n }\n\n /**\n * Remove um toast pelo ID\n */\n function removeToast(id: number | string): void {\n const index = toasts.value.findIndex((t) => t.id === id);\n if (index !== -1) {\n toasts.value.splice(index, 1);\n }\n }\n\n /**\n * Remove todos os toasts\n */\n function clearToasts(): void {\n toasts.value = [];\n }\n\n /**\n * Retorna o ícone padrão para cada tipo\n */\n function getDefaultIcon(type: Toast[\"type\"]): string {\n const icons: Record<Toast[\"type\"], string> = {\n success: \"mdi-check-circle\",\n error: \"mdi-alert-circle\",\n warning: \"mdi-alert\",\n info: \"mdi-information\",\n neutral: \"mdi-message\",\n };\n return icons[type];\n }\n\n return {\n toasts,\n addToast,\n removeToast,\n clearToasts,\n };\n}\n\nexport default useToast;\n","/**\n * Diretiva v-text-format\n * Formata automaticamente o conteúdo de texto de um elemento\n * Compatível com @aplicativo/uplexis-ui v1.7.7\n */\n\nimport type { Directive, DirectiveBinding } from 'vue'\nimport { formatters } from '@/utils/formatters'\n\ntype FormatType = 'cpf' | 'cnpj' | 'currency' | 'date'\n\n/**\n * Diretiva para formatação automática de texto\n * @example\n * <p v-text-format=\"'cpf'\">12345678900</p>\n * <!-- Renderiza: 123.456.789-00 -->\n */\nexport const vTextFormat: Directive<HTMLElement, FormatType> = {\n mounted(el: HTMLElement, binding: DirectiveBinding<FormatType>) {\n const formatType = binding.value\n const originalText = el.textContent || ''\n \n if (!formatType || !originalText) return\n \n // Aplica o formatador correspondente\n let formattedText = originalText\n \n switch (formatType) {\n case 'cpf':\n formattedText = formatters.cpf(originalText)\n break\n case 'cnpj':\n formattedText = formatters.cnpj(originalText)\n break\n case 'currency':\n formattedText = formatters.currency(originalText, el)\n break\n case 'date':\n formattedText = formatters.date(originalText)\n break\n default:\n console.warn(`[v-text-format] Formato desconhecido: ${formatType}`)\n }\n \n el.textContent = formattedText\n },\n \n updated(el: HTMLElement, binding: DirectiveBinding<FormatType>) {\n const formatType = binding.value\n const originalText = el.textContent || ''\n \n if (!formatType || !originalText) return\n \n // Aplica o formatador correspondente\n let formattedText = originalText\n \n switch (formatType) {\n case 'cpf':\n formattedText = formatters.cpf(originalText)\n break\n case 'cnpj':\n formattedText = formatters.cnpj(originalText)\n break\n case 'currency':\n formattedText = formatters.currency(originalText, el)\n break\n case 'date':\n formattedText = formatters.date(originalText)\n break\n default:\n console.warn(`[v-text-format] Formato desconhecido: ${formatType}`)\n }\n \n el.textContent = formattedText\n }\n}\n\nexport default vTextFormat\n\n","/**\n * Diretivas Vue\n * Compatível com @aplicativo/uplexis-ui v1.7.7\n */\n\nimport type { App } from 'vue'\nimport { vTextFormat } from './textFormat'\n\n/**\n * Instala todas as diretivas no app Vue\n * @param app - Instância do app Vue\n * @example\n * import { installDirectives } from '@uplexis/ui'\n * \n * const app = createApp(App)\n * installDirectives(app)\n */\nexport function installDirectives(app: App): void {\n app.directive('text-format', vTextFormat)\n}\n\nexport { vTextFormat }\n\nexport default {\n install: installDirectives\n}\n\n"],"names":["consoleWarn","message","warn","consoleError","deprecate","original","replacement","s","IN_BROWSER","SUPPORTS_INTERSECTION","SUPPORTS_MATCH_MEDIA","PREFERS_REDUCED_MOTION","_classPrivateFieldInitSpec","t","a","_checkPrivateRedeclaration","_classPrivateFieldSet","r","_assertClassBrand","_classPrivateFieldGet","getNestedValue","obj","path","fallback","last","i","getObjectValueByPath","getPropertyFromItem","item","property","value","createRange","length","start","v","k","convertToUnit","str","unit","num","isObject","isPlainObject","proto","refElement","el","keyValues","has","key","pick","paths","found","pickWithRest","exclude","rest","omit","clone","prop","onRE","isOn","bubblingEvents","filterInputAttrs","attrs","events","props","inputEvents","rootAttrs","inputAttrs","wrapInArray","debounce","fn","delay","timeoutId","wrap","_len","args","_key","unref","clamp","min","max","padEnd","char","chunk","size","chunked","index","mergeDeep","source","target","arrayFn","out","sourceProperty","targetProperty","flattenFragments","nodes","node","Fragment","toKebabCase","kebab","findChildrenWithProvide","vnode","child","_arr","_pointer","CircularBuffer","val","destructComputed","getter","refs","reactive","watchEffect","base","toRef","includes","arr","eventName","propName","EventProp","hasEvent","name","capitalize","callEvent","handler","_len2","_key2","h","focusableChildren","filterByTabIndex","targets","elements","err","x","_a","_b","getNextElement","location","condition","_el","idx","inc","focusChild","focusable","_c","_d","isEmpty","noop","matchesSelector","selector","ensureValidVNode","vnodes","isVNode","Comment","defer","timeout","cb","isClickInsideElement","event","targetDiv","mouseX","mouseY","divRect","divLeft","divTop","divRight","divBottom","templateRef","shallowRef","checkPrintable","isPrintableChar","noModifier","isPrimitive","camelizeProps","camelize","onlyDefinedProps","booleanAttributes","_ref","block","inline","parseAnchor","anchor","isRtl","side","align","toPhysical","flipSide","flipAlign","flipCorner","getAxis","Box","pageScale","factor","y","width","height","getOverflow","b","getTargetBox","getElementBox","rect","nullifyTransforms","style","tx","ta","sx","sy","dx","dy","to","w","animate","keyframes","options","animation","resolve","handlers","bindProps","n","_handler","unbindProps","mainTRC","Rco","Gco","Bco","normBG","normTXT","revTXT","revBG","blkThrs","blkClmp","deltaYmin","scaleBoW","scaleWoB","loConThresh","loConFactor","loConOffset","loClip","APCAcontrast","text","background","Rtxt","Gtxt","Btxt","Rbg","Gbg","Bbg","Ytxt","Ybg","outputContrast","SAPC","isCssColor","color","isParsableColor","cssColorRe","mappers","g","l","HSLtoRGB","HSVtoRGB","parseColor","groups","values","realValues","hex","int","HexToRGB","HSLtoHSV","hsva","f","rgb","hsla","hsl","sprime","parseHex","c","getForeground","blackContrast","propsFactory","defaults","definition","makeComponentProps","getCurrentInstance","vm","_getCurrentInstance","getCurrentInstanceName","injectSelf","provides","DefaultsSymbol","injectDefaults","inject","provideDefaults","injectedDefaults","providedDefaults","ref","newDefaults","computed","scoped","reset","root","properties","len","provide","propIsDefined","internalUseDefaults","componentDefaults","_props","propValue","_componentDefault","_globalDefault","_subcomponentDefaults","subComponents","provideSubDefaults","injected","defineComponent","propKeys","ctx","setupBindings","genericComponent","exposeDefaults","_defineComponent","defineFunctionalComponent","render","createSimpleFunctional","klass","tag","slots","updateRecursionCache","cache","result","visitedObject","newCacheItem","findCachedComparison","r1","r2","deepEqual","recursionCache","cachedComparisonResult","p","attachedRoot","standardEasing","deceleratedEasing","acceleratedEasing","easingPatterns","getPrefixedEventHandlers","suffix","getData","acc","getScrollParent","includeHidden","isPotentiallyScrollable","hasScrollbar","getScrollParents","stopAt","hasVerticalScrollbar","hasHorizontalScrollbar","isFixedPosition","useRender","throttle","lastExec","throttling","clear","now","elapsed","invoke","IconValue","IconSymbol","makeIconProps","VComponentIcon","Icon","_createVNode","VSvgIcon","_ref2","_mergeProps","_createElementVNode","VClassIcon","_normalizeClass","useIcon","icons","iconAlias","toValue","icon","iconSetName","setName","iconName","aliases","mdi","uplexisColors","uplexisLight","uplexisDark","vuetify","createVuetify","useColor","colors","colorClasses","colorStyles","computeColor","useTextColor","textColorClasses","textColorStyles","useBackgroundColor","backgroundColorClasses","backgroundColorStyles","_colors","classes","styles","backgroundColor","textColor","predefinedSizes","makeSizeProps","useSize","sizeClasses","sizeStyles","makeTagProps","ThemeSymbol","makeThemeProps","provideTheme","theme","current","themeClasses","newTheme","useTheme","makeVIconProps","VIcon","slotIcon","iconData","slotValue","Text","hasClick","_normalizeStyle","__props","emit","__emit","openItem","focusedItem","toggleItem","_openBlock","_createElementBlock","_hoisted_1","_Fragment","_renderList","_hoisted_2","$event","_hoisted_4","_toDisplayString","_component_v_icon","_cache","_Transition","_hoisted_5","_renderSlot","_ctx","classesDict","valueDict","computedClass","typeClass","sizeClass","displayText","baseText","handlePrependClick","handleAppendClick","_hoisted_3","useIntersectionObserver","callback","intersectionRef","isIntersecting","observer","entries","entry","onScopeDispose","watch","newValue","oldValue","useResizeObserver","box","resizeRef","contentRect","onBeforeUnmount","readonly","makeVProgressCircularProps","VProgressCircular","MAGIC_RADIUS_CONSTANT","CIRCUMFERENCE","underlayColorClasses","underlayColorStyles","normalizedValue","diameter","strokeWidth","strokeDashOffset","computedClasses","handleClick","_createBlock","_component_v_progress_circular","makeBorderProps","useBorder","border","allowedDensities","makeDensityProps","useDensity","makeElevationProps","useElevation","elevation","isRef","makeRoundedProps","useRounded","rounded","tile","allowedVariants","genOverlays","isClickable","makeVariantProps","useVariant","variantClasses","variant","makeVBtnGroupProps","VBtnGroup","densityClasses","borderClasses","elevationClasses","roundedClasses","useToggleScope","scope","effectScope","active","useProxiedModel","defaultValue","transformIn","transformOut","internal","kebabProp","isControlled","model","externalValue","internalValue","toRaw","makeGroupProps","makeGroupItemProps","useGroupItem","injectKey","required","id","useId","group","disabled","register","unregister","isSelected","isFirst","isLast","selectedClass","useGroup","isUnmounted","items","selected","getIds","getValues","groupVm","unwrapped","forceMandatoryValue","onMounted","onUpdated","select","step","offset","currentId","currentIndex","newIndex","newItem","state","getItemIndex","ids","modelValue","itemByIndex","itemIndex","VBtnToggleSymbol","makeVBtnToggleProps","next","prev","btnGroupProps","makeVDefaultsProviderProps","VDefaultsProvider","toRefs","makeDimensionProps","useDimension","maxHeight","maxWidth","minHeight","minWidth","LocaleSymbol","useLocale","locale","useRtl","oppositeMap","makeLocationProps","useLocation","opposite","getOffset","makeChunksProps","useChunks","containerWidth","hasChunks","chunkWidth","containerSize","count","chunkGap","chunksMaskStyles","chunkGapPx","chunkWidthPx","snapValueToChunk","gapRelativeSize","chunkRelativeSize","filledChunks","makeVProgressLinearProps","VProgressLinear","progress","rtlClasses","locationStyles","bufferColorClasses","bufferColorStyles","barColorClasses","barColorStyles","normalizedBuffer","isReversed","transition","bufferWidth","barWidth","e","left","right","Transition","bar","makeLoaderProps","useLoader","LoaderSlot","positionValues","makePositionProps","usePosition","useRoute","useRouter","useLink","RouterLink","resolveDynamicComponent","isLink","href","routerLink","link","route","isActive","isRouterLink","makeRouterProps","inTransition","useBackButton","router","popped","removeBefore","removeAfter","nextTick","onPopstate","from","useSelectLink","stopSymbol","DELAY_RIPPLE","transform","isTouchEvent","isKeyboardEvent","calculate","localX","localY","radius","scale","centerX","centerY","ripples","container","ripple","diff","isRippleEnabled","rippleShow","element","rippleStop","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keys","keyboardRippleHide","focusRippleHide","updateRipple","binding","wasEnabled","modifiers","enabled","bindingValue","allowedKeys","removeListeners","mounted","unmounted","updated","Ripple","makeVBtnProps","VBtn","dimensionStyles","loaderClasses","positionClasses","variantProps","isDisabled","isElevated","valueAttr","onClick","Tag","hasPrepend","hasAppend","hasIcon","withDirectives","toDisplayString","vRipple","makeTransitionProps","createCssTransition","origin","mode","functions","offsetTop","offsetLeft","offsetWidth","offsetHeight","position","top","TransitionGroup","createJavascriptTransition","ExpandTransitionGenerator","expandedParentClass","sizeProperty","offsetProperty","initialStyle","resetStyles","onAfterLeave","makeVDialogTransitionProps","saved","VDialogTransition","done","dimensions","getDimensions","speed","getChildren","els","targetBox","elBox","originX","originY","anchorSide","anchorOffset","offsetX","offsetY","tsx","tsy","maxs","asa","VFadeTransition","VSlideYTransition","VExpandTransition","VExpandXTransition","ListKey","createList","filterable","parent","data","useList","independentActiveStrategy","mandatory","strategy","activated","children","parents","set","independentSingleActiveStrategy","parentStrategy","singleSelected","leafActiveStrategy","_ref3","leafSingleActiveStrategy","_ref4","singleOpenStrategy","opened","newOpened","multipleOpenStrategy","listOpenStrategy","independentSelectStrategy","on","map","independentSingleSelectStrategy","leafSelectStrategy","leafSingleSelectStrategy","_ref5","classicSelectStrategy","_ref6","everySelected","noneSelected","cid","_ref7","trunkSelectStrategy","VNestedSymbol","emptyNested","makeNestedProps","useNested","activeStrategy","selectStrategy","openStrategy","getPath","nodeIds","itemsUpdatePropagation","nested","parentId","isGroup","newPath","list","newSelected","newActivated","useNestedItem","uidSymbol","computedId","idValue","open","onBeforeMount","oldVal","useNestedGroupActivator","useSsrBoot","isBooted","MaybeTransition","component","customProps","transitionProps","mergeProps","VListGroupActivator","_","makeVListGroupProps","VListGroup","isOpen","_id","activatorProps","toggleIcon","activatorDefaults","_withDirectives","_vShow","makeVListItemSubtitleProps","VListItemSubtitle","VListItemTitle","useAspectStyles","ratio","makeVResponsiveProps","VResponsive","aspectStyles","_observe","observe","Intersect","makeVImgProps","VImg","vIntersect","currentSrc","image","naturalWidth","naturalHeight","normalisedSrc","aspectRatio","init","pollForSize","lazyImg","onError","onLoad","getSrc","img","timer","poll","imgHeight","imgWidth","containClasses","__image","sources","vShow","__preloadImage","__placeholder","__error","__gradient","stop","responsiveProps","makeVAvatarProps","VAvatar","makeVListItemProps","VListItem","activate","isActivated","isIndeterminate","isGroupActivator","openOnSelect","uid","isSelectable","role","ariaSelected","roundedProps","handleActiveLink","lineClasses","rippleOptions","slotProps","onKeyDown","hasTitle","hasSubtitle","hasAppendMedia","hasPrependMedia","makeVListSubheaderProps","VListSubheader","hasText","makeVDividerProps","VDivider","dividerStyles","divider","makeVListChildrenProps","VListChildren","itemProps","type","slotsWithItem","listGroupProps","listItemProps","makeItemsProps","itemTypes","transformItem","title","transformItems","array","useItems","hasNullItem","itemsMap","keylessItems","_items","keyless","_allItems","_keylessItems","_hasNullItem","_returnObject","hasValueComparator","valueComparator","returnValue","main","fastItems","raw","useListItems","makeVListProps","VList","activeColor","baseColor","isFocused","contentRef","onFocusin","onFocusout","onFocus","focus","onKeydown","onMousedown","elementToViewport","point","anchorToPoint","locationStrategies","staticLocationStrategy","connectedLocationStrategy","makeLocationStrategyProps","useLocationStrategies","contentStyles","updateLocation","onResize","onVisualResize","onVisualScroll","getIntrinsicSize","contentBox","preferredAnchor","preferredOrigin","parsedAnchor","parsedOrigin","lastFrame","flipped","newTime","newNewTime","newTarget","oldTarget","newContentEl","oldContentEl","scrollParents","viewportMargin","viewport","scrollBox","placement","checkOverflow","_placement","targetPoint","contentPoint","available","resets","_x","_y","overflows","axis","hasOverflowX","hasOverflowY","newPlacement","flip","newOverflows","pixelRound","pixelCeil","clean","frames","requestNewFrame","run","raf","frame","scrollStrategies","closeScrollStrategy","blockScrollStrategy","repositionScrollStrategy","makeScrollStrategyProps","useScrollStrategies","onScroll","bindScroll","getTargetEl","offsetParent","scrollElements","scrollbarWidth","scrollableParent","scrollBehavior","slow","ric","update","contentEl","VMenuSymbol","makeDelayProps","useDelay","clearDelay","runDelay","isOpening","runOpenDelay","runCloseDelay","makeActivatorProps","useActivator","isTop","activatorEl","isHovered","firstEnter","openOnFocus","openOnClick","cursorTarget","availableEvents","activatorEvents","contentEvents","menu","scrimEvents","activatorRef","targetRef","getTarget","targetEl","_useActivator","activator","getActivator","unbindActivatorProps","bindActivatorProps","DisplaySymbol","makeDisplayProps","useDisplay","display","mobile","displayClasses","useHydration","ssr","isMounted","makeLazyProps","useLazy","hasContent","useScopeId","scopeId","StackSymbol","globalStack","useStack","zIndex","disableGlobalStack","createStackEntry","stack","_zIndex","lastZIndex","globalTop","_isTop","localTop","useTeleport","_target","targetElement","defaultConditional","checkEvent","checkIsActive","directive","handleShadow","ClickOutside","app","Scrim","makeVOverlayProps","VOverlay","vClickOutside","scrimEl","_onAfterLeave","scrimColor","stackStyles","teleportTarget","rootNode","onClickOutside","animateClick","closeConditional","onKeydownSelf","scrollParent","onAfterEnter","Teleport","Refs","getDescriptor","currentObj","descriptor","forwardRefs","childRefs","queue","makeVMenuProps","VMenu","overlay","openChildren","onFocusIn","onDeactivated","focusTrapSuppressed","focusTrapSuppressionTimeout","onPointerdown","before","after","_e","onActivatorKeydown","overlayProps","today","currentMonth","currentYear","selectedDate","date","months","years","yearList","monthYearText","weekdays","days","calendarDays","firstDay","lastDay","startDay","prevMonthLastDay","createDay","remainingDays","isCurrentMonth","dayEvents","eventDate","isSameDay","date1","date2","getDayClasses","day","selectDate","previousMonth","nextMonth","_component_v_btn","_component_v_menu","_withCtx","_createTextVNode","_component_v_list","month","_component_v_list_item","year","_hoisted_7","_hoisted_8","eventIndex","_hoisted_9","_hoisted_10","_unref","UpBadge","handleIconClick","levelClass","$slots","componentDict","UpCardNode","UpCardInfo","UpCardList","UpCardItem","UpCardProduct","UpCardInteractive","UpCardIndicator","componentProps","_resolveDynamicComponent","$emit","slotData","_normalizeProps","_guardReactiveProps","matchIconName","stringToIcon","validate","allowSimpleName","provider","colonSeparated","name2","prefix","validateIconName","dashSeparated","defaultIconDimensions","defaultIconTransformations","defaultIconProps","defaultExtendedIconProps","mergeIconTransformations","obj1","obj2","rotate","mergeIconData","getIconsTree","names","resolved","internalGetIconData","tree","currentProps","parse","parseIconSet","optionalPropertyDefaults","checkOptionalProps","quicklyValidateIconSet","dataStorage","newStorage","getStorage","providerStorage","addIconSet","storage","addIconToStorage","simpleNames","allowSimpleNames","allow","getIconData","addIcon","addCollection","added","defaultIconSizeCustomisations","defaultIconCustomisations","unitsSplit","unitsTest","calculateSize","precision","oldParts","newParts","code","isNumber","splitSVGDefs","content","defs","end","endEnd","mergeDefsAndContent","wrapSVGContent","body","split","isUnsetKeyword","iconToSVG","customisations","fullIcon","fullCustomisations","transformations","hFlip","vFlip","rotation","tempValue","customisationsWidth","customisationsHeight","boxWidth","boxHeight","attributes","setAttr","viewBox","regex","randomPrefix","counter","replaceIDs","match","newID","escapedID","setAPIModule","getAPIModule","createAPIConfig","resources","configStorage","fallBackAPISources","fallBackAPI","addAPIProvider","customConfig","config","getAPIConfig","fetchModule","calculateMaxLength","maxHostLength","url","shouldAbort","status","prepare","results","maxLength","fetchAPIModule","host","params","iconsList","urlParams","uri","defaultError","response","sortIcons","lastIcon","localStorage","removeCallback","storages","row","updateCallbacks","hasPending","oldLength","idCounter","storeCallback","pendingSources","abort","listToIcons","defaultConfig","sendQuery","payload","query","resourcesCount","startIndex","nextIndex","startTime","queriesSent","lastError","doneCallbacks","resetTimer","subscribe","overwrite","getQueryStatus","failQuery","clearQueue","moduleResponse","isError","queued","execNext","resource","status2","initRedundancy","cfg","queries","cleanup","queryCallback","doneCallback","query2","error","find","emptyCallback$1","redundancyCache","getRedundancyCache","redundancy","cachedReundancy","sendAPIQuery","send","api","cached","moduleKey","emptyCallback","loadedNewIcons","checkIconNamesForAPI","valid","invalid","parseLoaderResponse","checkMissing","pending","parsePossiblyAsyncResponse","loadNewIcons","icons2","customIconLoader","iconSet","loadIcons","cleanedIcons","sortedIcons","callCallback","newIcons","lastProvider","lastPrefix","providerNewIcons","pendingQueue","mergeCustomisations","valueType","separator","flipFromString","custom","rotateFromString","units","value2","iconToHTML","renderAttribsHTML","attr","encodeSVGforURL","svg","svgToData","svgToURL","defaultExtendedIconCustomisations","svgDefaults","commonProps","monotoneProps","coloredProps","propsToAdd","propsToAddTo","customisationAliases","fixSize","propsStyle","customStyle","alias","renderAttribs","localCounter","useMask","html","_window","preload","providers","emptyIcon","loader","abortLoading","rendering","lastRenderedIconName","getIcon","oldState","updateIconData","customise","customised","onUnmounted","newProps","_useModel","isChecked","handleChange","isCheckedFromEvent","newModelValue","GoToSymbol","genDefaults","getContainer","horizontal","rtl","totalOffset","scrollTo","_options","goTo","ease","targetLocation","layoutOffset","clampTarget","startLocation","currentTime","useGoTo","goToInstance","go","scrollWidth","scrollHeight","containerHeight","useRefs","onBeforeUpdate","updateRef","makeVPaginationProps","VPagination","page","maxButtons","firstItem","totalWidth","itemWidth","getMax","totalVisible","minButtons","range","even","middle","rangeLength","rangeStart","setValue","controls","prevDisabled","nextDisabled","updateFocus","makeVLabelProps","VLabel","VSelectionControlGroupSymbol","makeSelectionControlGroupProps","makeVSelectionControlGroupProps","VSelectionControlGroup","updateHandlers","makeVSelectionControlProps","useSelectionControl","trueValue","falseValue","isMultiple","currentValue","newVal","VSelectionControl","isFocusVisible","input","isInteractive","onBlur","onClickLabel","onInput","label","inputNode","makeVCheckboxBtnProps","VCheckboxBtn","indeterminate","onChange","falseIcon","trueIcon","controlProps","useInputIcon","InputIcon","localeKey","listener","makeVMessagesProps","VMessages","messages","makeFocusProps","useFocus","focusClasses","blur","FormKey","useForm","form","RulesSymbol","useRules","rules","makeValidationProps","useValidation","validationModel","internalErrorMessages","isPristine","isDirty","errorMessages","validateOn","isValid","isValidating","validationClasses","resetValidation","unwatch","silent","rule","makeVInputProps","VInput","isReadonly","hasMessages","hasDetails","messagesId","iconColor","calculateUpdatedTarget","selectedElement","containerElement","isHorizontal","getOffsetSize","scrollPosition","getScrollPosition","childrenSize","childrenStartPosition","getOffsetPosition","additionalOffset","calculateCenteredTarget","containerOffsetSize","childrenOffsetPosition","childrenOffsetSize","getScrollSize","getClientSize","scrollLeft","VSlideGroupSymbol","makeVSlideGroupProps","VSlideGroup","isOverflowing","scrollOffset","contentSize","containerRef","containerRect","goToOptions","firstSelectedIndex","lastSelectedIndex","scrollToChildren","center","scrollToPosition","newPosition","offsetSize","scrollTop","ignoreFocusEvent","onFocusAffixes","toFocus","getSiblingElement","sibling","direction","offsetStep","hasOverflowOrScroll","hasAffixes","hasPrev","hasNext","scrollSize","clientSize","VChipGroupSymbol","makeVChipGroupProps","slideGroupProps","makeVChipProps","VChip","slideGroup","closeProps","hasClose","hasFilter","makeVCounterProps","VCounter","makeVFieldLabelProps","VFieldLabel","makeVFieldProps","VField","focused","hasLabel","hasFloatingLabel","labelRef","floatingLabelRef","controlRef","isPlainOrUnderlined","targetRect","targetWidth","targetStyle","duration","isOutlined","hasClear","makeAutocompleteProps","useAutocomplete","uniqueId","reloadTrigger","isSuppressing","fieldName","fieldAutocomplete","useAutofocus","onIntersect","activeTypes","makeVTextFieldProps","VTextField","counterValue","vInputRef","vFieldRef","inputRef","autocomplete","onControlMousedown","onControlClick","onClear","caretPosition","hasCounter","inputProps","fieldProps","fieldClass","cloneVNode","makeVVirtualScrollItemProps","VVirtualScrollItem","UP","DOWN","BUFFER_PX","makeVirtualProps","useVirtual","itemHeight","first","paddingTop","paddingBottom","markerRef","markerOffset","viewportHeight","hasInitialRender","sizes","offsets","updateTime","targetScrollIndex","getSize","updateOffsets","calculateVisibleItems","scrollToIndex","handleItemResize","prevHeight","prevMinHeight","calculateOffset","whole","fraction","wholeOffset","nextOffset","calculateIndex","binaryClosest","lastScrollTop","scrollVelocity","lastScrollTime","scrollTimeout","handleScroll","scrollTime","handleScrollend","_calculateVisibleItems","startPx","endPx","topOverflow","bottomOverflow","computedItems","_index","high","low","mid","makeVVirtualScrollProps","VVirtualScroll","handleListeners","method","useScrolling","listRef","textFieldRef","isScrolling","onListScroll","finishScrolling","onListKeydown","bottom","makeMenuActivatorProps","useMenuActivator","menuId","ariaExpanded","ariaControls","ariaLabel","makeSelectProps","makeVSelectProps","VSelect","ue","vTextFieldRef","vMenuRef","vVirtualScrollRef","transformed","selectedValues","selection","keyboardLookupPrefix","keyboardLookupIndex","keyboardLookupLastTime","displayItems","menuDisabled","_menu","computedMenuProps","listEvents","onMousedownControl","KEYBOARD_LOOKUP_THRESHOLD","findItem","findItemBase","_item","add","onModelUpdate","hasChips","hasList","textFieldProps","placeholder","itemRef","camelizedProps","onChipClose","hasSlot","slotContent","makeDataTablePaginateProps","VDataTablePaginationSymbol","createPagination","itemsPerPage","providePagination","itemsLength","stopIndex","pageCount","setItemsPerPage","nextPage","prevPage","setPage","usePagination","usePaginatedItems","paginatedItems","makeVDataTableFooterProps","VDataTableFooter","itemsPerPageOptions","option","paginationProps","VDataTableColumn","fixedSide","makeDataTableHeaderProps","VDataTableHeadersSymbol","defaultHeader","defaultActionHeader","priorityQueue","priority","extractLeaves","columns","extractKeys","headers","getDefaultItem","getDepth","depth","parseFixedColumns","seenFixed","setFixed","parentFixedSide","fixedOffset","setFixedOffset","fixedEndOffset","setFixedEndOffset","maxDepth","currentDepth","rowSize","sort","convertToInternalHeaders","internalHeaders","defaultItem","internalItem","createHeaders","sortFunctions","sortRawFunctions","filterFunctions","parsed","flatHeaders","header","useHeaders","singleSelectStrategy","pageSelectStrategy","currentPage","allSelectStrategy","allItems","_ref8","makeDataTableSelectProps","VDataTableSelectionSymbol","provideSelection","_ref9","customComparator","allSelectable","currentPageSelectable","isSomeSelected","toggleSelect","selectAll","someSelected","allSelected","showSelectAll","useSelection","makeDataTableSortProps","VDataTableSortSymbol","createSort","sortBy","mustSort","multiSort","provideSort","toggleSort","column","newSortBy","isSorted","useSort","useSortedItems","sortItems","sortByItems","stringCollator","hasCustomResult","sortKey","sortOrder","sortA","sortB","sortARaw","sortBRaw","customResult","makeVDataTableHeadersProps","VDataTableHeaders","getFixedStyles","handleEnterKeyPress","getSortIcon","headerCellClasses","VDataTableHeaderCell","noPadding","headerProps","columnSlotName","columnSlotProps","VDataTableMobileHeaderCell","appendIcon","makeDataTableGroupProps","VDataTableGroupSymbol","createGroupBy","provideGroupBy","disableSort","groupBy","sortByWithGroups","isGroupOpen","toggleGroup","extractRows","dive","useGroupBy","groupItemsByProperty","groupItems","groupedItems","flattenItems","hasSummary","flatItems","useGroupedItems","makeVDataTableGroupHeaderRowProps","VDataTableGroupHeaderRow","rows","colspan","selectGroup","makeDataTableExpandProps","VDataTableExpandedKey","provideExpanded","expandOnClick","expanded","expand","newExpanded","rawValue","isExpanded","toggleExpand","useExpanded","makeVDataTableRowProps","VDataTableRow","slotName","headerSlotName","cellProps","columnCellProps","withModifiers","displayValue","makeVDataTableRowsProps","VDataTableRows","groupHeaderRowProps","itemSlotProps","makeVTableProps","VTable","makeDataTableItemsProps","selectable","itemColumns","useDataTableItems","useOptions","search","oldOptions","defaultFilter","normaliseMatch","makeFilterProps","filterItems","filter","customFiltersLength","lookAheadItem","loop","customMatches","defaultMatches","hasOnlyCustomFilters","filterKeys","keyFilter","defaultMatchesLength","customMatchesLength","useFilter","filteredItems","filteredMatches","transformedItems","_query","strQuery","originalItems","_filteredItems","_filteredMatches","matches","getMatches","highlightResult","makeDataTableProps","makeVDataTableProps","VDataTable","sortedItems","paginatedItemsWithoutGroups","dataTableFooterProps","dataTableHeadersProps","dataTableRowsProps","tableProps","_f","selectedItems","handleOptionsUpdate","_component_v_data_table","$attrs","_createSlots","makeVCardActionsProps","VCardActions","makeVCardSubtitleProps","VCardSubtitle","VCardTitle","makeCardItemProps","VCardItem","makeVCardTextProps","VCardText","makeVCardProps","VCard","hasHeader","hasImage","hasCardItem","menuOpen","startDate","endDate","tempStartDate","tempEndDate","currentYearValue","yearsList","formatDate","isToday","isWeekend","tempStart","tempEnd","isInRange","isRangeStart","isRangeEnd","disabledDate","minDate","maxDate","confirm","cancel","clearDates","menuProps","_component_v_text_field","_component_v_card","_hoisted_6","_component_v_divider","_hoisted_11","UpButton","environments","detectEnvironment","getVersion","currentEnvironment","isDevelopment","isQA","isStaging","isProduction","logger","shouldShow","badgeColor","badgeText","_component_v_chip","menuLocation","alignMap","_component_v_list_item_title","truncateText","limit","truncatedContent","totalPages","formatPageNumber","goToPage","paginationItems","total","siblings","leftSibling","rightSibling","iconDict","labelDict","labelText","makeVRadioProps","VRadio","makeVRadioGroupProps","VRadioGroup","controlAttrs","getOptionLabel","getOptionValue","getOptionIcon","getOptionDisabled","_component_v_radio_group","_component_v_radio","makeVAutocompleteProps","VAutocomplete","listHasFocus","selectionIndex","_searchLock","filteredItem","hasSelectionSlot","highlightFirst","onMousedownMenuIcon","selectionStart","originalSelectionIndex","searchLength","onUpdateModelValue","isSelecting","searchQuery","handleSearch","handleBlur","handleFocus","_component_v_autocomplete","chipProps","currentMenu","handleItemClick","closeMenu","toggleMenu","getSubmenuStyle","padding","switchState","hasLabels","isValidPreviousNavigation","isValidNextNavigation","setCurrentIndex","scrollElement","valueID","previous","applyMask","mask","maskedValue","valueIndex","cleanValue","masked","newError","handleInput","handleEnter","emits","handleClose","internalShow","intervalId","startProgress","positionClass","transitionName","toastStyle","progressStyle","clearTimers","close","steps","interval","_Teleport","makeVTooltipProps","VTooltip","locationMap","_component_v_tooltip","tooltipProps","rawProps","UpTitleBar","components","UpAccordion","UpCalendar","UpCard","UpCell","UpCheckbox","UpDataTable","UpDatePicker","UpDivider","UpEnvironmentBadge","UpFloatMenu","UpNotification","UpPagination","UpProduct","UpRadio","UpSelect","UpSideBar","UpStepper","UpSwitch","UpTab","UpTextField","UpToast","UpTooltip","UpWindow","install","formatCPF","limited","formatCNPJ","formatCurrency","formatted","formatters","toasts","toastIdCounter","useToast","toastRef","addToast","toast","getDefaultIcon","removeToast","clearToasts","vTextFormat","formatType","originalText","formattedText","installDirectives"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,34,35,36,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,110,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,161,162,163,164,165,166,175,176,178,187]}
|