@forgedevstack/bear 1.2.0 → 1.2.1

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 (178) hide show
  1. package/README.md +4 -0
  2. package/dist/components/Autocomplete/Autocomplete.cjs +1 -1
  3. package/dist/components/Autocomplete/Autocomplete.const.cjs +1 -0
  4. package/dist/components/Autocomplete/Autocomplete.const.d.ts +1 -0
  5. package/dist/components/Autocomplete/Autocomplete.const.js +4 -0
  6. package/dist/components/Autocomplete/Autocomplete.js +110 -72
  7. package/dist/components/BottomSheet/BottomSheet.cjs +1 -1
  8. package/dist/components/BottomSheet/BottomSheet.js +74 -53
  9. package/dist/components/BottomSheet/BottomSheet.types.d.ts +2 -0
  10. package/dist/components/Breadcrumbs/Breadcrumbs.cjs +1 -1
  11. package/dist/components/Breadcrumbs/Breadcrumbs.js +126 -46
  12. package/dist/components/Breadcrumbs/Breadcrumbs.types.d.ts +11 -4
  13. package/dist/components/Breadcrumbs/index.d.ts +1 -1
  14. package/dist/components/Cascader/Cascader.cjs +1 -1
  15. package/dist/components/Cascader/Cascader.const.cjs +1 -1
  16. package/dist/components/Cascader/Cascader.const.d.ts +1 -1
  17. package/dist/components/Cascader/Cascader.const.js +1 -1
  18. package/dist/components/Cascader/Cascader.js +109 -146
  19. package/dist/components/Cascader/components/CascaderPanel/CascaderPanel.cjs +1 -0
  20. package/dist/components/Cascader/components/CascaderPanel/CascaderPanel.d.ts +3 -0
  21. package/dist/components/Cascader/components/CascaderPanel/CascaderPanel.js +50 -0
  22. package/dist/components/Cascader/components/CascaderPanel/index.d.ts +1 -0
  23. package/dist/components/Chart/BarChart.cjs +1 -0
  24. package/dist/components/Chart/BarChart.d.ts +3 -0
  25. package/dist/components/Chart/BarChart.js +65 -0
  26. package/dist/components/Chart/Chart.cjs +1 -1
  27. package/dist/components/Chart/Chart.const.cjs +1 -1
  28. package/dist/components/Chart/Chart.const.d.ts +7 -0
  29. package/dist/components/Chart/Chart.const.js +12 -2
  30. package/dist/components/Chart/Chart.d.ts +1 -13
  31. package/dist/components/Chart/Chart.js +18 -204
  32. package/dist/components/Chart/Chart.types.d.ts +7 -1
  33. package/dist/components/Chart/LineChart.cjs +1 -0
  34. package/dist/components/Chart/LineChart.d.ts +3 -0
  35. package/dist/components/Chart/LineChart.js +73 -0
  36. package/dist/components/Chart/PieChart.cjs +1 -0
  37. package/dist/components/Chart/PieChart.d.ts +3 -0
  38. package/dist/components/Chart/PieChart.js +110 -0
  39. package/dist/components/Chart/index.d.ts +4 -1
  40. package/dist/components/ColorPicker/ColorPicker.cjs +1 -1
  41. package/dist/components/ColorPicker/ColorPicker.const.cjs +1 -1
  42. package/dist/components/ColorPicker/ColorPicker.const.d.ts +4 -2
  43. package/dist/components/ColorPicker/ColorPicker.const.js +8 -6
  44. package/dist/components/ColorPicker/ColorPicker.js +135 -73
  45. package/dist/components/ColorPicker/ColorPicker.utils.cjs +1 -0
  46. package/dist/components/ColorPicker/ColorPicker.utils.d.ts +17 -0
  47. package/dist/components/ColorPicker/ColorPicker.utils.js +43 -0
  48. package/dist/components/CountdownTimer/CountdownTimer.cjs +1 -1
  49. package/dist/components/CountdownTimer/CountdownTimer.const.cjs +1 -1
  50. package/dist/components/CountdownTimer/CountdownTimer.const.d.ts +2 -0
  51. package/dist/components/CountdownTimer/CountdownTimer.const.js +29 -17
  52. package/dist/components/CountdownTimer/CountdownTimer.js +91 -61
  53. package/dist/components/CountdownTimer/CountdownTimer.types.d.ts +11 -2
  54. package/dist/components/CreditInput/CreditInput.cjs +1 -1
  55. package/dist/components/CreditInput/CreditInput.js +80 -78
  56. package/dist/components/DateRangePicker/DateRangePicker.cjs +1 -1
  57. package/dist/components/DateRangePicker/DateRangePicker.js +89 -84
  58. package/dist/components/DiffSquares/DiffSquares.cjs +1 -0
  59. package/dist/components/DiffSquares/DiffSquares.const.cjs +1 -0
  60. package/dist/components/DiffSquares/DiffSquares.const.d.ts +3 -0
  61. package/dist/components/DiffSquares/DiffSquares.const.js +6 -0
  62. package/dist/components/DiffSquares/DiffSquares.d.ts +3 -0
  63. package/dist/components/DiffSquares/DiffSquares.js +70 -0
  64. package/dist/components/DiffSquares/DiffSquares.types.d.ts +23 -0
  65. package/dist/components/DiffSquares/DiffSquares.utils.cjs +1 -0
  66. package/dist/components/DiffSquares/DiffSquares.utils.d.ts +3 -0
  67. package/dist/components/DiffSquares/DiffSquares.utils.js +12 -0
  68. package/dist/components/DiffSquares/index.d.ts +2 -0
  69. package/dist/components/Drawer/Drawer.cjs +1 -1
  70. package/dist/components/Drawer/Drawer.js +41 -41
  71. package/dist/components/Dropdown/Dropdown.cjs +1 -1
  72. package/dist/components/Dropdown/Dropdown.const.cjs +1 -0
  73. package/dist/components/Dropdown/Dropdown.const.d.ts +7 -0
  74. package/dist/components/Dropdown/Dropdown.const.js +10 -0
  75. package/dist/components/Dropdown/Dropdown.d.ts +0 -1
  76. package/dist/components/Dropdown/Dropdown.js +102 -92
  77. package/dist/components/Dropdown/Dropdown.types.d.ts +2 -0
  78. package/dist/components/Gauge/Gauge.cjs +1 -1
  79. package/dist/components/Gauge/Gauge.js +61 -50
  80. package/dist/components/Gauge/Gauge.types.d.ts +2 -0
  81. package/dist/components/HoverCard/HoverCard.cjs +6 -6
  82. package/dist/components/HoverCard/HoverCard.js +72 -54
  83. package/dist/components/Icon/icons/status.js +1 -1
  84. package/dist/components/MentionsInput/MentionsInput.cjs +1 -1
  85. package/dist/components/MentionsInput/MentionsInput.js +106 -83
  86. package/dist/components/Menu/Menu.cjs +1 -1
  87. package/dist/components/Menu/Menu.js +91 -80
  88. package/dist/components/Modal/Modal.cjs +1 -1
  89. package/dist/components/Modal/Modal.const.cjs +1 -1
  90. package/dist/components/Modal/Modal.const.d.ts +1 -1
  91. package/dist/components/Modal/Modal.const.js +1 -1
  92. package/dist/components/Modal/Modal.js +50 -44
  93. package/dist/components/Modal/Modal.types.d.ts +6 -0
  94. package/dist/components/MultiSelect/MultiSelect.cjs +1 -1
  95. package/dist/components/MultiSelect/MultiSelect.js +123 -78
  96. package/dist/components/NavigableSelect/NavigableSelect.cjs +1 -1
  97. package/dist/components/NavigableSelect/NavigableSelect.const.cjs +1 -1
  98. package/dist/components/NavigableSelect/NavigableSelect.const.d.ts +1 -1
  99. package/dist/components/NavigableSelect/NavigableSelect.const.js +1 -1
  100. package/dist/components/NavigableSelect/NavigableSelect.js +167 -143
  101. package/dist/components/NotificationCenter/NotificationCenter.cjs +1 -1
  102. package/dist/components/NotificationCenter/NotificationCenter.const.cjs +1 -1
  103. package/dist/components/NotificationCenter/NotificationCenter.const.d.ts +1 -1
  104. package/dist/components/NotificationCenter/NotificationCenter.const.js +1 -1
  105. package/dist/components/NotificationCenter/NotificationCenter.js +87 -81
  106. package/dist/components/OTPInput/OTPInput.cjs +1 -1
  107. package/dist/components/OTPInput/OTPInput.const.cjs +1 -0
  108. package/dist/components/OTPInput/OTPInput.const.d.ts +6 -0
  109. package/dist/components/OTPInput/OTPInput.const.js +14 -0
  110. package/dist/components/OTPInput/OTPInput.js +99 -65
  111. package/dist/components/OTPInput/OTPInput.types.d.ts +7 -0
  112. package/dist/components/PhoneInput/PhoneInput.cjs +1 -1
  113. package/dist/components/PhoneInput/PhoneInput.const.cjs +1 -1
  114. package/dist/components/PhoneInput/PhoneInput.const.d.ts +1 -1
  115. package/dist/components/PhoneInput/PhoneInput.const.js +1 -1
  116. package/dist/components/PhoneInput/PhoneInput.js +88 -83
  117. package/dist/components/Popconfirm/Popconfirm.cjs +1 -1
  118. package/dist/components/Popconfirm/Popconfirm.const.cjs +1 -1
  119. package/dist/components/Popconfirm/Popconfirm.const.d.ts +1 -3
  120. package/dist/components/Popconfirm/Popconfirm.const.js +12 -18
  121. package/dist/components/Popconfirm/Popconfirm.js +71 -51
  122. package/dist/components/Popover/Popover.cjs +1 -1
  123. package/dist/components/Popover/Popover.js +36 -31
  124. package/dist/components/Portal/Portal.cjs +1 -1
  125. package/dist/components/Portal/Portal.d.ts +0 -3
  126. package/dist/components/Portal/Portal.js +4 -10
  127. package/dist/components/Select/Select.cjs +1 -1
  128. package/dist/components/Select/Select.js +71 -51
  129. package/dist/components/Stepper/Stepper.cjs +1 -1
  130. package/dist/components/Stepper/Stepper.const.cjs +1 -1
  131. package/dist/components/Stepper/Stepper.const.d.ts +3 -2
  132. package/dist/components/Stepper/Stepper.const.js +15 -14
  133. package/dist/components/Stepper/Stepper.d.ts +0 -7
  134. package/dist/components/Stepper/Stepper.js +164 -117
  135. package/dist/components/Stepper/Stepper.types.d.ts +3 -0
  136. package/dist/components/Tabs/TabList.cjs +1 -1
  137. package/dist/components/Tabs/TabList.js +72 -57
  138. package/dist/components/Tabs/Tabs.types.d.ts +4 -2
  139. package/dist/components/Tabs/index.d.ts +2 -2
  140. package/dist/components/TimePicker/components/TimePickerDialDropdown/TimePickerDialDropdown.cjs +1 -1
  141. package/dist/components/TimePicker/components/TimePickerDialDropdown/TimePickerDialDropdown.js +26 -26
  142. package/dist/components/TimePicker/helpers/ClockFaceSvg.cjs +1 -1
  143. package/dist/components/TimePicker/helpers/ClockFaceSvg.js +17 -17
  144. package/dist/components/Toast/Toast.cjs +1 -1
  145. package/dist/components/Toast/Toast.js +86 -82
  146. package/dist/components/Toast/Toast.types.d.ts +2 -0
  147. package/dist/components/Tooltip/Tooltip.cjs +1 -1
  148. package/dist/components/Tooltip/Tooltip.js +52 -44
  149. package/dist/components/TreeSelect/TreeSelect.cjs +1 -1
  150. package/dist/components/TreeSelect/TreeSelect.const.cjs +1 -1
  151. package/dist/components/TreeSelect/TreeSelect.const.d.ts +1 -1
  152. package/dist/components/TreeSelect/TreeSelect.const.js +3 -3
  153. package/dist/components/TreeSelect/TreeSelect.js +120 -88
  154. package/dist/components/Watermark/Watermark.cjs +1 -1
  155. package/dist/components/Watermark/Watermark.const.cjs +1 -1
  156. package/dist/components/Watermark/Watermark.const.d.ts +6 -3
  157. package/dist/components/Watermark/Watermark.const.js +13 -11
  158. package/dist/components/Watermark/Watermark.js +87 -61
  159. package/dist/components/Watermark/Watermark.types.d.ts +2 -0
  160. package/dist/components/index.cjs +1 -1
  161. package/dist/components/index.d.ts +5 -3
  162. package/dist/components/index.js +292 -286
  163. package/dist/hooks/index.cjs +1 -1
  164. package/dist/hooks/index.d.ts +1 -1
  165. package/dist/hooks/index.js +55 -54
  166. package/dist/hooks/useClickOutside.cjs +1 -1
  167. package/dist/hooks/useClickOutside.d.ts +4 -11
  168. package/dist/hooks/useClickOutside.js +26 -7
  169. package/dist/index.cjs +1 -1
  170. package/dist/index.js +386 -379
  171. package/dist/styles/_effects.css +17 -0
  172. package/dist/styles.css +1 -1
  173. package/dist/utils/maxVisible.utils.cjs +1 -0
  174. package/dist/utils/maxVisible.utils.d.ts +12 -0
  175. package/dist/utils/maxVisible.utils.js +15 -0
  176. package/package.json +1 -1
  177. package/dist/components/HoverCard/HoverCard.utils.cjs +0 -1
  178. package/dist/components/HoverCard/HoverCard.utils.js +0 -23
@@ -1,151 +1,198 @@
1
- import { jsx as r, jsxs as l, Fragment as Z } from "react/jsx-runtime";
2
- import { forwardRef as b } from "react";
1
+ import { jsxs as l, Fragment as V, jsx as t } from "react/jsx-runtime";
2
+ import { forwardRef as J, useState as re, useEffect as te, useMemo as j } from "react";
3
+ import { useBearThemeOptional as ne } from "../../context/BearProvider.js";
4
+ import { resolveMaxVisible as oe } from "../../utils/maxVisible.utils.js";
3
5
  import { cn as i } from "../../utils/cn.js";
4
- import { STEP_STATUS_CLASSES as I, STEP_LABEL_SIZES as z, STEP_LABEL_BASE as O, STEP_DESCRIPTION_CLASSES as g, STEP_WRAPPER_HORIZONTAL as H, STEP_WRAPPER_VERTICAL as W, STEPPER_HORIZONTAL_CLASSES as j, STEPPER_VERTICAL_CLASSES as D, STEPPER_BASE_CLASSES as V, STEP_INDICATOR_SIZES as F, STEP_INDICATOR_BASE as U, CONNECTOR_STATUS as L, CONNECTOR_HORIZONTAL as q, CONNECTOR_VERTICAL as G, CONNECTOR_BASE as J } from "./Stepper.const.js";
5
- import { Button as v } from "../Button/Button.js";
6
- const K = () => /* @__PURE__ */ r("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", children: /* @__PURE__ */ r("polyline", { points: "20 6 9 17 4 12" }) }), M = () => /* @__PURE__ */ l("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", children: [
7
- /* @__PURE__ */ r("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
8
- /* @__PURE__ */ r("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
9
- ] }), Q = b(
6
+ import { STEP_WRAPPER_HORIZONTAL as F, STEP_WRAPPER_HORIZONTAL_WINDOW as ie, STEP_WRAPPER_VERTICAL as le, STEPPER_HORIZONTAL_CLASSES as se, STEPPER_VERTICAL_CLASSES as ae, STEPPER_BASE_CLASSES as ce, STEP_STATUS_CLASSES as v, STEP_LABEL_SIZES as de, STEP_LABEL_BASE as U, STEP_DESCRIPTION_CLASSES as $, CONNECTOR_STATUS as q, CONNECTOR_HORIZONTAL as me, CONNECTOR_VERTICAL as he, CONNECTOR_BASE as fe, STEP_INDICATOR_SIZES as ue, STEP_INDICATOR_BASE as G } from "./Stepper.const.js";
7
+ import { Button as O } from "../Button/Button.js";
8
+ import { Dropdown as pe } from "../Dropdown/Dropdown.js";
9
+ import { BearIcons as Ee } from "../Icon/index.js";
10
+ const Se = () => /* @__PURE__ */ t("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", children: /* @__PURE__ */ t("polyline", { points: "20 6 9 17 4 12" }) }), _e = () => /* @__PURE__ */ l("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", children: [
11
+ /* @__PURE__ */ t("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
12
+ /* @__PURE__ */ t("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
13
+ ] }), Ne = J(
10
14
  ({
11
- steps: s,
12
- activeStep: o,
13
- onStepClick: a,
14
- orientation: N = "horizontal",
15
- size: d = "md",
16
- showNumbers: f = !0,
17
- clickable: m = !1,
15
+ steps: o,
16
+ activeStep: d,
17
+ onStepClick: m,
18
+ orientation: C = "horizontal",
19
+ size: S = "md",
20
+ showNumbers: g = !0,
21
+ clickable: _ = !1,
18
22
  showConnectors: T = !0,
19
- connectorStyle: _ = "solid",
20
- alternativeLabel: S = !1,
21
- completedIcon: p,
22
- errorIcon: u,
23
- testId: A,
24
- className: R,
25
- ...x
26
- }, y) => {
27
- const B = (e, t) => t.status ? t.status : e < o ? "completed" : e === o ? "active" : "pending", E = N === "horizontal", k = F[d], h = z[d], P = (e, t, n) => {
28
- const C = I[n];
29
- let c = null;
30
- return e.icon ? c = e.icon : n === "completed" ? c = p || /* @__PURE__ */ r(K, {}) : n === "error" ? c = u || /* @__PURE__ */ r(M, {}) : f && (c = t + 1), /* @__PURE__ */ r(
23
+ connectorStyle: b = "solid",
24
+ alternativeLabel: h = !1,
25
+ completedIcon: w,
26
+ errorIcon: A,
27
+ maxVisibleSteps: u,
28
+ testId: I,
29
+ className: K,
30
+ ...Q
31
+ }, X) => {
32
+ const B = ne(), [y, Y] = re(() => typeof window < "u" ? window.innerWidth : 1200);
33
+ te(() => {
34
+ const e = () => Y(window.innerWidth);
35
+ return window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
36
+ }, []);
37
+ const p = j(
38
+ () => u == null ? void 0 : oe(u, { width: y, theme: B }),
39
+ [u, y, B]
40
+ ), L = (e, r) => r.status ? r.status : e < d ? "completed" : e === d ? "active" : "pending", f = C === "horizontal", H = ue[S], N = de[S], E = f && p != null && o.length > p, { visibleIndices: W, leftHidden: x, rightHidden: z } = j(() => {
41
+ if (!E || p == null)
42
+ return {
43
+ visibleIndices: o.map((c, R) => R),
44
+ leftHidden: [],
45
+ rightHidden: []
46
+ };
47
+ const e = p, r = Math.max(0, Math.min(d - Math.floor(e / 2), o.length - e)), n = Array.from({ length: e }, (c, R) => r + R), s = [], a = [];
48
+ for (let c = 0; c < r; c++) s.push(c);
49
+ for (let c = r + e; c < o.length; c++) a.push(c);
50
+ return { visibleIndices: n, leftHidden: s, rightHidden: a };
51
+ }, [E, p, o.length, d]), M = E ? ie : F, k = (e, r, n) => {
52
+ const s = v[n];
53
+ let a = null;
54
+ return e.icon ? a = e.icon : n === "completed" ? a = w || /* @__PURE__ */ t(Se, {}) : n === "error" ? a = A || /* @__PURE__ */ t(_e, {}) : g && (a = r + 1), /* @__PURE__ */ t(
31
55
  "div",
32
56
  {
33
57
  className: i(
34
- U,
35
- k,
36
- C.indicator,
37
- m && !e.disabled && "cursor-pointer hover:scale-105"
58
+ G,
59
+ H,
60
+ s.indicator,
61
+ _ && !e.disabled && "cursor-pointer hover:scale-105"
38
62
  ),
39
63
  onClick: () => {
40
- m && !e.disabled && a && a(t);
64
+ _ && !e.disabled && m && m(r);
41
65
  },
42
- children: c
66
+ children: a
43
67
  }
44
68
  );
45
- }, w = (e) => {
46
- if (!T || e === s.length - 1) return null;
47
- const t = e < o;
48
- return /* @__PURE__ */ r(
69
+ }, P = (e) => {
70
+ if (!T || e === o.length - 1) return null;
71
+ const r = e < d;
72
+ return /* @__PURE__ */ t(
49
73
  "div",
50
74
  {
51
75
  className: i(
52
- J,
53
- E ? q : G,
54
- t ? L.completed : L.pending,
55
- _ === "dashed" && "border-t-2 border-dashed bg-transparent"
76
+ fe,
77
+ f ? me : he,
78
+ r ? q.completed : q.pending,
79
+ b === "dashed" && "border-t-2 border-dashed bg-transparent"
56
80
  )
57
81
  }
58
82
  );
59
- };
60
- return /* @__PURE__ */ r(
61
- "div",
62
- {
63
- ref: y,
64
- className: i(
65
- V,
66
- E ? j : D,
67
- R
68
- ),
69
- "data-testid": A,
70
- ...x,
71
- children: s.map((e, t) => {
72
- const n = B(t, e), C = I[n];
73
- return /* @__PURE__ */ l(
74
- "div",
83
+ }, Z = (e, r) => {
84
+ const n = L(r, e), s = v[n];
85
+ return /* @__PURE__ */ l("div", { className: i("flex", h ? "flex-col items-center" : "items-center gap-3"), children: [
86
+ k(e, r, n),
87
+ /* @__PURE__ */ l("div", { className: i(h && "text-center mt-2"), children: [
88
+ /* @__PURE__ */ t("div", { className: i(U, N.label, s.label), children: e.label }),
89
+ e.description && /* @__PURE__ */ t("div", { className: i($, N.description), children: e.description })
90
+ ] })
91
+ ] });
92
+ }, ee = (e, r) => {
93
+ const n = L(r, e), s = v[n];
94
+ return /* @__PURE__ */ l(V, { children: [
95
+ /* @__PURE__ */ t("div", { className: "flex-shrink-0 mr-4", children: k(e, r, n) }),
96
+ /* @__PURE__ */ l("div", { className: "flex-1 pt-0.5", children: [
97
+ /* @__PURE__ */ t("div", { className: i(U, N.label, s.label), children: e.label }),
98
+ e.description && /* @__PURE__ */ t("div", { className: i($, N.description), children: e.description }),
99
+ e.content && n === "active" && /* @__PURE__ */ t("div", { className: "mt-4", children: e.content })
100
+ ] })
101
+ ] });
102
+ }, D = (e, r) => /* @__PURE__ */ t("div", { className: i("Bear-Stepper__step", "Bear-Stepper__overflow", M), children: /* @__PURE__ */ l("div", { className: i("flex", h ? "flex-col items-center" : "items-center gap-3"), children: [
103
+ /* @__PURE__ */ t(
104
+ pe,
105
+ {
106
+ placement: "bottom-start",
107
+ closeOnSelect: !0,
108
+ trigger: /* @__PURE__ */ t(
109
+ "button",
75
110
  {
111
+ type: "button",
76
112
  className: i(
77
- "Bear-Stepper__step",
78
- E ? H : W
113
+ G,
114
+ H,
115
+ v.pending.indicator,
116
+ "bear-cursor-pointer bear-border-0"
79
117
  ),
80
- children: [
81
- E ? (
82
- // Horizontal layout
83
- /* @__PURE__ */ l("div", { className: i("flex", S ? "flex-col items-center" : "items-center gap-3"), children: [
84
- P(e, t, n),
85
- /* @__PURE__ */ l("div", { className: i(S && "text-center mt-2"), children: [
86
- /* @__PURE__ */ r("div", { className: i(O, h.label, C.label), children: e.label }),
87
- e.description && /* @__PURE__ */ r("div", { className: i(g, h.description), children: e.description })
88
- ] })
89
- ] })
90
- ) : (
91
- // Vertical layout
92
- /* @__PURE__ */ l(Z, { children: [
93
- /* @__PURE__ */ r("div", { className: "flex-shrink-0 mr-4", children: P(e, t, n) }),
94
- /* @__PURE__ */ l("div", { className: "flex-1 pt-0.5", children: [
95
- /* @__PURE__ */ r("div", { className: i(O, h.label, C.label), children: e.label }),
96
- e.description && /* @__PURE__ */ r("div", { className: i(g, h.description), children: e.description }),
97
- e.content && n === "active" && /* @__PURE__ */ r("div", { className: "mt-4", children: e.content })
98
- ] })
99
- ] })
100
- ),
101
- w(t)
102
- ]
103
- },
104
- t
105
- );
106
- })
118
+ "aria-label": r === "left" ? "Previous steps" : "More steps",
119
+ children: /* @__PURE__ */ t(Ee.MoreHorizIcon, { size: 16 })
120
+ }
121
+ ),
122
+ items: e.map((n) => ({
123
+ key: `step-${n}`,
124
+ label: o[n].label,
125
+ disabled: o[n].disabled,
126
+ onClick: () => {
127
+ o[n].disabled || m == null || m(n);
128
+ }
129
+ }))
130
+ }
131
+ ),
132
+ h && /* @__PURE__ */ t("div", { className: "text-center mt-2 bear-text-xs bear-text-gray-400", children: " " })
133
+ ] }) }, `overflow-${r}`);
134
+ return /* @__PURE__ */ l(
135
+ "div",
136
+ {
137
+ ref: X,
138
+ className: i(ce, f ? se : ae, K),
139
+ "data-testid": I,
140
+ ...Q,
141
+ children: [
142
+ f && !E && o.map((e, r) => /* @__PURE__ */ l("div", { className: i("Bear-Stepper__step", F), children: [
143
+ Z(e, r),
144
+ P(r)
145
+ ] }, r)),
146
+ f && E && /* @__PURE__ */ l(V, { children: [
147
+ x.length > 0 && D(x, "left"),
148
+ W.map((e, r) => {
149
+ const n = o[e], s = W[r + 1], a = s != null && s === e + 1;
150
+ return /* @__PURE__ */ l("div", { className: i("Bear-Stepper__step", M), children: [
151
+ Z(n, e),
152
+ a && P(e)
153
+ ] }, e);
154
+ }),
155
+ z.length > 0 && D(z, "right")
156
+ ] }),
157
+ !f && o.map((e, r) => /* @__PURE__ */ l("div", { className: i("Bear-Stepper__step", le), children: [
158
+ ee(e, r),
159
+ P(r)
160
+ ] }, r))
161
+ ]
107
162
  }
108
163
  );
109
164
  }
110
165
  );
111
- Q.displayName = "Stepper";
112
- const X = b(
166
+ Ne.displayName = "Stepper";
167
+ const ve = J(
113
168
  ({
114
- activeStep: s,
115
- totalSteps: o,
116
- onPrev: a,
117
- onNext: N,
118
- onComplete: d,
119
- disablePrev: f = !1,
120
- disableNext: m = !1,
169
+ activeStep: o,
170
+ totalSteps: d,
171
+ onPrev: m,
172
+ onNext: C,
173
+ onComplete: S,
174
+ disablePrev: g = !1,
175
+ disableNext: _ = !1,
121
176
  prevLabel: T = "Previous",
122
- nextLabel: _ = "Next",
123
- completeLabel: S = "Complete",
124
- showIndicator: p = !0
125
- }, u) => {
126
- const A = s === 0, R = s === o - 1;
127
- return /* @__PURE__ */ l("div", { ref: u, className: "Bear-StepperControls flex items-center justify-between mt-6", children: [
128
- /* @__PURE__ */ r(
129
- v,
130
- {
131
- variant: "outline",
132
- onClick: a,
133
- disabled: A || f,
134
- children: T
135
- }
136
- ),
137
- p && /* @__PURE__ */ l("span", { className: "text-sm text-gray-500 dark:text-gray-400", children: [
177
+ nextLabel: b = "Next",
178
+ completeLabel: h = "Complete",
179
+ showIndicator: w = !0
180
+ }, A) => {
181
+ const u = o === 0, I = o === d - 1;
182
+ return /* @__PURE__ */ l("div", { ref: A, className: "Bear-StepperControls flex items-center justify-between mt-6", children: [
183
+ /* @__PURE__ */ t(O, { variant: "outline", onClick: m, disabled: u || g, children: T }),
184
+ w && /* @__PURE__ */ l("span", { className: "text-sm text-gray-500 dark:text-gray-400", children: [
138
185
  "Step ",
139
- s + 1,
186
+ o + 1,
140
187
  " of ",
141
- o
188
+ d
142
189
  ] }),
143
- R ? /* @__PURE__ */ r(v, { variant: "primary", onClick: d, children: S }) : /* @__PURE__ */ r(v, { variant: "primary", onClick: N, disabled: m, children: _ })
190
+ I ? /* @__PURE__ */ t(O, { variant: "primary", onClick: S, children: h }) : /* @__PURE__ */ t(O, { variant: "primary", onClick: C, disabled: _, children: b })
144
191
  ] });
145
192
  }
146
193
  );
147
- X.displayName = "StepperControls";
194
+ ve.displayName = "StepperControls";
148
195
  export {
149
- Q as Stepper,
150
- X as StepperControls
196
+ Ne as Stepper,
197
+ ve as StepperControls
151
198
  };
@@ -1,4 +1,5 @@
1
1
  import { HTMLAttributes, ReactNode } from 'react';
2
+ import { MaxVisibleInput } from '../../utils/maxVisible.utils';
2
3
  export type StepperOrientation = 'horizontal' | 'vertical';
3
4
  export type StepStatus = 'pending' | 'active' | 'completed' | 'error';
4
5
  export type StepperSize = 'sm' | 'md' | 'lg';
@@ -43,6 +44,8 @@ export interface StepperProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onCh
43
44
  errorIcon?: ReactNode;
44
45
  /** Test ID */
45
46
  testId?: string;
47
+ /** When set on horizontal layout, show at most this many steps with ⋯ menus for the rest (breakpoint map supported). */
48
+ maxVisibleSteps?: MaxVisibleInput;
46
49
  }
47
50
  export interface StepperControlsProps {
48
51
  /** Current step */
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),l=require("react"),x=require("../../utils/cn.cjs"),C=require("../Dropdown/Dropdown.cjs"),j=require("../Icon/index.cjs"),q=require("./Tabs.cjs");function k(a){var o;return l.isValidElement(a)&&typeof a.type!="string"&&((o=a.props)==null?void 0:o.id)!=null}const E=({children:a,maxVisibleTabs:o,wrap:y=!1,className:f})=>{const u=l.useContext(q.TabsContext);if(!u)throw new Error("TabList must be used within Tabs");const{activeTab:s,setActiveTab:g,variant:t}=u,m=l.Children.toArray(a).filter(k),i=m.map(e=>({id:e.props.id,label:e.props.children,disabled:e.props.disabled})),b=s?[s,...i.map(e=>e.id).filter(e=>e!==s)]:i.map(e=>e.id),v=o??b.length,T=b.slice(0,v),c=b.slice(v),d=c.includes(s),h=x.cn("Bear-Tabs__list",`Bear-Tabs__list--${t}`,"bear-flex bear-gap-1",y&&"bear-flex-wrap",t==="line"&&"bear-border-b",t==="pills"&&"bear-p-1 bear-rounded-lg",t==="enclosed"&&"bear-border-b",f),w={...t==="line"||t==="enclosed"?{borderColor:"var(--bear-border-default)"}:{},...t==="pills"?{backgroundColor:"var(--bear-bg-tertiary)"}:{}};return n.jsxs("div",{role:"tablist",className:h,style:w,children:[o!=null?T.map(e=>{const r=m.find(p=>p.props.id===e);return r?l.cloneElement(r,{key:r.props.id}):null}):a,o!=null&&c.length>0&&n.jsx(C.Dropdown,{placement:"bottom-start",closeOnSelect:!0,trigger:n.jsx("button",{type:"button",role:"tab","aria-haspopup":"listbox","aria-label":"More tabs",className:x.cn("bear-flex bear-items-center bear-gap-2 bear-px-4 bear-py-2 bear-text-sm bear-font-medium bear-transition-colors bear-border-0 bear-cursor-pointer",t==="pills"&&"bear-rounded-md",d&&"bear-shadow-sm",!d&&"hover:bear-bg-[var(--bear-bg-tertiary)] hover:bear-text-[var(--bear-text-primary)]"),style:d?{backgroundColor:"var(--bear-bg-primary)",color:"var(--bear-text-primary)"}:{color:"var(--bear-text-muted)"},children:n.jsx(j.BearIcons.MoreHorizIcon,{size:18})}),items:c.map(e=>{const r=i.find(p=>p.id===e);return{key:e,label:(r==null?void 0:r.label)??e,disabled:r==null?void 0:r.disabled,onClick:()=>g(e)}})})]})};exports.TabList=E;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),o=require("react"),C=require("../../utils/cn.cjs"),z=require("../../context/BearProvider.cjs"),B=require("../../utils/maxVisible.utils.cjs"),I=require("../Dropdown/Dropdown.cjs"),L=require("../Icon/index.cjs"),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=z.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(()=>B.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(I.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,69 +1,84 @@
1
- import { jsxs as w, jsx as d } from "react/jsx-runtime";
2
- import { useContext as T, Children as k, cloneElement as E, isValidElement as I } from "react";
3
- import { cn as f } from "../../utils/cn.js";
4
- import { Dropdown as _ } from "../Dropdown/Dropdown.js";
5
- import { BearIcons as A } from "../Icon/index.js";
6
- import { TabsContext as B } from "./Tabs.js";
7
- function M(o) {
8
- var a;
9
- return I(o) && typeof o.type != "string" && ((a = o.props) == null ? void 0 : a.id) != null;
1
+ import { jsx as s, Fragment as N, jsxs as T } from "react/jsx-runtime";
2
+ import { useContext as B, useState as L, useEffect as _, useMemo as A, Children as S, cloneElement as j, isValidElement as O } from "react";
3
+ import { cn as E } from "../../utils/cn.js";
4
+ import { useBearThemeOptional as R } from "../../context/BearProvider.js";
5
+ import { resolveMaxVisible as V } from "../../utils/maxVisible.utils.js";
6
+ import { Dropdown as W } from "../Dropdown/Dropdown.js";
7
+ import { BearIcons as D } from "../Icon/index.js";
8
+ import { TabsContext as F } from "./Tabs.js";
9
+ function H(a) {
10
+ var l;
11
+ return O(a) && typeof a.type != "string" && ((l = a.props) == null ? void 0 : l.id) != null;
10
12
  }
11
- const H = ({ children: o, maxVisibleTabs: a, wrap: v = !1, className: y }) => {
12
- const c = T(B);
13
- if (!c) throw new Error("TabList must be used within Tabs");
14
- const { activeTab: s, setActiveTab: g, variant: t } = c, m = k.toArray(o).filter(M), l = m.map((e) => ({ id: e.props.id, label: e.props.children, disabled: e.props.disabled })), n = s ? [s, ...l.map((e) => e.id).filter((e) => e !== s)] : l.map((e) => e.id), u = a ?? n.length, x = n.slice(0, u), b = n.slice(u), i = b.includes(s), h = f(
13
+ const X = ({ children: a, maxVisibleTabs: l, wrap: n = !1, className: M }) => {
14
+ const u = B(F);
15
+ if (!u) throw new Error("TabList must be used within Tabs");
16
+ const f = R(), [v, k] = L(() => typeof window < "u" ? window.innerWidth : 1200);
17
+ _(() => {
18
+ const e = () => k(window.innerWidth);
19
+ return window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
20
+ }, []);
21
+ const o = A(
22
+ () => V(l, { width: v, theme: f }),
23
+ [l, v, f]
24
+ ), { activeTab: i, setActiveTab: z, variant: t } = u, w = S.toArray(a).filter(H), b = w.map((e) => ({ id: e.props.id, label: e.props.children, disabled: e.props.disabled })), d = i ? [i, ...b.map((e) => e.id).filter((e) => e !== i)] : b.map((e) => e.id), x = o ?? d.length, I = d.slice(0, x), c = d.slice(x), m = c.includes(i), h = E(
15
25
  "Bear-Tabs__list",
16
26
  `Bear-Tabs__list--${t}`,
17
- "bear-flex bear-gap-1",
18
- v && "bear-flex-wrap",
27
+ o != null && !n && "bear-flex bear-w-full bear-min-w-0 bear-items-stretch",
28
+ (!o || n) && "bear-flex bear-gap-1",
29
+ n && "bear-flex-wrap",
30
+ !n && !o && "bear-gap-1",
19
31
  t === "line" && "bear-border-b",
20
32
  t === "pills" && "bear-p-1 bear-rounded-lg",
21
33
  t === "enclosed" && "bear-border-b",
22
- y
23
- ), C = {
34
+ M
35
+ ), y = {
24
36
  ...t === "line" || t === "enclosed" ? { borderColor: "var(--bear-border-default)" } : {},
25
37
  ...t === "pills" ? { backgroundColor: "var(--bear-bg-tertiary)" } : {}
26
- };
27
- return /* @__PURE__ */ w("div", { role: "tablist", className: h, style: C, children: [
28
- a != null ? x.map((e) => {
29
- const r = m.find((p) => p.props.id === e);
30
- return r ? E(r, { key: r.props.id }) : null;
31
- }) : o,
32
- a != null && b.length > 0 && /* @__PURE__ */ d(
33
- _,
34
- {
35
- placement: "bottom-start",
36
- closeOnSelect: !0,
37
- trigger: /* @__PURE__ */ d(
38
- "button",
39
- {
40
- type: "button",
41
- role: "tab",
42
- "aria-haspopup": "listbox",
43
- "aria-label": "More tabs",
44
- className: f(
45
- "bear-flex bear-items-center bear-gap-2 bear-px-4 bear-py-2 bear-text-sm bear-font-medium bear-transition-colors bear-border-0 bear-cursor-pointer",
46
- t === "pills" && "bear-rounded-md",
47
- i && "bear-shadow-sm",
48
- !i && "hover:bear-bg-[var(--bear-bg-tertiary)] hover:bear-text-[var(--bear-text-primary)]"
49
- ),
50
- style: i ? { backgroundColor: "var(--bear-bg-primary)", color: "var(--bear-text-primary)" } : { color: "var(--bear-text-muted)" },
51
- children: /* @__PURE__ */ d(A.MoreHorizIcon, { size: 18 })
52
- }
53
- ),
54
- items: b.map((e) => {
55
- const r = l.find((p) => p.id === e);
56
- return {
57
- key: e,
58
- label: (r == null ? void 0 : r.label) ?? e,
59
- disabled: r == null ? void 0 : r.disabled,
60
- onClick: () => g(e)
61
- };
62
- })
63
- }
64
- )
38
+ }, g = /* @__PURE__ */ s(N, { children: o != null ? I.map((e) => {
39
+ const r = w.find((p) => p.props.id === e);
40
+ return r ? j(r, { key: r.props.id }) : null;
41
+ }) : a }), C = o != null && c.length > 0 ? /* @__PURE__ */ s("div", { className: "bear-flex bear-h-full bear-flex-shrink-0 bear-items-stretch", children: /* @__PURE__ */ s(
42
+ W,
43
+ {
44
+ placement: "bottom-end",
45
+ closeOnSelect: !0,
46
+ trigger: /* @__PURE__ */ s(
47
+ "button",
48
+ {
49
+ type: "button",
50
+ role: "tab",
51
+ "aria-haspopup": "listbox",
52
+ "aria-label": "More tabs",
53
+ className: E(
54
+ "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",
55
+ t === "pills" && "bear-rounded-md",
56
+ m && "bear-shadow-sm",
57
+ !m && "hover:bear-bg-[var(--bear-bg-tertiary)] hover:bear-text-[var(--bear-text-primary)]"
58
+ ),
59
+ style: m ? { backgroundColor: "var(--bear-bg-primary)", color: "var(--bear-text-primary)" } : { color: "var(--bear-text-muted)" },
60
+ children: /* @__PURE__ */ s(D.MoreHorizIcon, { size: 18 })
61
+ }
62
+ ),
63
+ items: c.map((e) => {
64
+ const r = b.find((p) => p.id === e);
65
+ return {
66
+ key: e,
67
+ label: (r == null ? void 0 : r.label) ?? e,
68
+ disabled: r == null ? void 0 : r.disabled,
69
+ onClick: () => z(e)
70
+ };
71
+ })
72
+ }
73
+ ) }) : null;
74
+ return o != null && !n ? /* @__PURE__ */ T("div", { role: "tablist", className: h, style: y, children: [
75
+ /* @__PURE__ */ s("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: g }),
76
+ C
77
+ ] }) : /* @__PURE__ */ T("div", { role: "tablist", className: h, style: y, children: [
78
+ g,
79
+ C
65
80
  ] });
66
81
  };
67
82
  export {
68
- H as TabList
83
+ X as TabList
69
84
  };
@@ -1,4 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
+ import { MaxVisibleInput } from '../../utils/maxVisible.utils';
3
+ export { type MaxVisibleByBreakpoint, type MaxVisibleInput } from '../../utils/maxVisible.utils';
2
4
  export interface TabsContextValue {
3
5
  activeTab: string;
4
6
  setActiveTab: (id: string) => void;
@@ -23,8 +25,8 @@ export interface TabsProps {
23
25
  export interface TabListProps {
24
26
  /** Tab buttons */
25
27
  children: ReactNode;
26
- /** Max number of visible tabs before overflow (e.g. 5); rest go in "..." dropdown. Selected tab is always shown first. */
27
- maxVisibleTabs?: number;
28
+ /** Max visible tabs before "…" dropdown. Number, or breakpoint map using theme.breakpoints (mobile &lt; md, tablet md–lg, desktop ≥ lg). `custom` overrides all widths. */
29
+ maxVisibleTabs?: MaxVisibleInput;
28
30
  /** Allow tabs to wrap to next line (flex-wrap), no breakpoints */
29
31
  wrap?: boolean;
30
32
  /** Custom class name */
@@ -1,4 +1,4 @@
1
- export { Tabs, Tab, TabsContext } from './Tabs';
1
+ export { Tabs, Tab, Tab as ActiveTab, TabsContext } from './Tabs';
2
2
  export { TabList } from './TabList';
3
3
  export { TabPanel } from './TabPanel';
4
- export type { TabsProps, TabListProps, TabProps, TabPanelProps, TabsContextValue } from './Tabs.types';
4
+ export type { TabsProps, TabListProps, TabProps, TabPanelProps, TabsContextValue, MaxVisibleInput, MaxVisibleByBreakpoint, } from './Tabs.types';
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),u=require("react"),n=require("../../../../utils/cn.cjs"),i=require("../../TimePicker.constants.cjs"),v=require("../../helpers/ClockFaceSvg.cjs"),m="bear-text-blue-600 dark:bear-text-blue-400 bear-font-bold bear-bg-blue-50 dark:bear-bg-blue-900/30 bear-rounded bear-px-1",_="bear-text-gray-400 dark:bear-text-zinc-500 hover:bear-text-gray-600 dark:hover:bear-text-zinc-300 bear-cursor-pointer bear-px-1",D=({selectedHour:c,setSelectedHour:o,selectedMinute:d,setSelectedMinute:x,period:k,setPeriod:T,format:a,hours:S,minutes:h,timeValue:p,clearable:E,onChange:l,onConfirm:C,onClose:N,translations:P})=>{const[I,s]=u.useState("hour"),b={...i.TIMEPICKER_DEFAULT_TRANSLATIONS,...P},j=a==="12h"?c===12?12:c%12:c,y=d,g=j.toString().padStart(2,"0"),A=y.toString().padStart(2,"0"),M=a==="12h"?[...i.CLOCK_HOURS_12]:S,t=I==="hour",O=t?M:h,R=u.useCallback(r=>{t?(o(a==="12h"&&r===0?12:r),s("minute")):x(r)},[t,a,o,x]);return e.jsxs("div",{className:n.cn(i.TIMEPICKER_DROPDOWN_CLASSES,"Bear-TimePicker__dial bear-w-72"),children:[e.jsx("div",{className:"Bear-TimePicker__dial-title bear-text-center bear-uppercase bear-text-xs bear-text-gray-500 dark:bear-text-zinc-400 bear-mb-2",children:b.selectTime}),e.jsxs("div",{className:"Bear-TimePicker__dial-display bear-flex bear-items-center bear-justify-center bear-gap-1 bear-mb-4",children:[e.jsx("button",{type:"button",onClick:()=>s("hour"),className:n.cn("Bear-TimePicker__dial-hour-btn bear-text-2xl bear-font-bold bear-transition-colors bear-border-none bear-bg-transparent",t?m:_),"aria-label":b.hour,children:g}),e.jsx("span",{className:"bear-text-2xl bear-font-bold bear-text-gray-900 dark:bear-text-white",children:":"}),e.jsx("button",{type:"button",onClick:()=>s("minute"),className:n.cn("Bear-TimePicker__dial-minute-btn bear-text-2xl bear-font-bold bear-transition-colors bear-border-none bear-bg-transparent",t?_:m),"aria-label":b.minute,children:A}),a==="12h"&&e.jsx("div",{className:"Bear-TimePicker__dial-period bear-flex bear-flex-col bear-gap-0.5 bear-ml-2",children:["AM","PM"].map(r=>e.jsx("button",{onClick:()=>T(r),className:n.cn("Bear-TimePicker__dial-period-btn bear-px-2 bear-py-0.5 bear-rounded bear-text-sm bear-transition-colors",k===r?"bear-text-blue-600 dark:bear-text-blue-400 bear-font-medium":"bear-text-gray-400 dark:bear-text-zinc-500 hover:bear-text-gray-600 dark:hover:bear-text-zinc-400"),children:r},r))})]}),e.jsx("div",{className:"Bear-TimePicker__dial-face bear-relative bear-w-48 bear-h-48 bear-mx-auto bear-mb-4",children:e.jsx(v.ClockFaceSvg,{values:O,isHourMode:t,format:a,selectedHour:c,selectedMinute:d,onSelect:R})}),e.jsxs("div",{className:i.TIMEPICKER_FOOTER_CLASSES,children:[E&&p&&e.jsx("button",{onClick:()=>{l==null||l(null),N()},className:i.TIMEPICKER_CLEAR_BUTTON_CLASSES,children:b.cancel}),e.jsx("button",{onClick:C,className:i.TIMEPICKER_CONFIRM_BUTTON_CLASSES,children:b.ok})]})]})};exports.TimePickerDialDropdown=D;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),k=require("react"),b=require("../../../../utils/cn.cjs"),i=require("../../TimePicker.constants.cjs"),v=require("../../helpers/ClockFaceSvg.cjs"),m="bear-text-pink-600 dark:bear-text-pink-400 bear-font-bold bear-bg-pink-50 dark:bear-bg-pink-900/30 bear-rounded bear-px-1",u="bear-text-gray-400 dark:bear-text-zinc-500 hover:bear-text-gray-600 dark:hover:bear-text-zinc-300 bear-cursor-pointer bear-px-1",D=({selectedHour:c,setSelectedHour:l,selectedMinute:d,setSelectedMinute:x,period:_,setPeriod:p,format:a,hours:T,minutes:S,timeValue:h,clearable:E,onChange:s,onConfirm:C,onClose:N,translations:P})=>{const[I,o]=k.useState("hour"),n={...i.TIMEPICKER_DEFAULT_TRANSLATIONS,...P},j=a==="12h"?c===12?12:c%12:c,y=d,g=j.toString().padStart(2,"0"),A=y.toString().padStart(2,"0"),M=a==="12h"?[...i.CLOCK_HOURS_12]:T,t=I==="hour",O=t?M:S,R=k.useCallback(r=>{t?(l(a==="12h"&&r===0?12:r),o("minute")):x(r)},[t,a,l,x]);return e.jsxs("div",{className:b.cn(i.TIMEPICKER_DROPDOWN_CLASSES,"Bear-TimePicker__dial bear-w-72"),children:[e.jsx("div",{className:"Bear-TimePicker__dial-title bear-text-center bear-uppercase bear-text-xs bear-text-gray-500 dark:bear-text-zinc-400 bear-mb-2",children:n.selectTime}),e.jsxs("div",{className:"Bear-TimePicker__dial-display bear-flex bear-items-center bear-justify-center bear-gap-1 bear-mb-4",children:[e.jsx("button",{type:"button",onClick:()=>o("hour"),className:b.cn("Bear-TimePicker__dial-hour-btn bear-text-2xl bear-font-bold bear-transition-colors bear-border-none bear-bg-transparent",t?m:u),"aria-label":n.hour,children:g}),e.jsx("span",{className:"bear-text-2xl bear-font-bold bear-text-gray-900 dark:bear-text-white",children:":"}),e.jsx("button",{type:"button",onClick:()=>o("minute"),className:b.cn("Bear-TimePicker__dial-minute-btn bear-text-2xl bear-font-bold bear-transition-colors bear-border-none bear-bg-transparent",t?u:m),"aria-label":n.minute,children:A}),a==="12h"&&e.jsx("div",{className:"Bear-TimePicker__dial-period bear-flex bear-flex-col bear-gap-0.5 bear-ml-2",children:["AM","PM"].map(r=>e.jsx("button",{onClick:()=>p(r),className:b.cn("Bear-TimePicker__dial-period-btn bear-px-2 bear-py-0.5 bear-rounded bear-text-sm bear-transition-colors",_===r?"bear-text-pink-600 dark:bear-text-pink-400 bear-font-medium":"bear-text-gray-400 dark:bear-text-zinc-500 hover:bear-text-gray-600 dark:hover:bear-text-zinc-400"),children:r},r))})]}),e.jsx("div",{className:"Bear-TimePicker__dial-face bear-relative bear-w-48 bear-h-48 bear-mx-auto bear-mb-4",children:e.jsx(v.ClockFaceSvg,{values:O,isHourMode:t,format:a,selectedHour:c,selectedMinute:d,onSelect:R})}),e.jsxs("div",{className:i.TIMEPICKER_FOOTER_CLASSES,children:[E&&h&&e.jsx("button",{onClick:()=>{s==null||s(null),N()},className:i.TIMEPICKER_CLEAR_BUTTON_CLASSES,children:n.cancel}),e.jsx("button",{onClick:C,className:i.TIMEPICKER_CONFIRM_BUTTON_CLASSES,children:n.ok})]})]})};exports.TimePickerDialDropdown=D;