@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,56 +1,136 @@
1
- import { jsx as e, jsxs as b } from "react/jsx-runtime";
2
- import { useState as _ } from "react";
3
- import { cn as m } from "../../utils/cn.js";
4
- import { BREADCRUMBS_DEFAULTS as o, BREADCRUMBS_SIZE as M, BREADCRUMBS_ICON_SIZE as d } from "./Breadcrumbs.const.js";
5
- const A = ({ className: t }) => /* @__PURE__ */ e("svg", { className: t, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" }) }), R = ({ className: t }) => /* @__PURE__ */ e("svg", { className: t, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ e("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) }), j = (t) => {
1
+ import { jsx as r, jsxs as m } from "react/jsx-runtime";
2
+ import { useState as f, useEffect as z, useMemo as $ } from "react";
3
+ import { useBearThemeOptional as K } from "../../context/BearProvider.js";
4
+ import { resolveMaxVisible as q } from "../../utils/maxVisible.utils.js";
5
+ import { cn as B } from "../../utils/cn.js";
6
+ import { Dropdown as O } from "../Dropdown/Dropdown.js";
7
+ import { BearIcons as d } from "../Icon/index.js";
8
+ import { BREADCRUMBS_DEFAULTS as p, BREADCRUMBS_SIZE as G, BREADCRUMBS_ICON_SIZE as R } from "./Breadcrumbs.const.js";
9
+ const te = (_) => {
6
10
  const {
7
11
  items: n,
8
- separator: p,
9
- maxItems: c,
10
- itemsBeforeCollapse: h = o.ITEMS_BEFORE_COLLAPSE,
11
- itemsAfterCollapse: f = o.ITEMS_AFTER_COLLAPSE,
12
- className: u,
13
- size: l = o.SIZE,
14
- showHomeIcon: x = o.SHOW_HOME_ICON,
15
- testId: C,
16
- id: E,
17
- "aria-label": k = "Breadcrumb"
18
- } = t, [S, I] = _(!1), N = () => p || /* @__PURE__ */ e(R, { className: m(d[l], "bear-text-zinc-500 bear-mx-2") }), v = (r, a, L) => {
19
- const s = /* @__PURE__ */ b("span", { className: "bear-flex bear-items-center bear-gap-1", children: [
20
- a === 0 && x && /* @__PURE__ */ e(A, { className: d[l] }),
21
- r.icon,
22
- r.label
23
- ] });
24
- return L ? /* @__PURE__ */ e("span", { className: "bear-text-zinc-300 bear-font-medium", "aria-current": "page", children: s }) : r.href ? /* @__PURE__ */ e("a", { href: r.href, className: "bear-text-zinc-400 hover:bear-text-pink-400 bear-transition-colors", children: s }) : r.onClick ? /* @__PURE__ */ e("button", { type: "button", onClick: r.onClick, className: "bear-text-zinc-400 hover:bear-text-pink-400 bear-transition-colors", children: s }) : /* @__PURE__ */ e("span", { className: "bear-text-zinc-400", children: s });
25
- }, B = c && n.length > c && !S;
26
- let i = n;
27
- if (B) {
28
- const r = n.slice(0, h), a = n.slice(-f);
29
- i = [...r, "ellipsis", ...a];
12
+ separator: M,
13
+ maxItems: h,
14
+ itemsBeforeCollapse: u = p.ITEMS_BEFORE_COLLAPSE,
15
+ itemsAfterCollapse: b = p.ITEMS_AFTER_COLLAPSE,
16
+ className: A,
17
+ size: x = p.SIZE,
18
+ showHomeIcon: D = p.SHOW_HOME_ICON,
19
+ testId: L,
20
+ id: P,
21
+ "aria-label": H = "Breadcrumb"
22
+ } = _, w = K(), [i, I] = f(null), [T, k] = f({}), [E, U] = f(() => typeof window < "u" ? window.innerWidth : 1200);
23
+ z(() => {
24
+ const e = () => U(window.innerWidth);
25
+ return window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
26
+ }, []), z(() => {
27
+ I(null), k({});
28
+ }, [n]);
29
+ const y = $(
30
+ () => h == null ? void 0 : q(h, { width: E, theme: w }),
31
+ [h, E, w]
32
+ ), j = () => M || /* @__PURE__ */ r(d.ChevronRightIcon, { className: B(R[x], "bear-text-zinc-500 bear-mx-2") }), C = (e, l, t) => {
33
+ const a = /* @__PURE__ */ m("span", { className: "bear-flex bear-items-center bear-gap-1 bear-max-w-[12rem] bear-truncate md:bear-max-w-none", children: [
34
+ l === 0 && D && /* @__PURE__ */ r(d.HomeIcon, { className: R[x] }),
35
+ e.icon,
36
+ e.label
37
+ ] }), o = t ? /* @__PURE__ */ r("span", { className: "bear-text-zinc-300 bear-font-medium", "aria-current": "page", children: a }) : e.href ? /* @__PURE__ */ r("a", { href: e.href, className: "bear-text-zinc-400 hover:bear-text-pink-400 bear-transition-colors bear-truncate", children: a }) : e.onClick ? /* @__PURE__ */ r("button", { type: "button", onClick: e.onClick, className: "bear-text-zinc-400 hover:bear-text-pink-400 bear-transition-colors bear-truncate", children: a }) : /* @__PURE__ */ r("span", { className: "bear-text-zinc-400 bear-truncate", children: a });
38
+ if (e.dropdownItems && e.dropdownItems.length > 0 && !t) {
39
+ const c = T[l], v = e.dropdownItems.find((s) => s.key === c);
40
+ return /* @__PURE__ */ r(
41
+ O,
42
+ {
43
+ placement: "bottom-start",
44
+ closeOnSelect: !0,
45
+ trigger: /* @__PURE__ */ m(
46
+ "button",
47
+ {
48
+ type: "button",
49
+ className: "bear-inline-flex bear-items-center bear-gap-1 bear-text-zinc-400 hover:bear-text-pink-400 bear-transition-colors",
50
+ "aria-haspopup": "true",
51
+ children: [
52
+ a,
53
+ v && /* @__PURE__ */ r("span", { className: "bear-ml-1 bear-max-w-[8rem] bear-truncate bear-text-xs bear-text-zinc-300", children: v.label }),
54
+ /* @__PURE__ */ r(d.ChevronDownIcon, { size: 14 })
55
+ ]
56
+ }
57
+ ),
58
+ items: e.dropdownItems.map((s) => ({
59
+ key: s.key,
60
+ label: s.label,
61
+ disabled: s.disabled,
62
+ selected: c === s.key,
63
+ onClick: () => {
64
+ var S;
65
+ k((V) => ({ ...V, [l]: s.key })), (S = s.onClick) == null || S.call(s);
66
+ }
67
+ }))
68
+ }
69
+ );
70
+ }
71
+ return o;
72
+ }, F = y != null && n.length > y, g = u, W = n.length - b;
73
+ let N = n.map((e, l) => ({ type: "item", item: e, index: l }));
74
+ if (F) {
75
+ const e = n.slice(0, u), l = n.slice(-b), t = n.slice(u, n.length - b);
76
+ N = [
77
+ ...e.map((a, o) => ({ type: "item", item: a, index: o })),
78
+ ...t.length ? [{ type: "ellipsis", hidden: t }] : [],
79
+ ...l.map((a, o) => ({
80
+ type: "item",
81
+ item: a,
82
+ index: n.length - b + o
83
+ }))
84
+ ];
30
85
  }
31
- return /* @__PURE__ */ e(
86
+ const Z = i != null && i >= g && i < W;
87
+ return /* @__PURE__ */ r(
32
88
  "nav",
33
89
  {
34
- id: E,
35
- "data-testid": C,
36
- className: m("bear-flex bear-items-center bear-flex-wrap", M[l], u),
37
- "aria-label": k,
38
- children: /* @__PURE__ */ e("ol", { className: "bear-flex bear-items-center bear-flex-wrap bear-list-none bear-p-0 bear-m-0", children: i.map((r, a) => /* @__PURE__ */ b("li", { className: "bear-flex bear-items-center", children: [
39
- a > 0 && /* @__PURE__ */ e("span", { "aria-hidden": "true", children: N() }),
40
- r === "ellipsis" ? /* @__PURE__ */ e(
41
- "button",
42
- {
43
- type: "button",
44
- onClick: () => I(!0),
45
- className: "bear-text-zinc-400 hover:bear-text-pink-400 bear-transition-colors bear-px-1",
46
- "aria-label": "Show more breadcrumbs",
47
- children: "..."
48
- }
49
- ) : v(r, a, a === i.length - 1)
50
- ] }, a)) })
90
+ id: P,
91
+ "data-testid": L,
92
+ className: B("bear-flex bear-min-w-0 bear-items-center bear-flex-wrap", G[x], A),
93
+ "aria-label": H,
94
+ children: /* @__PURE__ */ r("ol", { className: "bear-flex bear-min-w-0 bear-items-center bear-flex-wrap bear-list-none bear-p-0 bear-m-0", children: N.map((e, l) => /* @__PURE__ */ m("li", { className: "bear-flex bear-min-w-0 bear-items-center", children: [
95
+ l > 0 && /* @__PURE__ */ r("span", { "aria-hidden": "true", children: j() }),
96
+ e.type === "ellipsis" ? /* @__PURE__ */ m("span", { className: "bear-inline-flex bear-min-w-0 bear-max-w-full bear-items-center bear-gap-1", children: [
97
+ /* @__PURE__ */ r(
98
+ O,
99
+ {
100
+ placement: "bottom-start",
101
+ closeOnSelect: !0,
102
+ trigger: /* @__PURE__ */ r(
103
+ "button",
104
+ {
105
+ type: "button",
106
+ className: "bear-inline-flex bear-items-center bear-justify-center bear-rounded bear-px-2 bear-py-1 bear-text-zinc-400 hover:bear-bg-[var(--bear-bg-tertiary)] hover:bear-text-pink-400 bear-transition-colors",
107
+ "aria-label": "Hidden breadcrumbs",
108
+ children: /* @__PURE__ */ r(d.MoreHorizIcon, { size: 18 })
109
+ }
110
+ ),
111
+ items: e.hidden.map((t, a) => {
112
+ const o = g + a;
113
+ return {
114
+ key: `${t.label}-${a}`,
115
+ label: t.label,
116
+ onClick: () => {
117
+ var c;
118
+ I(o), (c = t.onClick) == null || c.call(t);
119
+ }
120
+ };
121
+ })
122
+ }
123
+ ),
124
+ Z && i != null && /* @__PURE__ */ r("span", { className: "bear-min-w-0 bear-max-w-[12rem] bear-truncate md:bear-max-w-none bear-inline-flex bear-items-center", children: C(
125
+ n[i],
126
+ i,
127
+ i === n.length - 1
128
+ ) })
129
+ ] }) : C(e.item, e.index, e.index === n.length - 1)
130
+ ] }, l)) })
51
131
  }
52
132
  );
53
133
  };
54
134
  export {
55
- j as Breadcrumbs
135
+ te as Breadcrumbs
56
136
  };
@@ -1,24 +1,31 @@
1
1
  import { ReactNode } from 'react';
2
+ import { MaxVisibleInput } from '../../utils/maxVisible.utils';
2
3
  export type BreadcrumbSize = 'sm' | 'md' | 'lg';
4
+ export interface BreadcrumbDropdownItem {
5
+ key: string;
6
+ label: ReactNode;
7
+ onClick?: () => void;
8
+ disabled?: boolean;
9
+ }
3
10
  export interface BreadcrumbItem {
4
11
  label: string;
5
12
  href?: string;
6
13
  icon?: ReactNode;
7
14
  onClick?: () => void;
15
+ /** When set, the crumb opens a dropdown (same shape as Dropdown items). */
16
+ dropdownItems?: BreadcrumbDropdownItem[];
8
17
  }
9
18
  export interface BreadcrumbsProps {
10
19
  items: BreadcrumbItem[];
11
20
  separator?: ReactNode;
12
- maxItems?: number;
21
+ /** Collapse middle crumbs into a "…" menu when items.length exceeds this threshold. Number or breakpoint map (same rules as TabList maxVisibleTabs). */
22
+ maxItems?: MaxVisibleInput;
13
23
  itemsBeforeCollapse?: number;
14
24
  itemsAfterCollapse?: number;
15
25
  className?: string;
16
26
  size?: BreadcrumbSize;
17
27
  showHomeIcon?: boolean;
18
- /** Unique identifier for testing */
19
28
  testId?: string;
20
- /** HTML id attribute */
21
29
  id?: string;
22
- /** Accessible label for screen readers */
23
30
  'aria-label'?: string;
24
31
  }
@@ -1,2 +1,2 @@
1
1
  export { Breadcrumbs } from './Breadcrumbs';
2
- export type { BreadcrumbsProps, BreadcrumbItem } from './Breadcrumbs.types';
2
+ export type { BreadcrumbsProps, BreadcrumbItem, BreadcrumbDropdownItem } from './Breadcrumbs.types';
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),c=require("react"),G=require("react-dom"),w=require("../../utils/cn.cjs"),k=require("./Cascader.const.cjs"),J=({options:u,selectedPath:d,expandedPath:i,onSelect:y,onExpand:m,expandTrigger:C,level:b})=>{const h=t=>{var l;y(t,b),(l=t.children)!=null&&l.length&&m(t,b)},v=t=>{var l;C==="hover"&&((l=t.children)!=null&&l.length)&&m(t,b)};return a.jsx("div",{className:"Bear-Cascader__panel bear-min-w-[180px] bear-max-h-[280px] bear-overflow-y-auto bear-border-r bear-border-zinc-200 dark:bear-border-zinc-700 last:bear-border-r-0",children:u.map(t=>{const l=d[b]===t.value,g=i[b]===t.value,B=t.children&&t.children.length>0;return a.jsxs("button",{type:"button",disabled:t.disabled,onClick:()=>h(t),onMouseEnter:()=>v(t),className:w.cn("Bear-Cascader__option bear-w-full bear-flex bear-items-center bear-justify-between bear-px-3 bear-py-2 bear-text-sm bear-text-left bear-transition-colors",l&&"Bear-Cascader__option--selected bear-bg-pink-500/20 bear-text-pink-600 dark:bear-text-pink-400",g&&!l&&"Bear-Cascader__option--expanded bear-bg-gray-100 dark:bear-bg-zinc-700",!l&&!g&&"bear-text-gray-700 dark:bear-text-zinc-300 hover:bear-bg-gray-100 dark:hover:bear-bg-zinc-700",t.disabled&&"Bear-Cascader__option--disabled bear-opacity-50 bear-cursor-not-allowed"),children:[a.jsxs("span",{className:"bear-flex bear-items-center bear-gap-2",children:[t.icon&&a.jsx("span",{className:"Bear-Cascader__option-icon",children:t.icon}),a.jsx("span",{className:"Bear-Cascader__option-label",children:t.label})]}),B&&a.jsx("svg",{className:"Bear-Cascader__arrow bear-w-4 bear-h-4 bear-text-gray-500 dark:bear-text-zinc-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]},t.value)})})},K=({options:u,value:d=[],onChange:i,placeholder:y,label:m,helperText:C,error:b,disabled:h=!1,loading:v=!1,clearable:t=!0,size:l="md",variant:g="default",expandTrigger:B="click",showFullPath:R=!0,pathSeparator:L=k.CASCADER_PATH_SEPARATOR,changeOnSelect:O=!1,className:q,testId:W,translations:P,icon:X})=>{const[p,E]=c.useState(!1),[_,N]=c.useState([]),[D,Z]=c.useState({top:0,left:0}),M=c.useRef(null),S=c.useRef(null),A=c.useMemo(()=>({...k.CASCADER_DEFAULT_TRANSLATIONS,...P}),[P]);c.useEffect(()=>{if(p&&S.current){const e=S.current.getBoundingClientRect(),s=window.scrollY||document.documentElement.scrollTop,r=window.scrollX||document.documentElement.scrollLeft;Z({top:e.bottom+s+8,left:e.left+r})}},[p]),c.useEffect(()=>{const e=s=>{var n,o;const r=s.target;(n=M.current)!=null&&n.contains(r)||(o=r.closest)!=null&&o.call(r,"[data-bear-cascader-dropdown]")||E(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),c.useEffect(()=>{d.length>0&&N(d.slice(0,-1))},[d]);const H=c.useCallback((e,s)=>{for(const r of e){if(r.value===s)return r;if(r.children){const n=H(r.children,s);if(n)return n}}},[]),T=c.useMemo(()=>{var s;if(d.length===0)return"";const e=d.map((r,n)=>{let o=u;for(let f=0;f<n;f++){const x=o.find(z=>z.value===d[f]);x!=null&&x.children&&(o=x.children)}return o.find(f=>f.value===r)}).filter(Boolean);return R?e.map(r=>r.label).join(L):((s=e[e.length-1])==null?void 0:s.label)||""},[d,u,R,L]),I=c.useMemo(()=>{const e=[u];let s=u;for(const r of _){const n=s.find(o=>o.value===r);if(n!=null&&n.children)e.push(n.children),s=n.children;else break}return e},[u,_]),U=c.useCallback((e,s)=>{var n,o;const r=[..._.slice(0,s),e.value];if(!((n=e.children)!=null&&n.length)||O){const f=[];let x=u;for(const z of r){const j=x.find(F=>F.value===z);j&&(f.push(j),j.children&&(x=j.children))}i==null||i(r,f),(o=e.children)!=null&&o.length||E(!1)}},[_,u,i,O]),V=c.useCallback((e,s)=>{N(r=>[...r.slice(0,s),e.value])},[]),Y=c.useCallback(e=>{e.stopPropagation(),i==null||i([],[]),N([])},[i]);return a.jsxs("div",{ref:M,className:w.cn("Bear-Cascader bear-relative",q),"data-testid":W,children:[m&&a.jsx("label",{className:"Bear-Cascader__label bear-block bear-text-sm bear-font-medium bear-text-zinc-700 dark:bear-text-zinc-300 bear-mb-1.5",children:m}),a.jsxs("button",{ref:S,type:"button",onClick:()=>!h&&E(!p),disabled:h,className:w.cn("Bear-Cascader__trigger bear-w-full bear-flex bear-items-center bear-justify-between bear-rounded-lg bear-border bear-text-left bear-transition-colors",k.CASCADER_SIZE_CLASSES[l],k.CASCADER_VARIANT_CLASSES[g],b?"bear-border-red-500":"focus:bear-border-pink-500",h&&"bear-opacity-50 bear-cursor-not-allowed",T?"bear-text-gray-900 dark:bear-text-white":"bear-text-gray-500 dark:bear-text-zinc-500"),children:[a.jsx("span",{className:"Bear-Cascader__value bear-truncate bear-flex-1",children:v?A.loading:T||y||A.placeholder}),a.jsxs("span",{className:"Bear-Cascader__icons bear-flex bear-items-center bear-gap-1",children:[t&&d.length>0&&!h&&a.jsx("span",{onClick:Y,className:"Bear-Cascader__clear bear-p-0.5 bear-rounded hover:bear-bg-gray-200 dark:hover:bear-bg-zinc-700 bear-cursor-pointer",children:a.jsx("svg",{className:"bear-w-4 bear-h-4 bear-text-gray-500 dark:bear-text-zinc-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})}),X??a.jsx("svg",{className:w.cn("Bear-Cascader__chevron bear-w-4 bear-h-4 bear-text-gray-500 dark:bear-text-zinc-400 bear-transition-transform",p&&"bear-rotate-180"),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})]}),b&&a.jsx("p",{className:"Bear-Cascader__error bear-mt-1 bear-text-xs bear-text-red-400",children:b}),C&&!b&&a.jsx("p",{className:"Bear-Cascader__helper bear-mt-1 bear-text-xs bear-text-zinc-500 dark:bear-text-zinc-400",children:C}),p&&typeof document<"u"&&G.createPortal(a.jsxs("div",{"data-bear-cascader-dropdown":!0,className:"Bear-Cascader__dropdown bear-fixed bear-bg-white dark:bear-bg-zinc-800 bear-border bear-border-zinc-200 dark:bear-border-zinc-700 bear-rounded-lg bear-shadow-xl bear-flex bear-overflow-hidden",style:{top:D.top,left:D.left,zIndex:k.CASCADER_DROPDOWN_Z_INDEX},children:[I.map((e,s)=>a.jsx(J,{options:e,selectedPath:d,expandedPath:_,onSelect:U,onExpand:V,expandTrigger:B,level:s},s)),I.every(e=>e.length===0)&&a.jsx("div",{className:"Bear-Cascader__empty bear-px-4 bear-py-3 bear-text-sm bear-text-gray-500 dark:bear-text-zinc-500",children:A.noOptions})]}),document.body)]})};exports.Cascader=K;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),s=require("react"),J=require("react-dom"),E=require("../../utils/cn.cjs"),x=require("./Cascader.const.cjs"),K=require("./components/CascaderPanel/CascaderPanel.cjs"),Q=({options:l,value:o=[],onChange:d,placeholder:O,label:j,helperText:g,error:m,disabled:p=!1,loading:P=!1,clearable:D=!0,size:M="md",variant:q="default",expandTrigger:I="click",showFullPath:A=!0,pathSeparator:S=x.CASCADER_PATH_SEPARATOR,changeOnSelect:y=!1,className:T,testId:W,translations:N,icon:Z})=>{const[u,w]=s.useState(!1),[f,_]=s.useState([]),[R,H]=s.useState({top:0,left:0}),L=s.useRef(null),k=s.useRef(null),C=s.useMemo(()=>({...x.CASCADER_DEFAULT_TRANSLATIONS,...N}),[N]);s.useEffect(()=>{if(!u||!k.current)return;const e=()=>{const t=k.current.getBoundingClientRect(),r=Math.min(560,window.innerWidth-16);let a=Math.max(8,Math.min(t.left,window.innerWidth-r-8));H({top:t.bottom+8,left:a})};return e(),window.addEventListener("resize",e),window.addEventListener("scroll",e,!0),()=>{window.removeEventListener("resize",e),window.removeEventListener("scroll",e,!0)}},[u]),s.useEffect(()=>{const e=t=>{var a,c;const r=t.target;(a=L.current)!=null&&a.contains(r)||(c=r.closest)!=null&&c.call(r,"[data-bear-cascader-dropdown]")||w(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),s.useEffect(()=>{o.length>0&&_(o.slice(0,-1))},[o]);const U=s.useCallback((e,t)=>{for(const r of e){if(r.value===t)return r;if(r.children){const a=U(r.children,t);if(a)return a}}},[]),z=s.useMemo(()=>{var t;if(o.length===0)return"";const e=o.map((r,a)=>{let c=l;for(let i=0;i<a;i++){const b=c.find(v=>v.value===o[i]);b!=null&&b.children&&(c=b.children)}return c.find(i=>i.value===r)}).filter(Boolean);return A?e.map(r=>r.label).join(S):((t=e[e.length-1])==null?void 0:t.label)||""},[o,l,A,S]),B=s.useMemo(()=>{const e=[l];let t=l;for(const r of f){const a=t.find(c=>c.value===r);if(a!=null&&a.children)e.push(a.children),t=a.children;else break}return e},[l,f]),V=s.useCallback((e,t)=>{var a,c;const r=[...f.slice(0,t),e.value];if(!((a=e.children)!=null&&a.length)||y){const i=[];let b=l;for(const v of r){const h=b.find(G=>G.value===v);h&&(i.push(h),h.children&&(b=h.children))}d==null||d(r,i),(c=e.children)!=null&&c.length||w(!1)}},[f,l,d,y]),X=s.useCallback((e,t)=>{_(r=>[...r.slice(0,t),e.value])},[]),F=s.useCallback(e=>{e.stopPropagation(),d==null||d([],[]),_([])},[d]);return n.jsxs("div",{ref:L,className:E.cn("Bear-Cascader bear-relative",T),"data-testid":W,children:[j&&n.jsx("label",{className:"Bear-Cascader__label bear-block bear-text-sm bear-font-medium bear-text-zinc-700 dark:bear-text-zinc-300 bear-mb-1.5",children:j}),n.jsxs("button",{ref:k,type:"button",onClick:()=>!p&&w(!u),disabled:p,className:E.cn("Bear-Cascader__trigger bear-w-full bear-flex bear-items-center bear-justify-between bear-rounded-lg bear-border bear-text-left bear-transition-colors",x.CASCADER_SIZE_CLASSES[M],x.CASCADER_VARIANT_CLASSES[q],m?"bear-border-red-500":"focus:bear-border-pink-500",p&&"bear-opacity-50 bear-cursor-not-allowed",z?"bear-text-gray-900 dark:bear-text-white":"bear-text-gray-500 dark:bear-text-zinc-500"),children:[n.jsx("span",{className:"Bear-Cascader__value bear-truncate bear-flex-1",children:P?C.loading:z||O||C.placeholder}),n.jsxs("span",{className:"Bear-Cascader__icons bear-flex bear-items-center bear-gap-1",children:[D&&o.length>0&&!p&&n.jsx("span",{onClick:F,className:"Bear-Cascader__clear bear-p-0.5 bear-rounded hover:bear-bg-gray-200 dark:hover:bear-bg-zinc-700 bear-cursor-pointer",children:n.jsx("svg",{className:"bear-w-4 bear-h-4 bear-text-gray-500 dark:bear-text-zinc-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:n.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})}),Z??n.jsx("svg",{className:E.cn("Bear-Cascader__chevron bear-w-4 bear-h-4 bear-text-gray-500 dark:bear-text-zinc-400 bear-transition-transform",u&&"bear-rotate-180"),fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:n.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})]})]}),m&&n.jsx("p",{className:"Bear-Cascader__error bear-mt-1 bear-text-xs bear-text-red-400",children:m}),g&&!m&&n.jsx("p",{className:"Bear-Cascader__helper bear-mt-1 bear-text-xs bear-text-zinc-500 dark:bear-text-zinc-400",children:g}),u&&typeof document<"u"&&J.createPortal(n.jsxs("div",{"data-bear-cascader-dropdown":!0,className:"Bear-Cascader__dropdown bear-fixed bear-max-w-[calc(100vw-16px)] bear-bg-white dark:bear-bg-zinc-800 bear-border bear-border-zinc-200 dark:bear-border-zinc-700 bear-rounded-lg bear-shadow-xl bear-flex bear-flex-col sm:bear-flex-row bear-overflow-hidden",style:{top:R.top,left:R.left,zIndex:x.CASCADER_DROPDOWN_Z_INDEX},children:[B.map((e,t)=>n.jsx(K.CascaderPanel,{options:e,selectedPath:o,expandedPath:f,onSelect:V,onExpand:X,expandTrigger:I,level:t},t)),B.every(e=>e.length===0)&&n.jsx("div",{className:"Bear-Cascader__empty bear-px-4 bear-py-3 bear-text-sm bear-text-gray-500 dark:bear-text-zinc-500",children:C.noOptions})]}),document.body)]})};exports.Cascader=Q;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={placeholder:"Select option",noOptions:"No options available",loading:"Loading...",clear:"Clear"},r={sm:"bear-py-1.5 bear-px-3 bear-text-sm",md:"bear-py-2 bear-px-4 bear-text-sm",lg:"bear-py-2.5 bear-px-5 bear-text-base"},A={default:"bear-bg-white dark:bear-bg-zinc-800 bear-border-zinc-300 dark:bear-border-zinc-600",filled:"bear-bg-zinc-100 dark:bear-bg-zinc-700 bear-border-transparent",outline:"bear-bg-transparent bear-border-zinc-300 dark:bear-border-zinc-500"},a=9999,b=" / ";exports.CASCADER_DEFAULT_TRANSLATIONS=e;exports.CASCADER_DROPDOWN_Z_INDEX=a;exports.CASCADER_PATH_SEPARATOR=b;exports.CASCADER_SIZE_CLASSES=r;exports.CASCADER_VARIANT_CLASSES=A;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={placeholder:"Select option",noOptions:"No options available",loading:"Loading...",clear:"Clear"},r={sm:"bear-py-1.5 bear-px-3 bear-text-sm",md:"bear-py-2 bear-px-4 bear-text-sm",lg:"bear-py-2.5 bear-px-5 bear-text-base"},A={default:"bear-bg-white dark:bear-bg-zinc-800 bear-border-zinc-300 dark:bear-border-zinc-600",filled:"bear-bg-zinc-100 dark:bear-bg-zinc-700 bear-border-transparent",outline:"bear-bg-transparent bear-border-zinc-300 dark:bear-border-zinc-500"},a=1e4,b=" / ";exports.CASCADER_DEFAULT_TRANSLATIONS=e;exports.CASCADER_DROPDOWN_Z_INDEX=a;exports.CASCADER_PATH_SEPARATOR=b;exports.CASCADER_SIZE_CLASSES=r;exports.CASCADER_VARIANT_CLASSES=A;
@@ -22,7 +22,7 @@ export declare const CASCADER_VARIANT_CLASSES: {
22
22
  /**
23
23
  * Z-index for dropdown
24
24
  */
25
- export declare const CASCADER_DROPDOWN_Z_INDEX = 9999;
25
+ export declare const CASCADER_DROPDOWN_Z_INDEX = 10000;
26
26
  /**
27
27
  * Default path separator
28
28
  */
@@ -11,7 +11,7 @@ const e = {
11
11
  default: "bear-bg-white dark:bear-bg-zinc-800 bear-border-zinc-300 dark:bear-border-zinc-600",
12
12
  filled: "bear-bg-zinc-100 dark:bear-bg-zinc-700 bear-border-transparent",
13
13
  outline: "bear-bg-transparent bear-border-zinc-300 dark:bear-border-zinc-500"
14
- }, b = 9999, n = " / ";
14
+ }, b = 1e4, n = " / ";
15
15
  export {
16
16
  e as CASCADER_DEFAULT_TRANSLATIONS,
17
17
  b as CASCADER_DROPDOWN_Z_INDEX,