@forgedevstack/bear 1.1.1 → 1.1.4

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 (276) hide show
  1. package/dist/components/ActionIcon/ActionIcon.cjs +1 -0
  2. package/dist/components/ActionIcon/ActionIcon.const.cjs +1 -0
  3. package/dist/components/ActionIcon/ActionIcon.const.d.ts +7 -0
  4. package/dist/components/ActionIcon/ActionIcon.const.js +68 -0
  5. package/dist/components/ActionIcon/ActionIcon.d.ts +4 -0
  6. package/dist/components/ActionIcon/ActionIcon.js +42 -0
  7. package/dist/components/ActionIcon/ActionIcon.types.d.ts +11 -0
  8. package/dist/components/ActionIcon/index.d.ts +2 -0
  9. package/dist/components/Affix/Affix.cjs +1 -0
  10. package/dist/components/Affix/Affix.const.cjs +1 -0
  11. package/dist/components/Affix/Affix.const.d.ts +6 -0
  12. package/dist/components/Affix/Affix.const.js +9 -0
  13. package/dist/components/Affix/Affix.d.ts +4 -0
  14. package/dist/components/Affix/Affix.js +69 -0
  15. package/dist/components/Affix/Affix.types.d.ts +10 -0
  16. package/dist/components/Affix/index.d.ts +2 -0
  17. package/dist/components/AlertDialog/AlertDialog.cjs +1 -0
  18. package/dist/components/AlertDialog/AlertDialog.const.cjs +1 -0
  19. package/dist/components/AlertDialog/AlertDialog.const.d.ts +5 -0
  20. package/dist/components/AlertDialog/AlertDialog.const.js +8 -0
  21. package/dist/components/AlertDialog/AlertDialog.d.ts +4 -0
  22. package/dist/components/AlertDialog/AlertDialog.js +107 -0
  23. package/dist/components/AlertDialog/AlertDialog.types.d.ts +34 -0
  24. package/dist/components/AlertDialog/index.d.ts +3 -0
  25. package/dist/components/Anchor/Anchor.cjs +1 -0
  26. package/dist/components/Anchor/Anchor.const.cjs +1 -0
  27. package/dist/components/Anchor/Anchor.const.d.ts +9 -0
  28. package/dist/components/Anchor/Anchor.const.js +11 -0
  29. package/dist/components/Anchor/Anchor.d.ts +4 -0
  30. package/dist/components/Anchor/Anchor.js +91 -0
  31. package/dist/components/Anchor/Anchor.types.d.ts +16 -0
  32. package/dist/components/Anchor/index.d.ts +2 -0
  33. package/dist/components/AspectRatio/AspectRatio.cjs +1 -0
  34. package/dist/components/AspectRatio/AspectRatio.d.ts +3 -0
  35. package/dist/components/AspectRatio/AspectRatio.js +29 -0
  36. package/dist/components/AspectRatio/AspectRatio.types.d.ts +9 -0
  37. package/dist/components/AspectRatio/index.d.ts +2 -0
  38. package/dist/components/Blockquote/Blockquote.cjs +1 -0
  39. package/dist/components/Blockquote/Blockquote.const.cjs +1 -0
  40. package/dist/components/Blockquote/Blockquote.const.d.ts +5 -0
  41. package/dist/components/Blockquote/Blockquote.const.js +19 -0
  42. package/dist/components/Blockquote/Blockquote.d.ts +4 -0
  43. package/dist/components/Blockquote/Blockquote.js +56 -0
  44. package/dist/components/Blockquote/Blockquote.types.d.ts +9 -0
  45. package/dist/components/Blockquote/index.d.ts +2 -0
  46. package/dist/components/Button/Button.cjs +1 -1
  47. package/dist/components/Button/Button.constants.cjs +2 -2
  48. package/dist/components/Button/Button.constants.d.ts +1 -0
  49. package/dist/components/Button/Button.constants.js +10 -3
  50. package/dist/components/Button/Button.js +92 -84
  51. package/dist/components/Button/Button.types.d.ts +2 -0
  52. package/dist/components/CheckboxCard/CheckboxCard.cjs +1 -0
  53. package/dist/components/CheckboxCard/CheckboxCard.const.cjs +1 -0
  54. package/dist/components/CheckboxCard/CheckboxCard.const.d.ts +7 -0
  55. package/dist/components/CheckboxCard/CheckboxCard.const.js +22 -0
  56. package/dist/components/CheckboxCard/CheckboxCard.d.ts +5 -0
  57. package/dist/components/CheckboxCard/CheckboxCard.js +132 -0
  58. package/dist/components/CheckboxCard/CheckboxCard.types.d.ts +21 -0
  59. package/dist/components/CheckboxCard/index.d.ts +2 -0
  60. package/dist/components/ColorPicker/ColorPicker.cjs +1 -1
  61. package/dist/components/ColorPicker/ColorPicker.const.cjs +1 -0
  62. package/dist/components/ColorPicker/ColorPicker.const.d.ts +26 -0
  63. package/dist/components/ColorPicker/ColorPicker.const.js +38 -0
  64. package/dist/components/ColorPicker/ColorPicker.js +61 -78
  65. package/dist/components/ColorSwatch/ColorSwatch.cjs +1 -0
  66. package/dist/components/ColorSwatch/ColorSwatch.const.cjs +1 -0
  67. package/dist/components/ColorSwatch/ColorSwatch.const.d.ts +16 -0
  68. package/dist/components/ColorSwatch/ColorSwatch.const.js +19 -0
  69. package/dist/components/ColorSwatch/ColorSwatch.d.ts +5 -0
  70. package/dist/components/ColorSwatch/ColorSwatch.js +92 -0
  71. package/dist/components/ColorSwatch/ColorSwatch.types.d.ts +23 -0
  72. package/dist/components/ColorSwatch/ColorSwatch.utils.cjs +1 -0
  73. package/dist/components/ColorSwatch/ColorSwatch.utils.d.ts +6 -0
  74. package/dist/components/ColorSwatch/ColorSwatch.utils.js +14 -0
  75. package/dist/components/ColorSwatch/index.d.ts +2 -0
  76. package/dist/components/ContextMenu/ContextMenu.cjs +1 -0
  77. package/dist/components/ContextMenu/ContextMenu.const.cjs +1 -0
  78. package/dist/components/ContextMenu/ContextMenu.const.d.ts +9 -0
  79. package/dist/components/ContextMenu/ContextMenu.const.js +12 -0
  80. package/dist/components/ContextMenu/ContextMenu.d.ts +4 -0
  81. package/dist/components/ContextMenu/ContextMenu.js +64 -0
  82. package/dist/components/ContextMenu/ContextMenu.types.d.ts +23 -0
  83. package/dist/components/ContextMenu/index.d.ts +2 -0
  84. package/dist/components/DateRangePicker/DateRangePicker.cjs +1 -0
  85. package/dist/components/DateRangePicker/DateRangePicker.const.cjs +1 -0
  86. package/dist/components/DateRangePicker/DateRangePicker.const.d.ts +27 -0
  87. package/dist/components/DateRangePicker/DateRangePicker.const.js +74 -0
  88. package/dist/components/DateRangePicker/DateRangePicker.d.ts +4 -0
  89. package/dist/components/DateRangePicker/DateRangePicker.js +115 -0
  90. package/dist/components/DateRangePicker/DateRangePicker.types.d.ts +26 -0
  91. package/dist/components/DateRangePicker/DateRangePicker.utils.cjs +1 -0
  92. package/dist/components/DateRangePicker/DateRangePicker.utils.d.ts +4 -0
  93. package/dist/components/DateRangePicker/DateRangePicker.utils.js +22 -0
  94. package/dist/components/DateRangePicker/index.d.ts +2 -0
  95. package/dist/components/Descriptions/Descriptions.cjs +1 -0
  96. package/dist/components/Descriptions/Descriptions.const.cjs +1 -0
  97. package/dist/components/Descriptions/Descriptions.const.d.ts +24 -0
  98. package/dist/components/Descriptions/Descriptions.const.js +27 -0
  99. package/dist/components/Descriptions/Descriptions.d.ts +4 -0
  100. package/dist/components/Descriptions/Descriptions.js +65 -0
  101. package/dist/components/Descriptions/Descriptions.types.d.ts +16 -0
  102. package/dist/components/Descriptions/index.d.ts +2 -0
  103. package/dist/components/Fieldset/Fieldset.cjs +1 -0
  104. package/dist/components/Fieldset/Fieldset.const.cjs +1 -0
  105. package/dist/components/Fieldset/Fieldset.const.d.ts +5 -0
  106. package/dist/components/Fieldset/Fieldset.const.js +16 -0
  107. package/dist/components/Fieldset/Fieldset.d.ts +4 -0
  108. package/dist/components/Fieldset/Fieldset.js +47 -0
  109. package/dist/components/Fieldset/Fieldset.types.d.ts +10 -0
  110. package/dist/components/Fieldset/index.d.ts +2 -0
  111. package/dist/components/FormField/FormField.cjs +1 -0
  112. package/dist/components/FormField/FormField.const.cjs +1 -0
  113. package/dist/components/FormField/FormField.const.d.ts +20 -0
  114. package/dist/components/FormField/FormField.const.js +23 -0
  115. package/dist/components/FormField/FormField.d.ts +3 -0
  116. package/dist/components/FormField/FormField.js +127 -0
  117. package/dist/components/FormField/FormField.types.d.ts +23 -0
  118. package/dist/components/FormField/index.d.ts +2 -0
  119. package/dist/components/ImageGallery/ImageGallery.cjs +1 -0
  120. package/dist/components/ImageGallery/ImageGallery.const.cjs +1 -0
  121. package/dist/components/ImageGallery/ImageGallery.const.d.ts +13 -0
  122. package/dist/components/ImageGallery/ImageGallery.const.js +16 -0
  123. package/dist/components/ImageGallery/ImageGallery.d.ts +4 -0
  124. package/dist/components/ImageGallery/ImageGallery.js +61 -0
  125. package/dist/components/ImageGallery/ImageGallery.types.d.ts +22 -0
  126. package/dist/components/ImageGallery/index.d.ts +2 -0
  127. package/dist/components/Indicator/Indicator.cjs +1 -0
  128. package/dist/components/Indicator/Indicator.const.cjs +1 -0
  129. package/dist/components/Indicator/Indicator.const.d.ts +15 -0
  130. package/dist/components/Indicator/Indicator.const.js +26 -0
  131. package/dist/components/Indicator/Indicator.d.ts +4 -0
  132. package/dist/components/Indicator/Indicator.js +56 -0
  133. package/dist/components/Indicator/Indicator.types.d.ts +16 -0
  134. package/dist/components/Indicator/index.d.ts +2 -0
  135. package/dist/components/InfiniteScroll/InfiniteScroll.cjs +1 -0
  136. package/dist/components/InfiniteScroll/InfiniteScroll.const.cjs +1 -0
  137. package/dist/components/InfiniteScroll/InfiniteScroll.const.d.ts +7 -0
  138. package/dist/components/InfiniteScroll/InfiniteScroll.const.js +10 -0
  139. package/dist/components/InfiniteScroll/InfiniteScroll.d.ts +4 -0
  140. package/dist/components/InfiniteScroll/InfiniteScroll.js +51 -0
  141. package/dist/components/InfiniteScroll/InfiniteScroll.types.d.ts +13 -0
  142. package/dist/components/InfiniteScroll/index.d.ts +2 -0
  143. package/dist/components/Input/Input.cjs +1 -1
  144. package/dist/components/Input/Input.js +114 -44
  145. package/dist/components/Input/Input.types.d.ts +20 -0
  146. package/dist/components/Input/Input.utils.cjs +1 -0
  147. package/dist/components/Input/Input.utils.d.ts +2 -0
  148. package/dist/components/Input/Input.utils.js +15 -0
  149. package/dist/components/Input/components/ClearIcon/ClearIcon.cjs +1 -0
  150. package/dist/components/Input/components/ClearIcon/ClearIcon.d.ts +7 -0
  151. package/dist/components/Input/components/ClearIcon/ClearIcon.js +25 -0
  152. package/dist/components/Input/components/ClearIcon/index.d.ts +1 -0
  153. package/dist/components/Input/index.d.ts +1 -1
  154. package/dist/components/InputGroup/InputGroup.cjs +1 -0
  155. package/dist/components/InputGroup/InputGroup.d.ts +4 -0
  156. package/dist/components/InputGroup/InputGroup.js +63 -0
  157. package/dist/components/InputGroup/InputGroup.types.d.ts +23 -0
  158. package/dist/components/InputGroup/index.d.ts +2 -0
  159. package/dist/components/LoadingOverlay/LoadingOverlay.cjs +1 -0
  160. package/dist/components/LoadingOverlay/LoadingOverlay.const.cjs +1 -0
  161. package/dist/components/LoadingOverlay/LoadingOverlay.const.d.ts +6 -0
  162. package/dist/components/LoadingOverlay/LoadingOverlay.const.js +9 -0
  163. package/dist/components/LoadingOverlay/LoadingOverlay.d.ts +4 -0
  164. package/dist/components/LoadingOverlay/LoadingOverlay.js +42 -0
  165. package/dist/components/LoadingOverlay/LoadingOverlay.types.d.ts +11 -0
  166. package/dist/components/LoadingOverlay/index.d.ts +2 -0
  167. package/dist/components/NumberFormatter/NumberFormatter.cjs +1 -0
  168. package/dist/components/NumberFormatter/NumberFormatter.const.cjs +1 -0
  169. package/dist/components/NumberFormatter/NumberFormatter.const.d.ts +5 -0
  170. package/dist/components/NumberFormatter/NumberFormatter.const.js +8 -0
  171. package/dist/components/NumberFormatter/NumberFormatter.d.ts +4 -0
  172. package/dist/components/NumberFormatter/NumberFormatter.js +53 -0
  173. package/dist/components/NumberFormatter/NumberFormatter.types.d.ts +20 -0
  174. package/dist/components/NumberFormatter/NumberFormatter.utils.cjs +1 -0
  175. package/dist/components/NumberFormatter/NumberFormatter.utils.d.ts +2 -0
  176. package/dist/components/NumberFormatter/NumberFormatter.utils.js +19 -0
  177. package/dist/components/NumberFormatter/index.d.ts +2 -0
  178. package/dist/components/PasswordInput/PasswordInput.cjs +1 -0
  179. package/dist/components/PasswordInput/PasswordInput.d.ts +3 -0
  180. package/dist/components/PasswordInput/PasswordInput.js +61 -0
  181. package/dist/components/PasswordInput/PasswordInput.types.d.ts +18 -0
  182. package/dist/components/PasswordInput/index.d.ts +2 -0
  183. package/dist/components/Popconfirm/Popconfirm.cjs +1 -0
  184. package/dist/components/Popconfirm/Popconfirm.const.cjs +1 -0
  185. package/dist/components/Popconfirm/Popconfirm.const.d.ts +13 -0
  186. package/dist/components/Popconfirm/Popconfirm.const.js +20 -0
  187. package/dist/components/Popconfirm/Popconfirm.d.ts +4 -0
  188. package/dist/components/Popconfirm/Popconfirm.js +65 -0
  189. package/dist/components/Popconfirm/Popconfirm.types.d.ts +16 -0
  190. package/dist/components/Popconfirm/index.d.ts +2 -0
  191. package/dist/components/RadioCard/RadioCard.cjs +1 -0
  192. package/dist/components/RadioCard/RadioCard.const.cjs +1 -0
  193. package/dist/components/RadioCard/RadioCard.const.d.ts +7 -0
  194. package/dist/components/RadioCard/RadioCard.const.js +22 -0
  195. package/dist/components/RadioCard/RadioCard.d.ts +5 -0
  196. package/dist/components/RadioCard/RadioCard.js +111 -0
  197. package/dist/components/RadioCard/RadioCard.types.d.ts +22 -0
  198. package/dist/components/RadioCard/index.d.ts +2 -0
  199. package/dist/components/ResizableTextarea/ResizableTextarea.cjs +1 -1
  200. package/dist/components/ResizableTextarea/ResizableTextarea.js +90 -54
  201. package/dist/components/ResizableTextarea/ResizableTextarea.types.d.ts +10 -0
  202. package/dist/components/Result/Result.cjs +1 -0
  203. package/dist/components/Result/Result.const.cjs +1 -0
  204. package/dist/components/Result/Result.const.d.ts +10 -0
  205. package/dist/components/Result/Result.const.js +20 -0
  206. package/dist/components/Result/Result.d.ts +4 -0
  207. package/dist/components/Result/Result.icons.cjs +1 -0
  208. package/dist/components/Result/Result.icons.d.ts +3 -0
  209. package/dist/components/Result/Result.icons.js +31 -0
  210. package/dist/components/Result/Result.js +35 -0
  211. package/dist/components/Result/Result.types.d.ts +10 -0
  212. package/dist/components/Result/index.d.ts +2 -0
  213. package/dist/components/RichEditor/RichEditor.cjs +1 -1
  214. package/dist/components/RichEditor/RichEditor.js +186 -169
  215. package/dist/components/RichEditor/RichEditor.types.d.ts +4 -0
  216. package/dist/components/RingProgress/RingProgress.cjs +1 -0
  217. package/dist/components/RingProgress/RingProgress.const.cjs +1 -0
  218. package/dist/components/RingProgress/RingProgress.const.d.ts +4 -0
  219. package/dist/components/RingProgress/RingProgress.const.js +7 -0
  220. package/dist/components/RingProgress/RingProgress.d.ts +4 -0
  221. package/dist/components/RingProgress/RingProgress.js +67 -0
  222. package/dist/components/RingProgress/RingProgress.types.d.ts +15 -0
  223. package/dist/components/RingProgress/index.d.ts +2 -0
  224. package/dist/components/SignPad/SignPad.cjs +1 -1
  225. package/dist/components/SignPad/SignPad.const.cjs +1 -1
  226. package/dist/components/SignPad/SignPad.const.js +10 -11
  227. package/dist/components/SignPad/SignPad.d.ts +4 -6
  228. package/dist/components/SignPad/SignPad.js +108 -116
  229. package/dist/components/SignPad/SignPad.types.d.ts +2 -2
  230. package/dist/components/SplitButton/SplitButton.cjs +1 -0
  231. package/dist/components/SplitButton/SplitButton.const.cjs +1 -0
  232. package/dist/components/SplitButton/SplitButton.const.d.ts +25 -0
  233. package/dist/components/SplitButton/SplitButton.const.js +27 -0
  234. package/dist/components/SplitButton/SplitButton.d.ts +4 -0
  235. package/dist/components/SplitButton/SplitButton.js +73 -0
  236. package/dist/components/SplitButton/SplitButton.types.d.ts +21 -0
  237. package/dist/components/SplitButton/index.d.ts +2 -0
  238. package/dist/components/Spoiler/Spoiler.cjs +1 -0
  239. package/dist/components/Spoiler/Spoiler.const.cjs +1 -0
  240. package/dist/components/Spoiler/Spoiler.const.d.ts +6 -0
  241. package/dist/components/Spoiler/Spoiler.const.js +9 -0
  242. package/dist/components/Spoiler/Spoiler.d.ts +4 -0
  243. package/dist/components/Spoiler/Spoiler.js +59 -0
  244. package/dist/components/Spoiler/Spoiler.types.d.ts +10 -0
  245. package/dist/components/Spoiler/index.d.ts +2 -0
  246. package/dist/components/TimePicker/components/TimePickerDialDropdown/TimePickerDialDropdown.cjs +1 -1
  247. package/dist/components/TimePicker/components/TimePickerDialDropdown/TimePickerDialDropdown.js +63 -57
  248. package/dist/components/TimePicker/helpers/ClockFaceSvg.cjs +1 -1
  249. package/dist/components/TimePicker/helpers/ClockFaceSvg.d.ts +0 -7
  250. package/dist/components/TimePicker/helpers/ClockFaceSvg.js +32 -31
  251. package/dist/components/TreeSelect/TreeSelect.cjs +1 -0
  252. package/dist/components/TreeSelect/TreeSelect.const.cjs +1 -0
  253. package/dist/components/TreeSelect/TreeSelect.const.d.ts +19 -0
  254. package/dist/components/TreeSelect/TreeSelect.const.js +22 -0
  255. package/dist/components/TreeSelect/TreeSelect.d.ts +4 -0
  256. package/dist/components/TreeSelect/TreeSelect.js +128 -0
  257. package/dist/components/TreeSelect/TreeSelect.types.d.ts +25 -0
  258. package/dist/components/TreeSelect/TreeSelect.utils.cjs +1 -0
  259. package/dist/components/TreeSelect/TreeSelect.utils.d.ts +5 -0
  260. package/dist/components/TreeSelect/TreeSelect.utils.js +25 -0
  261. package/dist/components/TreeSelect/index.d.ts +2 -0
  262. package/dist/components/index.cjs +1 -1
  263. package/dist/components/index.d.ts +54 -0
  264. package/dist/components/index.js +349 -292
  265. package/dist/index.cjs +1 -1
  266. package/dist/index.js +439 -382
  267. package/dist/postcss/bear-plugin.cjs +86 -0
  268. package/dist/styles/_alerts.css +14 -0
  269. package/dist/styles/_base.css +56 -0
  270. package/dist/styles/_buttons.css +108 -0
  271. package/dist/styles/_effects.css +90 -0
  272. package/dist/styles/_marquee.css +25 -0
  273. package/dist/styles/main.css +5 -0
  274. package/dist/styles.css +1 -1
  275. package/dist/types/component.types.d.ts +13 -0
  276. package/package.json +10 -6
@@ -0,0 +1,132 @@
1
+ import { jsxs as G, jsx as a } from "react/jsx-runtime";
2
+ import { createContext as T, useContext as g, useState as S, useCallback as I } from "react";
3
+ import { cn as x } from "../../utils/cn.js";
4
+ import { Typography as A } from "../Typography/Typography.js";
5
+ import { CHECKBOX_INDICATOR_SIZE_MAP as w, CHECKED_CLASSES as j, VARIANT_CLASSES as O, SIZE_PADDING_MAP as B, ROOT_CLASS as K, DEFAULT_COLUMNS as M, DEFAULT_GAP as R } from "./CheckboxCard.const.js";
6
+ const E = T(null), U = ({ className: o }) => /* @__PURE__ */ a(
7
+ "svg",
8
+ {
9
+ className: o,
10
+ fill: "none",
11
+ viewBox: "0 0 24 24",
12
+ stroke: "currentColor",
13
+ strokeWidth: "2.5",
14
+ strokeLinecap: "round",
15
+ strokeLinejoin: "round",
16
+ children: /* @__PURE__ */ a("polyline", { points: "20 6 9 17 4 12" })
17
+ }
18
+ ), F = ({
19
+ checked: o,
20
+ onChange: r,
21
+ value: t,
22
+ label: k,
23
+ description: b,
24
+ icon: c,
25
+ disabled: l = !1,
26
+ variant: p = "default",
27
+ size: m = "md",
28
+ testId: h,
29
+ className: n,
30
+ onClick: i,
31
+ ...y
32
+ }) => {
33
+ const e = g(E), C = !!e, [_, D] = S(!1), v = o !== void 0, s = C && t ? e.value.includes(t) : v ? !!o : _, N = I(
34
+ (d) => {
35
+ if (!(l || ((e == null ? void 0 : e.disabled) ?? !1)))
36
+ if (i == null || i(d), C && t && e) {
37
+ const f = s ? e.value.filter((L) => L !== t) : [...e.value, t];
38
+ e.onChange(f);
39
+ } else {
40
+ const f = !s;
41
+ v || D(f), r == null || r(f);
42
+ }
43
+ },
44
+ [l, e, C, s, v, t, r, i]
45
+ ), u = l || ((e == null ? void 0 : e.disabled) ?? !1);
46
+ return /* @__PURE__ */ G(
47
+ "div",
48
+ {
49
+ role: "checkbox",
50
+ "aria-checked": s,
51
+ "aria-disabled": u,
52
+ tabIndex: u ? void 0 : 0,
53
+ onKeyDown: (d) => {
54
+ (d.key === "Enter" || d.key === " ") && (d.preventDefault(), N(d));
55
+ },
56
+ className: x(
57
+ K,
58
+ B[m],
59
+ O[p],
60
+ s && j,
61
+ u && "bear-opacity-50 bear-cursor-not-allowed bear-pointer-events-none",
62
+ !u && "hover:bear-border-gray-300 dark:hover:bear-border-gray-600",
63
+ n
64
+ ),
65
+ onClick: N,
66
+ "data-testid": h,
67
+ ...y,
68
+ children: [
69
+ /* @__PURE__ */ a(
70
+ "div",
71
+ {
72
+ className: x(
73
+ "bear-absolute bear-top-3 bear-right-3 bear-flex bear-items-center bear-justify-center bear-rounded-full bear-border-2",
74
+ s ? "bear-border-pink-500 dark:bear-border-pink-400 bear-bg-pink-500 dark:bear-bg-pink-400 bear-text-white" : "bear-border-gray-300 dark:bear-border-gray-600",
75
+ w[m]
76
+ ),
77
+ children: s && /* @__PURE__ */ a(U, { className: "bear-w-2.5 bear-h-2.5" })
78
+ }
79
+ ),
80
+ c && /* @__PURE__ */ a("div", { className: "bear-mb-3 bear-flex bear-items-center bear-justify-center bear-text-gray-500 dark:bear-text-gray-400", children: c }),
81
+ /* @__PURE__ */ a(A, { variant: "body2", weight: "medium", className: "bear-block", children: k }),
82
+ b && /* @__PURE__ */ a(A, { variant: "caption", color: "secondary", className: "bear-mt-1 bear-block", children: b })
83
+ ]
84
+ }
85
+ );
86
+ };
87
+ F.displayName = "CheckboxCard";
88
+ const H = ({
89
+ value: o,
90
+ onChange: r,
91
+ children: t,
92
+ columns: k = M,
93
+ gap: b = R,
94
+ testId: c,
95
+ className: l,
96
+ ...p
97
+ }) => {
98
+ const [m, h] = S([]), n = o !== void 0, i = n ? o : m, y = I(
99
+ (e) => {
100
+ n || h(e), r == null || r(e);
101
+ },
102
+ [n, r]
103
+ );
104
+ return /* @__PURE__ */ a(
105
+ E.Provider,
106
+ {
107
+ value: { value: i, onChange: y },
108
+ children: /* @__PURE__ */ a(
109
+ "div",
110
+ {
111
+ role: "group",
112
+ className: x(
113
+ "Bear-CheckboxCardGroup bear-grid",
114
+ l
115
+ ),
116
+ style: {
117
+ gridTemplateColumns: `repeat(${k}, minmax(0, 1fr))`,
118
+ gap: `${b * 0.25}rem`
119
+ },
120
+ "data-testid": c,
121
+ ...p,
122
+ children: t
123
+ }
124
+ )
125
+ }
126
+ );
127
+ };
128
+ H.displayName = "CheckboxCardGroup";
129
+ export {
130
+ F as CheckboxCard,
131
+ H as CheckboxCardGroup
132
+ };
@@ -0,0 +1,21 @@
1
+ import { ReactNode, HTMLAttributes } from 'react';
2
+ export interface CheckboxCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
3
+ checked?: boolean;
4
+ onChange?: (checked: boolean) => void;
5
+ value?: string;
6
+ label: string;
7
+ description?: string;
8
+ icon?: ReactNode;
9
+ disabled?: boolean;
10
+ variant?: 'default' | 'outline' | 'filled';
11
+ size?: 'sm' | 'md' | 'lg';
12
+ testId?: string;
13
+ }
14
+ export interface CheckboxCardGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
15
+ value?: string[];
16
+ onChange?: (value: string[]) => void;
17
+ children: ReactNode;
18
+ columns?: number;
19
+ gap?: number;
20
+ testId?: string;
21
+ }
@@ -0,0 +1,2 @@
1
+ export { CheckboxCard, CheckboxCardGroup, default } from './CheckboxCard';
2
+ export type { CheckboxCardProps, CheckboxCardGroupProps } from './CheckboxCard.types';
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),c=require("react"),o=require("../../utils/cn.cjs"),S=["#ef4444","#f97316","#eab308","#22c55e","#14b8a6","#06b6d4","#3b82f6","#6366f1","#8b5cf6","#a855f7","#d946ef","#ec4899","#f43f5e","#64748b","#1e293b","#000000","#ffffff"],g=({value:t="#ec4899",onChange:r,presets:p=S,showInput:w=!0,showPresets:h=!0,disabled:b=!1,label:l,size:u="md",className:x})=>{const[d,f]=c.useState(!1),[j,n]=c.useState(t),i=c.useRef(null);c.useEffect(()=>{n(t)},[t]),c.useEffect(()=>{const e=s=>{i.current&&!i.current.contains(s.target)&&f(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);const k=e=>{const s=e.target.value;n(s),/^#[0-9A-Fa-f]{6}$/.test(s)&&(r==null||r(s))},v=e=>{n(e),r==null||r(e)},m={sm:{swatch:"bear-w-6 bear-h-6",presetSwatch:"bear-w-5 bear-h-5"},md:{swatch:"bear-w-8 bear-h-8",presetSwatch:"bear-w-6 bear-h-6"},lg:{swatch:"bear-w-10 bear-h-10",presetSwatch:"bear-w-7 bear-h-7"}};return a.jsxs("div",{ref:i,className:o.cn("bear-relative",x),children:[l&&a.jsx("label",{className:"bear-block bear-text-sm bear-font-medium bear-text-zinc-300 bear-mb-1.5",children:l}),a.jsxs("div",{className:"bear-flex bear-items-center bear-gap-2",children:[a.jsx("button",{onClick:()=>!b&&f(!d),disabled:b,className:o.cn("bear-rounded-lg bear-border bear-border-zinc-600 bear-transition-all hover:bear-scale-105",m[u].swatch,b&&"bear-opacity-50 bear-cursor-not-allowed"),style:{backgroundColor:t}}),w&&a.jsx("input",{type:"text",value:j,onChange:k,disabled:b,placeholder:"#000000",className:o.cn("bear-px-3 bear-py-1.5 bear-rounded-lg bear-border bear-border-zinc-600 bear-bg-zinc-800 bear-text-white bear-text-sm bear-font-mono bear-w-24 bear-outline-none focus:bear-border-pink-500",b&&"bear-opacity-50 bear-cursor-not-allowed")})]}),d&&a.jsxs("div",{className:"bear-absolute bear-z-50 bear-mt-2 bear-bg-zinc-800 bear-border bear-border-zinc-700 bear-rounded-lg bear-shadow-xl bear-p-3",children:[a.jsx("input",{type:"color",value:t,onChange:e=>{r==null||r(e.target.value),n(e.target.value)},className:"bear-w-full bear-h-32 bear-rounded bear-cursor-pointer bear-mb-3"}),h&&a.jsx("div",{className:"bear-grid bear-grid-cols-6 bear-gap-1.5",children:p.map(e=>a.jsx("button",{onClick:()=>v(e),className:o.cn("bear-rounded bear-border bear-transition-transform hover:bear-scale-110",m[u].presetSwatch,t===e?"bear-border-white bear-ring-2 bear-ring-pink-500":"bear-border-zinc-600"),style:{backgroundColor:e}},e))})]})]})};exports.ColorPicker=g;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),E=require("react"),_=require("../../utils/cn.cjs"),t=require("./ColorPicker.const.cjs"),p=({value:c=t.COLOR_PICKER_DEFAULT_VALUE,onChange:s,presets:R=t.COLOR_PICKER_DEFAULT_PRESETS,showInput:O=!0,showPresets:L=!0,disabled:a=!1,label:S,size:P="md",className:I})=>{const[o,u]=E.useState(!1),[d,n]=E.useState(c),i=E.useRef(null);E.useEffect(()=>{n(c)},[c]),E.useEffect(()=>{const e=l=>{i.current&&!i.current.contains(l.target)&&u(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);const m=e=>{const l=e.target.value;n(l),t.COLOR_PICKER_HEX_PATTERN.test(l)&&(s==null||s(l))},A=e=>{n(e),s==null||s(e)},C=t.COLOR_PICKER_SWATCH_SIZE[P];return r.jsxs("div",{ref:i,className:_.cn("bear-relative bear-inline-block",I),children:[S&&r.jsx("label",{className:t.COLOR_PICKER_LABEL_CLASSES,children:S}),r.jsxs("div",{className:"bear-flex bear-items-center bear-gap-2",children:[r.jsx("button",{type:"button",onClick:()=>!a&&u(!o),disabled:a,className:_.cn(t.COLOR_PICKER_SWATCH_CLASSES,C.swatch,a&&"bear-opacity-50 bear-cursor-not-allowed"),style:{backgroundColor:c},"aria-label":"Pick color"}),O&&r.jsx("input",{type:"text",value:d,onChange:m,disabled:a,placeholder:"#000000",className:_.cn(t.COLOR_PICKER_INPUT_CLASSES,a&&"bear-opacity-50 bear-cursor-not-allowed")})]}),o&&r.jsxs("div",{className:t.COLOR_PICKER_POPUP_CLASSES,children:[r.jsx("input",{type:"color",value:c,onChange:e=>{s==null||s(e.target.value),n(e.target.value)},className:t.COLOR_PICKER_NATIVE_INPUT_CLASSES}),L&&r.jsx("div",{className:t.COLOR_PICKER_GRID_CLASSES,children:R.map(e=>r.jsx("button",{type:"button",onClick:()=>A(e),className:_.cn(t.COLOR_PICKER_PRESET_ITEM_CLASSES,C.presetSwatch,c===e?t.COLOR_PICKER_PRESET_ACTIVE_CLASSES:t.COLOR_PICKER_PRESET_INACTIVE_CLASSES),style:{backgroundColor:e},"aria-label":`Color ${e}`},e))})]})]})};exports.ColorPicker=p;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r="#ec4899",e=/^#[0-9A-Fa-f]{6}$/,a=["#ef4444","#f97316","#eab308","#22c55e","#14b8a6","#06b6d4","#3b82f6","#6366f1","#8b5cf6","#a855f7","#d946ef","#ec4899","#f43f5e","#64748b","#1e293b","#000000","#ffffff"],b={sm:{swatch:"bear-w-6 bear-h-6",presetSwatch:"bear-w-5 bear-h-5"},md:{swatch:"bear-w-8 bear-h-8",presetSwatch:"bear-w-6 bear-h-6"},lg:{swatch:"bear-w-10 bear-h-10",presetSwatch:"bear-w-7 bear-h-7"}},_="bear-block bear-text-sm bear-font-medium bear-text-gray-700 dark:bear-text-zinc-300 bear-mb-1.5",E="bear-px-3 bear-py-1.5 bear-rounded-lg bear-border bear-bg-white dark:bear-bg-zinc-800 bear-text-gray-900 dark:bear-text-white bear-text-sm bear-font-mono bear-w-24 bear-outline-none bear-border-gray-300 dark:bear-border-zinc-600 focus:bear-border-pink-500",C="bear-rounded-lg bear-border bear-border-gray-300 dark:bear-border-zinc-600 bear-transition-all hover:bear-scale-105 bear-shadow-sm",S="bear-absolute bear-z-50 bear-mt-2 bear-bg-white dark:bear-bg-zinc-800 bear-border bear-border-gray-200 dark:bear-border-zinc-700 bear-rounded-xl bear-shadow-xl bear-p-4 bear-animate-in bear-fade-in bear-slide-in-from-top-1 bear-duration-150",R="bear-w-full bear-h-32 bear-rounded-lg bear-cursor-pointer bear-mb-3 bear-border bear-border-gray-200 dark:bear-border-zinc-600",o="bear-border-gray-900 dark:bear-border-white bear-ring-2 bear-ring-pink-500",t="bear-border-gray-300 dark:bear-border-zinc-600",O="bear-rounded bear-border bear-transition-transform hover:bear-scale-110 bear-shadow-sm",L="bear-grid bear-grid-cols-6 bear-gap-1.5";exports.COLOR_PICKER_DEFAULT_PRESETS=a;exports.COLOR_PICKER_DEFAULT_VALUE=r;exports.COLOR_PICKER_GRID_CLASSES=L;exports.COLOR_PICKER_HEX_PATTERN=e;exports.COLOR_PICKER_INPUT_CLASSES=E;exports.COLOR_PICKER_LABEL_CLASSES=_;exports.COLOR_PICKER_NATIVE_INPUT_CLASSES=R;exports.COLOR_PICKER_POPUP_CLASSES=S;exports.COLOR_PICKER_PRESET_ACTIVE_CLASSES=o;exports.COLOR_PICKER_PRESET_INACTIVE_CLASSES=t;exports.COLOR_PICKER_PRESET_ITEM_CLASSES=O;exports.COLOR_PICKER_SWATCH_CLASSES=C;exports.COLOR_PICKER_SWATCH_SIZE=b;
@@ -0,0 +1,26 @@
1
+ export declare const COLOR_PICKER_DEFAULT_VALUE = "#ec4899";
2
+ export declare const COLOR_PICKER_HEX_PATTERN: RegExp;
3
+ export declare const COLOR_PICKER_DEFAULT_PRESETS: string[];
4
+ export declare const COLOR_PICKER_SWATCH_SIZE: {
5
+ readonly sm: {
6
+ readonly swatch: "bear-w-6 bear-h-6";
7
+ readonly presetSwatch: "bear-w-5 bear-h-5";
8
+ };
9
+ readonly md: {
10
+ readonly swatch: "bear-w-8 bear-h-8";
11
+ readonly presetSwatch: "bear-w-6 bear-h-6";
12
+ };
13
+ readonly lg: {
14
+ readonly swatch: "bear-w-10 bear-h-10";
15
+ readonly presetSwatch: "bear-w-7 bear-h-7";
16
+ };
17
+ };
18
+ export declare const COLOR_PICKER_LABEL_CLASSES = "bear-block bear-text-sm bear-font-medium bear-text-gray-700 dark:bear-text-zinc-300 bear-mb-1.5";
19
+ export declare const COLOR_PICKER_INPUT_CLASSES = "bear-px-3 bear-py-1.5 bear-rounded-lg bear-border bear-bg-white dark:bear-bg-zinc-800 bear-text-gray-900 dark:bear-text-white bear-text-sm bear-font-mono bear-w-24 bear-outline-none bear-border-gray-300 dark:bear-border-zinc-600 focus:bear-border-pink-500";
20
+ export declare const COLOR_PICKER_SWATCH_CLASSES = "bear-rounded-lg bear-border bear-border-gray-300 dark:bear-border-zinc-600 bear-transition-all hover:bear-scale-105 bear-shadow-sm";
21
+ export declare const COLOR_PICKER_POPUP_CLASSES = "bear-absolute bear-z-50 bear-mt-2 bear-bg-white dark:bear-bg-zinc-800 bear-border bear-border-gray-200 dark:bear-border-zinc-700 bear-rounded-xl bear-shadow-xl bear-p-4 bear-animate-in bear-fade-in bear-slide-in-from-top-1 bear-duration-150";
22
+ export declare const COLOR_PICKER_NATIVE_INPUT_CLASSES = "bear-w-full bear-h-32 bear-rounded-lg bear-cursor-pointer bear-mb-3 bear-border bear-border-gray-200 dark:bear-border-zinc-600";
23
+ export declare const COLOR_PICKER_PRESET_ACTIVE_CLASSES = "bear-border-gray-900 dark:bear-border-white bear-ring-2 bear-ring-pink-500";
24
+ export declare const COLOR_PICKER_PRESET_INACTIVE_CLASSES = "bear-border-gray-300 dark:bear-border-zinc-600";
25
+ export declare const COLOR_PICKER_PRESET_ITEM_CLASSES = "bear-rounded bear-border bear-transition-transform hover:bear-scale-110 bear-shadow-sm";
26
+ export declare const COLOR_PICKER_GRID_CLASSES = "bear-grid bear-grid-cols-6 bear-gap-1.5";
@@ -0,0 +1,38 @@
1
+ const r = "#ec4899", e = /^#[0-9A-Fa-f]{6}$/, a = [
2
+ "#ef4444",
3
+ "#f97316",
4
+ "#eab308",
5
+ "#22c55e",
6
+ "#14b8a6",
7
+ "#06b6d4",
8
+ "#3b82f6",
9
+ "#6366f1",
10
+ "#8b5cf6",
11
+ "#a855f7",
12
+ "#d946ef",
13
+ "#ec4899",
14
+ "#f43f5e",
15
+ "#64748b",
16
+ "#1e293b",
17
+ "#000000",
18
+ "#ffffff"
19
+ ], b = {
20
+ sm: { swatch: "bear-w-6 bear-h-6", presetSwatch: "bear-w-5 bear-h-5" },
21
+ md: { swatch: "bear-w-8 bear-h-8", presetSwatch: "bear-w-6 bear-h-6" },
22
+ lg: { swatch: "bear-w-10 bear-h-10", presetSwatch: "bear-w-7 bear-h-7" }
23
+ }, o = "bear-block bear-text-sm bear-font-medium bear-text-gray-700 dark:bear-text-zinc-300 bear-mb-1.5", t = "bear-px-3 bear-py-1.5 bear-rounded-lg bear-border bear-bg-white dark:bear-bg-zinc-800 bear-text-gray-900 dark:bear-text-white bear-text-sm bear-font-mono bear-w-24 bear-outline-none bear-border-gray-300 dark:bear-border-zinc-600 focus:bear-border-pink-500", d = "bear-rounded-lg bear-border bear-border-gray-300 dark:bear-border-zinc-600 bear-transition-all hover:bear-scale-105 bear-shadow-sm", n = "bear-absolute bear-z-50 bear-mt-2 bear-bg-white dark:bear-bg-zinc-800 bear-border bear-border-gray-200 dark:bear-border-zinc-700 bear-rounded-xl bear-shadow-xl bear-p-4 bear-animate-in bear-fade-in bear-slide-in-from-top-1 bear-duration-150", _ = "bear-w-full bear-h-32 bear-rounded-lg bear-cursor-pointer bear-mb-3 bear-border bear-border-gray-200 dark:bear-border-zinc-600", E = "bear-border-gray-900 dark:bear-border-white bear-ring-2 bear-ring-pink-500", C = "bear-border-gray-300 dark:bear-border-zinc-600", S = "bear-rounded bear-border bear-transition-transform hover:bear-scale-110 bear-shadow-sm", c = "bear-grid bear-grid-cols-6 bear-gap-1.5";
24
+ export {
25
+ a as COLOR_PICKER_DEFAULT_PRESETS,
26
+ r as COLOR_PICKER_DEFAULT_VALUE,
27
+ c as COLOR_PICKER_GRID_CLASSES,
28
+ e as COLOR_PICKER_HEX_PATTERN,
29
+ t as COLOR_PICKER_INPUT_CLASSES,
30
+ o as COLOR_PICKER_LABEL_CLASSES,
31
+ _ as COLOR_PICKER_NATIVE_INPUT_CLASSES,
32
+ n as COLOR_PICKER_POPUP_CLASSES,
33
+ E as COLOR_PICKER_PRESET_ACTIVE_CLASSES,
34
+ C as COLOR_PICKER_PRESET_INACTIVE_CLASSES,
35
+ S as COLOR_PICKER_PRESET_ITEM_CLASSES,
36
+ d as COLOR_PICKER_SWATCH_CLASSES,
37
+ b as COLOR_PICKER_SWATCH_SIZE
38
+ };
@@ -1,107 +1,90 @@
1
- import { jsxs as i, jsx as t } from "react/jsx-runtime";
2
- import { useState as p, useRef as y, useEffect as w } from "react";
3
- import { cn as o } from "../../utils/cn.js";
4
- const S = [
5
- "#ef4444",
6
- "#f97316",
7
- "#eab308",
8
- "#22c55e",
9
- "#14b8a6",
10
- "#06b6d4",
11
- "#3b82f6",
12
- "#6366f1",
13
- "#8b5cf6",
14
- "#a855f7",
15
- "#d946ef",
16
- "#ec4899",
17
- "#f43f5e",
18
- "#64748b",
19
- "#1e293b",
20
- "#000000",
21
- "#ffffff"
22
- ], O = ({
23
- value: a = "#ec4899",
24
- onChange: r,
25
- presets: h = S,
26
- showInput: x = !0,
27
- showPresets: k = !0,
28
- disabled: b = !1,
29
- label: l,
30
- size: d = "md",
31
- className: v
1
+ import { jsxs as S, jsx as s } from "react/jsx-runtime";
2
+ import { useState as n, useRef as T, useEffect as O } from "react";
3
+ import { cn as _ } from "../../utils/cn.js";
4
+ import { COLOR_PICKER_DEFAULT_VALUE as f, COLOR_PICKER_LABEL_CLASSES as b, COLOR_PICKER_SWATCH_SIZE as N, COLOR_PICKER_SWATCH_CLASSES as K, COLOR_PICKER_INPUT_CLASSES as k, COLOR_PICKER_POPUP_CLASSES as v, COLOR_PICKER_NATIVE_INPUT_CLASSES as y, COLOR_PICKER_GRID_CLASSES as w, COLOR_PICKER_DEFAULT_PRESETS as U, COLOR_PICKER_PRESET_ACTIVE_CLASSES as V, COLOR_PICKER_PRESET_INACTIVE_CLASSES as x, COLOR_PICKER_PRESET_ITEM_CLASSES as D, COLOR_PICKER_HEX_PATTERN as H } from "./ColorPicker.const.js";
5
+ const B = ({
6
+ value: r = f,
7
+ onChange: t,
8
+ presets: u = U,
9
+ showInput: L = !0,
10
+ showPresets: P = !0,
11
+ disabled: a = !1,
12
+ label: C,
13
+ size: m = "md",
14
+ className: I
32
15
  }) => {
33
- const [u, f] = p(!1), [N, c] = p(a), n = y(null);
34
- w(() => {
35
- c(a);
36
- }, [a]), w(() => {
37
- const e = (s) => {
38
- n.current && !n.current.contains(s.target) && f(!1);
16
+ const [i, o] = n(!1), [p, E] = n(r), l = T(null);
17
+ O(() => {
18
+ E(r);
19
+ }, [r]), O(() => {
20
+ const e = (c) => {
21
+ l.current && !l.current.contains(c.target) && o(!1);
39
22
  };
40
23
  return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
41
24
  }, []);
42
- const z = (e) => {
43
- const s = e.target.value;
44
- c(s), /^#[0-9A-Fa-f]{6}$/.test(s) && (r == null || r(s));
45
- }, g = (e) => {
46
- c(e), r == null || r(e);
47
- }, m = {
48
- sm: { swatch: "bear-w-6 bear-h-6", presetSwatch: "bear-w-5 bear-h-5" },
49
- md: { swatch: "bear-w-8 bear-h-8", presetSwatch: "bear-w-6 bear-h-6" },
50
- lg: { swatch: "bear-w-10 bear-h-10", presetSwatch: "bear-w-7 bear-h-7" }
51
- };
52
- return /* @__PURE__ */ i("div", { ref: n, className: o("bear-relative", v), children: [
53
- l && /* @__PURE__ */ t("label", { className: "bear-block bear-text-sm bear-font-medium bear-text-zinc-300 bear-mb-1.5", children: l }),
54
- /* @__PURE__ */ i("div", { className: "bear-flex bear-items-center bear-gap-2", children: [
55
- /* @__PURE__ */ t(
25
+ const A = (e) => {
26
+ const c = e.target.value;
27
+ E(c), H.test(c) && (t == null || t(c));
28
+ }, d = (e) => {
29
+ E(e), t == null || t(e);
30
+ }, R = N[m];
31
+ return /* @__PURE__ */ S("div", { ref: l, className: _("bear-relative bear-inline-block", I), children: [
32
+ C && /* @__PURE__ */ s("label", { className: b, children: C }),
33
+ /* @__PURE__ */ S("div", { className: "bear-flex bear-items-center bear-gap-2", children: [
34
+ /* @__PURE__ */ s(
56
35
  "button",
57
36
  {
58
- onClick: () => !b && f(!u),
59
- disabled: b,
60
- className: o(
61
- "bear-rounded-lg bear-border bear-border-zinc-600 bear-transition-all hover:bear-scale-105",
62
- m[d].swatch,
63
- b && "bear-opacity-50 bear-cursor-not-allowed"
37
+ type: "button",
38
+ onClick: () => !a && o(!i),
39
+ disabled: a,
40
+ className: _(
41
+ K,
42
+ R.swatch,
43
+ a && "bear-opacity-50 bear-cursor-not-allowed"
64
44
  ),
65
- style: { backgroundColor: a }
45
+ style: { backgroundColor: r },
46
+ "aria-label": "Pick color"
66
47
  }
67
48
  ),
68
- x && /* @__PURE__ */ t(
49
+ L && /* @__PURE__ */ s(
69
50
  "input",
70
51
  {
71
52
  type: "text",
72
- value: N,
73
- onChange: z,
74
- disabled: b,
53
+ value: p,
54
+ onChange: A,
55
+ disabled: a,
75
56
  placeholder: "#000000",
76
- className: o(
77
- "bear-px-3 bear-py-1.5 bear-rounded-lg bear-border bear-border-zinc-600 bear-bg-zinc-800 bear-text-white bear-text-sm bear-font-mono bear-w-24 bear-outline-none focus:bear-border-pink-500",
78
- b && "bear-opacity-50 bear-cursor-not-allowed"
57
+ className: _(
58
+ k,
59
+ a && "bear-opacity-50 bear-cursor-not-allowed"
79
60
  )
80
61
  }
81
62
  )
82
63
  ] }),
83
- u && /* @__PURE__ */ i("div", { className: "bear-absolute bear-z-50 bear-mt-2 bear-bg-zinc-800 bear-border bear-border-zinc-700 bear-rounded-lg bear-shadow-xl bear-p-3", children: [
84
- /* @__PURE__ */ t(
64
+ i && /* @__PURE__ */ S("div", { className: v, children: [
65
+ /* @__PURE__ */ s(
85
66
  "input",
86
67
  {
87
68
  type: "color",
88
- value: a,
69
+ value: r,
89
70
  onChange: (e) => {
90
- r == null || r(e.target.value), c(e.target.value);
71
+ t == null || t(e.target.value), E(e.target.value);
91
72
  },
92
- className: "bear-w-full bear-h-32 bear-rounded bear-cursor-pointer bear-mb-3"
73
+ className: y
93
74
  }
94
75
  ),
95
- k && /* @__PURE__ */ t("div", { className: "bear-grid bear-grid-cols-6 bear-gap-1.5", children: h.map((e) => /* @__PURE__ */ t(
76
+ P && /* @__PURE__ */ s("div", { className: w, children: u.map((e) => /* @__PURE__ */ s(
96
77
  "button",
97
78
  {
98
- onClick: () => g(e),
99
- className: o(
100
- "bear-rounded bear-border bear-transition-transform hover:bear-scale-110",
101
- m[d].presetSwatch,
102
- a === e ? "bear-border-white bear-ring-2 bear-ring-pink-500" : "bear-border-zinc-600"
79
+ type: "button",
80
+ onClick: () => d(e),
81
+ className: _(
82
+ D,
83
+ R.presetSwatch,
84
+ r === e ? V : x
103
85
  ),
104
- style: { backgroundColor: e }
86
+ style: { backgroundColor: e },
87
+ "aria-label": `Color ${e}`
105
88
  },
106
89
  e
107
90
  )) })
@@ -109,5 +92,5 @@ const S = [
109
92
  ] });
110
93
  };
111
94
  export {
112
- O as ColorPicker
95
+ B as ColorPicker
113
96
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),L=require("react"),h=require("../../utils/cn.cjs"),t=require("./ColorSwatch.const.cjs"),f=require("./ColorSwatch.utils.cjs"),_=({color:c,selected:r=!1,size:s="md",rounded:l=!0,label:d,onClick:A,className:C,testId:S,...m})=>{const a=t.SIZE_MAP[s],n=f.isLightColor(c),o=Math.max(12,a*.4);return i.jsxs("div",{className:"bear-inline-flex bear-flex-col bear-items-center",children:[i.jsx("div",{className:h.cn(t.SWATCH_CLASSES,r&&t.SWATCH_SELECTED_CLASSES,n?t.SWATCH_LIGHT_BORDER:t.SWATCH_DEFAULT_BORDER,l?"bear-rounded-full":"bear-rounded-md",C),style:{width:a,height:a,backgroundColor:c},onClick:A,role:"option","aria-selected":r,"aria-label":d??c,"data-testid":S,...m,children:r&&i.jsx("svg",{className:h.cn(n?t.LIGHT_CHECK_CLASSES:t.CHECK_CLASSES),width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:3,strokeLinecap:"round",strokeLinejoin:"round",children:i.jsx("polyline",{points:"20 6 9 17 4 12"})})}),d&&i.jsx("span",{className:t.LABEL_CLASSES,style:{maxWidth:a+8},children:d})]})},w=({colors:c,value:r,onChange:s,multiple:l=!1,size:d="md",rounded:A=!0,gap:C=t.DEFAULT_GAP,columns:S,showLabel:m=!1,className:a,testId:n,...o})=>{const E=L.useMemo(()=>r?new Set(Array.isArray(r)?r:[r]):new Set,[r]),x=L.useCallback(e=>{if(l){const u=new Set(E);u.has(e)?u.delete(e):u.add(e),s==null||s(Array.from(u))}else s==null||s(e)},[l,E,s]);return i.jsx("div",{className:h.cn(t.GROUP_CLASSES,a),style:{gap:C,...S?{display:"grid",gridTemplateColumns:`repeat(${S}, 1fr)`}:{}},role:"listbox","aria-multiselectable":l,"data-testid":n,...o,children:c.map(e=>i.jsx(_,{color:e,selected:E.has(e),size:d,rounded:A,label:m?e:void 0,onClick:()=>x(e)},e))})};exports.ColorSwatch=_;exports.ColorSwatchGroup=w;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={sm:24,md:32,lg:40,xl:56},r="Bear-ColorSwatch bear-inline-flex bear-items-center bear-justify-center bear-cursor-pointer bear-transition-all bear-border-2 hover:bear-scale-110",S="bear-ring-2 bear-ring-offset-2 bear-ring-pink-500 dark:bear-ring-offset-zinc-900",t="bear-border-transparent",a="bear-border-gray-200",E="bear-text-white drop-shadow-sm",o="bear-text-gray-800",C="Bear-ColorSwatchGroup bear-flex bear-flex-wrap",n="bear-block bear-text-[10px] bear-text-center bear-mt-1 bear-text-gray-500 dark:bear-text-zinc-400 bear-truncate",b=200,A=8;exports.CHECK_CLASSES=E;exports.DEFAULT_GAP=A;exports.GROUP_CLASSES=C;exports.LABEL_CLASSES=n;exports.LIGHT_CHECK_CLASSES=o;exports.LIGHT_THRESHOLD=b;exports.SIZE_MAP=e;exports.SWATCH_CLASSES=r;exports.SWATCH_DEFAULT_BORDER=t;exports.SWATCH_LIGHT_BORDER=a;exports.SWATCH_SELECTED_CLASSES=S;
@@ -0,0 +1,16 @@
1
+ export declare const SIZE_MAP: {
2
+ readonly sm: 24;
3
+ readonly md: 32;
4
+ readonly lg: 40;
5
+ readonly xl: 56;
6
+ };
7
+ export declare const SWATCH_CLASSES = "Bear-ColorSwatch bear-inline-flex bear-items-center bear-justify-center bear-cursor-pointer bear-transition-all bear-border-2 hover:bear-scale-110";
8
+ export declare const SWATCH_SELECTED_CLASSES = "bear-ring-2 bear-ring-offset-2 bear-ring-pink-500 dark:bear-ring-offset-zinc-900";
9
+ export declare const SWATCH_DEFAULT_BORDER = "bear-border-transparent";
10
+ export declare const SWATCH_LIGHT_BORDER = "bear-border-gray-200";
11
+ export declare const CHECK_CLASSES = "bear-text-white drop-shadow-sm";
12
+ export declare const LIGHT_CHECK_CLASSES = "bear-text-gray-800";
13
+ export declare const GROUP_CLASSES = "Bear-ColorSwatchGroup bear-flex bear-flex-wrap";
14
+ export declare const LABEL_CLASSES = "bear-block bear-text-[10px] bear-text-center bear-mt-1 bear-text-gray-500 dark:bear-text-zinc-400 bear-truncate";
15
+ export declare const LIGHT_THRESHOLD = 200;
16
+ export declare const DEFAULT_GAP = 8;
@@ -0,0 +1,19 @@
1
+ const r = {
2
+ sm: 24,
3
+ md: 32,
4
+ lg: 40,
5
+ xl: 56
6
+ }, e = "Bear-ColorSwatch bear-inline-flex bear-items-center bear-justify-center bear-cursor-pointer bear-transition-all bear-border-2 hover:bear-scale-110", t = "bear-ring-2 bear-ring-offset-2 bear-ring-pink-500 dark:bear-ring-offset-zinc-900", a = "bear-border-transparent", n = "bear-border-gray-200", o = "bear-text-white drop-shadow-sm", b = "bear-text-gray-800", S = "Bear-ColorSwatchGroup bear-flex bear-flex-wrap", c = "bear-block bear-text-[10px] bear-text-center bear-mt-1 bear-text-gray-500 dark:bear-text-zinc-400 bear-truncate", s = 200, E = 8;
7
+ export {
8
+ o as CHECK_CLASSES,
9
+ E as DEFAULT_GAP,
10
+ S as GROUP_CLASSES,
11
+ c as LABEL_CLASSES,
12
+ b as LIGHT_CHECK_CLASSES,
13
+ s as LIGHT_THRESHOLD,
14
+ r as SIZE_MAP,
15
+ e as SWATCH_CLASSES,
16
+ a as SWATCH_DEFAULT_BORDER,
17
+ n as SWATCH_LIGHT_BORDER,
18
+ t as SWATCH_SELECTED_CLASSES
19
+ };
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ import { ColorSwatchProps, ColorSwatchGroupProps } from './ColorSwatch.types';
3
+ export declare const ColorSwatch: FC<ColorSwatchProps>;
4
+ export declare const ColorSwatchGroup: FC<ColorSwatchGroupProps>;
5
+ export default ColorSwatch;
@@ -0,0 +1,92 @@
1
+ import { jsxs as C, jsx as s } from "react/jsx-runtime";
2
+ import { useMemo as _, useCallback as h } from "react";
3
+ import { cn as L } from "../../utils/cn.js";
4
+ import { SIZE_MAP as u, LIGHT_CHECK_CLASSES as x, CHECK_CLASSES as T, SWATCH_LIGHT_BORDER as b, SWATCH_DEFAULT_BORDER as k, SWATCH_SELECTED_CLASSES as w, SWATCH_CLASSES as y, LABEL_CLASSES as H, DEFAULT_GAP as W, GROUP_CLASSES as D } from "./ColorSwatch.const.js";
5
+ import { isLightColor as G } from "./ColorSwatch.utils.js";
6
+ const N = ({
7
+ color: a,
8
+ selected: t = !1,
9
+ size: r = "md",
10
+ rounded: d = !0,
11
+ label: l,
12
+ onClick: n,
13
+ className: A,
14
+ testId: S,
15
+ ...E
16
+ }) => {
17
+ const i = u[r], o = G(a), m = Math.max(12, i * 0.4);
18
+ return /* @__PURE__ */ C("div", { className: "bear-inline-flex bear-flex-col bear-items-center", children: [
19
+ /* @__PURE__ */ s(
20
+ "div",
21
+ {
22
+ className: L(
23
+ y,
24
+ t && w,
25
+ o ? b : k,
26
+ d ? "bear-rounded-full" : "bear-rounded-md",
27
+ A
28
+ ),
29
+ style: { width: i, height: i, backgroundColor: a },
30
+ onClick: n,
31
+ role: "option",
32
+ "aria-selected": t,
33
+ "aria-label": l ?? a,
34
+ "data-testid": S,
35
+ ...E,
36
+ children: t && /* @__PURE__ */ s("svg", { className: L(o ? x : T), width: m, height: m, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 3, strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ s("polyline", { points: "20 6 9 17 4 12" }) })
37
+ }
38
+ ),
39
+ l && /* @__PURE__ */ s("span", { className: H, style: { maxWidth: i + 8 }, children: l })
40
+ ] });
41
+ }, O = ({
42
+ colors: a,
43
+ value: t,
44
+ onChange: r,
45
+ multiple: d = !1,
46
+ size: l = "md",
47
+ rounded: n = !0,
48
+ gap: A = W,
49
+ columns: S,
50
+ showLabel: E = !1,
51
+ className: i,
52
+ testId: o,
53
+ ...m
54
+ }) => {
55
+ const f = _(() => t ? new Set(Array.isArray(t) ? t : [t]) : /* @__PURE__ */ new Set(), [t]), p = h((e) => {
56
+ if (d) {
57
+ const c = new Set(f);
58
+ c.has(e) ? c.delete(e) : c.add(e), r == null || r(Array.from(c));
59
+ } else
60
+ r == null || r(e);
61
+ }, [d, f, r]);
62
+ return /* @__PURE__ */ s(
63
+ "div",
64
+ {
65
+ className: L(D, i),
66
+ style: {
67
+ gap: A,
68
+ ...S ? { display: "grid", gridTemplateColumns: `repeat(${S}, 1fr)` } : {}
69
+ },
70
+ role: "listbox",
71
+ "aria-multiselectable": d,
72
+ "data-testid": o,
73
+ ...m,
74
+ children: a.map((e) => /* @__PURE__ */ s(
75
+ N,
76
+ {
77
+ color: e,
78
+ selected: f.has(e),
79
+ size: l,
80
+ rounded: n,
81
+ label: E ? e : void 0,
82
+ onClick: () => p(e)
83
+ },
84
+ e
85
+ ))
86
+ }
87
+ );
88
+ };
89
+ export {
90
+ N as ColorSwatch,
91
+ O as ColorSwatchGroup
92
+ };
@@ -0,0 +1,23 @@
1
+ import { HTMLAttributes } from 'react';
2
+ export type SwatchSize = 'sm' | 'md' | 'lg' | 'xl';
3
+ export interface ColorSwatchProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
4
+ color: string;
5
+ selected?: boolean;
6
+ size?: SwatchSize;
7
+ rounded?: boolean;
8
+ label?: string;
9
+ onClick?: () => void;
10
+ testId?: string;
11
+ }
12
+ export interface ColorSwatchGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
13
+ colors: string[];
14
+ value?: string | string[];
15
+ onChange?: (value: string | string[]) => void;
16
+ multiple?: boolean;
17
+ size?: SwatchSize;
18
+ rounded?: boolean;
19
+ gap?: number;
20
+ columns?: number;
21
+ showLabel?: boolean;
22
+ testId?: string;
23
+ }
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./ColorSwatch.const.cjs"),l=t=>{const n=t.replace("#","");if(n.length!==3&&n.length!==6)return null;const o=n.length===3?n.split("").map(r=>r+r).join(""):n,e=parseInt(o,16);return{r:e>>16&255,g:e>>8&255,b:e&255}},c=t=>{const n=l(t);return n?n.r*.299+n.g*.587+n.b*.114>s.LIGHT_THRESHOLD:!1};exports.hexToRgb=l;exports.isLightColor=c;
@@ -0,0 +1,6 @@
1
+ export declare const hexToRgb: (hex: string) => {
2
+ r: number;
3
+ g: number;
4
+ b: number;
5
+ } | null;
6
+ export declare const isLightColor: (color: string) => boolean;
@@ -0,0 +1,14 @@
1
+ import { LIGHT_THRESHOLD as o } from "./ColorSwatch.const.js";
2
+ const s = (t) => {
3
+ const n = t.replace("#", "");
4
+ if (n.length !== 3 && n.length !== 6) return null;
5
+ const e = n.length === 3 ? n.split("").map((l) => l + l).join("") : n, r = parseInt(e, 16);
6
+ return { r: r >> 16 & 255, g: r >> 8 & 255, b: r & 255 };
7
+ }, i = (t) => {
8
+ const n = s(t);
9
+ return n ? n.r * 0.299 + n.g * 0.587 + n.b * 0.114 > o : !1;
10
+ };
11
+ export {
12
+ s as hexToRgb,
13
+ i as isLightColor
14
+ };
@@ -0,0 +1,2 @@
1
+ export { ColorSwatch, ColorSwatchGroup } from './ColorSwatch';
2
+ export type { ColorSwatchProps, ColorSwatchGroupProps, SwatchSize } from './ColorSwatch.types';
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),r=require("react"),j=require("../../utils/cn.cjs"),l=require("./ContextMenu.const.cjs"),L=i=>"type"in i&&i.type==="divider",b=({items:i,position:d,onClose:u})=>{const[c,o]=r.useState(null),[a,S]=r.useState({x:0,y:0}),x=r.useRef(null),E=r.useCallback(s=>{var e;s.disabled||s.children||((e=s.onClick)==null||e.call(s),u())},[u]),f=r.useCallback((s,e)=>{if(s.children){const n=e.currentTarget.getBoundingClientRect();S({x:n.right+l.SUB_MENU_OFFSET,y:n.top}),o(s.id)}else o(null)},[]);return t.jsx("div",{ref:x,className:l.MENU_CLASSES,style:{left:d.x,top:d.y},role:"menu",children:i.map(s=>{if(L(s))return t.jsx("div",{className:l.DIVIDER_CLASSES,role:"separator"},s.id);const e=s;return t.jsxs("div",{children:[t.jsxs("div",{className:j.cn(l.ITEM_CLASSES,e.disabled&&l.ITEM_DISABLED_CLASSES,e.danger&&l.ITEM_DANGER_CLASSES),onClick:()=>E(e),onMouseEnter:n=>f(e,n),role:"menuitem","aria-disabled":e.disabled,children:[t.jsxs("span",{className:"bear-flex bear-items-center",children:[e.icon&&t.jsx("span",{className:l.ICON_CLASSES,children:e.icon}),e.label]}),t.jsxs("span",{className:"bear-flex bear-items-center",children:[e.shortcut&&t.jsx("span",{className:l.SHORTCUT_CLASSES,children:e.shortcut}),e.children&&t.jsx("span",{className:l.SUB_INDICATOR_CLASSES,children:"▸"})]})]}),e.children&&c===e.id&&t.jsx(b,{items:e.children,position:a,onClose:u})]},e.id)})})},M=({items:i,children:d,disabled:u=!1,onOpenChange:c,testId:o})=>{const[a,S]=r.useState(!1),[x,E]=r.useState({x:0,y:0}),f=r.useRef(null),s=r.useCallback(()=>{S(!1),c==null||c(!1)},[c]),e=r.useCallback(n=>{u||(n.preventDefault(),E({x:n.clientX,y:n.clientY}),S(!0),c==null||c(!0))},[u,c]);return r.useEffect(()=>{if(!a)return;const n=()=>s(),m=v=>{v.key==="Escape"&&s()};return document.addEventListener("mousedown",n),document.addEventListener("keydown",m),()=>{document.removeEventListener("mousedown",n),document.removeEventListener("keydown",m)}},[a,s]),t.jsxs("div",{ref:f,onContextMenu:e,"data-testid":o,children:[d,a&&t.jsx(b,{items:i,position:x,onClose:s})]})};exports.ContextMenu=M;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r="Bear-ContextMenu bear-fixed bear-z-[99999] bear-bg-white dark:bear-bg-zinc-800 bear-border bear-border-gray-200 dark:bear-border-zinc-700 bear-rounded-lg bear-shadow-xl bear-py-1 bear-min-w-[180px] bear-animate-in",e="bear-flex bear-items-center bear-justify-between bear-px-3 bear-py-1.5 bear-text-sm bear-cursor-pointer bear-transition-colors bear-text-gray-700 dark:bear-text-zinc-300 hover:bear-bg-gray-50 dark:hover:bear-bg-zinc-700",a="bear-opacity-40 bear-cursor-not-allowed",b="bear-text-red-600 dark:bear-text-red-400 hover:bear-bg-red-50 dark:hover:bear-bg-red-900/20",S="bear-my-1 bear-border-t bear-border-gray-200 dark:bear-border-zinc-700",t="bear-mr-2 bear-w-4 bear-h-4 bear-flex-shrink-0",o="bear-text-xs bear-text-gray-400 dark:bear-text-zinc-500 bear-ml-4",E="bear-ml-2 bear-text-gray-400 dark:bear-text-zinc-500",n=4;exports.DIVIDER_CLASSES=S;exports.ICON_CLASSES=t;exports.ITEM_CLASSES=e;exports.ITEM_DANGER_CLASSES=b;exports.ITEM_DISABLED_CLASSES=a;exports.MENU_CLASSES=r;exports.SHORTCUT_CLASSES=o;exports.SUB_INDICATOR_CLASSES=E;exports.SUB_MENU_OFFSET=n;