experimental-ui 0.3.0 → 0.4.0-canary.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/Button/Button.js +41 -41
- package/Checkbox/Checkbox.d.ts +2 -2
- package/Range/Range.d.ts +2 -3
- package/Range/Range.interface.d.ts +17 -59
- package/Range/Range.js +206 -149
- package/Select/Select.d.ts +1 -1
- package/Select/Select.interface.d.ts +2 -1
- package/Select/Select.js +36 -36
- package/index.css +1 -1
- package/libs/vendor/clsx.js +2 -1
- package/libs/vendor/uuid.js +8 -0
- package/libs/vendor/uuid2.js +11 -0
- package/libs/vendor/uuid3.js +4 -0
- package/libs/vendor/uuid4.js +21 -0
- package/package.json +5 -1
- package/utils.ts/utils.js +22 -23
- package/Range/Range.CustomMarks.d.ts +0 -18
- package/Range/Range.CustomMarks.js +0 -46
- package/Range/Range.DefaultMarks.d.ts +0 -16
- package/Range/Range.DefaultMarks.js +0 -48
- package/Range/Range.interface.js +0 -32
package/Button/Button.js
CHANGED
|
@@ -8,58 +8,58 @@ import { BTN, BUTTON_MAP } from "./Button.interface.js";
|
|
|
8
8
|
import { c } from "react/compiler-runtime";
|
|
9
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
10
|
var Button = (t) => {
|
|
11
|
-
let i = c(81), l, u, d, f, p, m, h, g, _, v, y, b, x, S, C, w, T, E, D, O, k, A
|
|
12
|
-
i[0] === t ? (
|
|
13
|
-
let
|
|
14
|
-
i[25] ===
|
|
15
|
-
let
|
|
16
|
-
i[27] !==
|
|
17
|
-
let
|
|
18
|
-
i[43] !==
|
|
19
|
-
|
|
20
|
-
}, i[43] =
|
|
21
|
-
let
|
|
22
|
-
if (
|
|
23
|
-
let e =
|
|
24
|
-
i[50] !==
|
|
25
|
-
let a
|
|
26
|
-
return i[53] !== e || i[54] !==
|
|
11
|
+
let i = c(81), o, s, l, u, d, f, p, m, h, g, _, v, y, b, x, S, C, w, T, E, D, O, k, A;
|
|
12
|
+
i[0] === t ? (o = i[1], s = i[2], l = i[3], u = i[4], d = i[5], f = i[6], p = i[7], m = i[8], h = i[9], g = i[10], _ = i[11], v = i[12], y = i[13], b = i[14], x = i[15], S = i[16], C = i[17], w = i[18], T = i[19], E = i[20], D = i[21], O = i[22], k = i[23], A = i[24]) : ({ref: b, children: s, href: g, shape: w, size: O, variant: k, color: u, startIcon: E, endIcon: m, wide: A, fullWidth: h, responsive: S, noAnimation: y, loading: _, loadingVariant: v, active: o, disabled: p, soft: T, dash: d, ripple: C, dataTheme: f, className: l, style: D, ...x} = t, i[0] = t, i[1] = o, i[2] = s, i[3] = l, i[4] = u, i[5] = d, i[6] = f, i[7] = p, i[8] = m, i[9] = h, i[10] = g, i[11] = _, i[12] = v, i[13] = y, i[14] = b, i[15] = x, i[16] = S, i[17] = C, i[18] = w, i[19] = T, i[20] = E, i[21] = D, i[22] = O, i[23] = k, i[24] = A);
|
|
13
|
+
let j = O === void 0 ? "md" : O, M;
|
|
14
|
+
i[25] === C ? M = i[26] : (M = typeof C == "object" ? C : {}, i[25] = C, i[26] = M);
|
|
15
|
+
let N = useRipple(M), ie = (E && !_ || m) && "gap-2", ae = u && BUTTON_MAP[u], P = k && BUTTON_MAP[k], F = j !== "md" && BUTTON_MAP[j], I = w && BUTTON_MAP[w], L = A && BUTTON_MAP.wide, R = h && BUTTON_MAP.fullWidth, z = S && BUTTON_MAP.responsive, B = o && BUTTON_MAP.active, V = p && BUTTON_MAP.disabled, H = y && BUTTON_MAP.noAnimation, U = T && BUTTON_MAP.soft, W = d && BUTTON_MAP.dash, G = C && "btn-ripple", K;
|
|
16
|
+
i[27] !== l || i[28] !== z || i[29] !== B || i[30] !== V || i[31] !== H || i[32] !== U || i[33] !== W || i[34] !== G || i[35] !== ie || i[36] !== ae || i[37] !== P || i[38] !== F || i[39] !== I || i[40] !== L || i[41] !== R ? (K = cn("btn", ie, ae, P, F, I, L, R, z, B, V, H, U, W, G, l), i[27] = l, i[28] = z, i[29] = B, i[30] = V, i[31] = H, i[32] = U, i[33] = W, i[34] = G, i[35] = ie, i[36] = ae, i[37] = P, i[38] = F, i[39] = I, i[40] = L, i[41] = R, i[42] = K) : K = i[42];
|
|
17
|
+
let q = K, J;
|
|
18
|
+
i[43] !== N || i[44] !== p || i[45] !== g || i[46] !== _ || i[47] !== x || i[48] !== C ? (J = (e) => {
|
|
19
|
+
C && !p && !_ && N(e), x.onClick?.(e);
|
|
20
|
+
}, i[43] = N, i[44] = p, i[45] = g, i[46] = _, i[47] = x, i[48] = C, i[49] = J) : J = i[49];
|
|
21
|
+
let Y = J;
|
|
22
|
+
if (g) {
|
|
23
|
+
let e = x, t = b, n = p ? void 0 : g, r;
|
|
24
|
+
i[50] !== p || i[51] !== Y ? (r = p ? _temp : Y, i[50] = p, i[51] = Y, i[52] = r) : r = i[52];
|
|
25
|
+
let a;
|
|
26
|
+
return i[53] !== e || i[54] !== s || i[55] !== q || i[56] !== f || i[57] !== p || i[58] !== m || i[59] !== E || i[60] !== D || i[61] !== t || i[62] !== n || i[63] !== r ? (a = /* @__PURE__ */ jsxs("a", {
|
|
27
27
|
...e,
|
|
28
28
|
ref: t,
|
|
29
|
-
className:
|
|
30
|
-
style:
|
|
29
|
+
className: q,
|
|
30
|
+
style: D,
|
|
31
31
|
href: n,
|
|
32
|
-
"data-theme":
|
|
33
|
-
"aria-disabled":
|
|
32
|
+
"data-theme": f,
|
|
33
|
+
"aria-disabled": p,
|
|
34
34
|
onClick: r,
|
|
35
35
|
children: [
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
E,
|
|
37
|
+
s,
|
|
38
|
+
m
|
|
39
39
|
]
|
|
40
|
-
}), i[53] = e, i[54] =
|
|
40
|
+
}), i[53] = e, i[54] = s, i[55] = q, i[56] = f, i[57] = p, i[58] = m, i[59] = E, i[60] = D, i[61] = t, i[62] = n, i[63] = r, i[64] = a) : a = i[64], a;
|
|
41
41
|
}
|
|
42
|
-
let
|
|
43
|
-
i[65] !==
|
|
44
|
-
variant:
|
|
45
|
-
size:
|
|
46
|
-
}), i[65] =
|
|
47
|
-
let
|
|
48
|
-
return i[69] !==
|
|
49
|
-
...
|
|
50
|
-
ref:
|
|
51
|
-
"data-theme":
|
|
52
|
-
className:
|
|
53
|
-
style:
|
|
42
|
+
let X = x, Z = b, oe = p ?? _, Q;
|
|
43
|
+
i[65] !== _ || i[66] !== v || i[67] !== j ? (Q = _ && /* @__PURE__ */ jsx(Loading_default, {
|
|
44
|
+
variant: v,
|
|
45
|
+
size: j
|
|
46
|
+
}), i[65] = _, i[66] = v, i[67] = j, i[68] = Q) : Q = i[68];
|
|
47
|
+
let $;
|
|
48
|
+
return i[69] !== s || i[70] !== q || i[71] !== f || i[72] !== m || i[73] !== Y || i[74] !== E || i[75] !== D || i[76] !== X || i[77] !== Z || i[78] !== oe || i[79] !== Q ? ($ = /* @__PURE__ */ jsxs("button", {
|
|
49
|
+
...X,
|
|
50
|
+
ref: Z,
|
|
51
|
+
"data-theme": f,
|
|
52
|
+
className: q,
|
|
53
|
+
style: D,
|
|
54
54
|
disabled: oe,
|
|
55
|
-
onClick:
|
|
55
|
+
onClick: Y,
|
|
56
56
|
children: [
|
|
57
57
|
Q,
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
E,
|
|
59
|
+
s,
|
|
60
|
+
m
|
|
61
61
|
]
|
|
62
|
-
}), i[69] =
|
|
62
|
+
}), i[69] = s, i[70] = q, i[71] = f, i[72] = m, i[73] = Y, i[74] = E, i[75] = D, i[76] = X, i[77] = Z, i[78] = oe, i[79] = Q, i[80] = $) : $ = i[80], $;
|
|
63
63
|
};
|
|
64
64
|
Button.displayName = "Button";
|
|
65
65
|
var Button_default = Button;
|
package/Checkbox/Checkbox.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
2
|
import { CheckboxProps } from './Checkbox.interface';
|
|
3
|
-
declare const Checkbox: ({ ref: propRef, register: propRegister, error: propError, disabled: propDisabled, indeterminate: propIndeterminate, name, color, label, labelPosition, size, dataTheme, ...props }: CheckboxProps) =>
|
|
3
|
+
declare const Checkbox: ({ ref: propRef, register: propRegister, error: propError, disabled: propDisabled, indeterminate: propIndeterminate, name, color, label, labelPosition, size, dataTheme, ...props }: CheckboxProps) => ReactElement;
|
|
4
4
|
export default Checkbox;
|
package/Range/Range.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
declare const Range: ({ ref: propRef, register: propRegister, error: propError, disabled: propDisabled, name, color, size, step, min, max, marks, dataTheme, className, classes, onChange, markDisplay, allowStepsWithMarks, ...props }: RangeProps) => ReactElement;
|
|
1
|
+
import { RangeProps } from './Range.interface.ts';
|
|
2
|
+
declare function Range({ value, min, max, step, orientation, onChange, className, progressColor, thumbColor, marks, showSteps, snapToMarks, markStyle, size, }: RangeProps): import("react/jsx-runtime").JSX.Element;
|
|
4
3
|
export default Range;
|
|
@@ -1,63 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { MarkProps } from './Range.CustomMarks';
|
|
5
|
-
export declare const RANGE = "range";
|
|
6
|
-
export declare const PADDING_X_MAP: {
|
|
7
|
-
xs: string;
|
|
8
|
-
sm: string;
|
|
9
|
-
md: string;
|
|
10
|
-
lg: string;
|
|
11
|
-
xl: string;
|
|
12
|
-
};
|
|
13
|
-
export declare const RANGE_MAP: {
|
|
14
|
-
vertical: string;
|
|
15
|
-
primary: string;
|
|
16
|
-
secondary: string;
|
|
17
|
-
error: string;
|
|
18
|
-
info: string;
|
|
19
|
-
success: string;
|
|
20
|
-
warning: string;
|
|
21
|
-
accent: string;
|
|
22
|
-
xs: string;
|
|
23
|
-
sm: string;
|
|
24
|
-
md: string;
|
|
25
|
-
lg: string;
|
|
26
|
-
xl: string;
|
|
27
|
-
};
|
|
28
|
-
export interface MarkDisplayOptions {
|
|
29
|
-
showValue?: boolean;
|
|
30
|
-
showTick?: boolean;
|
|
31
|
-
customTick?: string;
|
|
1
|
+
export interface Mark {
|
|
2
|
+
value: number;
|
|
3
|
+
label?: string;
|
|
32
4
|
}
|
|
33
|
-
export
|
|
34
|
-
|
|
35
|
-
color?: Exclude<ComponentColor, "ghost" | "neutral">;
|
|
36
|
-
size?: Size;
|
|
37
|
-
step?: number;
|
|
5
|
+
export interface RangeProps {
|
|
6
|
+
value: number | [number, number];
|
|
38
7
|
min?: number;
|
|
39
8
|
max?: number;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
9
|
+
step?: number;
|
|
10
|
+
orientation?: "horizontal" | "vertical";
|
|
11
|
+
onChange: (value: number | [number, number]) => void;
|
|
43
12
|
disabled?: boolean;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
classes?: {
|
|
54
|
-
customMarks?: {
|
|
55
|
-
container?: string;
|
|
56
|
-
mark?: string;
|
|
57
|
-
};
|
|
58
|
-
defaultMarks?: {
|
|
59
|
-
container?: string;
|
|
60
|
-
mark?: string;
|
|
61
|
-
};
|
|
62
|
-
};
|
|
63
|
-
};
|
|
13
|
+
className?: string;
|
|
14
|
+
progressColor?: string;
|
|
15
|
+
thumbColor?: string;
|
|
16
|
+
marks?: Mark[] | boolean;
|
|
17
|
+
showSteps?: boolean;
|
|
18
|
+
snapToMarks?: boolean;
|
|
19
|
+
markStyle?: "circle" | "line";
|
|
20
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl";
|
|
21
|
+
}
|
package/Range/Range.js
CHANGED
|
@@ -1,155 +1,212 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
"use client";
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import { defaultSize } from "../constants.ts/constants.js";
|
|
6
|
-
import use_RHF_integration_default from "../hooks/use-RHF-integration.js";
|
|
7
|
-
import Range_CustomMarks_default from "./Range.CustomMarks.js";
|
|
8
|
-
import Range_DefaultMarks_default from "./Range.DefaultMarks.js";
|
|
9
|
-
import { PADDING_X_MAP, RANGE, RANGE_MAP } from "./Range.interface.js";
|
|
10
|
-
import { c } from "react/compiler-runtime";
|
|
3
|
+
import clsx_default from "../libs/vendor/clsx.js";
|
|
4
|
+
import v4_default from "../libs/vendor/uuid4.js";
|
|
11
5
|
import { useRef } from "react";
|
|
12
|
-
import {
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
e = Array.from(t).sort(_temp), r[33] = u, r[34] = w, r[35] = C, r[36] = y, r[37] = e;
|
|
35
|
-
} else e = r[37];
|
|
36
|
-
H = e;
|
|
37
|
-
break bb0;
|
|
38
|
-
}
|
|
39
|
-
if (u && !y) {
|
|
40
|
-
let e;
|
|
41
|
-
if (r[38] !== u || r[39] !== w || r[40] !== C) {
|
|
42
|
-
let t;
|
|
43
|
-
r[42] !== w || r[43] !== C ? (t = (e) => e.value >= C && e.value <= w, r[42] = w, r[43] = C, r[44] = t) : t = r[44], e = u.filter(t).map(_temp2).sort(_temp3), r[38] = u, r[39] = w, r[40] = C, r[41] = e;
|
|
44
|
-
} else e = r[41];
|
|
45
|
-
let t = e;
|
|
46
|
-
H = t.length > 0 ? t : null;
|
|
47
|
-
break bb0;
|
|
48
|
-
}
|
|
49
|
-
H = null;
|
|
50
|
-
}
|
|
51
|
-
let U = H, W;
|
|
52
|
-
r[45] === U ? W = r[46] : (W = (e) => {
|
|
53
|
-
if (!U) return e;
|
|
54
|
-
let t = U[0], n = Math.abs(e - t);
|
|
55
|
-
for (let fe of U) {
|
|
56
|
-
let pe = Math.abs(e - fe);
|
|
57
|
-
pe < n && (n = pe, t = fe);
|
|
58
|
-
}
|
|
59
|
-
return t;
|
|
60
|
-
}, r[45] = U, r[46] = W);
|
|
61
|
-
let ve = W, G;
|
|
62
|
-
r[47] !== E || r[48] !== f ? (G = (e) => {
|
|
63
|
-
if (E) return;
|
|
64
|
-
let t = me.current;
|
|
65
|
-
if (!t) return;
|
|
66
|
-
t.value = String(e);
|
|
67
|
-
let n = new Event("change", { bubbles: !0 });
|
|
68
|
-
Object.defineProperty(n, "target", {
|
|
69
|
-
writable: !1,
|
|
70
|
-
value: t
|
|
71
|
-
}), f && f(n), t.dispatchEvent(new Event("input", { bubbles: !0 }));
|
|
72
|
-
}, r[47] = E, r[48] = f, r[49] = G) : G = r[49];
|
|
73
|
-
let K = G, q;
|
|
74
|
-
r[50] !== ve || r[51] !== f || r[52] !== O || r[53] !== U ? (q = (e) => {
|
|
75
|
-
if (U && U.length > 0) {
|
|
76
|
-
let t = Number(e.target.value), n = ve(t);
|
|
77
|
-
t !== n && (e.target.value = String(n));
|
|
78
|
-
}
|
|
79
|
-
O?.onChange && O.onChange(e), f && f(e);
|
|
80
|
-
}, r[50] = ve, r[51] = f, r[52] = O, r[53] = U, r[54] = q) : q = r[54];
|
|
81
|
-
let ye = q, be = T && U || u && !y && U ? 1 : y, J;
|
|
82
|
-
r[55] !== h || r[56] !== D ? (J = mergeRefs(h, me, D), r[55] = h, r[56] = D, r[57] = J) : J = r[57];
|
|
83
|
-
let Y;
|
|
84
|
-
r[58] !== s || r[59] !== E || r[60] !== be || r[61] !== ye || r[62] !== w || r[63] !== C || r[64] !== d || r[65] !== _ || r[66] !== N || r[67] !== O || r[68] !== J ? (Y = /* @__PURE__ */ jsx("input", {
|
|
85
|
-
type: "range",
|
|
86
|
-
id: d,
|
|
87
|
-
name: d,
|
|
88
|
-
step: be,
|
|
89
|
-
min: C,
|
|
90
|
-
max: w,
|
|
91
|
-
disabled: E,
|
|
92
|
-
"data-theme": s,
|
|
93
|
-
className: N,
|
|
94
|
-
..._,
|
|
95
|
-
...O,
|
|
96
|
-
ref: J,
|
|
97
|
-
onChange: ye
|
|
98
|
-
}), r[58] = s, r[59] = E, r[60] = be, r[61] = ye, r[62] = w, r[63] = C, r[64] = d, r[65] = _, r[66] = N, r[67] = O, r[68] = J, r[69] = Y) : Y = r[69];
|
|
99
|
-
let X;
|
|
100
|
-
r[70] !== K || r[71] !== l || r[72] !== u || r[73] !== R || r[74] !== V || r[75] !== w || r[76] !== C || r[77] !== y ? (X = !!y && !u && /* @__PURE__ */ jsx(Range_DefaultMarks_default, {
|
|
101
|
-
step: y,
|
|
102
|
-
min: C,
|
|
103
|
-
max: w,
|
|
104
|
-
className: R,
|
|
105
|
-
classes: V,
|
|
106
|
-
onMarkClick: K,
|
|
107
|
-
markDisplay: l
|
|
108
|
-
}), r[70] = K, r[71] = l, r[72] = u, r[73] = R, r[74] = V, r[75] = w, r[76] = C, r[77] = y, r[78] = X) : X = r[78];
|
|
109
|
-
let Z;
|
|
110
|
-
r[79] !== T || r[80] !== K || r[81] !== u || r[82] !== R || r[83] !== V || r[84] !== w || r[85] !== C ? (Z = !!u && !T && /* @__PURE__ */ jsx(Range_CustomMarks_default, {
|
|
111
|
-
min: C,
|
|
112
|
-
max: w,
|
|
113
|
-
marks: u,
|
|
114
|
-
className: R,
|
|
115
|
-
classes: V,
|
|
116
|
-
onMarkClick: K
|
|
117
|
-
}), r[79] = T, r[80] = K, r[81] = u, r[82] = R, r[83] = V, r[84] = w, r[85] = C, r[86] = Z) : Z = r[86];
|
|
118
|
-
let Q;
|
|
119
|
-
r[87] !== T || r[88] !== K || r[89] !== l || r[90] !== u || r[91] !== R || r[92] !== V || r[93] !== w || r[94] !== C || r[95] !== y || r[96] !== U ? (Q = !!u && !!y && T && U && /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Range_DefaultMarks_default, {
|
|
120
|
-
step: y,
|
|
121
|
-
min: C,
|
|
122
|
-
max: w,
|
|
123
|
-
className: R,
|
|
124
|
-
classes: V,
|
|
125
|
-
onMarkClick: K,
|
|
126
|
-
markDisplay: l
|
|
127
|
-
}), /* @__PURE__ */ jsx(Range_CustomMarks_default, {
|
|
128
|
-
min: C,
|
|
129
|
-
max: w,
|
|
130
|
-
marks: u,
|
|
131
|
-
className: R,
|
|
132
|
-
classes: V,
|
|
133
|
-
onMarkClick: K
|
|
134
|
-
})] }), r[87] = T, r[88] = K, r[89] = l, r[90] = u, r[91] = R, r[92] = V, r[93] = w, r[94] = C, r[95] = y, r[96] = U, r[97] = Q) : Q = r[97];
|
|
135
|
-
let $;
|
|
136
|
-
return r[98] !== Y || r[99] !== X || r[100] !== Z || r[101] !== Q ? ($ = /* @__PURE__ */ jsxs("div", {
|
|
137
|
-
className: "w-full",
|
|
138
|
-
children: [
|
|
139
|
-
Y,
|
|
140
|
-
X,
|
|
141
|
-
Z,
|
|
142
|
-
Q
|
|
143
|
-
]
|
|
144
|
-
}), r[98] = Y, r[99] = X, r[100] = Z, r[101] = Q, r[102] = $) : $ = r[102], $;
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
var clamp = (t, o, s) => Math.min(Math.max(t, o), s), toPercent = (t, o, s) => (t - o) / (s - o) * 100, thumbSizes = {
|
|
8
|
+
xs: "calc(var(--size-selector, 0.25rem) * 3)",
|
|
9
|
+
sm: "calc(var(--size-selector, 0.25rem) * 4)",
|
|
10
|
+
md: "calc(var(--size-selector, 0.25rem) * 5)",
|
|
11
|
+
lg: "calc(var(--size-selector, 0.25rem) * 6)",
|
|
12
|
+
xl: "calc(var(--size-selector, 0.25rem) * 7)"
|
|
13
|
+
}, trackSizes = {
|
|
14
|
+
xs: "calc(var(--size-selector, 0.25rem) * 4)",
|
|
15
|
+
sm: "calc(var(--size-selector, 0.25rem) * 5)",
|
|
16
|
+
md: "calc(var(--size-selector, 0.25rem) * 6)",
|
|
17
|
+
lg: "calc(var(--size-selector, 0.25rem) * 7)",
|
|
18
|
+
xl: "calc(var(--size-selector, 0.25rem) * 8)"
|
|
19
|
+
}, getThumbOffset = (t) => `calc((var(--size-selector, 0.25rem) * ${{
|
|
20
|
+
xs: 3,
|
|
21
|
+
sm: 4,
|
|
22
|
+
md: 5,
|
|
23
|
+
lg: 6,
|
|
24
|
+
xl: 7
|
|
25
|
+
}[t]}) / 2 + 2px)`, getAdjustedPosition = (t, o) => `calc(${t}% - ${getThumbOffset(o)})`, getAdjustedWidth = (t, o, s) => {
|
|
26
|
+
let c = getThumbOffset(s);
|
|
27
|
+
return `calc(${o - t}% + ${c} + ${c})`;
|
|
145
28
|
};
|
|
146
|
-
function
|
|
147
|
-
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
29
|
+
function Range({ value: f, min: p = 0, max: m = 100, step: h = 1, orientation: g = "horizontal", onChange: _, className: v, progressColor: y = "bg-primary", thumbColor: b = "border-primary", marks: x, showSteps: S = !1, snapToMarks: C = !1, markStyle: w = "circle", size: T = "md" }) {
|
|
30
|
+
let E = useRef(null), D = Array.isArray(f), O = D ? f : [f], k = useRef([]);
|
|
31
|
+
k.current.length !== O.length && (k.current = O.map((t, s) => `thumb-${D ? s === 0 ? "start" : "end" : "single"}-${v4_default()}`));
|
|
32
|
+
let A = O.map((t) => toPercent(t, p, m)), j = x === !0 ? Array.from({ length: Math.floor((m - p) / h) + 1 }, (t, o) => ({ value: p + o * h })) : x === !1 || !x ? [] : x, M = (t) => {
|
|
33
|
+
if (!C || j.length === 0) return t;
|
|
34
|
+
let o = j.map((t) => t.value);
|
|
35
|
+
return o.reduce((o, s) => Math.abs(s - t) < Math.abs(o - t) ? s : o, o[0]);
|
|
36
|
+
}, N = (t, o) => {
|
|
37
|
+
if (!E.current) return;
|
|
38
|
+
let s = E.current.getBoundingClientRect(), c = g === "horizontal" ? s.width : s.height, l = g === "horizontal" ? o - s.left : s.bottom - o, u = p + Math.round(l / c * (m - p) / h) * h;
|
|
39
|
+
u = clamp(u, p, m), C && (u = M(u));
|
|
40
|
+
let d = [...O];
|
|
41
|
+
d[t] = u, D ? (d.sort((t, o) => t - o), _(d)) : _(d[0]);
|
|
42
|
+
}, P = (t) => {
|
|
43
|
+
if (D) {
|
|
44
|
+
let o = O.map((o) => Math.abs(o - t)), s = o.indexOf(Math.min(...o)), c = [...O];
|
|
45
|
+
c[s] = t, c.sort((t, o) => t - o), _(c);
|
|
46
|
+
} else _(t);
|
|
47
|
+
}, F = (t, o) => {
|
|
48
|
+
(t.key === "Enter" || t.key === " ") && (t.preventDefault(), t.stopPropagation(), P(o));
|
|
49
|
+
};
|
|
50
|
+
return /* @__PURE__ */ jsx("div", {
|
|
51
|
+
className: "relative w-full",
|
|
52
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
53
|
+
className: clsx_default("relative rounded-full bg-base-300", v),
|
|
54
|
+
style: { ...g === "horizontal" ? {
|
|
55
|
+
height: trackSizes[T],
|
|
56
|
+
width: "100%",
|
|
57
|
+
paddingLeft: getThumbOffset(T),
|
|
58
|
+
paddingRight: getThumbOffset(T)
|
|
59
|
+
} : {
|
|
60
|
+
width: trackSizes[T],
|
|
61
|
+
height: "10rem",
|
|
62
|
+
paddingTop: getThumbOffset(T),
|
|
63
|
+
paddingBottom: getThumbOffset(T)
|
|
64
|
+
} },
|
|
65
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
66
|
+
ref: E,
|
|
67
|
+
role: "presentation",
|
|
68
|
+
className: "relative h-full w-full touch-none select-none",
|
|
69
|
+
children: [
|
|
70
|
+
/* @__PURE__ */ jsx("div", {
|
|
71
|
+
className: clsx_default("absolute rounded-full", y, g === "horizontal" ? "h-full" : "w-full"),
|
|
72
|
+
style: D ? g === "horizontal" ? {
|
|
73
|
+
left: getAdjustedPosition(A[0], T),
|
|
74
|
+
width: getAdjustedWidth(A[0], A[1], T)
|
|
75
|
+
} : {
|
|
76
|
+
bottom: getAdjustedPosition(A[0], T),
|
|
77
|
+
height: getAdjustedWidth(A[0], A[1], T)
|
|
78
|
+
} : g === "horizontal" ? {
|
|
79
|
+
left: getAdjustedPosition(0, T),
|
|
80
|
+
width: `calc(${A[0]}% + ${getThumbOffset(T)}*2)`
|
|
81
|
+
} : {
|
|
82
|
+
bottom: getAdjustedPosition(0, T),
|
|
83
|
+
height: `calc(${A[0]}% + ${getThumbOffset(T)}*2)`
|
|
84
|
+
}
|
|
85
|
+
}),
|
|
86
|
+
O.map((o, s) => /* @__PURE__ */ jsx("div", {
|
|
87
|
+
"data-thumb": !0,
|
|
88
|
+
className: clsx_default("absolute z-10 cursor-grab rounded-full border bg-base-100 active:cursor-grabbing", b),
|
|
89
|
+
style: {
|
|
90
|
+
width: thumbSizes[T],
|
|
91
|
+
height: thumbSizes[T],
|
|
92
|
+
...g === "horizontal" ? {
|
|
93
|
+
left: `${A[s]}%`,
|
|
94
|
+
top: "50%",
|
|
95
|
+
transform: "translate(-50%, -50%)"
|
|
96
|
+
} : {
|
|
97
|
+
bottom: `${A[s]}%`,
|
|
98
|
+
left: "50%",
|
|
99
|
+
transform: "translate(-50%, 50%)"
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
onPointerDown: (t) => {
|
|
103
|
+
t.currentTarget.setPointerCapture(t.pointerId);
|
|
104
|
+
let o = (t) => N(s, g === "horizontal" ? t.clientX : t.clientY), c = () => {
|
|
105
|
+
window.removeEventListener("pointermove", o), window.removeEventListener("pointerup", c);
|
|
106
|
+
};
|
|
107
|
+
window.addEventListener("pointermove", o), window.addEventListener("pointerup", c);
|
|
108
|
+
}
|
|
109
|
+
}, k.current[s])),
|
|
110
|
+
j.length > 0 && /* @__PURE__ */ jsx("div", {
|
|
111
|
+
className: "pointer-events-none absolute inset-0",
|
|
112
|
+
children: j.map((t) => {
|
|
113
|
+
if (t.label) return null;
|
|
114
|
+
let o = toPercent(t.value, p, m);
|
|
115
|
+
return w === "line" ? /* @__PURE__ */ jsx("button", {
|
|
116
|
+
type: "button",
|
|
117
|
+
"aria-label": `Set value to ${t.value}`,
|
|
118
|
+
className: "pointer-events-auto absolute cursor-pointer border-0 bg-base-content/40 p-0 transition-colors hover:bg-base-content/60",
|
|
119
|
+
onClick: (o) => {
|
|
120
|
+
o.stopPropagation(), P(t.value);
|
|
121
|
+
},
|
|
122
|
+
onKeyDown: (o) => F(o, t.value),
|
|
123
|
+
style: g === "horizontal" ? {
|
|
124
|
+
left: `${o}%`,
|
|
125
|
+
top: "0",
|
|
126
|
+
width: "2px",
|
|
127
|
+
height: "50%",
|
|
128
|
+
transform: "translateY(50%)"
|
|
129
|
+
} : {
|
|
130
|
+
bottom: `${o}%`,
|
|
131
|
+
left: "0",
|
|
132
|
+
height: "2px",
|
|
133
|
+
width: "100%",
|
|
134
|
+
transform: "translateY(50%)"
|
|
135
|
+
}
|
|
136
|
+
}, `track-mark-${t.value}`) : /* @__PURE__ */ jsx("button", {
|
|
137
|
+
type: "button",
|
|
138
|
+
"aria-label": `Set value to ${t.value}`,
|
|
139
|
+
className: "pointer-events-auto absolute z-5 h-1.5 w-1.5 cursor-pointer rounded-full border-0 bg-base-content/50 p-0 transition-colors hover:bg-base-content/70",
|
|
140
|
+
onClick: (o) => {
|
|
141
|
+
o.stopPropagation(), P(t.value);
|
|
142
|
+
},
|
|
143
|
+
onKeyDown: (o) => F(o, t.value),
|
|
144
|
+
style: g === "horizontal" ? {
|
|
145
|
+
left: `${o}%`,
|
|
146
|
+
top: "50%",
|
|
147
|
+
transform: "translate(-50%, -50%)"
|
|
148
|
+
} : {
|
|
149
|
+
bottom: `${o}%`,
|
|
150
|
+
left: "50%",
|
|
151
|
+
transform: "translate(-50%, 50%)"
|
|
152
|
+
}
|
|
153
|
+
}, `track-mark-${t.value}`);
|
|
154
|
+
})
|
|
155
|
+
}),
|
|
156
|
+
S && /* @__PURE__ */ jsx("div", {
|
|
157
|
+
className: "pointer-events-none absolute inset-0 flex items-center justify-between",
|
|
158
|
+
children: Array.from({ length: Math.floor((m - p) / h) + 1 }, (t, o) => {
|
|
159
|
+
let s = p + o * h, l = toPercent(s, p, m);
|
|
160
|
+
return /* @__PURE__ */ jsx("button", {
|
|
161
|
+
type: "button",
|
|
162
|
+
"aria-label": `Set value to ${s}`,
|
|
163
|
+
className: "pointer-events-auto absolute z-0 h-2 w-2 cursor-pointer rounded-full border-0 bg-base-content/30 p-0 transition-colors hover:bg-base-content/50",
|
|
164
|
+
onClick: (t) => {
|
|
165
|
+
t.stopPropagation(), P(s);
|
|
166
|
+
},
|
|
167
|
+
onKeyDown: (t) => F(t, s),
|
|
168
|
+
style: g === "horizontal" ? {
|
|
169
|
+
left: `${l}%`,
|
|
170
|
+
top: "50%",
|
|
171
|
+
transform: "translate(-50%, -50%)"
|
|
172
|
+
} : {
|
|
173
|
+
bottom: `${l}%`,
|
|
174
|
+
left: "50%",
|
|
175
|
+
transform: "translate(-50%, 50%)"
|
|
176
|
+
}
|
|
177
|
+
}, `step-${s}`);
|
|
178
|
+
})
|
|
179
|
+
}),
|
|
180
|
+
j.length > 0 && /* @__PURE__ */ jsx("div", {
|
|
181
|
+
className: clsx_default("pointer-events-none absolute", g === "horizontal" ? "top-full mt-1 w-full" : "left-full ml-1 h-full"),
|
|
182
|
+
children: j.map((t) => {
|
|
183
|
+
let o = toPercent(t.value, p, m);
|
|
184
|
+
return /* @__PURE__ */ jsx("button", {
|
|
185
|
+
type: "button",
|
|
186
|
+
"aria-label": `Set value to ${t.value}`,
|
|
187
|
+
className: "pointer-events-auto absolute flex cursor-pointer items-center border-0 bg-transparent p-0 transition-opacity hover:opacity-70",
|
|
188
|
+
onClick: (o) => {
|
|
189
|
+
o.stopPropagation(), P(t.value);
|
|
190
|
+
},
|
|
191
|
+
onKeyDown: (o) => F(o, t.value),
|
|
192
|
+
style: g === "horizontal" ? {
|
|
193
|
+
left: `${o}%`,
|
|
194
|
+
transform: "translateX(-50%)"
|
|
195
|
+
} : {
|
|
196
|
+
bottom: `${o}%`,
|
|
197
|
+
transform: "translateY(50%)"
|
|
198
|
+
},
|
|
199
|
+
children: t.label && /* @__PURE__ */ jsx("span", {
|
|
200
|
+
className: "whitespace-nowrap text-base-content/70 text-xs",
|
|
201
|
+
children: t.label
|
|
202
|
+
})
|
|
203
|
+
}, `mark-${t.value}`);
|
|
204
|
+
})
|
|
205
|
+
})
|
|
206
|
+
]
|
|
207
|
+
})
|
|
208
|
+
})
|
|
209
|
+
});
|
|
154
210
|
}
|
|
211
|
+
var Range_default = Range;
|
|
155
212
|
export { Range_default as default };
|
package/Select/Select.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ReactElement } from 'react';
|
|
2
2
|
import { SelectProps } from './Select.interface';
|
|
3
3
|
declare const Select: {
|
|
4
|
-
({ ref: refExternal, name, borderOffset, size, color, dataTheme, classes, register: propRegister, error: propError, disabled: propDisabled, helper, label, placeholder, placeholderAsItem, children, ...props }: SelectProps): ReactElement;
|
|
4
|
+
({ ref: refExternal, name, id, borderOffset, size, color, dataTheme, classes, register: propRegister, error: propError, disabled: propDisabled, helper, label, placeholder, placeholderAsItem, children, ...props }: SelectProps): ReactElement;
|
|
5
5
|
displayName: string;
|
|
6
6
|
};
|
|
7
7
|
export default Select;
|
|
@@ -28,7 +28,7 @@ export declare const SELECT_MAP: {
|
|
|
28
28
|
lg: string;
|
|
29
29
|
xl: string;
|
|
30
30
|
};
|
|
31
|
-
export interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, "size" | "color"
|
|
31
|
+
export interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, "size" | "color">, IComponentBaseProps {
|
|
32
32
|
ref?: Ref<HTMLSelectElement>;
|
|
33
33
|
noBordered?: boolean;
|
|
34
34
|
borderOffset?: boolean;
|
|
@@ -36,6 +36,7 @@ export interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement
|
|
|
36
36
|
placeholder?: string;
|
|
37
37
|
placeholderAsItem?: boolean;
|
|
38
38
|
name: FieldPath<FieldValues>;
|
|
39
|
+
id?: string;
|
|
39
40
|
color?: Exclude<ComponentColor, "neutral">;
|
|
40
41
|
register?: UseFormRegister<FieldValues>;
|
|
41
42
|
label?: ReactNode;
|
package/Select/Select.js
CHANGED
|
@@ -8,49 +8,49 @@ import { SELECT, SELECT_MAP } from "./Select.interface.js";
|
|
|
8
8
|
import { c } from "react/compiler-runtime";
|
|
9
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
10
|
var Select = (u) => {
|
|
11
|
-
let d = c(
|
|
12
|
-
d[0] === u ? (f = d[1], p = d[2], m = d[3], h = d[4], g = d[5], _ = d[6], v = d[7], y = d[8], b = d[9], x = d[10], S = d[11], C = d[12], w = d[13], T = d[14], E = d[15], D = d[16]) : ({ref:
|
|
13
|
-
let
|
|
14
|
-
d[
|
|
15
|
-
"input-error":
|
|
16
|
-
"focus:outline-offset-0":
|
|
17
|
-
}), d[
|
|
18
|
-
let
|
|
19
|
-
d[
|
|
20
|
-
let
|
|
21
|
-
d[
|
|
11
|
+
let d = c(48), f, p, m, h, g, _, v, y, b, x, S, C, w, T, E, D, O;
|
|
12
|
+
d[0] === u ? (f = d[1], p = d[2], m = d[3], h = d[4], g = d[5], _ = d[6], v = d[7], y = d[8], b = d[9], x = d[10], S = d[11], C = d[12], w = d[13], T = d[14], E = d[15], D = d[16], O = d[17]) : ({ref: T, name: y, id: _, borderOffset: D, size: E, color: m, dataTheme: h, classes: p, register: C, error: S, disabled: x, helper: g, label: v, placeholder: b, placeholderAsItem: O, children: f, ...w} = u, d[0] = u, d[1] = f, d[2] = p, d[3] = m, d[4] = h, d[5] = g, d[6] = _, d[7] = v, d[8] = y, d[9] = b, d[10] = x, d[11] = S, d[12] = C, d[13] = w, d[14] = T, d[15] = E, d[16] = D, d[17] = O);
|
|
13
|
+
let k = D === void 0 ? !0 : D, A = O === void 0 ? !1 : O, { error: j, disabled: M, registerRef: N, registerRest: P } = use_RHF_integration_default(y, C, S, x), F = p?.input, I = E && SELECT_MAP[E], L = m && SELECT_MAP[m], R = !!j, z = !k, B;
|
|
14
|
+
d[18] !== F || d[19] !== I || d[20] !== L || d[21] !== R || d[22] !== z ? (B = cn(SELECT, F, I, L, {
|
|
15
|
+
"input-error": R,
|
|
16
|
+
"focus:outline-offset-0": z
|
|
17
|
+
}), d[18] = F, d[19] = I, d[20] = L, d[21] = R, d[22] = z, d[23] = B) : B = d[23];
|
|
18
|
+
let V = B, H;
|
|
19
|
+
d[24] !== T || d[25] !== N ? (H = mergeRefs(T, N), d[24] = T, d[25] = N, d[26] = H) : H = d[26];
|
|
20
|
+
let U = _ ?? y, W = b ? "" : void 0, G;
|
|
21
|
+
d[27] !== b || d[28] !== A ? (G = !!b && /* @__PURE__ */ jsx("option", {
|
|
22
22
|
disabled: !0,
|
|
23
|
-
hidden: !
|
|
23
|
+
hidden: !A,
|
|
24
24
|
className: "text-white",
|
|
25
25
|
value: "",
|
|
26
|
-
children:
|
|
27
|
-
}), d[
|
|
28
|
-
let
|
|
29
|
-
d[
|
|
30
|
-
ref:
|
|
31
|
-
id:
|
|
32
|
-
name:
|
|
33
|
-
disabled:
|
|
34
|
-
className:
|
|
26
|
+
children: b
|
|
27
|
+
}), d[27] = b, d[28] = A, d[29] = G) : G = d[29];
|
|
28
|
+
let K;
|
|
29
|
+
d[30] !== f || d[31] !== V || d[32] !== h || d[33] !== M || d[34] !== y || d[35] !== w || d[36] !== P || d[37] !== U || d[38] !== W || d[39] !== G || d[40] !== H ? (K = /* @__PURE__ */ jsxs("select", {
|
|
30
|
+
ref: H,
|
|
31
|
+
id: U,
|
|
32
|
+
name: y,
|
|
33
|
+
disabled: M,
|
|
34
|
+
className: V,
|
|
35
35
|
"data-theme": h,
|
|
36
|
-
defaultValue:
|
|
37
|
-
...
|
|
38
|
-
...
|
|
39
|
-
children: [
|
|
40
|
-
}), d[
|
|
41
|
-
let
|
|
42
|
-
if (
|
|
43
|
-
let e =
|
|
44
|
-
return d[
|
|
45
|
-
htmlFor:
|
|
36
|
+
defaultValue: W,
|
|
37
|
+
...w,
|
|
38
|
+
...P,
|
|
39
|
+
children: [G, f]
|
|
40
|
+
}), d[30] = f, d[31] = V, d[32] = h, d[33] = M, d[34] = y, d[35] = w, d[36] = P, d[37] = U, d[38] = W, d[39] = G, d[40] = H, d[41] = K) : K = d[41];
|
|
41
|
+
let q = K;
|
|
42
|
+
if (v) {
|
|
43
|
+
let e = _ ?? y, s = j?.message, l;
|
|
44
|
+
return d[42] !== g || d[43] !== v || d[44] !== e || d[45] !== s || d[46] !== q ? (l = /* @__PURE__ */ jsx(Label_default, {
|
|
45
|
+
htmlFor: e,
|
|
46
46
|
position: "top",
|
|
47
|
-
label:
|
|
47
|
+
label: v,
|
|
48
48
|
helper: g,
|
|
49
|
-
error:
|
|
50
|
-
children:
|
|
51
|
-
}), d[
|
|
49
|
+
error: s,
|
|
50
|
+
children: q
|
|
51
|
+
}), d[42] = g, d[43] = v, d[44] = e, d[45] = s, d[46] = q, d[47] = l) : l = d[47], l;
|
|
52
52
|
}
|
|
53
|
-
return
|
|
53
|
+
return q;
|
|
54
54
|
};
|
|
55
55
|
Select.displayName = "Select";
|
|
56
56
|
var Select_default = Select;
|
package/index.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*By DaxStack: Build in compile time, it's a copy from src/index.css*/
|
|
2
|
-
@plugin "daisyui"{themes:light --default}&>span{opacity:1}.btn-circle{overflow:hidden}.form-control{@apply items-center;}div.form-control:has(.checkbox,.toggle){@apply w-fit;}.range-reverse{transform:scaleX(-1)}.range-vertical{transform:rotate(-90deg)}.range-reverse.range-vertical{transform:scaleY(-1) rotate(-90deg)}.range-padding-x-xs{padding-left:.5rem;padding-right:.5rem}.range-padding-x-sm{padding-left:.625rem;padding-right:.625rem}.range-padding-x-md{padding-left:.75rem;padding-right:.75rem}.range-padding-x-lg{padding-left:1rem;padding-right:1rem}.input{@apply w-full;}.form-control:has(.input) .label-text{@apply py-[8px];}.form-control:has(.input) .label-text,div:has(.form-control):has(.input) .label-text-alt{@apply mx-[0.3rem];}.toggle-error{border-color:hsl(var(--errorColor))}.form-control:not(.flex-row-reverse,:has(.input)) .label-text{margin-right:.666rem}.form-control:not(.flex-row-reverse):has([class$='-xs']) .label-text{margin-right:.5rem}.form-control:not(.flex-row-reverse):has([class$='-sm']) .label-text{margin-right:.583rem}.form-control:not(.flex-row-reverse):has([class$='-lg']) .label-text{margin-right:.75rem}.form-control.flex-row-reverse .label-text{margin-left:.666rem}.form-control.flex-row-reverse:has([class$='-xs']) .label-text{margin-left:.5rem}.form-control.flex-row-reverse:has([class$='-sm']) .label-text{margin-left:.583rem}.form-control.flex-row-reverse:has([class$='-lg']) .label-text{margin-left:.75rem}.select{@apply w-full;}.select option[disabled]{background-color:#d3d3d3!important}@keyframes ripple{0%{transform:scale(0);opacity:1}100%{transform:scale(4);opacity:0}}.btn-ripple{position:relative;overflow:hidden}.ripple-effect{position:absolute;border-radius:50%;pointer-events:none;transform:scale(0);animation:ripple .6s linear}
|
|
2
|
+
@plugin "daisyui"{themes:light --default}.btn{background-image:none}&>span{opacity:1}.btn-circle{overflow:hidden}.form-control{@apply items-center;}div.form-control:has(.checkbox,.toggle){@apply w-fit;}.range-reverse{transform:scaleX(-1)}.range-vertical{transform:rotate(-90deg)}.range-reverse.range-vertical{transform:scaleY(-1) rotate(-90deg)}.range-padding-x-xs{padding-left:.5rem;padding-right:.5rem}.range-padding-x-sm{padding-left:.625rem;padding-right:.625rem}.range-padding-x-md{padding-left:.75rem;padding-right:.75rem}.range-padding-x-lg{padding-left:1rem;padding-right:1rem}.input{@apply w-full;}.form-control:has(.input) .label-text{@apply py-[8px];}.form-control:has(.input) .label-text,div:has(.form-control):has(.input) .label-text-alt{@apply mx-[0.3rem];}.toggle-error{border-color:hsl(var(--errorColor))}.form-control:not(.flex-row-reverse,:has(.input)) .label-text{margin-right:.666rem}.form-control:not(.flex-row-reverse):has([class$='-xs']) .label-text{margin-right:.5rem}.form-control:not(.flex-row-reverse):has([class$='-sm']) .label-text{margin-right:.583rem}.form-control:not(.flex-row-reverse):has([class$='-lg']) .label-text{margin-right:.75rem}.form-control.flex-row-reverse .label-text{margin-left:.666rem}.form-control.flex-row-reverse:has([class$='-xs']) .label-text{margin-left:.5rem}.form-control.flex-row-reverse:has([class$='-sm']) .label-text{margin-left:.583rem}.form-control.flex-row-reverse:has([class$='-lg']) .label-text{margin-left:.75rem}.select{@apply w-full;}.select option[disabled]{background-color:#d3d3d3!important}@keyframes ripple{0%{transform:scale(0);opacity:1}100%{transform:scale(4);opacity:0}}.btn-ripple{position:relative;overflow:hidden}.ripple-effect{position:absolute;border-radius:50%;pointer-events:none;transform:scale(0);animation:ripple .6s linear}
|
package/libs/vendor/clsx.js
CHANGED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var byteToHex = [];
|
|
4
|
+
for (let t = 0; t < 256; ++t) byteToHex.push((t + 256).toString(16).slice(1));
|
|
5
|
+
function unsafeStringify(t, n = 0) {
|
|
6
|
+
return (byteToHex[t[n + 0]] + byteToHex[t[n + 1]] + byteToHex[t[n + 2]] + byteToHex[t[n + 3]] + "-" + byteToHex[t[n + 4]] + byteToHex[t[n + 5]] + "-" + byteToHex[t[n + 6]] + byteToHex[t[n + 7]] + "-" + byteToHex[t[n + 8]] + byteToHex[t[n + 9]] + "-" + byteToHex[t[n + 10]] + byteToHex[t[n + 11]] + byteToHex[t[n + 12]] + byteToHex[t[n + 13]] + byteToHex[t[n + 14]] + byteToHex[t[n + 15]]).toLowerCase();
|
|
7
|
+
}
|
|
8
|
+
export { unsafeStringify };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var getRandomValues, rnds8 = new Uint8Array(16);
|
|
4
|
+
function rng() {
|
|
5
|
+
if (!getRandomValues) {
|
|
6
|
+
if (typeof crypto > "u" || !crypto.getRandomValues) throw Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
|
|
7
|
+
getRandomValues = crypto.getRandomValues.bind(crypto);
|
|
8
|
+
}
|
|
9
|
+
return getRandomValues(rnds8);
|
|
10
|
+
}
|
|
11
|
+
export { rng as default };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
import { unsafeStringify } from "./uuid.js";
|
|
4
|
+
import rng from "./uuid2.js";
|
|
5
|
+
import native_default from "./uuid3.js";
|
|
6
|
+
function _v4(n, r, i) {
|
|
7
|
+
n ||= {};
|
|
8
|
+
let a = n.random ?? n.rng?.() ?? rng();
|
|
9
|
+
if (a.length < 16) throw Error("Random bytes length must be >= 16");
|
|
10
|
+
if (a[6] = a[6] & 15 | 64, a[8] = a[8] & 63 | 128, r) {
|
|
11
|
+
if (i ||= 0, i < 0 || i + 16 > r.length) throw RangeError(`UUID byte range ${i}:${i + 15} is out of buffer bounds`);
|
|
12
|
+
for (let e = 0; e < 16; ++e) r[i + e] = a[e];
|
|
13
|
+
return r;
|
|
14
|
+
}
|
|
15
|
+
return unsafeStringify(a);
|
|
16
|
+
}
|
|
17
|
+
function v4(e, t, i) {
|
|
18
|
+
return native_default.randomUUID && !t && !e ? native_default.randomUUID() : _v4(e, t, i);
|
|
19
|
+
}
|
|
20
|
+
var v4_default = v4;
|
|
21
|
+
export { v4_default as default };
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "experimental-ui",
|
|
3
3
|
"private": false,
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.4.0-canary.2",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"dev": "vite",
|
|
@@ -29,6 +29,10 @@
|
|
|
29
29
|
"react-hook-form": "^7.65.0",
|
|
30
30
|
"tailwindcss": "^4.1.16"
|
|
31
31
|
},
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"react": "^19.2.0",
|
|
34
|
+
"react-dom": "^19.2.0"
|
|
35
|
+
},
|
|
32
36
|
"sideEffects": false,
|
|
33
37
|
"exports": {
|
|
34
38
|
".": "./index.js",
|
package/utils.ts/utils.js
CHANGED
|
@@ -3,24 +3,24 @@
|
|
|
3
3
|
import { clsx } from "../libs/vendor/clsx.js";
|
|
4
4
|
import { twMerge } from "../libs/vendor/tailwind-merge.js";
|
|
5
5
|
import { Fragment, cloneElement, isValidElement } from "react";
|
|
6
|
-
const isReactFragment = (e) => e ? e?.type ? e?.type === Fragment : e === Fragment : !1, wrapWithElementIfInvalid = ({ node: e, wrapper:
|
|
6
|
+
const isReactFragment = (e) => e ? e?.type ? e?.type === Fragment : e === Fragment : !1, wrapWithElementIfInvalid = ({ node: e, wrapper: r, props: i }) => {
|
|
7
7
|
if (e) if (isValidElement(e)) {
|
|
8
|
-
if (isReactFragment(e)) return cloneElement(
|
|
9
|
-
...
|
|
10
|
-
className: cn(e.props?.className,
|
|
8
|
+
if (isReactFragment(e)) return cloneElement(r, {
|
|
9
|
+
...i,
|
|
10
|
+
className: cn(e.props?.className, i?.className)
|
|
11
11
|
}, e.props.children);
|
|
12
12
|
{
|
|
13
|
-
let { className:
|
|
13
|
+
let { className: r, ...o } = i ?? {}, s = cn(e.props?.className, r);
|
|
14
14
|
return cloneElement(e, {
|
|
15
|
-
...
|
|
16
|
-
className:
|
|
15
|
+
...o,
|
|
16
|
+
className: s
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
|
-
} else return cloneElement(
|
|
20
|
-
else return cloneElement(
|
|
21
|
-
}, isSingleStringChild = (e) => typeof e == "string", colorToOklch = (e,
|
|
22
|
-
let { l:
|
|
23
|
-
return
|
|
19
|
+
} else return cloneElement(r, i, e);
|
|
20
|
+
else return cloneElement(r, i);
|
|
21
|
+
}, isSingleStringChild = (e) => typeof e == "string", colorToOklch = (e, r = !1) => {
|
|
22
|
+
let { l: i, c: a, h: o } = colorToOklchc(e);
|
|
23
|
+
return r ? `oklch(${i + (i < .5 ? .8 : .4)} ${a - .15} ${o})` : `oklch(${i} ${a} ${o})`;
|
|
24
24
|
};
|
|
25
25
|
var w3cx11 = {
|
|
26
26
|
aliceblue: "#f0f8ff",
|
|
@@ -178,27 +178,26 @@ var w3cx11 = {
|
|
|
178
178
|
yellow: "#ffff00",
|
|
179
179
|
yellowgreen: "#9acd32"
|
|
180
180
|
};
|
|
181
|
+
function srgbToLinear(e) {
|
|
182
|
+
return e /= 255, e <= .04045 ? e / 12.92 : ((e + .055) / 1.055) ** 2.4;
|
|
183
|
+
}
|
|
181
184
|
function colorToOklchc(e) {
|
|
182
|
-
let
|
|
183
|
-
if (Object.hasOwn(w3cx11, e.toLowerCase()) && (
|
|
185
|
+
let r = e;
|
|
186
|
+
if (Object.hasOwn(w3cx11, e.toLowerCase()) && (r = w3cx11[e.toLowerCase()]), !/^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$/.test(r)) return console.error(`Invalid color format: ${e}`), {
|
|
184
187
|
l: 0,
|
|
185
188
|
c: 0,
|
|
186
189
|
h: 0
|
|
187
190
|
};
|
|
188
|
-
let
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
return e /= 255, e <= .04045 ? e / 12.92 : ((e + .055) / 1.055) ** 2.4;
|
|
192
|
-
}
|
|
193
|
-
r = o(r), i = o(i), a = o(a);
|
|
194
|
-
let s = r * .4124564 + i * .3575761 + a * .1804375, c = r * .2126729 + i * .7151522 + a * .072175, l = r * .0193339 + i * .119192 + a * .9503041, u = .8189330101 * s + .3618667424 * c - .1288597137 * l, d = .0329845436 * s + .9293118715 * c + .0361456387 * l, f = .0482003018 * s + .2643662691 * c + .633851707 * l, p = Math.cbrt(u), m = Math.cbrt(d), h = Math.cbrt(f), g = .2104542553 * p + .793617785 * m - .0040720468 * h, _ = 1.9779984951 * p - 2.428592205 * m + .4505937099 * h, v = .0259040371 * p + .7827717662 * m - .808675766 * h;
|
|
191
|
+
let i = 0, a = 0, o = 0;
|
|
192
|
+
r.length === 4 ? (i = Number.parseInt(r[1] + r[1], 16), a = Number.parseInt(r[2] + r[2], 16), o = Number.parseInt(r[3] + r[3], 16)) : r.length === 7 && (i = Number.parseInt(r.slice(1, 3), 16), a = Number.parseInt(r.slice(3, 5), 16), o = Number.parseInt(r.slice(5, 7), 16)), i = srgbToLinear(i), a = srgbToLinear(a), o = srgbToLinear(o);
|
|
193
|
+
let s = i * .4124564 + a * .3575761 + o * .1804375, c = i * .2126729 + a * .7151522 + o * .072175, l = i * .0193339 + a * .119192 + o * .9503041, u = .8189330101 * s + .3618667424 * c - .1288597137 * l, d = .0329845436 * s + .9293118715 * c + .0361456387 * l, f = .0482003018 * s + .2643662691 * c + .633851707 * l, p = Math.cbrt(u), m = Math.cbrt(d), h = Math.cbrt(f), g = .2104542553 * p + .793617785 * m - .0040720468 * h, _ = 1.9779984951 * p - 2.428592205 * m + .4505937099 * h, v = .0259040371 * p + .7827717662 * m - .808675766 * h;
|
|
195
194
|
return {
|
|
196
195
|
l: g,
|
|
197
196
|
c: Math.hypot(_ * _ + v * v),
|
|
198
197
|
h: (Math.atan2(v, _) * 180 / Math.PI + 360) % 360
|
|
199
198
|
};
|
|
200
199
|
}
|
|
201
|
-
function cn(...
|
|
202
|
-
return twMerge(clsx(
|
|
200
|
+
function cn(...i) {
|
|
201
|
+
return twMerge(clsx(i));
|
|
203
202
|
}
|
|
204
203
|
export { colorToOklch, cn as default, isSingleStringChild, wrapWithElementIfInvalid };
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
2
|
-
type ShowInScreen = "none" | "all" | "sm" | "md" | "lg" | "xl";
|
|
3
|
-
export interface MarkProps {
|
|
4
|
-
value: number;
|
|
5
|
-
label: ReactNode;
|
|
6
|
-
showInScreen?: ShowInScreen;
|
|
7
|
-
}
|
|
8
|
-
declare function CustomMarks({ marks, max, classes, className, min, onMarkClick, }: Readonly<{
|
|
9
|
-
marks: MarkProps[];
|
|
10
|
-
className?: string;
|
|
11
|
-
classes?: {
|
|
12
|
-
mark?: string;
|
|
13
|
-
};
|
|
14
|
-
max: number;
|
|
15
|
-
min: number;
|
|
16
|
-
onMarkClick?: (value: number) => void;
|
|
17
|
-
}>): import("react/jsx-runtime").JSX.Element;
|
|
18
|
-
export default CustomMarks;
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
"use client";
|
|
3
|
-
import cn from "../utils.ts/utils.js";
|
|
4
|
-
import { c } from "react/compiler-runtime";
|
|
5
|
-
import { jsx } from "react/jsx-runtime";
|
|
6
|
-
var RANGE_VISIBLE_MAP = {
|
|
7
|
-
none: "invisible",
|
|
8
|
-
all: "visible",
|
|
9
|
-
sm: "sm:visible",
|
|
10
|
-
md: "md:visible",
|
|
11
|
-
lg: "lg:visible",
|
|
12
|
-
xl: "xl:visible"
|
|
13
|
-
};
|
|
14
|
-
function CustomMarks(a) {
|
|
15
|
-
let o = c(22), { marks: s, max: l, classes: u, className: d, min: f, onMarkClick: p } = a, m, h, g;
|
|
16
|
-
if (o[0] !== d || o[1] !== u?.mark || o[2] !== s || o[3] !== l || o[4] !== f || o[5] !== p) {
|
|
17
|
-
let i = s.slice().sort(_temp);
|
|
18
|
-
o[9] === d ? g = o[10] : (g = cn("w-full", d), o[9] = d, o[10] = g), m = "relative flex w-full";
|
|
19
|
-
let a;
|
|
20
|
-
o[11] !== u?.mark || o[12] !== l || o[13] !== f || o[14] !== p ? (a = (i) => {
|
|
21
|
-
let a = `${(i.value - f) / (l - f) * 100}%`;
|
|
22
|
-
return /* @__PURE__ */ jsx("button", {
|
|
23
|
-
type: "button",
|
|
24
|
-
className: cn("absolute -translate-x-1/2 cursor-pointer text-center first:relative", "invisible first:visible last:visible", i?.showInScreen && RANGE_VISIBLE_MAP[i.showInScreen], u?.mark),
|
|
25
|
-
style: { left: a },
|
|
26
|
-
onClick: () => p?.(i.value),
|
|
27
|
-
children: i.label
|
|
28
|
-
}, i.value);
|
|
29
|
-
}, o[11] = u?.mark, o[12] = l, o[13] = f, o[14] = p, o[15] = a) : a = o[15], h = i.map(a), o[0] = d, o[1] = u?.mark, o[2] = s, o[3] = l, o[4] = f, o[5] = p, o[6] = m, o[7] = h, o[8] = g;
|
|
30
|
-
} else m = o[6], h = o[7], g = o[8];
|
|
31
|
-
let _;
|
|
32
|
-
o[16] !== m || o[17] !== h ? (_ = /* @__PURE__ */ jsx("div", {
|
|
33
|
-
className: m,
|
|
34
|
-
children: h
|
|
35
|
-
}), o[16] = m, o[17] = h, o[18] = _) : _ = o[18];
|
|
36
|
-
let v;
|
|
37
|
-
return o[19] !== g || o[20] !== _ ? (v = /* @__PURE__ */ jsx("div", {
|
|
38
|
-
className: g,
|
|
39
|
-
children: _
|
|
40
|
-
}), o[19] = g, o[20] = _, o[21] = v) : v = o[21], v;
|
|
41
|
-
}
|
|
42
|
-
function _temp(e, i) {
|
|
43
|
-
return e.value - i.value;
|
|
44
|
-
}
|
|
45
|
-
var Range_CustomMarks_default = CustomMarks;
|
|
46
|
-
export { Range_CustomMarks_default as default };
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
declare function DefaultMarks({ step, min, max, className, classes, onMarkClick, markDisplay, }: Readonly<{
|
|
2
|
-
step: number;
|
|
3
|
-
min: number;
|
|
4
|
-
max: number;
|
|
5
|
-
className?: string;
|
|
6
|
-
classes?: {
|
|
7
|
-
mark?: string;
|
|
8
|
-
};
|
|
9
|
-
onMarkClick?: (value: number) => void;
|
|
10
|
-
markDisplay?: {
|
|
11
|
-
showValue?: boolean;
|
|
12
|
-
showTick?: boolean;
|
|
13
|
-
customTick?: string;
|
|
14
|
-
};
|
|
15
|
-
}>): import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
export default DefaultMarks;
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
"use client";
|
|
3
|
-
import cn from "../utils.ts/utils.js";
|
|
4
|
-
import { c } from "react/compiler-runtime";
|
|
5
|
-
import "react";
|
|
6
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
-
function DefaultMarks(i) {
|
|
8
|
-
let a = c(18), { step: o, min: s, max: l, className: u, classes: d, onMarkClick: f, markDisplay: p } = i, m;
|
|
9
|
-
a[0] === p ? m = a[1] : (m = p === void 0 ? {
|
|
10
|
-
showValue: !0,
|
|
11
|
-
showTick: !0,
|
|
12
|
-
customTick: "|"
|
|
13
|
-
} : p, a[0] = p, a[1] = m);
|
|
14
|
-
let h = m;
|
|
15
|
-
if ((l - s) % o !== 0) throw Error("step no es múltiplo de la diferencia entre min y max");
|
|
16
|
-
let g = Math.floor((l - s) / o), _;
|
|
17
|
-
if (a[2] !== g) {
|
|
18
|
-
_ = [];
|
|
19
|
-
for (let e = 0; e <= g; e++) {
|
|
20
|
-
let r = `${e * 100 / g}%`;
|
|
21
|
-
_.push(r);
|
|
22
|
-
}
|
|
23
|
-
a[2] = g, a[3] = _;
|
|
24
|
-
} else _ = a[3];
|
|
25
|
-
let v = _, { showValue: y, showTick: b, customTick: x } = h, S = y === void 0 ? !0 : y, C = b === void 0 ? !0 : b, w = x === void 0 ? "|" : x, T;
|
|
26
|
-
a[4] === u ? T = a[5] : (T = cn("w-full", u), a[4] = u, a[5] = T);
|
|
27
|
-
let E;
|
|
28
|
-
a[6] !== d?.mark || a[7] !== w || a[8] !== v || a[9] !== s || a[10] !== f || a[11] !== C || a[12] !== S || a[13] !== o ? (E = /* @__PURE__ */ jsx("div", {
|
|
29
|
-
className: "relative flex w-full",
|
|
30
|
-
children: v.map((r, i) => {
|
|
31
|
-
let a = i * o + s;
|
|
32
|
-
return /* @__PURE__ */ jsxs("button", {
|
|
33
|
-
type: "button",
|
|
34
|
-
className: cn("absolute -translate-x-1/2 cursor-pointer text-center first:relative", d?.mark),
|
|
35
|
-
style: { left: r },
|
|
36
|
-
onClick: () => f?.(a),
|
|
37
|
-
children: [C && /* @__PURE__ */ jsx("div", { children: w }), S && /* @__PURE__ */ jsx("div", { children: a })]
|
|
38
|
-
}, r);
|
|
39
|
-
})
|
|
40
|
-
}), a[6] = d?.mark, a[7] = w, a[8] = v, a[9] = s, a[10] = f, a[11] = C, a[12] = S, a[13] = o, a[14] = E) : E = a[14];
|
|
41
|
-
let D;
|
|
42
|
-
return a[15] !== T || a[16] !== E ? (D = /* @__PURE__ */ jsx("div", {
|
|
43
|
-
className: T,
|
|
44
|
-
children: E
|
|
45
|
-
}), a[15] = T, a[16] = E, a[17] = D) : D = a[17], D;
|
|
46
|
-
}
|
|
47
|
-
var Range_DefaultMarks_default = DefaultMarks;
|
|
48
|
-
export { Range_DefaultMarks_default as default };
|
package/Range/Range.interface.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
"use client";
|
|
3
|
-
const RANGE = "range";
|
|
4
|
-
var SIZE_MAP = {
|
|
5
|
-
xs: "range-xs",
|
|
6
|
-
sm: "range-sm",
|
|
7
|
-
md: "range-md",
|
|
8
|
-
lg: "range-lg",
|
|
9
|
-
xl: "range-xl"
|
|
10
|
-
};
|
|
11
|
-
const PADDING_X_MAP = {
|
|
12
|
-
xs: "range-padding-x-xs",
|
|
13
|
-
sm: "range-padding-x-sm",
|
|
14
|
-
md: "range-padding-x-md",
|
|
15
|
-
lg: "range-padding-x-lg",
|
|
16
|
-
xl: "range-padding-x-xl"
|
|
17
|
-
};
|
|
18
|
-
var COLOR_MAP = {
|
|
19
|
-
primary: "range-primary",
|
|
20
|
-
secondary: "range-secondary",
|
|
21
|
-
error: "range-error",
|
|
22
|
-
info: "range-info",
|
|
23
|
-
success: "range-success",
|
|
24
|
-
warning: "range-warning",
|
|
25
|
-
accent: "range-accent"
|
|
26
|
-
};
|
|
27
|
-
const RANGE_MAP = {
|
|
28
|
-
...SIZE_MAP,
|
|
29
|
-
...COLOR_MAP,
|
|
30
|
-
vertical: "range-vertical"
|
|
31
|
-
};
|
|
32
|
-
export { PADDING_X_MAP, RANGE, RANGE_MAP };
|