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 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, j, M;
12
- i[0] === t ? (l = i[1], u = i[2], d = i[3], f = i[4], p = i[5], m = i[6], h = i[7], g = i[8], _ = i[9], v = i[10], y = i[11], b = i[12], x = i[13], S = i[14], C = i[15], w = i[16], T = i[17], E = i[18], D = i[19], O = i[20], k = i[21], A = i[22], j = i[23], M = i[24]) : ({ref: S, children: u, href: v, shape: E, size: A, variant: j, color: f, startIcon: O, endIcon: g, wide: M, fullWidth: _, responsive: w, noAnimation: x, loading: y, loadingVariant: b, active: l, disabled: h, soft: D, dash: p, ripple: T, dataTheme: m, className: d, style: k, ...C} = t, i[0] = t, i[1] = l, i[2] = u, i[3] = d, i[4] = f, i[5] = p, i[6] = m, i[7] = h, i[8] = g, i[9] = _, i[10] = v, i[11] = y, i[12] = b, i[13] = x, i[14] = S, i[15] = C, i[16] = w, i[17] = T, i[18] = E, i[19] = D, i[20] = O, i[21] = k, i[22] = A, i[23] = j, i[24] = M);
13
- let N = A === void 0 ? "md" : A, P;
14
- i[25] === T ? P = i[26] : (P = typeof T == "object" ? T : {}, i[25] = T, i[26] = P);
15
- let ne = useRipple(P), re = (O && !y || g) && "gap-2", F = f && BUTTON_MAP[f], I = j && BUTTON_MAP[j], L = N !== "md" && BUTTON_MAP[N], R = E && BUTTON_MAP[E], z = M && BUTTON_MAP.wide, B = _ && BUTTON_MAP.fullWidth, V = w && BUTTON_MAP.responsive, H = l && BUTTON_MAP.active, U = h && BUTTON_MAP.disabled, W = x && BUTTON_MAP.noAnimation, G = D && BUTTON_MAP.soft, K = p && BUTTON_MAP.dash, q = T && "btn-ripple", J;
16
- i[27] !== d || i[28] !== V || i[29] !== H || i[30] !== U || i[31] !== W || i[32] !== G || i[33] !== K || i[34] !== q || i[35] !== re || i[36] !== F || i[37] !== I || i[38] !== L || i[39] !== R || i[40] !== z || i[41] !== B ? (J = cn("btn", re, F, I, L, R, z, B, V, H, U, W, G, K, q, d), i[27] = d, i[28] = V, i[29] = H, i[30] = U, i[31] = W, i[32] = G, i[33] = K, i[34] = q, i[35] = re, i[36] = F, i[37] = I, i[38] = L, i[39] = R, i[40] = z, i[41] = B, i[42] = J) : J = i[42];
17
- let Y = J, X;
18
- i[43] !== ne || i[44] !== h || i[45] !== v || i[46] !== y || i[47] !== C || i[48] !== T ? (X = (e) => {
19
- T && !h && !y && ne(e), C.onClick?.(e);
20
- }, i[43] = ne, i[44] = h, i[45] = v, i[46] = y, i[47] = C, i[48] = T, i[49] = X) : X = i[49];
21
- let Z = X;
22
- if (v) {
23
- let e = C, t = S, n = h ? void 0 : v, r;
24
- i[50] !== h || i[51] !== Z ? (r = h ? _temp : Z, i[50] = h, i[51] = Z, i[52] = r) : r = i[52];
25
- let a = !!O && O, o = !!g && g, s;
26
- return i[53] !== e || i[54] !== u || i[55] !== Y || i[56] !== m || i[57] !== h || i[58] !== k || i[59] !== t || i[60] !== n || i[61] !== r || i[62] !== a || i[63] !== o ? (s = /* @__PURE__ */ jsxs("a", {
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: Y,
30
- style: k,
29
+ className: q,
30
+ style: D,
31
31
  href: n,
32
- "data-theme": m,
33
- "aria-disabled": h,
32
+ "data-theme": f,
33
+ "aria-disabled": p,
34
34
  onClick: r,
35
35
  children: [
36
- a,
37
- u,
38
- o
36
+ E,
37
+ s,
38
+ m
39
39
  ]
40
- }), i[53] = e, i[54] = u, i[55] = Y, i[56] = m, i[57] = h, i[58] = k, i[59] = t, i[60] = n, i[61] = r, i[62] = a, i[63] = o, i[64] = s) : s = i[64], s;
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 ie = C, ae = S, oe = h ?? y, Q;
43
- i[65] !== y || i[66] !== b || i[67] !== N ? (Q = y && /* @__PURE__ */ jsx(Loading_default, {
44
- variant: b,
45
- size: N
46
- }), i[65] = y, i[66] = b, i[67] = N, i[68] = Q) : Q = i[68];
47
- let se = !!O && O, ce = !!g && g, $;
48
- return i[69] !== u || i[70] !== Y || i[71] !== m || i[72] !== Z || i[73] !== k || i[74] !== ie || i[75] !== ae || i[76] !== oe || i[77] !== Q || i[78] !== se || i[79] !== ce ? ($ = /* @__PURE__ */ jsxs("button", {
49
- ...ie,
50
- ref: ae,
51
- "data-theme": m,
52
- className: Y,
53
- style: k,
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: Z,
55
+ onClick: Y,
56
56
  children: [
57
57
  Q,
58
- se,
59
- u,
60
- ce
58
+ E,
59
+ s,
60
+ m
61
61
  ]
62
- }), i[69] = u, i[70] = Y, i[71] = m, i[72] = Z, i[73] = k, i[74] = ie, i[75] = ae, i[76] = oe, i[77] = Q, i[78] = se, i[79] = ce, i[80] = $) : $ = i[80], $;
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;
@@ -1,4 +1,4 @@
1
- import { JSX } from 'react';
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) => JSX.Element;
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 { ReactElement } from 'react';
2
- import { RangeProps } from './Range.interface';
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
- import { InputHTMLAttributes } from 'react';
2
- import { FieldError, FieldValues, UseFormRegister } from 'react-hook-form';
3
- import { ComponentColor, IComponentBaseProps, Size } from '../types';
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 type RangeProps = Omit<InputHTMLAttributes<HTMLInputElement>, "size"> & IComponentBaseProps & {
34
- ref?: React.Ref<HTMLInputElement>;
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
- name: string;
41
- register?: UseFormRegister<FieldValues>;
42
- error?: FieldError;
9
+ step?: number;
10
+ orientation?: "horizontal" | "vertical";
11
+ onChange: (value: number | [number, number]) => void;
43
12
  disabled?: boolean;
44
- hiddeStepValue?: boolean;
45
- marks?: MarkProps[];
46
- markDisplay?: MarkDisplayOptions;
47
- /**
48
- * When true, combines step values with custom marks values
49
- * allowing the slider to snap to both step intervals and custom mark positions
50
- * @default false
51
- */
52
- allowStepsWithMarks?: boolean;
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 cn from "../utils.ts/utils.js";
4
- import mergeRefs from "../libs/vendor/merge-refs.js";
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 { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
13
- var Range_default = (n) => {
14
- let r = c(103), i, a, o, s, l, u, d, f, p, m, h, g, _, v, y, b, x, S;
15
- r[0] === n ? (i = r[1], a = r[2], o = r[3], s = r[4], l = r[5], u = r[6], d = r[7], f = r[8], p = r[9], m = r[10], h = r[11], g = r[12], _ = r[13], v = r[14], y = r[15], b = r[16], x = r[17], S = r[18]) : ({ref: h, register: g, error: m, disabled: p, name: d, color: o, size: v, step: y, min: b, max: x, marks: u, dataTheme: s, className: i, classes: a, onChange: f, markDisplay: l, allowStepsWithMarks: S, ..._} = n, r[0] = n, r[1] = i, r[2] = a, r[3] = o, r[4] = s, r[5] = l, r[6] = u, r[7] = d, r[8] = f, r[9] = p, r[10] = m, r[11] = h, r[12] = g, r[13] = _, r[14] = v, r[15] = y, r[16] = b, r[17] = x, r[18] = S);
16
- let C = b === void 0 ? 0 : b, w = x === void 0 ? 100 : x, T = S === void 0 ? !1 : S, me = useRef(null), { error: he, disabled: E, registerRef: D, registerRest: O } = use_RHF_integration_default(d, g, m, p), k = v && RANGE_MAP[v], A = o && RANGE_MAP[o], j = !!he, M;
17
- r[19] !== i || r[20] !== k || r[21] !== A || r[22] !== j ? (M = cn(RANGE, "block w-full", k, A, { "range-error": j }, i), r[19] = i, r[20] = k, r[21] = A, r[22] = j, r[23] = M) : M = r[23];
18
- let N = M, P = PADDING_X_MAP[v ?? "md"], F;
19
- r[24] === P ? F = r[25] : (F = cn(P), r[24] = P, r[25] = F);
20
- let I = F, ge = a?.customMarks?.container, L;
21
- r[26] !== I || r[27] !== ge ? (L = cn(I, ge), r[26] = I, r[27] = ge, r[28] = L) : L = r[28];
22
- let R = L, _e = a?.customMarks?.mark, z;
23
- r[29] === _e ? z = r[30] : (z = cn(_e), r[29] = _e, r[30] = z);
24
- let B;
25
- r[31] === z ? B = r[32] : (B = { mark: z }, r[31] = z, r[32] = B);
26
- let V = B, H;
27
- bb0: {
28
- if (T && y && u) {
29
- let e;
30
- if (r[33] !== u || r[34] !== w || r[35] !== C || r[36] !== y) {
31
- let t = /* @__PURE__ */ new Set();
32
- for (let e = C; e <= w; e += y) t.add(e);
33
- for (let e of u) e.value >= C && e.value <= w && t.add(e.value);
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 _temp(e, t) {
147
- return e - t;
148
- }
149
- function _temp2(e) {
150
- return e.value;
151
- }
152
- function _temp3(e, t) {
153
- return e - t;
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 };
@@ -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" | "id">, IComponentBaseProps {
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(46), f, p, m, h, g, _, v, y, b, x, S, C, w, T, E, D;
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: w, name: v, borderOffset: E, size: T, color: m, dataTheme: h, classes: p, register: S, error: x, disabled: b, helper: g, label: _, placeholder: y, placeholderAsItem: D, children: f, ...C} = 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);
13
- let O = E === void 0 ? !0 : E, k = D === void 0 ? !1 : D, { error: A, disabled: j, registerRef: M, registerRest: N } = use_RHF_integration_default(v, S, x, b), P = p?.input, F = T && SELECT_MAP[T], I = m && SELECT_MAP[m], L = !!A, R = !O, z;
14
- d[17] !== P || d[18] !== F || d[19] !== I || d[20] !== L || d[21] !== R ? (z = cn(SELECT, P, F, I, {
15
- "input-error": L,
16
- "focus:outline-offset-0": R
17
- }), d[17] = P, d[18] = F, d[19] = I, d[20] = L, d[21] = R, d[22] = z) : z = d[22];
18
- let B = z, V;
19
- d[23] !== w || d[24] !== M ? (V = mergeRefs(w, M), d[23] = w, d[24] = M, d[25] = V) : V = d[25];
20
- let H = y ? "" : void 0, U;
21
- d[26] !== y || d[27] !== k ? (U = !!y && /* @__PURE__ */ jsx("option", {
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: !k,
23
+ hidden: !A,
24
24
  className: "text-white",
25
25
  value: "",
26
- children: y
27
- }), d[26] = y, d[27] = k, d[28] = U) : U = d[28];
28
- let W;
29
- d[29] !== f || d[30] !== B || d[31] !== h || d[32] !== j || d[33] !== v || d[34] !== C || d[35] !== N || d[36] !== H || d[37] !== U || d[38] !== V ? (W = /* @__PURE__ */ jsxs("select", {
30
- ref: V,
31
- id: v,
32
- name: v,
33
- disabled: j,
34
- className: B,
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: H,
37
- ...C,
38
- ...N,
39
- children: [U, f]
40
- }), d[29] = f, d[30] = B, d[31] = h, d[32] = j, d[33] = v, d[34] = C, d[35] = N, d[36] = H, d[37] = U, d[38] = V, d[39] = W) : W = d[39];
41
- let G = W;
42
- if (_) {
43
- let e = A?.message, l;
44
- return d[40] !== g || d[41] !== _ || d[42] !== v || d[43] !== e || d[44] !== G ? (l = /* @__PURE__ */ jsx(Label_default, {
45
- htmlFor: v,
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: e,
50
- children: G
51
- }), d[40] = g, d[41] = _, d[42] = v, d[43] = e, d[44] = G, d[45] = l) : l = d[45], l;
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 G;
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}
@@ -13,4 +13,5 @@ function clsx() {
13
13
  for (var t, n, i = 0, a = "", o = arguments.length; i < o; i++) (t = arguments[i]) && (n = r(t)) && (a && (a += " "), a += n);
14
14
  return a;
15
15
  }
16
- export { clsx };
16
+ var clsx_default = clsx;
17
+ export { clsx, clsx_default as default };
@@ -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,4 @@
1
+ "use strict";
2
+ "use client";
3
+ var native_default = { randomUUID: typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto) };
4
+ export { native_default 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.3.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: n, props: r }) => {
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(n, {
9
- ...r,
10
- className: cn(e.props?.className, r?.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: n, ...a } = r ?? {}, o = cn(e.props?.className, n);
13
+ let { className: r, ...o } = i ?? {}, s = cn(e.props?.className, r);
14
14
  return cloneElement(e, {
15
- ...a,
16
- className: o
15
+ ...o,
16
+ className: s
17
17
  });
18
18
  }
19
- } else return cloneElement(n, r, e);
20
- else return cloneElement(n, r);
21
- }, isSingleStringChild = (e) => typeof e == "string", colorToOklch = (e, n = !1) => {
22
- let { l: r, c: i, h: a } = colorToOklchc(e);
23
- return n ? `oklch(${r + (r < .5 ? .8 : .4)} ${i - .15} ${a})` : `oklch(${r} ${i} ${a})`;
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 n = e;
183
- if (Object.hasOwn(w3cx11, e.toLowerCase()) && (n = w3cx11[e.toLowerCase()]), !/^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$/.test(n)) return console.error(`Invalid color format: ${e}`), {
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 r = 0, i = 0, a = 0;
189
- n.length === 4 ? (r = Number.parseInt(n[1] + n[1], 16), i = Number.parseInt(n[2] + n[2], 16), a = Number.parseInt(n[3] + n[3], 16)) : n.length === 7 && (r = Number.parseInt(n.slice(1, 3), 16), i = Number.parseInt(n.slice(3, 5), 16), a = Number.parseInt(n.slice(5, 7), 16));
190
- function o(e) {
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(...r) {
202
- return twMerge(clsx(r));
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 };
@@ -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 };