@forgedevstack/bear 1.2.0 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/dist/components/AnimatedCounter/AnimatedCounter.cjs +1 -0
  2. package/dist/components/AnimatedCounter/AnimatedCounter.const.cjs +1 -0
  3. package/dist/components/AnimatedCounter/AnimatedCounter.const.d.ts +5 -0
  4. package/dist/components/AnimatedCounter/AnimatedCounter.const.js +7 -0
  5. package/dist/components/AnimatedCounter/AnimatedCounter.d.ts +3 -0
  6. package/dist/components/AnimatedCounter/AnimatedCounter.js +59 -0
  7. package/dist/components/AnimatedCounter/AnimatedCounter.types.d.ts +26 -0
  8. package/dist/components/AnimatedCounter/AnimatedCounter.utils.cjs +1 -0
  9. package/dist/components/AnimatedCounter/AnimatedCounter.utils.d.ts +6 -0
  10. package/dist/components/AnimatedCounter/AnimatedCounter.utils.js +13 -0
  11. package/dist/components/AnimatedCounter/index.d.ts +2 -0
  12. package/dist/components/Autocomplete/Autocomplete.cjs +1 -1
  13. package/dist/components/Autocomplete/Autocomplete.const.cjs +1 -0
  14. package/dist/components/Autocomplete/Autocomplete.const.d.ts +1 -0
  15. package/dist/components/Autocomplete/Autocomplete.const.js +4 -0
  16. package/dist/components/Autocomplete/Autocomplete.js +110 -72
  17. package/dist/components/BottomSheet/BottomSheet.cjs +1 -1
  18. package/dist/components/BottomSheet/BottomSheet.js +74 -53
  19. package/dist/components/BottomSheet/BottomSheet.types.d.ts +2 -0
  20. package/dist/components/Breadcrumbs/Breadcrumbs.cjs +1 -1
  21. package/dist/components/Breadcrumbs/Breadcrumbs.js +126 -46
  22. package/dist/components/Breadcrumbs/Breadcrumbs.types.d.ts +11 -4
  23. package/dist/components/Breadcrumbs/index.d.ts +1 -1
  24. package/dist/components/Cascader/Cascader.cjs +1 -1
  25. package/dist/components/Cascader/Cascader.const.cjs +1 -1
  26. package/dist/components/Cascader/Cascader.const.d.ts +1 -1
  27. package/dist/components/Cascader/Cascader.const.js +1 -1
  28. package/dist/components/Cascader/Cascader.js +109 -146
  29. package/dist/components/Cascader/components/CascaderPanel/CascaderPanel.cjs +1 -0
  30. package/dist/components/Cascader/components/CascaderPanel/CascaderPanel.d.ts +3 -0
  31. package/dist/components/Cascader/components/CascaderPanel/CascaderPanel.js +50 -0
  32. package/dist/components/Cascader/components/CascaderPanel/index.d.ts +1 -0
  33. package/dist/components/Chart/BarChart.cjs +1 -0
  34. package/dist/components/Chart/BarChart.d.ts +3 -0
  35. package/dist/components/Chart/BarChart.js +65 -0
  36. package/dist/components/Chart/Chart.cjs +1 -1
  37. package/dist/components/Chart/Chart.const.cjs +1 -1
  38. package/dist/components/Chart/Chart.const.d.ts +7 -0
  39. package/dist/components/Chart/Chart.const.js +12 -2
  40. package/dist/components/Chart/Chart.d.ts +1 -13
  41. package/dist/components/Chart/Chart.js +18 -204
  42. package/dist/components/Chart/Chart.types.d.ts +7 -1
  43. package/dist/components/Chart/LineChart.cjs +1 -0
  44. package/dist/components/Chart/LineChart.d.ts +3 -0
  45. package/dist/components/Chart/LineChart.js +73 -0
  46. package/dist/components/Chart/PieChart.cjs +1 -0
  47. package/dist/components/Chart/PieChart.d.ts +3 -0
  48. package/dist/components/Chart/PieChart.js +110 -0
  49. package/dist/components/Chart/index.d.ts +4 -1
  50. package/dist/components/ColorPicker/ColorPicker.cjs +1 -1
  51. package/dist/components/ColorPicker/ColorPicker.const.cjs +1 -1
  52. package/dist/components/ColorPicker/ColorPicker.const.d.ts +4 -2
  53. package/dist/components/ColorPicker/ColorPicker.const.js +8 -6
  54. package/dist/components/ColorPicker/ColorPicker.js +135 -73
  55. package/dist/components/ColorPicker/ColorPicker.utils.cjs +1 -0
  56. package/dist/components/ColorPicker/ColorPicker.utils.d.ts +17 -0
  57. package/dist/components/ColorPicker/ColorPicker.utils.js +43 -0
  58. package/dist/components/CountdownTimer/CountdownTimer.cjs +1 -1
  59. package/dist/components/CountdownTimer/CountdownTimer.const.cjs +1 -1
  60. package/dist/components/CountdownTimer/CountdownTimer.const.d.ts +2 -0
  61. package/dist/components/CountdownTimer/CountdownTimer.const.js +29 -17
  62. package/dist/components/CountdownTimer/CountdownTimer.js +91 -61
  63. package/dist/components/CountdownTimer/CountdownTimer.types.d.ts +11 -2
  64. package/dist/components/CreditInput/CreditInput.cjs +1 -1
  65. package/dist/components/CreditInput/CreditInput.js +80 -78
  66. package/dist/components/CurrencyInput/CurrencyInput.cjs +1 -0
  67. package/dist/components/CurrencyInput/CurrencyInput.const.cjs +1 -0
  68. package/dist/components/CurrencyInput/CurrencyInput.const.d.ts +4 -0
  69. package/dist/components/CurrencyInput/CurrencyInput.const.js +19 -0
  70. package/dist/components/CurrencyInput/CurrencyInput.d.ts +3 -0
  71. package/dist/components/CurrencyInput/CurrencyInput.js +60 -0
  72. package/dist/components/CurrencyInput/CurrencyInput.types.d.ts +22 -0
  73. package/dist/components/CurrencyInput/CurrencyInput.utils.cjs +1 -0
  74. package/dist/components/CurrencyInput/CurrencyInput.utils.d.ts +2 -0
  75. package/dist/components/CurrencyInput/CurrencyInput.utils.js +14 -0
  76. package/dist/components/CurrencyInput/index.d.ts +2 -0
  77. package/dist/components/DateRangePicker/DateRangePicker.cjs +1 -1
  78. package/dist/components/DateRangePicker/DateRangePicker.js +89 -84
  79. package/dist/components/DiffSquares/DiffSquares.cjs +1 -0
  80. package/dist/components/DiffSquares/DiffSquares.const.cjs +1 -0
  81. package/dist/components/DiffSquares/DiffSquares.const.d.ts +3 -0
  82. package/dist/components/DiffSquares/DiffSquares.const.js +6 -0
  83. package/dist/components/DiffSquares/DiffSquares.d.ts +3 -0
  84. package/dist/components/DiffSquares/DiffSquares.js +70 -0
  85. package/dist/components/DiffSquares/DiffSquares.types.d.ts +23 -0
  86. package/dist/components/DiffSquares/DiffSquares.utils.cjs +1 -0
  87. package/dist/components/DiffSquares/DiffSquares.utils.d.ts +3 -0
  88. package/dist/components/DiffSquares/DiffSquares.utils.js +12 -0
  89. package/dist/components/DiffSquares/index.d.ts +2 -0
  90. package/dist/components/DiffViewer/DiffViewer.cjs +1 -1
  91. package/dist/components/DiffViewer/DiffViewer.const.cjs +1 -1
  92. package/dist/components/DiffViewer/DiffViewer.const.d.ts +6 -0
  93. package/dist/components/DiffViewer/DiffViewer.const.js +17 -4
  94. package/dist/components/DiffViewer/DiffViewer.d.ts +0 -14
  95. package/dist/components/DiffViewer/DiffViewer.js +97 -105
  96. package/dist/components/DiffViewer/DiffViewer.types.d.ts +5 -0
  97. package/dist/components/DiffViewer/index.d.ts +1 -1
  98. package/dist/components/Drawer/Drawer.cjs +1 -1
  99. package/dist/components/Drawer/Drawer.js +41 -41
  100. package/dist/components/Dropdown/Dropdown.cjs +1 -1
  101. package/dist/components/Dropdown/Dropdown.const.cjs +1 -0
  102. package/dist/components/Dropdown/Dropdown.const.d.ts +7 -0
  103. package/dist/components/Dropdown/Dropdown.const.js +10 -0
  104. package/dist/components/Dropdown/Dropdown.d.ts +0 -1
  105. package/dist/components/Dropdown/Dropdown.js +102 -92
  106. package/dist/components/Dropdown/Dropdown.types.d.ts +2 -0
  107. package/dist/components/Gauge/Gauge.cjs +1 -1
  108. package/dist/components/Gauge/Gauge.js +61 -50
  109. package/dist/components/Gauge/Gauge.types.d.ts +2 -0
  110. package/dist/components/GlowCard/GlowCard.cjs +1 -0
  111. package/dist/components/GlowCard/GlowCard.const.cjs +1 -0
  112. package/dist/components/GlowCard/GlowCard.const.d.ts +11 -0
  113. package/dist/components/GlowCard/GlowCard.const.js +13 -0
  114. package/dist/components/GlowCard/GlowCard.d.ts +3 -0
  115. package/dist/components/GlowCard/GlowCard.js +185 -0
  116. package/dist/components/GlowCard/GlowCard.types.d.ts +21 -0
  117. package/dist/components/GlowCard/index.d.ts +2 -0
  118. package/dist/components/Heatmap/Heatmap.cjs +1 -0
  119. package/dist/components/Heatmap/Heatmap.const.cjs +1 -0
  120. package/dist/components/Heatmap/Heatmap.const.d.ts +8 -0
  121. package/dist/components/Heatmap/Heatmap.const.js +11 -0
  122. package/dist/components/Heatmap/Heatmap.d.ts +3 -0
  123. package/dist/components/Heatmap/Heatmap.js +103 -0
  124. package/dist/components/Heatmap/Heatmap.types.d.ts +34 -0
  125. package/dist/components/Heatmap/Heatmap.utils.cjs +1 -0
  126. package/dist/components/Heatmap/Heatmap.utils.d.ts +2 -0
  127. package/dist/components/Heatmap/Heatmap.utils.js +18 -0
  128. package/dist/components/Heatmap/index.d.ts +2 -0
  129. package/dist/components/HoverCard/HoverCard.cjs +6 -6
  130. package/dist/components/HoverCard/HoverCard.js +72 -54
  131. package/dist/components/Icon/icons/status.js +1 -1
  132. package/dist/components/ImageAnnotation/ImageAnnotation.cjs +1 -0
  133. package/dist/components/ImageAnnotation/ImageAnnotation.const.cjs +1 -0
  134. package/dist/components/ImageAnnotation/ImageAnnotation.const.d.ts +3 -0
  135. package/dist/components/ImageAnnotation/ImageAnnotation.const.js +6 -0
  136. package/dist/components/ImageAnnotation/ImageAnnotation.d.ts +3 -0
  137. package/dist/components/ImageAnnotation/ImageAnnotation.js +113 -0
  138. package/dist/components/ImageAnnotation/ImageAnnotation.types.d.ts +28 -0
  139. package/dist/components/ImageAnnotation/index.d.ts +2 -0
  140. package/dist/components/MediaPlayer/MediaPlayer.cjs +1 -0
  141. package/dist/components/MediaPlayer/MediaPlayer.const.cjs +1 -0
  142. package/dist/components/MediaPlayer/MediaPlayer.const.d.ts +36 -0
  143. package/dist/components/MediaPlayer/MediaPlayer.const.js +11 -0
  144. package/dist/components/MediaPlayer/MediaPlayer.d.ts +3 -0
  145. package/dist/components/MediaPlayer/MediaPlayer.js +279 -0
  146. package/dist/components/MediaPlayer/MediaPlayer.types.d.ts +69 -0
  147. package/dist/components/MediaPlayer/MediaPlayer.utils.cjs +1 -0
  148. package/dist/components/MediaPlayer/MediaPlayer.utils.d.ts +1 -0
  149. package/dist/components/MediaPlayer/MediaPlayer.utils.js +7 -0
  150. package/dist/components/MediaPlayer/index.d.ts +2 -0
  151. package/dist/components/MentionsInput/MentionsInput.cjs +1 -1
  152. package/dist/components/MentionsInput/MentionsInput.js +106 -83
  153. package/dist/components/Menu/Menu.cjs +1 -1
  154. package/dist/components/Menu/Menu.js +91 -80
  155. package/dist/components/Modal/Modal.cjs +1 -1
  156. package/dist/components/Modal/Modal.const.cjs +1 -1
  157. package/dist/components/Modal/Modal.const.d.ts +1 -1
  158. package/dist/components/Modal/Modal.const.js +1 -1
  159. package/dist/components/Modal/Modal.js +50 -44
  160. package/dist/components/Modal/Modal.types.d.ts +6 -0
  161. package/dist/components/MultiSelect/MultiSelect.cjs +1 -1
  162. package/dist/components/MultiSelect/MultiSelect.js +123 -78
  163. package/dist/components/NavigableSelect/NavigableSelect.cjs +1 -1
  164. package/dist/components/NavigableSelect/NavigableSelect.const.cjs +1 -1
  165. package/dist/components/NavigableSelect/NavigableSelect.const.d.ts +1 -1
  166. package/dist/components/NavigableSelect/NavigableSelect.const.js +1 -1
  167. package/dist/components/NavigableSelect/NavigableSelect.js +167 -143
  168. package/dist/components/NotificationCenter/NotificationCenter.cjs +1 -1
  169. package/dist/components/NotificationCenter/NotificationCenter.const.cjs +1 -1
  170. package/dist/components/NotificationCenter/NotificationCenter.const.d.ts +1 -1
  171. package/dist/components/NotificationCenter/NotificationCenter.const.js +1 -1
  172. package/dist/components/NotificationCenter/NotificationCenter.js +87 -81
  173. package/dist/components/OTPInput/OTPInput.cjs +1 -1
  174. package/dist/components/OTPInput/OTPInput.const.cjs +1 -0
  175. package/dist/components/OTPInput/OTPInput.const.d.ts +6 -0
  176. package/dist/components/OTPInput/OTPInput.const.js +14 -0
  177. package/dist/components/OTPInput/OTPInput.js +99 -65
  178. package/dist/components/OTPInput/OTPInput.types.d.ts +7 -0
  179. package/dist/components/PhoneInput/PhoneInput.cjs +1 -1
  180. package/dist/components/PhoneInput/PhoneInput.const.cjs +1 -1
  181. package/dist/components/PhoneInput/PhoneInput.const.d.ts +1 -1
  182. package/dist/components/PhoneInput/PhoneInput.const.js +1 -1
  183. package/dist/components/PhoneInput/PhoneInput.js +88 -83
  184. package/dist/components/Popconfirm/Popconfirm.cjs +1 -1
  185. package/dist/components/Popconfirm/Popconfirm.const.cjs +1 -1
  186. package/dist/components/Popconfirm/Popconfirm.const.d.ts +1 -3
  187. package/dist/components/Popconfirm/Popconfirm.const.js +12 -18
  188. package/dist/components/Popconfirm/Popconfirm.js +71 -51
  189. package/dist/components/Popover/Popover.cjs +1 -1
  190. package/dist/components/Popover/Popover.js +36 -31
  191. package/dist/components/Portal/Portal.cjs +1 -1
  192. package/dist/components/Portal/Portal.d.ts +0 -3
  193. package/dist/components/Portal/Portal.js +4 -10
  194. package/dist/components/Select/Select.cjs +1 -1
  195. package/dist/components/Select/Select.js +71 -51
  196. package/dist/components/Stepper/Stepper.cjs +1 -1
  197. package/dist/components/Stepper/Stepper.const.cjs +1 -1
  198. package/dist/components/Stepper/Stepper.const.d.ts +26 -4
  199. package/dist/components/Stepper/Stepper.const.js +39 -20
  200. package/dist/components/Stepper/Stepper.d.ts +3 -10
  201. package/dist/components/Stepper/Stepper.js +189 -130
  202. package/dist/components/Stepper/Stepper.types.d.ts +14 -0
  203. package/dist/components/Stepper/Stepper.utils.cjs +1 -0
  204. package/dist/components/Stepper/Stepper.utils.d.ts +12 -0
  205. package/dist/components/Stepper/Stepper.utils.js +19 -0
  206. package/dist/components/Stepper/components/StepperControls.cjs +1 -0
  207. package/dist/components/Stepper/components/StepperControls.d.ts +2 -0
  208. package/dist/components/Stepper/components/StepperControls.js +32 -0
  209. package/dist/components/Stepper/index.d.ts +2 -1
  210. package/dist/components/Tabs/TabList.cjs +1 -1
  211. package/dist/components/Tabs/TabList.js +72 -57
  212. package/dist/components/Tabs/Tabs.types.d.ts +4 -2
  213. package/dist/components/Tabs/index.d.ts +2 -2
  214. package/dist/components/TagCloud/TagCloud.cjs +1 -0
  215. package/dist/components/TagCloud/TagCloud.const.cjs +1 -0
  216. package/dist/components/TagCloud/TagCloud.const.d.ts +5 -0
  217. package/dist/components/TagCloud/TagCloud.const.js +8 -0
  218. package/dist/components/TagCloud/TagCloud.d.ts +3 -0
  219. package/dist/components/TagCloud/TagCloud.js +76 -0
  220. package/dist/components/TagCloud/TagCloud.types.d.ts +26 -0
  221. package/dist/components/TagCloud/index.d.ts +2 -0
  222. package/dist/components/TimePicker/components/TimePickerDialDropdown/TimePickerDialDropdown.cjs +1 -1
  223. package/dist/components/TimePicker/components/TimePickerDialDropdown/TimePickerDialDropdown.js +26 -26
  224. package/dist/components/TimePicker/helpers/ClockFaceSvg.cjs +1 -1
  225. package/dist/components/TimePicker/helpers/ClockFaceSvg.js +17 -17
  226. package/dist/components/TimelineChart/TimelineChart.cjs +1 -0
  227. package/dist/components/TimelineChart/TimelineChart.const.cjs +1 -0
  228. package/dist/components/TimelineChart/TimelineChart.const.d.ts +6 -0
  229. package/dist/components/TimelineChart/TimelineChart.const.js +9 -0
  230. package/dist/components/TimelineChart/TimelineChart.d.ts +3 -0
  231. package/dist/components/TimelineChart/TimelineChart.js +65 -0
  232. package/dist/components/TimelineChart/TimelineChart.types.d.ts +31 -0
  233. package/dist/components/TimelineChart/index.d.ts +2 -0
  234. package/dist/components/Toast/Toast.cjs +1 -1
  235. package/dist/components/Toast/Toast.js +86 -82
  236. package/dist/components/Toast/Toast.types.d.ts +2 -0
  237. package/dist/components/Tooltip/Tooltip.cjs +1 -1
  238. package/dist/components/Tooltip/Tooltip.js +52 -44
  239. package/dist/components/TreeSelect/TreeSelect.cjs +1 -1
  240. package/dist/components/TreeSelect/TreeSelect.const.cjs +1 -1
  241. package/dist/components/TreeSelect/TreeSelect.const.d.ts +1 -1
  242. package/dist/components/TreeSelect/TreeSelect.const.js +3 -3
  243. package/dist/components/TreeSelect/TreeSelect.js +120 -88
  244. package/dist/components/Watermark/Watermark.cjs +1 -1
  245. package/dist/components/Watermark/Watermark.const.cjs +1 -1
  246. package/dist/components/Watermark/Watermark.const.d.ts +6 -3
  247. package/dist/components/Watermark/Watermark.const.js +13 -11
  248. package/dist/components/Watermark/Watermark.js +87 -61
  249. package/dist/components/Watermark/Watermark.types.d.ts +2 -0
  250. package/dist/components/index.cjs +1 -1
  251. package/dist/components/index.d.ts +22 -4
  252. package/dist/components/index.js +319 -296
  253. package/dist/hooks/index.cjs +1 -1
  254. package/dist/hooks/index.d.ts +1 -1
  255. package/dist/hooks/index.js +55 -54
  256. package/dist/hooks/useClickOutside.cjs +1 -1
  257. package/dist/hooks/useClickOutside.d.ts +4 -11
  258. package/dist/hooks/useClickOutside.js +26 -7
  259. package/dist/index.cjs +1 -1
  260. package/dist/index.js +412 -388
  261. package/dist/styles/_effects.css +32 -0
  262. package/dist/styles.css +1 -1
  263. package/dist/utils/maxVisible.utils.cjs +1 -0
  264. package/dist/utils/maxVisible.utils.d.ts +12 -0
  265. package/dist/utils/maxVisible.utils.js +15 -0
  266. package/package.json +1 -1
  267. package/dist/components/HoverCard/HoverCard.utils.cjs +0 -1
  268. package/dist/components/HoverCard/HoverCard.utils.js +0 -23
@@ -1,127 +1,119 @@
1
- import { jsxs as r, jsx as d } from "react/jsx-runtime";
2
- import { useMemo as v } from "react";
3
- import { cn as h } from "../../utils/cn.js";
4
- import { useBear as B } from "../../context/BearProvider.js";
5
- import { Typography as i } from "../Typography/Typography.js";
6
- import { LINE_NUMBER_WIDTH as M, DIFF_COLORS as O } from "./DiffViewer.const.js";
7
- import { computeDiff as _, computeStats as j } from "./DiffViewer.utils.js";
8
- const H = ({
9
- oldValue: l,
10
- newValue: m,
11
- viewMode: x = "split",
12
- showLineNumbers: y = !0,
13
- oldTitle: N = "Original",
14
- newTitle: u = "Modified",
15
- showStats: f = !0,
16
- className: p,
17
- testId: g
1
+ import { jsxs as t, jsx as a } from "react/jsx-runtime";
2
+ import { useState as R, useMemo as x, useCallback as y } from "react";
3
+ import { cn as o } from "../../utils/cn.js";
4
+ import { useBear as W } from "../../context/BearProvider.js";
5
+ import { Typography as n } from "../Typography/Typography.js";
6
+ import { DEFAULT_OLD_TITLE as j, DEFAULT_NEW_TITLE as G, DEFAULT_SPACING as H, LINE_NUMBER_WIDTH as P, LINE_SPACING as V, DIFF_COLORS as $, LINE_HOVER_LABELS as q } from "./DiffViewer.const.js";
7
+ import { computeDiff as z, computeStats as J } from "./DiffViewer.utils.js";
8
+ const ae = ({
9
+ oldValue: p,
10
+ newValue: f,
11
+ viewMode: L = "split",
12
+ showLineNumbers: E = !0,
13
+ oldTitle: k = j,
14
+ newTitle: _ = G,
15
+ showStats: D = !0,
16
+ spacing: T = H,
17
+ showLineHoverInfo: i = !1,
18
+ className: w,
19
+ testId: v
18
20
  }) => {
19
- const { mode: w } = B(), b = w === "dark", o = v(() => _(l, m), [l, m]), t = v(() => j(o), [o]), n = (e) => y ? /* @__PURE__ */ d(
21
+ const { mode: C } = W(), S = C === "dark", [A, b] = R(null), d = x(() => z(p, f), [p, f]), c = x(() => J(d), [d]), h = V[T], B = y((e) => {
22
+ i && b(e);
23
+ }, [i]), F = y(() => {
24
+ b(null);
25
+ }, []), l = (e) => E ? /* @__PURE__ */ a(
20
26
  "span",
21
27
  {
22
- className: "select-none text-gray-400 dark:text-gray-600 text-right pr-3",
23
- style: { minWidth: M },
28
+ className: o("select-none text-gray-400 dark:text-gray-600 text-right pr-3", h),
29
+ style: { minWidth: P },
24
30
  children: e ?? ""
25
31
  }
26
- ) : null, s = (e, a) => {
27
- const c = O[a], D = a === "add" ? "+" : a === "remove" ? "-" : " ";
28
- return /* @__PURE__ */ r(
32
+ ) : null, m = (e, r, s) => {
33
+ const g = $[r], U = r === "add" ? "+" : r === "remove" ? "-" : " ", I = s != null && A === s;
34
+ return /* @__PURE__ */ t(
29
35
  "div",
30
36
  {
31
- className: "flex font-mono text-sm",
37
+ className: o("flex font-mono text-sm relative group", h),
32
38
  style: {
33
- backgroundColor: c.bg,
34
- borderLeft: `3px solid ${c.border}`
39
+ backgroundColor: g.bg,
40
+ borderLeft: `3px solid ${g.border}`
35
41
  },
42
+ onMouseEnter: () => s != null && B(s),
43
+ onMouseLeave: F,
36
44
  children: [
37
- /* @__PURE__ */ d(
45
+ /* @__PURE__ */ a(
38
46
  "span",
39
47
  {
40
48
  className: "px-2 select-none font-bold",
41
- style: { color: c.text },
42
- children: D
49
+ style: { color: g.text },
50
+ children: U
43
51
  }
44
52
  ),
45
- /* @__PURE__ */ d("span", { className: "flex-1 whitespace-pre", children: e })
46
- ]
47
- }
48
- );
49
- };
50
- if (x === "unified")
51
- return /* @__PURE__ */ r(
52
- "div",
53
- {
54
- className: h(
55
- "Bear-DiffViewer",
56
- "rounded-lg overflow-hidden border",
57
- b ? "bg-gray-900 border-gray-700" : "bg-white border-gray-200",
58
- p
59
- ),
60
- "data-testid": g,
61
- children: [
62
- f && /* @__PURE__ */ r("div", { className: "flex items-center gap-4 px-4 py-2 border-b border-gray-200 dark:border-gray-700", children: [
63
- /* @__PURE__ */ r(i, { variant: "caption", className: "text-green-600", children: [
64
- "+",
65
- t.additions,
66
- " additions"
67
- ] }),
68
- /* @__PURE__ */ r(i, { variant: "caption", className: "text-red-600", children: [
69
- "-",
70
- t.deletions,
71
- " deletions"
72
- ] })
73
- ] }),
74
- /* @__PURE__ */ d("div", { className: "overflow-x-auto", children: o.map((e, a) => /* @__PURE__ */ r("div", { className: "flex", children: [
75
- n(e.oldLineNumber || e.newLineNumber),
76
- /* @__PURE__ */ d("div", { className: "flex-1", children: s(e.content, e.type) })
77
- ] }, a)) })
53
+ /* @__PURE__ */ a("span", { className: "flex-1 whitespace-pre", children: e }),
54
+ i && I && r !== "context" && /* @__PURE__ */ a(
55
+ "span",
56
+ {
57
+ className: o(
58
+ "absolute right-2 top-1/2 -translate-y-1/2 text-xs px-2 py-0.5 rounded",
59
+ r === "add" ? "bg-green-500/20 text-green-600 dark:text-green-400" : "bg-red-500/20 text-red-600 dark:text-red-400"
60
+ ),
61
+ children: q[r]
62
+ }
63
+ )
78
64
  ]
79
65
  }
80
66
  );
81
- const k = o.filter((e) => e.type !== "add"), L = o.filter((e) => e.type !== "remove");
82
- return /* @__PURE__ */ r(
83
- "div",
84
- {
85
- className: h(
86
- "Bear-DiffViewer",
87
- "rounded-lg overflow-hidden border",
88
- b ? "bg-gray-900 border-gray-700" : "bg-white border-gray-200",
89
- p
90
- ),
91
- "data-testid": g,
92
- children: [
93
- f && /* @__PURE__ */ r("div", { className: "flex items-center gap-4 px-4 py-2 border-b border-gray-200 dark:border-gray-700", children: [
94
- /* @__PURE__ */ r(i, { variant: "caption", className: "text-green-600", children: [
95
- "+",
96
- t.additions,
97
- " additions"
98
- ] }),
99
- /* @__PURE__ */ r(i, { variant: "caption", className: "text-red-600", children: [
100
- "-",
101
- t.deletions,
102
- " deletions"
103
- ] })
104
- ] }),
105
- /* @__PURE__ */ r("div", { className: "grid grid-cols-2 divide-x divide-gray-200 dark:divide-gray-700", children: [
106
- /* @__PURE__ */ r("div", { children: [
107
- /* @__PURE__ */ d("div", { className: "px-3 py-2 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ d(i, { variant: "caption", className: "font-semibold", children: N }) }),
108
- /* @__PURE__ */ d("div", { className: "overflow-x-auto", children: k.map((e, a) => /* @__PURE__ */ r("div", { className: "flex", children: [
109
- n(e.oldLineNumber),
110
- /* @__PURE__ */ d("div", { className: "flex-1", children: s(e.content, e.type === "remove" ? "remove" : "context") })
111
- ] }, a)) })
112
- ] }),
113
- /* @__PURE__ */ r("div", { children: [
114
- /* @__PURE__ */ d("div", { className: "px-3 py-2 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ d(i, { variant: "caption", className: "font-semibold", children: u }) }),
115
- /* @__PURE__ */ d("div", { className: "overflow-x-auto", children: L.map((e, a) => /* @__PURE__ */ r("div", { className: "flex", children: [
116
- n(e.newLineNumber),
117
- /* @__PURE__ */ d("div", { className: "flex-1", children: s(e.content, e.type === "add" ? "add" : "context") })
118
- ] }, a)) })
119
- ] })
120
- ] })
121
- ]
122
- }
67
+ }, u = () => D ? /* @__PURE__ */ t("div", { className: "flex items-center gap-4 px-4 py-2 border-b border-gray-200 dark:border-gray-700", children: [
68
+ /* @__PURE__ */ t(n, { variant: "caption", className: "text-green-600", children: [
69
+ "+",
70
+ c.additions,
71
+ " additions"
72
+ ] }),
73
+ /* @__PURE__ */ t(n, { variant: "caption", className: "text-red-600", children: [
74
+ "-",
75
+ c.deletions,
76
+ " deletions"
77
+ ] }),
78
+ /* @__PURE__ */ t(n, { variant: "caption", className: "text-gray-500", children: [
79
+ c.unchanged,
80
+ " unchanged"
81
+ ] })
82
+ ] }) : null, N = o(
83
+ "Bear-DiffViewer",
84
+ "rounded-lg overflow-hidden border",
85
+ S ? "bg-gray-900 border-gray-700" : "bg-white border-gray-200",
86
+ w
123
87
  );
88
+ if (L === "unified")
89
+ return /* @__PURE__ */ t("div", { className: N, "data-testid": v, children: [
90
+ u(),
91
+ /* @__PURE__ */ a("div", { className: "overflow-x-auto", children: d.map((e, r) => /* @__PURE__ */ t("div", { className: "flex", children: [
92
+ l(e.oldLineNumber || e.newLineNumber),
93
+ /* @__PURE__ */ a("div", { className: "flex-1", children: m(e.content, e.type, r) })
94
+ ] }, r)) })
95
+ ] });
96
+ const M = d.filter((e) => e.type !== "add"), O = d.filter((e) => e.type !== "remove");
97
+ return /* @__PURE__ */ t("div", { className: N, "data-testid": v, children: [
98
+ u(),
99
+ /* @__PURE__ */ t("div", { className: "grid grid-cols-2 divide-x divide-gray-200 dark:divide-gray-700", children: [
100
+ /* @__PURE__ */ t("div", { children: [
101
+ /* @__PURE__ */ a("div", { className: "px-3 py-2 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ a(n, { variant: "caption", className: "font-semibold", children: k }) }),
102
+ /* @__PURE__ */ a("div", { className: "overflow-x-auto", children: M.map((e, r) => /* @__PURE__ */ t("div", { className: "flex", children: [
103
+ l(e.oldLineNumber),
104
+ /* @__PURE__ */ a("div", { className: "flex-1", children: m(e.content, e.type === "remove" ? "remove" : "context", r) })
105
+ ] }, r)) })
106
+ ] }),
107
+ /* @__PURE__ */ t("div", { children: [
108
+ /* @__PURE__ */ a("div", { className: "px-3 py-2 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700", children: /* @__PURE__ */ a(n, { variant: "caption", className: "font-semibold", children: _ }) }),
109
+ /* @__PURE__ */ a("div", { className: "overflow-x-auto", children: O.map((e, r) => /* @__PURE__ */ t("div", { className: "flex", children: [
110
+ l(e.newLineNumber),
111
+ /* @__PURE__ */ a("div", { className: "flex-1", children: m(e.content, e.type === "add" ? "add" : "context", r) })
112
+ ] }, r)) })
113
+ ] })
114
+ ] })
115
+ ] });
124
116
  };
125
117
  export {
126
- H as DiffViewer
118
+ ae as DiffViewer
127
119
  };
@@ -3,6 +3,7 @@
3
3
  */
4
4
  export type DiffViewMode = 'split' | 'unified';
5
5
  export type DiffLineType = 'add' | 'remove' | 'context';
6
+ export type DiffSpacing = 'compact' | 'comfortable' | 'spacious';
6
7
  export interface DiffViewerProps {
7
8
  /** Original text (left side) */
8
9
  oldValue: string;
@@ -22,6 +23,10 @@ export interface DiffViewerProps {
22
23
  newTitle?: string;
23
24
  /** Show diff statistics */
24
25
  showStats?: boolean;
26
+ /** Line spacing density */
27
+ spacing?: DiffSpacing;
28
+ /** Show a tooltip on line hover with change type */
29
+ showLineHoverInfo?: boolean;
25
30
  /** Custom class name */
26
31
  className?: string;
27
32
  /** Test ID */
@@ -1,2 +1,2 @@
1
1
  export { DiffViewer } from './DiffViewer';
2
- export type { DiffViewerProps, DiffViewMode, DiffLine, DiffStats } from './DiffViewer.types';
2
+ export type { DiffViewerProps, DiffViewMode, DiffLine, DiffStats, DiffSpacing } from './DiffViewer.types';
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),a=require("react"),j=require("react-dom"),x=require("../../utils/cn.cjs"),N=require("../Icon/index.cjs"),d=300,q={left:{sm:"bear-w-64",md:"bear-w-80",lg:"bear-w-96",xl:"bear-w-[32rem]"},right:{sm:"bear-w-64",md:"bear-w-80",lg:"bear-w-96",xl:"bear-w-[32rem]"},top:{sm:"bear-h-32",md:"bear-h-48",lg:"bear-h-64",xl:"bear-h-96"},bottom:{sm:"bear-h-32",md:"bear-h-48",lg:"bear-h-64",xl:"bear-h-96"}},C={left:"bear-left-0 bear-top-0 bear-h-full",right:"bear-right-0 bear-top-0 bear-h-full",top:"bear-top-0 bear-left-0 bear-w-full",bottom:"bear-bottom-0 bear-left-0 bear-w-full"},D={left:"bear-translate-x-0",right:"bear-translate-x-0",top:"bear-translate-y-0",bottom:"bear-translate-y-0"},E={left:"-bear-translate-x-full",right:"bear-translate-x-full",top:"-bear-translate-y-full",bottom:"bear-translate-y-full"},S=({isOpen:s,onClose:l,title:o,children:w,side:e="right",size:g="md",showCloseButton:u=!0,closeOnBackdrop:y=!0,closeOnEscape:c=!0,className:p})=>{const[t,m]=a.useState(s),[f,n]=a.useState(!1),[v,h]=a.useState(!1);a.useEffect(()=>{if(s){m(!0),n(!1);const b=requestAnimationFrame(()=>h(!0));return()=>cancelAnimationFrame(b)}if(t){h(!1),n(!0);const b=setTimeout(()=>{m(!1),n(!1)},d);return()=>clearTimeout(b)}},[s,t]);const i=a.useCallback(b=>{c&&b.key==="Escape"&&l()},[c,l]);if(a.useEffect(()=>(t&&(document.addEventListener("keydown",i),document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",i),document.body.style.overflow=""}),[t,i]),!t)return null;const k=r.jsxs("div",{className:"bear-fixed bear-inset-0 bear-z-50",children:[r.jsx("div",{className:x.cn("bear-absolute bear-inset-0 bear-bg-black/60 bear-backdrop-blur-sm bear-transition-opacity",f?"bear-opacity-0":"bear-opacity-100"),style:{transitionDuration:`${d}ms`},onClick:y?l:void 0,"aria-hidden":"true"}),r.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":o?"drawer-title":void 0,className:x.cn("bear-absolute bear-bg-white dark:bear-bg-neutral-900 bear-shadow-2xl","bear-border-neutral-200 dark:bear-border-neutral-700 bear-overflow-hidden","bear-transform bear-transition-transform",e==="left"&&"bear-border-r",e==="right"&&"bear-border-l",e==="top"&&"bear-border-b",e==="bottom"&&"bear-border-t",C[e],q[e][g],v&&!f?D[e]:E[e],p),style:{transitionDuration:`${d}ms`},children:[(o||u)&&r.jsxs("div",{className:"bear-flex bear-items-center bear-justify-between bear-px-4 bear-py-3 bear-border-b bear-border-neutral-200 dark:bear-border-neutral-700",children:[o&&r.jsx("h2",{id:"drawer-title",className:"bear-text-lg bear-font-semibold bear-text-neutral-900 dark:bear-text-white",children:o}),u&&r.jsx("button",{onClick:l,className:"bear-p-1 bear-rounded-lg bear-text-neutral-500 dark:bear-text-neutral-400 hover:bear-text-neutral-900 dark:hover:bear-text-white hover:bear-bg-neutral-100 dark:hover:bear-bg-neutral-700 bear-transition-colors","aria-label":"Close drawer",children:r.jsx(N.XIcon,{className:"bear-w-5 bear-h-5"})})]}),r.jsx("div",{className:"bear-flex-1 bear-overflow-y-auto bear-p-4 bear-text-neutral-700 dark:bear-text-neutral-300",children:w})]})]});return j.createPortal(k,document.body)};exports.Drawer=S;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),a=require("react"),j=require("react-dom"),x=require("../../utils/cn.cjs"),N=require("../Icon/index.cjs"),m=300,q={left:{sm:"bear-w-full sm:bear-w-64 bear-max-w-full sm:bear-max-w-none",md:"bear-w-full sm:bear-w-80 bear-max-w-full sm:bear-max-w-none",lg:"bear-w-full sm:bear-w-96 bear-max-w-full sm:bear-max-w-none",xl:"bear-w-full sm:bear-w-[32rem] bear-max-w-full sm:bear-max-w-none"},right:{sm:"bear-w-full sm:bear-w-64 bear-max-w-full sm:bear-max-w-none",md:"bear-w-full sm:bear-w-80 bear-max-w-full sm:bear-max-w-none",lg:"bear-w-full sm:bear-w-96 bear-max-w-full sm:bear-max-w-none",xl:"bear-w-full sm:bear-w-[32rem] bear-max-w-full sm:bear-max-w-none"},top:{sm:"bear-h-32",md:"bear-h-48",lg:"bear-h-64",xl:"bear-h-96"},bottom:{sm:"bear-h-32",md:"bear-h-48",lg:"bear-h-64",xl:"bear-h-96"}},C={left:"bear-left-0 bear-top-0 bear-h-full",right:"bear-right-0 bear-top-0 bear-h-full",top:"bear-top-0 bear-left-0 bear-w-full",bottom:"bear-bottom-0 bear-left-0 bear-w-full"},D={left:"bear-translate-x-0",right:"bear-translate-x-0",top:"bear-translate-y-0",bottom:"bear-translate-y-0"},E={left:"-bear-translate-x-full",right:"bear-translate-x-full",top:"-bear-translate-y-full",bottom:"bear-translate-y-full"},S=({isOpen:n,onClose:l,title:s,children:h,side:e="right",size:g="md",showCloseButton:i=!0,closeOnBackdrop:y=!0,closeOnEscape:d=!0,className:p})=>{const[t,f]=a.useState(n),[c,o]=a.useState(!1),[v,w]=a.useState(!1);a.useEffect(()=>{if(n){f(!0),o(!1);const b=requestAnimationFrame(()=>w(!0));return()=>cancelAnimationFrame(b)}if(t){w(!1),o(!0);const b=setTimeout(()=>{f(!1),o(!1)},m);return()=>clearTimeout(b)}},[n,t]);const u=a.useCallback(b=>{d&&b.key==="Escape"&&l()},[d,l]);if(a.useEffect(()=>(t&&(document.addEventListener("keydown",u),document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",u),document.body.style.overflow=""}),[t,u]),!t)return null;const k=r.jsxs("div",{className:"bear-fixed bear-inset-0 bear-z-[11000]",children:[r.jsx("div",{className:x.cn("bear-absolute bear-inset-0 bear-bg-black/60 bear-backdrop-blur-sm bear-transition-opacity",c?"bear-opacity-0":"bear-opacity-100"),style:{transitionDuration:`${m}ms`},onClick:y?l:void 0,"aria-hidden":"true"}),r.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":s?"drawer-title":void 0,className:x.cn("bear-absolute bear-bg-white dark:bear-bg-neutral-900 bear-shadow-2xl","bear-border-neutral-200 dark:bear-border-neutral-700 bear-overflow-hidden","bear-transform bear-transition-transform",e==="left"&&"bear-border-r",e==="right"&&"bear-border-l",e==="top"&&"bear-border-b",e==="bottom"&&"bear-border-t",C[e],q[e][g],v&&!c?D[e]:E[e],p),style:{transitionDuration:`${m}ms`},children:[(s||i)&&r.jsxs("div",{className:"bear-flex bear-items-center bear-justify-between bear-px-4 bear-py-3 bear-border-b bear-border-neutral-200 dark:bear-border-neutral-700",children:[s&&r.jsx("h2",{id:"drawer-title",className:"bear-text-lg bear-font-semibold bear-text-neutral-900 dark:bear-text-white",children:s}),i&&r.jsx("button",{onClick:l,className:"bear-p-1 bear-rounded-lg bear-text-neutral-500 dark:bear-text-neutral-400 hover:bear-text-neutral-900 dark:hover:bear-text-white hover:bear-bg-neutral-100 dark:hover:bear-bg-neutral-700 bear-transition-colors","aria-label":"Close drawer",children:r.jsx(N.XIcon,{className:"bear-w-5 bear-h-5"})})]}),r.jsx("div",{className:"bear-flex-1 bear-overflow-y-auto bear-p-4 bear-text-neutral-700 dark:bear-text-neutral-300",children:h})]})]});return j.createPortal(k,document.body)};exports.Drawer=S;
@@ -1,20 +1,20 @@
1
- import { jsxs as i, jsx as t } from "react/jsx-runtime";
2
- import { useState as d, useEffect as p, useCallback as A } from "react";
1
+ import { jsxs as m, jsx as t } from "react/jsx-runtime";
2
+ import { useState as u, useEffect as h, useCallback as A } from "react";
3
3
  import { createPortal as E } from "react-dom";
4
- import { cn as x } from "../../utils/cn.js";
4
+ import { cn as p } from "../../utils/cn.js";
5
5
  import { XIcon as I } from "../Icon/index.js";
6
- const m = 300, D = {
6
+ const i = 300, D = {
7
7
  left: {
8
- sm: "bear-w-64",
9
- md: "bear-w-80",
10
- lg: "bear-w-96",
11
- xl: "bear-w-[32rem]"
8
+ sm: "bear-w-full sm:bear-w-64 bear-max-w-full sm:bear-max-w-none",
9
+ md: "bear-w-full sm:bear-w-80 bear-max-w-full sm:bear-max-w-none",
10
+ lg: "bear-w-full sm:bear-w-96 bear-max-w-full sm:bear-max-w-none",
11
+ xl: "bear-w-full sm:bear-w-[32rem] bear-max-w-full sm:bear-max-w-none"
12
12
  },
13
13
  right: {
14
- sm: "bear-w-64",
15
- md: "bear-w-80",
16
- lg: "bear-w-96",
17
- xl: "bear-w-[32rem]"
14
+ sm: "bear-w-full sm:bear-w-64 bear-max-w-full sm:bear-max-w-none",
15
+ md: "bear-w-full sm:bear-w-80 bear-max-w-full sm:bear-max-w-none",
16
+ lg: "bear-w-full sm:bear-w-96 bear-max-w-full sm:bear-max-w-none",
17
+ xl: "bear-w-full sm:bear-w-[32rem] bear-max-w-full sm:bear-max-w-none"
18
18
  },
19
19
  top: {
20
20
  sm: "bear-h-32",
@@ -44,61 +44,61 @@ const m = 300, D = {
44
44
  top: "-bear-translate-y-full",
45
45
  bottom: "bear-translate-y-full"
46
46
  }, _ = ({
47
- isOpen: l,
47
+ isOpen: o,
48
48
  onClose: b,
49
- title: o,
49
+ title: l,
50
50
  children: g,
51
51
  side: e = "right",
52
52
  size: y = "md",
53
- showCloseButton: u = !0,
53
+ showCloseButton: d = !0,
54
54
  closeOnBackdrop: v = !0,
55
- closeOnEscape: c = !0,
55
+ closeOnEscape: f = !0,
56
56
  className: k
57
57
  }) => {
58
- const [r, f] = d(l), [h, n] = d(!1), [N, w] = d(!1);
59
- p(() => {
60
- if (l) {
61
- f(!0), n(!1);
62
- const a = requestAnimationFrame(() => w(!0));
58
+ const [r, w] = u(o), [c, n] = u(!1), [N, x] = u(!1);
59
+ h(() => {
60
+ if (o) {
61
+ w(!0), n(!1);
62
+ const a = requestAnimationFrame(() => x(!0));
63
63
  return () => cancelAnimationFrame(a);
64
64
  }
65
65
  if (r) {
66
- w(!1), n(!0);
66
+ x(!1), n(!0);
67
67
  const a = setTimeout(() => {
68
- f(!1), n(!1);
69
- }, m);
68
+ w(!1), n(!1);
69
+ }, i);
70
70
  return () => clearTimeout(a);
71
71
  }
72
- }, [l, r]);
72
+ }, [o, r]);
73
73
  const s = A(
74
74
  (a) => {
75
- c && a.key === "Escape" && b();
75
+ f && a.key === "Escape" && b();
76
76
  },
77
- [c, b]
77
+ [f, b]
78
78
  );
79
- if (p(() => (r && (document.addEventListener("keydown", s), document.body.style.overflow = "hidden"), () => {
79
+ if (h(() => (r && (document.addEventListener("keydown", s), document.body.style.overflow = "hidden"), () => {
80
80
  document.removeEventListener("keydown", s), document.body.style.overflow = "";
81
81
  }), [r, s]), !r) return null;
82
- const C = /* @__PURE__ */ i("div", { className: "bear-fixed bear-inset-0 bear-z-50", children: [
82
+ const C = /* @__PURE__ */ m("div", { className: "bear-fixed bear-inset-0 bear-z-[11000]", children: [
83
83
  /* @__PURE__ */ t(
84
84
  "div",
85
85
  {
86
- className: x(
86
+ className: p(
87
87
  "bear-absolute bear-inset-0 bear-bg-black/60 bear-backdrop-blur-sm bear-transition-opacity",
88
- h ? "bear-opacity-0" : "bear-opacity-100"
88
+ c ? "bear-opacity-0" : "bear-opacity-100"
89
89
  ),
90
- style: { transitionDuration: `${m}ms` },
90
+ style: { transitionDuration: `${i}ms` },
91
91
  onClick: v ? b : void 0,
92
92
  "aria-hidden": "true"
93
93
  }
94
94
  ),
95
- /* @__PURE__ */ i(
95
+ /* @__PURE__ */ m(
96
96
  "div",
97
97
  {
98
98
  role: "dialog",
99
99
  "aria-modal": "true",
100
- "aria-labelledby": o ? "drawer-title" : void 0,
101
- className: x(
100
+ "aria-labelledby": l ? "drawer-title" : void 0,
101
+ className: p(
102
102
  "bear-absolute bear-bg-white dark:bear-bg-neutral-900 bear-shadow-2xl",
103
103
  "bear-border-neutral-200 dark:bear-border-neutral-700 bear-overflow-hidden",
104
104
  "bear-transform bear-transition-transform",
@@ -108,21 +108,21 @@ const m = 300, D = {
108
108
  e === "bottom" && "bear-border-t",
109
109
  M[e],
110
110
  D[e][y],
111
- N && !h ? j[e] : T[e],
111
+ N && !c ? j[e] : T[e],
112
112
  k
113
113
  ),
114
- style: { transitionDuration: `${m}ms` },
114
+ style: { transitionDuration: `${i}ms` },
115
115
  children: [
116
- (o || u) && /* @__PURE__ */ i("div", { className: "bear-flex bear-items-center bear-justify-between bear-px-4 bear-py-3 bear-border-b bear-border-neutral-200 dark:bear-border-neutral-700", children: [
117
- o && /* @__PURE__ */ t(
116
+ (l || d) && /* @__PURE__ */ m("div", { className: "bear-flex bear-items-center bear-justify-between bear-px-4 bear-py-3 bear-border-b bear-border-neutral-200 dark:bear-border-neutral-700", children: [
117
+ l && /* @__PURE__ */ t(
118
118
  "h2",
119
119
  {
120
120
  id: "drawer-title",
121
121
  className: "bear-text-lg bear-font-semibold bear-text-neutral-900 dark:bear-text-white",
122
- children: o
122
+ children: l
123
123
  }
124
124
  ),
125
- u && /* @__PURE__ */ t(
125
+ d && /* @__PURE__ */ t(
126
126
  "button",
127
127
  {
128
128
  onClick: b,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),r=require("react"),h=require("../../utils/cn.cjs"),B=require("../../hooks/useClickOutside.cjs");require("../../context/BearProvider.cjs");require("../../hooks/useBearComponent/useBearComponent.cjs");const K={xs:"bear-text-xs bear-py-1 bear-px-2",sm:"bear-text-sm bear-py-1.5 bear-px-3",md:"bear-text-sm bear-py-2 bear-px-3",lg:"bear-text-base bear-py-2.5 bear-px-4",xl:"bear-text-lg bear-py-3 bear-px-5"},U={"bottom-start":"bear-top-full bear-left-0 bear-mt-1","bottom-end":"bear-top-full bear-right-0 bear-mt-1",bottom:"bear-top-full bear-left-1/2 -bear-translate-x-1/2 bear-mt-1","top-start":"bear-bottom-full bear-left-0 bear-mb-1","top-end":"bear-bottom-full bear-right-0 bear-mb-1",top:"bear-bottom-full bear-left-1/2 -bear-translate-x-1/2 bear-mb-1",left:"bear-right-full bear-top-0 bear-mr-1",right:"bear-left-full bear-top-0 bear-ml-1"},V=({trigger:x,items:i,open:k,defaultOpen:j=!1,placement:N="bottom-start",offset:Z=4,matchWidth:S=!1,minWidth:D=150,maxHeight:I=300,size:R="md",closeOnSelect:y=!0,closeOnClickOutside:g=!0,disabled:m=!1,onOpenChange:u,className:q,testId:A,...L})=>{var C;const[M,W]=r.useState(j),[o,d]=r.useState(-1),w=r.useRef(null),z=r.useRef(null),E=r.useRef(null),p=k!==void 0,t=p?k:M,f=r.useCallback(e=>{p||W(e),u==null||u(e)},[p,u]),F=r.useCallback(()=>{m||f(!t)},[m,t,f]),n=r.useCallback(()=>{f(!1),d(-1)},[f]),v=r.useCallback(e=>{var b;e.disabled||e.divider||e.header||((b=e.onClick)==null||b.call(e),y&&!e.items&&n())},[y,n]),P=r.useCallback(()=>{t&&g&&n()},[t,g,n]);B.useClickOutside(w,P),r.useEffect(()=>{if(!t)return;const e=i.filter(a=>!a.disabled&&!a.divider&&!a.header),b=a=>{switch(a.key){case"Escape":a.preventDefault(),n();break;case"ArrowDown":a.preventDefault(),d(c=>{const l=c+1;return l>=e.length?0:l});break;case"ArrowUp":a.preventDefault(),d(c=>{const l=c-1;return l<0?e.length-1:l});break;case"Enter":case" ":a.preventDefault(),o>=0&&o<e.length&&v(e[o]);break}};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[t,i,o,n,v]),r.useEffect(()=>{t||d(-1)},[t]);const T=(e,b)=>{if(e.divider)return s.jsx("div",{className:"bear-my-1 bear-mx-2 bear-h-px",style:{backgroundColor:"var(--bear-border-default)"},role:"separator"},e.key);if(e.header)return s.jsx("div",{className:"bear-px-3 bear-py-1.5 bear-text-xs bear-font-semibold bear-uppercase bear-tracking-wider",style:{color:"var(--bear-text-muted)"},children:e.label},e.key);const a=i.slice(0,b).filter(l=>!l.disabled&&!l.divider&&!l.header).length,c=o===a;return s.jsxs("button",{type:"button",role:"menuitem",disabled:e.disabled,onClick:()=>v(e),onMouseEnter:()=>d(a),className:h.cn("bear-w-full bear-flex bear-items-center bear-gap-2 bear-text-left bear-border-none bear-bg-transparent",K[R],"bear-transition-colors bear-cursor-pointer",c&&!e.danger&&"bear-bg-[var(--bear-bg-tertiary)]",e.danger&&"bear-text-red-600 dark:bear-text-red-400 hover:bear-bg-red-50 dark:hover:bear-bg-red-900/20",!e.danger&&!e.disabled&&"hover:bear-bg-[var(--bear-bg-tertiary)]",e.disabled&&"bear-opacity-50 bear-cursor-not-allowed bear-pointer-events-none"),style:e.disabled?{color:"var(--bear-text-muted)"}:e.danger?void 0:{color:"var(--bear-text-secondary)"},children:[e.icon&&s.jsx("span",{className:"bear-flex-shrink-0 bear-w-5 bear-h-5 bear-flex bear-items-center bear-justify-center",children:e.icon}),s.jsx("span",{className:"bear-flex-1",children:e.label}),e.trailing&&s.jsx("span",{className:"bear-flex-shrink-0",style:{color:"var(--bear-text-muted)"},children:e.trailing}),e.items&&s.jsx("svg",{className:"bear-w-4 bear-h-4 bear-flex-shrink-0",style:{color:"var(--bear-text-muted)"},viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:s.jsx("polyline",{points:"9 18 15 12 9 6"})})]},e.key)},_=r.isValidElement(x)?r.cloneElement(x,{onClick:F,ref:E,"aria-expanded":t,"aria-haspopup":!0}):x;return s.jsxs("div",{ref:w,className:h.cn("bear-relative bear-inline-block",q),"data-testid":A,...L,children:[_,t&&s.jsx("div",{ref:z,role:"menu",className:h.cn("bear-absolute bear-z-50","bear-border bear-rounded-lg bear-shadow-lg","bear-py-1 bear-overflow-y-auto","bear-animate-in bear-fade-in-0 bear-zoom-in-95 bear-duration-100",U[N]),style:{backgroundColor:"var(--bear-bg-primary)",borderColor:"var(--bear-border-default)",minWidth:S?(C=E.current)==null?void 0:C.offsetWidth:D,maxHeight:I},children:i.map((e,b)=>T(e,b))})]})};exports.Dropdown=V;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),t=require("react"),E=require("../../utils/cn.cjs"),J=require("../../hooks/useClickOutside.cjs");require("../../context/BearProvider.cjs");require("../../hooks/useBearComponent/useBearComponent.cjs");const Q=require("../Portal/Portal.cjs"),X=require("./Dropdown.const.cjs"),Y=({trigger:x,items:c,open:j,defaultOpen:q=!1,placement:i="bottom-start",offset:v=4,matchWidth:C=!1,minWidth:h=150,maxHeight:M=300,size:S="md",closeOnSelect:I=!0,closeOnClickOutside:g=!0,disabled:R=!1,onOpenChange:f,className:P,testId:W,...z})=>{const[A,U]=t.useState(q),[b,u]=t.useState(-1),[k,B]=t.useState({top:0,left:0,minWidth:h}),D=t.useRef(null),L=t.useRef(null),N=t.useRef(null),w=j!==void 0,n=w?j:A,p=t.useCallback(e=>{w||U(e),f==null||f(e)},[w,f]),F=t.useCallback(()=>{R||p(!n)},[R,n,p]),d=t.useCallback(()=>{p(!1),u(-1)},[p]),y=t.useCallback(e=>{var r;e.disabled||e.divider||e.header||((r=e.onClick)==null||r.call(e),I&&!e.items&&d())},[I,d]),T=t.useCallback(()=>{n&&g&&d()},[n,g,d]);J.useClickOutsideMultiple([D,L],T,{enabled:n&&g}),t.useEffect(()=>{if(!n)return;const e=c.filter(a=>!a.disabled&&!a.divider&&!a.header),r=a=>{switch(a.key){case"Escape":a.preventDefault(),d();break;case"ArrowDown":a.preventDefault(),u(o=>{const l=o+1;return l>=e.length?0:l});break;case"ArrowUp":a.preventDefault(),u(o=>{const l=o-1;return l<0?e.length-1:l});break;case"Enter":case" ":a.preventDefault(),b>=0&&b<e.length&&y(e[b]);break}};return document.addEventListener("keydown",r),()=>document.removeEventListener("keydown",r)},[n,c,b,d,y]),t.useEffect(()=>{if(!n)return;const e=()=>{var m;const r=(m=N.current)==null?void 0:m.getBoundingClientRect();if(!r)return;const a=window.innerWidth,o=C?r.width:h,Z=i.endsWith("end")?r.right-o:i==="top"||i==="bottom"?r.left+r.width/2-o/2:r.left,G=Math.min(Math.max(8,Z),Math.max(8,a-o-8)),H=i.startsWith("top")?r.top-v:r.bottom+v;B({top:H,left:G,minWidth:o})};return e(),window.addEventListener("resize",e),window.addEventListener("scroll",e,!0),()=>{window.removeEventListener("resize",e),window.removeEventListener("scroll",e,!0)}},[n,C,h,i,v]),t.useEffect(()=>{n||u(-1)},[n]);const _=t.useMemo(()=>c.map((e,r)=>({item:e,index:r})).filter(({item:e})=>!e.disabled&&!e.divider&&!e.header),[c]),K=(e,r)=>{if(e.divider)return s.jsx("div",{className:"bear-my-1 bear-mx-2 bear-h-px",style:{backgroundColor:"var(--bear-border-default)"},role:"separator"},e.key);if(e.header)return s.jsx("div",{className:"bear-px-3 bear-py-1.5 bear-text-xs bear-font-semibold bear-uppercase bear-tracking-wider",style:{color:"var(--bear-text-muted)"},children:e.label},e.key);const a=_.findIndex(l=>l.index===r),o=b===a;return s.jsxs("button",{type:"button",role:"menuitem",disabled:e.disabled,onClick:()=>y(e),onMouseEnter:()=>u(a),className:E.cn("bear-w-full bear-flex bear-items-center bear-gap-2 bear-text-left bear-border-none bear-bg-transparent",X.SIZE_CLASSES[S],"bear-transition-colors bear-cursor-pointer",e.selected&&!e.danger&&"bear-bg-[var(--bear-bg-tertiary)] bear-text-[var(--bear-text-primary)]",o&&!e.danger&&"bear-bg-[var(--bear-bg-tertiary)]",e.danger&&"bear-text-red-600 dark:bear-text-red-400 hover:bear-bg-red-50 dark:hover:bear-bg-red-900/20",!e.danger&&!e.disabled&&"hover:bear-bg-[var(--bear-bg-tertiary)]",e.disabled&&"bear-opacity-50 bear-cursor-not-allowed bear-pointer-events-none"),style:e.disabled?{color:"var(--bear-text-muted)"}:e.danger?void 0:{color:"var(--bear-text-secondary)"},children:[e.icon&&s.jsx("span",{className:"bear-flex-shrink-0 bear-w-5 bear-h-5 bear-flex bear-items-center bear-justify-center",children:e.icon}),s.jsx("span",{className:"bear-flex-1",children:e.label}),e.trailing&&s.jsx("span",{className:"bear-flex-shrink-0",style:{color:"var(--bear-text-muted)"},children:e.trailing}),e.items&&s.jsx("svg",{className:"bear-w-4 bear-h-4 bear-flex-shrink-0",style:{color:"var(--bear-text-muted)"},viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:s.jsx("polyline",{points:"9 18 15 12 9 6"})})]},e.key)},V=t.isValidElement(x)?t.cloneElement(x,{onClick:F,ref:N,"aria-expanded":n,"aria-haspopup":!0}):x;return s.jsxs("div",{ref:D,className:E.cn("bear-relative bear-inline-block",P),"data-testid":W,...z,children:[V,n&&s.jsx(Q.Portal,{children:s.jsx("div",{ref:L,role:"menu",className:E.cn("bear-fixed","bear-border bear-rounded-lg bear-shadow-lg","bear-py-1 bear-overflow-y-auto","bear-duration-100"),style:{backgroundColor:"var(--bear-bg-primary)",borderColor:"var(--bear-border-default)",minWidth:k.minWidth,maxHeight:M,top:k.top,left:k.left,zIndex:11e3},children:c.map((e,r)=>K(e,r))})})]})};exports.Dropdown=Y;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={xs:"bear-text-xs bear-py-1 bear-px-2",sm:"bear-text-sm bear-py-1.5 bear-px-3",md:"bear-text-sm bear-py-2 bear-px-3",lg:"bear-text-base bear-py-2.5 bear-px-4",xl:"bear-text-lg bear-py-3 bear-px-5"};exports.SIZE_CLASSES=e;
@@ -0,0 +1,7 @@
1
+ export declare const SIZE_CLASSES: {
2
+ readonly xs: "bear-text-xs bear-py-1 bear-px-2";
3
+ readonly sm: "bear-text-sm bear-py-1.5 bear-px-3";
4
+ readonly md: "bear-text-sm bear-py-2 bear-px-3";
5
+ readonly lg: "bear-text-base bear-py-2.5 bear-px-4";
6
+ readonly xl: "bear-text-lg bear-py-3 bear-px-5";
7
+ };
@@ -0,0 +1,10 @@
1
+ const e = {
2
+ xs: "bear-text-xs bear-py-1 bear-px-2",
3
+ sm: "bear-text-sm bear-py-1.5 bear-px-3",
4
+ md: "bear-text-sm bear-py-2 bear-px-3",
5
+ lg: "bear-text-base bear-py-2.5 bear-px-4",
6
+ xl: "bear-text-lg bear-py-3 bear-px-5"
7
+ };
8
+ export {
9
+ e as SIZE_CLASSES
10
+ };
@@ -16,4 +16,3 @@ import { DropdownProps } from './Dropdown.types';
16
16
  * ```
17
17
  */
18
18
  export declare const Dropdown: FC<DropdownProps>;
19
- export default Dropdown;