nuxt-hs-ui 2.12.7 → 4.0.0-beta.2
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 +202 -14
- package/dist/module.d.mts +3 -4
- package/dist/module.json +9 -6
- package/dist/module.mjs +125 -99
- package/dist/runtime/assets/flatpickr-dark.css +1 -1
- package/dist/runtime/assets/main.css +1 -0
- package/dist/runtime/assets/tabulator-custom.css +1 -1
- package/dist/runtime/components/form/_select/hidden-item-toggle.vue +28 -0
- package/dist/runtime/components/form/_select/hidden-item-toggle.vue.d.ts +10 -0
- package/dist/runtime/components/form/_select/item-container.vue +63 -0
- package/dist/runtime/components/form/_select/item-container.vue.d.ts +19 -0
- package/dist/runtime/components/form/_select/item-label.vue +31 -0
- package/dist/runtime/components/form/_select/item-label.vue.d.ts +13 -0
- package/dist/runtime/components/form/_select/item-row.vue +62 -0
- package/dist/runtime/components/form/_select/item-row.vue.d.ts +34 -0
- package/dist/runtime/components/form/btn-line-loading.vue +62 -81
- package/dist/runtime/components/form/btn-line-loading.vue.d.ts +14 -0
- package/dist/runtime/components/form/btn.vue +411 -494
- package/dist/runtime/components/form/btn.vue.d.ts +0 -0
- package/dist/runtime/components/form/check-box.vue +200 -315
- package/dist/runtime/components/form/check-box.vue.d.ts +71 -0
- package/dist/runtime/components/form/check-list.vue +234 -364
- package/dist/runtime/components/form/check-list.vue.d.ts +99 -0
- package/dist/runtime/components/form/combo-box.vue +340 -0
- package/dist/runtime/components/form/combo-box.vue.d.ts +69 -0
- package/dist/runtime/components/form/datepicker.vue +717 -883
- package/dist/runtime/components/form/datepicker.vue.d.ts +122 -0
- package/dist/runtime/components/form/input-frame.vue +174 -258
- package/dist/runtime/components/form/input-frame.vue.d.ts +88 -0
- package/dist/runtime/components/form/radio.vue +451 -614
- package/dist/runtime/components/form/radio.vue.d.ts +62 -0
- package/dist/runtime/components/form/select-img-icon.vue +38 -53
- package/dist/runtime/components/form/select-img-icon.vue.d.ts +15 -0
- package/dist/runtime/components/form/select.vue +733 -579
- package/dist/runtime/components/form/select.vue.d.ts +63 -0
- package/dist/runtime/components/form/text-box.vue +266 -365
- package/dist/runtime/components/form/text-box.vue.d.ts +105 -0
- package/dist/runtime/components/form/textarea.vue +338 -421
- package/dist/runtime/components/form/textarea.vue.d.ts +98 -0
- package/dist/runtime/components/form/value-box.vue +512 -641
- package/dist/runtime/components/form/value-box.vue.d.ts +128 -0
- package/dist/runtime/components/interactive/alert.vue +49 -113
- package/dist/runtime/components/interactive/alert.vue.d.ts +30 -0
- package/dist/runtime/components/interactive/block-loading.vue +91 -119
- package/dist/runtime/components/interactive/block-loading.vue.d.ts +22 -0
- package/dist/runtime/components/interactive/dialog.vue +252 -407
- package/dist/runtime/components/interactive/dialog.vue.d.ts +3 -0
- package/dist/runtime/components/interactive/modal-bg.vue +72 -82
- package/dist/runtime/components/interactive/modal-bg.vue.d.ts +11 -0
- package/dist/runtime/components/interactive/modal.vue +121 -169
- package/dist/runtime/components/interactive/modal.vue.d.ts +38 -0
- package/dist/runtime/components/interactive/toast.vue +164 -206
- package/dist/runtime/components/interactive/toast.vue.d.ts +3 -0
- package/dist/runtime/components/interactive/window-loader.vue +61 -84
- package/dist/runtime/components/interactive/window-loader.vue.d.ts +3 -0
- package/dist/runtime/components/layout/accordion-down.vue +72 -0
- package/dist/runtime/components/layout/accordion-down.vue.d.ts +26 -0
- package/dist/runtime/components/layout/accordion.vue +47 -78
- package/dist/runtime/components/layout/accordion.vue.d.ts +22 -0
- package/dist/runtime/components/layout/aspect-box.vue +29 -58
- package/dist/runtime/components/layout/aspect-box.vue.d.ts +29 -0
- package/dist/runtime/components/layout/card-item.vue +148 -193
- package/dist/runtime/components/layout/card-item.vue.d.ts +0 -0
- package/dist/runtime/components/layout/card.vue +27 -42
- package/dist/runtime/components/layout/card.vue.d.ts +23 -0
- package/dist/runtime/components/layout/container.vue +25 -40
- package/dist/runtime/components/layout/container.vue.d.ts +35 -0
- package/dist/runtime/components/layout/divider-h.vue +30 -50
- package/dist/runtime/components/layout/divider-h.vue.d.ts +18 -0
- package/dist/runtime/components/misc/breadcrumb.vue +47 -95
- package/dist/runtime/components/misc/breadcrumb.vue.d.ts +22 -0
- package/dist/runtime/components/misc/tabulator.vue +122 -190
- package/dist/runtime/components/misc/tabulator.vue.d.ts +28 -0
- package/dist/runtime/components/misc/view-name-display.vue +53 -68
- package/dist/runtime/components/misc/view-name-display.vue.d.ts +14 -0
- package/dist/runtime/components/test.vue +13 -0
- package/dist/runtime/components/test.vue.d.ts +3 -0
- package/dist/runtime/composables/test.d.ts +8 -0
- package/dist/runtime/composables/test.js +12 -0
- package/dist/runtime/composables/use-hs-dialog.d.ts +3 -20
- package/dist/runtime/composables/use-hs-dialog.js +3 -9
- package/dist/runtime/composables/use-hs-is-mobile.d.ts +8 -2
- package/dist/runtime/composables/use-hs-is-mobile.js +43 -25
- package/dist/runtime/composables/use-hs-misc.d.ts +8 -38
- package/dist/runtime/composables/use-hs-misc.js +9 -61
- package/dist/runtime/composables/use-hs-modal.js +1 -3
- package/dist/runtime/composables/use-hs-multi-lang.d.ts +23 -40
- package/dist/runtime/composables/use-hs-multi-lang.js +30 -74
- package/dist/runtime/composables/use-hs-scroll-lock.js +2 -1
- package/dist/runtime/composables/use-hs-toast.d.ts +2 -2
- package/dist/runtime/composables/use-hs-toast.js +12 -4
- package/dist/runtime/composables/use-pinia.d.ts +1 -0
- package/dist/runtime/composables/use-pinia.js +2 -0
- package/dist/runtime/plugin.d.ts +2 -0
- package/dist/runtime/plugin.js +4 -0
- package/dist/runtime/server/tsconfig.json +3 -3
- package/dist/runtime/types/dialog.d.ts +11 -20
- package/dist/runtime/types/dialog.js +2 -1
- package/dist/runtime/types/flatpickr/default.js +2 -23
- package/dist/runtime/types/flatpickr/ja.js +3 -37
- package/dist/runtime/types/toast.d.ts +1 -1
- package/dist/runtime/utils/dayjs.d.ts +8 -6
- package/dist/runtime/utils/dayjs.js +12 -5
- package/dist/runtime/utils/modal.d.ts +9 -28
- package/dist/runtime/utils/modal.js +7 -36
- package/dist/runtime/utils/multi-lang-object.d.ts +2 -2
- package/dist/runtime/utils/multi-lang-object.js +1 -5
- package/dist/runtime/utils/multi-lang.js +12 -22
- package/dist/runtime/utils/number.js +1 -1
- package/dist/runtime/utils/object.js +1 -1
- package/dist/runtime/utils/select-item.d.ts +3 -1
- package/dist/runtime/utils/stop-watch.js +6 -4
- package/dist/runtime/utils/string.js +4 -4
- package/dist/runtime/utils/tabulator.d.ts +1 -42
- package/dist/runtime/utils/tabulator.js +2 -99
- package/dist/runtime/utils/theme.d.ts +20 -20
- package/dist/runtime/utils/theme.js +180 -30
- package/dist/runtime/utils/tv.d.ts +1 -101
- package/dist/runtime/utils/tv.js +0 -22
- package/dist/types.d.mts +3 -1
- package/package.json +61 -118
- package/dist/module.cjs +0 -5
- package/dist/module.d.ts +0 -16
- package/dist/runtime/assets/vue-select.css +0 -1
- package/dist/runtime/components/misc/view-name-display-target.vue +0 -39
- package/dist/runtime/plugin/v-select.d.ts +0 -2
- package/dist/runtime/plugin/v-select.js +0 -5
- package/dist/runtime/style.css +0 -22
- package/dist/runtime/tailwind.css +0 -78
- package/dist/runtime/types/app.config.d.ts +0 -5
- package/dist/types.d.ts +0 -1
|
@@ -1,30 +1,180 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
1
|
+
import { GetColorCode as _GetColorCode } from "#build/nuxt-hs-ui-next/runtime/theme.mjs";
|
|
2
|
+
export const GetColorCode = (theme2) => _GetColorCode(theme2);
|
|
3
|
+
import { Theme as theme } from "#build/nuxt-hs-ui-next/runtime/theme.mjs";
|
|
4
|
+
export const Theme = theme;
|
|
5
|
+
export function GetTextColor(bgHex, over = "#ffffff") {
|
|
6
|
+
try {
|
|
7
|
+
const bg = parseHex(bgHex);
|
|
8
|
+
const base = parseHex(over);
|
|
9
|
+
const opaque = bg.a < 1 ? compositeOver(bg, base) : { r: bg.r, g: bg.g, b: bg.b };
|
|
10
|
+
const L = relativeLuminance(opaque);
|
|
11
|
+
const contrastWithBlack = (L + 0.05) / 0.05;
|
|
12
|
+
const contrastWithWhite = 1.05 / (L + 0.05);
|
|
13
|
+
return contrastWithBlack >= contrastWithWhite ? "#000000" : "#ffffff";
|
|
14
|
+
} catch (err) {
|
|
15
|
+
console.error("GetTextColor", err);
|
|
16
|
+
return "#000000";
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const clamp = (n, min = 0, max = 1) => Math.min(max, Math.max(min, n));
|
|
20
|
+
function parseHex(hex) {
|
|
21
|
+
let s = hex.trim();
|
|
22
|
+
if (s.startsWith("#")) s = s.slice(1);
|
|
23
|
+
if (s.length === 3) {
|
|
24
|
+
const r = Number.parseInt(s[0] + s[0], 16);
|
|
25
|
+
const g = Number.parseInt(s[1] + s[1], 16);
|
|
26
|
+
const b = Number.parseInt(s[2] + s[2], 16);
|
|
27
|
+
return { r, g, b, a: 1 };
|
|
28
|
+
}
|
|
29
|
+
if (s.length === 4) {
|
|
30
|
+
const r = Number.parseInt(s[0] + s[0], 16);
|
|
31
|
+
const g = Number.parseInt(s[1] + s[1], 16);
|
|
32
|
+
const b = Number.parseInt(s[2] + s[2], 16);
|
|
33
|
+
const a = Number.parseInt(s[3] + s[3], 16) / 255;
|
|
34
|
+
return { r, g, b, a };
|
|
35
|
+
}
|
|
36
|
+
if (s.length === 6) {
|
|
37
|
+
const r = Number.parseInt(s.slice(0, 2), 16);
|
|
38
|
+
const g = Number.parseInt(s.slice(2, 4), 16);
|
|
39
|
+
const b = Number.parseInt(s.slice(4, 6), 16);
|
|
40
|
+
return { r, g, b, a: 1 };
|
|
41
|
+
}
|
|
42
|
+
if (s.length === 8) {
|
|
43
|
+
const r = Number.parseInt(s.slice(0, 2), 16);
|
|
44
|
+
const g = Number.parseInt(s.slice(2, 4), 16);
|
|
45
|
+
const b = Number.parseInt(s.slice(4, 6), 16);
|
|
46
|
+
const a = Number.parseInt(s.slice(6, 8), 16) / 255;
|
|
47
|
+
return { r, g, b, a };
|
|
48
|
+
}
|
|
49
|
+
throw new Error(`Invalid hex color: ${hex}`);
|
|
50
|
+
}
|
|
51
|
+
function compositeOver(fg, bg) {
|
|
52
|
+
const a = fg.a + bg.a * (1 - fg.a);
|
|
53
|
+
const r = Math.round((fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / a);
|
|
54
|
+
const g = Math.round((fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / a);
|
|
55
|
+
const b = Math.round((fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / a);
|
|
56
|
+
return { r, g, b };
|
|
57
|
+
}
|
|
58
|
+
function relativeLuminance({ r, g, b }) {
|
|
59
|
+
const toLinear = (c) => {
|
|
60
|
+
const cs = c / 255;
|
|
61
|
+
return cs <= 0.04045 ? cs / 12.92 : Math.pow((cs + 0.055) / 1.055, 2.4);
|
|
62
|
+
};
|
|
63
|
+
const R = toLinear(r);
|
|
64
|
+
const G = toLinear(g);
|
|
65
|
+
const B = toLinear(b);
|
|
66
|
+
return 0.2126 * R + 0.7152 * G + 0.0722 * B;
|
|
67
|
+
}
|
|
68
|
+
function hexToRgba(hex) {
|
|
69
|
+
let s = hex.trim();
|
|
70
|
+
if (s.startsWith("#")) s = s.slice(1);
|
|
71
|
+
if (![3, 4, 6, 8].includes(s.length)) throw new Error(`Invalid hex: ${hex}`);
|
|
72
|
+
const to255 = (hh) => Number.parseInt(hh, 16);
|
|
73
|
+
if (s.length === 3) {
|
|
74
|
+
const r = to255(s[0] + s[0]);
|
|
75
|
+
const g = to255(s[1] + s[1]);
|
|
76
|
+
const b = to255(s[2] + s[2]);
|
|
77
|
+
return { r, g, b, a: 1 };
|
|
78
|
+
}
|
|
79
|
+
if (s.length === 4) {
|
|
80
|
+
const r = to255(s[0] + s[0]);
|
|
81
|
+
const g = to255(s[1] + s[1]);
|
|
82
|
+
const b = to255(s[2] + s[2]);
|
|
83
|
+
const a = to255(s[3] + s[3]) / 255;
|
|
84
|
+
return { r, g, b, a };
|
|
85
|
+
}
|
|
86
|
+
if (s.length === 6) {
|
|
87
|
+
return {
|
|
88
|
+
r: to255(s.slice(0, 2)),
|
|
89
|
+
g: to255(s.slice(2, 4)),
|
|
90
|
+
b: to255(s.slice(4, 6)),
|
|
91
|
+
a: 1
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
r: to255(s.slice(0, 2)),
|
|
96
|
+
g: to255(s.slice(2, 4)),
|
|
97
|
+
b: to255(s.slice(4, 6)),
|
|
98
|
+
a: to255(s.slice(6, 8)) / 255
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
function rgbaToHex({ r, g, b, a }) {
|
|
102
|
+
const h2 = (v) => v.toString(16).padStart(2, "0");
|
|
103
|
+
const base = `#${h2(r)}${h2(g)}${h2(b)}`;
|
|
104
|
+
return a < 1 ? `${base}${h2(Math.round(a * 255))}` : base;
|
|
105
|
+
}
|
|
106
|
+
function rgbToHsl({ r, g, b }) {
|
|
107
|
+
const rn = r / 255, gn = g / 255, bn = b / 255;
|
|
108
|
+
const max = Math.max(rn, gn, bn), min = Math.min(rn, gn, bn);
|
|
109
|
+
const d = max - min;
|
|
110
|
+
let h = 0;
|
|
111
|
+
if (d !== 0) {
|
|
112
|
+
switch (max) {
|
|
113
|
+
case rn:
|
|
114
|
+
h = (gn - bn) / d + (gn < bn ? 6 : 0);
|
|
115
|
+
break;
|
|
116
|
+
case gn:
|
|
117
|
+
h = (bn - rn) / d + 2;
|
|
118
|
+
break;
|
|
119
|
+
default:
|
|
120
|
+
h = (rn - gn) / d + 4;
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
h /= 6;
|
|
124
|
+
}
|
|
125
|
+
const l = (max + min) / 2;
|
|
126
|
+
const s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1));
|
|
127
|
+
return { h, s, l };
|
|
128
|
+
}
|
|
129
|
+
function hslToRgb({ h, s, l }) {
|
|
130
|
+
if (s === 0) {
|
|
131
|
+
const v = Math.round(l * 255);
|
|
132
|
+
return { r: v, g: v, b: v };
|
|
133
|
+
}
|
|
134
|
+
const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
|
|
135
|
+
const p = 2 * l - q;
|
|
136
|
+
const hue2rgb = (t) => {
|
|
137
|
+
if (t < 0) t += 1;
|
|
138
|
+
if (t > 1) t -= 1;
|
|
139
|
+
if (t < 1 / 6) return p + (q - p) * 6 * t;
|
|
140
|
+
if (t < 1 / 2) return q;
|
|
141
|
+
if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;
|
|
142
|
+
return p;
|
|
143
|
+
};
|
|
144
|
+
const r = Math.round(hue2rgb(h + 1 / 3) * 255);
|
|
145
|
+
const g = Math.round(hue2rgb(h) * 255);
|
|
146
|
+
const b = Math.round(hue2rgb(h - 1 / 3) * 255);
|
|
147
|
+
return { r, g, b };
|
|
148
|
+
}
|
|
149
|
+
export function pickTextColor(bgHex, over = "#ffffff") {
|
|
150
|
+
const bg = hexToRgba(bgHex);
|
|
151
|
+
const base = hexToRgba(over);
|
|
152
|
+
const opaque = bg.a < 1 ? compositeOver(bg, base) : { r: bg.r, g: bg.g, b: bg.b };
|
|
153
|
+
const L = relativeLuminance(opaque);
|
|
154
|
+
const contrastBlack = (L + 0.05) / 0.05;
|
|
155
|
+
const contrastWhite = 1.05 / (L + 0.05);
|
|
156
|
+
return contrastBlack >= contrastWhite ? "#000000" : "#ffffff";
|
|
157
|
+
}
|
|
158
|
+
export function lighten(hex, delta = 0.08) {
|
|
159
|
+
const rgba = hexToRgba(hex);
|
|
160
|
+
const hsl = rgbToHsl(rgba);
|
|
161
|
+
hsl.l = clamp(hsl.l + Math.abs(delta));
|
|
162
|
+
const rgb = hslToRgb(hsl);
|
|
163
|
+
return rgbaToHex({ ...rgb, a: rgba.a });
|
|
164
|
+
}
|
|
165
|
+
export function darken(hex, delta = 0.08) {
|
|
166
|
+
const rgba = hexToRgba(hex);
|
|
167
|
+
const hsl = rgbToHsl(rgba);
|
|
168
|
+
hsl.l = clamp(hsl.l - Math.abs(delta));
|
|
169
|
+
const rgb = hslToRgb(hsl);
|
|
170
|
+
return rgbaToHex({ ...rgb, a: rgba.a });
|
|
171
|
+
}
|
|
172
|
+
export const microLighten = (hex) => lighten(hex, 0.08);
|
|
173
|
+
export const microDarken = (hex) => darken(hex, 0.08);
|
|
174
|
+
export function MakeAlertColors(baseHex, opts) {
|
|
175
|
+
const { tone = "soft", bgDelta = 0.18, inkDelta = 0.45, borderDelta = 0.1, over = "#ffffff" } = opts || {};
|
|
176
|
+
const bg = lighten(baseHex, bgDelta);
|
|
177
|
+
const border = darken(bg, borderDelta);
|
|
178
|
+
const text = tone === "ink" ? darken(baseHex, inkDelta) : pickTextColor(bg, over);
|
|
179
|
+
return { bg, text, border };
|
|
180
|
+
}
|
|
@@ -1,101 +1 @@
|
|
|
1
|
-
export declare const tv: import("tailwind-variants").
|
|
2
|
-
export declare const TvTheme: import("tailwind-variants").TVReturnType<{
|
|
3
|
-
theme: {
|
|
4
|
-
main0: string;
|
|
5
|
-
main1: string;
|
|
6
|
-
main2: string;
|
|
7
|
-
main3: string;
|
|
8
|
-
accent1: string;
|
|
9
|
-
accent2: string;
|
|
10
|
-
info: string;
|
|
11
|
-
link: string;
|
|
12
|
-
download: string;
|
|
13
|
-
success: string;
|
|
14
|
-
warn: string;
|
|
15
|
-
error: string;
|
|
16
|
-
white: string;
|
|
17
|
-
black: string;
|
|
18
|
-
dark: string;
|
|
19
|
-
back: string;
|
|
20
|
-
};
|
|
21
|
-
}, undefined, undefined, {
|
|
22
|
-
responsiveVariants?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | {
|
|
23
|
-
theme?: boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | undefined;
|
|
24
|
-
} | undefined;
|
|
25
|
-
} & import("tailwind-variants/dist/config.js").TWMConfig & (boolean | ("sm" | "md" | "lg" | "xl" | "2xl")[] | {} | undefined), {
|
|
26
|
-
theme: {
|
|
27
|
-
main0: string;
|
|
28
|
-
main1: string;
|
|
29
|
-
main2: string;
|
|
30
|
-
main3: string;
|
|
31
|
-
accent1: string;
|
|
32
|
-
accent2: string;
|
|
33
|
-
info: string;
|
|
34
|
-
link: string;
|
|
35
|
-
download: string;
|
|
36
|
-
success: string;
|
|
37
|
-
warn: string;
|
|
38
|
-
error: string;
|
|
39
|
-
white: string;
|
|
40
|
-
black: string;
|
|
41
|
-
dark: string;
|
|
42
|
-
back: string;
|
|
43
|
-
};
|
|
44
|
-
}, undefined, import("tailwind-variants").TVReturnType<{
|
|
45
|
-
theme: {
|
|
46
|
-
main0: string;
|
|
47
|
-
main1: string;
|
|
48
|
-
main2: string;
|
|
49
|
-
main3: string;
|
|
50
|
-
accent1: string;
|
|
51
|
-
accent2: string;
|
|
52
|
-
info: string;
|
|
53
|
-
link: string;
|
|
54
|
-
download: string;
|
|
55
|
-
success: string;
|
|
56
|
-
warn: string;
|
|
57
|
-
error: string;
|
|
58
|
-
white: string;
|
|
59
|
-
black: string;
|
|
60
|
-
dark: string;
|
|
61
|
-
back: string;
|
|
62
|
-
};
|
|
63
|
-
}, undefined, undefined, import("tailwind-variants/dist/config.js").TVConfig<{
|
|
64
|
-
theme: {
|
|
65
|
-
main0: string;
|
|
66
|
-
main1: string;
|
|
67
|
-
main2: string;
|
|
68
|
-
main3: string;
|
|
69
|
-
accent1: string;
|
|
70
|
-
accent2: string;
|
|
71
|
-
info: string;
|
|
72
|
-
link: string;
|
|
73
|
-
download: string;
|
|
74
|
-
success: string;
|
|
75
|
-
warn: string;
|
|
76
|
-
error: string;
|
|
77
|
-
white: string;
|
|
78
|
-
black: string;
|
|
79
|
-
dark: string;
|
|
80
|
-
back: string;
|
|
81
|
-
};
|
|
82
|
-
}, {
|
|
83
|
-
theme: {
|
|
84
|
-
main0: string;
|
|
85
|
-
main1: string;
|
|
86
|
-
main2: string;
|
|
87
|
-
main3: string;
|
|
88
|
-
accent1: string;
|
|
89
|
-
accent2: string;
|
|
90
|
-
info: string;
|
|
91
|
-
link: string;
|
|
92
|
-
download: string;
|
|
93
|
-
success: string;
|
|
94
|
-
warn: string;
|
|
95
|
-
error: string;
|
|
96
|
-
white: string;
|
|
97
|
-
black: string;
|
|
98
|
-
dark: string;
|
|
99
|
-
back: string;
|
|
100
|
-
};
|
|
101
|
-
}>, unknown, unknown, undefined>>;
|
|
1
|
+
export declare const tv: import("tailwind-variants").TV;
|
package/dist/runtime/utils/tv.js
CHANGED
|
@@ -2,25 +2,3 @@ import { createTV } from "tailwind-variants";
|
|
|
2
2
|
import _appConfig from "#build/app.config";
|
|
3
3
|
const appConfig = _appConfig;
|
|
4
4
|
export const tv = createTV(appConfig.tv || {});
|
|
5
|
-
export const TvTheme = tv({
|
|
6
|
-
variants: {
|
|
7
|
-
theme: {
|
|
8
|
-
main0: "",
|
|
9
|
-
main1: "",
|
|
10
|
-
main2: "",
|
|
11
|
-
main3: "",
|
|
12
|
-
accent1: "",
|
|
13
|
-
accent2: "",
|
|
14
|
-
info: "",
|
|
15
|
-
link: "",
|
|
16
|
-
download: "",
|
|
17
|
-
success: "",
|
|
18
|
-
warn: "",
|
|
19
|
-
error: "",
|
|
20
|
-
white: "",
|
|
21
|
-
black: "",
|
|
22
|
-
dark: "",
|
|
23
|
-
back: ""
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
});
|
package/dist/types.d.mts
CHANGED
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nuxt-hs-ui",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
5
|
-
"repository": "https://github.com/hare-systems-ryo/nuxt-hs-ui",
|
|
3
|
+
"version": "4.0.0-beta.2",
|
|
4
|
+
"description": "This repository is dedicated to the ongoing migration of **nuxt-hs-ui** to **Nuxt 4**",
|
|
5
|
+
"repository": "https://github.com/hare-systems-ryo/nuxt-hs-ui-next",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Ryo@Hare-Systems",
|
|
@@ -11,146 +11,89 @@
|
|
|
11
11
|
"type": "module",
|
|
12
12
|
"exports": {
|
|
13
13
|
".": {
|
|
14
|
-
"types": "./dist/types.d.
|
|
15
|
-
"import": "./dist/module.mjs"
|
|
16
|
-
"require": "./dist/module.cjs"
|
|
14
|
+
"types": "./dist/types.d.mts",
|
|
15
|
+
"import": "./dist/module.mjs"
|
|
17
16
|
},
|
|
18
|
-
"./utils/
|
|
19
|
-
"types": "./dist/runtime/
|
|
20
|
-
"import": "./dist/runtime/
|
|
21
|
-
"require": "./dist/runtime/
|
|
17
|
+
"./utils/tailwindcss": {
|
|
18
|
+
"types": "./dist/runtime/assets/tailwind.config.d.ts",
|
|
19
|
+
"import": "./dist/runtime/assets/tailwind.config.js",
|
|
20
|
+
"require": "./dist/runtime/assets/tailwind.config.js"
|
|
22
21
|
},
|
|
23
|
-
"./utils
|
|
24
|
-
"types": "./dist/runtime/utils
|
|
25
|
-
"import": "./dist/runtime/utils
|
|
26
|
-
"
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"import": "./dist/runtime/utils/float.js",
|
|
36
|
-
"require": "./dist/runtime/utils/float.js"
|
|
37
|
-
},
|
|
38
|
-
"./utils/modal": {
|
|
39
|
-
"types": "./dist/runtime/utils/modal.d.ts",
|
|
40
|
-
"import": "./dist/runtime/utils/modal.js",
|
|
41
|
-
"require": "./dist/runtime/utils/modal.js"
|
|
42
|
-
},
|
|
43
|
-
"./utils/multi-lang-object": {
|
|
44
|
-
"types": "./dist/runtime/utils/multi-lang-object.d.ts",
|
|
45
|
-
"import": "./dist/runtime/utils/multi-lang-object.js",
|
|
46
|
-
"require": "./dist/runtime/utils/multi-lang-object.js"
|
|
47
|
-
},
|
|
48
|
-
"./utils/multi-lang": {
|
|
49
|
-
"types": "./dist/runtime/utils/multi-lang.d.ts",
|
|
50
|
-
"import": "./dist/runtime/utils/multi-lang.js",
|
|
51
|
-
"require": "./dist/runtime/utils/multi-lang.js"
|
|
52
|
-
},
|
|
53
|
-
"./utils/number": {
|
|
54
|
-
"types": "./dist/runtime/utils/number.d.ts",
|
|
55
|
-
"import": "./dist/runtime/utils/number.js",
|
|
56
|
-
"require": "./dist/runtime/utils/number.js"
|
|
57
|
-
},
|
|
58
|
-
"./utils/object": {
|
|
59
|
-
"types": "./dist/runtime/utils/object.d.ts",
|
|
60
|
-
"import": "./dist/runtime/utils/object.js",
|
|
61
|
-
"require": "./dist/runtime/utils/object.js"
|
|
62
|
-
},
|
|
63
|
-
"./utils/select-item": {
|
|
64
|
-
"types": "./dist/runtime/utils/select-item.d.ts",
|
|
65
|
-
"import": "./dist/runtime/utils/select-item.js",
|
|
66
|
-
"require": "./dist/runtime/utils/select-item.js"
|
|
67
|
-
},
|
|
68
|
-
"./utils/stop-watch": {
|
|
69
|
-
"types": "./dist/runtime/utils/stop-watch.d.ts",
|
|
70
|
-
"import": "./dist/runtime/utils/stop-watch.js",
|
|
71
|
-
"require": "./dist/runtime/utils/stop-watch.js"
|
|
72
|
-
},
|
|
73
|
-
"./utils/string": {
|
|
74
|
-
"types": "./dist/runtime/utils/string.d.ts",
|
|
75
|
-
"import": "./dist/runtime/utils/string.js",
|
|
76
|
-
"require": "./dist/runtime/utils/string.js"
|
|
77
|
-
},
|
|
78
|
-
"./utils/tabulator": {
|
|
79
|
-
"types": "./dist/runtime/utils/tabulator.d.ts",
|
|
80
|
-
"import": "./dist/runtime/utils/tabulator.js",
|
|
81
|
-
"require": "./dist/runtime/utils/tabulator.js"
|
|
82
|
-
},
|
|
83
|
-
"./utils/theme": {
|
|
84
|
-
"types": "./dist/runtime/utils/theme.d.ts",
|
|
85
|
-
"import": "./dist/runtime/utils/theme.js",
|
|
86
|
-
"require": "./dist/runtime/utils/theme.js"
|
|
87
|
-
},
|
|
88
|
-
"./utils/wareki": {
|
|
89
|
-
"types": "./dist/runtime/utils/wareki.d.ts",
|
|
90
|
-
"import": "./dist/runtime/utils/wareki.js",
|
|
91
|
-
"require": "./dist/runtime/utils/wareki.js"
|
|
22
|
+
"./utils/*": {
|
|
23
|
+
"types": "./dist/runtime/utils/*.d.ts",
|
|
24
|
+
"import": "./dist/runtime/utils/*.js",
|
|
25
|
+
"default": "./dist/runtime/utils/*.js"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"main": "./dist/module.mjs",
|
|
29
|
+
"typesVersions": {
|
|
30
|
+
"*": {
|
|
31
|
+
".": [
|
|
32
|
+
"./dist/types.d.mts"
|
|
33
|
+
]
|
|
92
34
|
}
|
|
93
35
|
},
|
|
94
|
-
"main": "./dist/module.cjs",
|
|
95
|
-
"types": "./dist/types.d.ts",
|
|
96
36
|
"files": [
|
|
97
37
|
"dist"
|
|
98
38
|
],
|
|
99
39
|
"volta": {
|
|
100
|
-
"node": "
|
|
101
|
-
"npm": "10.
|
|
40
|
+
"node": "22.22.2",
|
|
41
|
+
"npm": "10.9.7"
|
|
102
42
|
},
|
|
103
43
|
"scripts": {
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
"dev": "nuxi dev playground",
|
|
44
|
+
"prepack": "nuxt-module-build build --failOnWarn=false",
|
|
45
|
+
"dev": "npm run dev:prepare && nuxi dev playground",
|
|
107
46
|
"dev:build": "nuxi build playground",
|
|
108
47
|
"dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare playground",
|
|
109
|
-
"release": "npm run lint &&
|
|
48
|
+
"release": "npm run lint && npm run test && npm run prepack && changelogen --release && npm publish && git push --follow-tags",
|
|
49
|
+
"release-beta": "npm run lint && npm run test && npm run prepack && npm publish --tag beta && git push --follow-tags",
|
|
110
50
|
"lint": "eslint .",
|
|
111
51
|
"test": "vitest run",
|
|
112
52
|
"test:watch": "vitest watch",
|
|
113
53
|
"test:types": "vue-tsc --noEmit && cd playground && vue-tsc --noEmit"
|
|
114
54
|
},
|
|
55
|
+
"peerDependencies": {
|
|
56
|
+
"@vueuse/nuxt": "^14.3.0",
|
|
57
|
+
"sass-embedded": "^1.89.2"
|
|
58
|
+
},
|
|
115
59
|
"dependencies": {
|
|
116
|
-
"@nuxt/kit": "^
|
|
117
|
-
"@nuxt
|
|
118
|
-
"@
|
|
119
|
-
"@
|
|
120
|
-
"
|
|
121
|
-
"@vueuse/core": "^12.3.0",
|
|
122
|
-
"@vueuse/integrations": "^12.3.0",
|
|
123
|
-
"@vueuse/nuxt": "^12.3.0",
|
|
124
|
-
"bignumber.js": "^9.1.2",
|
|
60
|
+
"@nuxt/kit": "^4.4.8",
|
|
61
|
+
"@pinia/nuxt": "^0.11.3",
|
|
62
|
+
"@vueuse/core": "^14.3.0",
|
|
63
|
+
"@vueuse/integrations": "^14.3.0",
|
|
64
|
+
"bignumber.js": "^9.3.1",
|
|
125
65
|
"body-scroll-lock": "^4.0.0-beta.0",
|
|
126
|
-
"dayjs": "^1.11.
|
|
127
|
-
"defu": "^6.1.4",
|
|
66
|
+
"dayjs": "^1.11.21",
|
|
128
67
|
"flatpickr": "^4.6.13",
|
|
129
|
-
"focus-trap": "^7.6.
|
|
130
|
-
"pinia": "^3.0.
|
|
131
|
-
"
|
|
132
|
-
"
|
|
133
|
-
"tailwind-
|
|
68
|
+
"focus-trap": "^7.6.6",
|
|
69
|
+
"pinia": "^3.0.4",
|
|
70
|
+
"pinia-plugin-persistedstate": "^4.7.1",
|
|
71
|
+
"tabulator-tables": "^6.4.0",
|
|
72
|
+
"tailwind-merge": "^3.4.0",
|
|
73
|
+
"tailwind-variants": "^3.2.2",
|
|
74
|
+
"tailwindcss": "^4.1.18",
|
|
134
75
|
"vue-select": "^4.0.0-beta.6"
|
|
135
76
|
},
|
|
136
77
|
"devDependencies": {
|
|
137
|
-
"@nuxt/devtools": "^
|
|
138
|
-
"@nuxt/eslint
|
|
139
|
-
"@nuxt/
|
|
140
|
-
"@nuxt/
|
|
141
|
-
"@nuxt/
|
|
78
|
+
"@nuxt/devtools": "^3.2.4",
|
|
79
|
+
"@nuxt/eslint": "^1.16.0",
|
|
80
|
+
"@nuxt/eslint-config": "^1.16.0",
|
|
81
|
+
"@nuxt/image": "^2.0.0",
|
|
82
|
+
"@nuxt/module-builder": "^1.0.2",
|
|
83
|
+
"@nuxt/schema": "^4.4.8",
|
|
84
|
+
"@nuxt/test-utils": "^3.21.0",
|
|
85
|
+
"@nuxt/ui": "^4.8.2",
|
|
142
86
|
"@types/body-scroll-lock": "^3.1.2",
|
|
143
87
|
"@types/node": "latest",
|
|
144
|
-
"@types/tabulator-tables": "^6.
|
|
88
|
+
"@types/tabulator-tables": "^6.3.4",
|
|
145
89
|
"@types/vue-select": "^3.16.8",
|
|
146
|
-
"changelogen": "^0.
|
|
147
|
-
"eslint": "^
|
|
148
|
-
"
|
|
149
|
-
"
|
|
150
|
-
"sass
|
|
151
|
-
"
|
|
152
|
-
"
|
|
153
|
-
"
|
|
154
|
-
"vue-tsc": "^2.2.0"
|
|
90
|
+
"changelogen": "^0.6.2",
|
|
91
|
+
"eslint": "^10.5.0",
|
|
92
|
+
"npm": "^11.17.0",
|
|
93
|
+
"nuxt": "^4.4.8",
|
|
94
|
+
"sass": "^1.97.0",
|
|
95
|
+
"typescript": "~5.9.3",
|
|
96
|
+
"vitest": "^3.2.4",
|
|
97
|
+
"vue-tsc": "^3.1.8"
|
|
155
98
|
}
|
|
156
99
|
}
|
package/dist/module.cjs
DELETED
package/dist/module.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
|
-
|
|
3
|
-
type Config = any;
|
|
4
|
-
interface ModuleOptions {
|
|
5
|
-
prefix: {
|
|
6
|
-
nuxtUi: string;
|
|
7
|
-
form: string;
|
|
8
|
-
interactive: string;
|
|
9
|
-
layout: string;
|
|
10
|
-
misc: string;
|
|
11
|
-
};
|
|
12
|
-
tailwind?: Partial<Config>;
|
|
13
|
-
}
|
|
14
|
-
declare const _default: _nuxt_schema.NuxtModule<ModuleOptions, ModuleOptions, false>;
|
|
15
|
-
|
|
16
|
-
export { type ModuleOptions, _default as default };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
:host,:root{--vs-colors--lightest:rgba(60,60,60,.26);--vs-colors--light:rgba(60,60,60,.5);--vs-colors--dark:#333;--vs-colors--darkest:rgba(0,0,0,.15);--vs-search-input-color:inherit;--vs-search-input-bg:#fff;--vs-search-input-placeholder-color:inherit;--vs-font-size:1rem;--vs-line-height:1.4;--vs-state-disabled-bg:#f8f8f8;--vs-state-disabled-color:var(--vs-colors--light);--vs-state-disabled-controls-color:var(--vs-colors--light);--vs-state-disabled-cursor:not-allowed;--vs-border-color:var(--vs-colors--lightest);--vs-border-width:1px;--vs-border-style:solid;--vs-border-radius:4px;--vs-actions-padding:4px 6px 0 3px;--vs-controls-color:var(--vs-colors--light);--vs-controls-size:1;--vs-controls--deselect-text-shadow:0 1px 0 #fff;--vs-selected-bg:#f0f0f0;--vs-selected-color:var(--vs-colors--dark);--vs-selected-border-color:var(--vs-border-color);--vs-selected-border-style:var(--vs-border-style);--vs-selected-border-width:var(--vs-border-width);--vs-dropdown-bg:#fff;--vs-dropdown-color:inherit;--vs-dropdown-z-index:1000;--vs-dropdown-min-width:160px;--vs-dropdown-max-height:350px;--vs-dropdown-box-shadow:0px 3px 6px 0px var(--vs-colors--darkest);--vs-dropdown-option-bg:#000;--vs-dropdown-option-color:var(--vs-dropdown-color);--vs-dropdown-option-padding:3px 20px;--vs-dropdown-option--active-bg:#5897fb;--vs-dropdown-option--active-color:#fff;--vs-dropdown-option--deselect-bg:#fb5858;--vs-dropdown-option--deselect-color:#fff;--vs-transition-timing-function:cubic-bezier(1,-0.115,0.975,0.855);--vs-transition-duration:150ms}.v-select{font-family:inherit;position:relative}.v-select,.v-select *{box-sizing:border-box}:root{--vs-transition-timing-function:cubic-bezier(1,0.5,0.8,1);--vs-transition-duration:0.15s}@keyframes vSelectSpinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.vs__fade-enter-active,.vs__fade-leave-active{pointer-events:none;transition:opacity var(--vs-transition-duration) var(--vs-transition-timing-function)}.vs__fade-enter,.vs__fade-leave-to{opacity:0}:root{--vs-disabled-bg:var(--vs-state-disabled-bg);--vs-disabled-color:var(--vs-state-disabled-color);--vs-disabled-cursor:var(--vs-state-disabled-cursor)}.vs--disabled .vs__clear,.vs--disabled .vs__dropdown-toggle,.vs--disabled .vs__open-indicator,.vs--disabled .vs__search,.vs--disabled .vs__selected{background-color:var(--vs-disabled-bg);cursor:var(--vs-disabled-cursor)}.v-select[dir=rtl] .vs__actions{padding:0 3px 0 6px}.v-select[dir=rtl] .vs__clear{margin-left:6px;margin-right:0}.v-select[dir=rtl] .vs__deselect{margin-left:0;margin-right:2px}.v-select[dir=rtl] .vs__dropdown-menu{text-align:right}.vs__dropdown-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--vs-search-input-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:var(--vs-border-radius);display:flex;padding:0 0 4px;white-space:normal}.vs__selected-options{display:flex;flex-basis:100%;flex-grow:1;flex-wrap:wrap;padding:0 2px;position:relative}.vs__actions{align-items:center;display:flex;padding:var(--vs-actions-padding)}.vs--searchable .vs__dropdown-toggle{cursor:text}.vs--unsearchable .vs__dropdown-toggle{cursor:pointer}.vs--open .vs__dropdown-toggle{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.vs__open-indicator{fill:var(--vs-controls-color);transform:scale(var(--vs-controls-size));transition:transform var(--vs-transition-duration) var(--vs-transition-timing-function);transition-timing-function:var(--vs-transition-timing-function)}.vs--open .vs__open-indicator{transform:rotate(180deg) scale(var(--vs-controls-size))}.vs--loading .vs__open-indicator{opacity:0}.vs__clear{fill:var(--vs-controls-color);background-color:transparent;border:0;cursor:pointer;margin-right:8px;padding:0}.vs__dropdown-menu{background:var(--vs-dropdown-bg);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:0 0 var(--vs-border-radius) var(--vs-border-radius);border-top-style:none;box-shadow:var(--vs-dropdown-box-shadow);box-sizing:border-box;color:var(--vs-dropdown-color);display:block;left:0;list-style:none;margin:0;max-height:var(--vs-dropdown-max-height);min-width:var(--vs-dropdown-min-width);overflow-y:auto;padding:5px 0;position:absolute;text-align:left;top:calc(100% - var(--vs-border-width));width:100%;z-index:var(--vs-dropdown-z-index)}.vs__no-options{text-align:center}.vs__dropdown-option{clear:both;color:var(--vs-dropdown-option-color);cursor:pointer;display:block;line-height:1.42857143;padding:var(--vs-dropdown-option-padding);white-space:nowrap}.vs__dropdown-option--highlight{background:var(--vs-dropdown-option--active-bg);color:var(--vs-dropdown-option--active-color)}.vs__dropdown-option--deselect{background:var(--vs-dropdown-option--deselect-bg);color:var(--vs-dropdown-option--deselect-color)}.vs__dropdown-option--disabled{background:var(--vs-state-disabled-bg);color:var(--vs-state-disabled-color);cursor:var(--vs-state-disabled-cursor)}.vs__selected{align-items:center;background-color:var(--vs-selected-bg);border:var(--vs-selected-border-width) var(--vs-selected-border-style) var(--vs-selected-border-color);border-radius:var(--vs-border-radius);color:var(--vs-selected-color);display:flex;line-height:var(--vs-line-height);margin:4px 2px 0;padding:0 .25em;z-index:0}.vs__deselect{fill:var(--vs-controls-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;cursor:pointer;display:inline-flex;margin-left:4px;padding:0;text-shadow:var(--vs-controls--deselect-text-shadow)}.vs--single .vs__selected{background-color:transparent;border-color:transparent}.vs--single.vs--loading .vs__selected,.vs--single.vs--open .vs__selected{opacity:.4;position:absolute}.vs--single.vs--searching .vs__selected{display:none}.vs__search::-webkit-search-cancel-button{display:none}.vs__search::-ms-clear,.vs__search::-webkit-search-decoration,.vs__search::-webkit-search-results-button,.vs__search::-webkit-search-results-decoration{display:none}.vs__search,.vs__search:focus{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:1px solid transparent;border-left:none;box-shadow:none;color:var(--vs-search-input-color);flex-grow:1;font-size:var(--vs-font-size);line-height:var(--vs-line-height);margin:4px 0 0;max-width:100%;outline:none;padding:0 7px;width:0;z-index:1}.vs__search::-moz-placeholder{color:var(--vs-search-input-placeholder-color)}.vs__search::placeholder{color:var(--vs-search-input-placeholder-color)}.vs--unsearchable .vs__search{opacity:1}.vs--unsearchable:not(.vs--disabled) .vs__search{cursor:pointer}.vs--single.vs--searching:not(.vs--open):not(.vs--loading) .vs__search{opacity:.2}.vs__spinner{align-self:center;animation:vSelectSpinner 1.1s linear infinite;border:.9em solid rgba(99,99,99,.1);border-left-color:rgba(60,60,60,.45);font-size:5px;opacity:0;overflow:hidden;text-indent:-9999em;transform:translateZ(0) scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));transition:opacity .1s}.vs__spinner,.vs__spinner:after{border-radius:50%;height:5em;transform:scale(var(--vs-controls--spinner-size,var(--vs-controls-size)));width:5em}.vs--loading .vs__spinner{opacity:1}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
/* ----------------------------------------------------------------------------
|
|
3
|
-
// src\runtime\components\misc\view-name-display-target.vue
|
|
4
|
-
// ----------------------------------------------------------------------------
|
|
5
|
-
// ViewNameDisplayTarget
|
|
6
|
-
// ViewNameDisplayTargetViewNameDisplayTarget
|
|
7
|
-
----------------------------------------------------------------------------- */
|
|
8
|
-
|
|
9
|
-
// [ NUXT ]
|
|
10
|
-
import { computed } from "#imports";
|
|
11
|
-
// ----------------------------------------------------------------------------
|
|
12
|
-
// [ Props ]
|
|
13
|
-
interface Props {
|
|
14
|
-
// isShow: boolean;
|
|
15
|
-
offset?: number|string;
|
|
16
|
-
target: HTMLElement | null;
|
|
17
|
-
}
|
|
18
|
-
const props = withDefaults(defineProps<Props>(), {
|
|
19
|
-
offset: 10,
|
|
20
|
-
});
|
|
21
|
-
type Emits = {
|
|
22
|
-
"update:target": [e: HTMLElement];
|
|
23
|
-
};
|
|
24
|
-
const emit = defineEmits<Emits>();
|
|
25
|
-
const style = computed(() => {
|
|
26
|
-
return `margin-top:-${props.offset}px;z-index:999;`;
|
|
27
|
-
});
|
|
28
|
-
const setRef = (e: HTMLElement) => {
|
|
29
|
-
emit("update:target", e);
|
|
30
|
-
};
|
|
31
|
-
</script>
|
|
32
|
-
|
|
33
|
-
<template>
|
|
34
|
-
<div
|
|
35
|
-
:ref="(e:any) => setRef(e)"
|
|
36
|
-
class="absolute top-0 pointer-events-none"
|
|
37
|
-
:style="style"
|
|
38
|
-
></div>
|
|
39
|
-
</template>
|