asterui 0.12.62 → 0.12.64
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/Anchor.d.ts +2 -0
- package/dist/components/Anchor.js +79 -75
- package/dist/components/Anchor.js.map +1 -1
- package/dist/components/Autocomplete.d.ts +1 -0
- package/dist/components/Autocomplete.js +115 -110
- package/dist/components/Autocomplete.js.map +1 -1
- package/dist/components/Breadcrumb.d.ts +4 -2
- package/dist/components/Breadcrumb.js +54 -29
- package/dist/components/Breadcrumb.js.map +1 -1
- package/dist/components/Button.d.ts +5 -1
- package/dist/components/Button.js +117 -107
- package/dist/components/Button.js.map +1 -1
- package/dist/components/Chart.d.ts +1 -0
- package/dist/components/Chart.js +31 -30
- package/dist/components/Chart.js.map +1 -1
- package/dist/components/Chat.d.ts +1 -0
- package/dist/components/Chat.js +32 -30
- package/dist/components/Chat.js.map +1 -1
- package/dist/components/Collapse.js +58 -56
- package/dist/components/Collapse.js.map +1 -1
- package/dist/components/Command.d.ts +5 -2
- package/dist/components/Command.js +262 -233
- package/dist/components/Command.js.map +1 -1
- package/dist/components/ContextMenu.d.ts +4 -0
- package/dist/components/ContextMenu.js +149 -130
- package/dist/components/ContextMenu.js.map +1 -1
- package/dist/components/DatePicker.d.ts +19 -1
- package/dist/components/DatePicker.js +266 -87
- package/dist/components/DatePicker.js.map +1 -1
- package/dist/components/Dock.d.ts +2 -0
- package/dist/components/Dock.js +70 -46
- package/dist/components/Dock.js.map +1 -1
- package/dist/components/FileInput.d.ts +1 -0
- package/dist/components/FileInput.js +26 -26
- package/dist/components/FileInput.js.map +1 -1
- package/dist/components/Filter.d.ts +1 -0
- package/dist/components/Filter.js +43 -40
- package/dist/components/Filter.js.map +1 -1
- package/dist/components/Flex.d.ts +1 -0
- package/dist/components/Flex.js +43 -42
- package/dist/components/Flex.js.map +1 -1
- package/dist/components/FloatButton.d.ts +3 -0
- package/dist/components/FloatButton.js +178 -127
- package/dist/components/FloatButton.js.map +1 -1
- package/dist/components/Input.d.ts +1 -0
- package/dist/components/Input.js +201 -184
- package/dist/components/Input.js.map +1 -1
- package/dist/components/Loading.d.ts +1 -0
- package/dist/components/Loading.js +40 -37
- package/dist/components/Loading.js.map +1 -1
- package/dist/components/Masonry.d.ts +1 -0
- package/dist/components/Masonry.js +45 -42
- package/dist/components/Masonry.js.map +1 -1
- package/dist/components/Mention.d.ts +1 -0
- package/dist/components/Mention.js +95 -91
- package/dist/components/Mention.js.map +1 -1
- package/dist/components/Menu.d.ts +1 -1
- package/dist/components/Menu.js +99 -93
- package/dist/components/Menu.js.map +1 -1
- package/dist/components/Modal.js +26 -17
- package/dist/components/Modal.js.map +1 -1
- package/dist/components/MonthCalendar.d.ts +1 -0
- package/dist/components/MonthCalendar.js +104 -97
- package/dist/components/MonthCalendar.js.map +1 -1
- package/dist/components/Notification.js +53 -45
- package/dist/components/Notification.js.map +1 -1
- package/dist/components/QRCode.d.ts +1 -0
- package/dist/components/QRCode.js +84 -55
- package/dist/components/QRCode.js.map +1 -1
- package/dist/components/RadialProgress.d.ts +1 -0
- package/dist/components/RadialProgress.js +19 -17
- package/dist/components/RadialProgress.js.map +1 -1
- package/dist/components/Range.d.ts +1 -0
- package/dist/components/Range.js +45 -43
- package/dist/components/Range.js.map +1 -1
- package/dist/components/Rating.d.ts +4 -2
- package/dist/components/Rating.js +83 -79
- package/dist/components/Rating.js.map +1 -1
- package/dist/components/Responsive.d.ts +4 -2
- package/dist/components/Responsive.js +10 -9
- package/dist/components/Responsive.js.map +1 -1
- package/dist/components/Result.d.ts +1 -0
- package/dist/components/Result.js +24 -22
- package/dist/components/Result.js.map +1 -1
- package/dist/components/Select.d.ts +1 -0
- package/dist/components/Select.js +72 -62
- package/dist/components/Select.js.map +1 -1
- package/dist/components/Splitter.d.ts +2 -0
- package/dist/components/Splitter.js +137 -131
- package/dist/components/Splitter.js.map +1 -1
- package/dist/components/Stat.d.ts +4 -2
- package/dist/components/Stat.js +19 -18
- package/dist/components/Stat.js.map +1 -1
- package/dist/components/Steps.d.ts +4 -2
- package/dist/components/Steps.js +56 -52
- package/dist/components/Steps.js.map +1 -1
- package/dist/components/Tabs.js +69 -57
- package/dist/components/Tabs.js.map +1 -1
- package/dist/components/TextRotate.d.ts +1 -0
- package/dist/components/TextRotate.js +14 -12
- package/dist/components/TextRotate.js.map +1 -1
- package/dist/components/Textarea.d.ts +1 -0
- package/dist/components/Textarea.js +31 -30
- package/dist/components/Textarea.js.map +1 -1
- package/dist/components/ThemeController.d.ts +6 -3
- package/dist/components/ThemeController.js +101 -92
- package/dist/components/ThemeController.js.map +1 -1
- package/dist/components/Tooltip.js +38 -35
- package/dist/components/Tooltip.js.map +1 -1
- package/dist/components/Transfer.js +130 -121
- package/dist/components/Transfer.js.map +1 -1
- package/dist/components/TreeSelect.js +49 -48
- package/dist/components/TreeSelect.js.map +1 -1
- package/dist/components/Typography.d.ts +10 -5
- package/dist/components/Typography.js +84 -81
- package/dist/components/Typography.js.map +1 -1
- package/dist/components/VirtualList.d.ts +2 -1
- package/dist/components/VirtualList.js +40 -36
- package/dist/components/VirtualList.js.map +1 -1
- package/dist/components/Watermark.d.ts +1 -0
- package/dist/components/Watermark.js +74 -71
- package/dist/components/Watermark.js.map +1 -1
- package/dist/components/WeekCalendar.d.ts +1 -0
- package/dist/components/WeekCalendar.js +91 -76
- package/dist/components/WeekCalendar.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@ import { default as React } from 'react';
|
|
|
2
2
|
export interface StatsProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
3
|
children: React.ReactNode;
|
|
4
4
|
vertical?: boolean;
|
|
5
|
+
'data-testid'?: string;
|
|
5
6
|
}
|
|
6
7
|
export interface StatProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
7
8
|
title?: React.ReactNode;
|
|
@@ -9,9 +10,10 @@ export interface StatProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 't
|
|
|
9
10
|
desc?: React.ReactNode;
|
|
10
11
|
figure?: React.ReactNode;
|
|
11
12
|
actions?: React.ReactNode;
|
|
13
|
+
'data-testid'?: string;
|
|
12
14
|
}
|
|
13
|
-
declare function StatsRoot({ children, className, vertical, ...rest }: StatsProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
-
declare function StatItem({ title, value, desc, figure, actions, className, ...rest }: StatProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
declare function StatsRoot({ children, className, vertical, 'data-testid': testId, ...rest }: StatsProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
declare function StatItem({ title, value, desc, figure, actions, className, 'data-testid': testId, ...rest }: StatProps): import("react/jsx-runtime").JSX.Element;
|
|
15
17
|
export declare const Stats: typeof StatsRoot & {
|
|
16
18
|
Stat: typeof StatItem;
|
|
17
19
|
};
|
package/dist/components/Stat.js
CHANGED
|
@@ -1,26 +1,27 @@
|
|
|
1
|
-
import { jsx as t, jsxs as
|
|
2
|
-
const
|
|
3
|
-
function
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { jsx as t, jsxs as S } from "react/jsx-runtime";
|
|
2
|
+
const m = "stats", v = "stats-horizontal", u = "stats-vertical", h = "stat", N = "stat-figure", f = "stat-title", g = "stat-value", j = "stat-desc", $ = "stat-actions";
|
|
3
|
+
function x({ children: s, className: d = "", vertical: e = !1, "data-testid": i, ...c }) {
|
|
4
|
+
const n = [
|
|
5
|
+
m,
|
|
6
|
+
e ? u : v,
|
|
7
|
+
d
|
|
8
8
|
].filter(Boolean).join(" ");
|
|
9
|
-
return /* @__PURE__ */ t("div", { className:
|
|
9
|
+
return /* @__PURE__ */ t("div", { className: n, "data-testid": i, ...c, children: s });
|
|
10
10
|
}
|
|
11
|
-
function
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
e && /* @__PURE__ */ t("div", { className:
|
|
11
|
+
function p({ title: s, value: d, desc: e, figure: i, actions: c, className: n = "", "data-testid": o, ...l }) {
|
|
12
|
+
const a = (r) => o ? `${o}-${r}` : void 0;
|
|
13
|
+
return /* @__PURE__ */ S("div", { className: `${h} ${n}`, "data-testid": o, ...l, children: [
|
|
14
|
+
i && /* @__PURE__ */ t("div", { className: N, "data-testid": a("figure"), children: i }),
|
|
15
|
+
s && /* @__PURE__ */ t("div", { className: f, "data-testid": a("title"), children: s }),
|
|
16
|
+
d && /* @__PURE__ */ t("div", { className: g, "data-testid": a("value"), children: d }),
|
|
17
|
+
e && /* @__PURE__ */ t("div", { className: j, "data-testid": a("desc"), children: e }),
|
|
18
|
+
c && /* @__PURE__ */ t("div", { className: $, "data-testid": a("actions"), children: c })
|
|
18
19
|
] });
|
|
19
20
|
}
|
|
20
|
-
const
|
|
21
|
-
Stat:
|
|
21
|
+
const T = Object.assign(x, {
|
|
22
|
+
Stat: p
|
|
22
23
|
});
|
|
23
24
|
export {
|
|
24
|
-
|
|
25
|
+
T as Stats
|
|
25
26
|
};
|
|
26
27
|
//# sourceMappingURL=Stat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stat.js","sources":["../../src/components/Stat.tsx"],"sourcesContent":["import React from 'react'\n\n// DaisyUI classes\nconst dStats = 'stats'\nconst dStatsHorizontal = 'stats-horizontal'\nconst dStatsVertical = 'stats-vertical'\nconst dStat = 'stat'\nconst dStatFigure = 'stat-figure'\nconst dStatTitle = 'stat-title'\nconst dStatValue = 'stat-value'\nconst dStatDesc = 'stat-desc'\nconst dStatActions = 'stat-actions'\n\nexport interface StatsProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n vertical?: boolean\n}\n\nexport interface StatProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n title?: React.ReactNode\n value?: React.ReactNode\n desc?: React.ReactNode\n figure?: React.ReactNode\n actions?: React.ReactNode\n}\n\nfunction StatsRoot({ children, className = '', vertical = false, ...rest }: StatsProps) {\n const classes = [\n dStats,\n vertical ? dStatsVertical : dStatsHorizontal,\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return <div className={classes} {...rest}>{children}</div>\n}\n\nfunction StatItem({ title, value, desc, figure, actions, className = '', ...rest }: StatProps) {\n return (\n <div className={`${dStat} ${className}`} {...rest}>\n {figure && <div className={dStatFigure}>{figure}</div>}\n {title && <div className={dStatTitle}>{title}</div>}\n {value && <div className={dStatValue}>{value}</div>}\n {desc && <div className={dStatDesc}>{desc}</div>}\n {actions && <div className={dStatActions}>{actions}</div>}\n </div>\n )\n}\n\nexport const Stats = Object.assign(StatsRoot, {\n Stat: StatItem,\n})\n"],"names":["dStats","dStatsHorizontal","dStatsVertical","dStat","dStatFigure","dStatTitle","dStatValue","dStatDesc","dStatActions","StatsRoot","children","className","vertical","rest","classes","StatItem","title","value","desc","figure","actions","
|
|
1
|
+
{"version":3,"file":"Stat.js","sources":["../../src/components/Stat.tsx"],"sourcesContent":["import React from 'react'\n\n// DaisyUI classes\nconst dStats = 'stats'\nconst dStatsHorizontal = 'stats-horizontal'\nconst dStatsVertical = 'stats-vertical'\nconst dStat = 'stat'\nconst dStatFigure = 'stat-figure'\nconst dStatTitle = 'stat-title'\nconst dStatValue = 'stat-value'\nconst dStatDesc = 'stat-desc'\nconst dStatActions = 'stat-actions'\n\nexport interface StatsProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n vertical?: boolean\n 'data-testid'?: string\n}\n\nexport interface StatProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n title?: React.ReactNode\n value?: React.ReactNode\n desc?: React.ReactNode\n figure?: React.ReactNode\n actions?: React.ReactNode\n 'data-testid'?: string\n}\n\nfunction StatsRoot({ children, className = '', vertical = false, 'data-testid': testId, ...rest }: StatsProps) {\n const classes = [\n dStats,\n vertical ? dStatsVertical : dStatsHorizontal,\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n return <div className={classes} data-testid={testId} {...rest}>{children}</div>\n}\n\nfunction StatItem({ title, value, desc, figure, actions, className = '', 'data-testid': testId, ...rest }: StatProps) {\n const getTestId = (suffix: string) => (testId ? `${testId}-${suffix}` : undefined)\n return (\n <div className={`${dStat} ${className}`} data-testid={testId} {...rest}>\n {figure && <div className={dStatFigure} data-testid={getTestId('figure')}>{figure}</div>}\n {title && <div className={dStatTitle} data-testid={getTestId('title')}>{title}</div>}\n {value && <div className={dStatValue} data-testid={getTestId('value')}>{value}</div>}\n {desc && <div className={dStatDesc} data-testid={getTestId('desc')}>{desc}</div>}\n {actions && <div className={dStatActions} data-testid={getTestId('actions')}>{actions}</div>}\n </div>\n )\n}\n\nexport const Stats = Object.assign(StatsRoot, {\n Stat: StatItem,\n})\n"],"names":["dStats","dStatsHorizontal","dStatsVertical","dStat","dStatFigure","dStatTitle","dStatValue","dStatDesc","dStatActions","StatsRoot","children","className","vertical","testId","rest","classes","jsx","StatItem","title","value","desc","figure","actions","getTestId","suffix","jsxs","Stats"],"mappings":";AAGA,MAAMA,IAAS,SACTC,IAAmB,oBACnBC,IAAiB,kBACjBC,IAAQ,QACRC,IAAc,eACdC,IAAa,cACbC,IAAa,cACbC,IAAY,aACZC,IAAe;AAiBrB,SAASC,EAAU,EAAE,UAAAC,GAAU,WAAAC,IAAY,IAAI,UAAAC,IAAW,IAAO,eAAeC,GAAQ,GAAGC,KAAoB;AAC7G,QAAMC,IAAU;AAAA,IACdf;AAAA,IACAY,IAAWV,IAAiBD;AAAA,IAC5BU;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SAAO,gBAAAK,EAAC,SAAI,WAAWD,GAAS,eAAaF,GAAS,GAAGC,GAAO,UAAAJ,GAAS;AAC3E;AAEA,SAASO,EAAS,EAAE,OAAAC,GAAO,OAAAC,GAAO,MAAAC,GAAM,QAAAC,GAAQ,SAAAC,GAAS,WAAAX,IAAY,IAAI,eAAeE,GAAQ,GAAGC,KAAmB;AACpH,QAAMS,IAAY,CAACC,MAAoBX,IAAS,GAAGA,CAAM,IAAIW,CAAM,KAAK;AACxE,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAW,GAAGtB,CAAK,IAAIQ,CAAS,IAAI,eAAaE,GAAS,GAAGC,GAC/D,UAAA;AAAA,IAAAO,KAAU,gBAAAL,EAAC,SAAI,WAAWZ,GAAa,eAAamB,EAAU,QAAQ,GAAI,UAAAF,EAAA,CAAO;AAAA,IACjFH,uBAAU,OAAA,EAAI,WAAWb,GAAY,eAAakB,EAAU,OAAO,GAAI,UAAAL,EAAA,CAAM;AAAA,IAC7EC,uBAAU,OAAA,EAAI,WAAWb,GAAY,eAAaiB,EAAU,OAAO,GAAI,UAAAJ,EAAA,CAAM;AAAA,IAC7EC,uBAAS,OAAA,EAAI,WAAWb,GAAW,eAAagB,EAAU,MAAM,GAAI,UAAAH,EAAA,CAAK;AAAA,IACzEE,uBAAY,OAAA,EAAI,WAAWd,GAAc,eAAae,EAAU,SAAS,GAAI,UAAAD,EAAA,CAAQ;AAAA,EAAA,GACxF;AAEJ;AAEO,MAAMI,IAAQ,OAAO,OAAOjB,GAAW;AAAA,EAC5C,MAAMQ;AACR,CAAC;"}
|
|
@@ -21,6 +21,7 @@ export interface StepsProps extends Omit<React.HTMLAttributes<HTMLUListElement>,
|
|
|
21
21
|
vertical?: boolean;
|
|
22
22
|
/** Callback when step is clicked */
|
|
23
23
|
onChange?: (current: number) => void;
|
|
24
|
+
'data-testid'?: string;
|
|
24
25
|
}
|
|
25
26
|
export interface StepProps extends Omit<React.LiHTMLAttributes<HTMLLIElement>, 'color' | 'title'> {
|
|
26
27
|
/** Step title/label */
|
|
@@ -43,9 +44,10 @@ export interface StepProps extends Omit<React.LiHTMLAttributes<HTMLLIElement>, '
|
|
|
43
44
|
_clickable?: boolean;
|
|
44
45
|
/** Internal: click handler */
|
|
45
46
|
_onClick?: (index: number) => void;
|
|
47
|
+
'data-testid'?: string;
|
|
46
48
|
}
|
|
47
|
-
declare function StepsRoot({ children, items, current, direction, vertical, onChange, className, ...rest }: StepsProps): import("react/jsx-runtime").JSX.Element;
|
|
48
|
-
declare function Step({ children, title, description, icon, color, dataContent, disabled, className, _index, _clickable, _onClick, ...rest }: StepProps): import("react/jsx-runtime").JSX.Element;
|
|
49
|
+
declare function StepsRoot({ children, items, current, direction, vertical, onChange, className, 'data-testid': testId, ...rest }: StepsProps): import("react/jsx-runtime").JSX.Element;
|
|
50
|
+
declare function Step({ children, title, description, icon, color, dataContent, disabled, className, _index, _clickable, _onClick, 'data-testid': testId, ...rest }: StepProps): import("react/jsx-runtime").JSX.Element;
|
|
49
51
|
export declare const Steps: typeof StepsRoot & {
|
|
50
52
|
Step: typeof Step;
|
|
51
53
|
};
|
package/dist/components/Steps.js
CHANGED
|
@@ -1,31 +1,32 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import
|
|
3
|
-
const
|
|
4
|
-
neutral:
|
|
5
|
-
primary:
|
|
6
|
-
secondary:
|
|
7
|
-
accent:
|
|
8
|
-
info:
|
|
9
|
-
success:
|
|
10
|
-
warning:
|
|
11
|
-
error:
|
|
1
|
+
import { jsx as p, jsxs as N } from "react/jsx-runtime";
|
|
2
|
+
import k from "react";
|
|
3
|
+
const j = "steps", V = "steps-vertical", g = "step", h = "step-neutral", E = "step-primary", _ = "step-secondary", $ = "step-accent", w = "step-info", B = "step-success", R = "step-warning", A = "step-error", D = "step-disabled", O = {
|
|
4
|
+
neutral: h,
|
|
5
|
+
primary: E,
|
|
6
|
+
secondary: _,
|
|
7
|
+
accent: $,
|
|
8
|
+
info: w,
|
|
9
|
+
success: B,
|
|
10
|
+
warning: R,
|
|
11
|
+
error: A
|
|
12
12
|
};
|
|
13
|
-
function
|
|
14
|
-
children:
|
|
13
|
+
function P({
|
|
14
|
+
children: d,
|
|
15
15
|
items: n,
|
|
16
16
|
current: t,
|
|
17
|
-
direction:
|
|
18
|
-
vertical:
|
|
17
|
+
direction: S,
|
|
18
|
+
vertical: u = !1,
|
|
19
19
|
onChange: o,
|
|
20
|
-
className:
|
|
21
|
-
|
|
20
|
+
className: a = "",
|
|
21
|
+
"data-testid": c,
|
|
22
|
+
...r
|
|
22
23
|
}) {
|
|
23
|
-
const
|
|
24
|
+
const i = [j, (S === "vertical" || u) && V, a].filter(Boolean).join(" "), v = (s) => c ? `${c}-${s}` : void 0;
|
|
24
25
|
if (n && n.length > 0)
|
|
25
|
-
return /* @__PURE__ */
|
|
26
|
-
const f = t !== void 0 && e < t,
|
|
27
|
-
return /* @__PURE__ */
|
|
28
|
-
|
|
26
|
+
return /* @__PURE__ */ p("ul", { className: i, "data-testid": c, ...r, children: n.map((s, e) => {
|
|
27
|
+
const f = t !== void 0 && e < t, l = t !== void 0 && e === t, m = s.color || (f || l ? "primary" : void 0);
|
|
28
|
+
return /* @__PURE__ */ p(
|
|
29
|
+
b,
|
|
29
30
|
{
|
|
30
31
|
color: m,
|
|
31
32
|
icon: s.icon,
|
|
@@ -35,63 +36,66 @@ function D({
|
|
|
35
36
|
_index: e,
|
|
36
37
|
_clickable: !!o && !s.disabled,
|
|
37
38
|
_onClick: o,
|
|
38
|
-
"aria-current":
|
|
39
|
+
"aria-current": l ? "step" : void 0,
|
|
40
|
+
"data-testid": v(`step-${s.key ?? e}`)
|
|
39
41
|
},
|
|
40
42
|
s.key ?? e
|
|
41
43
|
);
|
|
42
44
|
}) });
|
|
43
|
-
const
|
|
44
|
-
if (
|
|
45
|
-
const f = e < t,
|
|
46
|
-
return
|
|
45
|
+
const C = t !== void 0 ? k.Children.map(d, (s, e) => {
|
|
46
|
+
if (k.isValidElement(s)) {
|
|
47
|
+
const f = e < t, l = e === t, m = s.props.color || (f || l ? "primary" : void 0);
|
|
48
|
+
return k.cloneElement(s, {
|
|
47
49
|
color: m,
|
|
48
50
|
_index: e,
|
|
49
51
|
_clickable: !!o && !s.props.disabled,
|
|
50
52
|
_onClick: o,
|
|
51
|
-
"aria-current":
|
|
53
|
+
"aria-current": l ? "step" : void 0
|
|
52
54
|
});
|
|
53
55
|
}
|
|
54
56
|
return s;
|
|
55
|
-
}) :
|
|
56
|
-
return /* @__PURE__ */
|
|
57
|
+
}) : d;
|
|
58
|
+
return /* @__PURE__ */ p("ul", { className: i, "data-testid": c, ...r, children: C });
|
|
57
59
|
}
|
|
58
|
-
function
|
|
59
|
-
children:
|
|
60
|
+
function b({
|
|
61
|
+
children: d,
|
|
60
62
|
title: n,
|
|
61
63
|
description: t,
|
|
62
|
-
icon:
|
|
63
|
-
color:
|
|
64
|
+
icon: S,
|
|
65
|
+
color: u,
|
|
64
66
|
dataContent: o,
|
|
65
|
-
disabled:
|
|
66
|
-
className:
|
|
67
|
-
_index:
|
|
68
|
-
_clickable:
|
|
69
|
-
_onClick:
|
|
70
|
-
|
|
67
|
+
disabled: a = !1,
|
|
68
|
+
className: c = "",
|
|
69
|
+
_index: r,
|
|
70
|
+
_clickable: y,
|
|
71
|
+
_onClick: i,
|
|
72
|
+
"data-testid": v,
|
|
73
|
+
...C
|
|
71
74
|
}) {
|
|
72
|
-
const
|
|
73
|
-
return /* @__PURE__ */
|
|
75
|
+
const s = [g, u && O[u], a && D, c].filter(Boolean).join(" ");
|
|
76
|
+
return /* @__PURE__ */ N(
|
|
74
77
|
"li",
|
|
75
78
|
{
|
|
76
|
-
className:
|
|
79
|
+
className: s,
|
|
77
80
|
"data-content": o,
|
|
78
81
|
onClick: () => {
|
|
79
|
-
|
|
82
|
+
y && i && r !== void 0 && !a && i(r);
|
|
80
83
|
},
|
|
81
|
-
style:
|
|
82
|
-
|
|
84
|
+
style: y && !a ? { cursor: "pointer" } : void 0,
|
|
85
|
+
"data-testid": v,
|
|
86
|
+
...C,
|
|
83
87
|
children: [
|
|
84
|
-
|
|
85
|
-
n ??
|
|
86
|
-
t && /* @__PURE__ */
|
|
88
|
+
S && /* @__PURE__ */ p("span", { className: "step-icon", children: S }),
|
|
89
|
+
n ?? d,
|
|
90
|
+
t && /* @__PURE__ */ p("span", { className: "text-xs opacity-70 block", children: t })
|
|
87
91
|
]
|
|
88
92
|
}
|
|
89
93
|
);
|
|
90
94
|
}
|
|
91
|
-
const
|
|
92
|
-
Step:
|
|
95
|
+
const q = Object.assign(P, {
|
|
96
|
+
Step: b
|
|
93
97
|
});
|
|
94
98
|
export {
|
|
95
|
-
|
|
99
|
+
q as Steps
|
|
96
100
|
};
|
|
97
101
|
//# sourceMappingURL=Steps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Steps.js","sources":["../../src/components/Steps.tsx"],"sourcesContent":["import React from 'react'\n\n// DaisyUI classes\nconst dSteps = 'steps'\nconst dStepsVertical = 'steps-vertical'\nconst dStep = 'step'\nconst dStepNeutral = 'step-neutral'\nconst dStepPrimary = 'step-primary'\nconst dStepSecondary = 'step-secondary'\nconst dStepAccent = 'step-accent'\nconst dStepInfo = 'step-info'\nconst dStepSuccess = 'step-success'\nconst dStepWarning = 'step-warning'\nconst dStepError = 'step-error'\nconst dStepDisabled = 'step-disabled'\n\nexport type StepsDirection = 'horizontal' | 'vertical'\n\nexport interface StepItem {\n key?: string\n title: React.ReactNode\n description?: React.ReactNode\n icon?: React.ReactNode\n color?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error'\n disabled?: boolean\n}\n\nexport interface StepsProps extends Omit<React.HTMLAttributes<HTMLUListElement>, 'onChange'> {\n /** Step items (compound pattern) */\n children?: React.ReactNode\n /** Step items (data-driven pattern) */\n items?: StepItem[]\n /** Current step index (0-based) */\n current?: number\n /** Layout direction */\n direction?: StepsDirection\n /** @deprecated Use direction=\"vertical\" instead */\n vertical?: boolean\n /** Callback when step is clicked */\n onChange?: (current: number) => void\n}\n\nexport interface StepProps extends Omit<React.LiHTMLAttributes<HTMLLIElement>, 'color' | 'title'> {\n /** Step title/label */\n children?: React.ReactNode\n /** Step title (alternative to children) */\n title?: React.ReactNode\n /** Step description */\n description?: React.ReactNode\n /** Step icon */\n icon?: React.ReactNode\n /** Step color */\n color?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error'\n /** Custom content for step indicator */\n dataContent?: string\n /** Whether step is disabled */\n disabled?: boolean\n /** Internal: step index */\n _index?: number\n /** Internal: whether step is clickable */\n _clickable?: boolean\n /** Internal: click handler */\n _onClick?: (index: number) => void\n}\n\nconst colorClasses: Record<string, string> = {\n neutral: dStepNeutral,\n primary: dStepPrimary,\n secondary: dStepSecondary,\n accent: dStepAccent,\n info: dStepInfo,\n success: dStepSuccess,\n warning: dStepWarning,\n error: dStepError,\n}\n\nfunction StepsRoot({\n children,\n items,\n current,\n direction,\n vertical = false,\n onChange,\n className = '',\n ...rest\n}: StepsProps) {\n const isVertical = direction === 'vertical' || vertical\n\n const classes = [dSteps, isVertical && dStepsVertical, className]\n .filter(Boolean)\n .join(' ')\n\n // Render data-driven items if provided\n if (items && items.length > 0) {\n return (\n <ul className={classes} {...rest}>\n {items.map((item, index) => {\n const isCompleted = current !== undefined && index < current\n const isCurrent = current !== undefined && index === current\n const stepColor = item.color || ((isCompleted || isCurrent) ? 'primary' : undefined)\n\n return (\n <Step\n key={item.key ?? index}\n color={stepColor}\n icon={item.icon}\n title={item.title}\n description={item.description}\n disabled={item.disabled}\n _index={index}\n _clickable={!!onChange && !item.disabled}\n _onClick={onChange}\n aria-current={isCurrent ? 'step' : undefined}\n />\n )\n })}\n </ul>\n )\n }\n\n // For compound pattern, inject props into children if current is provided\n const processedChildren =\n current !== undefined\n ? React.Children.map(children, (child, index) => {\n if (React.isValidElement<StepProps>(child)) {\n const isCompleted = index < current\n const isCurrent = index === current\n const childColor = child.props.color || ((isCompleted || isCurrent) ? 'primary' : undefined)\n\n return React.cloneElement(child, {\n color: childColor,\n _index: index,\n _clickable: !!onChange && !child.props.disabled,\n _onClick: onChange,\n 'aria-current': isCurrent ? 'step' : undefined,\n } as Partial<StepProps>)\n }\n return child\n })\n : children\n\n return (\n <ul className={classes} {...rest}>\n {processedChildren}\n </ul>\n )\n}\n\nfunction Step({\n children,\n title,\n description,\n icon,\n color,\n dataContent,\n disabled = false,\n className = '',\n _index,\n _clickable,\n _onClick,\n ...rest\n}: StepProps) {\n const classes = [dStep, color && colorClasses[color], disabled && dStepDisabled, className]\n .filter(Boolean)\n .join(' ')\n\n const handleClick = () => {\n if (_clickable && _onClick && _index !== undefined && !disabled) {\n _onClick(_index)\n }\n }\n\n const displayContent = title ?? children\n\n return (\n <li\n className={classes}\n data-content={dataContent}\n onClick={handleClick}\n style={_clickable && !disabled ? { cursor: 'pointer' } : undefined}\n {...rest}\n >\n {icon && <span className=\"step-icon\">{icon}</span>}\n {displayContent}\n {description && <span className=\"text-xs opacity-70 block\">{description}</span>}\n </li>\n )\n}\n\nexport const Steps = Object.assign(StepsRoot, {\n Step,\n})\n"],"names":["dSteps","dStepsVertical","dStep","dStepNeutral","dStepPrimary","dStepSecondary","dStepAccent","dStepInfo","dStepSuccess","dStepWarning","dStepError","dStepDisabled","colorClasses","StepsRoot","children","items","current","direction","vertical","onChange","className","rest","classes","jsx","item","index","isCompleted","isCurrent","stepColor","Step","processedChildren","React","child","childColor","title","description","icon","color","dataContent","disabled","_index","_clickable","_onClick","jsxs","Steps"],"mappings":";;AAGA,MAAMA,IAAS,SACTC,IAAiB,kBACjBC,IAAQ,QACRC,IAAe,gBACfC,IAAe,gBACfC,IAAiB,kBACjBC,IAAc,eACdC,IAAY,aACZC,IAAe,gBACfC,IAAe,gBACfC,IAAa,cACbC,IAAgB,
|
|
1
|
+
{"version":3,"file":"Steps.js","sources":["../../src/components/Steps.tsx"],"sourcesContent":["import React from 'react'\n\n// DaisyUI classes\nconst dSteps = 'steps'\nconst dStepsVertical = 'steps-vertical'\nconst dStep = 'step'\nconst dStepNeutral = 'step-neutral'\nconst dStepPrimary = 'step-primary'\nconst dStepSecondary = 'step-secondary'\nconst dStepAccent = 'step-accent'\nconst dStepInfo = 'step-info'\nconst dStepSuccess = 'step-success'\nconst dStepWarning = 'step-warning'\nconst dStepError = 'step-error'\nconst dStepDisabled = 'step-disabled'\n\nexport type StepsDirection = 'horizontal' | 'vertical'\n\nexport interface StepItem {\n key?: string\n title: React.ReactNode\n description?: React.ReactNode\n icon?: React.ReactNode\n color?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error'\n disabled?: boolean\n}\n\nexport interface StepsProps extends Omit<React.HTMLAttributes<HTMLUListElement>, 'onChange'> {\n /** Step items (compound pattern) */\n children?: React.ReactNode\n /** Step items (data-driven pattern) */\n items?: StepItem[]\n /** Current step index (0-based) */\n current?: number\n /** Layout direction */\n direction?: StepsDirection\n /** @deprecated Use direction=\"vertical\" instead */\n vertical?: boolean\n /** Callback when step is clicked */\n onChange?: (current: number) => void\n 'data-testid'?: string\n}\n\nexport interface StepProps extends Omit<React.LiHTMLAttributes<HTMLLIElement>, 'color' | 'title'> {\n /** Step title/label */\n children?: React.ReactNode\n /** Step title (alternative to children) */\n title?: React.ReactNode\n /** Step description */\n description?: React.ReactNode\n /** Step icon */\n icon?: React.ReactNode\n /** Step color */\n color?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error'\n /** Custom content for step indicator */\n dataContent?: string\n /** Whether step is disabled */\n disabled?: boolean\n /** Internal: step index */\n _index?: number\n /** Internal: whether step is clickable */\n _clickable?: boolean\n /** Internal: click handler */\n _onClick?: (index: number) => void\n 'data-testid'?: string\n}\n\nconst colorClasses: Record<string, string> = {\n neutral: dStepNeutral,\n primary: dStepPrimary,\n secondary: dStepSecondary,\n accent: dStepAccent,\n info: dStepInfo,\n success: dStepSuccess,\n warning: dStepWarning,\n error: dStepError,\n}\n\nfunction StepsRoot({\n children,\n items,\n current,\n direction,\n vertical = false,\n onChange,\n className = '',\n 'data-testid': testId,\n ...rest\n}: StepsProps) {\n const isVertical = direction === 'vertical' || vertical\n\n const classes = [dSteps, isVertical && dStepsVertical, className]\n .filter(Boolean)\n .join(' ')\n\n const getTestId = (suffix: string) => (testId ? `${testId}-${suffix}` : undefined)\n\n // Render data-driven items if provided\n if (items && items.length > 0) {\n return (\n <ul className={classes} data-testid={testId} {...rest}>\n {items.map((item, index) => {\n const isCompleted = current !== undefined && index < current\n const isCurrent = current !== undefined && index === current\n const stepColor = item.color || ((isCompleted || isCurrent) ? 'primary' : undefined)\n\n return (\n <Step\n key={item.key ?? index}\n color={stepColor}\n icon={item.icon}\n title={item.title}\n description={item.description}\n disabled={item.disabled}\n _index={index}\n _clickable={!!onChange && !item.disabled}\n _onClick={onChange}\n aria-current={isCurrent ? 'step' : undefined}\n data-testid={getTestId(`step-${item.key ?? index}`)}\n />\n )\n })}\n </ul>\n )\n }\n\n // For compound pattern, inject props into children if current is provided\n const processedChildren =\n current !== undefined\n ? React.Children.map(children, (child, index) => {\n if (React.isValidElement<StepProps>(child)) {\n const isCompleted = index < current\n const isCurrent = index === current\n const childColor = child.props.color || ((isCompleted || isCurrent) ? 'primary' : undefined)\n\n return React.cloneElement(child, {\n color: childColor,\n _index: index,\n _clickable: !!onChange && !child.props.disabled,\n _onClick: onChange,\n 'aria-current': isCurrent ? 'step' : undefined,\n } as Partial<StepProps>)\n }\n return child\n })\n : children\n\n return (\n <ul className={classes} data-testid={testId} {...rest}>\n {processedChildren}\n </ul>\n )\n}\n\nfunction Step({\n children,\n title,\n description,\n icon,\n color,\n dataContent,\n disabled = false,\n className = '',\n _index,\n _clickable,\n _onClick,\n 'data-testid': testId,\n ...rest\n}: StepProps) {\n const classes = [dStep, color && colorClasses[color], disabled && dStepDisabled, className]\n .filter(Boolean)\n .join(' ')\n\n const handleClick = () => {\n if (_clickable && _onClick && _index !== undefined && !disabled) {\n _onClick(_index)\n }\n }\n\n const displayContent = title ?? children\n\n return (\n <li\n className={classes}\n data-content={dataContent}\n onClick={handleClick}\n style={_clickable && !disabled ? { cursor: 'pointer' } : undefined}\n data-testid={testId}\n {...rest}\n >\n {icon && <span className=\"step-icon\">{icon}</span>}\n {displayContent}\n {description && <span className=\"text-xs opacity-70 block\">{description}</span>}\n </li>\n )\n}\n\nexport const Steps = Object.assign(StepsRoot, {\n Step,\n})\n"],"names":["dSteps","dStepsVertical","dStep","dStepNeutral","dStepPrimary","dStepSecondary","dStepAccent","dStepInfo","dStepSuccess","dStepWarning","dStepError","dStepDisabled","colorClasses","StepsRoot","children","items","current","direction","vertical","onChange","className","testId","rest","classes","getTestId","suffix","jsx","item","index","isCompleted","isCurrent","stepColor","Step","processedChildren","React","child","childColor","title","description","icon","color","dataContent","disabled","_index","_clickable","_onClick","jsxs","Steps"],"mappings":"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"}
|
package/dist/components/Tabs.js
CHANGED
|
@@ -1,65 +1,67 @@
|
|
|
1
|
-
import { jsx as s, jsxs as
|
|
2
|
-
import
|
|
3
|
-
import { useConfig as
|
|
4
|
-
const
|
|
5
|
-
box:
|
|
6
|
-
border:
|
|
7
|
-
lift:
|
|
8
|
-
},
|
|
9
|
-
xs:
|
|
10
|
-
sm:
|
|
11
|
-
md:
|
|
12
|
-
lg:
|
|
13
|
-
xl:
|
|
14
|
-
},
|
|
15
|
-
children:
|
|
16
|
-
items:
|
|
17
|
-
activeKey:
|
|
18
|
-
defaultActiveKey:
|
|
19
|
-
onChange:
|
|
20
|
-
variant:
|
|
21
|
-
size:
|
|
22
|
-
position:
|
|
23
|
-
"data-testid":
|
|
1
|
+
import { jsx as s, jsxs as l, Fragment as r } from "react/jsx-runtime";
|
|
2
|
+
import u, { forwardRef as w, useState as D, useId as E } from "react";
|
|
3
|
+
import { useConfig as F } from "../providers/ConfigProvider.js";
|
|
4
|
+
const K = "tabs", M = "tabs-box", O = "tabs-border", V = "tabs-lift", q = "tabs-xs", G = "tabs-sm", H = "tabs-md", J = "tabs-lg", Q = "tabs-xl", U = "tab", W = "tab-active", Y = "tab-disabled", Z = {
|
|
5
|
+
box: M,
|
|
6
|
+
border: O,
|
|
7
|
+
lift: V
|
|
8
|
+
}, tt = {
|
|
9
|
+
xs: q,
|
|
10
|
+
sm: G,
|
|
11
|
+
md: H,
|
|
12
|
+
lg: J,
|
|
13
|
+
xl: Q
|
|
14
|
+
}, st = w(function({
|
|
15
|
+
children: h,
|
|
16
|
+
items: n,
|
|
17
|
+
activeKey: o,
|
|
18
|
+
defaultActiveKey: x,
|
|
19
|
+
onChange: g,
|
|
20
|
+
variant: m,
|
|
21
|
+
size: p,
|
|
22
|
+
position: y = "top",
|
|
23
|
+
"data-testid": c,
|
|
24
24
|
className: C = "",
|
|
25
25
|
...A
|
|
26
26
|
}, j) {
|
|
27
|
-
const { componentSize: S } =
|
|
28
|
-
(t) =>
|
|
27
|
+
const { componentSize: S } = F(), T = p ?? S, d = (t) => c ? `${c}-${t}` : void 0, B = u.Children.toArray(h).filter(
|
|
28
|
+
(t) => u.isValidElement(t) && t.type === $
|
|
29
29
|
).map((t) => ({
|
|
30
30
|
...t.props,
|
|
31
31
|
_key: t.key != null ? String(t.key) : ""
|
|
32
|
-
})),
|
|
32
|
+
})), i = n && n.length > 0 ? n.map((t) => ({
|
|
33
33
|
_key: t.key,
|
|
34
34
|
tab: t.label,
|
|
35
35
|
children: t.children,
|
|
36
36
|
disabled: t.disabled,
|
|
37
37
|
icon: t.icon
|
|
38
|
-
})) : B, [
|
|
39
|
-
|
|
40
|
-
),
|
|
41
|
-
|
|
42
|
-
},
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
38
|
+
})) : B, [I, N] = D(
|
|
39
|
+
x || i[0]?._key || ""
|
|
40
|
+
), k = o !== void 0 ? o : I, P = (t) => {
|
|
41
|
+
o === void 0 && N(t), g?.(t);
|
|
42
|
+
}, R = [
|
|
43
|
+
K,
|
|
44
|
+
m && Z[m],
|
|
45
|
+
T && tt[T],
|
|
46
46
|
C
|
|
47
|
-
].filter(Boolean).join(" "),
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
t.disabled &&
|
|
47
|
+
].filter(Boolean).join(" "), a = E(), e = i.find((t) => t._key === k), v = /* @__PURE__ */ s("div", { role: "tablist", className: R, "data-testid": d("tablist"), children: i.map((t) => {
|
|
48
|
+
const b = k === t._key, z = `${a}-tab-${t._key}`, L = `${a}-panel-${t._key}`, X = [
|
|
49
|
+
U,
|
|
50
|
+
b && W,
|
|
51
|
+
t.disabled && Y
|
|
52
52
|
].filter(Boolean).join(" ");
|
|
53
|
-
return /* @__PURE__ */
|
|
53
|
+
return /* @__PURE__ */ l(
|
|
54
54
|
"button",
|
|
55
55
|
{
|
|
56
56
|
role: "tab",
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
id: z,
|
|
58
|
+
className: X,
|
|
59
|
+
onClick: () => !t.disabled && P(t._key),
|
|
59
60
|
disabled: t.disabled,
|
|
60
|
-
"data-state":
|
|
61
|
-
"data-testid":
|
|
62
|
-
"aria-selected":
|
|
61
|
+
"data-state": b ? "active" : "inactive",
|
|
62
|
+
"data-testid": d(`tab-${t._key}`),
|
|
63
|
+
"aria-selected": b,
|
|
64
|
+
"aria-controls": L,
|
|
63
65
|
children: [
|
|
64
66
|
t.icon && /* @__PURE__ */ s("span", { className: "mr-1", children: t.icon }),
|
|
65
67
|
t.tab
|
|
@@ -67,22 +69,32 @@ const D = "tabs", E = "tabs-box", F = "tabs-border", K = "tabs-lift", M = "tabs-
|
|
|
67
69
|
},
|
|
68
70
|
t._key
|
|
69
71
|
);
|
|
70
|
-
}) }),
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
}) }), _ = e && /* @__PURE__ */ s(
|
|
73
|
+
"div",
|
|
74
|
+
{
|
|
75
|
+
className: y === "top" ? "mt-4" : "mb-4",
|
|
76
|
+
role: "tabpanel",
|
|
77
|
+
id: `${a}-panel-${e._key}`,
|
|
78
|
+
"aria-labelledby": `${a}-tab-${e._key}`,
|
|
79
|
+
"data-testid": d("tabpanel"),
|
|
80
|
+
children: e.children
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
return /* @__PURE__ */ s("div", { ref: j, "data-testid": c, ...A, children: y === "top" ? /* @__PURE__ */ l(r, { children: [
|
|
84
|
+
v,
|
|
85
|
+
_
|
|
86
|
+
] }) : /* @__PURE__ */ l(r, { children: [
|
|
87
|
+
_,
|
|
88
|
+
v
|
|
77
89
|
] }) });
|
|
78
90
|
});
|
|
79
|
-
function
|
|
80
|
-
return /* @__PURE__ */ s(
|
|
91
|
+
function $({ children: f }) {
|
|
92
|
+
return /* @__PURE__ */ s(r, { children: f });
|
|
81
93
|
}
|
|
82
|
-
const
|
|
83
|
-
Panel:
|
|
94
|
+
const ot = Object.assign(st, {
|
|
95
|
+
Panel: $
|
|
84
96
|
});
|
|
85
97
|
export {
|
|
86
|
-
|
|
98
|
+
ot as Tabs
|
|
87
99
|
};
|
|
88
100
|
//# sourceMappingURL=Tabs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.js","sources":["../../src/components/Tabs.tsx"],"sourcesContent":["import React, { useState, forwardRef } from 'react'\nimport { useConfig } from '../providers/ConfigProvider'\n\n// DaisyUI classes\nconst dTabs = 'tabs'\nconst dTabsBox = 'tabs-box'\nconst dTabsBorder = 'tabs-border'\nconst dTabsLift = 'tabs-lift'\nconst dTabsXs = 'tabs-xs'\nconst dTabsSm = 'tabs-sm'\nconst dTabsMd = 'tabs-md'\nconst dTabsLg = 'tabs-lg'\nconst dTabsXl = 'tabs-xl'\nconst dTab = 'tab'\nconst dTabActive = 'tab-active'\nconst dTabDisabled = 'tab-disabled'\n\nexport type TabsVariant = 'box' | 'border' | 'lift'\nexport type TabsSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\nexport type TabsPosition = 'top' | 'bottom'\n\nexport interface TabItem {\n key: string\n label: React.ReactNode\n children?: React.ReactNode\n disabled?: boolean\n icon?: React.ReactNode\n}\n\nexport interface TabsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Tab panels (compound pattern) */\n children?: React.ReactNode\n /** Tab items (data-driven pattern) */\n items?: TabItem[]\n /** Current active tab key (controlled) */\n activeKey?: string\n /** Default active tab key (uncontrolled) */\n defaultActiveKey?: string\n /** Callback when tab changes */\n onChange?: (key: string) => void\n /** Visual style variant */\n variant?: TabsVariant\n /** Tab size */\n size?: TabsSize\n /** Tab position relative to content */\n position?: TabsPosition\n /** Test ID prefix for child elements */\n 'data-testid'?: string\n}\n\nexport interface TabPanelProps {\n /** Tab button label */\n tab: React.ReactNode\n /** Disable the tab */\n disabled?: boolean\n /** Tab panel content */\n children?: React.ReactNode\n /** Tab icon */\n icon?: React.ReactNode\n}\n\nconst variantClasses: Record<TabsVariant, string> = {\n box: dTabsBox,\n border: dTabsBorder,\n lift: dTabsLift,\n}\n\nconst sizeClasses: Record<TabsSize, string> = {\n xs: dTabsXs,\n sm: dTabsSm,\n md: dTabsMd,\n lg: dTabsLg,\n xl: dTabsXl,\n}\n\ninterface InternalPanelProps extends TabPanelProps {\n _key: string\n}\n\nconst TabsRoot = forwardRef<HTMLDivElement, TabsProps>(function TabsRoot(\n {\n children,\n items,\n activeKey,\n defaultActiveKey,\n onChange,\n variant,\n size,\n position = 'top',\n 'data-testid': testId,\n className = '',\n ...rest\n },\n ref\n) {\n const { componentSize } = useConfig()\n const effectiveSize = size ?? (componentSize as TabsSize | undefined)\n\n // Helper for test IDs\n const getTestId = (suffix: string) => (testId ? `${testId}-${suffix}` : undefined)\n // Get panels from children (compound pattern), extracting key from React element\n const panels = React.Children.toArray(children)\n .filter((child): child is React.ReactElement<TabPanelProps> =>\n React.isValidElement(child) && child.type === TabPanel\n )\n .map((child) => ({\n ...child.props,\n _key: child.key != null ? String(child.key) : '',\n }))\n\n // Convert items to panel-like structure if using data-driven pattern\n const effectivePanels: InternalPanelProps[] = items && items.length > 0\n ? items.map(item => ({\n _key: item.key,\n tab: item.label,\n children: item.children,\n disabled: item.disabled,\n icon: item.icon,\n }))\n : panels\n\n const [internalActiveKey, setInternalActiveKey] = useState(\n defaultActiveKey || effectivePanels[0]?._key || ''\n )\n const currentActiveKey = activeKey !== undefined ? activeKey : internalActiveKey\n\n const handleTabClick = (key: string) => {\n if (activeKey === undefined) {\n setInternalActiveKey(key)\n }\n onChange?.(key)\n }\n\n const classes = [\n dTabs,\n variant && variantClasses[variant],\n effectiveSize && sizeClasses[effectiveSize],\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n const activePanel = effectivePanels.find((panel) => panel._key === currentActiveKey)\n\n const tabList = (\n <div role=\"tablist\" className={classes} data-testid={getTestId('tablist')}>\n {effectivePanels.map((panel) => {\n const isActive = currentActiveKey === panel._key\n const tabClasses = [\n dTab,\n isActive && dTabActive,\n panel.disabled && dTabDisabled,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <button\n key={panel._key}\n role=\"tab\"\n className={tabClasses}\n onClick={() => !panel.disabled && handleTabClick(panel._key)}\n disabled={panel.disabled}\n data-state={isActive ? 'active' : 'inactive'}\n data-testid={getTestId(`tab-${panel._key}`)}\n aria-selected={isActive}\n >\n {panel.icon && <span className=\"mr-1\">{panel.icon}</span>}\n {panel.tab}\n </button>\n )\n })}\n </div>\n )\n\n const content = activePanel && (\n <div
|
|
1
|
+
{"version":3,"file":"Tabs.js","sources":["../../src/components/Tabs.tsx"],"sourcesContent":["import React, { useState, forwardRef, useId } from 'react'\nimport { useConfig } from '../providers/ConfigProvider'\n\n// DaisyUI classes\nconst dTabs = 'tabs'\nconst dTabsBox = 'tabs-box'\nconst dTabsBorder = 'tabs-border'\nconst dTabsLift = 'tabs-lift'\nconst dTabsXs = 'tabs-xs'\nconst dTabsSm = 'tabs-sm'\nconst dTabsMd = 'tabs-md'\nconst dTabsLg = 'tabs-lg'\nconst dTabsXl = 'tabs-xl'\nconst dTab = 'tab'\nconst dTabActive = 'tab-active'\nconst dTabDisabled = 'tab-disabled'\n\nexport type TabsVariant = 'box' | 'border' | 'lift'\nexport type TabsSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\nexport type TabsPosition = 'top' | 'bottom'\n\nexport interface TabItem {\n key: string\n label: React.ReactNode\n children?: React.ReactNode\n disabled?: boolean\n icon?: React.ReactNode\n}\n\nexport interface TabsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Tab panels (compound pattern) */\n children?: React.ReactNode\n /** Tab items (data-driven pattern) */\n items?: TabItem[]\n /** Current active tab key (controlled) */\n activeKey?: string\n /** Default active tab key (uncontrolled) */\n defaultActiveKey?: string\n /** Callback when tab changes */\n onChange?: (key: string) => void\n /** Visual style variant */\n variant?: TabsVariant\n /** Tab size */\n size?: TabsSize\n /** Tab position relative to content */\n position?: TabsPosition\n /** Test ID prefix for child elements */\n 'data-testid'?: string\n}\n\nexport interface TabPanelProps {\n /** Tab button label */\n tab: React.ReactNode\n /** Disable the tab */\n disabled?: boolean\n /** Tab panel content */\n children?: React.ReactNode\n /** Tab icon */\n icon?: React.ReactNode\n}\n\nconst variantClasses: Record<TabsVariant, string> = {\n box: dTabsBox,\n border: dTabsBorder,\n lift: dTabsLift,\n}\n\nconst sizeClasses: Record<TabsSize, string> = {\n xs: dTabsXs,\n sm: dTabsSm,\n md: dTabsMd,\n lg: dTabsLg,\n xl: dTabsXl,\n}\n\ninterface InternalPanelProps extends TabPanelProps {\n _key: string\n}\n\nconst TabsRoot = forwardRef<HTMLDivElement, TabsProps>(function TabsRoot(\n {\n children,\n items,\n activeKey,\n defaultActiveKey,\n onChange,\n variant,\n size,\n position = 'top',\n 'data-testid': testId,\n className = '',\n ...rest\n },\n ref\n) {\n const { componentSize } = useConfig()\n const effectiveSize = size ?? (componentSize as TabsSize | undefined)\n\n // Helper for test IDs\n const getTestId = (suffix: string) => (testId ? `${testId}-${suffix}` : undefined)\n // Get panels from children (compound pattern), extracting key from React element\n const panels = React.Children.toArray(children)\n .filter((child): child is React.ReactElement<TabPanelProps> =>\n React.isValidElement(child) && child.type === TabPanel\n )\n .map((child) => ({\n ...child.props,\n _key: child.key != null ? String(child.key) : '',\n }))\n\n // Convert items to panel-like structure if using data-driven pattern\n const effectivePanels: InternalPanelProps[] = items && items.length > 0\n ? items.map(item => ({\n _key: item.key,\n tab: item.label,\n children: item.children,\n disabled: item.disabled,\n icon: item.icon,\n }))\n : panels\n\n const [internalActiveKey, setInternalActiveKey] = useState(\n defaultActiveKey || effectivePanels[0]?._key || ''\n )\n const currentActiveKey = activeKey !== undefined ? activeKey : internalActiveKey\n\n const handleTabClick = (key: string) => {\n if (activeKey === undefined) {\n setInternalActiveKey(key)\n }\n onChange?.(key)\n }\n\n const classes = [\n dTabs,\n variant && variantClasses[variant],\n effectiveSize && sizeClasses[effectiveSize],\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n const baseId = useId()\n const activePanel = effectivePanels.find((panel) => panel._key === currentActiveKey)\n\n const tabList = (\n <div role=\"tablist\" className={classes} data-testid={getTestId('tablist')}>\n {effectivePanels.map((panel) => {\n const isActive = currentActiveKey === panel._key\n const tabId = `${baseId}-tab-${panel._key}`\n const panelId = `${baseId}-panel-${panel._key}`\n const tabClasses = [\n dTab,\n isActive && dTabActive,\n panel.disabled && dTabDisabled,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <button\n key={panel._key}\n role=\"tab\"\n id={tabId}\n className={tabClasses}\n onClick={() => !panel.disabled && handleTabClick(panel._key)}\n disabled={panel.disabled}\n data-state={isActive ? 'active' : 'inactive'}\n data-testid={getTestId(`tab-${panel._key}`)}\n aria-selected={isActive}\n aria-controls={panelId}\n >\n {panel.icon && <span className=\"mr-1\">{panel.icon}</span>}\n {panel.tab}\n </button>\n )\n })}\n </div>\n )\n\n const content = activePanel && (\n <div\n className={position === 'top' ? 'mt-4' : 'mb-4'}\n role=\"tabpanel\"\n id={`${baseId}-panel-${activePanel._key}`}\n aria-labelledby={`${baseId}-tab-${activePanel._key}`}\n data-testid={getTestId('tabpanel')}\n >\n {activePanel.children}\n </div>\n )\n\n return (\n <div ref={ref} data-testid={testId} {...rest}>\n {position === 'top' ? (\n <>\n {tabList}\n {content}\n </>\n ) : (\n <>\n {content}\n {tabList}\n </>\n )}\n </div>\n )\n})\n\nfunction TabPanel({ children }: TabPanelProps) {\n // This component is only used for type checking and is not rendered directly\n // The actual rendering is done in TabsRoot\n return <>{children}</>\n}\n\nexport const Tabs = Object.assign(TabsRoot, {\n Panel: TabPanel,\n})\n"],"names":["dTabs","dTabsBox","dTabsBorder","dTabsLift","dTabsXs","dTabsSm","dTabsMd","dTabsLg","dTabsXl","dTab","dTabActive","dTabDisabled","variantClasses","sizeClasses","TabsRoot","forwardRef","children","items","activeKey","defaultActiveKey","onChange","variant","size","position","testId","className","rest","ref","componentSize","useConfig","effectiveSize","getTestId","suffix","panels","React","child","TabPanel","effectivePanels","item","internalActiveKey","setInternalActiveKey","useState","currentActiveKey","handleTabClick","key","classes","baseId","useId","activePanel","panel","tabList","jsx","isActive","tabId","panelId","tabClasses","jsxs","content","Fragment","Tabs"],"mappings":"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"}
|
|
@@ -1,26 +1,28 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
const
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
const l = "text-rotate", u = {
|
|
3
3
|
6e3: "duration-6000",
|
|
4
4
|
9e3: "duration-9000",
|
|
5
5
|
12e3: "duration-12000",
|
|
6
6
|
15e3: "duration-15000",
|
|
7
7
|
18e3: "duration-18000"
|
|
8
|
-
},
|
|
9
|
-
items:
|
|
10
|
-
duration:
|
|
11
|
-
centered:
|
|
12
|
-
className:
|
|
8
|
+
}, $ = ({
|
|
9
|
+
items: n,
|
|
10
|
+
duration: s,
|
|
11
|
+
centered: o = !1,
|
|
12
|
+
className: r = "",
|
|
13
|
+
"data-testid": t
|
|
13
14
|
}) => {
|
|
14
|
-
const
|
|
15
|
-
return /* @__PURE__ */
|
|
15
|
+
const d = s ? u[s] : "", c = (e) => t ? `${t}-${e}` : void 0;
|
|
16
|
+
return /* @__PURE__ */ a(
|
|
16
17
|
"span",
|
|
17
18
|
{
|
|
18
|
-
className: `${
|
|
19
|
-
|
|
19
|
+
className: `${l} ${d} ${o ? "justify-items-center" : ""} ${r}`.trim(),
|
|
20
|
+
"data-testid": t,
|
|
21
|
+
children: /* @__PURE__ */ a("span", { children: n.slice(0, 6).map((e, i) => /* @__PURE__ */ a("span", { "data-testid": c(`item-${i}`), children: e }, i)) })
|
|
20
22
|
}
|
|
21
23
|
);
|
|
22
24
|
};
|
|
23
25
|
export {
|
|
24
|
-
|
|
26
|
+
$ as TextRotate
|
|
25
27
|
};
|
|
26
28
|
//# sourceMappingURL=TextRotate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextRotate.js","sources":["../../src/components/TextRotate.tsx"],"sourcesContent":["import React from 'react'\n\n// DaisyUI classes\nconst dTextRotate = 'text-rotate'\n\nexport type TextRotateDuration = 6000 | 9000 | 12000 | 15000 | 18000\n\nconst durationClasses: Record<TextRotateDuration, string> = {\n 6000: 'duration-6000',\n 9000: 'duration-9000',\n 12000: 'duration-12000',\n 15000: 'duration-15000',\n 18000: 'duration-18000',\n}\n\nexport interface TextRotateProps {\n /** Text items to rotate through (max 6) */\n items: React.ReactNode[]\n /** Animation duration in ms (default 10000) */\n duration?: TextRotateDuration\n /** Center text horizontally */\n centered?: boolean\n /** Additional CSS classes */\n className?: string\n}\n\nexport const TextRotate: React.FC<TextRotateProps> = ({\n items,\n duration,\n centered = false,\n className = '',\n}) => {\n const durationClass = duration ? durationClasses[duration] : ''\n\n return (\n <span\n className={`${dTextRotate} ${durationClass} ${centered ? 'justify-items-center' : ''} ${className}`.trim()}\n >\n <span>\n {items.slice(0, 6).map((item, index) => (\n <span key={index}>{item}</span>\n ))}\n </span>\n </span>\n )\n}\n"],"names":["dTextRotate","durationClasses","TextRotate","items","duration","centered","className","durationClass","jsx","item","index"],"mappings":";AAGA,MAAMA,IAAc,eAIdC,IAAsD;AAAA,EAC1D,KAAM;AAAA,EACN,KAAM;AAAA,EACN,MAAO;AAAA,EACP,MAAO;AAAA,EACP,MAAO;AACT,
|
|
1
|
+
{"version":3,"file":"TextRotate.js","sources":["../../src/components/TextRotate.tsx"],"sourcesContent":["import React from 'react'\n\n// DaisyUI classes\nconst dTextRotate = 'text-rotate'\n\nexport type TextRotateDuration = 6000 | 9000 | 12000 | 15000 | 18000\n\nconst durationClasses: Record<TextRotateDuration, string> = {\n 6000: 'duration-6000',\n 9000: 'duration-9000',\n 12000: 'duration-12000',\n 15000: 'duration-15000',\n 18000: 'duration-18000',\n}\n\nexport interface TextRotateProps {\n /** Text items to rotate through (max 6) */\n items: React.ReactNode[]\n /** Animation duration in ms (default 10000) */\n duration?: TextRotateDuration\n /** Center text horizontally */\n centered?: boolean\n /** Additional CSS classes */\n className?: string\n 'data-testid'?: string\n}\n\nexport const TextRotate: React.FC<TextRotateProps> = ({\n items,\n duration,\n centered = false,\n className = '',\n 'data-testid': testId,\n}) => {\n const durationClass = duration ? durationClasses[duration] : ''\n const getTestId = (suffix: string) => (testId ? `${testId}-${suffix}` : undefined)\n\n return (\n <span\n className={`${dTextRotate} ${durationClass} ${centered ? 'justify-items-center' : ''} ${className}`.trim()}\n data-testid={testId}\n >\n <span>\n {items.slice(0, 6).map((item, index) => (\n <span key={index} data-testid={getTestId(`item-${index}`)}>{item}</span>\n ))}\n </span>\n </span>\n )\n}\n"],"names":["dTextRotate","durationClasses","TextRotate","items","duration","centered","className","testId","durationClass","getTestId","suffix","jsx","item","index"],"mappings":";AAGA,MAAMA,IAAc,eAIdC,IAAsD;AAAA,EAC1D,KAAM;AAAA,EACN,KAAM;AAAA,EACN,MAAO;AAAA,EACP,MAAO;AAAA,EACP,MAAO;AACT,GAcaC,IAAwC,CAAC;AAAA,EACpD,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,WAAAC,IAAY;AAAA,EACZ,eAAeC;AACjB,MAAM;AACJ,QAAMC,IAAgBJ,IAAWH,EAAgBG,CAAQ,IAAI,IACvDK,IAAY,CAACC,MAAoBH,IAAS,GAAGA,CAAM,IAAIG,CAAM,KAAK;AAExE,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,GAAGX,CAAW,IAAIQ,CAAa,IAAIH,IAAW,yBAAyB,EAAE,IAAIC,CAAS,GAAG,KAAA;AAAA,MACpG,eAAaC;AAAA,MAEb,UAAA,gBAAAI,EAAC,UACE,UAAAR,EAAM,MAAM,GAAG,CAAC,EAAE,IAAI,CAACS,GAAMC,wBAC3B,QAAA,EAAiB,eAAaJ,EAAU,QAAQI,CAAK,EAAE,GAAI,UAAAD,KAAjDC,CAAsD,CAClE,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -5,5 +5,6 @@ export interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTex
|
|
|
5
5
|
ghost?: boolean;
|
|
6
6
|
bordered?: boolean;
|
|
7
7
|
className?: string;
|
|
8
|
+
'data-testid'?: string;
|
|
8
9
|
}
|
|
9
10
|
export declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
|