@vuetify/v0 0.0.20 → 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.
@@ -1,9 +1,25 @@
1
- import { _ as range, d as isObject, h as isUndefined, l as isNullOrUndefined, m as isSymbol, o as isFunction, p as isString, r as genId, s as isNaN } from "./utilities-BrFKLHFS.mjs";
2
- import { a as SUPPORTS_OBSERVER, s as __LOGGER_ENABLED__, t as IN_BROWSER } from "./globals-exvZ8fiO.mjs";
1
+ import { _ as range, c as isNull, d as isObject, h as isUndefined, i as isArray, l as isNullOrUndefined, m as isSymbol, o as isFunction, p as isString, r as genId, s as isNaN, t as clamp } from "./utilities-CjDz-Xvn.mjs";
2
+ import { a as SUPPORTS_OBSERVER, s as __LOGGER_ENABLED__, t as IN_BROWSER } from "./globals-C3JrEDXZ.mjs";
3
3
  import { computed, getCurrentInstance, inject, isRef, onScopeDispose, provide, reactive, shallowReactive, shallowReadonly, shallowRef, toRef, toValue, watch, watchEffect } from "vue";
4
4
 
5
5
  //#region src/composables/createContext/index.ts
6
6
  /**
7
+ * @module createContext
8
+ *
9
+ * @see https://0.vuetifyjs.com/composables/foundation/create-context
10
+ *
11
+ * @remarks
12
+ * Factory for creating type-safe Vue dependency injection contexts.
13
+ *
14
+ * Provides a wrapper around Vue's provide/inject that throws errors when context is not found,
15
+ * eliminating silent failures and improving developer experience. Supports both app-level and
16
+ * component-level provision.
17
+ *
18
+ * Supports two modes:
19
+ * - **Static key**: `createContext('my-key')` - key is fixed at creation time
20
+ * - **Dynamic key**: `createContext()` or `createContext({ suffix: 'item' })` - key provided at runtime
21
+ */
22
+ /**
7
23
  * Injects a context provided by an ancestor component.
8
24
  *
9
25
  * @param key The key of the context to inject.
@@ -286,10 +302,12 @@ var Vuetify0LoggerAdapter = class {
286
302
  }
287
303
  timestamp() {
288
304
  if (!IN_BROWSER) return (/* @__PURE__ */ new Date()).toISOString();
305
+ /* v8 ignore next -- defensive fallback, toTimeString always returns valid format */
289
306
  return (/* @__PURE__ */ new Date()).toTimeString().split(" ")[0] ?? "";
290
307
  }
291
308
  style(level) {
292
309
  if (!this.colors || !IN_BROWSER) return "";
310
+ /* v8 ignore next -- LogLevel union is exhaustive */
293
311
  return {
294
312
  trace: "color: #64748b",
295
313
  debug: "color: #3b82f6",
@@ -542,6 +560,23 @@ function useLogger(namespace = "v0:logger") {
542
560
  //#endregion
543
561
  //#region src/composables/useRegistry/index.ts
544
562
  /**
563
+ * @module useRegistry
564
+ *
565
+ * @see https://0.vuetifyjs.com/composables/registration/use-registry
566
+ *
567
+ * @remarks
568
+ * A foundational composable for managing collections of items (tickets) with:
569
+ * - Unique ID-based access
570
+ * - Index-based ordering
571
+ * - Value-based reverse lookup
572
+ * - Automatic reindexing
573
+ * - Optional event emission
574
+ * - Performance-optimized caching
575
+ *
576
+ * The registry serves as the base for many other composables in the system,
577
+ * including useSelection, useForm, useTimeline, and more.
578
+ */
579
+ /**
545
580
  * Creates a new registry instance.
546
581
  *
547
582
  * @param options The options for the registry instance.
@@ -814,7 +849,7 @@ function useRegistry(options) {
814
849
  return direction === "first" ? tickets$1[0] : tickets$1.at(-1);
815
850
  }
816
851
  const tickets = values();
817
- const index = /* @__PURE__ */ isUndefined(from) ? void 0 : Math.max(0, Math.min(from, tickets.length - 1));
852
+ const index = /* @__PURE__ */ isUndefined(from) ? void 0 : /* @__PURE__ */ clamp(from, 0, tickets.length - 1);
818
853
  if (direction === "last") {
819
854
  const start = /* @__PURE__ */ isUndefined(index) ? tickets.length - 1 : index;
820
855
  for (let i = start; i >= 0; i--) {
@@ -899,6 +934,21 @@ function createRegistryContext(_options = {}) {
899
934
  //#endregion
900
935
  //#region src/composables/useSelection/index.ts
901
936
  /**
937
+ * @module useSelection
938
+ *
939
+ * @remarks
940
+ * Base composable for managing selected items in a collection with Set-based tracking.
941
+ *
942
+ * Key features:
943
+ * - Set-based selectedIds for O(1) selection checks
944
+ * - Mandatory selection mode (prevents deselecting last item)
945
+ * - Auto-enrollment option (selects non-disabled items on register)
946
+ * - Disabled item filtering
947
+ * - Computed selectedItems and selectedValues Sets
948
+ *
949
+ * Extends useRegistry and serves as the base for useSingle, useGroup, useStep, and useFeatures.
950
+ */
951
+ /**
902
952
  * Creates a new selection instance for managing multiple selected items.
903
953
  *
904
954
  * Extends `useRegistry` with selection tracking via a reactive `Set` of selected IDs.
@@ -1132,12 +1182,26 @@ function useSelection(namespace = "v0:selection") {
1132
1182
  * ```
1133
1183
  */
1134
1184
  function toArray(value) {
1135
- return /* @__PURE__ */ isNullOrUndefined(value) ? [] : Array.isArray(value) ? value : [value];
1185
+ return /* @__PURE__ */ isNullOrUndefined(value) ? [] : /* @__PURE__ */ isArray(value) ? value : [value];
1136
1186
  }
1137
1187
 
1138
1188
  //#endregion
1139
1189
  //#region src/composables/useProxyModel/index.ts
1140
1190
  /**
1191
+ * @module useProxyModel
1192
+ *
1193
+ * @remarks
1194
+ * Proxy composable for bidirectional sync between selection registry and v-model.
1195
+ *
1196
+ * Key features:
1197
+ * - Bidirectional synchronization
1198
+ * - Array and single-value modes
1199
+ * - Automatic cleanup on scope disposal
1200
+ * - Perfect for form controls with selection backing
1201
+ *
1202
+ * Bridges the gap between selection composables and Vue's v-model.
1203
+ */
1204
+ /**
1141
1205
  * Syncs a ref with a selection registry bidirectionally.
1142
1206
  *
1143
1207
  * @param registry The selection registry to bind to.
@@ -1233,6 +1297,21 @@ function useProxyModel(registry, model, options) {
1233
1297
  //#endregion
1234
1298
  //#region src/composables/useProxyRegistry/index.ts
1235
1299
  /**
1300
+ * @module useProxyRegistry
1301
+ *
1302
+ * @remarks
1303
+ * Proxy composable for reactive registry keys, values, entries, and size.
1304
+ *
1305
+ * Key features:
1306
+ * - Reactive proxy for registry data
1307
+ * - Deep or shallow reactivity options
1308
+ * - Event-based updates
1309
+ * - Automatic cleanup on scope disposal
1310
+ * - Transforms Map-based registry into reactive refs
1311
+ *
1312
+ * Perfect for exposing registry data as reactive computed properties.
1313
+ */
1314
+ /**
1236
1315
  * Creates a proxy registry that provides reactive objects for registry data.
1237
1316
  *
1238
1317
  * @param registry The registry instance to proxy.
@@ -1282,6 +1361,26 @@ function useProxyRegistry(registry, options) {
1282
1361
  //#endregion
1283
1362
  //#region src/composables/useGroup/index.ts
1284
1363
  /**
1364
+ * @module useGroup
1365
+ *
1366
+ * @remarks
1367
+ * Multi-selection composable that extends useSelection with batch operations and tri-state support.
1368
+ *
1369
+ * Key features:
1370
+ * - Batch operations (select/unselect/toggle accept ID | ID[])
1371
+ * - Tri-state support via mixed/indeterminate state (mix/unmix)
1372
+ * - selectedIndexes computed Set for position-based tracking
1373
+ * - Perfect for checkbox trees, multi-select dropdowns, filter panels
1374
+ *
1375
+ * Tri-state behavior:
1376
+ * - Items can be selected, mixed (indeterminate), or unselected
1377
+ * - select() clears mixed state, mix() clears selected state (mutually exclusive)
1378
+ * - toggle() on a mixed item selects it (resolves positively)
1379
+ *
1380
+ * Inheritance chain: useRegistry → useSelection → useGroup
1381
+ * Extended by: useFeatures
1382
+ */
1383
+ /**
1285
1384
  * Creates a new group instance with batch selection and tri-state support.
1286
1385
  *
1287
1386
  * Extends `createSelection` to support selecting, unselecting, and toggling multiple items
@@ -1546,40 +1645,20 @@ function useGroup(namespace = "v0:group") {
1546
1645
  }
1547
1646
 
1548
1647
  //#endregion
1549
- //#region src/composables/useLocale/adapters/v0.ts
1648
+ //#region src/composables/useSingle/index.ts
1550
1649
  /**
1551
- * Vuetify0.x locale adapter implementation
1650
+ * @module useSingle
1552
1651
  *
1553
- * This adapter provides translation and number formatting
1554
- * capabilities using the Intl API and supports both
1555
- * numbered ({0}, {1}) and named ({name}) variables in translation strings.
1652
+ * @remarks
1653
+ * Single-selection composable that extends useSelection to enforce only one selected item.
1654
+ *
1655
+ * Key features:
1656
+ * - Auto-clears previous selection when selecting new item
1657
+ * - Singular computed properties (selectedId, selectedItem, selectedIndex, selectedValue)
1658
+ * - Perfect for tabs, radio buttons, theme selectors
1659
+ *
1660
+ * Inheritance chain: useRegistry → useSelection → useSingle
1556
1661
  */
1557
- var Vuetify0LocaleAdapter = class {
1558
- t(message, ...params) {
1559
- let resolvedMessage = message;
1560
- if (params.length > 0 && /* @__PURE__ */ isObject(params[0])) {
1561
- const variables = params[0];
1562
- resolvedMessage = resolvedMessage.replace(/{([a-zA-Z][a-zA-Z0-9_]*)}/g, (match, name) => {
1563
- return /* @__PURE__ */ isUndefined(variables[name]) ? match : String(variables[name]);
1564
- });
1565
- params = params.slice(1);
1566
- }
1567
- resolvedMessage = resolvedMessage.replace(/\{(\d+)\}/g, (match, index) => {
1568
- const idx = Number.parseInt(index, 10);
1569
- if (!/* @__PURE__ */ isUndefined(params[idx])) return String(params[idx]);
1570
- return match;
1571
- });
1572
- return resolvedMessage;
1573
- }
1574
- n(value, locale, ...params) {
1575
- if (!IN_BROWSER || !locale) return value.toString();
1576
- const options = params[0];
1577
- return new Intl.NumberFormat(String(locale), options).format(value);
1578
- }
1579
- };
1580
-
1581
- //#endregion
1582
- //#region src/composables/useSingle/index.ts
1583
1662
  /**
1584
1663
  * Creates a new single selection instance that enforces only one selected item at a time.
1585
1664
  *
@@ -1726,6 +1805,23 @@ function useSingle(namespace = "v0:single") {
1726
1805
  //#endregion
1727
1806
  //#region src/composables/useTokens/index.ts
1728
1807
  /**
1808
+ * @module useTokens
1809
+ *
1810
+ * @see https://0.vuetifyjs.com/composables/registration/use-tokens
1811
+ *
1812
+ * @remarks
1813
+ * Design token registry with alias resolution and W3C Design Tokens format support.
1814
+ *
1815
+ * Key features:
1816
+ * - Alias resolution with circular reference detection
1817
+ * - Nested token flattening with dot notation
1818
+ * - W3C Design Tokens format ($value, $type, $description, $extensions)
1819
+ * - Path-based resolution (e.g., {colors}.blue.500)
1820
+ * - Resolution caching for performance (~28,590 ops/sec)
1821
+ *
1822
+ * Used by useTheme, useLocale, and useFeatures for token-based configuration.
1823
+ */
1824
+ /**
1729
1825
  * Creates a new token instance.
1730
1826
  *
1731
1827
  * @param tokens The tokens to use.
@@ -1963,9 +2059,57 @@ function flatten(tokens, prefix = "", flat = false) {
1963
2059
  return flattened;
1964
2060
  }
1965
2061
 
2062
+ //#endregion
2063
+ //#region src/composables/useLocale/adapters/v0.ts
2064
+ /**
2065
+ * Vuetify0.x locale adapter implementation
2066
+ *
2067
+ * This adapter provides translation and number formatting
2068
+ * capabilities using the Intl API and supports both
2069
+ * numbered ({0}, {1}) and named ({name}) variables in translation strings.
2070
+ */
2071
+ var Vuetify0LocaleAdapter = class {
2072
+ t(message, ...params) {
2073
+ let resolvedMessage = message;
2074
+ if (params.length > 0 && /* @__PURE__ */ isObject(params[0])) {
2075
+ const variables = params[0];
2076
+ resolvedMessage = resolvedMessage.replace(/{([a-zA-Z][a-zA-Z0-9_]*)}/g, (match, name) => {
2077
+ return /* @__PURE__ */ isUndefined(variables[name]) ? match : String(variables[name]);
2078
+ });
2079
+ params = params.slice(1);
2080
+ }
2081
+ resolvedMessage = resolvedMessage.replace(/\{(\d+)\}/g, (match, index) => {
2082
+ const idx = Number.parseInt(index, 10);
2083
+ if (!/* @__PURE__ */ isUndefined(params[idx])) return String(params[idx]);
2084
+ return match;
2085
+ });
2086
+ return resolvedMessage;
2087
+ }
2088
+ n(value, locale, ...params) {
2089
+ if (!IN_BROWSER || !locale) return value.toString();
2090
+ const options = params[0];
2091
+ return new Intl.NumberFormat(String(locale), options).format(value);
2092
+ }
2093
+ };
2094
+
1966
2095
  //#endregion
1967
2096
  //#region src/composables/useLocale/index.ts
1968
2097
  /**
2098
+ * @module useLocale
2099
+ *
2100
+ * @remarks
2101
+ * Internationalization (i18n) composable with adapter pattern for message translation.
2102
+ *
2103
+ * Key features:
2104
+ * - Locale selection with createSingle
2105
+ * - Token-based message storage with useTokens
2106
+ * - Numbered and named placeholder support ({0}, {name})
2107
+ * - Number formatting with Intl.NumberFormat
2108
+ * - Adapter pattern for integration with i18n providers
2109
+ *
2110
+ * Integrates with createSingle for locale selection and useTokens for message resolution.
2111
+ */
2112
+ /**
1969
2113
  * Creates a new locale instance.
1970
2114
  *
1971
2115
  * @param options The options for the locale instance.
@@ -2107,6 +2251,23 @@ function useLocale(namespace = "v0:locale") {
2107
2251
  //#endregion
2108
2252
  //#region src/composables/useHydration/index.ts
2109
2253
  /**
2254
+ * @module useHydration
2255
+ *
2256
+ * @see https://0.vuetifyjs.com/composables/plugins/use-hydration
2257
+ *
2258
+ * @remarks
2259
+ * SSR hydration state management composable.
2260
+ *
2261
+ * Key features:
2262
+ * - Hydration state detection (browser vs SSR)
2263
+ * - Root component detection
2264
+ * - Readonly hydration state refs
2265
+ * - Plugin installation support
2266
+ * - Perfect for hydration-safe rendering
2267
+ *
2268
+ * Essential for composables that need to behave differently during SSR vs client-side.
2269
+ */
2270
+ /**
2110
2271
  * Creates a new hydration instance.
2111
2272
  *
2112
2273
  * @returns A new hydration instance.
@@ -2201,7 +2362,7 @@ function createHydrationPlugin(_options = {}) {
2201
2362
  },
2202
2363
  setup: (app) => {
2203
2364
  app.mixin({ mounted() {
2204
- if (this.$parent !== null) return;
2365
+ if (!/* @__PURE__ */ isNull(this.$parent)) return;
2205
2366
  context.hydrate();
2206
2367
  } });
2207
2368
  }
@@ -2243,6 +2404,22 @@ function useHydration(namespace = "v0:hydration") {
2243
2404
  //#endregion
2244
2405
  //#region src/composables/useResizeObserver/index.ts
2245
2406
  /**
2407
+ * @module useResizeObserver
2408
+ *
2409
+ * @remarks
2410
+ * ResizeObserver composable with lifecycle management.
2411
+ *
2412
+ * Key features:
2413
+ * - ResizeObserver API wrapper
2414
+ * - Pause/resume/stop functionality
2415
+ * - Automatic cleanup on unmount
2416
+ * - SSR-safe (checks SUPPORTS_OBSERVER)
2417
+ * - Hydration-aware
2418
+ * - Box model options (content-box/border-box)
2419
+ *
2420
+ * Perfect for responsive components and size-based rendering.
2421
+ */
2422
+ /**
2246
2423
  * A composable that uses the Resize Observer API to detect when an element's
2247
2424
  * size changes.
2248
2425
  *
@@ -2289,7 +2466,7 @@ function useResizeObserver(target, callback, options = {}) {
2289
2466
  const isPaused = shallowRef(false);
2290
2467
  const isActive = toRef(() => !!observer.value);
2291
2468
  function setup() {
2292
- if (observer.value === null) return;
2469
+ if (/* @__PURE__ */ isNull(observer.value)) return;
2293
2470
  if (!isHydrated.value || !SUPPORTS_OBSERVER || !target.value || isPaused.value) return;
2294
2471
  observer.value = new ResizeObserver((entries) => {
2295
2472
  callback(entries.map((entry) => ({
@@ -2402,6 +2579,23 @@ function useElementSize(target) {
2402
2579
  //#endregion
2403
2580
  //#region src/composables/useOverflow/index.ts
2404
2581
  /**
2582
+ * @module useOverflow
2583
+ *
2584
+ * @remarks
2585
+ * Composable for computing how many items fit in a container based on available width.
2586
+ * Enables responsive truncation logic for Pagination, Breadcrumbs, and similar components.
2587
+ *
2588
+ * Key features:
2589
+ * - Container width tracking via ResizeObserver
2590
+ * - Two modes: variable-width (per-item) or uniform-width (sample-based)
2591
+ * - Computes capacity (how many items fit)
2592
+ * - SSR-safe with Infinity fallback
2593
+ * - Supports reserved space for nav buttons, ellipsis, etc.
2594
+ *
2595
+ * Use variable mode (default) for items with different widths like Breadcrumbs.
2596
+ * Use uniform mode (itemWidth option) for same-width items like Pagination buttons.
2597
+ */
2598
+ /**
2405
2599
  * Creates a new overflow context for computing how many items fit in a container.
2406
2600
  *
2407
2601
  * @param options Configuration options
@@ -2571,6 +2765,22 @@ function useOverflow(namespace = "v0:overflow") {
2571
2765
  //#endregion
2572
2766
  //#region src/composables/usePagination/index.ts
2573
2767
  /**
2768
+ * @module usePagination
2769
+ *
2770
+ * @remarks
2771
+ * Lightweight pagination composable for navigating through pages.
2772
+ *
2773
+ * Key features:
2774
+ * - No registry overhead - just a bounded integer
2775
+ * - Direct ref support for v-model compatibility
2776
+ * - Navigation methods: next, prev, first, last
2777
+ * - Computed visible items with ellipsis
2778
+ * - Trinity pattern for dependency injection
2779
+ *
2780
+ * Unlike registry-based composables, pagination tracks a single number
2781
+ * within a range, making it efficient for large page counts.
2782
+ */
2783
+ /**
2574
2784
  * Creates a pagination instance.
2575
2785
  *
2576
2786
  * @param options The options for the pagination instance.
@@ -2784,6 +2994,20 @@ function usePagination(namespace = "v0:pagination") {
2784
2994
  //#endregion
2785
2995
  //#region src/composables/useStep/index.ts
2786
2996
  /**
2997
+ * @module useStep
2998
+ *
2999
+ * @remarks
3000
+ * Navigation composable that extends useSingle with first/last/next/prev/step methods.
3001
+ *
3002
+ * Key features:
3003
+ * - Configurable circular or bounded navigation
3004
+ * - Automatic disabled item skipping
3005
+ * - Arbitrary step counts (positive/negative)
3006
+ * - Perfect for wizards, carousels, pagination, onboarding flows
3007
+ *
3008
+ * Inheritance chain: useRegistry → useSelection → useSingle → useStep
3009
+ */
3010
+ /**
2787
3011
  * Creates a new step instance with navigation through items.
2788
3012
  *
2789
3013
  * Extends `createSingle` with `first()`, `last()`, `next()`, `prev()`, and `step(count)` methods
@@ -2965,4 +3189,4 @@ function useStep(namespace = "v0:step") {
2965
3189
  }
2966
3190
 
2967
3191
  //#endregion
2968
- export { createGroupContext as A, createLogger as B, createTokensContext as C, useSingle as D, createSingleContext as E, createSelection as F, PinoLoggerAdapter as G, createLoggerPlugin as H, createSelectionContext as I, createTrinity as J, ConsolaLoggerAdapter as K, useSelection as L, useProxyRegistry as M, useProxyModel as N, Vuetify0LocaleAdapter as O, toArray as P, createRegistryContext as R, createTokens as S, createSingle as T, useLogger as U, createLoggerContext as V, Vuetify0LoggerAdapter as W, provideContext as X, createContext as Y, useContext as Z, createLocale as _, createPaginationContext as a, createLocalePlugin as b, createOverflowContext as c, useResizeObserver as d, createFallbackHydration as f, useHydration as g, createHydrationPlugin as h, createPagination as i, useGroup as j, createGroup as k, useOverflow as l, createHydrationContext as m, createStepContext as n, usePagination as o, createHydration as p, createPlugin as q, useStep as r, createOverflow as s, createStep as t, useElementSize as u, createLocaleContext as v, useTokens as w, useLocale as x, createLocaleFallback as y, useRegistry as z };
3192
+ export { createGroupContext as A, createLogger as B, createTokens as C, createSingleContext as D, createSingle as E, createSelection as F, PinoLoggerAdapter as G, createLoggerPlugin as H, createSelectionContext as I, createTrinity as J, ConsolaLoggerAdapter as K, useSelection as L, useProxyRegistry as M, useProxyModel as N, useSingle as O, toArray as P, createRegistryContext as R, Vuetify0LocaleAdapter as S, useTokens as T, useLogger as U, createLoggerContext as V, Vuetify0LoggerAdapter as W, provideContext as X, createContext as Y, useContext as Z, createLocale as _, createPaginationContext as a, createLocalePlugin as b, createOverflowContext as c, useResizeObserver as d, createFallbackHydration as f, useHydration as g, createHydrationPlugin as h, createPagination as i, useGroup as j, createGroup as k, useOverflow as l, createHydrationContext as m, createStepContext as n, usePagination as o, createHydration as p, createPlugin as q, useStep as r, createOverflow as s, createStep as t, useElementSize as u, createLocaleContext as v, createTokensContext as w, useLocale as x, createLocaleFallback as y, useRegistry as z };
@@ -1,3 +1,3 @@
1
1
  import "../index-4jSy8KIt.mjs";
2
- import { _ as range, a as isBoolean, c as isNull, d as isObject, f as isPrimitive, g as mergeDeep, h as isUndefined, i as isArray, l as isNullOrUndefined, m as isSymbol, n as debounce, o as isFunction, p as isString, r as genId, s as isNaN, t as clamp, u as isNumber } from "../index-CjzlIAtF.mjs";
2
+ import { _ as range, a as isBoolean, c as isNull, d as isObject, f as isPrimitive, g as mergeDeep, h as isUndefined, i as isArray, l as isNullOrUndefined, m as isSymbol, n as debounce, o as isFunction, p as isString, r as genId, s as isNaN, t as clamp, u as isNumber } from "../index-CxeZr8jO.mjs";
3
3
  export { clamp, debounce, genId, isArray, isBoolean, isFunction, isNaN, isNull, isNullOrUndefined, isNumber, isObject, isPrimitive, isString, isSymbol, isUndefined, mergeDeep, range };
@@ -1,3 +1,3 @@
1
- import { _ as range, a as isBoolean, c as isNull, d as isObject, f as isPrimitive, g as mergeDeep, h as isUndefined, i as isArray, l as isNullOrUndefined, m as isSymbol, n as debounce, o as isFunction, p as isString, r as genId, s as isNaN, t as clamp, u as isNumber } from "../utilities-BrFKLHFS.mjs";
1
+ import { _ as range, a as isBoolean, c as isNull, d as isObject, f as isPrimitive, g as mergeDeep, h as isUndefined, i as isArray, l as isNullOrUndefined, m as isSymbol, n as debounce, o as isFunction, p as isString, r as genId, s as isNaN, t as clamp, u as isNumber } from "../utilities-CjDz-Xvn.mjs";
2
2
 
3
3
  export { clamp, debounce, genId, isArray, isBoolean, isFunction, isNaN, isNull, isNullOrUndefined, isNumber, isObject, isPrimitive, isString, isSymbol, isUndefined, mergeDeep, range };
@@ -256,18 +256,24 @@ function isNaN(item) {
256
256
  * mergeDeep({ arr: [1, 2] }, { arr: [3] }) // { arr: [3] }
257
257
  * ```
258
258
  */
259
+ const UNSAFE_KEYS = new Set([
260
+ "__proto__",
261
+ "constructor",
262
+ "prototype"
263
+ ]);
259
264
  /* @__NO_SIDE_EFFECTS__ */
260
265
  function mergeDeep(target, ...sources) {
261
266
  if (sources.length === 0) return target;
262
267
  const source = sources.shift();
263
- if (/* @__PURE__ */ isObject(target) && /* @__PURE__ */ isObject(source)) {
264
- for (const key in source) if (Object.prototype.hasOwnProperty.call(source, key)) {
265
- const sourceValue = source[key];
266
- const targetValue = target[key];
267
- if (/* @__PURE__ */ isObject(sourceValue)) {
268
- if (!/* @__PURE__ */ isObject(targetValue)) Object.assign(target, { [key]: {} });
269
- } else Object.assign(target, { [key]: sourceValue });
270
- }
268
+ if (/* @__PURE__ */ isObject(target) && /* @__PURE__ */ isObject(source)) for (const key in source) {
269
+ if (UNSAFE_KEYS.has(key)) continue;
270
+ if (!Object.prototype.hasOwnProperty.call(source, key)) continue;
271
+ const sourceValue = source[key];
272
+ const targetValue = target[key];
273
+ if (/* @__PURE__ */ isObject(sourceValue)) {
274
+ if (!/* @__PURE__ */ isObject(targetValue)) Object.assign(target, { [key]: {} });
275
+ target[key];
276
+ } else Object.assign(target, { [key]: sourceValue });
271
277
  }
272
278
  return /* @__PURE__ */ mergeDeep(target, ...sources);
273
279
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vuetify/v0",
3
- "version": "0.0.20",
3
+ "version": "0.0.21",
4
4
  "description": "Vuetify0",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.mjs",
@@ -16,26 +16,8 @@
16
16
  "directory": "packages/0"
17
17
  },
18
18
  "peerDependencies": {
19
- "markdown": "^0.5.0",
20
- "markdown-it": "^14.1.0",
21
- "marked": "^16.1.1",
22
- "micromark": "^4.0.2",
23
19
  "vue": ">=3.3.0"
24
20
  },
25
- "peerDependenciesMeta": {
26
- "markdown": {
27
- "optional": true
28
- },
29
- "markdown-it": {
30
- "optional": true
31
- },
32
- "marked": {
33
- "optional": true
34
- },
35
- "micromark": {
36
- "optional": true
37
- }
38
- },
39
21
  "devDependencies": {
40
22
  "@vue/test-utils": "^2.4.6",
41
23
  "tsdown": "^0.16.1",