@forgedevstack/bear 1.0.0 → 1.0.2
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/Alert/Alert.cjs +1 -1
- package/dist/components/Alert/Alert.js +38 -38
- package/dist/components/AppBar/AppBar.cjs +1 -1
- package/dist/components/AppBar/AppBar.js +15 -15
- package/dist/components/Badge/Badge.cjs +1 -1
- package/dist/components/Badge/Badge.constants.cjs +1 -0
- package/dist/components/Badge/Badge.constants.d.ts +6 -0
- package/dist/components/Badge/Badge.constants.js +34 -0
- package/dist/components/Badge/Badge.js +27 -52
- package/dist/components/Button/Button.cjs +1 -57
- package/dist/components/Button/Button.constants.cjs +57 -0
- package/dist/components/Button/Button.constants.d.ts +3 -0
- package/dist/components/Button/Button.constants.js +77 -0
- package/dist/components/Button/Button.js +55 -119
- package/dist/components/Button/Button.types.d.ts +6 -1
- package/dist/components/ButtonGroup/ButtonGroup.cjs +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.js +17 -17
- package/dist/components/Calendar/Calendar.cjs +1 -0
- package/dist/components/Calendar/Calendar.d.ts +3 -0
- package/dist/components/Calendar/Calendar.js +203 -0
- package/dist/components/Calendar/Calendar.types.d.ts +124 -0
- package/dist/components/Calendar/index.d.ts +2 -0
- package/dist/components/Card/Card.cjs +1 -1
- package/dist/components/Card/Card.js +65 -65
- package/dist/components/Checkbox/Checkbox.cjs +1 -1
- package/dist/components/Checkbox/Checkbox.js +48 -48
- package/dist/components/Container/Container.cjs +1 -1
- package/dist/components/Container/Container.js +15 -15
- package/dist/components/DatePicker/DatePicker.cjs +1 -1
- package/dist/components/DatePicker/DatePicker.js +77 -85
- package/dist/components/DatePicker/DatePicker.types.d.ts +9 -0
- package/dist/components/DatePicker/DatePicker.utils.cjs +1 -0
- package/dist/components/DatePicker/DatePicker.utils.d.ts +1 -0
- package/dist/components/DatePicker/DatePicker.utils.js +9 -0
- package/dist/components/DateTimePicker/DateTimePicker.cjs +1 -0
- package/dist/components/DateTimePicker/DateTimePicker.d.ts +3 -0
- package/dist/components/DateTimePicker/DateTimePicker.js +178 -0
- package/dist/components/DateTimePicker/DateTimePicker.types.d.ts +26 -0
- package/dist/components/DateTimePicker/DateTimePicker.utils.cjs +1 -0
- package/dist/components/DateTimePicker/DateTimePicker.utils.d.ts +2 -0
- package/dist/components/DateTimePicker/DateTimePicker.utils.js +16 -0
- package/dist/components/DateTimePicker/index.d.ts +2 -0
- package/dist/components/Divider/Divider.cjs +1 -1
- package/dist/components/Divider/Divider.js +29 -29
- package/dist/components/Dropdown/Dropdown.cjs +1 -1
- package/dist/components/Dropdown/Dropdown.js +70 -70
- package/dist/components/Fab/Fab.cjs +1 -1
- package/dist/components/Fab/Fab.js +42 -42
- package/dist/components/FileUpload/FileUpload.cjs +1 -1
- package/dist/components/FileUpload/FileUpload.js +46 -49
- package/dist/components/FileUpload/FileUpload.utils.cjs +1 -0
- package/dist/components/FileUpload/FileUpload.utils.d.ts +1 -0
- package/dist/components/FileUpload/FileUpload.utils.js +9 -0
- package/dist/components/Flex/Flex.cjs +1 -1
- package/dist/components/Flex/Flex.js +58 -58
- package/dist/components/Grid/Grid.cjs +1 -1
- package/dist/components/Grid/Grid.js +60 -60
- package/dist/components/Link/Link.cjs +1 -1
- package/dist/components/Link/Link.js +47 -47
- package/dist/components/List/List.cjs +1 -1
- package/dist/components/List/List.js +117 -117
- package/dist/components/Menu/Menu.cjs +1 -1
- package/dist/components/Menu/Menu.js +58 -58
- package/dist/components/Paper/Paper.cjs +1 -1
- package/dist/components/Paper/Paper.js +36 -36
- package/dist/components/Radio/Radio.cjs +1 -1
- package/dist/components/Radio/Radio.js +79 -79
- package/dist/components/Rating/Rating.cjs +1 -1
- package/dist/components/Rating/Rating.js +37 -37
- package/dist/components/SpeedDial/SpeedDial.cjs +1 -1
- package/dist/components/SpeedDial/SpeedDial.js +40 -40
- package/dist/components/Spinner/Spinner.cjs +1 -1
- package/dist/components/Spinner/Spinner.js +24 -24
- package/dist/components/TimePicker/TimePicker.cjs +1 -1
- package/dist/components/TimePicker/TimePicker.constants.cjs +1 -0
- package/dist/components/TimePicker/TimePicker.constants.d.ts +5 -0
- package/dist/components/TimePicker/TimePicker.constants.js +16 -0
- package/dist/components/TimePicker/TimePicker.js +91 -70
- package/dist/components/TimePicker/TimePicker.types.d.ts +5 -2
- package/dist/components/TimePicker/TimePicker.utils.cjs +1 -0
- package/dist/components/TimePicker/TimePicker.utils.d.ts +1 -0
- package/dist/components/TimePicker/TimePicker.utils.js +7 -0
- package/dist/components/TransferList/TransferList.cjs +1 -1
- package/dist/components/TransferList/TransferList.js +74 -74
- package/dist/components/Typography/Typography.cjs +1 -1
- package/dist/components/Typography/Typography.js +52 -52
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +67 -63
- package/dist/context/BearProvider.cjs +1 -1
- package/dist/context/BearProvider.d.ts +6 -1
- package/dist/context/BearProvider.js +42 -38
- package/dist/context/index.cjs +1 -1
- package/dist/context/index.d.ts +1 -1
- package/dist/context/index.js +6 -5
- package/dist/hooks/bearStyled.cjs +1 -0
- package/dist/hooks/bearStyled.d.ts +17 -0
- package/dist/hooks/bearStyled.js +17 -0
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.js +14 -10
- package/dist/hooks/useBearStyles.cjs +1 -0
- package/dist/hooks/useBearStyles.d.ts +11 -0
- package/dist/hooks/useBearStyles.js +14 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +99 -90
- package/dist/styles.css +1 -0
- package/dist/types/bis.types.d.ts +9 -0
- package/dist/types/component.types.d.ts +3 -0
- package/dist/types/index.d.ts +1 -0
- package/package.json +2 -2
|
@@ -1,125 +1,61 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { forwardRef as
|
|
3
|
-
import { cn as
|
|
4
|
-
import { Spinner as
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
md: "ember-px-4 ember-py-2 ember-text-sm ember-gap-2",
|
|
9
|
-
lg: "ember-px-5 ember-py-2.5 ember-text-base ember-gap-2",
|
|
10
|
-
xl: "ember-px-6 ember-py-3 ember-text-lg ember-gap-2.5"
|
|
11
|
-
}, h = {
|
|
12
|
-
primary: `
|
|
13
|
-
ember-bg-ember-500 ember-text-white
|
|
14
|
-
hover:ember-bg-ember-600
|
|
15
|
-
focus:ember-ring-2 focus:ember-ring-ember-500/50 focus:ember-ring-offset-2
|
|
16
|
-
active:ember-bg-ember-700
|
|
17
|
-
disabled:ember-bg-ember-300 disabled:ember-cursor-not-allowed
|
|
18
|
-
`,
|
|
19
|
-
secondary: `
|
|
20
|
-
ember-bg-forge-500 ember-text-white
|
|
21
|
-
hover:ember-bg-forge-600
|
|
22
|
-
focus:ember-ring-2 focus:ember-ring-forge-500/50 focus:ember-ring-offset-2
|
|
23
|
-
active:ember-bg-forge-700
|
|
24
|
-
disabled:ember-bg-forge-300 disabled:ember-cursor-not-allowed
|
|
25
|
-
`,
|
|
26
|
-
success: `
|
|
27
|
-
ember-bg-green-500 ember-text-white
|
|
28
|
-
hover:ember-bg-green-600
|
|
29
|
-
focus:ember-ring-2 focus:ember-ring-green-500/50 focus:ember-ring-offset-2
|
|
30
|
-
active:ember-bg-green-700
|
|
31
|
-
disabled:ember-bg-green-300 disabled:ember-cursor-not-allowed
|
|
32
|
-
`,
|
|
33
|
-
warning: `
|
|
34
|
-
ember-bg-yellow-500 ember-text-white
|
|
35
|
-
hover:ember-bg-yellow-600
|
|
36
|
-
focus:ember-ring-2 focus:ember-ring-yellow-500/50 focus:ember-ring-offset-2
|
|
37
|
-
active:ember-bg-yellow-700
|
|
38
|
-
disabled:ember-bg-yellow-300 disabled:ember-cursor-not-allowed
|
|
39
|
-
`,
|
|
40
|
-
danger: `
|
|
41
|
-
ember-bg-red-500 ember-text-white
|
|
42
|
-
hover:ember-bg-red-600
|
|
43
|
-
focus:ember-ring-2 focus:ember-ring-red-500/50 focus:ember-ring-offset-2
|
|
44
|
-
active:ember-bg-red-700
|
|
45
|
-
disabled:ember-bg-red-300 disabled:ember-cursor-not-allowed
|
|
46
|
-
`,
|
|
47
|
-
info: `
|
|
48
|
-
ember-bg-blue-500 ember-text-white
|
|
49
|
-
hover:ember-bg-blue-600
|
|
50
|
-
focus:ember-ring-2 focus:ember-ring-blue-500/50 focus:ember-ring-offset-2
|
|
51
|
-
active:ember-bg-blue-700
|
|
52
|
-
disabled:ember-bg-blue-300 disabled:ember-cursor-not-allowed
|
|
53
|
-
`,
|
|
54
|
-
ghost: `
|
|
55
|
-
ember-bg-transparent ember-text-gray-700
|
|
56
|
-
hover:ember-bg-gray-100
|
|
57
|
-
focus:ember-ring-2 focus:ember-ring-gray-500/50
|
|
58
|
-
active:ember-bg-gray-200
|
|
59
|
-
disabled:ember-text-gray-400 disabled:ember-cursor-not-allowed
|
|
60
|
-
dark:ember-text-gray-300 dark:hover:ember-bg-gray-800 dark:active:ember-bg-gray-700
|
|
61
|
-
`,
|
|
62
|
-
outline: `
|
|
63
|
-
ember-bg-transparent ember-text-ember-500 ember-border ember-border-ember-500
|
|
64
|
-
hover:ember-bg-ember-50
|
|
65
|
-
focus:ember-ring-2 focus:ember-ring-ember-500/50
|
|
66
|
-
active:ember-bg-ember-100
|
|
67
|
-
disabled:ember-text-ember-300 disabled:ember-border-ember-300 disabled:ember-cursor-not-allowed
|
|
68
|
-
dark:hover:ember-bg-ember-950 dark:active:ember-bg-ember-900
|
|
69
|
-
`,
|
|
70
|
-
error: `
|
|
71
|
-
ember-bg-red-500 ember-text-white
|
|
72
|
-
hover:ember-bg-red-600
|
|
73
|
-
focus:ember-ring-2 focus:ember-ring-red-500/50 focus:ember-ring-offset-2
|
|
74
|
-
active:ember-bg-red-700
|
|
75
|
-
disabled:ember-bg-red-300 disabled:ember-cursor-not-allowed
|
|
76
|
-
`
|
|
77
|
-
}, w = u(
|
|
1
|
+
import { jsxs as n, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as N } from "react";
|
|
3
|
+
import { cn as l } from "../../utils/cn.js";
|
|
4
|
+
import { Spinner as j } from "../Spinner/Spinner.js";
|
|
5
|
+
import { useBearStyles as k } from "../../hooks/useBearStyles.js";
|
|
6
|
+
import { variantClasses as v, sizeClasses as w } from "./Button.constants.js";
|
|
7
|
+
const B = N(
|
|
78
8
|
({
|
|
79
|
-
variant:
|
|
80
|
-
size:
|
|
9
|
+
variant: m = "primary",
|
|
10
|
+
size: a = "md",
|
|
81
11
|
loading: e = !1,
|
|
82
|
-
fullWidth:
|
|
83
|
-
leftIcon:
|
|
84
|
-
rightIcon:
|
|
85
|
-
disabled:
|
|
86
|
-
className:
|
|
87
|
-
children:
|
|
12
|
+
fullWidth: b = !1,
|
|
13
|
+
leftIcon: s,
|
|
14
|
+
rightIcon: i,
|
|
15
|
+
disabled: o,
|
|
16
|
+
className: c,
|
|
17
|
+
children: f,
|
|
88
18
|
testId: d,
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
19
|
+
bis: p,
|
|
20
|
+
style: u,
|
|
21
|
+
...x
|
|
22
|
+
}, h) => {
|
|
23
|
+
const y = o || e, t = k(p, u);
|
|
24
|
+
return /* @__PURE__ */ n(
|
|
25
|
+
"button",
|
|
26
|
+
{
|
|
27
|
+
ref: h,
|
|
28
|
+
disabled: y,
|
|
29
|
+
style: Object.keys(t).length ? t : void 0,
|
|
30
|
+
className: l(
|
|
31
|
+
// Base styles
|
|
32
|
+
"bear-inline-flex bear-items-center bear-justify-center bear-font-medium bear-rounded-lg bear-transition-all bear-duration-200 bear-outline-none",
|
|
33
|
+
// Size
|
|
34
|
+
w[a],
|
|
35
|
+
// Variant
|
|
36
|
+
v[m],
|
|
37
|
+
// Full width
|
|
38
|
+
b && "bear-w-full",
|
|
39
|
+
// Loading
|
|
40
|
+
e && "bear-cursor-wait",
|
|
41
|
+
// Custom className
|
|
42
|
+
c
|
|
43
|
+
),
|
|
44
|
+
"data-testid": d,
|
|
45
|
+
...x,
|
|
46
|
+
children: [
|
|
47
|
+
e && /* @__PURE__ */ r(j, { size: a === "xs" ? "xs" : "sm", className: "bear-absolute" }),
|
|
48
|
+
/* @__PURE__ */ n("span", { className: l("bear-inline-flex bear-items-center bear-gap-inherit", e && "bear-invisible"), children: [
|
|
49
|
+
s && /* @__PURE__ */ r("span", { className: "bear-inline-flex bear-shrink-0", children: s }),
|
|
50
|
+
f,
|
|
51
|
+
i && /* @__PURE__ */ r("span", { className: "bear-inline-flex bear-shrink-0", children: i })
|
|
52
|
+
] })
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
}
|
|
121
57
|
);
|
|
122
|
-
|
|
58
|
+
B.displayName = "Button";
|
|
123
59
|
export {
|
|
124
|
-
|
|
60
|
+
B as Button
|
|
125
61
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ButtonHTMLAttributes, ReactNode } from 'react';
|
|
2
2
|
import { EmberSize, EmberVariant } from '../../types';
|
|
3
|
-
|
|
3
|
+
import { BisProp } from '../../types/bis.types';
|
|
4
|
+
export interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'style'> {
|
|
4
5
|
/** Button variant style */
|
|
5
6
|
variant?: EmberVariant;
|
|
6
7
|
/** Button size */
|
|
@@ -15,4 +16,8 @@ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
|
15
16
|
rightIcon?: ReactNode;
|
|
16
17
|
/** Test ID for testing */
|
|
17
18
|
testId?: string;
|
|
19
|
+
/** Bear Inner Style - sx-like overrides */
|
|
20
|
+
bis?: BisProp;
|
|
21
|
+
/** Inline styles */
|
|
22
|
+
style?: React.CSSProperties;
|
|
18
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("react/jsx-runtime"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("react/jsx-runtime"),t=require("react"),c=require("../../utils/cn.cjs"),q=({children:b,size:f="md",variant:m="primary",orientation:p="horizontal",disabled:x=!1,fullWidth:l=!1,className:g,testId:y,...C})=>{const o=p==="horizontal",i=t.Children.toArray(b),h=i.map((r,d)=>{if(!t.isValidElement(r))return r;const n=d===0,s=d===i.length-1,u=!n&&!s;let e="";o?n?e="bear-rounded-r-none":s?e="bear-rounded-l-none":u&&(e="bear-rounded-none"):n?e="bear-rounded-b-none":s?e="bear-rounded-t-none":u&&(e="bear-rounded-none");let a="";return o&&!n?a="bear--ml-px":!o&&!n&&(a="bear--mt-px"),t.cloneElement(r,{size:f,variant:m,disabled:x||r.props.disabled,className:c.cn(e,a,l&&"bear-flex-1",r.props.className)})});return j.jsx("div",{role:"group",className:c.cn("bear-inline-flex",o?"bear-flex-row":"bear-flex-col",l&&"bear-w-full",g),"data-testid":y,...C,children:h})};exports.ButtonGroup=q;
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
import { jsx as y } from "react/jsx-runtime";
|
|
2
2
|
import { Children as z, isValidElement as N, cloneElement as w } from "react";
|
|
3
|
-
import { cn as
|
|
3
|
+
import { cn as f } from "../../utils/cn.js";
|
|
4
4
|
const v = ({
|
|
5
|
-
children:
|
|
6
|
-
size:
|
|
5
|
+
children: b,
|
|
6
|
+
size: m = "md",
|
|
7
7
|
variant: p = "primary",
|
|
8
8
|
orientation: u = "horizontal",
|
|
9
9
|
disabled: c = !1,
|
|
10
|
-
fullWidth:
|
|
10
|
+
fullWidth: l = !1,
|
|
11
11
|
className: x,
|
|
12
12
|
testId: C,
|
|
13
13
|
...g
|
|
14
14
|
}) => {
|
|
15
|
-
const o = u === "horizontal",
|
|
15
|
+
const o = u === "horizontal", i = z.toArray(b), h = i.map((r, t) => {
|
|
16
16
|
if (!N(r)) return r;
|
|
17
|
-
const n =
|
|
17
|
+
const n = t === 0, a = t === i.length - 1, d = !n && !a;
|
|
18
18
|
let e = "";
|
|
19
|
-
o ? n ? e = "
|
|
20
|
-
let
|
|
21
|
-
return o && !n ?
|
|
22
|
-
size:
|
|
19
|
+
o ? n ? e = "bear-rounded-r-none" : a ? e = "bear-rounded-l-none" : d && (e = "bear-rounded-none") : n ? e = "bear-rounded-b-none" : a ? e = "bear-rounded-t-none" : d && (e = "bear-rounded-none");
|
|
20
|
+
let s = "";
|
|
21
|
+
return o && !n ? s = "bear--ml-px" : !o && !n && (s = "bear--mt-px"), w(r, {
|
|
22
|
+
size: m,
|
|
23
23
|
variant: p,
|
|
24
24
|
disabled: c || r.props.disabled,
|
|
25
|
-
className:
|
|
25
|
+
className: f(
|
|
26
26
|
e,
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
s,
|
|
28
|
+
l && "bear-flex-1",
|
|
29
29
|
r.props.className
|
|
30
30
|
)
|
|
31
31
|
});
|
|
@@ -34,10 +34,10 @@ const v = ({
|
|
|
34
34
|
"div",
|
|
35
35
|
{
|
|
36
36
|
role: "group",
|
|
37
|
-
className:
|
|
38
|
-
"
|
|
39
|
-
o ? "
|
|
40
|
-
|
|
37
|
+
className: f(
|
|
38
|
+
"bear-inline-flex",
|
|
39
|
+
o ? "bear-flex-row" : "bear-flex-col",
|
|
40
|
+
l && "bear-w-full",
|
|
41
41
|
x
|
|
42
42
|
),
|
|
43
43
|
"data-testid": C,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),u=require("react"),A=require("../../utils/cn.cjs"),le=require("../../hooks/useBearStyles.cjs"),de=["SUN","MON","TUE","WED","THU","FRI","SAT"],ue=["January","February","March","April","May","June","July","August","September","October","November","December"],_=(b,n)=>new Date(b,n+1,0).getDate(),xe=(b,n)=>new Date(b,n,1).getDay(),M=(b,n)=>!b||!n?!1:b.getDate()===n.getDate()&&b.getMonth()===n.getMonth()&&b.getFullYear()===n.getFullYear();function me(b,n,N){let d=(xe(b,n)-N+7)%7;const v=_(b,n),y=n===0?11:n-1,f=n===0?b-1:b,p=_(f,y),i=[],w=42;for(let e=0;e<w;e++)if(e<d){const m=p-d+e+1;i.push({date:new Date(f,y,m),isCurrentMonth:!1})}else if(e<d+v){const m=e-d+1;i.push({date:new Date(b,n,m),isCurrentMonth:!0})}else{const m=e-d-v+1,h=n===11?0:n+1,D=n===11?b+1:b;i.push({date:new Date(D,h,m),isCurrentMonth:!1})}return i}const he=({viewDate:b,value:n=null,onSelect:N,onViewChange:s,minDate:d,maxDate:v,disabledDates:y=[],highlightedDates:f=[],weekdayLabels:p=de,firstDayOfWeek:i=0,showWeekNumbers:w=!1,slots:e={},clearable:m=!0,onClear:h,showTodayButton:D=!0,onToday:g,bis:K,style:L,inline:O=!1,className:Q})=>{const o=b.getFullYear(),E=le.useBearStyles(K,L),l=b.getMonth(),X=u.useMemo(()=>new Date,[]),P=u.useCallback(()=>{s==null||s(new Date(o-1,l,1))},[o,l,s]),H=u.useCallback(()=>{s==null||s(new Date(o,l-1,1))},[o,l,s]),U=u.useCallback(()=>{s==null||s(new Date(o,l+1,1))},[o,l,s]),S=u.useCallback(()=>{s==null||s(new Date(o+1,l,1))},[o,l,s]),Y=H,C=U,Z={onPrevYear:P,onPrevMonth:H,onNextMonth:U,onNextYear:S},$=u.useCallback(a=>d&&a<d||v&&a>v?!0:y.some(r=>M(r,a)),[d,v,y]),V=u.useCallback(a=>f.some(r=>M(r,a)),[f]),ee=u.useMemo(()=>me(o,l,i),[o,l,i]),q=u.useMemo(()=>i>0?[...p.slice(i),...p.slice(0,i)]:p,[p,i]),F=ue[l],B=n!=null,re=O?"bear-block bear-w-full bear-bg-white bear-rounded-xl bear-shadow-none bear-border bear-border-zinc-200 bear-p-4 bear-text-zinc-900":"bear-absolute bear-z-50 bear-mt-2 bear-bg-white bear-rounded-xl bear-shadow-xl bear-border bear-border-zinc-200 bear-p-4 bear-w-80 bear-text-zinc-900",te=()=>{if(e.header)return e.header({month:F,year:o,onPrev:Y,onNext:C,nav:Z});const a=e.navPrevYear,r=e.navPrev,c=e.navNext,x=e.navNextYear,j=e.headerLabel;return t.jsxs("div",{className:"bear-flex bear-items-center bear-justify-between bear-gap-1 bear-mb-4",children:[t.jsxs("div",{className:"bear-flex bear-items-center bear-gap-0.5",children:[a?a({onClick:P}):t.jsx("button",{type:"button",onClick:P,className:"bear-p-1.5 bear-rounded bear-text-zinc-500 hover:bear-bg-zinc-100 bear-dark:hover:bear-bg-zinc-800 bear-transition-colors bear-font-medium","aria-label":"Previous year",children:"‹‹"}),r?r({onClick:Y}):t.jsx("button",{type:"button",onClick:Y,className:"bear-p-1.5 bear-rounded bear-text-zinc-500 hover:bear-bg-zinc-100 bear-dark:hover:bear-bg-zinc-800 bear-transition-colors","aria-label":"Previous month",children:"‹"})]}),j?j({month:F,year:o}):t.jsxs("span",{className:"bear-font-semibold bear-text-sm bear-select-none",children:[F," ",o]}),t.jsxs("div",{className:"bear-flex bear-items-center bear-gap-0.5",children:[c?c({onClick:C}):t.jsx("button",{type:"button",onClick:C,className:"bear-p-1.5 bear-rounded bear-text-zinc-500 hover:bear-bg-zinc-100 bear-dark:hover:bear-bg-zinc-800 bear-transition-colors","aria-label":"Next month",children:"›"}),x?x({onClick:S}):t.jsx("button",{type:"button",onClick:S,className:"bear-p-1.5 bear-rounded bear-text-zinc-500 hover:bear-bg-zinc-100 bear-dark:hover:bear-bg-zinc-800 bear-transition-colors bear-font-medium","aria-label":"Next year",children:"››"})]})]})},ae=()=>{if(e.weekdays)return e.weekdays({days:q});const a=e.weekday;return t.jsx("div",{className:"bear-grid bear-grid-cols-7 bear-gap-1 bear-mb-2",children:q.map(r=>a?t.jsx("div",{children:a({label:r})},r):t.jsx("div",{className:A.cn("bear-text-center bear-text-xs bear-font-medium bear-uppercase",(r==="SUN"||r==="SAT"||r==="Sun"||r==="Sat")&&"bear-text-red-500"),children:r},r))})},ne=(a,r)=>{const{date:c,isCurrentMonth:x}=a,j=c.getDate(),J=c.getDay(),oe=J===0||J===6,k=M(n,c),T=M(X,c),z=$(c),R=V(c),W=()=>{z||N==null||N(c)},ie={date:c,day:j,isCurrentMonth:x,isSelected:k,isToday:T,isDisabled:z,isHighlighted:R,onClick:W};return e.day?t.jsx("span",{children:e.day(ie)},r):t.jsx("button",{type:"button",onClick:W,disabled:z,className:A.cn("bear-w-8 bear-h-8 bear-rounded-full bear-text-sm bear-font-medium bear-transition-colors bear-flex bear-items-center bear-justify-center",k&&"bear-bg-bear-500 bear-text-white hover:bear-bg-bear-600",!k&&T&&"bear-ring-2 bear-ring-bear-500/50 bear-bg-transparent",!k&&!T&&(x?oe?"bear-text-red-500 hover:bear-bg-zinc-100":"bear-text-zinc-700 hover:bear-bg-zinc-100":"bear-text-zinc-400 hover:bear-bg-zinc-50"),R&&!k&&"bear-bg-bear-500/15",z&&"bear-opacity-40 bear-cursor-not-allowed"),children:j},r)},be=()=>{const a=ee.map((r,c)=>ne(r,c));return e.daysGrid?e.daysGrid({children:a,className:"bear-grid bear-grid-cols-7 bear-gap-1"}):t.jsx("div",{className:"bear-grid bear-grid-cols-7 bear-gap-1",children:a})},se=()=>{const a=m&&B&&h,r=D&&g;if(!a&&!r)return null;if(e.footer){const c=e.clearButton,x=e.todayButton;return e.footer({children:t.jsxs("div",{className:"bear-flex bear-justify-between bear-gap-2 bear-mt-4 bear-pt-3 bear-border-t bear-border-zinc-200",children:[a&&c?c({onClick:h,hasSelection:B}):a?t.jsx("button",{type:"button",onClick:h,className:"bear-text-sm bear-text-zinc-500 hover:bear-text-zinc-700",children:"Clear"}):t.jsx("span",{}),r&&x?x({onClick:g}):r?t.jsx("button",{type:"button",onClick:g,className:"bear-text-sm bear-text-bear-600 hover:bear-text-bear-700 bear-font-medium",children:"Today"}):null]})})}return e.clearButton&&e.todayButton?t.jsxs("div",{className:"bear-flex bear-justify-between bear-gap-2 bear-mt-4 bear-pt-3 bear-border-t bear-border-zinc-200",children:[a&&e.clearButton({onClick:h,hasSelection:B}),r&&e.todayButton({onClick:g})]}):t.jsxs("div",{className:"bear-flex bear-justify-between bear-gap-2 bear-mt-4 bear-pt-3 bear-border-t bear-border-zinc-200",children:[a?t.jsx("button",{type:"button",onClick:h,className:"bear-text-sm bear-text-zinc-500 hover:bear-text-zinc-700 bear-transition-colors",children:"Clear"}):t.jsx("span",{}),r?t.jsx("button",{type:"button",onClick:g,className:"bear-text-sm bear-text-bear-600 hover:bear-text-bear-700 bear-font-medium bear-transition-colors",children:"Today"}):null]})},I=t.jsxs(t.Fragment,{children:[te(),ae(),be(),se()]}),G=A.cn(re,Q),ce=Object.keys(E).length?E:void 0;return e.root?e.root({children:I,className:G}):t.jsx("div",{className:G,style:ce,children:I})};exports.Calendar=he;
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { jsxs as m, Fragment as ue, jsx as c } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo as w, useCallback as N } from "react";
|
|
3
|
+
import { cn as E } from "../../utils/cn.js";
|
|
4
|
+
import { useBearStyles as me } from "../../hooks/useBearStyles.js";
|
|
5
|
+
const he = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"], xe = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], q = (n, a) => new Date(n, a + 1, 0).getDate(), ve = (n, a) => new Date(n, a, 1).getDay(), P = (n, a) => !n || !a ? !1 : n.getDate() === a.getDate() && n.getMonth() === a.getMonth() && n.getFullYear() === a.getFullYear();
|
|
6
|
+
function pe(n, a, f) {
|
|
7
|
+
let l = (ve(n, a) - f + 7) % 7;
|
|
8
|
+
const v = q(n, a), y = a === 0 ? 11 : a - 1, g = a === 0 ? n - 1 : n, p = q(g, y), i = [], H = 42;
|
|
9
|
+
for (let e = 0; e < H; e++)
|
|
10
|
+
if (e < l) {
|
|
11
|
+
const h = p - l + e + 1;
|
|
12
|
+
i.push({ date: new Date(g, y, h), isCurrentMonth: !1 });
|
|
13
|
+
} else if (e < l + v) {
|
|
14
|
+
const h = e - l + 1;
|
|
15
|
+
i.push({ date: new Date(n, a, h), isCurrentMonth: !0 });
|
|
16
|
+
} else {
|
|
17
|
+
const h = e - l - v + 1, x = a === 11 ? 0 : a + 1, Y = a === 11 ? n + 1 : n;
|
|
18
|
+
i.push({ date: new Date(Y, x, h), isCurrentMonth: !1 });
|
|
19
|
+
}
|
|
20
|
+
return i;
|
|
21
|
+
}
|
|
22
|
+
const ke = ({
|
|
23
|
+
viewDate: n,
|
|
24
|
+
value: a = null,
|
|
25
|
+
onSelect: f,
|
|
26
|
+
onViewChange: b,
|
|
27
|
+
minDate: l,
|
|
28
|
+
maxDate: v,
|
|
29
|
+
disabledDates: y = [],
|
|
30
|
+
highlightedDates: g = [],
|
|
31
|
+
weekdayLabels: p = he,
|
|
32
|
+
firstDayOfWeek: i = 0,
|
|
33
|
+
showWeekNumbers: H = !1,
|
|
34
|
+
slots: e = {},
|
|
35
|
+
clearable: h = !0,
|
|
36
|
+
onClear: x,
|
|
37
|
+
showTodayButton: Y = !0,
|
|
38
|
+
onToday: z,
|
|
39
|
+
bis: O,
|
|
40
|
+
style: Q,
|
|
41
|
+
inline: X = !1,
|
|
42
|
+
className: Z
|
|
43
|
+
}) => {
|
|
44
|
+
const s = n.getFullYear(), U = me(O, Q), d = n.getMonth(), $ = w(() => /* @__PURE__ */ new Date(), []), S = N(() => {
|
|
45
|
+
b == null || b(new Date(s - 1, d, 1));
|
|
46
|
+
}, [s, d, b]), I = N(() => {
|
|
47
|
+
b == null || b(new Date(s, d - 1, 1));
|
|
48
|
+
}, [s, d, b]), G = N(() => {
|
|
49
|
+
b == null || b(new Date(s, d + 1, 1));
|
|
50
|
+
}, [s, d, b]), F = N(() => {
|
|
51
|
+
b == null || b(new Date(s + 1, d, 1));
|
|
52
|
+
}, [s, d, b]), j = I, B = G, V = {
|
|
53
|
+
onPrevYear: S,
|
|
54
|
+
onPrevMonth: I,
|
|
55
|
+
onNextMonth: G,
|
|
56
|
+
onNextYear: F
|
|
57
|
+
}, ee = N(
|
|
58
|
+
(t) => l && t < l || v && t > v ? !0 : y.some((r) => P(r, t)),
|
|
59
|
+
[l, v, y]
|
|
60
|
+
), re = N(
|
|
61
|
+
(t) => g.some((r) => P(r, t)),
|
|
62
|
+
[g]
|
|
63
|
+
), te = w(
|
|
64
|
+
() => pe(s, d, i),
|
|
65
|
+
[s, d, i]
|
|
66
|
+
), J = w(
|
|
67
|
+
() => i > 0 ? [...p.slice(i), ...p.slice(0, i)] : p,
|
|
68
|
+
[p, i]
|
|
69
|
+
), T = xe[d], A = a != null, ae = X ? "bear-block bear-w-full bear-bg-white bear-rounded-xl bear-shadow-none bear-border bear-border-zinc-200 bear-p-4 bear-text-zinc-900" : "bear-absolute bear-z-50 bear-mt-2 bear-bg-white bear-rounded-xl bear-shadow-xl bear-border bear-border-zinc-200 bear-p-4 bear-w-80 bear-text-zinc-900", ne = () => {
|
|
70
|
+
if (e.header)
|
|
71
|
+
return e.header({ month: T, year: s, onPrev: j, onNext: B, nav: V });
|
|
72
|
+
const t = e.navPrevYear, r = e.navPrev, o = e.navNext, u = e.navNextYear, k = e.headerLabel;
|
|
73
|
+
return /* @__PURE__ */ m("div", { className: "bear-flex bear-items-center bear-justify-between bear-gap-1 bear-mb-4", children: [
|
|
74
|
+
/* @__PURE__ */ m("div", { className: "bear-flex bear-items-center bear-gap-0.5", children: [
|
|
75
|
+
t ? t({ onClick: S }) : /* @__PURE__ */ c(
|
|
76
|
+
"button",
|
|
77
|
+
{
|
|
78
|
+
type: "button",
|
|
79
|
+
onClick: S,
|
|
80
|
+
className: "bear-p-1.5 bear-rounded bear-text-zinc-500 hover:bear-bg-zinc-100 bear-dark:hover:bear-bg-zinc-800 bear-transition-colors bear-font-medium",
|
|
81
|
+
"aria-label": "Previous year",
|
|
82
|
+
children: "‹‹"
|
|
83
|
+
}
|
|
84
|
+
),
|
|
85
|
+
r ? r({ onClick: j }) : /* @__PURE__ */ c(
|
|
86
|
+
"button",
|
|
87
|
+
{
|
|
88
|
+
type: "button",
|
|
89
|
+
onClick: j,
|
|
90
|
+
className: "bear-p-1.5 bear-rounded bear-text-zinc-500 hover:bear-bg-zinc-100 bear-dark:hover:bear-bg-zinc-800 bear-transition-colors",
|
|
91
|
+
"aria-label": "Previous month",
|
|
92
|
+
children: "‹"
|
|
93
|
+
}
|
|
94
|
+
)
|
|
95
|
+
] }),
|
|
96
|
+
k ? k({ month: T, year: s }) : /* @__PURE__ */ m("span", { className: "bear-font-semibold bear-text-sm bear-select-none", children: [
|
|
97
|
+
T,
|
|
98
|
+
" ",
|
|
99
|
+
s
|
|
100
|
+
] }),
|
|
101
|
+
/* @__PURE__ */ m("div", { className: "bear-flex bear-items-center bear-gap-0.5", children: [
|
|
102
|
+
o ? o({ onClick: B }) : /* @__PURE__ */ c(
|
|
103
|
+
"button",
|
|
104
|
+
{
|
|
105
|
+
type: "button",
|
|
106
|
+
onClick: B,
|
|
107
|
+
className: "bear-p-1.5 bear-rounded bear-text-zinc-500 hover:bear-bg-zinc-100 bear-dark:hover:bear-bg-zinc-800 bear-transition-colors",
|
|
108
|
+
"aria-label": "Next month",
|
|
109
|
+
children: "›"
|
|
110
|
+
}
|
|
111
|
+
),
|
|
112
|
+
u ? u({ onClick: F }) : /* @__PURE__ */ c(
|
|
113
|
+
"button",
|
|
114
|
+
{
|
|
115
|
+
type: "button",
|
|
116
|
+
onClick: F,
|
|
117
|
+
className: "bear-p-1.5 bear-rounded bear-text-zinc-500 hover:bear-bg-zinc-100 bear-dark:hover:bear-bg-zinc-800 bear-transition-colors bear-font-medium",
|
|
118
|
+
"aria-label": "Next year",
|
|
119
|
+
children: "››"
|
|
120
|
+
}
|
|
121
|
+
)
|
|
122
|
+
] })
|
|
123
|
+
] });
|
|
124
|
+
}, be = () => {
|
|
125
|
+
if (e.weekdays) return e.weekdays({ days: J });
|
|
126
|
+
const t = e.weekday;
|
|
127
|
+
return /* @__PURE__ */ c("div", { className: "bear-grid bear-grid-cols-7 bear-gap-1 bear-mb-2", children: J.map(
|
|
128
|
+
(r) => t ? /* @__PURE__ */ c("div", { children: t({ label: r }) }, r) : /* @__PURE__ */ c(
|
|
129
|
+
"div",
|
|
130
|
+
{
|
|
131
|
+
className: E(
|
|
132
|
+
"bear-text-center bear-text-xs bear-font-medium bear-uppercase",
|
|
133
|
+
(r === "SUN" || r === "SAT" || r === "Sun" || r === "Sat") && "bear-text-red-500"
|
|
134
|
+
),
|
|
135
|
+
children: r
|
|
136
|
+
},
|
|
137
|
+
r
|
|
138
|
+
)
|
|
139
|
+
) });
|
|
140
|
+
}, ce = (t, r) => {
|
|
141
|
+
const { date: o, isCurrentMonth: u } = t, k = o.getDate(), K = o.getDay(), de = K === 0 || K === 6, M = P(a, o), C = P($, o), D = ee(o), L = re(o), R = () => {
|
|
142
|
+
D || f == null || f(o);
|
|
143
|
+
}, le = {
|
|
144
|
+
date: o,
|
|
145
|
+
day: k,
|
|
146
|
+
isCurrentMonth: u,
|
|
147
|
+
isSelected: M,
|
|
148
|
+
isToday: C,
|
|
149
|
+
isDisabled: D,
|
|
150
|
+
isHighlighted: L,
|
|
151
|
+
onClick: R
|
|
152
|
+
};
|
|
153
|
+
return e.day ? /* @__PURE__ */ c("span", { children: e.day(le) }, r) : /* @__PURE__ */ c(
|
|
154
|
+
"button",
|
|
155
|
+
{
|
|
156
|
+
type: "button",
|
|
157
|
+
onClick: R,
|
|
158
|
+
disabled: D,
|
|
159
|
+
className: E(
|
|
160
|
+
"bear-w-8 bear-h-8 bear-rounded-full bear-text-sm bear-font-medium bear-transition-colors bear-flex bear-items-center bear-justify-center",
|
|
161
|
+
M && "bear-bg-bear-500 bear-text-white hover:bear-bg-bear-600",
|
|
162
|
+
!M && C && "bear-ring-2 bear-ring-bear-500/50 bear-bg-transparent",
|
|
163
|
+
!M && !C && (u ? de ? "bear-text-red-500 hover:bear-bg-zinc-100" : "bear-text-zinc-700 hover:bear-bg-zinc-100" : "bear-text-zinc-400 hover:bear-bg-zinc-50"),
|
|
164
|
+
L && !M && "bear-bg-bear-500/15",
|
|
165
|
+
D && "bear-opacity-40 bear-cursor-not-allowed"
|
|
166
|
+
),
|
|
167
|
+
children: k
|
|
168
|
+
},
|
|
169
|
+
r
|
|
170
|
+
);
|
|
171
|
+
}, oe = () => {
|
|
172
|
+
const t = te.map((r, o) => ce(r, o));
|
|
173
|
+
return e.daysGrid ? e.daysGrid({ children: t, className: "bear-grid bear-grid-cols-7 bear-gap-1" }) : /* @__PURE__ */ c("div", { className: "bear-grid bear-grid-cols-7 bear-gap-1", children: t });
|
|
174
|
+
}, se = () => {
|
|
175
|
+
const t = h && A && x, r = Y && z;
|
|
176
|
+
if (!t && !r) return null;
|
|
177
|
+
if (e.footer) {
|
|
178
|
+
const o = e.clearButton, u = e.todayButton;
|
|
179
|
+
return e.footer({
|
|
180
|
+
children: /* @__PURE__ */ m("div", { className: "bear-flex bear-justify-between bear-gap-2 bear-mt-4 bear-pt-3 bear-border-t bear-border-zinc-200", children: [
|
|
181
|
+
t && o ? o({ onClick: x, hasSelection: A }) : t ? /* @__PURE__ */ c("button", { type: "button", onClick: x, className: "bear-text-sm bear-text-zinc-500 hover:bear-text-zinc-700", children: "Clear" }) : /* @__PURE__ */ c("span", {}),
|
|
182
|
+
r && u ? u({ onClick: z }) : r ? /* @__PURE__ */ c("button", { type: "button", onClick: z, className: "bear-text-sm bear-text-bear-600 hover:bear-text-bear-700 bear-font-medium", children: "Today" }) : null
|
|
183
|
+
] })
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
return e.clearButton && e.todayButton ? /* @__PURE__ */ m("div", { className: "bear-flex bear-justify-between bear-gap-2 bear-mt-4 bear-pt-3 bear-border-t bear-border-zinc-200", children: [
|
|
187
|
+
t && e.clearButton({ onClick: x, hasSelection: A }),
|
|
188
|
+
r && e.todayButton({ onClick: z })
|
|
189
|
+
] }) : /* @__PURE__ */ m("div", { className: "bear-flex bear-justify-between bear-gap-2 bear-mt-4 bear-pt-3 bear-border-t bear-border-zinc-200", children: [
|
|
190
|
+
t ? /* @__PURE__ */ c("button", { type: "button", onClick: x, className: "bear-text-sm bear-text-zinc-500 hover:bear-text-zinc-700 bear-transition-colors", children: "Clear" }) : /* @__PURE__ */ c("span", {}),
|
|
191
|
+
r ? /* @__PURE__ */ c("button", { type: "button", onClick: z, className: "bear-text-sm bear-text-bear-600 hover:bear-text-bear-700 bear-font-medium bear-transition-colors", children: "Today" }) : null
|
|
192
|
+
] });
|
|
193
|
+
}, W = /* @__PURE__ */ m(ue, { children: [
|
|
194
|
+
ne(),
|
|
195
|
+
be(),
|
|
196
|
+
oe(),
|
|
197
|
+
se()
|
|
198
|
+
] }), _ = E(ae, Z), ie = Object.keys(U).length ? U : void 0;
|
|
199
|
+
return e.root ? e.root({ children: W, className: _ }) : /* @__PURE__ */ c("div", { className: _, style: ie, children: W });
|
|
200
|
+
};
|
|
201
|
+
export {
|
|
202
|
+
ke as Calendar
|
|
203
|
+
};
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface CalendarDayProps {
|
|
3
|
+
date: Date;
|
|
4
|
+
day: number;
|
|
5
|
+
isCurrentMonth: boolean;
|
|
6
|
+
isSelected: boolean;
|
|
7
|
+
isToday: boolean;
|
|
8
|
+
isDisabled: boolean;
|
|
9
|
+
isHighlighted?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface CalendarNavActions {
|
|
12
|
+
onPrevYear: () => void;
|
|
13
|
+
onPrevMonth: () => void;
|
|
14
|
+
onNextMonth: () => void;
|
|
15
|
+
onNextYear: () => void;
|
|
16
|
+
}
|
|
17
|
+
export interface CalendarSlots {
|
|
18
|
+
/** Root calendar container */
|
|
19
|
+
root?: (props: {
|
|
20
|
+
children: ReactNode;
|
|
21
|
+
className?: string;
|
|
22
|
+
}) => ReactNode;
|
|
23
|
+
/** Header (month/year + nav) */
|
|
24
|
+
header?: (props: {
|
|
25
|
+
month: string;
|
|
26
|
+
year: number;
|
|
27
|
+
onPrev: () => void;
|
|
28
|
+
onNext: () => void;
|
|
29
|
+
nav?: CalendarNavActions;
|
|
30
|
+
}) => ReactNode;
|
|
31
|
+
/** Prev month button */
|
|
32
|
+
navPrev?: (props: {
|
|
33
|
+
onClick: () => void;
|
|
34
|
+
disabled?: boolean;
|
|
35
|
+
}) => ReactNode;
|
|
36
|
+
/** Next month button */
|
|
37
|
+
navNext?: (props: {
|
|
38
|
+
onClick: () => void;
|
|
39
|
+
disabled?: boolean;
|
|
40
|
+
}) => ReactNode;
|
|
41
|
+
/** Prev year button (e.g. «) */
|
|
42
|
+
navPrevYear?: (props: {
|
|
43
|
+
onClick: () => void;
|
|
44
|
+
disabled?: boolean;
|
|
45
|
+
}) => ReactNode;
|
|
46
|
+
/** Next year button (e.g. ») */
|
|
47
|
+
navNextYear?: (props: {
|
|
48
|
+
onClick: () => void;
|
|
49
|
+
disabled?: boolean;
|
|
50
|
+
}) => ReactNode;
|
|
51
|
+
/** Month/year label */
|
|
52
|
+
headerLabel?: (props: {
|
|
53
|
+
month: string;
|
|
54
|
+
year: number;
|
|
55
|
+
}) => ReactNode;
|
|
56
|
+
/** Weekday row (e.g. Su Mo Tu ...) */
|
|
57
|
+
weekdays?: (props: {
|
|
58
|
+
days: string[];
|
|
59
|
+
}) => ReactNode;
|
|
60
|
+
/** Weekday cell */
|
|
61
|
+
weekday?: (props: {
|
|
62
|
+
label: string;
|
|
63
|
+
}) => ReactNode;
|
|
64
|
+
/** Grid of days */
|
|
65
|
+
daysGrid?: (props: {
|
|
66
|
+
children: ReactNode;
|
|
67
|
+
className?: string;
|
|
68
|
+
}) => ReactNode;
|
|
69
|
+
/** Single day cell */
|
|
70
|
+
day?: (props: CalendarDayProps & {
|
|
71
|
+
onClick: () => void;
|
|
72
|
+
}) => ReactNode;
|
|
73
|
+
/** Empty cell (leading/trailing padding) */
|
|
74
|
+
emptyDay?: (props: {
|
|
75
|
+
key: string;
|
|
76
|
+
}) => ReactNode;
|
|
77
|
+
/** Footer (e.g. clear, today) */
|
|
78
|
+
footer?: (props: {
|
|
79
|
+
children?: ReactNode;
|
|
80
|
+
}) => ReactNode;
|
|
81
|
+
/** Clear button */
|
|
82
|
+
clearButton?: (props: {
|
|
83
|
+
onClick: () => void;
|
|
84
|
+
hasSelection: boolean;
|
|
85
|
+
}) => ReactNode;
|
|
86
|
+
/** Today button */
|
|
87
|
+
todayButton?: (props: {
|
|
88
|
+
onClick: () => void;
|
|
89
|
+
}) => ReactNode;
|
|
90
|
+
}
|
|
91
|
+
export interface CalendarProps {
|
|
92
|
+
/** Currently viewed month (controls calendar view) */
|
|
93
|
+
viewDate: Date;
|
|
94
|
+
/** Selected date */
|
|
95
|
+
value?: Date | null;
|
|
96
|
+
/** Callback when date is selected */
|
|
97
|
+
onSelect?: (date: Date) => void;
|
|
98
|
+
/** Callback when view month changes */
|
|
99
|
+
onViewChange?: (date: Date) => void;
|
|
100
|
+
minDate?: Date;
|
|
101
|
+
maxDate?: Date;
|
|
102
|
+
disabledDates?: Date[];
|
|
103
|
+
highlightedDates?: Date[];
|
|
104
|
+
/** Weekday labels, default Su–Sa */
|
|
105
|
+
weekdayLabels?: string[];
|
|
106
|
+
/** First day of week 0=Sun, 1=Mon, etc. */
|
|
107
|
+
firstDayOfWeek?: number;
|
|
108
|
+
showWeekNumbers?: boolean;
|
|
109
|
+
/** Slot overrides for full customization */
|
|
110
|
+
slots?: CalendarSlots;
|
|
111
|
+
/** Show clear button in footer */
|
|
112
|
+
clearable?: boolean;
|
|
113
|
+
onClear?: () => void;
|
|
114
|
+
/** Show Today button in footer */
|
|
115
|
+
showTodayButton?: boolean;
|
|
116
|
+
onToday?: () => void;
|
|
117
|
+
/** Bear Inner Style - sx-like overrides */
|
|
118
|
+
bis?: import('../../types/bis.types').BisProp;
|
|
119
|
+
/** Inline styles */
|
|
120
|
+
style?: React.CSSProperties;
|
|
121
|
+
/** When true, render as block (no absolute). Use when embedding in DateTimePicker etc. */
|
|
122
|
+
inline?: boolean;
|
|
123
|
+
className?: string;
|
|
124
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react/jsx-runtime"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react/jsx-runtime"),o=require("react"),t=require("../../utils/cn.cjs"),x={none:"",xs:"bear-p-2",sm:"bear-p-3",md:"bear-p-4",lg:"bear-p-6",xl:"bear-p-8"},p={none:"",sm:"bear-rounded-sm",md:"bear-rounded-md",lg:"bear-rounded-lg",xl:"bear-rounded-xl","2xl":"bear-rounded-2xl"},C={elevated:"bear-bg-white dark:bear-bg-gray-900 bear-shadow-md",outlined:"bear-bg-white dark:bear-bg-gray-900 bear-border bear-border-gray-200 dark:bear-border-gray-700",filled:"bear-bg-gray-100 dark:bear-bg-gray-800",ghost:"bear-bg-transparent"},i=o.forwardRef(({variant:r="elevated",padding:e="none",interactive:a=!1,radius:s="lg",className:b,children:n,testId:l,...u},y)=>d.jsx("div",{ref:y,className:t.cn("bear-overflow-hidden",C[r],x[e],p[s],a&&"bear-transition-all bear-duration-200 bear-cursor-pointer hover:bear-shadow-lg hover:bear-scale-[1.02]",b),"data-testid":l,...u,children:n}));i.displayName="Card";const c=o.forwardRef(({title:r,subtitle:e,action:a,className:s,children:b,...n},l)=>d.jsxs("div",{ref:l,className:t.cn("bear-flex bear-items-start bear-justify-between bear-p-4 bear-border-b bear-border-gray-200 dark:bear-border-gray-700",s),...n,children:[d.jsxs("div",{className:"bear-flex-1 bear-min-w-0",children:[r&&d.jsx("h3",{className:"bear-text-lg bear-font-semibold bear-text-gray-900 dark:bear-text-white bear-truncate",children:r}),e&&d.jsx("p",{className:"bear-text-sm bear-text-gray-500 dark:bear-text-gray-400 bear-mt-1",children:e}),b]}),a&&d.jsx("div",{className:"bear-ml-4 bear-shrink-0",children:a})]}));c.displayName="CardHeader";const g=o.forwardRef(({className:r,children:e,...a},s)=>d.jsx("div",{ref:s,className:t.cn("bear-p-4",r),...a,children:e}));g.displayName="CardBody";const m=o.forwardRef(({divider:r=!0,className:e,children:a,...s},b)=>d.jsx("div",{ref:b,className:t.cn("bear-p-4",r&&"bear-border-t bear-border-gray-200 dark:bear-border-gray-700",e),...s,children:a}));m.displayName="CardFooter";const f=Object.assign(i,{Header:c,Body:g,Footer:m});exports.Card=i;exports.CardBody=g;exports.CardCompound=f;exports.CardFooter=m;exports.CardHeader=c;
|