@vuetify/nightly 3.6.3-master.2024-05-06 → 3.6.4-master.2024-05-08

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/CHANGELOG.md +2 -11
  2. package/dist/json/attributes.json +178 -38
  3. package/dist/json/importMap-labs.json +16 -16
  4. package/dist/json/importMap.json +96 -96
  5. package/dist/json/tags.json +36 -1
  6. package/dist/json/web-types.json +495 -85
  7. package/dist/vuetify-labs.css +5373 -5349
  8. package/dist/vuetify-labs.d.ts +1626 -1283
  9. package/dist/vuetify-labs.esm.js +150 -147
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +149 -146
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +2102 -2082
  14. package/dist/vuetify.d.ts +1195 -1208
  15. package/dist/vuetify.esm.js +97 -72
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +96 -71
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +981 -977
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
  23. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  24. package/lib/components/VAutocomplete/index.d.mts +187 -158
  25. package/lib/components/VBottomSheet/index.d.mts +42 -42
  26. package/lib/components/VCarousel/index.d.mts +6 -6
  27. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +1 -1
  28. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  29. package/lib/components/VCombobox/index.d.mts +187 -158
  30. package/lib/components/VDataIterator/index.d.mts +1 -1
  31. package/lib/components/VDataTable/VDataTable.css +1 -1
  32. package/lib/components/VDataTable/VDataTable.sass +2 -1
  33. package/lib/components/VDataTable/VDataTableHeaders.mjs +1 -1
  34. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  35. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  36. package/lib/components/VDataTable/composables/select.mjs +2 -1
  37. package/lib/components/VDataTable/composables/select.mjs.map +1 -1
  38. package/lib/components/VDataTable/index.d.mts +10 -5
  39. package/lib/components/VDatePicker/VDatePickerYears.mjs +4 -4
  40. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  41. package/lib/components/VDialog/index.d.mts +126 -126
  42. package/lib/components/VFileInput/VFileInput.mjs +1 -1
  43. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  44. package/lib/components/VFileInput/index.d.mts +9 -9
  45. package/lib/components/VImg/index.d.mts +6 -6
  46. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs +1 -1
  47. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  48. package/lib/components/VList/VList.mjs.map +1 -1
  49. package/lib/components/VList/VListItem.mjs +3 -2
  50. package/lib/components/VList/VListItem.mjs.map +1 -1
  51. package/lib/components/VList/index.d.mts +76 -52
  52. package/lib/components/VMenu/index.d.mts +126 -126
  53. package/lib/components/VOverlay/VOverlay.mjs +2 -5
  54. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  55. package/lib/components/VOverlay/index.d.mts +42 -42
  56. package/lib/components/VOverlay/useActivator.mjs +5 -5
  57. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  58. package/lib/components/VResponsive/VResponsive.mjs +1 -1
  59. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  60. package/lib/components/VResponsive/index.d.mts +6 -6
  61. package/lib/components/VSelect/index.d.mts +187 -158
  62. package/lib/components/VSheet/VSheet.css +1 -1
  63. package/lib/components/VSheet/_variables.scss +1 -1
  64. package/lib/components/VSlideGroup/VSlideGroup.mjs +25 -25
  65. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  66. package/lib/components/VSlider/VSliderThumb.css +5 -0
  67. package/lib/components/VSlider/VSliderThumb.sass +3 -0
  68. package/lib/components/VSlider/VSliderTrack.css +15 -0
  69. package/lib/components/VSlider/VSliderTrack.sass +9 -0
  70. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  71. package/lib/components/VSnackbar/index.d.mts +126 -126
  72. package/lib/components/VSpeedDial/index.d.mts +42 -42
  73. package/lib/components/VStepper/VStepperWindow.mjs +2 -1
  74. package/lib/components/VStepper/VStepperWindow.mjs.map +1 -1
  75. package/lib/components/VStepper/VStepperWindowItem.mjs +2 -1
  76. package/lib/components/VStepper/VStepperWindowItem.mjs.map +1 -1
  77. package/lib/components/VTabs/VTabsWindow.mjs +2 -1
  78. package/lib/components/VTabs/VTabsWindow.mjs.map +1 -1
  79. package/lib/components/VTooltip/index.d.mts +126 -126
  80. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  81. package/lib/components/index.d.mts +1162 -1175
  82. package/lib/composables/component.mjs +1 -1
  83. package/lib/composables/component.mjs.map +1 -1
  84. package/lib/composables/nested/activeStrategies.mjs +16 -10
  85. package/lib/composables/nested/activeStrategies.mjs.map +1 -1
  86. package/lib/composables/nested/nested.mjs +7 -5
  87. package/lib/composables/nested/nested.mjs.map +1 -1
  88. package/lib/composables/resizeObserver.mjs +5 -5
  89. package/lib/composables/resizeObserver.mjs.map +1 -1
  90. package/lib/entry-bundler.mjs +1 -1
  91. package/lib/framework.mjs +1 -1
  92. package/lib/index.d.mts +33 -33
  93. package/lib/labs/VCalendar/VCalendar.css +5 -1
  94. package/lib/labs/VCalendar/VCalendar.sass +3 -2
  95. package/lib/labs/VCalendar/_variables.scss +8 -0
  96. package/lib/labs/VNumberInput/VNumberInput.mjs +57 -81
  97. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  98. package/lib/labs/VNumberInput/index.d.mts +402 -34
  99. package/lib/labs/VSnackbarQueue/index.d.mts +138 -138
  100. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  101. package/lib/labs/VTreeview/index.d.mts +88 -64
  102. package/lib/labs/components.d.mts +620 -235
  103. package/lib/util/helpers.mjs +16 -0
  104. package/lib/util/helpers.mjs.map +1 -1
  105. package/package.json +2 -2
@@ -52,10 +52,7 @@ export const makeVOverlayProps = propsFactory({
52
52
  disabled: Boolean,
53
53
  opacity: [Number, String],
54
54
  noClickAnimation: Boolean,
55
- modelValue: {
56
- type: Boolean,
57
- default: null
58
- },
55
+ modelValue: Boolean,
59
56
  persistent: Boolean,
60
57
  scrim: {
61
58
  type: [Boolean, String],
@@ -98,7 +95,7 @@ export const VOverlay = genericComponent()({
98
95
  } = _ref;
99
96
  const model = useProxiedModel(props, 'modelValue');
100
97
  const isActive = computed({
101
- get: () => Boolean(model.value),
98
+ get: () => model.value,
102
99
  set: v => {
103
100
  if (!(v && props.disabled)) model.value = v;
104
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VOverlay.mjs","names":["makeLocationStrategyProps","useLocationStrategies","makeScrollStrategyProps","useScrollStrategies","makeActivatorProps","useActivator","useBackgroundColor","makeComponentProps","makeDimensionProps","useDimension","useHydration","makeLazyProps","useLazy","useRtl","useProxiedModel","useBackButton","useRouter","useScopeId","useStack","useTeleport","makeThemeProps","provideTheme","useToggleScope","makeTransitionProps","MaybeTransition","ClickOutside","computed","mergeProps","onBeforeUnmount","ref","Teleport","toRef","Transition","watch","animate","convertToUnit","genericComponent","getScrollParent","IN_BROWSER","propsFactory","standardEasing","useRender","Scrim","props","modelValue","color","rest","_createVNode","default","_mergeProps","backgroundColorClasses","value","backgroundColorStyles","makeVOverlayProps","absolute","Boolean","attach","String","Object","closeOnBack","type","contained","contentClass","contentProps","disabled","opacity","Number","noClickAnimation","persistent","scrim","zIndex","VOverlay","name","directives","inheritAttrs","_disableGlobalStack","emits","e","afterEnter","afterLeave","setup","_ref","slots","attrs","emit","model","isActive","get","set","v","teleportTarget","themeClasses","rtlClasses","isRtl","hasContent","onAfterLeave","_onAfterLeave","scrimColor","globalTop","localTop","stackStyles","activatorEl","activatorRef","target","targetEl","targetRef","activatorEvents","contentEvents","scrimEvents","isTop","dimensionStyles","isMounted","scopeId","root","scrimEl","contentEl","contentStyles","updateLocation","onClickOutside","animateClick","closeConditional","val","window","addEventListener","onKeydown","removeEventListener","immediate","key","contains","document","activeElement","focus","router","next","top","scrollParent","scrollingElement","scrollTop","transformOrigin","transform","duration","easing","onAfterEnter","_Fragment","activator","activatorProps","class","style","transition","_withDirectives","_vShow","_resolveDirective","handler","include"],"sources":["../../../src/components/VOverlay/VOverlay.tsx"],"sourcesContent":["// Styles\nimport './VOverlay.sass'\n\n// Composables\nimport { makeLocationStrategyProps, useLocationStrategies } from './locationStrategies'\nimport { makeScrollStrategyProps, useScrollStrategies } from './scrollStrategies'\nimport { makeActivatorProps, useActivator } from './useActivator'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useHydration } from '@/composables/hydration'\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useBackButton, useRouter } from '@/composables/router'\nimport { useScopeId } from '@/composables/scopeId'\nimport { useStack } from '@/composables/stack'\nimport { useTeleport } from '@/composables/teleport'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport { ClickOutside } from '@/directives/click-outside'\n\n// Utilities\nimport {\n computed,\n mergeProps,\n onBeforeUnmount,\n ref,\n Teleport,\n toRef,\n Transition,\n watch,\n} from 'vue'\nimport {\n animate,\n convertToUnit,\n genericComponent,\n getScrollParent,\n IN_BROWSER,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type {\n ComponentPublicInstance, PropType,\n Ref,\n} from 'vue'\nimport type { BackgroundColorData } from '@/composables/color'\n\ninterface ScrimProps {\n [key: string]: unknown\n modelValue: boolean\n color: BackgroundColorData\n}\nfunction Scrim (props: ScrimProps) {\n const { modelValue, color, ...rest } = props\n return (\n <Transition name=\"fade-transition\" appear>\n { props.modelValue && (\n <div\n class={[\n 'v-overlay__scrim',\n props.color.backgroundColorClasses.value,\n ]}\n style={ props.color.backgroundColorStyles.value }\n { ...rest }\n />\n )}\n </Transition>\n )\n}\n\nexport type OverlaySlots = {\n default: { isActive: Ref<boolean> }\n activator: { isActive: boolean, props: Record<string, any>, targetRef: Ref<ComponentPublicInstance<any> | HTMLElement> }\n}\n\nexport const makeVOverlayProps = propsFactory({\n absolute: Boolean,\n attach: [Boolean, String, Object] as PropType<boolean | string | Element>,\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: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n persistent: Boolean,\n scrim: {\n type: [Boolean, String],\n default: true,\n },\n zIndex: {\n type: [Number, String],\n default: 2000,\n },\n\n ...makeActivatorProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeLazyProps(),\n ...makeLocationStrategyProps(),\n ...makeScrollStrategyProps(),\n ...makeThemeProps(),\n ...makeTransitionProps(),\n}, 'VOverlay')\n\nexport const VOverlay = genericComponent<OverlaySlots>()({\n name: 'VOverlay',\n\n directives: { ClickOutside },\n\n inheritAttrs: false,\n\n props: {\n _disableGlobalStack: Boolean,\n\n ...makeVOverlayProps(),\n },\n\n emits: {\n 'click:outside': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n afterEnter: () => true,\n afterLeave: () => true,\n },\n\n setup (props, { slots, attrs, emit }) {\n const model = useProxiedModel(props, 'modelValue')\n const isActive = computed({\n get: () => Boolean(model.value),\n set: v => {\n if (!(v && props.disabled)) model.value = v\n },\n })\n const { teleportTarget } = useTeleport(computed(() => props.attach || props.contained))\n const { themeClasses } = provideTheme(props)\n const { rtlClasses, isRtl } = useRtl()\n const { hasContent, onAfterLeave: _onAfterLeave } = useLazy(props, isActive)\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n }))\n const { globalTop, localTop, stackStyles } = useStack(isActive, toRef(props, 'zIndex'), props._disableGlobalStack)\n const {\n activatorEl, activatorRef,\n target, targetEl, targetRef,\n activatorEvents,\n contentEvents,\n scrimEvents,\n } = useActivator(props, { isActive, isTop: localTop })\n const { dimensionStyles } = useDimension(props)\n const isMounted = useHydration()\n const { scopeId } = useScopeId()\n\n watch(() => props.disabled, v => {\n if (v) isActive.value = false\n })\n\n const root = ref<HTMLElement>()\n const scrimEl = ref<HTMLElement>()\n const contentEl = ref<HTMLElement>()\n const { contentStyles, updateLocation } = useLocationStrategies(props, {\n isRtl,\n contentEl,\n target,\n isActive,\n })\n useScrollStrategies(props, {\n root,\n contentEl,\n targetEl,\n isActive,\n updateLocation,\n })\n\n function onClickOutside (e: MouseEvent) {\n emit('click:outside', e)\n\n if (!props.persistent) isActive.value = false\n else animateClick()\n }\n\n function closeConditional (e: Event) {\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\n )\n }\n\n IN_BROWSER && watch(isActive, val => {\n if (val) {\n window.addEventListener('keydown', onKeydown)\n } else {\n window.removeEventListener('keydown', onKeydown)\n }\n }, { immediate: true })\n\n onBeforeUnmount(() => {\n if (!IN_BROWSER) return\n\n window.removeEventListener('keydown', onKeydown)\n })\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === 'Escape' && globalTop.value) {\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\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\n else animateClick()\n } else {\n next()\n }\n })\n })\n\n const top = ref<number>()\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\n contentEl.value && animate(contentEl.value, [\n { transformOrigin: 'center' },\n { transform: 'scale(1.03)' },\n { transformOrigin: 'center' },\n ], {\n duration: 150,\n easing: standardEasing,\n })\n }\n\n function onAfterEnter () {\n emit('afterEnter')\n }\n\n function onAfterLeave () {\n _onAfterLeave()\n emit('afterLeave')\n }\n\n useRender(() => (\n <>\n { slots.activator?.({\n isActive: isActive.value,\n targetRef,\n props: mergeProps({\n ref: activatorRef,\n }, activatorEvents.value, props.activatorProps),\n })}\n\n { isMounted.value && hasContent.value && (\n <Teleport\n disabled={ !teleportTarget.value }\n to={ teleportTarget.value }\n >\n <div\n class={[\n 'v-overlay',\n {\n 'v-overlay--absolute': props.absolute || props.contained,\n 'v-overlay--active': isActive.value,\n 'v-overlay--contained': props.contained,\n },\n themeClasses.value,\n rtlClasses.value,\n props.class,\n ]}\n style={[\n stackStyles.value,\n {\n '--v-overlay-opacity': props.opacity,\n top: convertToUnit(top.value),\n },\n props.style,\n ]}\n ref={ root }\n { ...scopeId }\n { ...attrs }\n >\n <Scrim\n color={ scrimColor }\n modelValue={ isActive.value && !!props.scrim }\n ref={ scrimEl }\n { ...scrimEvents.value }\n />\n <MaybeTransition\n appear\n persisted\n transition={ props.transition }\n target={ target.value }\n onAfterEnter={ onAfterEnter }\n onAfterLeave={ onAfterLeave }\n >\n <div\n ref={ contentEl }\n v-show={ isActive.value }\n v-click-outside={{ handler: onClickOutside, closeConditional, include: () => [activatorEl.value] }}\n class={[\n 'v-overlay__content',\n props.contentClass,\n ]}\n style={[\n dimensionStyles.value,\n contentStyles.value,\n ]}\n { ...contentEvents.value }\n { ...props.contentProps }\n >\n { slots.default?.({ isActive }) }\n </div>\n </MaybeTransition>\n </div>\n </Teleport>\n )}\n </>\n ))\n\n return {\n activatorEl,\n scrimEl,\n target,\n animateClick,\n contentEl,\n globalTop,\n localTop,\n updateLocation,\n }\n },\n})\n\nexport type VOverlay = InstanceType<typeof VOverlay>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,yBAAyB,EAAEC,qBAAqB;AAAA,SAChDC,uBAAuB,EAAEC,mBAAmB;AAAA,SAC5CC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,kBAAkB;AAAA,SAClBC,kBAAkB;AAAA,SAClBC,kBAAkB,EAAEC,YAAY;AAAA,SAChCC,YAAY;AAAA,SACZC,aAAa,EAAEC,OAAO;AAAA,SACtBC,MAAM;AAAA,SACNC,eAAe;AAAA,SACfC,aAAa,EAAEC,SAAS;AAAA,SACxBC,UAAU;AAAA,SACVC,QAAQ;AAAA,SACRC,WAAW;AAAA,SACXC,cAAc,EAAEC,YAAY;AAAA,SAC5BC,cAAc;AAAA,SACdC,mBAAmB,EAAEC,eAAe,4CAE7C;AAAA,SACSC,YAAY,oDAErB;AACA,SACEC,QAAQ,EACRC,UAAU,EACVC,eAAe,EACfC,GAAG,EACHC,QAAQ,EACRC,KAAK,EACLC,UAAU,EACVC,KAAK,QACA,KAAK;AAAA,SAEVC,OAAO,EACPC,aAAa,EACbC,gBAAgB,EAChBC,eAAe,EACfC,UAAU,EACVC,YAAY,EACZC,cAAc,EACdC,SAAS,gCAGX;AAYA,SAASC,KAAKA,CAAEC,KAAiB,EAAE;EACjC,MAAM;IAAEC,UAAU;IAAEC,KAAK;IAAE,GAAGC;EAAK,CAAC,GAAGH,KAAK;EAC5C,OAAAI,YAAA,CAAAf,UAAA;IAAA;IAAA;EAAA;IAAAgB,OAAA,EAAAA,CAAA,MAEML,KAAK,CAACC,UAAU,IAAAG,YAAA,QAAAE,WAAA;MAAA,SAEP,CACL,kBAAkB,EAClBN,KAAK,CAACE,KAAK,CAACK,sBAAsB,CAACC,KAAK,CACzC;MAAA,SACOR,KAAK,CAACE,KAAK,CAACO,qBAAqB,CAACD;IAAK,GAC1CL,IAAI,QAEZ;EAAA;AAGP;AAOA,OAAO,MAAMO,iBAAiB,GAAGd,YAAY,CAAC;EAC5Ce,QAAQ,EAAEC,OAAO;EACjBC,MAAM,EAAE,CAACD,OAAO,EAAEE,MAAM,EAAEC,MAAM,CAAyC;EACzEC,WAAW,EAAE;IACXC,IAAI,EAAEL,OAAO;IACbP,OAAO,EAAE;EACX,CAAC;EACDa,SAAS,EAAEN,OAAO;EAClBO,YAAY,EAAE,IAAI;EAClBC,YAAY,EAAE,IAAI;EAClBC,QAAQ,EAAET,OAAO;EACjBU,OAAO,EAAE,CAACC,MAAM,EAAET,MAAM,CAAC;EACzBU,gBAAgB,EAAEZ,OAAO;EACzBX,UAAU,EAAE;IACVgB,IAAI,EAAEL,OAAmC;IACzCP,OAAO,EAAE;EACX,CAAC;EACDoB,UAAU,EAAEb,OAAO;EACnBc,KAAK,EAAE;IACLT,IAAI,EAAE,CAACL,OAAO,EAAEE,MAAM,CAAC;IACvBT,OAAO,EAAE;EACX,CAAC;EACDsB,MAAM,EAAE;IACNV,IAAI,EAAE,CAACM,MAAM,EAAET,MAAM,CAAC;IACtBT,OAAO,EAAE;EACX,CAAC;EAED,GAAG5C,kBAAkB,CAAC,CAAC;EACvB,GAAGG,kBAAkB,CAAC,CAAC;EACvB,GAAGC,kBAAkB,CAAC,CAAC;EACvB,GAAGG,aAAa,CAAC,CAAC;EAClB,GAAGX,yBAAyB,CAAC,CAAC;EAC9B,GAAGE,uBAAuB,CAAC,CAAC;EAC5B,GAAGkB,cAAc,CAAC,CAAC;EACnB,GAAGG,mBAAmB,CAAC;AACzB,CAAC,EAAE,UAAU,CAAC;AAEd,OAAO,MAAMgD,QAAQ,GAAGnC,gBAAgB,CAAe,CAAC,CAAC;EACvDoC,IAAI,EAAE,UAAU;EAEhBC,UAAU,EAAE;IAAEhD;EAAa,CAAC;EAE5BiD,YAAY,EAAE,KAAK;EAEnB/B,KAAK,EAAE;IACLgC,mBAAmB,EAAEpB,OAAO;IAE5B,GAAGF,iBAAiB,CAAC;EACvB,CAAC;EAEDuB,KAAK,EAAE;IACL,eAAe,EAAGC,CAAa,IAAK,IAAI;IACxC,mBAAmB,EAAG1B,KAAc,IAAK,IAAI;IAC7C2B,UAAU,EAAEA,CAAA,KAAM,IAAI;IACtBC,UAAU,EAAEA,CAAA,KAAM;EACpB,CAAC;EAEDC,KAAKA,CAAErC,KAAK,EAAAsC,IAAA,EAA0B;IAAA,IAAxB;MAAEC,KAAK;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAAH,IAAA;IAClC,MAAMI,KAAK,GAAGvE,eAAe,CAAC6B,KAAK,EAAE,YAAY,CAAC;IAClD,MAAM2C,QAAQ,GAAG5D,QAAQ,CAAC;MACxB6D,GAAG,EAAEA,CAAA,KAAMhC,OAAO,CAAC8B,KAAK,CAAClC,KAAK,CAAC;MAC/BqC,GAAG,EAAEC,CAAC,IAAI;QACR,IAAI,EAAEA,CAAC,IAAI9C,KAAK,CAACqB,QAAQ,CAAC,EAAEqB,KAAK,CAAClC,KAAK,GAAGsC,CAAC;MAC7C;IACF,CAAC,CAAC;IACF,MAAM;MAAEC;IAAe,CAAC,GAAGvE,WAAW,CAACO,QAAQ,CAAC,MAAMiB,KAAK,CAACa,MAAM,IAAIb,KAAK,CAACkB,SAAS,CAAC,CAAC;IACvF,MAAM;MAAE8B;IAAa,CAAC,GAAGtE,YAAY,CAACsB,KAAK,CAAC;IAC5C,MAAM;MAAEiD,UAAU;MAAEC;IAAM,CAAC,GAAGhF,MAAM,CAAC,CAAC;IACtC,MAAM;MAAEiF,UAAU;MAAEC,YAAY,EAAEC;IAAc,CAAC,GAAGpF,OAAO,CAAC+B,KAAK,EAAE2C,QAAQ,CAAC;IAC5E,MAAMW,UAAU,GAAG3F,kBAAkB,CAACoB,QAAQ,CAAC,MAAM;MACnD,OAAO,OAAOiB,KAAK,CAAC0B,KAAK,KAAK,QAAQ,GAAG1B,KAAK,CAAC0B,KAAK,GAAG,IAAI;IAC7D,CAAC,CAAC,CAAC;IACH,MAAM;MAAE6B,SAAS;MAAEC,QAAQ;MAAEC;IAAY,CAAC,GAAGlF,QAAQ,CAACoE,QAAQ,EAAEvD,KAAK,CAACY,KAAK,EAAE,QAAQ,CAAC,EAAEA,KAAK,CAACgC,mBAAmB,CAAC;IAClH,MAAM;MACJ0B,WAAW;MAAEC,YAAY;MACzBC,MAAM;MAAEC,QAAQ;MAAEC,SAAS;MAC3BC,eAAe;MACfC,aAAa;MACbC;IACF,CAAC,GAAGvG,YAAY,CAACsC,KAAK,EAAE;MAAE2C,QAAQ;MAAEuB,KAAK,EAAEV;IAAS,CAAC,CAAC;IACtD,MAAM;MAAEW;IAAgB,CAAC,GAAGrG,YAAY,CAACkC,KAAK,CAAC;IAC/C,MAAMoE,SAAS,GAAGrG,YAAY,CAAC,CAAC;IAChC,MAAM;MAAEsG;IAAQ,CAAC,GAAG/F,UAAU,CAAC,CAAC;IAEhCgB,KAAK,CAAC,MAAMU,KAAK,CAACqB,QAAQ,EAAEyB,CAAC,IAAI;MAC/B,IAAIA,CAAC,EAAEH,QAAQ,CAACnC,KAAK,GAAG,KAAK;IAC/B,CAAC,CAAC;IAEF,MAAM8D,IAAI,GAAGpF,GAAG,CAAc,CAAC;IAC/B,MAAMqF,OAAO,GAAGrF,GAAG,CAAc,CAAC;IAClC,MAAMsF,SAAS,GAAGtF,GAAG,CAAc,CAAC;IACpC,MAAM;MAAEuF,aAAa;MAAEC;IAAe,CAAC,GAAGpH,qBAAqB,CAAC0C,KAAK,EAAE;MACrEkD,KAAK;MACLsB,SAAS;MACTZ,MAAM;MACNjB;IACF,CAAC,CAAC;IACFnF,mBAAmB,CAACwC,KAAK,EAAE;MACzBsE,IAAI;MACJE,SAAS;MACTX,QAAQ;MACRlB,QAAQ;MACR+B;IACF,CAAC,CAAC;IAEF,SAASC,cAAcA,CAAEzC,CAAa,EAAE;MACtCO,IAAI,CAAC,eAAe,EAAEP,CAAC,CAAC;MAExB,IAAI,CAAClC,KAAK,CAACyB,UAAU,EAAEkB,QAAQ,CAACnC,KAAK,GAAG,KAAK,MACxCoE,YAAY,CAAC,CAAC;IACrB;IAEA,SAASC,gBAAgBA,CAAE3C,CAAQ,EAAE;MACnC,OAAOS,QAAQ,CAACnC,KAAK,IAAI+C,SAAS,CAAC/C,KAAK;MACtC;MACA,CAACR,KAAK,CAAC0B,KAAK,IAAIQ,CAAC,CAAC0B,MAAM,KAAKW,OAAO,CAAC/D,KAAK,CAC3C;IACH;IAEAb,UAAU,IAAIL,KAAK,CAACqD,QAAQ,EAAEmC,GAAG,IAAI;MACnC,IAAIA,GAAG,EAAE;QACPC,MAAM,CAACC,gBAAgB,CAAC,SAAS,EAAEC,SAAS,CAAC;MAC/C,CAAC,MAAM;QACLF,MAAM,CAACG,mBAAmB,CAAC,SAAS,EAAED,SAAS,CAAC;MAClD;IACF,CAAC,EAAE;MAAEE,SAAS,EAAE;IAAK,CAAC,CAAC;IAEvBlG,eAAe,CAAC,MAAM;MACpB,IAAI,CAACU,UAAU,EAAE;MAEjBoF,MAAM,CAACG,mBAAmB,CAAC,SAAS,EAAED,SAAS,CAAC;IAClD,CAAC,CAAC;IAEF,SAASA,SAASA,CAAE/C,CAAgB,EAAE;MACpC,IAAIA,CAAC,CAACkD,GAAG,KAAK,QAAQ,IAAI7B,SAAS,CAAC/C,KAAK,EAAE;QACzC,IAAI,CAACR,KAAK,CAACyB,UAAU,EAAE;UACrBkB,QAAQ,CAACnC,KAAK,GAAG,KAAK;UACtB,IAAIgE,SAAS,CAAChE,KAAK,EAAE6E,QAAQ,CAACC,QAAQ,CAACC,aAAa,CAAC,EAAE;YACrD7B,WAAW,CAAClD,KAAK,EAAEgF,KAAK,CAAC,CAAC;UAC5B;QACF,CAAC,MAAMZ,YAAY,CAAC,CAAC;MACvB;IACF;IAEA,MAAMa,MAAM,GAAGpH,SAAS,CAAC,CAAC;IAC1BM,cAAc,CAAC,MAAMqB,KAAK,CAACgB,WAAW,EAAE,MAAM;MAC5C5C,aAAa,CAACqH,MAAM,EAAEC,IAAI,IAAI;QAC5B,IAAInC,SAAS,CAAC/C,KAAK,IAAImC,QAAQ,CAACnC,KAAK,EAAE;UACrCkF,IAAI,CAAC,KAAK,CAAC;UACX,IAAI,CAAC1F,KAAK,CAACyB,UAAU,EAAEkB,QAAQ,CAACnC,KAAK,GAAG,KAAK,MACxCoE,YAAY,CAAC,CAAC;QACrB,CAAC,MAAM;UACLc,IAAI,CAAC,CAAC;QACR;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAMC,GAAG,GAAGzG,GAAG,CAAS,CAAC;IACzBI,KAAK,CAAC,MAAMqD,QAAQ,CAACnC,KAAK,KAAKR,KAAK,CAACW,QAAQ,IAAIX,KAAK,CAACkB,SAAS,CAAC,IAAI6B,cAAc,CAACvC,KAAK,IAAI,IAAI,EAAEsE,GAAG,IAAI;MACxG,IAAIA,GAAG,EAAE;QACP,MAAMc,YAAY,GAAGlG,eAAe,CAAC4E,IAAI,CAAC9D,KAAK,CAAC;QAChD,IAAIoF,YAAY,IAAIA,YAAY,KAAKN,QAAQ,CAACO,gBAAgB,EAAE;UAC9DF,GAAG,CAACnF,KAAK,GAAGoF,YAAY,CAACE,SAAS;QACpC;MACF;IACF,CAAC,CAAC;;IAEF;IACA,SAASlB,YAAYA,CAAA,EAAI;MACvB,IAAI5E,KAAK,CAACwB,gBAAgB,EAAE;MAE5BgD,SAAS,CAAChE,KAAK,IAAIjB,OAAO,CAACiF,SAAS,CAAChE,KAAK,EAAE,CAC1C;QAAEuF,eAAe,EAAE;MAAS,CAAC,EAC7B;QAAEC,SAAS,EAAE;MAAc,CAAC,EAC5B;QAAED,eAAe,EAAE;MAAS,CAAC,CAC9B,EAAE;QACDE,QAAQ,EAAE,GAAG;QACbC,MAAM,EAAErG;MACV,CAAC,CAAC;IACJ;IAEA,SAASsG,YAAYA,CAAA,EAAI;MACvB1D,IAAI,CAAC,YAAY,CAAC;IACpB;IAEA,SAASW,YAAYA,CAAA,EAAI;MACvBC,aAAa,CAAC,CAAC;MACfZ,IAAI,CAAC,YAAY,CAAC;IACpB;IAEA3C,SAAS,CAAC,MAAAM,YAAA,CAAAgG,SAAA,SAEJ7D,KAAK,CAAC8D,SAAS,GAAG;MAClB1D,QAAQ,EAAEA,QAAQ,CAACnC,KAAK;MACxBsD,SAAS;MACT9D,KAAK,EAAEhB,UAAU,CAAC;QAChBE,GAAG,EAAEyE;MACP,CAAC,EAAEI,eAAe,CAACvD,KAAK,EAAER,KAAK,CAACsG,cAAc;IAChD,CAAC,CAAC,EAEAlC,SAAS,CAAC5D,KAAK,IAAI2C,UAAU,CAAC3C,KAAK,IAAAJ,YAAA,CAAAjB,QAAA;MAAA,YAEtB,CAAC4D,cAAc,CAACvC,KAAK;MAAA,MAC3BuC,cAAc,CAACvC;IAAK;MAAAH,OAAA,EAAAA,CAAA,MAAAD,YAAA,QAAAE,WAAA;QAAA,SAGhB,CACL,WAAW,EACX;UACE,qBAAqB,EAAEN,KAAK,CAACW,QAAQ,IAAIX,KAAK,CAACkB,SAAS;UACxD,mBAAmB,EAAEyB,QAAQ,CAACnC,KAAK;UACnC,sBAAsB,EAAER,KAAK,CAACkB;QAChC,CAAC,EACD8B,YAAY,CAACxC,KAAK,EAClByC,UAAU,CAACzC,KAAK,EAChBR,KAAK,CAACuG,KAAK,CACZ;QAAA,SACM,CACL9C,WAAW,CAACjD,KAAK,EACjB;UACE,qBAAqB,EAAER,KAAK,CAACsB,OAAO;UACpCqE,GAAG,EAAEnG,aAAa,CAACmG,GAAG,CAACnF,KAAK;QAC9B,CAAC,EACDR,KAAK,CAACwG,KAAK,CACZ;QAAA,OACKlC;MAAI,GACLD,OAAO,EACP7B,KAAK,IAAApC,YAAA,CAAAL,KAAA,EAAAO,WAAA;QAAA,SAGAgD,UAAU;QAAA,cACLX,QAAQ,CAACnC,KAAK,IAAI,CAAC,CAACR,KAAK,CAAC0B,KAAK;QAAA,OACtC6C;MAAO,GACRN,WAAW,CAACzD,KAAK,UAAAJ,YAAA,CAAAvB,eAAA;QAAA;QAAA;QAAA,cAKTmB,KAAK,CAACyG,UAAU;QAAA,UACpB7C,MAAM,CAACpD,KAAK;QAAA,gBACN2F,YAAY;QAAA,gBACZ/C;MAAY;QAAA/C,OAAA,EAAAA,CAAA,MAAAqG,eAAA,CAAAtG,YAAA,QAAAE,WAAA;UAAA,OAGnBkE,SAAS;UAAA,SAGR,CACL,oBAAoB,EACpBxE,KAAK,CAACmB,YAAY,CACnB;UAAA,SACM,CACLgD,eAAe,CAAC3D,KAAK,EACrBiE,aAAa,CAACjE,KAAK;QACpB,GACIwD,aAAa,CAACxD,KAAK,EACnBR,KAAK,CAACoB,YAAY,IAErBmB,KAAK,CAAClC,OAAO,GAAG;UAAEsC;QAAS,CAAC,CAAC,MAAAgE,MAAA,EAbtBhE,QAAQ,CAACnC,KAAK,IAAAoG,iBAAA,mBACN;UAAEC,OAAO,EAAElC,cAAc;UAAEE,gBAAgB;UAAEiC,OAAO,EAAEA,CAAA,KAAM,CAACpD,WAAW,CAAClD,KAAK;QAAE,CAAC;MAAA;IAAA,EAiB3G,EAEJ,CAAC;IAEF,OAAO;MACLkD,WAAW;MACXa,OAAO;MACPX,MAAM;MACNgB,YAAY;MACZJ,SAAS;MACTjB,SAAS;MACTC,QAAQ;MACRkB;IACF,CAAC;EACH;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VOverlay.mjs","names":["makeLocationStrategyProps","useLocationStrategies","makeScrollStrategyProps","useScrollStrategies","makeActivatorProps","useActivator","useBackgroundColor","makeComponentProps","makeDimensionProps","useDimension","useHydration","makeLazyProps","useLazy","useRtl","useProxiedModel","useBackButton","useRouter","useScopeId","useStack","useTeleport","makeThemeProps","provideTheme","useToggleScope","makeTransitionProps","MaybeTransition","ClickOutside","computed","mergeProps","onBeforeUnmount","ref","Teleport","toRef","Transition","watch","animate","convertToUnit","genericComponent","getScrollParent","IN_BROWSER","propsFactory","standardEasing","useRender","Scrim","props","modelValue","color","rest","_createVNode","default","_mergeProps","backgroundColorClasses","value","backgroundColorStyles","makeVOverlayProps","absolute","Boolean","attach","String","Object","closeOnBack","type","contained","contentClass","contentProps","disabled","opacity","Number","noClickAnimation","persistent","scrim","zIndex","VOverlay","name","directives","inheritAttrs","_disableGlobalStack","emits","e","afterEnter","afterLeave","setup","_ref","slots","attrs","emit","model","isActive","get","set","v","teleportTarget","themeClasses","rtlClasses","isRtl","hasContent","onAfterLeave","_onAfterLeave","scrimColor","globalTop","localTop","stackStyles","activatorEl","activatorRef","target","targetEl","targetRef","activatorEvents","contentEvents","scrimEvents","isTop","dimensionStyles","isMounted","scopeId","root","scrimEl","contentEl","contentStyles","updateLocation","onClickOutside","animateClick","closeConditional","val","window","addEventListener","onKeydown","removeEventListener","immediate","key","contains","document","activeElement","focus","router","next","top","scrollParent","scrollingElement","scrollTop","transformOrigin","transform","duration","easing","onAfterEnter","_Fragment","activator","activatorProps","class","style","transition","_withDirectives","_vShow","_resolveDirective","handler","include"],"sources":["../../../src/components/VOverlay/VOverlay.tsx"],"sourcesContent":["// Styles\nimport './VOverlay.sass'\n\n// Composables\nimport { makeLocationStrategyProps, useLocationStrategies } from './locationStrategies'\nimport { makeScrollStrategyProps, useScrollStrategies } from './scrollStrategies'\nimport { makeActivatorProps, useActivator } from './useActivator'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useHydration } from '@/composables/hydration'\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\nimport { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useBackButton, useRouter } from '@/composables/router'\nimport { useScopeId } from '@/composables/scopeId'\nimport { useStack } from '@/composables/stack'\nimport { useTeleport } from '@/composables/teleport'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport { ClickOutside } from '@/directives/click-outside'\n\n// Utilities\nimport {\n computed,\n mergeProps,\n onBeforeUnmount,\n ref,\n Teleport,\n toRef,\n Transition,\n watch,\n} from 'vue'\nimport {\n animate,\n convertToUnit,\n genericComponent,\n getScrollParent,\n IN_BROWSER,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { BackgroundColorData } from '@/composables/color'\nimport type { TemplateRef } from '@/util'\n\ninterface ScrimProps {\n [key: string]: unknown\n modelValue: boolean\n color: BackgroundColorData\n}\nfunction Scrim (props: ScrimProps) {\n const { modelValue, color, ...rest } = props\n return (\n <Transition name=\"fade-transition\" appear>\n { props.modelValue && (\n <div\n class={[\n 'v-overlay__scrim',\n props.color.backgroundColorClasses.value,\n ]}\n style={ props.color.backgroundColorStyles.value }\n { ...rest }\n />\n )}\n </Transition>\n )\n}\n\nexport type OverlaySlots = {\n default: { isActive: Ref<boolean> }\n activator: { isActive: boolean, props: Record<string, any>, targetRef: TemplateRef }\n}\n\nexport const makeVOverlayProps = propsFactory({\n absolute: Boolean,\n attach: [Boolean, String, Object] as PropType<boolean | string | Element>,\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\n ...makeActivatorProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeLazyProps(),\n ...makeLocationStrategyProps(),\n ...makeScrollStrategyProps(),\n ...makeThemeProps(),\n ...makeTransitionProps(),\n}, 'VOverlay')\n\nexport const VOverlay = genericComponent<OverlaySlots>()({\n name: 'VOverlay',\n\n directives: { ClickOutside },\n\n inheritAttrs: false,\n\n props: {\n _disableGlobalStack: Boolean,\n\n ...makeVOverlayProps(),\n },\n\n emits: {\n 'click:outside': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n afterEnter: () => true,\n afterLeave: () => true,\n },\n\n setup (props, { slots, attrs, emit }) {\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 { teleportTarget } = useTeleport(computed(() => props.attach || props.contained))\n const { themeClasses } = provideTheme(props)\n const { rtlClasses, isRtl } = useRtl()\n const { hasContent, onAfterLeave: _onAfterLeave } = useLazy(props, isActive)\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n }))\n const { globalTop, localTop, stackStyles } = useStack(isActive, toRef(props, 'zIndex'), props._disableGlobalStack)\n const {\n activatorEl, activatorRef,\n target, targetEl, targetRef,\n activatorEvents,\n contentEvents,\n scrimEvents,\n } = useActivator(props, { isActive, isTop: localTop })\n const { dimensionStyles } = useDimension(props)\n const isMounted = useHydration()\n const { scopeId } = useScopeId()\n\n watch(() => props.disabled, v => {\n if (v) isActive.value = false\n })\n\n const root = ref<HTMLElement>()\n const scrimEl = ref<HTMLElement>()\n const contentEl = ref<HTMLElement>()\n const { contentStyles, updateLocation } = useLocationStrategies(props, {\n isRtl,\n contentEl,\n target,\n isActive,\n })\n useScrollStrategies(props, {\n root,\n contentEl,\n targetEl,\n isActive,\n updateLocation,\n })\n\n function onClickOutside (e: MouseEvent) {\n emit('click:outside', e)\n\n if (!props.persistent) isActive.value = false\n else animateClick()\n }\n\n function closeConditional (e: Event) {\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\n )\n }\n\n IN_BROWSER && watch(isActive, val => {\n if (val) {\n window.addEventListener('keydown', onKeydown)\n } else {\n window.removeEventListener('keydown', onKeydown)\n }\n }, { immediate: true })\n\n onBeforeUnmount(() => {\n if (!IN_BROWSER) return\n\n window.removeEventListener('keydown', onKeydown)\n })\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === 'Escape' && globalTop.value) {\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\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\n else animateClick()\n } else {\n next()\n }\n })\n })\n\n const top = ref<number>()\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\n contentEl.value && animate(contentEl.value, [\n { transformOrigin: 'center' },\n { transform: 'scale(1.03)' },\n { transformOrigin: 'center' },\n ], {\n duration: 150,\n easing: standardEasing,\n })\n }\n\n function onAfterEnter () {\n emit('afterEnter')\n }\n\n function onAfterLeave () {\n _onAfterLeave()\n emit('afterLeave')\n }\n\n useRender(() => (\n <>\n { slots.activator?.({\n isActive: isActive.value,\n targetRef,\n props: mergeProps({\n ref: activatorRef,\n }, activatorEvents.value, props.activatorProps),\n })}\n\n { isMounted.value && hasContent.value && (\n <Teleport\n disabled={ !teleportTarget.value }\n to={ teleportTarget.value }\n >\n <div\n class={[\n 'v-overlay',\n {\n 'v-overlay--absolute': props.absolute || props.contained,\n 'v-overlay--active': isActive.value,\n 'v-overlay--contained': props.contained,\n },\n themeClasses.value,\n rtlClasses.value,\n props.class,\n ]}\n style={[\n stackStyles.value,\n {\n '--v-overlay-opacity': props.opacity,\n top: convertToUnit(top.value),\n },\n props.style,\n ]}\n ref={ root }\n { ...scopeId }\n { ...attrs }\n >\n <Scrim\n color={ scrimColor }\n modelValue={ isActive.value && !!props.scrim }\n ref={ scrimEl }\n { ...scrimEvents.value }\n />\n <MaybeTransition\n appear\n persisted\n transition={ props.transition }\n target={ target.value }\n onAfterEnter={ onAfterEnter }\n onAfterLeave={ onAfterLeave }\n >\n <div\n ref={ contentEl }\n v-show={ isActive.value }\n v-click-outside={{ handler: onClickOutside, closeConditional, include: () => [activatorEl.value] }}\n class={[\n 'v-overlay__content',\n props.contentClass,\n ]}\n style={[\n dimensionStyles.value,\n contentStyles.value,\n ]}\n { ...contentEvents.value }\n { ...props.contentProps }\n >\n { slots.default?.({ isActive }) }\n </div>\n </MaybeTransition>\n </div>\n </Teleport>\n )}\n </>\n ))\n\n return {\n activatorEl,\n scrimEl,\n target,\n animateClick,\n contentEl,\n globalTop,\n localTop,\n updateLocation,\n }\n },\n})\n\nexport type VOverlay = InstanceType<typeof VOverlay>\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import * as vue from 'vue';
2
- import { ComponentPropsOptions, ExtractPropTypes, Ref, EffectScope, ComponentPublicInstance, PropType } from 'vue';
2
+ import { ComponentPropsOptions, ExtractPropTypes, ComponentPublicInstance, Ref, EffectScope, PropType } from 'vue';
3
3
 
4
4
  declare const block: readonly ["top", "bottom"];
5
5
  declare const inline: readonly ["start", "end", "left", "right"];
@@ -28,6 +28,12 @@ interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions
28
28
  filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
29
29
  }
30
30
 
31
+ type TemplateRef = {
32
+ (target: Element | ComponentPublicInstance | null): void;
33
+ value: HTMLElement | ComponentPublicInstance | null | undefined;
34
+ readonly el: HTMLElement | undefined;
35
+ };
36
+
31
37
  interface LocationStrategyData {
32
38
  contentEl: Ref<HTMLElement | undefined>;
33
39
  target: Ref<HTMLElement | [x: number, y: number] | undefined>;
@@ -93,7 +99,7 @@ declare const VOverlay: {
93
99
  component?: vue.Component | undefined;
94
100
  });
95
101
  zIndex: string | number;
96
- modelValue: boolean | null;
102
+ modelValue: boolean;
97
103
  origin: Anchor | "auto" | "overlap";
98
104
  eager: boolean;
99
105
  location: Anchor;
@@ -115,7 +121,7 @@ declare const VOverlay: {
115
121
  width?: string | number | undefined;
116
122
  height?: string | number | undefined;
117
123
  theme?: string | undefined;
118
- target?: Element | (string & {}) | ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined;
124
+ target?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | "cursor" | [x: number, y: number] | undefined;
119
125
  offset?: string | number | number[] | undefined;
120
126
  contentClass?: any;
121
127
  opacity?: string | number | undefined;
@@ -123,7 +129,7 @@ declare const VOverlay: {
123
129
  maxWidth?: string | number | undefined;
124
130
  minHeight?: string | number | undefined;
125
131
  minWidth?: string | number | undefined;
126
- activator?: Element | (string & {}) | ComponentPublicInstance | "parent" | undefined;
132
+ activator?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | undefined;
127
133
  closeDelay?: string | number | undefined;
128
134
  openDelay?: string | number | undefined;
129
135
  openOnClick?: boolean | undefined;
@@ -138,7 +144,7 @@ declare const VOverlay: {
138
144
  activator?: ((arg: {
139
145
  isActive: boolean;
140
146
  props: Record<string, any>;
141
- targetRef: Ref<ComponentPublicInstance<any> | HTMLElement>;
147
+ targetRef: TemplateRef;
142
148
  }) => vue.VNodeChild) | undefined;
143
149
  } | ((arg: {
144
150
  isActive: Ref<boolean>;
@@ -150,7 +156,7 @@ declare const VOverlay: {
150
156
  activator?: false | ((arg: {
151
157
  isActive: boolean;
152
158
  props: Record<string, any>;
153
- targetRef: Ref<ComponentPublicInstance<any> | HTMLElement>;
159
+ targetRef: TemplateRef;
154
160
  }) => vue.VNodeChild) | undefined;
155
161
  } | undefined;
156
162
  } & {
@@ -160,7 +166,7 @@ declare const VOverlay: {
160
166
  "v-slot:activator"?: false | ((arg: {
161
167
  isActive: boolean;
162
168
  props: Record<string, any>;
163
- targetRef: Ref<ComponentPublicInstance<any> | HTMLElement>;
169
+ targetRef: TemplateRef;
164
170
  }) => vue.VNodeChild) | undefined;
165
171
  } & {
166
172
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
@@ -189,7 +195,7 @@ declare const VOverlay: {
189
195
  component?: vue.Component | undefined;
190
196
  });
191
197
  zIndex: string | number;
192
- modelValue: boolean | null;
198
+ modelValue: boolean;
193
199
  origin: Anchor | "auto" | "overlap";
194
200
  eager: boolean;
195
201
  location: Anchor;
@@ -211,7 +217,7 @@ declare const VOverlay: {
211
217
  width?: string | number | undefined;
212
218
  height?: string | number | undefined;
213
219
  theme?: string | undefined;
214
- target?: Element | (string & {}) | ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined;
220
+ target?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | "cursor" | [x: number, y: number] | undefined;
215
221
  offset?: string | number | number[] | undefined;
216
222
  contentClass?: any;
217
223
  opacity?: string | number | undefined;
@@ -219,7 +225,7 @@ declare const VOverlay: {
219
225
  maxWidth?: string | number | undefined;
220
226
  minHeight?: string | number | undefined;
221
227
  minWidth?: string | number | undefined;
222
- activator?: Element | (string & {}) | ComponentPublicInstance | "parent" | undefined;
228
+ activator?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | undefined;
223
229
  closeDelay?: string | number | undefined;
224
230
  openDelay?: string | number | undefined;
225
231
  openOnClick?: boolean | undefined;
@@ -234,7 +240,7 @@ declare const VOverlay: {
234
240
  activator?: ((arg: {
235
241
  isActive: boolean;
236
242
  props: Record<string, any>;
237
- targetRef: Ref<ComponentPublicInstance<any> | HTMLElement>;
243
+ targetRef: TemplateRef;
238
244
  }) => vue.VNodeChild) | undefined;
239
245
  } | ((arg: {
240
246
  isActive: Ref<boolean>;
@@ -246,7 +252,7 @@ declare const VOverlay: {
246
252
  activator?: false | ((arg: {
247
253
  isActive: boolean;
248
254
  props: Record<string, any>;
249
- targetRef: Ref<ComponentPublicInstance<any> | HTMLElement>;
255
+ targetRef: TemplateRef;
250
256
  }) => vue.VNodeChild) | undefined;
251
257
  } | undefined;
252
258
  } & {
@@ -256,7 +262,7 @@ declare const VOverlay: {
256
262
  "v-slot:activator"?: false | ((arg: {
257
263
  isActive: boolean;
258
264
  props: Record<string, any>;
259
- targetRef: Ref<ComponentPublicInstance<any> | HTMLElement>;
265
+ targetRef: TemplateRef;
260
266
  }) => vue.VNodeChild) | undefined;
261
267
  } & {
262
268
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
@@ -271,7 +277,7 @@ declare const VOverlay: {
271
277
  component?: vue.Component | undefined;
272
278
  });
273
279
  zIndex: string | number;
274
- modelValue: boolean | null;
280
+ modelValue: boolean;
275
281
  origin: Anchor | "auto" | "overlap";
276
282
  eager: boolean;
277
283
  location: Anchor;
@@ -299,7 +305,7 @@ declare const VOverlay: {
299
305
  activator: (arg: {
300
306
  isActive: boolean;
301
307
  props: Record<string, any>;
302
- targetRef: Ref<ComponentPublicInstance<any> | HTMLElement>;
308
+ targetRef: TemplateRef;
303
309
  }) => vue.VNode<vue.RendererNode, vue.RendererElement, {
304
310
  [key: string]: any;
305
311
  }>[];
@@ -318,7 +324,7 @@ declare const VOverlay: {
318
324
  component?: vue.Component | undefined;
319
325
  });
320
326
  zIndex: string | number;
321
- modelValue: boolean | null;
327
+ modelValue: boolean;
322
328
  origin: Anchor | "auto" | "overlap";
323
329
  eager: boolean;
324
330
  location: Anchor;
@@ -340,7 +346,7 @@ declare const VOverlay: {
340
346
  width?: string | number | undefined;
341
347
  height?: string | number | undefined;
342
348
  theme?: string | undefined;
343
- target?: Element | (string & {}) | ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined;
349
+ target?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | "cursor" | [x: number, y: number] | undefined;
344
350
  offset?: string | number | number[] | undefined;
345
351
  contentClass?: any;
346
352
  opacity?: string | number | undefined;
@@ -348,7 +354,7 @@ declare const VOverlay: {
348
354
  maxWidth?: string | number | undefined;
349
355
  minHeight?: string | number | undefined;
350
356
  minWidth?: string | number | undefined;
351
- activator?: Element | (string & {}) | ComponentPublicInstance | "parent" | undefined;
357
+ activator?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | undefined;
352
358
  closeDelay?: string | number | undefined;
353
359
  openDelay?: string | number | undefined;
354
360
  openOnClick?: boolean | undefined;
@@ -363,7 +369,7 @@ declare const VOverlay: {
363
369
  activator?: ((arg: {
364
370
  isActive: boolean;
365
371
  props: Record<string, any>;
366
- targetRef: Ref<ComponentPublicInstance<any> | HTMLElement>;
372
+ targetRef: TemplateRef;
367
373
  }) => vue.VNodeChild) | undefined;
368
374
  } | ((arg: {
369
375
  isActive: Ref<boolean>;
@@ -375,7 +381,7 @@ declare const VOverlay: {
375
381
  activator?: false | ((arg: {
376
382
  isActive: boolean;
377
383
  props: Record<string, any>;
378
- targetRef: Ref<ComponentPublicInstance<any> | HTMLElement>;
384
+ targetRef: TemplateRef;
379
385
  }) => vue.VNodeChild) | undefined;
380
386
  } | undefined;
381
387
  } & {
@@ -385,7 +391,7 @@ declare const VOverlay: {
385
391
  "v-slot:activator"?: false | ((arg: {
386
392
  isActive: boolean;
387
393
  props: Record<string, any>;
388
- targetRef: Ref<ComponentPublicInstance<any> | HTMLElement>;
394
+ targetRef: TemplateRef;
389
395
  }) => vue.VNodeChild) | undefined;
390
396
  } & {
391
397
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
@@ -409,7 +415,7 @@ declare const VOverlay: {
409
415
  component?: vue.Component | undefined;
410
416
  });
411
417
  zIndex: string | number;
412
- modelValue: boolean | null;
418
+ modelValue: boolean;
413
419
  origin: Anchor | "auto" | "overlap";
414
420
  eager: boolean;
415
421
  location: Anchor;
@@ -440,7 +446,7 @@ declare const VOverlay: {
440
446
  component?: vue.Component | undefined;
441
447
  });
442
448
  zIndex: string | number;
443
- modelValue: boolean | null;
449
+ modelValue: boolean;
444
450
  origin: Anchor | "auto" | "overlap";
445
451
  eager: boolean;
446
452
  location: Anchor;
@@ -462,7 +468,7 @@ declare const VOverlay: {
462
468
  width?: string | number | undefined;
463
469
  height?: string | number | undefined;
464
470
  theme?: string | undefined;
465
- target?: Element | (string & {}) | ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined;
471
+ target?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | "cursor" | [x: number, y: number] | undefined;
466
472
  offset?: string | number | number[] | undefined;
467
473
  contentClass?: any;
468
474
  opacity?: string | number | undefined;
@@ -470,7 +476,7 @@ declare const VOverlay: {
470
476
  maxWidth?: string | number | undefined;
471
477
  minHeight?: string | number | undefined;
472
478
  minWidth?: string | number | undefined;
473
- activator?: Element | (string & {}) | ComponentPublicInstance | "parent" | undefined;
479
+ activator?: Element | vue.ComponentPublicInstance | (string & {}) | "parent" | undefined;
474
480
  closeDelay?: string | number | undefined;
475
481
  openDelay?: string | number | undefined;
476
482
  openOnClick?: boolean | undefined;
@@ -485,7 +491,7 @@ declare const VOverlay: {
485
491
  activator?: ((arg: {
486
492
  isActive: boolean;
487
493
  props: Record<string, any>;
488
- targetRef: Ref<ComponentPublicInstance<any> | HTMLElement>;
494
+ targetRef: TemplateRef;
489
495
  }) => vue.VNodeChild) | undefined;
490
496
  } | ((arg: {
491
497
  isActive: Ref<boolean>;
@@ -497,7 +503,7 @@ declare const VOverlay: {
497
503
  activator?: false | ((arg: {
498
504
  isActive: boolean;
499
505
  props: Record<string, any>;
500
- targetRef: Ref<ComponentPublicInstance<any> | HTMLElement>;
506
+ targetRef: TemplateRef;
501
507
  }) => vue.VNodeChild) | undefined;
502
508
  } | undefined;
503
509
  } & {
@@ -507,7 +513,7 @@ declare const VOverlay: {
507
513
  "v-slot:activator"?: false | ((arg: {
508
514
  isActive: boolean;
509
515
  props: Record<string, any>;
510
- targetRef: Ref<ComponentPublicInstance<any> | HTMLElement>;
516
+ targetRef: TemplateRef;
511
517
  }) => vue.VNodeChild) | undefined;
512
518
  } & {
513
519
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
@@ -536,7 +542,7 @@ declare const VOverlay: {
536
542
  component?: vue.Component | undefined;
537
543
  });
538
544
  zIndex: string | number;
539
- modelValue: boolean | null;
545
+ modelValue: boolean;
540
546
  origin: Anchor | "auto" | "overlap";
541
547
  eager: boolean;
542
548
  location: Anchor;
@@ -564,7 +570,7 @@ declare const VOverlay: {
564
570
  activator: (arg: {
565
571
  isActive: boolean;
566
572
  props: Record<string, any>;
567
- targetRef: Ref<ComponentPublicInstance<any> | HTMLElement>;
573
+ targetRef: TemplateRef;
568
574
  }) => vue.VNode<vue.RendererNode, vue.RendererElement, {
569
575
  [key: string]: any;
570
576
  }>[];
@@ -612,8 +618,8 @@ declare const VOverlay: {
612
618
  };
613
619
  closeDelay: (StringConstructor | NumberConstructor)[];
614
620
  openDelay: (StringConstructor | NumberConstructor)[];
615
- target: PropType<Element | (string & {}) | ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined>;
616
- activator: PropType<Element | (string & {}) | ComponentPublicInstance | "parent" | undefined>;
621
+ target: PropType<Element | vue.ComponentPublicInstance | (string & {}) | "parent" | "cursor" | [x: number, y: number] | undefined>;
622
+ activator: PropType<Element | vue.ComponentPublicInstance | (string & {}) | "parent" | undefined>;
617
623
  activatorProps: {
618
624
  type: PropType<Record<string, any>>;
619
625
  default: () => {};
@@ -640,10 +646,7 @@ declare const VOverlay: {
640
646
  disabled: BooleanConstructor;
641
647
  opacity: (StringConstructor | NumberConstructor)[];
642
648
  noClickAnimation: BooleanConstructor;
643
- modelValue: {
644
- type: PropType<boolean | null>;
645
- default: null;
646
- };
649
+ modelValue: BooleanConstructor;
647
650
  persistent: BooleanConstructor;
648
651
  scrim: {
649
652
  type: (StringConstructor | BooleanConstructor)[];
@@ -698,8 +701,8 @@ declare const VOverlay: {
698
701
  };
699
702
  closeDelay: (StringConstructor | NumberConstructor)[];
700
703
  openDelay: (StringConstructor | NumberConstructor)[];
701
- target: PropType<Element | (string & {}) | ComponentPublicInstance | "parent" | "cursor" | [x: number, y: number] | undefined>;
702
- activator: PropType<Element | (string & {}) | ComponentPublicInstance | "parent" | undefined>;
704
+ target: PropType<Element | vue.ComponentPublicInstance | (string & {}) | "parent" | "cursor" | [x: number, y: number] | undefined>;
705
+ activator: PropType<Element | vue.ComponentPublicInstance | (string & {}) | "parent" | undefined>;
703
706
  activatorProps: {
704
707
  type: PropType<Record<string, any>>;
705
708
  default: () => {};
@@ -726,10 +729,7 @@ declare const VOverlay: {
726
729
  disabled: BooleanConstructor;
727
730
  opacity: (StringConstructor | NumberConstructor)[];
728
731
  noClickAnimation: BooleanConstructor;
729
- modelValue: {
730
- type: PropType<boolean | null>;
731
- default: null;
732
- };
732
+ modelValue: BooleanConstructor;
733
733
  persistent: BooleanConstructor;
734
734
  scrim: {
735
735
  type: (StringConstructor | BooleanConstructor)[];
@@ -2,7 +2,7 @@
2
2
  import { VMenuSymbol } from "../VMenu/shared.mjs"; // Composables
3
3
  import { makeDelayProps, useDelay } from "../../composables/delay.mjs"; // Utilities
4
4
  import { computed, effectScope, inject, mergeProps, nextTick, onScopeDispose, ref, watch, watchEffect } from 'vue';
5
- import { bindProps, getCurrentInstance, IN_BROWSER, matchesSelector, propsFactory, refElement, unbindProps } from "../../util/index.mjs"; // Types
5
+ import { bindProps, getCurrentInstance, IN_BROWSER, matchesSelector, propsFactory, templateRef, unbindProps } from "../../util/index.mjs"; // Types
6
6
  export const makeActivatorProps = propsFactory({
7
7
  target: [String, Object],
8
8
  activator: [String, Object],
@@ -155,17 +155,17 @@ export function useActivator(props, _ref) {
155
155
  }, {
156
156
  flush: 'post'
157
157
  });
158
- const activatorRef = ref();
158
+ const activatorRef = templateRef();
159
159
  watchEffect(() => {
160
160
  if (!activatorRef.value) return;
161
161
  nextTick(() => {
162
- activatorEl.value = refElement(activatorRef.value);
162
+ activatorEl.value = activatorRef.el;
163
163
  });
164
164
  });
165
- const targetRef = ref();
165
+ const targetRef = templateRef();
166
166
  const target = computed(() => {
167
167
  if (props.target === 'cursor' && cursorTarget.value) return cursorTarget.value;
168
- if (targetRef.value) return refElement(targetRef.value);
168
+ if (targetRef.value) return targetRef.el;
169
169
  return getTarget(props.target, vm) || activatorEl.value;
170
170
  });
171
171
  const targetEl = computed(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"useActivator.mjs","names":["VMenuSymbol","makeDelayProps","useDelay","computed","effectScope","inject","mergeProps","nextTick","onScopeDispose","ref","watch","watchEffect","bindProps","getCurrentInstance","IN_BROWSER","matchesSelector","propsFactory","refElement","unbindProps","makeActivatorProps","target","String","Object","activator","activatorProps","type","default","openOnClick","Boolean","undefined","openOnHover","openOnFocus","closeOnContentClick","useActivator","props","_ref","isActive","isTop","vm","activatorEl","isHovered","isFocused","firstEnter","value","runOpenDelay","runCloseDelay","cursorTarget","availableEvents","onClick","e","stopPropagation","currentTarget","clientX","clientY","onMouseenter","sourceCapabilities","firesTouchEvents","onMouseleave","onFocus","onBlur","activatorEvents","events","contentEvents","onFocusin","onFocusout","menu","closeParents","scrimEvents","val","setTimeout","flush","activatorRef","targetRef","getTarget","targetEl","Array","isArray","scope","run","_useActivator","stop","immediate","_ref2","oldVal","getActivator","unbindActivatorProps","bindActivatorProps","el","arguments","length","_props","selector","nodeType","Node","ELEMENT_NODE","proxy","$el","parentNode","hasAttribute","document","querySelector"],"sources":["../../../src/components/VOverlay/useActivator.tsx"],"sourcesContent":["// Components\nimport { VMenuSymbol } from '@/components/VMenu/shared'\n\n// Composables\nimport { makeDelayProps, useDelay } from '@/composables/delay'\n\n// Utilities\nimport {\n computed,\n effectScope,\n inject,\n mergeProps,\n nextTick,\n onScopeDispose,\n ref,\n watch,\n watchEffect,\n} from 'vue'\nimport {\n bindProps,\n getCurrentInstance,\n IN_BROWSER,\n matchesSelector,\n propsFactory,\n refElement,\n unbindProps,\n} from '@/util'\n\n// Types\nimport type {\n ComponentInternalInstance,\n ComponentPublicInstance,\n EffectScope,\n PropType,\n Ref,\n} from 'vue'\nimport type { DelayProps } from '@/composables/delay'\n\ninterface ActivatorProps extends DelayProps {\n target: 'parent' | 'cursor' | (string & {}) | Element | ComponentPublicInstance | [x: number, y: number] | undefined\n activator: 'parent' | (string & {}) | Element | ComponentPublicInstance | undefined\n activatorProps: Record<string, any>\n\n openOnClick: boolean | undefined\n openOnHover: boolean\n openOnFocus: boolean | undefined\n\n closeOnContentClick: boolean\n}\n\nexport const makeActivatorProps = propsFactory({\n target: [String, Object] as PropType<ActivatorProps['target']>,\n activator: [String, Object] as PropType<ActivatorProps['activator']>,\n activatorProps: {\n type: Object as PropType<ActivatorProps['activatorProps']>,\n default: () => ({}),\n },\n\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n openOnHover: Boolean,\n openOnFocus: {\n type: Boolean,\n default: undefined,\n },\n\n closeOnContentClick: Boolean,\n\n ...makeDelayProps(),\n}, 'VOverlay-activator')\n\nexport function useActivator (\n props: ActivatorProps,\n { isActive, isTop }: { isActive: Ref<boolean>, isTop: Ref<boolean> }\n) {\n const vm = getCurrentInstance('useActivator')\n const activatorEl = ref<HTMLElement>()\n\n let isHovered = false\n let isFocused = false\n let firstEnter = true\n\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\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => {\n if (\n value === (\n (props.openOnHover && isHovered) ||\n (openOnFocus.value && isFocused)\n ) && !(props.openOnHover && isActive.value && !isTop.value)\n ) {\n if (isActive.value !== value) {\n firstEnter = true\n }\n isActive.value = value\n }\n })\n\n const cursorTarget = ref<[x: number, y: number]>()\n const availableEvents = {\n onClick: (e: MouseEvent) => {\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n if (!isActive.value) {\n cursorTarget.value = [e.clientX, e.clientY]\n }\n isActive.value = !isActive.value\n },\n onMouseenter: (e: MouseEvent) => {\n if (e.sourceCapabilities?.firesTouchEvents) return\n\n isHovered = true\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n runOpenDelay()\n },\n onMouseleave: (e: MouseEvent) => {\n isHovered = false\n runCloseDelay()\n },\n onFocus: (e: FocusEvent) => {\n if (matchesSelector(e.target as HTMLElement, ':focus-visible') === false) return\n\n isFocused = true\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n\n runOpenDelay()\n },\n onBlur: (e: FocusEvent) => {\n isFocused = false\n e.stopPropagation()\n\n runCloseDelay()\n },\n }\n\n const activatorEvents = computed(() => {\n const events: Partial<typeof availableEvents> = {}\n\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\n return events\n })\n\n const contentEvents = computed(() => {\n const events: Record<string, EventListener> = {}\n\n if (props.openOnHover) {\n events.onMouseenter = () => {\n isHovered = true\n runOpenDelay()\n }\n events.onMouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n if (openOnFocus.value) {\n events.onFocusin = () => {\n isFocused = true\n runOpenDelay()\n }\n events.onFocusout = () => {\n isFocused = false\n runCloseDelay()\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\n return events\n })\n\n const scrimEvents = computed(() => {\n const events: Record<string, EventListener> = {}\n\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\n return events\n })\n\n watch(isTop, val => {\n if (val && (\n (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused)) ||\n (openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered))\n )) {\n isActive.value = false\n }\n })\n\n watch(isActive, val => {\n if (!val) {\n setTimeout(() => {\n cursorTarget.value = undefined\n })\n }\n }, { flush: 'post' })\n\n const activatorRef = ref<HTMLElement>()\n watchEffect(() => {\n if (!activatorRef.value) return\n\n nextTick(() => {\n activatorEl.value = refElement(activatorRef.value)\n })\n })\n\n const targetRef = ref<ComponentPublicInstance<any> | HTMLElement>()\n const target = computed(() => {\n if (props.target === 'cursor' && cursorTarget.value) return cursorTarget.value\n if (targetRef.value) return refElement(targetRef.value)\n return getTarget(props.target, vm) || activatorEl.value\n })\n const targetEl = computed(() => {\n return Array.isArray(target.value)\n ? undefined\n : target.value\n })\n\n let scope: EffectScope\n watch(() => !!props.activator, val => {\n if (val && IN_BROWSER) {\n scope = effectScope()\n scope.run(() => {\n _useActivator(props, vm, { activatorEl, activatorEvents })\n })\n } else if (scope) {\n scope.stop()\n }\n }, { flush: 'post', immediate: true })\n\n onScopeDispose(() => {\n scope?.stop()\n })\n\n return { activatorEl, activatorRef, target, targetEl, targetRef, activatorEvents, contentEvents, scrimEvents }\n}\n\nfunction _useActivator (\n props: ActivatorProps,\n vm: ComponentInternalInstance,\n { activatorEl, activatorEvents }: Pick<ReturnType<typeof useActivator>, 'activatorEl' | 'activatorEvents'>\n) {\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 }, { immediate: true })\n\n watch(() => props.activatorProps, () => {\n bindActivatorProps()\n })\n\n onScopeDispose(() => {\n unbindActivatorProps()\n })\n\n function bindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n bindProps(el, mergeProps(activatorEvents.value, _props))\n }\n\n function unbindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n unbindProps(el, mergeProps(activatorEvents.value, _props))\n }\n\n function getActivator (selector = props.activator): HTMLElement | undefined {\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\n return activatorEl.value\n }\n}\n\nfunction getTarget<T extends 'parent' | string | Element | ComponentPublicInstance | [x: number, y: number] | undefined> (\n selector: T,\n vm: ComponentInternalInstance\n): HTMLElement | undefined | (T extends any[] ? [x: number, y: number] : never) {\n if (!selector) return\n\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\n return target\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useActivator.mjs","names":["VMenuSymbol","makeDelayProps","useDelay","computed","effectScope","inject","mergeProps","nextTick","onScopeDispose","ref","watch","watchEffect","bindProps","getCurrentInstance","IN_BROWSER","matchesSelector","propsFactory","templateRef","unbindProps","makeActivatorProps","target","String","Object","activator","activatorProps","type","default","openOnClick","Boolean","undefined","openOnHover","openOnFocus","closeOnContentClick","useActivator","props","_ref","isActive","isTop","vm","activatorEl","isHovered","isFocused","firstEnter","value","runOpenDelay","runCloseDelay","cursorTarget","availableEvents","onClick","e","stopPropagation","currentTarget","clientX","clientY","onMouseenter","sourceCapabilities","firesTouchEvents","onMouseleave","onFocus","onBlur","activatorEvents","events","contentEvents","onFocusin","onFocusout","menu","closeParents","scrimEvents","val","setTimeout","flush","activatorRef","el","targetRef","getTarget","targetEl","Array","isArray","scope","run","_useActivator","stop","immediate","_ref2","oldVal","getActivator","unbindActivatorProps","bindActivatorProps","arguments","length","_props","selector","nodeType","Node","ELEMENT_NODE","proxy","$el","parentNode","hasAttribute","document","querySelector"],"sources":["../../../src/components/VOverlay/useActivator.tsx"],"sourcesContent":["// Components\nimport { VMenuSymbol } from '@/components/VMenu/shared'\n\n// Composables\nimport { makeDelayProps, useDelay } from '@/composables/delay'\n\n// Utilities\nimport {\n computed,\n effectScope,\n inject,\n mergeProps,\n nextTick,\n onScopeDispose,\n ref,\n watch,\n watchEffect,\n} from 'vue'\nimport {\n bindProps,\n getCurrentInstance,\n IN_BROWSER,\n matchesSelector,\n propsFactory,\n templateRef,\n unbindProps,\n} from '@/util'\n\n// Types\nimport type {\n ComponentInternalInstance,\n ComponentPublicInstance,\n EffectScope,\n PropType,\n Ref,\n} from 'vue'\nimport type { DelayProps } from '@/composables/delay'\n\ninterface ActivatorProps extends DelayProps {\n target: 'parent' | 'cursor' | (string & {}) | Element | ComponentPublicInstance | [x: number, y: number] | undefined\n activator: 'parent' | (string & {}) | Element | ComponentPublicInstance | undefined\n activatorProps: Record<string, any>\n\n openOnClick: boolean | undefined\n openOnHover: boolean\n openOnFocus: boolean | undefined\n\n closeOnContentClick: boolean\n}\n\nexport const makeActivatorProps = propsFactory({\n target: [String, Object] as PropType<ActivatorProps['target']>,\n activator: [String, Object] as PropType<ActivatorProps['activator']>,\n activatorProps: {\n type: Object as PropType<ActivatorProps['activatorProps']>,\n default: () => ({}),\n },\n\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n openOnHover: Boolean,\n openOnFocus: {\n type: Boolean,\n default: undefined,\n },\n\n closeOnContentClick: Boolean,\n\n ...makeDelayProps(),\n}, 'VOverlay-activator')\n\nexport function useActivator (\n props: ActivatorProps,\n { isActive, isTop }: { isActive: Ref<boolean>, isTop: Ref<boolean> }\n) {\n const vm = getCurrentInstance('useActivator')\n const activatorEl = ref<HTMLElement>()\n\n let isHovered = false\n let isFocused = false\n let firstEnter = true\n\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\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => {\n if (\n value === (\n (props.openOnHover && isHovered) ||\n (openOnFocus.value && isFocused)\n ) && !(props.openOnHover && isActive.value && !isTop.value)\n ) {\n if (isActive.value !== value) {\n firstEnter = true\n }\n isActive.value = value\n }\n })\n\n const cursorTarget = ref<[x: number, y: number]>()\n const availableEvents = {\n onClick: (e: MouseEvent) => {\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n if (!isActive.value) {\n cursorTarget.value = [e.clientX, e.clientY]\n }\n isActive.value = !isActive.value\n },\n onMouseenter: (e: MouseEvent) => {\n if (e.sourceCapabilities?.firesTouchEvents) return\n\n isHovered = true\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n runOpenDelay()\n },\n onMouseleave: (e: MouseEvent) => {\n isHovered = false\n runCloseDelay()\n },\n onFocus: (e: FocusEvent) => {\n if (matchesSelector(e.target as HTMLElement, ':focus-visible') === false) return\n\n isFocused = true\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n\n runOpenDelay()\n },\n onBlur: (e: FocusEvent) => {\n isFocused = false\n e.stopPropagation()\n\n runCloseDelay()\n },\n }\n\n const activatorEvents = computed(() => {\n const events: Partial<typeof availableEvents> = {}\n\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\n return events\n })\n\n const contentEvents = computed(() => {\n const events: Record<string, EventListener> = {}\n\n if (props.openOnHover) {\n events.onMouseenter = () => {\n isHovered = true\n runOpenDelay()\n }\n events.onMouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n if (openOnFocus.value) {\n events.onFocusin = () => {\n isFocused = true\n runOpenDelay()\n }\n events.onFocusout = () => {\n isFocused = false\n runCloseDelay()\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\n return events\n })\n\n const scrimEvents = computed(() => {\n const events: Record<string, EventListener> = {}\n\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\n return events\n })\n\n watch(isTop, val => {\n if (val && (\n (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused)) ||\n (openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered))\n )) {\n isActive.value = false\n }\n })\n\n watch(isActive, val => {\n if (!val) {\n setTimeout(() => {\n cursorTarget.value = undefined\n })\n }\n }, { flush: 'post' })\n\n const activatorRef = templateRef()\n watchEffect(() => {\n if (!activatorRef.value) return\n\n nextTick(() => {\n activatorEl.value = activatorRef.el\n })\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)\n ? undefined\n : target.value\n })\n\n let scope: EffectScope\n watch(() => !!props.activator, val => {\n if (val && IN_BROWSER) {\n scope = effectScope()\n scope.run(() => {\n _useActivator(props, vm, { activatorEl, activatorEvents })\n })\n } else if (scope) {\n scope.stop()\n }\n }, { flush: 'post', immediate: true })\n\n onScopeDispose(() => {\n scope?.stop()\n })\n\n return { activatorEl, activatorRef, target, targetEl, targetRef, activatorEvents, contentEvents, scrimEvents }\n}\n\nfunction _useActivator (\n props: ActivatorProps,\n vm: ComponentInternalInstance,\n { activatorEl, activatorEvents }: Pick<ReturnType<typeof useActivator>, 'activatorEl' | 'activatorEvents'>\n) {\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 }, { immediate: true })\n\n watch(() => props.activatorProps, () => {\n bindActivatorProps()\n })\n\n onScopeDispose(() => {\n unbindActivatorProps()\n })\n\n function bindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n bindProps(el, mergeProps(activatorEvents.value, _props))\n }\n\n function unbindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n unbindProps(el, mergeProps(activatorEvents.value, _props))\n }\n\n function getActivator (selector = props.activator): HTMLElement | undefined {\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\n return activatorEl.value\n }\n}\n\nfunction getTarget<T extends 'parent' | string | Element | ComponentPublicInstance | [x: number, y: number] | undefined> (\n selector: T,\n vm: ComponentInternalInstance\n): HTMLElement | undefined | (T extends any[] ? [x: number, y: number] : never) {\n if (!selector) return\n\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\n return target\n}\n"],"mappings":"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","ignoreList":[]}
@@ -19,7 +19,7 @@ export function useAspectStyles(props) {
19
19
  }
20
20
  export const makeVResponsiveProps = propsFactory({
21
21
  aspectRatio: [String, Number],
22
- contentClass: String,
22
+ contentClass: null,
23
23
  inline: Boolean,
24
24
  ...makeComponentProps(),
25
25
  ...makeDimensionProps()
@@ -1 +1 @@
1
- {"version":3,"file":"VResponsive.mjs","names":["makeComponentProps","makeDimensionProps","useDimension","computed","genericComponent","propsFactory","useRender","useAspectStyles","props","aspectStyles","ratio","Number","aspectRatio","paddingBottom","String","undefined","makeVResponsiveProps","contentClass","inline","Boolean","VResponsive","name","setup","_ref","slots","dimensionStyles","_createVNode","class","value","style","additional","default"],"sources":["../../../src/components/VResponsive/VResponsive.tsx"],"sourcesContent":["// Styles\nimport './VResponsive.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport type VResponsiveSlots = {\n default: never\n additional: never\n}\n\nexport function useAspectStyles (props: { aspectRatio?: string | number }) {\n return {\n aspectStyles: computed(() => {\n const ratio = Number(props.aspectRatio)\n\n return ratio\n ? { paddingBottom: String(1 / ratio * 100) + '%' }\n : undefined\n }),\n }\n}\n\nexport const makeVResponsiveProps = propsFactory({\n aspectRatio: [String, Number],\n contentClass: String,\n inline: Boolean,\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n}, 'VResponsive')\n\nexport const VResponsive = genericComponent<VResponsiveSlots>()({\n name: 'VResponsive',\n\n props: makeVResponsiveProps(),\n\n setup (props, { slots }) {\n const { aspectStyles } = useAspectStyles(props)\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => (\n <div\n class={[\n 'v-responsive',\n { 'v-responsive--inline': props.inline },\n props.class,\n ]}\n style={[\n dimensionStyles.value,\n props.style,\n ]}\n >\n <div class=\"v-responsive__sizer\" style={ aspectStyles.value } />\n\n { slots.additional?.() }\n\n { slots.default && (\n <div class={['v-responsive__content', props.contentClass]}>{ slots.default() }</div>\n )}\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VResponsive = InstanceType<typeof VResponsive>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,kBAAkB,EAAEC,YAAY,4CAEzC;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAOlD,OAAO,SAASC,eAAeA,CAAEC,KAAwC,EAAE;EACzE,OAAO;IACLC,YAAY,EAAEN,QAAQ,CAAC,MAAM;MAC3B,MAAMO,KAAK,GAAGC,MAAM,CAACH,KAAK,CAACI,WAAW,CAAC;MAEvC,OAAOF,KAAK,GACR;QAAEG,aAAa,EAAEC,MAAM,CAAC,CAAC,GAAGJ,KAAK,GAAG,GAAG,CAAC,GAAG;MAAI,CAAC,GAChDK,SAAS;IACf,CAAC;EACH,CAAC;AACH;AAEA,OAAO,MAAMC,oBAAoB,GAAGX,YAAY,CAAC;EAC/CO,WAAW,EAAE,CAACE,MAAM,EAAEH,MAAM,CAAC;EAC7BM,YAAY,EAAEH,MAAM;EACpBI,MAAM,EAAEC,OAAO;EAEf,GAAGnB,kBAAkB,CAAC,CAAC;EACvB,GAAGC,kBAAkB,CAAC;AACxB,CAAC,EAAE,aAAa,CAAC;AAEjB,OAAO,MAAMmB,WAAW,GAAGhB,gBAAgB,CAAmB,CAAC,CAAC;EAC9DiB,IAAI,EAAE,aAAa;EAEnBb,KAAK,EAAEQ,oBAAoB,CAAC,CAAC;EAE7BM,KAAKA,CAAEd,KAAK,EAAAe,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEd;IAAa,CAAC,GAAGF,eAAe,CAACC,KAAK,CAAC;IAC/C,MAAM;MAAEiB;IAAgB,CAAC,GAAGvB,YAAY,CAACM,KAAK,CAAC;IAE/CF,SAAS,CAAC,MAAAoB,YAAA;MAAA,SAEC,CACL,cAAc,EACd;QAAE,sBAAsB,EAAElB,KAAK,CAACU;MAAO,CAAC,EACxCV,KAAK,CAACmB,KAAK,CACZ;MAAA,SACM,CACLF,eAAe,CAACG,KAAK,EACrBpB,KAAK,CAACqB,KAAK;IACZ,IAAAH,YAAA;MAAA;MAAA,SAEwCjB,YAAY,CAACmB;IAAK,UAEzDJ,KAAK,CAACM,UAAU,GAAG,CAAC,EAEpBN,KAAK,CAACO,OAAO,IAAAL,YAAA;MAAA,SACD,CAAC,uBAAuB,EAAElB,KAAK,CAACS,YAAY;IAAC,IAAIO,KAAK,CAACO,OAAO,CAAC,CAAC,EAC7E,EAEJ,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VResponsive.mjs","names":["makeComponentProps","makeDimensionProps","useDimension","computed","genericComponent","propsFactory","useRender","useAspectStyles","props","aspectStyles","ratio","Number","aspectRatio","paddingBottom","String","undefined","makeVResponsiveProps","contentClass","inline","Boolean","VResponsive","name","setup","_ref","slots","dimensionStyles","_createVNode","class","value","style","additional","default"],"sources":["../../../src/components/VResponsive/VResponsive.tsx"],"sourcesContent":["// Styles\nimport './VResponsive.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport type VResponsiveSlots = {\n default: never\n additional: never\n}\n\nexport function useAspectStyles (props: { aspectRatio?: string | number }) {\n return {\n aspectStyles: computed(() => {\n const ratio = Number(props.aspectRatio)\n\n return ratio\n ? { paddingBottom: String(1 / ratio * 100) + '%' }\n : undefined\n }),\n }\n}\n\nexport const makeVResponsiveProps = propsFactory({\n aspectRatio: [String, Number],\n contentClass: null,\n inline: Boolean,\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n}, 'VResponsive')\n\nexport const VResponsive = genericComponent<VResponsiveSlots>()({\n name: 'VResponsive',\n\n props: makeVResponsiveProps(),\n\n setup (props, { slots }) {\n const { aspectStyles } = useAspectStyles(props)\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => (\n <div\n class={[\n 'v-responsive',\n { 'v-responsive--inline': props.inline },\n props.class,\n ]}\n style={[\n dimensionStyles.value,\n props.style,\n ]}\n >\n <div class=\"v-responsive__sizer\" style={ aspectStyles.value } />\n\n { slots.additional?.() }\n\n { slots.default && (\n <div class={['v-responsive__content', props.contentClass]}>{ slots.default() }</div>\n )}\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VResponsive = InstanceType<typeof VResponsive>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,kBAAkB,EAAEC,YAAY,4CAEzC;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAOlD,OAAO,SAASC,eAAeA,CAAEC,KAAwC,EAAE;EACzE,OAAO;IACLC,YAAY,EAAEN,QAAQ,CAAC,MAAM;MAC3B,MAAMO,KAAK,GAAGC,MAAM,CAACH,KAAK,CAACI,WAAW,CAAC;MAEvC,OAAOF,KAAK,GACR;QAAEG,aAAa,EAAEC,MAAM,CAAC,CAAC,GAAGJ,KAAK,GAAG,GAAG,CAAC,GAAG;MAAI,CAAC,GAChDK,SAAS;IACf,CAAC;EACH,CAAC;AACH;AAEA,OAAO,MAAMC,oBAAoB,GAAGX,YAAY,CAAC;EAC/CO,WAAW,EAAE,CAACE,MAAM,EAAEH,MAAM,CAAC;EAC7BM,YAAY,EAAE,IAAI;EAClBC,MAAM,EAAEC,OAAO;EAEf,GAAGnB,kBAAkB,CAAC,CAAC;EACvB,GAAGC,kBAAkB,CAAC;AACxB,CAAC,EAAE,aAAa,CAAC;AAEjB,OAAO,MAAMmB,WAAW,GAAGhB,gBAAgB,CAAmB,CAAC,CAAC;EAC9DiB,IAAI,EAAE,aAAa;EAEnBb,KAAK,EAAEQ,oBAAoB,CAAC,CAAC;EAE7BM,KAAKA,CAAEd,KAAK,EAAAe,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEd;IAAa,CAAC,GAAGF,eAAe,CAACC,KAAK,CAAC;IAC/C,MAAM;MAAEiB;IAAgB,CAAC,GAAGvB,YAAY,CAACM,KAAK,CAAC;IAE/CF,SAAS,CAAC,MAAAoB,YAAA;MAAA,SAEC,CACL,cAAc,EACd;QAAE,sBAAsB,EAAElB,KAAK,CAACU;MAAO,CAAC,EACxCV,KAAK,CAACmB,KAAK,CACZ;MAAA,SACM,CACLF,eAAe,CAACG,KAAK,EACrBpB,KAAK,CAACqB,KAAK;IACZ,IAAAH,YAAA;MAAA;MAAA,SAEwCjB,YAAY,CAACmB;IAAK,UAEzDJ,KAAK,CAACM,UAAU,GAAG,CAAC,EAEpBN,KAAK,CAACO,OAAO,IAAAL,YAAA;MAAA,SACD,CAAC,uBAAuB,EAAElB,KAAK,CAACS,YAAY;IAAC,IAAIO,KAAK,CAACO,OAAO,CAAC,CAAC,EAC7E,EAEJ,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}