From a5b14b6d9eaab36afac44da74afb1d84802d875f Mon Sep 17 00:00:00 2001 From: Henry Aviles Date: Wed, 13 May 2026 19:25:12 -0400 Subject: [PATCH 1/3] feat: new composable --- dev/src/components.d.ts | 3 + dev/src/composables.d.ts | 88 +++++-- packages/0/src/composables/index.ts | 1 + packages/0/src/composables/useIdle/index.ts | 242 ++++++++++++++++++++ 4 files changed, 315 insertions(+), 19 deletions(-) create mode 100644 packages/0/src/composables/useIdle/index.ts diff --git a/dev/src/components.d.ts b/dev/src/components.d.ts index 5b3969f93..bcaec4949 100644 --- a/dev/src/components.d.ts +++ b/dev/src/components.d.ts @@ -95,6 +95,9 @@ declare module 'vue' { NumberFieldIncrement: typeof import('./../../packages/0/src/components/NumberField/NumberFieldIncrement.vue')['default'] NumberFieldRoot: typeof import('./../../packages/0/src/components/NumberField/NumberFieldRoot.vue')['default'] NumberFieldScrub: typeof import('./../../packages/0/src/components/NumberField/NumberFieldScrub.vue')['default'] + OverflowIndicator: typeof import('./../../packages/0/src/components/Overflow/OverflowIndicator.vue')['default'] + OverflowItem: typeof import('./../../packages/0/src/components/Overflow/OverflowItem.vue')['default'] + OverflowRoot: typeof import('./../../packages/0/src/components/Overflow/OverflowRoot.vue')['default'] PaginationEllipsis: typeof import('./../../packages/0/src/components/Pagination/PaginationEllipsis.vue')['default'] PaginationFirst: typeof import('./../../packages/0/src/components/Pagination/PaginationFirst.vue')['default'] PaginationItem: typeof import('./../../packages/0/src/components/Pagination/PaginationItem.vue')['default'] diff --git a/dev/src/composables.d.ts b/dev/src/composables.d.ts index 674e2484a..6ca35f6f2 100644 --- a/dev/src/composables.d.ts +++ b/dev/src/composables.d.ts @@ -8,20 +8,30 @@ export {} declare global { const COMMON_ELEMENTS: typeof import('../../packages/0/src/constants/htmlElements').COMMON_ELEMENTS const ClientAdapter: typeof import('../../packages/0/src/composables/createDataTable/index').ClientAdapter + const ClientComboboxAdapter: typeof import('../../packages/0/src/composables/createCombobox/index').ClientComboboxAdapter + const ClientDataTableAdapter: typeof import('../../packages/0/src/composables/createDataTable/index').ClientDataTableAdapter + const ComboboxAdapter: typeof import('../../packages/0/src/composables/createCombobox/index').ComboboxAdapter const ComboboxClientAdapter: typeof import('../../packages/0/src/composables/createCombobox/index').ComboboxClientAdapter const ComboboxServerAdapter: typeof import('../../packages/0/src/composables/createCombobox/index').ComboboxServerAdapter const ConsolaLoggerAdapter: typeof import('../../packages/0/src/composables/useLogger/index').ConsolaLoggerAdapter const DEFAULT_DARK: typeof import('../../packages/paper/src/composables/useTheme/index').DEFAULT_DARK const DEFAULT_LIGHT: typeof import('../../packages/paper/src/composables/useTheme/index').DEFAULT_LIGHT const DataTableAdapter: typeof import('../../packages/0/src/composables/createDataTable/index').DataTableAdapter + const DragDropAdapter: typeof import('../../packages/0/src/composables/useDragDrop/index').DragDropAdapter const EffectScope: typeof import('vue').EffectScope const FeaturesAdapter: typeof import('../../packages/0/src/composables/useFeatures/index').FeaturesAdapter const FlagsmithFeatureAdapter: typeof import('../../packages/0/src/composables/useFeatures/index').FlagsmithFeatureAdapter const IN_BROWSER: typeof import('../../packages/0/src/constants/globals').IN_BROWSER + const KeyboardAdapter: typeof import('../../packages/0/src/composables/useDragDrop/index').KeyboardAdapter const LaunchDarklyFeatureAdapter: typeof import('../../packages/0/src/composables/useFeatures/index').LaunchDarklyFeatureAdapter + const LocaleAdapter: typeof import('../../packages/0/src/composables/useLocale/index').LocaleAdapter + const LoggerAdapter: typeof import('../../packages/0/src/composables/useLogger/index').LoggerAdapter const MemoryAdapter: typeof import('../../packages/0/src/composables/useStorage/index').MemoryAdapter + const MemoryStorageAdapter: typeof import('../../packages/0/src/composables/useStorage/index').MemoryStorageAdapter const PermissionAdapter: typeof import('../../packages/0/src/composables/usePermissions/index').PermissionAdapter + const PermissionsAdapter: typeof import('../../packages/0/src/composables/usePermissions/index').PermissionsAdapter const PinoLoggerAdapter: typeof import('../../packages/0/src/composables/useLogger/index').PinoLoggerAdapter + const PointerAdapter: typeof import('../../packages/0/src/composables/useDragDrop/index').PointerAdapter const PostHogFeatureAdapter: typeof import('../../packages/0/src/composables/useFeatures/index').PostHogFeatureAdapter const SELF_CLOSING_TAGS: typeof import('../../packages/0/src/constants/htmlElements').SELF_CLOSING_TAGS const SUPPORTS_INTERSECTION_OBSERVER: typeof import('../../packages/0/src/constants/globals').SUPPORTS_INTERSECTION_OBSERVER @@ -30,11 +40,18 @@ declare global { const SUPPORTS_OBSERVER: typeof import('../../packages/0/src/constants/globals').SUPPORTS_OBSERVER const SUPPORTS_TOUCH: typeof import('../../packages/0/src/constants/globals').SUPPORTS_TOUCH const ServerAdapter: typeof import('../../packages/0/src/composables/createDataTable/index').ServerAdapter + const ServerComboboxAdapter: typeof import('../../packages/0/src/composables/createCombobox/index').ServerComboboxAdapter + const ServerDataTableAdapter: typeof import('../../packages/0/src/composables/createDataTable/index').ServerDataTableAdapter + const StorageAdapter: typeof import('../../packages/0/src/composables/useStorage/index').StorageAdapter const TemporalDateAdapter: typeof import('../../packages/0/src/composables/useDate/index').TemporalDateAdapter + const V0LocaleAdapter: typeof import('../../packages/0/src/composables/useLocale/index').V0LocaleAdapter + const V0LoggerAdapter: typeof import('../../packages/0/src/composables/useLogger/index').V0LoggerAdapter + const V0RtlAdapter: typeof import('../../packages/0/src/composables/useRtl/index').V0RtlAdapter const V0StyleSheetThemeAdapter: typeof import('../../packages/0/src/composables/useTheme/index').V0StyleSheetThemeAdapter const V0UnheadThemeAdapter: typeof import('../../packages/0/src/composables/useTheme/index').V0UnheadThemeAdapter const V0_ELEVATION_KEY: typeof import('../../packages/paper/src/composables/useElevation/index').V0_ELEVATION_KEY const VirtualAdapter: typeof import('../../packages/0/src/composables/createDataTable/index').VirtualAdapter + const VirtualDataTableAdapter: typeof import('../../packages/0/src/composables/createDataTable/index').VirtualDataTableAdapter const Vuetify0DateAdapter: typeof import('../../packages/0/src/composables/useDate/index').Vuetify0DateAdapter const Vuetify0LocaleAdapter: typeof import('../../packages/0/src/composables/useLocale/index').Vuetify0LocaleAdapter const Vuetify0LoggerAdapter: typeof import('../../packages/0/src/composables/useLogger/index').Vuetify0LoggerAdapter @@ -75,6 +92,7 @@ declare global { const createHydrationContext: typeof import('../../packages/0/src/composables/useHydration/index').createHydrationContext const createHydrationPlugin: typeof import('../../packages/0/src/composables/useHydration/index').createHydrationPlugin const createInput: typeof import('../../packages/0/src/composables/createInput/index').createInput + const createKanban: typeof import('../../packages/0/src/composables/createKanban/index').createKanban const createLocale: typeof import('../../packages/0/src/composables/useLocale/index').createLocale const createLocaleContext: typeof import('../../packages/0/src/composables/useLocale/index').createLocaleContext const createLocaleFallback: typeof import('../../packages/0/src/composables/useLocale/index').createLocaleFallback @@ -120,6 +138,7 @@ declare global { const createSingle: typeof import('../../packages/0/src/composables/createSingle/index').createSingle const createSingleContext: typeof import('../../packages/0/src/composables/createSingle/index').createSingleContext const createSlider: typeof import('../../packages/0/src/composables/createSlider/index').createSlider + const createSortable: typeof import('../../packages/0/src/composables/createSortable/index').createSortable const createStack: typeof import('../../packages/0/src/composables/useStack/index').createStack const createStackContext: typeof import('../../packages/0/src/composables/useStack/index').createStackContext const createStackPlugin: typeof import('../../packages/0/src/composables/useStack/index').createStackPlugin @@ -179,6 +198,7 @@ declare global { const isStandardSchema: typeof import('../../packages/0/src/composables/useRules/index').isStandardSchema const isString: typeof import('../../packages/0/src/utilities/helpers').isString const isSymbol: typeof import('../../packages/0/src/utilities/helpers').isSymbol + const isThenable: typeof import('../../packages/0/src/utilities/helpers').isThenable const isUndefined: typeof import('../../packages/0/src/utilities/helpers').isUndefined const markRaw: typeof import('vue').markRaw const mergeDeep: typeof import('../../packages/0/src/utilities/helpers').mergeDeep @@ -240,8 +260,10 @@ declare global { const useCssVars: typeof import('vue').useCssVars const useDataTable: typeof import('../../packages/0/src/composables/createDataTable/index').useDataTable const useDate: typeof import('../../packages/0/src/composables/useDate/index').useDate + const useDelay: typeof import('../../packages/0/src/composables/useDelay/index').useDelay const useDimensions: typeof import('../../packages/paper/src/composables/useDimensions/index').useDimensions const useDocumentEventListener: typeof import('../../packages/0/src/composables/useEventListener/index').useDocumentEventListener + const useDragDrop: typeof import('../../packages/0/src/composables/useDragDrop/index').useDragDrop const useElementIntersection: typeof import('../../packages/0/src/composables/useIntersectionObserver/index').useElementIntersection const useElementSize: typeof import('../../packages/0/src/composables/useResizeObserver/index').useElementSize const useElevation: typeof import('../../packages/paper/src/composables/useElevation/index').useElevation @@ -254,6 +276,7 @@ declare global { const useHotkey: typeof import('../../packages/0/src/composables/useHotkey/index').useHotkey const useHydration: typeof import('../../packages/0/src/composables/useHydration/index').useHydration const useId: typeof import('../../packages/0/src/utilities/helpers').useId + const useIdle: typeof import('../../packages/0/src/composables/useIdle/index').useIdle const useImage: typeof import('../../packages/0/src/composables/useImage/index').useImage const useIntersectionObserver: typeof import('../../packages/0/src/composables/useIntersectionObserver/index').useIntersectionObserver const useLazy: typeof import('../../packages/0/src/composables/useLazy/index').useLazy @@ -336,13 +359,13 @@ declare global { export type { BreadcrumbTicketInput, BreadcrumbTicket, BreadcrumbsContext, BreadcrumbsOptions, BreadcrumbsContextOptions } from '../../packages/0/src/composables/createBreadcrumbs/index' import('../../packages/0/src/composables/createBreadcrumbs/index') // @ts-ignore - export type { ComboboxOptions, ComboboxContext, ComboboxAdapterContext, ComboboxAdapterInterface, ComboboxAdapterResult, ComboboxClientAdapterOptions } from '../../packages/0/src/composables/createCombobox/index' + export type { ComboboxOptions, ComboboxContext, ClientComboboxAdapterOptions, ComboboxAdapterContext, ComboboxAdapterResult } from '../../packages/0/src/composables/createCombobox/index' import('../../packages/0/src/composables/createCombobox/index') // @ts-ignore export type { ContextKey, CreateContextOptions } from '../../packages/0/src/composables/createContext/index' import('../../packages/0/src/composables/createContext/index') // @ts-ignore - export type { KeysOfType, SelectStrategy, DataTableColumn, DataTableSort, DataTableSelection, DataTableGroup, DataTableGrouping, DataTableExpansion, DataTableOptions, DataTableContext, DataTableContextOptions, DataTableAdapterContext, DataTableAdapterInterface, DataTableAdapterResult, SortDirection, SortEntry, ServerAdapterOptions, ColumnNode, InternalHeader } from '../../packages/0/src/composables/createDataTable/index' + export type { KeysOfType, SelectStrategy, DataTableColumn, DataTableSort, DataTableSelection, DataTableGroup, DataTableGrouping, DataTableExpansion, DataTableOptions, DataTableContext, DataTableContextOptions, DataTableAdapterContext, DataTableAdapterResult, SortDirection, SortEntry, ServerDataTableAdapterOptions, ColumnNode, InternalHeader } from '../../packages/0/src/composables/createDataTable/index' import('../../packages/0/src/composables/createDataTable/index') // @ts-ignore export type { Primitive, FilterQuery, FilterItem, FilterMode, FilterFunction, FilterOptions, FilterResult, FilterContext, FilterContextOptions } from '../../packages/0/src/composables/createFilter/index' @@ -357,6 +380,9 @@ declare global { export type { InputState, InputOptions, InputContext } from '../../packages/0/src/composables/createInput/index' import('../../packages/0/src/composables/createInput/index') // @ts-ignore + export type { KanbanOptions, KanbanColumnTicketInput, KanbanColumnTicket, KanbanTransferPayload, KanbanEventListener, KanbanContext } from '../../packages/0/src/composables/createKanban/index' + import('../../packages/0/src/composables/createKanban/index') + // @ts-ignore export type { ModelTicketInput, ModelTicket, ModelContext, ModelOptions } from '../../packages/0/src/composables/createModel/index' import('../../packages/0/src/composables/createModel/index') // @ts-ignore @@ -396,6 +422,9 @@ declare global { export type { SliderTicketInput, SliderOptions, SliderContext } from '../../packages/0/src/composables/createSlider/index' import('../../packages/0/src/composables/createSlider/index') // @ts-ignore + export type { SortableTicketInput, SortableTicket, SortableOptions, SortableMovePayload, SortableEventListener, SortableContext } from '../../packages/0/src/composables/createSortable/index' + import('../../packages/0/src/composables/createSortable/index') + // @ts-ignore export type { StepTicketInput, StepTicket, StepContext, StepOptions, StepContextOptions } from '../../packages/0/src/composables/createStep/index' import('../../packages/0/src/composables/createStep/index') // @ts-ignore @@ -426,10 +455,16 @@ declare global { export type { DateContext, DateOptions, DateContextOptions, DatePluginOptions, DateAdapter } from '../../packages/0/src/composables/useDate/index' import('../../packages/0/src/composables/useDate/index') // @ts-ignore + export type { UseDelayOptions, UseDelayStartOptions, UseDelayReturn } from '../../packages/0/src/composables/useDelay/index' + import('../../packages/0/src/composables/useDelay/index') + // @ts-ignore + export type { Orientation, DragType, DropIndicator, DropPosition, DragVia, ActiveDrag, DraggableTicketInput, DraggableTicket, DropZoneTicketInput, DropZoneTicket, DragDropPlugin, DragDropOptions, DraggablesContext, ZonesContext, DragDropContext, DragDropAdapterContext, DragDropAdapterEmit, KeyboardAdapterOptions, PointerAdapterOptions } from '../../packages/0/src/composables/useDragDrop/index' + import('../../packages/0/src/composables/useDragDrop/index') + // @ts-ignore export type { CleanupFunction, EventHandler } from '../../packages/0/src/composables/useEventListener/index' import('../../packages/0/src/composables/useEventListener/index') // @ts-ignore - export type { FeatureTicketInput, FeatureTicket, FeatureContext, FeatureOptions, FeatureContextOptions, FeaturePluginOptions, FeaturesAdapterFlags, FeaturesAdapterInterface, FeaturesAdapterValue } from '../../packages/0/src/composables/useFeatures/index' + export type { FeatureTicketInput, FeatureTicket, FeatureContext, FeatureOptions, FeatureContextOptions, FeaturePluginOptions, FeaturesAdapterFlags, FeaturesAdapterValue } from '../../packages/0/src/composables/useFeatures/index' import('../../packages/0/src/composables/useFeatures/index') // @ts-ignore export type { UseHotkeyOptions, UseHotkeyReturn, PlatformContext } from '../../packages/0/src/composables/useHotkey/index' @@ -438,6 +473,9 @@ declare global { export type { HydrationContext, HydrationOptions, HydrationContextOptions, HydrationPluginOptions } from '../../packages/0/src/composables/useHydration/index' import('../../packages/0/src/composables/useHydration/index') // @ts-ignore + export type { IdleStage, UseIdleOptions, UseIdleContext } from '../../packages/0/src/composables/useIdle/index' + import('../../packages/0/src/composables/useIdle/index') + // @ts-ignore export type { ImageStatus, UseImageOptions, UseImageReturn } from '../../packages/0/src/composables/useImage/index' import('../../packages/0/src/composables/useImage/index') // @ts-ignore @@ -447,10 +485,10 @@ declare global { export type { LazyOptions, LazyContext } from '../../packages/0/src/composables/useLazy/index' import('../../packages/0/src/composables/useLazy/index') // @ts-ignore - export type { LocaleRecord, LocaleTicketInput, LocaleTicket, LocaleContext, LocaleOptions, LocaleContextOptions, LocalePluginOptions, LocaleAdapter, LocaleAdapterContext } from '../../packages/0/src/composables/useLocale/index' + export type { LocaleRecord, LocaleTicketInput, LocaleTicket, LocaleContext, LocaleOptions, LocaleContextOptions, LocalePluginOptions, LocaleAdapterContext } from '../../packages/0/src/composables/useLocale/index' import('../../packages/0/src/composables/useLocale/index') // @ts-ignore - export type { LoggerContext, LoggerOptions, LoggerContextOptions, LoggerPluginOptions, LoggerAdapter, LogLevel } from '../../packages/0/src/composables/useLogger/index' + export type { LoggerContext, LoggerOptions, LoggerContextOptions, LoggerPluginOptions, LogLevel } from '../../packages/0/src/composables/useLogger/index' import('../../packages/0/src/composables/useLogger/index') // @ts-ignore export type { MediaQueryContext } from '../../packages/0/src/composables/useMediaQuery/index' @@ -459,10 +497,10 @@ declare global { export type { ObservableNodeList, MutationObserverRecord, UseMutationObserverOptions, UseMutationObserverReturn } from '../../packages/0/src/composables/useMutationObserver/index' import('../../packages/0/src/composables/useMutationObserver/index') // @ts-ignore - export type { NotificationSeverity, NotificationInput, NotificationTicket, NotificationsAdapterContext, NotificationsAdapterInterface, NotificationsOptions, NotificationsContext, NotificationsPluginOptions } from '../../packages/0/src/composables/useNotifications/index' + export type { NotificationSeverity, NotificationInput, NotificationTicket, NotificationsAdapterContext, NotificationsOptions, NotificationsContext, NotificationsPluginOptions } from '../../packages/0/src/composables/useNotifications/index' import('../../packages/0/src/composables/useNotifications/index') // @ts-ignore - export type { PermissionTicket, PermissionContext, PermissionOptions, PermissionContextOptions, PermissionPluginOptions, PermissionAdapterInterface } from '../../packages/0/src/composables/usePermissions/index' + export type { PermissionTicket, PermissionContext, PermissionOptions, PermissionContextOptions, PermissionPluginOptions } from '../../packages/0/src/composables/usePermissions/index' import('../../packages/0/src/composables/usePermissions/index') // @ts-ignore export type { PopoverOptions, PopoverReturn } from '../../packages/0/src/composables/usePopover/index' @@ -495,7 +533,7 @@ declare global { export type { StackTicketInput, StackTicket, StackContext, StackOptions, StackContextOptions, StackPluginOptions } from '../../packages/0/src/composables/useStack/index' import('../../packages/0/src/composables/useStack/index') // @ts-ignore - export type { StorageContext, StorageOptions, StorageContextOptions, StoragePluginOptions, StorageAdapter, StorageType } from '../../packages/0/src/composables/useStorage/index' + export type { StorageContext, StorageOptions, StorageContextOptions, StoragePluginOptions, StorageType } from '../../packages/0/src/composables/useStorage/index' import('../../packages/0/src/composables/useStorage/index') // @ts-ignore export type { Colors, ThemeColors, ThemeRecord, ThemeTicketInput, ThemeTicket, ThemeContext, ThemeOptions, ThemeContextOptions, ThemePluginOptions, ThemeAdapter } from '../../packages/0/src/composables/useTheme/index' @@ -522,34 +560,40 @@ import { UnwrapRef } from 'vue' declare module 'vue' { interface GlobalComponents {} interface ComponentCustomProperties { - readonly COMMON_ELEMENTS: UnwrapRef - readonly ClientAdapter: UnwrapRef - readonly ComboboxClientAdapter: UnwrapRef - readonly ComboboxServerAdapter: UnwrapRef + readonly ClientComboboxAdapter: UnwrapRef + readonly ClientDataTableAdapter: UnwrapRef + readonly ComboboxAdapter: UnwrapRef readonly ConsolaLoggerAdapter: UnwrapRef readonly DEFAULT_DARK: UnwrapRef readonly DEFAULT_LIGHT: UnwrapRef readonly DataTableAdapter: UnwrapRef + readonly DragDropAdapter: UnwrapRef readonly EffectScope: UnwrapRef readonly FeaturesAdapter: UnwrapRef readonly IN_BROWSER: UnwrapRef - readonly MemoryAdapter: UnwrapRef - readonly PermissionAdapter: UnwrapRef + readonly KeyboardAdapter: UnwrapRef + readonly LocaleAdapter: UnwrapRef + readonly LoggerAdapter: UnwrapRef + readonly MemoryStorageAdapter: UnwrapRef + readonly PermissionsAdapter: UnwrapRef readonly PinoLoggerAdapter: UnwrapRef + readonly PointerAdapter: UnwrapRef readonly SELF_CLOSING_TAGS: UnwrapRef readonly SUPPORTS_INTERSECTION_OBSERVER: UnwrapRef readonly SUPPORTS_MATCH_MEDIA: UnwrapRef readonly SUPPORTS_MUTATION_OBSERVER: UnwrapRef readonly SUPPORTS_OBSERVER: UnwrapRef readonly SUPPORTS_TOUCH: UnwrapRef - readonly ServerAdapter: UnwrapRef + readonly ServerComboboxAdapter: UnwrapRef + readonly ServerDataTableAdapter: UnwrapRef + readonly StorageAdapter: UnwrapRef + readonly V0LocaleAdapter: UnwrapRef + readonly V0LoggerAdapter: UnwrapRef + readonly V0RtlAdapter: UnwrapRef readonly V0StyleSheetThemeAdapter: UnwrapRef readonly V0UnheadThemeAdapter: UnwrapRef readonly V0_ELEVATION_KEY: UnwrapRef - readonly VirtualAdapter: UnwrapRef - readonly Vuetify0LocaleAdapter: UnwrapRef - readonly Vuetify0LoggerAdapter: UnwrapRef - readonly Vuetify0RtlAdapter: UnwrapRef + readonly VirtualDataTableAdapter: UnwrapRef readonly __LOGGER_ENABLED__: UnwrapRef readonly apca: UnwrapRef readonly clamp: UnwrapRef @@ -584,6 +628,7 @@ declare module 'vue' { readonly createHydrationContext: UnwrapRef readonly createHydrationPlugin: UnwrapRef readonly createInput: UnwrapRef + readonly createKanban: UnwrapRef readonly createLocale: UnwrapRef readonly createLocaleContext: UnwrapRef readonly createLocaleFallback: UnwrapRef @@ -629,6 +674,7 @@ declare module 'vue' { readonly createSingle: UnwrapRef readonly createSingleContext: UnwrapRef readonly createSlider: UnwrapRef + readonly createSortable: UnwrapRef readonly createStack: UnwrapRef readonly createStackContext: UnwrapRef readonly createStackPlugin: UnwrapRef @@ -686,6 +732,7 @@ declare module 'vue' { readonly isStandardSchema: UnwrapRef readonly isString: UnwrapRef readonly isSymbol: UnwrapRef + readonly isThenable: UnwrapRef readonly isUndefined: UnwrapRef readonly markRaw: UnwrapRef readonly mergeDeep: UnwrapRef @@ -745,8 +792,10 @@ declare module 'vue' { readonly useCssVars: UnwrapRef readonly useDataTable: UnwrapRef readonly useDate: UnwrapRef + readonly useDelay: UnwrapRef readonly useDimensions: UnwrapRef readonly useDocumentEventListener: UnwrapRef + readonly useDragDrop: UnwrapRef readonly useElementIntersection: UnwrapRef readonly useElementSize: UnwrapRef readonly useElevation: UnwrapRef @@ -758,6 +807,7 @@ declare module 'vue' { readonly useHotkey: UnwrapRef readonly useHydration: UnwrapRef readonly useId: UnwrapRef + readonly useIdle: UnwrapRef readonly useImage: UnwrapRef readonly useIntersectionObserver: UnwrapRef readonly useLazy: UnwrapRef diff --git a/packages/0/src/composables/index.ts b/packages/0/src/composables/index.ts index 0f1363371..d0c0df430 100644 --- a/packages/0/src/composables/index.ts +++ b/packages/0/src/composables/index.ts @@ -41,6 +41,7 @@ export * from './useEventListener' export * from './useFeatures' export * from './useHotkey' export * from './useHydration' +export * from './useIdle' export * from './useImage' export * from './useIntersectionObserver' export * from './useLazy' diff --git a/packages/0/src/composables/useIdle/index.ts b/packages/0/src/composables/useIdle/index.ts new file mode 100644 index 000000000..c831a821f --- /dev/null +++ b/packages/0/src/composables/useIdle/index.ts @@ -0,0 +1,242 @@ +/** + * @module useIdle + * + * @see https://0.vuetifyjs.com/composables/system/use-idle + * + * @remarks + * Tracks user inactivity with optional warn stage and pause / resume control. + * + * Key features: + * - Reactive `stage`, `isIdle`, `isWarning`, `isPaused`, and `lastActivity` + * - Reactive `timeout`, `warnAt`, and `events` (re-register / re-schedule on change) + * - Optional warn stage before idle for "you'll be logged out in 30s" patterns + * - pause / resume (fresh re-schedule on resume — elapsed time is not preserved) + * - Reset on tab-visibility change (opt-out) + * - Automatic cleanup on scope disposal + * - SSR-safe + * + * @example + * ```ts + * import { useIdle } from '@vuetify/v0' + * + * const idle = useIdle( + * stage => stage === 'idle' ? logout() : showWarning(), + * { timeout: 10 * 60_000, warnAt: 9 * 60_000 }, + * ) + * ``` + */ + +// Globals +import { IN_BROWSER } from '#v0/constants/globals' + +// Composables +import { useDocumentEventListener, useWindowEventListener } from '#v0/composables/useEventListener' + +// Utilities +import { isUndefined } from '#v0/utilities' +import { onScopeDispose, shallowReadonly, shallowRef, toRef, toValue, watch } from 'vue' + +// Types +import type { MaybeRefOrGetter, Ref } from 'vue' + +const DEFAULT_EVENTS: (keyof WindowEventMap)[] = [ + 'mousemove', + 'mousedown', + 'keydown', + 'touchstart', + 'scroll', + 'wheel', +] + +export type IdleStage = 'active' | 'warn' | 'idle' + +export interface UseIdleOptions { + /** + * Milliseconds of inactivity before transitioning to `'idle'`. + * + * @default 60000 + * + * @example + * ```ts + * useIdle(handler, { timeout: 5 * 60_000 }) + * useIdle(handler, { timeout: () => fast.value ? 1_000 : 60_000 }) + * ``` + */ + timeout?: MaybeRefOrGetter + /** + * Milliseconds of inactivity before transitioning to `'warn'`. Must be less + * than `timeout`. When undefined — or when `warnAt >= timeout` — the warn + * stage is silently skipped. + * + * @default undefined + * + * @example + * ```ts + * useIdle(handler, { timeout: 600_000, warnAt: 540_000 }) + * ``` + */ + warnAt?: MaybeRefOrGetter + /** + * Window events that count as user activity. + * + * @default ['mousemove', 'mousedown', 'keydown', 'touchstart', 'scroll', 'wheel'] + * + * @example + * ```ts + * useIdle(handler, { events: ['keydown', 'pointerdown'] }) + * ``` + */ + events?: MaybeRefOrGetter<(keyof WindowEventMap)[]> + /** + * Whether to start in the idle state. + * + * @default false + */ + initialState?: boolean + /** + * Reset to active when the user switches back to this tab. + * + * @default true + */ + resetOnTabSwitch?: boolean +} + +export interface UseIdleContext { + /** Current stage. */ + stage: Readonly> + /** True when `stage === 'idle'`. */ + isIdle: Readonly> + /** True when `stage === 'warn'`. */ + isWarning: Readonly> + /** True when detection is paused. */ + isPaused: Readonly> + /** Epoch milliseconds of the most recent activity. */ + lastActivity: Readonly> + /** Mark the user as active and restart the countdown. No-op while paused. */ + reset: () => void + /** Pause detection, clearing any pending warn / idle transition. */ + pause: () => void + /** Resume detection. Re-schedules fresh from the current `timeout` / `warnAt`. */ + resume: () => void +} + +/** + * Tracks user inactivity with optional warn stage and pause control. + * + * @param callback Optional callback fired on each forward transition (`'warn'` or `'idle'`). + * @param options Idle detection options. + * @returns Reactive idle state and controls. + * + * @see https://0.vuetifyjs.com/composables/system/use-idle + * + * @example + * ```ts + * const { isIdle } = useIdle(undefined, { timeout: 5_000 }) + * + * useIdle( + * stage => stage === 'idle' ? logout() : showWarning(), + * { timeout: 600_000, warnAt: 540_000 }, + * ) + * ``` + */ +export function useIdle ( + callback?: (stage: 'warn' | 'idle') => void, + options: UseIdleOptions = {}, +): UseIdleContext { + const { + timeout = 60_000, + warnAt, + events = DEFAULT_EVENTS, + initialState = false, + resetOnTabSwitch = true, + } = options + + const stage = shallowRef(initialState ? 'idle' : 'active') + const isIdle = toRef(() => stage.value === 'idle') + const isWarning = toRef(() => stage.value === 'warn') + const isPaused = shallowRef(false) + const lastActivity = shallowRef(Date.now()) + + let warnId: ReturnType | undefined + let idleId: ReturnType | undefined + + function clear () { + if (!isUndefined(warnId)) { + globalThis.clearTimeout(warnId) + warnId = undefined + } + if (!isUndefined(idleId)) { + globalThis.clearTimeout(idleId) + idleId = undefined + } + } + + function schedule () { + clear() + if (!IN_BROWSER || isPaused.value) return + + const idleMs = toValue(timeout) + const warnMs = toValue(warnAt) + + if (!isUndefined(warnMs) && warnMs > 0 && warnMs < idleMs) { + warnId = globalThis.setTimeout(() => { + stage.value = 'warn' + callback?.('warn') + idleId = globalThis.setTimeout(() => { + stage.value = 'idle' + callback?.('idle') + }, idleMs - warnMs) + }, warnMs) + } else { + idleId = globalThis.setTimeout(() => { + stage.value = 'idle' + callback?.('idle') + }, idleMs) + } + } + + function reset () { + lastActivity.value = Date.now() + stage.value = 'active' + schedule() + } + + function pause () { + if (isPaused.value) return + isPaused.value = true + clear() + } + + function resume () { + if (!isPaused.value) return + isPaused.value = false + schedule() + } + + useWindowEventListener(() => toValue(events), reset, { passive: true }) + + if (resetOnTabSwitch) { + useDocumentEventListener('visibilitychange', () => { + if (document.visibilityState === 'visible') reset() + }) + } + + watch([() => toValue(timeout), () => toValue(warnAt)], () => { + if (stage.value === 'active' && !isPaused.value) schedule() + }) + + if (!initialState) schedule() + + onScopeDispose(clear, true) + + return { + stage: shallowReadonly(stage), + isIdle, + isWarning, + isPaused: shallowReadonly(isPaused), + lastActivity: shallowReadonly(lastActivity), + reset, + pause, + resume, + } +} From c79bf08b4a9b38d4715d4ef4f8887d3d0bc4e2d9 Mon Sep 17 00:00:00 2001 From: Henry Aviles Date: Wed, 13 May 2026 19:27:15 -0400 Subject: [PATCH 2/3] chore: formatting --- packages/0/src/composables/useIdle/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/0/src/composables/useIdle/index.ts b/packages/0/src/composables/useIdle/index.ts index c831a821f..18d21369c 100644 --- a/packages/0/src/composables/useIdle/index.ts +++ b/packages/0/src/composables/useIdle/index.ts @@ -26,12 +26,12 @@ * ``` */ -// Globals -import { IN_BROWSER } from '#v0/constants/globals' - // Composables import { useDocumentEventListener, useWindowEventListener } from '#v0/composables/useEventListener' +// Globals +import { IN_BROWSER } from '#v0/constants/globals' + // Utilities import { isUndefined } from '#v0/utilities' import { onScopeDispose, shallowReadonly, shallowRef, toRef, toValue, watch } from 'vue' From 75da3f1b251b8f8e35a6395302b52e1c194c5466 Mon Sep 17 00:00:00 2001 From: Henry Aviles Date: Wed, 13 May 2026 19:31:36 -0400 Subject: [PATCH 3/3] fix: this stupid import --- dev/src/components.d.ts | 3 -- dev/src/composables.d.ts | 88 +++++++++------------------------------- 2 files changed, 19 insertions(+), 72 deletions(-) diff --git a/dev/src/components.d.ts b/dev/src/components.d.ts index bcaec4949..5b3969f93 100644 --- a/dev/src/components.d.ts +++ b/dev/src/components.d.ts @@ -95,9 +95,6 @@ declare module 'vue' { NumberFieldIncrement: typeof import('./../../packages/0/src/components/NumberField/NumberFieldIncrement.vue')['default'] NumberFieldRoot: typeof import('./../../packages/0/src/components/NumberField/NumberFieldRoot.vue')['default'] NumberFieldScrub: typeof import('./../../packages/0/src/components/NumberField/NumberFieldScrub.vue')['default'] - OverflowIndicator: typeof import('./../../packages/0/src/components/Overflow/OverflowIndicator.vue')['default'] - OverflowItem: typeof import('./../../packages/0/src/components/Overflow/OverflowItem.vue')['default'] - OverflowRoot: typeof import('./../../packages/0/src/components/Overflow/OverflowRoot.vue')['default'] PaginationEllipsis: typeof import('./../../packages/0/src/components/Pagination/PaginationEllipsis.vue')['default'] PaginationFirst: typeof import('./../../packages/0/src/components/Pagination/PaginationFirst.vue')['default'] PaginationItem: typeof import('./../../packages/0/src/components/Pagination/PaginationItem.vue')['default'] diff --git a/dev/src/composables.d.ts b/dev/src/composables.d.ts index 6ca35f6f2..674e2484a 100644 --- a/dev/src/composables.d.ts +++ b/dev/src/composables.d.ts @@ -8,30 +8,20 @@ export {} declare global { const COMMON_ELEMENTS: typeof import('../../packages/0/src/constants/htmlElements').COMMON_ELEMENTS const ClientAdapter: typeof import('../../packages/0/src/composables/createDataTable/index').ClientAdapter - const ClientComboboxAdapter: typeof import('../../packages/0/src/composables/createCombobox/index').ClientComboboxAdapter - const ClientDataTableAdapter: typeof import('../../packages/0/src/composables/createDataTable/index').ClientDataTableAdapter - const ComboboxAdapter: typeof import('../../packages/0/src/composables/createCombobox/index').ComboboxAdapter const ComboboxClientAdapter: typeof import('../../packages/0/src/composables/createCombobox/index').ComboboxClientAdapter const ComboboxServerAdapter: typeof import('../../packages/0/src/composables/createCombobox/index').ComboboxServerAdapter const ConsolaLoggerAdapter: typeof import('../../packages/0/src/composables/useLogger/index').ConsolaLoggerAdapter const DEFAULT_DARK: typeof import('../../packages/paper/src/composables/useTheme/index').DEFAULT_DARK const DEFAULT_LIGHT: typeof import('../../packages/paper/src/composables/useTheme/index').DEFAULT_LIGHT const DataTableAdapter: typeof import('../../packages/0/src/composables/createDataTable/index').DataTableAdapter - const DragDropAdapter: typeof import('../../packages/0/src/composables/useDragDrop/index').DragDropAdapter const EffectScope: typeof import('vue').EffectScope const FeaturesAdapter: typeof import('../../packages/0/src/composables/useFeatures/index').FeaturesAdapter const FlagsmithFeatureAdapter: typeof import('../../packages/0/src/composables/useFeatures/index').FlagsmithFeatureAdapter const IN_BROWSER: typeof import('../../packages/0/src/constants/globals').IN_BROWSER - const KeyboardAdapter: typeof import('../../packages/0/src/composables/useDragDrop/index').KeyboardAdapter const LaunchDarklyFeatureAdapter: typeof import('../../packages/0/src/composables/useFeatures/index').LaunchDarklyFeatureAdapter - const LocaleAdapter: typeof import('../../packages/0/src/composables/useLocale/index').LocaleAdapter - const LoggerAdapter: typeof import('../../packages/0/src/composables/useLogger/index').LoggerAdapter const MemoryAdapter: typeof import('../../packages/0/src/composables/useStorage/index').MemoryAdapter - const MemoryStorageAdapter: typeof import('../../packages/0/src/composables/useStorage/index').MemoryStorageAdapter const PermissionAdapter: typeof import('../../packages/0/src/composables/usePermissions/index').PermissionAdapter - const PermissionsAdapter: typeof import('../../packages/0/src/composables/usePermissions/index').PermissionsAdapter const PinoLoggerAdapter: typeof import('../../packages/0/src/composables/useLogger/index').PinoLoggerAdapter - const PointerAdapter: typeof import('../../packages/0/src/composables/useDragDrop/index').PointerAdapter const PostHogFeatureAdapter: typeof import('../../packages/0/src/composables/useFeatures/index').PostHogFeatureAdapter const SELF_CLOSING_TAGS: typeof import('../../packages/0/src/constants/htmlElements').SELF_CLOSING_TAGS const SUPPORTS_INTERSECTION_OBSERVER: typeof import('../../packages/0/src/constants/globals').SUPPORTS_INTERSECTION_OBSERVER @@ -40,18 +30,11 @@ declare global { const SUPPORTS_OBSERVER: typeof import('../../packages/0/src/constants/globals').SUPPORTS_OBSERVER const SUPPORTS_TOUCH: typeof import('../../packages/0/src/constants/globals').SUPPORTS_TOUCH const ServerAdapter: typeof import('../../packages/0/src/composables/createDataTable/index').ServerAdapter - const ServerComboboxAdapter: typeof import('../../packages/0/src/composables/createCombobox/index').ServerComboboxAdapter - const ServerDataTableAdapter: typeof import('../../packages/0/src/composables/createDataTable/index').ServerDataTableAdapter - const StorageAdapter: typeof import('../../packages/0/src/composables/useStorage/index').StorageAdapter const TemporalDateAdapter: typeof import('../../packages/0/src/composables/useDate/index').TemporalDateAdapter - const V0LocaleAdapter: typeof import('../../packages/0/src/composables/useLocale/index').V0LocaleAdapter - const V0LoggerAdapter: typeof import('../../packages/0/src/composables/useLogger/index').V0LoggerAdapter - const V0RtlAdapter: typeof import('../../packages/0/src/composables/useRtl/index').V0RtlAdapter const V0StyleSheetThemeAdapter: typeof import('../../packages/0/src/composables/useTheme/index').V0StyleSheetThemeAdapter const V0UnheadThemeAdapter: typeof import('../../packages/0/src/composables/useTheme/index').V0UnheadThemeAdapter const V0_ELEVATION_KEY: typeof import('../../packages/paper/src/composables/useElevation/index').V0_ELEVATION_KEY const VirtualAdapter: typeof import('../../packages/0/src/composables/createDataTable/index').VirtualAdapter - const VirtualDataTableAdapter: typeof import('../../packages/0/src/composables/createDataTable/index').VirtualDataTableAdapter const Vuetify0DateAdapter: typeof import('../../packages/0/src/composables/useDate/index').Vuetify0DateAdapter const Vuetify0LocaleAdapter: typeof import('../../packages/0/src/composables/useLocale/index').Vuetify0LocaleAdapter const Vuetify0LoggerAdapter: typeof import('../../packages/0/src/composables/useLogger/index').Vuetify0LoggerAdapter @@ -92,7 +75,6 @@ declare global { const createHydrationContext: typeof import('../../packages/0/src/composables/useHydration/index').createHydrationContext const createHydrationPlugin: typeof import('../../packages/0/src/composables/useHydration/index').createHydrationPlugin const createInput: typeof import('../../packages/0/src/composables/createInput/index').createInput - const createKanban: typeof import('../../packages/0/src/composables/createKanban/index').createKanban const createLocale: typeof import('../../packages/0/src/composables/useLocale/index').createLocale const createLocaleContext: typeof import('../../packages/0/src/composables/useLocale/index').createLocaleContext const createLocaleFallback: typeof import('../../packages/0/src/composables/useLocale/index').createLocaleFallback @@ -138,7 +120,6 @@ declare global { const createSingle: typeof import('../../packages/0/src/composables/createSingle/index').createSingle const createSingleContext: typeof import('../../packages/0/src/composables/createSingle/index').createSingleContext const createSlider: typeof import('../../packages/0/src/composables/createSlider/index').createSlider - const createSortable: typeof import('../../packages/0/src/composables/createSortable/index').createSortable const createStack: typeof import('../../packages/0/src/composables/useStack/index').createStack const createStackContext: typeof import('../../packages/0/src/composables/useStack/index').createStackContext const createStackPlugin: typeof import('../../packages/0/src/composables/useStack/index').createStackPlugin @@ -198,7 +179,6 @@ declare global { const isStandardSchema: typeof import('../../packages/0/src/composables/useRules/index').isStandardSchema const isString: typeof import('../../packages/0/src/utilities/helpers').isString const isSymbol: typeof import('../../packages/0/src/utilities/helpers').isSymbol - const isThenable: typeof import('../../packages/0/src/utilities/helpers').isThenable const isUndefined: typeof import('../../packages/0/src/utilities/helpers').isUndefined const markRaw: typeof import('vue').markRaw const mergeDeep: typeof import('../../packages/0/src/utilities/helpers').mergeDeep @@ -260,10 +240,8 @@ declare global { const useCssVars: typeof import('vue').useCssVars const useDataTable: typeof import('../../packages/0/src/composables/createDataTable/index').useDataTable const useDate: typeof import('../../packages/0/src/composables/useDate/index').useDate - const useDelay: typeof import('../../packages/0/src/composables/useDelay/index').useDelay const useDimensions: typeof import('../../packages/paper/src/composables/useDimensions/index').useDimensions const useDocumentEventListener: typeof import('../../packages/0/src/composables/useEventListener/index').useDocumentEventListener - const useDragDrop: typeof import('../../packages/0/src/composables/useDragDrop/index').useDragDrop const useElementIntersection: typeof import('../../packages/0/src/composables/useIntersectionObserver/index').useElementIntersection const useElementSize: typeof import('../../packages/0/src/composables/useResizeObserver/index').useElementSize const useElevation: typeof import('../../packages/paper/src/composables/useElevation/index').useElevation @@ -276,7 +254,6 @@ declare global { const useHotkey: typeof import('../../packages/0/src/composables/useHotkey/index').useHotkey const useHydration: typeof import('../../packages/0/src/composables/useHydration/index').useHydration const useId: typeof import('../../packages/0/src/utilities/helpers').useId - const useIdle: typeof import('../../packages/0/src/composables/useIdle/index').useIdle const useImage: typeof import('../../packages/0/src/composables/useImage/index').useImage const useIntersectionObserver: typeof import('../../packages/0/src/composables/useIntersectionObserver/index').useIntersectionObserver const useLazy: typeof import('../../packages/0/src/composables/useLazy/index').useLazy @@ -359,13 +336,13 @@ declare global { export type { BreadcrumbTicketInput, BreadcrumbTicket, BreadcrumbsContext, BreadcrumbsOptions, BreadcrumbsContextOptions } from '../../packages/0/src/composables/createBreadcrumbs/index' import('../../packages/0/src/composables/createBreadcrumbs/index') // @ts-ignore - export type { ComboboxOptions, ComboboxContext, ClientComboboxAdapterOptions, ComboboxAdapterContext, ComboboxAdapterResult } from '../../packages/0/src/composables/createCombobox/index' + export type { ComboboxOptions, ComboboxContext, ComboboxAdapterContext, ComboboxAdapterInterface, ComboboxAdapterResult, ComboboxClientAdapterOptions } from '../../packages/0/src/composables/createCombobox/index' import('../../packages/0/src/composables/createCombobox/index') // @ts-ignore export type { ContextKey, CreateContextOptions } from '../../packages/0/src/composables/createContext/index' import('../../packages/0/src/composables/createContext/index') // @ts-ignore - export type { KeysOfType, SelectStrategy, DataTableColumn, DataTableSort, DataTableSelection, DataTableGroup, DataTableGrouping, DataTableExpansion, DataTableOptions, DataTableContext, DataTableContextOptions, DataTableAdapterContext, DataTableAdapterResult, SortDirection, SortEntry, ServerDataTableAdapterOptions, ColumnNode, InternalHeader } from '../../packages/0/src/composables/createDataTable/index' + export type { KeysOfType, SelectStrategy, DataTableColumn, DataTableSort, DataTableSelection, DataTableGroup, DataTableGrouping, DataTableExpansion, DataTableOptions, DataTableContext, DataTableContextOptions, DataTableAdapterContext, DataTableAdapterInterface, DataTableAdapterResult, SortDirection, SortEntry, ServerAdapterOptions, ColumnNode, InternalHeader } from '../../packages/0/src/composables/createDataTable/index' import('../../packages/0/src/composables/createDataTable/index') // @ts-ignore export type { Primitive, FilterQuery, FilterItem, FilterMode, FilterFunction, FilterOptions, FilterResult, FilterContext, FilterContextOptions } from '../../packages/0/src/composables/createFilter/index' @@ -380,9 +357,6 @@ declare global { export type { InputState, InputOptions, InputContext } from '../../packages/0/src/composables/createInput/index' import('../../packages/0/src/composables/createInput/index') // @ts-ignore - export type { KanbanOptions, KanbanColumnTicketInput, KanbanColumnTicket, KanbanTransferPayload, KanbanEventListener, KanbanContext } from '../../packages/0/src/composables/createKanban/index' - import('../../packages/0/src/composables/createKanban/index') - // @ts-ignore export type { ModelTicketInput, ModelTicket, ModelContext, ModelOptions } from '../../packages/0/src/composables/createModel/index' import('../../packages/0/src/composables/createModel/index') // @ts-ignore @@ -422,9 +396,6 @@ declare global { export type { SliderTicketInput, SliderOptions, SliderContext } from '../../packages/0/src/composables/createSlider/index' import('../../packages/0/src/composables/createSlider/index') // @ts-ignore - export type { SortableTicketInput, SortableTicket, SortableOptions, SortableMovePayload, SortableEventListener, SortableContext } from '../../packages/0/src/composables/createSortable/index' - import('../../packages/0/src/composables/createSortable/index') - // @ts-ignore export type { StepTicketInput, StepTicket, StepContext, StepOptions, StepContextOptions } from '../../packages/0/src/composables/createStep/index' import('../../packages/0/src/composables/createStep/index') // @ts-ignore @@ -455,16 +426,10 @@ declare global { export type { DateContext, DateOptions, DateContextOptions, DatePluginOptions, DateAdapter } from '../../packages/0/src/composables/useDate/index' import('../../packages/0/src/composables/useDate/index') // @ts-ignore - export type { UseDelayOptions, UseDelayStartOptions, UseDelayReturn } from '../../packages/0/src/composables/useDelay/index' - import('../../packages/0/src/composables/useDelay/index') - // @ts-ignore - export type { Orientation, DragType, DropIndicator, DropPosition, DragVia, ActiveDrag, DraggableTicketInput, DraggableTicket, DropZoneTicketInput, DropZoneTicket, DragDropPlugin, DragDropOptions, DraggablesContext, ZonesContext, DragDropContext, DragDropAdapterContext, DragDropAdapterEmit, KeyboardAdapterOptions, PointerAdapterOptions } from '../../packages/0/src/composables/useDragDrop/index' - import('../../packages/0/src/composables/useDragDrop/index') - // @ts-ignore export type { CleanupFunction, EventHandler } from '../../packages/0/src/composables/useEventListener/index' import('../../packages/0/src/composables/useEventListener/index') // @ts-ignore - export type { FeatureTicketInput, FeatureTicket, FeatureContext, FeatureOptions, FeatureContextOptions, FeaturePluginOptions, FeaturesAdapterFlags, FeaturesAdapterValue } from '../../packages/0/src/composables/useFeatures/index' + export type { FeatureTicketInput, FeatureTicket, FeatureContext, FeatureOptions, FeatureContextOptions, FeaturePluginOptions, FeaturesAdapterFlags, FeaturesAdapterInterface, FeaturesAdapterValue } from '../../packages/0/src/composables/useFeatures/index' import('../../packages/0/src/composables/useFeatures/index') // @ts-ignore export type { UseHotkeyOptions, UseHotkeyReturn, PlatformContext } from '../../packages/0/src/composables/useHotkey/index' @@ -473,9 +438,6 @@ declare global { export type { HydrationContext, HydrationOptions, HydrationContextOptions, HydrationPluginOptions } from '../../packages/0/src/composables/useHydration/index' import('../../packages/0/src/composables/useHydration/index') // @ts-ignore - export type { IdleStage, UseIdleOptions, UseIdleContext } from '../../packages/0/src/composables/useIdle/index' - import('../../packages/0/src/composables/useIdle/index') - // @ts-ignore export type { ImageStatus, UseImageOptions, UseImageReturn } from '../../packages/0/src/composables/useImage/index' import('../../packages/0/src/composables/useImage/index') // @ts-ignore @@ -485,10 +447,10 @@ declare global { export type { LazyOptions, LazyContext } from '../../packages/0/src/composables/useLazy/index' import('../../packages/0/src/composables/useLazy/index') // @ts-ignore - export type { LocaleRecord, LocaleTicketInput, LocaleTicket, LocaleContext, LocaleOptions, LocaleContextOptions, LocalePluginOptions, LocaleAdapterContext } from '../../packages/0/src/composables/useLocale/index' + export type { LocaleRecord, LocaleTicketInput, LocaleTicket, LocaleContext, LocaleOptions, LocaleContextOptions, LocalePluginOptions, LocaleAdapter, LocaleAdapterContext } from '../../packages/0/src/composables/useLocale/index' import('../../packages/0/src/composables/useLocale/index') // @ts-ignore - export type { LoggerContext, LoggerOptions, LoggerContextOptions, LoggerPluginOptions, LogLevel } from '../../packages/0/src/composables/useLogger/index' + export type { LoggerContext, LoggerOptions, LoggerContextOptions, LoggerPluginOptions, LoggerAdapter, LogLevel } from '../../packages/0/src/composables/useLogger/index' import('../../packages/0/src/composables/useLogger/index') // @ts-ignore export type { MediaQueryContext } from '../../packages/0/src/composables/useMediaQuery/index' @@ -497,10 +459,10 @@ declare global { export type { ObservableNodeList, MutationObserverRecord, UseMutationObserverOptions, UseMutationObserverReturn } from '../../packages/0/src/composables/useMutationObserver/index' import('../../packages/0/src/composables/useMutationObserver/index') // @ts-ignore - export type { NotificationSeverity, NotificationInput, NotificationTicket, NotificationsAdapterContext, NotificationsOptions, NotificationsContext, NotificationsPluginOptions } from '../../packages/0/src/composables/useNotifications/index' + export type { NotificationSeverity, NotificationInput, NotificationTicket, NotificationsAdapterContext, NotificationsAdapterInterface, NotificationsOptions, NotificationsContext, NotificationsPluginOptions } from '../../packages/0/src/composables/useNotifications/index' import('../../packages/0/src/composables/useNotifications/index') // @ts-ignore - export type { PermissionTicket, PermissionContext, PermissionOptions, PermissionContextOptions, PermissionPluginOptions } from '../../packages/0/src/composables/usePermissions/index' + export type { PermissionTicket, PermissionContext, PermissionOptions, PermissionContextOptions, PermissionPluginOptions, PermissionAdapterInterface } from '../../packages/0/src/composables/usePermissions/index' import('../../packages/0/src/composables/usePermissions/index') // @ts-ignore export type { PopoverOptions, PopoverReturn } from '../../packages/0/src/composables/usePopover/index' @@ -533,7 +495,7 @@ declare global { export type { StackTicketInput, StackTicket, StackContext, StackOptions, StackContextOptions, StackPluginOptions } from '../../packages/0/src/composables/useStack/index' import('../../packages/0/src/composables/useStack/index') // @ts-ignore - export type { StorageContext, StorageOptions, StorageContextOptions, StoragePluginOptions, StorageType } from '../../packages/0/src/composables/useStorage/index' + export type { StorageContext, StorageOptions, StorageContextOptions, StoragePluginOptions, StorageAdapter, StorageType } from '../../packages/0/src/composables/useStorage/index' import('../../packages/0/src/composables/useStorage/index') // @ts-ignore export type { Colors, ThemeColors, ThemeRecord, ThemeTicketInput, ThemeTicket, ThemeContext, ThemeOptions, ThemeContextOptions, ThemePluginOptions, ThemeAdapter } from '../../packages/0/src/composables/useTheme/index' @@ -560,40 +522,34 @@ import { UnwrapRef } from 'vue' declare module 'vue' { interface GlobalComponents {} interface ComponentCustomProperties { - readonly ClientComboboxAdapter: UnwrapRef - readonly ClientDataTableAdapter: UnwrapRef - readonly ComboboxAdapter: UnwrapRef + readonly COMMON_ELEMENTS: UnwrapRef + readonly ClientAdapter: UnwrapRef + readonly ComboboxClientAdapter: UnwrapRef + readonly ComboboxServerAdapter: UnwrapRef readonly ConsolaLoggerAdapter: UnwrapRef readonly DEFAULT_DARK: UnwrapRef readonly DEFAULT_LIGHT: UnwrapRef readonly DataTableAdapter: UnwrapRef - readonly DragDropAdapter: UnwrapRef readonly EffectScope: UnwrapRef readonly FeaturesAdapter: UnwrapRef readonly IN_BROWSER: UnwrapRef - readonly KeyboardAdapter: UnwrapRef - readonly LocaleAdapter: UnwrapRef - readonly LoggerAdapter: UnwrapRef - readonly MemoryStorageAdapter: UnwrapRef - readonly PermissionsAdapter: UnwrapRef + readonly MemoryAdapter: UnwrapRef + readonly PermissionAdapter: UnwrapRef readonly PinoLoggerAdapter: UnwrapRef - readonly PointerAdapter: UnwrapRef readonly SELF_CLOSING_TAGS: UnwrapRef readonly SUPPORTS_INTERSECTION_OBSERVER: UnwrapRef readonly SUPPORTS_MATCH_MEDIA: UnwrapRef readonly SUPPORTS_MUTATION_OBSERVER: UnwrapRef readonly SUPPORTS_OBSERVER: UnwrapRef readonly SUPPORTS_TOUCH: UnwrapRef - readonly ServerComboboxAdapter: UnwrapRef - readonly ServerDataTableAdapter: UnwrapRef - readonly StorageAdapter: UnwrapRef - readonly V0LocaleAdapter: UnwrapRef - readonly V0LoggerAdapter: UnwrapRef - readonly V0RtlAdapter: UnwrapRef + readonly ServerAdapter: UnwrapRef readonly V0StyleSheetThemeAdapter: UnwrapRef readonly V0UnheadThemeAdapter: UnwrapRef readonly V0_ELEVATION_KEY: UnwrapRef - readonly VirtualDataTableAdapter: UnwrapRef + readonly VirtualAdapter: UnwrapRef + readonly Vuetify0LocaleAdapter: UnwrapRef + readonly Vuetify0LoggerAdapter: UnwrapRef + readonly Vuetify0RtlAdapter: UnwrapRef readonly __LOGGER_ENABLED__: UnwrapRef readonly apca: UnwrapRef readonly clamp: UnwrapRef @@ -628,7 +584,6 @@ declare module 'vue' { readonly createHydrationContext: UnwrapRef readonly createHydrationPlugin: UnwrapRef readonly createInput: UnwrapRef - readonly createKanban: UnwrapRef readonly createLocale: UnwrapRef readonly createLocaleContext: UnwrapRef readonly createLocaleFallback: UnwrapRef @@ -674,7 +629,6 @@ declare module 'vue' { readonly createSingle: UnwrapRef readonly createSingleContext: UnwrapRef readonly createSlider: UnwrapRef - readonly createSortable: UnwrapRef readonly createStack: UnwrapRef readonly createStackContext: UnwrapRef readonly createStackPlugin: UnwrapRef @@ -732,7 +686,6 @@ declare module 'vue' { readonly isStandardSchema: UnwrapRef readonly isString: UnwrapRef readonly isSymbol: UnwrapRef - readonly isThenable: UnwrapRef readonly isUndefined: UnwrapRef readonly markRaw: UnwrapRef readonly mergeDeep: UnwrapRef @@ -792,10 +745,8 @@ declare module 'vue' { readonly useCssVars: UnwrapRef readonly useDataTable: UnwrapRef readonly useDate: UnwrapRef - readonly useDelay: UnwrapRef readonly useDimensions: UnwrapRef readonly useDocumentEventListener: UnwrapRef - readonly useDragDrop: UnwrapRef readonly useElementIntersection: UnwrapRef readonly useElementSize: UnwrapRef readonly useElevation: UnwrapRef @@ -807,7 +758,6 @@ declare module 'vue' { readonly useHotkey: UnwrapRef readonly useHydration: UnwrapRef readonly useId: UnwrapRef - readonly useIdle: UnwrapRef readonly useImage: UnwrapRef readonly useIntersectionObserver: UnwrapRef readonly useLazy: UnwrapRef