vlite3 1.2.5 → 1.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/components/Barcode/Barcode.vue.d.ts +1 -1
- package/components/Button.vue.js +18 -18
- package/components/Chart/GanttChart.vue.d.ts +67 -0
- package/components/Chart/GanttChart.vue.js +7 -0
- package/components/Chart/GanttChart.vue2.js +911 -0
- package/components/Chart/SpeedometerChart.vue.d.ts +54 -0
- package/components/Chart/SpeedometerChart.vue.js +558 -0
- package/components/Chart/SpeedometerChart.vue2.js +4 -0
- package/components/Chart/index.d.ts +3 -1
- package/components/Chart/types.d.ts +106 -0
- package/components/Chip/Chip.vue.js +10 -9
- package/components/Chip/types.d.ts +1 -1
- package/components/ChoiceBox/ChoiceBox.vue.d.ts +46 -1
- package/components/ChoiceBox/ChoiceBox.vue.js +274 -91
- package/components/ChoiceBox/index.d.ts +1 -1
- package/components/ColorPicker/ColorPicker.vue.js +1 -1
- package/components/CommandPalette/CommandPaletteContent.vue2.js +1 -1
- package/components/CommandPalette/{CommandPaletteItem.vue2.js → CommandPaletteItem.vue.js} +1 -1
- package/components/DataTable/DataTableHeader.vue.js +33 -30
- package/components/Dropdown/Dropdown.vue.d.ts +2 -0
- package/components/Dropdown/Dropdown.vue.js +35 -30
- package/components/Form/Form.vue.d.ts +10 -1
- package/components/Form/Form.vue.js +1 -1
- package/components/Form/Form.vue2.js +146 -132
- package/components/ImageComparison/ImageComparison.vue.d.ts +29 -0
- package/components/ImageComparison/ImageComparison.vue.js +126 -0
- package/components/ImageComparison/ImageComparison.vue2.js +4 -0
- package/components/ImageComparison/index.d.ts +1 -0
- package/components/ImportData/ImportData.vue.js +1 -1
- package/components/NavbarCommandPalette.vue.js +1 -1
- package/components/OTPInput/OTPInput.vue.d.ts +18 -0
- package/components/OTPInput/OTPInput.vue.js +127 -82
- package/components/PricingPlan/PricingPlanItem.vue.js +19 -19
- package/components/Radio.vue.d.ts +41 -0
- package/components/Radio.vue.js +97 -0
- package/components/Radio.vue2.js +4 -0
- package/components/RadioGroup.vue.d.ts +38 -0
- package/components/RadioGroup.vue.js +37 -0
- package/components/RadioGroup.vue2.js +4 -0
- package/components/Screen/ScreenFilter.vue.js +25 -25
- package/components/SidePanel.vue.js +3 -3
- package/components/SidePanel.vue2.js +1 -1
- package/components/Slider.vue.d.ts +7 -0
- package/components/Slider.vue.js +194 -120
- package/components/StatusChip/status-map.js +13 -0
- package/components/Timeline/Timeline.vue.d.ts +1 -1
- package/components/index.d.ts +1 -1
- package/index.d.ts +3 -0
- package/index.js +138 -128
- package/package.json +1 -1
- package/style.css +66 -26
- package/types/form.type.d.ts +23 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { defineComponent as k, ref as w, onMounted as C, onUnmounted as E, computed as M, openBlock as a, createElementBlock as i, normalizeStyle as b, normalizeClass as s, createElementVNode as n, toDisplayString as v, createCommentVNode as r, setBlockTracking as p, createVNode as B } from "vue";
|
|
2
|
+
import X from "../Icon.vue.js";
|
|
3
|
+
const z = ["src"], I = ["src"], j = {
|
|
4
|
+
key: 0,
|
|
5
|
+
class: "absolute top-4 flex w-full justify-center pointer-events-none"
|
|
6
|
+
}, D = { class: "bg-[#4846468d] backdrop-blur-sm px-3 py-1 rounded-full -text-fs-3 font-medium text-[white] whitespace-nowrap" }, P = { class: "bg-[#4846468d] backdrop-blur-sm px-3 py-1 rounded-full -text-fs-3 font-medium text-[white] whitespace-nowrap" }, R = /* @__PURE__ */ k({
|
|
7
|
+
__name: "ImageComparison",
|
|
8
|
+
props: {
|
|
9
|
+
beforeImage: {},
|
|
10
|
+
afterImage: {},
|
|
11
|
+
beforeLabel: { default: "Before" },
|
|
12
|
+
afterLabel: { default: "After" },
|
|
13
|
+
initialPosition: { default: 50 },
|
|
14
|
+
hover: { type: Boolean, default: !1 },
|
|
15
|
+
width: { default: "100%" },
|
|
16
|
+
height: { default: "auto" },
|
|
17
|
+
containerClass: { default: "" },
|
|
18
|
+
handleClass: { default: "" },
|
|
19
|
+
showHandle: { type: Boolean, default: !0 },
|
|
20
|
+
variant: { default: "one" }
|
|
21
|
+
},
|
|
22
|
+
setup(o) {
|
|
23
|
+
const u = o, l = w(u.initialPosition), c = w(!1), h = w(null), m = (e) => {
|
|
24
|
+
if (!h.value) return;
|
|
25
|
+
const t = h.value.getBoundingClientRect(), L = (e - t.left) / t.width * 100;
|
|
26
|
+
l.value = Math.max(0, Math.min(100, L));
|
|
27
|
+
}, y = (e) => {
|
|
28
|
+
u.hover && !c.value && m(e.clientX);
|
|
29
|
+
}, g = (e) => {
|
|
30
|
+
c.value = !0;
|
|
31
|
+
const t = "touches" in e ? e.touches[0].clientX : e.clientX;
|
|
32
|
+
m(t);
|
|
33
|
+
}, d = (e) => {
|
|
34
|
+
if (!c.value) return;
|
|
35
|
+
"touches" in e && e.cancelable && e.preventDefault();
|
|
36
|
+
const t = "touches" in e ? e.touches[0].clientX : e.clientX;
|
|
37
|
+
m(t);
|
|
38
|
+
}, f = () => {
|
|
39
|
+
c.value = !1;
|
|
40
|
+
};
|
|
41
|
+
C(() => {
|
|
42
|
+
window.addEventListener("mousemove", d), window.addEventListener("touchmove", d, { passive: !1 }), window.addEventListener("mouseup", f), window.addEventListener("touchend", f);
|
|
43
|
+
}), E(() => {
|
|
44
|
+
window.removeEventListener("mousemove", d), window.removeEventListener("touchmove", d), window.removeEventListener("mouseup", f), window.removeEventListener("touchend", f);
|
|
45
|
+
});
|
|
46
|
+
const x = M(() => {
|
|
47
|
+
const e = (t) => typeof t == "number" ? `${t}px` : t;
|
|
48
|
+
return {
|
|
49
|
+
width: e(u.width),
|
|
50
|
+
height: e(u.height)
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
return (e, t) => (a(), i("div", {
|
|
54
|
+
ref_key: "containerRef",
|
|
55
|
+
ref: h,
|
|
56
|
+
class: s(["relative overflow-hidden select-none cursor-ew-resize rounded-2xl group", o.containerClass]),
|
|
57
|
+
style: b(x.value),
|
|
58
|
+
onMousemove: y,
|
|
59
|
+
onMousedown: g,
|
|
60
|
+
onTouchstartPassive: g
|
|
61
|
+
}, [
|
|
62
|
+
n("img", {
|
|
63
|
+
src: o.afterImage,
|
|
64
|
+
class: s(["block w-full object-cover select-none", u.height === "auto" ? "h-auto" : "h-full"]),
|
|
65
|
+
alt: "After",
|
|
66
|
+
draggable: "false"
|
|
67
|
+
}, null, 10, z),
|
|
68
|
+
o.afterLabel && o.variant === "one" ? (a(), i("div", {
|
|
69
|
+
key: 0,
|
|
70
|
+
class: s(["absolute top-4 right-4 bg-[#4846468d] px-3 py-1 -text-fs-4 rounded-full -text-fs-3 font-medium text-[white] transition-opacity duration-300 pointer-events-none", l.value > 80 ? "opacity-0" : "opacity-100"])
|
|
71
|
+
}, v(o.afterLabel), 3)) : r("", !0),
|
|
72
|
+
n("div", {
|
|
73
|
+
class: "absolute inset-0 w-full h-full",
|
|
74
|
+
style: b({ clipPath: `inset(0 ${100 - l.value}% 0 0)`, willChange: "clip-path" })
|
|
75
|
+
}, [
|
|
76
|
+
n("img", {
|
|
77
|
+
src: o.beforeImage,
|
|
78
|
+
class: "absolute inset-0 w-full h-full object-cover select-none",
|
|
79
|
+
alt: "Before",
|
|
80
|
+
draggable: "false"
|
|
81
|
+
}, null, 8, I)
|
|
82
|
+
], 4),
|
|
83
|
+
o.beforeLabel && o.variant === "one" ? (a(), i("div", {
|
|
84
|
+
key: 1,
|
|
85
|
+
class: s(["absolute top-4 left-4 bg-[#4846468d] px-3 py-1 -text-fs-4 rounded-full -text-fs-3 font-medium text-[white] transition-opacity duration-300 pointer-events-none z-10", l.value < 20 ? "opacity-0" : "opacity-100"])
|
|
86
|
+
}, v(o.beforeLabel), 3)) : r("", !0),
|
|
87
|
+
n("div", {
|
|
88
|
+
class: "absolute top-0 bottom-0 flex flex-col items-center justify-center cursor-ew-resize z-20 pointer-events-none",
|
|
89
|
+
style: b({
|
|
90
|
+
left: `${l.value}%`,
|
|
91
|
+
transform: "translateX(-50%)",
|
|
92
|
+
willChange: "transform"
|
|
93
|
+
})
|
|
94
|
+
}, [
|
|
95
|
+
o.variant === "two" ? (a(), i("div", j, [
|
|
96
|
+
o.beforeLabel ? (a(), i("div", {
|
|
97
|
+
key: 0,
|
|
98
|
+
class: s(["absolute right-full pr-3 transition-opacity duration-300", l.value < 23 ? "opacity-0" : "opacity-100"])
|
|
99
|
+
}, [
|
|
100
|
+
n("div", D, v(o.beforeLabel), 1)
|
|
101
|
+
], 2)) : r("", !0),
|
|
102
|
+
o.afterLabel ? (a(), i("div", {
|
|
103
|
+
key: 1,
|
|
104
|
+
class: s(["absolute left-full pl-3 transition-opacity duration-300", l.value > 78 ? "opacity-0" : "opacity-100"])
|
|
105
|
+
}, [
|
|
106
|
+
n("div", P, v(o.afterLabel), 1)
|
|
107
|
+
], 2)) : r("", !0)
|
|
108
|
+
])) : r("", !0),
|
|
109
|
+
t[1] || (t[1] = n("div", { class: "w-px h-full bg-[white]" }, null, -1)),
|
|
110
|
+
o.showHandle ? (a(), i("div", {
|
|
111
|
+
key: 1,
|
|
112
|
+
class: s(["w-7 h-7 border-[1.5px] border-[white] rounded-full flex-shrink-0 flex items-center justify-center transform transition-all duration-200", [c.value ? "scale-110 " : "group-hover:scale-105", o.handleClass]])
|
|
113
|
+
}, [
|
|
114
|
+
t[0] || (p(-1, !0), (t[0] = B(X, {
|
|
115
|
+
icon: "lucide:chevrons-left-right",
|
|
116
|
+
class: "w-4 h-4 text-[white]"
|
|
117
|
+
})).cacheIndex = 0, p(1), t[0])
|
|
118
|
+
], 2)) : r("", !0),
|
|
119
|
+
t[2] || (t[2] = n("div", { class: "w-px h-full bg-[white]" }, null, -1))
|
|
120
|
+
], 4)
|
|
121
|
+
], 38));
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
export {
|
|
125
|
+
R as default
|
|
126
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as ImageComparison } from './ImageComparison.vue';
|
|
@@ -159,7 +159,7 @@ const xe = { class: "px-2" }, ye = { class: "min-h-[300px]" }, De = {
|
|
|
159
159
|
ue(pe(fe), {
|
|
160
160
|
steps: Y.value,
|
|
161
161
|
"active-step": a.value - 1,
|
|
162
|
-
class: "mb-
|
|
162
|
+
class: "mb-8"
|
|
163
163
|
}, null, 8, ["steps", "active-step"]),
|
|
164
164
|
B("div", ye, [
|
|
165
165
|
a.value === 1 ? (n(), d(he, {
|
|
@@ -3,7 +3,7 @@ import L from "./Icon.vue.js";
|
|
|
3
3
|
import v from "./Modal.vue.js";
|
|
4
4
|
import N from "./CommandPalette/CommandPaletteContent.vue.js";
|
|
5
5
|
import { $t as U } from "../utils/i18n.js";
|
|
6
|
-
/* empty css
|
|
6
|
+
/* empty css */
|
|
7
7
|
const V = { class: "block truncate -text-fs-1.5" }, S = { class: "ml-auto inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded text-[10px] font-mono font-medium border border-border/80 bg-background text-muted-foreground ml-1" }, A = /* @__PURE__ */ x({
|
|
8
8
|
__name: "NavbarCommandPalette",
|
|
9
9
|
props: {
|
|
@@ -11,15 +11,26 @@ interface Props {
|
|
|
11
11
|
size?: 'sm' | 'md' | 'lg';
|
|
12
12
|
mask?: boolean;
|
|
13
13
|
fluid?: boolean;
|
|
14
|
+
allowResend?: boolean;
|
|
15
|
+
resendDuration?: number;
|
|
16
|
+
maxResends?: number;
|
|
17
|
+
resendText?: string;
|
|
18
|
+
resendActionText?: string;
|
|
19
|
+
resendWaitText?: string;
|
|
20
|
+
resendLimitText?: string;
|
|
14
21
|
}
|
|
15
22
|
declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
16
23
|
change: (value: string) => any;
|
|
17
24
|
"update:modelValue": (value: string) => any;
|
|
18
25
|
complete: (value: string) => any;
|
|
26
|
+
resend: (count: number) => any;
|
|
27
|
+
"resend-limit-reached": () => any;
|
|
19
28
|
}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
|
|
20
29
|
onChange?: (value: string) => any;
|
|
21
30
|
"onUpdate:modelValue"?: (value: string) => any;
|
|
22
31
|
onComplete?: (value: string) => any;
|
|
32
|
+
onResend?: (count: number) => any;
|
|
33
|
+
"onResend-limit-reached"?: () => any;
|
|
23
34
|
}>, {
|
|
24
35
|
length: number;
|
|
25
36
|
type: "text" | "number";
|
|
@@ -33,5 +44,12 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
|
|
|
33
44
|
autofocus: boolean;
|
|
34
45
|
attached: boolean;
|
|
35
46
|
fluid: boolean;
|
|
47
|
+
allowResend: boolean;
|
|
48
|
+
resendDuration: number;
|
|
49
|
+
maxResends: number;
|
|
50
|
+
resendText: string;
|
|
51
|
+
resendActionText: string;
|
|
52
|
+
resendWaitText: string;
|
|
53
|
+
resendLimitText: string;
|
|
36
54
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
|
|
37
55
|
export default _default;
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
const
|
|
1
|
+
import { defineComponent as K, ref as w, watch as N, onMounted as J, nextTick as W, onUnmounted as $, computed as x, openBlock as d, createElementBlock as c, normalizeClass as D, createElementVNode as k, Fragment as I, renderList as O, createTextVNode as B, toDisplayString as m, createCommentVNode as S } from "vue";
|
|
2
|
+
const U = ["value", "type", "inputmode", "disabled", "placeholder", "onInput", "onKeydown"], q = {
|
|
3
|
+
key: 0,
|
|
4
|
+
class: "text-sm text-center text-muted-foreground mt-1"
|
|
5
|
+
}, G = { key: 0 }, H = { class: "font-medium text-primary" }, Q = { key: 1 }, X = {
|
|
6
|
+
key: 1,
|
|
7
|
+
class: "text-destructive font-medium"
|
|
8
|
+
}, Z = /* @__PURE__ */ K({
|
|
3
9
|
__name: "OTPInput",
|
|
4
10
|
props: {
|
|
5
11
|
length: { default: 6 },
|
|
@@ -13,78 +19,98 @@ const K = ["value", "type", "inputmode", "disabled", "placeholder", "onInput", "
|
|
|
13
19
|
attached: { type: Boolean, default: !1 },
|
|
14
20
|
size: { default: "md" },
|
|
15
21
|
mask: { type: Boolean, default: !1 },
|
|
16
|
-
fluid: { type: Boolean, default: !1 }
|
|
22
|
+
fluid: { type: Boolean, default: !1 },
|
|
23
|
+
allowResend: { type: Boolean, default: !1 },
|
|
24
|
+
resendDuration: { default: 45 },
|
|
25
|
+
maxResends: { default: 5 },
|
|
26
|
+
resendText: { default: "Don't see it?" },
|
|
27
|
+
resendActionText: { default: "Resend code" },
|
|
28
|
+
resendWaitText: { default: "Resend code in" },
|
|
29
|
+
resendLimitText: { default: "Too many attempts. Please try again." }
|
|
17
30
|
},
|
|
18
|
-
emits: ["update:modelValue", "complete", "change"],
|
|
19
|
-
setup(
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
31
|
+
emits: ["update:modelValue", "complete", "change", "resend", "resend-limit-reached"],
|
|
32
|
+
setup(s, { emit: R }) {
|
|
33
|
+
const e = s, p = R, i = w([]), r = w(new Array(e.length).fill("")), v = w(e.resendDuration), g = w(0);
|
|
34
|
+
let f = null;
|
|
35
|
+
const T = () => {
|
|
36
|
+
f && clearInterval(f), v.value = e.resendDuration, f = setInterval(() => {
|
|
37
|
+
v.value > 0 ? v.value-- : f && clearInterval(f);
|
|
38
|
+
}, 1e3);
|
|
39
|
+
}, C = () => {
|
|
40
|
+
g.value >= e.maxResends || (g.value++, p("resend", g.value), g.value >= e.maxResends ? p("resend-limit-reached") : T());
|
|
41
|
+
};
|
|
42
|
+
N(
|
|
43
|
+
() => e.modelValue,
|
|
44
|
+
(n) => {
|
|
45
|
+
const t = n || "", o = t.split("").slice(0, e.length);
|
|
46
|
+
if (r.value.join("") !== t) {
|
|
47
|
+
const l = new Array(e.length).fill("");
|
|
48
|
+
o.forEach((u, y) => l[y] = u), r.value = l;
|
|
28
49
|
}
|
|
29
50
|
},
|
|
30
51
|
{ immediate: !0 }
|
|
31
52
|
);
|
|
32
|
-
const
|
|
33
|
-
const
|
|
34
|
-
p("update:modelValue",
|
|
35
|
-
},
|
|
36
|
-
let
|
|
37
|
-
if (
|
|
38
|
-
r.value[
|
|
53
|
+
const h = () => {
|
|
54
|
+
const n = r.value.join("");
|
|
55
|
+
p("update:modelValue", n), p("change", n), n.length === e.length && p("complete", n);
|
|
56
|
+
}, V = (n, t) => {
|
|
57
|
+
let a = n.target.value;
|
|
58
|
+
if (e.type === "number" && (a = a.replace(/\D/g, "")), a.length === 1) {
|
|
59
|
+
r.value[t] = a, h(), t < e.length - 1 && i.value[t + 1]?.focus();
|
|
39
60
|
return;
|
|
40
61
|
}
|
|
41
|
-
if (!
|
|
42
|
-
r.value[
|
|
62
|
+
if (!a) {
|
|
63
|
+
r.value[t] = "", h();
|
|
43
64
|
return;
|
|
44
65
|
}
|
|
45
|
-
if (
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}),
|
|
50
|
-
const u = Math.min(
|
|
51
|
-
|
|
66
|
+
if (a.length > 1) {
|
|
67
|
+
const l = a.split("").slice(0, e.length - t);
|
|
68
|
+
l.forEach((y, b) => {
|
|
69
|
+
t + b < e.length && (r.value[t + b] = y);
|
|
70
|
+
}), h();
|
|
71
|
+
const u = Math.min(t + l.length, e.length - 1);
|
|
72
|
+
i.value[u]?.focus();
|
|
52
73
|
}
|
|
53
|
-
},
|
|
54
|
-
const
|
|
55
|
-
if (
|
|
56
|
-
r.value[
|
|
74
|
+
}, j = (n, t) => {
|
|
75
|
+
const o = n.key;
|
|
76
|
+
if (o === "Backspace") {
|
|
77
|
+
r.value[t] || (n.preventDefault(), t > 0 && (r.value[t - 1] = "", i.value[t - 1]?.focus(), h()));
|
|
57
78
|
return;
|
|
58
79
|
}
|
|
59
|
-
|
|
60
|
-
},
|
|
61
|
-
|
|
62
|
-
const
|
|
63
|
-
if (!
|
|
64
|
-
let
|
|
65
|
-
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}), r.value =
|
|
70
|
-
const u = Math.min(
|
|
71
|
-
|
|
72
|
-
},
|
|
73
|
-
|
|
80
|
+
o === "ArrowLeft" && (n.preventDefault(), t > 0 && i.value[t - 1]?.focus()), o === "ArrowRight" && (n.preventDefault(), t < e.length - 1 && i.value[t + 1]?.focus());
|
|
81
|
+
}, A = (n) => {
|
|
82
|
+
n.preventDefault();
|
|
83
|
+
const t = n.clipboardData?.getData("text/plain");
|
|
84
|
+
if (!t) return;
|
|
85
|
+
let o = t.trim();
|
|
86
|
+
e.type === "number" && (o = o.replace(/\D/g, ""));
|
|
87
|
+
const a = o.split("").slice(0, e.length), l = [...r.value];
|
|
88
|
+
a.forEach((y, b) => {
|
|
89
|
+
l[b] = y;
|
|
90
|
+
}), r.value = l, h();
|
|
91
|
+
const u = Math.min(a.length, e.length - 1);
|
|
92
|
+
i.value[u]?.focus();
|
|
93
|
+
}, z = (n, t) => {
|
|
94
|
+
n && (i.value[t] = n);
|
|
74
95
|
};
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
});
|
|
96
|
+
J(() => {
|
|
97
|
+
e.autofocus && W(() => {
|
|
98
|
+
i.value[0]?.focus();
|
|
99
|
+
}), e.allowResend && T();
|
|
100
|
+
}), $(() => {
|
|
101
|
+
f && clearInterval(f);
|
|
79
102
|
});
|
|
80
|
-
const
|
|
81
|
-
if (!
|
|
82
|
-
return
|
|
83
|
-
}),
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
const
|
|
103
|
+
const E = x(() => e.mask ? "password" : e.type === "number" ? "tel" : "text"), M = x(() => {
|
|
104
|
+
if (!e.mask)
|
|
105
|
+
return e.type === "number" ? "numeric" : void 0;
|
|
106
|
+
}), L = x(() => [
|
|
107
|
+
"flex flex-col gap-2",
|
|
108
|
+
e.fluid ? "w-full" : "w-fit"
|
|
109
|
+
].filter(Boolean).join(" ")), P = x(() => {
|
|
110
|
+
const n = e.attached ? "-space-x-px" : "gap-2", t = e.fluid ? "w-full" : "";
|
|
111
|
+
return ["flex items-center", n, t].filter(Boolean).join(" ");
|
|
112
|
+
}), F = (n) => {
|
|
113
|
+
const t = "text-center font-medium transition-all focus:outline-none focus:z-10 disabled:opacity-50 disabled:cursor-not-allowed placeholder:text-muted-foreground", o = e.fluid ? {
|
|
88
114
|
sm: "flex-1 min-w-0 h-8 text-sm",
|
|
89
115
|
md: "flex-1 min-w-0 h-10 text-lg",
|
|
90
116
|
lg: "flex-1 min-w-0 h-12 text-xl"
|
|
@@ -92,36 +118,55 @@ const K = ["value", "type", "inputmode", "disabled", "placeholder", "onInput", "
|
|
|
92
118
|
sm: "w-8 h-8 text-sm",
|
|
93
119
|
md: "w-10 h-10 text-lg",
|
|
94
120
|
lg: "w-12 h-12 text-xl"
|
|
95
|
-
},
|
|
121
|
+
}, a = {
|
|
96
122
|
solid: "bg-muted border border-transparent focus:border-primary focus:ring-2 focus:ring-primary",
|
|
97
123
|
outline: "border border-input focus:border-primary focus:ring-2 focus:ring-primary",
|
|
98
124
|
ghost: "bg-transparent border border-transparent hover:bg-accent focus:border-primary focus:ring-2 focus:ring-primary"
|
|
99
|
-
},
|
|
125
|
+
}, l = e.error ? "border-destructive focus:ring-destructive text-destructive" : "";
|
|
100
126
|
let u = "rounded-md";
|
|
101
|
-
return
|
|
127
|
+
return e.attached && (n === 0 ? u = "rounded-l-md rounded-r-none" : n === e.length - 1 ? u = "rounded-r-md rounded-l-none" : u = "rounded-none"), [t, o[e.size], a[e.variant], l, u].join(" ");
|
|
102
128
|
};
|
|
103
|
-
return (
|
|
104
|
-
class:
|
|
129
|
+
return (n, t) => (d(), c("div", {
|
|
130
|
+
class: D(L.value)
|
|
105
131
|
}, [
|
|
106
|
-
(
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
132
|
+
k("div", {
|
|
133
|
+
class: D(P.value)
|
|
134
|
+
}, [
|
|
135
|
+
(d(!0), c(I, null, O(e.length, (o, a) => (d(), c("input", {
|
|
136
|
+
key: a,
|
|
137
|
+
ref_for: !0,
|
|
138
|
+
ref: (l) => z(l, a),
|
|
139
|
+
value: r.value[a],
|
|
140
|
+
type: E.value,
|
|
141
|
+
inputmode: M.value,
|
|
142
|
+
maxlength: 1,
|
|
143
|
+
disabled: s.disabled,
|
|
144
|
+
placeholder: s.placeholder,
|
|
145
|
+
class: D(F(a)),
|
|
146
|
+
onInput: (l) => V(l, a),
|
|
147
|
+
onKeydown: (l) => j(l, a),
|
|
148
|
+
onPaste: A,
|
|
149
|
+
onFocus: t[0] || (t[0] = (l) => n.$emit("update:modelValue", r.value.join("")))
|
|
150
|
+
}, null, 42, U))), 128))
|
|
151
|
+
], 2),
|
|
152
|
+
s.allowResend ? (d(), c("div", q, [
|
|
153
|
+
g.value < s.maxResends ? (d(), c(I, { key: 0 }, [
|
|
154
|
+
v.value > 0 ? (d(), c("span", G, [
|
|
155
|
+
B(m(s.resendText) + " " + m(s.resendWaitText) + " ", 1),
|
|
156
|
+
k("span", H, m(v.value) + "s", 1)
|
|
157
|
+
])) : (d(), c("span", Q, [
|
|
158
|
+
B(m(s.resendText) + " ", 1),
|
|
159
|
+
k("button", {
|
|
160
|
+
type: "button",
|
|
161
|
+
onClick: C,
|
|
162
|
+
class: "font-medium text-primary hover:underline focus:outline-none focus:ring-2 focus:ring-primary rounded px-1 transition-colors"
|
|
163
|
+
}, m(s.resendActionText), 1)
|
|
164
|
+
]))
|
|
165
|
+
], 64)) : (d(), c("span", X, m(s.resendLimitText), 1))
|
|
166
|
+
])) : S("", !0)
|
|
122
167
|
], 2));
|
|
123
168
|
}
|
|
124
169
|
});
|
|
125
170
|
export {
|
|
126
|
-
|
|
171
|
+
Z as default
|
|
127
172
|
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { defineComponent as F, computed as o, openBlock as i, createElementBlock as a, normalizeClass as
|
|
1
|
+
import { defineComponent as F, computed as o, openBlock as i, createElementBlock as a, normalizeClass as u, createVNode as v, withCtx as h, createTextVNode as b, toDisplayString as l, createCommentVNode as m, createElementVNode as s, Fragment as j, renderList as D, createBlock as y } from "vue";
|
|
2
2
|
import _ from "../Icon.vue.js";
|
|
3
|
-
import
|
|
4
|
-
import
|
|
3
|
+
import E from "../Button.vue.js";
|
|
4
|
+
import S from "../Badge.vue.js";
|
|
5
5
|
import { $t as n } from "../../utils/i18n.js";
|
|
6
6
|
const L = {
|
|
7
7
|
key: 0,
|
|
8
|
-
class: "absolute -top-3 left-1/2 -translate-x-1/2 z-20"
|
|
8
|
+
class: "absolute -top-3 left-1/2 -translate-x-1/2 z-20 flex w-full max-w-[90%] justify-center"
|
|
9
9
|
}, M = { class: "mb-3 text-center" }, R = { class: "text-xl font-bold text-foreground tracking-tight" }, q = {
|
|
10
10
|
key: 0,
|
|
11
11
|
class: "text-sm text-muted-foreground mt-2 min-h-[40px] leading-relaxed"
|
|
@@ -22,9 +22,9 @@ const L = {
|
|
|
22
22
|
},
|
|
23
23
|
emits: ["select"],
|
|
24
24
|
setup(c, { emit: P }) {
|
|
25
|
-
const e = c, k = P,
|
|
25
|
+
const e = c, k = P, w = () => {
|
|
26
26
|
e.selectable && k("select", e.item);
|
|
27
|
-
},
|
|
27
|
+
}, I = o(() => e.item.titleI18n ? n(e.item.titleI18n) : e.item.title), p = o(() => e.item.descriptionI18n ? n(e.item.descriptionI18n) : e.item.description), f = o(() => e.item.periodI18n ? n(e.item.periodI18n) : e.item.period), T = o(() => {
|
|
28
28
|
if (e.item.buttonTextI18n) return n(e.item.buttonTextI18n);
|
|
29
29
|
if (e.item.buttonText) return e.item.buttonText;
|
|
30
30
|
const t = n("vlite.pricingPlan.selected") !== "vlite.pricingPlan.selected" ? n("vlite.pricingPlan.selected") : "Selected", r = n("vlite.pricingPlan.choosePlan") !== "vlite.pricingPlan.choosePlan" ? n("vlite.pricingPlan.choosePlan") : "Choose Plan";
|
|
@@ -42,30 +42,30 @@ const L = {
|
|
|
42
42
|
return t !== "vlite.pricingPlan.mostPopular" ? t : "Most Popular";
|
|
43
43
|
});
|
|
44
44
|
return (t, r) => (i(), a("div", {
|
|
45
|
-
class:
|
|
46
|
-
onClick:
|
|
45
|
+
class: u(C.value),
|
|
46
|
+
onClick: w
|
|
47
47
|
}, [
|
|
48
48
|
x.value ? (i(), a("div", L, [
|
|
49
|
-
v(
|
|
49
|
+
v(S, {
|
|
50
50
|
variant: B.value,
|
|
51
|
-
class: "shadow-sm px-4 py-1 text-xs uppercase tracking-wider font-bold"
|
|
51
|
+
class: "shadow-sm px-4 py-1 text-xs uppercase tracking-wider font-bold truncate max-w-full"
|
|
52
52
|
}, {
|
|
53
53
|
default: h(() => [
|
|
54
54
|
b(l(z.value), 1)
|
|
55
55
|
]),
|
|
56
56
|
_: 1
|
|
57
57
|
}, 8, ["variant"])
|
|
58
|
-
])) :
|
|
58
|
+
])) : m("", !0),
|
|
59
59
|
s("div", M, [
|
|
60
|
-
s("h3", R, l(
|
|
61
|
-
p.value ? (i(), a("p", q, l(p.value), 1)) :
|
|
60
|
+
s("h3", R, l(I.value), 1),
|
|
61
|
+
p.value ? (i(), a("p", q, l(p.value), 1)) : m("", !0)
|
|
62
62
|
]),
|
|
63
63
|
s("div", A, [
|
|
64
64
|
s("span", G, l(c.item.price), 1),
|
|
65
|
-
f.value ? (i(), a("span", H, l(f.value), 1)) :
|
|
65
|
+
f.value ? (i(), a("span", H, l(f.value), 1)) : m("", !0)
|
|
66
66
|
]),
|
|
67
67
|
s("ul", J, [
|
|
68
|
-
(i(!0), a(
|
|
68
|
+
(i(!0), a(j, null, D(c.item.features, (d, N) => (i(), a("li", {
|
|
69
69
|
key: N,
|
|
70
70
|
class: "flex items-start gap-3 text-sm group/feature"
|
|
71
71
|
}, [
|
|
@@ -81,20 +81,20 @@ const L = {
|
|
|
81
81
|
}))
|
|
82
82
|
]),
|
|
83
83
|
s("span", {
|
|
84
|
-
class:
|
|
84
|
+
class: u(
|
|
85
85
|
g(d) ? "text-foreground/90 font-medium" : "text-muted-foreground/60 decoration-slate-300/50"
|
|
86
86
|
)
|
|
87
87
|
}, l($(d)), 3)
|
|
88
88
|
]))), 128))
|
|
89
89
|
]),
|
|
90
90
|
s("div", O, [
|
|
91
|
-
v(
|
|
91
|
+
v(E, {
|
|
92
92
|
variant: V.value,
|
|
93
|
-
class:
|
|
93
|
+
class: u(["w-full font-semibold shadow-sm rounded-lg", { "ring-2 ring-primary ring-offset-2": c.selected }]),
|
|
94
94
|
size: "lg"
|
|
95
95
|
}, {
|
|
96
96
|
default: h(() => [
|
|
97
|
-
b(l(
|
|
97
|
+
b(l(T.value), 1)
|
|
98
98
|
]),
|
|
99
99
|
_: 1
|
|
100
100
|
}, 8, ["variant", "class"])
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { RadioSize, RadioColor } from '../types';
|
|
2
|
+
interface Props {
|
|
3
|
+
modelValue?: any;
|
|
4
|
+
value?: any;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
label?: string;
|
|
7
|
+
labelI18n?: string;
|
|
8
|
+
id?: string;
|
|
9
|
+
class?: string;
|
|
10
|
+
size?: RadioSize;
|
|
11
|
+
color?: RadioColor;
|
|
12
|
+
name?: string;
|
|
13
|
+
}
|
|
14
|
+
declare function __VLS_template(): {
|
|
15
|
+
attrs: Partial<{}>;
|
|
16
|
+
slots: {
|
|
17
|
+
default?(_: {}): any;
|
|
18
|
+
};
|
|
19
|
+
refs: {};
|
|
20
|
+
rootEl: HTMLDivElement;
|
|
21
|
+
};
|
|
22
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
23
|
+
declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
24
|
+
"update:modelValue": (value: any) => any;
|
|
25
|
+
}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
|
|
26
|
+
"onUpdate:modelValue"?: (value: any) => any;
|
|
27
|
+
}>, {
|
|
28
|
+
value: any;
|
|
29
|
+
class: string;
|
|
30
|
+
color: RadioColor;
|
|
31
|
+
size: RadioSize;
|
|
32
|
+
disabled: boolean;
|
|
33
|
+
modelValue: any;
|
|
34
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
|
|
35
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
36
|
+
export default _default;
|
|
37
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
38
|
+
new (): {
|
|
39
|
+
$slots: S;
|
|
40
|
+
};
|
|
41
|
+
};
|