@forgedevstack/bear 1.0.2 → 1.0.3
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/ActiveBar/ActiveBar.cjs +8 -0
- package/dist/components/ActiveBar/ActiveBar.d.ts +2 -0
- package/dist/components/ActiveBar/ActiveBar.js +90 -0
- package/dist/components/ActiveBar/ActiveBar.types.d.ts +16 -0
- package/dist/components/ActiveBar/index.d.ts +2 -0
- package/dist/components/Box/Box.cjs +1 -0
- package/dist/components/Box/Box.d.ts +2 -0
- package/dist/components/Box/Box.js +64 -0
- package/dist/components/Box/Box.types.d.ts +24 -0
- package/dist/components/Box/Box.utils.cjs +1 -0
- package/dist/components/Box/Box.utils.d.ts +3 -0
- package/dist/components/Box/Box.utils.js +21 -0
- package/dist/components/Box/index.d.ts +2 -0
- package/dist/components/Calendar/Calendar.cjs +1 -1
- package/dist/components/Calendar/Calendar.const.cjs +1 -0
- package/dist/components/Calendar/Calendar.const.d.ts +18 -0
- package/dist/components/Calendar/Calendar.const.js +27 -0
- package/dist/components/Calendar/Calendar.js +131 -145
- package/dist/components/Calendar/Calendar.types.d.ts +4 -0
- package/dist/components/Calendar/Calendar.utils.cjs +1 -0
- package/dist/components/Calendar/Calendar.utils.d.ts +41 -0
- package/dist/components/Calendar/Calendar.utils.js +33 -0
- package/dist/components/Calendar/index.d.ts +2 -0
- package/dist/components/CodeBlock/CodeBlock.cjs +2 -0
- package/dist/components/CodeBlock/CodeBlock.d.ts +2 -0
- package/dist/components/CodeBlock/CodeBlock.js +55 -0
- package/dist/components/CodeBlock/CodeBlock.types.d.ts +10 -0
- package/dist/components/CodeBlock/index.d.ts +2 -0
- package/dist/components/Columns/Columns.cjs +1 -0
- package/dist/components/Columns/Columns.d.ts +5 -0
- package/dist/components/Columns/Columns.js +54 -0
- package/dist/components/Columns/Columns.types.d.ts +17 -0
- package/dist/components/Columns/index.d.ts +2 -0
- package/dist/components/DateTimePicker/DateTimePicker.cjs +1 -1
- package/dist/components/DateTimePicker/DateTimePicker.js +28 -28
- package/dist/components/Editable/Editable.cjs +1 -0
- package/dist/components/Editable/Editable.d.ts +10 -0
- package/dist/components/Editable/Editable.js +194 -0
- package/dist/components/Editable/Editable.types.d.ts +39 -0
- package/dist/components/Editable/index.d.ts +2 -0
- package/dist/components/Em/Em.cjs +1 -0
- package/dist/components/Em/Em.d.ts +2 -0
- package/dist/components/Em/Em.js +24 -0
- package/dist/components/Em/Em.types.d.ts +5 -0
- package/dist/components/Em/index.d.ts +2 -0
- package/dist/components/Fab/Fab.cjs +1 -1
- package/dist/components/Fab/Fab.js +9 -9
- package/dist/components/Highlight/Highlight.cjs +1 -0
- package/dist/components/Highlight/Highlight.d.ts +2 -0
- package/dist/components/Highlight/Highlight.js +28 -0
- package/dist/components/Highlight/Highlight.types.d.ts +6 -0
- package/dist/components/Highlight/index.d.ts +2 -0
- package/dist/components/HoverCard/HoverCard.cjs +6 -0
- package/dist/components/HoverCard/HoverCard.d.ts +2 -0
- package/dist/components/HoverCard/HoverCard.js +68 -0
- package/dist/components/HoverCard/HoverCard.types.d.ts +13 -0
- package/dist/components/HoverCard/HoverCard.utils.cjs +1 -0
- package/dist/components/HoverCard/HoverCard.utils.d.ts +2 -0
- package/dist/components/HoverCard/HoverCard.utils.js +23 -0
- package/dist/components/HoverCard/index.d.ts +2 -0
- package/dist/components/Icon/icons/status.js +1 -1
- package/dist/components/Icon/index.cjs +1 -1
- package/dist/components/Icon/index.d.ts +5 -0
- package/dist/components/Icon/index.js +28 -21
- package/dist/components/Mark/Mark.cjs +1 -0
- package/dist/components/Mark/Mark.d.ts +2 -0
- package/dist/components/Mark/Mark.js +26 -0
- package/dist/components/Mark/Mark.types.d.ts +5 -0
- package/dist/components/Mark/index.d.ts +2 -0
- package/dist/components/RichEditor/RichEditor.cjs +10 -0
- package/dist/components/RichEditor/RichEditor.d.ts +4 -0
- package/dist/components/RichEditor/RichEditor.icons.cjs +1 -0
- package/dist/components/RichEditor/RichEditor.icons.d.ts +16 -0
- package/dist/components/RichEditor/RichEditor.icons.js +62 -0
- package/dist/components/RichEditor/RichEditor.js +151 -0
- package/dist/components/RichEditor/RichEditor.types.d.ts +20 -0
- package/dist/components/RichEditor/RichEditor.utils.cjs +1 -0
- package/dist/components/RichEditor/RichEditor.utils.d.ts +3 -0
- package/dist/components/RichEditor/RichEditor.utils.js +22 -0
- package/dist/components/RichEditor/index.d.ts +2 -0
- package/dist/components/Sidebar/Sidebar.cjs +1 -0
- package/dist/components/Sidebar/Sidebar.d.ts +5 -0
- package/dist/components/Sidebar/Sidebar.js +158 -0
- package/dist/components/Sidebar/Sidebar.types.d.ts +40 -0
- package/dist/components/Sidebar/index.d.ts +2 -0
- package/dist/components/Slider/Slider.cjs +1 -1
- package/dist/components/Slider/Slider.js +8 -8
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.d.ts +22 -0
- package/dist/components/index.js +87 -63
- package/dist/index.cjs +1 -1
- package/dist/index.js +107 -83
- package/dist/styles.css +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),a=require("react"),j={sm:"text-sm px-3 py-1.5",md:"text-sm px-4 py-2",lg:"text-base px-5 py-2.5"},g=a.forwardRef(({items:n,activeId:s,onItemClick:l,variant:t="default",size:x="md",fullWidth:d=!1,animated:o=!0,className:f="",...b},y)=>{const i=a.useRef(null),[p,h]=a.useState({});a.useEffect(()=>{if(!o||t!=="underline")return;const e=n.findIndex(v=>v.id===s);if(e===-1||!i.current)return;const u=i.current.querySelectorAll("button")[e];u&&h({left:u.offsetLeft,width:u.offsetWidth})},[s,n,o,t]);const k=e=>{switch(t){case"pills":return e?"bg-pink-500 text-white shadow-lg shadow-pink-500/30":"text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800";case"underline":return e?"text-pink-500 font-medium":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-200";default:return e?"bg-gray-100 dark:bg-gray-800 text-gray-900 dark:text-white font-medium":"text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800/50"}};return r.jsxs("div",{ref:y,className:`bear-active-bar relative ${d?"w-full":"inline-flex"} ${f}`.trim(),...b,children:[r.jsx("div",{ref:i,className:`flex ${d?"w-full":""} ${t==="underline"?"border-b border-gray-200 dark:border-gray-700":"gap-1"}`,children:n.map(e=>{const c=e.id===s;return r.jsxs("button",{onClick:()=>l==null?void 0:l(e),className:`
|
|
2
|
+
${d?"flex-1":""}
|
|
3
|
+
${j[x]}
|
|
4
|
+
${k(c)}
|
|
5
|
+
${t==="pills"?"rounded-full":t==="underline"?"relative pb-3":"rounded-lg"}
|
|
6
|
+
flex items-center justify-center gap-2
|
|
7
|
+
transition-all duration-200
|
|
8
|
+
`,children:[e.icon,r.jsx("span",{children:e.label}),e.badge!==void 0&&r.jsx("span",{className:"px-1.5 py-0.5 text-xs rounded-full bg-pink-100 dark:bg-pink-900/30 text-pink-600 dark:text-pink-400",children:e.badge})]},e.id)})}),o&&t==="underline"&&r.jsx("div",{className:"absolute bottom-0 h-0.5 bg-pink-500 transition-all duration-300 ease-out",style:p})]})});g.displayName="ActiveBar";exports.ActiveBar=g;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { jsxs as g, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as m, useRef as w, useState as v, useEffect as $ } from "react";
|
|
3
|
+
const N = {
|
|
4
|
+
sm: "text-sm px-3 py-1.5",
|
|
5
|
+
md: "text-sm px-4 py-2",
|
|
6
|
+
lg: "text-base px-5 py-2.5"
|
|
7
|
+
}, S = m(({
|
|
8
|
+
items: a,
|
|
9
|
+
activeId: n,
|
|
10
|
+
onItemClick: s,
|
|
11
|
+
variant: r = "default",
|
|
12
|
+
size: x = "md",
|
|
13
|
+
fullWidth: d = !1,
|
|
14
|
+
animated: l = !0,
|
|
15
|
+
className: c = "",
|
|
16
|
+
...f
|
|
17
|
+
}, p) => {
|
|
18
|
+
const o = w(null), [b, y] = v({});
|
|
19
|
+
$(() => {
|
|
20
|
+
if (!l || r !== "underline") return;
|
|
21
|
+
const e = a.findIndex((k) => k.id === n);
|
|
22
|
+
if (e === -1 || !o.current) return;
|
|
23
|
+
const i = o.current.querySelectorAll("button")[e];
|
|
24
|
+
i && y({
|
|
25
|
+
left: i.offsetLeft,
|
|
26
|
+
width: i.offsetWidth
|
|
27
|
+
});
|
|
28
|
+
}, [n, a, l, r]);
|
|
29
|
+
const h = (e) => {
|
|
30
|
+
switch (r) {
|
|
31
|
+
case "pills":
|
|
32
|
+
return e ? "bg-pink-500 text-white shadow-lg shadow-pink-500/30" : "text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800";
|
|
33
|
+
case "underline":
|
|
34
|
+
return e ? "text-pink-500 font-medium" : "text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-200";
|
|
35
|
+
default:
|
|
36
|
+
return e ? "bg-gray-100 dark:bg-gray-800 text-gray-900 dark:text-white font-medium" : "text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800/50";
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
return /* @__PURE__ */ g(
|
|
40
|
+
"div",
|
|
41
|
+
{
|
|
42
|
+
ref: p,
|
|
43
|
+
className: `bear-active-bar relative ${d ? "w-full" : "inline-flex"} ${c}`.trim(),
|
|
44
|
+
...f,
|
|
45
|
+
children: [
|
|
46
|
+
/* @__PURE__ */ t(
|
|
47
|
+
"div",
|
|
48
|
+
{
|
|
49
|
+
ref: o,
|
|
50
|
+
className: `flex ${d ? "w-full" : ""} ${r === "underline" ? "border-b border-gray-200 dark:border-gray-700" : "gap-1"}`,
|
|
51
|
+
children: a.map((e) => {
|
|
52
|
+
const u = e.id === n;
|
|
53
|
+
return /* @__PURE__ */ g(
|
|
54
|
+
"button",
|
|
55
|
+
{
|
|
56
|
+
onClick: () => s == null ? void 0 : s(e),
|
|
57
|
+
className: `
|
|
58
|
+
${d ? "flex-1" : ""}
|
|
59
|
+
${N[x]}
|
|
60
|
+
${h(u)}
|
|
61
|
+
${r === "pills" ? "rounded-full" : r === "underline" ? "relative pb-3" : "rounded-lg"}
|
|
62
|
+
flex items-center justify-center gap-2
|
|
63
|
+
transition-all duration-200
|
|
64
|
+
`,
|
|
65
|
+
children: [
|
|
66
|
+
e.icon,
|
|
67
|
+
/* @__PURE__ */ t("span", { children: e.label }),
|
|
68
|
+
e.badge !== void 0 && /* @__PURE__ */ t("span", { className: "px-1.5 py-0.5 text-xs rounded-full bg-pink-100 dark:bg-pink-900/30 text-pink-600 dark:text-pink-400", children: e.badge })
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
e.id
|
|
72
|
+
);
|
|
73
|
+
})
|
|
74
|
+
}
|
|
75
|
+
),
|
|
76
|
+
l && r === "underline" && /* @__PURE__ */ t(
|
|
77
|
+
"div",
|
|
78
|
+
{
|
|
79
|
+
className: "absolute bottom-0 h-0.5 bg-pink-500 transition-all duration-300 ease-out",
|
|
80
|
+
style: b
|
|
81
|
+
}
|
|
82
|
+
)
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
});
|
|
87
|
+
S.displayName = "ActiveBar";
|
|
88
|
+
export {
|
|
89
|
+
S as ActiveBar
|
|
90
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export interface ActiveBarItem {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string;
|
|
5
|
+
icon?: ReactNode;
|
|
6
|
+
badge?: string | number;
|
|
7
|
+
}
|
|
8
|
+
export interface ActiveBarProps extends HTMLAttributes<HTMLDivElement> {
|
|
9
|
+
items: ActiveBarItem[];
|
|
10
|
+
activeId?: string;
|
|
11
|
+
onItemClick?: (item: ActiveBarItem) => void;
|
|
12
|
+
variant?: 'default' | 'pills' | 'underline';
|
|
13
|
+
size?: 'sm' | 'md' | 'lg';
|
|
14
|
+
fullWidth?: boolean;
|
|
15
|
+
animated?: boolean;
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("react/jsx-runtime"),O=require("react"),s=require("./Box.utils.cjs"),l=O.forwardRef(({children:i,as:e="div",className:p="",p:t,px:r,py:C,pt:g,pb:T,pl:m,pr:d,m:u,mx:x,my:b,mt:y,mb:B,ml:$,mr:f,bg:a,rounded:o,shadow:n,border:j,borderColor:c,style:q,...M},R)=>{const S=[s.spacingToClass(t,"p"),s.spacingToClass(r,"px"),s.spacingToClass(C,"py"),s.spacingToClass(g,"pt"),s.spacingToClass(T,"pb"),s.spacingToClass(m,"pl"),s.spacingToClass(d,"pr"),s.spacingToClass(u,"m"),s.spacingToClass(x,"mx"),s.spacingToClass(b,"my"),s.spacingToClass(y,"mt"),s.spacingToClass(B,"mb"),s.spacingToClass($,"ml"),s.spacingToClass(f,"mr")].filter(Boolean).join(" "),v=o?s.roundedMap[o]:"",w=n?s.shadowMap[n]:"",N=j?"border":"",h={...q,...a?{backgroundColor:a}:{},...c?{borderColor:c}:{}};return k.jsx(e,{ref:R,className:`bear-box ${S} ${v} ${w} ${N} ${p}`.trim(),style:h,...M,children:i})});l.displayName="Box";exports.Box=l;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsx as T } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as q } from "react";
|
|
3
|
+
import { roundedMap as z, shadowMap as A, spacingToClass as o } from "./Box.utils.js";
|
|
4
|
+
const D = q(({
|
|
5
|
+
children: t,
|
|
6
|
+
as: p = "div",
|
|
7
|
+
className: e = "",
|
|
8
|
+
p: n,
|
|
9
|
+
px: l,
|
|
10
|
+
py: c,
|
|
11
|
+
pt: i,
|
|
12
|
+
pb: d,
|
|
13
|
+
pl: x,
|
|
14
|
+
pr: b,
|
|
15
|
+
m: f,
|
|
16
|
+
mx: y,
|
|
17
|
+
my: C,
|
|
18
|
+
mt: $,
|
|
19
|
+
mb: u,
|
|
20
|
+
ml: B,
|
|
21
|
+
mr: g,
|
|
22
|
+
bg: s,
|
|
23
|
+
rounded: r,
|
|
24
|
+
shadow: a,
|
|
25
|
+
border: j,
|
|
26
|
+
borderColor: m,
|
|
27
|
+
style: w,
|
|
28
|
+
...M
|
|
29
|
+
}, N) => {
|
|
30
|
+
const h = [
|
|
31
|
+
o(n, "p"),
|
|
32
|
+
o(l, "px"),
|
|
33
|
+
o(c, "py"),
|
|
34
|
+
o(i, "pt"),
|
|
35
|
+
o(d, "pb"),
|
|
36
|
+
o(x, "pl"),
|
|
37
|
+
o(b, "pr"),
|
|
38
|
+
o(f, "m"),
|
|
39
|
+
o(y, "mx"),
|
|
40
|
+
o(C, "my"),
|
|
41
|
+
o($, "mt"),
|
|
42
|
+
o(u, "mb"),
|
|
43
|
+
o(B, "ml"),
|
|
44
|
+
o(g, "mr")
|
|
45
|
+
].filter(Boolean).join(" "), k = r ? z[r] : "", v = a ? A[a] : "", R = j ? "border" : "", S = {
|
|
46
|
+
...w,
|
|
47
|
+
...s ? { backgroundColor: s } : {},
|
|
48
|
+
...m ? { borderColor: m } : {}
|
|
49
|
+
};
|
|
50
|
+
return /* @__PURE__ */ T(
|
|
51
|
+
p,
|
|
52
|
+
{
|
|
53
|
+
ref: N,
|
|
54
|
+
className: `bear-box ${h} ${k} ${v} ${R} ${e}`.trim(),
|
|
55
|
+
style: S,
|
|
56
|
+
...M,
|
|
57
|
+
children: t
|
|
58
|
+
}
|
|
59
|
+
);
|
|
60
|
+
});
|
|
61
|
+
D.displayName = "Box";
|
|
62
|
+
export {
|
|
63
|
+
D as Box
|
|
64
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export interface BoxProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
children?: ReactNode;
|
|
4
|
+
as?: 'div' | 'section' | 'article' | 'aside' | 'main' | 'header' | 'footer' | 'nav';
|
|
5
|
+
p?: number | string;
|
|
6
|
+
px?: number | string;
|
|
7
|
+
py?: number | string;
|
|
8
|
+
pt?: number | string;
|
|
9
|
+
pb?: number | string;
|
|
10
|
+
pl?: number | string;
|
|
11
|
+
pr?: number | string;
|
|
12
|
+
m?: number | string;
|
|
13
|
+
mx?: number | string;
|
|
14
|
+
my?: number | string;
|
|
15
|
+
mt?: number | string;
|
|
16
|
+
mb?: number | string;
|
|
17
|
+
ml?: number | string;
|
|
18
|
+
mr?: number | string;
|
|
19
|
+
bg?: string;
|
|
20
|
+
rounded?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
|
|
21
|
+
shadow?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
22
|
+
border?: boolean;
|
|
23
|
+
borderColor?: string;
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=(d,o)=>d===void 0?"":typeof d=="number"?`${o}-${d}`:`${o}-[${d}]`,s={none:"rounded-none",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg",xl:"rounded-xl","2xl":"rounded-2xl",full:"rounded-full"},e={none:"shadow-none",sm:"shadow-sm",md:"shadow-md",lg:"shadow-lg",xl:"shadow-xl","2xl":"shadow-2xl"};exports.roundedMap=s;exports.shadowMap=e;exports.spacingToClass=n;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const n = (d, o) => d === void 0 ? "" : typeof d == "number" ? `${o}-${d}` : `${o}-[${d}]`, s = {
|
|
2
|
+
none: "rounded-none",
|
|
3
|
+
sm: "rounded-sm",
|
|
4
|
+
md: "rounded-md",
|
|
5
|
+
lg: "rounded-lg",
|
|
6
|
+
xl: "rounded-xl",
|
|
7
|
+
"2xl": "rounded-2xl",
|
|
8
|
+
full: "rounded-full"
|
|
9
|
+
}, r = {
|
|
10
|
+
none: "shadow-none",
|
|
11
|
+
sm: "shadow-sm",
|
|
12
|
+
md: "shadow-md",
|
|
13
|
+
lg: "shadow-lg",
|
|
14
|
+
xl: "shadow-xl",
|
|
15
|
+
"2xl": "shadow-2xl"
|
|
16
|
+
};
|
|
17
|
+
export {
|
|
18
|
+
s as roundedMap,
|
|
19
|
+
r as shadowMap,
|
|
20
|
+
n as spacingToClass
|
|
21
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("react"),P=require("../../utils/cn.cjs"),le=require("../../hooks/useBearStyles.cjs"),y=require("../Icon/index.cjs"),a=require("./Calendar.const.cjs"),u=require("./Calendar.utils.cjs"),ue=({month:h,year:m})=>e.jsxs("span",{className:"font-semibold text-sm select-none",children:[h," ",m]}),xe=({viewDate:h,value:m=null,onSelect:p,onViewChange:c,minDate:j,maxDate:g,disabledDates:S=[],highlightedDates:D=[],weekdayLabels:U=a.DEFAULT_WEEKDAYS,firstDayOfWeek:N=a.NUMBER.ZERO,showWeekNumbers:be=!1,slots:t={},clearable:T=!0,onClear:x,showTodayButton:A=!0,onToday:b,bis:G,style:w,inline:K=!1,className:Z})=>{const o=h.getFullYear(),Y=le.useBearStyles(G,w),i=h.getMonth(),J=d.useMemo(()=>new Date,[]),f=d.useCallback(()=>{c==null||c(new Date(o-a.NUMBER.ONE,i,a.NUMBER.ONE))},[o,i,c]),O=d.useCallback(()=>{c==null||c(new Date(o,i-a.NUMBER.ONE,a.NUMBER.ONE))},[o,i,c]),L=d.useCallback(()=>{c==null||c(new Date(o,i+a.NUMBER.ONE,a.NUMBER.ONE))},[o,i,c]),E=d.useCallback(()=>{c==null||c(new Date(o+a.NUMBER.ONE,i,a.NUMBER.ONE))},[o,i,c]),M=O,B=L,Q={onPrevYear:f,onPrevMonth:O,onNextMonth:L,onNextYear:E},X=d.useCallback(n=>j&&n<j||g&&n>g?!0:S.some(r=>u.isSameDay(r,n)),[j,g,S]),$=d.useCallback(n=>D.some(r=>u.isSameDay(r,n)),[D]),V=d.useMemo(()=>u.buildCalendarGrid(o,i,N),[o,i,N]),q=d.useMemo(()=>u.reorderWeekdays(U,N),[U,N]),W=a.MONTHS[i],R=m!=null,ee=K?"block w-full bg-white dark:bg-gray-900 rounded-xl shadow-none border border-zinc-200 dark:border-zinc-700 p-4 text-zinc-900 dark:text-zinc-100":"absolute z-50 mt-2 bg-white dark:bg-gray-900 rounded-xl shadow-xl border border-zinc-200 dark:border-zinc-700 p-4 w-80 text-zinc-900 dark:text-zinc-100",te=()=>{if(t.header)return t.header({month:W,year:o,onPrev:M,onNext:B,nav:Q});const n=t.navPrevYear,r=t.navPrev,s=t.navNext,l=t.navNextYear,v=t.headerLabel||ue;return e.jsxs("div",{className:"flex items-center justify-between gap-1 mb-4",children:[e.jsxs("div",{className:"flex items-center gap-0.5",children:[n?n({onClick:f}):e.jsx("button",{type:"button",onClick:f,className:"p-1.5 rounded text-zinc-500 dark:text-zinc-400 hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors","aria-label":"Previous year",children:e.jsx(y.ChevronsLeftIcon,{size:16})}),r?r({onClick:M}):e.jsx("button",{type:"button",onClick:M,className:"p-1.5 rounded text-zinc-500 dark:text-zinc-400 hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors","aria-label":"Previous month",children:e.jsx(y.ChevronLeftIcon,{size:16})})]}),v({month:W,year:o}),e.jsxs("div",{className:"flex items-center gap-0.5",children:[s?s({onClick:B}):e.jsx("button",{type:"button",onClick:B,className:"p-1.5 rounded text-zinc-500 dark:text-zinc-400 hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors","aria-label":"Next month",children:e.jsx(y.ChevronRightIcon,{size:16})}),l?l({onClick:E}):e.jsx("button",{type:"button",onClick:E,className:"p-1.5 rounded text-zinc-500 dark:text-zinc-400 hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors","aria-label":"Next year",children:e.jsx(y.ChevronsRightIcon,{size:16})})]})]})},re=()=>{if(t.weekdays)return t.weekdays({days:q});const n=t.weekday;return e.jsx("div",{className:"grid grid-cols-7 gap-1 mb-2",children:q.map(r=>n?e.jsx("div",{children:n({label:r})},r):e.jsx("div",{className:P.cn("text-center text-xs font-medium uppercase",a.WEEKEND_LABELS.includes(r)&&"text-red-500"),children:r},r))})},ne=(n,r)=>{const{date:s,isCurrentMonth:l}=n,v=s.getDate(),ae=s.getDay(),ie=u.isWeekendDay(ae),k=u.isSameDay(m,s),C=u.isSameDay(J,s),z=X(s),F=$(s),I=()=>{z||p==null||p(s)},de={date:s,day:v,isCurrentMonth:l,isSelected:k,isToday:C,isDisabled:z,isHighlighted:F,onClick:I};return t.day?e.jsx("span",{children:t.day(de)},r):e.jsx("button",{type:"button",onClick:I,disabled:z,className:P.cn("w-8 h-8 rounded-full text-sm font-medium transition-colors flex items-center justify-center",k&&"bg-pink-500 text-white hover:bg-pink-600",!k&&C&&"ring-2 ring-pink-500/50 bg-transparent",!k&&!C&&(l?ie?"text-red-500 dark:text-red-400 hover:bg-zinc-100 dark:hover:bg-zinc-800":"text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-800":"text-zinc-400 dark:text-zinc-600 hover:bg-zinc-50 dark:hover:bg-zinc-800/50"),F&&!k&&"bg-pink-500/15",z&&"opacity-40 cursor-not-allowed"),children:v},r)},ce=()=>{const n=V.map((r,s)=>ne(r,s));return t.daysGrid?t.daysGrid({children:n,className:"grid grid-cols-7 gap-1"}):e.jsx("div",{className:"grid grid-cols-7 gap-1",children:n})},se=()=>{const n=T&&R&&x,r=A&&b;if(!n&&!r)return null;if(t.footer){const s=t.clearButton,l=t.todayButton;return t.footer({children:e.jsxs("div",{className:"flex justify-between gap-2 mt-4 pt-3 border-t border-zinc-200 dark:border-zinc-700",children:[n&&s?s({onClick:x,hasSelection:R}):n?e.jsx("button",{type:"button",onClick:x,className:"text-sm text-zinc-500 dark:text-zinc-400 hover:text-zinc-700 dark:hover:text-zinc-200",children:"Clear"}):e.jsx("span",{}),r&&l?l({onClick:b}):r?e.jsx("button",{type:"button",onClick:b,className:"text-sm text-pink-600 hover:text-pink-700 font-medium",children:"Today"}):null]})})}return t.clearButton&&t.todayButton?e.jsxs("div",{className:"flex justify-between gap-2 mt-4 pt-3 border-t border-zinc-200 dark:border-zinc-700",children:[n&&t.clearButton({onClick:x,hasSelection:R}),r&&t.todayButton({onClick:b})]}):e.jsxs("div",{className:"flex justify-between gap-2 mt-4 pt-3 border-t border-zinc-200 dark:border-zinc-700",children:[n?e.jsx("button",{type:"button",onClick:x,className:"text-sm text-zinc-500 dark:text-zinc-400 hover:text-zinc-700 dark:hover:text-zinc-200 transition-colors",children:"Clear"}):e.jsx("span",{}),r?e.jsx("button",{type:"button",onClick:b,className:"text-sm text-pink-600 dark:text-pink-400 hover:text-pink-700 dark:hover:text-pink-300 font-medium transition-colors",children:"Today"}):null]})},H=e.jsxs(e.Fragment,{children:[te(),re(),ce(),se()]}),_=P.cn(ee,Z),oe=Object.keys(Y).length?Y:void 0;return t.root?t.root({children:H,className:_}):e.jsx("div",{className:_,style:oe,children:H})};exports.Calendar=xe;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E={ZERO:0,ONE:1,SIX:6,SEVEN:7,ELEVEN:11,TOTAL_CELLS:42},e=["SUN","MON","TUE","WED","THU","FRI","SAT"],S=["January","February","March","April","May","June","July","August","September","October","November","December"],t=["SUN","SAT","Sun","Sat"];exports.DEFAULT_WEEKDAYS=e;exports.MONTHS=S;exports.NUMBER=E;exports.WEEKEND_LABELS=t;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calendar Component Constants
|
|
3
|
+
*/
|
|
4
|
+
export declare const NUMBER: {
|
|
5
|
+
readonly ZERO: 0;
|
|
6
|
+
readonly ONE: 1;
|
|
7
|
+
readonly SIX: 6;
|
|
8
|
+
readonly SEVEN: 7;
|
|
9
|
+
readonly ELEVEN: 11;
|
|
10
|
+
readonly TOTAL_CELLS: 42;
|
|
11
|
+
};
|
|
12
|
+
export declare const DEFAULT_WEEKDAYS: readonly ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"];
|
|
13
|
+
export declare const MONTHS: readonly ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
|
|
14
|
+
export declare const WEEKEND: {
|
|
15
|
+
readonly SUNDAY: 0;
|
|
16
|
+
readonly SATURDAY: 6;
|
|
17
|
+
};
|
|
18
|
+
export declare const WEEKEND_LABELS: readonly ["SUN", "SAT", "Sun", "Sat"];
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const E = {
|
|
2
|
+
ZERO: 0,
|
|
3
|
+
ONE: 1,
|
|
4
|
+
SIX: 6,
|
|
5
|
+
SEVEN: 7,
|
|
6
|
+
ELEVEN: 11,
|
|
7
|
+
TOTAL_CELLS: 42
|
|
8
|
+
}, S = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"], e = [
|
|
9
|
+
"January",
|
|
10
|
+
"February",
|
|
11
|
+
"March",
|
|
12
|
+
"April",
|
|
13
|
+
"May",
|
|
14
|
+
"June",
|
|
15
|
+
"July",
|
|
16
|
+
"August",
|
|
17
|
+
"September",
|
|
18
|
+
"October",
|
|
19
|
+
"November",
|
|
20
|
+
"December"
|
|
21
|
+
], r = ["SUN", "SAT", "Sun", "Sat"];
|
|
22
|
+
export {
|
|
23
|
+
S as DEFAULT_WEEKDAYS,
|
|
24
|
+
e as MONTHS,
|
|
25
|
+
E as NUMBER,
|
|
26
|
+
r as WEEKEND_LABELS
|
|
27
|
+
};
|