@vuetify/v0 0.1.5 → 0.1.6
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/dist/{adapter-Cmeg49W9.mjs → adapter-Bjs_Nx_J.mjs} +8 -10
- package/dist/{adapter-D2JoR-4d.d.mts → adapter-CLs-OrSN.d.mts} +4 -4
- package/dist/browser/index.js +1645 -273
- package/dist/components/index.d.mts +8 -8
- package/dist/components/index.mjs +28 -28
- package/dist/{components-BbbGkTcN.mjs → components-GiQh_RfQ.mjs} +1101 -110
- package/dist/composables/index.d.mts +7 -7
- package/dist/composables/index.mjs +27 -27
- package/dist/constants/index.mjs +1 -1
- package/dist/{createDataTable-cNf6DdHz.mjs → createDataTable-lSofI5rU.mjs} +5 -5
- package/dist/{createGroup-BrZPZudL.mjs → createGroup-CCb7Zfyw.mjs} +6 -5
- package/dist/{createPagination-Wc_vRGNQ.mjs → createPagination-lagznd8i.mjs} +2 -2
- package/dist/{createSelection-BURpoE3p.mjs → createSelection-Zo4RQpYe.mjs} +217 -61
- package/dist/{createSingle-BE1vHaZy.mjs → createSingle-BH9wNDrS.mjs} +2 -2
- package/dist/{createTokens-jwf8-iGn.mjs → createTokens-Cu1efg9Z.mjs} +21 -3
- package/dist/{createTrinity-DkwPrPRS.mjs → createTrinity-Cii8-B2r.mjs} +1 -1
- package/dist/data-table/adapters/client/index.d.mts +2 -2
- package/dist/data-table/adapters/client/index.mjs +7 -7
- package/dist/data-table/adapters/index.d.mts +4 -4
- package/dist/data-table/adapters/index.mjs +9 -9
- package/dist/data-table/adapters/server/index.d.mts +2 -2
- package/dist/data-table/adapters/server/index.mjs +5 -5
- package/dist/data-table/adapters/virtual/index.d.mts +2 -2
- package/dist/data-table/adapters/virtual/index.mjs +7 -7
- package/dist/data-table/index.d.mts +5 -5
- package/dist/data-table/index.mjs +19 -19
- package/dist/date/index.mjs +2 -2
- package/dist/features/adapters/posthog/index.mjs +2 -2
- package/dist/features/index.d.mts +6 -6
- package/dist/features/index.mjs +12 -12
- package/dist/{globals-vN-O052q.mjs → globals-D6FBsWDI.mjs} +1 -1
- package/dist/{index-DdWxDPX3.d.mts → index-DIK84tM4.d.mts} +1 -1
- package/dist/{index-BTMzRHep.d.mts → index-De0SQt1w.d.mts} +801 -50
- package/dist/{index-DRax9EgT.d.mts → index-DlUIZN-F.d.mts} +1125 -373
- package/dist/index.d.mts +8 -8
- package/dist/index.mjs +28 -28
- package/dist/json/attributes.json +196 -12
- package/dist/json/importMap.json +40 -0
- package/dist/json/tags.json +86 -0
- package/dist/json/web-types.json +605 -13
- package/dist/locale/adapters/index.mjs +3 -3
- package/dist/locale/adapters/v0/index.mjs +3 -3
- package/dist/locale/index.d.mts +6 -6
- package/dist/locale/index.mjs +12 -12
- package/dist/logger/adapters/index.mjs +4 -4
- package/dist/logger/adapters/pino/index.mjs +3 -3
- package/dist/logger/adapters/v0/index.mjs +3 -3
- package/dist/logger/index.d.mts +6 -6
- package/dist/logger/index.mjs +6 -6
- package/dist/permissions/adapters/index.d.mts +7 -7
- package/dist/permissions/adapters/index.mjs +3 -3
- package/dist/permissions/adapters/v0/index.d.mts +7 -7
- package/dist/permissions/adapters/v0/index.mjs +3 -3
- package/dist/permissions/index.d.mts +6 -6
- package/dist/permissions/index.mjs +10 -10
- package/dist/{pino-DFxkZLiu.mjs → pino-BD5PCzAF.mjs} +1 -1
- package/dist/{posthog-BOUoZTTf.mjs → posthog-BxaG8sYi.mjs} +1 -1
- package/dist/{server-B-HWxaTQ.d.mts → server-CGAeOGPC.d.mts} +1 -1
- package/dist/{server-C2R2POGE.mjs → server-DgOdFYMU.mjs} +1 -1
- package/dist/storage/index.d.mts +6 -6
- package/dist/storage/index.mjs +26 -26
- package/dist/theme/adapters/index.d.mts +6 -6
- package/dist/theme/adapters/index.mjs +3 -3
- package/dist/theme/adapters/v0/index.d.mts +6 -6
- package/dist/theme/adapters/v0/index.mjs +3 -3
- package/dist/theme/index.d.mts +6 -6
- package/dist/theme/index.mjs +11 -11
- package/dist/{toArray-VIn8vYt3.mjs → toArray-BBZH-G2X.mjs} +1 -1
- package/dist/{useClickOutside-DIi0kjN5.mjs → useClickOutside-Bm_3mbcT.mjs} +306 -98
- package/dist/{useFeatures-6O7EPJUS.mjs → useFeatures-BS4mit8z.mjs} +4 -4
- package/dist/{useLocale-DHjbekzS.mjs → useLocale-DJJmg-wv.mjs} +6 -6
- package/dist/{useLogger-BXqiUvt2.mjs → useLogger-C8G5jgNk.mjs} +4 -4
- package/dist/{usePermissions-DFacFVqO.mjs → usePermissions-C5Mkotol.mjs} +4 -4
- package/dist/{useTheme-D0_1mjTw.mjs → useTheme-BBnASLr3.mjs} +4 -4
- package/dist/utilities/index.mjs +2 -2
- package/dist/{utilities-Dx8wzGa5.mjs → utilities-CcJtp9Gx.mjs} +1 -1
- package/dist/{v0-CfSj99gF.mjs → v0-BWBSVkew.mjs} +2 -2
- package/dist/{v0-BNXo1ecc.d.mts → v0-Bh8d1j_p.d.mts} +1 -1
- package/dist/{v0-BPzPP8C5.d.mts → v0-CVr15VcY.d.mts} +1 -1
- package/dist/{v0-Dc5mcpQs.mjs → v0-CWUF_HqP.mjs} +2 -2
- package/dist/{v0-BYqmw3qM.mjs → v0-DtO_ICXr.mjs} +1 -1
- package/dist/{v0-Dwufx8ae.mjs → v0-DzvhDU1W.mjs} +2 -2
- package/dist/{v0-C8DBv9mh.mjs → v0-lua6ffdk.mjs} +2 -2
- package/dist/{virtual-BoTGK6HT.mjs → virtual-BEOqkQvm.mjs} +2 -2
- package/dist/{virtual-A4e1yrdn.d.mts → virtual-CVb9hRUU.d.mts} +1 -1
- package/package.json +1 -1
package/dist/browser/index.js
CHANGED
|
@@ -85,7 +85,7 @@ const SUPPORTS_MATCH_MEDIA = IN_BROWSER && "matchMedia" in window && typeof wind
|
|
|
85
85
|
const SUPPORTS_OBSERVER = IN_BROWSER && "ResizeObserver" in window;
|
|
86
86
|
const SUPPORTS_INTERSECTION_OBSERVER = IN_BROWSER && "IntersectionObserver" in window;
|
|
87
87
|
const SUPPORTS_MUTATION_OBSERVER = IN_BROWSER && "MutationObserver" in window;
|
|
88
|
-
const version = "0.1.
|
|
88
|
+
const version = "0.1.6";
|
|
89
89
|
/* v8 ignore next -- build-time constant, __DEV__ short-circuits in tests */
|
|
90
90
|
const __LOGGER_ENABLED__ = false;
|
|
91
91
|
|
|
@@ -528,7 +528,7 @@ function debounce(fn, delay) {
|
|
|
528
528
|
* serving as the foundation for all other components that need polymorphic
|
|
529
529
|
* rendering capabilities.
|
|
530
530
|
*/
|
|
531
|
-
const _sfc_main$
|
|
531
|
+
const _sfc_main$68 = /* @__PURE__ */ defineComponent({
|
|
532
532
|
name: "Atom",
|
|
533
533
|
__name: "Atom",
|
|
534
534
|
props: {
|
|
@@ -559,7 +559,7 @@ const _sfc_main$60 = /* @__PURE__ */ defineComponent({
|
|
|
559
559
|
};
|
|
560
560
|
}
|
|
561
561
|
});
|
|
562
|
-
var Atom_default = _sfc_main$
|
|
562
|
+
var Atom_default = _sfc_main$68;
|
|
563
563
|
|
|
564
564
|
//#endregion
|
|
565
565
|
//#region src/composables/createContext/index.ts
|
|
@@ -1417,6 +1417,23 @@ function createRegistry(options) {
|
|
|
1417
1417
|
needsReindex = true;
|
|
1418
1418
|
});
|
|
1419
1419
|
}
|
|
1420
|
+
function move(id, toIndex) {
|
|
1421
|
+
if (needsReindex) reindex();
|
|
1422
|
+
const ticket = collection.get(id);
|
|
1423
|
+
if (!ticket) return void 0;
|
|
1424
|
+
const size = collection.size;
|
|
1425
|
+
const target = /* @__PURE__ */ clamp(toIndex, 0, size - 1);
|
|
1426
|
+
if (ticket.index === target) return ticket;
|
|
1427
|
+
const items = Array.from(collection.entries());
|
|
1428
|
+
const fromIndex = items.findIndex(([key]) => key === id);
|
|
1429
|
+
const [entry] = items.splice(fromIndex, 1);
|
|
1430
|
+
items.splice(target, 0, entry);
|
|
1431
|
+
collection.clear();
|
|
1432
|
+
for (const [key, value] of items) collection.set(key, value);
|
|
1433
|
+
minDirtyIndex = Math.min(ticket.index, target);
|
|
1434
|
+
reindex();
|
|
1435
|
+
return ticket;
|
|
1436
|
+
}
|
|
1420
1437
|
function seek(direction = "first", from, predicate) {
|
|
1421
1438
|
if (collection.size === 0) return void 0;
|
|
1422
1439
|
if (needsReindex) reindex();
|
|
@@ -1458,6 +1475,7 @@ function createRegistry(options) {
|
|
|
1458
1475
|
register,
|
|
1459
1476
|
unregister,
|
|
1460
1477
|
reindex,
|
|
1478
|
+
move,
|
|
1461
1479
|
seek,
|
|
1462
1480
|
batch,
|
|
1463
1481
|
onboard(registrations) {
|
|
@@ -1530,27 +1548,193 @@ function useRegistry(namespace = "v0:registry") {
|
|
|
1530
1548
|
return useContext(namespace);
|
|
1531
1549
|
}
|
|
1532
1550
|
|
|
1551
|
+
//#endregion
|
|
1552
|
+
//#region src/composables/createModel/index.ts
|
|
1553
|
+
/**
|
|
1554
|
+
* @module createModel
|
|
1555
|
+
*
|
|
1556
|
+
* @remarks
|
|
1557
|
+
* Value store layer that extends createRegistry with a reactive Set of
|
|
1558
|
+
* selected IDs, disabled guards, and an `apply` bridge for useProxyModel sync.
|
|
1559
|
+
*
|
|
1560
|
+
* Think of it as a creative way to store a single value — more like
|
|
1561
|
+
* `defineModel` than `createSelection`. Selection-specific concepts
|
|
1562
|
+
* (mandatory) belong in createSelection. The `multiple` option here
|
|
1563
|
+
* controls whether `select()` accumulates or replaces.
|
|
1564
|
+
*
|
|
1565
|
+
* Both Selection and Slider extend this layer:
|
|
1566
|
+
* - createRegistry → createModel → createSelection → createSingle/createGroup/createStep
|
|
1567
|
+
* - createRegistry → createModel → createSlider (values override)
|
|
1568
|
+
*/
|
|
1569
|
+
/**
|
|
1570
|
+
* Creates a new model instance for storing a single value.
|
|
1571
|
+
*
|
|
1572
|
+
* @param options The options for the model instance.
|
|
1573
|
+
* @template Z The input ticket type. Extend {@link ModelTicketInput} to add custom properties.
|
|
1574
|
+
* @template E The output ticket type. Automatically includes `disabled` and `isSelected`.
|
|
1575
|
+
* @template R The context type. Defaults to {@link ModelContext}<Z, E>.
|
|
1576
|
+
* @returns A new model instance with selection tracking and disabled guards.
|
|
1577
|
+
*
|
|
1578
|
+
* @remarks
|
|
1579
|
+
* Extends createRegistry with value tracking via a reactive Set of selected IDs.
|
|
1580
|
+
* Provides the shared model-value concept used by both Selection and Slider.
|
|
1581
|
+
*
|
|
1582
|
+
* **Enrollment**: Tickets are auto-selected on registration by default (`enroll: true`).
|
|
1583
|
+
* With single-value semantics, only the most recently registered ticket is active.
|
|
1584
|
+
* Pass `enroll: false` to opt out. `createSelection` overrides this to `false`.
|
|
1585
|
+
*
|
|
1586
|
+
* **Apply bridge**: `useProxyModel` calls `apply()` to sync a ref with the model.
|
|
1587
|
+
* When the active ticket's value is a ref, `apply` writes to it directly. Otherwise,
|
|
1588
|
+
* it resolves via `registry.browse()`.
|
|
1589
|
+
*
|
|
1590
|
+
* @see https://0.vuetifyjs.com/composables/selection/create-model
|
|
1591
|
+
*
|
|
1592
|
+
* @example
|
|
1593
|
+
* ```ts
|
|
1594
|
+
* import { shallowRef } from 'vue'
|
|
1595
|
+
* import { createModel, useProxyModel } from '@vuetify/v0'
|
|
1596
|
+
*
|
|
1597
|
+
* const value = shallowRef('Apple')
|
|
1598
|
+
* const model = createModel({ events: true })
|
|
1599
|
+
*
|
|
1600
|
+
* model.register({ id: 'fruit', value })
|
|
1601
|
+
* useProxyModel(model, value)
|
|
1602
|
+
*
|
|
1603
|
+
* // value and model stay in sync bidirectionally
|
|
1604
|
+
* ```
|
|
1605
|
+
*
|
|
1606
|
+
* @example
|
|
1607
|
+
* ```ts
|
|
1608
|
+
* // Disabled model — all selection operations are no-ops
|
|
1609
|
+
* const model = createModel({ disabled: true })
|
|
1610
|
+
* model.register({ id: 'a', value: shallowRef('Apple') })
|
|
1611
|
+
* model.select('a') // no-op
|
|
1612
|
+
* ```
|
|
1613
|
+
*/
|
|
1614
|
+
function createModel(_options = {}) {
|
|
1615
|
+
const { disabled = false, enroll = true, multiple = false, ...options } = _options;
|
|
1616
|
+
const registry = createRegistry(options);
|
|
1617
|
+
const selectedIds = shallowReactive(/* @__PURE__ */ new Set());
|
|
1618
|
+
const selectedItems = computed(() => {
|
|
1619
|
+
return new Set(Array.from(selectedIds).map((id) => registry.get(id)).filter((item) => !/* @__PURE__ */ isUndefined(item)));
|
|
1620
|
+
});
|
|
1621
|
+
const selectedValues = computed(() => {
|
|
1622
|
+
return new Set(Array.from(selectedItems.value).map((item) => toValue(item.value)));
|
|
1623
|
+
});
|
|
1624
|
+
function select(id) {
|
|
1625
|
+
if (toValue(disabled)) return;
|
|
1626
|
+
const item = registry.get(id);
|
|
1627
|
+
if (!item || toValue(item.disabled)) return;
|
|
1628
|
+
if (!toValue(multiple)) selectedIds.clear();
|
|
1629
|
+
selectedIds.add(id);
|
|
1630
|
+
}
|
|
1631
|
+
function unselect(id) {
|
|
1632
|
+
if (toValue(disabled)) return;
|
|
1633
|
+
selectedIds.delete(id);
|
|
1634
|
+
}
|
|
1635
|
+
function toggle(id) {
|
|
1636
|
+
if (toValue(disabled)) return;
|
|
1637
|
+
if (selected(id)) unselect(id);
|
|
1638
|
+
else select(id);
|
|
1639
|
+
}
|
|
1640
|
+
function selected(id) {
|
|
1641
|
+
return selectedIds.has(id);
|
|
1642
|
+
}
|
|
1643
|
+
function apply(values, _options$1) {
|
|
1644
|
+
const value = values[0];
|
|
1645
|
+
for (const id$1 of selectedIds) {
|
|
1646
|
+
const item = registry.get(id$1);
|
|
1647
|
+
if (!item || !isRef(item.value)) continue;
|
|
1648
|
+
item.value.value = value;
|
|
1649
|
+
}
|
|
1650
|
+
if (!toValue(multiple)) selectedIds.clear();
|
|
1651
|
+
if (/* @__PURE__ */ isUndefined(value)) return;
|
|
1652
|
+
const id = registry.browse(toRaw(value))?.values().next().value;
|
|
1653
|
+
if (!/* @__PURE__ */ isUndefined(id)) selectedIds.add(id);
|
|
1654
|
+
}
|
|
1655
|
+
function register(registration = {}) {
|
|
1656
|
+
const id = registration.id ?? /* @__PURE__ */ useId();
|
|
1657
|
+
const item = {
|
|
1658
|
+
disabled: false,
|
|
1659
|
+
...registration,
|
|
1660
|
+
isSelected: toRef(() => selected(id)),
|
|
1661
|
+
id
|
|
1662
|
+
};
|
|
1663
|
+
const ticket = registry.register(item);
|
|
1664
|
+
if (toValue(enroll) && !toValue(disabled) && !toValue(ticket.disabled)) select(id);
|
|
1665
|
+
return ticket;
|
|
1666
|
+
}
|
|
1667
|
+
function unregister(id) {
|
|
1668
|
+
selectedIds.delete(id);
|
|
1669
|
+
registry.unregister(id);
|
|
1670
|
+
}
|
|
1671
|
+
function onboard(registrations) {
|
|
1672
|
+
return registry.batch(() => registrations.map((r) => register(r)));
|
|
1673
|
+
}
|
|
1674
|
+
function offboard(ids) {
|
|
1675
|
+
for (const id of ids) selectedIds.delete(id);
|
|
1676
|
+
registry.offboard(ids);
|
|
1677
|
+
}
|
|
1678
|
+
function reset() {
|
|
1679
|
+
selectedIds.clear();
|
|
1680
|
+
}
|
|
1681
|
+
function clear() {
|
|
1682
|
+
reset();
|
|
1683
|
+
registry.clear();
|
|
1684
|
+
}
|
|
1685
|
+
function dispose() {
|
|
1686
|
+
reset();
|
|
1687
|
+
registry.dispose();
|
|
1688
|
+
}
|
|
1689
|
+
return {
|
|
1690
|
+
...registry,
|
|
1691
|
+
disabled,
|
|
1692
|
+
selectedIds,
|
|
1693
|
+
selectedItems,
|
|
1694
|
+
selectedValues,
|
|
1695
|
+
register,
|
|
1696
|
+
onboard,
|
|
1697
|
+
unregister,
|
|
1698
|
+
offboard,
|
|
1699
|
+
clear,
|
|
1700
|
+
dispose,
|
|
1701
|
+
reset,
|
|
1702
|
+
select,
|
|
1703
|
+
unselect,
|
|
1704
|
+
toggle,
|
|
1705
|
+
selected,
|
|
1706
|
+
apply,
|
|
1707
|
+
get size() {
|
|
1708
|
+
return registry.size;
|
|
1709
|
+
}
|
|
1710
|
+
};
|
|
1711
|
+
}
|
|
1712
|
+
|
|
1533
1713
|
//#endregion
|
|
1534
1714
|
//#region src/composables/createSelection/index.ts
|
|
1535
1715
|
/**
|
|
1536
1716
|
* @module useSelection
|
|
1537
1717
|
*
|
|
1538
1718
|
* @remarks
|
|
1539
|
-
*
|
|
1719
|
+
* Selection composable that extends createModel with multi-select,
|
|
1720
|
+
* mandatory enforcement, auto-enrollment, and ticket self-methods.
|
|
1540
1721
|
*
|
|
1541
1722
|
* Key features:
|
|
1542
1723
|
* - Set-based selectedIds for O(1) selection checks
|
|
1724
|
+
* - Single or multi-select mode
|
|
1543
1725
|
* - Mandatory selection mode (prevents deselecting last item)
|
|
1544
1726
|
* - Auto-enrollment option (selects non-disabled items on register)
|
|
1545
1727
|
* - Disabled item filtering
|
|
1546
1728
|
* - Computed selectedItems and selectedValues Sets
|
|
1729
|
+
* - Ticket self-methods: select(), unselect(), toggle()
|
|
1547
1730
|
*
|
|
1548
|
-
* Extends
|
|
1731
|
+
* Extends createModel and serves as the base for useSingle, useGroup, useStep, and useFeatures.
|
|
1549
1732
|
*/
|
|
1550
1733
|
/**
|
|
1551
1734
|
* Creates a new selection instance for managing multiple selected items.
|
|
1552
1735
|
*
|
|
1553
|
-
* Extends `
|
|
1736
|
+
* Extends `createModel` with multi-select, mandatory enforcement,
|
|
1737
|
+
* auto-enrollment, and ticket self-methods.
|
|
1554
1738
|
* Supports disabled items, mandatory selection enforcement, and auto-enrollment.
|
|
1555
1739
|
*
|
|
1556
1740
|
* @param options The options for the selection instance.
|
|
@@ -1571,7 +1755,7 @@ function useRegistry(namespace = "v0:registry") {
|
|
|
1571
1755
|
* - Enroll option auto-selects all non-disabled items on registration
|
|
1572
1756
|
*
|
|
1573
1757
|
* **Inheritance Chain:**
|
|
1574
|
-
* `
|
|
1758
|
+
* `createRegistry` → `createModel` → `createSelection` → `createSingle`/`createGroup` → `createStep`
|
|
1575
1759
|
*
|
|
1576
1760
|
* @see https://0.vuetifyjs.com/composables/selection/use-selection
|
|
1577
1761
|
*
|
|
@@ -1613,96 +1797,86 @@ function useRegistry(namespace = "v0:registry") {
|
|
|
1613
1797
|
* ```
|
|
1614
1798
|
*/
|
|
1615
1799
|
function createSelection(_options = {}) {
|
|
1616
|
-
const {
|
|
1617
|
-
const
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
return new Set(Array.from(selectedIds).map((id) => registry.get(id)).filter((item) => !/* @__PURE__ */ isUndefined(item)));
|
|
1621
|
-
});
|
|
1622
|
-
const selectedValues = computed(() => {
|
|
1623
|
-
return new Set(Array.from(selectedItems.value).map((item) => item.value));
|
|
1800
|
+
const { enroll = false, mandatory = false, multiple = false, ...options } = _options;
|
|
1801
|
+
const model = createModel({
|
|
1802
|
+
...options,
|
|
1803
|
+
enroll: false
|
|
1624
1804
|
});
|
|
1625
1805
|
function seek(direction = "first", from) {
|
|
1626
|
-
return
|
|
1806
|
+
return model.seek(direction, from, (ticket) => !toValue(ticket.disabled));
|
|
1627
1807
|
}
|
|
1628
1808
|
function mandate() {
|
|
1629
|
-
if (!toValue(mandatory) ||
|
|
1809
|
+
if (!toValue(mandatory) || model.size === 0 || model.selectedIds.size > 0) return;
|
|
1630
1810
|
const ticket = seek("first");
|
|
1631
1811
|
if (ticket) select(ticket.id);
|
|
1632
1812
|
}
|
|
1633
1813
|
function select(id) {
|
|
1634
|
-
if (toValue(disabled)) return;
|
|
1635
|
-
const item =
|
|
1814
|
+
if (toValue(model.disabled)) return;
|
|
1815
|
+
const item = model.get(id);
|
|
1636
1816
|
if (!item || toValue(item.disabled)) return;
|
|
1637
|
-
if (!toValue(multiple)) selectedIds.clear();
|
|
1638
|
-
selectedIds.add(id);
|
|
1817
|
+
if (!toValue(multiple)) model.selectedIds.clear();
|
|
1818
|
+
model.selectedIds.add(id);
|
|
1639
1819
|
}
|
|
1640
1820
|
function unselect(id) {
|
|
1641
|
-
if (toValue(disabled)) return;
|
|
1642
|
-
if (toValue(mandatory) && selectedIds.size === 1) return;
|
|
1643
|
-
selectedIds.delete(id);
|
|
1821
|
+
if (toValue(model.disabled)) return;
|
|
1822
|
+
if (toValue(mandatory) && model.selectedIds.size === 1) return;
|
|
1823
|
+
model.selectedIds.delete(id);
|
|
1644
1824
|
}
|
|
1645
1825
|
function toggle(id) {
|
|
1646
|
-
if (toValue(disabled)) return;
|
|
1647
|
-
if (
|
|
1826
|
+
if (toValue(model.disabled)) return;
|
|
1827
|
+
if (model.selectedIds.has(id)) unselect(id);
|
|
1648
1828
|
else select(id);
|
|
1649
1829
|
}
|
|
1650
|
-
function
|
|
1651
|
-
|
|
1830
|
+
function apply(values, options$1) {
|
|
1831
|
+
const isMultiple = options$1?.multiple ?? toValue(multiple);
|
|
1832
|
+
const currentIds = new Set(model.selectedIds);
|
|
1833
|
+
const targetIds = /* @__PURE__ */ new Set();
|
|
1834
|
+
for (const value of values) {
|
|
1835
|
+
const ids = model.browse(toRaw(value));
|
|
1836
|
+
if (ids) for (const id of ids) targetIds.add(id);
|
|
1837
|
+
}
|
|
1838
|
+
if (isMultiple) {
|
|
1839
|
+
for (const id of currentIds.difference(targetIds)) model.selectedIds.delete(id);
|
|
1840
|
+
for (const id of targetIds.difference(currentIds)) model.selectedIds.add(id);
|
|
1841
|
+
} else {
|
|
1842
|
+
const next = targetIds.values().next().value;
|
|
1843
|
+
const last = currentIds.values().next().value;
|
|
1844
|
+
if (!/* @__PURE__ */ isUndefined(last)) unselect(last);
|
|
1845
|
+
if (!/* @__PURE__ */ isUndefined(next)) select(next);
|
|
1846
|
+
}
|
|
1652
1847
|
}
|
|
1653
1848
|
function register(registration = {}) {
|
|
1654
1849
|
const id = registration.id ?? /* @__PURE__ */ useId();
|
|
1655
|
-
const
|
|
1656
|
-
disabled: false,
|
|
1850
|
+
const decorated = {
|
|
1657
1851
|
select: () => select(id),
|
|
1658
1852
|
unselect: () => unselect(id),
|
|
1659
1853
|
toggle: () => toggle(id),
|
|
1660
|
-
isSelected: toRef(() => selected(id)),
|
|
1661
1854
|
...registration,
|
|
1662
1855
|
id
|
|
1663
1856
|
};
|
|
1664
|
-
const ticket =
|
|
1665
|
-
if (toValue(enroll) && !toValue(disabled) && !toValue(
|
|
1857
|
+
const ticket = model.register(decorated);
|
|
1858
|
+
if (toValue(enroll) && !toValue(model.disabled) && !toValue(ticket.disabled)) select(ticket.id);
|
|
1666
1859
|
if (toValue(mandatory) === "force") mandate();
|
|
1667
1860
|
return ticket;
|
|
1668
1861
|
}
|
|
1669
|
-
function unregister(id) {
|
|
1670
|
-
selectedIds.delete(id);
|
|
1671
|
-
registry.unregister(id);
|
|
1672
|
-
}
|
|
1673
|
-
function offboard(ids) {
|
|
1674
|
-
for (const id of ids) selectedIds.delete(id);
|
|
1675
|
-
registry.offboard(ids);
|
|
1676
|
-
}
|
|
1677
1862
|
function onboard(registrations) {
|
|
1678
|
-
const tickets =
|
|
1863
|
+
const tickets = model.batch(() => registrations.map((registration) => register(registration)));
|
|
1679
1864
|
if (toValue(mandatory) === "force") mandate();
|
|
1680
1865
|
return tickets;
|
|
1681
1866
|
}
|
|
1682
|
-
function reset() {
|
|
1683
|
-
registry.clear();
|
|
1684
|
-
selectedIds.clear();
|
|
1685
|
-
mandate();
|
|
1686
|
-
}
|
|
1687
1867
|
return {
|
|
1688
|
-
...
|
|
1689
|
-
|
|
1690
|
-
selectedIds,
|
|
1691
|
-
selectedItems,
|
|
1692
|
-
selectedValues,
|
|
1868
|
+
...model,
|
|
1869
|
+
multiple,
|
|
1693
1870
|
register,
|
|
1694
|
-
unregister,
|
|
1695
1871
|
onboard,
|
|
1696
|
-
offboard,
|
|
1697
|
-
reset,
|
|
1698
|
-
mandate,
|
|
1699
|
-
seek,
|
|
1700
1872
|
select,
|
|
1701
1873
|
unselect,
|
|
1702
1874
|
toggle,
|
|
1703
|
-
|
|
1875
|
+
apply,
|
|
1876
|
+
mandate,
|
|
1877
|
+
seek,
|
|
1704
1878
|
get size() {
|
|
1705
|
-
return
|
|
1879
|
+
return model.size;
|
|
1706
1880
|
}
|
|
1707
1881
|
};
|
|
1708
1882
|
}
|
|
@@ -1788,7 +1962,7 @@ function useSelection(namespace = "v0:selection") {
|
|
|
1788
1962
|
//#endregion
|
|
1789
1963
|
//#region src/components/Avatar/AvatarRoot.vue
|
|
1790
1964
|
const [useAvatarRoot, provideAvatarRoot] = createContext();
|
|
1791
|
-
const _sfc_main$
|
|
1965
|
+
const _sfc_main$67 = /* @__PURE__ */ defineComponent({
|
|
1792
1966
|
name: "AvatarRoot",
|
|
1793
1967
|
__name: "AvatarRoot",
|
|
1794
1968
|
props: {
|
|
@@ -1813,11 +1987,11 @@ const _sfc_main$59 = /* @__PURE__ */ defineComponent({
|
|
|
1813
1987
|
};
|
|
1814
1988
|
}
|
|
1815
1989
|
});
|
|
1816
|
-
var AvatarRoot_default = _sfc_main$
|
|
1990
|
+
var AvatarRoot_default = _sfc_main$67;
|
|
1817
1991
|
|
|
1818
1992
|
//#endregion
|
|
1819
1993
|
//#region src/components/Avatar/AvatarFallback.vue
|
|
1820
|
-
const _sfc_main$
|
|
1994
|
+
const _sfc_main$66 = /* @__PURE__ */ defineComponent({
|
|
1821
1995
|
name: "AvatarFallback",
|
|
1822
1996
|
__name: "AvatarFallback",
|
|
1823
1997
|
props: {
|
|
@@ -1842,11 +2016,11 @@ const _sfc_main$58 = /* @__PURE__ */ defineComponent({
|
|
|
1842
2016
|
};
|
|
1843
2017
|
}
|
|
1844
2018
|
});
|
|
1845
|
-
var AvatarFallback_default = _sfc_main$
|
|
2019
|
+
var AvatarFallback_default = _sfc_main$66;
|
|
1846
2020
|
|
|
1847
2021
|
//#endregion
|
|
1848
2022
|
//#region src/components/Avatar/AvatarImage.vue
|
|
1849
|
-
const _sfc_main$
|
|
2023
|
+
const _sfc_main$65 = /* @__PURE__ */ defineComponent({
|
|
1850
2024
|
name: "AvatarImage",
|
|
1851
2025
|
inheritAttrs: false,
|
|
1852
2026
|
__name: "AvatarImage",
|
|
@@ -1906,7 +2080,7 @@ const _sfc_main$57 = /* @__PURE__ */ defineComponent({
|
|
|
1906
2080
|
};
|
|
1907
2081
|
}
|
|
1908
2082
|
});
|
|
1909
|
-
var AvatarImage_default = _sfc_main$
|
|
2083
|
+
var AvatarImage_default = _sfc_main$65;
|
|
1910
2084
|
|
|
1911
2085
|
//#endregion
|
|
1912
2086
|
//#region src/components/Avatar/index.ts
|
|
@@ -2262,7 +2436,8 @@ function useBreadcrumbs(namespace = "v0:breadcrumbs") {
|
|
|
2262
2436
|
*
|
|
2263
2437
|
* @param registry The registry instance to proxy.
|
|
2264
2438
|
* @param options The options for the proxy registry.
|
|
2265
|
-
* @template Z The type
|
|
2439
|
+
* @template Z The input ticket type (what users provide to register).
|
|
2440
|
+
* @template E The output ticket type (what users receive from get/values).
|
|
2266
2441
|
* @returns A proxy registry with reactive objects.
|
|
2267
2442
|
*
|
|
2268
2443
|
* @see https://0.vuetifyjs.com/composables/registration/use-proxy-registry
|
|
@@ -3559,7 +3734,7 @@ const [createLocaleContext, createLocalePlugin, useLocale] = createPluginContext
|
|
|
3559
3734
|
//#endregion
|
|
3560
3735
|
//#region src/components/Breadcrumbs/BreadcrumbsRoot.vue
|
|
3561
3736
|
const [useBreadcrumbsRoot, provideBreadcrumbsRoot] = createContext();
|
|
3562
|
-
const _sfc_main$
|
|
3737
|
+
const _sfc_main$64 = /* @__PURE__ */ defineComponent({
|
|
3563
3738
|
name: "BreadcrumbsRoot",
|
|
3564
3739
|
__name: "BreadcrumbsRoot",
|
|
3565
3740
|
props: {
|
|
@@ -3698,11 +3873,11 @@ const _sfc_main$56 = /* @__PURE__ */ defineComponent({
|
|
|
3698
3873
|
};
|
|
3699
3874
|
}
|
|
3700
3875
|
});
|
|
3701
|
-
var BreadcrumbsRoot_default = _sfc_main$
|
|
3876
|
+
var BreadcrumbsRoot_default = _sfc_main$64;
|
|
3702
3877
|
|
|
3703
3878
|
//#endregion
|
|
3704
3879
|
//#region src/components/Breadcrumbs/BreadcrumbsDivider.vue
|
|
3705
|
-
const _sfc_main$
|
|
3880
|
+
const _sfc_main$63 = /* @__PURE__ */ defineComponent({
|
|
3706
3881
|
name: "BreadcrumbsDivider",
|
|
3707
3882
|
__name: "BreadcrumbsDivider",
|
|
3708
3883
|
props: {
|
|
@@ -3749,11 +3924,11 @@ const _sfc_main$55 = /* @__PURE__ */ defineComponent({
|
|
|
3749
3924
|
};
|
|
3750
3925
|
}
|
|
3751
3926
|
});
|
|
3752
|
-
var BreadcrumbsDivider_default = _sfc_main$
|
|
3927
|
+
var BreadcrumbsDivider_default = _sfc_main$63;
|
|
3753
3928
|
|
|
3754
3929
|
//#endregion
|
|
3755
3930
|
//#region src/components/Breadcrumbs/BreadcrumbsEllipsis.vue
|
|
3756
|
-
const _sfc_main$
|
|
3931
|
+
const _sfc_main$62 = /* @__PURE__ */ defineComponent({
|
|
3757
3932
|
name: "BreadcrumbsEllipsis",
|
|
3758
3933
|
__name: "BreadcrumbsEllipsis",
|
|
3759
3934
|
props: {
|
|
@@ -3807,11 +3982,11 @@ const _sfc_main$54 = /* @__PURE__ */ defineComponent({
|
|
|
3807
3982
|
};
|
|
3808
3983
|
}
|
|
3809
3984
|
});
|
|
3810
|
-
var BreadcrumbsEllipsis_default = _sfc_main$
|
|
3985
|
+
var BreadcrumbsEllipsis_default = _sfc_main$62;
|
|
3811
3986
|
|
|
3812
3987
|
//#endregion
|
|
3813
3988
|
//#region src/components/Breadcrumbs/BreadcrumbsItem.vue
|
|
3814
|
-
const _sfc_main$
|
|
3989
|
+
const _sfc_main$61 = /* @__PURE__ */ defineComponent({
|
|
3815
3990
|
name: "BreadcrumbsItem",
|
|
3816
3991
|
__name: "BreadcrumbsItem",
|
|
3817
3992
|
props: {
|
|
@@ -3861,11 +4036,11 @@ const _sfc_main$53 = /* @__PURE__ */ defineComponent({
|
|
|
3861
4036
|
};
|
|
3862
4037
|
}
|
|
3863
4038
|
});
|
|
3864
|
-
var BreadcrumbsItem_default = _sfc_main$
|
|
4039
|
+
var BreadcrumbsItem_default = _sfc_main$61;
|
|
3865
4040
|
|
|
3866
4041
|
//#endregion
|
|
3867
4042
|
//#region src/components/Breadcrumbs/BreadcrumbsLink.vue
|
|
3868
|
-
const _sfc_main$
|
|
4043
|
+
const _sfc_main$60 = /* @__PURE__ */ defineComponent({
|
|
3869
4044
|
name: "BreadcrumbsLink",
|
|
3870
4045
|
__name: "BreadcrumbsLink",
|
|
3871
4046
|
props: {
|
|
@@ -3884,11 +4059,11 @@ const _sfc_main$52 = /* @__PURE__ */ defineComponent({
|
|
|
3884
4059
|
};
|
|
3885
4060
|
}
|
|
3886
4061
|
});
|
|
3887
|
-
var BreadcrumbsLink_default = _sfc_main$
|
|
4062
|
+
var BreadcrumbsLink_default = _sfc_main$60;
|
|
3888
4063
|
|
|
3889
4064
|
//#endregion
|
|
3890
4065
|
//#region src/components/Breadcrumbs/BreadcrumbsList.vue
|
|
3891
|
-
const _sfc_main$
|
|
4066
|
+
const _sfc_main$59 = /* @__PURE__ */ defineComponent({
|
|
3892
4067
|
name: "BreadcrumbsList",
|
|
3893
4068
|
__name: "BreadcrumbsList",
|
|
3894
4069
|
props: {
|
|
@@ -3908,11 +4083,11 @@ const _sfc_main$51 = /* @__PURE__ */ defineComponent({
|
|
|
3908
4083
|
};
|
|
3909
4084
|
}
|
|
3910
4085
|
});
|
|
3911
|
-
var BreadcrumbsList_default = _sfc_main$
|
|
4086
|
+
var BreadcrumbsList_default = _sfc_main$59;
|
|
3912
4087
|
|
|
3913
4088
|
//#endregion
|
|
3914
4089
|
//#region src/components/Breadcrumbs/BreadcrumbsPage.vue
|
|
3915
|
-
const _sfc_main$
|
|
4090
|
+
const _sfc_main$58 = /* @__PURE__ */ defineComponent({
|
|
3916
4091
|
name: "BreadcrumbsPage",
|
|
3917
4092
|
__name: "BreadcrumbsPage",
|
|
3918
4093
|
props: {
|
|
@@ -3932,7 +4107,7 @@ const _sfc_main$50 = /* @__PURE__ */ defineComponent({
|
|
|
3932
4107
|
};
|
|
3933
4108
|
}
|
|
3934
4109
|
});
|
|
3935
|
-
var BreadcrumbsPage_default = _sfc_main$
|
|
4110
|
+
var BreadcrumbsPage_default = _sfc_main$58;
|
|
3936
4111
|
|
|
3937
4112
|
//#endregion
|
|
3938
4113
|
//#region src/components/Breadcrumbs/index.ts
|
|
@@ -3957,23 +4132,22 @@ const Breadcrumbs = {
|
|
|
3957
4132
|
* @module useProxyModel
|
|
3958
4133
|
*
|
|
3959
4134
|
* @remarks
|
|
3960
|
-
* Proxy composable for bidirectional sync between
|
|
4135
|
+
* Proxy composable for bidirectional sync between a model context and v-model.
|
|
3961
4136
|
*
|
|
3962
4137
|
* Key features:
|
|
3963
4138
|
* - Bidirectional synchronization
|
|
3964
4139
|
* - Array and single-value modes
|
|
3965
4140
|
* - Automatic cleanup on scope disposal
|
|
3966
|
-
* -
|
|
4141
|
+
* - Works with any ModelContext (Selection, Slider, etc.)
|
|
3967
4142
|
*
|
|
3968
|
-
* Bridges the gap between
|
|
4143
|
+
* Bridges the gap between model composables and Vue's v-model.
|
|
3969
4144
|
*/
|
|
3970
4145
|
/**
|
|
3971
|
-
* Syncs a ref with a
|
|
4146
|
+
* Syncs a ref with a model context bidirectionally.
|
|
3972
4147
|
*
|
|
3973
|
-
* @param
|
|
4148
|
+
* @param context The model context to bind to.
|
|
3974
4149
|
* @param model The ref to sync.
|
|
3975
4150
|
* @param options The options for the proxy model.
|
|
3976
|
-
* @template Z The type of the selection ticket.
|
|
3977
4151
|
* @returns A function to stop the sync.
|
|
3978
4152
|
*
|
|
3979
4153
|
* @see https://0.vuetifyjs.com/composables/forms/use-proxy-model
|
|
@@ -3992,8 +4166,8 @@ const Breadcrumbs = {
|
|
|
3992
4166
|
* const stop = useProxyModel(registry, model)
|
|
3993
4167
|
* ```
|
|
3994
4168
|
*/
|
|
3995
|
-
function useProxyModel(
|
|
3996
|
-
const multiple = options?.multiple ?? false;
|
|
4169
|
+
function useProxyModel(context, model, options) {
|
|
4170
|
+
const multiple = options?.multiple ?? context.multiple ?? false;
|
|
3997
4171
|
const _transformIn = options?.transformIn;
|
|
3998
4172
|
const _transformOut = options?.transformOut;
|
|
3999
4173
|
function transformIn(val) {
|
|
@@ -4004,39 +4178,20 @@ function useProxyModel(registry, model, options) {
|
|
|
4004
4178
|
if (/* @__PURE__ */ isFunction(_transformOut)) return _transformOut(val);
|
|
4005
4179
|
return toValue(multiple) ? val : val[0];
|
|
4006
4180
|
}
|
|
4181
|
+
const applyOptions = toValue(multiple) === toValue(context.multiple ?? false) ? void 0 : { multiple: toValue(multiple) };
|
|
4007
4182
|
const modelAsArray = transformIn(model);
|
|
4008
4183
|
const pending = new Set(modelAsArray);
|
|
4009
|
-
|
|
4010
|
-
|
|
4011
|
-
|
|
4012
|
-
if (ids) {
|
|
4013
|
-
for (const id of ids) registry.select(id);
|
|
4014
|
-
pending.delete(value);
|
|
4015
|
-
}
|
|
4016
|
-
}
|
|
4017
|
-
const registryWatch = watch(registry.selectedValues, (val) => {
|
|
4184
|
+
context.apply(modelAsArray, applyOptions);
|
|
4185
|
+
for (const value of modelAsArray) if (Array.from(context.selectedValues.value).includes(value)) pending.delete(value);
|
|
4186
|
+
const contextWatch = watch(context.selectedValues, (val) => {
|
|
4018
4187
|
modelWatch.pause();
|
|
4019
4188
|
model.value = transformOut(Array.from(toValue(val)));
|
|
4020
4189
|
modelWatch.resume();
|
|
4021
4190
|
}, { flush: "sync" });
|
|
4022
4191
|
const modelWatch = watch(model, (val) => {
|
|
4023
|
-
|
|
4024
|
-
|
|
4025
|
-
|
|
4026
|
-
for (const value of transformIn(val)) {
|
|
4027
|
-
const ids = registry.browse(toRaw(value));
|
|
4028
|
-
if (ids) for (const id of ids) targetIds.add(id);
|
|
4029
|
-
}
|
|
4030
|
-
if (toValue(multiple)) {
|
|
4031
|
-
for (const id of currentIds.difference(targetIds)) registry.selectedIds.delete(id);
|
|
4032
|
-
for (const id of targetIds.difference(currentIds)) registry.selectedIds.add(id);
|
|
4033
|
-
} else {
|
|
4034
|
-
const next = targetIds.values().next().value;
|
|
4035
|
-
const last = currentIds.values().next().value;
|
|
4036
|
-
if (!/* @__PURE__ */ isUndefined(last)) registry.unselect(last);
|
|
4037
|
-
if (!/* @__PURE__ */ isUndefined(next)) registry.select(next);
|
|
4038
|
-
}
|
|
4039
|
-
registryWatch.resume();
|
|
4192
|
+
contextWatch.pause();
|
|
4193
|
+
context.apply(transformIn(val), applyOptions);
|
|
4194
|
+
contextWatch.resume();
|
|
4040
4195
|
}, {
|
|
4041
4196
|
flush: "sync",
|
|
4042
4197
|
deep: toValue(multiple)
|
|
@@ -4044,18 +4199,18 @@ function useProxyModel(registry, model, options) {
|
|
|
4044
4199
|
function onRegister(data) {
|
|
4045
4200
|
const ticket = data;
|
|
4046
4201
|
if (!pending.has(ticket.value) || toValue(ticket.disabled)) return;
|
|
4047
|
-
|
|
4202
|
+
contextWatch.pause();
|
|
4048
4203
|
modelWatch.pause();
|
|
4049
|
-
|
|
4204
|
+
context.select?.(ticket.id);
|
|
4050
4205
|
pending.delete(ticket.value);
|
|
4051
4206
|
modelWatch.resume();
|
|
4052
|
-
|
|
4207
|
+
contextWatch.resume();
|
|
4053
4208
|
}
|
|
4054
|
-
|
|
4209
|
+
context.on?.("register:ticket", onRegister);
|
|
4055
4210
|
function stop() {
|
|
4056
|
-
|
|
4211
|
+
contextWatch();
|
|
4057
4212
|
modelWatch();
|
|
4058
|
-
|
|
4213
|
+
context.off?.("register:ticket", onRegister);
|
|
4059
4214
|
}
|
|
4060
4215
|
onScopeDispose(stop, true);
|
|
4061
4216
|
return stop;
|
|
@@ -4064,7 +4219,7 @@ function useProxyModel(registry, model, options) {
|
|
|
4064
4219
|
//#endregion
|
|
4065
4220
|
//#region src/components/Checkbox/CheckboxGroup.vue
|
|
4066
4221
|
const [useCheckboxGroup, provideCheckboxGroup] = createContext();
|
|
4067
|
-
const _sfc_main$
|
|
4222
|
+
const _sfc_main$57 = /* @__PURE__ */ defineComponent({
|
|
4068
4223
|
name: "CheckboxGroup",
|
|
4069
4224
|
__name: "CheckboxGroup",
|
|
4070
4225
|
props: /* @__PURE__ */ mergeModels({
|
|
@@ -4130,12 +4285,12 @@ const _sfc_main$49 = /* @__PURE__ */ defineComponent({
|
|
|
4130
4285
|
};
|
|
4131
4286
|
}
|
|
4132
4287
|
});
|
|
4133
|
-
var CheckboxGroup_default = _sfc_main$
|
|
4288
|
+
var CheckboxGroup_default = _sfc_main$57;
|
|
4134
4289
|
|
|
4135
4290
|
//#endregion
|
|
4136
4291
|
//#region src/components/Checkbox/CheckboxRoot.vue
|
|
4137
4292
|
const [useCheckboxRoot, provideCheckboxRoot] = createContext();
|
|
4138
|
-
const _sfc_main$
|
|
4293
|
+
const _sfc_main$56 = /* @__PURE__ */ defineComponent({
|
|
4139
4294
|
name: "CheckboxRoot",
|
|
4140
4295
|
inheritAttrs: false,
|
|
4141
4296
|
__name: "CheckboxRoot",
|
|
@@ -4269,11 +4424,11 @@ const _sfc_main$48 = /* @__PURE__ */ defineComponent({
|
|
|
4269
4424
|
};
|
|
4270
4425
|
}
|
|
4271
4426
|
});
|
|
4272
|
-
var CheckboxRoot_default = _sfc_main$
|
|
4427
|
+
var CheckboxRoot_default = _sfc_main$56;
|
|
4273
4428
|
|
|
4274
4429
|
//#endregion
|
|
4275
4430
|
//#region src/components/Checkbox/CheckboxHiddenInput.vue
|
|
4276
|
-
const _hoisted_1$
|
|
4431
|
+
const _hoisted_1$3 = [
|
|
4277
4432
|
"checked",
|
|
4278
4433
|
"disabled",
|
|
4279
4434
|
"form",
|
|
@@ -4291,7 +4446,7 @@ const visuallyHiddenStyle$2 = {
|
|
|
4291
4446
|
whiteSpace: "nowrap",
|
|
4292
4447
|
border: "0"
|
|
4293
4448
|
};
|
|
4294
|
-
const _sfc_main$
|
|
4449
|
+
const _sfc_main$55 = /* @__PURE__ */ defineComponent({
|
|
4295
4450
|
name: "CheckboxHiddenInput",
|
|
4296
4451
|
__name: "CheckboxHiddenInput",
|
|
4297
4452
|
props: {
|
|
@@ -4323,15 +4478,15 @@ const _sfc_main$47 = /* @__PURE__ */ defineComponent({
|
|
|
4323
4478
|
tabindex: "-1",
|
|
4324
4479
|
type: "checkbox",
|
|
4325
4480
|
value: value.value
|
|
4326
|
-
}, null, 8, _hoisted_1$
|
|
4481
|
+
}, null, 8, _hoisted_1$3);
|
|
4327
4482
|
};
|
|
4328
4483
|
}
|
|
4329
4484
|
});
|
|
4330
|
-
var CheckboxHiddenInput_default = _sfc_main$
|
|
4485
|
+
var CheckboxHiddenInput_default = _sfc_main$55;
|
|
4331
4486
|
|
|
4332
4487
|
//#endregion
|
|
4333
4488
|
//#region src/components/Checkbox/CheckboxIndicator.vue
|
|
4334
|
-
const _sfc_main$
|
|
4489
|
+
const _sfc_main$54 = /* @__PURE__ */ defineComponent({
|
|
4335
4490
|
name: "CheckboxIndicator",
|
|
4336
4491
|
__name: "CheckboxIndicator",
|
|
4337
4492
|
props: {
|
|
@@ -4364,11 +4519,11 @@ const _sfc_main$46 = /* @__PURE__ */ defineComponent({
|
|
|
4364
4519
|
};
|
|
4365
4520
|
}
|
|
4366
4521
|
});
|
|
4367
|
-
var CheckboxIndicator_default = _sfc_main$
|
|
4522
|
+
var CheckboxIndicator_default = _sfc_main$54;
|
|
4368
4523
|
|
|
4369
4524
|
//#endregion
|
|
4370
4525
|
//#region src/components/Checkbox/CheckboxSelectAll.vue
|
|
4371
|
-
const _sfc_main$
|
|
4526
|
+
const _sfc_main$53 = /* @__PURE__ */ defineComponent({
|
|
4372
4527
|
name: "CheckboxSelectAll",
|
|
4373
4528
|
inheritAttrs: false,
|
|
4374
4529
|
__name: "CheckboxSelectAll",
|
|
@@ -4454,7 +4609,7 @@ const _sfc_main$45 = /* @__PURE__ */ defineComponent({
|
|
|
4454
4609
|
};
|
|
4455
4610
|
}
|
|
4456
4611
|
});
|
|
4457
|
-
var CheckboxSelectAll_default = _sfc_main$
|
|
4612
|
+
var CheckboxSelectAll_default = _sfc_main$53;
|
|
4458
4613
|
|
|
4459
4614
|
//#endregion
|
|
4460
4615
|
//#region src/components/Checkbox/index.ts
|
|
@@ -4490,7 +4645,7 @@ const Checkbox = {
|
|
|
4490
4645
|
//#endregion
|
|
4491
4646
|
//#region src/components/Dialog/DialogRoot.vue
|
|
4492
4647
|
const [useDialogContext, provideDialogContext] = createContext();
|
|
4493
|
-
const _sfc_main$
|
|
4648
|
+
const _sfc_main$52 = /* @__PURE__ */ defineComponent({
|
|
4494
4649
|
name: "DialogRoot",
|
|
4495
4650
|
__name: "DialogRoot",
|
|
4496
4651
|
props: /* @__PURE__ */ mergeModels({
|
|
@@ -4542,11 +4697,11 @@ const _sfc_main$44 = /* @__PURE__ */ defineComponent({
|
|
|
4542
4697
|
};
|
|
4543
4698
|
}
|
|
4544
4699
|
});
|
|
4545
|
-
var DialogRoot_default = _sfc_main$
|
|
4700
|
+
var DialogRoot_default = _sfc_main$52;
|
|
4546
4701
|
|
|
4547
4702
|
//#endregion
|
|
4548
4703
|
//#region src/components/Dialog/DialogClose.vue
|
|
4549
|
-
const _sfc_main$
|
|
4704
|
+
const _sfc_main$51 = /* @__PURE__ */ defineComponent({
|
|
4550
4705
|
name: "DialogClose",
|
|
4551
4706
|
__name: "DialogClose",
|
|
4552
4707
|
props: {
|
|
@@ -4574,7 +4729,7 @@ const _sfc_main$43 = /* @__PURE__ */ defineComponent({
|
|
|
4574
4729
|
};
|
|
4575
4730
|
}
|
|
4576
4731
|
});
|
|
4577
|
-
var DialogClose_default = _sfc_main$
|
|
4732
|
+
var DialogClose_default = _sfc_main$51;
|
|
4578
4733
|
|
|
4579
4734
|
//#endregion
|
|
4580
4735
|
//#region src/composables/createPagination/index.ts
|
|
@@ -4858,17 +5013,15 @@ function defaultFilter(query, item, keys, mode = "some") {
|
|
|
4858
5013
|
function createFilter(options = {}) {
|
|
4859
5014
|
const { customFilter, keys, mode = "some" } = options;
|
|
4860
5015
|
const filterFunction = customFilter ?? ((q, i) => defaultFilter(q, i, keys, mode));
|
|
4861
|
-
const query =
|
|
5016
|
+
const query = shallowRef("");
|
|
4862
5017
|
function apply(_query, items) {
|
|
4863
|
-
const itemsRef = isRef(items) ? items : toRef(() => items);
|
|
4864
|
-
const queryRef = toRef(_query);
|
|
4865
5018
|
return { items: computed(() => {
|
|
4866
|
-
const q = toValue(
|
|
5019
|
+
const q = toValue(_query);
|
|
4867
5020
|
query.value = q;
|
|
4868
5021
|
const queries = toArray(q).filter((q$1) => String(q$1).trim());
|
|
4869
|
-
if (queries.length === 0) return
|
|
5022
|
+
if (queries.length === 0) return toValue(items);
|
|
4870
5023
|
const queryParam = queries.length === 1 ? queries[0] : queries;
|
|
4871
|
-
return
|
|
5024
|
+
return toValue(items).filter((item) => filterFunction(queryParam, item));
|
|
4872
5025
|
}) };
|
|
4873
5026
|
}
|
|
4874
5027
|
return {
|
|
@@ -5724,30 +5877,42 @@ function createDefaultBreakpoints() {
|
|
|
5724
5877
|
* ```
|
|
5725
5878
|
*/
|
|
5726
5879
|
function createBreakpoints(_options = {}) {
|
|
5727
|
-
const {
|
|
5880
|
+
const { ssr, ...options } = _options;
|
|
5881
|
+
const { mobileBreakpoint, breakpoints } = /* @__PURE__ */ mergeDeep(createDefaultBreakpoints(), options);
|
|
5728
5882
|
const sorted = Object.entries(breakpoints).toSorted((a, b) => a[1] - b[1]);
|
|
5729
5883
|
const names = sorted.map(([n]) => n);
|
|
5730
5884
|
const mb = /* @__PURE__ */ isNumber(mobileBreakpoint) ? mobileBreakpoint : breakpoints[mobileBreakpoint] ?? breakpoints.md;
|
|
5731
|
-
const
|
|
5732
|
-
const
|
|
5733
|
-
const
|
|
5734
|
-
|
|
5735
|
-
|
|
5736
|
-
|
|
5737
|
-
|
|
5738
|
-
|
|
5739
|
-
|
|
5740
|
-
|
|
5741
|
-
const
|
|
5742
|
-
const
|
|
5743
|
-
const
|
|
5744
|
-
const
|
|
5745
|
-
const
|
|
5746
|
-
const
|
|
5747
|
-
const
|
|
5748
|
-
const
|
|
5749
|
-
const
|
|
5750
|
-
const
|
|
5885
|
+
const isSSR = !IN_BROWSER && !!ssr;
|
|
5886
|
+
const initialWidth = isSSR ? ssr.clientWidth : 0;
|
|
5887
|
+
const initialHeight = isSSR ? ssr.clientHeight ?? 0 : 0;
|
|
5888
|
+
let initialName = "xs";
|
|
5889
|
+
if (isSSR) {
|
|
5890
|
+
for (let i = sorted.length - 1; i >= 0; i--) if (initialWidth >= sorted[i][1]) {
|
|
5891
|
+
initialName = sorted[i][0];
|
|
5892
|
+
break;
|
|
5893
|
+
}
|
|
5894
|
+
}
|
|
5895
|
+
const initialIndex = names.indexOf(initialName);
|
|
5896
|
+
const name = shallowRef(initialName);
|
|
5897
|
+
const width = shallowRef(initialWidth);
|
|
5898
|
+
const height = shallowRef(initialHeight);
|
|
5899
|
+
const isMobile = shallowRef(isSSR ? initialWidth < mb : true);
|
|
5900
|
+
const xs = shallowRef(initialIndex === 0);
|
|
5901
|
+
const sm = shallowRef(initialIndex === 1);
|
|
5902
|
+
const md = shallowRef(initialIndex === 2);
|
|
5903
|
+
const lg = shallowRef(initialIndex === 3);
|
|
5904
|
+
const xl = shallowRef(initialIndex === 4);
|
|
5905
|
+
const xxl = shallowRef(initialIndex === 5);
|
|
5906
|
+
const smAndUp = shallowRef(initialIndex >= 1);
|
|
5907
|
+
const mdAndUp = shallowRef(initialIndex >= 2);
|
|
5908
|
+
const lgAndUp = shallowRef(initialIndex >= 3);
|
|
5909
|
+
const xlAndUp = shallowRef(initialIndex >= 4);
|
|
5910
|
+
const xxlAndUp = shallowRef(initialIndex >= 5);
|
|
5911
|
+
const smAndDown = shallowRef(initialIndex <= 1);
|
|
5912
|
+
const mdAndDown = shallowRef(initialIndex <= 2);
|
|
5913
|
+
const lgAndDown = shallowRef(initialIndex <= 3);
|
|
5914
|
+
const xlAndDown = shallowRef(initialIndex <= 4);
|
|
5915
|
+
const xxlAndDown = shallowRef(initialIndex <= 5);
|
|
5751
5916
|
function update() {
|
|
5752
5917
|
if (!IN_BROWSER) return;
|
|
5753
5918
|
width.value = window.innerWidth;
|
|
@@ -5799,10 +5964,12 @@ function createBreakpoints(_options = {}) {
|
|
|
5799
5964
|
lgAndDown: readonly(lgAndDown),
|
|
5800
5965
|
xlAndDown: readonly(xlAndDown),
|
|
5801
5966
|
xxlAndDown: readonly(xxlAndDown),
|
|
5967
|
+
ssr: isSSR,
|
|
5802
5968
|
update
|
|
5803
5969
|
};
|
|
5804
5970
|
}
|
|
5805
|
-
function createBreakpointsFallback() {
|
|
5971
|
+
function createBreakpointsFallback(options = {}) {
|
|
5972
|
+
if (options.ssr) return createBreakpoints(options);
|
|
5806
5973
|
return {
|
|
5807
5974
|
breakpoints: createDefaultBreakpoints().breakpoints,
|
|
5808
5975
|
name: readonly(shallowRef("xs")),
|
|
@@ -5825,12 +5992,14 @@ function createBreakpointsFallback() {
|
|
|
5825
5992
|
lgAndDown: readonly(shallowRef(false)),
|
|
5826
5993
|
xlAndDown: readonly(shallowRef(false)),
|
|
5827
5994
|
xxlAndDown: readonly(shallowRef(false)),
|
|
5995
|
+
ssr: false,
|
|
5828
5996
|
update: () => {}
|
|
5829
5997
|
};
|
|
5830
5998
|
}
|
|
5831
5999
|
const [createBreakpointsContext, createBreakpointsPlugin, useBreakpoints] = createPluginContext("v0:breakpoints", (options) => createBreakpoints(options), {
|
|
5832
6000
|
fallback: () => createBreakpointsFallback(),
|
|
5833
6001
|
setup: (context, app, _options) => {
|
|
6002
|
+
if (IN_BROWSER) context.update();
|
|
5834
6003
|
app.mixin({ mounted() {
|
|
5835
6004
|
if (!/* @__PURE__ */ isNull(this.$parent)) return;
|
|
5836
6005
|
const hydration = useHydration();
|
|
@@ -6423,6 +6592,9 @@ const keyAliasMap = {
|
|
|
6423
6592
|
space: " ",
|
|
6424
6593
|
return: "enter",
|
|
6425
6594
|
del: "delete",
|
|
6595
|
+
plus: "+",
|
|
6596
|
+
slash: "/",
|
|
6597
|
+
underscore: "_",
|
|
6426
6598
|
minus: "-",
|
|
6427
6599
|
hyphen: "-"
|
|
6428
6600
|
};
|
|
@@ -6468,7 +6640,7 @@ function splitKeyCombination(combination, isInternal = false) {
|
|
|
6468
6640
|
"++",
|
|
6469
6641
|
"//",
|
|
6470
6642
|
"__"
|
|
6471
|
-
].some((v) => combination.startsWith(v)) || combination.includes("++") || combination.includes("__") || combination === "+" || combination === "_" || combination.length > 1 && (combination.endsWith("+") || combination.endsWith("_")) && combination.at(-2) !== combination.at(-1) || combination === "++" || combination === "--" || combination === "__") {
|
|
6643
|
+
].some((v) => combination.startsWith(v)) || combination.includes("++") || combination.includes("//") || combination.includes("__") || combination === "+" || combination === "/" || combination === "_" || combination.length > 1 && (combination.endsWith("+") || combination.endsWith("/") || combination.endsWith("_")) && combination.at(-2) !== combination.at(-1) || combination === "++" || combination === "--" || combination === "__") {
|
|
6472
6644
|
if (!isInternal) logger.warn(`Invalid hotkey combination: "${combination}" has invalid structure`);
|
|
6473
6645
|
return emptyResult;
|
|
6474
6646
|
}
|
|
@@ -6534,7 +6706,11 @@ function splitKeySequence(str) {
|
|
|
6534
6706
|
logger.warn("Invalid hotkey sequence: empty string provided");
|
|
6535
6707
|
return [];
|
|
6536
6708
|
}
|
|
6537
|
-
const hasInvalidStart = str.startsWith("-") && ![
|
|
6709
|
+
const hasInvalidStart = str.startsWith("-") && ![
|
|
6710
|
+
"-",
|
|
6711
|
+
"---",
|
|
6712
|
+
"--+"
|
|
6713
|
+
].includes(str);
|
|
6538
6714
|
const hasInvalidEnd = str.endsWith("-") && !str.endsWith("+-") && !str.endsWith("_-") && str !== "-" && str !== "---";
|
|
6539
6715
|
if (hasInvalidStart || hasInvalidEnd) {
|
|
6540
6716
|
logger.warn(`Invalid hotkey sequence: "${str}" contains invalid combinations`);
|
|
@@ -7760,10 +7936,15 @@ function createNested(_options = {}) {
|
|
|
7760
7936
|
openedIds.clear();
|
|
7761
7937
|
activeIds.clear();
|
|
7762
7938
|
rootIds.clear();
|
|
7763
|
-
group.
|
|
7939
|
+
group.clear();
|
|
7764
7940
|
}
|
|
7765
7941
|
function reset() {
|
|
7766
|
-
clear();
|
|
7942
|
+
children.clear();
|
|
7943
|
+
parents.clear();
|
|
7944
|
+
openedIds.clear();
|
|
7945
|
+
activeIds.clear();
|
|
7946
|
+
rootIds.clear();
|
|
7947
|
+
group.reset();
|
|
7767
7948
|
}
|
|
7768
7949
|
const context = {
|
|
7769
7950
|
...group,
|
|
@@ -8189,45 +8370,230 @@ function useQueue(namespace = "v0:queue") {
|
|
|
8189
8370
|
}
|
|
8190
8371
|
|
|
8191
8372
|
//#endregion
|
|
8192
|
-
//#region src/composables/
|
|
8373
|
+
//#region src/composables/createSlider/index.ts
|
|
8193
8374
|
/**
|
|
8194
|
-
* @module
|
|
8375
|
+
* @module createSlider
|
|
8195
8376
|
*
|
|
8196
|
-
* @see https://0.vuetifyjs.com/composables/
|
|
8377
|
+
* @see https://0.vuetifyjs.com/composables/forms/create-slider
|
|
8197
8378
|
*
|
|
8198
8379
|
* @remarks
|
|
8199
|
-
*
|
|
8200
|
-
*
|
|
8201
|
-
* - Automatic z-index calculation based on selection order
|
|
8202
|
-
* - `globalTop` tracking - is this ticket topmost globally?
|
|
8203
|
-
* - Manual select/unselect for explicit control
|
|
8204
|
-
* - Auto-cleanup when registered within component setup
|
|
8380
|
+
* Composable for managing slider state: value math, step snapping,
|
|
8381
|
+
* percentage conversion, and multi-thumb value operations.
|
|
8205
8382
|
*
|
|
8206
|
-
*
|
|
8383
|
+
* Extends createModel for useProxyModel compatibility:
|
|
8384
|
+
* - createRegistry → createModel → createSlider (ticket-per-thumb)
|
|
8385
|
+
*
|
|
8386
|
+
* Each thumb is a model ticket with a `shallowRef<number>` value.
|
|
8387
|
+
* Values are derived from ordered tickets, not a standalone ref.
|
|
8388
|
+
*
|
|
8389
|
+
* Designed for single-thumb, range, and multi-thumb sliders.
|
|
8390
|
+
* Also reusable for color picker tracks, media scrubbers,
|
|
8391
|
+
* gradient editors, and other 1D value-on-track controls.
|
|
8207
8392
|
*/
|
|
8208
8393
|
/**
|
|
8209
|
-
* Creates
|
|
8394
|
+
* Creates slider state with value math, step snapping, and multi-thumb support.
|
|
8210
8395
|
*
|
|
8211
|
-
*
|
|
8212
|
-
*
|
|
8396
|
+
* Extends createModel for useProxyModel compatibility. Each thumb is a model
|
|
8397
|
+
* ticket with a shallowRef<number> value. Values are derived from the ordered
|
|
8398
|
+
* tickets, enabling proper registration/unregistration lifecycle.
|
|
8213
8399
|
*
|
|
8214
|
-
* @
|
|
8400
|
+
* @param options Slider configuration.
|
|
8401
|
+
* @returns Slider context with values, math functions, and thumb operations.
|
|
8215
8402
|
*
|
|
8216
|
-
* @
|
|
8403
|
+
* @see https://0.vuetifyjs.com/composables/forms/create-slider
|
|
8404
|
+
* @see {@link createModel} for the base model composable.
|
|
8405
|
+
*
|
|
8406
|
+
* @example Single thumb
|
|
8217
8407
|
* ```ts
|
|
8218
|
-
* import {
|
|
8408
|
+
* import { createSlider } from '@vuetify/v0'
|
|
8219
8409
|
*
|
|
8220
|
-
* const
|
|
8410
|
+
* const slider = createSlider({ min: 0, max: 100, step: 5 })
|
|
8411
|
+
* const ticket = slider.register({ value: 50 })
|
|
8412
|
+
* slider.up(0) // values: [55]
|
|
8413
|
+
* slider.fromValue(50) // 50
|
|
8414
|
+
* ```
|
|
8221
8415
|
*
|
|
8222
|
-
*
|
|
8223
|
-
*
|
|
8224
|
-
*
|
|
8225
|
-
* })
|
|
8416
|
+
* @example Range slider
|
|
8417
|
+
* ```ts
|
|
8418
|
+
* import { createSlider } from '@vuetify/v0'
|
|
8226
8419
|
*
|
|
8227
|
-
*
|
|
8228
|
-
*
|
|
8420
|
+
* const slider = createSlider({ min: 0, max: 100, step: 1, range: true })
|
|
8421
|
+
* slider.register({ value: 25 })
|
|
8422
|
+
* slider.register({ value: 75 })
|
|
8423
|
+
* slider.set(0, 30) // values: [30, 75]
|
|
8424
|
+
* slider.set(1, 60) // values: [30, 60]
|
|
8425
|
+
* ```
|
|
8229
8426
|
*
|
|
8230
|
-
*
|
|
8427
|
+
* @example Custom pointer interaction (media scrubber)
|
|
8428
|
+
* ```ts
|
|
8429
|
+
* import { createSlider } from '@vuetify/v0'
|
|
8430
|
+
*
|
|
8431
|
+
* const slider = createSlider({ min: 0, max: 217, step: 0.1 })
|
|
8432
|
+
* slider.register({ value: 0 })
|
|
8433
|
+
*
|
|
8434
|
+
* // pointer → fromPercent → set → fromValue → UI
|
|
8435
|
+
* const percent = (clientX - rect.left) / rect.width * 100
|
|
8436
|
+
* slider.set(0, slider.fromPercent(percent))
|
|
8437
|
+
* const position = slider.fromValue(slider.values.value[0])
|
|
8438
|
+
* ```
|
|
8439
|
+
*/
|
|
8440
|
+
function createSlider(options = {}) {
|
|
8441
|
+
const { min = 0, max = 100, step = 1, disabled: disabledProp = false, readonly: readonlyProp = false, orientation: orientationProp = "horizontal", inverted: invertedProp = false, minStepsBetweenThumbs = 0, crossover = false, range: range$1 = false } = options;
|
|
8442
|
+
const model = createModel({
|
|
8443
|
+
disabled: disabledProp,
|
|
8444
|
+
multiple: true,
|
|
8445
|
+
events: true
|
|
8446
|
+
});
|
|
8447
|
+
const disabled = toRef(() => toValue(disabledProp));
|
|
8448
|
+
const readonly$1 = toRef(() => toValue(readonlyProp));
|
|
8449
|
+
const orientation = toRef(() => toValue(orientationProp));
|
|
8450
|
+
const inverted = toRef(() => toValue(invertedProp));
|
|
8451
|
+
const extent = max - min;
|
|
8452
|
+
let pending = null;
|
|
8453
|
+
const thumbs = computed(() => Array.from(model.selectedItems.value).toSorted((a, b) => a.index - b.index));
|
|
8454
|
+
const values = computed(() => thumbs.value.map((t) => toValue(t.value)));
|
|
8455
|
+
const selectedValues = computed(() => values.value);
|
|
8456
|
+
function snap(value) {
|
|
8457
|
+
if (step <= 0) return /* @__PURE__ */ clamp(value, min, max);
|
|
8458
|
+
const clamped = /* @__PURE__ */ clamp(value, min, max);
|
|
8459
|
+
return /* @__PURE__ */ clamp(min + Math.round((clamped - min) / step) * step, min, max);
|
|
8460
|
+
}
|
|
8461
|
+
function fromValue(value) {
|
|
8462
|
+
if (extent === 0) return 0;
|
|
8463
|
+
const p = (value - min) / extent * 100;
|
|
8464
|
+
return inverted.value ? 100 - p : p;
|
|
8465
|
+
}
|
|
8466
|
+
function fromPercent(p) {
|
|
8467
|
+
return snap(min + (inverted.value ? 100 - p : p) / 100 * extent);
|
|
8468
|
+
}
|
|
8469
|
+
function register(input) {
|
|
8470
|
+
const initialValue = /* @__PURE__ */ isObject(input) ? input.value : input;
|
|
8471
|
+
const thumbIndex = thumbs.value.length;
|
|
8472
|
+
const pendingValue = pending?.[thumbIndex];
|
|
8473
|
+
const val = /* @__PURE__ */ isUndefined(pendingValue) ? snap(initialValue ?? min) : snap(pendingValue);
|
|
8474
|
+
const ticket = model.register({ value: shallowRef(val) });
|
|
8475
|
+
if (!model.selectedIds.has(ticket.id)) model.selectedIds.add(ticket.id);
|
|
8476
|
+
if (pending && thumbs.value.length >= pending.length) pending = null;
|
|
8477
|
+
return ticket;
|
|
8478
|
+
}
|
|
8479
|
+
function apply(incoming, _options) {
|
|
8480
|
+
const snapped = incoming.map((v) => snap(Number(v)));
|
|
8481
|
+
if (thumbs.value.length === 0) {
|
|
8482
|
+
pending = snapped;
|
|
8483
|
+
return;
|
|
8484
|
+
}
|
|
8485
|
+
for (let index = 0; index < snapped.length; index++) {
|
|
8486
|
+
const ticket = thumbs.value[index];
|
|
8487
|
+
if (!ticket || !isRef(ticket.value)) continue;
|
|
8488
|
+
let constrained = snapped[index];
|
|
8489
|
+
if (!crossover) {
|
|
8490
|
+
const gap = minStepsBetweenThumbs * step;
|
|
8491
|
+
const prev = index > 0 ? snapped[index - 1] : void 0;
|
|
8492
|
+
const following = index < snapped.length - 1 ? snapped[index + 1] : void 0;
|
|
8493
|
+
if (!/* @__PURE__ */ isUndefined(prev)) constrained = Math.max(constrained, prev + gap);
|
|
8494
|
+
if (!/* @__PURE__ */ isUndefined(following)) constrained = Math.min(constrained, following - gap);
|
|
8495
|
+
}
|
|
8496
|
+
ticket.value.value = /* @__PURE__ */ clamp(constrained, min, max);
|
|
8497
|
+
}
|
|
8498
|
+
}
|
|
8499
|
+
function set(index, value) {
|
|
8500
|
+
if (readonly$1.value) return;
|
|
8501
|
+
const snapped = snap(value);
|
|
8502
|
+
const current = values.value;
|
|
8503
|
+
let constrained = snapped;
|
|
8504
|
+
if (!crossover) {
|
|
8505
|
+
const gap = minStepsBetweenThumbs * step;
|
|
8506
|
+
const prev = current[index - 1];
|
|
8507
|
+
const following = current[index + 1];
|
|
8508
|
+
if (index > 0 && !/* @__PURE__ */ isUndefined(prev)) constrained = Math.max(constrained, prev + gap);
|
|
8509
|
+
if (index < current.length - 1 && !/* @__PURE__ */ isUndefined(following)) constrained = Math.min(constrained, following - gap);
|
|
8510
|
+
}
|
|
8511
|
+
constrained = /* @__PURE__ */ clamp(constrained, min, max);
|
|
8512
|
+
const ticket = thumbs.value[index];
|
|
8513
|
+
if (ticket && isRef(ticket.value)) ticket.value.value = constrained;
|
|
8514
|
+
}
|
|
8515
|
+
function up(index, multiplier = 1) {
|
|
8516
|
+
set(index, (values.value[index] ?? min) + step * multiplier);
|
|
8517
|
+
}
|
|
8518
|
+
function down(index, multiplier = 1) {
|
|
8519
|
+
set(index, (values.value[index] ?? min) - step * multiplier);
|
|
8520
|
+
}
|
|
8521
|
+
function floor(index) {
|
|
8522
|
+
set(index, min);
|
|
8523
|
+
}
|
|
8524
|
+
function ceil(index) {
|
|
8525
|
+
set(index, max);
|
|
8526
|
+
}
|
|
8527
|
+
return {
|
|
8528
|
+
...model,
|
|
8529
|
+
values,
|
|
8530
|
+
selectedValues,
|
|
8531
|
+
apply,
|
|
8532
|
+
range: range$1,
|
|
8533
|
+
min,
|
|
8534
|
+
max,
|
|
8535
|
+
step,
|
|
8536
|
+
minStepsBetweenThumbs,
|
|
8537
|
+
crossover,
|
|
8538
|
+
disabled,
|
|
8539
|
+
readonly: readonly$1,
|
|
8540
|
+
orientation,
|
|
8541
|
+
inverted,
|
|
8542
|
+
register,
|
|
8543
|
+
snap,
|
|
8544
|
+
fromValue,
|
|
8545
|
+
fromPercent,
|
|
8546
|
+
set,
|
|
8547
|
+
up,
|
|
8548
|
+
down,
|
|
8549
|
+
floor,
|
|
8550
|
+
ceil,
|
|
8551
|
+
get size() {
|
|
8552
|
+
return model.size;
|
|
8553
|
+
}
|
|
8554
|
+
};
|
|
8555
|
+
}
|
|
8556
|
+
|
|
8557
|
+
//#endregion
|
|
8558
|
+
//#region src/composables/useStack/index.ts
|
|
8559
|
+
/**
|
|
8560
|
+
* @module useStack
|
|
8561
|
+
*
|
|
8562
|
+
* @see https://0.vuetifyjs.com/composables/plugins/use-stack
|
|
8563
|
+
*
|
|
8564
|
+
* @remarks
|
|
8565
|
+
* Overlay z-index stacking composable with:
|
|
8566
|
+
* - Global reactive registry of active overlays
|
|
8567
|
+
* - Automatic z-index calculation based on selection order
|
|
8568
|
+
* - `globalTop` tracking - is this ticket topmost globally?
|
|
8569
|
+
* - Manual select/unselect for explicit control
|
|
8570
|
+
* - Auto-cleanup when registered within component setup
|
|
8571
|
+
*
|
|
8572
|
+
* Built on createSelection for consistent ticket-based management.
|
|
8573
|
+
*/
|
|
8574
|
+
/**
|
|
8575
|
+
* Creates a new stack instance for managing overlay z-indexes.
|
|
8576
|
+
*
|
|
8577
|
+
* @param options Configuration options
|
|
8578
|
+
* @returns Stack context with registry methods and scrim helpers
|
|
8579
|
+
*
|
|
8580
|
+
* @see https://0.vuetifyjs.com/composables/plugins/use-stack
|
|
8581
|
+
*
|
|
8582
|
+
* @example
|
|
8583
|
+
* ```ts
|
|
8584
|
+
* import { createStack } from '@vuetify/v0'
|
|
8585
|
+
*
|
|
8586
|
+
* const stack = createStack({ baseZIndex: 1000 })
|
|
8587
|
+
*
|
|
8588
|
+
* const ticket = stack.register({
|
|
8589
|
+
* onDismiss: () => console.log('dismissed'),
|
|
8590
|
+
* blocking: false,
|
|
8591
|
+
* })
|
|
8592
|
+
*
|
|
8593
|
+
* ticket.select() // Activate overlay
|
|
8594
|
+
* console.log(ticket.zIndex.value) // 1000
|
|
8595
|
+
*
|
|
8596
|
+
* ticket.unselect() // Deactivate overlay
|
|
8231
8597
|
* ```
|
|
8232
8598
|
*/
|
|
8233
8599
|
function createStack(_options = {}) {
|
|
@@ -8687,31 +9053,50 @@ function createStorage(options = {}) {
|
|
|
8687
9053
|
const { adapter = IN_BROWSER ? window.localStorage : new MemoryAdapter(), prefix = "v0:", serializer = {
|
|
8688
9054
|
read: JSON.parse,
|
|
8689
9055
|
write: JSON.stringify
|
|
8690
|
-
} } = options;
|
|
9056
|
+
}, ttl } = options;
|
|
8691
9057
|
const cache = /* @__PURE__ */ new Map();
|
|
8692
9058
|
const watchers = /* @__PURE__ */ new Map();
|
|
8693
9059
|
function has(key) {
|
|
8694
9060
|
const prefixedKey = `${prefix}${key}`;
|
|
8695
9061
|
return cache.has(prefixedKey);
|
|
8696
9062
|
}
|
|
8697
|
-
function
|
|
8698
|
-
const
|
|
8699
|
-
if (
|
|
8700
|
-
|
|
8701
|
-
|
|
8702
|
-
|
|
8703
|
-
|
|
9063
|
+
function readStored(prefixedKey) {
|
|
9064
|
+
const raw = adapter?.getItem(prefixedKey);
|
|
9065
|
+
if (!raw) return void 0;
|
|
9066
|
+
try {
|
|
9067
|
+
const parsed = serializer.read(raw);
|
|
9068
|
+
if (ttl && parsed && typeof parsed === "object" && "__ttl" in parsed && "__v" in parsed) {
|
|
9069
|
+
if (Date.now() - parsed.__t > ttl) {
|
|
9070
|
+
adapter?.removeItem(prefixedKey);
|
|
9071
|
+
return;
|
|
9072
|
+
}
|
|
9073
|
+
return parsed.__v;
|
|
9074
|
+
}
|
|
9075
|
+
return parsed;
|
|
8704
9076
|
} catch (error) {
|
|
8705
9077
|
console.error(`[v0:storage] Failed to parse stored value for key "${prefixedKey}":`, error);
|
|
9078
|
+
return;
|
|
9079
|
+
}
|
|
9080
|
+
}
|
|
9081
|
+
function writeStored(prefixedKey, value) {
|
|
9082
|
+
const wrapped = ttl ? {
|
|
9083
|
+
__ttl: 1,
|
|
9084
|
+
__v: value,
|
|
9085
|
+
__t: Date.now()
|
|
9086
|
+
} : value;
|
|
9087
|
+
try {
|
|
9088
|
+
adapter?.setItem(prefixedKey, serializer.write(wrapped));
|
|
9089
|
+
} catch (error) {
|
|
9090
|
+
console.error(`[v0:storage] Failed to write key "${prefixedKey}":`, error);
|
|
8706
9091
|
}
|
|
8707
|
-
|
|
9092
|
+
}
|
|
9093
|
+
function get(key, defaultValue) {
|
|
9094
|
+
const prefixedKey = `${prefix}${key}`;
|
|
9095
|
+
if (cache.has(prefixedKey)) return cache.get(prefixedKey);
|
|
9096
|
+
const valueRef = ref(readStored(prefixedKey) ?? defaultValue);
|
|
8708
9097
|
const stop = watch(valueRef, (newValue) => {
|
|
8709
9098
|
if (/* @__PURE__ */ isNullOrUndefined(newValue)) adapter?.removeItem(prefixedKey);
|
|
8710
|
-
else
|
|
8711
|
-
adapter?.setItem(prefixedKey, serializer.write(newValue));
|
|
8712
|
-
} catch (error) {
|
|
8713
|
-
console.error(`[v0:storage] Failed to write key "${prefixedKey}":`, error);
|
|
8714
|
-
}
|
|
9099
|
+
else writeStored(prefixedKey, newValue);
|
|
8715
9100
|
}, { deep: true });
|
|
8716
9101
|
watchers.set(prefixedKey, stop);
|
|
8717
9102
|
cache.set(prefixedKey, valueRef);
|
|
@@ -8745,14 +9130,10 @@ function createStorage(options = {}) {
|
|
|
8745
9130
|
const valueRef = cache.get(e.key);
|
|
8746
9131
|
if (!valueRef) return;
|
|
8747
9132
|
watchers.get(e.key)?.();
|
|
8748
|
-
valueRef.value = e.newValue == null ? void 0 :
|
|
9133
|
+
valueRef.value = e.newValue == null ? void 0 : readStored(e.key);
|
|
8749
9134
|
const stop = watch(valueRef, (newValue) => {
|
|
8750
9135
|
if (/* @__PURE__ */ isNullOrUndefined(newValue)) adapter?.removeItem(e.key);
|
|
8751
|
-
else
|
|
8752
|
-
adapter?.setItem(e.key, serializer.write(newValue));
|
|
8753
|
-
} catch (error) {
|
|
8754
|
-
console.error(`[v0:storage] Failed to write key "${e.key}":`, error);
|
|
8755
|
-
}
|
|
9136
|
+
else writeStored(e.key, newValue);
|
|
8756
9137
|
}, { deep: true });
|
|
8757
9138
|
watchers.set(e.key, stop);
|
|
8758
9139
|
});
|
|
@@ -9918,7 +10299,7 @@ function useClickOutside(target, handler, options = {}) {
|
|
|
9918
10299
|
|
|
9919
10300
|
//#endregion
|
|
9920
10301
|
//#region src/components/Dialog/DialogContent.vue
|
|
9921
|
-
const _sfc_main$
|
|
10302
|
+
const _sfc_main$50 = /* @__PURE__ */ defineComponent({
|
|
9922
10303
|
name: "DialogContent",
|
|
9923
10304
|
__name: "DialogContent",
|
|
9924
10305
|
props: {
|
|
@@ -10000,11 +10381,11 @@ const _sfc_main$42 = /* @__PURE__ */ defineComponent({
|
|
|
10000
10381
|
};
|
|
10001
10382
|
}
|
|
10002
10383
|
});
|
|
10003
|
-
var DialogContent_default = _sfc_main$
|
|
10384
|
+
var DialogContent_default = _sfc_main$50;
|
|
10004
10385
|
|
|
10005
10386
|
//#endregion
|
|
10006
10387
|
//#region src/components/Dialog/DialogDescription.vue
|
|
10007
|
-
const _sfc_main$
|
|
10388
|
+
const _sfc_main$49 = /* @__PURE__ */ defineComponent({
|
|
10008
10389
|
name: "DialogDescription",
|
|
10009
10390
|
__name: "DialogDescription",
|
|
10010
10391
|
props: {
|
|
@@ -10023,11 +10404,11 @@ const _sfc_main$41 = /* @__PURE__ */ defineComponent({
|
|
|
10023
10404
|
};
|
|
10024
10405
|
}
|
|
10025
10406
|
});
|
|
10026
|
-
var DialogDescription_default = _sfc_main$
|
|
10407
|
+
var DialogDescription_default = _sfc_main$49;
|
|
10027
10408
|
|
|
10028
10409
|
//#endregion
|
|
10029
10410
|
//#region src/components/Dialog/DialogTitle.vue
|
|
10030
|
-
const _sfc_main$
|
|
10411
|
+
const _sfc_main$48 = /* @__PURE__ */ defineComponent({
|
|
10031
10412
|
name: "DialogTitle",
|
|
10032
10413
|
__name: "DialogTitle",
|
|
10033
10414
|
props: {
|
|
@@ -10046,11 +10427,11 @@ const _sfc_main$40 = /* @__PURE__ */ defineComponent({
|
|
|
10046
10427
|
};
|
|
10047
10428
|
}
|
|
10048
10429
|
});
|
|
10049
|
-
var DialogTitle_default = _sfc_main$
|
|
10430
|
+
var DialogTitle_default = _sfc_main$48;
|
|
10050
10431
|
|
|
10051
10432
|
//#endregion
|
|
10052
10433
|
//#region src/components/Dialog/DialogActivator.vue
|
|
10053
|
-
const _sfc_main$
|
|
10434
|
+
const _sfc_main$47 = /* @__PURE__ */ defineComponent({
|
|
10054
10435
|
name: "DialogActivator",
|
|
10055
10436
|
__name: "DialogActivator",
|
|
10056
10437
|
props: {
|
|
@@ -10080,7 +10461,7 @@ const _sfc_main$39 = /* @__PURE__ */ defineComponent({
|
|
|
10080
10461
|
};
|
|
10081
10462
|
}
|
|
10082
10463
|
});
|
|
10083
|
-
var DialogActivator_default = _sfc_main$
|
|
10464
|
+
var DialogActivator_default = _sfc_main$47;
|
|
10084
10465
|
|
|
10085
10466
|
//#endregion
|
|
10086
10467
|
//#region src/components/Dialog/index.ts
|
|
@@ -10125,7 +10506,7 @@ const Dialog = {
|
|
|
10125
10506
|
//#endregion
|
|
10126
10507
|
//#region src/components/ExpansionPanel/ExpansionPanelRoot.vue
|
|
10127
10508
|
const [useExpansionPanelRoot, provideExpansionPanelRoot] = createContext();
|
|
10128
|
-
const _sfc_main$
|
|
10509
|
+
const _sfc_main$46 = /* @__PURE__ */ defineComponent({
|
|
10129
10510
|
name: "ExpansionPanelRoot",
|
|
10130
10511
|
__name: "ExpansionPanelRoot",
|
|
10131
10512
|
props: /* @__PURE__ */ mergeModels({
|
|
@@ -10182,12 +10563,12 @@ const _sfc_main$38 = /* @__PURE__ */ defineComponent({
|
|
|
10182
10563
|
};
|
|
10183
10564
|
}
|
|
10184
10565
|
});
|
|
10185
|
-
var ExpansionPanelRoot_default = _sfc_main$
|
|
10566
|
+
var ExpansionPanelRoot_default = _sfc_main$46;
|
|
10186
10567
|
|
|
10187
10568
|
//#endregion
|
|
10188
10569
|
//#region src/components/ExpansionPanel/ExpansionPanelItem.vue
|
|
10189
10570
|
const [useExpansionPanelItem, provideExpansionPanelItem] = createContext({ suffix: "item" });
|
|
10190
|
-
const _sfc_main$
|
|
10571
|
+
const _sfc_main$45 = /* @__PURE__ */ defineComponent({
|
|
10191
10572
|
name: "ExpansionPanelItem",
|
|
10192
10573
|
__name: "ExpansionPanelItem",
|
|
10193
10574
|
props: {
|
|
@@ -10231,11 +10612,11 @@ const _sfc_main$37 = /* @__PURE__ */ defineComponent({
|
|
|
10231
10612
|
};
|
|
10232
10613
|
}
|
|
10233
10614
|
});
|
|
10234
|
-
var ExpansionPanelItem_default = _sfc_main$
|
|
10615
|
+
var ExpansionPanelItem_default = _sfc_main$45;
|
|
10235
10616
|
|
|
10236
10617
|
//#endregion
|
|
10237
10618
|
//#region src/components/ExpansionPanel/ExpansionPanelActivator.vue
|
|
10238
|
-
const _sfc_main$
|
|
10619
|
+
const _sfc_main$44 = /* @__PURE__ */ defineComponent({
|
|
10239
10620
|
name: "ExpansionPanelActivator",
|
|
10240
10621
|
__name: "ExpansionPanelActivator",
|
|
10241
10622
|
props: {
|
|
@@ -10281,11 +10662,11 @@ const _sfc_main$36 = /* @__PURE__ */ defineComponent({
|
|
|
10281
10662
|
};
|
|
10282
10663
|
}
|
|
10283
10664
|
});
|
|
10284
|
-
var ExpansionPanelActivator_default = _sfc_main$
|
|
10665
|
+
var ExpansionPanelActivator_default = _sfc_main$44;
|
|
10285
10666
|
|
|
10286
10667
|
//#endregion
|
|
10287
10668
|
//#region src/components/ExpansionPanel/ExpansionPanelContent.vue
|
|
10288
|
-
const _sfc_main$
|
|
10669
|
+
const _sfc_main$43 = /* @__PURE__ */ defineComponent({
|
|
10289
10670
|
name: "ExpansionPanelContent",
|
|
10290
10671
|
__name: "ExpansionPanelContent",
|
|
10291
10672
|
props: {
|
|
@@ -10316,11 +10697,11 @@ const _sfc_main$35 = /* @__PURE__ */ defineComponent({
|
|
|
10316
10697
|
};
|
|
10317
10698
|
}
|
|
10318
10699
|
});
|
|
10319
|
-
var ExpansionPanelContent_default = _sfc_main$
|
|
10700
|
+
var ExpansionPanelContent_default = _sfc_main$43;
|
|
10320
10701
|
|
|
10321
10702
|
//#endregion
|
|
10322
10703
|
//#region src/components/ExpansionPanel/ExpansionPanelHeader.vue
|
|
10323
|
-
const _sfc_main$
|
|
10704
|
+
const _sfc_main$42 = /* @__PURE__ */ defineComponent({
|
|
10324
10705
|
name: "ExpansionPanelHeader",
|
|
10325
10706
|
__name: "ExpansionPanelHeader",
|
|
10326
10707
|
props: {
|
|
@@ -10345,7 +10726,7 @@ const _sfc_main$34 = /* @__PURE__ */ defineComponent({
|
|
|
10345
10726
|
};
|
|
10346
10727
|
}
|
|
10347
10728
|
});
|
|
10348
|
-
var ExpansionPanelHeader_default = _sfc_main$
|
|
10729
|
+
var ExpansionPanelHeader_default = _sfc_main$42;
|
|
10349
10730
|
|
|
10350
10731
|
//#endregion
|
|
10351
10732
|
//#region src/components/ExpansionPanel/index.ts
|
|
@@ -10365,7 +10746,7 @@ const ExpansionPanel = {
|
|
|
10365
10746
|
//#endregion
|
|
10366
10747
|
//#region src/components/Group/GroupRoot.vue
|
|
10367
10748
|
const [useGroupRoot, provideGroupRoot] = createContext();
|
|
10368
|
-
const _sfc_main$
|
|
10749
|
+
const _sfc_main$41 = /* @__PURE__ */ defineComponent({
|
|
10369
10750
|
name: "GroupRoot",
|
|
10370
10751
|
__name: "GroupRoot",
|
|
10371
10752
|
props: /* @__PURE__ */ mergeModels({
|
|
@@ -10415,11 +10796,11 @@ const _sfc_main$33 = /* @__PURE__ */ defineComponent({
|
|
|
10415
10796
|
};
|
|
10416
10797
|
}
|
|
10417
10798
|
});
|
|
10418
|
-
var GroupRoot_default = _sfc_main$
|
|
10799
|
+
var GroupRoot_default = _sfc_main$41;
|
|
10419
10800
|
|
|
10420
10801
|
//#endregion
|
|
10421
10802
|
//#region src/components/Group/GroupItem.vue
|
|
10422
|
-
const _sfc_main$
|
|
10803
|
+
const _sfc_main$40 = /* @__PURE__ */ defineComponent({
|
|
10423
10804
|
name: "GroupItem",
|
|
10424
10805
|
__name: "GroupItem",
|
|
10425
10806
|
props: {
|
|
@@ -10468,7 +10849,7 @@ const _sfc_main$32 = /* @__PURE__ */ defineComponent({
|
|
|
10468
10849
|
};
|
|
10469
10850
|
}
|
|
10470
10851
|
});
|
|
10471
|
-
var GroupItem_default = _sfc_main$
|
|
10852
|
+
var GroupItem_default = _sfc_main$40;
|
|
10472
10853
|
|
|
10473
10854
|
//#endregion
|
|
10474
10855
|
//#region src/components/Group/index.ts
|
|
@@ -10487,7 +10868,7 @@ const Group = {
|
|
|
10487
10868
|
const [usePaginationRoot, providePaginationRoot] = createContext();
|
|
10488
10869
|
const [usePaginationControls, providePaginationControls] = createContext({ suffix: "controls" });
|
|
10489
10870
|
const [usePaginationItems, providePaginationItems] = createContext({ suffix: "items" });
|
|
10490
|
-
const _sfc_main$
|
|
10871
|
+
const _sfc_main$39 = /* @__PURE__ */ defineComponent({
|
|
10491
10872
|
name: "PaginationRoot",
|
|
10492
10873
|
__name: "PaginationRoot",
|
|
10493
10874
|
props: /* @__PURE__ */ mergeModels({
|
|
@@ -10587,11 +10968,11 @@ const _sfc_main$31 = /* @__PURE__ */ defineComponent({
|
|
|
10587
10968
|
};
|
|
10588
10969
|
}
|
|
10589
10970
|
});
|
|
10590
|
-
var PaginationRoot_default = _sfc_main$
|
|
10971
|
+
var PaginationRoot_default = _sfc_main$39;
|
|
10591
10972
|
|
|
10592
10973
|
//#endregion
|
|
10593
10974
|
//#region src/components/Pagination/PaginationEllipsis.vue
|
|
10594
|
-
const _sfc_main$
|
|
10975
|
+
const _sfc_main$38 = /* @__PURE__ */ defineComponent({
|
|
10595
10976
|
name: "PaginationEllipsis",
|
|
10596
10977
|
__name: "PaginationEllipsis",
|
|
10597
10978
|
props: {
|
|
@@ -10632,11 +11013,11 @@ const _sfc_main$30 = /* @__PURE__ */ defineComponent({
|
|
|
10632
11013
|
};
|
|
10633
11014
|
}
|
|
10634
11015
|
});
|
|
10635
|
-
var PaginationEllipsis_default = _sfc_main$
|
|
11016
|
+
var PaginationEllipsis_default = _sfc_main$38;
|
|
10636
11017
|
|
|
10637
11018
|
//#endregion
|
|
10638
11019
|
//#region src/components/Pagination/PaginationFirst.vue
|
|
10639
|
-
const _sfc_main$
|
|
11020
|
+
const _sfc_main$37 = /* @__PURE__ */ defineComponent({
|
|
10640
11021
|
name: "PaginationFirst",
|
|
10641
11022
|
__name: "PaginationFirst",
|
|
10642
11023
|
props: {
|
|
@@ -10691,11 +11072,11 @@ const _sfc_main$29 = /* @__PURE__ */ defineComponent({
|
|
|
10691
11072
|
};
|
|
10692
11073
|
}
|
|
10693
11074
|
});
|
|
10694
|
-
var PaginationFirst_default = _sfc_main$
|
|
11075
|
+
var PaginationFirst_default = _sfc_main$37;
|
|
10695
11076
|
|
|
10696
11077
|
//#endregion
|
|
10697
11078
|
//#region src/components/Pagination/PaginationItem.vue
|
|
10698
|
-
const _sfc_main$
|
|
11079
|
+
const _sfc_main$36 = /* @__PURE__ */ defineComponent({
|
|
10699
11080
|
name: "PaginationItem",
|
|
10700
11081
|
__name: "PaginationItem",
|
|
10701
11082
|
props: {
|
|
@@ -10761,11 +11142,11 @@ const _sfc_main$28 = /* @__PURE__ */ defineComponent({
|
|
|
10761
11142
|
};
|
|
10762
11143
|
}
|
|
10763
11144
|
});
|
|
10764
|
-
var PaginationItem_default = _sfc_main$
|
|
11145
|
+
var PaginationItem_default = _sfc_main$36;
|
|
10765
11146
|
|
|
10766
11147
|
//#endregion
|
|
10767
11148
|
//#region src/components/Pagination/PaginationLast.vue
|
|
10768
|
-
const _sfc_main$
|
|
11149
|
+
const _sfc_main$35 = /* @__PURE__ */ defineComponent({
|
|
10769
11150
|
name: "PaginationLast",
|
|
10770
11151
|
__name: "PaginationLast",
|
|
10771
11152
|
props: {
|
|
@@ -10820,11 +11201,11 @@ const _sfc_main$27 = /* @__PURE__ */ defineComponent({
|
|
|
10820
11201
|
};
|
|
10821
11202
|
}
|
|
10822
11203
|
});
|
|
10823
|
-
var PaginationLast_default = _sfc_main$
|
|
11204
|
+
var PaginationLast_default = _sfc_main$35;
|
|
10824
11205
|
|
|
10825
11206
|
//#endregion
|
|
10826
11207
|
//#region src/components/Pagination/PaginationNext.vue
|
|
10827
|
-
const _sfc_main$
|
|
11208
|
+
const _sfc_main$34 = /* @__PURE__ */ defineComponent({
|
|
10828
11209
|
name: "PaginationNext",
|
|
10829
11210
|
__name: "PaginationNext",
|
|
10830
11211
|
props: {
|
|
@@ -10879,11 +11260,11 @@ const _sfc_main$26 = /* @__PURE__ */ defineComponent({
|
|
|
10879
11260
|
};
|
|
10880
11261
|
}
|
|
10881
11262
|
});
|
|
10882
|
-
var PaginationNext_default = _sfc_main$
|
|
11263
|
+
var PaginationNext_default = _sfc_main$34;
|
|
10883
11264
|
|
|
10884
11265
|
//#endregion
|
|
10885
11266
|
//#region src/components/Pagination/PaginationPrev.vue
|
|
10886
|
-
const _sfc_main$
|
|
11267
|
+
const _sfc_main$33 = /* @__PURE__ */ defineComponent({
|
|
10887
11268
|
name: "PaginationPrev",
|
|
10888
11269
|
__name: "PaginationPrev",
|
|
10889
11270
|
props: {
|
|
@@ -10938,11 +11319,11 @@ const _sfc_main$25 = /* @__PURE__ */ defineComponent({
|
|
|
10938
11319
|
};
|
|
10939
11320
|
}
|
|
10940
11321
|
});
|
|
10941
|
-
var PaginationPrev_default = _sfc_main$
|
|
11322
|
+
var PaginationPrev_default = _sfc_main$33;
|
|
10942
11323
|
|
|
10943
11324
|
//#endregion
|
|
10944
11325
|
//#region src/components/Pagination/PaginationStatus.vue
|
|
10945
|
-
const _sfc_main$
|
|
11326
|
+
const _sfc_main$32 = /* @__PURE__ */ defineComponent({
|
|
10946
11327
|
name: "PaginationStatus",
|
|
10947
11328
|
__name: "PaginationStatus",
|
|
10948
11329
|
props: {
|
|
@@ -10986,7 +11367,7 @@ const _sfc_main$24 = /* @__PURE__ */ defineComponent({
|
|
|
10986
11367
|
};
|
|
10987
11368
|
}
|
|
10988
11369
|
});
|
|
10989
|
-
var PaginationStatus_default = _sfc_main$
|
|
11370
|
+
var PaginationStatus_default = _sfc_main$32;
|
|
10990
11371
|
|
|
10991
11372
|
//#endregion
|
|
10992
11373
|
//#region src/components/Pagination/index.ts
|
|
@@ -11009,7 +11390,7 @@ const Pagination = {
|
|
|
11009
11390
|
//#endregion
|
|
11010
11391
|
//#region src/components/Popover/PopoverRoot.vue
|
|
11011
11392
|
const [usePopoverContext, providePopoverContext] = createContext("Popover");
|
|
11012
|
-
const _sfc_main$
|
|
11393
|
+
const _sfc_main$31 = /* @__PURE__ */ defineComponent({
|
|
11013
11394
|
name: "PopoverRoot",
|
|
11014
11395
|
__name: "PopoverRoot",
|
|
11015
11396
|
props: /* @__PURE__ */ mergeModels({
|
|
@@ -11051,11 +11432,11 @@ const _sfc_main$23 = /* @__PURE__ */ defineComponent({
|
|
|
11051
11432
|
};
|
|
11052
11433
|
}
|
|
11053
11434
|
});
|
|
11054
|
-
var PopoverRoot_default = _sfc_main$
|
|
11435
|
+
var PopoverRoot_default = _sfc_main$31;
|
|
11055
11436
|
|
|
11056
11437
|
//#endregion
|
|
11057
11438
|
//#region src/components/Popover/PopoverActivator.vue
|
|
11058
|
-
const _sfc_main$
|
|
11439
|
+
const _sfc_main$30 = /* @__PURE__ */ defineComponent({
|
|
11059
11440
|
name: "PopoverActivator",
|
|
11060
11441
|
__name: "PopoverActivator",
|
|
11061
11442
|
props: {
|
|
@@ -11087,11 +11468,11 @@ const _sfc_main$22 = /* @__PURE__ */ defineComponent({
|
|
|
11087
11468
|
};
|
|
11088
11469
|
}
|
|
11089
11470
|
});
|
|
11090
|
-
var PopoverActivator_default = _sfc_main$
|
|
11471
|
+
var PopoverActivator_default = _sfc_main$30;
|
|
11091
11472
|
|
|
11092
11473
|
//#endregion
|
|
11093
11474
|
//#region src/components/Popover/PopoverContent.vue
|
|
11094
|
-
const _sfc_main$
|
|
11475
|
+
const _sfc_main$29 = /* @__PURE__ */ defineComponent({
|
|
11095
11476
|
name: "PopoverContent",
|
|
11096
11477
|
__name: "PopoverContent",
|
|
11097
11478
|
props: {
|
|
@@ -11158,7 +11539,7 @@ const _sfc_main$21 = /* @__PURE__ */ defineComponent({
|
|
|
11158
11539
|
};
|
|
11159
11540
|
}
|
|
11160
11541
|
});
|
|
11161
|
-
var PopoverContent_default = _sfc_main$
|
|
11542
|
+
var PopoverContent_default = _sfc_main$29;
|
|
11162
11543
|
|
|
11163
11544
|
//#endregion
|
|
11164
11545
|
//#region src/components/Popover/index.ts
|
|
@@ -11176,7 +11557,7 @@ const Popover = {
|
|
|
11176
11557
|
//#endregion
|
|
11177
11558
|
//#region src/components/Radio/RadioGroup.vue
|
|
11178
11559
|
const [useRadioGroup, provideRadioGroup] = createContext();
|
|
11179
|
-
const _sfc_main$
|
|
11560
|
+
const _sfc_main$28 = /* @__PURE__ */ defineComponent({
|
|
11180
11561
|
name: "RadioGroup",
|
|
11181
11562
|
__name: "RadioGroup",
|
|
11182
11563
|
props: /* @__PURE__ */ mergeModels({
|
|
@@ -11238,12 +11619,12 @@ const _sfc_main$20 = /* @__PURE__ */ defineComponent({
|
|
|
11238
11619
|
};
|
|
11239
11620
|
}
|
|
11240
11621
|
});
|
|
11241
|
-
var RadioGroup_default = _sfc_main$
|
|
11622
|
+
var RadioGroup_default = _sfc_main$28;
|
|
11242
11623
|
|
|
11243
11624
|
//#endregion
|
|
11244
11625
|
//#region src/components/Radio/RadioRoot.vue
|
|
11245
11626
|
const [useRadioRoot, provideRadioRoot] = createContext();
|
|
11246
|
-
const _sfc_main$
|
|
11627
|
+
const _sfc_main$27 = /* @__PURE__ */ defineComponent({
|
|
11247
11628
|
name: "RadioRoot",
|
|
11248
11629
|
inheritAttrs: false,
|
|
11249
11630
|
__name: "RadioRoot",
|
|
@@ -11368,11 +11749,11 @@ const _sfc_main$19 = /* @__PURE__ */ defineComponent({
|
|
|
11368
11749
|
};
|
|
11369
11750
|
}
|
|
11370
11751
|
});
|
|
11371
|
-
var RadioRoot_default = _sfc_main$
|
|
11752
|
+
var RadioRoot_default = _sfc_main$27;
|
|
11372
11753
|
|
|
11373
11754
|
//#endregion
|
|
11374
11755
|
//#region src/components/Radio/RadioHiddenInput.vue
|
|
11375
|
-
const _hoisted_1$
|
|
11756
|
+
const _hoisted_1$2 = [
|
|
11376
11757
|
"checked",
|
|
11377
11758
|
"disabled",
|
|
11378
11759
|
"form",
|
|
@@ -11390,7 +11771,7 @@ const visuallyHiddenStyle$1 = {
|
|
|
11390
11771
|
whiteSpace: "nowrap",
|
|
11391
11772
|
border: "0"
|
|
11392
11773
|
};
|
|
11393
|
-
const _sfc_main$
|
|
11774
|
+
const _sfc_main$26 = /* @__PURE__ */ defineComponent({
|
|
11394
11775
|
name: "RadioHiddenInput",
|
|
11395
11776
|
__name: "RadioHiddenInput",
|
|
11396
11777
|
props: {
|
|
@@ -11421,15 +11802,15 @@ const _sfc_main$18 = /* @__PURE__ */ defineComponent({
|
|
|
11421
11802
|
tabindex: "-1",
|
|
11422
11803
|
type: "radio",
|
|
11423
11804
|
value: value.value
|
|
11424
|
-
}, null, 8, _hoisted_1$
|
|
11805
|
+
}, null, 8, _hoisted_1$2);
|
|
11425
11806
|
};
|
|
11426
11807
|
}
|
|
11427
11808
|
});
|
|
11428
|
-
var RadioHiddenInput_default = _sfc_main$
|
|
11809
|
+
var RadioHiddenInput_default = _sfc_main$26;
|
|
11429
11810
|
|
|
11430
11811
|
//#endregion
|
|
11431
11812
|
//#region src/components/Radio/RadioIndicator.vue
|
|
11432
|
-
const _sfc_main$
|
|
11813
|
+
const _sfc_main$25 = /* @__PURE__ */ defineComponent({
|
|
11433
11814
|
name: "RadioIndicator",
|
|
11434
11815
|
__name: "RadioIndicator",
|
|
11435
11816
|
props: {
|
|
@@ -11459,7 +11840,7 @@ const _sfc_main$17 = /* @__PURE__ */ defineComponent({
|
|
|
11459
11840
|
};
|
|
11460
11841
|
}
|
|
11461
11842
|
});
|
|
11462
|
-
var RadioIndicator_default = _sfc_main$
|
|
11843
|
+
var RadioIndicator_default = _sfc_main$25;
|
|
11463
11844
|
|
|
11464
11845
|
//#endregion
|
|
11465
11846
|
//#region src/components/Radio/index.ts
|
|
@@ -11504,7 +11885,7 @@ const Radio = {
|
|
|
11504
11885
|
|
|
11505
11886
|
//#endregion
|
|
11506
11887
|
//#region src/components/Scrim/Scrim.vue
|
|
11507
|
-
const _sfc_main$
|
|
11888
|
+
const _sfc_main$24 = /* @__PURE__ */ defineComponent({
|
|
11508
11889
|
name: "Scrim",
|
|
11509
11890
|
inheritAttrs: false,
|
|
11510
11891
|
__name: "Scrim",
|
|
@@ -11579,12 +11960,12 @@ const _sfc_main$16 = /* @__PURE__ */ defineComponent({
|
|
|
11579
11960
|
};
|
|
11580
11961
|
}
|
|
11581
11962
|
});
|
|
11582
|
-
var Scrim_default = _sfc_main$
|
|
11963
|
+
var Scrim_default = _sfc_main$24;
|
|
11583
11964
|
|
|
11584
11965
|
//#endregion
|
|
11585
11966
|
//#region src/components/Selection/SelectionRoot.vue
|
|
11586
11967
|
const [useSelectionRoot, provideSelectionRoot] = createContext();
|
|
11587
|
-
const _sfc_main$
|
|
11968
|
+
const _sfc_main$23 = /* @__PURE__ */ defineComponent({
|
|
11588
11969
|
name: "SelectionRoot",
|
|
11589
11970
|
__name: "SelectionRoot",
|
|
11590
11971
|
props: /* @__PURE__ */ mergeModels({
|
|
@@ -11634,11 +12015,11 @@ const _sfc_main$15 = /* @__PURE__ */ defineComponent({
|
|
|
11634
12015
|
};
|
|
11635
12016
|
}
|
|
11636
12017
|
});
|
|
11637
|
-
var SelectionRoot_default = _sfc_main$
|
|
12018
|
+
var SelectionRoot_default = _sfc_main$23;
|
|
11638
12019
|
|
|
11639
12020
|
//#endregion
|
|
11640
12021
|
//#region src/components/Selection/SelectionItem.vue
|
|
11641
|
-
const _sfc_main$
|
|
12022
|
+
const _sfc_main$22 = /* @__PURE__ */ defineComponent({
|
|
11642
12023
|
name: "SelectionItem",
|
|
11643
12024
|
__name: "SelectionItem",
|
|
11644
12025
|
props: {
|
|
@@ -11680,7 +12061,7 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
|
|
|
11680
12061
|
};
|
|
11681
12062
|
}
|
|
11682
12063
|
});
|
|
11683
|
-
var SelectionItem_default = _sfc_main$
|
|
12064
|
+
var SelectionItem_default = _sfc_main$22;
|
|
11684
12065
|
|
|
11685
12066
|
//#endregion
|
|
11686
12067
|
//#region src/components/Selection/index.ts
|
|
@@ -11694,6 +12075,997 @@ const Selection = {
|
|
|
11694
12075
|
Item: SelectionItem_default
|
|
11695
12076
|
};
|
|
11696
12077
|
|
|
12078
|
+
//#endregion
|
|
12079
|
+
//#region src/components/Slider/SliderRoot.vue
|
|
12080
|
+
const [useSliderRoot, provideSliderRoot] = createContext();
|
|
12081
|
+
const _sfc_main$21 = /* @__PURE__ */ defineComponent({
|
|
12082
|
+
name: "SliderRoot",
|
|
12083
|
+
inheritAttrs: false,
|
|
12084
|
+
__name: "SliderRoot",
|
|
12085
|
+
props: /* @__PURE__ */ mergeModels({
|
|
12086
|
+
id: { default: () => useId$1() },
|
|
12087
|
+
min: { default: 0 },
|
|
12088
|
+
max: { default: 100 },
|
|
12089
|
+
step: { default: 1 },
|
|
12090
|
+
disabled: { default: false },
|
|
12091
|
+
readonly: { default: false },
|
|
12092
|
+
orientation: { default: "horizontal" },
|
|
12093
|
+
inverted: {
|
|
12094
|
+
type: Boolean,
|
|
12095
|
+
default: false
|
|
12096
|
+
},
|
|
12097
|
+
minStepsBetweenThumbs: { default: 0 },
|
|
12098
|
+
crossover: {
|
|
12099
|
+
type: Boolean,
|
|
12100
|
+
default: false
|
|
12101
|
+
},
|
|
12102
|
+
name: {},
|
|
12103
|
+
form: {},
|
|
12104
|
+
namespace: { default: "v0:slider:root" },
|
|
12105
|
+
as: { default: "div" },
|
|
12106
|
+
renderless: { type: Boolean }
|
|
12107
|
+
}, {
|
|
12108
|
+
"modelValue": { default: () => [] },
|
|
12109
|
+
"modelModifiers": {}
|
|
12110
|
+
}),
|
|
12111
|
+
emits: /* @__PURE__ */ mergeModels([
|
|
12112
|
+
"update:model-value",
|
|
12113
|
+
"start",
|
|
12114
|
+
"end"
|
|
12115
|
+
], ["update:modelValue"]),
|
|
12116
|
+
setup(__props, { emit: __emit }) {
|
|
12117
|
+
const attrs = useAttrs();
|
|
12118
|
+
const emit = __emit;
|
|
12119
|
+
const model = useModel(__props, "modelValue");
|
|
12120
|
+
const scalar = !/* @__PURE__ */ isArray(model.value) && !/* @__PURE__ */ isUndefined(model.value);
|
|
12121
|
+
const internal = computed({
|
|
12122
|
+
get: () => /* @__PURE__ */ isArray(model.value) ? model.value : [model.value],
|
|
12123
|
+
set: (arr) => {
|
|
12124
|
+
model.value = scalar ? arr[0] ?? 0 : arr;
|
|
12125
|
+
}
|
|
12126
|
+
});
|
|
12127
|
+
const slider = createSlider({
|
|
12128
|
+
min: __props.min,
|
|
12129
|
+
max: __props.max,
|
|
12130
|
+
step: __props.step,
|
|
12131
|
+
disabled: __props.disabled,
|
|
12132
|
+
readonly: __props.readonly,
|
|
12133
|
+
orientation: __props.orientation,
|
|
12134
|
+
inverted: __props.inverted,
|
|
12135
|
+
minStepsBetweenThumbs: __props.minStepsBetweenThumbs,
|
|
12136
|
+
crossover: __props.crossover
|
|
12137
|
+
});
|
|
12138
|
+
useProxyModel(slider, internal, { multiple: true });
|
|
12139
|
+
const dragging = shallowRef(null);
|
|
12140
|
+
const track = shallowRef(null);
|
|
12141
|
+
const dragOffset = shallowRef(0);
|
|
12142
|
+
function getPercent(e) {
|
|
12143
|
+
const el = track.value;
|
|
12144
|
+
if (!el) return 0;
|
|
12145
|
+
const rect = el.getBoundingClientRect();
|
|
12146
|
+
return toValue(slider.orientation) === "vertical" ? (rect.bottom - e.clientY - dragOffset.value) / rect.height * 100 : (e.clientX - rect.left - dragOffset.value) / rect.width * 100;
|
|
12147
|
+
}
|
|
12148
|
+
useToggleScope(() => !/* @__PURE__ */ isNull(dragging.value), () => {
|
|
12149
|
+
if (IN_BROWSER) document.documentElement.style.touchAction = "none";
|
|
12150
|
+
useDocumentEventListener("pointermove", (e) => {
|
|
12151
|
+
if (/* @__PURE__ */ isNull(dragging.value)) return;
|
|
12152
|
+
const percent = getPercent(e);
|
|
12153
|
+
slider.set(dragging.value, slider.fromPercent(percent));
|
|
12154
|
+
});
|
|
12155
|
+
useDocumentEventListener("pointerup", () => {
|
|
12156
|
+
if (IN_BROWSER) document.documentElement.style.touchAction = "";
|
|
12157
|
+
const values = [...slider.values.value];
|
|
12158
|
+
emit("end", scalar ? values[0] ?? 0 : values);
|
|
12159
|
+
dragging.value = null;
|
|
12160
|
+
dragOffset.value = 0;
|
|
12161
|
+
});
|
|
12162
|
+
});
|
|
12163
|
+
function onDrag(index, event, thumbEl) {
|
|
12164
|
+
if (toValue(__props.disabled)) return;
|
|
12165
|
+
if (toValue(__props.readonly)) return;
|
|
12166
|
+
if (event.button !== 0) return;
|
|
12167
|
+
event.preventDefault();
|
|
12168
|
+
if (thumbEl) {
|
|
12169
|
+
const rect = thumbEl.getBoundingClientRect();
|
|
12170
|
+
dragOffset.value = toValue(slider.orientation) === "vertical" ? event.clientY - (rect.top + rect.height / 2) : event.clientX - (rect.left + rect.width / 2);
|
|
12171
|
+
} else dragOffset.value = 0;
|
|
12172
|
+
dragging.value = index;
|
|
12173
|
+
const values = [...slider.values.value];
|
|
12174
|
+
emit("start", scalar ? values[0] ?? 0 : values);
|
|
12175
|
+
}
|
|
12176
|
+
const context = {
|
|
12177
|
+
...slider,
|
|
12178
|
+
id: __props.id,
|
|
12179
|
+
name: __props.name,
|
|
12180
|
+
form: __props.form,
|
|
12181
|
+
dragging,
|
|
12182
|
+
track,
|
|
12183
|
+
onDrag
|
|
12184
|
+
};
|
|
12185
|
+
provideSliderRoot(__props.namespace, context);
|
|
12186
|
+
const isDisabled = toRef(() => toValue(__props.disabled));
|
|
12187
|
+
const isReadonly = toRef(() => toValue(__props.readonly));
|
|
12188
|
+
const slotProps = toRef(() => ({
|
|
12189
|
+
id: __props.id,
|
|
12190
|
+
values: slider.values.value,
|
|
12191
|
+
min: __props.min,
|
|
12192
|
+
max: __props.max,
|
|
12193
|
+
isDisabled: isDisabled.value,
|
|
12194
|
+
isReadonly: isReadonly.value,
|
|
12195
|
+
orientation: toValue(slider.orientation),
|
|
12196
|
+
attrs: {
|
|
12197
|
+
"data-disabled": isDisabled.value ? true : void 0,
|
|
12198
|
+
"data-readonly": isReadonly.value ? true : void 0,
|
|
12199
|
+
"data-orientation": toValue(slider.orientation)
|
|
12200
|
+
}
|
|
12201
|
+
}));
|
|
12202
|
+
return (_ctx, _cache) => {
|
|
12203
|
+
return openBlock(), createElementBlock(Fragment, null, [createVNode(unref(Atom_default), mergeProps({
|
|
12204
|
+
...unref(attrs),
|
|
12205
|
+
...slotProps.value.attrs
|
|
12206
|
+
}, {
|
|
12207
|
+
as: __props.as,
|
|
12208
|
+
renderless: __props.renderless
|
|
12209
|
+
}), {
|
|
12210
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
|
|
12211
|
+
_: 3
|
|
12212
|
+
}, 16, ["as", "renderless"]), __props.name ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(slider).values.value, (_, index) => {
|
|
12213
|
+
return openBlock(), createBlock(SliderHiddenInput_default, {
|
|
12214
|
+
key: index,
|
|
12215
|
+
index
|
|
12216
|
+
}, null, 8, ["index"]);
|
|
12217
|
+
}), 128)) : createCommentVNode("v-if", true)], 64);
|
|
12218
|
+
};
|
|
12219
|
+
}
|
|
12220
|
+
});
|
|
12221
|
+
var SliderRoot_default = _sfc_main$21;
|
|
12222
|
+
|
|
12223
|
+
//#endregion
|
|
12224
|
+
//#region src/components/Slider/SliderHiddenInput.vue
|
|
12225
|
+
const _hoisted_1$1 = [
|
|
12226
|
+
"disabled",
|
|
12227
|
+
"form",
|
|
12228
|
+
"name",
|
|
12229
|
+
"value"
|
|
12230
|
+
];
|
|
12231
|
+
const _sfc_main$20 = /* @__PURE__ */ defineComponent({
|
|
12232
|
+
name: "SliderHiddenInput",
|
|
12233
|
+
__name: "SliderHiddenInput",
|
|
12234
|
+
props: {
|
|
12235
|
+
namespace: { default: "v0:slider:root" },
|
|
12236
|
+
index: { default: 0 }
|
|
12237
|
+
},
|
|
12238
|
+
setup(__props) {
|
|
12239
|
+
const root = useSliderRoot(__props.namespace);
|
|
12240
|
+
const value = toRef(() => root.values.value[__props.index] ?? root.min);
|
|
12241
|
+
const isDisabled = toRef(() => toValue(root.disabled));
|
|
12242
|
+
return (_ctx, _cache) => {
|
|
12243
|
+
return openBlock(), createElementBlock("input", {
|
|
12244
|
+
disabled: isDisabled.value,
|
|
12245
|
+
form: unref(root).form,
|
|
12246
|
+
name: unref(root).name,
|
|
12247
|
+
tabindex: "-1",
|
|
12248
|
+
type: "hidden",
|
|
12249
|
+
value: value.value
|
|
12250
|
+
}, null, 8, _hoisted_1$1);
|
|
12251
|
+
};
|
|
12252
|
+
}
|
|
12253
|
+
});
|
|
12254
|
+
var SliderHiddenInput_default = _sfc_main$20;
|
|
12255
|
+
|
|
12256
|
+
//#endregion
|
|
12257
|
+
//#region src/components/Slider/SliderRange.vue
|
|
12258
|
+
const _sfc_main$19 = /* @__PURE__ */ defineComponent({
|
|
12259
|
+
name: "SliderRange",
|
|
12260
|
+
inheritAttrs: false,
|
|
12261
|
+
__name: "SliderRange",
|
|
12262
|
+
props: {
|
|
12263
|
+
namespace: { default: "v0:slider:root" },
|
|
12264
|
+
as: { default: "span" },
|
|
12265
|
+
renderless: { type: Boolean }
|
|
12266
|
+
},
|
|
12267
|
+
setup(__props) {
|
|
12268
|
+
const attrs = useAttrs();
|
|
12269
|
+
const root = useSliderRoot(__props.namespace);
|
|
12270
|
+
const rawStart = toRef(() => {
|
|
12271
|
+
const values = root.values.value;
|
|
12272
|
+
if (values.length === 0) return 0;
|
|
12273
|
+
if (values.length === 1) return root.fromValue(root.min);
|
|
12274
|
+
return root.fromValue(Math.min(...values));
|
|
12275
|
+
});
|
|
12276
|
+
const rawEnd = toRef(() => {
|
|
12277
|
+
const values = root.values.value;
|
|
12278
|
+
if (values.length === 0) return 0;
|
|
12279
|
+
if (values.length === 1) return root.fromValue(values[0]);
|
|
12280
|
+
return root.fromValue(Math.max(...values));
|
|
12281
|
+
});
|
|
12282
|
+
const start = toRef(() => Math.min(rawStart.value, rawEnd.value));
|
|
12283
|
+
const end = toRef(() => Math.max(rawStart.value, rawEnd.value));
|
|
12284
|
+
const isVertical = toRef(() => toValue(root.orientation) === "vertical");
|
|
12285
|
+
const slotProps = toRef(() => ({
|
|
12286
|
+
start: start.value,
|
|
12287
|
+
end: end.value,
|
|
12288
|
+
attrs: {
|
|
12289
|
+
"data-disabled": toValue(root.disabled) ? true : void 0,
|
|
12290
|
+
"data-readonly": toValue(root.readonly) ? true : void 0,
|
|
12291
|
+
"data-orientation": toValue(root.orientation),
|
|
12292
|
+
"style": {
|
|
12293
|
+
[isVertical.value ? "bottom" : "left"]: `${start.value}%`,
|
|
12294
|
+
[isVertical.value ? "height" : "width"]: `${end.value - start.value}%`
|
|
12295
|
+
}
|
|
12296
|
+
}
|
|
12297
|
+
}));
|
|
12298
|
+
return (_ctx, _cache) => {
|
|
12299
|
+
return openBlock(), createBlock(unref(Atom_default), mergeProps({
|
|
12300
|
+
...unref(attrs),
|
|
12301
|
+
...slotProps.value.attrs
|
|
12302
|
+
}, {
|
|
12303
|
+
as: __props.as,
|
|
12304
|
+
renderless: __props.renderless,
|
|
12305
|
+
style: [unref(attrs).style, slotProps.value.attrs.style]
|
|
12306
|
+
}), {
|
|
12307
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
|
|
12308
|
+
_: 3
|
|
12309
|
+
}, 16, [
|
|
12310
|
+
"as",
|
|
12311
|
+
"renderless",
|
|
12312
|
+
"style"
|
|
12313
|
+
]);
|
|
12314
|
+
};
|
|
12315
|
+
}
|
|
12316
|
+
});
|
|
12317
|
+
var SliderRange_default = _sfc_main$19;
|
|
12318
|
+
|
|
12319
|
+
//#endregion
|
|
12320
|
+
//#region src/components/Slider/SliderThumb.vue
|
|
12321
|
+
const _sfc_main$18 = /* @__PURE__ */ defineComponent({
|
|
12322
|
+
name: "SliderThumb",
|
|
12323
|
+
inheritAttrs: false,
|
|
12324
|
+
__name: "SliderThumb",
|
|
12325
|
+
props: {
|
|
12326
|
+
namespace: { default: "v0:slider:root" },
|
|
12327
|
+
ariaLabel: {},
|
|
12328
|
+
ariaLabelledby: {},
|
|
12329
|
+
ariaValuetext: {},
|
|
12330
|
+
as: { default: "span" },
|
|
12331
|
+
renderless: { type: Boolean }
|
|
12332
|
+
},
|
|
12333
|
+
setup(__props) {
|
|
12334
|
+
const attrs = useAttrs();
|
|
12335
|
+
const root = useSliderRoot(__props.namespace);
|
|
12336
|
+
const thumbRef = useTemplateRef("thumb");
|
|
12337
|
+
const ticket = root.register();
|
|
12338
|
+
onUnmounted(() => {
|
|
12339
|
+
root.unregister(ticket.id);
|
|
12340
|
+
});
|
|
12341
|
+
const index = toRef(() => ticket.index);
|
|
12342
|
+
const value = toRef(() => toValue(ticket.value));
|
|
12343
|
+
const pct = toRef(() => root.fromValue(value.value));
|
|
12344
|
+
const isDragging = toRef(() => root.dragging.value === index.value);
|
|
12345
|
+
const isDisabled = toRef(() => toValue(root.disabled));
|
|
12346
|
+
const isReadonly = toRef(() => toValue(root.readonly));
|
|
12347
|
+
const isVertical = toRef(() => toValue(root.orientation) === "vertical");
|
|
12348
|
+
const valueMin = toRef(() => {
|
|
12349
|
+
if (root.crossover) return root.min;
|
|
12350
|
+
const prev = root.values.value[index.value - 1];
|
|
12351
|
+
return /* @__PURE__ */ isUndefined(prev) ? root.min : prev;
|
|
12352
|
+
});
|
|
12353
|
+
const valueMax = toRef(() => {
|
|
12354
|
+
if (root.crossover) return root.max;
|
|
12355
|
+
const next = root.values.value[index.value + 1];
|
|
12356
|
+
return /* @__PURE__ */ isUndefined(next) ? root.max : next;
|
|
12357
|
+
});
|
|
12358
|
+
function onPointerdown(e) {
|
|
12359
|
+
root.onDrag(index.value, e, thumbRef.value?.element ?? void 0);
|
|
12360
|
+
}
|
|
12361
|
+
function onKeydown(e) {
|
|
12362
|
+
if (isDisabled.value || isReadonly.value) return;
|
|
12363
|
+
const isInverted = toValue(root.inverted);
|
|
12364
|
+
const actions = {
|
|
12365
|
+
ArrowRight: () => isInverted ? root.down(index.value) : root.up(index.value),
|
|
12366
|
+
ArrowUp: () => root.up(index.value),
|
|
12367
|
+
ArrowLeft: () => isInverted ? root.up(index.value) : root.down(index.value),
|
|
12368
|
+
ArrowDown: () => root.down(index.value),
|
|
12369
|
+
PageUp: () => root.up(index.value, 10),
|
|
12370
|
+
PageDown: () => root.down(index.value, 10),
|
|
12371
|
+
Home: () => root.floor(index.value),
|
|
12372
|
+
End: () => root.ceil(index.value)
|
|
12373
|
+
};
|
|
12374
|
+
if (e.shiftKey && e.key.startsWith("Arrow")) {
|
|
12375
|
+
e.preventDefault();
|
|
12376
|
+
const base = e.key === "ArrowRight" || e.key === "ArrowUp" ? "up" : "down";
|
|
12377
|
+
root[(e.key === "ArrowRight" || e.key === "ArrowLeft") && isInverted ? base === "up" ? "down" : "up" : base](index.value, 10);
|
|
12378
|
+
return;
|
|
12379
|
+
}
|
|
12380
|
+
const action = actions[e.key];
|
|
12381
|
+
if (!action) return;
|
|
12382
|
+
e.preventDefault();
|
|
12383
|
+
action();
|
|
12384
|
+
}
|
|
12385
|
+
const dataState = toRef(() => isDragging.value ? "dragging" : "idle");
|
|
12386
|
+
const slotProps = toRef(() => ({
|
|
12387
|
+
index: index.value,
|
|
12388
|
+
value: value.value,
|
|
12389
|
+
percent: pct.value,
|
|
12390
|
+
isDragging: isDragging.value,
|
|
12391
|
+
attrs: {
|
|
12392
|
+
"role": "slider",
|
|
12393
|
+
"tabindex": isDisabled.value ? -1 : 0,
|
|
12394
|
+
"aria-valuenow": value.value,
|
|
12395
|
+
"aria-valuemin": valueMin.value,
|
|
12396
|
+
"aria-valuemax": valueMax.value,
|
|
12397
|
+
"aria-valuetext": __props.ariaValuetext || void 0,
|
|
12398
|
+
"aria-orientation": toValue(root.orientation),
|
|
12399
|
+
"aria-disabled": isDisabled.value ? true : void 0,
|
|
12400
|
+
"aria-readonly": isReadonly.value ? true : void 0,
|
|
12401
|
+
"aria-label": __props.ariaLabel || void 0,
|
|
12402
|
+
"aria-labelledby": __props.ariaLabelledby || void 0,
|
|
12403
|
+
"data-state": dataState.value,
|
|
12404
|
+
"data-disabled": isDisabled.value ? true : void 0,
|
|
12405
|
+
"data-readonly": isReadonly.value ? true : void 0,
|
|
12406
|
+
"style": {
|
|
12407
|
+
[isVertical.value ? "bottom" : "left"]: `${pct.value}%`,
|
|
12408
|
+
"touch-action": "none"
|
|
12409
|
+
},
|
|
12410
|
+
"onKeydown": onKeydown,
|
|
12411
|
+
"onPointerdown": onPointerdown
|
|
12412
|
+
}
|
|
12413
|
+
}));
|
|
12414
|
+
return (_ctx, _cache) => {
|
|
12415
|
+
return openBlock(), createBlock(unref(Atom_default), mergeProps({ ref: "thumb" }, {
|
|
12416
|
+
...unref(attrs),
|
|
12417
|
+
...slotProps.value.attrs
|
|
12418
|
+
}, {
|
|
12419
|
+
as: __props.as,
|
|
12420
|
+
renderless: __props.renderless,
|
|
12421
|
+
style: [unref(attrs).style, slotProps.value.attrs.style]
|
|
12422
|
+
}), {
|
|
12423
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
|
|
12424
|
+
_: 3
|
|
12425
|
+
}, 16, [
|
|
12426
|
+
"as",
|
|
12427
|
+
"renderless",
|
|
12428
|
+
"style"
|
|
12429
|
+
]);
|
|
12430
|
+
};
|
|
12431
|
+
}
|
|
12432
|
+
});
|
|
12433
|
+
var SliderThumb_default = _sfc_main$18;
|
|
12434
|
+
|
|
12435
|
+
//#endregion
|
|
12436
|
+
//#region src/components/Slider/SliderTrack.vue
|
|
12437
|
+
const _sfc_main$17 = /* @__PURE__ */ defineComponent({
|
|
12438
|
+
name: "SliderTrack",
|
|
12439
|
+
inheritAttrs: false,
|
|
12440
|
+
__name: "SliderTrack",
|
|
12441
|
+
props: {
|
|
12442
|
+
namespace: { default: "v0:slider:root" },
|
|
12443
|
+
as: { default: "div" },
|
|
12444
|
+
renderless: { type: Boolean }
|
|
12445
|
+
},
|
|
12446
|
+
setup(__props) {
|
|
12447
|
+
const attrs = useAttrs();
|
|
12448
|
+
const root = useSliderRoot(__props.namespace);
|
|
12449
|
+
const trackRef = useTemplateRef("track");
|
|
12450
|
+
watchEffect(() => {
|
|
12451
|
+
root.track.value = trackRef.value?.element ?? null;
|
|
12452
|
+
});
|
|
12453
|
+
function nearest(value) {
|
|
12454
|
+
let closest = 0;
|
|
12455
|
+
let distance = Infinity;
|
|
12456
|
+
for (let index = 0; index < root.values.value.length; index++) {
|
|
12457
|
+
const d = Math.abs(root.values.value[index] - value);
|
|
12458
|
+
if (d < distance) {
|
|
12459
|
+
distance = d;
|
|
12460
|
+
closest = index;
|
|
12461
|
+
}
|
|
12462
|
+
}
|
|
12463
|
+
return closest;
|
|
12464
|
+
}
|
|
12465
|
+
function onPointerdown(e) {
|
|
12466
|
+
if (toValue(root.disabled)) return;
|
|
12467
|
+
if (toValue(root.readonly)) return;
|
|
12468
|
+
if (e.button !== 0) return;
|
|
12469
|
+
const el = trackRef.value?.element;
|
|
12470
|
+
if (!el) return;
|
|
12471
|
+
const rect = el.getBoundingClientRect();
|
|
12472
|
+
const percent = toValue(root.orientation) === "vertical" ? (rect.bottom - e.clientY) / rect.height * 100 : (e.clientX - rect.left) / rect.width * 100;
|
|
12473
|
+
const value = root.fromPercent(percent);
|
|
12474
|
+
const index = nearest(value);
|
|
12475
|
+
root.set(index, value);
|
|
12476
|
+
root.onDrag(index, e);
|
|
12477
|
+
}
|
|
12478
|
+
const slotProps = toRef(() => ({ attrs: {
|
|
12479
|
+
"data-disabled": toValue(root.disabled) ? true : void 0,
|
|
12480
|
+
"data-readonly": toValue(root.readonly) ? true : void 0,
|
|
12481
|
+
"data-orientation": toValue(root.orientation),
|
|
12482
|
+
"style": { "touch-action": "none" },
|
|
12483
|
+
"onPointerdown": onPointerdown
|
|
12484
|
+
} }));
|
|
12485
|
+
return (_ctx, _cache) => {
|
|
12486
|
+
return openBlock(), createBlock(unref(Atom_default), mergeProps({ ref: "track" }, {
|
|
12487
|
+
...unref(attrs),
|
|
12488
|
+
...slotProps.value.attrs
|
|
12489
|
+
}, {
|
|
12490
|
+
as: __props.as,
|
|
12491
|
+
renderless: __props.renderless,
|
|
12492
|
+
style: [unref(attrs).style, slotProps.value.attrs.style]
|
|
12493
|
+
}), {
|
|
12494
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
|
|
12495
|
+
_: 3
|
|
12496
|
+
}, 16, [
|
|
12497
|
+
"as",
|
|
12498
|
+
"renderless",
|
|
12499
|
+
"style"
|
|
12500
|
+
]);
|
|
12501
|
+
};
|
|
12502
|
+
}
|
|
12503
|
+
});
|
|
12504
|
+
var SliderTrack_default = _sfc_main$17;
|
|
12505
|
+
|
|
12506
|
+
//#endregion
|
|
12507
|
+
//#region src/components/Slider/index.ts
|
|
12508
|
+
/**
|
|
12509
|
+
* Slider component with sub-components for range input controls.
|
|
12510
|
+
*
|
|
12511
|
+
* @see https://0.vuetifyjs.com/components/slider
|
|
12512
|
+
*
|
|
12513
|
+
* @example
|
|
12514
|
+
* ```vue
|
|
12515
|
+
* <script setup lang="ts">
|
|
12516
|
+
* import { Slider } from '@vuetify/v0'
|
|
12517
|
+
* import { ref } from 'vue'
|
|
12518
|
+
*
|
|
12519
|
+
* const value = ref([50])
|
|
12520
|
+
* <\/script>
|
|
12521
|
+
*
|
|
12522
|
+
* <template>
|
|
12523
|
+
* <Slider.Root v-model="value" :min="0" :max="100">
|
|
12524
|
+
* <Slider.Track>
|
|
12525
|
+
* <Slider.Range />
|
|
12526
|
+
* </Slider.Track>
|
|
12527
|
+
* <Slider.Thumb />
|
|
12528
|
+
* </Slider.Root>
|
|
12529
|
+
* </template>
|
|
12530
|
+
* ```
|
|
12531
|
+
*/
|
|
12532
|
+
const Slider = {
|
|
12533
|
+
Root: SliderRoot_default,
|
|
12534
|
+
Track: SliderTrack_default,
|
|
12535
|
+
Range: SliderRange_default,
|
|
12536
|
+
Thumb: SliderThumb_default,
|
|
12537
|
+
HiddenInput: SliderHiddenInput_default
|
|
12538
|
+
};
|
|
12539
|
+
|
|
12540
|
+
//#endregion
|
|
12541
|
+
//#region src/components/Splitter/SplitterRoot.vue
|
|
12542
|
+
const [useSplitterRoot, provideSplitterRoot] = createContext("v0:splitter");
|
|
12543
|
+
const _sfc_main$16 = /* @__PURE__ */ defineComponent({
|
|
12544
|
+
name: "SplitterRoot",
|
|
12545
|
+
inheritAttrs: false,
|
|
12546
|
+
__name: "SplitterRoot",
|
|
12547
|
+
props: {
|
|
12548
|
+
orientation: { default: "horizontal" },
|
|
12549
|
+
disabled: {
|
|
12550
|
+
type: Boolean,
|
|
12551
|
+
default: false
|
|
12552
|
+
},
|
|
12553
|
+
as: { default: "div" },
|
|
12554
|
+
renderless: { type: Boolean }
|
|
12555
|
+
},
|
|
12556
|
+
emits: ["layout"],
|
|
12557
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
12558
|
+
const attrs = useAttrs();
|
|
12559
|
+
const emit = __emit;
|
|
12560
|
+
const rootAtom = useTemplateRef("root");
|
|
12561
|
+
const rootEl = toRef(() => rootAtom.value?.element ?? null);
|
|
12562
|
+
const draggingHandle = shallowRef(null);
|
|
12563
|
+
const dragging = toRef(() => !/* @__PURE__ */ isNull(draggingHandle.value));
|
|
12564
|
+
const panels = createSelection({
|
|
12565
|
+
multiple: true,
|
|
12566
|
+
enroll: true,
|
|
12567
|
+
reactive: true
|
|
12568
|
+
});
|
|
12569
|
+
const handles = createRegistry();
|
|
12570
|
+
watch(() => panels.collection.size, (size, prev) => {
|
|
12571
|
+
const values = panels.values();
|
|
12572
|
+
if (values.length === 0) return;
|
|
12573
|
+
const total = values.reduce((sum, t) => sum + t.size, 0);
|
|
12574
|
+
if (total === 0 || total === 100) return;
|
|
12575
|
+
distribute(!/* @__PURE__ */ isUndefined(prev) && size > prev ? values.map((t) => t.defaultSize) : values.map((t) => t.size));
|
|
12576
|
+
}, { flush: "post" });
|
|
12577
|
+
function panel(index) {
|
|
12578
|
+
const id = panels.lookup(index);
|
|
12579
|
+
return /* @__PURE__ */ isNullOrUndefined(id) ? void 0 : panels.get(id);
|
|
12580
|
+
}
|
|
12581
|
+
function effectiveMin(ticket) {
|
|
12582
|
+
return ticket.collapsible && !toValue(ticket.isSelected) ? ticket.collapsedSize : ticket.minSize;
|
|
12583
|
+
}
|
|
12584
|
+
function resize(index, delta, options) {
|
|
12585
|
+
const before = panel(index);
|
|
12586
|
+
const after = panel(index + 1);
|
|
12587
|
+
if (!before || !after) return;
|
|
12588
|
+
const total = before.size + after.size;
|
|
12589
|
+
const min1 = effectiveMin(before);
|
|
12590
|
+
const min2 = effectiveMin(after);
|
|
12591
|
+
const lower = Math.max(min1, total - after.maxSize);
|
|
12592
|
+
const upper = Math.min(before.maxSize, total - min2);
|
|
12593
|
+
const size = /* @__PURE__ */ clamp(before.size + delta, lower, upper);
|
|
12594
|
+
before.size = size;
|
|
12595
|
+
after.size = total - size;
|
|
12596
|
+
for (const p of [before, after]) {
|
|
12597
|
+
if (!p.collapsible) continue;
|
|
12598
|
+
const collapsed = !toValue(p.isSelected);
|
|
12599
|
+
if (!collapsed && p.size <= p.collapsedSize) p.unselect();
|
|
12600
|
+
else if (collapsed && p.size > p.collapsedSize) p.select();
|
|
12601
|
+
}
|
|
12602
|
+
if (options?.emit) emitLayout();
|
|
12603
|
+
}
|
|
12604
|
+
function collapse(index, neighborIndex) {
|
|
12605
|
+
const ticket = panel(index);
|
|
12606
|
+
if (!ticket?.collapsible || !toValue(ticket.isSelected)) return;
|
|
12607
|
+
const neighbor = panel(neighborIndex ?? (index > 0 ? index - 1 : index + 1));
|
|
12608
|
+
if (!neighbor) return;
|
|
12609
|
+
const diff = ticket.size - ticket.collapsedSize;
|
|
12610
|
+
const absorbed = Math.min(diff, neighbor.maxSize - neighbor.size);
|
|
12611
|
+
neighbor.size += absorbed;
|
|
12612
|
+
ticket.size = ticket.collapsedSize;
|
|
12613
|
+
let remaining = diff - absorbed;
|
|
12614
|
+
if (remaining > 0) for (const p of panels.values()) {
|
|
12615
|
+
if (p.id === ticket.id || p.id === neighbor.id || remaining <= 0) continue;
|
|
12616
|
+
const room = p.maxSize - p.size;
|
|
12617
|
+
const take = Math.min(remaining, room);
|
|
12618
|
+
p.size += take;
|
|
12619
|
+
remaining -= take;
|
|
12620
|
+
}
|
|
12621
|
+
if (remaining > 0) ticket.size += remaining;
|
|
12622
|
+
if (ticket.size <= ticket.collapsedSize) ticket.unselect();
|
|
12623
|
+
emitLayout();
|
|
12624
|
+
}
|
|
12625
|
+
function expand(index, neighborIndex) {
|
|
12626
|
+
const ticket = panel(index);
|
|
12627
|
+
if (!ticket?.collapsible || toValue(ticket.isSelected)) return;
|
|
12628
|
+
const neighbor = panel(neighborIndex ?? (index > 0 ? index - 1 : index + 1));
|
|
12629
|
+
if (!neighbor) return;
|
|
12630
|
+
const diff = Math.min(ticket.defaultSize, ticket.maxSize) - ticket.collapsedSize;
|
|
12631
|
+
const available = neighbor.size - neighbor.minSize;
|
|
12632
|
+
const take = Math.min(diff, available);
|
|
12633
|
+
if (ticket.collapsedSize + take < ticket.minSize) return;
|
|
12634
|
+
neighbor.size -= take;
|
|
12635
|
+
ticket.size = ticket.collapsedSize + take;
|
|
12636
|
+
ticket.select();
|
|
12637
|
+
emitLayout();
|
|
12638
|
+
}
|
|
12639
|
+
function distribute(incoming) {
|
|
12640
|
+
const values = panels.values();
|
|
12641
|
+
if (incoming.length !== values.length) return;
|
|
12642
|
+
for (const [index, ticket] of values.entries()) {
|
|
12643
|
+
const value = incoming[index];
|
|
12644
|
+
ticket.size = /* @__PURE__ */ clamp(value, ticket.collapsible && value <= ticket.collapsedSize ? ticket.collapsedSize : ticket.minSize, ticket.maxSize);
|
|
12645
|
+
}
|
|
12646
|
+
let remainder = 100 - values.reduce((sum, t) => sum + t.size, 0);
|
|
12647
|
+
for (const ticket of values) {
|
|
12648
|
+
if (remainder === 0) break;
|
|
12649
|
+
const min = ticket.collapsible && ticket.size <= ticket.collapsedSize ? ticket.collapsedSize : ticket.minSize;
|
|
12650
|
+
const room = remainder > 0 ? ticket.maxSize - ticket.size : ticket.size - min;
|
|
12651
|
+
const adjust = remainder > 0 ? Math.min(remainder, room) : Math.max(remainder, -room);
|
|
12652
|
+
ticket.size += adjust;
|
|
12653
|
+
remainder -= adjust;
|
|
12654
|
+
}
|
|
12655
|
+
for (const ticket of values) {
|
|
12656
|
+
if (!ticket.collapsible) continue;
|
|
12657
|
+
const collapsed = !toValue(ticket.isSelected);
|
|
12658
|
+
if (!collapsed && ticket.size <= ticket.collapsedSize) ticket.unselect();
|
|
12659
|
+
else if (collapsed && ticket.size > ticket.collapsedSize) ticket.select();
|
|
12660
|
+
}
|
|
12661
|
+
emit("layout", values.map((t) => t.size));
|
|
12662
|
+
}
|
|
12663
|
+
function onStartDrag(index) {
|
|
12664
|
+
draggingHandle.value = index;
|
|
12665
|
+
}
|
|
12666
|
+
function onEndDrag() {
|
|
12667
|
+
draggingHandle.value = null;
|
|
12668
|
+
emitLayout();
|
|
12669
|
+
}
|
|
12670
|
+
function emitLayout() {
|
|
12671
|
+
emit("layout", panels.values().map((t) => t.size));
|
|
12672
|
+
}
|
|
12673
|
+
provideSplitterRoot({
|
|
12674
|
+
orientation: toRef(() => __props.orientation),
|
|
12675
|
+
disabled: toRef(() => __props.disabled),
|
|
12676
|
+
panels,
|
|
12677
|
+
handles,
|
|
12678
|
+
dragging,
|
|
12679
|
+
draggingHandle,
|
|
12680
|
+
rootEl,
|
|
12681
|
+
panel,
|
|
12682
|
+
resize,
|
|
12683
|
+
onStartDrag,
|
|
12684
|
+
onEndDrag,
|
|
12685
|
+
collapse,
|
|
12686
|
+
expand,
|
|
12687
|
+
distribute
|
|
12688
|
+
});
|
|
12689
|
+
__expose({ distribute });
|
|
12690
|
+
const slotProps = toRef(() => ({
|
|
12691
|
+
orientation: __props.orientation,
|
|
12692
|
+
isDisabled: __props.disabled,
|
|
12693
|
+
sizes: panels.values().map((t) => t.size),
|
|
12694
|
+
isDragging: dragging.value,
|
|
12695
|
+
distribute,
|
|
12696
|
+
attrs: {
|
|
12697
|
+
"data-orientation": __props.orientation,
|
|
12698
|
+
"data-dragging": dragging.value || void 0
|
|
12699
|
+
}
|
|
12700
|
+
}));
|
|
12701
|
+
return (_ctx, _cache) => {
|
|
12702
|
+
return openBlock(), createBlock(unref(Atom_default), mergeProps({ ref: "root" }, {
|
|
12703
|
+
...unref(attrs),
|
|
12704
|
+
...slotProps.value.attrs
|
|
12705
|
+
}, {
|
|
12706
|
+
as: __props.as,
|
|
12707
|
+
renderless: __props.renderless,
|
|
12708
|
+
style: {
|
|
12709
|
+
display: "flex",
|
|
12710
|
+
flexDirection: __props.orientation === "horizontal" ? "row" : "column"
|
|
12711
|
+
}
|
|
12712
|
+
}), {
|
|
12713
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
|
|
12714
|
+
_: 3
|
|
12715
|
+
}, 16, [
|
|
12716
|
+
"as",
|
|
12717
|
+
"renderless",
|
|
12718
|
+
"style"
|
|
12719
|
+
]);
|
|
12720
|
+
};
|
|
12721
|
+
}
|
|
12722
|
+
});
|
|
12723
|
+
var SplitterRoot_default = _sfc_main$16;
|
|
12724
|
+
|
|
12725
|
+
//#endregion
|
|
12726
|
+
//#region src/components/Splitter/SplitterPanel.vue
|
|
12727
|
+
const _sfc_main$15 = /* @__PURE__ */ defineComponent({
|
|
12728
|
+
name: "SplitterPanel",
|
|
12729
|
+
inheritAttrs: false,
|
|
12730
|
+
__name: "SplitterPanel",
|
|
12731
|
+
props: /* @__PURE__ */ mergeModels({
|
|
12732
|
+
defaultSize: {},
|
|
12733
|
+
minSize: { default: 0 },
|
|
12734
|
+
maxSize: { default: 100 },
|
|
12735
|
+
collapsible: {
|
|
12736
|
+
type: Boolean,
|
|
12737
|
+
default: false
|
|
12738
|
+
},
|
|
12739
|
+
collapsedSize: { default: 0 },
|
|
12740
|
+
as: { default: "div" },
|
|
12741
|
+
renderless: { type: Boolean }
|
|
12742
|
+
}, {
|
|
12743
|
+
"collapsed": {
|
|
12744
|
+
type: Boolean,
|
|
12745
|
+
default: void 0
|
|
12746
|
+
},
|
|
12747
|
+
"collapsedModifiers": {}
|
|
12748
|
+
}),
|
|
12749
|
+
emits: /* @__PURE__ */ mergeModels(["update:collapsed", "resize"], ["update:collapsed"]),
|
|
12750
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
12751
|
+
const attrs = useAttrs();
|
|
12752
|
+
const collapsed = useModel(__props, "collapsed");
|
|
12753
|
+
const emit = __emit;
|
|
12754
|
+
const splitter = useSplitterRoot();
|
|
12755
|
+
const panelId = /* @__PURE__ */ useId();
|
|
12756
|
+
const ticket = splitter.panels.register({
|
|
12757
|
+
id: panelId,
|
|
12758
|
+
size: __props.defaultSize,
|
|
12759
|
+
minSize: __props.minSize,
|
|
12760
|
+
maxSize: __props.maxSize,
|
|
12761
|
+
collapsible: __props.collapsible,
|
|
12762
|
+
collapsedSize: __props.collapsedSize,
|
|
12763
|
+
defaultSize: __props.defaultSize
|
|
12764
|
+
});
|
|
12765
|
+
watchEffect(() => {
|
|
12766
|
+
ticket.minSize = __props.minSize;
|
|
12767
|
+
ticket.maxSize = __props.maxSize;
|
|
12768
|
+
ticket.collapsible = __props.collapsible;
|
|
12769
|
+
ticket.collapsedSize = __props.collapsedSize;
|
|
12770
|
+
ticket.defaultSize = __props.defaultSize;
|
|
12771
|
+
});
|
|
12772
|
+
onUnmounted(() => {
|
|
12773
|
+
splitter.panels.unregister(ticket.id);
|
|
12774
|
+
});
|
|
12775
|
+
const size = toRef(() => ticket.size);
|
|
12776
|
+
const isCollapsed = toRef(() => __props.collapsible && !toValue(ticket.isSelected));
|
|
12777
|
+
function collapse() {
|
|
12778
|
+
splitter.collapse(ticket.index);
|
|
12779
|
+
}
|
|
12780
|
+
function expand() {
|
|
12781
|
+
splitter.expand(ticket.index);
|
|
12782
|
+
}
|
|
12783
|
+
__expose({
|
|
12784
|
+
collapse,
|
|
12785
|
+
expand,
|
|
12786
|
+
size,
|
|
12787
|
+
isCollapsed
|
|
12788
|
+
});
|
|
12789
|
+
watch(collapsed, (val) => {
|
|
12790
|
+
if (val === void 0) return;
|
|
12791
|
+
if (val && !isCollapsed.value) collapse();
|
|
12792
|
+
else if (!val && isCollapsed.value) expand();
|
|
12793
|
+
}, {
|
|
12794
|
+
immediate: true,
|
|
12795
|
+
flush: "post"
|
|
12796
|
+
});
|
|
12797
|
+
watch(isCollapsed, (val) => {
|
|
12798
|
+
if (collapsed.value === void 0) return;
|
|
12799
|
+
collapsed.value = val;
|
|
12800
|
+
});
|
|
12801
|
+
watch(size, (val) => emit("resize", val));
|
|
12802
|
+
const slotProps = toRef(() => ({
|
|
12803
|
+
size: size.value,
|
|
12804
|
+
isCollapsed: isCollapsed.value,
|
|
12805
|
+
collapse,
|
|
12806
|
+
expand,
|
|
12807
|
+
attrs: {
|
|
12808
|
+
"id": panelId,
|
|
12809
|
+
"data-orientation": splitter.orientation.value,
|
|
12810
|
+
"data-panel-index": ticket.index,
|
|
12811
|
+
"data-collapsed": isCollapsed.value || void 0
|
|
12812
|
+
}
|
|
12813
|
+
}));
|
|
12814
|
+
return (_ctx, _cache) => {
|
|
12815
|
+
return openBlock(), createBlock(unref(Atom_default), mergeProps({
|
|
12816
|
+
...unref(attrs),
|
|
12817
|
+
...slotProps.value.attrs
|
|
12818
|
+
}, {
|
|
12819
|
+
as: __props.as,
|
|
12820
|
+
renderless: __props.renderless,
|
|
12821
|
+
style: {
|
|
12822
|
+
flexGrow: 0,
|
|
12823
|
+
flexShrink: 0,
|
|
12824
|
+
flexBasis: `${size.value}%`,
|
|
12825
|
+
overflow: "hidden"
|
|
12826
|
+
}
|
|
12827
|
+
}), {
|
|
12828
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
|
|
12829
|
+
_: 3
|
|
12830
|
+
}, 16, [
|
|
12831
|
+
"as",
|
|
12832
|
+
"renderless",
|
|
12833
|
+
"style"
|
|
12834
|
+
]);
|
|
12835
|
+
};
|
|
12836
|
+
}
|
|
12837
|
+
});
|
|
12838
|
+
var SplitterPanel_default = _sfc_main$15;
|
|
12839
|
+
|
|
12840
|
+
//#endregion
|
|
12841
|
+
//#region src/components/Splitter/SplitterHandle.vue
|
|
12842
|
+
const _sfc_main$14 = /* @__PURE__ */ defineComponent({
|
|
12843
|
+
name: "SplitterHandle",
|
|
12844
|
+
inheritAttrs: false,
|
|
12845
|
+
__name: "SplitterHandle",
|
|
12846
|
+
props: {
|
|
12847
|
+
disabled: {
|
|
12848
|
+
type: Boolean,
|
|
12849
|
+
default: false
|
|
12850
|
+
},
|
|
12851
|
+
label: {},
|
|
12852
|
+
as: { default: "div" },
|
|
12853
|
+
renderless: { type: Boolean }
|
|
12854
|
+
},
|
|
12855
|
+
setup(__props) {
|
|
12856
|
+
const attrs = useAttrs();
|
|
12857
|
+
const ARROW_STEP = 1;
|
|
12858
|
+
const PAGE_STEP = 10;
|
|
12859
|
+
const splitter = useSplitterRoot();
|
|
12860
|
+
const ticket = splitter.handles.register();
|
|
12861
|
+
onUnmounted(() => {
|
|
12862
|
+
splitter.handles.unregister(ticket.id);
|
|
12863
|
+
});
|
|
12864
|
+
const hovering = shallowRef(false);
|
|
12865
|
+
const startPosition = shallowRef(0);
|
|
12866
|
+
let rafId = 0;
|
|
12867
|
+
let latestPos = 0;
|
|
12868
|
+
const isDisabled = toRef(() => __props.disabled || splitter.disabled.value);
|
|
12869
|
+
const isHorizontal = toRef(() => splitter.orientation.value === "horizontal");
|
|
12870
|
+
const state = toRef(() => {
|
|
12871
|
+
if (splitter.draggingHandle.value === ticket.index) return "drag";
|
|
12872
|
+
if (hovering.value) return "hover";
|
|
12873
|
+
return "inactive";
|
|
12874
|
+
});
|
|
12875
|
+
const valuenow = toRef(() => Math.round(splitter.panel(ticket.index)?.size ?? 0));
|
|
12876
|
+
const valuemin = toRef(() => {
|
|
12877
|
+
const p = splitter.panel(ticket.index);
|
|
12878
|
+
if (!p) return 0;
|
|
12879
|
+
return p.collapsible ? p.collapsedSize : p.minSize;
|
|
12880
|
+
});
|
|
12881
|
+
const valuemax = toRef(() => {
|
|
12882
|
+
const p = splitter.panel(ticket.index);
|
|
12883
|
+
const adjacent = splitter.panel(ticket.index + 1);
|
|
12884
|
+
if (!p || !adjacent) return 100;
|
|
12885
|
+
const adjMin = adjacent.collapsible ? adjacent.collapsedSize : adjacent.minSize;
|
|
12886
|
+
return Math.min(p.maxSize, p.size + adjacent.size - adjMin);
|
|
12887
|
+
});
|
|
12888
|
+
function onPointerDown(e) {
|
|
12889
|
+
if (isDisabled.value) return;
|
|
12890
|
+
e.currentTarget.setPointerCapture(e.pointerId);
|
|
12891
|
+
startPosition.value = isHorizontal.value ? e.clientX : e.clientY;
|
|
12892
|
+
if (IN_BROWSER) {
|
|
12893
|
+
document.documentElement.style.userSelect = "none";
|
|
12894
|
+
document.documentElement.style.touchAction = "none";
|
|
12895
|
+
}
|
|
12896
|
+
splitter.onStartDrag(ticket.index);
|
|
12897
|
+
}
|
|
12898
|
+
useToggleScope(() => splitter.draggingHandle.value === ticket.index, () => {
|
|
12899
|
+
useDocumentEventListener("pointermove", (e) => {
|
|
12900
|
+
latestPos = isHorizontal.value ? e.clientX : e.clientY;
|
|
12901
|
+
if (rafId) return;
|
|
12902
|
+
rafId = requestAnimationFrame(() => {
|
|
12903
|
+
const root = splitter.rootEl.value;
|
|
12904
|
+
if (!root) return;
|
|
12905
|
+
const rootSize = isHorizontal.value ? root.offsetWidth : root.offsetHeight;
|
|
12906
|
+
if (!rootSize) return;
|
|
12907
|
+
const delta = (latestPos - startPosition.value) / rootSize * 100;
|
|
12908
|
+
startPosition.value = latestPos;
|
|
12909
|
+
splitter.resize(ticket.index, delta);
|
|
12910
|
+
rafId = 0;
|
|
12911
|
+
});
|
|
12912
|
+
});
|
|
12913
|
+
useDocumentEventListener("pointerup", () => {
|
|
12914
|
+
if (rafId) cancelAnimationFrame(rafId);
|
|
12915
|
+
rafId = 0;
|
|
12916
|
+
if (IN_BROWSER) {
|
|
12917
|
+
document.documentElement.style.userSelect = "";
|
|
12918
|
+
document.documentElement.style.touchAction = "";
|
|
12919
|
+
}
|
|
12920
|
+
splitter.onEndDrag();
|
|
12921
|
+
});
|
|
12922
|
+
onScopeDispose(() => {
|
|
12923
|
+
if (rafId) cancelAnimationFrame(rafId);
|
|
12924
|
+
rafId = 0;
|
|
12925
|
+
splitter.onEndDrag();
|
|
12926
|
+
if (IN_BROWSER) {
|
|
12927
|
+
document.documentElement.style.userSelect = "";
|
|
12928
|
+
document.documentElement.style.touchAction = "";
|
|
12929
|
+
}
|
|
12930
|
+
});
|
|
12931
|
+
});
|
|
12932
|
+
function onKeydown(e) {
|
|
12933
|
+
if (isDisabled.value) return;
|
|
12934
|
+
const forward = isHorizontal.value ? "ArrowRight" : "ArrowDown";
|
|
12935
|
+
const backward = isHorizontal.value ? "ArrowLeft" : "ArrowUp";
|
|
12936
|
+
switch (e.key) {
|
|
12937
|
+
case forward:
|
|
12938
|
+
e.preventDefault();
|
|
12939
|
+
splitter.resize(ticket.index, ARROW_STEP, { emit: true });
|
|
12940
|
+
break;
|
|
12941
|
+
case backward:
|
|
12942
|
+
e.preventDefault();
|
|
12943
|
+
splitter.resize(ticket.index, -ARROW_STEP, { emit: true });
|
|
12944
|
+
break;
|
|
12945
|
+
case "PageDown":
|
|
12946
|
+
e.preventDefault();
|
|
12947
|
+
splitter.resize(ticket.index, PAGE_STEP, { emit: true });
|
|
12948
|
+
break;
|
|
12949
|
+
case "PageUp":
|
|
12950
|
+
e.preventDefault();
|
|
12951
|
+
splitter.resize(ticket.index, -PAGE_STEP, { emit: true });
|
|
12952
|
+
break;
|
|
12953
|
+
case "Home": {
|
|
12954
|
+
e.preventDefault();
|
|
12955
|
+
const p = splitter.panel(ticket.index);
|
|
12956
|
+
if (p?.collapsible) splitter.collapse(ticket.index, ticket.index + 1);
|
|
12957
|
+
else {
|
|
12958
|
+
const current = p?.size ?? 0;
|
|
12959
|
+
splitter.resize(ticket.index, valuemin.value - current, { emit: true });
|
|
12960
|
+
}
|
|
12961
|
+
break;
|
|
12962
|
+
}
|
|
12963
|
+
case "End": {
|
|
12964
|
+
e.preventDefault();
|
|
12965
|
+
const p = splitter.panel(ticket.index);
|
|
12966
|
+
if (p?.collapsible && !toValue(p.isSelected)) splitter.expand(ticket.index, ticket.index + 1);
|
|
12967
|
+
else {
|
|
12968
|
+
const current = p?.size ?? 0;
|
|
12969
|
+
splitter.resize(ticket.index, valuemax.value - current, { emit: true });
|
|
12970
|
+
}
|
|
12971
|
+
break;
|
|
12972
|
+
}
|
|
12973
|
+
case "Enter": {
|
|
12974
|
+
e.preventDefault();
|
|
12975
|
+
const p = splitter.panel(ticket.index);
|
|
12976
|
+
if (!p?.collapsible) break;
|
|
12977
|
+
if (toValue(p.isSelected)) splitter.collapse(ticket.index, ticket.index + 1);
|
|
12978
|
+
else splitter.expand(ticket.index, ticket.index + 1);
|
|
12979
|
+
break;
|
|
12980
|
+
}
|
|
12981
|
+
}
|
|
12982
|
+
}
|
|
12983
|
+
function onPointerEnter() {
|
|
12984
|
+
hovering.value = true;
|
|
12985
|
+
}
|
|
12986
|
+
function onPointerLeave() {
|
|
12987
|
+
hovering.value = false;
|
|
12988
|
+
}
|
|
12989
|
+
const ariaOrientation = toRef(() => splitter.orientation.value === "horizontal" ? "vertical" : "horizontal");
|
|
12990
|
+
const ariaControls = toRef(() => {
|
|
12991
|
+
const p = splitter.panel(ticket.index);
|
|
12992
|
+
return /* @__PURE__ */ isNullOrUndefined(p) ? void 0 : String(p.id);
|
|
12993
|
+
});
|
|
12994
|
+
const slotProps = toRef(() => ({
|
|
12995
|
+
isDragging: splitter.draggingHandle.value === ticket.index,
|
|
12996
|
+
isDisabled: isDisabled.value,
|
|
12997
|
+
state: state.value,
|
|
12998
|
+
attrs: {
|
|
12999
|
+
"role": "separator",
|
|
13000
|
+
"tabindex": isDisabled.value ? -1 : 0,
|
|
13001
|
+
"aria-valuenow": valuenow.value,
|
|
13002
|
+
"aria-valuemin": valuemin.value,
|
|
13003
|
+
"aria-valuemax": valuemax.value,
|
|
13004
|
+
"aria-orientation": ariaOrientation.value,
|
|
13005
|
+
"aria-controls": ariaControls.value,
|
|
13006
|
+
"aria-label": __props.label || void 0,
|
|
13007
|
+
"aria-disabled": isDisabled.value || void 0,
|
|
13008
|
+
"data-state": state.value,
|
|
13009
|
+
"data-orientation": splitter.orientation.value,
|
|
13010
|
+
"data-disabled": isDisabled.value || void 0,
|
|
13011
|
+
"style": { "touch-action": "none" },
|
|
13012
|
+
"onPointerdown": onPointerDown,
|
|
13013
|
+
"onPointerenter": onPointerEnter,
|
|
13014
|
+
"onPointerleave": onPointerLeave,
|
|
13015
|
+
"onKeydown": onKeydown
|
|
13016
|
+
}
|
|
13017
|
+
}));
|
|
13018
|
+
return (_ctx, _cache) => {
|
|
13019
|
+
return openBlock(), createBlock(unref(Atom_default), mergeProps({
|
|
13020
|
+
...unref(attrs),
|
|
13021
|
+
...slotProps.value.attrs
|
|
13022
|
+
}, {
|
|
13023
|
+
as: __props.as,
|
|
13024
|
+
renderless: __props.renderless,
|
|
13025
|
+
style: { flexShrink: 0 }
|
|
13026
|
+
}), {
|
|
13027
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
|
|
13028
|
+
_: 3
|
|
13029
|
+
}, 16, ["as", "renderless"]);
|
|
13030
|
+
};
|
|
13031
|
+
}
|
|
13032
|
+
});
|
|
13033
|
+
var SplitterHandle_default = _sfc_main$14;
|
|
13034
|
+
|
|
13035
|
+
//#endregion
|
|
13036
|
+
//#region src/components/Splitter/index.ts
|
|
13037
|
+
/**
|
|
13038
|
+
* Splitter component with sub-components for building resizable panel layouts.
|
|
13039
|
+
*
|
|
13040
|
+
* @see https://0.vuetifyjs.com/components/splitter
|
|
13041
|
+
*
|
|
13042
|
+
* @example
|
|
13043
|
+
* ```vue
|
|
13044
|
+
* <script lang="ts" setup>
|
|
13045
|
+
* import { Splitter } from '@vuetify/v0'
|
|
13046
|
+
* <\/script>
|
|
13047
|
+
*
|
|
13048
|
+
* <template>
|
|
13049
|
+
* <Splitter.Root orientation="horizontal">
|
|
13050
|
+
* <Splitter.Panel :default-size="60" :min-size="20">
|
|
13051
|
+
* Left content
|
|
13052
|
+
* </Splitter.Panel>
|
|
13053
|
+
*
|
|
13054
|
+
* <Splitter.Handle />
|
|
13055
|
+
*
|
|
13056
|
+
* <Splitter.Panel :default-size="40" :min-size="20">
|
|
13057
|
+
* Right content
|
|
13058
|
+
* </Splitter.Panel>
|
|
13059
|
+
* </Splitter.Root>
|
|
13060
|
+
* </template>
|
|
13061
|
+
* ```
|
|
13062
|
+
*/
|
|
13063
|
+
const Splitter = {
|
|
13064
|
+
Root: SplitterRoot_default,
|
|
13065
|
+
Panel: SplitterPanel_default,
|
|
13066
|
+
Handle: SplitterHandle_default
|
|
13067
|
+
};
|
|
13068
|
+
|
|
11697
13069
|
//#endregion
|
|
11698
13070
|
//#region src/components/Switch/SwitchGroup.vue
|
|
11699
13071
|
const [useSwitchGroup, provideSwitchGroup] = createContext();
|
|
@@ -12701,4 +14073,4 @@ const Tabs = {
|
|
|
12701
14073
|
};
|
|
12702
14074
|
|
|
12703
14075
|
//#endregion
|
|
12704
|
-
export { Atom_default as Atom, Avatar, AvatarFallback_default as AvatarFallback, AvatarImage_default as AvatarImage, AvatarRoot_default as AvatarRoot, Breadcrumbs, BreadcrumbsDivider_default as BreadcrumbsDivider, BreadcrumbsEllipsis_default as BreadcrumbsEllipsis, BreadcrumbsItem_default as BreadcrumbsItem, BreadcrumbsLink_default as BreadcrumbsLink, BreadcrumbsList_default as BreadcrumbsList, BreadcrumbsPage_default as BreadcrumbsPage, BreadcrumbsRoot_default as BreadcrumbsRoot, COMMON_ELEMENTS, Checkbox, CheckboxGroup_default as CheckboxGroup, CheckboxHiddenInput_default as CheckboxHiddenInput, CheckboxIndicator_default as CheckboxIndicator, CheckboxRoot_default as CheckboxRoot, CheckboxSelectAll_default as CheckboxSelectAll, ClientAdapter, ConsolaLoggerAdapter, DataTableAdapter, Dialog, DialogActivator_default as DialogActivator, DialogClose_default as DialogClose, DialogContent_default as DialogContent, DialogDescription_default as DialogDescription, DialogRoot_default as DialogRoot, DialogTitle_default as DialogTitle, ExpansionPanel, ExpansionPanelActivator_default as ExpansionPanelActivator, ExpansionPanelContent_default as ExpansionPanelContent, ExpansionPanelHeader_default as ExpansionPanelHeader, ExpansionPanelItem_default as ExpansionPanelItem, ExpansionPanelRoot_default as ExpansionPanelRoot, FeaturesAdapter, Group, GroupItem_default as GroupItem, GroupRoot_default as GroupRoot, IN_BROWSER, MemoryAdapter, Pagination, PaginationEllipsis_default as PaginationEllipsis, PaginationFirst_default as PaginationFirst, PaginationItem_default as PaginationItem, PaginationLast_default as PaginationLast, PaginationNext_default as PaginationNext, PaginationPrev_default as PaginationPrev, PaginationRoot_default as PaginationRoot, PaginationStatus_default as PaginationStatus, PermissionAdapter, PinoLoggerAdapter, Popover, PopoverActivator_default as PopoverActivator, PopoverContent_default as PopoverContent, PopoverRoot_default as PopoverRoot, Radio, RadioGroup_default as RadioGroup, RadioHiddenInput_default as RadioHiddenInput, RadioIndicator_default as RadioIndicator, RadioRoot_default as RadioRoot, SELF_CLOSING_TAGS, SUPPORTS_INTERSECTION_OBSERVER, SUPPORTS_MATCH_MEDIA, SUPPORTS_MUTATION_OBSERVER, SUPPORTS_OBSERVER, SUPPORTS_TOUCH, Scrim_default as Scrim, Selection, SelectionItem_default as SelectionItem, SelectionRoot_default as SelectionRoot, ServerAdapter, Single, SingleItem_default as SingleItem, SingleRoot_default as SingleRoot, Step, StepItem_default as StepItem, StepRoot_default as StepRoot, Switch, SwitchGroup_default as SwitchGroup, SwitchHiddenInput_default as SwitchHiddenInput, SwitchRoot_default as SwitchRoot, SwitchSelectAll_default as SwitchSelectAll, SwitchThumb_default as SwitchThumb, SwitchTrack_default as SwitchTrack, Tabs, TabsItem_default as TabsItem, TabsList_default as TabsList, TabsPanel_default as TabsPanel, TabsRoot_default as TabsRoot, VirtualAdapter, Vuetify0LocaleAdapter, Vuetify0LoggerAdapter, Vuetify0ThemeAdapter, __LOGGER_ENABLED__, clamp, createBreadcrumbs, createBreadcrumbsContext, createBreakpoints, createBreakpointsContext, createBreakpointsPlugin, createContext, createDataTable, createDataTableContext, createDate, createDateContext, createDatePlugin, createFallbackHydration, createFeatures, createFeaturesContext, createFeaturesPlugin, createFilter, createFilterContext, createForm, createFormContext, createGroup, createGroupContext, createHydration, createHydrationContext, createHydrationPlugin, createLocale, createLocaleContext, createLocaleFallback, createLocalePlugin, createLogger, createLoggerContext, createLoggerPlugin, createNested, createNestedContext, createOverflow, createOverflowContext, createPagination, createPaginationContext, createPermissions, createPermissionsContext, createPermissionsPlugin, createPlugin, createPluginContext, createQueue, createQueueContext, createRegistry, createRegistryContext, createSelection, createSelectionContext, createSingle, createSingleContext, createStack, createStackContext, createStackPlugin, createStep, createStepContext, createStorage, createStorageContext, createStoragePlugin, createTheme, createThemeContext, createThemePlugin, createTimeline, createTimelineContext, createTokens, createTokensContext, createTrinity, createVirtual, createVirtualContext, debounce, instanceExists, instanceName, isArray, isBoolean, isElement, isFunction, isNaN, isNull, isNullOrUndefined, isNumber, isObject, isPrimitive, isSelfClosingTag, isString, isSymbol, isUndefined, mergeDeep, multipleOpenStrategy, provideAvatarRoot, provideBreadcrumbsRoot, provideCheckboxGroup, provideCheckboxRoot, provideContext, provideDialogContext, provideExpansionPanelItem, provideExpansionPanelRoot, provideGroupRoot, providePaginationControls, providePaginationItems, providePaginationRoot, providePopoverContext, provideRadioGroup, provideRadioRoot, provideSelectionRoot, provideSingleRoot, provideStepRoot, provideSwitchGroup, provideSwitchRoot, provideTabsRoot, range, singleOpenStrategy, toArray, toElement, toReactive, useAvatarRoot, useBreadcrumbs, useBreadcrumbsRoot, useBreakpoints, useCheckboxGroup, useCheckboxRoot, useClickOutside, useContext, useDataTable, useDate, useDialogContext, useDocumentEventListener, useElementIntersection, useElementSize, useEventListener, useExpansionPanelItem, useExpansionPanelRoot, useFeatures, useFilter, useForm, useGroup, useGroupRoot, useHotkey, useHydration, useId, useIntersectionObserver, useLazy, useLocale, useLogger, useMediaQuery, useMutationObserver, useNested, useOverflow, usePagination, usePaginationControls, usePaginationItems, usePaginationRoot, usePermissions, usePopoverContext, usePrefersContrast, usePrefersDark, usePrefersReducedMotion, useProxyModel, useProxyRegistry, useQueue, useRadioGroup, useRadioRoot, useRegistry, useResizeObserver, useSelection, useSelectionRoot, useSingle, useSingleRoot, useStack, useStep, useStepRoot, useStorage, useSwitchGroup, useSwitchRoot, useTabsRoot, useTheme, useTimeline, useToggleScope, useTokens, useVirtual, useWindowEventListener, version };
|
|
14076
|
+
export { Atom_default as Atom, Avatar, AvatarFallback_default as AvatarFallback, AvatarImage_default as AvatarImage, AvatarRoot_default as AvatarRoot, Breadcrumbs, BreadcrumbsDivider_default as BreadcrumbsDivider, BreadcrumbsEllipsis_default as BreadcrumbsEllipsis, BreadcrumbsItem_default as BreadcrumbsItem, BreadcrumbsLink_default as BreadcrumbsLink, BreadcrumbsList_default as BreadcrumbsList, BreadcrumbsPage_default as BreadcrumbsPage, BreadcrumbsRoot_default as BreadcrumbsRoot, COMMON_ELEMENTS, Checkbox, CheckboxGroup_default as CheckboxGroup, CheckboxHiddenInput_default as CheckboxHiddenInput, CheckboxIndicator_default as CheckboxIndicator, CheckboxRoot_default as CheckboxRoot, CheckboxSelectAll_default as CheckboxSelectAll, ClientAdapter, ConsolaLoggerAdapter, DataTableAdapter, Dialog, DialogActivator_default as DialogActivator, DialogClose_default as DialogClose, DialogContent_default as DialogContent, DialogDescription_default as DialogDescription, DialogRoot_default as DialogRoot, DialogTitle_default as DialogTitle, ExpansionPanel, ExpansionPanelActivator_default as ExpansionPanelActivator, ExpansionPanelContent_default as ExpansionPanelContent, ExpansionPanelHeader_default as ExpansionPanelHeader, ExpansionPanelItem_default as ExpansionPanelItem, ExpansionPanelRoot_default as ExpansionPanelRoot, FeaturesAdapter, Group, GroupItem_default as GroupItem, GroupRoot_default as GroupRoot, IN_BROWSER, MemoryAdapter, Pagination, PaginationEllipsis_default as PaginationEllipsis, PaginationFirst_default as PaginationFirst, PaginationItem_default as PaginationItem, PaginationLast_default as PaginationLast, PaginationNext_default as PaginationNext, PaginationPrev_default as PaginationPrev, PaginationRoot_default as PaginationRoot, PaginationStatus_default as PaginationStatus, PermissionAdapter, PinoLoggerAdapter, Popover, PopoverActivator_default as PopoverActivator, PopoverContent_default as PopoverContent, PopoverRoot_default as PopoverRoot, Radio, RadioGroup_default as RadioGroup, RadioHiddenInput_default as RadioHiddenInput, RadioIndicator_default as RadioIndicator, RadioRoot_default as RadioRoot, SELF_CLOSING_TAGS, SUPPORTS_INTERSECTION_OBSERVER, SUPPORTS_MATCH_MEDIA, SUPPORTS_MUTATION_OBSERVER, SUPPORTS_OBSERVER, SUPPORTS_TOUCH, Scrim_default as Scrim, Selection, SelectionItem_default as SelectionItem, SelectionRoot_default as SelectionRoot, ServerAdapter, Single, SingleItem_default as SingleItem, SingleRoot_default as SingleRoot, Slider, SliderHiddenInput_default as SliderHiddenInput, SliderRange_default as SliderRange, SliderRoot_default as SliderRoot, SliderThumb_default as SliderThumb, SliderTrack_default as SliderTrack, Splitter, SplitterHandle_default as SplitterHandle, SplitterPanel_default as SplitterPanel, SplitterRoot_default as SplitterRoot, Step, StepItem_default as StepItem, StepRoot_default as StepRoot, Switch, SwitchGroup_default as SwitchGroup, SwitchHiddenInput_default as SwitchHiddenInput, SwitchRoot_default as SwitchRoot, SwitchSelectAll_default as SwitchSelectAll, SwitchThumb_default as SwitchThumb, SwitchTrack_default as SwitchTrack, Tabs, TabsItem_default as TabsItem, TabsList_default as TabsList, TabsPanel_default as TabsPanel, TabsRoot_default as TabsRoot, VirtualAdapter, Vuetify0LocaleAdapter, Vuetify0LoggerAdapter, Vuetify0ThemeAdapter, __LOGGER_ENABLED__, clamp, createBreadcrumbs, createBreadcrumbsContext, createBreakpoints, createBreakpointsContext, createBreakpointsPlugin, createContext, createDataTable, createDataTableContext, createDate, createDateContext, createDatePlugin, createFallbackHydration, createFeatures, createFeaturesContext, createFeaturesPlugin, createFilter, createFilterContext, createForm, createFormContext, createGroup, createGroupContext, createHydration, createHydrationContext, createHydrationPlugin, createLocale, createLocaleContext, createLocaleFallback, createLocalePlugin, createLogger, createLoggerContext, createLoggerPlugin, createModel, createNested, createNestedContext, createOverflow, createOverflowContext, createPagination, createPaginationContext, createPermissions, createPermissionsContext, createPermissionsPlugin, createPlugin, createPluginContext, createQueue, createQueueContext, createRegistry, createRegistryContext, createSelection, createSelectionContext, createSingle, createSingleContext, createSlider, createStack, createStackContext, createStackPlugin, createStep, createStepContext, createStorage, createStorageContext, createStoragePlugin, createTheme, createThemeContext, createThemePlugin, createTimeline, createTimelineContext, createTokens, createTokensContext, createTrinity, createVirtual, createVirtualContext, debounce, instanceExists, instanceName, isArray, isBoolean, isElement, isFunction, isNaN, isNull, isNullOrUndefined, isNumber, isObject, isPrimitive, isSelfClosingTag, isString, isSymbol, isUndefined, mergeDeep, multipleOpenStrategy, provideAvatarRoot, provideBreadcrumbsRoot, provideCheckboxGroup, provideCheckboxRoot, provideContext, provideDialogContext, provideExpansionPanelItem, provideExpansionPanelRoot, provideGroupRoot, providePaginationControls, providePaginationItems, providePaginationRoot, providePopoverContext, provideRadioGroup, provideRadioRoot, provideSelectionRoot, provideSingleRoot, provideSliderRoot, provideSplitterRoot, provideStepRoot, provideSwitchGroup, provideSwitchRoot, provideTabsRoot, range, singleOpenStrategy, toArray, toElement, toReactive, useAvatarRoot, useBreadcrumbs, useBreadcrumbsRoot, useBreakpoints, useCheckboxGroup, useCheckboxRoot, useClickOutside, useContext, useDataTable, useDate, useDialogContext, useDocumentEventListener, useElementIntersection, useElementSize, useEventListener, useExpansionPanelItem, useExpansionPanelRoot, useFeatures, useFilter, useForm, useGroup, useGroupRoot, useHotkey, useHydration, useId, useIntersectionObserver, useLazy, useLocale, useLogger, useMediaQuery, useMutationObserver, useNested, useOverflow, usePagination, usePaginationControls, usePaginationItems, usePaginationRoot, usePermissions, usePopoverContext, usePrefersContrast, usePrefersDark, usePrefersReducedMotion, useProxyModel, useProxyRegistry, useQueue, useRadioGroup, useRadioRoot, useRegistry, useResizeObserver, useSelection, useSelectionRoot, useSingle, useSingleRoot, useSliderRoot, useSplitterRoot, useStack, useStep, useStepRoot, useStorage, useSwitchGroup, useSwitchRoot, useTabsRoot, useTheme, useTimeline, useToggleScope, useTokens, useVirtual, useWindowEventListener, version };
|