@forgedevstack/bear 1.0.6 โ†’ 1.0.8

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 (230) hide show
  1. package/dist/components/Alert/Alert.cjs +1 -1
  2. package/dist/components/Alert/Alert.const.cjs +1 -1
  3. package/dist/components/Alert/Alert.const.d.ts +4 -0
  4. package/dist/components/Alert/Alert.const.js +9 -15
  5. package/dist/components/Alert/Alert.js +43 -38
  6. package/dist/components/AppBar/AppBar.cjs +1 -1
  7. package/dist/components/AppBar/AppBar.js +20 -16
  8. package/dist/components/BackTop/BackTop.cjs +1 -0
  9. package/dist/components/BackTop/BackTop.const.cjs +1 -0
  10. package/dist/components/BackTop/BackTop.const.d.ts +34 -0
  11. package/dist/components/BackTop/BackTop.const.js +29 -0
  12. package/dist/components/BackTop/BackTop.d.ts +21 -0
  13. package/dist/components/BackTop/BackTop.js +87 -0
  14. package/dist/components/BackTop/BackTop.types.d.ts +28 -0
  15. package/dist/components/BackTop/index.d.ts +3 -0
  16. package/dist/components/Badge/Badge.constants.d.ts +4 -4
  17. package/dist/components/Badge/Badge.types.d.ts +3 -3
  18. package/dist/components/BottomSheet/BottomSheet.cjs +1 -0
  19. package/dist/components/BottomSheet/BottomSheet.d.ts +3 -0
  20. package/dist/components/BottomSheet/BottomSheet.js +103 -0
  21. package/dist/components/BottomSheet/BottomSheet.types.d.ts +13 -0
  22. package/dist/components/BottomSheet/index.d.ts +2 -0
  23. package/dist/components/Button/Button.cjs +1 -1
  24. package/dist/components/Button/Button.constants.cjs +38 -48
  25. package/dist/components/Button/Button.constants.d.ts +22 -3
  26. package/dist/components/Button/Button.constants.js +51 -50
  27. package/dist/components/Button/Button.d.ts +14 -7
  28. package/dist/components/Button/Button.js +123 -43
  29. package/dist/components/Button/Button.types.d.ts +26 -4
  30. package/dist/components/Calendar/Calendar.cjs +1 -1
  31. package/dist/components/Calendar/Calendar.js +3 -2
  32. package/dist/components/Card/Card.const.d.ts +2 -2
  33. package/dist/components/Card/Card.types.d.ts +2 -2
  34. package/dist/components/Chat/Chat.cjs +1 -0
  35. package/dist/components/Chat/Chat.const.cjs +1 -0
  36. package/dist/components/Chat/Chat.const.d.ts +26 -0
  37. package/dist/components/Chat/Chat.const.js +29 -0
  38. package/dist/components/Chat/Chat.d.ts +21 -0
  39. package/dist/components/Chat/Chat.js +179 -0
  40. package/dist/components/Chat/Chat.types.d.ts +55 -0
  41. package/dist/components/Chat/index.d.ts +2 -0
  42. package/dist/components/Confetti/Confetti.cjs +1 -0
  43. package/dist/components/Confetti/Confetti.const.cjs +1 -0
  44. package/dist/components/Confetti/Confetti.const.d.ts +16 -0
  45. package/dist/components/Confetti/Confetti.const.js +36 -0
  46. package/dist/components/Confetti/Confetti.d.ts +23 -0
  47. package/dist/components/Confetti/Confetti.js +94 -0
  48. package/dist/components/Confetti/Confetti.types.d.ts +50 -0
  49. package/dist/components/Confetti/index.d.ts +4 -0
  50. package/dist/components/Confetti/useConfetti.cjs +1 -0
  51. package/dist/components/Confetti/useConfetti.d.ts +13 -0
  52. package/dist/components/Confetti/useConfetti.js +12 -0
  53. package/dist/components/DatePicker/DatePicker.cjs +1 -1
  54. package/dist/components/DatePicker/DatePicker.js +3 -2
  55. package/dist/components/DiffViewer/DiffViewer.cjs +1 -0
  56. package/dist/components/DiffViewer/DiffViewer.const.cjs +1 -0
  57. package/dist/components/DiffViewer/DiffViewer.const.d.ts +18 -0
  58. package/dist/components/DiffViewer/DiffViewer.const.js +21 -0
  59. package/dist/components/DiffViewer/DiffViewer.d.ts +18 -0
  60. package/dist/components/DiffViewer/DiffViewer.js +127 -0
  61. package/dist/components/DiffViewer/DiffViewer.types.d.ts +40 -0
  62. package/dist/components/DiffViewer/DiffViewer.utils.cjs +3 -0
  63. package/dist/components/DiffViewer/DiffViewer.utils.d.ts +9 -0
  64. package/dist/components/DiffViewer/DiffViewer.utils.js +39 -0
  65. package/dist/components/DiffViewer/index.d.ts +2 -0
  66. package/dist/components/Drawer/Drawer.cjs +1 -1
  67. package/dist/components/Drawer/Drawer.js +35 -35
  68. package/dist/components/EmojiPicker/EmojiPicker.cjs +1 -0
  69. package/dist/components/EmojiPicker/EmojiPicker.const.cjs +1 -0
  70. package/dist/components/EmojiPicker/EmojiPicker.const.d.ts +5 -0
  71. package/dist/components/EmojiPicker/EmojiPicker.const.js +10 -0
  72. package/dist/components/EmojiPicker/EmojiPicker.d.ts +3 -0
  73. package/dist/components/EmojiPicker/EmojiPicker.js +63 -0
  74. package/dist/components/EmojiPicker/EmojiPicker.types.d.ts +6 -0
  75. package/dist/components/EmojiPicker/index.d.ts +3 -0
  76. package/dist/components/FloatingChat/FloatingChat.cjs +1 -0
  77. package/dist/components/FloatingChat/FloatingChat.const.cjs +1 -0
  78. package/dist/components/FloatingChat/FloatingChat.const.d.ts +12 -0
  79. package/dist/components/FloatingChat/FloatingChat.const.js +15 -0
  80. package/dist/components/FloatingChat/FloatingChat.d.ts +19 -0
  81. package/dist/components/FloatingChat/FloatingChat.js +144 -0
  82. package/dist/components/FloatingChat/FloatingChat.types.d.ts +44 -0
  83. package/dist/components/FloatingChat/index.d.ts +2 -0
  84. package/dist/components/JsonViewer/JsonViewer.cjs +1 -0
  85. package/dist/components/JsonViewer/JsonViewer.const.cjs +1 -0
  86. package/dist/components/JsonViewer/JsonViewer.const.d.ts +4 -0
  87. package/dist/components/JsonViewer/JsonViewer.const.js +24 -0
  88. package/dist/components/JsonViewer/JsonViewer.d.ts +17 -0
  89. package/dist/components/JsonViewer/JsonViewer.js +195 -0
  90. package/dist/components/JsonViewer/JsonViewer.types.d.ts +54 -0
  91. package/dist/components/JsonViewer/index.d.ts +2 -0
  92. package/dist/components/Kanban/Kanban.cjs +1 -0
  93. package/dist/components/Kanban/Kanban.d.ts +3 -0
  94. package/dist/components/Kanban/Kanban.js +91 -0
  95. package/dist/components/Kanban/Kanban.types.d.ts +21 -0
  96. package/dist/components/Kanban/index.d.ts +2 -0
  97. package/dist/components/MentionsInput/MentionsInput.cjs +1 -0
  98. package/dist/components/MentionsInput/MentionsInput.d.ts +3 -0
  99. package/dist/components/MentionsInput/MentionsInput.js +140 -0
  100. package/dist/components/MentionsInput/MentionsInput.types.d.ts +21 -0
  101. package/dist/components/MentionsInput/index.d.ts +2 -0
  102. package/dist/components/QRCode/QRCode.cjs +1 -0
  103. package/dist/components/QRCode/QRCode.const.cjs +1 -0
  104. package/dist/components/QRCode/QRCode.const.d.ts +21 -0
  105. package/dist/components/QRCode/QRCode.const.js +11 -0
  106. package/dist/components/QRCode/QRCode.d.ts +29 -0
  107. package/dist/components/QRCode/QRCode.js +68 -0
  108. package/dist/components/QRCode/QRCode.types.d.ts +32 -0
  109. package/dist/components/QRCode/QRCode.utils.cjs +1 -0
  110. package/dist/components/QRCode/QRCode.utils.d.ts +12 -0
  111. package/dist/components/QRCode/QRCode.utils.js +74 -0
  112. package/dist/components/QRCode/index.d.ts +3 -0
  113. package/dist/components/RichEditor/RichEditor.cjs +1 -1
  114. package/dist/components/RichEditor/RichEditor.const.cjs +2 -2
  115. package/dist/components/RichEditor/RichEditor.const.d.ts +4 -1
  116. package/dist/components/RichEditor/RichEditor.const.js +51 -18
  117. package/dist/components/RichEditor/RichEditor.js +106 -105
  118. package/dist/components/RichEditor/components/ToolbarColorPicker/ToolbarColorPicker.cjs +1 -1
  119. package/dist/components/RichEditor/components/ToolbarColorPicker/ToolbarColorPicker.js +105 -95
  120. package/dist/components/RichEditor/components/ToolbarMore/ToolbarMore.cjs +1 -1
  121. package/dist/components/RichEditor/components/ToolbarMore/ToolbarMore.d.ts +2 -0
  122. package/dist/components/RichEditor/components/ToolbarMore/ToolbarMore.js +47 -29
  123. package/dist/components/SegmentedControl/SegmentedControl.cjs +1 -0
  124. package/dist/components/SegmentedControl/SegmentedControl.d.ts +3 -0
  125. package/dist/components/SegmentedControl/SegmentedControl.js +58 -0
  126. package/dist/components/SegmentedControl/SegmentedControl.types.d.ts +16 -0
  127. package/dist/components/SegmentedControl/index.d.ts +2 -0
  128. package/dist/components/SignPad/SignPad.cjs +1 -1
  129. package/dist/components/SignPad/SignPad.js +98 -90
  130. package/dist/components/SliderRange/SliderRange.cjs +1 -0
  131. package/dist/components/SliderRange/SliderRange.d.ts +3 -0
  132. package/dist/components/SliderRange/SliderRange.js +142 -0
  133. package/dist/components/SliderRange/SliderRange.types.d.ts +17 -0
  134. package/dist/components/SliderRange/index.d.ts +2 -0
  135. package/dist/components/Spinner/Spinner.types.d.ts +2 -2
  136. package/dist/components/TagsInput/TagsInput.cjs +1 -0
  137. package/dist/components/TagsInput/TagsInput.d.ts +3 -0
  138. package/dist/components/TagsInput/TagsInput.js +100 -0
  139. package/dist/components/TagsInput/TagsInput.types.d.ts +16 -0
  140. package/dist/components/TagsInput/index.d.ts +2 -0
  141. package/dist/components/Terminal/Terminal.cjs +1 -0
  142. package/dist/components/Terminal/Terminal.const.cjs +1 -0
  143. package/dist/components/Terminal/Terminal.const.d.ts +32 -0
  144. package/dist/components/Terminal/Terminal.const.js +42 -0
  145. package/dist/components/Terminal/Terminal.d.ts +27 -0
  146. package/dist/components/Terminal/Terminal.js +155 -0
  147. package/dist/components/Terminal/Terminal.types.d.ts +49 -0
  148. package/dist/components/Terminal/index.d.ts +2 -0
  149. package/dist/components/Tour/Tour.cjs +1 -0
  150. package/dist/components/Tour/Tour.const.cjs +1 -0
  151. package/dist/components/Tour/Tour.const.d.ts +25 -0
  152. package/dist/components/Tour/Tour.const.js +38 -0
  153. package/dist/components/Tour/Tour.d.ts +17 -0
  154. package/dist/components/Tour/Tour.js +179 -0
  155. package/dist/components/Tour/Tour.types.d.ts +80 -0
  156. package/dist/components/Tour/index.d.ts +4 -0
  157. package/dist/components/Tour/useTour.cjs +1 -0
  158. package/dist/components/Tour/useTour.d.ts +14 -0
  159. package/dist/components/Tour/useTour.js +27 -0
  160. package/dist/components/Typography/Typography.cjs +1 -1
  161. package/dist/components/Typography/Typography.d.ts +5 -1
  162. package/dist/components/Typography/Typography.js +93 -57
  163. package/dist/components/Typography/Typography.types.d.ts +29 -2
  164. package/dist/components/VirtualList/VirtualList.cjs +1 -0
  165. package/dist/components/VirtualList/VirtualList.d.ts +3 -0
  166. package/dist/components/VirtualList/VirtualList.js +68 -0
  167. package/dist/components/VirtualList/VirtualList.types.d.ts +10 -0
  168. package/dist/components/VirtualList/index.d.ts +2 -0
  169. package/dist/components/index.cjs +1 -1
  170. package/dist/components/index.d.ts +35 -1
  171. package/dist/components/index.js +240 -198
  172. package/dist/context/BearProvider.cjs +1 -1
  173. package/dist/context/BearProvider.d.ts +110 -5
  174. package/dist/context/BearProvider.js +198 -53
  175. package/dist/context/defaultTheme.cjs +1 -1
  176. package/dist/context/defaultTheme.js +11 -11
  177. package/dist/hooks/index.cjs +1 -1
  178. package/dist/hooks/index.d.ts +18 -0
  179. package/dist/hooks/index.js +56 -35
  180. package/dist/hooks/useBearComponent/index.d.ts +2 -0
  181. package/dist/hooks/useBearComponent/useBearComponent.cjs +1 -0
  182. package/dist/hooks/useBearComponent/useBearComponent.d.ts +71 -0
  183. package/dist/hooks/useBearComponent/useBearComponent.js +54 -0
  184. package/dist/hooks/useBearComponent/useBearComponent.types.d.ts +40 -0
  185. package/dist/hooks/useDragDrop/index.d.ts +2 -0
  186. package/dist/hooks/useDragDrop/useDragDrop.cjs +1 -0
  187. package/dist/hooks/useDragDrop/useDragDrop.d.ts +22 -0
  188. package/dist/hooks/useDragDrop/useDragDrop.js +56 -0
  189. package/dist/hooks/useDragDrop/useDragDrop.types.d.ts +55 -0
  190. package/dist/hooks/useIdle/index.d.ts +2 -0
  191. package/dist/hooks/useIdle/useIdle.cjs +1 -0
  192. package/dist/hooks/useIdle/useIdle.d.ts +22 -0
  193. package/dist/hooks/useIdle/useIdle.js +66 -0
  194. package/dist/hooks/useIdle/useIdle.types.d.ts +29 -0
  195. package/dist/hooks/useLazyLoad/index.d.ts +2 -0
  196. package/dist/hooks/useLazyLoad/useLazyLoad.cjs +1 -0
  197. package/dist/hooks/useLazyLoad/useLazyLoad.d.ts +26 -0
  198. package/dist/hooks/useLazyLoad/useLazyLoad.js +27 -0
  199. package/dist/hooks/useLazyLoad/useLazyLoad.types.d.ts +25 -0
  200. package/dist/hooks/useLongPress/index.d.ts +2 -0
  201. package/dist/hooks/useLongPress/useLongPress.cjs +1 -0
  202. package/dist/hooks/useLongPress/useLongPress.d.ts +17 -0
  203. package/dist/hooks/useLongPress/useLongPress.js +44 -0
  204. package/dist/hooks/useLongPress/useLongPress.types.d.ts +26 -0
  205. package/dist/hooks/useOnline/index.d.ts +2 -0
  206. package/dist/hooks/useOnline/useOnline.cjs +1 -0
  207. package/dist/hooks/useOnline/useOnline.d.ts +16 -0
  208. package/dist/hooks/useOnline/useOnline.js +25 -0
  209. package/dist/hooks/useOnline/useOnline.types.d.ts +15 -0
  210. package/dist/hooks/usePageVisibility/index.d.ts +2 -0
  211. package/dist/hooks/usePageVisibility/usePageVisibility.cjs +1 -0
  212. package/dist/hooks/usePageVisibility/usePageVisibility.d.ts +19 -0
  213. package/dist/hooks/usePageVisibility/usePageVisibility.js +26 -0
  214. package/dist/hooks/usePageVisibility/usePageVisibility.types.d.ts +15 -0
  215. package/dist/hooks/useSpotlight/index.d.ts +2 -0
  216. package/dist/hooks/useSpotlight/useSpotlight.cjs +1 -0
  217. package/dist/hooks/useSpotlight/useSpotlight.d.ts +24 -0
  218. package/dist/hooks/useSpotlight/useSpotlight.js +49 -0
  219. package/dist/hooks/useSpotlight/useSpotlight.types.d.ts +23 -0
  220. package/dist/hooks/useWebSocket/index.d.ts +2 -0
  221. package/dist/hooks/useWebSocket/useWebSocket.cjs +1 -0
  222. package/dist/hooks/useWebSocket/useWebSocket.d.ts +22 -0
  223. package/dist/hooks/useWebSocket/useWebSocket.js +75 -0
  224. package/dist/hooks/useWebSocket/useWebSocket.types.d.ts +44 -0
  225. package/dist/index.cjs +1 -1
  226. package/dist/index.js +327 -264
  227. package/dist/styles.css +1 -1
  228. package/dist/types/component.types.d.ts +125 -42
  229. package/dist/types/theme.types.d.ts +82 -0
  230. package/package.json +1 -1
@@ -0,0 +1,50 @@
1
+ export interface ConfettiPiece {
2
+ id: number;
3
+ x: number;
4
+ y: number;
5
+ rotation: number;
6
+ color: string;
7
+ size: number;
8
+ velocity: {
9
+ x: number;
10
+ y: number;
11
+ };
12
+ rotationSpeed: number;
13
+ shape: 'square' | 'circle' | 'triangle';
14
+ }
15
+ export interface ConfettiProps {
16
+ /** Whether confetti is active */
17
+ active?: boolean;
18
+ /** Number of confetti pieces */
19
+ count?: number;
20
+ /** Duration in ms before confetti disappears */
21
+ duration?: number;
22
+ /** Custom colors array */
23
+ colors?: string[];
24
+ /** Confetti origin x position (0-1) */
25
+ originX?: number;
26
+ /** Confetti origin y position (0-1) */
27
+ originY?: number;
28
+ /** Spread angle in degrees */
29
+ spread?: number;
30
+ /** Initial velocity */
31
+ velocity?: number;
32
+ /** Gravity effect */
33
+ gravity?: number;
34
+ /** Whether to auto-hide after duration */
35
+ autoHide?: boolean;
36
+ /** Callback when animation completes */
37
+ onComplete?: () => void;
38
+ /** Custom class name */
39
+ className?: string;
40
+ /** Test ID */
41
+ testId?: string;
42
+ }
43
+ export interface UseConfettiReturn {
44
+ /** Fire confetti */
45
+ fire: () => void;
46
+ /** Stop confetti */
47
+ stop: () => void;
48
+ /** Whether confetti is active */
49
+ isActive: boolean;
50
+ }
@@ -0,0 +1,4 @@
1
+ export { Confetti, default } from './Confetti';
2
+ export { useConfetti } from './useConfetti';
3
+ export * from './Confetti.types';
4
+ export * from './Confetti.const';
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),u=()=>{const[s,t]=e.useState(!1),c=e.useCallback(()=>{t(!0)},[]),o=e.useCallback(()=>{t(!1)},[]);return{fire:c,stop:o,isActive:s}};exports.useConfetti=u;
@@ -0,0 +1,13 @@
1
+ import { UseConfettiReturn } from './Confetti.types';
2
+ /**
3
+ * useConfetti - Hook to control confetti programmatically
4
+ *
5
+ * @example
6
+ * ```tsx
7
+ * const { fire, stop, isActive } = useConfetti();
8
+ *
9
+ * <Confetti active={isActive} onComplete={stop} />
10
+ * <Button onClick={fire}>Celebrate!</Button>
11
+ * ```
12
+ */
13
+ export declare const useConfetti: () => UseConfettiReturn;
@@ -0,0 +1,12 @@
1
+ import { useState as r, useCallback as e } from "react";
2
+ const n = () => {
3
+ const [s, t] = r(!1), o = e(() => {
4
+ t(!0);
5
+ }, []), c = e(() => {
6
+ t(!1);
7
+ }, []);
8
+ return { fire: o, stop: c, isActive: s };
9
+ };
10
+ export {
11
+ n as useConfetti
12
+ };
@@ -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"),K=require("../Calendar/Calendar.cjs"),D=require("../../utils/cn.cjs"),Q=require("../../hooks/useBearStyles.cjs"),U=require("./DatePicker.utils.cjs"),X=({value:c,onChange:t,minDate:y,maxDate:j,disabled:b=!1,placeholder:z="Select date",label:p,error:o,helperText:m,format:B="MM/DD/YYYY",clearable:P=!0,className:_,style:h,bis:v,showWeekNumbers:S=!1,disabledDates:N=[],highlightedDates:g=[],slots:q,weekdayLabels:R,firstDayOfWeek:V=0,size:H="md",variant:M="default",icon:O})=>{const[i,n]=a.useState(!1),[E,L]=a.useState(c??new Date),[x,Y]=a.useState({top:0,left:0}),k=a.useRef(null),d=a.useRef(null),w=Q.useBearStyles(v,h);a.useEffect(()=>{if(i&&d.current){const e=d.current.getBoundingClientRect(),l=8,s=360,G=window.innerHeight-e.bottom<s&&e.top>s;Y({top:G?e.top-s-l:e.bottom+l,left:e.left})}},[i]),a.useEffect(()=>{const e=l=>{var u,f;const s=l.target;(u=k.current)!=null&&u.contains(s)||(f=s.closest)!=null&&f.call(s,"[data-bear-datepicker-calendar]")||n(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);const T=a.useCallback(e=>{t==null||t(e),n(!1)},[t]),A=a.useCallback(()=>{t==null||t(null),n(!1)},[t]),I=a.useCallback(e=>{L(e)},[]),W={sm:"bear-py-1.5 bear-px-3 bear-text-sm",md:"bear-py-2 bear-px-4",lg:"bear-py-2.5 bear-px-5 bear-text-lg"},F={default:"bear-bg-white dark:bear-bg-zinc-800 bear-border-zinc-300 dark:bear-border-zinc-600",filled:"bear-bg-zinc-100 dark:bear-bg-zinc-700 bear-border-transparent",outline:"bear-bg-transparent bear-border-zinc-400 dark:bear-border-zinc-500"};return r.jsxs("div",{ref:k,className:D.cn("Bear-DatePicker bear-relative",_),style:Object.keys(w).length?w:void 0,children:[p&&r.jsx("label",{className:"Bear-DatePicker__label bear-block bear-text-sm bear-font-medium bear-text-zinc-700 dark:bear-text-zinc-300 bear-mb-1.5",children:p}),r.jsxs("button",{ref:d,type:"button",onClick:()=>!b&&n(!i),disabled:b,className:D.cn("Bear-DatePicker__trigger bear-w-full bear-flex bear-items-center bear-justify-between bear-rounded-lg bear-border bear-text-left bear-transition-colors",W[H],F[M],o?"bear-border-red-500":"focus:bear-border-pink-500",b&&"bear-opacity-50 bear-cursor-not-allowed",c?"bear-text-zinc-900 dark:bear-text-white":"bear-text-zinc-500"),children:[r.jsx("span",{className:"Bear-DatePicker__value",children:c?U.formatDate(c,B):z}),r.jsx("span",{className:"Bear-DatePicker__icon",children:O??r.jsx("svg",{className:"bear-w-5 bear-h-5 bear-text-zinc-400 bear-shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:r.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"})})})]}),o&&r.jsx("p",{className:"Bear-DatePicker__error bear-mt-1 bear-text-xs bear-text-red-400",children:o}),m&&!o&&r.jsx("p",{className:"Bear-DatePicker__helper bear-mt-1 bear-text-xs bear-text-zinc-500",children:m}),i&&typeof document<"u"&&J.createPortal(r.jsx("div",{"data-bear-datepicker-calendar":!0,className:"Bear-DatePicker__dropdown bear-fixed bear-z-[9999]",style:{top:x.top,left:x.left},children:r.jsx(K.Calendar,{viewDate:E,onViewChange:I,value:c??null,onSelect:T,minDate:y,maxDate:j,disabledDates:N,highlightedDates:g,slots:q,weekdayLabels:R,firstDayOfWeek:V,showWeekNumbers:S,clearable:P,onClear:A,showTodayButton:!0,onToday:()=>{t==null||t(new Date),n(!1)}})}),document.body)]})};exports.DatePicker=X;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),a=require("react"),J=require("react-dom"),K=require("../Calendar/Calendar.cjs"),D=require("../../utils/cn.cjs"),Q=require("../../hooks/useBearStyles.cjs");require("../../hooks/useBearComponent/useBearComponent.cjs");const U=require("./DatePicker.utils.cjs"),X=({value:c,onChange:t,minDate:y,maxDate:j,disabled:b=!1,placeholder:z="Select date",label:p,error:o,helperText:m,format:B="MM/DD/YYYY",clearable:P=!0,className:_,style:h,bis:v,showWeekNumbers:S=!1,disabledDates:N=[],highlightedDates:g=[],slots:q,weekdayLabels:R,firstDayOfWeek:V=0,size:H="md",variant:M="default",icon:O})=>{const[i,n]=a.useState(!1),[E,L]=a.useState(c??new Date),[x,Y]=a.useState({top:0,left:0}),k=a.useRef(null),d=a.useRef(null),w=Q.useBearStyles(v,h);a.useEffect(()=>{if(i&&d.current){const e=d.current.getBoundingClientRect(),l=8,s=360,G=window.innerHeight-e.bottom<s&&e.top>s;Y({top:G?e.top-s-l:e.bottom+l,left:e.left})}},[i]),a.useEffect(()=>{const e=l=>{var u,f;const s=l.target;(u=k.current)!=null&&u.contains(s)||(f=s.closest)!=null&&f.call(s,"[data-bear-datepicker-calendar]")||n(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]);const T=a.useCallback(e=>{t==null||t(e),n(!1)},[t]),A=a.useCallback(()=>{t==null||t(null),n(!1)},[t]),I=a.useCallback(e=>{L(e)},[]),W={sm:"bear-py-1.5 bear-px-3 bear-text-sm",md:"bear-py-2 bear-px-4",lg:"bear-py-2.5 bear-px-5 bear-text-lg"},F={default:"bear-bg-white dark:bear-bg-zinc-800 bear-border-zinc-300 dark:bear-border-zinc-600",filled:"bear-bg-zinc-100 dark:bear-bg-zinc-700 bear-border-transparent",outline:"bear-bg-transparent bear-border-zinc-400 dark:bear-border-zinc-500"};return r.jsxs("div",{ref:k,className:D.cn("Bear-DatePicker bear-relative",_),style:Object.keys(w).length?w:void 0,children:[p&&r.jsx("label",{className:"Bear-DatePicker__label bear-block bear-text-sm bear-font-medium bear-text-zinc-700 dark:bear-text-zinc-300 bear-mb-1.5",children:p}),r.jsxs("button",{ref:d,type:"button",onClick:()=>!b&&n(!i),disabled:b,className:D.cn("Bear-DatePicker__trigger bear-w-full bear-flex bear-items-center bear-justify-between bear-rounded-lg bear-border bear-text-left bear-transition-colors",W[H],F[M],o?"bear-border-red-500":"focus:bear-border-pink-500",b&&"bear-opacity-50 bear-cursor-not-allowed",c?"bear-text-zinc-900 dark:bear-text-white":"bear-text-zinc-500"),children:[r.jsx("span",{className:"Bear-DatePicker__value",children:c?U.formatDate(c,B):z}),r.jsx("span",{className:"Bear-DatePicker__icon",children:O??r.jsx("svg",{className:"bear-w-5 bear-h-5 bear-text-zinc-400 bear-shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:r.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"})})})]}),o&&r.jsx("p",{className:"Bear-DatePicker__error bear-mt-1 bear-text-xs bear-text-red-400",children:o}),m&&!o&&r.jsx("p",{className:"Bear-DatePicker__helper bear-mt-1 bear-text-xs bear-text-zinc-500",children:m}),i&&typeof document<"u"&&J.createPortal(r.jsx("div",{"data-bear-datepicker-calendar":!0,className:"Bear-DatePicker__dropdown bear-fixed bear-z-[9999]",style:{top:x.top,left:x.left},children:r.jsx(K.Calendar,{viewDate:E,onViewChange:I,value:c??null,onSelect:T,minDate:y,maxDate:j,disabledDates:N,highlightedDates:g,slots:q,weekdayLabels:R,firstDayOfWeek:V,showWeekNumbers:S,clearable:P,onClear:A,showTodayButton:!0,onToday:()=>{t==null||t(new Date),n(!1)}})}),document.body)]})};exports.DatePicker=X;
@@ -4,8 +4,9 @@ import { createPortal as X } from "react-dom";
4
4
  import { Calendar as Z } from "../Calendar/Calendar.js";
5
5
  import { cn as B } from "../../utils/cn.js";
6
6
  import { useBearStyles as $ } from "../../hooks/useBearStyles.js";
7
+ import "../../hooks/useBearComponent/useBearComponent.js";
7
8
  import { formatDate as C } from "./DatePicker.utils.js";
8
- const ce = ({
9
+ const ie = ({
9
10
  value: o,
10
11
  onChange: t,
11
12
  minDate: _,
@@ -123,5 +124,5 @@ const ce = ({
123
124
  ] });
124
125
  };
125
126
  export {
126
- ce as DatePicker
127
+ ie as DatePicker
127
128
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),y=require("react"),b=require("../../utils/cn.cjs"),T=require("../../context/BearProvider.cjs"),a=require("../Typography/Typography.cjs"),f=require("./DiffViewer.const.cjs"),h=require("./DiffViewer.utils.cjs"),q=({oldValue:c,newValue:l,viewMode:v="split",showLineNumbers:u=!0,oldTitle:N="Original",newTitle:j="Modified",showStats:x=!0,className:g,testId:m})=>{const{mode:w}=T.useBear(),p=w==="dark",d=y.useMemo(()=>h.computeDiff(c,l),[c,l]),i=y.useMemo(()=>h.computeStats(d),[d]),t=r=>u?e.jsx("span",{className:"select-none text-gray-400 dark:text-gray-600 text-right pr-3",style:{minWidth:f.LINE_NUMBER_WIDTH},children:r??""}):null,n=(r,s)=>{const o=f.DIFF_COLORS[s],D=s==="add"?"+":s==="remove"?"-":" ";return e.jsxs("div",{className:"flex font-mono text-sm",style:{backgroundColor:o.bg,borderLeft:`3px solid ${o.border}`},children:[e.jsx("span",{className:"px-2 select-none font-bold",style:{color:o.text},children:D}),e.jsx("span",{className:"flex-1 whitespace-pre",children:r})]})};if(v==="unified")return e.jsxs("div",{className:b.cn("Bear-DiffViewer","rounded-lg overflow-hidden border",p?"bg-gray-900 border-gray-700":"bg-white border-gray-200",g),"data-testid":m,children:[x&&e.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 border-b border-gray-200 dark:border-gray-700",children:[e.jsxs(a.Typography,{variant:"caption",className:"text-green-600",children:["+",i.additions," additions"]}),e.jsxs(a.Typography,{variant:"caption",className:"text-red-600",children:["-",i.deletions," deletions"]})]}),e.jsx("div",{className:"overflow-x-auto",children:d.map((r,s)=>e.jsxs("div",{className:"flex",children:[t(r.oldLineNumber||r.newLineNumber),e.jsx("div",{className:"flex-1",children:n(r.content,r.type)})]},s))})]});const k=d.filter(r=>r.type!=="add"),L=d.filter(r=>r.type!=="remove");return e.jsxs("div",{className:b.cn("Bear-DiffViewer","rounded-lg overflow-hidden border",p?"bg-gray-900 border-gray-700":"bg-white border-gray-200",g),"data-testid":m,children:[x&&e.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 border-b border-gray-200 dark:border-gray-700",children:[e.jsxs(a.Typography,{variant:"caption",className:"text-green-600",children:["+",i.additions," additions"]}),e.jsxs(a.Typography,{variant:"caption",className:"text-red-600",children:["-",i.deletions," deletions"]})]}),e.jsxs("div",{className:"grid grid-cols-2 divide-x divide-gray-200 dark:divide-gray-700",children:[e.jsxs("div",{children:[e.jsx("div",{className:"px-3 py-2 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700",children:e.jsx(a.Typography,{variant:"caption",className:"font-semibold",children:N})}),e.jsx("div",{className:"overflow-x-auto",children:k.map((r,s)=>e.jsxs("div",{className:"flex",children:[t(r.oldLineNumber),e.jsx("div",{className:"flex-1",children:n(r.content,r.type==="remove"?"remove":"context")})]},s))})]}),e.jsxs("div",{children:[e.jsx("div",{className:"px-3 py-2 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700",children:e.jsx(a.Typography,{variant:"caption",className:"font-semibold",children:j})}),e.jsx("div",{className:"overflow-x-auto",children:L.map((r,s)=>e.jsxs("div",{className:"flex",children:[t(r.newLineNumber),e.jsx("div",{className:"flex-1",children:n(r.content,r.type==="add"?"add":"context")})]},s))})]})]})]})};exports.DiffViewer=q;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={add:{bg:"rgba(34, 197, 94, 0.15)",border:"rgba(34, 197, 94, 0.4)",text:"#22c55e"},remove:{bg:"rgba(239, 68, 68, 0.15)",border:"rgba(239, 68, 68, 0.4)",text:"#ef4444"},context:{bg:"transparent",border:"transparent",text:"inherit"}},t=50;exports.DIFF_COLORS=e;exports.LINE_NUMBER_WIDTH=t;
@@ -0,0 +1,18 @@
1
+ export declare const DIFF_COLORS: {
2
+ readonly add: {
3
+ readonly bg: "rgba(34, 197, 94, 0.15)";
4
+ readonly border: "rgba(34, 197, 94, 0.4)";
5
+ readonly text: "#22c55e";
6
+ };
7
+ readonly remove: {
8
+ readonly bg: "rgba(239, 68, 68, 0.15)";
9
+ readonly border: "rgba(239, 68, 68, 0.4)";
10
+ readonly text: "#ef4444";
11
+ };
12
+ readonly context: {
13
+ readonly bg: "transparent";
14
+ readonly border: "transparent";
15
+ readonly text: "inherit";
16
+ };
17
+ };
18
+ export declare const LINE_NUMBER_WIDTH = 50;
@@ -0,0 +1,21 @@
1
+ const r = {
2
+ add: {
3
+ bg: "rgba(34, 197, 94, 0.15)",
4
+ border: "rgba(34, 197, 94, 0.4)",
5
+ text: "#22c55e"
6
+ },
7
+ remove: {
8
+ bg: "rgba(239, 68, 68, 0.15)",
9
+ border: "rgba(239, 68, 68, 0.4)",
10
+ text: "#ef4444"
11
+ },
12
+ context: {
13
+ bg: "transparent",
14
+ border: "transparent",
15
+ text: "inherit"
16
+ }
17
+ }, t = 50;
18
+ export {
19
+ r as DIFF_COLORS,
20
+ t as LINE_NUMBER_WIDTH
21
+ };
@@ -0,0 +1,18 @@
1
+ import { FC } from 'react';
2
+ import { DiffViewerProps } from './DiffViewer.types';
3
+ /**
4
+ * DiffViewer - Compare and visualize text/code differences
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * <DiffViewer
9
+ * oldValue="const x = 1;"
10
+ * newValue="const x = 2;"
11
+ * viewMode="split"
12
+ * showLineNumbers
13
+ * showStats
14
+ * />
15
+ * ```
16
+ */
17
+ export declare const DiffViewer: FC<DiffViewerProps>;
18
+ export default DiffViewer;
@@ -0,0 +1,127 @@
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
18
+ }) => {
19
+ const { mode: w } = B(), b = w === "dark", o = v(() => _(l, m), [l, m]), t = v(() => j(o), [o]), n = (e) => y ? /* @__PURE__ */ d(
20
+ "span",
21
+ {
22
+ className: "select-none text-gray-400 dark:text-gray-600 text-right pr-3",
23
+ style: { minWidth: M },
24
+ children: e ?? ""
25
+ }
26
+ ) : null, s = (e, a) => {
27
+ const c = O[a], D = a === "add" ? "+" : a === "remove" ? "-" : " ";
28
+ return /* @__PURE__ */ r(
29
+ "div",
30
+ {
31
+ className: "flex font-mono text-sm",
32
+ style: {
33
+ backgroundColor: c.bg,
34
+ borderLeft: `3px solid ${c.border}`
35
+ },
36
+ children: [
37
+ /* @__PURE__ */ d(
38
+ "span",
39
+ {
40
+ className: "px-2 select-none font-bold",
41
+ style: { color: c.text },
42
+ children: D
43
+ }
44
+ ),
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)) })
78
+ ]
79
+ }
80
+ );
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
+ }
123
+ );
124
+ };
125
+ export {
126
+ H as DiffViewer
127
+ };
@@ -0,0 +1,40 @@
1
+ /**
2
+ * DiffViewer component types
3
+ */
4
+ export type DiffViewMode = 'split' | 'unified';
5
+ export type DiffLineType = 'add' | 'remove' | 'context';
6
+ export interface DiffViewerProps {
7
+ /** Original text (left side) */
8
+ oldValue: string;
9
+ /** New text (right side) */
10
+ newValue: string;
11
+ /** View mode (default: 'split') */
12
+ viewMode?: DiffViewMode;
13
+ /** Show line numbers */
14
+ showLineNumbers?: boolean;
15
+ /** Highlight syntax (for code) */
16
+ syntaxHighlight?: boolean;
17
+ /** Language for syntax highlighting */
18
+ language?: string;
19
+ /** Old value title */
20
+ oldTitle?: string;
21
+ /** New value title */
22
+ newTitle?: string;
23
+ /** Show diff statistics */
24
+ showStats?: boolean;
25
+ /** Custom class name */
26
+ className?: string;
27
+ /** Test ID */
28
+ testId?: string;
29
+ }
30
+ export interface DiffLine {
31
+ type: DiffLineType;
32
+ oldLineNumber?: number;
33
+ newLineNumber?: number;
34
+ content: string;
35
+ }
36
+ export interface DiffStats {
37
+ additions: number;
38
+ deletions: number;
39
+ unchanged: number;
40
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function m(d,s){const o=d.split(`
2
+ `),u=s.split(`
3
+ `),p=o.length,f=u.length,l=Array(p+1).fill(null).map(()=>Array(f+1).fill(0));for(let t=1;t<=p;t++)for(let i=1;i<=f;i++)o[t-1]===u[i-1]?l[t][i]=l[t-1][i-1]+1:l[t][i]=Math.max(l[t-1][i],l[t][i-1]);const c=[];let e=p,n=f;const r=[];for(;e>0||n>0;)e>0&&n>0&&o[e-1]===u[n-1]?(r.push({type:"context",oldLineNumber:e,newLineNumber:n,content:o[e-1]}),e--,n--):n>0&&(e===0||l[e][n-1]>=l[e-1][n])?(r.push({type:"add",newLineNumber:n,content:u[n-1]}),n--):e>0&&(r.push({type:"remove",oldLineNumber:e,content:o[e-1]}),e--);for(let t=r.length-1;t>=0;t--)c.push(r[t]);return c}function a(d){return d.reduce((s,o)=>(o.type==="add"?s.additions++:o.type==="remove"?s.deletions++:s.unchanged++,s),{additions:0,deletions:0,unchanged:0})}exports.computeDiff=m;exports.computeStats=a;
@@ -0,0 +1,9 @@
1
+ import { DiffLine, DiffStats } from './DiffViewer.types';
2
+ /**
3
+ * Simple diff algorithm (Myers-like LCS based)
4
+ */
5
+ export declare function computeDiff(oldText: string, newText: string): DiffLine[];
6
+ /**
7
+ * Calculate diff statistics
8
+ */
9
+ export declare function computeStats(diff: DiffLine[]): DiffStats;
@@ -0,0 +1,39 @@
1
+ function m(d, s) {
2
+ const o = d.split(`
3
+ `), u = s.split(`
4
+ `), p = o.length, f = u.length, l = Array(p + 1).fill(null).map(() => Array(f + 1).fill(0));
5
+ for (let t = 1; t <= p; t++)
6
+ for (let i = 1; i <= f; i++)
7
+ o[t - 1] === u[i - 1] ? l[t][i] = l[t - 1][i - 1] + 1 : l[t][i] = Math.max(l[t - 1][i], l[t][i - 1]);
8
+ const c = [];
9
+ let e = p, n = f;
10
+ const r = [];
11
+ for (; e > 0 || n > 0; )
12
+ e > 0 && n > 0 && o[e - 1] === u[n - 1] ? (r.push({
13
+ type: "context",
14
+ oldLineNumber: e,
15
+ newLineNumber: n,
16
+ content: o[e - 1]
17
+ }), e--, n--) : n > 0 && (e === 0 || l[e][n - 1] >= l[e - 1][n]) ? (r.push({
18
+ type: "add",
19
+ newLineNumber: n,
20
+ content: u[n - 1]
21
+ }), n--) : e > 0 && (r.push({
22
+ type: "remove",
23
+ oldLineNumber: e,
24
+ content: o[e - 1]
25
+ }), e--);
26
+ for (let t = r.length - 1; t >= 0; t--)
27
+ c.push(r[t]);
28
+ return c;
29
+ }
30
+ function h(d) {
31
+ return d.reduce(
32
+ (s, o) => (o.type === "add" ? s.additions++ : o.type === "remove" ? s.deletions++ : s.unchanged++, s),
33
+ { additions: 0, deletions: 0, unchanged: 0 }
34
+ );
35
+ }
36
+ export {
37
+ m as computeDiff,
38
+ h as computeStats
39
+ };
@@ -0,0 +1,2 @@
1
+ export { DiffViewer } from './DiffViewer';
2
+ export type { DiffViewerProps, DiffViewMode, DiffLine, DiffStats } from './DiffViewer.types';
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),a=require("react"),N=require("react-dom"),y=require("../../utils/cn.cjs"),k=require("../Icon/index.cjs"),c=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:l,onClose:o,title:s,children:x,side:e="right",size:g="md",showCloseButton:d=!0,closeOnBackdrop:w=!0,closeOnEscape:u=!0,className:p})=>{const[t,m]=a.useState(l),[f,n]=a.useState(!1),[v,h]=a.useState(!1);a.useEffect(()=>{if(l){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)},c);return()=>clearTimeout(b)}},[l,t]);const i=a.useCallback(b=>{u&&b.key==="Escape"&&o()},[u,o]);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 j=r.jsxs("div",{className:"bear-fixed bear-inset-0 bear-z-50",children:[r.jsx("div",{className:y.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:`${c}ms`},onClick:w?o:void 0,"aria-hidden":"true"}),r.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":s?"drawer-title":void 0,className:y.cn("bear-absolute bear-bg-gray-900 bear-shadow-2xl","bear-border-gray-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:`${c}ms`},children:[(s||d)&&r.jsxs("div",{className:"bear-flex bear-items-center bear-justify-between bear-px-4 bear-py-3 bear-border-b bear-border-gray-700",children:[s&&r.jsx("h2",{id:"drawer-title",className:"bear-text-lg bear-font-semibold bear-text-white",children:s}),d&&r.jsx("button",{onClick:o,className:"bear-p-1 bear-rounded-lg bear-text-gray-400 hover:bear-text-white hover:bear-bg-gray-700 bear-transition-colors","aria-label":"Close drawer",children:r.jsx(k.XIcon,{className:"bear-w-5 bear-h-5"})})]}),r.jsx("div",{className:"bear-flex-1 bear-overflow-y-auto bear-p-4 bear-text-gray-300",children:x})]})]});return N.createPortal(j,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"),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,9 +1,9 @@
1
1
  import { jsxs as i, jsx as t } from "react/jsx-runtime";
2
- import { useState as m, useEffect as g, useCallback as A } from "react";
2
+ import { useState as d, useEffect as p, useCallback as A } from "react";
3
3
  import { createPortal as E } from "react-dom";
4
- import { cn as p } from "../../utils/cn.js";
4
+ import { cn as x } from "../../utils/cn.js";
5
5
  import { XIcon as I } from "../Icon/index.js";
6
- const d = 300, D = {
6
+ const m = 300, D = {
7
7
  left: {
8
8
  sm: "bear-w-64",
9
9
  md: "bear-w-80",
@@ -47,47 +47,47 @@ const d = 300, D = {
47
47
  isOpen: l,
48
48
  onClose: b,
49
49
  title: o,
50
- children: w,
50
+ children: g,
51
51
  side: e = "right",
52
- size: x = "md",
53
- showCloseButton: c = !0,
52
+ size: y = "md",
53
+ showCloseButton: u = !0,
54
54
  closeOnBackdrop: v = !0,
55
- closeOnEscape: f = !0,
56
- className: N
55
+ closeOnEscape: c = !0,
56
+ className: k
57
57
  }) => {
58
- const [r, u] = m(l), [h, s] = m(!1), [k, y] = m(!1);
59
- g(() => {
58
+ const [r, f] = d(l), [h, n] = d(!1), [N, w] = d(!1);
59
+ p(() => {
60
60
  if (l) {
61
- u(!0), s(!1);
62
- const a = requestAnimationFrame(() => y(!0));
61
+ f(!0), n(!1);
62
+ const a = requestAnimationFrame(() => w(!0));
63
63
  return () => cancelAnimationFrame(a);
64
64
  }
65
65
  if (r) {
66
- y(!1), s(!0);
66
+ w(!1), n(!0);
67
67
  const a = setTimeout(() => {
68
- u(!1), s(!1);
69
- }, d);
68
+ f(!1), n(!1);
69
+ }, m);
70
70
  return () => clearTimeout(a);
71
71
  }
72
72
  }, [l, r]);
73
- const n = A(
73
+ const s = A(
74
74
  (a) => {
75
- f && a.key === "Escape" && b();
75
+ c && a.key === "Escape" && b();
76
76
  },
77
- [f, b]
77
+ [c, b]
78
78
  );
79
- if (g(() => (r && (document.addEventListener("keydown", n), document.body.style.overflow = "hidden"), () => {
80
- document.removeEventListener("keydown", n), document.body.style.overflow = "";
81
- }), [r, n]), !r) return null;
79
+ if (p(() => (r && (document.addEventListener("keydown", s), document.body.style.overflow = "hidden"), () => {
80
+ document.removeEventListener("keydown", s), document.body.style.overflow = "";
81
+ }), [r, s]), !r) return null;
82
82
  const C = /* @__PURE__ */ i("div", { className: "bear-fixed bear-inset-0 bear-z-50", children: [
83
83
  /* @__PURE__ */ t(
84
84
  "div",
85
85
  {
86
- className: p(
86
+ className: x(
87
87
  "bear-absolute bear-inset-0 bear-bg-black/60 bear-backdrop-blur-sm bear-transition-opacity",
88
88
  h ? "bear-opacity-0" : "bear-opacity-100"
89
89
  ),
90
- style: { transitionDuration: `${d}ms` },
90
+ style: { transitionDuration: `${m}ms` },
91
91
  onClick: v ? b : void 0,
92
92
  "aria-hidden": "true"
93
93
  }
@@ -98,41 +98,41 @@ const d = 300, D = {
98
98
  role: "dialog",
99
99
  "aria-modal": "true",
100
100
  "aria-labelledby": o ? "drawer-title" : void 0,
101
- className: p(
102
- "bear-absolute bear-bg-gray-900 bear-shadow-2xl",
103
- "bear-border-gray-700 bear-overflow-hidden",
101
+ className: x(
102
+ "bear-absolute bear-bg-white dark:bear-bg-neutral-900 bear-shadow-2xl",
103
+ "bear-border-neutral-200 dark:bear-border-neutral-700 bear-overflow-hidden",
104
104
  "bear-transform bear-transition-transform",
105
105
  e === "left" && "bear-border-r",
106
106
  e === "right" && "bear-border-l",
107
107
  e === "top" && "bear-border-b",
108
108
  e === "bottom" && "bear-border-t",
109
109
  M[e],
110
- D[e][x],
111
- k && !h ? j[e] : T[e],
112
- N
110
+ D[e][y],
111
+ N && !h ? j[e] : T[e],
112
+ k
113
113
  ),
114
- style: { transitionDuration: `${d}ms` },
114
+ style: { transitionDuration: `${m}ms` },
115
115
  children: [
116
- (o || c) && /* @__PURE__ */ i("div", { className: "bear-flex bear-items-center bear-justify-between bear-px-4 bear-py-3 bear-border-b bear-border-gray-700", 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
117
  o && /* @__PURE__ */ t(
118
118
  "h2",
119
119
  {
120
120
  id: "drawer-title",
121
- className: "bear-text-lg bear-font-semibold bear-text-white",
121
+ className: "bear-text-lg bear-font-semibold bear-text-neutral-900 dark:bear-text-white",
122
122
  children: o
123
123
  }
124
124
  ),
125
- c && /* @__PURE__ */ t(
125
+ u && /* @__PURE__ */ t(
126
126
  "button",
127
127
  {
128
128
  onClick: b,
129
- className: "bear-p-1 bear-rounded-lg bear-text-gray-400 hover:bear-text-white hover:bear-bg-gray-700 bear-transition-colors",
129
+ 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",
130
130
  "aria-label": "Close drawer",
131
131
  children: /* @__PURE__ */ t(I, { className: "bear-w-5 bear-h-5" })
132
132
  }
133
133
  )
134
134
  ] }),
135
- /* @__PURE__ */ t("div", { className: "bear-flex-1 bear-overflow-y-auto bear-p-4 bear-text-gray-300", children: w })
135
+ /* @__PURE__ */ t("div", { className: "bear-flex-1 bear-overflow-y-auto bear-p-4 bear-text-neutral-700 dark:bear-text-neutral-300", children: g })
136
136
  ]
137
137
  }
138
138
  )
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),x=require("react"),t=require("../../utils/cn.cjs"),s=require("./EmojiPicker.const.cjs"),u={sm:"bear-w-8 bear-h-8 bear-text-lg",md:"bear-w-10 bear-h-10 bear-text-xl",lg:"bear-w-12 bear-h-12 bear-text-2xl"},i=Object.keys(s.BEAR_EMOJIS),y=({onSelect:a,size:n="md",maxHeight:b=280,className:c})=>{const[o,d]=x.useState(i[0]),g=s.BEAR_EMOJIS[o]??[];return r.jsxs("div",{className:t.cn("Bear-EmojiPicker bear-flex bear-flex-col bear-rounded-lg bear-bg-white dark:bear-bg-zinc-800 bear-border bear-border-gray-200 dark:bear-border-zinc-700 bear-shadow-lg bear-overflow-hidden",c),children:[r.jsx("div",{className:"bear-flex bear-gap-1 bear-p-2 bear-border-b bear-border-gray-200 dark:bear-border-zinc-700 bear-overflow-x-auto",children:i.map(e=>r.jsx("button",{type:"button",onClick:()=>d(e),className:t.cn("bear-px-3 bear-py-1.5 bear-rounded-md bear-text-sm bear-font-medium bear-transition-colors bear-shrink-0",o===e?"bear-bg-gray-200 dark:bear-bg-zinc-700 bear-text-gray-900 dark:bear-text-white":"bear-text-gray-600 dark:bear-text-zinc-400 hover:bear-text-gray-900 dark:hover:bear-text-white hover:bear-bg-gray-100 dark:hover:bear-bg-zinc-700/50"),children:e},e))}),r.jsx("div",{className:"bear-p-2 bear-overflow-y-auto bear-grid bear-grid-cols-8 bear-gap-1 bear-bg-gray-50 dark:bear-bg-zinc-900/50",style:{maxHeight:typeof b=="number"?`${b}px`:b},children:g.map((e,l)=>r.jsx("button",{type:"button",onClick:()=>a==null?void 0:a(e),className:t.cn("bear-flex bear-items-center bear-justify-center bear-rounded-lg bear-transition-colors hover:bear-bg-gray-200 dark:hover:bear-bg-zinc-700",u[n]),children:e},`${e}-${l}`))})]})};exports.EmojiPicker=y;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={Smileys:["๐Ÿ˜€","๐Ÿ˜ƒ","๐Ÿ˜„","๐Ÿ˜","๐Ÿ˜Š","๐Ÿ™‚","๐Ÿ˜‰","๐Ÿ˜","๐Ÿฅฐ","๐Ÿ˜˜","๐Ÿ˜—","๐Ÿ˜™","๐Ÿ˜š","๐Ÿ˜‹","๐Ÿ˜›","๐Ÿ˜œ","๐Ÿคช","๐Ÿ˜","๐Ÿค‘","๐Ÿค—","๐Ÿคญ","๐Ÿคซ","๐Ÿค”","๐Ÿค","๐Ÿคจ","๐Ÿ˜","๐Ÿ˜‘","๐Ÿ˜ถ","๐Ÿ˜","๐Ÿ˜’"],Gestures:["๐Ÿ‘","๐Ÿ‘Ž","๐Ÿ‘Œ","โœŒ๏ธ","๐Ÿคž","๐ŸคŸ","๐Ÿค˜","๐Ÿค™","๐Ÿ‘ˆ","๐Ÿ‘‰","๐Ÿ‘†","๐Ÿ‘‡","โ˜๏ธ","โœ‹","๐Ÿคš","๐Ÿ–๏ธ","๐Ÿ––","๐Ÿ‘‹","๐Ÿค","๐Ÿ™Œ","๐Ÿ‘","๐Ÿ™"],Symbols:["โค๏ธ","๐Ÿงก","๐Ÿ’›","๐Ÿ’š","๐Ÿ’™","๐Ÿ’œ","๐Ÿ–ค","๐Ÿค","๐ŸคŽ","๐Ÿ’”","โฃ๏ธ","๐Ÿ’•","๐Ÿ’ž","๐Ÿ’“","๐Ÿ’—","๐Ÿ’–","๐Ÿ’˜","๐Ÿ’","โœจ","โญ","๐ŸŒŸ","๐Ÿ’ซ","๐Ÿ”ฅ","๐Ÿ’ฏ","โœ…","โŒ","โš ๏ธ","๐Ÿ“Œ"],Objects:["๐Ÿ“","๐Ÿ“‹","๐Ÿ“","๐Ÿ“‚","๐Ÿ“…","๐Ÿ“†","๐Ÿ“Ž","๐Ÿ–‡๏ธ","๐Ÿ“Œ","โœ๏ธ","๐Ÿ–Š๏ธ","๐Ÿ–๏ธ","๐Ÿ“ง","๐Ÿ“ฌ","๐Ÿ“ญ","๐Ÿ’ก","๐Ÿ””","๐Ÿ”•"],Nature:["๐ŸŒธ","๐ŸŒบ","๐ŸŒป","๐ŸŒผ","๐ŸŒท","๐ŸŒน","๐Ÿฅ€","๐Ÿชท","๐ŸŒฑ","๐Ÿชด","๐ŸŒฒ","๐ŸŒณ","๐Ÿ€","๐Ÿ","๐Ÿ‚","๐Ÿƒ","โ˜€๏ธ","๐ŸŒค๏ธ","โ›…","๐ŸŒฅ๏ธ","๐ŸŒˆ","โญ","๐ŸŒ™"]};exports.BEAR_EMOJIS=e;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Curated Bear emoji set - commonly used emojis for chat, comments, reactions.
3
+ * Unicode emoji characters.
4
+ */
5
+ export declare const BEAR_EMOJIS: Record<string, string[]>;
@@ -0,0 +1,10 @@
1
+ const e = {
2
+ Smileys: ["๐Ÿ˜€", "๐Ÿ˜ƒ", "๐Ÿ˜„", "๐Ÿ˜", "๐Ÿ˜Š", "๐Ÿ™‚", "๐Ÿ˜‰", "๐Ÿ˜", "๐Ÿฅฐ", "๐Ÿ˜˜", "๐Ÿ˜—", "๐Ÿ˜™", "๐Ÿ˜š", "๐Ÿ˜‹", "๐Ÿ˜›", "๐Ÿ˜œ", "๐Ÿคช", "๐Ÿ˜", "๐Ÿค‘", "๐Ÿค—", "๐Ÿคญ", "๐Ÿคซ", "๐Ÿค”", "๐Ÿค", "๐Ÿคจ", "๐Ÿ˜", "๐Ÿ˜‘", "๐Ÿ˜ถ", "๐Ÿ˜", "๐Ÿ˜’"],
3
+ Gestures: ["๐Ÿ‘", "๐Ÿ‘Ž", "๐Ÿ‘Œ", "โœŒ๏ธ", "๐Ÿคž", "๐ŸคŸ", "๐Ÿค˜", "๐Ÿค™", "๐Ÿ‘ˆ", "๐Ÿ‘‰", "๐Ÿ‘†", "๐Ÿ‘‡", "โ˜๏ธ", "โœ‹", "๐Ÿคš", "๐Ÿ–๏ธ", "๐Ÿ––", "๐Ÿ‘‹", "๐Ÿค", "๐Ÿ™Œ", "๐Ÿ‘", "๐Ÿ™"],
4
+ Symbols: ["โค๏ธ", "๐Ÿงก", "๐Ÿ’›", "๐Ÿ’š", "๐Ÿ’™", "๐Ÿ’œ", "๐Ÿ–ค", "๐Ÿค", "๐ŸคŽ", "๐Ÿ’”", "โฃ๏ธ", "๐Ÿ’•", "๐Ÿ’ž", "๐Ÿ’“", "๐Ÿ’—", "๐Ÿ’–", "๐Ÿ’˜", "๐Ÿ’", "โœจ", "โญ", "๐ŸŒŸ", "๐Ÿ’ซ", "๐Ÿ”ฅ", "๐Ÿ’ฏ", "โœ…", "โŒ", "โš ๏ธ", "๐Ÿ“Œ"],
5
+ Objects: ["๐Ÿ“", "๐Ÿ“‹", "๐Ÿ“", "๐Ÿ“‚", "๐Ÿ“…", "๐Ÿ“†", "๐Ÿ“Ž", "๐Ÿ–‡๏ธ", "๐Ÿ“Œ", "โœ๏ธ", "๐Ÿ–Š๏ธ", "๐Ÿ–๏ธ", "๐Ÿ“ง", "๐Ÿ“ฌ", "๐Ÿ“ญ", "๐Ÿ’ก", "๐Ÿ””", "๐Ÿ”•"],
6
+ Nature: ["๐ŸŒธ", "๐ŸŒบ", "๐ŸŒป", "๐ŸŒผ", "๐ŸŒท", "๐ŸŒน", "๐Ÿฅ€", "๐Ÿชท", "๐ŸŒฑ", "๐Ÿชด", "๐ŸŒฒ", "๐ŸŒณ", "๐Ÿ€", "๐Ÿ", "๐Ÿ‚", "๐Ÿƒ", "โ˜€๏ธ", "๐ŸŒค๏ธ", "โ›…", "๐ŸŒฅ๏ธ", "๐ŸŒˆ", "โญ", "๐ŸŒ™"]
7
+ };
8
+ export {
9
+ e as BEAR_EMOJIS
10
+ };
@@ -0,0 +1,3 @@
1
+ import { FC } from 'react';
2
+ import { EmojiPickerProps } from './EmojiPicker.types';
3
+ export declare const EmojiPicker: FC<EmojiPickerProps>;