@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.
- package/README.md +3 -0
- package/dist/browser/index.js +600 -67
- package/dist/components/index.d.mts +2 -2
- package/dist/components/index.mjs +4 -4
- package/dist/{components-D590hSY0.mjs → components-BomyjmT3.mjs} +24 -3
- package/dist/composables/index.d.mts +2 -2
- package/dist/composables/index.mjs +4 -4
- package/dist/{composables-FE6B8JUW.mjs → composables-CbAPZabd.mjs} +297 -16
- package/dist/constants/index.mjs +1 -1
- package/dist/{globals-exvZ8fiO.mjs → globals-C3JrEDXZ.mjs} +2 -1
- package/dist/{index-DahjxaTj.d.mts → index-B0QJdwz9.d.mts} +5 -6
- package/dist/{index-CjzlIAtF.d.mts → index-CxeZr8jO.d.mts} +0 -26
- package/dist/{index-Gr6XPRWt.d.mts → index-MLb3LH9a.d.mts} +2 -2
- package/dist/{index-BYyEPh1S.d.mts → index-OU0IRbIS.d.mts} +1 -1
- package/dist/index.d.mts +4 -4
- package/dist/index.mjs +5 -5
- package/dist/{useStep-Dw7XloDM.mjs → useStep-CfgBbrJB.mjs} +262 -38
- package/dist/utilities/index.d.mts +1 -1
- package/dist/utilities/index.mjs +1 -1
- package/dist/{utilities-BrFKLHFS.mjs → utilities-CjDz-Xvn.mjs} +14 -8
- package/package.json +1 -19
|
@@ -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-
|
|
2
|
-
import { a as SUPPORTS_OBSERVER, s as __LOGGER_ENABLED__, t as IN_BROWSER } from "./globals-
|
|
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 :
|
|
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) ? [] :
|
|
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/
|
|
1648
|
+
//#region src/composables/useSingle/index.ts
|
|
1550
1649
|
/**
|
|
1551
|
-
*
|
|
1650
|
+
* @module useSingle
|
|
1552
1651
|
*
|
|
1553
|
-
*
|
|
1554
|
-
*
|
|
1555
|
-
*
|
|
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
|
|
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
|
|
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,
|
|
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-
|
|
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 };
|
package/dist/utilities/index.mjs
CHANGED
|
@@ -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-
|
|
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
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
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.
|
|
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",
|