@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.
Files changed (111) hide show
  1. package/dist/components/Alert/Alert.cjs +1 -1
  2. package/dist/components/Alert/Alert.js +38 -38
  3. package/dist/components/AppBar/AppBar.cjs +1 -1
  4. package/dist/components/AppBar/AppBar.js +15 -15
  5. package/dist/components/Badge/Badge.cjs +1 -1
  6. package/dist/components/Badge/Badge.constants.cjs +1 -0
  7. package/dist/components/Badge/Badge.constants.d.ts +6 -0
  8. package/dist/components/Badge/Badge.constants.js +34 -0
  9. package/dist/components/Badge/Badge.js +27 -52
  10. package/dist/components/Button/Button.cjs +1 -57
  11. package/dist/components/Button/Button.constants.cjs +57 -0
  12. package/dist/components/Button/Button.constants.d.ts +3 -0
  13. package/dist/components/Button/Button.constants.js +77 -0
  14. package/dist/components/Button/Button.js +55 -119
  15. package/dist/components/Button/Button.types.d.ts +6 -1
  16. package/dist/components/ButtonGroup/ButtonGroup.cjs +1 -1
  17. package/dist/components/ButtonGroup/ButtonGroup.js +17 -17
  18. package/dist/components/Calendar/Calendar.cjs +1 -0
  19. package/dist/components/Calendar/Calendar.d.ts +3 -0
  20. package/dist/components/Calendar/Calendar.js +203 -0
  21. package/dist/components/Calendar/Calendar.types.d.ts +124 -0
  22. package/dist/components/Calendar/index.d.ts +2 -0
  23. package/dist/components/Card/Card.cjs +1 -1
  24. package/dist/components/Card/Card.js +65 -65
  25. package/dist/components/Checkbox/Checkbox.cjs +1 -1
  26. package/dist/components/Checkbox/Checkbox.js +48 -48
  27. package/dist/components/Container/Container.cjs +1 -1
  28. package/dist/components/Container/Container.js +15 -15
  29. package/dist/components/DatePicker/DatePicker.cjs +1 -1
  30. package/dist/components/DatePicker/DatePicker.js +77 -85
  31. package/dist/components/DatePicker/DatePicker.types.d.ts +9 -0
  32. package/dist/components/DatePicker/DatePicker.utils.cjs +1 -0
  33. package/dist/components/DatePicker/DatePicker.utils.d.ts +1 -0
  34. package/dist/components/DatePicker/DatePicker.utils.js +9 -0
  35. package/dist/components/DateTimePicker/DateTimePicker.cjs +1 -0
  36. package/dist/components/DateTimePicker/DateTimePicker.d.ts +3 -0
  37. package/dist/components/DateTimePicker/DateTimePicker.js +178 -0
  38. package/dist/components/DateTimePicker/DateTimePicker.types.d.ts +26 -0
  39. package/dist/components/DateTimePicker/DateTimePicker.utils.cjs +1 -0
  40. package/dist/components/DateTimePicker/DateTimePicker.utils.d.ts +2 -0
  41. package/dist/components/DateTimePicker/DateTimePicker.utils.js +16 -0
  42. package/dist/components/DateTimePicker/index.d.ts +2 -0
  43. package/dist/components/Divider/Divider.cjs +1 -1
  44. package/dist/components/Divider/Divider.js +29 -29
  45. package/dist/components/Dropdown/Dropdown.cjs +1 -1
  46. package/dist/components/Dropdown/Dropdown.js +70 -70
  47. package/dist/components/Fab/Fab.cjs +1 -1
  48. package/dist/components/Fab/Fab.js +42 -42
  49. package/dist/components/FileUpload/FileUpload.cjs +1 -1
  50. package/dist/components/FileUpload/FileUpload.js +46 -49
  51. package/dist/components/FileUpload/FileUpload.utils.cjs +1 -0
  52. package/dist/components/FileUpload/FileUpload.utils.d.ts +1 -0
  53. package/dist/components/FileUpload/FileUpload.utils.js +9 -0
  54. package/dist/components/Flex/Flex.cjs +1 -1
  55. package/dist/components/Flex/Flex.js +58 -58
  56. package/dist/components/Grid/Grid.cjs +1 -1
  57. package/dist/components/Grid/Grid.js +60 -60
  58. package/dist/components/Link/Link.cjs +1 -1
  59. package/dist/components/Link/Link.js +47 -47
  60. package/dist/components/List/List.cjs +1 -1
  61. package/dist/components/List/List.js +117 -117
  62. package/dist/components/Menu/Menu.cjs +1 -1
  63. package/dist/components/Menu/Menu.js +58 -58
  64. package/dist/components/Paper/Paper.cjs +1 -1
  65. package/dist/components/Paper/Paper.js +36 -36
  66. package/dist/components/Radio/Radio.cjs +1 -1
  67. package/dist/components/Radio/Radio.js +79 -79
  68. package/dist/components/Rating/Rating.cjs +1 -1
  69. package/dist/components/Rating/Rating.js +37 -37
  70. package/dist/components/SpeedDial/SpeedDial.cjs +1 -1
  71. package/dist/components/SpeedDial/SpeedDial.js +40 -40
  72. package/dist/components/Spinner/Spinner.cjs +1 -1
  73. package/dist/components/Spinner/Spinner.js +24 -24
  74. package/dist/components/TimePicker/TimePicker.cjs +1 -1
  75. package/dist/components/TimePicker/TimePicker.constants.cjs +1 -0
  76. package/dist/components/TimePicker/TimePicker.constants.d.ts +5 -0
  77. package/dist/components/TimePicker/TimePicker.constants.js +16 -0
  78. package/dist/components/TimePicker/TimePicker.js +91 -70
  79. package/dist/components/TimePicker/TimePicker.types.d.ts +5 -2
  80. package/dist/components/TimePicker/TimePicker.utils.cjs +1 -0
  81. package/dist/components/TimePicker/TimePicker.utils.d.ts +1 -0
  82. package/dist/components/TimePicker/TimePicker.utils.js +7 -0
  83. package/dist/components/TransferList/TransferList.cjs +1 -1
  84. package/dist/components/TransferList/TransferList.js +74 -74
  85. package/dist/components/Typography/Typography.cjs +1 -1
  86. package/dist/components/Typography/Typography.js +52 -52
  87. package/dist/components/index.cjs +1 -1
  88. package/dist/components/index.d.ts +4 -0
  89. package/dist/components/index.js +67 -63
  90. package/dist/context/BearProvider.cjs +1 -1
  91. package/dist/context/BearProvider.d.ts +6 -1
  92. package/dist/context/BearProvider.js +42 -38
  93. package/dist/context/index.cjs +1 -1
  94. package/dist/context/index.d.ts +1 -1
  95. package/dist/context/index.js +6 -5
  96. package/dist/hooks/bearStyled.cjs +1 -0
  97. package/dist/hooks/bearStyled.d.ts +17 -0
  98. package/dist/hooks/bearStyled.js +17 -0
  99. package/dist/hooks/index.cjs +1 -1
  100. package/dist/hooks/index.d.ts +2 -0
  101. package/dist/hooks/index.js +14 -10
  102. package/dist/hooks/useBearStyles.cjs +1 -0
  103. package/dist/hooks/useBearStyles.d.ts +11 -0
  104. package/dist/hooks/useBearStyles.js +14 -0
  105. package/dist/index.cjs +1 -1
  106. package/dist/index.js +99 -90
  107. package/dist/styles.css +1 -0
  108. package/dist/types/bis.types.d.ts +9 -0
  109. package/dist/types/component.types.d.ts +3 -0
  110. package/dist/types/index.d.ts +1 -0
  111. package/package.json +2 -2
@@ -1,45 +1,45 @@
1
- import { jsxs as i, jsx as r } from "react/jsx-runtime";
2
- import { cn as l } from "../../utils/cn.js";
3
- const t = {
4
- xs: "ember-w-3 ember-h-3",
5
- sm: "ember-w-4 ember-h-4",
6
- md: "ember-w-6 ember-h-6",
7
- lg: "ember-w-8 ember-h-8",
8
- xl: "ember-w-10 ember-h-10"
9
- }, c = ({
10
- size: m = "md",
1
+ import { jsxs as l, jsx as e } from "react/jsx-runtime";
2
+ import { cn as t } from "../../utils/cn.js";
3
+ const o = {
4
+ xs: "bear-w-3 bear-h-3",
5
+ sm: "bear-w-4 bear-h-4",
6
+ md: "bear-w-6 bear-h-6",
7
+ lg: "bear-w-8 bear-h-8",
8
+ xl: "bear-w-10 bear-h-10"
9
+ }, n = ({
10
+ size: r = "md",
11
11
  className: s,
12
- color: e = "currentColor",
13
- label: a = "Loading"
14
- }) => /* @__PURE__ */ i(
12
+ color: a = "currentColor",
13
+ label: i = "Loading"
14
+ }) => /* @__PURE__ */ l(
15
15
  "svg",
16
16
  {
17
- className: l(
18
- "ember-animate-spin",
19
- t[m],
17
+ className: t(
18
+ "bear-animate-spin",
19
+ o[r],
20
20
  s
21
21
  ),
22
22
  viewBox: "0 0 24 24",
23
23
  fill: "none",
24
- "aria-label": a,
24
+ "aria-label": i,
25
25
  role: "status",
26
26
  children: [
27
- /* @__PURE__ */ r(
27
+ /* @__PURE__ */ e(
28
28
  "circle",
29
29
  {
30
- className: "ember-opacity-25",
30
+ className: "bear-opacity-25",
31
31
  cx: "12",
32
32
  cy: "12",
33
33
  r: "10",
34
- stroke: e,
34
+ stroke: a,
35
35
  strokeWidth: "4"
36
36
  }
37
37
  ),
38
- /* @__PURE__ */ r(
38
+ /* @__PURE__ */ e(
39
39
  "path",
40
40
  {
41
- className: "ember-opacity-75",
42
- fill: e,
41
+ className: "bear-opacity-75",
42
+ fill: a,
43
43
  d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
44
44
  }
45
45
  )
@@ -47,5 +47,5 @@ const t = {
47
47
  }
48
48
  );
49
49
  export {
50
- c as Spinner
50
+ n as Spinner
51
51
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),a=require("react"),n=require("../../utils/cn.cjs"),q=({value:s,onChange:b,disabled:o=!1,placeholder:w="Select time",label:u,error:c,helperText:f,format:d="12h",minuteStep:p=5,clearable:S=!0,className:M,size:P="md",variant:A="default"})=>{const[h,i]=a.useState(!1),[j,z]=a.useState(12),[v,N]=a.useState(0),[y,g]=a.useState("AM"),x=a.useRef(null);a.useEffect(()=>{if(s){const[e,t]=s.split(" "),[l,m]=e.split(":").map(Number);z(l),N(m),t&&g(t)}},[s]),a.useEffect(()=>{const e=t=>{x.current&&!x.current.contains(t.target)&&i(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);const $=(e,t,l)=>{const m=e.toString().padStart(2,"0"),k=t.toString().padStart(2,"0");return d==="12h"?`${m}:${k} ${l}`:`${e<12&&l==="PM"?e+12:e}:${k}`},C=()=>{b==null||b($(j,v,y)),i(!1)},E=d==="12h"?Array.from({length:12},(e,t)=>t+1):Array.from({length:24},(e,t)=>t),L=Array.from({length:60/p},(e,t)=>t*p),O={sm:"bear-py-1.5 bear-px-3 bear-text-sm",md:"bear-py-2 bear-px-4",lg:"bear-py-2.5 bear-px-5 bear-text-lg"},R={default:"bear-bg-zinc-800 bear-border-zinc-600",filled:"bear-bg-zinc-700 bear-border-transparent",outline:"bear-bg-transparent bear-border-zinc-500"};return r.jsxs("div",{ref:x,className:n.cn("bear-relative",M),children:[u&&r.jsx("label",{className:"bear-block bear-text-sm bear-font-medium bear-text-zinc-300 bear-mb-1.5",children:u}),r.jsxs("button",{type:"button",onClick:()=>!o&&i(!h),disabled:o,className:n.cn("bear-w-full bear-flex bear-items-center bear-justify-between bear-rounded-lg bear-border bear-text-left bear-transition-colors",O[P],R[A],c?"bear-border-red-500":"focus:bear-border-pink-500",o&&"bear-opacity-50 bear-cursor-not-allowed",s?"bear-text-white":"bear-text-zinc-500"),children:[r.jsx("span",{children:s||w}),r.jsx("svg",{className:"bear-w-5 bear-h-5 bear-text-zinc-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:r.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})})]}),c&&r.jsx("p",{className:"bear-mt-1 bear-text-xs bear-text-red-400",children:c}),f&&!c&&r.jsx("p",{className:"bear-mt-1 bear-text-xs bear-text-zinc-500",children:f}),h&&r.jsxs("div",{className:"bear-absolute bear-z-50 bear-mt-1 bear-bg-zinc-800 bear-border bear-border-zinc-700 bear-rounded-lg bear-shadow-xl bear-p-3 bear-w-64",children:[r.jsxs("div",{className:"bear-flex bear-gap-2 bear-mb-3",children:[r.jsxs("div",{className:"bear-flex-1",children:[r.jsx("div",{className:"bear-text-xs bear-text-zinc-500 bear-mb-1 bear-text-center",children:"Hour"}),r.jsx("div",{className:"bear-h-32 bear-overflow-y-auto bear-space-y-1 bear-scrollbar-thin",children:E.map(e=>r.jsx("button",{onClick:()=>z(e),className:n.cn("bear-w-full bear-py-1 bear-rounded bear-text-sm bear-transition-colors",j===e?"bear-bg-pink-500 bear-text-white":"bear-text-zinc-300 hover:bear-bg-zinc-700"),children:e.toString().padStart(2,"0")},e))})]}),r.jsxs("div",{className:"bear-flex-1",children:[r.jsx("div",{className:"bear-text-xs bear-text-zinc-500 bear-mb-1 bear-text-center",children:"Minute"}),r.jsx("div",{className:"bear-h-32 bear-overflow-y-auto bear-space-y-1 bear-scrollbar-thin",children:L.map(e=>r.jsx("button",{onClick:()=>N(e),className:n.cn("bear-w-full bear-py-1 bear-rounded bear-text-sm bear-transition-colors",v===e?"bear-bg-pink-500 bear-text-white":"bear-text-zinc-300 hover:bear-bg-zinc-700"),children:e.toString().padStart(2,"0")},e))})]}),d==="12h"&&r.jsxs("div",{className:"bear-flex-1",children:[r.jsx("div",{className:"bear-text-xs bear-text-zinc-500 bear-mb-1 bear-text-center",children:"Period"}),r.jsx("div",{className:"bear-space-y-1",children:["AM","PM"].map(e=>r.jsx("button",{onClick:()=>g(e),className:n.cn("bear-w-full bear-py-2 bear-rounded bear-text-sm bear-transition-colors",y===e?"bear-bg-pink-500 bear-text-white":"bear-text-zinc-300 hover:bear-bg-zinc-700"),children:e},e))})]})]}),r.jsxs("div",{className:"bear-flex bear-gap-2 bear-pt-2 bear-border-t bear-border-zinc-700",children:[S&&s&&r.jsx("button",{onClick:()=>{b==null||b(""),i(!1)},className:"bear-flex-1 bear-py-1.5 bear-text-sm bear-text-zinc-400 hover:bear-text-white bear-rounded bear-border bear-border-zinc-600",children:"Clear"}),r.jsx("button",{onClick:C,className:"bear-flex-1 bear-py-1.5 bear-text-sm bear-bg-pink-500 bear-text-white bear-rounded hover:bear-bg-pink-600",children:"Confirm"})]})]})]})};exports.TimePicker=q;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),b=require("react"),q=require("../DateTimePicker/DateTimePicker.cjs"),c=require("../../utils/cn.cjs"),A=require("./TimePicker.utils.cjs"),n=require("./TimePicker.constants.cjs"),D=({mode:_="time",value:x,onChange:a,disabled:l=!1,placeholder:p="Select time",label:m,error:i,helperText:u,format:o="12h",minuteStep:f=5,clearable:j=!0,className:v,size:k="md",variant:N="default",...g})=>{if(_==="datetime")return e.jsx(q.DateTimePicker,{value:x instanceof Date?x:null,onChange:r=>a==null?void 0:a(r),disabled:l,placeholder:p,label:m,error:i,helperText:u,timeFormat:o,minuteStep:f,clearable:j,className:v,size:k,variant:N,...g});const s=x,[w,d]=b.useState(!1),[z,y]=b.useState(12),[S,P]=b.useState(0),[M,E]=b.useState("AM"),h=b.useRef(null);b.useEffect(()=>{if(s&&typeof s=="string"){const[r,t]=s.split(" "),[H,O]=r.split(":").map(Number);y(H),P(O),t&&E(t)}},[s]),b.useEffect(()=>{const r=t=>{h.current&&!h.current.contains(t.target)&&d(!1)};return document.addEventListener("mousedown",r),()=>document.removeEventListener("mousedown",r)},[]);const I=()=>{a==null||a(A.formatTime(z,S,M,o)),d(!1)},R=o==="12h"?Array.from({length:n.TIMEPICKER_HOURS_12H},(r,t)=>t+1):Array.from({length:n.TIMEPICKER_HOURS_24H},(r,t)=>t),T=Array.from({length:n.TIMEPICKER_MINUTES_DIVISOR/f},(r,t)=>t*f);return e.jsxs("div",{ref:h,className:c.cn("bear-relative",v),children:[m&&e.jsx("label",{className:"bear-block bear-text-sm bear-font-medium bear-text-zinc-300 bear-mb-1.5",children:m}),e.jsxs("button",{type:"button",onClick:()=>!l&&d(!w),disabled:l,className:c.cn("bear-w-full bear-flex bear-items-center bear-justify-between bear-rounded-lg bear-border bear-text-left bear-transition-colors",n.sizeClasses[k],n.variantClasses[N],i?"bear-border-red-500":"focus:bear-border-pink-500",l&&"bear-opacity-50 bear-cursor-not-allowed",s?"bear-text-white":"bear-text-zinc-500"),children:[e.jsx("span",{children:s||p}),e.jsx("svg",{className:"bear-w-5 bear-h-5 bear-text-zinc-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})})]}),i&&e.jsx("p",{className:"bear-mt-1 bear-text-xs bear-text-red-400",children:i}),u&&!i&&e.jsx("p",{className:"bear-mt-1 bear-text-xs bear-text-zinc-500",children:u}),w&&e.jsxs("div",{className:"bear-absolute bear-z-50 bear-mt-1 bear-bg-zinc-800 bear-border bear-border-zinc-700 bear-rounded-lg bear-shadow-xl bear-p-3 bear-w-64",children:[e.jsxs("div",{className:"bear-flex bear-gap-2 bear-mb-3",children:[e.jsxs("div",{className:"bear-flex-1",children:[e.jsx("div",{className:"bear-text-xs bear-text-zinc-500 bear-mb-1 bear-text-center",children:"Hour"}),e.jsx("div",{className:"bear-h-32 bear-overflow-y-auto bear-space-y-1 bear-scrollbar-thin",children:R.map(r=>e.jsx("button",{onClick:()=>y(r),className:c.cn("bear-w-full bear-py-1 bear-rounded bear-text-sm bear-transition-colors",z===r?"bear-bg-pink-500 bear-text-white":"bear-text-zinc-300 hover:bear-bg-zinc-700"),children:r.toString().padStart(2,"0")},r))})]}),e.jsxs("div",{className:"bear-flex-1",children:[e.jsx("div",{className:"bear-text-xs bear-text-zinc-500 bear-mb-1 bear-text-center",children:"Minute"}),e.jsx("div",{className:"bear-h-32 bear-overflow-y-auto bear-space-y-1 bear-scrollbar-thin",children:T.map(r=>e.jsx("button",{onClick:()=>P(r),className:c.cn("bear-w-full bear-py-1 bear-rounded bear-text-sm bear-transition-colors",S===r?"bear-bg-pink-500 bear-text-white":"bear-text-zinc-300 hover:bear-bg-zinc-700"),children:r.toString().padStart(2,"0")},r))})]}),o==="12h"&&e.jsxs("div",{className:"bear-flex-1",children:[e.jsx("div",{className:"bear-text-xs bear-text-zinc-500 bear-mb-1 bear-text-center",children:"Period"}),e.jsx("div",{className:"bear-space-y-1",children:["AM","PM"].map(r=>e.jsx("button",{onClick:()=>E(r),className:c.cn("bear-w-full bear-py-2 bear-rounded bear-text-sm bear-transition-colors",M===r?"bear-bg-pink-500 bear-text-white":"bear-text-zinc-300 hover:bear-bg-zinc-700"),children:r},r))})]})]}),e.jsxs("div",{className:"bear-flex bear-gap-2 bear-pt-2 bear-border-t bear-border-zinc-700",children:[j&&s&&e.jsx("button",{onClick:()=>{a==null||a(""),d(!1)},className:"bear-flex-1 bear-py-1.5 bear-text-sm bear-text-zinc-400 hover:bear-text-white bear-rounded bear-border bear-border-zinc-600",children:"Clear"}),e.jsx("button",{onClick:I,className:"bear-flex-1 bear-py-1.5 bear-text-sm bear-bg-pink-500 bear-text-white bear-rounded hover:bear-bg-pink-600",children:"Confirm"})]})]})]})};exports.TimePicker=D;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=12,r=24,a=60,s={sm:"bear-py-1.5 bear-px-3 bear-text-sm",md:"bear-py-2 bear-px-4",lg:"bear-py-2.5 bear-px-5 bear-text-lg"},t={default:"bear-bg-zinc-800 bear-border-zinc-600",filled:"bear-bg-zinc-700 bear-border-transparent",outline:"bear-bg-transparent bear-border-zinc-500"};exports.TIMEPICKER_HOURS_12H=e;exports.TIMEPICKER_HOURS_24H=r;exports.TIMEPICKER_MINUTES_DIVISOR=a;exports.sizeClasses=s;exports.variantClasses=t;
@@ -0,0 +1,5 @@
1
+ export declare const TIMEPICKER_HOURS_12H = 12;
2
+ export declare const TIMEPICKER_HOURS_24H = 24;
3
+ export declare const TIMEPICKER_MINUTES_DIVISOR = 60;
4
+ export declare const sizeClasses: Record<'sm' | 'md' | 'lg', string>;
5
+ export declare const variantClasses: Record<'default' | 'filled' | 'outline', string>;
@@ -0,0 +1,16 @@
1
+ const e = 12, r = 24, a = 60, b = {
2
+ sm: "bear-py-1.5 bear-px-3 bear-text-sm",
3
+ md: "bear-py-2 bear-px-4",
4
+ lg: "bear-py-2.5 bear-px-5 bear-text-lg"
5
+ }, t = {
6
+ default: "bear-bg-zinc-800 bear-border-zinc-600",
7
+ filled: "bear-bg-zinc-700 bear-border-transparent",
8
+ outline: "bear-bg-transparent bear-border-zinc-500"
9
+ };
10
+ export {
11
+ e as TIMEPICKER_HOURS_12H,
12
+ r as TIMEPICKER_HOURS_24H,
13
+ a as TIMEPICKER_MINUTES_DIVISOR,
14
+ b as sizeClasses,
15
+ t as variantClasses
16
+ };
@@ -1,108 +1,129 @@
1
- import { jsxs as t, jsx as r } from "react/jsx-runtime";
2
- import { useState as l, useRef as B, useEffect as M } from "react";
3
- import { cn as s } from "../../utils/cn.js";
4
- const q = ({
5
- value: b,
6
- onChange: n,
7
- disabled: d = !1,
8
- placeholder: A = "Select time",
9
- label: p,
10
- error: i,
11
- helperText: f,
12
- format: m = "12h",
13
- minuteStep: h = 5,
14
- clearable: P = !0,
15
- className: $,
16
- size: j = "md",
17
- variant: C = "default"
1
+ import { jsx as r, jsxs as b } from "react/jsx-runtime";
2
+ import { useState as d, useRef as L, useEffect as g } from "react";
3
+ import { DateTimePicker as C } from "../DateTimePicker/DateTimePicker.js";
4
+ import { cn as c } from "../../utils/cn.js";
5
+ import { formatTime as D } from "./TimePicker.utils.js";
6
+ import { TIMEPICKER_HOURS_12H as K, TIMEPICKER_HOURS_24H as U, TIMEPICKER_MINUTES_DIVISOR as V, variantClasses as B, sizeClasses as F } from "./TimePicker.constants.js";
7
+ const Y = ({
8
+ mode: P = "time",
9
+ value: m,
10
+ onChange: a,
11
+ disabled: n = !1,
12
+ placeholder: h = "Select time",
13
+ label: u,
14
+ error: s,
15
+ helperText: x,
16
+ format: l = "12h",
17
+ minuteStep: f = 5,
18
+ clearable: v = !0,
19
+ className: N,
20
+ size: k = "md",
21
+ variant: w = "default",
22
+ ...R
18
23
  }) => {
19
- const [z, c] = l(!1), [N, v] = l(12), [w, k] = l(0), [y, g] = l("AM"), x = B(null);
20
- M(() => {
21
- if (b) {
22
- const [e, a] = b.split(" "), [o, u] = e.split(":").map(Number);
23
- v(o), k(u), a && g(a);
24
+ if (P === "datetime")
25
+ return /* @__PURE__ */ r(
26
+ C,
27
+ {
28
+ value: m instanceof Date ? m : null,
29
+ onChange: (e) => a == null ? void 0 : a(e),
30
+ disabled: n,
31
+ placeholder: h,
32
+ label: u,
33
+ error: s,
34
+ helperText: x,
35
+ timeFormat: l,
36
+ minuteStep: f,
37
+ clearable: v,
38
+ className: N,
39
+ size: k,
40
+ variant: w,
41
+ ...R
42
+ }
43
+ );
44
+ const i = m, [z, o] = d(!1), [y, M] = d(12), [E, I] = d(0), [S, _] = d("AM"), p = L(null);
45
+ g(() => {
46
+ if (i && typeof i == "string") {
47
+ const [e, t] = i.split(" "), [T, j] = e.split(":").map(Number);
48
+ M(T), I(j), t && _(t);
24
49
  }
25
- }, [b]), M(() => {
26
- const e = (a) => {
27
- x.current && !x.current.contains(a.target) && c(!1);
50
+ }, [i]), g(() => {
51
+ const e = (t) => {
52
+ p.current && !p.current.contains(t.target) && o(!1);
28
53
  };
29
54
  return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
30
55
  }, []);
31
- const L = (e, a, o) => {
32
- const u = e.toString().padStart(2, "0"), S = a.toString().padStart(2, "0");
33
- return m === "12h" ? `${u}:${S} ${o}` : `${e < 12 && o === "PM" ? e + 12 : e}:${S}`;
34
- }, E = () => {
35
- n == null || n(L(N, w, y)), c(!1);
36
- }, H = m === "12h" ? Array.from({ length: 12 }, (e, a) => a + 1) : Array.from({ length: 24 }, (e, a) => a), O = Array.from({ length: 60 / h }, (e, a) => a * h), _ = { sm: "bear-py-1.5 bear-px-3 bear-text-sm", md: "bear-py-2 bear-px-4", lg: "bear-py-2.5 bear-px-5 bear-text-lg" }, R = {
37
- default: "bear-bg-zinc-800 bear-border-zinc-600",
38
- filled: "bear-bg-zinc-700 bear-border-transparent",
39
- outline: "bear-bg-transparent bear-border-zinc-500"
40
- };
41
- return /* @__PURE__ */ t("div", { ref: x, className: s("bear-relative", $), children: [
42
- p && /* @__PURE__ */ r("label", { className: "bear-block bear-text-sm bear-font-medium bear-text-zinc-300 bear-mb-1.5", children: p }),
43
- /* @__PURE__ */ t(
56
+ const H = () => {
57
+ a == null || a(D(y, E, S, l)), o(!1);
58
+ }, O = l === "12h" ? Array.from({ length: K }, (e, t) => t + 1) : Array.from({ length: U }, (e, t) => t), A = Array.from(
59
+ { length: V / f },
60
+ (e, t) => t * f
61
+ );
62
+ return /* @__PURE__ */ b("div", { ref: p, className: c("bear-relative", N), children: [
63
+ u && /* @__PURE__ */ r("label", { className: "bear-block bear-text-sm bear-font-medium bear-text-zinc-300 bear-mb-1.5", children: u }),
64
+ /* @__PURE__ */ b(
44
65
  "button",
45
66
  {
46
67
  type: "button",
47
- onClick: () => !d && c(!z),
48
- disabled: d,
49
- className: s(
68
+ onClick: () => !n && o(!z),
69
+ disabled: n,
70
+ className: c(
50
71
  "bear-w-full bear-flex bear-items-center bear-justify-between bear-rounded-lg bear-border bear-text-left bear-transition-colors",
51
- _[j],
52
- R[C],
53
- i ? "bear-border-red-500" : "focus:bear-border-pink-500",
54
- d && "bear-opacity-50 bear-cursor-not-allowed",
55
- b ? "bear-text-white" : "bear-text-zinc-500"
72
+ F[k],
73
+ B[w],
74
+ s ? "bear-border-red-500" : "focus:bear-border-pink-500",
75
+ n && "bear-opacity-50 bear-cursor-not-allowed",
76
+ i ? "bear-text-white" : "bear-text-zinc-500"
56
77
  ),
57
78
  children: [
58
- /* @__PURE__ */ r("span", { children: b || A }),
79
+ /* @__PURE__ */ r("span", { children: i || h }),
59
80
  /* @__PURE__ */ r("svg", { className: "bear-w-5 bear-h-5 bear-text-zinc-400", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ r("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" }) })
60
81
  ]
61
82
  }
62
83
  ),
63
- i && /* @__PURE__ */ r("p", { className: "bear-mt-1 bear-text-xs bear-text-red-400", children: i }),
64
- f && !i && /* @__PURE__ */ r("p", { className: "bear-mt-1 bear-text-xs bear-text-zinc-500", children: f }),
65
- z && /* @__PURE__ */ t("div", { className: "bear-absolute bear-z-50 bear-mt-1 bear-bg-zinc-800 bear-border bear-border-zinc-700 bear-rounded-lg bear-shadow-xl bear-p-3 bear-w-64", children: [
66
- /* @__PURE__ */ t("div", { className: "bear-flex bear-gap-2 bear-mb-3", children: [
67
- /* @__PURE__ */ t("div", { className: "bear-flex-1", children: [
84
+ s && /* @__PURE__ */ r("p", { className: "bear-mt-1 bear-text-xs bear-text-red-400", children: s }),
85
+ x && !s && /* @__PURE__ */ r("p", { className: "bear-mt-1 bear-text-xs bear-text-zinc-500", children: x }),
86
+ z && /* @__PURE__ */ b("div", { className: "bear-absolute bear-z-50 bear-mt-1 bear-bg-zinc-800 bear-border bear-border-zinc-700 bear-rounded-lg bear-shadow-xl bear-p-3 bear-w-64", children: [
87
+ /* @__PURE__ */ b("div", { className: "bear-flex bear-gap-2 bear-mb-3", children: [
88
+ /* @__PURE__ */ b("div", { className: "bear-flex-1", children: [
68
89
  /* @__PURE__ */ r("div", { className: "bear-text-xs bear-text-zinc-500 bear-mb-1 bear-text-center", children: "Hour" }),
69
- /* @__PURE__ */ r("div", { className: "bear-h-32 bear-overflow-y-auto bear-space-y-1 bear-scrollbar-thin", children: H.map((e) => /* @__PURE__ */ r(
90
+ /* @__PURE__ */ r("div", { className: "bear-h-32 bear-overflow-y-auto bear-space-y-1 bear-scrollbar-thin", children: O.map((e) => /* @__PURE__ */ r(
70
91
  "button",
71
92
  {
72
- onClick: () => v(e),
73
- className: s(
93
+ onClick: () => M(e),
94
+ className: c(
74
95
  "bear-w-full bear-py-1 bear-rounded bear-text-sm bear-transition-colors",
75
- N === e ? "bear-bg-pink-500 bear-text-white" : "bear-text-zinc-300 hover:bear-bg-zinc-700"
96
+ y === e ? "bear-bg-pink-500 bear-text-white" : "bear-text-zinc-300 hover:bear-bg-zinc-700"
76
97
  ),
77
98
  children: e.toString().padStart(2, "0")
78
99
  },
79
100
  e
80
101
  )) })
81
102
  ] }),
82
- /* @__PURE__ */ t("div", { className: "bear-flex-1", children: [
103
+ /* @__PURE__ */ b("div", { className: "bear-flex-1", children: [
83
104
  /* @__PURE__ */ r("div", { className: "bear-text-xs bear-text-zinc-500 bear-mb-1 bear-text-center", children: "Minute" }),
84
- /* @__PURE__ */ r("div", { className: "bear-h-32 bear-overflow-y-auto bear-space-y-1 bear-scrollbar-thin", children: O.map((e) => /* @__PURE__ */ r(
105
+ /* @__PURE__ */ r("div", { className: "bear-h-32 bear-overflow-y-auto bear-space-y-1 bear-scrollbar-thin", children: A.map((e) => /* @__PURE__ */ r(
85
106
  "button",
86
107
  {
87
- onClick: () => k(e),
88
- className: s(
108
+ onClick: () => I(e),
109
+ className: c(
89
110
  "bear-w-full bear-py-1 bear-rounded bear-text-sm bear-transition-colors",
90
- w === e ? "bear-bg-pink-500 bear-text-white" : "bear-text-zinc-300 hover:bear-bg-zinc-700"
111
+ E === e ? "bear-bg-pink-500 bear-text-white" : "bear-text-zinc-300 hover:bear-bg-zinc-700"
91
112
  ),
92
113
  children: e.toString().padStart(2, "0")
93
114
  },
94
115
  e
95
116
  )) })
96
117
  ] }),
97
- m === "12h" && /* @__PURE__ */ t("div", { className: "bear-flex-1", children: [
118
+ l === "12h" && /* @__PURE__ */ b("div", { className: "bear-flex-1", children: [
98
119
  /* @__PURE__ */ r("div", { className: "bear-text-xs bear-text-zinc-500 bear-mb-1 bear-text-center", children: "Period" }),
99
120
  /* @__PURE__ */ r("div", { className: "bear-space-y-1", children: ["AM", "PM"].map((e) => /* @__PURE__ */ r(
100
121
  "button",
101
122
  {
102
- onClick: () => g(e),
103
- className: s(
123
+ onClick: () => _(e),
124
+ className: c(
104
125
  "bear-w-full bear-py-2 bear-rounded bear-text-sm bear-transition-colors",
105
- y === e ? "bear-bg-pink-500 bear-text-white" : "bear-text-zinc-300 hover:bear-bg-zinc-700"
126
+ S === e ? "bear-bg-pink-500 bear-text-white" : "bear-text-zinc-300 hover:bear-bg-zinc-700"
106
127
  ),
107
128
  children: e
108
129
  },
@@ -110,15 +131,15 @@ const q = ({
110
131
  )) })
111
132
  ] })
112
133
  ] }),
113
- /* @__PURE__ */ t("div", { className: "bear-flex bear-gap-2 bear-pt-2 bear-border-t bear-border-zinc-700", children: [
114
- P && b && /* @__PURE__ */ r("button", { onClick: () => {
115
- n == null || n(""), c(!1);
134
+ /* @__PURE__ */ b("div", { className: "bear-flex bear-gap-2 bear-pt-2 bear-border-t bear-border-zinc-700", children: [
135
+ v && i && /* @__PURE__ */ r("button", { onClick: () => {
136
+ a == null || a(""), o(!1);
116
137
  }, className: "bear-flex-1 bear-py-1.5 bear-text-sm bear-text-zinc-400 hover:bear-text-white bear-rounded bear-border bear-border-zinc-600", children: "Clear" }),
117
- /* @__PURE__ */ r("button", { onClick: E, className: "bear-flex-1 bear-py-1.5 bear-text-sm bear-bg-pink-500 bear-text-white bear-rounded hover:bear-bg-pink-600", children: "Confirm" })
138
+ /* @__PURE__ */ r("button", { onClick: H, className: "bear-flex-1 bear-py-1.5 bear-text-sm bear-bg-pink-500 bear-text-white bear-rounded hover:bear-bg-pink-600", children: "Confirm" })
118
139
  ] })
119
140
  ] })
120
141
  ] });
121
142
  };
122
143
  export {
123
- q as TimePicker
144
+ Y as TimePicker
124
145
  };
@@ -1,6 +1,9 @@
1
1
  export interface TimePickerProps {
2
- value?: string;
3
- onChange?: (time: string) => void;
2
+ /** Time-only (string) or date+time (Date). When 'datetime', uses Calendar + time. */
3
+ mode?: 'time' | 'datetime';
4
+ /** Time string (e.g. "02:30 PM") when mode='time'; Date when mode='datetime' */
5
+ value?: string | Date | null;
6
+ onChange?: (time: string | Date | null) => void;
4
7
  disabled?: boolean;
5
8
  placeholder?: string;
6
9
  label?: string;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function i(t,o,n,e){const r=o.toString().padStart(2,"0");return e==="12h"?`${t.toString().padStart(2,"0")}:${r} ${n}`:`${t.toString().padStart(2,"0")}:${r}`}exports.formatTime=i;
@@ -0,0 +1 @@
1
+ export declare function formatTime(h: number, m: number, p: 'AM' | 'PM', format: '12h' | '24h'): string;
@@ -0,0 +1,7 @@
1
+ function i(t, n, o, S) {
2
+ const r = n.toString().padStart(2, "0");
3
+ return S === "12h" ? `${t.toString().padStart(2, "0")}:${r} ${o}` : `${t.toString().padStart(2, "0")}:${r}`;
4
+ }
5
+ export {
6
+ i as formatTime
7
+ };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),n=require("react"),v=require("../../utils/cn.cjs"),h=require("../Button/Button.cjs"),F=require("../Input/Input.cjs"),M=require("../Checkbox/Checkbox.cjs"),I=()=>e.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("polyline",{points:"9 18 15 12 9 6"})}),ee=()=>e.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("polyline",{points:"15 18 9 12 15 6"})}),re=()=>e.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("polyline",{points:"6 18 12 12 6 6"}),e.jsx("polyline",{points:"12 18 18 12 12 6"})]}),se=()=>e.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("polyline",{points:"18 18 12 12 18 6"}),e.jsx("polyline",{points:"12 18 6 12 12 6"})]}),te=({leftItems:c,rightItems:i,leftTitle:N="Available",rightTitle:S="Selected",searchable:g=!0,leftSearchPlaceholder:C="Search...",rightSearchPlaceholder:z="Search...",showCount:B=!0,showCheckboxes:L=!0,maxHeight:T=300,onChange:t,onMoveRight:d,onMoveLeft:m,disabled:o=!1,className:q,testId:R,...W})=>{const[x,y]=n.useState(new Set),[u,j]=n.useState(new Set),[k,A]=n.useState(""),[p,D]=n.useState(""),P=n.useMemo(()=>c.filter(r=>r.label.toLowerCase().includes(k.toLowerCase())),[c,k]),O=n.useMemo(()=>i.filter(r=>r.label.toLowerCase().includes(p.toLowerCase())),[i,p]),E=n.useCallback(r=>{y(a=>{const s=new Set(a);return s.has(r)?s.delete(r):s.add(r),s})},[]),G=n.useCallback(r=>{j(a=>{const s=new Set(a);return s.has(r)?s.delete(r):s.add(r),s})},[]),H=n.useCallback(()=>{const r=c.filter(b=>x.has(b.id)&&!b.disabled),a=c.filter(b=>!x.has(b.id)),s=[...i,...r];y(new Set),t==null||t(a,s),d==null||d(r)},[c,i,x,t,d]),J=n.useCallback(()=>{const r=c.filter(s=>!s.disabled),a=[...i,...r];y(new Set),t==null||t([],a),d==null||d(r)},[c,i,t,d]),K=n.useCallback(()=>{const r=i.filter(b=>u.has(b.id)&&!b.disabled),a=i.filter(b=>!u.has(b.id)),s=[...c,...r];j(new Set),t==null||t(s,a),m==null||m(r)},[c,i,u,t,m]),Q=n.useCallback(()=>{const r=i.filter(s=>!s.disabled),a=[...c,...r];j(new Set),t==null||t(a,[]),m==null||m(r)},[c,i,t,m]),w=(r,a,s,b,Z,f,_,$)=>e.jsxs("div",{className:"ember-flex-1 ember-min-w-0 ember-border ember-border-gray-200 dark:ember-border-gray-700 ember-rounded-lg ember-overflow-hidden",children:[e.jsxs("div",{className:"ember-px-4 ember-py-3 ember-bg-gray-50 dark:ember-bg-gray-800/50 ember-border-b ember-border-gray-200 dark:ember-border-gray-700",children:[e.jsxs("div",{className:"ember-flex ember-items-center ember-justify-between",children:[e.jsx("span",{className:"ember-font-medium ember-text-gray-900 dark:ember-text-gray-100",children:Z}),B&&e.jsxs("span",{className:"ember-text-sm ember-text-gray-500 dark:ember-text-gray-400",children:[s.size,"/",r.length]})]}),g&&e.jsx(F.Input,{value:f,onChange:l=>_(l.target.value),placeholder:$,size:"sm",className:"ember-mt-2",disabled:o})]}),e.jsx("div",{className:"ember-overflow-y-auto",style:{maxHeight:T},children:a.length===0?e.jsx("div",{className:"ember-px-4 ember-py-8 ember-text-center ember-text-gray-500 dark:ember-text-gray-400 ember-text-sm",children:f?"No items match your search":"No items"}):e.jsx("ul",{className:"ember-list-none ember-m-0 ember-p-0",children:a.map(l=>e.jsxs("li",{className:v.cn("ember-flex ember-items-center ember-gap-3 ember-px-4 ember-py-2","ember-border-b ember-border-gray-100 dark:ember-border-gray-800 last:ember-border-b-0",!l.disabled&&!o&&"hover:ember-bg-gray-50 dark:hover:ember-bg-gray-800/30 ember-cursor-pointer",l.disabled&&"ember-opacity-50 ember-cursor-not-allowed"),onClick:()=>!l.disabled&&!o&&b(l.id),children:[L&&e.jsx(M.Checkbox,{checked:s.has(l.id),onChange:()=>b(l.id),disabled:l.disabled||o,size:"sm"}),l.icon&&e.jsx("span",{className:"ember-flex-shrink-0 ember-text-gray-500",children:l.icon}),e.jsxs("div",{className:"ember-flex-1 ember-min-w-0",children:[e.jsx("div",{className:"ember-text-sm ember-text-gray-900 dark:ember-text-gray-100 ember-truncate",children:l.label}),l.secondary&&e.jsx("div",{className:"ember-text-xs ember-text-gray-500 dark:ember-text-gray-400 ember-truncate",children:l.secondary})]})]},l.id))})})]}),U=x.size>0,V=u.size>0,X=c.some(r=>!r.disabled),Y=i.some(r=>!r.disabled);return e.jsxs("div",{className:v.cn("ember-flex ember-items-stretch ember-gap-4",o&&"ember-opacity-60 ember-pointer-events-none",q),"data-testid":R,...W,children:[w(c,P,x,E,N,k,A,C),e.jsxs("div",{className:"ember-flex ember-flex-col ember-justify-center ember-gap-2",children:[e.jsx(h.Button,{variant:"outline",size:"sm",onClick:J,disabled:o||!X,"aria-label":"Move all to right",className:"ember-px-2",children:e.jsx(re,{})}),e.jsx(h.Button,{variant:"outline",size:"sm",onClick:H,disabled:o||!U,"aria-label":"Move selected to right",className:"ember-px-2",children:e.jsx(I,{})}),e.jsx(h.Button,{variant:"outline",size:"sm",onClick:K,disabled:o||!V,"aria-label":"Move selected to left",className:"ember-px-2",children:e.jsx(ee,{})}),e.jsx(h.Button,{variant:"outline",size:"sm",onClick:Q,disabled:o||!Y,"aria-label":"Move all to left",className:"ember-px-2",children:e.jsx(se,{})})]}),w(i,O,u,G,S,p,D,z)]})};exports.TransferList=te;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),n=require("react"),N=require("../../utils/cn.cjs"),y=require("../Button/Button.cjs"),F=require("../Input/Input.cjs"),M=require("../Checkbox/Checkbox.cjs"),I=()=>e.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("polyline",{points:"9 18 15 12 9 6"})}),ee=()=>e.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("polyline",{points:"15 18 9 12 15 6"})}),re=()=>e.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("polyline",{points:"6 18 12 12 6 6"}),e.jsx("polyline",{points:"12 18 18 12 12 6"})]}),ae=()=>e.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("polyline",{points:"18 18 12 12 18 6"}),e.jsx("polyline",{points:"12 18 6 12 12 6"})]}),se=({leftItems:c,rightItems:i,leftTitle:S="Available",rightTitle:m="Selected",searchable:g=!0,leftSearchPlaceholder:C="Search...",rightSearchPlaceholder:z="Search...",showCount:B=!0,showCheckboxes:L=!0,maxHeight:T=300,onChange:s,onMoveRight:d,onMoveLeft:x,disabled:o=!1,className:q,testId:R,...W})=>{const[u,j]=n.useState(new Set),[h,k]=n.useState(new Set),[p,A]=n.useState(""),[w,D]=n.useState(""),P=n.useMemo(()=>c.filter(r=>r.label.toLowerCase().includes(p.toLowerCase())),[c,p]),O=n.useMemo(()=>i.filter(r=>r.label.toLowerCase().includes(w.toLowerCase())),[i,w]),E=n.useCallback(r=>{j(l=>{const a=new Set(l);return a.has(r)?a.delete(r):a.add(r),a})},[]),G=n.useCallback(r=>{k(l=>{const a=new Set(l);return a.has(r)?a.delete(r):a.add(r),a})},[]),H=n.useCallback(()=>{const r=c.filter(b=>u.has(b.id)&&!b.disabled),l=c.filter(b=>!u.has(b.id)),a=[...i,...r];j(new Set),s==null||s(l,a),d==null||d(r)},[c,i,u,s,d]),J=n.useCallback(()=>{const r=c.filter(a=>!a.disabled),l=[...i,...r];j(new Set),s==null||s([],l),d==null||d(r)},[c,i,s,d]),K=n.useCallback(()=>{const r=i.filter(b=>h.has(b.id)&&!b.disabled),l=i.filter(b=>!h.has(b.id)),a=[...c,...r];k(new Set),s==null||s(a,l),x==null||x(r)},[c,i,h,s,x]),Q=n.useCallback(()=>{const r=i.filter(a=>!a.disabled),l=[...c,...r];k(new Set),s==null||s(l,[]),x==null||x(r)},[c,i,s,x]),f=(r,l,a,b,Z,v,_,$)=>e.jsxs("div",{className:"bear-flex-1 bear-min-w-0 bear-border bear-border-gray-200 dark:bear-border-gray-700 bear-rounded-lg bear-overflow-hidden",children:[e.jsxs("div",{className:"bear-px-4 bear-py-3 bear-bg-gray-50 dark:bear-bg-gray-800/50 bear-border-b bear-border-gray-200 dark:bear-border-gray-700",children:[e.jsxs("div",{className:"bear-flex bear-items-center bear-justify-between",children:[e.jsx("span",{className:"bear-font-medium bear-text-gray-900 dark:bear-text-gray-100",children:Z}),B&&e.jsxs("span",{className:"bear-text-sm bear-text-gray-500 dark:bear-text-gray-400",children:[a.size,"/",r.length]})]}),g&&e.jsx(F.Input,{value:v,onChange:t=>_(t.target.value),placeholder:$,size:"sm",className:"bear-mt-2",disabled:o})]}),e.jsx("div",{className:"bear-overflow-y-auto",style:{maxHeight:T},children:l.length===0?e.jsx("div",{className:"bear-px-4 bear-py-8 bear-text-center bear-text-gray-500 dark:bear-text-gray-400 bear-text-sm",children:v?"No items match your search":"No items"}):e.jsx("ul",{className:"bear-list-none bear-m-0 bear-p-0",children:l.map(t=>e.jsxs("li",{className:N.cn("bear-flex bear-items-center bear-gap-3 bear-px-4 bear-py-2","bear-border-b bear-border-gray-100 dark:bear-border-gray-800 last:bear-border-b-0",!t.disabled&&!o&&"hover:bear-bg-gray-50 dark:hover:bear-bg-gray-800/30 bear-cursor-pointer",t.disabled&&"bear-opacity-50 bear-cursor-not-allowed"),onClick:()=>!t.disabled&&!o&&b(t.id),children:[L&&e.jsx(M.Checkbox,{checked:a.has(t.id),onChange:()=>b(t.id),disabled:t.disabled||o,size:"sm"}),t.icon&&e.jsx("span",{className:"bear-flex-shrink-0 bear-text-gray-500",children:t.icon}),e.jsxs("div",{className:"bear-flex-1 bear-min-w-0",children:[e.jsx("div",{className:"bear-text-sm bear-text-gray-900 dark:bear-text-gray-100 bear-truncate",children:t.label}),t.secondary&&e.jsx("div",{className:"bear-text-xs bear-text-gray-500 dark:bear-text-gray-400 bear-truncate",children:t.secondary})]})]},t.id))})})]}),U=u.size>0,V=h.size>0,X=c.some(r=>!r.disabled),Y=i.some(r=>!r.disabled);return e.jsxs("div",{className:N.cn("bear-flex bear-items-stretch bear-gap-4",o&&"bear-opacity-60 bear-pointer-events-none",q),"data-testid":R,...W,children:[f(c,P,u,E,S,p,A,C),e.jsxs("div",{className:"bear-flex bear-flex-col bear-justify-center bear-gap-2",children:[e.jsx(y.Button,{variant:"outline",size:"sm",onClick:J,disabled:o||!X,"aria-label":"Move all to right",className:"bear-px-2",children:e.jsx(re,{})}),e.jsx(y.Button,{variant:"outline",size:"sm",onClick:H,disabled:o||!U,"aria-label":"Move selected to right",className:"bear-px-2",children:e.jsx(I,{})}),e.jsx(y.Button,{variant:"outline",size:"sm",onClick:K,disabled:o||!V,"aria-label":"Move selected to left",className:"bear-px-2",children:e.jsx(ee,{})}),e.jsx(y.Button,{variant:"outline",size:"sm",onClick:Q,disabled:o||!Y,"aria-label":"Move all to left",className:"bear-px-2",children:e.jsx(ae,{})})]}),f(i,O,h,G,m,w,D,z)]})};exports.TransferList=se;