@vuetify/v0 1.0.0-rc.7 → 1.0.0-rc.9
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 -2
- package/dist/{adapter-CMdKyFLz.d.mts → adapter-CVNRHfrz.d.mts} +1 -1
- package/dist/browser/index.d.ts +73 -36
- package/dist/browser/index.js +254 -122
- package/dist/components/index.d.mts +1 -1
- package/dist/components/index.mjs +1 -1
- package/dist/{components-D87gpuRI.mjs → components-BVbls2Zu.mjs} +64 -31
- package/dist/composables/index.d.mts +6 -6
- package/dist/composables/index.mjs +21 -21
- package/dist/{composables-DAc4DbYb.mjs → composables-BT7flkAT.mjs} +18 -12
- package/dist/constants/index.mjs +1 -1
- package/dist/{createDataTable-C86TFzxJ.mjs → createDataTable-s3eVS4Zu.mjs} +3 -3
- package/dist/{createGroup-DKVmhWJZ.mjs → createGroup-B6LPZBb5.mjs} +1 -1
- package/dist/{createRegistry-DaRYxox5.mjs → createRegistry-BGTmeeis.mjs} +23 -13
- package/dist/{createSelection-CZFfJnBv.mjs → createSelection-CyN6WFYU.mjs} +27 -13
- package/dist/{createSingle-D08Et-36.mjs → createSingle-B2ccuoDn.mjs} +1 -1
- package/dist/{createTokens-BY_7TedA.mjs → createTokens-CmFlFaiL.mjs} +8 -7
- package/dist/data-table/index.d.mts +1 -1
- package/dist/data-table/index.mjs +1 -1
- 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-Djy_aCgG.mjs → globals-RL3Sag6Q.mjs} +1 -1
- package/dist/{index-B5ybQyJO.d.mts → index-BwNRi6BK.d.mts} +9 -7
- package/dist/{index-CUdlfMMw.d.mts → index-CfoyBH6V.d.mts} +144 -110
- package/dist/{index-CIf2yTGR.d.mts → index-CrFFilCd.d.mts} +2 -2
- package/dist/{index-CfSenWTN.d.mts → index-DCtHbY0a.d.mts} +1 -1
- package/dist/{index-DTYOP7ci.d.mts → index-RGiSdjYt.d.mts} +8 -7
- package/dist/index.d.mts +7 -7
- package/dist/index.mjs +23 -23
- package/dist/json/attributes.json +28 -0
- package/dist/json/tags.json +7 -0
- package/dist/json/web-types.json +65 -2
- package/dist/locale/adapters/index.d.mts +2 -2
- package/dist/locale/adapters/index.mjs +1 -1
- 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/locale/messages/en/index.d.mts +6 -0
- package/dist/locale/messages/en/index.mjs +3 -1
- package/dist/logger/adapters/index.mjs +1 -1
- 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 +2 -2
- 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/rules/index.d.mts +1 -1
- package/dist/rules/index.mjs +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 +2 -2
- 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/{unhead-CAPMhSV7.mjs → unhead-CEoip0pl.mjs} +20 -2
- package/dist/{useEventListener-BtOsc1qg.mjs → useEventListener-CBJTFVtj.mjs} +1 -1
- package/dist/{useFeatures-B5I-8W8H.mjs → useFeatures-BZszg39v.mjs} +4 -4
- package/dist/{useLocale-AKOyyv43.mjs → useLocale-DeC8QRi3.mjs} +4 -4
- package/dist/{useLogger-bHW-Guij.mjs → useLogger-6LS-fgWD.mjs} +2 -2
- package/dist/{useNotifications-P-1VQHi8.mjs → useNotifications-DD7vR-tx.mjs} +3 -3
- package/dist/{usePermissions-nuWucbL_.mjs → usePermissions-BIfS_ihQ.mjs} +2 -2
- package/dist/{useRovingFocus-BfbmLJoo.mjs → useRovingFocus-Dzw1c9uA.mjs} +109 -76
- package/dist/{useRules-SLj8Le-M.mjs → useRules-BzgsUHWa.mjs} +2 -2
- package/dist/{useStorage-B4eV6lZZ.mjs → useStorage-5nEMSv-y.mjs} +3 -3
- package/dist/{useTheme-SVM2VmlS.mjs → useTheme-K1dwhgeW.mjs} +4 -4
- package/dist/utilities/index.mjs +1 -1
- package/dist/{v0-BoEyw8RC.mjs → v0-BOXWgl8G.mjs} +1 -1
- package/dist/{v0-DcTsWvzJ.d.mts → v0-C0OfckSF.d.mts} +1 -1
- package/dist/{v0-gVrU_ObF.mjs → v0-CFy_iJEG.mjs} +19 -2
- package/dist/{v0-D5BwU_Up.mjs → v0-DsrbK05t.mjs} +1 -1
- package/package.json +13 -8
package/dist/browser/index.js
CHANGED
|
@@ -135,7 +135,7 @@ const SUPPORTS_MATCH_MEDIA = IN_BROWSER && "matchMedia" in window && typeof wind
|
|
|
135
135
|
const SUPPORTS_OBSERVER = IN_BROWSER && "ResizeObserver" in window;
|
|
136
136
|
const SUPPORTS_INTERSECTION_OBSERVER = IN_BROWSER && "IntersectionObserver" in window;
|
|
137
137
|
const SUPPORTS_MUTATION_OBSERVER = IN_BROWSER && "MutationObserver" in window;
|
|
138
|
-
const version = "1.0.0-rc.
|
|
138
|
+
const version = "1.0.0-rc.9";
|
|
139
139
|
/* v8 ignore next -- build-time constant, __DEV__ short-circuits in tests */
|
|
140
140
|
const __LOGGER_ENABLED__ = false;
|
|
141
141
|
//#endregion
|
|
@@ -1666,6 +1666,7 @@ function createRegistry(options) {
|
|
|
1666
1666
|
const directory = /* @__PURE__ */ new Map();
|
|
1667
1667
|
const cache = /* @__PURE__ */ new Map();
|
|
1668
1668
|
const listeners = /* @__PURE__ */ new Map();
|
|
1669
|
+
const minted = /* @__PURE__ */ new WeakSet();
|
|
1669
1670
|
const order = [];
|
|
1670
1671
|
const version = shallowRef(0);
|
|
1671
1672
|
let indexDependentCount = 0;
|
|
@@ -1673,6 +1674,7 @@ function createRegistry(options) {
|
|
|
1673
1674
|
let minDirtyIndex = Infinity;
|
|
1674
1675
|
let maxDirtyIndex = -Infinity;
|
|
1675
1676
|
let isBatching = false;
|
|
1677
|
+
let structural = false;
|
|
1676
1678
|
let batched = [];
|
|
1677
1679
|
function dispatch(event, data) {
|
|
1678
1680
|
const cbs = listeners.get(event);
|
|
@@ -1812,23 +1814,29 @@ function createRegistry(options) {
|
|
|
1812
1814
|
}
|
|
1813
1815
|
function invalidate() {
|
|
1814
1816
|
cache.clear();
|
|
1815
|
-
if (isBatching)
|
|
1817
|
+
if (isBatching) {
|
|
1818
|
+
structural = true;
|
|
1819
|
+
return;
|
|
1820
|
+
}
|
|
1816
1821
|
version.value++;
|
|
1817
1822
|
}
|
|
1818
1823
|
function batch(fn) {
|
|
1819
1824
|
if (isBatching) return fn();
|
|
1820
1825
|
isBatching = true;
|
|
1826
|
+
structural = false;
|
|
1821
1827
|
batched = [];
|
|
1822
1828
|
try {
|
|
1823
|
-
|
|
1824
|
-
cache.clear();
|
|
1825
|
-
for (const { event, data } of batched) dispatch(event, data);
|
|
1826
|
-
return result;
|
|
1829
|
+
return fn();
|
|
1827
1830
|
} finally {
|
|
1828
1831
|
isBatching = false;
|
|
1832
|
+
const queue = batched;
|
|
1829
1833
|
batched = [];
|
|
1830
1834
|
cache.clear();
|
|
1831
|
-
|
|
1835
|
+
try {
|
|
1836
|
+
for (const { event, data } of queue) dispatch(event, data);
|
|
1837
|
+
} finally {
|
|
1838
|
+
if (structural) version.value++;
|
|
1839
|
+
}
|
|
1832
1840
|
}
|
|
1833
1841
|
}
|
|
1834
1842
|
function reindex() {
|
|
@@ -1862,6 +1870,7 @@ function createRegistry(options) {
|
|
|
1862
1870
|
function register(registration = {}) {
|
|
1863
1871
|
if (needsReindex) reindex();
|
|
1864
1872
|
const size = collection.size;
|
|
1873
|
+
const auto = /* @__PURE__ */ isNullOrUndefined(registration.id);
|
|
1865
1874
|
const id = registration.id ?? /* @__PURE__ */ useId();
|
|
1866
1875
|
if (has(id)) {
|
|
1867
1876
|
logger.warn(`Ticket "${id}" already exists. Use \`upsert()\` to update or check \`has()\` before registering.`);
|
|
@@ -1881,6 +1890,7 @@ function createRegistry(options) {
|
|
|
1881
1890
|
unregister: () => unregister(id)
|
|
1882
1891
|
};
|
|
1883
1892
|
const ticket = reactive ? shallowReactive(input) : input;
|
|
1893
|
+
if (auto) minted.add(ticket);
|
|
1884
1894
|
collection.set(ticket.id, ticket);
|
|
1885
1895
|
order.push(ticket);
|
|
1886
1896
|
directory.set(ticket.index, ticket.id);
|
|
@@ -1914,10 +1924,8 @@ function createRegistry(options) {
|
|
|
1914
1924
|
delete input.index;
|
|
1915
1925
|
delete input.valueIsIndex;
|
|
1916
1926
|
delete input.unregister;
|
|
1917
|
-
if (ticket
|
|
1918
|
-
|
|
1919
|
-
delete input.value;
|
|
1920
|
-
}
|
|
1927
|
+
if (minted.has(ticket)) delete input.id;
|
|
1928
|
+
if (ticket.valueIsIndex) delete input.value;
|
|
1921
1929
|
return input;
|
|
1922
1930
|
}
|
|
1923
1931
|
function offboard(ids) {
|
|
@@ -1936,6 +1944,7 @@ function createRegistry(options) {
|
|
|
1936
1944
|
let w = 0;
|
|
1937
1945
|
for (const ticket of order) if (!removedIds.has(ticket.id)) order[w++] = ticket;
|
|
1938
1946
|
order.length = w;
|
|
1947
|
+
invalidate();
|
|
1939
1948
|
for (const ticket of removed) {
|
|
1940
1949
|
if (ticket.valueIsIndex) indexDependentCount--;
|
|
1941
1950
|
minDirtyIndex = Math.min(minDirtyIndex, ticket.index);
|
|
@@ -1944,7 +1953,8 @@ function createRegistry(options) {
|
|
|
1944
1953
|
unassign(ticket.value, ticket.id);
|
|
1945
1954
|
}
|
|
1946
1955
|
for (const ticket of removed) emit("unregister:ticket", ticket);
|
|
1947
|
-
|
|
1956
|
+
if (indexDependentCount > 0 && minDirtyIndex < collection.size) reindex();
|
|
1957
|
+
else needsReindex = true;
|
|
1948
1958
|
});
|
|
1949
1959
|
return removed.map((ticket) => toInput(ticket));
|
|
1950
1960
|
}
|
|
@@ -2183,6 +2193,8 @@ function createModel(_options = {}) {
|
|
|
2183
2193
|
}
|
|
2184
2194
|
function unselect(id) {
|
|
2185
2195
|
if (toValue(disabled)) return;
|
|
2196
|
+
const item = registry.get(id);
|
|
2197
|
+
if (!item || toValue(item.disabled)) return;
|
|
2186
2198
|
selectedIds.delete(id);
|
|
2187
2199
|
}
|
|
2188
2200
|
function toggle(id) {
|
|
@@ -2379,11 +2391,17 @@ function createSelection(_options = {}) {
|
|
|
2379
2391
|
const ticket = seek("first");
|
|
2380
2392
|
if (ticket) model.select(ticket.id);
|
|
2381
2393
|
}
|
|
2382
|
-
function
|
|
2394
|
+
function drain(id) {
|
|
2383
2395
|
if (toValue(model.disabled)) return;
|
|
2384
2396
|
if (toValue(mandatory) && model.selectedIds.size === 1) return;
|
|
2385
2397
|
model.selectedIds.delete(id);
|
|
2386
2398
|
}
|
|
2399
|
+
function unselect(id) {
|
|
2400
|
+
if (toValue(model.disabled)) return;
|
|
2401
|
+
const item = model.get(id);
|
|
2402
|
+
if (!item || toValue(item.disabled)) return;
|
|
2403
|
+
drain(id);
|
|
2404
|
+
}
|
|
2387
2405
|
function toggle(id) {
|
|
2388
2406
|
if (toValue(model.disabled)) return;
|
|
2389
2407
|
if (model.selectedIds.has(id)) unselect(id);
|
|
@@ -2393,22 +2411,28 @@ function createSelection(_options = {}) {
|
|
|
2393
2411
|
const isMultiple = options?.multiple ?? toValue(multiple);
|
|
2394
2412
|
const currentIds = new Set(model.selectedIds);
|
|
2395
2413
|
const targetIds = /* @__PURE__ */ new Set();
|
|
2396
|
-
for (const value of values) {
|
|
2397
|
-
const ids = model.browse(toRaw(value));
|
|
2398
|
-
if (ids) for (const id of ids) targetIds.add(id);
|
|
2399
|
-
}
|
|
2400
2414
|
if (isMultiple) {
|
|
2401
|
-
for (const
|
|
2402
|
-
|
|
2403
|
-
if (
|
|
2404
|
-
const
|
|
2405
|
-
|
|
2406
|
-
|
|
2415
|
+
for (const value of values) {
|
|
2416
|
+
const ids = model.browse(toRaw(value));
|
|
2417
|
+
if (/* @__PURE__ */ isUndefined(ids)) continue;
|
|
2418
|
+
for (const id of ids) {
|
|
2419
|
+
const ticket = model.get(id);
|
|
2420
|
+
if (!ticket || toValue(ticket.disabled)) continue;
|
|
2421
|
+
targetIds.add(id);
|
|
2422
|
+
}
|
|
2407
2423
|
}
|
|
2424
|
+
if (toValue(mandatory) && targetIds.size === 0) return;
|
|
2425
|
+
for (const id of currentIds) if (!targetIds.has(id)) model.selectedIds.delete(id);
|
|
2426
|
+
for (const id of targetIds) model.selectedIds.add(id);
|
|
2408
2427
|
} else {
|
|
2428
|
+
for (const value of values) {
|
|
2429
|
+
const ids = model.browse(toRaw(value));
|
|
2430
|
+
if (/* @__PURE__ */ isUndefined(ids)) continue;
|
|
2431
|
+
for (const id of ids) targetIds.add(id);
|
|
2432
|
+
}
|
|
2409
2433
|
const next = targetIds.values().next().value;
|
|
2410
2434
|
const last = currentIds.values().next().value;
|
|
2411
|
-
if (!/* @__PURE__ */ isUndefined(last))
|
|
2435
|
+
if (!/* @__PURE__ */ isUndefined(last)) drain(last);
|
|
2412
2436
|
if (!/* @__PURE__ */ isUndefined(next)) model.select(next);
|
|
2413
2437
|
}
|
|
2414
2438
|
}
|
|
@@ -2704,10 +2728,10 @@ function useSingle(namespace = "v0:single") {
|
|
|
2704
2728
|
* - Alias resolution with circular reference detection
|
|
2705
2729
|
* - Nested token flattening with dot notation
|
|
2706
2730
|
* - W3C Design Tokens format ($value, $type, $description, $extensions)
|
|
2707
|
-
* - Path-based resolution (e.g., {colors}.blue.500)
|
|
2708
|
-
* - Resolution caching for performance
|
|
2731
|
+
* - Path-based resolution (e.g., {colors.blue.500} or colors.blue.500)
|
|
2732
|
+
* - Resolution caching for performance
|
|
2709
2733
|
*
|
|
2710
|
-
* Used by useTheme, useLocale, and
|
|
2734
|
+
* Used by useTheme, useLocale, useFeatures, and usePermissions for token-based configuration.
|
|
2711
2735
|
*
|
|
2712
2736
|
* @example
|
|
2713
2737
|
* ```ts
|
|
@@ -2806,6 +2830,7 @@ function createTokens(tokens = {}, options = {}) {
|
|
|
2806
2830
|
cache.set(cacheKey, void 0);
|
|
2807
2831
|
return;
|
|
2808
2832
|
}
|
|
2833
|
+
if (/* @__PURE__ */ isString(current) && isAlias(current)) return resolve(current, visited);
|
|
2809
2834
|
result = current;
|
|
2810
2835
|
} else if (isTokenAlias(current)) {
|
|
2811
2836
|
const inner = current.$value;
|
|
@@ -2821,9 +2846,9 @@ function createTokens(tokens = {}, options = {}) {
|
|
|
2821
2846
|
cache.clear();
|
|
2822
2847
|
return _register(registration);
|
|
2823
2848
|
}
|
|
2824
|
-
function upsert(id, registration) {
|
|
2849
|
+
function upsert(id, registration, event) {
|
|
2825
2850
|
cache.clear();
|
|
2826
|
-
return _upsert(id, registration);
|
|
2851
|
+
return _upsert(id, registration, event);
|
|
2827
2852
|
}
|
|
2828
2853
|
function unregister(id) {
|
|
2829
2854
|
cache.clear();
|
|
@@ -5288,10 +5313,10 @@ function useImage(options) {
|
|
|
5288
5313
|
//#region src/components/Avatar/AvatarImage.vue
|
|
5289
5314
|
const _sfc_main$12 = /* @__PURE__ */ defineComponent({
|
|
5290
5315
|
name: "AvatarImage",
|
|
5291
|
-
inheritAttrs: false,
|
|
5292
5316
|
__name: "AvatarImage",
|
|
5293
5317
|
props: {
|
|
5294
5318
|
src: {},
|
|
5319
|
+
alt: {},
|
|
5295
5320
|
priority: { default: 0 },
|
|
5296
5321
|
namespace: { default: "v0:avatar" },
|
|
5297
5322
|
as: { default: "img" },
|
|
@@ -5348,6 +5373,7 @@ const _sfc_main$12 = /* @__PURE__ */ defineComponent({
|
|
|
5348
5373
|
attrs: {
|
|
5349
5374
|
role: "img",
|
|
5350
5375
|
src: image.source.value,
|
|
5376
|
+
alt: __props.alt,
|
|
5351
5377
|
onLoad,
|
|
5352
5378
|
onError
|
|
5353
5379
|
}
|
|
@@ -6660,11 +6686,14 @@ function useProxyModel(context, model, options) {
|
|
|
6660
6686
|
return toValue(multiple) ? val : val[0];
|
|
6661
6687
|
}
|
|
6662
6688
|
const applyOptions = toValue(multiple) === toValue(context.multiple ?? false) ? void 0 : { multiple: toValue(multiple) };
|
|
6663
|
-
const
|
|
6664
|
-
|
|
6665
|
-
|
|
6666
|
-
|
|
6667
|
-
|
|
6689
|
+
const pending = /* @__PURE__ */ new Set();
|
|
6690
|
+
function reconcile(values) {
|
|
6691
|
+
context.apply(values, applyOptions);
|
|
6692
|
+
const selected = new Set(context.selectedValues.value);
|
|
6693
|
+
pending.clear();
|
|
6694
|
+
for (const value of values) if (!selected.has(value)) pending.add(value);
|
|
6695
|
+
}
|
|
6696
|
+
reconcile(transformIn(model));
|
|
6668
6697
|
let syncing = false;
|
|
6669
6698
|
function shallowEqual(a, b) {
|
|
6670
6699
|
if (a === b) return true;
|
|
@@ -6673,15 +6702,17 @@ function useProxyModel(context, model, options) {
|
|
|
6673
6702
|
}
|
|
6674
6703
|
const contextWatch = watch(context.selectedValues, (val) => {
|
|
6675
6704
|
if (syncing) return;
|
|
6705
|
+
syncing = true;
|
|
6676
6706
|
modelWatch.pause();
|
|
6677
6707
|
model.value = transformOut(Array.from(toValue(val)));
|
|
6678
6708
|
modelWatch.resume();
|
|
6709
|
+
syncing = false;
|
|
6679
6710
|
}, { flush: "sync" });
|
|
6680
6711
|
const modelWatch = watch(model, (val) => {
|
|
6681
6712
|
if (syncing) return;
|
|
6682
6713
|
syncing = true;
|
|
6683
6714
|
contextWatch.pause();
|
|
6684
|
-
|
|
6715
|
+
reconcile(transformIn(val));
|
|
6685
6716
|
const actual = transformOut(Array.from(context.selectedValues.value));
|
|
6686
6717
|
if (!shallowEqual(val, actual)) model.value = actual;
|
|
6687
6718
|
contextWatch.resume();
|
|
@@ -7811,6 +7842,8 @@ const _sfc_main$35 = /* @__PURE__ */ defineComponent({
|
|
|
7811
7842
|
});
|
|
7812
7843
|
useEventListener(el, "touchstart", () => carousel.pause(), { passive: true });
|
|
7813
7844
|
useEventListener(el, "touchend", () => carousel.resume(), { passive: true });
|
|
7845
|
+
useEventListener(el, "focusin", () => carousel.pause());
|
|
7846
|
+
useEventListener(el, "focusout", () => carousel.resume());
|
|
7814
7847
|
}
|
|
7815
7848
|
watch(() => carousel.selectedIndex.value, (index) => {
|
|
7816
7849
|
const viewport = el.value;
|
|
@@ -10159,7 +10192,11 @@ function createCombobox(options = {}) {
|
|
|
10159
10192
|
function clear() {
|
|
10160
10193
|
query.value = "";
|
|
10161
10194
|
pristine.value = true;
|
|
10162
|
-
|
|
10195
|
+
if (toValue(disabled)) return;
|
|
10196
|
+
for (const id of Array.from(selection.selectedIds)) {
|
|
10197
|
+
if (toValue(mandatory) && selection.selectedIds.size === 1) break;
|
|
10198
|
+
selection.selectedIds.delete(id);
|
|
10199
|
+
}
|
|
10163
10200
|
}
|
|
10164
10201
|
watch(isOpen, (open) => {
|
|
10165
10202
|
if (!open) cursor.clear();
|
|
@@ -10682,6 +10719,7 @@ const _sfc_main$50 = /* @__PURE__ */ defineComponent({
|
|
|
10682
10719
|
},
|
|
10683
10720
|
setup(__props) {
|
|
10684
10721
|
const context = useComboboxContext(__props.namespace);
|
|
10722
|
+
const locale = useLocale();
|
|
10685
10723
|
const slotProps = toRef(() => ({ query: context.query.value }));
|
|
10686
10724
|
return (_ctx, _cache) => {
|
|
10687
10725
|
return unref(context).isEmpty.value ? (openBlock(), createBlock(unref(_sfc_main$9), {
|
|
@@ -10689,7 +10727,7 @@ const _sfc_main$50 = /* @__PURE__ */ defineComponent({
|
|
|
10689
10727
|
as: __props.as,
|
|
10690
10728
|
renderless: __props.renderless
|
|
10691
10729
|
}, {
|
|
10692
|
-
default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)), () => [
|
|
10730
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)), () => [createTextVNode(toDisplayString(unref(locale).ti("Combobox.noResults") ?? "No results"), 1)])]),
|
|
10693
10731
|
_: 3
|
|
10694
10732
|
}, 8, ["as", "renderless"])) : createCommentVNode("v-if", true);
|
|
10695
10733
|
};
|
|
@@ -11975,6 +12013,10 @@ const _sfc_main$66 = /* @__PURE__ */ defineComponent({
|
|
|
11975
12013
|
type: Boolean,
|
|
11976
12014
|
default: false
|
|
11977
12015
|
},
|
|
12016
|
+
novalidate: {
|
|
12017
|
+
type: Boolean,
|
|
12018
|
+
default: true
|
|
12019
|
+
},
|
|
11978
12020
|
as: { default: "form" },
|
|
11979
12021
|
renderless: { type: Boolean }
|
|
11980
12022
|
}, {
|
|
@@ -12018,6 +12060,7 @@ const _sfc_main$66 = /* @__PURE__ */ defineComponent({
|
|
|
12018
12060
|
submit: form.submit,
|
|
12019
12061
|
reset: form.reset,
|
|
12020
12062
|
attrs: {
|
|
12063
|
+
novalidate: __props.novalidate || void 0,
|
|
12021
12064
|
onSubmit,
|
|
12022
12065
|
onReset
|
|
12023
12066
|
}
|
|
@@ -12849,6 +12892,8 @@ function createValidation(_options = {}) {
|
|
|
12849
12892
|
const isValid = shallowRef(null);
|
|
12850
12893
|
const isValidating = shallowRef(false);
|
|
12851
12894
|
let generation = 0;
|
|
12895
|
+
let visible = 0;
|
|
12896
|
+
let latest;
|
|
12852
12897
|
function register(input) {
|
|
12853
12898
|
if (/* @__PURE__ */ isFunction(input) || /* @__PURE__ */ isString(input) || /* @__PURE__ */ isStandardSchema(input)) {
|
|
12854
12899
|
const resolved = rulesContext.resolve([input]);
|
|
@@ -12859,8 +12904,15 @@ function createValidation(_options = {}) {
|
|
|
12859
12904
|
function onboard(rules) {
|
|
12860
12905
|
return group.batch(() => rules.map((r) => register(r)));
|
|
12861
12906
|
}
|
|
12862
|
-
async function
|
|
12863
|
-
|
|
12907
|
+
async function wait() {
|
|
12908
|
+
while (true) {
|
|
12909
|
+
const current = latest;
|
|
12910
|
+
if (/* @__PURE__ */ isUndefined(current)) return false;
|
|
12911
|
+
const result = await current.promise;
|
|
12912
|
+
if (current.generation === generation) return result;
|
|
12913
|
+
}
|
|
12914
|
+
}
|
|
12915
|
+
async function run(gen, _value, silent) {
|
|
12864
12916
|
const val = _value === UNSET ? toValue(valueSource) : _value;
|
|
12865
12917
|
const activeRules = [];
|
|
12866
12918
|
for (const ticket of group.selectedItems.value) activeRules.push(ticket.value);
|
|
@@ -12875,7 +12927,7 @@ function createValidation(_options = {}) {
|
|
|
12875
12927
|
if (!silent) isValidating.value = true;
|
|
12876
12928
|
try {
|
|
12877
12929
|
const results = await Promise.all(activeRules.map((rule) => rule(val)));
|
|
12878
|
-
if (gen !== generation) return
|
|
12930
|
+
if (gen !== generation) return wait();
|
|
12879
12931
|
const errorMessages = results.filter((result) => /* @__PURE__ */ isString(result) || result === false).map((result) => result === false ? "Validation failed" : result);
|
|
12880
12932
|
if (!silent) {
|
|
12881
12933
|
errors.value = errorMessages;
|
|
@@ -12883,21 +12935,32 @@ function createValidation(_options = {}) {
|
|
|
12883
12935
|
}
|
|
12884
12936
|
return errorMessages.length === 0;
|
|
12885
12937
|
} catch (error) {
|
|
12886
|
-
if (gen !== generation) return
|
|
12938
|
+
if (gen !== generation) return wait();
|
|
12887
12939
|
if (!silent) {
|
|
12888
12940
|
errors.value = [error instanceof Error ? error.message : "Validation error"];
|
|
12889
12941
|
isValid.value = false;
|
|
12890
12942
|
}
|
|
12891
12943
|
return false;
|
|
12892
12944
|
} finally {
|
|
12893
|
-
if (gen ===
|
|
12945
|
+
if (!silent && gen === visible) isValidating.value = false;
|
|
12894
12946
|
}
|
|
12895
12947
|
}
|
|
12948
|
+
async function validate(_value = UNSET, silent = false) {
|
|
12949
|
+
const gen = ++generation;
|
|
12950
|
+
if (!silent) visible = gen;
|
|
12951
|
+
const promise = run(gen, _value, silent);
|
|
12952
|
+
latest = {
|
|
12953
|
+
generation: gen,
|
|
12954
|
+
promise
|
|
12955
|
+
};
|
|
12956
|
+
return promise;
|
|
12957
|
+
}
|
|
12896
12958
|
function reset() {
|
|
12897
12959
|
errors.value = [];
|
|
12898
12960
|
isValid.value = null;
|
|
12899
12961
|
isValidating.value = false;
|
|
12900
12962
|
generation++;
|
|
12963
|
+
latest = void 0;
|
|
12901
12964
|
}
|
|
12902
12965
|
if (initialRules.length > 0) onboard(initialRules);
|
|
12903
12966
|
const context = {
|
|
@@ -13679,6 +13742,7 @@ function createNumberField(options = {}) {
|
|
|
13679
13742
|
return Number.isNaN(result) ? null : result;
|
|
13680
13743
|
}
|
|
13681
13744
|
function commit(next) {
|
|
13745
|
+
if (isLocked()) return;
|
|
13682
13746
|
const val = arguments.length === 0 ? value.value : next;
|
|
13683
13747
|
if (/* @__PURE__ */ isNull(val)) return;
|
|
13684
13748
|
if (!shouldClamp && (val < numeric.min || val > numeric.max)) {
|
|
@@ -15836,6 +15900,8 @@ const _sfc_main$96 = /* @__PURE__ */ defineComponent({
|
|
|
15836
15900
|
attrs: {
|
|
15837
15901
|
"popovertarget": toValue(popovertarget),
|
|
15838
15902
|
"type": __props.as === "button" ? "button" : void 0,
|
|
15903
|
+
"aria-expanded": context.isOpen.value,
|
|
15904
|
+
"aria-controls": toValue(popovertarget),
|
|
15839
15905
|
"data-open": context.isOpen.value || void 0,
|
|
15840
15906
|
"style": style.value
|
|
15841
15907
|
}
|
|
@@ -16323,7 +16389,7 @@ function createProgress(options = {}) {
|
|
|
16323
16389
|
});
|
|
16324
16390
|
function fromValue(value) {
|
|
16325
16391
|
if (extent === 0) return 0;
|
|
16326
|
-
return /* @__PURE__ */ clamp(value,
|
|
16392
|
+
return (/* @__PURE__ */ clamp(value, min, max) - min) / extent * 100;
|
|
16327
16393
|
}
|
|
16328
16394
|
function register(registration = {}) {
|
|
16329
16395
|
const index = segments.value.length;
|
|
@@ -17796,8 +17862,9 @@ const _sfc_main$115 = /* @__PURE__ */ defineComponent({
|
|
|
17796
17862
|
isBlocking: ticket.blocking.value,
|
|
17797
17863
|
dismiss: () => onDismiss(ticket),
|
|
17798
17864
|
attrs: {
|
|
17799
|
-
|
|
17800
|
-
|
|
17865
|
+
"aria-hidden": "true",
|
|
17866
|
+
"style": { zIndex },
|
|
17867
|
+
"onClick": () => onDismiss(ticket)
|
|
17801
17868
|
}
|
|
17802
17869
|
};
|
|
17803
17870
|
}
|
|
@@ -18065,6 +18132,9 @@ const _sfc_main$116 = /* @__PURE__ */ defineComponent({
|
|
|
18065
18132
|
"aria-expanded": context.isOpen.value,
|
|
18066
18133
|
"aria-haspopup": "listbox",
|
|
18067
18134
|
"aria-controls": context.listboxId,
|
|
18135
|
+
"aria-disabled": toValue(context.disabled),
|
|
18136
|
+
"disabled": toValue(context.disabled) || void 0,
|
|
18137
|
+
"tabindex": __props.as === "button" ? void 0 : 0,
|
|
18068
18138
|
"data-open": context.isOpen.value || void 0,
|
|
18069
18139
|
"style": context.popover.anchorStyles.value,
|
|
18070
18140
|
onClick,
|
|
@@ -18108,6 +18178,7 @@ const _sfc_main$117 = /* @__PURE__ */ defineComponent({
|
|
|
18108
18178
|
...context.popover.contentAttrs.value,
|
|
18109
18179
|
"id": context.listboxId,
|
|
18110
18180
|
"role": "listbox",
|
|
18181
|
+
"aria-labelledby": context.activatorId,
|
|
18111
18182
|
"aria-multiselectable": context.multiple || void 0,
|
|
18112
18183
|
"tabindex": -1,
|
|
18113
18184
|
"style": context.popover.contentStyles.value
|
|
@@ -18912,7 +18983,7 @@ function createSlider(options = {}) {
|
|
|
18912
18983
|
}
|
|
18913
18984
|
}
|
|
18914
18985
|
function set(index, value) {
|
|
18915
|
-
if (readonly.value) return;
|
|
18986
|
+
if (disabled.value || readonly.value) return;
|
|
18916
18987
|
const snapped = snap(value);
|
|
18917
18988
|
const current = values.value;
|
|
18918
18989
|
let constrained = snapped;
|
|
@@ -18998,6 +19069,8 @@ const _sfc_main$129 = /* @__PURE__ */ defineComponent({
|
|
|
18998
19069
|
},
|
|
18999
19070
|
name: {},
|
|
19000
19071
|
form: {},
|
|
19072
|
+
label: {},
|
|
19073
|
+
ariaLabelledby: {},
|
|
19001
19074
|
namespace: { default: "v0:slider:root" },
|
|
19002
19075
|
as: { default: "div" },
|
|
19003
19076
|
renderless: { type: Boolean }
|
|
@@ -19106,6 +19179,9 @@ const _sfc_main$129 = /* @__PURE__ */ defineComponent({
|
|
|
19106
19179
|
floor: slider.floor,
|
|
19107
19180
|
ceil: slider.ceil,
|
|
19108
19181
|
attrs: {
|
|
19182
|
+
"role": "group",
|
|
19183
|
+
"aria-label": __props.label || void 0,
|
|
19184
|
+
"aria-labelledby": __props.ariaLabelledby || void 0,
|
|
19109
19185
|
"data-disabled": isDisabled.value ? true : void 0,
|
|
19110
19186
|
"data-readonly": isReadonly.value ? true : void 0,
|
|
19111
19187
|
"data-orientation": toValue(slider.orientation)
|
|
@@ -20855,10 +20931,7 @@ const _sfc_main$138 = /* @__PURE__ */ defineComponent({
|
|
|
20855
20931
|
as: { default: "div" },
|
|
20856
20932
|
renderless: { type: Boolean }
|
|
20857
20933
|
}, {
|
|
20858
|
-
"collapsed": {
|
|
20859
|
-
type: Boolean,
|
|
20860
|
-
default: void 0
|
|
20861
|
-
},
|
|
20934
|
+
"collapsed": { type: Boolean },
|
|
20862
20935
|
"collapsedModifiers": {}
|
|
20863
20936
|
}),
|
|
20864
20937
|
emits: /* @__PURE__ */ mergeModels(["update:collapsed", "resize"], ["update:collapsed"]),
|
|
@@ -20993,6 +21066,7 @@ const _sfc_main$137 = /* @__PURE__ */ defineComponent({
|
|
|
20993
21066
|
const attrs = useAttrs();
|
|
20994
21067
|
const ARROW_STEP = 1;
|
|
20995
21068
|
const PAGE_STEP = 10;
|
|
21069
|
+
const locale = useLocale();
|
|
20996
21070
|
const splitter = useSplitterRoot();
|
|
20997
21071
|
const ticket = splitter.handles.register();
|
|
20998
21072
|
onBeforeUnmount(() => {
|
|
@@ -21141,7 +21215,7 @@ const _sfc_main$137 = /* @__PURE__ */ defineComponent({
|
|
|
21141
21215
|
"aria-valuemax": valuemax.value,
|
|
21142
21216
|
"aria-orientation": ariaOrientation.value,
|
|
21143
21217
|
"aria-controls": ariaControls.value,
|
|
21144
|
-
"aria-label": __props.label ||
|
|
21218
|
+
"aria-label": __props.label || (locale.ti("Splitter.handle") ?? "Resize"),
|
|
21145
21219
|
"aria-disabled": isDisabled.value,
|
|
21146
21220
|
"data-state": state.value,
|
|
21147
21221
|
"data-orientation": splitter.orientation.value,
|
|
@@ -21585,7 +21659,7 @@ const _sfc_main$144 = /* @__PURE__ */ defineComponent({
|
|
|
21585
21659
|
attrs: {
|
|
21586
21660
|
"type": __props.as === "button" ? "button" : void 0,
|
|
21587
21661
|
"role": "switch",
|
|
21588
|
-
"aria-checked": isMixed.value
|
|
21662
|
+
"aria-checked": !isMixed.value && isChecked.value,
|
|
21589
21663
|
"aria-disabled": isDisabled.value,
|
|
21590
21664
|
"aria-label": __props.label || void 0,
|
|
21591
21665
|
"aria-labelledby": __props.ariaLabelledby || void 0,
|
|
@@ -21726,7 +21800,7 @@ const _sfc_main$145 = /* @__PURE__ */ defineComponent({
|
|
|
21726
21800
|
attrs: {
|
|
21727
21801
|
"type": __props.as === "button" ? "button" : void 0,
|
|
21728
21802
|
"role": "switch",
|
|
21729
|
-
"aria-checked": isMixed.value
|
|
21803
|
+
"aria-checked": !isMixed.value && isAllSelected.value,
|
|
21730
21804
|
"aria-disabled": isDisabled.value,
|
|
21731
21805
|
"aria-label": __props.label || void 0,
|
|
21732
21806
|
"aria-labelledby": __props.ariaLabelledby || void 0,
|
|
@@ -21763,14 +21837,13 @@ const _sfc_main$146 = /* @__PURE__ */ defineComponent({
|
|
|
21763
21837
|
const root = useSwitchRoot(__props.namespace);
|
|
21764
21838
|
const isChecked = toRef(() => toValue(root.isChecked));
|
|
21765
21839
|
const isMixed = toRef(() => toValue(root.isMixed));
|
|
21766
|
-
const isVisible = toRef(() => isChecked.value || isMixed.value);
|
|
21767
21840
|
const dataState = toRef(() => isMixed.value ? "indeterminate" : isChecked.value ? "checked" : "unchecked");
|
|
21768
21841
|
const slotProps = toRef(() => ({
|
|
21769
21842
|
isChecked: isChecked.value,
|
|
21770
21843
|
isMixed: isMixed.value,
|
|
21771
21844
|
attrs: {
|
|
21772
|
-
"
|
|
21773
|
-
"
|
|
21845
|
+
"aria-hidden": "true",
|
|
21846
|
+
"data-state": dataState.value
|
|
21774
21847
|
}
|
|
21775
21848
|
}));
|
|
21776
21849
|
return (_ctx, _cache) => {
|
|
@@ -21802,7 +21875,10 @@ const _sfc_main$147 = /* @__PURE__ */ defineComponent({
|
|
|
21802
21875
|
const slotProps = toRef(() => ({
|
|
21803
21876
|
isChecked: isChecked.value,
|
|
21804
21877
|
isMixed: isMixed.value,
|
|
21805
|
-
attrs: {
|
|
21878
|
+
attrs: {
|
|
21879
|
+
"aria-hidden": "true",
|
|
21880
|
+
"data-state": dataState.value
|
|
21881
|
+
}
|
|
21806
21882
|
}));
|
|
21807
21883
|
return (_ctx, _cache) => {
|
|
21808
21884
|
return openBlock(), createBlock(unref(_sfc_main$9), mergeProps(slotProps.value.attrs, {
|
|
@@ -21972,10 +22048,10 @@ const Switch = {
|
|
|
21972
22048
|
*/
|
|
21973
22049
|
SelectAll: _sfc_main$145,
|
|
21974
22050
|
/**
|
|
21975
|
-
* Sliding knob
|
|
22051
|
+
* Sliding knob for switches.
|
|
21976
22052
|
*
|
|
21977
|
-
* Renders as a span with `data-state` attribute for CSS styling.
|
|
21978
|
-
*
|
|
22053
|
+
* Renders as a span with a `data-state` attribute for CSS styling.
|
|
22054
|
+
* Always visible; drive its off/on position and color from `data-state`.
|
|
21979
22055
|
* Must be used within a Switch.Root or Switch.SelectAll.
|
|
21980
22056
|
*
|
|
21981
22057
|
* @see https://0.vuetifyjs.com/components/forms/switch
|
|
@@ -22463,7 +22539,24 @@ var V0StyleSheetThemeAdapter = class extends ThemeAdapter {
|
|
|
22463
22539
|
...this.cspNonce ? { nonce: this.cspNonce } : {}
|
|
22464
22540
|
}]
|
|
22465
22541
|
});
|
|
22466
|
-
|
|
22542
|
+
const stop = watch([
|
|
22543
|
+
context.selectedId,
|
|
22544
|
+
context.colors,
|
|
22545
|
+
context.isDark
|
|
22546
|
+
], ([themeId, colors, isDark]) => {
|
|
22547
|
+
entry.patch?.({
|
|
22548
|
+
htmlAttrs: { "data-theme": themeId ? String(themeId) : "" },
|
|
22549
|
+
style: [{
|
|
22550
|
+
innerHTML: this.generate(colors, isDark),
|
|
22551
|
+
id: this.stylesheetId,
|
|
22552
|
+
...this.cspNonce ? { nonce: this.cspNonce } : {}
|
|
22553
|
+
}]
|
|
22554
|
+
});
|
|
22555
|
+
});
|
|
22556
|
+
this.dispose = () => {
|
|
22557
|
+
stop();
|
|
22558
|
+
entry.dispose?.();
|
|
22559
|
+
};
|
|
22467
22560
|
}
|
|
22468
22561
|
}
|
|
22469
22562
|
}
|
|
@@ -22542,7 +22635,25 @@ var V0UnheadThemeAdapter = class extends ThemeAdapter {
|
|
|
22542
22635
|
stopWatch();
|
|
22543
22636
|
this.entry?.dispose?.();
|
|
22544
22637
|
};
|
|
22545
|
-
} else
|
|
22638
|
+
} else {
|
|
22639
|
+
const stop = watch([
|
|
22640
|
+
context.colors,
|
|
22641
|
+
context.isDark,
|
|
22642
|
+
context.selectedId
|
|
22643
|
+
], ([colors, isDark, id]) => {
|
|
22644
|
+
this.entry?.patch?.({
|
|
22645
|
+
htmlAttrs: { "data-theme": id ? String(id) : "" },
|
|
22646
|
+
style: [{
|
|
22647
|
+
innerHTML: this.generate(colors, isDark),
|
|
22648
|
+
id: this.stylesheetId
|
|
22649
|
+
}]
|
|
22650
|
+
});
|
|
22651
|
+
});
|
|
22652
|
+
this.dispose = () => {
|
|
22653
|
+
stop();
|
|
22654
|
+
this.entry?.dispose?.();
|
|
22655
|
+
};
|
|
22656
|
+
}
|
|
22546
22657
|
}
|
|
22547
22658
|
update(colors, isDark) {
|
|
22548
22659
|
if (!this.entry) return;
|
|
@@ -22788,6 +22899,9 @@ const _sfc_main$153 = /* @__PURE__ */ defineComponent({
|
|
|
22788
22899
|
default: false
|
|
22789
22900
|
},
|
|
22790
22901
|
orientation: { default: "horizontal" },
|
|
22902
|
+
label: {},
|
|
22903
|
+
ariaLabelledby: {},
|
|
22904
|
+
ariaDescribedby: {},
|
|
22791
22905
|
as: { default: "div" },
|
|
22792
22906
|
renderless: { type: Boolean }
|
|
22793
22907
|
}, {
|
|
@@ -22816,6 +22930,9 @@ const _sfc_main$153 = /* @__PURE__ */ defineComponent({
|
|
|
22816
22930
|
isDisabled: toValue(__props.disabled),
|
|
22817
22931
|
attrs: {
|
|
22818
22932
|
"role": "group",
|
|
22933
|
+
"aria-label": __props.label || void 0,
|
|
22934
|
+
"aria-labelledby": __props.ariaLabelledby || void 0,
|
|
22935
|
+
"aria-describedby": __props.ariaDescribedby || void 0,
|
|
22819
22936
|
"aria-orientation": __props.orientation,
|
|
22820
22937
|
"aria-disabled": __props.disabled,
|
|
22821
22938
|
"data-orientation": __props.orientation,
|
|
@@ -23278,7 +23395,8 @@ const _sfc_main$156 = /* @__PURE__ */ defineComponent({
|
|
|
23278
23395
|
"onBlur": onBlur,
|
|
23279
23396
|
"onClick": onClick,
|
|
23280
23397
|
"onKeydown": onKeydown
|
|
23281
|
-
}
|
|
23398
|
+
},
|
|
23399
|
+
styles: root.anchorStyles.value
|
|
23282
23400
|
}));
|
|
23283
23401
|
return (_ctx, _cache) => {
|
|
23284
23402
|
return openBlock(), createBlock(unref(_sfc_main$9), mergeProps({
|
|
@@ -23320,6 +23438,9 @@ const _sfc_main$157 = /* @__PURE__ */ defineComponent({
|
|
|
23320
23438
|
if (!root.isInteractive.value) return;
|
|
23321
23439
|
root.close();
|
|
23322
23440
|
}
|
|
23441
|
+
function onKeydown(e) {
|
|
23442
|
+
if (e.key === "Escape") root.close();
|
|
23443
|
+
}
|
|
23323
23444
|
const slotProps = toRef(() => ({
|
|
23324
23445
|
isOpen: root.isOpen.value,
|
|
23325
23446
|
isInteractive: root.isInteractive.value,
|
|
@@ -23329,7 +23450,8 @@ const _sfc_main$157 = /* @__PURE__ */ defineComponent({
|
|
|
23329
23450
|
"data-state": root.dataState.value,
|
|
23330
23451
|
"data-interactive": root.isInteractive.value || void 0,
|
|
23331
23452
|
"onPointerenter": onPointerenter,
|
|
23332
|
-
"onPointerleave": onPointerleave
|
|
23453
|
+
"onPointerleave": onPointerleave,
|
|
23454
|
+
"onKeydown": onKeydown
|
|
23333
23455
|
},
|
|
23334
23456
|
styles: root.contentStyles.value
|
|
23335
23457
|
}));
|
|
@@ -23517,7 +23639,6 @@ function createNested(_options = {}) {
|
|
|
23517
23639
|
function open(ids) {
|
|
23518
23640
|
if (toValue(group.disabled)) return;
|
|
23519
23641
|
for (const id of /* @__PURE__ */ toArray(ids)) {
|
|
23520
|
-
if (!group.has(id)) continue;
|
|
23521
23642
|
const item = group.get(id);
|
|
23522
23643
|
if (!item || toValue(item.disabled)) continue;
|
|
23523
23644
|
openedIds.add(id);
|
|
@@ -23542,7 +23663,6 @@ function createNested(_options = {}) {
|
|
|
23542
23663
|
function close(ids) {
|
|
23543
23664
|
if (toValue(group.disabled)) return;
|
|
23544
23665
|
for (const id of /* @__PURE__ */ toArray(ids)) {
|
|
23545
|
-
if (!group.has(id)) continue;
|
|
23546
23666
|
const item = group.get(id);
|
|
23547
23667
|
if (!item || toValue(item.disabled)) continue;
|
|
23548
23668
|
openedIds.delete(id);
|
|
@@ -23551,7 +23671,6 @@ function createNested(_options = {}) {
|
|
|
23551
23671
|
function flip(ids) {
|
|
23552
23672
|
if (toValue(group.disabled)) return;
|
|
23553
23673
|
for (const id of /* @__PURE__ */ toArray(ids)) {
|
|
23554
|
-
if (!group.has(id)) continue;
|
|
23555
23674
|
const item = group.get(id);
|
|
23556
23675
|
if (!item || toValue(item.disabled)) continue;
|
|
23557
23676
|
if (opened(id)) close(id);
|
|
@@ -23779,75 +23898,81 @@ function createNested(_options = {}) {
|
|
|
23779
23898
|
function getLeafDescendants(id) {
|
|
23780
23899
|
return getDescendants(id).filter((did) => isLeaf(did));
|
|
23781
23900
|
}
|
|
23901
|
+
function removeLeaves(leafIds) {
|
|
23902
|
+
const { selectedIds, mixedIds } = group;
|
|
23903
|
+
const ids = new Set(leafIds);
|
|
23904
|
+
if (toValue(mandatoryOption) && [...selectedIds].every((id) => ids.has(id))) return;
|
|
23905
|
+
for (const id of ids) {
|
|
23906
|
+
mixedIds.delete(id);
|
|
23907
|
+
selectedIds.delete(id);
|
|
23908
|
+
}
|
|
23909
|
+
for (const id of ids) updateAncestors(id);
|
|
23910
|
+
}
|
|
23782
23911
|
function select(ids) {
|
|
23783
23912
|
if (toValue(group.disabled)) return;
|
|
23784
|
-
for (const id of /* @__PURE__ */ toArray(ids))
|
|
23785
|
-
|
|
23913
|
+
for (const id of /* @__PURE__ */ toArray(ids)) if (selectionMode === "independent") group.select(id);
|
|
23914
|
+
else if (selectionMode === "leaf") if (isLeaf(id)) group.select(id);
|
|
23915
|
+
else {
|
|
23786
23916
|
const item = group.get(id);
|
|
23787
23917
|
if (!item || toValue(item.disabled)) continue;
|
|
23788
|
-
|
|
23789
|
-
|
|
23790
|
-
|
|
23791
|
-
|
|
23792
|
-
|
|
23793
|
-
|
|
23794
|
-
|
|
23795
|
-
|
|
23796
|
-
const { selectedIds, mixedIds } = group;
|
|
23797
|
-
mixedIds.delete(id);
|
|
23798
|
-
selectedIds.add(id);
|
|
23799
|
-
for (const did of getDescendants(id)) {
|
|
23800
|
-
const desc = group.get(did);
|
|
23801
|
-
if (desc && toValue(desc.disabled)) continue;
|
|
23802
|
-
mixedIds.delete(did);
|
|
23803
|
-
selectedIds.add(did);
|
|
23804
|
-
}
|
|
23805
|
-
updateAncestors(id);
|
|
23918
|
+
for (const lid of getLeafDescendants(id)) group.select(lid);
|
|
23919
|
+
}
|
|
23920
|
+
else {
|
|
23921
|
+
const item = group.get(id);
|
|
23922
|
+
if (!item || toValue(item.disabled)) continue;
|
|
23923
|
+
if (!toValue(multipleOption)) {
|
|
23924
|
+
group.select(id);
|
|
23925
|
+
return;
|
|
23806
23926
|
}
|
|
23927
|
+
const { selectedIds, mixedIds } = group;
|
|
23928
|
+
mixedIds.delete(id);
|
|
23929
|
+
selectedIds.add(id);
|
|
23930
|
+
for (const did of getDescendants(id)) {
|
|
23931
|
+
const desc = group.get(did);
|
|
23932
|
+
if (desc && toValue(desc.disabled)) continue;
|
|
23933
|
+
mixedIds.delete(did);
|
|
23934
|
+
selectedIds.add(did);
|
|
23935
|
+
}
|
|
23936
|
+
updateAncestors(id);
|
|
23807
23937
|
}
|
|
23808
23938
|
}
|
|
23809
23939
|
function unselect(ids) {
|
|
23810
23940
|
if (toValue(group.disabled)) return;
|
|
23811
|
-
for (const id of /* @__PURE__ */ toArray(ids))
|
|
23812
|
-
|
|
23941
|
+
for (const id of /* @__PURE__ */ toArray(ids)) if (selectionMode === "independent") group.unselect(id);
|
|
23942
|
+
else if (selectionMode === "leaf") {
|
|
23813
23943
|
const item = group.get(id);
|
|
23814
23944
|
if (!item || toValue(item.disabled)) continue;
|
|
23815
|
-
|
|
23816
|
-
|
|
23817
|
-
|
|
23818
|
-
|
|
23819
|
-
|
|
23820
|
-
|
|
23821
|
-
|
|
23822
|
-
|
|
23823
|
-
|
|
23824
|
-
|
|
23825
|
-
|
|
23826
|
-
|
|
23827
|
-
|
|
23828
|
-
|
|
23829
|
-
mixedIds.delete(did);
|
|
23830
|
-
selectedIds.delete(did);
|
|
23831
|
-
}
|
|
23832
|
-
updateAncestors(id);
|
|
23945
|
+
removeLeaves(isLeaf(id) ? [id] : getLeafDescendants(id));
|
|
23946
|
+
} else {
|
|
23947
|
+
const item = group.get(id);
|
|
23948
|
+
if (!item || toValue(item.disabled)) continue;
|
|
23949
|
+
const { selectedIds, mixedIds } = group;
|
|
23950
|
+
if (toValue(mandatoryOption)) {
|
|
23951
|
+
const toRemove = new Set([id, ...getDescendants(id)]);
|
|
23952
|
+
if ([...selectedIds].every((sid) => toRemove.has(sid))) return;
|
|
23953
|
+
}
|
|
23954
|
+
mixedIds.delete(id);
|
|
23955
|
+
selectedIds.delete(id);
|
|
23956
|
+
for (const did of getDescendants(id)) {
|
|
23957
|
+
mixedIds.delete(did);
|
|
23958
|
+
selectedIds.delete(did);
|
|
23833
23959
|
}
|
|
23960
|
+
updateAncestors(id);
|
|
23834
23961
|
}
|
|
23835
23962
|
}
|
|
23836
23963
|
function toggle(ids) {
|
|
23837
23964
|
if (toValue(group.disabled)) return;
|
|
23838
|
-
for (const id of /* @__PURE__ */ toArray(ids))
|
|
23965
|
+
for (const id of /* @__PURE__ */ toArray(ids)) if (selectionMode === "independent") group.toggle(id);
|
|
23966
|
+
else if (selectionMode === "leaf") if (isLeaf(id)) group.toggle(id);
|
|
23967
|
+
else {
|
|
23839
23968
|
const item = group.get(id);
|
|
23840
23969
|
if (!item || toValue(item.disabled)) continue;
|
|
23841
|
-
|
|
23842
|
-
|
|
23843
|
-
else
|
|
23844
|
-
const leafIds = getLeafDescendants(id);
|
|
23845
|
-
if (leafIds.every((lid) => group.selected(lid))) for (const lid of leafIds) group.unselect(lid);
|
|
23846
|
-
else for (const lid of leafIds) group.select(lid);
|
|
23847
|
-
}
|
|
23848
|
-
else if (group.selected(id) || group.mixed(id)) unselect(id);
|
|
23849
|
-
else select(id);
|
|
23970
|
+
const leafIds = getLeafDescendants(id);
|
|
23971
|
+
if (leafIds.every((lid) => group.selected(lid))) removeLeaves(leafIds);
|
|
23972
|
+
else for (const lid of leafIds) group.select(lid);
|
|
23850
23973
|
}
|
|
23974
|
+
else if (group.selected(id) || group.mixed(id)) unselect(id);
|
|
23975
|
+
else select(id);
|
|
23851
23976
|
}
|
|
23852
23977
|
function selectAll() {
|
|
23853
23978
|
if (toValue(group.disabled)) return;
|
|
@@ -24470,6 +24595,7 @@ const _sfc_main$165 = /* @__PURE__ */ defineComponent({
|
|
|
24470
24595
|
"aria-expanded": hasContent.value ? toValue(ticket.isOpen) : void 0,
|
|
24471
24596
|
"aria-level": toValue(ticket.depth) + 1,
|
|
24472
24597
|
"aria-posinset": ticket.position(),
|
|
24598
|
+
"aria-current": toValue(ticket.isActive) ? "true" : void 0,
|
|
24473
24599
|
"aria-selected": toValue(ticket.isSelected),
|
|
24474
24600
|
"aria-setsize": ticket.siblings().length,
|
|
24475
24601
|
"data-active": toValue(ticket.isActive) || void 0,
|
|
@@ -26454,7 +26580,8 @@ function createRowSpanning(options) {
|
|
|
26454
26580
|
function createDataGrid(_options = {}) {
|
|
26455
26581
|
const { editing: editingOptions, preserveRowOrder = false, rowSpanning, ...options } = _options;
|
|
26456
26582
|
const table = createDataTable(options);
|
|
26457
|
-
const sortable = createSortable(
|
|
26583
|
+
const sortable = createSortable();
|
|
26584
|
+
const sortableProxy = useProxyRegistry(sortable);
|
|
26458
26585
|
const dirty = shallowRef(false);
|
|
26459
26586
|
table.on("register:ticket", (ticket) => {
|
|
26460
26587
|
sortable.register({
|
|
@@ -26469,7 +26596,7 @@ function createDataGrid(_options = {}) {
|
|
|
26469
26596
|
sortable.clear();
|
|
26470
26597
|
dirty.value = false;
|
|
26471
26598
|
});
|
|
26472
|
-
const order = toRef(() =>
|
|
26599
|
+
const order = toRef(() => sortableProxy.keys);
|
|
26473
26600
|
const sortedIds = computed(() => {
|
|
26474
26601
|
const buckets = /* @__PURE__ */ new Map();
|
|
26475
26602
|
for (const ticket of table.values()) {
|
|
@@ -26496,6 +26623,7 @@ function createDataGrid(_options = {}) {
|
|
|
26496
26623
|
dirty.value = true;
|
|
26497
26624
|
}
|
|
26498
26625
|
function reset() {
|
|
26626
|
+
if (!dirty.value) return;
|
|
26499
26627
|
if (sortable.size > 0) sortable.reorder(table.keys());
|
|
26500
26628
|
dirty.value = false;
|
|
26501
26629
|
}
|
|
@@ -29112,7 +29240,7 @@ function createFeatures(_options = {}) {
|
|
|
29112
29240
|
const shouldSelect = /* @__PURE__ */ isBoolean(value) ? value === true : /* @__PURE__ */ isObject(value) && /* @__PURE__ */ isBoolean(value.$value) && value.$value === true;
|
|
29113
29241
|
registry.upsert(id, { value });
|
|
29114
29242
|
if (shouldSelect) registry.select(id);
|
|
29115
|
-
else registry.
|
|
29243
|
+
else registry.selectedIds.delete(id);
|
|
29116
29244
|
} else register({
|
|
29117
29245
|
id,
|
|
29118
29246
|
value
|
|
@@ -29983,7 +30111,11 @@ var V0RtlAdapter = class extends RtlAdapter {
|
|
|
29983
30111
|
const head = app._context?.provides?.usehead ?? app._context?.provides?.head;
|
|
29984
30112
|
if (head?.push) {
|
|
29985
30113
|
const entry = head.push({ htmlAttrs: { dir: context.isRtl.value ? "rtl" : "ltr" } });
|
|
29986
|
-
|
|
30114
|
+
const stop = watch(context.isRtl, (rtl) => entry.patch?.({ htmlAttrs: { dir: rtl ? "rtl" : "ltr" } }));
|
|
30115
|
+
this.dispose = () => {
|
|
30116
|
+
stop();
|
|
30117
|
+
entry.dispose?.();
|
|
30118
|
+
};
|
|
29987
30119
|
}
|
|
29988
30120
|
}
|
|
29989
30121
|
}
|