@vtable-guild/vtable-guild 2.2.2 → 2.3.0
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/core/src/components/Button.mjs +108 -0
- package/dist/core/src/components/Checkbox.mjs +84 -0
- package/dist/core/src/components/Input.mjs +82 -0
- package/dist/core/src/components/Radio.mjs +69 -0
- package/dist/core/src/components/Scrollbar.mjs +179 -0
- package/dist/core/src/components/ScrollbarBar.mjs +103 -0
- package/dist/core/src/components/Tooltip.mjs +321 -0
- package/dist/core/src/components/VTableGuildConfigProvider.mjs +77 -0
- package/dist/core/src/components/VirtualList/Filler.mjs +55 -0
- package/dist/core/src/components/VirtualList/Item.mjs +29 -0
- package/dist/core/src/components/VirtualList/VirtualList.mjs +373 -0
- package/dist/core/src/components/VirtualList/VirtualScrollBar.mjs +216 -0
- package/dist/core/src/components/VirtualList/hooks/useChildren.mjs +21 -0
- package/dist/core/src/components/VirtualList/hooks/useDiffItem.mjs +16 -0
- package/dist/core/src/components/VirtualList/hooks/useFrameWheel.mjs +48 -0
- package/dist/core/src/components/VirtualList/hooks/useGetSize.mjs +25 -0
- package/dist/core/src/components/VirtualList/hooks/useHeights.mjs +56 -0
- package/dist/core/src/components/VirtualList/hooks/useMobileTouchMove.mjs +40 -0
- package/dist/core/src/components/VirtualList/hooks/useOriginScroll.mjs +17 -0
- package/dist/core/src/components/VirtualList/hooks/useScrollDrag.mjs +41 -0
- package/dist/core/src/components/VirtualList/hooks/useScrollTo.mjs +88 -0
- package/dist/core/src/components/VirtualList/utils/CacheMap.mjs +24 -0
- package/dist/core/src/components/VirtualList/utils/algorithmUtil.mjs +22 -0
- package/dist/core/src/components/VirtualList/utils/isFirefox.mjs +4 -0
- package/dist/core/src/components/VirtualList/utils/scrollbarUtil.mjs +7 -0
- package/dist/core/src/composables/useScrollbar.mjs +55 -0
- package/dist/core/src/composables/useTheme.mjs +92 -0
- package/dist/core/src/index.d.ts +1 -0
- package/dist/core/src/index.d.ts.map +1 -1
- package/dist/core/src/plugin/index.mjs +27 -0
- package/dist/core/src/utils/classPrefix.mjs +100 -0
- package/dist/core/src/utils/devWarn.d.ts +4 -0
- package/dist/core/src/utils/devWarn.d.ts.map +1 -0
- package/dist/core/src/utils/devWarn.mjs +5 -0
- package/dist/core/src/utils/mergeDeep.mjs +20 -0
- package/dist/core/src/utils/props.mjs +33 -0
- package/dist/core/src/utils/tv.mjs +19 -0
- package/dist/icons/src/AntdvEmptyIcon.mjs +37 -0
- package/dist/icons/src/AntdvSpinIndicator.mjs +23 -0
- package/dist/icons/src/CaretDownIcon.d.ts.map +1 -1
- package/dist/icons/src/CaretDownIcon.mjs +9 -0
- package/dist/icons/src/CaretRightIcon.d.ts.map +1 -1
- package/dist/icons/src/CaretUpIcon.d.ts.map +1 -1
- package/dist/icons/src/CaretUpIcon.mjs +9 -0
- package/dist/icons/src/DownOutlinedIcon.d.ts.map +1 -1
- package/dist/icons/src/DownOutlinedIcon.mjs +9 -0
- package/dist/icons/src/ElArrowDownIcon.d.ts.map +1 -1
- package/dist/icons/src/ElArrowDownIcon.mjs +9 -0
- package/dist/icons/src/ElCaretBottomIcon.d.ts.map +1 -1
- package/dist/icons/src/ElCaretBottomIcon.mjs +9 -0
- package/dist/icons/src/ElCaretTopIcon.d.ts.map +1 -1
- package/dist/icons/src/ElCaretTopIcon.mjs +9 -0
- package/dist/icons/src/ElFilterIcon.d.ts.map +1 -1
- package/dist/icons/src/ElLoadingIcon.mjs +28 -0
- package/dist/icons/src/FilterFilledIcon.d.ts.map +1 -1
- package/dist/icons/src/FilterFilledIcon.mjs +9 -0
- package/dist/icons/src/SearchIcon.d.ts.map +1 -1
- package/dist/icons/src/SearchIcon.mjs +9 -0
- package/dist/icons/src/createSvgIcon.d.ts +13 -0
- package/dist/icons/src/createSvgIcon.d.ts.map +1 -0
- package/dist/icons/src/createSvgIcon.mjs +23 -0
- package/dist/index.mjs +82 -10196
- package/dist/table/src/components/ColGroup.mjs +25 -0
- package/dist/table/src/components/ExpandIcon.mjs +60 -0
- package/dist/table/src/components/FilterDropdown.d.ts.map +1 -1
- package/dist/table/src/components/FilterDropdown.mjs +324 -0
- package/dist/table/src/components/FilterIcon.mjs +30 -0
- package/dist/table/src/components/ResizeHandle.mjs +28 -0
- package/dist/table/src/components/SelectionCheckbox.mjs +33 -0
- package/dist/table/src/components/SelectionDropdown.d.ts.map +1 -1
- package/dist/table/src/components/SelectionDropdown.mjs +73 -0
- package/dist/table/src/components/SelectionRadio.mjs +28 -0
- package/dist/table/src/components/SortButton.mjs +30 -0
- package/dist/table/src/components/Table.d.ts.map +1 -1
- package/dist/table/src/components/Table.mjs +781 -0
- package/dist/table/src/components/TableBody.mjs +124 -0
- package/dist/table/src/components/TableCell.d.ts.map +1 -1
- package/dist/table/src/components/TableCell.mjs +222 -0
- package/dist/table/src/components/TableEmpty.mjs +38 -0
- package/dist/table/src/components/TableHeader.mjs +51 -0
- package/dist/table/src/components/TableHeaderCell.d.ts.map +1 -1
- package/dist/table/src/components/TableHeaderCell.mjs +391 -0
- package/dist/table/src/components/TableLoading.mjs +46 -0
- package/dist/table/src/components/TableRow.mjs +34 -0
- package/dist/table/src/components/VTable.vue.d.ts.map +1 -1
- package/dist/table/src/components/VTable.vue.mjs +155 -0
- package/dist/table/src/components/VTable.vue2.mjs +4 -0
- package/dist/table/src/components/VTableSummary.mjs +29 -0
- package/dist/table/src/components/VTableSummaryCell.d.ts.map +1 -1
- package/dist/table/src/components/VTableSummaryCell.mjs +68 -0
- package/dist/table/src/components/VTableSummaryRow.mjs +19 -0
- package/dist/table/src/components/VirtualTableBody.d.ts.map +1 -1
- package/dist/table/src/components/VirtualTableBody.mjs +172 -0
- package/dist/table/src/composables/index.d.ts +2 -1
- package/dist/table/src/composables/index.d.ts.map +1 -1
- package/dist/table/src/composables/useColumns.d.ts +6 -1
- package/dist/table/src/composables/useColumns.d.ts.map +1 -1
- package/dist/table/src/composables/useColumns.mjs +81 -0
- package/dist/table/src/composables/useControlledColumnState.d.ts +24 -0
- package/dist/table/src/composables/useControlledColumnState.d.ts.map +1 -0
- package/dist/table/src/composables/useControlledColumnState.mjs +23 -0
- package/dist/table/src/composables/useExpand.mjs +37 -0
- package/dist/table/src/composables/useFilter.d.ts.map +1 -1
- package/dist/table/src/composables/useFilter.mjs +68 -0
- package/dist/table/src/composables/useFixedColumnStyle.d.ts +18 -0
- package/dist/table/src/composables/useFixedColumnStyle.d.ts.map +1 -0
- package/dist/table/src/composables/useFixedColumnStyle.mjs +21 -0
- package/dist/table/src/composables/useHoverState.mjs +26 -0
- package/dist/table/src/composables/useResize.mjs +42 -0
- package/dist/table/src/composables/useScroll.d.ts +5 -4
- package/dist/table/src/composables/useScroll.d.ts.map +1 -1
- package/dist/table/src/composables/useScroll.mjs +68 -0
- package/dist/table/src/composables/useSelection.d.ts.map +1 -1
- package/dist/table/src/composables/useSelection.mjs +246 -0
- package/dist/table/src/composables/useSorter.d.ts +1 -5
- package/dist/table/src/composables/useSorter.d.ts.map +1 -1
- package/dist/table/src/composables/useSorter.mjs +161 -0
- package/dist/table/src/composables/useTreeData.d.ts +2 -0
- package/dist/table/src/composables/useTreeData.d.ts.map +1 -1
- package/dist/table/src/composables/useTreeData.mjs +92 -0
- package/dist/table/src/composables/useVirtual.mjs +19 -0
- package/dist/table/src/constants.mjs +8 -0
- package/dist/table/src/context.d.ts +90 -85
- package/dist/table/src/context.d.ts.map +1 -1
- package/dist/table/src/context.mjs +4 -0
- package/dist/table/src/index.d.ts.map +1 -1
- package/dist/table/src/index.mjs +23 -0
- package/dist/table/src/preset-config.mjs +35 -0
- package/dist/table/src/utils/cell.mjs +79 -0
- package/dist/table/src/utils/popupPosition.d.ts +20 -0
- package/dist/table/src/utils/popupPosition.d.ts.map +1 -0
- package/dist/table/src/utils/popupPosition.mjs +24 -0
- package/dist/table/src/utils/popupPosition.test.d.ts +2 -0
- package/dist/table/src/utils/popupPosition.test.d.ts.map +1 -0
- package/dist/table/src/utils/vnode.mjs +10 -0
- package/dist/theme/src/presets/antdv/button.mjs +70 -0
- package/dist/theme/src/presets/antdv/checkbox.mjs +51 -0
- package/dist/theme/src/presets/antdv/input.mjs +40 -0
- package/dist/theme/src/presets/antdv/radio.mjs +34 -0
- package/dist/theme/src/presets/antdv/scrollbar.mjs +22 -0
- package/dist/theme/src/presets/antdv/table-locale.mjs +55 -0
- package/dist/theme/src/presets/antdv/table.mjs +285 -0
- package/dist/theme/src/presets/antdv/tooltip.mjs +20 -0
- package/dist/theme/src/presets/element-plus/button.mjs +70 -0
- package/dist/theme/src/presets/element-plus/checkbox.mjs +65 -0
- package/dist/theme/src/presets/element-plus/input.mjs +39 -0
- package/dist/theme/src/presets/element-plus/radio.mjs +34 -0
- package/dist/theme/src/presets/element-plus/scrollbar.mjs +22 -0
- package/dist/theme/src/presets/element-plus/table-locale.mjs +56 -0
- package/dist/theme/src/presets/element-plus/table.mjs +235 -0
- package/dist/theme/src/presets/element-plus/tooltip.mjs +21 -0
- package/dist/theme/src/presets/index.mjs +92 -0
- package/package.json +5 -2
- package/dist/index.cjs +0 -1
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { defineComponent as l, createVNode as c } from "vue";
|
|
2
|
+
import { useTheme as i } from "../composables/useTheme.mjs";
|
|
3
|
+
const s = {
|
|
4
|
+
slots: {
|
|
5
|
+
root: "inline-flex items-center justify-center border font-normal transition-all duration-200 ease-[cubic-bezier(0.645,0.045,0.355,1)] leading-[1.5714] cursor-pointer",
|
|
6
|
+
inner: ""
|
|
7
|
+
},
|
|
8
|
+
variants: {
|
|
9
|
+
type: {
|
|
10
|
+
default: {
|
|
11
|
+
root: "bg-[color:var(--color-surface)] text-[color:var(--color-on-surface)] border-[color:var(--color-border,#d9d9d9)] shadow-[0_2px_0_rgba(0,0,0,0.02)] hover:text-[color:var(--color-primary-hover)] hover:border-[color:var(--color-primary-hover)]"
|
|
12
|
+
},
|
|
13
|
+
primary: {
|
|
14
|
+
root: "bg-[color:var(--color-primary)] text-white border-transparent shadow-[0_2px_0_rgba(5,145,255,0.1)] hover:bg-[color:var(--color-primary-hover)] active:bg-[color:var(--color-primary-active,#0958d9)]"
|
|
15
|
+
},
|
|
16
|
+
link: {
|
|
17
|
+
root: "bg-transparent text-[color:var(--color-primary)] border-transparent shadow-none hover:text-[color:var(--color-primary-hover)] active:text-[color:var(--color-primary-active,#0958d9)]"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
size: {
|
|
21
|
+
sm: {
|
|
22
|
+
root: "h-[var(--vtg-btn-height-sm)] px-[var(--vtg-btn-padding-sm)] rounded-[var(--vtg-btn-border-radius-sm,4px)] text-[length:var(--vtg-table-font-size)]"
|
|
23
|
+
},
|
|
24
|
+
md: {
|
|
25
|
+
root: "h-[var(--vtg-btn-height-md)] px-[var(--vtg-btn-padding-md)] rounded-[var(--vtg-btn-border-radius)] text-[length:var(--vtg-table-font-size)]"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
disabled: {
|
|
29
|
+
true: {
|
|
30
|
+
root: "cursor-not-allowed"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
compoundVariants: [{
|
|
35
|
+
type: "default",
|
|
36
|
+
disabled: !0,
|
|
37
|
+
class: {
|
|
38
|
+
root: "bg-[color:var(--color-bg-disabled,rgba(0,0,0,0.04))] text-[color:var(--color-text-disabled)] border-[color:var(--color-border,#d9d9d9)] shadow-none hover:bg-[color:var(--color-bg-disabled,rgba(0,0,0,0.04))] hover:text-[color:var(--color-text-disabled)] hover:border-[color:var(--color-border,#d9d9d9)]"
|
|
39
|
+
}
|
|
40
|
+
}, {
|
|
41
|
+
type: "primary",
|
|
42
|
+
disabled: !0,
|
|
43
|
+
class: {
|
|
44
|
+
root: "bg-[color:var(--color-bg-disabled,rgba(0,0,0,0.04))] text-[color:var(--color-text-disabled)] border-[color:var(--color-border,#d9d9d9)] shadow-none hover:bg-[color:var(--color-bg-disabled,rgba(0,0,0,0.04))] hover:text-[color:var(--color-text-disabled)] hover:border-[color:var(--color-border,#d9d9d9)]"
|
|
45
|
+
}
|
|
46
|
+
}, {
|
|
47
|
+
type: "link",
|
|
48
|
+
disabled: !0,
|
|
49
|
+
class: {
|
|
50
|
+
root: "text-[color:var(--color-text-disabled)] hover:text-[color:var(--color-text-disabled)]"
|
|
51
|
+
}
|
|
52
|
+
}, {
|
|
53
|
+
type: "link",
|
|
54
|
+
size: "sm",
|
|
55
|
+
class: {
|
|
56
|
+
root: "px-1"
|
|
57
|
+
}
|
|
58
|
+
}],
|
|
59
|
+
defaultVariants: {
|
|
60
|
+
type: "default",
|
|
61
|
+
size: "md",
|
|
62
|
+
disabled: !1
|
|
63
|
+
}
|
|
64
|
+
}, v = /* @__PURE__ */ l({
|
|
65
|
+
name: "VButton",
|
|
66
|
+
props: {
|
|
67
|
+
type: {
|
|
68
|
+
type: String,
|
|
69
|
+
default: "default"
|
|
70
|
+
},
|
|
71
|
+
size: {
|
|
72
|
+
type: String,
|
|
73
|
+
default: "md"
|
|
74
|
+
},
|
|
75
|
+
disabled: {
|
|
76
|
+
type: Boolean,
|
|
77
|
+
default: !1
|
|
78
|
+
},
|
|
79
|
+
ui: {
|
|
80
|
+
type: Object,
|
|
81
|
+
default: void 0
|
|
82
|
+
},
|
|
83
|
+
class: {
|
|
84
|
+
type: String,
|
|
85
|
+
default: void 0
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
emits: ["click"],
|
|
89
|
+
setup(r, {
|
|
90
|
+
emit: o,
|
|
91
|
+
slots: e
|
|
92
|
+
}) {
|
|
93
|
+
const {
|
|
94
|
+
slots: t
|
|
95
|
+
} = i("button", s, r);
|
|
96
|
+
function a(d) {
|
|
97
|
+
r.disabled || o("click", d);
|
|
98
|
+
}
|
|
99
|
+
return () => c("button", {
|
|
100
|
+
class: t.root(),
|
|
101
|
+
disabled: r.disabled,
|
|
102
|
+
onClick: a
|
|
103
|
+
}, [e.default?.()]);
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
export {
|
|
107
|
+
v as default
|
|
108
|
+
};
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { defineComponent as n, createVNode as o } from "vue";
|
|
2
|
+
import { useTheme as l } from "../composables/useTheme.mjs";
|
|
3
|
+
const i = {
|
|
4
|
+
slots: {
|
|
5
|
+
root: ["relative inline-flex items-center justify-center", "w-[var(--vtg-checkbox-size)] h-[var(--vtg-checkbox-size)]", "rounded-[var(--vtg-checkbox-border-radius)]", "border border-[color:var(--color-border,#d9d9d9)]", "bg-[color:var(--color-surface)]", "cursor-pointer transition-all duration-300 shrink-0", "hover:border-[color:var(--color-primary)]"].join(" "),
|
|
6
|
+
checkMark: ["pointer-events-none absolute box-border", "top-1/2 left-[22%]", "w-[5.71px] h-[9.14px]", "border-b-2 border-r-2 border-[color:var(--vtg-checkbox-check-color,#fff)]", "[transform:rotate(45deg)_translate(-50%,_-50%)]"].join(" "),
|
|
7
|
+
indeterminateMark: ["pointer-events-none absolute top-1/2 left-1/2", "w-2 h-2 rounded-[1px]", "bg-[color:var(--vtg-checkbox-indeterminate-color,var(--color-primary))]", "-translate-x-1/2 -translate-y-1/2"].join(" ")
|
|
8
|
+
},
|
|
9
|
+
variants: {
|
|
10
|
+
checked: {
|
|
11
|
+
true: {
|
|
12
|
+
root: "bg-[color:var(--color-primary)] border-[color:var(--color-primary)] hover:bg-[color:var(--color-primary-hover)] hover:border-transparent"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
indeterminate: {
|
|
16
|
+
true: {
|
|
17
|
+
root: ""
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
disabled: {
|
|
21
|
+
true: {
|
|
22
|
+
root: "bg-[color:var(--color-bg-disabled,rgba(0,0,0,0.04))] border-[color:var(--color-border,#d9d9d9)] cursor-not-allowed hover:border-[color:var(--color-border,#d9d9d9)]"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
defaultVariants: {
|
|
27
|
+
checked: !1,
|
|
28
|
+
indeterminate: !1,
|
|
29
|
+
disabled: !1
|
|
30
|
+
}
|
|
31
|
+
}, h = /* @__PURE__ */ n({
|
|
32
|
+
name: "VCheckbox",
|
|
33
|
+
props: {
|
|
34
|
+
checked: {
|
|
35
|
+
type: Boolean,
|
|
36
|
+
default: !1
|
|
37
|
+
},
|
|
38
|
+
disabled: {
|
|
39
|
+
type: Boolean,
|
|
40
|
+
default: !1
|
|
41
|
+
},
|
|
42
|
+
indeterminate: {
|
|
43
|
+
type: Boolean,
|
|
44
|
+
default: !1
|
|
45
|
+
},
|
|
46
|
+
ui: {
|
|
47
|
+
type: Object,
|
|
48
|
+
default: void 0
|
|
49
|
+
},
|
|
50
|
+
class: {
|
|
51
|
+
type: String,
|
|
52
|
+
default: void 0
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
emits: ["update:checked", "change"],
|
|
56
|
+
setup(e, {
|
|
57
|
+
emit: a
|
|
58
|
+
}) {
|
|
59
|
+
const {
|
|
60
|
+
slots: r
|
|
61
|
+
} = l("checkbox", i, e);
|
|
62
|
+
function c(d) {
|
|
63
|
+
if (e.disabled) return;
|
|
64
|
+
const t = !e.checked;
|
|
65
|
+
a("update:checked", t), a("change", t, d);
|
|
66
|
+
}
|
|
67
|
+
return () => o("span", {
|
|
68
|
+
role: "checkbox",
|
|
69
|
+
"aria-checked": e.indeterminate ? "mixed" : e.checked,
|
|
70
|
+
"aria-disabled": e.disabled,
|
|
71
|
+
class: r.root(),
|
|
72
|
+
onClick: c
|
|
73
|
+
}, [e.checked && o("span", {
|
|
74
|
+
"aria-hidden": "true",
|
|
75
|
+
class: r.checkMark()
|
|
76
|
+
}, null), e.indeterminate && !e.checked && o("span", {
|
|
77
|
+
"aria-hidden": "true",
|
|
78
|
+
class: r.indeterminateMark()
|
|
79
|
+
}, null)]);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
export {
|
|
83
|
+
h as default
|
|
84
|
+
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { defineComponent as d, createVNode as u } from "vue";
|
|
2
|
+
import { useTheme as i } from "../composables/useTheme.mjs";
|
|
3
|
+
const s = {
|
|
4
|
+
slots: {
|
|
5
|
+
root: ["w-full box-border", "rounded-[var(--vtg-input-border-radius)]", "h-[var(--vtg-input-height)]", "px-[var(--vtg-input-padding-inline)]", "text-[length:var(--vtg-input-font-size)]", "font-[family-name:var(--vtg-table-font-family)]", "leading-[var(--vtg-table-line-height)]", "bg-[color:var(--color-surface)]", "text-[color:var(--color-on-surface)]", "border border-[color:var(--color-border,#d9d9d9)]", "outline-none transition-all duration-200", "focus:border-[color:var(--color-primary)]", "focus:shadow-[0_0_0_2px_rgba(5,145,255,0.1)]", "placeholder:text-[color:var(--color-text-placeholder,rgba(0,0,0,0.25))]", "hover:border-[color:var(--color-primary-hover)]"].join(" ")
|
|
6
|
+
},
|
|
7
|
+
variants: {
|
|
8
|
+
bare: {
|
|
9
|
+
true: {
|
|
10
|
+
root: "min-w-0 bg-transparent outline-none border-0 shadow-none p-0 focus:shadow-none"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
disabled: {
|
|
14
|
+
true: {
|
|
15
|
+
root: "bg-[color:var(--color-bg-disabled,rgba(0,0,0,0.04))] text-[color:var(--color-text-disabled)] cursor-not-allowed"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
defaultVariants: {
|
|
20
|
+
bare: !1,
|
|
21
|
+
disabled: !1
|
|
22
|
+
}
|
|
23
|
+
}, f = /* @__PURE__ */ d({
|
|
24
|
+
name: "VInput",
|
|
25
|
+
props: {
|
|
26
|
+
value: {
|
|
27
|
+
type: String,
|
|
28
|
+
default: ""
|
|
29
|
+
},
|
|
30
|
+
placeholder: {
|
|
31
|
+
type: String,
|
|
32
|
+
default: ""
|
|
33
|
+
},
|
|
34
|
+
disabled: {
|
|
35
|
+
type: Boolean,
|
|
36
|
+
default: !1
|
|
37
|
+
},
|
|
38
|
+
bare: {
|
|
39
|
+
type: Boolean,
|
|
40
|
+
default: !1
|
|
41
|
+
},
|
|
42
|
+
inputClass: {
|
|
43
|
+
type: [String, Array, Object],
|
|
44
|
+
default: void 0
|
|
45
|
+
},
|
|
46
|
+
ui: {
|
|
47
|
+
type: Object,
|
|
48
|
+
default: void 0
|
|
49
|
+
},
|
|
50
|
+
class: {
|
|
51
|
+
type: String,
|
|
52
|
+
default: void 0
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
emits: ["update:value", "change", "pressEnter"],
|
|
56
|
+
setup(e, {
|
|
57
|
+
emit: o
|
|
58
|
+
}) {
|
|
59
|
+
const {
|
|
60
|
+
slots: a
|
|
61
|
+
} = i("input", s, e);
|
|
62
|
+
function l(t) {
|
|
63
|
+
const r = t.target.value;
|
|
64
|
+
o("update:value", r), o("change", r);
|
|
65
|
+
}
|
|
66
|
+
function n(t) {
|
|
67
|
+
t.key === "Enter" && o("pressEnter", t);
|
|
68
|
+
}
|
|
69
|
+
return () => u("input", {
|
|
70
|
+
class: [a.root(), e.inputClass],
|
|
71
|
+
type: "text",
|
|
72
|
+
value: e.value,
|
|
73
|
+
placeholder: e.placeholder,
|
|
74
|
+
disabled: e.disabled,
|
|
75
|
+
onInput: l,
|
|
76
|
+
onKeydown: n
|
|
77
|
+
}, null);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
export {
|
|
81
|
+
f as default
|
|
82
|
+
};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { defineComponent as l, createVNode as a } from "vue";
|
|
2
|
+
import { useTheme as i } from "../composables/useTheme.mjs";
|
|
3
|
+
const c = {
|
|
4
|
+
slots: {
|
|
5
|
+
root: ["inline-flex items-center justify-center", "w-[var(--vtg-radio-size)] h-[var(--vtg-radio-size)]", "rounded-full", "border border-[length:var(--vtg-radio-border-width)] border-[color:var(--color-border,#d9d9d9)]", "bg-[color:var(--color-surface)]", "cursor-pointer transition-all duration-300 shrink-0", "hover:border-[color:var(--color-primary)]"].join(" "),
|
|
6
|
+
dot: "rounded-full w-[var(--vtg-radio-size)] h-[var(--vtg-radio-size)] transition-transform duration-300 ease-[cubic-bezier(0.78,0.14,0.15,0.86)]"
|
|
7
|
+
},
|
|
8
|
+
variants: {
|
|
9
|
+
checked: {
|
|
10
|
+
true: {
|
|
11
|
+
root: "border-[color:var(--color-primary)] bg-[color:var(--color-primary)]",
|
|
12
|
+
dot: "scale-[0.375] bg-[color:var(--color-surface)]"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
disabled: {
|
|
16
|
+
true: {
|
|
17
|
+
root: "bg-[color:var(--color-bg-disabled,rgba(0,0,0,0.04))] cursor-not-allowed hover:border-[color:var(--color-border,#d9d9d9)]"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
defaultVariants: {
|
|
22
|
+
checked: !1,
|
|
23
|
+
disabled: !1
|
|
24
|
+
}
|
|
25
|
+
}, u = /* @__PURE__ */ l({
|
|
26
|
+
name: "VRadio",
|
|
27
|
+
props: {
|
|
28
|
+
checked: {
|
|
29
|
+
type: Boolean,
|
|
30
|
+
default: !1
|
|
31
|
+
},
|
|
32
|
+
disabled: {
|
|
33
|
+
type: Boolean,
|
|
34
|
+
default: !1
|
|
35
|
+
},
|
|
36
|
+
ui: {
|
|
37
|
+
type: Object,
|
|
38
|
+
default: void 0
|
|
39
|
+
},
|
|
40
|
+
class: {
|
|
41
|
+
type: String,
|
|
42
|
+
default: void 0
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
emits: ["update:checked", "change"],
|
|
46
|
+
setup(e, {
|
|
47
|
+
emit: r
|
|
48
|
+
}) {
|
|
49
|
+
const {
|
|
50
|
+
slots: o
|
|
51
|
+
} = i("radio", c, e);
|
|
52
|
+
function d(t) {
|
|
53
|
+
e.disabled || e.checked || (r("update:checked", !0), r("change", !0, t));
|
|
54
|
+
}
|
|
55
|
+
return () => a("span", {
|
|
56
|
+
role: "radio",
|
|
57
|
+
"aria-checked": e.checked,
|
|
58
|
+
"aria-disabled": e.disabled,
|
|
59
|
+
class: o.root(),
|
|
60
|
+
onClick: d
|
|
61
|
+
}, [a("span", {
|
|
62
|
+
"aria-hidden": "true",
|
|
63
|
+
class: o.dot()
|
|
64
|
+
}, null)]);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
export {
|
|
68
|
+
u as default
|
|
69
|
+
};
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { defineComponent as N, inject as O, ref as s, h as L, createVNode as n } from "vue";
|
|
2
|
+
import { useTheme as j } from "../composables/useTheme.mjs";
|
|
3
|
+
import { useScrollbar as B } from "../composables/useScrollbar.mjs";
|
|
4
|
+
import { prefixVtgClassNames as A } from "../utils/classPrefix.mjs";
|
|
5
|
+
import { VTABLE_GUILD_INJECTION_KEY as D } from "../plugin/index.mjs";
|
|
6
|
+
import m from "./ScrollbarBar.mjs";
|
|
7
|
+
const E = {
|
|
8
|
+
slots: {
|
|
9
|
+
root: "group relative overflow-hidden",
|
|
10
|
+
wrap: "overflow-auto scrollbar-none h-full",
|
|
11
|
+
view: "block min-w-full w-max",
|
|
12
|
+
track: "absolute z-[3] rounded opacity-0 transition-opacity duration-300 group-hover:opacity-100",
|
|
13
|
+
trackVertical: "right-0.5 top-0.5 bottom-0.5 w-[var(--vtg-scrollbar-thumb-width)]",
|
|
14
|
+
trackHorizontal: "bottom-0.5 left-0.5 right-0.5 h-[var(--vtg-scrollbar-thumb-width)]",
|
|
15
|
+
thumb: ["relative w-full", "h-full", "rounded-[var(--vtg-scrollbar-thumb-radius)]", "bg-[color:var(--vtg-scrollbar-thumb-bg)]", "hover:bg-[color:var(--vtg-scrollbar-thumb-hover-bg)]", "transition-colors cursor-pointer"].join(" ")
|
|
16
|
+
},
|
|
17
|
+
defaultVariants: {}
|
|
18
|
+
};
|
|
19
|
+
function c(e) {
|
|
20
|
+
if (e !== void 0)
|
|
21
|
+
return typeof e == "number" ? `${e}px` : e;
|
|
22
|
+
}
|
|
23
|
+
const G = /* @__PURE__ */ N({
|
|
24
|
+
name: "VScrollbar",
|
|
25
|
+
props: {
|
|
26
|
+
height: {
|
|
27
|
+
type: [String, Number],
|
|
28
|
+
default: void 0
|
|
29
|
+
},
|
|
30
|
+
maxHeight: {
|
|
31
|
+
type: [String, Number],
|
|
32
|
+
default: void 0
|
|
33
|
+
},
|
|
34
|
+
native: {
|
|
35
|
+
type: Boolean,
|
|
36
|
+
default: !1
|
|
37
|
+
},
|
|
38
|
+
always: {
|
|
39
|
+
type: Boolean,
|
|
40
|
+
default: !1
|
|
41
|
+
},
|
|
42
|
+
minSize: {
|
|
43
|
+
type: Number,
|
|
44
|
+
default: 20
|
|
45
|
+
},
|
|
46
|
+
tag: {
|
|
47
|
+
type: String,
|
|
48
|
+
default: "div"
|
|
49
|
+
},
|
|
50
|
+
wrapClass: {
|
|
51
|
+
type: String,
|
|
52
|
+
default: void 0
|
|
53
|
+
},
|
|
54
|
+
wrapStyle: {
|
|
55
|
+
type: [String, Object, Array],
|
|
56
|
+
default: void 0
|
|
57
|
+
},
|
|
58
|
+
viewClass: {
|
|
59
|
+
type: String,
|
|
60
|
+
default: void 0
|
|
61
|
+
},
|
|
62
|
+
viewStyle: {
|
|
63
|
+
type: [String, Object, Array],
|
|
64
|
+
default: void 0
|
|
65
|
+
},
|
|
66
|
+
ui: {
|
|
67
|
+
type: Object,
|
|
68
|
+
default: void 0
|
|
69
|
+
},
|
|
70
|
+
class: {
|
|
71
|
+
type: String,
|
|
72
|
+
default: void 0
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
emits: ["scroll"],
|
|
76
|
+
setup(e, {
|
|
77
|
+
emit: b,
|
|
78
|
+
slots: g,
|
|
79
|
+
expose: S
|
|
80
|
+
}) {
|
|
81
|
+
const f = O(D, null), {
|
|
82
|
+
slots: a
|
|
83
|
+
} = j("scrollbar", E, e), t = s(null), v = s(null), o = s(!1), {
|
|
84
|
+
verticalThumbSize: y,
|
|
85
|
+
verticalThumbOffset: w,
|
|
86
|
+
verticalVisible: x,
|
|
87
|
+
horizontalThumbSize: p,
|
|
88
|
+
horizontalThumbOffset: T,
|
|
89
|
+
horizontalVisible: C,
|
|
90
|
+
update: d
|
|
91
|
+
} = B(t, v, {
|
|
92
|
+
minSize: e.minSize
|
|
93
|
+
});
|
|
94
|
+
function z() {
|
|
95
|
+
d(), t.value && b("scroll", {
|
|
96
|
+
scrollTop: t.value.scrollTop,
|
|
97
|
+
scrollLeft: t.value.scrollLeft
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
function h({
|
|
101
|
+
ratio: l,
|
|
102
|
+
vertical: i
|
|
103
|
+
}) {
|
|
104
|
+
const r = t.value;
|
|
105
|
+
if (r)
|
|
106
|
+
if (i) {
|
|
107
|
+
const u = r.scrollHeight - r.clientHeight;
|
|
108
|
+
r.scrollTop = l * u;
|
|
109
|
+
} else {
|
|
110
|
+
const u = r.scrollWidth - r.clientWidth;
|
|
111
|
+
r.scrollLeft = l * u;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function k(l) {
|
|
115
|
+
t.value?.scrollTo(l);
|
|
116
|
+
}
|
|
117
|
+
function H(l) {
|
|
118
|
+
t.value && (t.value.scrollTop = l);
|
|
119
|
+
}
|
|
120
|
+
function V(l) {
|
|
121
|
+
t.value && (t.value.scrollLeft = l);
|
|
122
|
+
}
|
|
123
|
+
return S({
|
|
124
|
+
update: d,
|
|
125
|
+
scrollTo: k,
|
|
126
|
+
setScrollTop: H,
|
|
127
|
+
setScrollLeft: V,
|
|
128
|
+
wrapRef: t
|
|
129
|
+
}), () => {
|
|
130
|
+
const l = {};
|
|
131
|
+
e.height && (l.height = c(e.height)), e.maxHeight && (l.maxHeight = c(e.maxHeight));
|
|
132
|
+
const i = {};
|
|
133
|
+
e.maxHeight && (i.maxHeight = c(e.maxHeight));
|
|
134
|
+
const r = L(e.tag, {
|
|
135
|
+
ref: v,
|
|
136
|
+
class: [a.view(), e.viewClass],
|
|
137
|
+
style: e.viewStyle
|
|
138
|
+
}, g.default?.());
|
|
139
|
+
return n("div", {
|
|
140
|
+
class: a.root(),
|
|
141
|
+
style: l,
|
|
142
|
+
onMouseover: () => {
|
|
143
|
+
o.value = !0;
|
|
144
|
+
},
|
|
145
|
+
onMouseleave: () => {
|
|
146
|
+
o.value = !1;
|
|
147
|
+
}
|
|
148
|
+
}, [n("div", {
|
|
149
|
+
ref: t,
|
|
150
|
+
class: [a.wrap(), e.wrapClass, e.native ? "" : A("scrollbar-none", f?.cssMode ?? "prebuilt", f?.classPrefix ?? "vtg")],
|
|
151
|
+
style: [i, e.wrapStyle ?? {}],
|
|
152
|
+
onScroll: z
|
|
153
|
+
}, [r]), !e.native && x.value && n(m, {
|
|
154
|
+
vertical: !0,
|
|
155
|
+
thumbSize: y.value,
|
|
156
|
+
thumbOffset: w.value,
|
|
157
|
+
visible: o.value,
|
|
158
|
+
always: e.always,
|
|
159
|
+
trackClass: a.track(),
|
|
160
|
+
trackDirectionClass: a.trackVertical(),
|
|
161
|
+
thumbClass: a.thumb(),
|
|
162
|
+
onScroll: h
|
|
163
|
+
}, null), !e.native && C.value && n(m, {
|
|
164
|
+
vertical: !1,
|
|
165
|
+
thumbSize: p.value,
|
|
166
|
+
thumbOffset: T.value,
|
|
167
|
+
visible: o.value,
|
|
168
|
+
always: e.always,
|
|
169
|
+
trackClass: a.track(),
|
|
170
|
+
trackDirectionClass: a.trackHorizontal(),
|
|
171
|
+
thumbClass: a.thumb(),
|
|
172
|
+
onScroll: h
|
|
173
|
+
}, null)]);
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
export {
|
|
178
|
+
G as default
|
|
179
|
+
};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { defineComponent as w, ref as v, onBeforeUnmount as C, createVNode as g } from "vue";
|
|
2
|
+
const B = /* @__PURE__ */ w({
|
|
3
|
+
name: "ScrollbarBar",
|
|
4
|
+
props: {
|
|
5
|
+
vertical: {
|
|
6
|
+
type: Boolean,
|
|
7
|
+
default: !0
|
|
8
|
+
},
|
|
9
|
+
thumbSize: {
|
|
10
|
+
type: Number,
|
|
11
|
+
required: !0
|
|
12
|
+
},
|
|
13
|
+
thumbOffset: {
|
|
14
|
+
type: Number,
|
|
15
|
+
required: !0
|
|
16
|
+
},
|
|
17
|
+
visible: {
|
|
18
|
+
type: Boolean,
|
|
19
|
+
default: !1
|
|
20
|
+
},
|
|
21
|
+
always: {
|
|
22
|
+
type: Boolean,
|
|
23
|
+
default: !1
|
|
24
|
+
},
|
|
25
|
+
trackClass: {
|
|
26
|
+
type: String,
|
|
27
|
+
default: ""
|
|
28
|
+
},
|
|
29
|
+
trackDirectionClass: {
|
|
30
|
+
type: String,
|
|
31
|
+
default: ""
|
|
32
|
+
},
|
|
33
|
+
thumbClass: {
|
|
34
|
+
type: String,
|
|
35
|
+
default: ""
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
emits: ["scroll"],
|
|
39
|
+
setup(e, {
|
|
40
|
+
emit: h
|
|
41
|
+
}) {
|
|
42
|
+
const l = v(null), o = v(!1), c = v(!1);
|
|
43
|
+
let b = 0;
|
|
44
|
+
function k(t) {
|
|
45
|
+
t.preventDefault(), t.stopPropagation(), o.value = !0, b = (e.vertical ? t.clientY : t.clientX) - e.thumbOffset, document.addEventListener("mousemove", s), document.addEventListener("mouseup", i), document.onselectstart = () => !1;
|
|
46
|
+
}
|
|
47
|
+
function s(t) {
|
|
48
|
+
if (!o.value || !l.value) return;
|
|
49
|
+
const n = l.value.getBoundingClientRect(), r = e.vertical ? n.height : n.width, f = (e.vertical ? t.clientY : t.clientX) - b, a = r - e.thumbSize, m = Math.max(0, Math.min(f, a)), d = a > 0 ? m / a : 0;
|
|
50
|
+
h("scroll", {
|
|
51
|
+
ratio: d,
|
|
52
|
+
vertical: e.vertical
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function i() {
|
|
56
|
+
o.value = !1, document.removeEventListener("mousemove", s), document.removeEventListener("mouseup", i), document.onselectstart = null;
|
|
57
|
+
}
|
|
58
|
+
function M(t) {
|
|
59
|
+
if (t.target === l.value) {
|
|
60
|
+
t.preventDefault();
|
|
61
|
+
const n = l.value.getBoundingClientRect(), r = e.vertical ? n.height : n.width, f = (e.vertical ? t.clientY - n.top : t.clientX - n.left) - e.thumbSize / 2, a = r - e.thumbSize, m = Math.max(0, Math.min(f, a)), d = a > 0 ? m / a : 0;
|
|
62
|
+
h("scroll", {
|
|
63
|
+
ratio: d,
|
|
64
|
+
vertical: e.vertical
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function S() {
|
|
69
|
+
c.value = !0;
|
|
70
|
+
}
|
|
71
|
+
function y() {
|
|
72
|
+
c.value = !1;
|
|
73
|
+
}
|
|
74
|
+
return C(() => {
|
|
75
|
+
document.removeEventListener("mousemove", s), document.removeEventListener("mouseup", i), document.onselectstart = null;
|
|
76
|
+
}), () => {
|
|
77
|
+
const t = e.always || e.visible || c.value || o.value, u = e.vertical ? {
|
|
78
|
+
height: `${e.thumbSize}px`,
|
|
79
|
+
transform: `translateY(${e.thumbOffset}px)`
|
|
80
|
+
} : {
|
|
81
|
+
width: `${e.thumbSize}px`,
|
|
82
|
+
transform: `translateX(${e.thumbOffset}px)`
|
|
83
|
+
};
|
|
84
|
+
return g("div", {
|
|
85
|
+
ref: l,
|
|
86
|
+
class: [e.trackClass, e.trackDirectionClass],
|
|
87
|
+
style: t ? {
|
|
88
|
+
opacity: 1
|
|
89
|
+
} : void 0,
|
|
90
|
+
onMousedown: M,
|
|
91
|
+
onMouseenter: S,
|
|
92
|
+
onMouseleave: y
|
|
93
|
+
}, [g("div", {
|
|
94
|
+
class: e.thumbClass,
|
|
95
|
+
style: u,
|
|
96
|
+
onMousedown: k
|
|
97
|
+
}, null)]);
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
export {
|
|
102
|
+
B as default
|
|
103
|
+
};
|