@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.js","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","n","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","_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","detectFetch","fetchModule","calculateMaxLength","maxHostLength","url","shouldAbort","status","prepare","results","maxLength","send","host","params","iconsList","urlParams","uri","defaultError","response","fetchAPIModule","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","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]}
|