@forgedevstack/bear 1.3.3 → 1.3.5

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 (169) hide show
  1. package/README.md +100 -290
  2. package/dist/components/Alert/Alert.cjs +1 -1
  3. package/dist/components/Alert/Alert.const.cjs +1 -1
  4. package/dist/components/Alert/Alert.const.d.ts +1 -6
  5. package/dist/components/Alert/Alert.const.js +10 -30
  6. package/dist/components/Alert/Alert.js +49 -54
  7. package/dist/components/AlertDialog/AlertDialog.cjs +1 -1
  8. package/dist/components/AlertDialog/AlertDialog.js +67 -84
  9. package/dist/components/BottomSheet/BottomSheet.cjs +1 -1
  10. package/dist/components/BottomSheet/BottomSheet.js +72 -64
  11. package/dist/components/Calendar/Calendar.cjs +1 -1
  12. package/dist/components/Calendar/Calendar.js +122 -112
  13. package/dist/components/Chart/BarChart.cjs +1 -1
  14. package/dist/components/Chart/BarChart.js +37 -36
  15. package/dist/components/Chart/Chart.types.d.ts +2 -0
  16. package/dist/components/Chart/Chart.utils.cjs +1 -1
  17. package/dist/components/Chart/Chart.utils.d.ts +2 -0
  18. package/dist/components/Chart/Chart.utils.js +32 -31
  19. package/dist/components/Chart/FunnelChart.cjs +1 -1
  20. package/dist/components/Chart/FunnelChart.js +29 -28
  21. package/dist/components/Chart/LineChart.cjs +1 -1
  22. package/dist/components/Chart/LineChart.js +45 -44
  23. package/dist/components/Chart/PieChart.cjs +1 -1
  24. package/dist/components/Chart/PieChart.js +52 -51
  25. package/dist/components/Chart/RadarChart.cjs +1 -1
  26. package/dist/components/Chart/RadarChart.js +63 -62
  27. package/dist/components/Chart/index.d.ts +1 -1
  28. package/dist/components/ChipGroup/ChipGroup.cjs +1 -1
  29. package/dist/components/ChipGroup/ChipGroup.const.cjs +1 -1
  30. package/dist/components/ChipGroup/ChipGroup.const.d.ts +2 -0
  31. package/dist/components/ChipGroup/ChipGroup.const.js +6 -4
  32. package/dist/components/ChipGroup/ChipGroup.js +52 -48
  33. package/dist/components/CommandPalette/CommandItem.cjs +1 -0
  34. package/dist/components/CommandPalette/CommandItem.d.ts +6 -0
  35. package/dist/components/CommandPalette/CommandItem.js +39 -0
  36. package/dist/components/CommandPalette/CommandPalette.cjs +1 -1
  37. package/dist/components/CommandPalette/CommandPalette.js +129 -144
  38. package/dist/components/Drawer/Drawer.cjs +1 -1
  39. package/dist/components/Drawer/Drawer.js +72 -66
  40. package/dist/components/EmptyState/EmptyState.cjs +1 -1
  41. package/dist/components/EmptyState/EmptyState.const.cjs +1 -1
  42. package/dist/components/EmptyState/EmptyState.const.d.ts +5 -0
  43. package/dist/components/EmptyState/EmptyState.const.js +30 -15
  44. package/dist/components/EmptyState/EmptyState.js +35 -35
  45. package/dist/components/EmptyState/EmptyState.types.d.ts +2 -2
  46. package/dist/components/HoverCard/HoverCard.cjs +4 -3
  47. package/dist/components/HoverCard/HoverCard.const.cjs +1 -0
  48. package/dist/components/HoverCard/HoverCard.const.d.ts +1 -0
  49. package/dist/components/HoverCard/HoverCard.const.js +5 -0
  50. package/dist/components/HoverCard/HoverCard.js +62 -56
  51. package/dist/components/HoverCard/HoverCard.types.d.ts +7 -0
  52. package/dist/components/Menu/Menu.cjs +1 -1
  53. package/dist/components/Menu/Menu.const.cjs +1 -0
  54. package/dist/components/Menu/Menu.const.d.ts +2 -0
  55. package/dist/components/Menu/Menu.const.js +7 -0
  56. package/dist/components/Menu/Menu.d.ts +3 -9
  57. package/dist/components/Menu/Menu.js +57 -89
  58. package/dist/components/Menu/Menu.types.d.ts +8 -1
  59. package/dist/components/Menu/MenuDivider.cjs +1 -0
  60. package/dist/components/Menu/MenuDivider.d.ts +6 -0
  61. package/dist/components/Menu/MenuDivider.js +7 -0
  62. package/dist/components/Menu/MenuItem.cjs +1 -0
  63. package/dist/components/Menu/MenuItem.d.ts +6 -0
  64. package/dist/components/Menu/MenuItem.js +46 -0
  65. package/dist/components/Modal/Modal.cjs +1 -1
  66. package/dist/components/Modal/Modal.const.cjs +1 -1
  67. package/dist/components/Modal/Modal.const.d.ts +1 -0
  68. package/dist/components/Modal/Modal.const.js +15 -12
  69. package/dist/components/Modal/Modal.js +62 -59
  70. package/dist/components/Modal/Modal.types.d.ts +7 -0
  71. package/dist/components/ModalsProvider/components/StackedModal/StackedModal.cjs +1 -1
  72. package/dist/components/ModalsProvider/components/StackedModal/StackedModal.js +10 -9
  73. package/dist/components/OverlayPortal/OverlayPortal.cjs +1 -1
  74. package/dist/components/OverlayPortal/OverlayPortal.const.cjs +1 -1
  75. package/dist/components/OverlayPortal/OverlayPortal.const.d.ts +4 -0
  76. package/dist/components/OverlayPortal/OverlayPortal.const.js +21 -5
  77. package/dist/components/OverlayPortal/OverlayPortal.js +44 -38
  78. package/dist/components/Popover/Popover.cjs +1 -1
  79. package/dist/components/Popover/Popover.const.cjs +1 -0
  80. package/dist/components/Popover/Popover.const.d.ts +15 -1
  81. package/dist/components/Popover/Popover.const.js +24 -0
  82. package/dist/components/Popover/Popover.js +77 -73
  83. package/dist/components/Popover/Popover.types.d.ts +7 -0
  84. package/dist/components/Select/Select.cjs +1 -1
  85. package/dist/components/Select/Select.const.cjs +1 -1
  86. package/dist/components/Select/Select.const.d.ts +1 -0
  87. package/dist/components/Select/Select.const.js +7 -6
  88. package/dist/components/Select/Select.js +101 -96
  89. package/dist/components/Tabs/TabList.cjs +1 -1
  90. package/dist/components/Tabs/TabList.js +1 -1
  91. package/dist/components/Toast/Toast.cjs +1 -1
  92. package/dist/components/Toast/Toast.const.cjs +1 -1
  93. package/dist/components/Toast/Toast.const.d.ts +2 -0
  94. package/dist/components/Toast/Toast.const.js +11 -8
  95. package/dist/components/Toast/Toast.context.cjs +1 -0
  96. package/dist/components/Toast/Toast.context.d.ts +3 -0
  97. package/dist/components/Toast/Toast.context.js +11 -0
  98. package/dist/components/Toast/Toast.d.ts +4 -3
  99. package/dist/components/Toast/Toast.icons.cjs +1 -0
  100. package/dist/components/Toast/Toast.icons.d.ts +4 -0
  101. package/dist/components/Toast/Toast.icons.js +29 -0
  102. package/dist/components/Toast/Toast.js +32 -160
  103. package/dist/components/Toast/ToastContainer.cjs +1 -0
  104. package/dist/components/Toast/ToastContainer.d.ts +3 -0
  105. package/dist/components/Toast/ToastContainer.js +39 -0
  106. package/dist/components/Toast/ToastItem.cjs +1 -0
  107. package/dist/components/Toast/ToastItem.d.ts +5 -0
  108. package/dist/components/Toast/ToastItem.js +86 -0
  109. package/dist/components/ToggleGroup/ToggleGroup.cjs +1 -0
  110. package/dist/components/ToggleGroup/ToggleGroup.const.cjs +1 -0
  111. package/dist/components/ToggleGroup/ToggleGroup.const.d.ts +15 -0
  112. package/dist/components/ToggleGroup/ToggleGroup.const.js +33 -0
  113. package/dist/components/ToggleGroup/ToggleGroup.context.cjs +1 -0
  114. package/dist/components/ToggleGroup/ToggleGroup.context.d.ts +2 -0
  115. package/dist/components/ToggleGroup/ToggleGroup.context.js +5 -0
  116. package/dist/components/ToggleGroup/ToggleGroup.d.ts +2 -0
  117. package/dist/components/ToggleGroup/ToggleGroup.js +89 -0
  118. package/dist/components/ToggleGroup/ToggleGroup.types.d.ts +48 -0
  119. package/dist/components/ToggleGroup/ToggleGroupItem.cjs +1 -0
  120. package/dist/components/ToggleGroup/ToggleGroupItem.d.ts +2 -0
  121. package/dist/components/ToggleGroup/ToggleGroupItem.js +50 -0
  122. package/dist/components/ToggleGroup/hooks/useToggleGroupContext.cjs +1 -0
  123. package/dist/components/ToggleGroup/hooks/useToggleGroupContext.d.ts +1 -0
  124. package/dist/components/ToggleGroup/hooks/useToggleGroupContext.js +6 -0
  125. package/dist/components/ToggleGroup/index.d.ts +4 -0
  126. package/dist/components/Tooltip/Tooltip.cjs +1 -1
  127. package/dist/components/Tooltip/Tooltip.const.cjs +1 -0
  128. package/dist/components/Tooltip/Tooltip.const.d.ts +8 -0
  129. package/dist/components/Tooltip/Tooltip.const.js +13 -0
  130. package/dist/components/Tooltip/Tooltip.js +59 -61
  131. package/dist/components/Tooltip/Tooltip.types.d.ts +7 -0
  132. package/dist/components/Transition/Transition.cjs +1 -1
  133. package/dist/components/Transition/Transition.const.cjs +1 -1
  134. package/dist/components/Transition/Transition.const.js +26 -8
  135. package/dist/components/Transition/Transition.js +77 -74
  136. package/dist/components/Transition/Transition.types.d.ts +8 -2
  137. package/dist/components/Typography/Typography.const.cjs +1 -1
  138. package/dist/components/Typography/Typography.const.js +2 -1
  139. package/dist/components/index.cjs +1 -1
  140. package/dist/components/index.d.ts +3 -1
  141. package/dist/components/index.js +429 -419
  142. package/dist/constants/generals.const.cjs +1 -1
  143. package/dist/constants/generals.const.js +85 -86
  144. package/dist/constants/numbers.const.cjs +1 -1
  145. package/dist/constants/numbers.const.d.ts +3 -0
  146. package/dist/constants/numbers.const.js +37 -34
  147. package/dist/hooks/index.cjs +1 -1
  148. package/dist/hooks/index.d.ts +2 -0
  149. package/dist/hooks/index.js +6 -4
  150. package/dist/hooks/useFixedAnchorPosition/index.d.ts +1 -1
  151. package/dist/hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.cjs +1 -1
  152. package/dist/hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.d.ts +3 -0
  153. package/dist/hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.js +17 -14
  154. package/dist/hooks/useFixedAnchorPosition/useFixedAnchorPosition.types.d.ts +1 -1
  155. package/dist/hooks/useFocusTrap/index.d.ts +2 -0
  156. package/dist/hooks/useFocusTrap/useFocusTrap.cjs +1 -0
  157. package/dist/hooks/useFocusTrap/useFocusTrap.d.ts +3 -0
  158. package/dist/hooks/useFocusTrap/useFocusTrap.js +41 -0
  159. package/dist/hooks/useFocusTrap/useFocusTrap.types.d.ts +8 -0
  160. package/dist/hooks/useFocusTrap/useFocusTrap.utils.cjs +1 -0
  161. package/dist/hooks/useFocusTrap/useFocusTrap.utils.d.ts +1 -0
  162. package/dist/hooks/useFocusTrap/useFocusTrap.utils.js +23 -0
  163. package/dist/index.cjs +1 -1
  164. package/dist/index.js +580 -568
  165. package/dist/styles/_alerts.css +85 -4
  166. package/dist/styles/_drawer.css +60 -0
  167. package/dist/styles/_effects.css +33 -0
  168. package/dist/styles.css +231 -4
  169. package/package.json +3 -5
@@ -0,0 +1,24 @@
1
+ import { EIGHT as r, ELEVEN_THOUSAND as t } from "../../constants/numbers.const.js";
2
+ import { OVERLAY_EFFECT_CLASS_MAP as e } from "../OverlayPortal/OverlayPortal.const.js";
3
+ const o = t, b = r, E = e, T = "bottom", s = "top", _ = "left", A = "right", l = "start", R = "end", N = "translateX(-50%)", O = "translateX(-100%)", c = "translateY(-50%)", L = "translateY(-100%)", S = {
4
+ top: "bear-top-full bear-left-1/2 -bear-translate-x-1/2 bear-border-t-zinc-700 bear-border-x-transparent bear-border-b-transparent",
5
+ bottom: "bear-bottom-full bear-left-1/2 -bear-translate-x-1/2 bear-border-b-zinc-700 bear-border-x-transparent bear-border-t-transparent",
6
+ left: "bear-left-full bear-top-1/2 -bear-translate-y-1/2 bear-border-l-zinc-700 bear-border-y-transparent bear-border-r-transparent",
7
+ right: "bear-right-full bear-top-1/2 -bear-translate-y-1/2 bear-border-r-zinc-700 bear-border-y-transparent bear-border-l-transparent"
8
+ };
9
+ export {
10
+ R as ALIGN_END,
11
+ l as ALIGN_START,
12
+ T as PLACEMENT_BOTTOM,
13
+ _ as PLACEMENT_LEFT,
14
+ A as PLACEMENT_RIGHT,
15
+ s as PLACEMENT_TOP,
16
+ S as POPOVER_ARROW_STYLES,
17
+ b as POPOVER_DEFAULT_OFFSET,
18
+ E as POPOVER_EFFECT_CLASS_MAP,
19
+ o as POPOVER_Z_INDEX,
20
+ N as TRANSFORM_TRANSLATE_X_CENTER,
21
+ O as TRANSFORM_TRANSLATE_X_END,
22
+ c as TRANSFORM_TRANSLATE_Y_CENTER,
23
+ L as TRANSFORM_TRANSLATE_Y_END
24
+ };
@@ -1,98 +1,102 @@
1
- import { jsxs as g, jsx as x } from "react/jsx-runtime";
2
- import { useState as L, useRef as k, useCallback as B, useEffect as u } from "react";
3
- import { createPortal as T } from "react-dom";
4
- import { cn as c } from "../../utils/cn.js";
5
- const W = 11e3;
6
- function Z(b, t, a) {
7
- const e = { position: "fixed", zIndex: W }, s = b.split("-")[0], n = b.includes("start"), o = b.includes("end");
8
- return s === "bottom" ? (e.top = t.bottom + a, n ? e.left = t.left : o ? e.left = t.right : e.left = t.left + t.width / 2) : s === "top" ? (e.bottom = window.innerHeight - t.top + a, n ? e.left = t.left : o ? e.left = t.right : e.left = t.left + t.width / 2) : s === "left" ? (e.right = window.innerWidth - t.left + a, n ? e.top = t.top : o ? e.bottom = window.innerHeight - t.bottom : e.top = t.top + t.height / 2) : (e.left = t.right + a, n ? e.top = t.top : o ? e.bottom = window.innerHeight - t.bottom : e.top = t.top + t.height / 2), s === "bottom" || s === "top" ? !n && !o ? e.transform = "translateX(-50%)" : o && (e.transform = "translateX(-100%)") : !n && !o ? e.transform = "translateY(-50%)" : o && (e.transform = "translateY(-100%)"), e;
1
+ import { jsxs as p, jsx as w } from "react/jsx-runtime";
2
+ import { useState as A, useRef as h, useCallback as P, useEffect as m } from "react";
3
+ import { createPortal as j } from "react-dom";
4
+ import { cn as v } from "../../utils/cn.js";
5
+ import { TWO as S } from "../../constants/numbers.const.js";
6
+ import { resolveOverlayEffects as B } from "../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.utils.js";
7
+ import { PLACEMENT_BOTTOM as T, POPOVER_DEFAULT_OFFSET as K, POPOVER_ARROW_STYLES as U, POPOVER_EFFECT_CLASS_MAP as O, ALIGN_START as Z, ALIGN_END as q, PLACEMENT_TOP as M, TRANSFORM_TRANSLATE_X_CENTER as J, TRANSFORM_TRANSLATE_X_END as Q, PLACEMENT_RIGHT as $, PLACEMENT_LEFT as ee, TRANSFORM_TRANSLATE_Y_CENTER as te, TRANSFORM_TRANSLATE_Y_END as oe, POPOVER_Z_INDEX as ne } from "./Popover.const.js";
8
+ function re(l, e, s) {
9
+ const t = { position: "fixed", zIndex: ne }, [n] = l.split("-"), r = l.includes(Z), i = l.includes(q);
10
+ return n === T || n === M ? (t.top = n === T ? e.bottom + s : void 0, t.bottom = n === M ? window.innerHeight - e.top + s : void 0, t.left = r ? e.left : i ? e.right : e.left + e.width / S, t.transform = !r && !i ? J : i ? Q : void 0) : (t.left = n === $ ? e.right + s : void 0, t.right = n === ee ? window.innerWidth - e.left + s : void 0, t.bottom = i ? window.innerHeight - e.bottom : void 0, t.top = i ? void 0 : r ? e.top : e.top + e.height / S, t.transform = !r && !i ? te : i ? oe : void 0), t;
9
11
  }
10
- const F = ({
11
- children: b,
12
- content: t,
13
- placement: a = "bottom",
14
- trigger: e = "click",
15
- open: s,
16
- onOpenChange: n,
17
- className: o,
18
- contentClassName: z,
19
- arrow: N = !0,
20
- closeOnClickOutside: p = !0,
21
- closeOnEscape: m = !0,
22
- offset: w = 8
12
+ const fe = ({
13
+ children: l,
14
+ content: e,
15
+ placement: s = T,
16
+ trigger: t = "click",
17
+ open: n,
18
+ onOpenChange: r,
19
+ className: i,
20
+ contentClassName: R,
21
+ arrow: g = !0,
22
+ closeOnClickOutside: b = !0,
23
+ closeOnEscape: _ = !0,
24
+ offset: L = K,
25
+ openEffect: C,
26
+ closeEffect: F,
27
+ effect: k
23
28
  }) => {
24
- const [I, M] = L(!1), [P, R] = L({}), d = k(null), h = k(null), i = s !== void 0 ? s : I, l = B((r) => {
25
- M(r), n == null || n(r);
26
- }, [n]);
27
- u(() => {
28
- if (!i || !d.current) return;
29
- const r = () => {
30
- if (!d.current) return;
31
- const f = d.current.getBoundingClientRect();
32
- R(Z(a, f, w));
33
- };
34
- return r(), window.addEventListener("resize", r), window.addEventListener("scroll", r, !0), () => {
35
- window.removeEventListener("resize", r), window.removeEventListener("scroll", r, !0);
36
- };
37
- }, [i, a, w]), u(() => {
38
- if (!p) return;
39
- const r = (f) => {
40
- var E, y;
41
- const v = f.target;
42
- (E = d.current) != null && E.contains(v) || (y = h.current) != null && y.contains(v) || l(!1);
29
+ const [y, D] = A(!1), [I, x] = A({}), E = h(null), f = h(null), d = n !== void 0 ? n : y, a = P((o) => {
30
+ D(o), r == null || r(o);
31
+ }, [r]), u = P(() => {
32
+ if (!E.current || !f.current) return;
33
+ const o = E.current.firstElementChild;
34
+ if (!o) return;
35
+ const c = o.getBoundingClientRect();
36
+ x(re(s, c, L));
37
+ }, [s, L]);
38
+ m(() => {
39
+ if (d) {
40
+ u();
41
+ const o = () => u(), c = () => u();
42
+ return window.addEventListener("resize", o), window.addEventListener("scroll", c, !0), () => {
43
+ window.removeEventListener("resize", o), window.removeEventListener("scroll", c, !0);
44
+ };
45
+ }
46
+ }, [d, u]), m(() => {
47
+ if (!d || !b) return;
48
+ const o = (c) => {
49
+ const N = c.target;
50
+ E.current && !E.current.contains(N) && f.current && !f.current.contains(N) && a(!1);
43
51
  };
44
- return i && document.addEventListener("mousedown", r), () => document.removeEventListener("mousedown", r);
45
- }, [i, p, l]), u(() => {
46
- if (!m) return;
47
- const r = (f) => {
48
- f.key === "Escape" && l(!1);
52
+ return document.addEventListener("mousedown", o), () => document.removeEventListener("mousedown", o);
53
+ }, [d, b, a]), m(() => {
54
+ if (!d || !_) return;
55
+ const o = (c) => {
56
+ c.key === "Escape" && a(!1);
49
57
  };
50
- return i && document.addEventListener("keydown", r), () => document.removeEventListener("keydown", r);
51
- }, [i, m, l]);
52
- const S = () => {
53
- e === "click" && l(!i);
54
- }, H = () => {
55
- e === "hover" && l(!0);
56
- }, X = () => {
57
- e === "hover" && l(!1);
58
- }, j = {
59
- top: "bear-top-full bear-left-1/2 -bear-translate-x-1/2 bear-border-t-zinc-700 bear-border-x-transparent bear-border-b-transparent",
60
- bottom: "bear-bottom-full bear-left-1/2 -bear-translate-x-1/2 bear-border-b-zinc-700 bear-border-x-transparent bear-border-t-transparent",
61
- left: "bear-left-full bear-top-1/2 -bear-translate-y-1/2 bear-border-l-zinc-700 bear-border-y-transparent bear-border-r-transparent",
62
- right: "bear-right-full bear-top-1/2 -bear-translate-y-1/2 bear-border-r-zinc-700 bear-border-y-transparent bear-border-l-transparent"
63
- }, D = a.split("-")[0], Y = i && typeof document < "u" && T(
64
- /* @__PURE__ */ g(
58
+ return document.addEventListener("keydown", o), () => document.removeEventListener("keydown", o);
59
+ }, [d, _, a]);
60
+ const z = () => {
61
+ t === "click" && a(!d);
62
+ }, V = () => {
63
+ t === "hover" && a(!0);
64
+ }, G = () => {
65
+ t === "hover" && a(!1);
66
+ }, H = s.split("-")[0], { openEffect: W } = B({ openEffect: C, closeEffect: F, effect: k }, "fade"), X = O[W] ?? O.fade, Y = d && typeof document < "u" && j(
67
+ /* @__PURE__ */ p(
65
68
  "div",
66
69
  {
67
- ref: h,
70
+ ref: f,
68
71
  "data-bear-popover": !0,
69
- className: c(
72
+ className: v(
70
73
  "bear-bg-zinc-800 bear-border bear-border-zinc-700 bear-rounded-lg bear-shadow-xl bear-p-3",
71
- z
74
+ X,
75
+ R
72
76
  ),
73
- style: P,
77
+ style: I,
74
78
  children: [
75
- t,
76
- N && /* @__PURE__ */ x("div", { className: c("bear-absolute bear-w-0 bear-h-0 bear-border-8", j[D]) })
79
+ e,
80
+ g && /* @__PURE__ */ w("div", { className: v("bear-absolute bear-w-0 bear-h-0 bear-border-8", U[H]) })
77
81
  ]
78
82
  }
79
83
  ),
80
84
  document.body
81
85
  );
82
- return /* @__PURE__ */ g(
86
+ return /* @__PURE__ */ p(
83
87
  "div",
84
88
  {
85
- ref: d,
86
- className: c("bear-relative bear-inline-block", o),
87
- onMouseEnter: H,
88
- onMouseLeave: X,
89
+ ref: E,
90
+ className: v("bear-relative bear-inline-block", i),
91
+ onMouseEnter: V,
92
+ onMouseLeave: G,
89
93
  children: [
90
- /* @__PURE__ */ x("div", { onClick: S, className: "bear-cursor-pointer", children: b }),
94
+ /* @__PURE__ */ w("div", { onClick: z, className: "bear-cursor-pointer", children: l }),
91
95
  Y
92
96
  ]
93
97
  }
94
98
  );
95
99
  };
96
100
  export {
97
- F as Popover
101
+ fe as Popover
98
102
  };
@@ -1,4 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
+ import { OverlayMotionEffect, OverlayEffectConfig } from '../../hooks/useFixedAnchorPosition';
2
3
  export type PopoverPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
3
4
  export interface PopoverProps {
4
5
  testId?: string;
@@ -15,4 +16,10 @@ export interface PopoverProps {
15
16
  closeOnClickOutside?: boolean;
16
17
  closeOnEscape?: boolean;
17
18
  offset?: number;
19
+ /** Transition effect when opening */
20
+ openEffect?: OverlayMotionEffect;
21
+ /** Transition effect when closing */
22
+ closeEffect?: OverlayMotionEffect;
23
+ /** Config for open and close transition effects */
24
+ effect?: OverlayEffectConfig;
18
25
  }
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),f=require("react"),s=require("./Select.const.cjs"),z=require("./helpers/SelectCheckSvg.cjs"),V=require("./helpers/SelectChevronDownSvg.cjs"),W=require("../OverlayPortal/OverlayPortal.cjs"),d=require("../../utils/cn.cjs"),X=require("../../utils/generateBearId.utils.cjs"),H=require("../../utils/useBearId.cjs"),G=require("../../hooks/useClickOutside.cjs");require("../../context/BearProvider.cjs");require("../../hooks/useBearComponent/useBearComponent.cjs");const J=require("../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.cjs"),K=require("../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.utils.cjs"),Q=require("../../hooks/useFormControl/useFormControl.cjs"),Y=C=>{const{options:v,value:l,onChange:t,placeholder:S=s.SELECT_DEFAULT_PLACEHOLDER,label:c,error:x,disabled:k=!1,required:A=!1,size:O="md",fullWidth:L=!1,displayEmpty:E=!1,renderValue:T,native:n=!1,className:q,id:I,testId:j}=C,{openEffect:P,closeEffect:F}=K.resolveOverlayEffects(C),B=H.useBearId("Select"),u=X.resolveBearId(I,B),a=Q.useFormControl(),[b,h]=f.useState(!1),y=f.useRef(null),w=f.useRef(null),{style:D,ready:$}=J.useFixedAnchorPosition({anchorRef:y,open:b&&!n,offsetPx:s.SELECT_MENU_OFFSET_PX,matchWidth:!0}),i=k||!!(a!=null&&a.disabled),m=A||!!(a!=null&&a.required),o=!!x||!!(a!=null&&a.error),_=typeof x=="string"?x:void 0,g=v.find(e=>e.value===l),p=l===void 0||l==="",N=p||E&&p,M=f.useCallback(()=>h(!1),[]);G.useClickOutsideMultiple([y,w],M,{enabled:b&&!n&&!i});const U=e=>{t==null||t(e),h(!1)},Z=T&&!p?T(l):N||!g?S:g.label,R={backgroundColor:"var(--bear-bg-primary)",borderColor:o?void 0:"var(--bear-border-default)",color:g&&!N?"var(--bear-text-primary)":"var(--bear-text-muted)"};return n?r.jsxs("div",{id:u,"data-testid":j,className:d.cn(s.S_E_L_E_C_T_ROOT_CLASS,"bear-relative bear-flex bear-flex-col bear-gap-1.5",L&&"bear-w-full"),children:[c&&r.jsx("label",{htmlFor:`${u}-native`,className:"bear-text-sm bear-font-medium",style:{color:"var(--bear-text-secondary)"},children:c}),r.jsxs("select",{id:`${u}-native`,disabled:i,required:m,value:l??"",onChange:e=>t==null?void 0:t(e.target.value),className:d.cn(`${s.S_E_L_E_C_T_ROOT_CLASS}__native`,"bear-w-full bear-rounded-lg bear-border bear-outline-none bear-transition-all bear-duration-200","focus:bear-ring-2 focus:bear-ring-offset-2 focus:bear-ring-offset-[var(--bear-bg-primary)]",o?"bear-border-red-500 focus:bear-ring-red-500":"focus:bear-border-bear-500 focus:bear-ring-bear-500",i&&"bear-opacity-50 bear-cursor-not-allowed",s.SELECT_SIZE_CLASSES[O],q),style:R,"aria-invalid":o||void 0,"aria-required":m||void 0,"aria-describedby":a==null?void 0:a.helperId,children:[(E||S)&&r.jsx("option",{value:"",disabled:!E,children:S}),v.map(e=>r.jsx("option",{value:e.value,disabled:e.disabled,children:e.label},e.value))]}),_&&r.jsx("p",{className:"bear-text-sm bear-text-red-500",children:_})]}):r.jsxs("div",{ref:y,id:u,"data-testid":j,className:d.cn(s.S_E_L_E_C_T_ROOT_CLASS,"bear-relative bear-flex bear-flex-col bear-gap-1.5",L&&"bear-w-full"),children:[c&&r.jsx("label",{className:"bear-text-sm bear-font-medium",style:{color:"var(--bear-text-secondary)"},children:c}),r.jsxs("button",{type:"button",disabled:i,onClick:()=>!i&&h(!b),className:d.cn(`${s.S_E_L_E_C_T_ROOT_CLASS}__trigger`,"bear-flex bear-items-center bear-justify-between bear-w-full","bear-rounded-lg bear-border bear-text-left bear-outline-none bear-transition-all bear-duration-200","focus:bear-ring-2 focus:bear-ring-offset-2 focus:bear-ring-offset-[var(--bear-bg-primary)]",o?"bear-border-red-500 focus:bear-ring-red-500":"focus:bear-border-bear-500 focus:bear-ring-bear-500 dark:focus:bear-border-bear-500 dark:focus:bear-ring-bear-500",i&&"bear-opacity-50 bear-cursor-not-allowed",s.SELECT_SIZE_CLASSES[O],q),style:R,"aria-haspopup":"listbox","aria-expanded":b,"aria-invalid":o||void 0,"aria-required":m||void 0,"aria-describedby":a==null?void 0:a.helperId,children:[r.jsx("span",{className:`${s.S_E_L_E_C_T_ROOT_CLASS}__value`,children:Z}),r.jsx(V.SelectChevronDownSvg,{className:d.cn("bear-w-4 bear-h-4 bear-shrink-0 bear-transition-transform",b&&"bear-rotate-180")})]}),r.jsx(W.OverlayPortal,{open:b&&!n,ready:$,style:{...D,backgroundColor:"var(--bear-bg-primary)",borderColor:"var(--bear-border-default)"},zIndex:s.SELECT_MENU_Z_INDEX,openEffect:P,closeEffect:F,panelRef:w,className:`${s.S_E_L_E_C_T_ROOT_CLASS}__menu bear-rounded-lg bear-border bear-shadow-lg bear-overflow-hidden`,attributes:{role:"listbox"},children:r.jsx("div",{className:"bear-max-h-60 bear-overflow-y-auto",children:v.map(e=>r.jsxs("button",{type:"button",disabled:e.disabled,onClick:()=>!e.disabled&&U(e.value),role:"option","aria-selected":e.value===l,className:d.cn(`${s.S_E_L_E_C_T_ROOT_CLASS}__option`,"bear-flex bear-items-center bear-justify-between bear-w-full bear-px-4 bear-py-2","bear-text-left bear-transition-colors",e.disabled&&"bear-cursor-not-allowed",e.value===l&&"bear-bg-bear-100 bear-text-bear-700 dark:bear-bg-bear-600/20 dark:bear-text-bear-300",!e.disabled&&e.value!==l&&"hover:bear-bg-[var(--bear-bg-tertiary)]"),style:e.disabled?{color:"var(--bear-text-muted)"}:e.value===l?void 0:{color:"var(--bear-text-secondary)"},children:[e.label,e.value===l&&r.jsx(z.SelectCheckSvg,{className:"bear-w-4 bear-h-4 bear-shrink-0 bear-text-bear-600 dark:bear-text-bear-400"})]},e.value))})}),_&&r.jsx("p",{className:"bear-text-sm bear-text-red-500",children:_})]})};exports.Select=Y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),v=require("react"),s=require("./Select.const.cjs"),W=require("./helpers/SelectCheckSvg.cjs"),X=require("./helpers/SelectChevronDownSvg.cjs"),H=require("../OverlayPortal/OverlayPortal.cjs"),l=require("../../utils/cn.cjs"),Y=require("../../utils/generateBearId.utils.cjs"),G=require("../../utils/useBearId.cjs"),J=require("../../context/BearProvider.cjs");require("../../context/defaultTheme.cjs");const K=require("../../constants/generals.const.cjs"),Q=require("../../hooks/useClickOutside.cjs");require("../../hooks/useBearComponent/useBearComponent.cjs");const ee=require("../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.cjs"),re=require("../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.utils.cjs"),ae=require("../../hooks/useFormControl/useFormControl.cjs"),se=O=>{const{options:x,value:t,onChange:b,placeholder:S=s.SELECT_DEFAULT_PLACEHOLDER,label:c,error:E,disabled:A=!1,required:I=!1,size:T="md",fullWidth:L=!1,displayEmpty:y=!1,renderValue:q,native:n=!1,className:N,id:P,testId:j}=O,{openEffect:B,closeEffect:D}=re.resolveOverlayEffects(O),{density:F}=J.useBearDensityOptional(),u=F===K.DENSITY_COMPACT,M=G.useBearId(s.COMPONENT_NAME_SELECT),_=Y.resolveBearId(P,M),a=ae.useFormControl(),[i,m]=v.useState(!1),h=v.useRef(null),w=v.useRef(null),{style:$,ready:U}=ee.useFixedAnchorPosition({anchorRef:h,open:i&&!n,offsetPx:s.SELECT_MENU_OFFSET_PX,matchWidth:!0}),o=A||!!(a!=null&&a.disabled),g=I||!!(a!=null&&a.required),d=!!E||!!(a!=null&&a.error),f=typeof E=="string"?E:void 0,p=x.find(e=>e.value===t),C=t===void 0||t==="",R=C||y&&C,Z=v.useCallback(()=>m(!1),[]);Q.useClickOutsideMultiple([h,w],Z,{enabled:i&&!n&&!o});const z=e=>{b==null||b(e),m(!1)},V=q&&!C?q(t):R||!p?S:p.label,k={backgroundColor:"var(--bear-bg-primary)",borderColor:d?void 0:"var(--bear-border-default)",color:p&&!R?"var(--bear-text-primary)":"var(--bear-text-muted)"};return n?r.jsxs("div",{id:_,"data-testid":j,className:l.cn(s.S_E_L_E_C_T_ROOT_CLASS,"bear-relative bear-flex bear-flex-col bear-gap-1.5",L&&"bear-w-full"),children:[c&&r.jsx("label",{htmlFor:`${_}-native`,className:"bear-text-sm bear-font-medium",style:{color:"var(--bear-text-secondary)"},children:c}),r.jsxs("select",{id:`${_}-native`,disabled:o,required:g,value:t??"",onChange:e=>b==null?void 0:b(e.target.value),className:l.cn(`${s.S_E_L_E_C_T_ROOT_CLASS}__native`,"bear-w-full bear-rounded-lg bear-border bear-outline-none bear-transition-all bear-duration-200","focus:bear-ring-2 focus:bear-ring-offset-2 focus:bear-ring-offset-[var(--bear-bg-primary)]",d?"bear-border-red-500 focus:bear-ring-red-500":"focus:bear-border-bear-500 focus:bear-ring-bear-500",o&&"bear-opacity-50 bear-cursor-not-allowed",s.SELECT_SIZE_CLASSES[T],u&&"Bear-Select--compact bear-py-1 bear-text-xs",N),style:k,"aria-invalid":d||void 0,"aria-required":g||void 0,"aria-describedby":a==null?void 0:a.helperId,children:[(y||S)&&r.jsx("option",{value:"",disabled:!y,children:S}),x.map(e=>r.jsx("option",{value:e.value,disabled:e.disabled,children:e.label},e.value))]}),f&&r.jsx("p",{className:"bear-text-sm bear-text-red-500",children:f})]}):r.jsxs("div",{ref:h,id:_,"data-testid":j,className:l.cn(s.S_E_L_E_C_T_ROOT_CLASS,"bear-relative bear-flex bear-flex-col bear-gap-1.5",u&&"Bear-Select--compact",L&&"bear-w-full"),children:[c&&r.jsx("label",{className:l.cn("bear-font-medium",u?"bear-text-xs":"bear-text-sm"),style:{color:"var(--bear-text-secondary)"},children:c}),r.jsxs("button",{type:"button",disabled:o,onClick:()=>!o&&m(!i),className:l.cn(`${s.S_E_L_E_C_T_ROOT_CLASS}__trigger`,"bear-flex bear-items-center bear-justify-between bear-w-full","bear-rounded-lg bear-border bear-text-left bear-outline-none bear-transition-all bear-duration-200","focus:bear-ring-2 focus:bear-ring-offset-2 focus:bear-ring-offset-[var(--bear-bg-primary)]",d?"bear-border-red-500 focus:bear-ring-red-500":"focus:bear-border-bear-500 focus:bear-ring-bear-500 dark:focus:bear-border-bear-500 dark:focus:bear-ring-bear-500",o&&"bear-opacity-50 bear-cursor-not-allowed",s.SELECT_SIZE_CLASSES[T],u&&"bear-py-1 bear-text-xs bear-h-8",N),style:k,"aria-haspopup":"listbox","aria-expanded":i,"aria-invalid":d||void 0,"aria-required":g||void 0,"aria-describedby":a==null?void 0:a.helperId,children:[r.jsx("span",{className:`${s.S_E_L_E_C_T_ROOT_CLASS}__value`,children:V}),r.jsx(X.SelectChevronDownSvg,{className:l.cn("bear-w-4 bear-h-4 bear-shrink-0 bear-transition-transform",i&&"bear-rotate-180")})]}),r.jsx(H.OverlayPortal,{open:i&&!n,ready:U,style:{...$,backgroundColor:"var(--bear-bg-primary)",borderColor:"var(--bear-border-default)"},zIndex:s.SELECT_MENU_Z_INDEX,openEffect:B,closeEffect:D,panelRef:w,className:`${s.S_E_L_E_C_T_ROOT_CLASS}__menu bear-rounded-lg bear-border bear-shadow-lg bear-overflow-hidden`,attributes:{role:"listbox"},children:r.jsx("div",{className:"bear-max-h-60 bear-overflow-y-auto",children:x.map(e=>r.jsxs("button",{type:"button",disabled:e.disabled,onClick:()=>!e.disabled&&z(e.value),role:"option","aria-selected":e.value===t,className:l.cn(`${s.S_E_L_E_C_T_ROOT_CLASS}__option`,"bear-flex bear-items-center bear-justify-between bear-w-full bear-px-4 bear-py-2","bear-text-left bear-transition-colors",e.disabled&&"bear-cursor-not-allowed",e.value===t&&"bear-bg-bear-100 bear-text-bear-700 dark:bear-bg-bear-600/20 dark:bear-text-bear-300",!e.disabled&&e.value!==t&&"hover:bear-bg-[var(--bear-bg-tertiary)]"),style:e.disabled?{color:"var(--bear-text-muted)"}:e.value===t?void 0:{color:"var(--bear-text-secondary)"},children:[e.label,e.value===t&&r.jsx(W.SelectCheckSvg,{className:"bear-w-4 bear-h-4 bear-shrink-0 bear-text-bear-600 dark:bear-text-bear-400"})]},e.value))})}),f&&r.jsx("p",{className:"bear-text-sm bear-text-red-500",children:f})]})};exports.Select=se;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E="Bear-Select",_="Select an option",S=4,e=1e4,t={sm:"bear-h-8 bear-text-sm bear-px-3",md:"bear-h-10 bear-text-base bear-px-4",lg:"bear-h-12 bear-text-lg bear-px-5"};exports.SELECT_DEFAULT_PLACEHOLDER=_;exports.SELECT_MENU_OFFSET_PX=S;exports.SELECT_MENU_Z_INDEX=e;exports.SELECT_SIZE_CLASSES=t;exports.S_E_L_E_C_T_ROOT_CLASS=E;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E="Bear-Select",_="Select",S="Select an option",e=4,t=1e4,L={sm:"bear-h-8 bear-text-sm bear-px-3",md:"bear-h-10 bear-text-base bear-px-4",lg:"bear-h-12 bear-text-lg bear-px-5"};exports.COMPONENT_NAME_SELECT=_;exports.SELECT_DEFAULT_PLACEHOLDER=S;exports.SELECT_MENU_OFFSET_PX=e;exports.SELECT_MENU_Z_INDEX=t;exports.SELECT_SIZE_CLASSES=L;exports.S_E_L_E_C_T_ROOT_CLASS=E;
@@ -1,4 +1,5 @@
1
1
  export declare const S_E_L_E_C_T_ROOT_CLASS = "Bear-Select";
2
+ export declare const COMPONENT_NAME_SELECT = "Select";
2
3
  export declare const SELECT_DEFAULT_PLACEHOLDER = "Select an option";
3
4
  export declare const SELECT_MENU_OFFSET_PX = 4;
4
5
  export declare const SELECT_MENU_EDGE_PAD_PX = 8;
@@ -1,12 +1,13 @@
1
- const e = "Bear-Select", E = "Select an option", _ = 4, t = 1e4, S = {
1
+ const E = "Bear-Select", e = "Select", _ = "Select an option", t = 4, S = 1e4, a = {
2
2
  sm: "bear-h-8 bear-text-sm bear-px-3",
3
3
  md: "bear-h-10 bear-text-base bear-px-4",
4
4
  lg: "bear-h-12 bear-text-lg bear-px-5"
5
5
  };
6
6
  export {
7
- E as SELECT_DEFAULT_PLACEHOLDER,
8
- _ as SELECT_MENU_OFFSET_PX,
9
- t as SELECT_MENU_Z_INDEX,
10
- S as SELECT_SIZE_CLASSES,
11
- e as S_E_L_E_C_T_ROOT_CLASS
7
+ e as COMPONENT_NAME_SELECT,
8
+ _ as SELECT_DEFAULT_PLACEHOLDER,
9
+ t as SELECT_MENU_OFFSET_PX,
10
+ S as SELECT_MENU_Z_INDEX,
11
+ a as SELECT_SIZE_CLASSES,
12
+ E as S_E_L_E_C_T_ROOT_CLASS
12
13
  };
@@ -1,67 +1,69 @@
1
1
  import { jsxs as c, jsx as a } from "react/jsx-runtime";
2
- import { useState as X, useRef as $, useCallback as Z } from "react";
3
- import { SELECT_DEFAULT_PLACEHOLDER as H, SELECT_MENU_OFFSET_PX as G, SELECT_SIZE_CLASSES as q, S_E_L_E_C_T_ROOT_CLASS as t, SELECT_MENU_Z_INDEX as J } from "./Select.const.js";
4
- import { SelectCheckSvg as K } from "./helpers/SelectCheckSvg.js";
5
- import { SelectChevronDownSvg as Q } from "./helpers/SelectChevronDownSvg.js";
6
- import { OverlayPortal as Y } from "../OverlayPortal/OverlayPortal.js";
7
- import { cn as d } from "../../utils/cn.js";
8
- import { resolveBearId as ee } from "../../utils/generateBearId.utils.js";
9
- import { useBearId as re } from "../../utils/useBearId.js";
10
- import { useClickOutsideMultiple as ae } from "../../hooks/useClickOutside.js";
11
- import "../../context/BearProvider.js";
2
+ import { useState as H, useRef as P, useCallback as Y } from "react";
3
+ import { SELECT_DEFAULT_PLACEHOLDER as G, COMPONENT_NAME_SELECT as J, SELECT_MENU_OFFSET_PX as K, SELECT_SIZE_CLASSES as R, S_E_L_E_C_T_ROOT_CLASS as l, SELECT_MENU_Z_INDEX as Q } from "./Select.const.js";
4
+ import { SelectCheckSvg as ee } from "./helpers/SelectCheckSvg.js";
5
+ import { SelectChevronDownSvg as re } from "./helpers/SelectChevronDownSvg.js";
6
+ import { OverlayPortal as ae } from "../OverlayPortal/OverlayPortal.js";
7
+ import { cn as s } from "../../utils/cn.js";
8
+ import { resolveBearId as te } from "../../utils/generateBearId.utils.js";
9
+ import { useBearId as le } from "../../utils/useBearId.js";
10
+ import { useBearDensityOptional as se } from "../../context/BearProvider.js";
11
+ import "../../context/defaultTheme.js";
12
+ import { DENSITY_COMPACT as be } from "../../constants/generals.const.js";
13
+ import { useClickOutsideMultiple as oe } from "../../hooks/useClickOutside.js";
12
14
  import "../../hooks/useBearComponent/useBearComponent.js";
13
- import { useFixedAnchorPosition as le } from "../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.js";
14
- import { resolveOverlayEffects as te } from "../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.utils.js";
15
- import { useFormControl as se } from "../../hooks/useFormControl/useFormControl.js";
16
- const _e = (w) => {
15
+ import { useFixedAnchorPosition as de } from "../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.js";
16
+ import { resolveOverlayEffects as ie } from "../../hooks/useFixedAnchorPosition/useFixedAnchorPosition.utils.js";
17
+ import { useFormControl as ce } from "../../hooks/useFormControl/useFormControl.js";
18
+ const Oe = (w) => {
17
19
  const {
18
- options: v,
19
- value: l,
20
- onChange: s,
21
- placeholder: p = H,
20
+ options: p,
21
+ value: t,
22
+ onChange: b,
23
+ placeholder: x = G,
22
24
  label: n,
23
25
  error: y,
24
- disabled: B = !1,
25
- required: D = !1,
26
- size: N = "md",
27
- fullWidth: k = !1,
26
+ disabled: A = !1,
27
+ required: M = !1,
28
+ size: k = "md",
29
+ fullWidth: C = !1,
28
30
  displayEmpty: h = !1,
29
- renderValue: I,
31
+ renderValue: O,
30
32
  native: u = !1,
31
- className: L,
32
- id: F,
33
- testId: O
34
- } = w, { openEffect: P, closeEffect: A } = te(w), j = re("Select"), f = ee(F, j), r = se(), [b, x] = X(!1), g = $(null), C = $(null), { style: M, ready: U } = le({
35
- anchorRef: g,
36
- open: b && !u,
37
- offsetPx: G,
33
+ className: I,
34
+ id: $,
35
+ testId: T
36
+ } = w, { openEffect: q, closeEffect: F } = ie(w), { density: j } = se(), f = j === be, U = le(J), m = te($, U), r = ce(), [o, g] = H(!1), E = P(null), L = P(null), { style: z, ready: V } = de({
37
+ anchorRef: E,
38
+ open: o && !u,
39
+ offsetPx: K,
38
40
  matchWidth: !0
39
- }), o = B || !!(r != null && r.disabled), _ = D || !!(r != null && r.required), i = !!y || !!(r != null && r.error), m = typeof y == "string" ? y : void 0, E = v.find((e) => e.value === l), S = l === void 0 || l === "", R = S || h && S, z = Z(() => x(!1), []);
40
- ae([g, C], z, {
41
- enabled: b && !u && !o
41
+ }), d = A || !!(r != null && r.disabled), _ = M || !!(r != null && r.required), i = !!y || !!(r != null && r.error), v = typeof y == "string" ? y : void 0, S = p.find((e) => e.value === t), N = t === void 0 || t === "", B = N || h && N, W = Y(() => g(!1), []);
42
+ oe([E, L], W, {
43
+ enabled: o && !u && !d
42
44
  });
43
- const V = (e) => {
44
- s == null || s(e), x(!1);
45
- }, W = I && !S ? I(l) : R || !E ? p : E.label, T = {
45
+ const X = (e) => {
46
+ b == null || b(e), g(!1);
47
+ }, Z = O && !N ? O(t) : B || !S ? x : S.label, D = {
46
48
  backgroundColor: "var(--bear-bg-primary)",
47
49
  borderColor: i ? void 0 : "var(--bear-border-default)",
48
- color: E && !R ? "var(--bear-text-primary)" : "var(--bear-text-muted)"
50
+ color: S && !B ? "var(--bear-text-primary)" : "var(--bear-text-muted)"
49
51
  };
50
52
  return u ? /* @__PURE__ */ c(
51
53
  "div",
52
54
  {
53
- id: f,
54
- "data-testid": O,
55
- className: d(
56
- t,
55
+ id: m,
56
+ "data-testid": T,
57
+ className: s(
58
+ l,
57
59
  "bear-relative bear-flex bear-flex-col bear-gap-1.5",
58
- k && "bear-w-full"
60
+ C && "bear-w-full"
59
61
  ),
60
62
  children: [
61
63
  n && /* @__PURE__ */ a(
62
64
  "label",
63
65
  {
64
- htmlFor: `${f}-native`,
66
+ htmlFor: `${m}-native`,
65
67
  className: "bear-text-sm bear-font-medium",
66
68
  style: { color: "var(--bear-text-secondary)" },
67
69
  children: n
@@ -70,76 +72,79 @@ const _e = (w) => {
70
72
  /* @__PURE__ */ c(
71
73
  "select",
72
74
  {
73
- id: `${f}-native`,
74
- disabled: o,
75
+ id: `${m}-native`,
76
+ disabled: d,
75
77
  required: _,
76
- value: l ?? "",
77
- onChange: (e) => s == null ? void 0 : s(e.target.value),
78
- className: d(
79
- `${t}__native`,
78
+ value: t ?? "",
79
+ onChange: (e) => b == null ? void 0 : b(e.target.value),
80
+ className: s(
81
+ `${l}__native`,
80
82
  "bear-w-full bear-rounded-lg bear-border bear-outline-none bear-transition-all bear-duration-200",
81
83
  "focus:bear-ring-2 focus:bear-ring-offset-2 focus:bear-ring-offset-[var(--bear-bg-primary)]",
82
84
  i ? "bear-border-red-500 focus:bear-ring-red-500" : "focus:bear-border-bear-500 focus:bear-ring-bear-500",
83
- o && "bear-opacity-50 bear-cursor-not-allowed",
84
- q[N],
85
- L
85
+ d && "bear-opacity-50 bear-cursor-not-allowed",
86
+ R[k],
87
+ f && "Bear-Select--compact bear-py-1 bear-text-xs",
88
+ I
86
89
  ),
87
- style: T,
90
+ style: D,
88
91
  "aria-invalid": i || void 0,
89
92
  "aria-required": _ || void 0,
90
93
  "aria-describedby": r == null ? void 0 : r.helperId,
91
94
  children: [
92
- (h || p) && /* @__PURE__ */ a("option", { value: "", disabled: !h, children: p }),
93
- v.map((e) => /* @__PURE__ */ a("option", { value: e.value, disabled: e.disabled, children: e.label }, e.value))
95
+ (h || x) && /* @__PURE__ */ a("option", { value: "", disabled: !h, children: x }),
96
+ p.map((e) => /* @__PURE__ */ a("option", { value: e.value, disabled: e.disabled, children: e.label }, e.value))
94
97
  ]
95
98
  }
96
99
  ),
97
- m && /* @__PURE__ */ a("p", { className: "bear-text-sm bear-text-red-500", children: m })
100
+ v && /* @__PURE__ */ a("p", { className: "bear-text-sm bear-text-red-500", children: v })
98
101
  ]
99
102
  }
100
103
  ) : /* @__PURE__ */ c(
101
104
  "div",
102
105
  {
103
- ref: g,
104
- id: f,
105
- "data-testid": O,
106
- className: d(
107
- t,
106
+ ref: E,
107
+ id: m,
108
+ "data-testid": T,
109
+ className: s(
110
+ l,
108
111
  "bear-relative bear-flex bear-flex-col bear-gap-1.5",
109
- k && "bear-w-full"
112
+ f && "Bear-Select--compact",
113
+ C && "bear-w-full"
110
114
  ),
111
115
  children: [
112
- n && /* @__PURE__ */ a("label", { className: "bear-text-sm bear-font-medium", style: { color: "var(--bear-text-secondary)" }, children: n }),
116
+ n && /* @__PURE__ */ a("label", { className: s("bear-font-medium", f ? "bear-text-xs" : "bear-text-sm"), style: { color: "var(--bear-text-secondary)" }, children: n }),
113
117
  /* @__PURE__ */ c(
114
118
  "button",
115
119
  {
116
120
  type: "button",
117
- disabled: o,
118
- onClick: () => !o && x(!b),
119
- className: d(
120
- `${t}__trigger`,
121
+ disabled: d,
122
+ onClick: () => !d && g(!o),
123
+ className: s(
124
+ `${l}__trigger`,
121
125
  "bear-flex bear-items-center bear-justify-between bear-w-full",
122
126
  "bear-rounded-lg bear-border bear-text-left bear-outline-none bear-transition-all bear-duration-200",
123
127
  "focus:bear-ring-2 focus:bear-ring-offset-2 focus:bear-ring-offset-[var(--bear-bg-primary)]",
124
128
  i ? "bear-border-red-500 focus:bear-ring-red-500" : "focus:bear-border-bear-500 focus:bear-ring-bear-500 dark:focus:bear-border-bear-500 dark:focus:bear-ring-bear-500",
125
- o && "bear-opacity-50 bear-cursor-not-allowed",
126
- q[N],
127
- L
129
+ d && "bear-opacity-50 bear-cursor-not-allowed",
130
+ R[k],
131
+ f && "bear-py-1 bear-text-xs bear-h-8",
132
+ I
128
133
  ),
129
- style: T,
134
+ style: D,
130
135
  "aria-haspopup": "listbox",
131
- "aria-expanded": b,
136
+ "aria-expanded": o,
132
137
  "aria-invalid": i || void 0,
133
138
  "aria-required": _ || void 0,
134
139
  "aria-describedby": r == null ? void 0 : r.helperId,
135
140
  children: [
136
- /* @__PURE__ */ a("span", { className: `${t}__value`, children: W }),
141
+ /* @__PURE__ */ a("span", { className: `${l}__value`, children: Z }),
137
142
  /* @__PURE__ */ a(
138
- Q,
143
+ re,
139
144
  {
140
- className: d(
145
+ className: s(
141
146
  "bear-w-4 bear-h-4 bear-shrink-0 bear-transition-transform",
142
- b && "bear-rotate-180"
147
+ o && "bear-rotate-180"
143
148
  )
144
149
  }
145
150
  )
@@ -147,52 +152,52 @@ const _e = (w) => {
147
152
  }
148
153
  ),
149
154
  /* @__PURE__ */ a(
150
- Y,
155
+ ae,
151
156
  {
152
- open: b && !u,
153
- ready: U,
157
+ open: o && !u,
158
+ ready: V,
154
159
  style: {
155
- ...M,
160
+ ...z,
156
161
  backgroundColor: "var(--bear-bg-primary)",
157
162
  borderColor: "var(--bear-border-default)"
158
163
  },
159
- zIndex: J,
160
- openEffect: P,
161
- closeEffect: A,
162
- panelRef: C,
163
- className: `${t}__menu bear-rounded-lg bear-border bear-shadow-lg bear-overflow-hidden`,
164
+ zIndex: Q,
165
+ openEffect: q,
166
+ closeEffect: F,
167
+ panelRef: L,
168
+ className: `${l}__menu bear-rounded-lg bear-border bear-shadow-lg bear-overflow-hidden`,
164
169
  attributes: { role: "listbox" },
165
- children: /* @__PURE__ */ a("div", { className: "bear-max-h-60 bear-overflow-y-auto", children: v.map((e) => /* @__PURE__ */ c(
170
+ children: /* @__PURE__ */ a("div", { className: "bear-max-h-60 bear-overflow-y-auto", children: p.map((e) => /* @__PURE__ */ c(
166
171
  "button",
167
172
  {
168
173
  type: "button",
169
174
  disabled: e.disabled,
170
- onClick: () => !e.disabled && V(e.value),
175
+ onClick: () => !e.disabled && X(e.value),
171
176
  role: "option",
172
- "aria-selected": e.value === l,
173
- className: d(
174
- `${t}__option`,
177
+ "aria-selected": e.value === t,
178
+ className: s(
179
+ `${l}__option`,
175
180
  "bear-flex bear-items-center bear-justify-between bear-w-full bear-px-4 bear-py-2",
176
181
  "bear-text-left bear-transition-colors",
177
182
  e.disabled && "bear-cursor-not-allowed",
178
- e.value === l && "bear-bg-bear-100 bear-text-bear-700 dark:bear-bg-bear-600/20 dark:bear-text-bear-300",
179
- !e.disabled && e.value !== l && "hover:bear-bg-[var(--bear-bg-tertiary)]"
183
+ e.value === t && "bear-bg-bear-100 bear-text-bear-700 dark:bear-bg-bear-600/20 dark:bear-text-bear-300",
184
+ !e.disabled && e.value !== t && "hover:bear-bg-[var(--bear-bg-tertiary)]"
180
185
  ),
181
- style: e.disabled ? { color: "var(--bear-text-muted)" } : e.value === l ? void 0 : { color: "var(--bear-text-secondary)" },
186
+ style: e.disabled ? { color: "var(--bear-text-muted)" } : e.value === t ? void 0 : { color: "var(--bear-text-secondary)" },
182
187
  children: [
183
188
  e.label,
184
- e.value === l && /* @__PURE__ */ a(K, { className: "bear-w-4 bear-h-4 bear-shrink-0 bear-text-bear-600 dark:bear-text-bear-400" })
189
+ e.value === t && /* @__PURE__ */ a(ee, { className: "bear-w-4 bear-h-4 bear-shrink-0 bear-text-bear-600 dark:bear-text-bear-400" })
185
190
  ]
186
191
  },
187
192
  e.value
188
193
  )) })
189
194
  }
190
195
  ),
191
- m && /* @__PURE__ */ a("p", { className: "bear-text-sm bear-text-red-500", children: m })
196
+ v && /* @__PURE__ */ a("p", { className: "bear-text-sm bear-text-red-500", children: v })
192
197
  ]
193
198
  }
194
199
  );
195
200
  };
196
201
  export {
197
- _e as Select
202
+ Oe as Select
198
203
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),o=require("react"),C=require("../../utils/cn.cjs"),I=require("../../context/BearProvider.cjs"),z=require("../../utils/maxVisible.utils.cjs"),B=require("../Dropdown/Dropdown.cjs"),L=require("@forgedevstack/bear-icons"),N=require("./Tabs.cjs");function S(n){var l;return o.isValidElement(n)&&typeof n.type!="string"&&((l=n.props)==null?void 0:l.id)!=null}const _=({children:n,maxVisibleTabs:l,wrap:i=!1,className:q})=>{const f=o.useContext(N.TabsContext);if(!f)throw new Error("TabList must be used within Tabs");const v=I.useBearThemeOptional(),[x,E]=o.useState(()=>typeof window<"u"?window.innerWidth:1200);o.useEffect(()=>{const e=()=>E(window.innerWidth);return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);const a=o.useMemo(()=>z.resolveMaxVisible(l,{width:x,theme:v}),[l,x,v]),{activeTab:b,setActiveTab:M,variant:s}=f,w=o.Children.toArray(n).filter(S),c=w.map(e=>({id:e.props.id,label:e.props.children,disabled:e.props.disabled})),d=b?[b,...c.map(e=>e.id).filter(e=>e!==b)]:c.map(e=>e.id),h=a??d.length,k=d.slice(0,h),u=d.slice(h),p=u.includes(b),y=C.cn("Bear-Tabs__list",`Bear-Tabs__list--${s}`,a!=null&&!i&&"bear-flex bear-w-full bear-min-w-0 bear-items-stretch",(!a||i)&&"bear-flex bear-gap-1",i&&"bear-flex-wrap",!i&&!a&&"bear-gap-1",s==="line"&&"bear-border-b",s==="pills"&&"bear-p-1 bear-rounded-lg",s==="enclosed"&&"bear-border-b",q),g={...s==="line"||s==="enclosed"?{borderColor:"var(--bear-border-default)"}:{},...s==="pills"?{backgroundColor:"var(--bear-bg-tertiary)"}:{}},T=t.jsx(t.Fragment,{children:a!=null?k.map(e=>{const r=w.find(m=>m.props.id===e);return r?o.cloneElement(r,{key:r.props.id}):null}):n}),j=a!=null&&u.length>0?t.jsx("div",{className:"bear-flex bear-h-full bear-flex-shrink-0 bear-items-stretch",children:t.jsx(B.Dropdown,{placement:"bottom-end",closeOnSelect:!0,trigger:t.jsx("button",{type:"button",role:"tab","aria-haspopup":"listbox","aria-label":"More tabs",className:C.cn("bear-flex bear-h-full bear-items-center bear-gap-2 bear-px-3 bear-py-2 bear-text-sm bear-font-medium bear-transition-colors bear-border-0 bear-cursor-pointer",s==="pills"&&"bear-rounded-md",p&&"bear-shadow-sm",!p&&"hover:bear-bg-[var(--bear-bg-tertiary)] hover:bear-text-[var(--bear-text-primary)]"),style:p?{backgroundColor:"var(--bear-bg-primary)",color:"var(--bear-text-primary)"}:{color:"var(--bear-text-muted)"},children:t.jsx(L.BearIcons.MoreHorizIcon,{size:18})}),items:u.map(e=>{const r=c.find(m=>m.id===e);return{key:e,label:(r==null?void 0:r.label)??e,disabled:r==null?void 0:r.disabled,onClick:()=>M(e)}})})}):null;return a!=null&&!i?t.jsxs("div",{role:"tablist",className:y,style:g,children:[t.jsx("div",{className:"bear-flex bear-min-w-0 bear-flex-1 bear-items-center bear-gap-1 bear-overflow-x-auto bear-overflow-y-visible bear-flex-nowrap",children:T}),j]}):t.jsxs("div",{role:"tablist",className:y,style:g,children:[T,j]})};exports.TabList=_;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),o=require("react"),C=require("../../utils/cn.cjs"),I=require("../../context/BearProvider.cjs"),z=require("../../utils/maxVisible.utils.cjs"),B=require("../Dropdown/Dropdown.cjs"),L=require("@forgedevstack/bear-icons"),N=require("./Tabs.cjs");function S(n){var l;return o.isValidElement(n)&&typeof n.type!="string"&&((l=n.props)==null?void 0:l.id)!=null}const _=({children:n,maxVisibleTabs:l,wrap:i=!1,className:q})=>{const f=o.useContext(N.TabsContext);if(!f)throw new Error("TabList must be used within Tabs");const v=I.useBearThemeOptional(),[x,E]=o.useState(()=>typeof window<"u"?window.innerWidth:1200);o.useEffect(()=>{const e=()=>E(window.innerWidth);return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);const a=o.useMemo(()=>z.resolveMaxVisible(l,{width:x,theme:v}),[l,x,v]),{activeTab:b,setActiveTab:M,variant:s}=f,w=o.Children.toArray(n).filter(S),c=w.map(e=>({id:e.props.id,label:e.props.children,disabled:e.props.disabled})),d=b?[b,...c.map(e=>e.id).filter(e=>e!==b)]:c.map(e=>e.id),h=a??d.length,k=d.slice(0,h),u=d.slice(h),p=u.includes(b),y=C.cn("Bear-Tabs__list",`Bear-Tabs__list--${s}`,a!=null&&!i&&"bear-flex bear-w-full bear-min-w-0 bear-items-stretch",(!a||i)&&"bear-flex bear-gap-1",i?"bear-flex-wrap":"bear-max-w-full bear-overflow-x-auto",!i&&!a&&"bear-gap-1",s==="line"&&"bear-border-b",s==="pills"&&"bear-p-1 bear-rounded-lg",s==="enclosed"&&"bear-border-b",q),g={...s==="line"||s==="enclosed"?{borderColor:"var(--bear-border-default)"}:{},...s==="pills"?{backgroundColor:"var(--bear-bg-tertiary)"}:{}},T=t.jsx(t.Fragment,{children:a!=null?k.map(e=>{const r=w.find(m=>m.props.id===e);return r?o.cloneElement(r,{key:r.props.id}):null}):n}),j=a!=null&&u.length>0?t.jsx("div",{className:"bear-flex bear-h-full bear-flex-shrink-0 bear-items-stretch",children:t.jsx(B.Dropdown,{placement:"bottom-end",closeOnSelect:!0,trigger:t.jsx("button",{type:"button",role:"tab","aria-haspopup":"listbox","aria-label":"More tabs",className:C.cn("bear-flex bear-h-full bear-items-center bear-gap-2 bear-px-3 bear-py-2 bear-text-sm bear-font-medium bear-transition-colors bear-border-0 bear-cursor-pointer",s==="pills"&&"bear-rounded-md",p&&"bear-shadow-sm",!p&&"hover:bear-bg-[var(--bear-bg-tertiary)] hover:bear-text-[var(--bear-text-primary)]"),style:p?{backgroundColor:"var(--bear-bg-primary)",color:"var(--bear-text-primary)"}:{color:"var(--bear-text-muted)"},children:t.jsx(L.BearIcons.MoreHorizIcon,{size:18})}),items:u.map(e=>{const r=c.find(m=>m.id===e);return{key:e,label:(r==null?void 0:r.label)??e,disabled:r==null?void 0:r.disabled,onClick:()=>M(e)}})})}):null;return a!=null&&!i?t.jsxs("div",{role:"tablist",className:y,style:g,children:[t.jsx("div",{className:"bear-flex bear-min-w-0 bear-flex-1 bear-items-center bear-gap-1 bear-overflow-x-auto bear-overflow-y-visible bear-flex-nowrap",children:T}),j]}):t.jsxs("div",{role:"tablist",className:y,style:g,children:[T,j]})};exports.TabList=_;