@vuetify/v0 0.2.1 → 1.0.0-alpha.1
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 +5 -1
- package/dist/{adapter-CCIeOzqr.mjs → adapter-CDpOQ8sn.mjs} +29 -20
- package/dist/{adapter-CcHB7rs3.d.mts → adapter-DoziXEzS.d.mts} +1 -1
- package/dist/{adapter-Drq1v5wV.mjs → adapter-DtgIrQsG.mjs} +5 -2
- package/dist/{adapter-BZjmDNJF.d.mts → adapter-J7ude3gO.d.mts} +2 -2
- package/dist/adapters-CFjrKxA2.mjs +5 -0
- package/dist/adapters-CiCexgsk.mjs +4 -0
- package/dist/{adapters-Cd8NDs18.mjs → adapters-Da2twiUn.mjs} +1 -1
- package/dist/adapters-DegUcfkd.mjs +2 -0
- package/dist/browser/index.js +10113 -8547
- package/dist/components/index.d.mts +3 -3
- package/dist/components/index.mjs +2 -2
- package/dist/{components-C142GPl_.mjs → components-CaPQCjo5.mjs} +1356 -386
- package/dist/composables/index.d.mts +11 -11
- package/dist/composables/index.mjs +24 -24
- package/dist/constants/index.mjs +2 -2
- package/dist/{createDataTable-DKE5QsMe.mjs → createDataTable-B4UflKnT.mjs} +100 -30
- package/dist/{createGroup-CzRZ9COh.mjs → createGroup-BC2nfttd.mjs} +24 -9
- package/dist/{createPagination-Tp4C4He8.mjs → createPagination-qvJkcTUY.mjs} +11 -7
- package/dist/{createSelection-Dsb3I0zm.mjs → createSelection-BA9guLah.mjs} +28 -21
- package/dist/{createSingle-C7IGUjP6.mjs → createSingle-BHxHLZeg.mjs} +13 -17
- package/dist/{createTokens-CHTawmud.mjs → createTokens-oJAeh262.mjs} +27 -15
- package/dist/{createTrinity-vvXk0ARD.mjs → createTrinity-BTCs1pYx.mjs} +34 -31
- 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 +5 -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 +6 -6
- package/dist/data-table/index.mjs +6 -6
- package/dist/date/index.mjs +1 -1
- package/dist/features/adapters/posthog/index.mjs +1 -1
- package/dist/features/index.d.mts +1 -1
- package/dist/features/index.mjs +1 -1
- package/dist/{globals-BrRJkuSY.mjs → globals-Berkg6mP.mjs} +1 -1
- package/dist/{htmlElements-DcYtv0hg.mjs → htmlElements-CIePKaTX.mjs} +1 -1
- package/dist/{index-76fQGkkO.d.mts → index-D4odwkZg.d.mts} +8 -11
- package/dist/{index-B_XLHftL.d.mts → index-DFvLSoto.d.mts} +296 -258
- package/dist/{index-DoGxDgdN.d.mts → index-DVPq3_Fz.d.mts} +55 -4
- package/dist/{index-BFuSOgUi.d.mts → index-Gk3x_7zD.d.mts} +1570 -437
- package/dist/{index-BUsrN1vL.d.mts → index-TtSSvHY6.d.mts} +1 -1
- package/dist/index.d.mts +12 -12
- package/dist/index.mjs +27 -27
- package/dist/json/attributes.json +276 -0
- package/dist/json/importMap.json +60 -0
- package/dist/json/tags.json +136 -2
- package/dist/json/web-types.json +1183 -344
- package/dist/locale/adapters/index.d.mts +2 -2
- package/dist/locale/adapters/index.mjs +2 -2
- 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/index.d.mts +3 -3
- package/dist/locale/index.mjs +2 -2
- package/dist/logger/adapters/index.mjs +2 -2
- package/dist/logger/adapters/v0/index.mjs +1 -1
- package/dist/logger/index.d.mts +1 -1
- package/dist/logger/index.mjs +2 -2
- package/dist/notifications/index.d.mts +1 -1
- package/dist/notifications/index.mjs +1 -1
- package/dist/palettes/ant/index.d.mts +1 -1
- package/dist/palettes/index.d.mts +2 -2
- 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/v0/index.d.mts +1 -1
- package/dist/permissions/index.d.mts +1 -1
- package/dist/permissions/index.mjs +1 -1
- package/dist/{posthog-Ccm8FQfD.mjs → posthog-CPvNHMUb.mjs} +1 -1
- package/dist/rules/index.d.mts +1 -1
- package/dist/rules/index.mjs +1 -1
- package/dist/{server-CIftA0pK.mjs → server-B6OtHgBT.mjs} +1 -1
- package/dist/{server-DNUTnISs.d.mts → server-ZiHJ4tfq.d.mts} +1 -1
- package/dist/storage/index.d.mts +1 -1
- package/dist/storage/index.mjs +1 -1
- package/dist/theme/adapters/index.d.mts +1 -1
- package/dist/theme/adapters/index.mjs +4 -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 +3 -3
- package/dist/{toArray-doLQVI56.mjs → toArray-BA_JxFPv.mjs} +9 -0
- package/dist/{unhead--58lO3Z-.mjs → unhead-D2YqAcmF.mjs} +2 -2
- package/dist/{useClickOutside-BjO3Nty9.mjs → useClickOutside-B9a6Jext.mjs} +572 -160
- package/dist/{useFeatures-D9bGOvh4.mjs → useFeatures-wgMwaQ5W.mjs} +14 -5
- package/dist/{useLocale-BRQTt3Ka.mjs → useLocale-qMmVnAwS.mjs} +14 -5
- package/dist/{useLogger-Daz-Zr0z.mjs → useLogger-DFIRqm-N.mjs} +33 -16
- package/dist/{usePermissions-Yp3guoLH.mjs → usePermissions-tZhkBJmq.mjs} +11 -3
- package/dist/{useRules-BFPH7q8w.mjs → useRules-D3UXEtu7.mjs} +10 -2
- package/dist/{useTheme-zRa0Nh_g.mjs → useTheme-BeD__R8t.mjs} +14 -5
- package/dist/utilities/index.mjs +5 -5
- package/dist/{v0-CcV0VwYd.mjs → v0-6XptGYVx.mjs} +2 -2
- package/dist/{v0-DOq_Ia5H.mjs → v0-BG7RhKBv.mjs} +2 -2
- package/dist/{v0-Bno8FQ_F.mjs → v0-CNitYI9N.mjs} +1 -1
- package/dist/{v0-BpgPZ1qB.d.mts → v0-CWXUkMY0.d.mts} +1 -1
- package/dist/{v0-BAG8p0si.d.mts → v0-Dzw5OwNo.d.mts} +1 -1
- package/dist/{v0-D-AEQbvj.mjs → v0-I2mHxD9T.mjs} +1 -1
- package/dist/{virtual-BaQWQ9ji.d.mts → virtual-BCOfxnRS.d.mts} +1 -1
- package/dist/{virtual-D1HwNBLS.mjs → virtual-To-dSw2_.mjs} +2 -2
- package/package.json +10 -7
- package/SKILL.md +0 -95
- package/dist/adapters-BbNfjyvY.mjs +0 -5
- package/dist/adapters-BzRMo72Y.mjs +0 -4
- package/dist/adapters-_DyP1X4U.mjs +0 -2
- /package/dist/{index-c55Utzva.d.mts → index-DvuJXuAN.d.mts} +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { isArray, isBoolean, isFunction, isObject } from "./utilities/index.mjs";
|
|
2
|
-
import { o as createPluginContext } from "./useLogger-
|
|
3
|
-
import { t as createTokens } from "./createTokens-
|
|
4
|
-
import { t as createGroup } from "./createGroup-
|
|
2
|
+
import { o as createPluginContext } from "./useLogger-DFIRqm-N.mjs";
|
|
3
|
+
import { t as createTokens } from "./createTokens-oJAeh262.mjs";
|
|
4
|
+
import { t as createGroup } from "./createGroup-BC2nfttd.mjs";
|
|
5
5
|
import "./flagsmith-DQnnahG5.mjs";
|
|
6
6
|
import "./launchdarkly-2_48EJ1_.mjs";
|
|
7
|
-
import "./posthog-
|
|
7
|
+
import "./posthog-CPvNHMUb.mjs";
|
|
8
8
|
//#region src/composables/useFeatures/adapters/generic/index.ts
|
|
9
9
|
var FeaturesAdapter = class {};
|
|
10
10
|
//#endregion
|
|
@@ -27,6 +27,15 @@ var FeaturesAdapter = class {};
|
|
|
27
27
|
*
|
|
28
28
|
* Inheritance chain: createRegistry → createSelection → createGroup → createFeatures
|
|
29
29
|
* Integrates with createTokens for token-based features.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* import { useFeatures } from '@vuetify/v0'
|
|
34
|
+
*
|
|
35
|
+
* const features = useFeatures()
|
|
36
|
+
* features.register({ id: 'new-checkout', value: true })
|
|
37
|
+
* console.log(features.variation('new-checkout'))
|
|
38
|
+
* ```
|
|
30
39
|
*/
|
|
31
40
|
/**
|
|
32
41
|
* Creates a new features instance.
|
|
@@ -54,7 +63,7 @@ function createFeatures(_options = {}) {
|
|
|
54
63
|
const tokens = createTokens(features, { flat: true });
|
|
55
64
|
const registry = createGroup({
|
|
56
65
|
...options,
|
|
57
|
-
|
|
66
|
+
events: true
|
|
58
67
|
});
|
|
59
68
|
for (const [id, { value }] of tokens.entries()) register({
|
|
60
69
|
id,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { o as createPluginContext } from "./useLogger-
|
|
2
|
-
import { r as flatten, t as createTokens } from "./createTokens-
|
|
3
|
-
import { t as createSingle } from "./createSingle-
|
|
4
|
-
import { t as Vuetify0LocaleAdapter } from "./v0-
|
|
5
|
-
import "./adapters-
|
|
1
|
+
import { o as createPluginContext } from "./useLogger-DFIRqm-N.mjs";
|
|
2
|
+
import { r as flatten, t as createTokens } from "./createTokens-oJAeh262.mjs";
|
|
3
|
+
import { t as createSingle } from "./createSingle-BHxHLZeg.mjs";
|
|
4
|
+
import { t as Vuetify0LocaleAdapter } from "./v0-I2mHxD9T.mjs";
|
|
5
|
+
import "./adapters-DegUcfkd.mjs";
|
|
6
6
|
//#region src/composables/useLocale/index.ts
|
|
7
7
|
/**
|
|
8
8
|
* @module useLocale
|
|
@@ -20,6 +20,15 @@ import "./adapters-_DyP1X4U.mjs";
|
|
|
20
20
|
* - Adapter pattern for integration with i18n providers (VueI18nLocaleAdapter included)
|
|
21
21
|
*
|
|
22
22
|
* Integrates with createSingle for locale selection and createTokens for message resolution.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* import { useLocale } from '@vuetify/v0'
|
|
27
|
+
*
|
|
28
|
+
* const { t, n } = useLocale()
|
|
29
|
+
* console.log(t('$v0.greeting', { name: 'World' }))
|
|
30
|
+
* console.log(n(1234.56))
|
|
31
|
+
* ```
|
|
23
32
|
*/
|
|
24
33
|
/**
|
|
25
34
|
* Creates a new locale instance.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { s as __LOGGER_ENABLED__, t as IN_BROWSER } from "./globals-
|
|
2
|
-
import { isNullOrUndefined } from "./utilities/index.mjs";
|
|
3
|
-
import { i as useContext,
|
|
4
|
-
import { t as Vuetify0LoggerAdapter } from "./v0-
|
|
5
|
-
import "./adapters-
|
|
6
|
-
import { hasInjectionContext, watch } from "vue";
|
|
1
|
+
import { s as __LOGGER_ENABLED__, t as IN_BROWSER } from "./globals-Berkg6mP.mjs";
|
|
2
|
+
import { isNullOrUndefined, isUndefined } from "./utilities/index.mjs";
|
|
3
|
+
import { i as useContext, t as createTrinity } from "./createTrinity-BTCs1pYx.mjs";
|
|
4
|
+
import { t as Vuetify0LoggerAdapter } from "./v0-CNitYI9N.mjs";
|
|
5
|
+
import "./adapters-Da2twiUn.mjs";
|
|
6
|
+
import { hasInjectionContext, inject, watch } from "vue";
|
|
7
7
|
//#region src/composables/createPlugin/index.ts
|
|
8
8
|
/**
|
|
9
9
|
* @module createPlugin
|
|
@@ -20,6 +20,17 @@ import { hasInjectionContext, watch } from "vue";
|
|
|
20
20
|
* Also exports `createPluginContext` — a higher-level factory that generates the standard
|
|
21
21
|
* context/plugin/consumer triple for plugin composables, eliminating boilerplate.
|
|
22
22
|
* Supports `persist()` / `restore()` lifecycle hooks for saving and rehydrating plugin state.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* import { createPlugin } from '@vuetify/v0'
|
|
27
|
+
*
|
|
28
|
+
* const plugin = createPlugin({
|
|
29
|
+
* namespace: 'v0:my-plugin',
|
|
30
|
+
* provide: app => app.provide('my-key', { greet: () => 'hello' }),
|
|
31
|
+
* })
|
|
32
|
+
* // app.use(plugin)
|
|
33
|
+
* ```
|
|
23
34
|
*/
|
|
24
35
|
const INSTALLED = Symbol.for("v0:installed-plugins");
|
|
25
36
|
function getInstalled(app) {
|
|
@@ -94,12 +105,7 @@ function getPersistedStorage() {
|
|
|
94
105
|
function createPluginContext(defaultNamespace, factory, config) {
|
|
95
106
|
function createXContext(_options = {}) {
|
|
96
107
|
const { namespace = defaultNamespace, persist: _persist, ...options } = _options;
|
|
97
|
-
|
|
98
|
-
const context = factory(options);
|
|
99
|
-
function provide(_context = context, app) {
|
|
100
|
-
return _provide(_context, app);
|
|
101
|
-
}
|
|
102
|
-
return createTrinity(_use, provide, context);
|
|
108
|
+
return createTrinity(namespace, factory(options));
|
|
103
109
|
}
|
|
104
110
|
function createXPlugin(_options = {}) {
|
|
105
111
|
const { namespace = defaultNamespace, persist: shouldPersist, ...options } = _options;
|
|
@@ -124,18 +130,20 @@ function createPluginContext(defaultNamespace, factory, config) {
|
|
|
124
130
|
const storage = getPersistedStorage();
|
|
125
131
|
const key = deriveKey(namespace);
|
|
126
132
|
const stored = storage.get(key);
|
|
127
|
-
watch(() => config.persist(context), (val) => {
|
|
133
|
+
const stop = watch(() => config.persist(context), (val) => {
|
|
128
134
|
stored.value = val;
|
|
129
135
|
});
|
|
136
|
+
app.onUnmount(stop);
|
|
130
137
|
}
|
|
131
138
|
} : void 0
|
|
132
139
|
});
|
|
133
140
|
}
|
|
134
141
|
function useX(namespace = defaultNamespace) {
|
|
135
142
|
if (config?.fallback) {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
143
|
+
if (!hasInjectionContext()) return config.fallback(namespace);
|
|
144
|
+
const provided = inject(namespace, void 0);
|
|
145
|
+
if (!/* @__PURE__ */ isUndefined(provided)) return provided;
|
|
146
|
+
return config.fallback(namespace);
|
|
139
147
|
}
|
|
140
148
|
return useContext(namespace);
|
|
141
149
|
}
|
|
@@ -163,6 +171,15 @@ function createPluginContext(defaultNamespace, factory, config) {
|
|
|
163
171
|
* - Context logging support
|
|
164
172
|
*
|
|
165
173
|
* Uses adapter pattern to abstract logging implementation.
|
|
174
|
+
*
|
|
175
|
+
* @example
|
|
176
|
+
* ```ts
|
|
177
|
+
* import { useLogger } from '@vuetify/v0'
|
|
178
|
+
*
|
|
179
|
+
* const logger = useLogger()
|
|
180
|
+
* logger.info('hello')
|
|
181
|
+
* logger.warn('careful')
|
|
182
|
+
* ```
|
|
166
183
|
*/
|
|
167
184
|
/**
|
|
168
185
|
* Creates a new logger instance.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { o as createPluginContext } from "./useLogger-
|
|
2
|
-
import { t as createTokens } from "./createTokens-
|
|
3
|
-
import { t as toArray } from "./toArray-
|
|
1
|
+
import { o as createPluginContext } from "./useLogger-DFIRqm-N.mjs";
|
|
2
|
+
import { t as createTokens } from "./createTokens-oJAeh262.mjs";
|
|
3
|
+
import { t as toArray } from "./toArray-BA_JxFPv.mjs";
|
|
4
4
|
import { t as Vuetify0PermissionAdapter } from "./v0-4OQBCeda.mjs";
|
|
5
5
|
import "./adapters-BhNTUuxE.mjs";
|
|
6
6
|
//#region src/composables/usePermissions/index.ts
|
|
@@ -20,6 +20,14 @@ import "./adapters-BhNTUuxE.mjs";
|
|
|
20
20
|
* - Adapter pattern for custom permission systems
|
|
21
21
|
*
|
|
22
22
|
* Built on createTokens for flexible permission configuration.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* import { usePermissions } from '@vuetify/v0'
|
|
27
|
+
*
|
|
28
|
+
* const permissions = usePermissions()
|
|
29
|
+
* console.log(permissions.can('admin', 'edit', 'users'))
|
|
30
|
+
* ```
|
|
23
31
|
*/
|
|
24
32
|
/**
|
|
25
33
|
* Creates a new permissions instance.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { instanceExists, isFunction, isObject } from "./utilities/index.mjs";
|
|
2
|
-
import { o as createPluginContext } from "./useLogger-
|
|
3
|
-
import { a as useLocale } from "./useLocale-
|
|
2
|
+
import { o as createPluginContext } from "./useLogger-DFIRqm-N.mjs";
|
|
3
|
+
import { a as useLocale } from "./useLocale-qMmVnAwS.mjs";
|
|
4
4
|
//#region src/composables/useRules/adapters/standard.ts
|
|
5
5
|
/**
|
|
6
6
|
* Type guard for Standard Schema objects.
|
|
@@ -54,6 +54,14 @@ function toRule(schema) {
|
|
|
54
54
|
* - `false` — validation fails, error message resolved from locale (`$rules.<name>`)
|
|
55
55
|
*
|
|
56
56
|
* Integrates with createValidation for rule resolution, useLocale for i18n.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* import { useRules } from '@vuetify/v0'
|
|
61
|
+
*
|
|
62
|
+
* const rules = useRules()
|
|
63
|
+
* const validators = rules.resolve(['required', v => v.length > 3 || 'Too short'])
|
|
64
|
+
* ```
|
|
57
65
|
*/
|
|
58
66
|
/**
|
|
59
67
|
* Wraps an alias predicate so that `false` results are
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { foreground } from "./utilities/index.mjs";
|
|
2
|
-
import { o as createPluginContext } from "./useLogger-
|
|
3
|
-
import { r as flatten, t as createTokens } from "./createTokens-
|
|
4
|
-
import { t as createSingle } from "./createSingle-
|
|
5
|
-
import { t as V0StyleSheetThemeAdapter } from "./v0-
|
|
6
|
-
import "./adapters-
|
|
2
|
+
import { o as createPluginContext } from "./useLogger-DFIRqm-N.mjs";
|
|
3
|
+
import { r as flatten, t as createTokens } from "./createTokens-oJAeh262.mjs";
|
|
4
|
+
import { t as createSingle } from "./createSingle-BHxHLZeg.mjs";
|
|
5
|
+
import { t as V0StyleSheetThemeAdapter } from "./v0-6XptGYVx.mjs";
|
|
6
|
+
import "./adapters-CiCexgsk.mjs";
|
|
7
7
|
import { computed, shallowRef, toRef } from "vue";
|
|
8
8
|
//#region src/composables/useTheme/index.ts
|
|
9
9
|
/**
|
|
@@ -24,6 +24,15 @@ import { computed, shallowRef, toRef } from "vue";
|
|
|
24
24
|
* - Theme cycling
|
|
25
25
|
*
|
|
26
26
|
* Integrates with createSingle for selection and createTokens for color resolution.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* import { useTheme } from '@vuetify/v0'
|
|
31
|
+
*
|
|
32
|
+
* const theme = useTheme()
|
|
33
|
+
* theme.select('dark')
|
|
34
|
+
* console.log(theme.isDark.value) // true
|
|
35
|
+
* ```
|
|
27
36
|
*/
|
|
28
37
|
/**
|
|
29
38
|
* Creates a new theme instance.
|
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-Berkg6mP.mjs";
|
|
2
2
|
import * as Vue from "vue";
|
|
3
3
|
import { useId as useId$1 } from "vue";
|
|
4
4
|
//#region src/utilities/color.ts
|
|
@@ -9,7 +9,7 @@ function hexToRgb(hex) {
|
|
|
9
9
|
const g = Number.parseInt(clean[1] + clean[1], 16);
|
|
10
10
|
const b = Number.parseInt(clean[2] + clean[2], 16);
|
|
11
11
|
const a = clean.length === 4 ? Number.parseInt(clean[3] + clean[3], 16) : void 0;
|
|
12
|
-
return
|
|
12
|
+
return /* @__PURE__ */ isUndefined(a) ? {
|
|
13
13
|
r,
|
|
14
14
|
g,
|
|
15
15
|
b
|
|
@@ -24,7 +24,7 @@ function hexToRgb(hex) {
|
|
|
24
24
|
const g = Number.parseInt(clean.slice(2, 4), 16);
|
|
25
25
|
const b = Number.parseInt(clean.slice(4, 6), 16);
|
|
26
26
|
const a = clean.length === 8 ? Number.parseInt(clean.slice(6, 8), 16) : void 0;
|
|
27
|
-
return
|
|
27
|
+
return /* @__PURE__ */ isUndefined(a) ? {
|
|
28
28
|
r,
|
|
29
29
|
g,
|
|
30
30
|
b
|
|
@@ -41,7 +41,7 @@ function rgbToHex({ r, g, b, a }) {
|
|
|
41
41
|
g,
|
|
42
42
|
b
|
|
43
43
|
].map((c) => c.toString(16).padStart(2, "0")).join("");
|
|
44
|
-
if (
|
|
44
|
+
if (!/* @__PURE__ */ isUndefined(a)) return hex + a.toString(16).padStart(2, "0");
|
|
45
45
|
return hex;
|
|
46
46
|
}
|
|
47
47
|
//#endregion
|
|
@@ -379,7 +379,7 @@ function isSymbol(item) {
|
|
|
379
379
|
function isNaN(item) {
|
|
380
380
|
return /* @__PURE__ */ isNumber(item) && Number.isNaN(item);
|
|
381
381
|
}
|
|
382
|
-
const UNSAFE_KEYS = new Set([
|
|
382
|
+
const UNSAFE_KEYS = /* @__PURE__ */ new Set([
|
|
383
383
|
"__proto__",
|
|
384
384
|
"constructor",
|
|
385
385
|
"prototype"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as IN_BROWSER } from "./globals-
|
|
1
|
+
import { t as IN_BROWSER } from "./globals-Berkg6mP.mjs";
|
|
2
2
|
import { isNull, isString } from "./utilities/index.mjs";
|
|
3
|
-
import { t as ThemeAdapter } from "./adapter-
|
|
3
|
+
import { t as ThemeAdapter } from "./adapter-DtgIrQsG.mjs";
|
|
4
4
|
import { onScopeDispose, watch } from "vue";
|
|
5
5
|
//#region src/composables/useTheme/adapters/v0.ts
|
|
6
6
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as DataTableAdapter } from "./adapter-
|
|
2
|
-
import { t as createPagination } from "./createPagination-
|
|
1
|
+
import { t as DataTableAdapter } from "./adapter-CDpOQ8sn.mjs";
|
|
2
|
+
import { t as createPagination } from "./createPagination-qvJkcTUY.mjs";
|
|
3
3
|
import { computed, toRef, watch } from "vue";
|
|
4
4
|
//#region src/composables/createDataTable/adapters/v0.ts
|
|
5
5
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as DataTableAdapterResult, n as DataTableAdapterContext, t as DataTableAdapter } from "./adapter-
|
|
1
|
+
import { i as DataTableAdapterResult, n as DataTableAdapterContext, t as DataTableAdapter } from "./adapter-J7ude3gO.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/composables/createDataTable/adapters/v0.d.ts
|
|
4
4
|
declare class ClientAdapter<T extends Record<string, unknown>> extends DataTableAdapter<T> {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as DataTableAdapterResult, n as DataTableAdapterContext, t as DataTableAdapter } from "./adapter-
|
|
1
|
+
import { i as DataTableAdapterResult, n as DataTableAdapterContext, t as DataTableAdapter } from "./adapter-J7ude3gO.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/composables/createDataTable/adapters/virtual.d.ts
|
|
4
4
|
declare class VirtualAdapter<T extends Record<string, unknown>> extends DataTableAdapter<T> {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as DataTableAdapter } from "./adapter-
|
|
2
|
-
import { t as createPagination } from "./createPagination-
|
|
1
|
+
import { t as DataTableAdapter } from "./adapter-CDpOQ8sn.mjs";
|
|
2
|
+
import { t as createPagination } from "./createPagination-qvJkcTUY.mjs";
|
|
3
3
|
import { toRef, watch } from "vue";
|
|
4
4
|
//#region src/composables/createDataTable/adapters/virtual.ts
|
|
5
5
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vuetify/v0",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-alpha.1",
|
|
4
4
|
"description": "A meta UI framework for building applications, component libraries, and design systems with Vue 3",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"types": "./dist/index.d.mts",
|
|
@@ -52,17 +52,18 @@
|
|
|
52
52
|
"@ant-design/colors": "^8.0.1",
|
|
53
53
|
"@flagsmith/flagsmith": "^11.0.0",
|
|
54
54
|
"@material/material-color-utilities": "^0.4.0",
|
|
55
|
-
"@vue/compiler-dom": "^3.5.
|
|
55
|
+
"@vue/compiler-dom": "^3.5.32",
|
|
56
56
|
"@vue/test-utils": "^2.4.6",
|
|
57
|
-
"
|
|
58
|
-
"
|
|
57
|
+
"concurrently": "^9.2.1",
|
|
58
|
+
"launchdarkly-js-client-sdk": "^3.9.1",
|
|
59
|
+
"posthog-js": "^1.365.0",
|
|
59
60
|
"tsdown": "^0.21.7",
|
|
60
61
|
"tsx": "4.21.0",
|
|
61
62
|
"typescript": "6.0.2",
|
|
62
63
|
"unplugin-vue": "^7.1.1",
|
|
63
|
-
"vue": "3.5.
|
|
64
|
+
"vue": "3.5.32",
|
|
64
65
|
"vue-component-meta": "3.2.6",
|
|
65
|
-
"vue-i18n": "^11.3.
|
|
66
|
+
"vue-i18n": "^11.3.1"
|
|
66
67
|
},
|
|
67
68
|
"imports": {
|
|
68
69
|
"#v0/*": {
|
|
@@ -125,7 +126,9 @@
|
|
|
125
126
|
"@js-temporal/polyfill": "0.5.1"
|
|
126
127
|
},
|
|
127
128
|
"scripts": {
|
|
128
|
-
"build": "tsdown
|
|
129
|
+
"build": "concurrently --names tsdown,webtypes --kill-others-on-fail --prefix-colors cyan,magenta 'pnpm build:tsdown' 'pnpm build:web-types'",
|
|
130
|
+
"build:tsdown": "tsdown",
|
|
131
|
+
"build:web-types": "tsx scripts/generate-web-types.ts",
|
|
129
132
|
"generate:web-types": "tsx scripts/generate-web-types.ts",
|
|
130
133
|
"typecheck": "vue-tsc --noEmit --incremental"
|
|
131
134
|
}
|
package/SKILL.md
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: vuetify0
|
|
3
|
-
description: Build with @vuetify/v0 headless composables and components for Vue 3. Use when creating selection state (single, multi, grouped, stepped), form validation, tab/dialog/popover UI, provide/inject context, registries, virtual scrolling, pagination, keyboard shortcuts, resize observers, theming, breakpoints, or SSR-safe browser detection. Triggers on v0, vuetify0, headless components, or WAI-ARIA patterns.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Vuetify0 - Headless Composables & Components
|
|
7
|
-
|
|
8
|
-
Transform Vue 3 apps with unstyled, logic-focused building blocks for design systems.
|
|
9
|
-
|
|
10
|
-
## Quick Start
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
pnpm install @vuetify/v0
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
No global plugin required. Import only what you need:
|
|
17
|
-
|
|
18
|
-
```ts
|
|
19
|
-
import { createSelection } from '@vuetify/v0/composables'
|
|
20
|
-
import { Tabs } from '@vuetify/v0/components'
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Core Decision Tree
|
|
24
|
-
|
|
25
|
-
**Before writing custom logic**, check if v0 already provides it:
|
|
26
|
-
|
|
27
|
-
| Need | Use |
|
|
28
|
-
|------|-----|
|
|
29
|
-
| Single item selection | `createSingle` |
|
|
30
|
-
| Multi-item selection | `createSelection` |
|
|
31
|
-
| Selection with "select all" | `createGroup` |
|
|
32
|
-
| Step wizard / carousel | `createStep` |
|
|
33
|
-
| Form validation | `createForm` |
|
|
34
|
-
| Shared state (provide/inject) | `createContext` |
|
|
35
|
-
| Browser utilities | `IN_BROWSER`, `useBreakpoints`, `useMediaQuery` |
|
|
36
|
-
|
|
37
|
-
## Component Architecture
|
|
38
|
-
|
|
39
|
-
All components are **headless** (unstyled) and follow WAI-ARIA patterns:
|
|
40
|
-
|
|
41
|
-
```vue
|
|
42
|
-
<script setup>
|
|
43
|
-
import { Tabs } from '@vuetify/v0/components'
|
|
44
|
-
</script>
|
|
45
|
-
|
|
46
|
-
<template>
|
|
47
|
-
<Tabs.Root v-model="active">
|
|
48
|
-
<Tabs.List>
|
|
49
|
-
<Tabs.Item value="overview">Overview</Tabs.Item>
|
|
50
|
-
</Tabs.List>
|
|
51
|
-
<Tabs.Panel value="overview">Content</Tabs.Panel>
|
|
52
|
-
</Tabs.Root>
|
|
53
|
-
</template>
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
**Available components**: Dialog, Tabs, ExpansionPanel, Checkbox, Radio, Popover, Pagination, Select, Slider, Splitter, Switch, Avatar, Breadcrumbs, Form, Input, Scrim
|
|
57
|
-
|
|
58
|
-
## Essential Patterns
|
|
59
|
-
|
|
60
|
-
### Selection State
|
|
61
|
-
```ts
|
|
62
|
-
// Single selection (tabs, theme picker)
|
|
63
|
-
const single = createSingle({ mandatory: 'force' })
|
|
64
|
-
|
|
65
|
-
// Multi-selection (tags, filters)
|
|
66
|
-
const selection = createSelection({ multiple: true })
|
|
67
|
-
|
|
68
|
-
// Group with "select all" (data tables)
|
|
69
|
-
const group = createGroup()
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### Context Sharing
|
|
73
|
-
```ts
|
|
74
|
-
// Type-safe provide/inject
|
|
75
|
-
const [useTheme, provideTheme] = createContext<Theme>('Theme')
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### Form Validation
|
|
79
|
-
```ts
|
|
80
|
-
const form = createForm()
|
|
81
|
-
form.register({ id: 'email', rules: [required, email] })
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## Anti-Patterns
|
|
85
|
-
|
|
86
|
-
**Don't reinvent these wheels:**
|
|
87
|
-
|
|
88
|
-
- **Custom selection logic** → Use `createSelection`
|
|
89
|
-
- **Manual provide/inject** → Use `createContext`
|
|
90
|
-
- **SSR checks** → Use `IN_BROWSER` constant
|
|
91
|
-
|
|
92
|
-
## Resources
|
|
93
|
-
|
|
94
|
-
- **Vuetify MCP** for structured API access: `claude mcp add vuetify-mcp https://mcp.vuetifyjs.com/mcp`
|
|
95
|
-
- **Live docs**: https://0.vuetifyjs.com
|
|
File without changes
|