@axtec/components 0.1.0
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/Accordion/Accordion.d.ts +12 -0
- package/dist/components/ActionBar/ActionBar.d.ts +10 -0
- package/dist/components/ActionBar/index.d.ts +1 -0
- package/dist/components/ActionLayout/ActionLayout.d.ts +15 -0
- package/dist/components/ActionLayout/index.d.ts +1 -0
- package/dist/components/Alert/Alert.d.ts +9 -0
- package/dist/components/AlertBox/AlertBox.d.ts +15 -0
- package/dist/components/AlertBox/index.d.ts +1 -0
- package/dist/components/AlertModal/AlertModal.d.ts +14 -0
- package/dist/components/AlertModal/index.d.ts +1 -0
- package/dist/components/AutoComplete/AutoComplete.d.ts +17 -0
- package/dist/components/AutoComplete/index.d.ts +1 -0
- package/dist/components/Avatar/Avatar.d.ts +8 -0
- package/dist/components/AvatarCard/AvatarCard.d.ts +27 -0
- package/dist/components/AvatarCard/index.d.ts +1 -0
- package/dist/components/AverageRating/AverageRating.d.ts +8 -0
- package/dist/components/AverageRating/index.d.ts +1 -0
- package/dist/components/Badge/Badge.d.ts +9 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +15 -0
- package/dist/components/Button/Button.d.ts +9 -0
- package/dist/components/ButtonGroup/ButtonGroup.d.ts +11 -0
- package/dist/components/ButtonGroup/index.d.ts +1 -0
- package/dist/components/Card/Card.d.ts +56 -0
- package/dist/components/Checkbox/Checkbox.d.ts +6 -0
- package/dist/components/ConfirmModal/ConfirmModal.d.ts +18 -0
- package/dist/components/ConfirmModal/index.d.ts +1 -0
- package/dist/components/DatePicker/DatePicker.d.ts +13 -0
- package/dist/components/DatePicker/index.d.ts +1 -0
- package/dist/components/Drawer/Drawer.d.ts +10 -0
- package/dist/components/Drawer/index.d.ts +1 -0
- package/dist/components/Dropdown/Dropdown.d.ts +21 -0
- package/dist/components/EmptyData/EmptyData.d.ts +9 -0
- package/dist/components/EmptyData/index.d.ts +1 -0
- package/dist/components/FileUploader/FileUploader.d.ts +10 -0
- package/dist/components/FileUploader/index.d.ts +1 -0
- package/dist/components/IconButton/IconButton.d.ts +7 -0
- package/dist/components/IconButton/index.d.ts +1 -0
- package/dist/components/Image/Image.d.ts +13 -0
- package/dist/components/Image/index.d.ts +1 -0
- package/dist/components/ImageGrid/ImageGrid.d.ts +19 -0
- package/dist/components/ImageGrid/index.d.ts +1 -0
- package/dist/components/ImageUploading/ImageUploading.d.ts +7 -0
- package/dist/components/ImageUploading/index.d.ts +1 -0
- package/dist/components/Input/Input.d.ts +7 -0
- package/dist/components/LinkButton/LinkButton.d.ts +15 -0
- package/dist/components/LinkButton/index.d.ts +1 -0
- package/dist/components/Loader/Loader.d.ts +6 -0
- package/dist/components/LoadingModal/LoadingModal.d.ts +6 -0
- package/dist/components/LoadingModal/index.d.ts +1 -0
- package/dist/components/Logo/AxtecLogo.d.ts +5 -0
- package/dist/components/Logo/MyHomeVaultLogo.d.ts +5 -0
- package/dist/components/Logo/index.d.ts +2 -0
- package/dist/components/LogoLoader/LogoLoader.d.ts +5 -0
- package/dist/components/LogoLoader/index.d.ts +1 -0
- package/dist/components/MenuText/MenuText.d.ts +7 -0
- package/dist/components/MenuText/index.d.ts +1 -0
- package/dist/components/Modal/Modal.d.ts +10 -0
- package/dist/components/MultiItemSelect/MultiItemSelect.d.ts +13 -0
- package/dist/components/MultiItemSelect/index.d.ts +1 -0
- package/dist/components/Notification/Notification.d.ts +11 -0
- package/dist/components/Notification/index.d.ts +1 -0
- package/dist/components/Pagination/Pagination.d.ts +8 -0
- package/dist/components/Panel/Panel.d.ts +40 -0
- package/dist/components/Panel/index.d.ts +1 -0
- package/dist/components/PhotoLibrary/PhotoLibrary.d.ts +14 -0
- package/dist/components/PhotoLibrary/index.d.ts +1 -0
- package/dist/components/Pill/Pill.d.ts +11 -0
- package/dist/components/Pill/index.d.ts +1 -0
- package/dist/components/Progress/Progress.d.ts +10 -0
- package/dist/components/QuickActions/QuickActions.d.ts +8 -0
- package/dist/components/QuickActions/index.d.ts +1 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +15 -0
- package/dist/components/Rating/Rating.d.ts +11 -0
- package/dist/components/Rating/index.d.ts +1 -0
- package/dist/components/Row/Row.d.ts +10 -0
- package/dist/components/Row/index.d.ts +1 -0
- package/dist/components/ScrollableModal/ScrollableModal.d.ts +17 -0
- package/dist/components/ScrollableModal/index.d.ts +1 -0
- package/dist/components/Select/Select.d.ts +16 -0
- package/dist/components/Skeleton/Skeleton.d.ts +18 -0
- package/dist/components/StatisticsChart/StatisticsChart.d.ts +43 -0
- package/dist/components/StatisticsChart/index.d.ts +1 -0
- package/dist/components/StatisticsLegend/StatisticsLegend.d.ts +22 -0
- package/dist/components/StatisticsLegend/index.d.ts +1 -0
- package/dist/components/StatusIndicator/StatusIndicator.d.ts +21 -0
- package/dist/components/StatusIndicator/index.d.ts +1 -0
- package/dist/components/StepList/StepList.d.ts +8 -0
- package/dist/components/StepList/index.d.ts +1 -0
- package/dist/components/TabView/TabView.d.ts +17 -0
- package/dist/components/TabView/index.d.ts +1 -0
- package/dist/components/Table/Table.d.ts +19 -0
- package/dist/components/Tabs/Tabs.d.ts +16 -0
- package/dist/components/TaskList/TaskList.d.ts +20 -0
- package/dist/components/TaskList/index.d.ts +1 -0
- package/dist/components/Textarea/Textarea.d.ts +7 -0
- package/dist/components/Toggle/Toggle.d.ts +10 -0
- package/dist/components/ToggleButton/ToggleButton.d.ts +8 -0
- package/dist/components/ToggleButton/index.d.ts +1 -0
- package/dist/components/Tooltip/Tooltip.d.ts +9 -0
- package/dist/components/TrendIndicator/TrendIndicator.d.ts +8 -0
- package/dist/components/TrendIndicator/index.d.ts +1 -0
- package/dist/components/Typography/CardHeading.d.ts +6 -0
- package/dist/components/Typography/PageHeading.d.ts +6 -0
- package/dist/components/Typography/SectionHeading.d.ts +10 -0
- package/dist/components/Typography/SubsectionHeading.d.ts +6 -0
- package/dist/components/Typography/Text.d.ts +10 -0
- package/dist/components/Typography/index.d.ts +5 -0
- package/dist/components/index.d.ts +62 -0
- package/dist/index.css +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +153 -0
- package/dist/index.js.map +1 -0
- package/dist/index10.js +104 -0
- package/dist/index10.js.map +1 -0
- package/dist/index11.js +42 -0
- package/dist/index11.js.map +1 -0
- package/dist/index12.js +82 -0
- package/dist/index12.js.map +1 -0
- package/dist/index13.js +28 -0
- package/dist/index13.js.map +1 -0
- package/dist/index14.js +22 -0
- package/dist/index14.js.map +1 -0
- package/dist/index15.js +42 -0
- package/dist/index15.js.map +1 -0
- package/dist/index16.js +76 -0
- package/dist/index16.js.map +1 -0
- package/dist/index17.js +53 -0
- package/dist/index17.js.map +1 -0
- package/dist/index18.js +16 -0
- package/dist/index18.js.map +1 -0
- package/dist/index19.js +157 -0
- package/dist/index19.js.map +1 -0
- package/dist/index20.js +21 -0
- package/dist/index20.js.map +1 -0
- package/dist/index21.js +49 -0
- package/dist/index21.js.map +1 -0
- package/dist/index22.js +53 -0
- package/dist/index22.js.map +1 -0
- package/dist/index23.js +82 -0
- package/dist/index23.js.map +1 -0
- package/dist/index24.js +223 -0
- package/dist/index24.js.map +1 -0
- package/dist/index25.js +55 -0
- package/dist/index25.js.map +1 -0
- package/dist/index26.js +81 -0
- package/dist/index26.js.map +1 -0
- package/dist/index27.js +27 -0
- package/dist/index27.js.map +1 -0
- package/dist/index28.js +81 -0
- package/dist/index28.js.map +1 -0
- package/dist/index29.js +36 -0
- package/dist/index29.js.map +1 -0
- package/dist/index3.js +9 -0
- package/dist/index3.js.map +1 -0
- package/dist/index30.js +95 -0
- package/dist/index30.js.map +1 -0
- package/dist/index31.js +63 -0
- package/dist/index31.js.map +1 -0
- package/dist/index32.js +48 -0
- package/dist/index32.js.map +1 -0
- package/dist/index33.js +51 -0
- package/dist/index33.js.map +1 -0
- package/dist/index34.js +55 -0
- package/dist/index34.js.map +1 -0
- package/dist/index35.js +31 -0
- package/dist/index35.js.map +1 -0
- package/dist/index36.js +57 -0
- package/dist/index36.js.map +1 -0
- package/dist/index37.js +52 -0
- package/dist/index37.js.map +1 -0
- package/dist/index38.js +16 -0
- package/dist/index38.js.map +1 -0
- package/dist/index39.js +85 -0
- package/dist/index39.js.map +1 -0
- package/dist/index4.js +36 -0
- package/dist/index4.js.map +1 -0
- package/dist/index40.js +52 -0
- package/dist/index40.js.map +1 -0
- package/dist/index41.js +22 -0
- package/dist/index41.js.map +1 -0
- package/dist/index42.js +37 -0
- package/dist/index42.js.map +1 -0
- package/dist/index43.js +18 -0
- package/dist/index43.js.map +1 -0
- package/dist/index44.js +94 -0
- package/dist/index44.js.map +1 -0
- package/dist/index45.js +72 -0
- package/dist/index45.js.map +1 -0
- package/dist/index46.js +125 -0
- package/dist/index46.js.map +1 -0
- package/dist/index47.js +43 -0
- package/dist/index47.js.map +1 -0
- package/dist/index48.js +59 -0
- package/dist/index48.js.map +1 -0
- package/dist/index49.js +19 -0
- package/dist/index49.js.map +1 -0
- package/dist/index5.js +24 -0
- package/dist/index5.js.map +1 -0
- package/dist/index50.js +68 -0
- package/dist/index50.js.map +1 -0
- package/dist/index51.js +57 -0
- package/dist/index51.js.map +1 -0
- package/dist/index52.js +40 -0
- package/dist/index52.js.map +1 -0
- package/dist/index53.js +69 -0
- package/dist/index53.js.map +1 -0
- package/dist/index54.js +25 -0
- package/dist/index54.js.map +1 -0
- package/dist/index55.js +107 -0
- package/dist/index55.js.map +1 -0
- package/dist/index56.js +71 -0
- package/dist/index56.js.map +1 -0
- package/dist/index57.js +239 -0
- package/dist/index57.js.map +1 -0
- package/dist/index58.js +105 -0
- package/dist/index58.js.map +1 -0
- package/dist/index59.js +39 -0
- package/dist/index59.js.map +1 -0
- package/dist/index6.js +47 -0
- package/dist/index6.js.map +1 -0
- package/dist/index60.js +21 -0
- package/dist/index60.js.map +1 -0
- package/dist/index61.js +63 -0
- package/dist/index61.js.map +1 -0
- package/dist/index62.js +64 -0
- package/dist/index62.js.map +1 -0
- package/dist/index63.js +78 -0
- package/dist/index63.js.map +1 -0
- package/dist/index64.js +112 -0
- package/dist/index64.js.map +1 -0
- package/dist/index65.js +43 -0
- package/dist/index65.js.map +1 -0
- package/dist/index66.js +51 -0
- package/dist/index66.js.map +1 -0
- package/dist/index67.js +79 -0
- package/dist/index67.js.map +1 -0
- package/dist/index68.js +57 -0
- package/dist/index68.js.map +1 -0
- package/dist/index69.js +71 -0
- package/dist/index69.js.map +1 -0
- package/dist/index7.js +80 -0
- package/dist/index7.js.map +1 -0
- package/dist/index70.js +39 -0
- package/dist/index70.js.map +1 -0
- package/dist/index71.js +17 -0
- package/dist/index71.js.map +1 -0
- package/dist/index72.js +2267 -0
- package/dist/index72.js.map +1 -0
- package/dist/index8.js +82 -0
- package/dist/index8.js.map +1 -0
- package/dist/index9.js +97 -0
- package/dist/index9.js.map +1 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/logos/axtec-logo.png +0 -0
- package/dist/logos/mhv-icon.svg +5 -0
- package/dist/logos/mhv-logo.png +0 -0
- package/dist/logos/mhv-logo.svg +23 -0
- package/package.json +63 -0
package/dist/index15.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as s } from "react/jsx-runtime";
|
|
2
|
+
import { cn as d } from "./index3.js";
|
|
3
|
+
const m = {
|
|
4
|
+
default: "bg-slate-100 text-slate-700",
|
|
5
|
+
primary: "bg-primary-100 text-primary-700",
|
|
6
|
+
success: "bg-green-100 text-green-700",
|
|
7
|
+
warning: "bg-yellow-100 text-yellow-700",
|
|
8
|
+
danger: "bg-red-100 text-red-700",
|
|
9
|
+
info: "bg-blue-100 text-blue-700"
|
|
10
|
+
}, a = {
|
|
11
|
+
sm: "px-2 py-0.5 text-xs",
|
|
12
|
+
md: "px-2.5 py-1 text-sm",
|
|
13
|
+
lg: "px-3 py-1.5 text-base"
|
|
14
|
+
}, o = {
|
|
15
|
+
md: "rounded-md",
|
|
16
|
+
full: "rounded-full"
|
|
17
|
+
};
|
|
18
|
+
function u({
|
|
19
|
+
children: e,
|
|
20
|
+
variant: t = "default",
|
|
21
|
+
size: r = "md",
|
|
22
|
+
rounded: l = "full",
|
|
23
|
+
className: n
|
|
24
|
+
}) {
|
|
25
|
+
return /* @__PURE__ */ s(
|
|
26
|
+
"span",
|
|
27
|
+
{
|
|
28
|
+
className: d(
|
|
29
|
+
"inline-flex items-center font-medium",
|
|
30
|
+
m[t],
|
|
31
|
+
a[r],
|
|
32
|
+
o[l],
|
|
33
|
+
n
|
|
34
|
+
),
|
|
35
|
+
children: e
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
export {
|
|
40
|
+
u as Badge
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=index15.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index15.js","sources":["../src/components/Badge/Badge.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\nimport type { ReactNode } from 'react'\n\nexport interface BadgeProps {\n children: ReactNode\n variant?: 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info'\n size?: 'sm' | 'md' | 'lg'\n rounded?: 'md' | 'full'\n className?: string\n}\n\nconst variantStyles = {\n default: 'bg-slate-100 text-slate-700',\n primary: 'bg-primary-100 text-primary-700',\n success: 'bg-green-100 text-green-700',\n warning: 'bg-yellow-100 text-yellow-700',\n danger: 'bg-red-100 text-red-700',\n info: 'bg-blue-100 text-blue-700',\n}\n\nconst sizeStyles = {\n sm: 'px-2 py-0.5 text-xs',\n md: 'px-2.5 py-1 text-sm',\n lg: 'px-3 py-1.5 text-base',\n}\n\nconst roundedStyles = {\n md: 'rounded-md',\n full: 'rounded-full',\n}\n\nexport function Badge({\n children,\n variant = 'default',\n size = 'md',\n rounded = 'full',\n className,\n}: BadgeProps) {\n return (\n <span\n className={cn(\n 'inline-flex items-center font-medium',\n variantStyles[variant],\n sizeStyles[size],\n roundedStyles[rounded],\n className\n )}\n >\n {children}\n </span>\n )\n}\n"],"names":["variantStyles","sizeStyles","roundedStyles","Badge","children","variant","size","rounded","className","jsx","cn"],"mappings":";;AAWA,MAAMA,IAAgB;AAAA,EACpB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,MAAM;AACR,GAEMC,IAAa;AAAA,EACjB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAEMC,IAAgB;AAAA,EACpB,IAAI;AAAA,EACJ,MAAM;AACR;AAEO,SAASC,EAAM;AAAA,EACpB,UAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,WAAAC;AACF,GAAe;AACb,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAV,EAAcK,CAAO;AAAA,QACrBJ,EAAWK,CAAI;AAAA,QACfJ,EAAcK,CAAO;AAAA,QACrBC;AAAA,MAAA;AAAA,MAGD,UAAAJ;AAAA,IAAA;AAAA,EAAA;AAGP;"}
|
package/dist/index16.js
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { jsx as e, jsxs as n, Fragment as f } from "react/jsx-runtime";
|
|
2
|
+
import { HomeIcon as c, ChevronRightIcon as x } from "@heroicons/react/20/solid";
|
|
3
|
+
import { cn as N } from "./index3.js";
|
|
4
|
+
function g({
|
|
5
|
+
items: a,
|
|
6
|
+
showHome: i = !0,
|
|
7
|
+
homeHref: h = "/",
|
|
8
|
+
onHomeClick: s,
|
|
9
|
+
separator: m,
|
|
10
|
+
className: d
|
|
11
|
+
}) {
|
|
12
|
+
const o = () => /* @__PURE__ */ e("span", { className: "mx-2 text-slate-400", children: m || /* @__PURE__ */ e(x, { className: "h-4 w-4" }) }), u = (t, r) => {
|
|
13
|
+
const l = /* @__PURE__ */ e(
|
|
14
|
+
"span",
|
|
15
|
+
{
|
|
16
|
+
className: N(
|
|
17
|
+
"text-sm",
|
|
18
|
+
r ? "font-medium text-slate-900" : "text-slate-500 hover:text-slate-700"
|
|
19
|
+
),
|
|
20
|
+
children: t.label
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
return r ? l : t.href ? /* @__PURE__ */ e(
|
|
24
|
+
"a",
|
|
25
|
+
{
|
|
26
|
+
href: t.href,
|
|
27
|
+
className: "transition-colors duration-150",
|
|
28
|
+
onClick: t.onClick,
|
|
29
|
+
children: l
|
|
30
|
+
}
|
|
31
|
+
) : t.onClick ? /* @__PURE__ */ e(
|
|
32
|
+
"button",
|
|
33
|
+
{
|
|
34
|
+
type: "button",
|
|
35
|
+
onClick: t.onClick,
|
|
36
|
+
className: "transition-colors duration-150",
|
|
37
|
+
children: l
|
|
38
|
+
}
|
|
39
|
+
) : l;
|
|
40
|
+
};
|
|
41
|
+
return /* @__PURE__ */ e("nav", { "aria-label": "Breadcrumb", className: d, children: /* @__PURE__ */ n("ol", { className: "flex items-center", children: [
|
|
42
|
+
i && /* @__PURE__ */ n(f, { children: [
|
|
43
|
+
/* @__PURE__ */ e("li", { children: s ? /* @__PURE__ */ n(
|
|
44
|
+
"button",
|
|
45
|
+
{
|
|
46
|
+
type: "button",
|
|
47
|
+
onClick: s,
|
|
48
|
+
className: "text-slate-400 hover:text-slate-600 transition-colors duration-150",
|
|
49
|
+
children: [
|
|
50
|
+
/* @__PURE__ */ e(c, { className: "h-5 w-5" }),
|
|
51
|
+
/* @__PURE__ */ e("span", { className: "sr-only", children: "Home" })
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
) : /* @__PURE__ */ n(
|
|
55
|
+
"a",
|
|
56
|
+
{
|
|
57
|
+
href: h,
|
|
58
|
+
className: "text-slate-400 hover:text-slate-600 transition-colors duration-150",
|
|
59
|
+
children: [
|
|
60
|
+
/* @__PURE__ */ e(c, { className: "h-5 w-5" }),
|
|
61
|
+
/* @__PURE__ */ e("span", { className: "sr-only", children: "Home" })
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
) }),
|
|
65
|
+
a.length > 0 && /* @__PURE__ */ e(o, {})
|
|
66
|
+
] }),
|
|
67
|
+
a.map((t, r) => /* @__PURE__ */ n("li", { className: "flex items-center", children: [
|
|
68
|
+
u(t, r === a.length - 1),
|
|
69
|
+
r < a.length - 1 && /* @__PURE__ */ e(o, {})
|
|
70
|
+
] }, r))
|
|
71
|
+
] }) });
|
|
72
|
+
}
|
|
73
|
+
export {
|
|
74
|
+
g as Breadcrumbs
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=index16.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index16.js","sources":["../src/components/Breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import { ChevronRightIcon, HomeIcon } from '@heroicons/react/20/solid'\nimport { cn } from '@/lib/utils'\nimport type { ReactNode } from 'react'\n\nexport interface BreadcrumbItem {\n label: ReactNode\n href?: string\n onClick?: () => void\n}\n\nexport interface BreadcrumbsProps {\n items: BreadcrumbItem[]\n showHome?: boolean\n homeHref?: string\n onHomeClick?: () => void\n separator?: ReactNode\n className?: string\n}\n\nexport function Breadcrumbs({\n items,\n showHome = true,\n homeHref = '/',\n onHomeClick,\n separator,\n className,\n}: BreadcrumbsProps) {\n const Separator = () => (\n <span className=\"mx-2 text-slate-400\">\n {separator || <ChevronRightIcon className=\"h-4 w-4\" />}\n </span>\n )\n\n const renderItem = (item: BreadcrumbItem, isLast: boolean) => {\n const content = (\n <span\n className={cn(\n 'text-sm',\n isLast\n ? 'font-medium text-slate-900'\n : 'text-slate-500 hover:text-slate-700'\n )}\n >\n {item.label}\n </span>\n )\n\n if (isLast) {\n return content\n }\n\n if (item.href) {\n return (\n <a\n href={item.href}\n className=\"transition-colors duration-150\"\n onClick={item.onClick}\n >\n {content}\n </a>\n )\n }\n\n if (item.onClick) {\n return (\n <button\n type=\"button\"\n onClick={item.onClick}\n className=\"transition-colors duration-150\"\n >\n {content}\n </button>\n )\n }\n\n return content\n }\n\n return (\n <nav aria-label=\"Breadcrumb\" className={className}>\n <ol className=\"flex items-center\">\n {showHome && (\n <>\n <li>\n {onHomeClick ? (\n <button\n type=\"button\"\n onClick={onHomeClick}\n className=\"text-slate-400 hover:text-slate-600 transition-colors duration-150\"\n >\n <HomeIcon className=\"h-5 w-5\" />\n <span className=\"sr-only\">Home</span>\n </button>\n ) : (\n <a\n href={homeHref}\n className=\"text-slate-400 hover:text-slate-600 transition-colors duration-150\"\n >\n <HomeIcon className=\"h-5 w-5\" />\n <span className=\"sr-only\">Home</span>\n </a>\n )}\n </li>\n {items.length > 0 && <Separator />}\n </>\n )}\n {items.map((item, index) => (\n <li key={index} className=\"flex items-center\">\n {renderItem(item, index === items.length - 1)}\n {index < items.length - 1 && <Separator />}\n </li>\n ))}\n </ol>\n </nav>\n )\n}\n"],"names":["Breadcrumbs","items","showHome","homeHref","onHomeClick","separator","className","Separator","jsx","ChevronRightIcon","renderItem","item","isLast","content","cn","jsxs","Fragment","HomeIcon","index"],"mappings":";;;AAmBO,SAASA,EAAY;AAAA,EAC1B,OAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,UAAAC,IAAW;AAAA,EACX,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AACF,GAAqB;AACnB,QAAMC,IAAY,MAChB,gBAAAC,EAAC,QAAA,EAAK,WAAU,uBACb,UAAAH,KAAa,gBAAAG,EAACC,GAAA,EAAiB,WAAU,UAAA,CAAU,EAAA,CACtD,GAGIC,IAAa,CAACC,GAAsBC,MAAoB;AAC5D,UAAMC,IACJ,gBAAAL;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWM;AAAA,UACT;AAAA,UACAF,IACI,+BACA;AAAA,QAAA;AAAA,QAGL,UAAAD,EAAK;AAAA,MAAA;AAAA,IAAA;AAIV,WAAIC,IACKC,IAGLF,EAAK,OAEL,gBAAAH;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAMG,EAAK;AAAA,QACX,WAAU;AAAA,QACV,SAASA,EAAK;AAAA,QAEb,UAAAE;AAAA,MAAA;AAAA,IAAA,IAKHF,EAAK,UAEL,gBAAAH;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,SAASG,EAAK;AAAA,QACd,WAAU;AAAA,QAET,UAAAE;AAAA,MAAA;AAAA,IAAA,IAKAA;AAAA,EACT;AAEA,SACE,gBAAAL,EAAC,SAAI,cAAW,cAAa,WAAAF,GAC3B,UAAA,gBAAAS,EAAC,MAAA,EAAG,WAAU,qBACX,UAAA;AAAA,IAAAb,KACC,gBAAAa,EAAAC,GAAA,EACE,UAAA;AAAA,MAAA,gBAAAR,EAAC,QACE,UAAAJ,IACC,gBAAAW;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,SAASX;AAAA,UACT,WAAU;AAAA,UAEV,UAAA;AAAA,YAAA,gBAAAI,EAACS,GAAA,EAAS,WAAU,UAAA,CAAU;AAAA,YAC9B,gBAAAT,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,OAAA,CAAI;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA,IAGhC,gBAAAO;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAMZ;AAAA,UACN,WAAU;AAAA,UAEV,UAAA;AAAA,YAAA,gBAAAK,EAACS,GAAA,EAAS,WAAU,UAAA,CAAU;AAAA,YAC9B,gBAAAT,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,OAAA,CAAI;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA,GAGpC;AAAA,MACCP,EAAM,SAAS,KAAK,gBAAAO,EAACD,GAAA,CAAA,CAAU;AAAA,IAAA,GAClC;AAAA,IAEDN,EAAM,IAAI,CAACU,GAAMO,MAChB,gBAAAH,EAAC,MAAA,EAAe,WAAU,qBACvB,UAAA;AAAA,MAAAL,EAAWC,GAAMO,MAAUjB,EAAM,SAAS,CAAC;AAAA,MAC3CiB,IAAQjB,EAAM,SAAS,uBAAMM,GAAA,CAAA,CAAU;AAAA,IAAA,EAAA,GAFjCW,CAGT,CACD;AAAA,EAAA,EAAA,CACH,EAAA,CACF;AAEJ;"}
|
package/dist/index17.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsx as e, jsxs as d, Fragment as m } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as p } from "react";
|
|
3
|
+
import { cn as b } from "./index3.js";
|
|
4
|
+
import { Loader as f } from "./index35.js";
|
|
5
|
+
const u = {
|
|
6
|
+
primary: "bg-primary-500 text-white hover:bg-primary-600 active:bg-primary-700 focus:ring-primary-500",
|
|
7
|
+
secondary: "bg-slate-100 text-slate-900 hover:bg-slate-200 active:bg-slate-300 focus:ring-slate-500",
|
|
8
|
+
outline: "border border-slate-300 bg-transparent text-slate-700 hover:bg-slate-50 active:bg-slate-100 focus:ring-slate-500",
|
|
9
|
+
ghost: "bg-transparent text-slate-700 hover:bg-slate-100 active:bg-slate-200 focus:ring-slate-500",
|
|
10
|
+
danger: "bg-red-500 text-white hover:bg-red-600 active:bg-red-700 focus:ring-red-500"
|
|
11
|
+
}, x = {
|
|
12
|
+
sm: "px-3 py-1.5 text-sm gap-1.5",
|
|
13
|
+
md: "px-4 py-2 text-base gap-2",
|
|
14
|
+
lg: "px-6 py-3 text-lg gap-2.5"
|
|
15
|
+
}, y = p(
|
|
16
|
+
({
|
|
17
|
+
className: o,
|
|
18
|
+
variant: i = "primary",
|
|
19
|
+
size: t = "md",
|
|
20
|
+
isLoading: r = !1,
|
|
21
|
+
leftIcon: s,
|
|
22
|
+
rightIcon: a,
|
|
23
|
+
disabled: n,
|
|
24
|
+
children: l,
|
|
25
|
+
...c
|
|
26
|
+
}, g) => /* @__PURE__ */ e(
|
|
27
|
+
"button",
|
|
28
|
+
{
|
|
29
|
+
ref: g,
|
|
30
|
+
className: b(
|
|
31
|
+
"inline-flex items-center justify-center font-semibold rounded-lg",
|
|
32
|
+
"transition-colors duration-200",
|
|
33
|
+
"focus:outline-none focus:ring-2 focus:ring-offset-2",
|
|
34
|
+
"disabled:opacity-50 disabled:cursor-not-allowed",
|
|
35
|
+
u[i],
|
|
36
|
+
x[t],
|
|
37
|
+
o
|
|
38
|
+
),
|
|
39
|
+
disabled: n || r,
|
|
40
|
+
...c,
|
|
41
|
+
children: r ? /* @__PURE__ */ e(f, { size: t === "lg" ? "md" : "sm", color: "current" }) : /* @__PURE__ */ d(m, { children: [
|
|
42
|
+
s && /* @__PURE__ */ e("span", { className: "flex-shrink-0", children: s }),
|
|
43
|
+
l,
|
|
44
|
+
a && /* @__PURE__ */ e("span", { className: "flex-shrink-0", children: a })
|
|
45
|
+
] })
|
|
46
|
+
}
|
|
47
|
+
)
|
|
48
|
+
);
|
|
49
|
+
y.displayName = "Button";
|
|
50
|
+
export {
|
|
51
|
+
y as Button
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=index17.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index17.js","sources":["../src/components/Button/Button.tsx"],"sourcesContent":["import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '@/lib/utils'\nimport { Loader } from '../Loader/Loader'\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger'\n size?: 'sm' | 'md' | 'lg'\n isLoading?: boolean\n leftIcon?: ReactNode\n rightIcon?: ReactNode\n}\n\nconst variantStyles = {\n primary:\n 'bg-primary-500 text-white hover:bg-primary-600 active:bg-primary-700 focus:ring-primary-500',\n secondary:\n 'bg-slate-100 text-slate-900 hover:bg-slate-200 active:bg-slate-300 focus:ring-slate-500',\n outline:\n 'border border-slate-300 bg-transparent text-slate-700 hover:bg-slate-50 active:bg-slate-100 focus:ring-slate-500',\n ghost:\n 'bg-transparent text-slate-700 hover:bg-slate-100 active:bg-slate-200 focus:ring-slate-500',\n danger:\n 'bg-red-500 text-white hover:bg-red-600 active:bg-red-700 focus:ring-red-500',\n}\n\nconst sizeStyles = {\n sm: 'px-3 py-1.5 text-sm gap-1.5',\n md: 'px-4 py-2 text-base gap-2',\n lg: 'px-6 py-3 text-lg gap-2.5',\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant = 'primary',\n size = 'md',\n isLoading = false,\n leftIcon,\n rightIcon,\n disabled,\n children,\n ...props\n },\n ref\n ) => {\n return (\n <button\n ref={ref}\n className={cn(\n 'inline-flex items-center justify-center font-semibold rounded-lg',\n 'transition-colors duration-200',\n 'focus:outline-none focus:ring-2 focus:ring-offset-2',\n 'disabled:opacity-50 disabled:cursor-not-allowed',\n variantStyles[variant],\n sizeStyles[size],\n className\n )}\n disabled={disabled || isLoading}\n {...props}\n >\n {isLoading ? (\n <Loader size={size === 'lg' ? 'md' : 'sm'} color=\"current\" />\n ) : (\n <>\n {leftIcon && <span className=\"flex-shrink-0\">{leftIcon}</span>}\n {children}\n {rightIcon && <span className=\"flex-shrink-0\">{rightIcon}</span>}\n </>\n )}\n </button>\n )\n }\n)\n\nButton.displayName = 'Button'\n"],"names":["variantStyles","sizeStyles","Button","forwardRef","className","variant","size","isLoading","leftIcon","rightIcon","disabled","children","props","ref","jsx","cn","Loader","jsxs","Fragment"],"mappings":";;;;AAYA,MAAMA,IAAgB;AAAA,EACpB,SACE;AAAA,EACF,WACE;AAAA,EACF,SACE;AAAA,EACF,OACE;AAAA,EACF,QACE;AACJ,GAEMC,IAAa;AAAA,EACjB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAEaC,IAASC;AAAA,EACpB,CACE;AAAA,IACE,WAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,MAAAC,IAAO;AAAA,IACP,WAAAC,IAAY;AAAA,IACZ,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MAGE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACAf,EAAcK,CAAO;AAAA,QACrBJ,EAAWK,CAAI;AAAA,QACfF;AAAA,MAAA;AAAA,MAEF,UAAUM,KAAYH;AAAA,MACrB,GAAGK;AAAA,MAEH,UAAAL,IACC,gBAAAO,EAACE,GAAA,EAAO,MAAMV,MAAS,OAAO,OAAO,MAAM,OAAM,UAAA,CAAU,IAE3D,gBAAAW,EAAAC,GAAA,EACG,UAAA;AAAA,QAAAV,KAAY,gBAAAM,EAAC,QAAA,EAAK,WAAU,iBAAiB,UAAAN,GAAS;AAAA,QACtDG;AAAA,QACAF,KAAa,gBAAAK,EAAC,QAAA,EAAK,WAAU,iBAAiB,UAAAL,EAAA,CAAU;AAAA,MAAA,EAAA,CAC3D;AAAA,IAAA;AAAA,EAAA;AAKV;AAEAP,EAAO,cAAc;"}
|
package/dist/index18.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { cn as i } from "./index3.js";
|
|
3
|
+
const m = ({ buttons: o, className: e }) => /* @__PURE__ */ r("div", { className: i("flex flex-row items-center justify-end gap-1", e), children: o.map(({ icon: t, onClick: n, label: s }, a) => /* @__PURE__ */ r(
|
|
4
|
+
"button",
|
|
5
|
+
{
|
|
6
|
+
onClick: n,
|
|
7
|
+
"aria-label": s,
|
|
8
|
+
className: "cursor-pointer p-2 rounded-md hover:bg-slate-100 transition-colors",
|
|
9
|
+
children: t
|
|
10
|
+
},
|
|
11
|
+
`btnGroup_${a}`
|
|
12
|
+
)) });
|
|
13
|
+
export {
|
|
14
|
+
m as ButtonGroup
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=index18.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index18.js","sources":["../src/components/ButtonGroup/ButtonGroup.tsx"],"sourcesContent":["import { type ReactElement } from 'react'\nimport { cn } from '@/lib/utils'\n\nexport interface ButtonGroupItem {\n icon: ReactElement\n onClick: () => void\n label?: string\n}\n\nexport interface ButtonGroupProps {\n buttons: ButtonGroupItem[]\n className?: string\n}\n\nexport const ButtonGroup = ({ buttons, className }: ButtonGroupProps) => {\n return (\n <div className={cn('flex flex-row items-center justify-end gap-1', className)}>\n {buttons.map(({ icon, onClick, label }, index) => (\n <button\n key={`btnGroup_${index}`}\n onClick={onClick}\n aria-label={label}\n className=\"cursor-pointer p-2 rounded-md hover:bg-slate-100 transition-colors\"\n >\n {icon}\n </button>\n ))}\n </div>\n )\n}\n"],"names":["ButtonGroup","buttons","className","jsx","cn","icon","onClick","label","index"],"mappings":";;AAcO,MAAMA,IAAc,CAAC,EAAE,SAAAC,GAAS,WAAAC,QAEnC,gBAAAC,EAAC,OAAA,EAAI,WAAWC,EAAG,gDAAgDF,CAAS,GACzE,UAAAD,EAAQ,IAAI,CAAC,EAAE,MAAAI,GAAM,SAAAC,GAAS,OAAAC,EAAA,GAASC,MACtC,gBAAAL;AAAA,EAAC;AAAA,EAAA;AAAA,IAEC,SAAAG;AAAA,IACA,cAAYC;AAAA,IACZ,WAAU;AAAA,IAET,UAAAF;AAAA,EAAA;AAAA,EALI,YAAYG,CAAK;AAAA,CAOzB,GACH;"}
|
package/dist/index19.js
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { jsxs as t, jsx as l } from "react/jsx-runtime";
|
|
2
|
+
import { cn as r } from "./index3.js";
|
|
3
|
+
import { Badge as v } from "./index15.js";
|
|
4
|
+
import { Button as N } from "./index17.js";
|
|
5
|
+
const h = {
|
|
6
|
+
none: "",
|
|
7
|
+
sm: "p-3",
|
|
8
|
+
md: "p-4",
|
|
9
|
+
lg: "p-6"
|
|
10
|
+
}, f = {
|
|
11
|
+
none: "",
|
|
12
|
+
sm: "shadow-sm",
|
|
13
|
+
md: "shadow-md",
|
|
14
|
+
lg: "shadow-lg"
|
|
15
|
+
}, u = {
|
|
16
|
+
none: "",
|
|
17
|
+
md: "rounded-md",
|
|
18
|
+
lg: "rounded-lg",
|
|
19
|
+
xl: "rounded-xl",
|
|
20
|
+
"2xl": "rounded-2xl"
|
|
21
|
+
}, w = {
|
|
22
|
+
sm: "text-base",
|
|
23
|
+
md: "text-xl",
|
|
24
|
+
lg: "text-2xl"
|
|
25
|
+
};
|
|
26
|
+
function k({
|
|
27
|
+
children: a,
|
|
28
|
+
padding: i = "md",
|
|
29
|
+
shadow: n = "sm",
|
|
30
|
+
rounded: m = "xl",
|
|
31
|
+
border: c = !0,
|
|
32
|
+
hover: o = !1,
|
|
33
|
+
stat: s,
|
|
34
|
+
action: e,
|
|
35
|
+
className: x
|
|
36
|
+
}) {
|
|
37
|
+
var b, p;
|
|
38
|
+
if (s) {
|
|
39
|
+
const d = ((b = s.trend) == null ? void 0 : b.direction) === "up" ? "text-green-600" : ((p = s.trend) == null ? void 0 : p.direction) === "down" ? "text-red-500" : "text-slate-500";
|
|
40
|
+
return /* @__PURE__ */ t(
|
|
41
|
+
"div",
|
|
42
|
+
{
|
|
43
|
+
className: r(
|
|
44
|
+
"bg-white",
|
|
45
|
+
h[i],
|
|
46
|
+
f[n],
|
|
47
|
+
u[m],
|
|
48
|
+
c && "border border-slate-200",
|
|
49
|
+
o && "hover:shadow-md transition-shadow",
|
|
50
|
+
x
|
|
51
|
+
),
|
|
52
|
+
children: [
|
|
53
|
+
/* @__PURE__ */ t("div", { className: "flex justify-between items-start", children: [
|
|
54
|
+
/* @__PURE__ */ t("div", { className: "flex flex-col", children: [
|
|
55
|
+
/* @__PURE__ */ l("span", { className: "text-sm text-slate-500 font-medium mb-1", children: s.label }),
|
|
56
|
+
/* @__PURE__ */ l(
|
|
57
|
+
"span",
|
|
58
|
+
{
|
|
59
|
+
className: r(
|
|
60
|
+
"font-semibold text-primary-500 leading-tight",
|
|
61
|
+
w[s.size || "md"]
|
|
62
|
+
),
|
|
63
|
+
children: s.value
|
|
64
|
+
}
|
|
65
|
+
),
|
|
66
|
+
s.subtext && /* @__PURE__ */ l("span", { className: "text-xs text-slate-500 mt-1", children: s.subtext })
|
|
67
|
+
] }),
|
|
68
|
+
s.icon && /* @__PURE__ */ l("div", { className: "flex-shrink-0", children: s.icon })
|
|
69
|
+
] }),
|
|
70
|
+
s.trend && /* @__PURE__ */ t("div", { className: r("flex items-center gap-1 mt-2 text-xs font-medium", d), children: [
|
|
71
|
+
s.trend.direction === "up" && "↑",
|
|
72
|
+
s.trend.direction === "down" && "↓",
|
|
73
|
+
s.trend.direction === "stable" && "→",
|
|
74
|
+
s.trend.value && /* @__PURE__ */ l("span", { children: s.trend.value })
|
|
75
|
+
] }),
|
|
76
|
+
a
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
return e ? /* @__PURE__ */ t(
|
|
82
|
+
"div",
|
|
83
|
+
{
|
|
84
|
+
className: r(
|
|
85
|
+
"bg-white flex flex-col",
|
|
86
|
+
h[i],
|
|
87
|
+
f[n],
|
|
88
|
+
u[m],
|
|
89
|
+
c && "border border-slate-200",
|
|
90
|
+
o && "hover:shadow-md transition-shadow",
|
|
91
|
+
x
|
|
92
|
+
),
|
|
93
|
+
children: [
|
|
94
|
+
(e.title || e.status) && /* @__PURE__ */ t("div", { className: "flex items-start justify-between gap-3 mb-3", children: [
|
|
95
|
+
e.title && /* @__PURE__ */ l("h3", { className: "font-semibold text-base text-slate-900", children: e.title }),
|
|
96
|
+
e.status && /* @__PURE__ */ l(v, { variant: e.status.variant || "default", size: "sm", children: e.status.label })
|
|
97
|
+
] }),
|
|
98
|
+
e.description && /* @__PURE__ */ l("p", { className: "text-sm text-slate-600 mb-4 line-clamp-2 leading-relaxed", children: e.description }),
|
|
99
|
+
e.metrics && e.metrics.length > 0 && /* @__PURE__ */ l("div", { className: "space-y-2 mb-4 flex-1", children: e.metrics.map((d, g) => /* @__PURE__ */ t("div", { className: "flex justify-between text-sm", children: [
|
|
100
|
+
/* @__PURE__ */ l("span", { className: "text-slate-500", children: d.label }),
|
|
101
|
+
/* @__PURE__ */ l(
|
|
102
|
+
"span",
|
|
103
|
+
{
|
|
104
|
+
className: r("font-semibold", d.highlight ? "text-red-600" : "text-slate-900"),
|
|
105
|
+
children: d.value
|
|
106
|
+
}
|
|
107
|
+
)
|
|
108
|
+
] }, g)) }),
|
|
109
|
+
a && /* @__PURE__ */ l("div", { className: "flex-1", children: a }),
|
|
110
|
+
e.badges && e.badges.length > 0 && /* @__PURE__ */ l("div", { className: "flex flex-wrap gap-1.5 mb-4", children: e.badges.map((d, g) => /* @__PURE__ */ l(v, { variant: d.variant || "default", size: "sm", children: d.label }, g)) }),
|
|
111
|
+
e.ctaLabel && /* @__PURE__ */ l(
|
|
112
|
+
N,
|
|
113
|
+
{
|
|
114
|
+
onClick: e.onCtaClick,
|
|
115
|
+
disabled: e.ctaDisabled,
|
|
116
|
+
isLoading: e.ctaLoading,
|
|
117
|
+
leftIcon: e.ctaIcon,
|
|
118
|
+
className: "w-full mt-auto",
|
|
119
|
+
children: e.ctaLabel
|
|
120
|
+
}
|
|
121
|
+
)
|
|
122
|
+
]
|
|
123
|
+
}
|
|
124
|
+
) : /* @__PURE__ */ l(
|
|
125
|
+
"div",
|
|
126
|
+
{
|
|
127
|
+
className: r(
|
|
128
|
+
"bg-white",
|
|
129
|
+
h[i],
|
|
130
|
+
f[n],
|
|
131
|
+
u[m],
|
|
132
|
+
c && "border border-slate-200",
|
|
133
|
+
o && "hover:shadow-md transition-shadow",
|
|
134
|
+
x
|
|
135
|
+
),
|
|
136
|
+
children: a
|
|
137
|
+
}
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
const y = {
|
|
141
|
+
1: "grid-cols-1",
|
|
142
|
+
2: "grid-cols-1 md:grid-cols-2",
|
|
143
|
+
3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3",
|
|
144
|
+
4: "grid-cols-1 md:grid-cols-2 lg:grid-cols-4"
|
|
145
|
+
}, S = {
|
|
146
|
+
sm: "gap-2",
|
|
147
|
+
md: "gap-3",
|
|
148
|
+
lg: "gap-4"
|
|
149
|
+
};
|
|
150
|
+
function B({ children: a, columns: i = 2, gap: n = "md", className: m }) {
|
|
151
|
+
return /* @__PURE__ */ l("div", { className: r("grid", y[i], S[n], m), children: a });
|
|
152
|
+
}
|
|
153
|
+
export {
|
|
154
|
+
k as Card,
|
|
155
|
+
B as CardGrid
|
|
156
|
+
};
|
|
157
|
+
//# sourceMappingURL=index19.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index19.js","sources":["../src/components/Card/Card.tsx"],"sourcesContent":["import { type ReactNode } from 'react'\nimport { cn } from '@/lib/utils'\nimport { Badge } from '../Badge/Badge'\nimport { Button } from '../Button/Button'\n\n// Base card container props\nexport interface CardProps {\n children?: ReactNode\n padding?: 'none' | 'sm' | 'md' | 'lg'\n shadow?: 'none' | 'sm' | 'md' | 'lg'\n rounded?: 'none' | 'md' | 'lg' | 'xl' | '2xl'\n border?: boolean\n hover?: boolean\n className?: string\n}\n\n// Stat card props (for displaying a prominent value)\nexport interface CardStatProps {\n label: string\n value: string | number\n subtext?: string\n trend?: {\n direction: 'up' | 'down' | 'stable'\n value?: string\n }\n icon?: ReactNode\n size?: 'sm' | 'md' | 'lg'\n}\n\n// Metric row for action-style cards\nexport interface CardMetric {\n label: string\n value: string | number\n highlight?: boolean\n}\n\n// Action card props (for actionable items with CTAs)\nexport interface CardActionProps {\n title?: string\n status?: {\n label: string\n variant?: 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info'\n }\n description?: string\n metrics?: CardMetric[]\n badges?: Array<{\n label: string\n variant?: 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info'\n }>\n ctaLabel?: string\n onCtaClick?: () => void\n ctaLoading?: boolean\n ctaDisabled?: boolean\n ctaIcon?: ReactNode\n}\n\n// Combined card props\nexport type FullCardProps = CardProps & {\n stat?: CardStatProps\n action?: CardActionProps\n}\n\nconst paddingStyles = {\n none: '',\n sm: 'p-3',\n md: 'p-4',\n lg: 'p-6',\n}\n\nconst shadowStyles = {\n none: '',\n sm: 'shadow-sm',\n md: 'shadow-md',\n lg: 'shadow-lg',\n}\n\nconst roundedStyles = {\n none: '',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n '2xl': 'rounded-2xl',\n}\n\nconst valueSizeStyles = {\n sm: 'text-base',\n md: 'text-xl',\n lg: 'text-2xl',\n}\n\nexport function Card({\n children,\n padding = 'md',\n shadow = 'sm',\n rounded = 'xl',\n border = true,\n hover = false,\n stat,\n action,\n className,\n}: FullCardProps) {\n // Stat card mode\n if (stat) {\n const trendColor =\n stat.trend?.direction === 'up'\n ? 'text-green-600'\n : stat.trend?.direction === 'down'\n ? 'text-red-500'\n : 'text-slate-500'\n\n return (\n <div\n className={cn(\n 'bg-white',\n paddingStyles[padding],\n shadowStyles[shadow],\n roundedStyles[rounded],\n border && 'border border-slate-200',\n hover && 'hover:shadow-md transition-shadow',\n className\n )}\n >\n <div className=\"flex justify-between items-start\">\n <div className=\"flex flex-col\">\n <span className=\"text-sm text-slate-500 font-medium mb-1\">{stat.label}</span>\n <span\n className={cn(\n 'font-semibold text-primary-500 leading-tight',\n valueSizeStyles[stat.size || 'md']\n )}\n >\n {stat.value}\n </span>\n {stat.subtext && <span className=\"text-xs text-slate-500 mt-1\">{stat.subtext}</span>}\n </div>\n {stat.icon && <div className=\"flex-shrink-0\">{stat.icon}</div>}\n </div>\n {stat.trend && (\n <div className={cn('flex items-center gap-1 mt-2 text-xs font-medium', trendColor)}>\n {stat.trend.direction === 'up' && '↑'}\n {stat.trend.direction === 'down' && '↓'}\n {stat.trend.direction === 'stable' && '→'}\n {stat.trend.value && <span>{stat.trend.value}</span>}\n </div>\n )}\n {children}\n </div>\n )\n }\n\n // Action card mode\n if (action) {\n return (\n <div\n className={cn(\n 'bg-white flex flex-col',\n paddingStyles[padding],\n shadowStyles[shadow],\n roundedStyles[rounded],\n border && 'border border-slate-200',\n hover && 'hover:shadow-md transition-shadow',\n className\n )}\n >\n {/* Header with title and status badge */}\n {(action.title || action.status) && (\n <div className=\"flex items-start justify-between gap-3 mb-3\">\n {action.title && (\n <h3 className=\"font-semibold text-base text-slate-900\">{action.title}</h3>\n )}\n {action.status && (\n <Badge variant={action.status.variant || 'default'} size=\"sm\">\n {action.status.label}\n </Badge>\n )}\n </div>\n )}\n\n {/* Description */}\n {action.description && (\n <p className=\"text-sm text-slate-600 mb-4 line-clamp-2 leading-relaxed\">\n {action.description}\n </p>\n )}\n\n {/* Metrics */}\n {action.metrics && action.metrics.length > 0 && (\n <div className=\"space-y-2 mb-4 flex-1\">\n {action.metrics.map((metric, idx) => (\n <div key={idx} className=\"flex justify-between text-sm\">\n <span className=\"text-slate-500\">{metric.label}</span>\n <span\n className={cn('font-semibold', metric.highlight ? 'text-red-600' : 'text-slate-900')}\n >\n {metric.value}\n </span>\n </div>\n ))}\n </div>\n )}\n\n {/* Custom content */}\n {children && <div className=\"flex-1\">{children}</div>}\n\n {/* Status badges */}\n {action.badges && action.badges.length > 0 && (\n <div className=\"flex flex-wrap gap-1.5 mb-4\">\n {action.badges.map((badge, idx) => (\n <Badge key={idx} variant={badge.variant || 'default'} size=\"sm\">\n {badge.label}\n </Badge>\n ))}\n </div>\n )}\n\n {/* CTA Button */}\n {action.ctaLabel && (\n <Button\n onClick={action.onCtaClick}\n disabled={action.ctaDisabled}\n isLoading={action.ctaLoading}\n leftIcon={action.ctaIcon}\n className=\"w-full mt-auto\"\n >\n {action.ctaLabel}\n </Button>\n )}\n </div>\n )\n }\n\n // Basic card mode (original behavior)\n return (\n <div\n className={cn(\n 'bg-white',\n paddingStyles[padding],\n shadowStyles[shadow],\n roundedStyles[rounded],\n border && 'border border-slate-200',\n hover && 'hover:shadow-md transition-shadow',\n className\n )}\n >\n {children}\n </div>\n )\n}\n\n// Grid layout for cards\nexport interface CardGridProps {\n children: ReactNode\n columns?: 1 | 2 | 3 | 4\n gap?: 'sm' | 'md' | 'lg'\n className?: string\n}\n\nconst columnStyles = {\n 1: 'grid-cols-1',\n 2: 'grid-cols-1 md:grid-cols-2',\n 3: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',\n 4: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-4',\n}\n\nconst gapStyles = {\n sm: 'gap-2',\n md: 'gap-3',\n lg: 'gap-4',\n}\n\nexport function CardGrid({ children, columns = 2, gap = 'md', className }: CardGridProps) {\n return (\n <div className={cn('grid', columnStyles[columns], gapStyles[gap], className)}>{children}</div>\n )\n}\n"],"names":["paddingStyles","shadowStyles","roundedStyles","valueSizeStyles","Card","children","padding","shadow","rounded","border","hover","stat","action","className","trendColor","_a","_b","jsxs","cn","jsx","Badge","metric","idx","badge","Button","columnStyles","gapStyles","CardGrid","columns","gap"],"mappings":"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"}
|
package/dist/index20.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { cn as m } from "./index3.js";
|
|
3
|
+
function n({
|
|
4
|
+
children: t,
|
|
5
|
+
className: e
|
|
6
|
+
}) {
|
|
7
|
+
return /* @__PURE__ */ r(
|
|
8
|
+
"h4",
|
|
9
|
+
{
|
|
10
|
+
className: m(
|
|
11
|
+
"text-base font-medium text-slate-900",
|
|
12
|
+
e
|
|
13
|
+
),
|
|
14
|
+
children: t
|
|
15
|
+
}
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
export {
|
|
19
|
+
n as CardHeading
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=index20.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index20.js","sources":["../src/components/Typography/CardHeading.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\nimport type { ReactNode } from 'react'\n\nexport interface CardHeadingProps {\n children: ReactNode\n className?: string\n}\n\nexport function CardHeading({\n children,\n className,\n}: CardHeadingProps) {\n return (\n <h4\n className={cn(\n 'text-base font-medium text-slate-900',\n className\n )}\n >\n {children}\n </h4>\n )\n}\n"],"names":["CardHeading","children","className","jsx","cn"],"mappings":";;AAQO,SAASA,EAAY;AAAA,EAC1B,UAAAC;AAAA,EACA,WAAAC;AACF,GAAqB;AACnB,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAF;AAAA,MAAA;AAAA,MAGD,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP;"}
|
package/dist/index21.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsx as l, jsxs as s } from "react/jsx-runtime";
|
|
2
|
+
import { cn as n } from "./index3.js";
|
|
3
|
+
const o = ({
|
|
4
|
+
items: c,
|
|
5
|
+
className: t
|
|
6
|
+
}) => /* @__PURE__ */ l("div", { className: n("flex justify-center gap-8 p-5", t), children: c.map((e, r) => /* @__PURE__ */ s("div", { className: "flex flex-col flex-1", children: [
|
|
7
|
+
/* @__PURE__ */ s("div", { className: "flex items-center gap-2 mb-3", children: [
|
|
8
|
+
/* @__PURE__ */ l(
|
|
9
|
+
"div",
|
|
10
|
+
{
|
|
11
|
+
className: "w-5 h-2.5 rounded-full",
|
|
12
|
+
style: { backgroundColor: e.color }
|
|
13
|
+
}
|
|
14
|
+
),
|
|
15
|
+
/* @__PURE__ */ l(
|
|
16
|
+
"span",
|
|
17
|
+
{
|
|
18
|
+
className: "text-sm font-medium",
|
|
19
|
+
style: { color: e.color },
|
|
20
|
+
children: e.label
|
|
21
|
+
}
|
|
22
|
+
)
|
|
23
|
+
] }),
|
|
24
|
+
e.data.map((a, d) => /* @__PURE__ */ s("div", { className: "mb-2", children: [
|
|
25
|
+
/* @__PURE__ */ l("div", { className: "text-sm font-semibold text-slate-900 mb-1", children: a.title }),
|
|
26
|
+
/* @__PURE__ */ s("div", { className: "text-sm text-slate-500", children: [
|
|
27
|
+
a.value,
|
|
28
|
+
a.percentage && /* @__PURE__ */ s("span", { className: "ml-1 text-slate-400", children: [
|
|
29
|
+
"(",
|
|
30
|
+
a.percentage,
|
|
31
|
+
")"
|
|
32
|
+
] })
|
|
33
|
+
] })
|
|
34
|
+
] }, d))
|
|
35
|
+
] }, r)) }), x = ({ items: c, className: t }) => /* @__PURE__ */ l("div", { className: n("flex items-center justify-center gap-6", t), children: c.map((e, r) => /* @__PURE__ */ s("div", { className: "flex items-center gap-2", children: [
|
|
36
|
+
/* @__PURE__ */ l(
|
|
37
|
+
"div",
|
|
38
|
+
{
|
|
39
|
+
className: "w-3 h-3 rounded-full",
|
|
40
|
+
style: { backgroundColor: e.color }
|
|
41
|
+
}
|
|
42
|
+
),
|
|
43
|
+
/* @__PURE__ */ l("span", { className: "text-sm text-slate-600", children: e.label })
|
|
44
|
+
] }, r)) });
|
|
45
|
+
export {
|
|
46
|
+
x as ChartLegend,
|
|
47
|
+
o as StatisticsLegend
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=index21.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index21.js","sources":["../src/components/StatisticsLegend/StatisticsLegend.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\n\nexport interface StatisticsLegendItem {\n label: string\n color: string\n data: {\n title: string\n value: string | number\n percentage?: string\n }[]\n}\n\nexport interface StatisticsLegendProps {\n items: StatisticsLegendItem[]\n className?: string\n}\n\nexport const StatisticsLegend = ({\n items,\n className,\n}: StatisticsLegendProps) => {\n return (\n <div className={cn('flex justify-center gap-8 p-5', className)}>\n {items.map((item, index) => (\n <div key={index} className=\"flex flex-col flex-1\">\n {/* Legend label */}\n <div className=\"flex items-center gap-2 mb-3\">\n <div\n className=\"w-5 h-2.5 rounded-full\"\n style={{ backgroundColor: item.color }}\n />\n <span\n className=\"text-sm font-medium\"\n style={{ color: item.color }}\n >\n {item.label}\n </span>\n </div>\n\n {/* Data items */}\n {item.data.map((dataItem, dataIndex) => (\n <div key={dataIndex} className=\"mb-2\">\n <div className=\"text-sm font-semibold text-slate-900 mb-1\">\n {dataItem.title}\n </div>\n <div className=\"text-sm text-slate-500\">\n {dataItem.value}\n {dataItem.percentage && (\n <span className=\"ml-1 text-slate-400\">\n ({dataItem.percentage})\n </span>\n )}\n </div>\n </div>\n ))}\n </div>\n ))}\n </div>\n )\n}\n\n// Simple color dot legend for charts\nexport interface ChartLegendProps {\n items: {\n label: string\n color: string\n }[]\n className?: string\n}\n\nexport const ChartLegend = ({ items, className }: ChartLegendProps) => {\n return (\n <div className={cn('flex items-center justify-center gap-6', className)}>\n {items.map((item, index) => (\n <div key={index} className=\"flex items-center gap-2\">\n <div\n className=\"w-3 h-3 rounded-full\"\n style={{ backgroundColor: item.color }}\n />\n <span className=\"text-sm text-slate-600\">{item.label}</span>\n </div>\n ))}\n </div>\n )\n}\n"],"names":["StatisticsLegend","items","className","jsx","cn","item","index","jsxs","dataItem","dataIndex","ChartLegend"],"mappings":";;AAiBO,MAAMA,IAAmB,CAAC;AAAA,EAC/B,OAAAC;AAAA,EACA,WAAAC;AACF,MAEI,gBAAAC,EAAC,OAAA,EAAI,WAAWC,EAAG,iCAAiCF,CAAS,GAC1D,UAAAD,EAAM,IAAI,CAACI,GAAMC,MAChB,gBAAAC,EAAC,OAAA,EAAgB,WAAU,wBAEzB,UAAA;AAAA,EAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,gCACb,UAAA;AAAA,IAAA,gBAAAJ;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,iBAAiBE,EAAK,MAAA;AAAA,MAAM;AAAA,IAAA;AAAA,IAEvC,gBAAAF;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,OAAOE,EAAK,MAAA;AAAA,QAEpB,UAAAA,EAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACR,GACF;AAAA,EAGCA,EAAK,KAAK,IAAI,CAACG,GAAUC,MACxB,gBAAAF,EAAC,OAAA,EAAoB,WAAU,QAC7B,UAAA;AAAA,IAAA,gBAAAJ,EAAC,OAAA,EAAI,WAAU,6CACZ,UAAAK,EAAS,OACZ;AAAA,IACA,gBAAAD,EAAC,OAAA,EAAI,WAAU,0BACZ,UAAA;AAAA,MAAAC,EAAS;AAAA,MACTA,EAAS,cACR,gBAAAD,EAAC,QAAA,EAAK,WAAU,uBAAsB,UAAA;AAAA,QAAA;AAAA,QAClCC,EAAS;AAAA,QAAW;AAAA,MAAA,EAAA,CACxB;AAAA,IAAA,EAAA,CAEJ;AAAA,EAAA,EAAA,GAXQC,CAYV,CACD;AAAA,KA9BOH,CA+BV,CACD,GACH,GAaSI,IAAc,CAAC,EAAE,OAAAT,GAAO,WAAAC,QAEjC,gBAAAC,EAAC,OAAA,EAAI,WAAWC,EAAG,0CAA0CF,CAAS,GACnE,UAAAD,EAAM,IAAI,CAACI,GAAMC,MAChB,gBAAAC,EAAC,OAAA,EAAgB,WAAU,2BACzB,UAAA;AAAA,EAAA,gBAAAJ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,OAAO,EAAE,iBAAiBE,EAAK,MAAA;AAAA,IAAM;AAAA,EAAA;AAAA,EAEvC,gBAAAF,EAAC,QAAA,EAAK,WAAU,0BAA0B,YAAK,MAAA,CAAM;AAAA,KAL7CG,CAMV,CACD,GACH;"}
|
package/dist/index22.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsxs as t, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as d } from "react";
|
|
3
|
+
import { cn as i } from "./index3.js";
|
|
4
|
+
import { CheckIcon as l } from "@heroicons/react/20/solid";
|
|
5
|
+
const f = d(
|
|
6
|
+
({ className: c, label: e, description: s, id: m, checked: o, ...n }, p) => {
|
|
7
|
+
const a = m || (e == null ? void 0 : e.toLowerCase().replace(/\s+/g, "-"));
|
|
8
|
+
return /* @__PURE__ */ t(
|
|
9
|
+
"label",
|
|
10
|
+
{
|
|
11
|
+
htmlFor: a,
|
|
12
|
+
className: i("flex items-start gap-3 cursor-pointer group", c),
|
|
13
|
+
children: [
|
|
14
|
+
/* @__PURE__ */ t("div", { className: "relative flex-shrink-0 mt-0.5", children: [
|
|
15
|
+
/* @__PURE__ */ r(
|
|
16
|
+
"input",
|
|
17
|
+
{
|
|
18
|
+
ref: p,
|
|
19
|
+
type: "checkbox",
|
|
20
|
+
id: a,
|
|
21
|
+
checked: o,
|
|
22
|
+
className: "peer sr-only",
|
|
23
|
+
...n
|
|
24
|
+
}
|
|
25
|
+
),
|
|
26
|
+
/* @__PURE__ */ r(
|
|
27
|
+
"div",
|
|
28
|
+
{
|
|
29
|
+
className: i(
|
|
30
|
+
"h-5 w-5 rounded border-2 transition-colors duration-200",
|
|
31
|
+
"flex items-center justify-center",
|
|
32
|
+
"peer-focus:ring-2 peer-focus:ring-primary-500 peer-focus:ring-offset-2",
|
|
33
|
+
"peer-disabled:opacity-50 peer-disabled:cursor-not-allowed",
|
|
34
|
+
o ? "bg-primary-500 border-primary-500" : "bg-white border-slate-300 group-hover:border-slate-400"
|
|
35
|
+
),
|
|
36
|
+
children: o && /* @__PURE__ */ r(l, { className: "h-3.5 w-3.5 text-white" })
|
|
37
|
+
}
|
|
38
|
+
)
|
|
39
|
+
] }),
|
|
40
|
+
(e || s) && /* @__PURE__ */ t("div", { className: "flex flex-col", children: [
|
|
41
|
+
e && /* @__PURE__ */ r("span", { className: "text-sm font-medium text-slate-900", children: e }),
|
|
42
|
+
s && /* @__PURE__ */ r("span", { className: "text-sm text-slate-500", children: s })
|
|
43
|
+
] })
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
f.displayName = "Checkbox";
|
|
50
|
+
export {
|
|
51
|
+
f as Checkbox
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=index22.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index22.js","sources":["../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import { forwardRef, type InputHTMLAttributes } from 'react'\nimport { cn } from '@/lib/utils'\nimport { CheckIcon } from '@heroicons/react/20/solid'\n\nexport interface CheckboxProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {\n label?: string\n description?: string\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n ({ className, label, description, id, checked, ...props }, ref) => {\n const checkboxId = id || label?.toLowerCase().replace(/\\s+/g, '-')\n\n return (\n <label\n htmlFor={checkboxId}\n className={cn('flex items-start gap-3 cursor-pointer group', className)}\n >\n <div className=\"relative flex-shrink-0 mt-0.5\">\n <input\n ref={ref}\n type=\"checkbox\"\n id={checkboxId}\n checked={checked}\n className=\"peer sr-only\"\n {...props}\n />\n <div\n className={cn(\n 'h-5 w-5 rounded border-2 transition-colors duration-200',\n 'flex items-center justify-center',\n 'peer-focus:ring-2 peer-focus:ring-primary-500 peer-focus:ring-offset-2',\n 'peer-disabled:opacity-50 peer-disabled:cursor-not-allowed',\n checked\n ? 'bg-primary-500 border-primary-500'\n : 'bg-white border-slate-300 group-hover:border-slate-400'\n )}\n >\n {checked && <CheckIcon className=\"h-3.5 w-3.5 text-white\" />}\n </div>\n </div>\n {(label || description) && (\n <div className=\"flex flex-col\">\n {label && (\n <span className=\"text-sm font-medium text-slate-900\">{label}</span>\n )}\n {description && (\n <span className=\"text-sm text-slate-500\">{description}</span>\n )}\n </div>\n )}\n </label>\n )\n }\n)\n\nCheckbox.displayName = 'Checkbox'\n"],"names":["Checkbox","forwardRef","className","label","description","id","checked","props","ref","checkboxId","jsxs","cn","jsx","CheckIcon"],"mappings":";;;;AAUO,MAAMA,IAAWC;AAAA,EACtB,CAAC,EAAE,WAAAC,GAAW,OAAAC,GAAO,aAAAC,GAAa,IAAAC,GAAI,SAAAC,GAAS,GAAGC,EAAA,GAASC,MAAQ;AACjE,UAAMC,IAAaJ,MAAMF,KAAA,gBAAAA,EAAO,cAAc,QAAQ,QAAQ;AAE9D,WACE,gBAAAO;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAASD;AAAA,QACT,WAAWE,EAAG,+CAA+CT,CAAS;AAAA,QAEtE,UAAA;AAAA,UAAA,gBAAAQ,EAAC,OAAA,EAAI,WAAU,iCACb,UAAA;AAAA,YAAA,gBAAAE;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,KAAAJ;AAAA,gBACA,MAAK;AAAA,gBACL,IAAIC;AAAA,gBACJ,SAAAH;AAAA,gBACA,WAAU;AAAA,gBACT,GAAGC;AAAA,cAAA;AAAA,YAAA;AAAA,YAEN,gBAAAK;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAWD;AAAA,kBACT;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACAL,IACI,sCACA;AAAA,gBAAA;AAAA,gBAGL,UAAAA,KAAW,gBAAAM,EAACC,GAAA,EAAU,WAAU,yBAAA,CAAyB;AAAA,cAAA;AAAA,YAAA;AAAA,UAC5D,GACF;AAAA,WACEV,KAASC,MACT,gBAAAM,EAAC,OAAA,EAAI,WAAU,iBACZ,UAAA;AAAA,YAAAP,KACC,gBAAAS,EAAC,QAAA,EAAK,WAAU,sCAAsC,UAAAT,GAAM;AAAA,YAE7DC,KACC,gBAAAQ,EAAC,QAAA,EAAK,WAAU,0BAA0B,UAAAR,EAAA,CAAY;AAAA,UAAA,EAAA,CAE1D;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;AAEAJ,EAAS,cAAc;"}
|
package/dist/index23.js
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { jsx as e, jsxs as a } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment as i } from "react";
|
|
3
|
+
import { Transition as v, Dialog as N, TransitionChild as o, DialogPanel as y, DialogTitle as b } from "@headlessui/react";
|
|
4
|
+
import { ExclamationTriangleIcon as g } from "@heroicons/react/24/outline";
|
|
5
|
+
import { cn as s } from "./index3.js";
|
|
6
|
+
import { Button as c } from "./index17.js";
|
|
7
|
+
function D({
|
|
8
|
+
open: d,
|
|
9
|
+
onClose: l,
|
|
10
|
+
onConfirm: m,
|
|
11
|
+
title: f,
|
|
12
|
+
message: r,
|
|
13
|
+
confirmText: h = "Confirm",
|
|
14
|
+
cancelText: p = "Cancel",
|
|
15
|
+
showIcon: t = !1,
|
|
16
|
+
destructive: x = !1,
|
|
17
|
+
isLoading: n = !1,
|
|
18
|
+
className: u
|
|
19
|
+
}) {
|
|
20
|
+
return /* @__PURE__ */ e(v, { show: d, as: i, children: /* @__PURE__ */ a(N, { onClose: l, className: "relative z-50", children: [
|
|
21
|
+
/* @__PURE__ */ e(
|
|
22
|
+
o,
|
|
23
|
+
{
|
|
24
|
+
as: i,
|
|
25
|
+
enter: "ease-out duration-300",
|
|
26
|
+
enterFrom: "opacity-0",
|
|
27
|
+
enterTo: "opacity-100",
|
|
28
|
+
leave: "ease-in duration-200",
|
|
29
|
+
leaveFrom: "opacity-100",
|
|
30
|
+
leaveTo: "opacity-0",
|
|
31
|
+
children: /* @__PURE__ */ e("div", { className: "fixed inset-0 bg-black/50", "aria-hidden": "true" })
|
|
32
|
+
}
|
|
33
|
+
),
|
|
34
|
+
/* @__PURE__ */ e("div", { className: "fixed inset-0 flex items-center justify-center p-4", children: /* @__PURE__ */ e(
|
|
35
|
+
o,
|
|
36
|
+
{
|
|
37
|
+
as: i,
|
|
38
|
+
enter: "ease-out duration-300",
|
|
39
|
+
enterFrom: "opacity-0 scale-95",
|
|
40
|
+
enterTo: "opacity-100 scale-100",
|
|
41
|
+
leave: "ease-in duration-200",
|
|
42
|
+
leaveFrom: "opacity-100 scale-100",
|
|
43
|
+
leaveTo: "opacity-0 scale-95",
|
|
44
|
+
children: /* @__PURE__ */ a(
|
|
45
|
+
y,
|
|
46
|
+
{
|
|
47
|
+
className: s(
|
|
48
|
+
"w-full max-w-md bg-white rounded-2xl shadow-xl p-6",
|
|
49
|
+
"transform transition-all",
|
|
50
|
+
u
|
|
51
|
+
),
|
|
52
|
+
children: [
|
|
53
|
+
/* @__PURE__ */ a("div", { className: s(t && "flex gap-4"), children: [
|
|
54
|
+
t && /* @__PURE__ */ e("div", { className: "flex-shrink-0", children: /* @__PURE__ */ e("div", { className: "rounded-full bg-amber-100 p-2", children: /* @__PURE__ */ e(g, { className: "h-6 w-6 text-amber-600" }) }) }),
|
|
55
|
+
/* @__PURE__ */ a("div", { className: "flex-1", children: [
|
|
56
|
+
/* @__PURE__ */ e(b, { className: "text-lg font-semibold text-slate-900 mb-2", children: f }),
|
|
57
|
+
r && /* @__PURE__ */ e("div", { className: "text-sm text-slate-600 mb-6", children: r })
|
|
58
|
+
] })
|
|
59
|
+
] }),
|
|
60
|
+
/* @__PURE__ */ a("div", { className: "flex justify-end gap-3 mt-6", children: [
|
|
61
|
+
/* @__PURE__ */ e(c, { variant: "outline", onClick: l, disabled: n, children: p }),
|
|
62
|
+
/* @__PURE__ */ e(
|
|
63
|
+
c,
|
|
64
|
+
{
|
|
65
|
+
variant: x ? "danger" : "primary",
|
|
66
|
+
onClick: m,
|
|
67
|
+
isLoading: n,
|
|
68
|
+
children: h
|
|
69
|
+
}
|
|
70
|
+
)
|
|
71
|
+
] })
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
)
|
|
75
|
+
}
|
|
76
|
+
) })
|
|
77
|
+
] }) });
|
|
78
|
+
}
|
|
79
|
+
export {
|
|
80
|
+
D as ConfirmModal
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=index23.js.map
|