@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.
Files changed (94) hide show
  1. package/dist/components/ActiveBar/ActiveBar.cjs +8 -0
  2. package/dist/components/ActiveBar/ActiveBar.d.ts +2 -0
  3. package/dist/components/ActiveBar/ActiveBar.js +90 -0
  4. package/dist/components/ActiveBar/ActiveBar.types.d.ts +16 -0
  5. package/dist/components/ActiveBar/index.d.ts +2 -0
  6. package/dist/components/Box/Box.cjs +1 -0
  7. package/dist/components/Box/Box.d.ts +2 -0
  8. package/dist/components/Box/Box.js +64 -0
  9. package/dist/components/Box/Box.types.d.ts +24 -0
  10. package/dist/components/Box/Box.utils.cjs +1 -0
  11. package/dist/components/Box/Box.utils.d.ts +3 -0
  12. package/dist/components/Box/Box.utils.js +21 -0
  13. package/dist/components/Box/index.d.ts +2 -0
  14. package/dist/components/Calendar/Calendar.cjs +1 -1
  15. package/dist/components/Calendar/Calendar.const.cjs +1 -0
  16. package/dist/components/Calendar/Calendar.const.d.ts +18 -0
  17. package/dist/components/Calendar/Calendar.const.js +27 -0
  18. package/dist/components/Calendar/Calendar.js +131 -145
  19. package/dist/components/Calendar/Calendar.types.d.ts +4 -0
  20. package/dist/components/Calendar/Calendar.utils.cjs +1 -0
  21. package/dist/components/Calendar/Calendar.utils.d.ts +41 -0
  22. package/dist/components/Calendar/Calendar.utils.js +33 -0
  23. package/dist/components/Calendar/index.d.ts +2 -0
  24. package/dist/components/CodeBlock/CodeBlock.cjs +2 -0
  25. package/dist/components/CodeBlock/CodeBlock.d.ts +2 -0
  26. package/dist/components/CodeBlock/CodeBlock.js +55 -0
  27. package/dist/components/CodeBlock/CodeBlock.types.d.ts +10 -0
  28. package/dist/components/CodeBlock/index.d.ts +2 -0
  29. package/dist/components/Columns/Columns.cjs +1 -0
  30. package/dist/components/Columns/Columns.d.ts +5 -0
  31. package/dist/components/Columns/Columns.js +54 -0
  32. package/dist/components/Columns/Columns.types.d.ts +17 -0
  33. package/dist/components/Columns/index.d.ts +2 -0
  34. package/dist/components/DateTimePicker/DateTimePicker.cjs +1 -1
  35. package/dist/components/DateTimePicker/DateTimePicker.js +28 -28
  36. package/dist/components/Editable/Editable.cjs +1 -0
  37. package/dist/components/Editable/Editable.d.ts +10 -0
  38. package/dist/components/Editable/Editable.js +194 -0
  39. package/dist/components/Editable/Editable.types.d.ts +39 -0
  40. package/dist/components/Editable/index.d.ts +2 -0
  41. package/dist/components/Em/Em.cjs +1 -0
  42. package/dist/components/Em/Em.d.ts +2 -0
  43. package/dist/components/Em/Em.js +24 -0
  44. package/dist/components/Em/Em.types.d.ts +5 -0
  45. package/dist/components/Em/index.d.ts +2 -0
  46. package/dist/components/Fab/Fab.cjs +1 -1
  47. package/dist/components/Fab/Fab.js +9 -9
  48. package/dist/components/Highlight/Highlight.cjs +1 -0
  49. package/dist/components/Highlight/Highlight.d.ts +2 -0
  50. package/dist/components/Highlight/Highlight.js +28 -0
  51. package/dist/components/Highlight/Highlight.types.d.ts +6 -0
  52. package/dist/components/Highlight/index.d.ts +2 -0
  53. package/dist/components/HoverCard/HoverCard.cjs +6 -0
  54. package/dist/components/HoverCard/HoverCard.d.ts +2 -0
  55. package/dist/components/HoverCard/HoverCard.js +68 -0
  56. package/dist/components/HoverCard/HoverCard.types.d.ts +13 -0
  57. package/dist/components/HoverCard/HoverCard.utils.cjs +1 -0
  58. package/dist/components/HoverCard/HoverCard.utils.d.ts +2 -0
  59. package/dist/components/HoverCard/HoverCard.utils.js +23 -0
  60. package/dist/components/HoverCard/index.d.ts +2 -0
  61. package/dist/components/Icon/icons/status.js +1 -1
  62. package/dist/components/Icon/index.cjs +1 -1
  63. package/dist/components/Icon/index.d.ts +5 -0
  64. package/dist/components/Icon/index.js +28 -21
  65. package/dist/components/Mark/Mark.cjs +1 -0
  66. package/dist/components/Mark/Mark.d.ts +2 -0
  67. package/dist/components/Mark/Mark.js +26 -0
  68. package/dist/components/Mark/Mark.types.d.ts +5 -0
  69. package/dist/components/Mark/index.d.ts +2 -0
  70. package/dist/components/RichEditor/RichEditor.cjs +10 -0
  71. package/dist/components/RichEditor/RichEditor.d.ts +4 -0
  72. package/dist/components/RichEditor/RichEditor.icons.cjs +1 -0
  73. package/dist/components/RichEditor/RichEditor.icons.d.ts +16 -0
  74. package/dist/components/RichEditor/RichEditor.icons.js +62 -0
  75. package/dist/components/RichEditor/RichEditor.js +151 -0
  76. package/dist/components/RichEditor/RichEditor.types.d.ts +20 -0
  77. package/dist/components/RichEditor/RichEditor.utils.cjs +1 -0
  78. package/dist/components/RichEditor/RichEditor.utils.d.ts +3 -0
  79. package/dist/components/RichEditor/RichEditor.utils.js +22 -0
  80. package/dist/components/RichEditor/index.d.ts +2 -0
  81. package/dist/components/Sidebar/Sidebar.cjs +1 -0
  82. package/dist/components/Sidebar/Sidebar.d.ts +5 -0
  83. package/dist/components/Sidebar/Sidebar.js +158 -0
  84. package/dist/components/Sidebar/Sidebar.types.d.ts +40 -0
  85. package/dist/components/Sidebar/index.d.ts +2 -0
  86. package/dist/components/Slider/Slider.cjs +1 -1
  87. package/dist/components/Slider/Slider.js +8 -8
  88. package/dist/components/index.cjs +1 -1
  89. package/dist/components/index.d.ts +22 -0
  90. package/dist/components/index.js +87 -63
  91. package/dist/index.cjs +1 -1
  92. package/dist/index.js +107 -83
  93. package/dist/styles.css +1 -1
  94. 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,2 @@
1
+ import { ActiveBarProps } from './ActiveBar.types';
2
+ export declare const ActiveBar: import('react').ForwardRefExoticComponent<ActiveBarProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -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,2 @@
1
+ export { ActiveBar } from './ActiveBar';
2
+ export type { ActiveBarProps, ActiveBarItem } from './ActiveBar.types';
@@ -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,2 @@
1
+ import { BoxProps } from './Box.types';
2
+ export declare const Box: import('react').ForwardRefExoticComponent<BoxProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -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,3 @@
1
+ export declare const spacingToClass: (value: number | string | undefined, prefix: string) => string;
2
+ export declare const roundedMap: Record<string, string>;
3
+ export declare const shadowMap: Record<string, string>;
@@ -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
+ };
@@ -0,0 +1,2 @@
1
+ export { Box } from './Box';
2
+ export type { BoxProps } from './Box.types';
@@ -1 +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;
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
+ };