@axtec/components 0.1.5 → 0.1.7
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/README.md +6 -0
- package/dist/components/OptionDivider/OptionDivider.d.ts +5 -0
- package/dist/components/OptionDivider/index.d.ts +1 -0
- package/dist/components/SelectionCard/SelectionCard.d.ts +13 -0
- package/dist/components/SelectionCard/index.d.ts +1 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/index.css +1 -1
- package/dist/index.js +106 -102
- package/dist/index.js.map +1 -1
- package/dist/index12.js +1 -1
- package/dist/index3.js +2 -2
- package/dist/index43.js +12 -14
- package/dist/index43.js.map +1 -1
- package/dist/index44.js +11 -87
- package/dist/index44.js.map +1 -1
- package/dist/index45.js +91 -69
- package/dist/index45.js.map +1 -1
- package/dist/index46.js +68 -121
- package/dist/index46.js.map +1 -1
- package/dist/index47.js +118 -36
- package/dist/index47.js.map +1 -1
- package/dist/index48.js +40 -44
- package/dist/index48.js.map +1 -1
- package/dist/index49.js +44 -56
- package/dist/index49.js.map +1 -1
- package/dist/index50.js +56 -16
- package/dist/index50.js.map +1 -1
- package/dist/index51.js +16 -65
- package/dist/index51.js.map +1 -1
- package/dist/index52.js +62 -51
- package/dist/index52.js.map +1 -1
- package/dist/index53.js +54 -37
- package/dist/index53.js.map +1 -1
- package/dist/index54.js +37 -66
- package/dist/index54.js.map +1 -1
- package/dist/index55.js +63 -19
- package/dist/index55.js.map +1 -1
- package/dist/index56.js +19 -101
- package/dist/index56.js.map +1 -1
- package/dist/index57.js +99 -213
- package/dist/index57.js.map +1 -1
- package/dist/index58.js +67 -62
- package/dist/index58.js.map +1 -1
- package/dist/index59.js +206 -224
- package/dist/index59.js.map +1 -1
- package/dist/index60.js +62 -96
- package/dist/index60.js.map +1 -1
- package/dist/index61.js +233 -33
- package/dist/index61.js.map +1 -1
- package/dist/index62.js +98 -14
- package/dist/index62.js.map +1 -1
- package/dist/index63.js +35 -59
- package/dist/index63.js.map +1 -1
- package/dist/index64.js +16 -59
- package/dist/index64.js.map +1 -1
- package/dist/index65.js +57 -72
- package/dist/index65.js.map +1 -1
- package/dist/index66.js +58 -106
- package/dist/index66.js.map +1 -1
- package/dist/index67.js +70 -43
- package/dist/index67.js.map +1 -1
- package/dist/index68.js +101 -40
- package/dist/index68.js.map +1 -1
- package/dist/index69.js +44 -72
- package/dist/index69.js.map +1 -1
- package/dist/index70.js +47 -53
- package/dist/index70.js.map +1 -1
- package/dist/index71.js +70 -62
- package/dist/index71.js.map +1 -1
- package/dist/index72.js +46 -28
- package/dist/index72.js.map +1 -1
- package/dist/index73.js +67 -13
- package/dist/index73.js.map +1 -1
- package/dist/index74.js +35 -2263
- package/dist/index74.js.map +1 -1
- package/dist/index75.js +17 -0
- package/dist/index75.js.map +1 -0
- package/dist/index76.js +2267 -0
- package/dist/index76.js.map +1 -0
- package/package.json +1 -1
package/dist/index66.js
CHANGED
|
@@ -1,112 +1,64 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { cn as
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
1
|
+
import { jsx as e, jsxs as o } from "react/jsx-runtime";
|
|
2
|
+
import { cn as t } from "./index3.js";
|
|
3
|
+
function N({
|
|
4
|
+
columns: l,
|
|
5
|
+
data: h,
|
|
6
|
+
keyExtractor: p,
|
|
7
|
+
striped: i = !1,
|
|
8
|
+
hoverable: b = !0,
|
|
9
|
+
compact: s = !1,
|
|
10
|
+
className: n,
|
|
11
|
+
emptyMessage: x = "No data available"
|
|
12
|
+
}) {
|
|
13
|
+
return /* @__PURE__ */ e("div", { className: t("overflow-x-auto", n), children: /* @__PURE__ */ o("table", { className: "w-full text-left", children: [
|
|
14
|
+
/* @__PURE__ */ e("thead", { children: /* @__PURE__ */ e("tr", { className: "border-b border-slate-200 bg-slate-50", children: l.map((a) => /* @__PURE__ */ e(
|
|
15
|
+
"th",
|
|
16
|
+
{
|
|
17
|
+
className: t(
|
|
18
|
+
"font-semibold text-slate-700 text-sm",
|
|
19
|
+
s ? "px-4 py-2" : "px-6 py-3",
|
|
20
|
+
a.headerClassName
|
|
21
|
+
),
|
|
22
|
+
children: a.header
|
|
23
|
+
},
|
|
24
|
+
a.key
|
|
25
|
+
)) }) }),
|
|
26
|
+
/* @__PURE__ */ e("tbody", { children: h.length === 0 ? /* @__PURE__ */ e("tr", { children: /* @__PURE__ */ e(
|
|
27
|
+
"td",
|
|
28
|
+
{
|
|
29
|
+
colSpan: l.length,
|
|
30
|
+
className: t(
|
|
31
|
+
"text-center text-slate-500",
|
|
32
|
+
s ? "px-4 py-8" : "px-6 py-12"
|
|
33
|
+
),
|
|
34
|
+
children: x
|
|
35
|
+
}
|
|
36
|
+
) }) : h.map((a, d) => /* @__PURE__ */ e(
|
|
37
|
+
"tr",
|
|
38
|
+
{
|
|
39
|
+
className: t(
|
|
40
|
+
"border-b border-slate-100 transition-colors duration-150",
|
|
41
|
+
i && d % 2 === 1 && "bg-slate-50",
|
|
42
|
+
b && "hover:bg-slate-50"
|
|
43
|
+
),
|
|
44
|
+
children: l.map((r) => /* @__PURE__ */ e(
|
|
45
|
+
"td",
|
|
39
46
|
{
|
|
40
|
-
className:
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
n && "cursor-pointer"
|
|
47
|
+
className: t(
|
|
48
|
+
"text-slate-900",
|
|
49
|
+
s ? "px-4 py-2" : "px-6 py-4",
|
|
50
|
+
r.className
|
|
45
51
|
),
|
|
46
|
-
|
|
47
|
-
children: [
|
|
48
|
-
/* @__PURE__ */ s("div", { className: "flex-1 min-w-0", children: [
|
|
49
|
-
/* @__PURE__ */ r("h4", { className: "text-sm font-semibold text-slate-900 m-0 mb-1", children: e.title }),
|
|
50
|
-
e.description && /* @__PURE__ */ r("p", { className: "text-sm text-slate-500 m-0 mb-2 truncate", children: e.description }),
|
|
51
|
-
/* @__PURE__ */ s("div", { className: "flex items-center gap-2 flex-wrap", children: [
|
|
52
|
-
t && /* @__PURE__ */ r(
|
|
53
|
-
"span",
|
|
54
|
-
{
|
|
55
|
-
className: o(
|
|
56
|
-
"text-xs",
|
|
57
|
-
t.isOverdue ? "text-red-500 font-semibold" : "text-slate-500"
|
|
58
|
-
),
|
|
59
|
-
children: t.text
|
|
60
|
-
}
|
|
61
|
-
),
|
|
62
|
-
e.meta && /* @__PURE__ */ s(g, { children: [
|
|
63
|
-
t && /* @__PURE__ */ r("span", { className: "text-slate-300", children: "•" }),
|
|
64
|
-
/* @__PURE__ */ r("span", { className: "text-xs text-slate-500", children: e.meta })
|
|
65
|
-
] }),
|
|
66
|
-
e.priority === "high" && /* @__PURE__ */ r(h, { variant: "warning", size: "sm", children: "High Priority" })
|
|
67
|
-
] })
|
|
68
|
-
] }),
|
|
69
|
-
n && /* @__PURE__ */ r(
|
|
70
|
-
"button",
|
|
71
|
-
{
|
|
72
|
-
className: o(
|
|
73
|
-
"px-3 py-1.5 ml-3 flex-shrink-0",
|
|
74
|
-
"bg-white border border-slate-200 rounded-lg",
|
|
75
|
-
"text-xs font-medium text-slate-700",
|
|
76
|
-
"transition-colors hover:bg-slate-100 hover:border-slate-300"
|
|
77
|
-
),
|
|
78
|
-
onClick: (p) => {
|
|
79
|
-
p.stopPropagation(), n(e);
|
|
80
|
-
},
|
|
81
|
-
children: "View"
|
|
82
|
-
}
|
|
83
|
-
)
|
|
84
|
-
]
|
|
52
|
+
children: r.render ? r.render(a, d) : a[r.key]
|
|
85
53
|
},
|
|
86
|
-
|
|
87
|
-
)
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
className: o(
|
|
94
|
-
"w-full p-3 mt-2",
|
|
95
|
-
"bg-transparent border border-dashed border-slate-200 rounded-xl",
|
|
96
|
-
"text-sm text-slate-500",
|
|
97
|
-
"transition-colors hover:border-slate-400 hover:text-slate-700"
|
|
98
|
-
),
|
|
99
|
-
children: [
|
|
100
|
-
"View all ",
|
|
101
|
-
l.length,
|
|
102
|
-
" tasks"
|
|
103
|
-
]
|
|
104
|
-
}
|
|
105
|
-
)
|
|
106
|
-
] })
|
|
107
|
-
] });
|
|
108
|
-
};
|
|
54
|
+
r.key
|
|
55
|
+
))
|
|
56
|
+
},
|
|
57
|
+
p(a, d)
|
|
58
|
+
)) })
|
|
59
|
+
] }) });
|
|
60
|
+
}
|
|
109
61
|
export {
|
|
110
|
-
|
|
62
|
+
N as Table
|
|
111
63
|
};
|
|
112
64
|
//# sourceMappingURL=index66.js.map
|
package/dist/index66.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index66.js","sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"index66.js","sources":["../src/components/Table/Table.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\nimport type { ReactNode } from 'react'\n\nexport interface TableColumn<T> {\n key: string\n header: string\n render?: (item: T, index: number) => ReactNode\n className?: string\n headerClassName?: string\n}\n\nexport interface TableProps<T> {\n columns: TableColumn<T>[]\n data: T[]\n keyExtractor: (item: T, index: number) => string | number\n striped?: boolean\n hoverable?: boolean\n compact?: boolean\n className?: string\n emptyMessage?: string\n}\n\nexport function Table<T>({\n columns,\n data,\n keyExtractor,\n striped = false,\n hoverable = true,\n compact = false,\n className,\n emptyMessage = 'No data available',\n}: TableProps<T>) {\n return (\n <div className={cn('overflow-x-auto', className)}>\n <table className=\"w-full text-left\">\n <thead>\n <tr className=\"border-b border-slate-200 bg-slate-50\">\n {columns.map((column) => (\n <th\n key={column.key}\n className={cn(\n 'font-semibold text-slate-700 text-sm',\n compact ? 'px-4 py-2' : 'px-6 py-3',\n column.headerClassName\n )}\n >\n {column.header}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {data.length === 0 ? (\n <tr>\n <td\n colSpan={columns.length}\n className={cn(\n 'text-center text-slate-500',\n compact ? 'px-4 py-8' : 'px-6 py-12'\n )}\n >\n {emptyMessage}\n </td>\n </tr>\n ) : (\n data.map((item, index) => (\n <tr\n key={keyExtractor(item, index)}\n className={cn(\n 'border-b border-slate-100 transition-colors duration-150',\n striped && index % 2 === 1 && 'bg-slate-50',\n hoverable && 'hover:bg-slate-50'\n )}\n >\n {columns.map((column) => (\n <td\n key={column.key}\n className={cn(\n 'text-slate-900',\n compact ? 'px-4 py-2' : 'px-6 py-4',\n column.className\n )}\n >\n {column.render\n ? column.render(item, index)\n : (item as Record<string, unknown>)[column.key] as ReactNode}\n </td>\n ))}\n </tr>\n ))\n )}\n </tbody>\n </table>\n </div>\n )\n}\n"],"names":["Table","columns","data","keyExtractor","striped","hoverable","compact","className","emptyMessage","jsx","cn","jsxs","column","item","index"],"mappings":";;AAsBO,SAASA,EAAS;AAAA,EACvB,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,cAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,WAAAC,IAAY;AAAA,EACZ,SAAAC,IAAU;AAAA,EACV,WAAAC;AAAA,EACA,cAAAC,IAAe;AACjB,GAAkB;AAChB,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAWC,EAAG,mBAAmBH,CAAS,GAC7C,UAAA,gBAAAI,EAAC,SAAA,EAAM,WAAU,oBACf,UAAA;AAAA,IAAA,gBAAAF,EAAC,SAAA,EACC,4BAAC,MAAA,EAAG,WAAU,yCACX,UAAAR,EAAQ,IAAI,CAACW,MACZ,gBAAAH;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAWC;AAAA,UACT;AAAA,UACAJ,IAAU,cAAc;AAAA,UACxBM,EAAO;AAAA,QAAA;AAAA,QAGR,UAAAA,EAAO;AAAA,MAAA;AAAA,MAPHA,EAAO;AAAA,IAAA,CASf,GACH,EAAA,CACF;AAAA,sBACC,SAAA,EACE,UAAAV,EAAK,WAAW,sBACd,MAAA,EACC,UAAA,gBAAAO;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAASR,EAAQ;AAAA,QACjB,WAAWS;AAAA,UACT;AAAA,UACAJ,IAAU,cAAc;AAAA,QAAA;AAAA,QAGzB,UAAAE;AAAA,MAAA;AAAA,IAAA,GAEL,IAEAN,EAAK,IAAI,CAACW,GAAMC,MACd,gBAAAL;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAWC;AAAA,UACT;AAAA,UACAN,KAAWU,IAAQ,MAAM,KAAK;AAAA,UAC9BT,KAAa;AAAA,QAAA;AAAA,QAGd,UAAAJ,EAAQ,IAAI,CAACW,MACZ,gBAAAH;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WAAWC;AAAA,cACT;AAAA,cACAJ,IAAU,cAAc;AAAA,cACxBM,EAAO;AAAA,YAAA;AAAA,YAGR,UAAAA,EAAO,SACJA,EAAO,OAAOC,GAAMC,CAAK,IACxBD,EAAiCD,EAAO,GAAG;AAAA,UAAA;AAAA,UAT3CA,EAAO;AAAA,QAAA,CAWf;AAAA,MAAA;AAAA,MApBIT,EAAaU,GAAMC,CAAK;AAAA,IAAA,CAsBhC,EAAA,CAEL;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAEJ;"}
|
package/dist/index67.js
CHANGED
|
@@ -1,51 +1,78 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
h1: "h1",
|
|
13
|
-
h2: "h2",
|
|
14
|
-
h3: "h3"
|
|
15
|
-
}, x = {
|
|
16
|
-
default: "text-slate-900",
|
|
17
|
-
muted: "text-slate-500",
|
|
18
|
-
primary: "text-primary-600",
|
|
19
|
-
danger: "text-red-600"
|
|
20
|
-
}, f = {
|
|
21
|
-
normal: "font-normal",
|
|
22
|
-
medium: "font-medium",
|
|
23
|
-
semibold: "font-semibold",
|
|
24
|
-
bold: "font-bold"
|
|
25
|
-
};
|
|
26
|
-
function b({
|
|
27
|
-
children: e,
|
|
28
|
-
variant: t = "body",
|
|
29
|
-
color: o = "default",
|
|
30
|
-
weight: l = "normal",
|
|
31
|
-
as: n,
|
|
32
|
-
className: m
|
|
1
|
+
import { jsxs as c, jsx as s } from "react/jsx-runtime";
|
|
2
|
+
import { useState as u } from "react";
|
|
3
|
+
import { TabGroup as f, TabList as m, Tab as x, TabPanels as g, TabPanel as h } from "@headlessui/react";
|
|
4
|
+
import { cn as a } from "./index3.js";
|
|
5
|
+
function j({
|
|
6
|
+
items: t,
|
|
7
|
+
defaultIndex: i = 0,
|
|
8
|
+
onChange: l,
|
|
9
|
+
variant: r = "underline",
|
|
10
|
+
fullWidth: d = !1,
|
|
11
|
+
className: n
|
|
33
12
|
}) {
|
|
34
|
-
const
|
|
35
|
-
return /* @__PURE__ */
|
|
36
|
-
|
|
13
|
+
const [b, p] = u(i);
|
|
14
|
+
return /* @__PURE__ */ c(
|
|
15
|
+
f,
|
|
37
16
|
{
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
17
|
+
selectedIndex: b,
|
|
18
|
+
onChange: (e) => {
|
|
19
|
+
p(e), l == null || l(e);
|
|
20
|
+
},
|
|
21
|
+
className: n,
|
|
22
|
+
children: [
|
|
23
|
+
/* @__PURE__ */ s(
|
|
24
|
+
m,
|
|
25
|
+
{
|
|
26
|
+
className: a(
|
|
27
|
+
"flex",
|
|
28
|
+
r === "underline" && "border-b border-slate-200 gap-0",
|
|
29
|
+
r === "pills" && "gap-2",
|
|
30
|
+
r === "boxed" && "bg-slate-100 p-1 rounded-lg gap-1"
|
|
31
|
+
),
|
|
32
|
+
children: t.map((e) => /* @__PURE__ */ s(
|
|
33
|
+
x,
|
|
34
|
+
{
|
|
35
|
+
disabled: e.disabled,
|
|
36
|
+
className: ({ selected: o }) => a(
|
|
37
|
+
"font-medium text-sm transition-colors duration-200",
|
|
38
|
+
"focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2",
|
|
39
|
+
d && "flex-1",
|
|
40
|
+
e.disabled && "opacity-50 cursor-not-allowed",
|
|
41
|
+
// Underline variant
|
|
42
|
+
r === "underline" && [
|
|
43
|
+
"px-4 py-3 -mb-px border-b-2",
|
|
44
|
+
o ? "border-primary-500 text-primary-600" : "border-transparent text-slate-500 hover:text-slate-700 hover:border-slate-300"
|
|
45
|
+
],
|
|
46
|
+
// Pills variant
|
|
47
|
+
r === "pills" && [
|
|
48
|
+
"px-4 py-2 rounded-lg",
|
|
49
|
+
o ? "bg-primary-500 text-white" : "text-slate-600 hover:bg-slate-100"
|
|
50
|
+
],
|
|
51
|
+
// Boxed variant
|
|
52
|
+
r === "boxed" && [
|
|
53
|
+
"px-4 py-2 rounded-md",
|
|
54
|
+
o ? "bg-white text-slate-900 shadow-sm" : "text-slate-600 hover:text-slate-900"
|
|
55
|
+
]
|
|
56
|
+
),
|
|
57
|
+
children: e.label
|
|
58
|
+
},
|
|
59
|
+
e.key
|
|
60
|
+
))
|
|
61
|
+
}
|
|
62
|
+
),
|
|
63
|
+
/* @__PURE__ */ s(g, { className: "mt-4", children: t.map((e) => /* @__PURE__ */ s(
|
|
64
|
+
h,
|
|
65
|
+
{
|
|
66
|
+
className: "focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 rounded-lg",
|
|
67
|
+
children: e.content
|
|
68
|
+
},
|
|
69
|
+
e.key
|
|
70
|
+
)) })
|
|
71
|
+
]
|
|
45
72
|
}
|
|
46
73
|
);
|
|
47
74
|
}
|
|
48
75
|
export {
|
|
49
|
-
|
|
76
|
+
j as Tabs
|
|
50
77
|
};
|
|
51
78
|
//# sourceMappingURL=index67.js.map
|
package/dist/index67.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index67.js","sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"index67.js","sources":["../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { Tab, TabGroup, TabList, TabPanel, TabPanels } from '@headlessui/react'\nimport { cn } from '@/lib/utils'\nimport type { ReactNode } from 'react'\n\nexport interface TabItem {\n key: string\n label: string\n content: ReactNode\n disabled?: boolean\n}\n\nexport interface TabsProps {\n items: TabItem[]\n defaultIndex?: number\n onChange?: (index: number) => void\n variant?: 'underline' | 'pills' | 'boxed'\n fullWidth?: boolean\n className?: string\n}\n\nexport function Tabs({\n items,\n defaultIndex = 0,\n onChange,\n variant = 'underline',\n fullWidth = false,\n className,\n}: TabsProps) {\n const [selectedIndex, setSelectedIndex] = useState(defaultIndex)\n\n const handleChange = (index: number) => {\n setSelectedIndex(index)\n onChange?.(index)\n }\n\n return (\n <TabGroup\n selectedIndex={selectedIndex}\n onChange={handleChange}\n className={className}\n >\n <TabList\n className={cn(\n 'flex',\n variant === 'underline' && 'border-b border-slate-200 gap-0',\n variant === 'pills' && 'gap-2',\n variant === 'boxed' && 'bg-slate-100 p-1 rounded-lg gap-1'\n )}\n >\n {items.map((item) => (\n <Tab\n key={item.key}\n disabled={item.disabled}\n className={({ selected }) =>\n cn(\n 'font-medium text-sm transition-colors duration-200',\n 'focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2',\n fullWidth && 'flex-1',\n item.disabled && 'opacity-50 cursor-not-allowed',\n\n // Underline variant\n variant === 'underline' && [\n 'px-4 py-3 -mb-px border-b-2',\n selected\n ? 'border-primary-500 text-primary-600'\n : 'border-transparent text-slate-500 hover:text-slate-700 hover:border-slate-300',\n ],\n\n // Pills variant\n variant === 'pills' && [\n 'px-4 py-2 rounded-lg',\n selected\n ? 'bg-primary-500 text-white'\n : 'text-slate-600 hover:bg-slate-100',\n ],\n\n // Boxed variant\n variant === 'boxed' && [\n 'px-4 py-2 rounded-md',\n selected\n ? 'bg-white text-slate-900 shadow-sm'\n : 'text-slate-600 hover:text-slate-900',\n ]\n )\n }\n >\n {item.label}\n </Tab>\n ))}\n </TabList>\n <TabPanels className=\"mt-4\">\n {items.map((item) => (\n <TabPanel\n key={item.key}\n className=\"focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 rounded-lg\"\n >\n {item.content}\n </TabPanel>\n ))}\n </TabPanels>\n </TabGroup>\n )\n}\n"],"names":["Tabs","items","defaultIndex","onChange","variant","fullWidth","className","selectedIndex","setSelectedIndex","useState","jsxs","TabGroup","index","jsx","TabList","cn","item","Tab","selected","TabPanels","TabPanel"],"mappings":";;;;AAqBO,SAASA,EAAK;AAAA,EACnB,OAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,UAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,WAAAC,IAAY;AAAA,EACZ,WAAAC;AACF,GAAc;AACZ,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAASP,CAAY;AAO/D,SACE,gBAAAQ;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,eAAAJ;AAAA,MACA,UARiB,CAACK,MAAkB;AACtC,QAAAJ,EAAiBI,CAAK,GACtBT,KAAA,QAAAA,EAAWS;AAAA,MACb;AAAA,MAMI,WAAAN;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAAO;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,WAAWC;AAAA,cACT;AAAA,cACAX,MAAY,eAAe;AAAA,cAC3BA,MAAY,WAAW;AAAA,cACvBA,MAAY,WAAW;AAAA,YAAA;AAAA,YAGxB,UAAAH,EAAM,IAAI,CAACe,MACV,gBAAAH;AAAA,cAACI;AAAA,cAAA;AAAA,gBAEC,UAAUD,EAAK;AAAA,gBACf,WAAW,CAAC,EAAE,UAAAE,EAAA,MACZH;AAAA,kBACE;AAAA,kBACA;AAAA,kBACAV,KAAa;AAAA,kBACbW,EAAK,YAAY;AAAA;AAAA,kBAGjBZ,MAAY,eAAe;AAAA,oBACzB;AAAA,oBACAc,IACI,wCACA;AAAA,kBAAA;AAAA;AAAA,kBAINd,MAAY,WAAW;AAAA,oBACrB;AAAA,oBACAc,IACI,8BACA;AAAA,kBAAA;AAAA;AAAA,kBAINd,MAAY,WAAW;AAAA,oBACrB;AAAA,oBACAc,IACI,sCACA;AAAA,kBAAA;AAAA,gBACN;AAAA,gBAIH,UAAAF,EAAK;AAAA,cAAA;AAAA,cAnCDA,EAAK;AAAA,YAAA,CAqCb;AAAA,UAAA;AAAA,QAAA;AAAA,0BAEFG,GAAA,EAAU,WAAU,QAClB,UAAAlB,EAAM,IAAI,CAACe,MACV,gBAAAH;AAAA,UAACO;AAAA,UAAA;AAAA,YAEC,WAAU;AAAA,YAET,UAAAJ,EAAK;AAAA,UAAA;AAAA,UAHDA,EAAK;AAAA,QAAA,CAKb,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
package/dist/index68.js
CHANGED
|
@@ -1,51 +1,112 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
import { jsxs as s, jsx as r, Fragment as g } from "react/jsx-runtime";
|
|
2
|
+
import { cn as o } from "./index3.js";
|
|
3
|
+
import { Panel as v, PanelHeader as b, PanelTitle as D, PanelAction as y, PanelEmptyState as w } from "./index46.js";
|
|
4
|
+
import { Badge as h } from "./index15.js";
|
|
5
|
+
const N = (l) => {
|
|
6
|
+
if (!l) return null;
|
|
7
|
+
const a = new Date(l), n = /* @__PURE__ */ new Date(), i = Math.ceil((a.getTime() - n.getTime()) / (1e3 * 60 * 60 * 24));
|
|
8
|
+
return i < 0 ? { text: `Overdue by ${Math.abs(i)} days`, isOverdue: !0 } : i === 0 ? { text: "Due today", isOverdue: !0 } : i === 1 ? { text: "Due tomorrow", isOverdue: !1 } : i <= 7 ? { text: `Due in ${i} days`, isOverdue: !1 } : { text: `Due ${a.toLocaleDateString()}`, isOverdue: !1 };
|
|
9
|
+
}, z = ({
|
|
10
|
+
tasks: l,
|
|
11
|
+
title: a = "Tasks",
|
|
12
|
+
onTaskClick: n,
|
|
13
|
+
onViewAll: i,
|
|
14
|
+
onAddTask: d,
|
|
15
|
+
maxTasks: u = 5,
|
|
16
|
+
emptyMessage: x = "No tasks to display.",
|
|
17
|
+
className: f
|
|
18
|
+
}) => {
|
|
19
|
+
const c = [...l].filter((e) => e.status !== "completed").sort((e, t) => e.status === "overdue" && t.status !== "overdue" ? -1 : e.status !== "overdue" && t.status === "overdue" ? 1 : e.priority === "high" && t.priority !== "high" ? -1 : e.priority !== "high" && t.priority === "high" ? 1 : e.dueDate && t.dueDate ? new Date(e.dueDate).getTime() - new Date(t.dueDate).getTime() : 0).slice(0, u), m = l.filter((e) => e.status === "overdue").length;
|
|
20
|
+
return /* @__PURE__ */ s(v, { className: f, children: [
|
|
21
|
+
/* @__PURE__ */ s(b, { children: [
|
|
16
22
|
/* @__PURE__ */ r(
|
|
17
|
-
|
|
23
|
+
D,
|
|
18
24
|
{
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"transition-colors duration-200",
|
|
25
|
-
"placeholder:text-slate-400",
|
|
26
|
-
"focus:outline-none focus:ring-2 focus:ring-offset-0",
|
|
27
|
-
t ? "border-red-500 focus:border-red-500 focus:ring-red-500" : "border-slate-300 focus:border-primary-500 focus:ring-primary-500",
|
|
28
|
-
"disabled:bg-slate-50 disabled:text-slate-500 disabled:cursor-not-allowed",
|
|
29
|
-
d
|
|
30
|
-
),
|
|
31
|
-
...c
|
|
25
|
+
badge: m > 0 ? /* @__PURE__ */ s(h, { variant: "danger", size: "sm", children: [
|
|
26
|
+
m,
|
|
27
|
+
" overdue"
|
|
28
|
+
] }) : void 0,
|
|
29
|
+
children: a
|
|
32
30
|
}
|
|
33
31
|
),
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
d && /* @__PURE__ */ r(y, { onClick: d, children: "+ Add Task" })
|
|
33
|
+
] }),
|
|
34
|
+
c.length === 0 ? /* @__PURE__ */ r(w, { message: x }) : /* @__PURE__ */ s("div", { className: "flex flex-col gap-3", children: [
|
|
35
|
+
c.map((e) => {
|
|
36
|
+
const t = N(e.dueDate);
|
|
37
|
+
return /* @__PURE__ */ s(
|
|
38
|
+
"div",
|
|
39
|
+
{
|
|
40
|
+
className: o(
|
|
41
|
+
"flex items-start p-4",
|
|
42
|
+
"bg-white border border-slate-200 rounded-xl",
|
|
43
|
+
"transition-colors hover:bg-slate-50",
|
|
44
|
+
n && "cursor-pointer"
|
|
45
|
+
),
|
|
46
|
+
onClick: () => n == null ? void 0 : n(e),
|
|
47
|
+
children: [
|
|
48
|
+
/* @__PURE__ */ s("div", { className: "flex-1 min-w-0", children: [
|
|
49
|
+
/* @__PURE__ */ r("h4", { className: "text-sm font-semibold text-slate-900 m-0 mb-1", children: e.title }),
|
|
50
|
+
e.description && /* @__PURE__ */ r("p", { className: "text-sm text-slate-500 m-0 mb-2 truncate", children: e.description }),
|
|
51
|
+
/* @__PURE__ */ s("div", { className: "flex items-center gap-2 flex-wrap", children: [
|
|
52
|
+
t && /* @__PURE__ */ r(
|
|
53
|
+
"span",
|
|
54
|
+
{
|
|
55
|
+
className: o(
|
|
56
|
+
"text-xs",
|
|
57
|
+
t.isOverdue ? "text-red-500 font-semibold" : "text-slate-500"
|
|
58
|
+
),
|
|
59
|
+
children: t.text
|
|
60
|
+
}
|
|
61
|
+
),
|
|
62
|
+
e.meta && /* @__PURE__ */ s(g, { children: [
|
|
63
|
+
t && /* @__PURE__ */ r("span", { className: "text-slate-300", children: "•" }),
|
|
64
|
+
/* @__PURE__ */ r("span", { className: "text-xs text-slate-500", children: e.meta })
|
|
65
|
+
] }),
|
|
66
|
+
e.priority === "high" && /* @__PURE__ */ r(h, { variant: "warning", size: "sm", children: "High Priority" })
|
|
67
|
+
] })
|
|
68
|
+
] }),
|
|
69
|
+
n && /* @__PURE__ */ r(
|
|
70
|
+
"button",
|
|
71
|
+
{
|
|
72
|
+
className: o(
|
|
73
|
+
"px-3 py-1.5 ml-3 flex-shrink-0",
|
|
74
|
+
"bg-white border border-slate-200 rounded-lg",
|
|
75
|
+
"text-xs font-medium text-slate-700",
|
|
76
|
+
"transition-colors hover:bg-slate-100 hover:border-slate-300"
|
|
77
|
+
),
|
|
78
|
+
onClick: (p) => {
|
|
79
|
+
p.stopPropagation(), n(e);
|
|
80
|
+
},
|
|
81
|
+
children: "View"
|
|
82
|
+
}
|
|
83
|
+
)
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
e.id
|
|
87
|
+
);
|
|
88
|
+
}),
|
|
89
|
+
l.length > u && i && /* @__PURE__ */ s(
|
|
90
|
+
"button",
|
|
36
91
|
{
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
92
|
+
onClick: i,
|
|
93
|
+
className: o(
|
|
94
|
+
"w-full p-3 mt-2",
|
|
95
|
+
"bg-transparent border border-dashed border-slate-200 rounded-xl",
|
|
96
|
+
"text-sm text-slate-500",
|
|
97
|
+
"transition-colors hover:border-slate-400 hover:text-slate-700"
|
|
40
98
|
),
|
|
41
|
-
children:
|
|
99
|
+
children: [
|
|
100
|
+
"View all ",
|
|
101
|
+
l.length,
|
|
102
|
+
" tasks"
|
|
103
|
+
]
|
|
42
104
|
}
|
|
43
105
|
)
|
|
44
|
-
] })
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
f.displayName = "Textarea";
|
|
106
|
+
] })
|
|
107
|
+
] });
|
|
108
|
+
};
|
|
48
109
|
export {
|
|
49
|
-
|
|
110
|
+
z as TaskList
|
|
50
111
|
};
|
|
51
112
|
//# sourceMappingURL=index68.js.map
|
package/dist/index68.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index68.js","sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"index68.js","sources":["../src/components/TaskList/TaskList.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\nimport { Panel, PanelHeader, PanelTitle, PanelAction, PanelEmptyState } from '../Panel/Panel'\nimport { Badge } from '../Badge/Badge'\n\nexport interface Task {\n id: string\n title: string\n description?: string\n dueDate?: string\n priority?: 'high' | 'medium' | 'low'\n status?: 'pending' | 'overdue' | 'completed'\n meta?: string\n}\n\nexport interface TaskListProps {\n tasks: Task[]\n title?: string\n onTaskClick?: (task: Task) => void\n onViewAll?: () => void\n onAddTask?: () => void\n maxTasks?: number\n emptyMessage?: string\n className?: string\n}\n\nconst formatDueDate = (dateString?: string) => {\n if (!dateString) return null\n const date = new Date(dateString)\n const now = new Date()\n const diffDays = Math.ceil((date.getTime() - now.getTime()) / (1000 * 60 * 60 * 24))\n\n if (diffDays < 0) {\n return { text: `Overdue by ${Math.abs(diffDays)} days`, isOverdue: true }\n } else if (diffDays === 0) {\n return { text: 'Due today', isOverdue: true }\n } else if (diffDays === 1) {\n return { text: 'Due tomorrow', isOverdue: false }\n } else if (diffDays <= 7) {\n return { text: `Due in ${diffDays} days`, isOverdue: false }\n } else {\n return { text: `Due ${date.toLocaleDateString()}`, isOverdue: false }\n }\n}\n\nexport const TaskList = ({\n tasks,\n title = 'Tasks',\n onTaskClick,\n onViewAll,\n onAddTask,\n maxTasks = 5,\n emptyMessage = \"No tasks to display.\",\n className,\n}: TaskListProps) => {\n // Sort tasks: overdue first, then by priority, then by due date\n const sortedTasks = [...tasks]\n .filter((t) => t.status !== 'completed')\n .sort((a, b) => {\n if (a.status === 'overdue' && b.status !== 'overdue') return -1\n if (a.status !== 'overdue' && b.status === 'overdue') return 1\n if (a.priority === 'high' && b.priority !== 'high') return -1\n if (a.priority !== 'high' && b.priority === 'high') return 1\n if (a.dueDate && b.dueDate) {\n return new Date(a.dueDate).getTime() - new Date(b.dueDate).getTime()\n }\n return 0\n })\n .slice(0, maxTasks)\n\n const overdueCount = tasks.filter((t) => t.status === 'overdue').length\n\n return (\n <Panel className={className}>\n <PanelHeader>\n <PanelTitle\n badge={\n overdueCount > 0 ? (\n <Badge variant=\"danger\" size=\"sm\">\n {overdueCount} overdue\n </Badge>\n ) : undefined\n }\n >\n {title}\n </PanelTitle>\n {onAddTask && (\n <PanelAction onClick={onAddTask}>\n + Add Task\n </PanelAction>\n )}\n </PanelHeader>\n\n {sortedTasks.length === 0 ? (\n <PanelEmptyState message={emptyMessage} />\n ) : (\n <div className=\"flex flex-col gap-3\">\n {sortedTasks.map((task) => {\n const dueInfo = formatDueDate(task.dueDate)\n return (\n <div\n key={task.id}\n className={cn(\n 'flex items-start p-4',\n 'bg-white border border-slate-200 rounded-xl',\n 'transition-colors hover:bg-slate-50',\n onTaskClick && 'cursor-pointer'\n )}\n onClick={() => onTaskClick?.(task)}\n >\n <div className=\"flex-1 min-w-0\">\n <h4 className=\"text-sm font-semibold text-slate-900 m-0 mb-1\">\n {task.title}\n </h4>\n {task.description && (\n <p className=\"text-sm text-slate-500 m-0 mb-2 truncate\">\n {task.description}\n </p>\n )}\n <div className=\"flex items-center gap-2 flex-wrap\">\n {dueInfo && (\n <span\n className={cn(\n 'text-xs',\n dueInfo.isOverdue ? 'text-red-500 font-semibold' : 'text-slate-500'\n )}\n >\n {dueInfo.text}\n </span>\n )}\n {task.meta && (\n <>\n {dueInfo && <span className=\"text-slate-300\">•</span>}\n <span className=\"text-xs text-slate-500\">\n {task.meta}\n </span>\n </>\n )}\n {task.priority === 'high' && (\n <Badge variant=\"warning\" size=\"sm\">\n High Priority\n </Badge>\n )}\n </div>\n </div>\n {onTaskClick && (\n <button\n className={cn(\n 'px-3 py-1.5 ml-3 flex-shrink-0',\n 'bg-white border border-slate-200 rounded-lg',\n 'text-xs font-medium text-slate-700',\n 'transition-colors hover:bg-slate-100 hover:border-slate-300'\n )}\n onClick={(e) => {\n e.stopPropagation()\n onTaskClick(task)\n }}\n >\n View\n </button>\n )}\n </div>\n )\n })}\n\n {tasks.length > maxTasks && onViewAll && (\n <button\n onClick={onViewAll}\n className={cn(\n 'w-full p-3 mt-2',\n 'bg-transparent border border-dashed border-slate-200 rounded-xl',\n 'text-sm text-slate-500',\n 'transition-colors hover:border-slate-400 hover:text-slate-700'\n )}\n >\n View all {tasks.length} tasks\n </button>\n )}\n </div>\n )}\n </Panel>\n )\n}\n"],"names":["formatDueDate","dateString","date","now","diffDays","TaskList","tasks","title","onTaskClick","onViewAll","onAddTask","maxTasks","emptyMessage","className","sortedTasks","t","a","b","overdueCount","jsxs","Panel","PanelHeader","jsx","PanelTitle","Badge","PanelAction","PanelEmptyState","task","dueInfo","cn","Fragment","e"],"mappings":"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"}
|