asterui 0.12.76 → 0.12.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Select.d.ts +7 -0
- package/dist/components/Select.js +49 -48
- package/dist/components/Select.js.map +1 -1
- package/dist/components/Toggle.d.ts +3 -1
- package/dist/components/Toggle.js +36 -33
- package/dist/components/Toggle.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
+
export interface SelectOption {
|
|
3
|
+
label: React.ReactNode;
|
|
4
|
+
value: string | number;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
2
7
|
export interface SelectProps extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'size'> {
|
|
3
8
|
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
4
9
|
color?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error';
|
|
@@ -12,6 +17,8 @@ export interface SelectProps extends Omit<React.SelectHTMLAttributes<HTMLSelectE
|
|
|
12
17
|
addonBefore?: React.ReactNode;
|
|
13
18
|
/** Text/element after select (outside, using DaisyUI label) */
|
|
14
19
|
addonAfter?: React.ReactNode;
|
|
20
|
+
/** Select options array (recommended for better performance) */
|
|
21
|
+
options?: SelectOption[];
|
|
15
22
|
className?: string;
|
|
16
23
|
children?: React.ReactNode;
|
|
17
24
|
'data-testid'?: string;
|
|
@@ -1,88 +1,89 @@
|
|
|
1
1
|
import { jsx as c, jsxs as w } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef as
|
|
3
|
-
import { useConfig as
|
|
4
|
-
const i = "select", f = "select-bordered",
|
|
2
|
+
import { forwardRef as F, useRef as G } from "react";
|
|
3
|
+
import { useConfig as M } from "../providers/ConfigProvider.js";
|
|
4
|
+
const i = "select", f = "select-bordered", O = "select-ghost", P = "select-xs", k = "select-sm", q = "select-md", A = "select-lg", D = "select-xl", H = "select-neutral", J = "select-primary", K = "select-secondary", L = "select-accent", Q = "select-info", U = "select-success", y = "select-warning", N = "select-error", V = "floating-label", Y = F(
|
|
5
5
|
({
|
|
6
6
|
size: j,
|
|
7
7
|
color: m,
|
|
8
|
-
status:
|
|
9
|
-
ghost:
|
|
10
|
-
bordered:
|
|
8
|
+
status: u,
|
|
9
|
+
ghost: R = !1,
|
|
10
|
+
bordered: $ = !0,
|
|
11
11
|
floatingLabel: l,
|
|
12
12
|
addonBefore: n,
|
|
13
13
|
addonAfter: o,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
14
|
+
options: S,
|
|
15
|
+
className: g = "",
|
|
16
|
+
children: z,
|
|
17
|
+
"data-testid": s,
|
|
18
|
+
...h
|
|
19
|
+
}, B) => {
|
|
20
|
+
const { componentSize: E } = M(), t = j ?? E ?? "md", p = () => S ? S.map((e) => /* @__PURE__ */ c("option", { value: e.value, disabled: e.disabled, children: e.label }, e.value)) : z, T = G(null), b = B || T, a = {
|
|
21
|
+
xs: P,
|
|
22
|
+
sm: k,
|
|
23
|
+
md: q,
|
|
24
|
+
lg: A,
|
|
25
|
+
xl: D
|
|
26
|
+
}, x = u ? {
|
|
26
27
|
error: N,
|
|
27
28
|
warning: y
|
|
28
|
-
}[
|
|
29
|
-
neutral:
|
|
30
|
-
primary:
|
|
31
|
-
secondary:
|
|
32
|
-
accent:
|
|
33
|
-
info:
|
|
34
|
-
success:
|
|
29
|
+
}[u] : m ? {
|
|
30
|
+
neutral: H,
|
|
31
|
+
primary: J,
|
|
32
|
+
secondary: K,
|
|
33
|
+
accent: L,
|
|
34
|
+
info: Q,
|
|
35
|
+
success: U,
|
|
35
36
|
warning: y,
|
|
36
37
|
error: N
|
|
37
|
-
}[m] : "", r = n || o,
|
|
38
|
+
}[m] : "", r = n || o, W = r || !!l, d = (e) => s ? `${s}-${e}` : void 0, C = s ? W ? d("select") : s : void 0, X = r ? ["grow", "bg-transparent", "border-0", "outline-none", "focus:outline-none", g].filter(Boolean).join(" ") : [
|
|
38
39
|
i,
|
|
39
40
|
"w-full",
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
].filter(Boolean).join(" "),
|
|
41
|
+
$ && f,
|
|
42
|
+
R && O,
|
|
43
|
+
t && a[t],
|
|
44
|
+
x,
|
|
45
|
+
g
|
|
46
|
+
].filter(Boolean).join(" "), v = /* @__PURE__ */ c("select", { ref: b, className: X, "data-testid": C, ...h, children: p() });
|
|
46
47
|
if (l) {
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
const e = [
|
|
49
|
+
V,
|
|
50
|
+
t && a[t]
|
|
50
51
|
].filter(Boolean).join(" ");
|
|
51
|
-
return /* @__PURE__ */ w("label", { className:
|
|
52
|
+
return /* @__PURE__ */ w("label", { className: e, "data-testid": s, children: [
|
|
52
53
|
/* @__PURE__ */ c(
|
|
53
54
|
"select",
|
|
54
55
|
{
|
|
55
|
-
ref:
|
|
56
|
+
ref: b,
|
|
56
57
|
className: `${i} ${f} w-full`,
|
|
57
|
-
"data-testid":
|
|
58
|
-
...
|
|
59
|
-
children:
|
|
58
|
+
"data-testid": C,
|
|
59
|
+
...h,
|
|
60
|
+
children: p()
|
|
60
61
|
}
|
|
61
62
|
),
|
|
62
63
|
/* @__PURE__ */ c("span", { children: l })
|
|
63
64
|
] });
|
|
64
65
|
}
|
|
65
66
|
if (r) {
|
|
66
|
-
const
|
|
67
|
+
const e = [
|
|
67
68
|
i,
|
|
68
69
|
f,
|
|
69
70
|
"flex",
|
|
70
71
|
"items-center",
|
|
71
72
|
"gap-2",
|
|
72
|
-
|
|
73
|
-
|
|
73
|
+
t && a[t],
|
|
74
|
+
x
|
|
74
75
|
].filter(Boolean).join(" ");
|
|
75
|
-
return /* @__PURE__ */ w("label", { className:
|
|
76
|
+
return /* @__PURE__ */ w("label", { className: e, "data-testid": s, children: [
|
|
76
77
|
n && /* @__PURE__ */ c("span", { className: "text-base-content/70", "data-testid": d("addon-before"), children: n }),
|
|
77
|
-
|
|
78
|
+
v,
|
|
78
79
|
o && /* @__PURE__ */ c("span", { className: "text-base-content/70", "data-testid": d("addon-after"), children: o })
|
|
79
80
|
] });
|
|
80
81
|
}
|
|
81
|
-
return
|
|
82
|
+
return v;
|
|
82
83
|
}
|
|
83
84
|
);
|
|
84
|
-
|
|
85
|
+
Y.displayName = "Select";
|
|
85
86
|
export {
|
|
86
|
-
|
|
87
|
+
Y as Select
|
|
87
88
|
};
|
|
88
89
|
//# sourceMappingURL=Select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sources":["../../src/components/Select.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react'\nimport { useConfig } from '../providers/ConfigProvider'\n\n// DaisyUI classes\nconst dSelect = 'select'\nconst dSelectBordered = 'select-bordered'\nconst dSelectGhost = 'select-ghost'\nconst dSelectXs = 'select-xs'\nconst dSelectSm = 'select-sm'\nconst dSelectMd = 'select-md'\nconst dSelectLg = 'select-lg'\nconst dSelectXl = 'select-xl'\nconst dSelectNeutral = 'select-neutral'\nconst dSelectPrimary = 'select-primary'\nconst dSelectSecondary = 'select-secondary'\nconst dSelectAccent = 'select-accent'\nconst dSelectInfo = 'select-info'\nconst dSelectSuccess = 'select-success'\nconst dSelectWarning = 'select-warning'\nconst dSelectError = 'select-error'\nconst dFloatingLabel = 'floating-label'\n\nexport interface SelectProps extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'size'> {\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n color?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error'\n /** Validation status */\n status?: 'error' | 'warning'\n ghost?: boolean\n bordered?: boolean\n /** Floating label text (uses DaisyUI floating-label) */\n floatingLabel?: string\n /** Text/element before select (outside, using DaisyUI label) */\n addonBefore?: React.ReactNode\n /** Text/element after select (outside, using DaisyUI label) */\n addonAfter?: React.ReactNode\n className?: string\n children?: React.ReactNode\n 'data-testid'?: string\n}\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n (\n {\n size,\n color,\n status,\n ghost = false,\n bordered = true,\n floatingLabel,\n addonBefore,\n addonAfter,\n className = '',\n children,\n 'data-testid': testId,\n ...props\n },\n ref\n ) => {\n const { componentSize } = useConfig()\n const effectiveSize = size ?? componentSize ?? 'md'\n\n const innerRef = useRef<HTMLSelectElement>(null)\n const selectRef = (ref as React.RefObject<HTMLSelectElement>) || innerRef\n\n const sizeClasses = {\n xs: dSelectXs,\n sm: dSelectSm,\n md: dSelectMd,\n lg: dSelectLg,\n xl: dSelectXl,\n }\n\n const colorClasses = {\n neutral: dSelectNeutral,\n primary: dSelectPrimary,\n secondary: dSelectSecondary,\n accent: dSelectAccent,\n info: dSelectInfo,\n success: dSelectSuccess,\n warning: dSelectWarning,\n error: dSelectError,\n }\n\n const statusClasses = {\n error: dSelectError,\n warning: dSelectWarning,\n }\n\n // Status takes precedence over color for validation feedback\n const effectiveColorClass = status ? statusClasses[status] : (color ? colorClasses[color] : '')\n\n // When wrapped with external addons, the wrapper has the styling\n const hasExternalAddons = addonBefore || addonAfter\n const hasWrapper = hasExternalAddons || !!floatingLabel\n const getTestId = (suffix: string) => (testId ? `${testId}-${suffix}` : undefined)\n const selectTestId = testId ? (hasWrapper ? getTestId('select') : testId) : undefined\n\n const selectClasses = hasExternalAddons\n ? ['grow', 'bg-transparent', 'border-0', 'outline-none', 'focus:outline-none', className].filter(Boolean).join(' ')\n : [\n dSelect,\n 'w-full',\n bordered && dSelectBordered,\n ghost && dSelectGhost,\n effectiveSize && sizeClasses[effectiveSize],\n effectiveColorClass,\n className,\n ].filter(Boolean).join(' ')\n\n // Build the core select element\n const selectElement = (\n <select ref={selectRef} className={selectClasses} data-testid={selectTestId} {...props}>\n {
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../src/components/Select.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react'\nimport { useConfig } from '../providers/ConfigProvider'\n\n// DaisyUI classes\nconst dSelect = 'select'\nconst dSelectBordered = 'select-bordered'\nconst dSelectGhost = 'select-ghost'\nconst dSelectXs = 'select-xs'\nconst dSelectSm = 'select-sm'\nconst dSelectMd = 'select-md'\nconst dSelectLg = 'select-lg'\nconst dSelectXl = 'select-xl'\nconst dSelectNeutral = 'select-neutral'\nconst dSelectPrimary = 'select-primary'\nconst dSelectSecondary = 'select-secondary'\nconst dSelectAccent = 'select-accent'\nconst dSelectInfo = 'select-info'\nconst dSelectSuccess = 'select-success'\nconst dSelectWarning = 'select-warning'\nconst dSelectError = 'select-error'\nconst dFloatingLabel = 'floating-label'\n\nexport interface SelectOption {\n label: React.ReactNode\n value: string | number\n disabled?: boolean\n}\n\nexport interface SelectProps extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'size'> {\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n color?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error'\n /** Validation status */\n status?: 'error' | 'warning'\n ghost?: boolean\n bordered?: boolean\n /** Floating label text (uses DaisyUI floating-label) */\n floatingLabel?: string\n /** Text/element before select (outside, using DaisyUI label) */\n addonBefore?: React.ReactNode\n /** Text/element after select (outside, using DaisyUI label) */\n addonAfter?: React.ReactNode\n /** Select options array (recommended for better performance) */\n options?: SelectOption[]\n className?: string\n children?: React.ReactNode\n 'data-testid'?: string\n}\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n (\n {\n size,\n color,\n status,\n ghost = false,\n bordered = true,\n floatingLabel,\n addonBefore,\n addonAfter,\n options,\n className = '',\n children,\n 'data-testid': testId,\n ...props\n },\n ref\n ) => {\n const { componentSize } = useConfig()\n const effectiveSize = size ?? componentSize ?? 'md'\n\n // Render options from array or use children\n const renderOptions = () => {\n if (options) {\n return options.map((option) => (\n <option key={option.value} value={option.value} disabled={option.disabled}>\n {option.label}\n </option>\n ))\n }\n return children\n }\n\n const innerRef = useRef<HTMLSelectElement>(null)\n const selectRef = (ref as React.RefObject<HTMLSelectElement>) || innerRef\n\n const sizeClasses = {\n xs: dSelectXs,\n sm: dSelectSm,\n md: dSelectMd,\n lg: dSelectLg,\n xl: dSelectXl,\n }\n\n const colorClasses = {\n neutral: dSelectNeutral,\n primary: dSelectPrimary,\n secondary: dSelectSecondary,\n accent: dSelectAccent,\n info: dSelectInfo,\n success: dSelectSuccess,\n warning: dSelectWarning,\n error: dSelectError,\n }\n\n const statusClasses = {\n error: dSelectError,\n warning: dSelectWarning,\n }\n\n // Status takes precedence over color for validation feedback\n const effectiveColorClass = status ? statusClasses[status] : (color ? colorClasses[color] : '')\n\n // When wrapped with external addons, the wrapper has the styling\n const hasExternalAddons = addonBefore || addonAfter\n const hasWrapper = hasExternalAddons || !!floatingLabel\n const getTestId = (suffix: string) => (testId ? `${testId}-${suffix}` : undefined)\n const selectTestId = testId ? (hasWrapper ? getTestId('select') : testId) : undefined\n\n const selectClasses = hasExternalAddons\n ? ['grow', 'bg-transparent', 'border-0', 'outline-none', 'focus:outline-none', className].filter(Boolean).join(' ')\n : [\n dSelect,\n 'w-full',\n bordered && dSelectBordered,\n ghost && dSelectGhost,\n effectiveSize && sizeClasses[effectiveSize],\n effectiveColorClass,\n className,\n ].filter(Boolean).join(' ')\n\n // Build the core select element\n const selectElement = (\n <select ref={selectRef} className={selectClasses} data-testid={selectTestId} {...props}>\n {renderOptions()}\n </select>\n )\n\n // Wrap with floating label if specified\n if (floatingLabel) {\n const floatingClasses = [\n dFloatingLabel,\n effectiveSize && sizeClasses[effectiveSize],\n ].filter(Boolean).join(' ')\n\n return (\n <label className={floatingClasses} data-testid={testId}>\n <select\n ref={selectRef}\n className={`${dSelect} ${dSelectBordered} w-full`}\n data-testid={selectTestId}\n {...props}\n >\n {renderOptions()}\n </select>\n <span>{floatingLabel}</span>\n </label>\n )\n }\n\n // Wrap with external addons if specified\n if (hasExternalAddons) {\n const addonClasses = [\n dSelect,\n dSelectBordered,\n 'flex',\n 'items-center',\n 'gap-2',\n effectiveSize && sizeClasses[effectiveSize],\n effectiveColorClass,\n ].filter(Boolean).join(' ')\n\n return (\n <label className={addonClasses} data-testid={testId}>\n {addonBefore && (\n <span className=\"text-base-content/70\" data-testid={getTestId('addon-before')}>\n {addonBefore}\n </span>\n )}\n {selectElement}\n {addonAfter && (\n <span className=\"text-base-content/70\" data-testid={getTestId('addon-after')}>\n {addonAfter}\n </span>\n )}\n </label>\n )\n }\n\n return selectElement\n }\n)\n\nSelect.displayName = 'Select'\n"],"names":["dSelect","dSelectBordered","dSelectGhost","dSelectXs","dSelectSm","dSelectMd","dSelectLg","dSelectXl","dSelectNeutral","dSelectPrimary","dSelectSecondary","dSelectAccent","dSelectInfo","dSelectSuccess","dSelectWarning","dSelectError","dFloatingLabel","Select","forwardRef","size","color","status","ghost","bordered","floatingLabel","addonBefore","addonAfter","options","className","children","testId","props","ref","componentSize","useConfig","effectiveSize","renderOptions","option","jsx","innerRef","useRef","selectRef","sizeClasses","effectiveColorClass","hasExternalAddons","hasWrapper","getTestId","suffix","selectTestId","selectClasses","selectElement","floatingClasses","jsxs","addonClasses"],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
export interface ToggleProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
|
|
2
|
+
export interface ToggleProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'onChange'> {
|
|
3
3
|
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
4
4
|
color?: 'primary' | 'secondary' | 'accent' | 'neutral' | 'success' | 'warning' | 'info' | 'error';
|
|
5
5
|
className?: string;
|
|
6
6
|
/** Test ID for testing */
|
|
7
7
|
'data-testid'?: string;
|
|
8
|
+
/** Callback fired when the checked state changes */
|
|
9
|
+
onChange?: (checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
8
10
|
}
|
|
9
11
|
export declare const Toggle: React.ForwardRefExoticComponent<ToggleProps & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -1,39 +1,42 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { forwardRef as
|
|
3
|
-
import { useConfig as
|
|
4
|
-
const
|
|
1
|
+
import { jsx as f } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as u } from "react";
|
|
3
|
+
import { useConfig as h } from "../providers/ConfigProvider.js";
|
|
4
|
+
const p = "toggle", y = "toggle-xs", x = "toggle-sm", C = "toggle-md", S = "toggle-lg", k = "toggle-xl", w = "toggle-primary", z = "toggle-secondary", N = "toggle-accent", j = "toggle-neutral", X = "toggle-success", b = "toggle-warning", A = "toggle-info", B = "toggle-error", E = u(
|
|
5
5
|
({
|
|
6
|
-
size:
|
|
7
|
-
color:
|
|
8
|
-
className:
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
6
|
+
size: s,
|
|
7
|
+
color: e,
|
|
8
|
+
className: c = "",
|
|
9
|
+
onChange: n,
|
|
10
|
+
...o
|
|
11
|
+
}, l) => {
|
|
12
|
+
const { componentSize: r } = h(), g = s ?? r ?? "md", a = {
|
|
13
|
+
xs: y,
|
|
14
|
+
sm: x,
|
|
15
|
+
md: C,
|
|
16
|
+
lg: S,
|
|
17
|
+
xl: k
|
|
18
|
+
}, d = {
|
|
19
|
+
primary: w,
|
|
20
|
+
secondary: z,
|
|
21
|
+
accent: N,
|
|
22
|
+
neutral: j,
|
|
23
|
+
success: X,
|
|
24
|
+
warning: b,
|
|
25
|
+
info: A,
|
|
26
|
+
error: B
|
|
27
|
+
}, i = [
|
|
28
|
+
p,
|
|
29
|
+
g && a[g],
|
|
30
|
+
e && d[e],
|
|
31
|
+
c
|
|
32
|
+
].filter(Boolean).join(" "), m = (t) => {
|
|
33
|
+
n?.(t.target.checked, t);
|
|
34
|
+
}, T = o.checked ? "checked" : "unchecked";
|
|
35
|
+
return /* @__PURE__ */ f("input", { ref: l, type: "checkbox", className: i, "data-state": T, ...o, onChange: m });
|
|
33
36
|
}
|
|
34
37
|
);
|
|
35
|
-
|
|
38
|
+
E.displayName = "Toggle";
|
|
36
39
|
export {
|
|
37
|
-
|
|
40
|
+
E as Toggle
|
|
38
41
|
};
|
|
39
42
|
//# sourceMappingURL=Toggle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toggle.js","sources":["../../src/components/Toggle.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\nimport { useConfig } from '../providers/ConfigProvider'\n\n// DaisyUI classes\nconst dToggle = 'toggle'\nconst dToggleXs = 'toggle-xs'\nconst dToggleSm = 'toggle-sm'\nconst dToggleMd = 'toggle-md'\nconst dToggleLg = 'toggle-lg'\nconst dToggleXl = 'toggle-xl'\nconst dTogglePrimary = 'toggle-primary'\nconst dToggleSecondary = 'toggle-secondary'\nconst dToggleAccent = 'toggle-accent'\nconst dToggleNeutral = 'toggle-neutral'\nconst dToggleSuccess = 'toggle-success'\nconst dToggleWarning = 'toggle-warning'\nconst dToggleInfo = 'toggle-info'\nconst dToggleError = 'toggle-error'\n\nexport interface ToggleProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n color?: 'primary' | 'secondary' | 'accent' | 'neutral' | 'success' | 'warning' | 'info' | 'error'\n className?: string\n /** Test ID for testing */\n 'data-testid'?: string\n}\n\nexport const Toggle = forwardRef<HTMLInputElement, ToggleProps>(\n (\n {\n size,\n color,\n className = '',\n ...props\n },\n ref\n ) => {\n const { componentSize } = useConfig()\n const effectiveSize = size ?? componentSize ?? 'md'\n\n const sizeClasses = {\n xs: dToggleXs,\n sm: dToggleSm,\n md: dToggleMd,\n lg: dToggleLg,\n xl: dToggleXl,\n }\n\n const colorClasses = {\n primary: dTogglePrimary,\n secondary: dToggleSecondary,\n accent: dToggleAccent,\n neutral: dToggleNeutral,\n success: dToggleSuccess,\n warning: dToggleWarning,\n info: dToggleInfo,\n error: dToggleError,\n }\n\n const toggleClasses = [\n dToggle,\n effectiveSize && sizeClasses[effectiveSize],\n color && colorClasses[color],\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n const dataState = props.checked ? 'checked' : 'unchecked'\n return <input ref={ref} type=\"checkbox\" className={toggleClasses} data-state={dataState} {...props} />\n }\n)\n\nToggle.displayName = 'Toggle'\n"],"names":["dToggle","dToggleXs","dToggleSm","dToggleMd","dToggleLg","dToggleXl","dTogglePrimary","dToggleSecondary","dToggleAccent","dToggleNeutral","dToggleSuccess","dToggleWarning","dToggleInfo","dToggleError","Toggle","forwardRef","size","color","className","props","ref","componentSize","useConfig","effectiveSize","sizeClasses","colorClasses","toggleClasses","dataState","jsx"],"mappings":";;;AAIA,MAAMA,IAAU,UACVC,IAAY,aACZC,IAAY,aACZC,IAAY,aACZC,IAAY,aACZC,IAAY,aACZC,IAAiB,kBACjBC,IAAmB,oBACnBC,IAAgB,iBAChBC,IAAiB,kBACjBC,IAAiB,kBACjBC,IAAiB,kBACjBC,IAAc,eACdC,IAAe,
|
|
1
|
+
{"version":3,"file":"Toggle.js","sources":["../../src/components/Toggle.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\nimport { useConfig } from '../providers/ConfigProvider'\n\n// DaisyUI classes\nconst dToggle = 'toggle'\nconst dToggleXs = 'toggle-xs'\nconst dToggleSm = 'toggle-sm'\nconst dToggleMd = 'toggle-md'\nconst dToggleLg = 'toggle-lg'\nconst dToggleXl = 'toggle-xl'\nconst dTogglePrimary = 'toggle-primary'\nconst dToggleSecondary = 'toggle-secondary'\nconst dToggleAccent = 'toggle-accent'\nconst dToggleNeutral = 'toggle-neutral'\nconst dToggleSuccess = 'toggle-success'\nconst dToggleWarning = 'toggle-warning'\nconst dToggleInfo = 'toggle-info'\nconst dToggleError = 'toggle-error'\n\nexport interface ToggleProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'onChange'> {\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n color?: 'primary' | 'secondary' | 'accent' | 'neutral' | 'success' | 'warning' | 'info' | 'error'\n className?: string\n /** Test ID for testing */\n 'data-testid'?: string\n /** Callback fired when the checked state changes */\n onChange?: (checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void\n}\n\nexport const Toggle = forwardRef<HTMLInputElement, ToggleProps>(\n (\n {\n size,\n color,\n className = '',\n onChange,\n ...props\n },\n ref\n ) => {\n const { componentSize } = useConfig()\n const effectiveSize = size ?? componentSize ?? 'md'\n\n const sizeClasses = {\n xs: dToggleXs,\n sm: dToggleSm,\n md: dToggleMd,\n lg: dToggleLg,\n xl: dToggleXl,\n }\n\n const colorClasses = {\n primary: dTogglePrimary,\n secondary: dToggleSecondary,\n accent: dToggleAccent,\n neutral: dToggleNeutral,\n success: dToggleSuccess,\n warning: dToggleWarning,\n info: dToggleInfo,\n error: dToggleError,\n }\n\n const toggleClasses = [\n dToggle,\n effectiveSize && sizeClasses[effectiveSize],\n color && colorClasses[color],\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event.target.checked, event)\n }\n\n const dataState = props.checked ? 'checked' : 'unchecked'\n return <input ref={ref} type=\"checkbox\" className={toggleClasses} data-state={dataState} {...props} onChange={handleChange} />\n }\n)\n\nToggle.displayName = 'Toggle'\n"],"names":["dToggle","dToggleXs","dToggleSm","dToggleMd","dToggleLg","dToggleXl","dTogglePrimary","dToggleSecondary","dToggleAccent","dToggleNeutral","dToggleSuccess","dToggleWarning","dToggleInfo","dToggleError","Toggle","forwardRef","size","color","className","onChange","props","ref","componentSize","useConfig","effectiveSize","sizeClasses","colorClasses","toggleClasses","handleChange","event","dataState","jsx"],"mappings":";;;AAIA,MAAMA,IAAU,UACVC,IAAY,aACZC,IAAY,aACZC,IAAY,aACZC,IAAY,aACZC,IAAY,aACZC,IAAiB,kBACjBC,IAAmB,oBACnBC,IAAgB,iBAChBC,IAAiB,kBACjBC,IAAiB,kBACjBC,IAAiB,kBACjBC,IAAc,eACdC,IAAe,gBAYRC,IAASC;AAAA,EACpB,CACE;AAAA,IACE,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,UAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAM,EAAE,eAAAC,EAAA,IAAkBC,EAAA,GACpBC,IAAgBR,KAAQM,KAAiB,MAEzCG,IAAc;AAAA,MAClB,IAAIxB;AAAA,MACJ,IAAIC;AAAA,MACJ,IAAIC;AAAA,MACJ,IAAIC;AAAA,MACJ,IAAIC;AAAA,IAAA,GAGAqB,IAAe;AAAA,MACnB,SAASpB;AAAA,MACT,WAAWC;AAAA,MACX,QAAQC;AAAA,MACR,SAASC;AAAA,MACT,SAASC;AAAA,MACT,SAASC;AAAA,MACT,MAAMC;AAAA,MACN,OAAOC;AAAA,IAAA,GAGHc,IAAgB;AAAA,MACpB3B;AAAA,MACAwB,KAAiBC,EAAYD,CAAa;AAAA,MAC1CP,KAASS,EAAaT,CAAK;AAAA,MAC3BC;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,GAELU,IAAe,CAACC,MAA+C;AACnE,MAAAV,IAAWU,EAAM,OAAO,SAASA,CAAK;AAAA,IACxC,GAEMC,IAAYV,EAAM,UAAU,YAAY;AAC9C,WAAO,gBAAAW,EAAC,SAAA,EAAM,KAAAV,GAAU,MAAK,YAAW,WAAWM,GAAe,cAAYG,GAAY,GAAGV,GAAO,UAAUQ,EAAA,CAAc;AAAA,EAC9H;AACF;AAEAd,EAAO,cAAc;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -151,7 +151,7 @@ export type { RatingProps, RatingItemProps } from './components/Rating';
|
|
|
151
151
|
export { Result } from './components/Result';
|
|
152
152
|
export type { ResultProps, ResultStatus } from './components/Result';
|
|
153
153
|
export { Select } from './components/Select';
|
|
154
|
-
export type { SelectProps } from './components/Select';
|
|
154
|
+
export type { SelectProps, SelectOption } from './components/Select';
|
|
155
155
|
export { Segmented } from './components/Segmented';
|
|
156
156
|
export type { SegmentedProps, SegmentedItemProps, SegmentedValue } from './components/Segmented';
|
|
157
157
|
export { Skeleton } from './components/Skeleton';
|