@vuetify/v0 1.0.0-beta.0 → 1.0.0-beta.2
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 +2 -1
- package/dist/{adapter-DZeI0ZbW.d.mts → adapter-CQoi3rdC.d.mts} +1 -1
- package/dist/adapter-CVoWg0sw.mjs +99 -0
- package/dist/{adapter-oM18AdUc.mjs → adapter-Cj7vxEdB.mjs} +6 -1
- package/dist/adapter-Cy7wXVFe.mjs +4 -0
- package/dist/{adapter-we-0GbFH.d.mts → adapter-D2ABPTpo.d.mts} +2 -2
- package/dist/{adapter-BO75n0Cn.d.mts → adapter-_srNCBEi.d.mts} +3 -3
- package/dist/browser/index.js +23639 -23267
- package/dist/components/index.d.mts +1 -1
- package/dist/components/index.mjs +1 -1
- package/dist/{components-_uxZ_Zo3.mjs → components-DcOwIGXt.mjs} +304 -214
- package/dist/composables/index.d.mts +20 -20
- package/dist/composables/index.mjs +34 -28
- package/dist/composables-DxKmYiTj.mjs +4077 -0
- package/dist/{consola-CUNHyu8J.d.mts → consola-BPGkJp_q.d.mts} +1 -1
- package/dist/constants/index.d.mts +1 -1
- package/dist/constants/index.mjs +1 -1
- package/dist/{createDataTable-DlFQyBTN.mjs → createDataTable-CBfnCUKU.mjs} +14 -11
- package/dist/{createGroup-DsKJMuRd.mjs → createGroup-BTG6xcyp.mjs} +26 -14
- package/dist/{adapter-BCVxBtDp.mjs → createPagination-B5dfqY-a.mjs} +3 -98
- package/dist/{createRegistry-tJ1PPNIr.mjs → createRegistry-Cb6ftNMU.mjs} +57 -41
- package/dist/{createSelection-DEqhvdoj.mjs → createSelection-BMvXj84C.mjs} +7 -4
- package/dist/{createSingle-ClzWqRCe.mjs → createSingle-BCUJuV4D.mjs} +3 -3
- package/dist/{createTokens-mNxs8DQ3.mjs → createTokens-BSSQAfNX.mjs} +12 -6
- package/dist/data-table/adapters/client/index.d.mts +1 -1
- package/dist/data-table/adapters/client/index.mjs +1 -1
- package/dist/data-table/adapters/index.d.mts +4 -4
- package/dist/data-table/adapters/index.mjs +4 -5
- package/dist/data-table/adapters/server/index.d.mts +1 -1
- package/dist/data-table/adapters/server/index.mjs +1 -1
- package/dist/data-table/adapters/virtual/index.d.mts +1 -1
- package/dist/data-table/adapters/virtual/index.mjs +1 -1
- package/dist/data-table/index.d.mts +5 -5
- package/dist/data-table/index.mjs +5 -5
- package/dist/date/index.d.mts +1 -1
- package/dist/date/index.mjs +36 -33
- package/dist/features/adapters/flagsmith/index.d.mts +1 -1
- package/dist/features/adapters/flagsmith/index.mjs +47 -1
- package/dist/features/adapters/launchdarkly/index.d.mts +1 -1
- package/dist/features/adapters/launchdarkly/index.mjs +37 -1
- package/dist/features/adapters/posthog/index.d.mts +1 -1
- package/dist/features/adapters/posthog/index.mjs +46 -1
- package/dist/features/index.d.mts +2 -2
- package/dist/features/index.mjs +2 -2
- package/dist/{flagsmith-Cn_KVy6v.d.mts → flagsmith-CXzNBqm3.d.mts} +1 -1
- package/dist/{globals-DB-krEA-.mjs → globals-C1X-9O7K.mjs} +1 -1
- package/dist/{index-DWAgQOBa.d.mts → index-Bmz8PZMY.d.mts} +3 -4
- package/dist/{index-BN06veYe.d.mts → index-CKyDkh8J.d.mts} +169 -88
- package/dist/{index-B3PDLk_Y.d.mts → index-DLBPM47A.d.mts} +509 -439
- package/dist/{index-ZD3hw2Zo.d.mts → index-DRrHHgE7.d.mts} +4 -4
- package/dist/{index-ATZqco03.d.mts → index-LMiCHwZl.d.mts} +7 -2
- package/dist/{index-BIyQ3OxC.d.mts → index-rJ_lhMYJ.d.mts} +5 -5
- package/dist/index.d.mts +24 -24
- package/dist/index.mjs +37 -31
- package/dist/json/attributes.json +2 -2
- package/dist/json/web-types.json +3 -3
- package/dist/{launchdarkly-C3Knz7-v.d.mts → launchdarkly-DvhloBts.d.mts} +1 -1
- package/dist/locale/adapters/index.d.mts +2 -2
- package/dist/locale/adapters/index.mjs +2 -3
- package/dist/locale/adapters/v0/index.d.mts +1 -1
- package/dist/locale/adapters/v0/index.mjs +1 -1
- package/dist/locale/adapters/vue-i18n/index.d.mts +1 -1
- package/dist/locale/adapters/vue-i18n/index.mjs +1 -1
- package/dist/locale/index.d.mts +3 -3
- package/dist/locale/index.mjs +3 -3
- package/dist/logger/adapters/consola/index.d.mts +1 -1
- package/dist/logger/adapters/index.d.mts +4 -4
- package/dist/logger/adapters/index.mjs +1 -2
- package/dist/logger/adapters/pino/index.d.mts +1 -1
- package/dist/logger/adapters/v0/index.d.mts +1 -1
- package/dist/logger/adapters/v0/index.mjs +1 -1
- package/dist/logger/index.d.mts +5 -5
- package/dist/logger/index.mjs +2 -2
- package/dist/notifications/index.d.mts +6 -6
- package/dist/notifications/index.mjs +29 -29
- package/dist/palettes/ant/index.d.mts +1 -1
- package/dist/palettes/index.d.mts +3 -3
- package/dist/palettes/material/index.d.mts +1 -1
- package/dist/palettes/md1/index.d.mts +1 -1
- package/dist/palettes/md2/index.d.mts +1 -1
- package/dist/palettes/radix/index.d.mts +1 -1
- package/dist/palettes/tailwind/index.d.mts +1 -1
- package/dist/permissions/adapters/index.d.mts +1 -1
- package/dist/permissions/adapters/index.mjs +1 -2
- package/dist/permissions/adapters/v0/index.d.mts +1 -1
- package/dist/permissions/adapters/v0/index.mjs +1 -1
- package/dist/permissions/index.d.mts +1 -1
- package/dist/permissions/index.mjs +2 -2
- package/dist/{pino-BaYY_KIN.d.mts → pino-B6BI1AOK.d.mts} +1 -1
- package/dist/{posthog-CR8R2ywM.d.mts → posthog-BOT5W7Ds.d.mts} +1 -1
- package/dist/rules/index.d.mts +1 -1
- package/dist/rules/index.mjs +1 -1
- package/dist/{server-CZ83nTn_.mjs → server-D5BJBjB0.mjs} +2 -1
- package/dist/{server-7vjHxjNc.d.mts → server-DbtTGb67.d.mts} +1 -1
- package/dist/storage/adapters/index.d.mts +2 -2
- package/dist/storage/adapters/index.mjs +1 -1
- package/dist/storage/adapters/memory/index.d.mts +1 -1
- package/dist/storage/adapters/memory/index.mjs +1 -1
- package/dist/storage/index.d.mts +3 -3
- package/dist/storage/index.mjs +2 -2
- package/dist/theme/adapters/index.d.mts +1 -1
- package/dist/theme/adapters/index.mjs +3 -4
- package/dist/theme/adapters/unhead/index.d.mts +1 -1
- package/dist/theme/adapters/unhead/index.mjs +1 -1
- package/dist/theme/adapters/v0/index.d.mts +1 -1
- package/dist/theme/adapters/v0/index.mjs +1 -1
- package/dist/theme/index.d.mts +1 -1
- package/dist/theme/index.mjs +5 -4
- package/dist/types/index.d.mts +1 -1
- package/dist/{unhead-CG672gKh.mjs → unhead-i8ji788n.mjs} +12 -8
- package/dist/useEventListener-BK_uaXZv.mjs +103 -0
- package/dist/{useFeatures-B-A-eOo-.mjs → useFeatures-BKAK56af.mjs} +4 -8
- package/dist/{useLocale-CbpoxbVU.mjs → useLocale-CTwn8uZk.mjs} +4 -5
- package/dist/{useLogger-CTgAedNH.mjs → useLogger-D7_hm4e8.mjs} +2 -3
- package/dist/{useNotifications-BkKGUl_1.mjs → useNotifications-B2YeotHN.mjs} +15 -8
- package/dist/{usePermissions-BYOrKcnk.mjs → usePermissions-CWYXR7ji.mjs} +18 -11
- package/dist/{useClickOutside-DoOgNtrj.mjs → useRovingFocus-BdnSUVrD.mjs} +4014 -8138
- package/dist/{useRules-mD_DY9dy.mjs → useRules-CB2_tvd0.mjs} +2 -2
- package/dist/useStorage-BORz1d1g.mjs +162 -0
- package/dist/{useTheme-B1lUya5B.mjs → useTheme-ClUmdmvT.mjs} +12 -9
- package/dist/utilities/index.d.mts +2 -2
- package/dist/utilities/index.mjs +7 -3
- package/dist/{v0-COaQncfZ.mjs → v0-A4GLojAr.mjs} +2 -1
- package/dist/{v0-Bx5Mi7qE.mjs → v0-BU39ZO4s.mjs} +21 -10
- package/dist/{v0-WzS4GAIp.d.mts → v0-D7NA38Vu.d.mts} +1 -1
- package/dist/{v0-CG9o3on7.mjs → v0-DL9JtgCO.mjs} +1 -1
- package/dist/{v0-QIjffi4E.d.mts → v0-DotXXGXU.d.mts} +1 -1
- package/dist/{v0-CHK79mZX.mjs → v0-SwedwC_b.mjs} +3 -4
- package/dist/{v0-DWZ_N2GG.d.mts → v0-rSxMW8FJ.d.mts} +1 -1
- package/dist/{virtual-CrgGA-o6.d.mts → virtual-C-NsLue0.d.mts} +1 -1
- package/dist/{virtual-UumJ2BQ9.mjs → virtual-DFvOoeG6.mjs} +2 -1
- package/package.json +10 -7
- package/dist/adapters-BHD1lc-K.mjs +0 -4
- package/dist/adapters-BYLWDmYl.mjs +0 -5
- package/dist/adapters-BxrTL8E3.mjs +0 -4
- package/dist/adapters-CBgBd7VE.mjs +0 -2
- package/dist/adapters-D64TORDu.mjs +0 -2
- package/dist/flagsmith-Cu93hUIF.mjs +0 -48
- package/dist/launchdarkly-CLGtJCsI.mjs +0 -38
- package/dist/posthog-B5s_KGhy.mjs +0 -47
- /package/dist/{adapter-BEJXp-ie.d.mts → adapter-BYzU4Ey5.d.mts} +0 -0
- /package/dist/{adapter-B6IrPwib.d.mts → adapter-C5F2huij.d.mts} +0 -0
- /package/dist/{adapter-BSKx9WQ7.mjs → adapter-CTsckKAR.mjs} +0 -0
- /package/dist/{adapter-D8zizQVP.mjs → adapter-bwZo7b5p.mjs} +0 -0
- /package/dist/{index-DHmuwBdv.d.mts → index-B9YmdGZ3.d.mts} +0 -0
- /package/dist/{index-PvkxPev3.d.mts → index-BgCkepP_.d.mts} +0 -0
- /package/dist/{index-BOn0AAue.d.mts → index-CROz1VSV.d.mts} +0 -0
- /package/dist/{index-H_hl6-4b.d.mts → index-DXMlYoiQ.d.mts} +0 -0
- /package/dist/{index-C6NnIuDv.d.mts → index-DidZKN6S.d.mts} +0 -0
- /package/dist/{index-CKKoxA9V.d.mts → index-FtE8MXJ_.d.mts} +0 -0
- /package/dist/{memory-BMpJcQjQ.mjs → memory-BJjkQzxs.mjs} +0 -0
- /package/dist/{memory-D-JbdKXg.d.mts → memory-DbyZeNjg.d.mts} +0 -0
- /package/dist/{toArray-CD2-OxAz.mjs → toArray-C89ZaEuF.mjs} +0 -0
- /package/dist/{v0-Dvu8fMl3.mjs → v0-UNyykD27.mjs} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { instanceExists, isFunction, isObject } from "./utilities/index.mjs";
|
|
2
|
-
import { i as useLogger, o as createPluginContext } from "./useLogger-
|
|
3
|
-
import { a as useLocale } from "./useLocale-
|
|
2
|
+
import { i as useLogger, o as createPluginContext } from "./useLogger-D7_hm4e8.mjs";
|
|
3
|
+
import { a as useLocale } from "./useLocale-CTwn8uZk.mjs";
|
|
4
4
|
//#region src/composables/useRules/adapters/standard.ts
|
|
5
5
|
/**
|
|
6
6
|
* Type guard for Standard Schema objects.
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { t as IN_BROWSER } from "./globals-C1X-9O7K.mjs";
|
|
2
|
+
import { isArray, isNullOrUndefined, isObject } from "./utilities/index.mjs";
|
|
3
|
+
import { i as useLogger, o as createPluginContext } from "./useLogger-D7_hm4e8.mjs";
|
|
4
|
+
import { r as useWindowEventListener } from "./useEventListener-BK_uaXZv.mjs";
|
|
5
|
+
import { t as MemoryStorageAdapter } from "./memory-BJjkQzxs.mjs";
|
|
6
|
+
import { ref, watch } from "vue";
|
|
7
|
+
//#region src/composables/useStorage/index.ts
|
|
8
|
+
/**
|
|
9
|
+
* @module useStorage
|
|
10
|
+
*
|
|
11
|
+
* @see https://0.vuetifyjs.com/composables/plugins/use-storage
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* Reactive storage composable with adapter pattern for localStorage, sessionStorage, or memory.
|
|
15
|
+
*
|
|
16
|
+
* Key features:
|
|
17
|
+
* - Reactive refs that sync with storage
|
|
18
|
+
* - localStorage, sessionStorage, and memory adapters
|
|
19
|
+
* - TTL (time-to-live) for time-based cache expiration
|
|
20
|
+
* - Custom serialization support
|
|
21
|
+
* - SSR fallback to memory adapter
|
|
22
|
+
* - Automatic cleanup on remove/clear
|
|
23
|
+
*
|
|
24
|
+
* Uses adapter pattern to abstract storage implementation details.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* import { useStorage } from '@vuetify/v0'
|
|
29
|
+
*
|
|
30
|
+
* const storage = useStorage()
|
|
31
|
+
* const theme = storage.get('theme', 'light')
|
|
32
|
+
* theme.value = 'dark' // persists automatically
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
/**
|
|
36
|
+
* Creates a new storage instance.
|
|
37
|
+
*
|
|
38
|
+
* @param options The options for the storage instance.
|
|
39
|
+
* @template E The type of the storage context.
|
|
40
|
+
* @returns A new storage instance.
|
|
41
|
+
*
|
|
42
|
+
* @see https://0.vuetifyjs.com/composables/plugins/use-storage
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* import { createStorage } from '@vuetify/v0'
|
|
47
|
+
*
|
|
48
|
+
* const storage = createStorage()
|
|
49
|
+
*
|
|
50
|
+
* storage.set('username', 'MyUsername')
|
|
51
|
+
*
|
|
52
|
+
* const username = storage.get('username')
|
|
53
|
+
*
|
|
54
|
+
* console.log(username.value) // MyUsername
|
|
55
|
+
*
|
|
56
|
+
* storage.clear()
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
function createStorage(options = {}) {
|
|
60
|
+
const { adapter = IN_BROWSER ? window.localStorage : new MemoryStorageAdapter(), prefix = "v0:", serializer = {
|
|
61
|
+
read: JSON.parse,
|
|
62
|
+
write: JSON.stringify
|
|
63
|
+
}, ttl } = options;
|
|
64
|
+
const logger = useLogger();
|
|
65
|
+
const cache = /* @__PURE__ */ new Map();
|
|
66
|
+
const watchers = /* @__PURE__ */ new Map();
|
|
67
|
+
function has(key) {
|
|
68
|
+
const prefixedKey = `${prefix}${key}`;
|
|
69
|
+
return cache.has(prefixedKey) || !/* @__PURE__ */ isNullOrUndefined(readStored(prefixedKey));
|
|
70
|
+
}
|
|
71
|
+
function readStored(prefixedKey) {
|
|
72
|
+
const raw = adapter?.getItem(prefixedKey);
|
|
73
|
+
if (/* @__PURE__ */ isNullOrUndefined(raw)) return void 0;
|
|
74
|
+
try {
|
|
75
|
+
const parsed = serializer.read(raw);
|
|
76
|
+
if (/* @__PURE__ */ isObject(parsed) && "__v0" in parsed && "__v" in parsed) {
|
|
77
|
+
const envelope = parsed;
|
|
78
|
+
if (ttl && Date.now() - envelope.__t > ttl) {
|
|
79
|
+
adapter?.removeItem(prefixedKey);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
return envelope.__v;
|
|
83
|
+
}
|
|
84
|
+
return parsed;
|
|
85
|
+
} catch (error) {
|
|
86
|
+
logger.error(`[v0:storage] Failed to parse stored value for key "${prefixedKey}":`, error);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function writeStored(prefixedKey, value) {
|
|
91
|
+
const wrapped = ttl ? {
|
|
92
|
+
__v0: 1,
|
|
93
|
+
__v: value,
|
|
94
|
+
__t: Date.now()
|
|
95
|
+
} : value;
|
|
96
|
+
try {
|
|
97
|
+
adapter?.setItem(prefixedKey, serializer.write(wrapped));
|
|
98
|
+
} catch (error) {
|
|
99
|
+
logger.error(`[v0:storage] Failed to write key "${prefixedKey}":`, error);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function get(key, defaultValue) {
|
|
103
|
+
const prefixedKey = `${prefix}${key}`;
|
|
104
|
+
if (cache.has(prefixedKey)) return cache.get(prefixedKey);
|
|
105
|
+
const valueRef = ref(readStored(prefixedKey) ?? (/* @__PURE__ */ isObject(defaultValue) || /* @__PURE__ */ isArray(defaultValue) ? structuredClone(defaultValue) : defaultValue));
|
|
106
|
+
const stop = watch(valueRef, (newValue) => {
|
|
107
|
+
if (/* @__PURE__ */ isNullOrUndefined(newValue)) adapter?.removeItem(prefixedKey);
|
|
108
|
+
else writeStored(prefixedKey, newValue);
|
|
109
|
+
}, { deep: true });
|
|
110
|
+
watchers.set(prefixedKey, stop);
|
|
111
|
+
cache.set(prefixedKey, valueRef);
|
|
112
|
+
return valueRef;
|
|
113
|
+
}
|
|
114
|
+
function set(key, value) {
|
|
115
|
+
const valueRef = get(key);
|
|
116
|
+
valueRef.value = value;
|
|
117
|
+
}
|
|
118
|
+
function remove(key) {
|
|
119
|
+
const prefixedKey = `${prefix}${key}`;
|
|
120
|
+
const stop = watchers.get(prefixedKey);
|
|
121
|
+
if (!stop) return;
|
|
122
|
+
stop();
|
|
123
|
+
watchers.delete(prefixedKey);
|
|
124
|
+
adapter?.removeItem(prefixedKey);
|
|
125
|
+
cache.delete(prefixedKey);
|
|
126
|
+
}
|
|
127
|
+
function clear() {
|
|
128
|
+
if (watchers.size > 0) {
|
|
129
|
+
for (const stop of watchers.values()) stop();
|
|
130
|
+
watchers.clear();
|
|
131
|
+
}
|
|
132
|
+
if (cache.size > 0) {
|
|
133
|
+
for (const key of cache.keys()) adapter?.removeItem(key);
|
|
134
|
+
cache.clear();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (IN_BROWSER && adapter === window.localStorage) useWindowEventListener("storage", (e) => {
|
|
138
|
+
if (!e.key?.startsWith(prefix)) return;
|
|
139
|
+
const valueRef = cache.get(e.key);
|
|
140
|
+
if (!valueRef) return;
|
|
141
|
+
watchers.get(e.key)?.();
|
|
142
|
+
valueRef.value = /* @__PURE__ */ isNullOrUndefined(e.newValue) ? void 0 : readStored(e.key);
|
|
143
|
+
const stop = watch(valueRef, (newValue) => {
|
|
144
|
+
if (/* @__PURE__ */ isNullOrUndefined(newValue)) adapter?.removeItem(e.key);
|
|
145
|
+
else writeStored(e.key, newValue);
|
|
146
|
+
}, { deep: true });
|
|
147
|
+
watchers.set(e.key, stop);
|
|
148
|
+
});
|
|
149
|
+
return {
|
|
150
|
+
has,
|
|
151
|
+
get,
|
|
152
|
+
set,
|
|
153
|
+
remove,
|
|
154
|
+
clear
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
function createStorageFallback() {
|
|
158
|
+
return createStorage({ adapter: new MemoryStorageAdapter() });
|
|
159
|
+
}
|
|
160
|
+
const [createStorageContext, createStoragePlugin, useStorage] = createPluginContext("v0:storage", (options) => createStorage(options), { fallback: () => createStorageFallback() });
|
|
161
|
+
//#endregion
|
|
162
|
+
export { useStorage as i, createStorageContext as n, createStoragePlugin as r, createStorage as t };
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { foreground } from "./utilities/index.mjs";
|
|
2
|
-
import { o as createPluginContext } from "./useLogger-
|
|
3
|
-
import { t as createSingle } from "./createSingle-
|
|
4
|
-
import { r as flatten, t as createTokens } from "./createTokens-
|
|
5
|
-
import { t as V0StyleSheetThemeAdapter } from "./v0-
|
|
6
|
-
import "./adapters-BHD1lc-K.mjs";
|
|
2
|
+
import { o as createPluginContext } from "./useLogger-D7_hm4e8.mjs";
|
|
3
|
+
import { t as createSingle } from "./createSingle-BCUJuV4D.mjs";
|
|
4
|
+
import { r as flatten, t as createTokens } from "./createTokens-BSSQAfNX.mjs";
|
|
5
|
+
import { t as V0StyleSheetThemeAdapter } from "./v0-BU39ZO4s.mjs";
|
|
7
6
|
import { computed, shallowRef, toRef } from "vue";
|
|
8
7
|
//#region src/composables/useTheme/index.ts
|
|
9
8
|
/**
|
|
@@ -46,8 +45,7 @@ import { computed, shallowRef, toRef } from "vue";
|
|
|
46
45
|
* ```ts
|
|
47
46
|
* import { createTheme } from '@vuetify/v0'
|
|
48
47
|
*
|
|
49
|
-
*
|
|
50
|
-
* namespace: 'v0:theme',
|
|
48
|
+
* const theme = createTheme({
|
|
51
49
|
* default: 'light',
|
|
52
50
|
* themes: {
|
|
53
51
|
* light: {
|
|
@@ -132,6 +130,7 @@ function createTheme(_options = {}) {
|
|
|
132
130
|
register,
|
|
133
131
|
onboard,
|
|
134
132
|
cycle,
|
|
133
|
+
dispose: () => {},
|
|
135
134
|
get size() {
|
|
136
135
|
return registry.size;
|
|
137
136
|
}
|
|
@@ -143,7 +142,8 @@ function createThemeFallback() {
|
|
|
143
142
|
colors: computed(() => ({})),
|
|
144
143
|
isDark: shallowRef(false),
|
|
145
144
|
cycle: () => {},
|
|
146
|
-
onboard: () => []
|
|
145
|
+
onboard: () => [],
|
|
146
|
+
dispose: () => {}
|
|
147
147
|
};
|
|
148
148
|
}
|
|
149
149
|
const [createThemeContext, createThemePlugin, useTheme] = createPluginContext("v0:theme", (options) => createTheme(options), {
|
|
@@ -151,9 +151,12 @@ const [createThemeContext, createThemePlugin, useTheme] = createPluginContext("v
|
|
|
151
151
|
setup: (context, app, { adapter = new V0StyleSheetThemeAdapter(), target, rgb }) => {
|
|
152
152
|
if (rgb) adapter.rgb = true;
|
|
153
153
|
adapter.setup(app, context, target);
|
|
154
|
+
app.onUnmount(() => adapter.dispose?.());
|
|
154
155
|
},
|
|
155
156
|
persist: (ctx) => ctx.selectedId.value,
|
|
156
|
-
restore: (ctx, saved) =>
|
|
157
|
+
restore: (ctx, saved) => {
|
|
158
|
+
if (typeof saved === "string" || typeof saved === "number") ctx.select(saved);
|
|
159
|
+
}
|
|
157
160
|
});
|
|
158
161
|
//#endregion
|
|
159
162
|
export { useTheme as i, createThemeContext as n, createThemePlugin as r, createTheme as t };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { C as
|
|
2
|
-
export { RGB, V0Error, apca, clamp, foreground, hexToRgb, instanceExists, instanceName, isArray, isBoolean, isElement, isFunction, isNaN, isNull, isNullOrUndefined, isNumber, isObject, isPrimitive, isString, isSymbol, isThenable, isUndefined, isV0Error, mergeDeep, range, resolveIds, resolveIndexes, rgbToHex, useId };
|
|
1
|
+
import { A as rgbToHex, C as useId, D as foreground, E as apca, O as RGB, S as resolveIndexes, T as isV0Error, _ as isThenable, a as isArray, b as range, c as isFunction, d as isNullOrUndefined, f as isNumber, g as isSymbol, h as isString, i as clamp, k as hexToRgb, l as isNaN, m as isPrimitive, n as instanceName, o as isBoolean, p as isObject, r as UNSAFE_KEYS, s as isElement, t as instanceExists, u as isNull, v as isUndefined, w as V0Error, x as resolveIds, y as mergeDeep } from "../index-LMiCHwZl.mjs";
|
|
2
|
+
export { RGB, UNSAFE_KEYS, V0Error, apca, clamp, foreground, hexToRgb, instanceExists, instanceName, isArray, isBoolean, isElement, isFunction, isNaN, isNull, isNullOrUndefined, isNumber, isObject, isPrimitive, isString, isSymbol, isThenable, isUndefined, isV0Error, mergeDeep, range, resolveIds, resolveIndexes, rgbToHex, useId };
|
package/dist/utilities/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as IN_BROWSER } from "../globals-
|
|
1
|
+
import { t as IN_BROWSER } from "../globals-C1X-9O7K.mjs";
|
|
2
2
|
import * as Vue from "vue";
|
|
3
3
|
import { useId as useId$1 } from "vue";
|
|
4
4
|
//#region src/utilities/color.ts
|
|
@@ -285,7 +285,7 @@ function isArray(item) {
|
|
|
285
285
|
*/
|
|
286
286
|
/* @__NO_SIDE_EFFECTS__ */
|
|
287
287
|
function isElement(item) {
|
|
288
|
-
return item instanceof Element;
|
|
288
|
+
return typeof Element !== "undefined" && item instanceof Element;
|
|
289
289
|
}
|
|
290
290
|
/**
|
|
291
291
|
* Checks if a value is null
|
|
@@ -530,6 +530,8 @@ function range(length, start = 0) {
|
|
|
530
530
|
/**
|
|
531
531
|
* Resolves an iterable of IDs to their items via a getter,
|
|
532
532
|
* filtering out any that return undefined.
|
|
533
|
+
*
|
|
534
|
+
* @internal
|
|
533
535
|
*/
|
|
534
536
|
/* @__NO_SIDE_EFFECTS__ */
|
|
535
537
|
function resolveIds(ids, getter) {
|
|
@@ -537,6 +539,8 @@ function resolveIds(ids, getter) {
|
|
|
537
539
|
}
|
|
538
540
|
/**
|
|
539
541
|
* Extracts defined index values from an iterable of items.
|
|
542
|
+
*
|
|
543
|
+
* @internal
|
|
540
544
|
*/
|
|
541
545
|
/* @__NO_SIDE_EFFECTS__ */
|
|
542
546
|
function resolveIndexes(items) {
|
|
@@ -657,4 +661,4 @@ function isV0Error(value, code) {
|
|
|
657
661
|
return /* @__PURE__ */ isUndefined(code) || value.code === code;
|
|
658
662
|
}
|
|
659
663
|
//#endregion
|
|
660
|
-
export { V0Error, apca, clamp, foreground, hexToRgb, instanceExists, instanceName, isArray, isBoolean, isElement, isFunction, isNaN, isNull, isNullOrUndefined, isNumber, isObject, isPrimitive, isString, isSymbol, isThenable, isUndefined, isV0Error, mergeDeep, range, resolveIds, resolveIndexes, rgbToHex, useId };
|
|
664
|
+
export { UNSAFE_KEYS, V0Error, apca, clamp, foreground, hexToRgb, instanceExists, instanceName, isArray, isBoolean, isElement, isFunction, isNaN, isNull, isNullOrUndefined, isNumber, isObject, isPrimitive, isString, isSymbol, isThenable, isUndefined, isV0Error, mergeDeep, range, resolveIds, resolveIndexes, rgbToHex, useId };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { t as createPagination } from "./createPagination-B5dfqY-a.mjs";
|
|
2
|
+
import { t as DataTableAdapter } from "./adapter-CVoWg0sw.mjs";
|
|
2
3
|
import { computed, toRef, watch } from "vue";
|
|
3
4
|
//#region src/composables/createDataTable/adapters/v0.ts
|
|
4
5
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as IN_BROWSER } from "./globals-
|
|
1
|
+
import { t as IN_BROWSER } from "./globals-C1X-9O7K.mjs";
|
|
2
2
|
import { isNull, isString } from "./utilities/index.mjs";
|
|
3
|
-
import { t as ThemeAdapter } from "./adapter-
|
|
4
|
-
import {
|
|
3
|
+
import { t as ThemeAdapter } from "./adapter-Cj7vxEdB.mjs";
|
|
4
|
+
import { watch } from "vue";
|
|
5
5
|
//#region src/composables/useTheme/adapters/v0.ts
|
|
6
6
|
/**
|
|
7
7
|
* Theme adapter that injects CSS custom properties via adoptedStyleSheets.
|
|
@@ -18,28 +18,39 @@ var V0StyleSheetThemeAdapter = class extends ThemeAdapter {
|
|
|
18
18
|
setup(app, context, target) {
|
|
19
19
|
if (IN_BROWSER) {
|
|
20
20
|
this.update(context.colors.value, context.isDark.value);
|
|
21
|
-
|
|
21
|
+
const stopWatch = watch([context.colors, context.isDark], ([colors, isDark]) => {
|
|
22
22
|
this.update(colors, isDark);
|
|
23
|
-
})
|
|
24
|
-
if (/* @__PURE__ */ isNull(target))
|
|
23
|
+
});
|
|
24
|
+
if (/* @__PURE__ */ isNull(target)) {
|
|
25
|
+
this.dispose = stopWatch;
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
25
28
|
const targetEl = target instanceof HTMLElement ? target : /* @__PURE__ */ isString(target) ? document.querySelector(target) : app._container || document.querySelector("#app") || document.body;
|
|
26
|
-
if (!targetEl)
|
|
29
|
+
if (!targetEl) {
|
|
30
|
+
this.dispose = stopWatch;
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
27
33
|
if (context.selectedId.value) targetEl.dataset.theme = String(context.selectedId.value);
|
|
28
|
-
|
|
34
|
+
const stopTheme = watch(context.selectedId, (id) => {
|
|
29
35
|
if (!id) return;
|
|
30
36
|
targetEl.dataset.theme = String(id);
|
|
31
|
-
})
|
|
37
|
+
});
|
|
38
|
+
this.dispose = () => {
|
|
39
|
+
stopWatch();
|
|
40
|
+
stopTheme();
|
|
41
|
+
};
|
|
32
42
|
} else {
|
|
33
43
|
const head = app._context?.provides?.usehead ?? app._context?.provides?.head;
|
|
34
44
|
if (head?.push) {
|
|
35
45
|
const id = context.selectedId.value;
|
|
36
|
-
head.push({
|
|
46
|
+
const entry = head.push({
|
|
37
47
|
htmlAttrs: { "data-theme": id ? String(id) : "" },
|
|
38
48
|
style: [{
|
|
39
49
|
innerHTML: this.generate(context.colors.value, context.isDark.value),
|
|
40
50
|
id: this.stylesheetId
|
|
41
51
|
}]
|
|
42
52
|
});
|
|
53
|
+
if (entry?.dispose) this.dispose = entry.dispose;
|
|
43
54
|
}
|
|
44
55
|
}
|
|
45
56
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as IN_BROWSER } from "./globals-
|
|
1
|
+
import { t as IN_BROWSER } from "./globals-C1X-9O7K.mjs";
|
|
2
2
|
import { isFunction } from "./utilities/index.mjs";
|
|
3
3
|
import { t as LoggerAdapter } from "./adapter-Chznb9Ju.mjs";
|
|
4
4
|
//#region src/composables/useLogger/adapters/v0.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as DataTableAdapterContext, r as DataTableAdapterResult, t as DataTableAdapter } from "./adapter-
|
|
1
|
+
import { n as DataTableAdapterContext, r as DataTableAdapterResult, t as DataTableAdapter } from "./adapter-_srNCBEi.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/composables/createDataTable/adapters/v0.d.ts
|
|
4
4
|
declare class ClientDataTableAdapter<T extends Record<string, unknown>> extends DataTableAdapter<T> {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as IN_BROWSER } from "./globals-
|
|
1
|
+
import { t as IN_BROWSER } from "./globals-C1X-9O7K.mjs";
|
|
2
2
|
import { isObject, isString, isUndefined } from "./utilities/index.mjs";
|
|
3
|
-
import { t as LocaleAdapter } from "./adapter-
|
|
3
|
+
import { t as LocaleAdapter } from "./adapter-bwZo7b5p.mjs";
|
|
4
4
|
//#region src/composables/useLocale/adapters/v0.ts
|
|
5
5
|
/**
|
|
6
6
|
* Default locale adapter for @vuetify/v0.
|
|
@@ -36,9 +36,8 @@ var V0LocaleAdapter = class extends LocaleAdapter {
|
|
|
36
36
|
const target = this.context.has(prefix) ? prefix : locale;
|
|
37
37
|
const path = `${target}.${this.context.has(prefix) ? rest.join(".") : key}`;
|
|
38
38
|
if (visited.has(path)) return match;
|
|
39
|
-
visited.add(path);
|
|
40
39
|
const resolved = this.context.tokens.get(path)?.value;
|
|
41
|
-
if (/* @__PURE__ */ isString(resolved)) return this.resolve(target, resolved, visited);
|
|
40
|
+
if (/* @__PURE__ */ isString(resolved)) return this.resolve(target, resolved, new Set(visited).add(path));
|
|
42
41
|
return match;
|
|
43
42
|
});
|
|
44
43
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as DataTableAdapterContext, r as DataTableAdapterResult, t as DataTableAdapter } from "./adapter-
|
|
1
|
+
import { n as DataTableAdapterContext, r as DataTableAdapterResult, t as DataTableAdapter } from "./adapter-_srNCBEi.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/composables/createDataTable/adapters/virtual.d.ts
|
|
4
4
|
declare class VirtualDataTableAdapter<T extends Record<string, unknown>> extends DataTableAdapter<T> {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { t as createPagination } from "./createPagination-B5dfqY-a.mjs";
|
|
2
|
+
import { t as DataTableAdapter } from "./adapter-CVoWg0sw.mjs";
|
|
2
3
|
import { toRef, watch } from "vue";
|
|
3
4
|
//#region src/composables/createDataTable/adapters/virtual.ts
|
|
4
5
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vuetify/v0",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.2",
|
|
4
4
|
"description": "A meta UI framework for building applications, component libraries, and design systems with Vue 3",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"funding": [
|
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
],
|
|
16
16
|
"types": "./dist/index.d.mts",
|
|
17
17
|
"type": "module",
|
|
18
|
+
"sideEffects": false,
|
|
19
|
+
"web-types": "./dist/json/web-types.json",
|
|
18
20
|
"files": [
|
|
19
21
|
"dist"
|
|
20
22
|
],
|
|
@@ -26,7 +28,8 @@
|
|
|
26
28
|
"peerDependencies": {
|
|
27
29
|
"@adobe/leonardo-contrast-colors": ">=1.0.0",
|
|
28
30
|
"@ant-design/colors": ">=7.0.0",
|
|
29
|
-
"@flagsmith/flagsmith": "
|
|
31
|
+
"@flagsmith/flagsmith": ">=11.0.0",
|
|
32
|
+
"@js-temporal/polyfill": ">=0.5.0",
|
|
30
33
|
"@material/material-color-utilities": ">=0.3.0",
|
|
31
34
|
"launchdarkly-js-client-sdk": "^3.0.0",
|
|
32
35
|
"posthog-js": "^1.0.0",
|
|
@@ -37,6 +40,9 @@
|
|
|
37
40
|
"@flagsmith/flagsmith": {
|
|
38
41
|
"optional": true
|
|
39
42
|
},
|
|
43
|
+
"@js-temporal/polyfill": {
|
|
44
|
+
"optional": true
|
|
45
|
+
},
|
|
40
46
|
"launchdarkly-js-client-sdk": {
|
|
41
47
|
"optional": true
|
|
42
48
|
},
|
|
@@ -60,10 +66,10 @@
|
|
|
60
66
|
"@adobe/leonardo-contrast-colors": "^1.1.0",
|
|
61
67
|
"@ant-design/colors": "^8.0.1",
|
|
62
68
|
"@flagsmith/flagsmith": "^11.0.0",
|
|
69
|
+
"@js-temporal/polyfill": "0.5.1",
|
|
63
70
|
"@material/material-color-utilities": "^0.4.0",
|
|
64
71
|
"@vue/compiler-dom": "^3.5.33",
|
|
65
72
|
"@vue/test-utils": "^2.4.10",
|
|
66
|
-
"concurrently": "^9.2.1",
|
|
67
73
|
"launchdarkly-js-client-sdk": "^3.9.1",
|
|
68
74
|
"posthog-js": "^1.372.6",
|
|
69
75
|
"tsdown": "^0.21.10",
|
|
@@ -131,11 +137,8 @@
|
|
|
131
137
|
"./package.json": "./package.json",
|
|
132
138
|
"./browser": "./dist/browser/index.js"
|
|
133
139
|
},
|
|
134
|
-
"optionalDependencies": {
|
|
135
|
-
"@js-temporal/polyfill": "0.5.1"
|
|
136
|
-
},
|
|
137
140
|
"scripts": {
|
|
138
|
-
"build": "
|
|
141
|
+
"build": "pnpm build:tsdown && pnpm build:web-types",
|
|
139
142
|
"build:tsdown": "tsdown",
|
|
140
143
|
"build:web-types": "tsx scripts/generate-web-types.ts",
|
|
141
144
|
"generate:web-types": "tsx scripts/generate-web-types.ts",
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { isNullOrUndefined } from "./utilities/index.mjs";
|
|
2
|
-
import { t as FeaturesAdapter } from "./adapter-BSKx9WQ7.mjs";
|
|
3
|
-
//#region src/composables/useFeatures/adapters/flagsmith.ts
|
|
4
|
-
/**
|
|
5
|
-
* @module FlagsmithFeaturesAdapter
|
|
6
|
-
*
|
|
7
|
-
* @remarks
|
|
8
|
-
* Flagsmith adapter for feature flags.
|
|
9
|
-
*/
|
|
10
|
-
var FlagsmithFeaturesAdapter = class extends FeaturesAdapter {
|
|
11
|
-
client;
|
|
12
|
-
options;
|
|
13
|
-
constructor(client, options) {
|
|
14
|
-
super();
|
|
15
|
-
this.client = client;
|
|
16
|
-
this.options = options;
|
|
17
|
-
}
|
|
18
|
-
setup(onUpdate) {
|
|
19
|
-
const updateFlags = () => {
|
|
20
|
-
const flags = this.client.getAllFlags();
|
|
21
|
-
const adapterFlags = {};
|
|
22
|
-
if (flags) for (const [key, flag] of Object.entries(flags)) {
|
|
23
|
-
const isEnabled = flag.enabled;
|
|
24
|
-
const variation = flag.value;
|
|
25
|
-
adapterFlags[key] = /* @__PURE__ */ isNullOrUndefined(variation) ? isEnabled : {
|
|
26
|
-
$value: isEnabled,
|
|
27
|
-
$variation: variation
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
return adapterFlags;
|
|
31
|
-
};
|
|
32
|
-
this.client.init({
|
|
33
|
-
...this.options,
|
|
34
|
-
onChange: (oldFlags, params, loadingState) => {
|
|
35
|
-
onUpdate(updateFlags());
|
|
36
|
-
this.options.onChange?.(oldFlags, params, loadingState);
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
this.disposeFn = () => this.client.stopListening();
|
|
40
|
-
return updateFlags();
|
|
41
|
-
}
|
|
42
|
-
dispose() {
|
|
43
|
-
this.disposeFn();
|
|
44
|
-
}
|
|
45
|
-
disposeFn = () => {};
|
|
46
|
-
};
|
|
47
|
-
//#endregion
|
|
48
|
-
export { FlagsmithFeaturesAdapter as t };
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { isBoolean } from "./utilities/index.mjs";
|
|
2
|
-
import { t as FeaturesAdapter } from "./adapter-BSKx9WQ7.mjs";
|
|
3
|
-
//#region src/composables/useFeatures/adapters/launchdarkly.ts
|
|
4
|
-
/**
|
|
5
|
-
* @module LaunchDarklyFeaturesAdapter
|
|
6
|
-
*
|
|
7
|
-
* @remarks
|
|
8
|
-
* LaunchDarkly adapter for feature flags.
|
|
9
|
-
*/
|
|
10
|
-
var LaunchDarklyFeaturesAdapter = class extends FeaturesAdapter {
|
|
11
|
-
constructor(client) {
|
|
12
|
-
super();
|
|
13
|
-
this.client = client;
|
|
14
|
-
}
|
|
15
|
-
setup(onUpdate) {
|
|
16
|
-
const collect = () => {
|
|
17
|
-
const allFlags = this.client.allFlags();
|
|
18
|
-
const flags = {};
|
|
19
|
-
for (const [key, value] of Object.entries(allFlags)) flags[key] = /* @__PURE__ */ isBoolean(value) ? value : {
|
|
20
|
-
$value: true,
|
|
21
|
-
$variation: value
|
|
22
|
-
};
|
|
23
|
-
return flags;
|
|
24
|
-
};
|
|
25
|
-
function onChange() {
|
|
26
|
-
onUpdate(collect());
|
|
27
|
-
}
|
|
28
|
-
this.client.on("change", onChange);
|
|
29
|
-
this.disposeFn = () => this.client.off("change", onChange);
|
|
30
|
-
return collect();
|
|
31
|
-
}
|
|
32
|
-
dispose() {
|
|
33
|
-
this.disposeFn();
|
|
34
|
-
}
|
|
35
|
-
disposeFn = () => {};
|
|
36
|
-
};
|
|
37
|
-
//#endregion
|
|
38
|
-
export { LaunchDarklyFeaturesAdapter as t };
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { t as IN_BROWSER } from "./globals-DB-krEA-.mjs";
|
|
2
|
-
import { isBoolean, isNullOrUndefined } from "./utilities/index.mjs";
|
|
3
|
-
import { t as FeaturesAdapter } from "./adapter-BSKx9WQ7.mjs";
|
|
4
|
-
//#region src/composables/useFeatures/adapters/posthog.ts
|
|
5
|
-
/**
|
|
6
|
-
* @module PostHogFeaturesAdapter
|
|
7
|
-
*
|
|
8
|
-
* @remarks
|
|
9
|
-
* PostHog adapter for feature flags.
|
|
10
|
-
*/
|
|
11
|
-
var PostHogFeaturesAdapter = class extends FeaturesAdapter {
|
|
12
|
-
constructor(client) {
|
|
13
|
-
super();
|
|
14
|
-
this.client = client;
|
|
15
|
-
}
|
|
16
|
-
setup(onUpdate) {
|
|
17
|
-
if (!IN_BROWSER) return {};
|
|
18
|
-
const collect = () => {
|
|
19
|
-
const flags = {};
|
|
20
|
-
const activeFlags = this.client.featureFlags.getFlags();
|
|
21
|
-
if (!activeFlags) return flags;
|
|
22
|
-
for (const key of activeFlags) {
|
|
23
|
-
const isEnabled = this.client.isFeatureEnabled(key) ?? false;
|
|
24
|
-
const payload = this.client.getFeatureFlagPayload(key);
|
|
25
|
-
if (/* @__PURE__ */ isNullOrUndefined(payload)) {
|
|
26
|
-
const variant = this.client.getFeatureFlag(key);
|
|
27
|
-
flags[key] = !/* @__PURE__ */ isBoolean(variant) && !/* @__PURE__ */ isNullOrUndefined(variant) ? {
|
|
28
|
-
$value: true,
|
|
29
|
-
$variation: variant
|
|
30
|
-
} : isEnabled;
|
|
31
|
-
} else flags[key] = {
|
|
32
|
-
$value: isEnabled,
|
|
33
|
-
$variation: payload
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
return flags;
|
|
37
|
-
};
|
|
38
|
-
this.disposeFn = this.client.onFeatureFlags(() => onUpdate(collect()));
|
|
39
|
-
return collect();
|
|
40
|
-
}
|
|
41
|
-
dispose() {
|
|
42
|
-
this.disposeFn();
|
|
43
|
-
}
|
|
44
|
-
disposeFn = () => {};
|
|
45
|
-
};
|
|
46
|
-
//#endregion
|
|
47
|
-
export { PostHogFeaturesAdapter as t };
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|