@vuetify/v0 0.0.18 → 0.0.21
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/README.md +128 -47
- package/dist/browser/index.js +1645 -1128
- package/dist/components/index.d.mts +3 -3
- package/dist/components/index.mjs +4 -4
- package/dist/{components-DRdenC8b.mjs → components-BomyjmT3.mjs} +24 -3
- package/dist/composables/index.d.mts +4 -4
- package/dist/composables/index.mjs +5 -5
- package/dist/{composables-DG1MHp-R.mjs → composables-CbAPZabd.mjs} +276 -29
- package/dist/constants/index.mjs +1 -1
- package/dist/{globals-BGVqrlN7.mjs → globals-C3JrEDXZ.mjs} +2 -1
- package/dist/index-4jSy8KIt.d.mts +73 -0
- package/dist/{index-oQuVnpOj.d.mts → index-B0QJdwz9.d.mts} +254 -208
- package/dist/index-CxeZr8jO.d.mts +270 -0
- package/dist/{index-DaX9-kmY.d.mts → index-MLb3LH9a.d.mts} +9 -7
- package/dist/{index-CH7DpIK8.d.mts → index-OU0IRbIS.d.mts} +127 -10
- package/dist/index.d.mts +6 -6
- package/dist/index.mjs +6 -6
- package/dist/types/index.d.mts +1 -1
- package/dist/{useStep-DC_JvZpy.mjs → useStep-CfgBbrJB.mjs} +1088 -1070
- package/dist/utilities/index.d.mts +2 -2
- package/dist/utilities/index.mjs +1 -1
- package/dist/utilities-CjDz-Xvn.mjs +369 -0
- package/package.json +3 -21
- package/dist/index-B-jVvwsm.d.mts +0 -71
- package/dist/index-C5LQZd3v.d.mts +0 -11
- package/dist/utilities-JxCe-nF2.mjs +0 -139
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../index-
|
|
2
|
-
import { $ as PaginationEllipsisSlotProps, $t as _default$1, A as PopoverContentProps, At as ExpansionPanelContentSlotProps, B as providePopoverContext, Bt as ExpansionPanelItemSlotProps, C as SelectionRootProps, Ct as GroupRootProps, D as useSelectionRoot, Dt as useGroupRoot, E as provideSelectionRoot, Et as provideGroupRoot, F as _default$19, Ft as ExpansionPanelHeaderProps, G as _default$18, Gt as ExpansionPanelRootProps, H as Pagination, Ht as provideExpansionPanelItem, I as PopoverContext, It as ExpansionPanelHeaderSlotProps, J as _default$14, Jt as provideExpansionPanelSelection, K as PaginationLastProps, Kt as ExpansionPanelRootSlotProps, L as PopoverRootProps, Lt as _default$6, M as _default$20, Mt as ExpansionPanelActivatorProps, N as PopoverAnchorProps, Nt as ExpansionPanelActivatorSlotProps, O as Popover, Ot as ExpansionPanel, P as PopoverAnchorSlotProps, Pt as _default$4, Q as PaginationEllipsisProps, Qt as AvatarFallbackSlotProps, R as PopoverRootSlotProps, Rt as ExpansionPanelItemContext, S as _default$22, St as _default$9, T as _default$23, Tt as _default$10, U as PaginationStatusProps, Ut as useExpansionPanelItem, V as usePopoverContext, Vt as _default$7, W as PaginationStatusSlotProps, Wt as ExpansionPanelOptionsContext, X as PaginationNextSlotProps, Xt as Avatar, Y as PaginationNextProps, Yt as useExpansionPanelRoot, Z as _default$15, Zt as AvatarFallbackProps, _ as provideSingleRoot, _t as usePaginationItems, a as StepRootProps, an as AvatarRootProps, at as PaginationFirstSlotProps, b as SelectionItemProps, bt as GroupItemProps, c as provideStepRoot, cn as provideAvatarContext, ct as PaginationItemSlotProps, d as SingleItemProps, dn as AtomProps, dt as PaginationRootSlotProps, en as AvatarImageEmits, et as _default$11, f as SingleItemSlotProps, fn as AtomSlots, ft as _default$17, g as _default$25, gt as usePaginationControls, h as SingleRootSlotProps, ht as providePaginationRoot, i as _default$26, in as AvatarContext, it as PaginationFirstProps, j as PopoverContentSlotProps, jt as _default$5, k as PopoverContentEmits, kt as ExpansionPanelContentProps, l as useStepRoot, ln as useAvatarRoot, lt as _default$13, m as SingleRootProps, mt as providePaginationItems, n as StepItemProps, nn as AvatarImageSlotProps, nt as PaginationPrevSlotProps, o as StepRootSlotProps, on as AvatarTicket, ot as _default$12, p as _default$24, pn as _default, pt as providePaginationControls, q as PaginationLastSlotProps, qt as _default$8, r as StepItemSlotProps, rn as _default$2, rt as _default$16, s as _default$27, sn as _default$3, st as PaginationItemProps, t as Step, tn as AvatarImageProps, tt as PaginationPrevProps, u as Single, un as AtomExpose, ut as PaginationRootProps, v as useSingleRoot, vt as usePaginationRoot, w as SelectionRootSlotProps, wt as GroupRootSlotProps, x as SelectionItemSlotProps, xt as GroupItemSlotProps, y as Selection, yt as Group, z as _default$21, zt as ExpansionPanelItemProps } from "../index-
|
|
3
|
-
import "../index-
|
|
1
|
+
import "../index-4jSy8KIt.mjs";
|
|
2
|
+
import { $ as PaginationEllipsisSlotProps, $t as _default$1, A as PopoverContentProps, At as ExpansionPanelContentSlotProps, B as providePopoverContext, Bt as ExpansionPanelItemSlotProps, C as SelectionRootProps, Ct as GroupRootProps, D as useSelectionRoot, Dt as useGroupRoot, E as provideSelectionRoot, Et as provideGroupRoot, F as _default$19, Ft as ExpansionPanelHeaderProps, G as _default$18, Gt as ExpansionPanelRootProps, H as Pagination, Ht as provideExpansionPanelItem, I as PopoverContext, It as ExpansionPanelHeaderSlotProps, J as _default$14, Jt as provideExpansionPanelSelection, K as PaginationLastProps, Kt as ExpansionPanelRootSlotProps, L as PopoverRootProps, Lt as _default$6, M as _default$20, Mt as ExpansionPanelActivatorProps, N as PopoverAnchorProps, Nt as ExpansionPanelActivatorSlotProps, O as Popover, Ot as ExpansionPanel, P as PopoverAnchorSlotProps, Pt as _default$4, Q as PaginationEllipsisProps, Qt as AvatarFallbackSlotProps, R as PopoverRootSlotProps, Rt as ExpansionPanelItemContext, S as _default$22, St as _default$9, T as _default$23, Tt as _default$10, U as PaginationStatusProps, Ut as useExpansionPanelItem, V as usePopoverContext, Vt as _default$7, W as PaginationStatusSlotProps, Wt as ExpansionPanelOptionsContext, X as PaginationNextSlotProps, Xt as Avatar, Y as PaginationNextProps, Yt as useExpansionPanelRoot, Z as _default$15, Zt as AvatarFallbackProps, _ as provideSingleRoot, _t as usePaginationItems, a as StepRootProps, an as AvatarRootProps, at as PaginationFirstSlotProps, b as SelectionItemProps, bt as GroupItemProps, c as provideStepRoot, cn as provideAvatarContext, ct as PaginationItemSlotProps, d as SingleItemProps, dn as AtomProps, dt as PaginationRootSlotProps, en as AvatarImageEmits, et as _default$11, f as SingleItemSlotProps, fn as AtomSlots, ft as _default$17, g as _default$25, gt as usePaginationControls, h as SingleRootSlotProps, ht as providePaginationRoot, i as _default$26, in as AvatarContext, it as PaginationFirstProps, j as PopoverContentSlotProps, jt as _default$5, k as PopoverContentEmits, kt as ExpansionPanelContentProps, l as useStepRoot, ln as useAvatarRoot, lt as _default$13, m as SingleRootProps, mt as providePaginationItems, n as StepItemProps, nn as AvatarImageSlotProps, nt as PaginationPrevSlotProps, o as StepRootSlotProps, on as AvatarTicket, ot as _default$12, p as _default$24, pn as _default, pt as providePaginationControls, q as PaginationLastSlotProps, qt as _default$8, r as StepItemSlotProps, rn as _default$2, rt as _default$16, s as _default$27, sn as _default$3, st as PaginationItemProps, t as Step, tn as AvatarImageProps, tt as PaginationPrevProps, u as Single, un as AtomExpose, ut as PaginationRootProps, v as useSingleRoot, vt as usePaginationRoot, w as SelectionRootSlotProps, wt as GroupRootSlotProps, x as SelectionItemSlotProps, xt as GroupItemSlotProps, y as Selection, yt as Group, z as _default$21, zt as ExpansionPanelItemProps } from "../index-B0QJdwz9.mjs";
|
|
3
|
+
import "../index-MLb3LH9a.mjs";
|
|
4
4
|
export { _default as Atom, AtomExpose, AtomProps, AtomSlots, Avatar, AvatarContext, _default$1 as AvatarFallback, AvatarFallbackProps, AvatarFallbackSlotProps, _default$2 as AvatarImage, AvatarImageEmits, AvatarImageProps, AvatarImageSlotProps, _default$3 as AvatarRoot, AvatarRootProps, AvatarTicket, ExpansionPanel, _default$4 as ExpansionPanelActivator, ExpansionPanelActivatorProps, ExpansionPanelActivatorSlotProps, _default$5 as ExpansionPanelContent, ExpansionPanelContentProps, ExpansionPanelContentSlotProps, _default$6 as ExpansionPanelHeader, ExpansionPanelHeaderProps, ExpansionPanelHeaderSlotProps, _default$7 as ExpansionPanelItem, ExpansionPanelItemContext, ExpansionPanelItemProps, ExpansionPanelItemSlotProps, ExpansionPanelOptionsContext, _default$8 as ExpansionPanelRoot, ExpansionPanelRootProps, ExpansionPanelRootSlotProps, Group, _default$9 as GroupItem, GroupItemProps, GroupItemSlotProps, _default$10 as GroupRoot, GroupRootProps, GroupRootSlotProps, Pagination, _default$11 as PaginationEllipsis, PaginationEllipsisProps, PaginationEllipsisSlotProps, _default$12 as PaginationFirst, PaginationFirstProps, PaginationFirstSlotProps, _default$13 as PaginationItem, PaginationItemProps, PaginationItemSlotProps, _default$14 as PaginationLast, PaginationLastProps, PaginationLastSlotProps, _default$15 as PaginationNext, PaginationNextProps, PaginationNextSlotProps, _default$16 as PaginationPrev, PaginationPrevProps, PaginationPrevSlotProps, _default$17 as PaginationRoot, PaginationRootProps, PaginationRootSlotProps, _default$18 as PaginationStatus, PaginationStatusProps, PaginationStatusSlotProps, Popover, _default$19 as PopoverAnchor, PopoverAnchorProps, PopoverAnchorSlotProps, _default$20 as PopoverContent, PopoverContentEmits, PopoverContentProps, PopoverContentSlotProps, PopoverContext, _default$21 as PopoverRoot, PopoverRootProps, PopoverRootSlotProps, Selection, _default$22 as SelectionItem, SelectionItemProps, SelectionItemSlotProps, _default$23 as SelectionRoot, SelectionRootProps, SelectionRootSlotProps, Single, _default$24 as SingleItem, SingleItemProps, SingleItemSlotProps, _default$25 as SingleRoot, SingleRootProps, SingleRootSlotProps, Step, _default$26 as StepItem, StepItemProps, StepItemSlotProps, _default$27 as StepRoot, StepRootProps, StepRootSlotProps, provideAvatarContext, provideExpansionPanelItem, provideExpansionPanelSelection, provideGroupRoot, providePaginationControls, providePaginationItems, providePaginationRoot, providePopoverContext, provideSelectionRoot, provideSingleRoot, provideStepRoot, useAvatarRoot, useExpansionPanelItem, useExpansionPanelRoot, useGroupRoot, usePaginationControls, usePaginationItems, usePaginationRoot, usePopoverContext, useSelectionRoot, useSingleRoot, useStepRoot };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../htmlElements-CXObxj0V.mjs";
|
|
2
|
-
import "../utilities-
|
|
3
|
-
import { $ as AvatarImage_default, A as PaginationRoot_default, B as provideGroupRoot, C as PaginationStatus_default, D as PaginationItem_default, E as PaginationLast_default, F as usePaginationItems, G as ExpansionPanelActivator_default, H as ExpansionPanel, I as usePaginationRoot, J as useExpansionPanelItem, K as ExpansionPanelItem_default, L as Group, M as providePaginationItems, N as providePaginationRoot, O as PaginationFirst_default, P as usePaginationControls, Q as Avatar, R as GroupItem_default, S as Pagination, T as PaginationNext_default, U as ExpansionPanelHeader_default, V as useGroupRoot, W as ExpansionPanelContent_default, X as provideExpansionPanelSelection, Y as ExpansionPanelRoot_default, Z as useExpansionPanelRoot, _ as PopoverContent_default, a as useStepRoot, b as providePopoverContext, c as SingleRoot_default, d as Selection, et as AvatarFallback_default, f as SelectionItem_default, g as Popover, h as useSelectionRoot, i as provideStepRoot, it as Atom_default, j as providePaginationControls, k as PaginationEllipsis_default, l as provideSingleRoot, m as provideSelectionRoot, n as StepItem_default, nt as provideAvatarContext, o as Single, p as SelectionRoot_default, q as provideExpansionPanelItem, r as StepRoot_default, rt as useAvatarRoot, s as SingleItem_default, t as Step, tt as AvatarRoot_default, u as useSingleRoot, v as PopoverAnchor_default, w as PaginationPrev_default, x as usePopoverContext, y as PopoverRoot_default, z as GroupRoot_default } from "../components-
|
|
4
|
-
import "../useStep-
|
|
5
|
-
import "../globals-
|
|
2
|
+
import "../utilities-CjDz-Xvn.mjs";
|
|
3
|
+
import { $ as AvatarImage_default, A as PaginationRoot_default, B as provideGroupRoot, C as PaginationStatus_default, D as PaginationItem_default, E as PaginationLast_default, F as usePaginationItems, G as ExpansionPanelActivator_default, H as ExpansionPanel, I as usePaginationRoot, J as useExpansionPanelItem, K as ExpansionPanelItem_default, L as Group, M as providePaginationItems, N as providePaginationRoot, O as PaginationFirst_default, P as usePaginationControls, Q as Avatar, R as GroupItem_default, S as Pagination, T as PaginationNext_default, U as ExpansionPanelHeader_default, V as useGroupRoot, W as ExpansionPanelContent_default, X as provideExpansionPanelSelection, Y as ExpansionPanelRoot_default, Z as useExpansionPanelRoot, _ as PopoverContent_default, a as useStepRoot, b as providePopoverContext, c as SingleRoot_default, d as Selection, et as AvatarFallback_default, f as SelectionItem_default, g as Popover, h as useSelectionRoot, i as provideStepRoot, it as Atom_default, j as providePaginationControls, k as PaginationEllipsis_default, l as provideSingleRoot, m as provideSelectionRoot, n as StepItem_default, nt as provideAvatarContext, o as Single, p as SelectionRoot_default, q as provideExpansionPanelItem, r as StepRoot_default, rt as useAvatarRoot, s as SingleItem_default, t as Step, tt as AvatarRoot_default, u as useSingleRoot, v as PopoverAnchor_default, w as PaginationPrev_default, x as usePopoverContext, y as PopoverRoot_default, z as GroupRoot_default } from "../components-BomyjmT3.mjs";
|
|
4
|
+
import "../useStep-CfgBbrJB.mjs";
|
|
5
|
+
import "../globals-C3JrEDXZ.mjs";
|
|
6
6
|
|
|
7
7
|
export { Atom_default as Atom, Avatar, AvatarFallback_default as AvatarFallback, AvatarImage_default as AvatarImage, AvatarRoot_default as AvatarRoot, ExpansionPanel, ExpansionPanelActivator_default as ExpansionPanelActivator, ExpansionPanelContent_default as ExpansionPanelContent, ExpansionPanelHeader_default as ExpansionPanelHeader, ExpansionPanelItem_default as ExpansionPanelItem, ExpansionPanelRoot_default as ExpansionPanelRoot, Group, GroupItem_default as GroupItem, GroupRoot_default as GroupRoot, Pagination, PaginationEllipsis_default as PaginationEllipsis, PaginationFirst_default as PaginationFirst, PaginationItem_default as PaginationItem, PaginationLast_default as PaginationLast, PaginationNext_default as PaginationNext, PaginationPrev_default as PaginationPrev, PaginationRoot_default as PaginationRoot, PaginationStatus_default as PaginationStatus, Popover, PopoverAnchor_default as PopoverAnchor, PopoverContent_default as PopoverContent, PopoverRoot_default as PopoverRoot, Selection, SelectionItem_default as SelectionItem, SelectionRoot_default as SelectionRoot, Single, SingleItem_default as SingleItem, SingleRoot_default as SingleRoot, Step, StepItem_default as StepItem, StepRoot_default as StepRoot, provideAvatarContext, provideExpansionPanelItem, provideExpansionPanelSelection, provideGroupRoot, providePaginationControls, providePaginationItems, providePaginationRoot, providePopoverContext, provideSelectionRoot, provideSingleRoot, provideStepRoot, useAvatarRoot, useExpansionPanelItem, useExpansionPanelRoot, useGroupRoot, usePaginationControls, usePaginationItems, usePaginationRoot, usePopoverContext, useSelectionRoot, useSingleRoot, useStepRoot };
|
|
@@ -1,10 +1,31 @@
|
|
|
1
1
|
import { r as isSelfClosingTag } from "./htmlElements-CXObxj0V.mjs";
|
|
2
|
-
import { c as isNull, l as isNullOrUndefined, p as isString, r as genId } from "./utilities-
|
|
3
|
-
import { F as createSelection, N as useProxyModel, Y as createContext,
|
|
4
|
-
import { t as IN_BROWSER } from "./globals-
|
|
2
|
+
import { c as isNull, l as isNullOrUndefined, p as isString, r as genId } from "./utilities-CjDz-Xvn.mjs";
|
|
3
|
+
import { E as createSingle, F as createSelection, N as useProxyModel, Y as createContext, i as createPagination, k as createGroup, s as createOverflow, t as createStep, x as useLocale, z as useRegistry } from "./useStep-CfgBbrJB.mjs";
|
|
4
|
+
import { t as IN_BROWSER } from "./globals-C3JrEDXZ.mjs";
|
|
5
5
|
import { computed, createBlock, createCommentVNode, createPropsRestProxy, createTextVNode, defineComponent, guardReactiveProps, mergeModels, mergeProps, normalizeProps, onBeforeUnmount, onMounted, onUnmounted, openBlock, renderSlot, resolveDynamicComponent, shallowRef, toDisplayString, toRef, toValue, unref, useAttrs, useId, useModel, useTemplateRef, vShow, watch, withCtx, withDirectives } from "vue";
|
|
6
6
|
|
|
7
7
|
//#region src/components/Atom/Atom.vue
|
|
8
|
+
/**
|
|
9
|
+
* @module Atom
|
|
10
|
+
*
|
|
11
|
+
* @remarks
|
|
12
|
+
* Foundation component providing polymorphic rendering with three modes:
|
|
13
|
+
* 1. **Element Mode** (default): Renders as any HTML element via the `as` prop
|
|
14
|
+
* 2. **Renderless Mode**: Renders slot content directly without wrapper
|
|
15
|
+
* 3. **Null Mode**: Equivalent to renderless when `as={null}`
|
|
16
|
+
*
|
|
17
|
+
* Key features:
|
|
18
|
+
* - Polymorphic element rendering (div, button, span, etc.)
|
|
19
|
+
* - Self-closing tag detection (img, input, br, hr, etc.)
|
|
20
|
+
* - Automatic attribute forwarding to rendered element
|
|
21
|
+
* - Generic slot props typing for type-safe attribute passing
|
|
22
|
+
* - Template ref exposure for DOM element access
|
|
23
|
+
* - Renderless mode for maximum flexibility
|
|
24
|
+
*
|
|
25
|
+
* The Atom component is the lowest-level primitive in the component system,
|
|
26
|
+
* serving as the foundation for all other components that need polymorphic
|
|
27
|
+
* rendering capabilities.
|
|
28
|
+
*/
|
|
8
29
|
const _sfc_main$27 = /* @__PURE__ */ defineComponent({
|
|
9
30
|
name: "Atom",
|
|
10
31
|
__name: "Atom",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../index-
|
|
2
|
-
import { A as SelectionContextOptions, B as
|
|
3
|
-
import { $ as createQueue, $n as
|
|
4
|
-
export { BreakpointName, BreakpointsContext, BreakpointsContextOptions, BreakpointsOptions, BreakpointsPluginOptions, CleanupFunction, Colors, ConsolaLoggerAdapter, ContextKey, ContextTrinity, CreateContextOptions, EventHandler, FeatureContext, FeatureContextOptions, FeatureOptions, FeaturePluginOptions, FeatureTicket, FilterContext, FilterContextOptions, FilterFunction, FilterItem, FilterMode, FilterOptions, FilterQuery, FilterResult, FlatTokenCollection, FormContext, FormContextOptions, FormOptions, FormTicket, FormValidationResult, FormValidationRule, FormValue, GroupContext, GroupContextOptions, GroupOptions, GroupTicket, HydrationContext, HydrationContextOptions, HydrationOptions, HydrationPluginOptions, IntersectionObserverEntry, IntersectionObserverOptions, KeyHandler, LocaleAdapter, LocaleContext, LocaleContextOptions, LocaleOptions, LocalePluginOptions, LocaleRecord, LocaleTicket, LogLevel, LoggerAdapter, LoggerContext, LoggerContextOptions, LoggerOptions, LoggerPluginOptions, MemoryAdapter, MutationObserverRecord, OverflowContext, OverflowContextOptions, OverflowOptions, PaginationContext, PaginationContextOptions, PaginationOptions, PaginationTicket, PermissionAdapter, PermissionAdapterInterface, PermissionContext, PermissionContextOptions, PermissionOptions, PermissionPluginOptions, PermissionTicket, PinoLoggerAdapter, Plugin, PluginOptions, Primitive, ProxyModelOptions, ProxyRegistryContext, ProxyRegistryOptions, QueueContext, QueueContextOptions, QueueOptions, QueueTicket, RegistryContext, RegistryContextOptions, RegistryOptions, RegistryTicket, ResizeObserverEntry, ResizeObserverOptions, ScrollToOptions, SelectionContext, SelectionContextOptions, SelectionOptions, SelectionTicket, SingleContext, SingleContextOptions, SingleOptions, SingleTicket, StepContext, StepContextOptions, StepOptions, StepTicket, StorageAdapter, StorageContext, StorageContextOptions, StorageOptions, StoragePluginOptions, StorageType, ThemeAdapter, ThemeColors, ThemeContext, ThemeContextOptions, ThemeOptions, ThemePluginOptions, ThemeRecord, ThemeTicket, TimelineContext, TimelineContextOptions, TimelineOptions, TimelineTicket, ToggleScopeControls, TokenAlias, TokenCollection, TokenContext, TokenContextOptions, TokenOptions, TokenPrimitive, TokenTicket, TokenValue, UseElementIntersectionReturn, UseElementSizeReturn, UseIntersectionObserverReturn, UseKeydownReturn, UseMutationObserverOptions, UseMutationObserverReturn, UseResizeObserverReturn, VirtualAnchor, VirtualContext, VirtualDirection, VirtualItem, VirtualOptions, VirtualState, Vuetify0LocaleAdapter, Vuetify0LoggerAdapter, Vuetify0ThemeAdapter, createBreakpoints, createBreakpointsContext, createBreakpointsPlugin, createContext, createFallbackHydration, createFeatures, createFeaturesContext, createFeaturesPlugin, createFilter, createFilterContext, createForm, createFormContext, createGroup, createGroupContext, createHydration, createHydrationContext, createHydrationPlugin, createLocale, createLocaleContext, createLocaleFallback, createLocalePlugin, createLogger, createLoggerContext, createLoggerPlugin, createOverflow, createOverflowContext, createPagination, createPaginationContext, createPermissions, createPermissionsContext, createPermissionsPlugin, createPlugin, createQueue, createQueueContext, createRegistryContext, createSelection, createSelectionContext, createSingle, createSingleContext, createStep, createStepContext, createStorage, createStorageContext, createStoragePlugin, createTheme, createThemeContext, createThemePlugin, createTimeline, createTimelineContext, createTokens, createTokensContext, createTrinity, provideContext, toArray, toReactive, useBreakpoints, useContext, useDocumentEventListener, useElementIntersection, useElementSize, useEventListener, useFeatures, useFilter, useFilterContext, useForm, useGroup, useHydration, useIntersectionObserver, useKeydown, useLocale, useLogger, useMutationObserver, useOverflow, usePagination, usePermissions, useProxyModel, useProxyRegistry, useQueue, useRegistry, useResizeObserver, useSelection, useSingle, useStep, useStorage, useTheme, useTimeline, useToggleScope, useTokens, useVirtual, useWindowEventListener };
|
|
1
|
+
import "../index-4jSy8KIt.mjs";
|
|
2
|
+
import { A as SelectionContextOptions, B as RegistryTicket, C as GroupContextOptions, D as createGroupContext, E as createGroup, F as useSelection, H as useRegistry, I as RegistryContext, L as RegistryContextOptions, M as SelectionTicket, N as createSelection, O as useGroup, P as createSelectionContext, R as RegistryEventCallback, S as GroupContext, T as GroupTicket, U as ContextTrinity, V as createRegistryContext, W as createTrinity, _ as PaginationOptions, a as createStep, b as createPaginationContext, c as SingleContext, d as SingleTicket, f as createSingle, g as PaginationContextOptions, h as PaginationContext, i as StepTicket, j as SelectionOptions, k as SelectionContext, l as SingleContextOptions, m as useSingle, n as StepContextOptions, o as createStepContext, p as createSingleContext, r as StepOptions, s as useStep, t as StepContext, u as SingleOptions, v as PaginationTicket, w as GroupOptions, x as usePagination, y as createPagination, z as RegistryOptions } from "../index-MLb3LH9a.mjs";
|
|
3
|
+
import { $ as createQueue, $n as TokenCollection, $t as LocaleAdapter, A as Vuetify0ThemeAdapter, An as FilterContextOptions, Ar as toArray, At as LoggerOptions, B as StorageAdapter, Bn as useFilter, Bt as LoggerAdapter, C as ThemePluginOptions, Cn as FormValidationResult, Cr as BreakpointsOptions, Ct as useOverflow, D as createThemeContext, Dn as createFormContext, Dr as createBreakpointsPlugin, Dt as useMutationObserver, E as createTheme, En as createForm, Er as createBreakpointsContext, Et as UseMutationObserverReturn, F as StoragePluginOptions, Fn as FilterQuery, Fr as CreateContextOptions, Ft as useLogger, G as UseElementSizeReturn, Gn as FeaturePluginOptions, Gt as LocaleRecord, H as MemoryAdapter, Hn as FeatureContext, Ht as LocaleContextOptions, I as createStorage, In as FilterResult, Ir as createContext, It as LogLevel, J as useResizeObserver, Jn as createFeaturesContext, Jt as createLocaleContext, K as UseResizeObserverReturn, Kn as FeatureTicket, Kt as LocaleTicket, L as createStorageContext, Ln as Primitive, Lr as provideContext, Lt as Vuetify0LoggerAdapter, M as StorageContext, Mn as FilterItem, Mr as PluginOptions, Mt as createLogger, N as StorageContextOptions, Nn as FilterMode, Nr as createPlugin, Nt as createLoggerContext, O as createThemePlugin, On as useForm, Or as useBreakpoints, Ot as LoggerContext, P as StorageOptions, Pn as FilterOptions, Pr as ContextKey, Pt as createLoggerPlugin, Q as QueueTicket, Qn as TokenAlias, Qt as Vuetify0LocaleAdapter, R as createStoragePlugin, Rn as createFilter, Rr as useContext, Rt as PinoLoggerAdapter, S as ThemeOptions, Sn as FormTicket, Sr as BreakpointsContextOptions, St as createOverflowContext, T as ThemeTicket, Tn as FormValue, Tr as createBreakpoints, Tt as UseMutationObserverOptions, U as ResizeObserverEntry, Un as FeatureContextOptions, Ut as LocaleOptions, V as StorageType, Vn as useFilterContext, Vt as LocaleContext, W as ResizeObserverOptions, Wn as FeatureOptions, Wt as LocalePluginOptions, X as QueueContextOptions, Xn as useFeatures, Xt as createLocalePlugin, Y as QueueContext, Yn as createFeaturesPlugin, Yt as createLocaleFallback, Z as QueueOptions, Zn as FlatTokenCollection, Zt as useLocale, _ as useTimeline, _n as createHydrationPlugin, _r as UseClickOutsideOptions, _t as PermissionAdapterInterface, a as VirtualItem, an as MaybeRef, ar as TokenValue, at as ProxyModelOptions, b as ThemeContext, bn as FormContextOptions, br as BreakpointName, bt as OverflowOptions, c as useVirtual, cn as useElementIntersection, cr as useTokens, ct as PermissionContextOptions, d as TimelineContext, dn as HydrationContextOptions, dr as useDocumentEventListener, dt as PermissionTicket, en as KeyHandler, er as TokenContext, et as createQueueContext, f as TimelineContextOptions, fn as HydrationOptions, fr as useEventListener, ft as createPermissions, g as createTimelineContext, gn as createHydrationContext, gr as ClickOutsideTarget, gt as PermissionAdapter, h as createTimeline, hn as createHydration, hr as ClickOutsideIgnoreTarget, ht as usePermissions, i as VirtualDirection, in as IntersectionObserverOptions, ir as TokenTicket, it as useProxyRegistry, j as ThemeAdapter, jn as FilterFunction, jr as Plugin, jt as LoggerPluginOptions, k as useTheme, kn as FilterContext, kr as toReactive, kt as LoggerContextOptions, l as ToggleScopeControls, ln as useIntersectionObserver, lr as CleanupFunction, lt as PermissionOptions, m as TimelineTicket, mn as createFallbackHydration, mr as ClickOutsideElement, mt as createPermissionsPlugin, n as VirtualAnchor, nn as useKeydown, nr as TokenOptions, nt as ProxyRegistryContext, o as VirtualOptions, on as UseElementIntersectionReturn, or as createTokens, ot as useProxyModel, p as TimelineOptions, pn as HydrationPluginOptions, pr as useWindowEventListener, pt as createPermissionsContext, q as useElementSize, qn as createFeatures, qt as createLocale, r as VirtualContext, rn as IntersectionObserverEntry, rr as TokenPrimitive, rt as ProxyRegistryOptions, s as VirtualState, sn as UseIntersectionObserverReturn, sr as createTokensContext, st as PermissionContext, t as ScrollToOptions, tn as UseKeydownReturn, tr as TokenContextOptions, tt as useQueue, u as useToggleScope, un as HydrationContext, ur as EventHandler, ut as PermissionPluginOptions, v as Colors, vn as useHydration, vr as UseClickOutsideReturn, vt as OverflowContext, w as ThemeRecord, wn as FormValidationRule, wr as BreakpointsPluginOptions, wt as MutationObserverRecord, x as ThemeContextOptions, xn as FormOptions, xr as BreakpointsContext, xt as createOverflow, y as ThemeColors, yn as FormContext, yr as useClickOutside, yt as OverflowContextOptions, z as useStorage, zn as createFilterContext, zt as ConsolaLoggerAdapter } from "../index-OU0IRbIS.mjs";
|
|
4
|
+
export { BreakpointName, BreakpointsContext, BreakpointsContextOptions, BreakpointsOptions, BreakpointsPluginOptions, CleanupFunction, ClickOutsideElement, ClickOutsideIgnoreTarget, ClickOutsideTarget, Colors, ConsolaLoggerAdapter, ContextKey, ContextTrinity, CreateContextOptions, EventHandler, FeatureContext, FeatureContextOptions, FeatureOptions, FeaturePluginOptions, FeatureTicket, FilterContext, FilterContextOptions, FilterFunction, FilterItem, FilterMode, FilterOptions, FilterQuery, FilterResult, FlatTokenCollection, FormContext, FormContextOptions, FormOptions, FormTicket, FormValidationResult, FormValidationRule, FormValue, GroupContext, GroupContextOptions, GroupOptions, GroupTicket, HydrationContext, HydrationContextOptions, HydrationOptions, HydrationPluginOptions, IntersectionObserverEntry, IntersectionObserverOptions, KeyHandler, LocaleAdapter, LocaleContext, LocaleContextOptions, LocaleOptions, LocalePluginOptions, LocaleRecord, LocaleTicket, LogLevel, LoggerAdapter, LoggerContext, LoggerContextOptions, LoggerOptions, LoggerPluginOptions, MaybeRef, MemoryAdapter, MutationObserverRecord, OverflowContext, OverflowContextOptions, OverflowOptions, PaginationContext, PaginationContextOptions, PaginationOptions, PaginationTicket, PermissionAdapter, PermissionAdapterInterface, PermissionContext, PermissionContextOptions, PermissionOptions, PermissionPluginOptions, PermissionTicket, PinoLoggerAdapter, Plugin, PluginOptions, Primitive, ProxyModelOptions, ProxyRegistryContext, ProxyRegistryOptions, QueueContext, QueueContextOptions, QueueOptions, QueueTicket, RegistryContext, RegistryContextOptions, RegistryEventCallback, RegistryOptions, RegistryTicket, ResizeObserverEntry, ResizeObserverOptions, ScrollToOptions, SelectionContext, SelectionContextOptions, SelectionOptions, SelectionTicket, SingleContext, SingleContextOptions, SingleOptions, SingleTicket, StepContext, StepContextOptions, StepOptions, StepTicket, StorageAdapter, StorageContext, StorageContextOptions, StorageOptions, StoragePluginOptions, StorageType, ThemeAdapter, ThemeColors, ThemeContext, ThemeContextOptions, ThemeOptions, ThemePluginOptions, ThemeRecord, ThemeTicket, TimelineContext, TimelineContextOptions, TimelineOptions, TimelineTicket, ToggleScopeControls, TokenAlias, TokenCollection, TokenContext, TokenContextOptions, TokenOptions, TokenPrimitive, TokenTicket, TokenValue, UseClickOutsideOptions, UseClickOutsideReturn, UseElementIntersectionReturn, UseElementSizeReturn, UseIntersectionObserverReturn, UseKeydownReturn, UseMutationObserverOptions, UseMutationObserverReturn, UseResizeObserverReturn, VirtualAnchor, VirtualContext, VirtualDirection, VirtualItem, VirtualOptions, VirtualState, Vuetify0LocaleAdapter, Vuetify0LoggerAdapter, Vuetify0ThemeAdapter, createBreakpoints, createBreakpointsContext, createBreakpointsPlugin, createContext, createFallbackHydration, createFeatures, createFeaturesContext, createFeaturesPlugin, createFilter, createFilterContext, createForm, createFormContext, createGroup, createGroupContext, createHydration, createHydrationContext, createHydrationPlugin, createLocale, createLocaleContext, createLocaleFallback, createLocalePlugin, createLogger, createLoggerContext, createLoggerPlugin, createOverflow, createOverflowContext, createPagination, createPaginationContext, createPermissions, createPermissionsContext, createPermissionsPlugin, createPlugin, createQueue, createQueueContext, createRegistryContext, createSelection, createSelectionContext, createSingle, createSingleContext, createStep, createStepContext, createStorage, createStorageContext, createStoragePlugin, createTheme, createThemeContext, createThemePlugin, createTimeline, createTimelineContext, createTokens, createTokensContext, createTrinity, provideContext, toArray, toReactive, useBreakpoints, useClickOutside, useContext, useDocumentEventListener, useElementIntersection, useElementSize, useEventListener, useFeatures, useFilter, useFilterContext, useForm, useGroup, useHydration, useIntersectionObserver, useKeydown, useLocale, useLogger, useMutationObserver, useOverflow, usePagination, usePermissions, useProxyModel, useProxyRegistry, useQueue, useRegistry, useResizeObserver, useSelection, useSingle, useStep, useStorage, useTheme, useTimeline, useToggleScope, useTokens, useVirtual, useWindowEventListener };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import "../utilities-
|
|
2
|
-
import { A as createGroupContext, B as createLogger, C as
|
|
3
|
-
import "../globals-
|
|
4
|
-
import { A as useForm, B as
|
|
1
|
+
import "../utilities-CjDz-Xvn.mjs";
|
|
2
|
+
import { A as createGroupContext, B as createLogger, C as createTokens, D as createSingleContext, E as createSingle, F as createSelection, G as PinoLoggerAdapter, H as createLoggerPlugin, I as createSelectionContext, J as createTrinity, K as ConsolaLoggerAdapter, L as useSelection, M as useProxyRegistry, N as useProxyModel, O as useSingle, P as toArray, R as createRegistryContext, S as Vuetify0LocaleAdapter, T as useTokens, U as useLogger, V as createLoggerContext, W as Vuetify0LoggerAdapter, X as provideContext, Y as createContext, Z as useContext, _ as createLocale, a as createPaginationContext, b as createLocalePlugin, c as createOverflowContext, d as useResizeObserver, f as createFallbackHydration, g as useHydration, h as createHydrationPlugin, i as createPagination, j as useGroup, k as createGroup, l as useOverflow, m as createHydrationContext, n as createStepContext, o as usePagination, p as createHydration, q as createPlugin, r as useStep, s as createOverflow, t as createStep, u as useElementSize, v as createLocaleContext, w as createTokensContext, x as useLocale, y as createLocaleFallback, z as useRegistry } from "../useStep-CfgBbrJB.mjs";
|
|
3
|
+
import "../globals-C3JrEDXZ.mjs";
|
|
4
|
+
import { A as useForm, B as createBreakpoints, C as PermissionAdapter, D as useIntersectionObserver, E as useElementIntersection, F as createFeatures, G as useEventListener, H as createBreakpointsPlugin, I as createFeaturesContext, K as useWindowEventListener, L as createFeaturesPlugin, M as createFilterContext, N as useFilter, O as createForm, P as useFilterContext, R as useFeatures, S as usePermissions, T as useKeydown, U as useBreakpoints, V as createBreakpointsContext, W as useDocumentEventListener, _ as createQueueContext, a as useTimeline, b as createPermissionsContext, c as createThemePlugin, d as createStorage, f as createStorageContext, g as createQueue, h as MemoryAdapter, i as createTimelineContext, j as createFilter, k as createFormContext, l as useTheme, m as useStorage, n as useToggleScope, o as createTheme, p as createStoragePlugin, q as toReactive, r as createTimeline, s as createThemeContext, t as useVirtual, u as Vuetify0ThemeAdapter, v as useQueue, w as useMutationObserver, x as createPermissionsPlugin, y as createPermissions, z as useClickOutside } from "../composables-CbAPZabd.mjs";
|
|
5
5
|
|
|
6
|
-
export { ConsolaLoggerAdapter, MemoryAdapter, PermissionAdapter, PinoLoggerAdapter, Vuetify0LocaleAdapter, Vuetify0LoggerAdapter, Vuetify0ThemeAdapter, createBreakpoints, createBreakpointsContext, createBreakpointsPlugin, createContext, createFallbackHydration, createFeatures, createFeaturesContext, createFeaturesPlugin, createFilter, createFilterContext, createForm, createFormContext, createGroup, createGroupContext, createHydration, createHydrationContext, createHydrationPlugin, createLocale, createLocaleContext, createLocaleFallback, createLocalePlugin, createLogger, createLoggerContext, createLoggerPlugin, createOverflow, createOverflowContext, createPagination, createPaginationContext, createPermissions, createPermissionsContext, createPermissionsPlugin, createPlugin, createQueue, createQueueContext, createRegistryContext, createSelection, createSelectionContext, createSingle, createSingleContext, createStep, createStepContext, createStorage, createStorageContext, createStoragePlugin, createTheme, createThemeContext, createThemePlugin, createTimeline, createTimelineContext, createTokens, createTokensContext, createTrinity, provideContext, toArray, toReactive, useBreakpoints, useContext, useDocumentEventListener, useElementIntersection, useElementSize, useEventListener, useFeatures, useFilter, useFilterContext, useForm, useGroup, useHydration, useIntersectionObserver, useKeydown, useLocale, useLogger, useMutationObserver, useOverflow, usePagination, usePermissions, useProxyModel, useProxyRegistry, useQueue, useRegistry, useResizeObserver, useSelection, useSingle, useStep, useStorage, useTheme, useTimeline, useToggleScope, useTokens, useVirtual, useWindowEventListener };
|
|
6
|
+
export { ConsolaLoggerAdapter, MemoryAdapter, PermissionAdapter, PinoLoggerAdapter, Vuetify0LocaleAdapter, Vuetify0LoggerAdapter, Vuetify0ThemeAdapter, createBreakpoints, createBreakpointsContext, createBreakpointsPlugin, createContext, createFallbackHydration, createFeatures, createFeaturesContext, createFeaturesPlugin, createFilter, createFilterContext, createForm, createFormContext, createGroup, createGroupContext, createHydration, createHydrationContext, createHydrationPlugin, createLocale, createLocaleContext, createLocaleFallback, createLocalePlugin, createLogger, createLoggerContext, createLoggerPlugin, createOverflow, createOverflowContext, createPagination, createPaginationContext, createPermissions, createPermissionsContext, createPermissionsPlugin, createPlugin, createQueue, createQueueContext, createRegistryContext, createSelection, createSelectionContext, createSingle, createSingleContext, createStep, createStepContext, createStorage, createStorageContext, createStoragePlugin, createTheme, createThemeContext, createThemePlugin, createTimeline, createTimelineContext, createTokens, createTokensContext, createTrinity, provideContext, toArray, toReactive, useBreakpoints, useClickOutside, useContext, useDocumentEventListener, useElementIntersection, useElementSize, useEventListener, useFeatures, useFilter, useFilterContext, useForm, useGroup, useHydration, useIntersectionObserver, useKeydown, useLocale, useLogger, useMutationObserver, useOverflow, usePagination, usePermissions, useProxyModel, useProxyRegistry, useQueue, useRegistry, useResizeObserver, useSelection, useSingle, useStep, useStorage, useTheme, useTimeline, useToggleScope, useTokens, useVirtual, useWindowEventListener };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { a as isBoolean, c as isNull, d as isObject, g as mergeDeep, h as isUndefined, l as isNullOrUndefined, o as isFunction, p as isString, r as genId, t as clamp, u as isNumber } from "./utilities-
|
|
2
|
-
import { C as
|
|
3
|
-
import { i as SUPPORTS_MUTATION_OBSERVER, n as SUPPORTS_INTERSECTION_OBSERVER, t as IN_BROWSER } from "./globals-
|
|
4
|
-
import { computed, effectScope, isRef, onScopeDispose, reactive, readonly, ref, shallowReadonly, shallowRef, toRef, toValue, unref, watch } from "vue";
|
|
1
|
+
import { a as isBoolean, c as isNull, d as isObject, g as mergeDeep, h as isUndefined, l as isNullOrUndefined, o as isFunction, p as isString, r as genId, t as clamp, u as isNumber } from "./utilities-CjDz-Xvn.mjs";
|
|
2
|
+
import { C as createTokens, E as createSingle, J as createTrinity, P as toArray, Y as createContext, Z as useContext, d as useResizeObserver, g as useHydration, k as createGroup, q as createPlugin, z as useRegistry } from "./useStep-CfgBbrJB.mjs";
|
|
3
|
+
import { i as SUPPORTS_MUTATION_OBSERVER, n as SUPPORTS_INTERSECTION_OBSERVER, t as IN_BROWSER } from "./globals-C3JrEDXZ.mjs";
|
|
4
|
+
import { computed, effectScope, isRef, onScopeDispose, reactive, readonly, ref, shallowReadonly, shallowRef, toRef, toValue, unref, watch, watchEffect } from "vue";
|
|
5
5
|
|
|
6
6
|
//#region src/composables/toReactive/index.ts
|
|
7
7
|
/**
|
|
@@ -209,7 +209,7 @@ function useEventListener(target, event, listener, options) {
|
|
|
209
209
|
* @see https://0.vuetifyjs.com/composables/system/use-event-listener
|
|
210
210
|
*/
|
|
211
211
|
function useWindowEventListener(event, listener, options) {
|
|
212
|
-
return useEventListener(window, event, listener, options);
|
|
212
|
+
return IN_BROWSER ? useEventListener(window, event, listener, options) : () => {};
|
|
213
213
|
}
|
|
214
214
|
/**
|
|
215
215
|
* Attaches an event listener to the document.
|
|
@@ -223,7 +223,7 @@ function useWindowEventListener(event, listener, options) {
|
|
|
223
223
|
* @see https://0.vuetifyjs.com/composables/system/use-event-listener
|
|
224
224
|
*/
|
|
225
225
|
function useDocumentEventListener(event, listener, options) {
|
|
226
|
-
return useEventListener(document, event, listener, options);
|
|
226
|
+
return IN_BROWSER ? useEventListener(document, event, listener, options) : () => {};
|
|
227
227
|
}
|
|
228
228
|
|
|
229
229
|
//#endregion
|
|
@@ -446,7 +446,7 @@ function createBreakpointsPlugin(_options = {}) {
|
|
|
446
446
|
},
|
|
447
447
|
setup: (app) => {
|
|
448
448
|
app.mixin({ mounted() {
|
|
449
|
-
if (this.$parent
|
|
449
|
+
if (!/* @__PURE__ */ isNull(this.$parent)) return;
|
|
450
450
|
const hydration = useHydration();
|
|
451
451
|
function listener() {
|
|
452
452
|
context.update();
|
|
@@ -491,6 +491,236 @@ function useBreakpoints(namespace = "v0:breakpoints") {
|
|
|
491
491
|
return useContext(namespace);
|
|
492
492
|
}
|
|
493
493
|
|
|
494
|
+
//#endregion
|
|
495
|
+
//#region src/composables/useClickOutside/index.ts
|
|
496
|
+
/**
|
|
497
|
+
* @module useClickOutside
|
|
498
|
+
*
|
|
499
|
+
* @remarks
|
|
500
|
+
* Detects clicks outside of specified element(s) with automatic cleanup.
|
|
501
|
+
*
|
|
502
|
+
* Key features:
|
|
503
|
+
* - Two-phase detection (pointerdown → pointerup) prevents drag-out false positives
|
|
504
|
+
* - Touch scroll threshold ignores swipes/scrolls on mobile
|
|
505
|
+
* - Capture phase listeners work with stopPropagation
|
|
506
|
+
* - Pause/resume/stop functionality
|
|
507
|
+
* - Optional iframe focus detection
|
|
508
|
+
* - SSR-safe (no-op when not in browser)
|
|
509
|
+
*
|
|
510
|
+
* Common use cases: closing popovers, dropdowns, modals, and menus.
|
|
511
|
+
*
|
|
512
|
+
* Accessibility: This composable handles pointer interactions only. For accessible
|
|
513
|
+
* components (dialogs, popovers, menus), pair with `useKeydown` for Escape key
|
|
514
|
+
* dismissal per WCAG/APG requirements.
|
|
515
|
+
*/
|
|
516
|
+
/**
|
|
517
|
+
* Detects clicks outside of the specified element(s).
|
|
518
|
+
*
|
|
519
|
+
* Uses two-phase detection (pointerdown → pointerup) to prevent false positives
|
|
520
|
+
* when users drag from inside to outside an element.
|
|
521
|
+
*
|
|
522
|
+
* @param target Element ref(s) to detect clicks outside of. Accepts a single ref/getter or array of refs/getters.
|
|
523
|
+
* @param handler Callback invoked when a click outside is detected.
|
|
524
|
+
* @param options Configuration options.
|
|
525
|
+
* @returns An object with methods to control the listener.
|
|
526
|
+
*
|
|
527
|
+
* @see https://0.vuetifyjs.com/composables/system/use-click-outside
|
|
528
|
+
*
|
|
529
|
+
* @example Native element ref
|
|
530
|
+
* ```ts
|
|
531
|
+
* const menuRef = useTemplateRef<HTMLElement>('menu')
|
|
532
|
+
*
|
|
533
|
+
* useClickOutside(menuRef, () => { isOpen.value = false })
|
|
534
|
+
* ```
|
|
535
|
+
*
|
|
536
|
+
* @example Component ref (e.g., Atom)
|
|
537
|
+
* ```ts
|
|
538
|
+
* const atomRef = useTemplateRef<AtomExpose>('atom')
|
|
539
|
+
*
|
|
540
|
+
* // Pass the exposed element TemplateRef via getter
|
|
541
|
+
* useClickOutside(
|
|
542
|
+
* () => atomRef.value?.element,
|
|
543
|
+
* () => { isOpen.value = false }
|
|
544
|
+
* )
|
|
545
|
+
* ```
|
|
546
|
+
*
|
|
547
|
+
* @example Multiple targets
|
|
548
|
+
* ```ts
|
|
549
|
+
* const popoverRef = useTemplateRef<AtomExpose>('popover')
|
|
550
|
+
* const anchorRef = useTemplateRef<HTMLElement>('anchor')
|
|
551
|
+
*
|
|
552
|
+
* useClickOutside(
|
|
553
|
+
* [() => popoverRef.value?.element, anchorRef],
|
|
554
|
+
* () => { isOpen.value = false }
|
|
555
|
+
* )
|
|
556
|
+
* ```
|
|
557
|
+
*
|
|
558
|
+
* @example Ignoring elements (CSS selectors or refs)
|
|
559
|
+
* ```ts
|
|
560
|
+
* useClickOutside(
|
|
561
|
+
* () => navRef.value?.element,
|
|
562
|
+
* () => { isOpen.value = false },
|
|
563
|
+
* { ignore: ['[data-app-bar]'] }
|
|
564
|
+
* )
|
|
565
|
+
* ```
|
|
566
|
+
*/
|
|
567
|
+
function useClickOutside(target, handler, options = {}) {
|
|
568
|
+
const { capture = true, touchScrollThreshold = 30, detectIframe = false, ignore = [] } = options;
|
|
569
|
+
const isPaused = shallowRef(false);
|
|
570
|
+
const isActive = toRef(() => !isPaused.value);
|
|
571
|
+
let initialTarget = null;
|
|
572
|
+
let startPosition = {
|
|
573
|
+
x: 0,
|
|
574
|
+
y: 0
|
|
575
|
+
};
|
|
576
|
+
let cleanupPointerDown;
|
|
577
|
+
let cleanupPointerUp;
|
|
578
|
+
let cleanupBlur;
|
|
579
|
+
/**
|
|
580
|
+
* Resolve target(s) to an array of HTMLElements.
|
|
581
|
+
*/
|
|
582
|
+
function getTargets() {
|
|
583
|
+
return toArray(target).map((source) => toValue(source)).filter((el) => !/* @__PURE__ */ isNullOrUndefined(el));
|
|
584
|
+
}
|
|
585
|
+
/**
|
|
586
|
+
* Resolve ignore targets to a tuple of [selectors, elements].
|
|
587
|
+
* Called once per event to avoid repeated toValue() calls in hot path.
|
|
588
|
+
*/
|
|
589
|
+
function resolveIgnoreTargets() {
|
|
590
|
+
const ignoreTargets = toValue(ignore);
|
|
591
|
+
if (ignoreTargets.length === 0) return [[], []];
|
|
592
|
+
const selectors = [];
|
|
593
|
+
const elements = [];
|
|
594
|
+
for (const ignoreTarget of ignoreTargets) if (/* @__PURE__ */ isString(ignoreTarget)) selectors.push(ignoreTarget);
|
|
595
|
+
else {
|
|
596
|
+
const ignoreEl = toValue(ignoreTarget);
|
|
597
|
+
if (ignoreEl) elements.push(ignoreEl);
|
|
598
|
+
}
|
|
599
|
+
return [selectors, elements];
|
|
600
|
+
}
|
|
601
|
+
/**
|
|
602
|
+
* Check if an element matches resolved ignore targets.
|
|
603
|
+
*/
|
|
604
|
+
function isIgnored(el, selectors, elements) {
|
|
605
|
+
if (!el) return false;
|
|
606
|
+
for (const selector of selectors) try {
|
|
607
|
+
if (el.matches(selector) || !/* @__PURE__ */ isNull(el.closest(selector))) return true;
|
|
608
|
+
} catch {}
|
|
609
|
+
for (const ignoreEl of elements) if (ignoreEl === el || ignoreEl.contains(el)) return true;
|
|
610
|
+
return false;
|
|
611
|
+
}
|
|
612
|
+
/**
|
|
613
|
+
* Check if any element in the event path should be ignored.
|
|
614
|
+
*/
|
|
615
|
+
function shouldIgnore(path) {
|
|
616
|
+
const [selectors, elements] = resolveIgnoreTargets();
|
|
617
|
+
if (selectors.length === 0 && elements.length === 0) return false;
|
|
618
|
+
return path.some((node) => node instanceof Element && isIgnored(node, selectors, elements));
|
|
619
|
+
}
|
|
620
|
+
/**
|
|
621
|
+
* Check if the event target is outside all target elements.
|
|
622
|
+
*/
|
|
623
|
+
function isOutside(eventTarget) {
|
|
624
|
+
if (!eventTarget) return false;
|
|
625
|
+
if (!(eventTarget instanceof Node)) return false;
|
|
626
|
+
const targets = getTargets();
|
|
627
|
+
if (targets.length === 0) return false;
|
|
628
|
+
return targets.every((el) => {
|
|
629
|
+
return el !== eventTarget && !el.contains(eventTarget);
|
|
630
|
+
});
|
|
631
|
+
}
|
|
632
|
+
/**
|
|
633
|
+
* Validate that the target is still in the DOM.
|
|
634
|
+
*/
|
|
635
|
+
function isValidTarget(eventTarget) {
|
|
636
|
+
if (!(eventTarget instanceof Element)) return false;
|
|
637
|
+
if (!eventTarget.isConnected) return false;
|
|
638
|
+
return true;
|
|
639
|
+
}
|
|
640
|
+
/**
|
|
641
|
+
* Handle pointerdown - store initial target and position.
|
|
642
|
+
*/
|
|
643
|
+
function onPointerDown(event) {
|
|
644
|
+
if (isPaused.value) return;
|
|
645
|
+
if (event.defaultPrevented) return;
|
|
646
|
+
initialTarget = event.composedPath()[0] ?? event.target;
|
|
647
|
+
startPosition = {
|
|
648
|
+
x: event.clientX,
|
|
649
|
+
y: event.clientY
|
|
650
|
+
};
|
|
651
|
+
}
|
|
652
|
+
/**
|
|
653
|
+
* Handle pointerup - check if it's an outside click.
|
|
654
|
+
*/
|
|
655
|
+
function onPointerUp(event) {
|
|
656
|
+
if (isPaused.value) return;
|
|
657
|
+
if (event.defaultPrevented) return;
|
|
658
|
+
if (!initialTarget) return;
|
|
659
|
+
const pointerdownTarget = initialTarget;
|
|
660
|
+
initialTarget = null;
|
|
661
|
+
if (!isValidTarget(pointerdownTarget)) return;
|
|
662
|
+
const path = event.composedPath();
|
|
663
|
+
const pointerupTarget = path[0] ?? event.target;
|
|
664
|
+
if (event.pointerType === "touch") {
|
|
665
|
+
const dx = Math.abs(event.clientX - startPosition.x);
|
|
666
|
+
const dy = Math.abs(event.clientY - startPosition.y);
|
|
667
|
+
if (dx >= touchScrollThreshold || dy >= touchScrollThreshold) return;
|
|
668
|
+
}
|
|
669
|
+
if (isOutside(pointerdownTarget) && isOutside(pointerupTarget) && !shouldIgnore(path)) handler(event);
|
|
670
|
+
}
|
|
671
|
+
/**
|
|
672
|
+
* Handle window blur - detect focus moving to iframe.
|
|
673
|
+
*/
|
|
674
|
+
function onBlur(event) {
|
|
675
|
+
if (isPaused.value) return;
|
|
676
|
+
if (event.defaultPrevented) return;
|
|
677
|
+
if (document.activeElement instanceof HTMLIFrameElement) {
|
|
678
|
+
const iframeIsOutside = getTargets().every((el) => !el.contains(document.activeElement));
|
|
679
|
+
const [selectors, elements] = resolveIgnoreTargets();
|
|
680
|
+
if (iframeIsOutside && !isIgnored(document.activeElement, selectors, elements)) handler(event);
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
function setup() {
|
|
684
|
+
cleanupPointerDown = useDocumentEventListener("pointerdown", onPointerDown, capture);
|
|
685
|
+
cleanupPointerUp = useDocumentEventListener("pointerup", onPointerUp, capture);
|
|
686
|
+
if (!detectIframe) return;
|
|
687
|
+
cleanupBlur = useWindowEventListener("blur", onBlur, capture);
|
|
688
|
+
}
|
|
689
|
+
function cleanup() {
|
|
690
|
+
cleanupPointerDown?.();
|
|
691
|
+
cleanupPointerUp?.();
|
|
692
|
+
cleanupBlur?.();
|
|
693
|
+
cleanupPointerDown = void 0;
|
|
694
|
+
cleanupPointerUp = void 0;
|
|
695
|
+
cleanupBlur = void 0;
|
|
696
|
+
}
|
|
697
|
+
function pause() {
|
|
698
|
+
if (isPaused.value) return;
|
|
699
|
+
isPaused.value = true;
|
|
700
|
+
initialTarget = null;
|
|
701
|
+
cleanup();
|
|
702
|
+
}
|
|
703
|
+
function resume() {
|
|
704
|
+
if (!isPaused.value) return;
|
|
705
|
+
isPaused.value = false;
|
|
706
|
+
setup();
|
|
707
|
+
}
|
|
708
|
+
function stop() {
|
|
709
|
+
isPaused.value = true;
|
|
710
|
+
initialTarget = null;
|
|
711
|
+
cleanup();
|
|
712
|
+
}
|
|
713
|
+
setup();
|
|
714
|
+
onScopeDispose(stop, true);
|
|
715
|
+
return {
|
|
716
|
+
isActive: shallowReadonly(isActive),
|
|
717
|
+
isPaused: shallowReadonly(isPaused),
|
|
718
|
+
pause,
|
|
719
|
+
resume,
|
|
720
|
+
stop
|
|
721
|
+
};
|
|
722
|
+
}
|
|
723
|
+
|
|
494
724
|
//#endregion
|
|
495
725
|
//#region src/composables/useFeatures/index.ts
|
|
496
726
|
/**
|
|
@@ -688,7 +918,7 @@ function useFeatures(namespace = "v0:features") {
|
|
|
688
918
|
* Filters arrays based on query strings with configurable matching strategies.
|
|
689
919
|
*/
|
|
690
920
|
function defaultFilter(query, item, keys, mode = "some") {
|
|
691
|
-
const queries =
|
|
921
|
+
const queries = toArray(query).map((q) => String(q).toLowerCase());
|
|
692
922
|
function match(value, q) {
|
|
693
923
|
return String(value).toLowerCase().includes(q);
|
|
694
924
|
}
|
|
@@ -731,7 +961,7 @@ function createFilter(options = {}) {
|
|
|
731
961
|
return { items: computed(() => {
|
|
732
962
|
const q = toValue(queryRef);
|
|
733
963
|
query.value = q;
|
|
734
|
-
const queries = (
|
|
964
|
+
const queries = toArray(q).filter((q$1) => String(q$1).trim());
|
|
735
965
|
if (queries.length === 0) return itemsRef.value;
|
|
736
966
|
const queryParam = queries.length === 1 ? queries[0] : queries;
|
|
737
967
|
return itemsRef.value.filter((item) => filterFunction(queryParam, item));
|
|
@@ -894,7 +1124,7 @@ function createForm(options) {
|
|
|
894
1124
|
return parse(validateOn).includes(event);
|
|
895
1125
|
}
|
|
896
1126
|
const isValidating = computed(() => {
|
|
897
|
-
for (const ticket of registry.
|
|
1127
|
+
for (const ticket of registry.values()) if (ticket.isValidating.value) return true;
|
|
898
1128
|
return false;
|
|
899
1129
|
});
|
|
900
1130
|
const isValid = computed(() => {
|
|
@@ -902,7 +1132,7 @@ function createForm(options) {
|
|
|
902
1132
|
for (const ticket of registry.values()) {
|
|
903
1133
|
hasFields = true;
|
|
904
1134
|
if (ticket.isValid.value === false) return false;
|
|
905
|
-
if (ticket.isValid.value
|
|
1135
|
+
if (/* @__PURE__ */ isNull(ticket.isValid.value)) return null;
|
|
906
1136
|
}
|
|
907
1137
|
return hasFields ? true : null;
|
|
908
1138
|
});
|
|
@@ -918,7 +1148,7 @@ function createForm(options) {
|
|
|
918
1148
|
return validating.map((id$1) => registry.get(id$1)).filter(Boolean).every((ticket) => ticket.isValid.value === true);
|
|
919
1149
|
}
|
|
920
1150
|
function register(registration) {
|
|
921
|
-
const model = shallowRef(registration.value
|
|
1151
|
+
const model = shallowRef(/* @__PURE__ */ isNullOrUndefined(registration.value) ? "" : toValue(registration.value));
|
|
922
1152
|
const rules = registration.rules || [];
|
|
923
1153
|
const errors = shallowRef([]);
|
|
924
1154
|
const isValidating$1 = shallowRef(false);
|
|
@@ -1117,12 +1347,14 @@ function useForm(namespace = "v0:form") {
|
|
|
1117
1347
|
*/
|
|
1118
1348
|
function useIntersectionObserver(target, callback, options = {}) {
|
|
1119
1349
|
const { isHydrated } = useHydration();
|
|
1350
|
+
const targetRef = isRef(target) ? target : shallowRef(target);
|
|
1120
1351
|
const observer = shallowRef();
|
|
1121
1352
|
const isPaused = shallowRef(false);
|
|
1122
1353
|
const isIntersecting = shallowRef(false);
|
|
1123
1354
|
const isActive = toRef(() => !!observer.value);
|
|
1124
1355
|
function setup() {
|
|
1125
|
-
if (
|
|
1356
|
+
if (/* @__PURE__ */ isNull(observer.value)) return;
|
|
1357
|
+
if (!isHydrated.value || !SUPPORTS_INTERSECTION_OBSERVER || !targetRef.value || isPaused.value) return;
|
|
1126
1358
|
observer.value = new IntersectionObserver((entries) => {
|
|
1127
1359
|
const transformedEntries = entries.map((entry) => ({
|
|
1128
1360
|
boundingClientRect: entry.boundingClientRect,
|
|
@@ -1136,26 +1368,29 @@ function useIntersectionObserver(target, callback, options = {}) {
|
|
|
1136
1368
|
const latestEntry = transformedEntries.at(-1);
|
|
1137
1369
|
if (latestEntry) isIntersecting.value = latestEntry.isIntersecting;
|
|
1138
1370
|
callback(transformedEntries);
|
|
1371
|
+
if (options.once && latestEntry?.isIntersecting) stop();
|
|
1139
1372
|
}, {
|
|
1140
1373
|
root: options.root || null,
|
|
1141
1374
|
rootMargin: options.rootMargin || "0px",
|
|
1142
1375
|
threshold: options.threshold || 0
|
|
1143
1376
|
});
|
|
1144
|
-
observer.value.observe(
|
|
1377
|
+
observer.value.observe(targetRef.value);
|
|
1145
1378
|
if (options.immediate) callback([{
|
|
1146
|
-
boundingClientRect:
|
|
1379
|
+
boundingClientRect: targetRef.value.getBoundingClientRect(),
|
|
1147
1380
|
intersectionRatio: 0,
|
|
1148
1381
|
intersectionRect: new DOMRect(0, 0, 0, 0),
|
|
1149
1382
|
isIntersecting: false,
|
|
1150
1383
|
rootBounds: null,
|
|
1151
|
-
target:
|
|
1384
|
+
target: targetRef.value,
|
|
1152
1385
|
time: performance.now()
|
|
1153
1386
|
}]);
|
|
1154
1387
|
}
|
|
1155
|
-
|
|
1388
|
+
watchEffect(() => {
|
|
1389
|
+
const hydrated = isHydrated.value;
|
|
1390
|
+
const target$1 = targetRef.value;
|
|
1156
1391
|
cleanup();
|
|
1157
|
-
setup();
|
|
1158
|
-
}
|
|
1392
|
+
if (hydrated && target$1) setup();
|
|
1393
|
+
});
|
|
1159
1394
|
function cleanup() {
|
|
1160
1395
|
if (observer.value) {
|
|
1161
1396
|
observer.value.disconnect();
|
|
@@ -1173,6 +1408,7 @@ function useIntersectionObserver(target, callback, options = {}) {
|
|
|
1173
1408
|
}
|
|
1174
1409
|
function stop() {
|
|
1175
1410
|
cleanup();
|
|
1411
|
+
observer.value = null;
|
|
1176
1412
|
}
|
|
1177
1413
|
onScopeDispose(stop, true);
|
|
1178
1414
|
return {
|
|
@@ -1269,6 +1505,10 @@ function useElementIntersection(target, options = {}) {
|
|
|
1269
1505
|
* ```ts
|
|
1270
1506
|
* import { useKeydown } from '@vuetify/v0'
|
|
1271
1507
|
*
|
|
1508
|
+
* // Single handler
|
|
1509
|
+
* useKeydown({ key: 'Escape', handler: () => console.log('Escape pressed') })
|
|
1510
|
+
*
|
|
1511
|
+
* // Multiple handlers
|
|
1272
1512
|
* const { isActive, start, stop } = useKeydown([
|
|
1273
1513
|
* { key: 'Enter', handler: () => console.log('Enter pressed') },
|
|
1274
1514
|
* { key: 'Escape', handler: () => console.log('Escape pressed'), preventDefault: true },
|
|
@@ -1284,8 +1524,7 @@ function useKeydown(handlers) {
|
|
|
1284
1524
|
let cleanup = null;
|
|
1285
1525
|
const isActive = toRef(() => !!cleanup);
|
|
1286
1526
|
function onKeydown(event) {
|
|
1287
|
-
const
|
|
1288
|
-
const handler = (Array.isArray(handlerList) ? handlerList : [handlerList]).find((h$1) => h$1.key === event.key);
|
|
1527
|
+
const handler = toArray(toValue(handlers)).find((h$1) => h$1.key === event.key);
|
|
1289
1528
|
if (handler) {
|
|
1290
1529
|
if (handler.preventDefault) event.preventDefault();
|
|
1291
1530
|
if (handler.stopPropagation) event.stopPropagation();
|
|
@@ -1375,7 +1614,7 @@ function useMutationObserver(target, callback, options = {}) {
|
|
|
1375
1614
|
const { isHydrated } = useHydration();
|
|
1376
1615
|
const observer = shallowRef();
|
|
1377
1616
|
const isPaused = shallowRef(false);
|
|
1378
|
-
const isActive =
|
|
1617
|
+
const isActive = toRef(() => !!observer.value);
|
|
1379
1618
|
const observerOptions = {
|
|
1380
1619
|
childList: options.childList ?? true,
|
|
1381
1620
|
attributes: options.attributes ?? false,
|
|
@@ -1386,6 +1625,7 @@ function useMutationObserver(target, callback, options = {}) {
|
|
|
1386
1625
|
attributeFilter: options.attributeFilter
|
|
1387
1626
|
};
|
|
1388
1627
|
function setup() {
|
|
1628
|
+
if (/* @__PURE__ */ isNull(observer.value)) return;
|
|
1389
1629
|
if (!isHydrated.value || !SUPPORTS_MUTATION_OBSERVER || !target.value || isPaused.value) return;
|
|
1390
1630
|
observer.value = new MutationObserver((mutations) => {
|
|
1391
1631
|
callback(mutations.map((mutation) => ({
|
|
@@ -1399,6 +1639,7 @@ function useMutationObserver(target, callback, options = {}) {
|
|
|
1399
1639
|
attributeNamespace: mutation.attributeNamespace,
|
|
1400
1640
|
oldValue: mutation.oldValue
|
|
1401
1641
|
})));
|
|
1642
|
+
if (options.once) stop();
|
|
1402
1643
|
});
|
|
1403
1644
|
observer.value.observe(target.value, observerOptions);
|
|
1404
1645
|
if (options.immediate) {
|
|
@@ -1419,12 +1660,15 @@ function useMutationObserver(target, callback, options = {}) {
|
|
|
1419
1660
|
attributeNamespace: null,
|
|
1420
1661
|
oldValue: null
|
|
1421
1662
|
}]);
|
|
1663
|
+
if (options.once) stop();
|
|
1422
1664
|
}
|
|
1423
1665
|
}
|
|
1424
|
-
|
|
1666
|
+
watchEffect(() => {
|
|
1667
|
+
const hydrated = isHydrated.value;
|
|
1668
|
+
const el = target.value;
|
|
1425
1669
|
cleanup();
|
|
1426
|
-
setup();
|
|
1427
|
-
}
|
|
1670
|
+
if (hydrated && el) setup();
|
|
1671
|
+
});
|
|
1428
1672
|
function cleanup() {
|
|
1429
1673
|
if (observer.value) {
|
|
1430
1674
|
observer.value.disconnect();
|
|
@@ -1441,6 +1685,7 @@ function useMutationObserver(target, callback, options = {}) {
|
|
|
1441
1685
|
}
|
|
1442
1686
|
function stop() {
|
|
1443
1687
|
cleanup();
|
|
1688
|
+
observer.value = null;
|
|
1444
1689
|
}
|
|
1445
1690
|
onScopeDispose(stop, true);
|
|
1446
1691
|
return {
|
|
@@ -2089,10 +2334,12 @@ var Vuetify0ThemeAdapter = class extends ThemeAdapter {
|
|
|
2089
2334
|
}
|
|
2090
2335
|
upsert(styles) {
|
|
2091
2336
|
if (!IN_BROWSER) return;
|
|
2092
|
-
|
|
2337
|
+
const selector = this.stylesheetId.startsWith("#") ? this.stylesheetId : `#${this.stylesheetId}`;
|
|
2338
|
+
const id = this.stylesheetId.startsWith("#") ? this.stylesheetId.slice(1) : this.stylesheetId;
|
|
2339
|
+
let styleEl = document.querySelector(selector);
|
|
2093
2340
|
if (!styleEl) {
|
|
2094
2341
|
styleEl = document.createElement("style");
|
|
2095
|
-
styleEl.id =
|
|
2342
|
+
styleEl.id = id;
|
|
2096
2343
|
if (this.cspNonce) styleEl.setAttribute("nonce", this.cspNonce);
|
|
2097
2344
|
document.head.append(styleEl);
|
|
2098
2345
|
}
|
|
@@ -2847,7 +3094,7 @@ function useVirtual(items, _options = {}) {
|
|
|
2847
3094
|
cancelAnimationFrame(raf);
|
|
2848
3095
|
cancelAnimationFrame(rebuildRaf);
|
|
2849
3096
|
cancelAnimationFrame(edgeRaf);
|
|
2850
|
-
});
|
|
3097
|
+
}, true);
|
|
2851
3098
|
return {
|
|
2852
3099
|
element,
|
|
2853
3100
|
items: computedItems,
|
|
@@ -2863,4 +3110,4 @@ function useVirtual(items, _options = {}) {
|
|
|
2863
3110
|
}
|
|
2864
3111
|
|
|
2865
3112
|
//#endregion
|
|
2866
|
-
export { useForm as A,
|
|
3113
|
+
export { useForm as A, createBreakpoints as B, PermissionAdapter as C, useIntersectionObserver as D, useElementIntersection as E, createFeatures as F, useEventListener as G, createBreakpointsPlugin as H, createFeaturesContext as I, useWindowEventListener as K, createFeaturesPlugin as L, createFilterContext as M, useFilter as N, createForm as O, useFilterContext as P, useFeatures as R, usePermissions as S, useKeydown as T, useBreakpoints as U, createBreakpointsContext as V, useDocumentEventListener as W, createQueueContext as _, useTimeline as a, createPermissionsContext as b, createThemePlugin as c, createStorage as d, createStorageContext as f, createQueue as g, MemoryAdapter as h, createTimelineContext as i, createFilter as j, createFormContext as k, useTheme as l, useStorage as m, useToggleScope as n, createTheme as o, createStoragePlugin as p, toReactive as q, createTimeline as r, createThemeContext as s, useVirtual as t, Vuetify0ThemeAdapter as u, useQueue as v, useMutationObserver as w, createPermissionsPlugin as x, createPermissions as y, useClickOutside as z };
|