@forgedevstack/bear 1.0.7 → 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 (169) 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 -1
  19. package/dist/components/BottomSheet/BottomSheet.js +39 -38
  20. package/dist/components/Button/Button.cjs +1 -1
  21. package/dist/components/Button/Button.constants.cjs +38 -48
  22. package/dist/components/Button/Button.constants.d.ts +22 -3
  23. package/dist/components/Button/Button.constants.js +51 -50
  24. package/dist/components/Button/Button.d.ts +14 -7
  25. package/dist/components/Button/Button.js +123 -45
  26. package/dist/components/Button/Button.types.d.ts +22 -4
  27. package/dist/components/Calendar/Calendar.cjs +1 -1
  28. package/dist/components/Calendar/Calendar.js +3 -2
  29. package/dist/components/Card/Card.const.d.ts +2 -2
  30. package/dist/components/Card/Card.types.d.ts +2 -2
  31. package/dist/components/Chat/Chat.cjs +1 -0
  32. package/dist/components/Chat/Chat.const.cjs +1 -0
  33. package/dist/components/Chat/Chat.const.d.ts +26 -0
  34. package/dist/components/Chat/Chat.const.js +29 -0
  35. package/dist/components/Chat/Chat.d.ts +21 -0
  36. package/dist/components/Chat/Chat.js +179 -0
  37. package/dist/components/Chat/Chat.types.d.ts +55 -0
  38. package/dist/components/Chat/index.d.ts +2 -0
  39. package/dist/components/Confetti/Confetti.cjs +1 -0
  40. package/dist/components/Confetti/Confetti.const.cjs +1 -0
  41. package/dist/components/Confetti/Confetti.const.d.ts +16 -0
  42. package/dist/components/Confetti/Confetti.const.js +36 -0
  43. package/dist/components/Confetti/Confetti.d.ts +23 -0
  44. package/dist/components/Confetti/Confetti.js +94 -0
  45. package/dist/components/Confetti/Confetti.types.d.ts +50 -0
  46. package/dist/components/Confetti/index.d.ts +4 -0
  47. package/dist/components/Confetti/useConfetti.cjs +1 -0
  48. package/dist/components/Confetti/useConfetti.d.ts +13 -0
  49. package/dist/components/Confetti/useConfetti.js +12 -0
  50. package/dist/components/DatePicker/DatePicker.cjs +1 -1
  51. package/dist/components/DatePicker/DatePicker.js +3 -2
  52. package/dist/components/DiffViewer/DiffViewer.cjs +1 -0
  53. package/dist/components/DiffViewer/DiffViewer.const.cjs +1 -0
  54. package/dist/components/DiffViewer/DiffViewer.const.d.ts +18 -0
  55. package/dist/components/DiffViewer/DiffViewer.const.js +21 -0
  56. package/dist/components/DiffViewer/DiffViewer.d.ts +18 -0
  57. package/dist/components/DiffViewer/DiffViewer.js +127 -0
  58. package/dist/components/DiffViewer/DiffViewer.types.d.ts +40 -0
  59. package/dist/components/DiffViewer/DiffViewer.utils.cjs +3 -0
  60. package/dist/components/DiffViewer/DiffViewer.utils.d.ts +9 -0
  61. package/dist/components/DiffViewer/DiffViewer.utils.js +39 -0
  62. package/dist/components/DiffViewer/index.d.ts +2 -0
  63. package/dist/components/Drawer/Drawer.cjs +1 -1
  64. package/dist/components/Drawer/Drawer.js +35 -35
  65. package/dist/components/FloatingChat/FloatingChat.cjs +1 -0
  66. package/dist/components/FloatingChat/FloatingChat.const.cjs +1 -0
  67. package/dist/components/FloatingChat/FloatingChat.const.d.ts +12 -0
  68. package/dist/components/FloatingChat/FloatingChat.const.js +15 -0
  69. package/dist/components/FloatingChat/FloatingChat.d.ts +19 -0
  70. package/dist/components/FloatingChat/FloatingChat.js +144 -0
  71. package/dist/components/FloatingChat/FloatingChat.types.d.ts +44 -0
  72. package/dist/components/FloatingChat/index.d.ts +2 -0
  73. package/dist/components/JsonViewer/JsonViewer.cjs +1 -0
  74. package/dist/components/JsonViewer/JsonViewer.const.cjs +1 -0
  75. package/dist/components/JsonViewer/JsonViewer.const.d.ts +4 -0
  76. package/dist/components/JsonViewer/JsonViewer.const.js +24 -0
  77. package/dist/components/JsonViewer/JsonViewer.d.ts +17 -0
  78. package/dist/components/JsonViewer/JsonViewer.js +195 -0
  79. package/dist/components/JsonViewer/JsonViewer.types.d.ts +54 -0
  80. package/dist/components/JsonViewer/index.d.ts +2 -0
  81. package/dist/components/Kanban/Kanban.cjs +1 -1
  82. package/dist/components/Kanban/Kanban.js +18 -17
  83. package/dist/components/QRCode/QRCode.cjs +1 -0
  84. package/dist/components/QRCode/QRCode.const.cjs +1 -0
  85. package/dist/components/QRCode/QRCode.const.d.ts +21 -0
  86. package/dist/components/QRCode/QRCode.const.js +11 -0
  87. package/dist/components/QRCode/QRCode.d.ts +29 -0
  88. package/dist/components/QRCode/QRCode.js +68 -0
  89. package/dist/components/QRCode/QRCode.types.d.ts +32 -0
  90. package/dist/components/QRCode/QRCode.utils.cjs +1 -0
  91. package/dist/components/QRCode/QRCode.utils.d.ts +12 -0
  92. package/dist/components/QRCode/QRCode.utils.js +74 -0
  93. package/dist/components/QRCode/index.d.ts +3 -0
  94. package/dist/components/Spinner/Spinner.types.d.ts +2 -2
  95. package/dist/components/Terminal/Terminal.cjs +1 -0
  96. package/dist/components/Terminal/Terminal.const.cjs +1 -0
  97. package/dist/components/Terminal/Terminal.const.d.ts +32 -0
  98. package/dist/components/Terminal/Terminal.const.js +42 -0
  99. package/dist/components/Terminal/Terminal.d.ts +27 -0
  100. package/dist/components/Terminal/Terminal.js +155 -0
  101. package/dist/components/Terminal/Terminal.types.d.ts +49 -0
  102. package/dist/components/Terminal/index.d.ts +2 -0
  103. package/dist/components/Tour/Tour.cjs +1 -0
  104. package/dist/components/Tour/Tour.const.cjs +1 -0
  105. package/dist/components/Tour/Tour.const.d.ts +25 -0
  106. package/dist/components/Tour/Tour.const.js +38 -0
  107. package/dist/components/Tour/Tour.d.ts +17 -0
  108. package/dist/components/Tour/Tour.js +179 -0
  109. package/dist/components/Tour/Tour.types.d.ts +80 -0
  110. package/dist/components/Tour/index.d.ts +4 -0
  111. package/dist/components/Tour/useTour.cjs +1 -0
  112. package/dist/components/Tour/useTour.d.ts +14 -0
  113. package/dist/components/Tour/useTour.js +27 -0
  114. package/dist/components/Typography/Typography.cjs +1 -1
  115. package/dist/components/Typography/Typography.d.ts +5 -1
  116. package/dist/components/Typography/Typography.js +93 -57
  117. package/dist/components/Typography/Typography.types.d.ts +29 -2
  118. package/dist/components/index.cjs +1 -1
  119. package/dist/components/index.d.ts +19 -1
  120. package/dist/components/index.js +242 -218
  121. package/dist/context/BearProvider.cjs +1 -1
  122. package/dist/context/BearProvider.d.ts +110 -5
  123. package/dist/context/BearProvider.js +198 -53
  124. package/dist/context/defaultTheme.cjs +1 -1
  125. package/dist/context/defaultTheme.js +11 -11
  126. package/dist/hooks/index.cjs +1 -1
  127. package/dist/hooks/index.d.ts +14 -0
  128. package/dist/hooks/index.js +56 -39
  129. package/dist/hooks/useBearComponent/index.d.ts +2 -0
  130. package/dist/hooks/useBearComponent/useBearComponent.cjs +1 -0
  131. package/dist/hooks/useBearComponent/useBearComponent.d.ts +71 -0
  132. package/dist/hooks/useBearComponent/useBearComponent.js +54 -0
  133. package/dist/hooks/useBearComponent/useBearComponent.types.d.ts +40 -0
  134. package/dist/hooks/useIdle/index.d.ts +2 -0
  135. package/dist/hooks/useIdle/useIdle.cjs +1 -0
  136. package/dist/hooks/useIdle/useIdle.d.ts +22 -0
  137. package/dist/hooks/useIdle/useIdle.js +66 -0
  138. package/dist/hooks/useIdle/useIdle.types.d.ts +29 -0
  139. package/dist/hooks/useLongPress/index.d.ts +2 -0
  140. package/dist/hooks/useLongPress/useLongPress.cjs +1 -0
  141. package/dist/hooks/useLongPress/useLongPress.d.ts +17 -0
  142. package/dist/hooks/useLongPress/useLongPress.js +44 -0
  143. package/dist/hooks/useLongPress/useLongPress.types.d.ts +26 -0
  144. package/dist/hooks/useOnline/index.d.ts +2 -0
  145. package/dist/hooks/useOnline/useOnline.cjs +1 -0
  146. package/dist/hooks/useOnline/useOnline.d.ts +16 -0
  147. package/dist/hooks/useOnline/useOnline.js +25 -0
  148. package/dist/hooks/useOnline/useOnline.types.d.ts +15 -0
  149. package/dist/hooks/usePageVisibility/index.d.ts +2 -0
  150. package/dist/hooks/usePageVisibility/usePageVisibility.cjs +1 -0
  151. package/dist/hooks/usePageVisibility/usePageVisibility.d.ts +19 -0
  152. package/dist/hooks/usePageVisibility/usePageVisibility.js +26 -0
  153. package/dist/hooks/usePageVisibility/usePageVisibility.types.d.ts +15 -0
  154. package/dist/hooks/useSpotlight/index.d.ts +2 -0
  155. package/dist/hooks/useSpotlight/useSpotlight.cjs +1 -0
  156. package/dist/hooks/useSpotlight/useSpotlight.d.ts +24 -0
  157. package/dist/hooks/useSpotlight/useSpotlight.js +49 -0
  158. package/dist/hooks/useSpotlight/useSpotlight.types.d.ts +23 -0
  159. package/dist/hooks/useWebSocket/index.d.ts +2 -0
  160. package/dist/hooks/useWebSocket/useWebSocket.cjs +1 -0
  161. package/dist/hooks/useWebSocket/useWebSocket.d.ts +22 -0
  162. package/dist/hooks/useWebSocket/useWebSocket.js +75 -0
  163. package/dist/hooks/useWebSocket/useWebSocket.types.d.ts +44 -0
  164. package/dist/index.cjs +1 -1
  165. package/dist/index.js +324 -283
  166. package/dist/styles.css +1 -1
  167. package/dist/types/component.types.d.ts +125 -42
  168. package/dist/types/theme.types.d.ts +82 -0
  169. package/package.json +1 -1
@@ -1,18 +1,79 @@
1
1
  import { ReactNode } from 'react';
2
- import { BearTheme, BearThemeOverride } from '../types';
2
+ import { BearTheme, BearThemeOverride, CustomVariant, CustomVariantsMap } from '../types';
3
+ import { BearComponentOverrides, ButtonVariantsConfig } from '../types/component.types';
4
+ import { CustomTypography, CustomTypographyMap } from '../components/Typography/Typography.types';
3
5
  interface BearContextValue {
4
6
  theme: BearTheme;
5
7
  mode: 'light' | 'dark';
6
8
  setMode: (mode: 'light' | 'dark') => void;
7
9
  toggleMode: () => void;
8
10
  updateTheme: (overrides: BearThemeOverride) => void;
11
+ /** Component style overrides */
12
+ components: BearComponentOverrides;
13
+ /** Variant configurations */
14
+ variants: {
15
+ Button?: ButtonVariantsConfig;
16
+ };
17
+ /** Custom variants map */
18
+ customVariants: CustomVariantsMap;
19
+ /** Check if a variant exists (built-in or custom) */
20
+ hasVariant: (name: string) => boolean;
21
+ /** Get variant colors */
22
+ getVariant: (name: string) => CustomVariant | undefined;
23
+ /** Register a new custom variant at runtime */
24
+ addVariant: (name: string, config: CustomVariant) => void;
25
+ /** Custom typography variants */
26
+ customTypography: CustomTypographyMap;
27
+ /** Check if typography variant exists */
28
+ hasTypography: (name: string) => boolean;
29
+ /** Get typography config */
30
+ getTypography: (name: string) => CustomTypography | undefined;
31
+ /** Add custom typography at runtime */
32
+ addTypography: (name: string, config: CustomTypography) => void;
33
+ /** Register component overrides */
34
+ registerComponent: <K extends keyof BearComponentOverrides>(componentKey: K, styles: BearComponentOverrides[K]) => void;
35
+ /** Register variant overrides */
36
+ registerVariant: <K extends 'Button'>(componentKey: K, variantConfig: ButtonVariantsConfig) => void;
9
37
  }
38
+ /** Bear context - use useBear() hook instead of consuming directly */
39
+ export declare const BearContext: import('react').Context<BearContextValue | null>;
10
40
  interface BearProviderProps {
11
41
  children: ReactNode;
12
42
  /** Initial theme mode */
13
43
  defaultMode?: 'light' | 'dark';
14
44
  /** Theme overrides applied on top of default theme */
15
45
  theme?: BearThemeOverride;
46
+ /** Global component style overrides */
47
+ components?: BearComponentOverrides;
48
+ /** Variant color configurations for built-in variants */
49
+ variants?: {
50
+ Button?: ButtonVariantsConfig;
51
+ };
52
+ /**
53
+ * Custom variants - add your own color variants!
54
+ * @example
55
+ * ```tsx
56
+ * <BearProvider customVariants={{
57
+ * redBrand: { bg: '#dc2626', bgHover: '#b91c1c', text: '#ffffff' },
58
+ * oceanBlue: { bg: '#0ea5e9', bgHover: '#0284c7', text: '#ffffff' },
59
+ * }}>
60
+ * ```
61
+ * Then use: `<Button variant="redBrand">Click me</Button>`
62
+ */
63
+ customVariants?: CustomVariantsMap;
64
+ /**
65
+ * Custom typography variants - add your own text styles!
66
+ * @example
67
+ * ```tsx
68
+ * <BearProvider customTypography={{
69
+ * b250: { fontSize: '25px', fontWeight: 'bold', lineHeight: '1.2' },
70
+ * display1: { fontSize: '4rem', fontWeight: 800, letterSpacing: '-0.025em' },
71
+ * label: { fontSize: '12px', fontWeight: 'medium', textTransform: 'uppercase' },
72
+ * }}>
73
+ * ```
74
+ * Then use: `<Typography variant="b250">Custom text</Typography>`
75
+ */
76
+ customTypography?: CustomTypographyMap;
16
77
  /** Persist theme preference to localStorage */
17
78
  persistPreference?: boolean;
18
79
  /** localStorage key for persisting preference */
@@ -27,20 +88,42 @@ interface BearProviderProps {
27
88
  *
28
89
  * function App() {
29
90
  * return (
30
- * <BearProvider defaultMode="dark">
31
- * <YourApp />
91
+ * <BearProvider
92
+ * defaultMode="dark"
93
+ * // Simple: just pass a color string!
94
+ * theme={{
95
+ * colors: {
96
+ * primary: '#3b82f6', // or 'blue', 'red', '#hex'
97
+ * }
98
+ * }}
99
+ * // Or full control with color scales:
100
+ * // theme={{
101
+ * // colors: {
102
+ * // primary: { 500: '#ec4899', 600: '#db2777', ... }
103
+ * // }
104
+ * // }}
105
+ * customVariants={{
106
+ * redBrand: { bg: '#dc2626', bgHover: '#b91c1c', text: '#fff' },
107
+ * oceanBlue: { bg: '#0ea5e9', bgHover: '#0284c7', text: '#fff' },
108
+ * }}
109
+ * >
110
+ * <Button variant="redBrand">Red Brand Button</Button>
111
+ * <Button variant="primary">Uses theme primary</Button>
32
112
  * </BearProvider>
33
113
  * );
34
114
  * }
35
115
  * ```
36
116
  */
37
- export declare const BearProvider: ({ children, defaultMode, theme: themeOverrides, persistPreference, storageKey, }: BearProviderProps) => import("react/jsx-runtime").JSX.Element;
117
+ export declare const BearProvider: ({ children, defaultMode, theme: themeOverrides, components: initialComponents, variants: initialVariants, customVariants: initialCustomVariants, customTypography: initialCustomTypography, persistPreference, storageKey, }: BearProviderProps) => import("react/jsx-runtime").JSX.Element;
38
118
  /**
39
119
  * Hook to access the Bear theme context
40
120
  *
41
121
  * @example
42
122
  * ```tsx
43
- * const { theme, mode, toggleMode } = useBear();
123
+ * const { theme, mode, toggleMode, addVariant } = useBear();
124
+ *
125
+ * // Add a variant at runtime
126
+ * addVariant('myBrand', { bg: '#ff6b6b', bgHover: '#ee5a5a', text: '#fff' });
44
127
  * ```
45
128
  */
46
129
  export declare const useBear: () => BearContextValue;
@@ -61,4 +144,26 @@ export declare const useBearMode: () => {
61
144
  setMode: (mode: "light" | "dark") => void;
62
145
  toggleMode: () => void;
63
146
  };
147
+ /**
148
+ * Hook to work with custom variants
149
+ *
150
+ * @example
151
+ * ```tsx
152
+ * const { addVariant, hasVariant, getVariant } = useBearVariants();
153
+ *
154
+ * // Add a new variant dynamically
155
+ * addVariant('hotPink', { bg: '#ec4899', bgHover: '#db2777', text: '#fff' });
156
+ *
157
+ * // Check if variant exists
158
+ * if (hasVariant('hotPink')) {
159
+ * // use it!
160
+ * }
161
+ * ```
162
+ */
163
+ export declare const useBearVariants: () => {
164
+ customVariants: CustomVariantsMap;
165
+ hasVariant: (name: string) => boolean;
166
+ getVariant: (name: string) => CustomVariant | undefined;
167
+ addVariant: (name: string, config: CustomVariant) => void;
168
+ };
64
169
  export {};
@@ -1,71 +1,216 @@
1
- import { jsx as B } from "react/jsx-runtime";
2
- import { createContext as T, useContext as p, useState as f, useMemo as h, useCallback as u, useEffect as E } from "react";
3
- import { defaultDarkTheme as g, defaultLightTheme as M } from "./defaultTheme.js";
4
- const m = T(null), L = "bear-theme-mode", j = ({
1
+ import { jsx as ee } from "react/jsx-runtime";
2
+ import { createContext as te, useContext as _, useState as m, useMemo as T, useCallback as i, useEffect as re } from "react";
3
+ import { defaultDarkTheme as F, defaultLightTheme as se } from "./defaultTheme.js";
4
+ const j = te(null), oe = "bear-theme-mode", ne = ["primary", "secondary", "success", "warning", "danger", "info", "ghost", "outline", "error"], W = (t) => {
5
+ const o = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);
6
+ return o ? {
7
+ r: parseInt(o[1], 16),
8
+ g: parseInt(o[2], 16),
9
+ b: parseInt(o[3], 16)
10
+ } : null;
11
+ }, N = (t, o, s) => "#" + [t, o, s].map((c) => {
12
+ const b = Math.max(0, Math.min(255, Math.round(c))).toString(16);
13
+ return b.length === 1 ? "0" + b : b;
14
+ }).join(""), P = (t, o) => {
15
+ const s = W(t);
16
+ if (!s) return t;
17
+ const c = o / 100;
18
+ return N(
19
+ s.r + (255 - s.r) * c,
20
+ s.g + (255 - s.g) * c,
21
+ s.b + (255 - s.b) * c
22
+ );
23
+ }, x = (t, o) => {
24
+ const s = W(t);
25
+ if (!s) return t;
26
+ const c = 1 - o / 100;
27
+ return N(s.r * c, s.g * c, s.b * c);
28
+ }, ae = (t) => ({
29
+ 50: P(t, 95),
30
+ 100: P(t, 85),
31
+ 200: P(t, 70),
32
+ 300: P(t, 50),
33
+ 400: P(t, 25),
34
+ 500: t,
35
+ 600: x(t, 10),
36
+ 700: x(t, 25),
37
+ 800: x(t, 40),
38
+ 900: x(t, 55),
39
+ 950: x(t, 70)
40
+ }), ce = (t) => typeof t != "string" ? !1 : t.startsWith("#") || t.startsWith("rgb") || /^[a-z]+$/i.test(t), R = {
41
+ red: "#ef4444",
42
+ blue: "#3b82f6",
43
+ green: "#22c55e",
44
+ yellow: "#eab308",
45
+ orange: "#f97316",
46
+ purple: "#a855f7",
47
+ pink: "#ec4899",
48
+ cyan: "#06b6d4",
49
+ teal: "#14b8a6",
50
+ indigo: "#6366f1",
51
+ violet: "#8b5cf6",
52
+ rose: "#f43f5e",
53
+ amber: "#f59e0b",
54
+ lime: "#84cc16",
55
+ emerald: "#10b981",
56
+ sky: "#0ea5e9",
57
+ slate: "#64748b",
58
+ gray: "#6b7280",
59
+ zinc: "#71717a",
60
+ neutral: "#737373",
61
+ stone: "#78716c",
62
+ white: "#ffffff",
63
+ black: "#000000"
64
+ }, be = (t) => {
65
+ const o = t.toLowerCase();
66
+ return R[o] ? R[o] : (t.startsWith("#"), t);
67
+ };
68
+ function v(t, o) {
69
+ if (!o) return t;
70
+ const s = { ...t }, c = t, b = o, $ = s;
71
+ for (const p in b)
72
+ if (Object.prototype.hasOwnProperty.call(b, p)) {
73
+ const l = b[p], d = c[p];
74
+ l && typeof l == "object" && !Array.isArray(l) && d && typeof d == "object" && !Array.isArray(d) ? $[p] = v(
75
+ d,
76
+ l
77
+ ) : l !== void 0 && ($[p] = l);
78
+ }
79
+ return s;
80
+ }
81
+ const f = (t, o, s) => {
82
+ Object.entries(s).forEach(([c, b]) => {
83
+ t.style.setProperty(`--bear-${o}-${c}`, b);
84
+ });
85
+ }, ie = (t, o, s) => {
86
+ t.style.setProperty(`--bear-${o}-bg`, s.bg), s.bgHover && t.style.setProperty(`--bear-${o}-bg-hover`, s.bgHover), s.bgActive && t.style.setProperty(`--bear-${o}-bg-active`, s.bgActive), s.text && t.style.setProperty(`--bear-${o}-text`, s.text), s.border && t.style.setProperty(`--bear-${o}-border`, s.border), s.ring && t.style.setProperty(`--bear-${o}-ring`, s.ring);
87
+ }, ue = ({
5
88
  children: t,
6
- defaultMode: c = "light",
7
- theme: n,
8
- persistPreference: d = !0,
9
- storageKey: l = L
89
+ defaultMode: o = "light",
90
+ theme: s,
91
+ components: c = {},
92
+ variants: b = {},
93
+ customVariants: $ = {},
94
+ customTypography: p = {},
95
+ persistPreference: l = !0,
96
+ storageKey: d = oe
10
97
  }) => {
11
- const [o, x] = f(() => {
12
- if (typeof window < "u" && d) {
13
- const e = localStorage.getItem(l);
98
+ const [y, G] = m(() => {
99
+ if (typeof window < "u" && l) {
100
+ const e = localStorage.getItem(d);
14
101
  if (e === "light" || e === "dark")
15
102
  return e;
16
103
  if (window.matchMedia("(prefers-color-scheme: dark)").matches)
17
104
  return "dark";
18
105
  }
19
- return c;
20
- }), [s, P] = f(n || {}), r = h(() => {
21
- const e = o === "dark" ? g : M;
22
- return Object.keys(s).length === 0 ? e : {
23
- ...e,
24
- ...s,
25
- colors: s.colors ? { ...e.colors, ...s.colors } : e.colors
26
- };
27
- }, [o, s]), a = u((e) => {
28
- x(e), typeof window < "u" && d && localStorage.setItem(l, e);
29
- }, [d, l]), y = u(() => {
30
- a(o === "light" ? "dark" : "light");
31
- }, [o, a]), b = u((e) => {
32
- P((i) => ({ ...i, ...e }));
106
+ return o;
107
+ }), [k, Y] = m(s || {}), [V, q] = m(c), [h, J] = m(b), [u, Q] = m($), [g, X] = m(p), O = T(() => {
108
+ if (!k || Object.keys(k).length === 0)
109
+ return {};
110
+ const e = { ...k };
111
+ if (e.colors) {
112
+ const n = ["primary", "secondary", "success", "warning", "danger", "info", "neutral"];
113
+ for (const r of n) {
114
+ const z = e.colors[r];
115
+ if (ce(z)) {
116
+ const K = be(z);
117
+ e.colors[r] = ae(K);
118
+ }
119
+ }
120
+ }
121
+ return e;
122
+ }, [k]), a = T(() => {
123
+ const e = y === "dark" ? F : se;
124
+ return Object.keys(O).length === 0 ? e : v(e, O);
125
+ }, [y, O]), w = i((e) => {
126
+ G(e), typeof window < "u" && l && localStorage.setItem(d, e);
127
+ }, [l, d]), A = i(() => {
128
+ w(y === "light" ? "dark" : "light");
129
+ }, [y, w]), E = i((e) => {
130
+ Y((n) => v(n, e));
131
+ }, []), B = i((e, n) => {
132
+ q((r) => ({
133
+ ...r,
134
+ [e]: {
135
+ ...r[e] || {},
136
+ ...n
137
+ }
138
+ }));
139
+ }, []), M = i((e, n) => {
140
+ J((r) => ({
141
+ ...r,
142
+ [e]: {
143
+ ...r[e] || {},
144
+ ...n
145
+ }
146
+ }));
147
+ }, []), S = i((e) => ne.includes(e) || e in u, [u]), I = i((e) => u[e], [u]), L = i((e, n) => {
148
+ Q((r) => ({
149
+ ...r,
150
+ [e]: n
151
+ }));
152
+ }, []), C = i((e) => e in g, [g]), H = i((e) => g[e], [g]), D = i((e, n) => {
153
+ X((r) => ({
154
+ ...r,
155
+ [e]: n
156
+ }));
33
157
  }, []);
34
- E(() => {
158
+ re(() => {
35
159
  if (typeof document < "u") {
36
160
  const e = document.documentElement;
37
- o === "dark" ? e.classList.add("dark") : e.classList.remove("dark"), e.classList.remove("bear-light", "bear-dark"), e.classList.add(`bear-${o}`), Object.entries(r.colors.primary).forEach(([i, w]) => {
38
- e.style.setProperty(`--bear-primary-${i}`, w);
39
- }), e.style.setProperty("--bear-bg-primary", r.colors.background.primary), e.style.setProperty("--bear-bg-secondary", r.colors.background.secondary), e.style.setProperty("--bear-bg-tertiary", r.colors.background.tertiary), e.style.setProperty("--bear-text-primary", r.colors.text.primary), e.style.setProperty("--bear-text-secondary", r.colors.text.secondary), e.style.setProperty("--bear-text-muted", r.colors.text.muted), e.style.setProperty("--bear-border-default", r.colors.border.default);
161
+ y === "dark" ? e.classList.add("dark") : e.classList.remove("dark"), e.classList.remove("bear-light", "bear-dark"), e.classList.add(`bear-${y}`), f(e, "primary", a.colors.primary), f(e, "secondary", a.colors.secondary), f(e, "success", a.colors.success), f(e, "warning", a.colors.warning), f(e, "danger", a.colors.danger), f(e, "info", a.colors.info), f(e, "neutral", a.colors.neutral), e.style.setProperty("--bear-bg-primary", a.colors.background.primary), e.style.setProperty("--bear-bg-secondary", a.colors.background.secondary), e.style.setProperty("--bear-bg-tertiary", a.colors.background.tertiary), e.style.setProperty("--bear-text-primary", a.colors.text.primary), e.style.setProperty("--bear-text-secondary", a.colors.text.secondary), e.style.setProperty("--bear-text-muted", a.colors.text.muted), e.style.setProperty("--bear-text-inverted", a.colors.text.inverted), e.style.setProperty("--bear-border-default", a.colors.border.default), e.style.setProperty("--bear-border-subtle", a.colors.border.subtle), e.style.setProperty("--bear-border-strong", a.colors.border.strong), h.Button && Object.entries(h.Button).forEach(([n, r]) => {
162
+ r && (r.bg && e.style.setProperty(`--bear-btn-${n}-bg`, r.bg), r.bgHover && e.style.setProperty(`--bear-btn-${n}-bg-hover`, r.bgHover), r.bgActive && e.style.setProperty(`--bear-btn-${n}-bg-active`, r.bgActive), r.bgDisabled && e.style.setProperty(`--bear-btn-${n}-bg-disabled`, r.bgDisabled), r.text && e.style.setProperty(`--bear-btn-${n}-text`, r.text), r.textDisabled && e.style.setProperty(`--bear-btn-${n}-text-disabled`, r.textDisabled), r.border && e.style.setProperty(`--bear-btn-${n}-border`, r.border), r.borderHover && e.style.setProperty(`--bear-btn-${n}-border-hover`, r.borderHover), r.ring && e.style.setProperty(`--bear-btn-${n}-ring`, r.ring));
163
+ }), Object.entries(u).forEach(([n, r]) => {
164
+ ie(e, n, r);
165
+ }), e.style.setProperty("--bear-font-sans", a.typography.fontFamily.sans), e.style.setProperty("--bear-font-mono", a.typography.fontFamily.mono), Object.entries(a.shadows).forEach(([n, r]) => {
166
+ e.style.setProperty(`--bear-shadow-${n}`, r);
167
+ }), Object.entries(a.borderRadius).forEach(([n, r]) => {
168
+ e.style.setProperty(`--bear-radius-${n}`, r);
169
+ }), Object.entries(a.spacing).forEach(([n, r]) => {
170
+ e.style.setProperty(`--bear-spacing-${n}`, r);
171
+ });
40
172
  }
41
- }, [r, o]);
42
- const v = h(() => ({
43
- theme: r,
44
- mode: o,
45
- setMode: a,
46
- toggleMode: y,
47
- updateTheme: b
48
- }), [r, o, a, y, b]);
49
- return /* @__PURE__ */ B(m.Provider, { value: v, children: t });
50
- }, k = () => {
51
- const t = p(m);
173
+ }, [a, y, h, u]);
174
+ const Z = T(() => ({
175
+ theme: a,
176
+ mode: y,
177
+ setMode: w,
178
+ toggleMode: A,
179
+ updateTheme: E,
180
+ components: V,
181
+ variants: h,
182
+ customVariants: u,
183
+ hasVariant: S,
184
+ getVariant: I,
185
+ addVariant: L,
186
+ customTypography: g,
187
+ hasTypography: C,
188
+ getTypography: H,
189
+ addTypography: D,
190
+ registerComponent: B,
191
+ registerVariant: M
192
+ }), [a, y, w, A, E, V, h, u, S, I, L, g, C, H, D, B, M]);
193
+ return /* @__PURE__ */ ee(j.Provider, { value: Z, children: t });
194
+ }, U = () => {
195
+ const t = _(j);
52
196
  if (!t)
53
197
  throw new Error("useBear must be used within a BearProvider");
54
198
  return t;
55
- }, A = () => {
56
- const { theme: t } = k();
199
+ }, pe = () => {
200
+ const { theme: t } = U();
57
201
  return t;
58
- }, D = () => {
59
- const t = p(m);
60
- return t ? t.theme : g;
61
- }, I = () => {
62
- const { mode: t, setMode: c, toggleMode: n } = k();
63
- return { mode: t, setMode: c, toggleMode: n };
202
+ }, fe = () => {
203
+ const t = _(j);
204
+ return t ? t.theme : F;
205
+ }, ge = () => {
206
+ const { mode: t, setMode: o, toggleMode: s } = U();
207
+ return { mode: t, setMode: o, toggleMode: s };
64
208
  };
65
209
  export {
66
- j as BearProvider,
67
- k as useBear,
68
- I as useBearMode,
69
- A as useBearTheme,
70
- D as useBearThemeOptional
210
+ j as BearContext,
211
+ ue as BearProvider,
212
+ U as useBear,
213
+ ge as useBearMode,
214
+ pe as useBearTheme,
215
+ fe as useBearThemeOptional
71
216
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r={50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},f={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7c3aed",800:"#6b21a8",900:"#581c87",950:"#3b0764"},a={50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},o={50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},x={50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},d={50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},p={50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},e={mode:"light",colors:{primary:r,secondary:f,success:a,warning:o,danger:x,info:d,neutral:p,background:{primary:"#ffffff",secondary:"#f9fafb",tertiary:"#f3f4f6"},text:{primary:"#111827",secondary:"#4b5563",muted:"#9ca3af",inverted:"#ffffff"},border:{default:"#e5e7eb",subtle:"#f3f4f6",strong:"#d1d5db"}},typography:{fontFamily:{sans:"Inter, system-ui, -apple-system, sans-serif",mono:"JetBrains Mono, Fira Code, monospace"},fontSize:{xs:"0.75rem",sm:"0.875rem",base:"1rem",lg:"1.125rem",xl:"1.25rem","2xl":"1.5rem","3xl":"1.875rem","4xl":"2.25rem"},fontWeight:{normal:400,medium:500,semibold:600,bold:700},lineHeight:{tight:1.25,normal:1.5,relaxed:1.75}},spacing:{0:"0",1:"0.25rem",2:"0.5rem",3:"0.75rem",4:"1rem",5:"1.25rem",6:"1.5rem",8:"2rem",10:"2.5rem",12:"3rem",16:"4rem",20:"5rem",24:"6rem",32:"8rem"},borderRadius:{none:"0",sm:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem",full:"9999px"},shadows:{none:"none",sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)"},breakpoints:{sm:"640px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1536px"}},s={...e,mode:"dark",colors:{...e.colors,background:{primary:"#09090b",secondary:"#18181b",tertiary:"#27272a"},text:{primary:"#fafafa",secondary:"#a1a1aa",muted:"#71717a",inverted:"#09090b"},border:{default:"#27272a",subtle:"#18181b",strong:"#3f3f46"}},shadows:{none:"none",sm:"0 1px 2px 0 rgb(0 0 0 / 0.3)",md:"0 4px 6px -1px rgb(0 0 0 / 0.4), 0 2px 4px -2px rgb(0 0 0 / 0.3)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.4), 0 4px 6px -4px rgb(0 0 0 / 0.3)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.5), 0 8px 10px -6px rgb(0 0 0 / 0.3)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.6)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.2)"}};exports.defaultDarkTheme=s;exports.defaultLightTheme=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},f={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7c3aed",800:"#6b21a8",900:"#581c87",950:"#3b0764"},a={50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},o={50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},x={50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},d={50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},p={50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},e={mode:"light",colors:{primary:r,secondary:f,success:a,warning:o,danger:x,info:d,neutral:p,background:{primary:"#ffffff",secondary:"#f9fafb",tertiary:"#f3f4f6"},text:{primary:"#111827",secondary:"#4b5563",muted:"#9ca3af",inverted:"#ffffff"},border:{default:"#e5e7eb",subtle:"#f3f4f6",strong:"#d1d5db"}},typography:{fontFamily:{sans:"Inter, system-ui, -apple-system, sans-serif",mono:"JetBrains Mono, Fira Code, monospace"},fontSize:{xs:"0.75rem",sm:"0.875rem",base:"1rem",lg:"1.125rem",xl:"1.25rem","2xl":"1.5rem","3xl":"1.875rem","4xl":"2.25rem"},fontWeight:{normal:400,medium:500,semibold:600,bold:700},lineHeight:{tight:1.25,normal:1.5,relaxed:1.75}},spacing:{0:"0",1:"0.25rem",2:"0.5rem",3:"0.75rem",4:"1rem",5:"1.25rem",6:"1.5rem",8:"2rem",10:"2.5rem",12:"3rem",16:"4rem",20:"5rem",24:"6rem",32:"8rem"},borderRadius:{none:"0",sm:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem",full:"9999px"},shadows:{none:"none",sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)"},breakpoints:{sm:"640px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1536px"}},s={...e,mode:"dark",colors:{...e.colors,background:{primary:"#09090b",secondary:"#18181b",tertiary:"#27272a"},text:{primary:"#fafafa",secondary:"#a1a1aa",muted:"#71717a",inverted:"#09090b"},border:{default:"#27272a",subtle:"#18181b",strong:"#3f3f46"}},shadows:{none:"none",sm:"0 1px 2px 0 rgb(0 0 0 / 0.3)",md:"0 4px 6px -1px rgb(0 0 0 / 0.4), 0 2px 4px -2px rgb(0 0 0 / 0.3)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.4), 0 4px 6px -4px rgb(0 0 0 / 0.3)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.5), 0 8px 10px -6px rgb(0 0 0 / 0.3)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.6)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.2)"}};exports.defaultDarkTheme=s;exports.defaultLightTheme=e;
@@ -1,15 +1,15 @@
1
1
  const r = {
2
- 50: "#fff7ed",
3
- 100: "#ffedd5",
4
- 200: "#fed7aa",
5
- 300: "#fdba74",
6
- 400: "#fb923c",
7
- 500: "#f97316",
8
- 600: "#ea580c",
9
- 700: "#c2410c",
10
- 800: "#9a3412",
11
- 900: "#7c2d12",
12
- 950: "#431407"
2
+ 50: "#fdf2f8",
3
+ 100: "#fce7f3",
4
+ 200: "#fbcfe8",
5
+ 300: "#f9a8d4",
6
+ 400: "#f472b6",
7
+ 500: "#ec4899",
8
+ 600: "#db2777",
9
+ 700: "#be185d",
10
+ 800: "#9d174d",
11
+ 900: "#831843",
12
+ 950: "#500724"
13
13
  }, f = {
14
14
  50: "#faf5ff",
15
15
  100: "#f3e8ff",
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./useMediaQuery.cjs"),t=require("./useClickOutside.cjs"),a=require("./useDisclosure.cjs"),l=require("./useBearStyles.cjs"),i=require("./bearStyled.cjs"),c=require("./useSlide/useSlide.cjs"),n=require("./useParallax/useParallax.cjs"),d=require("./useBounce/useBounce.cjs"),b=require("./useFloat/useFloat.cjs"),q=require("./usePulse/usePulse.cjs"),y=require("./useShake/useShake.cjs"),S=require("./useClipboard/useClipboard.cjs"),s=require("./useDebounce/useDebounce.cjs"),u=require("./useThrottle/useThrottle.cjs"),D=require("./useLocalStorage/useLocalStorage.cjs"),r=require("./useKeyPress/useKeyPress.cjs"),o=require("./useIntersectionObserver/useIntersectionObserver.cjs"),P=require("./useDragDrop/useDragDrop.cjs"),k=require("./useLazyLoad/useLazyLoad.cjs");exports.useIsDesktop=e.useIsDesktop;exports.useIsMobile=e.useIsMobile;exports.useIsTablet=e.useIsTablet;exports.useMediaQuery=e.useMediaQuery;exports.usePrefersDark=e.usePrefersDark;exports.usePrefersReducedMotion=e.usePrefersReducedMotion;exports.useClickOutside=t.useClickOutside;exports.useDisclosure=a.useDisclosure;exports.useBearStyles=l.useBearStyles;exports.bearStyled=i.bearStyled;exports.useSlide=c.useSlide;exports.useParallax=n.useParallax;exports.useBounce=d.useBounce;exports.useFloat=b.useFloat;exports.usePulse=q.usePulse;exports.useShake=y.useShake;exports.useClipboard=S.useClipboard;exports.useDebounce=s.useDebounce;exports.useDebouncedCallback=s.useDebouncedCallback;exports.useThrottle=u.useThrottle;exports.useThrottledCallback=u.useThrottledCallback;exports.useLocalStorage=D.useLocalStorage;exports.useKeyPress=r.useKeyPress;exports.useKeyPressState=r.useKeyPressState;exports.useInView=o.useInView;exports.useIntersectionObserver=o.useIntersectionObserver;exports.useDragDrop=P.useDragDrop;exports.useLazyLoad=k.useLazyLoad;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./useMediaQuery.cjs"),i=require("./useClickOutside.cjs"),n=require("./useDisclosure.cjs"),a=require("./useBearStyles.cjs"),l=require("./bearStyled.cjs"),c=require("./useSlide/useSlide.cjs"),d=require("./useParallax/useParallax.cjs"),b=require("./useBounce/useBounce.cjs"),q=require("./useFloat/useFloat.cjs"),S=require("./usePulse/usePulse.cjs"),P=require("./useShake/useShake.cjs"),y=require("./useClipboard/useClipboard.cjs"),u=require("./useDebounce/useDebounce.cjs"),r=require("./useThrottle/useThrottle.cjs"),C=require("./useLocalStorage/useLocalStorage.cjs"),o=require("./useKeyPress/useKeyPress.cjs"),t=require("./useIntersectionObserver/useIntersectionObserver.cjs"),p=require("./useDragDrop/useDragDrop.cjs"),D=require("./useLazyLoad/useLazyLoad.cjs"),s=require("./useBearComponent/useBearComponent.cjs"),g=require("./useSpotlight/useSpotlight.cjs"),k=require("./useOnline/useOnline.cjs"),B=require("./useWebSocket/useWebSocket.cjs"),I=require("./useIdle/useIdle.cjs"),L=require("./usePageVisibility/usePageVisibility.cjs"),h=require("./useLongPress/useLongPress.cjs");exports.useIsDesktop=e.useIsDesktop;exports.useIsMobile=e.useIsMobile;exports.useIsTablet=e.useIsTablet;exports.useMediaQuery=e.useMediaQuery;exports.usePrefersDark=e.usePrefersDark;exports.usePrefersReducedMotion=e.usePrefersReducedMotion;exports.useClickOutside=i.useClickOutside;exports.useDisclosure=n.useDisclosure;exports.useBearStyles=a.useBearStyles;exports.bearStyled=l.bearStyled;exports.useSlide=c.useSlide;exports.useParallax=d.useParallax;exports.useBounce=b.useBounce;exports.useFloat=q.useFloat;exports.usePulse=S.usePulse;exports.useShake=P.useShake;exports.useClipboard=y.useClipboard;exports.useDebounce=u.useDebounce;exports.useDebouncedCallback=u.useDebouncedCallback;exports.useThrottle=r.useThrottle;exports.useThrottledCallback=r.useThrottledCallback;exports.useLocalStorage=C.useLocalStorage;exports.useKeyPress=o.useKeyPress;exports.useKeyPressState=o.useKeyPressState;exports.useInView=t.useInView;exports.useIntersectionObserver=t.useIntersectionObserver;exports.useDragDrop=p.useDragDrop;exports.useLazyLoad=D.useLazyLoad;exports.BearComponentProvider=s.BearComponentProvider;exports.useBC=s.useBC;exports.useBearComponent=s.useBearComponent;exports.useBearComponentContext=s.useBearComponentContext;exports.useSpotlight=g.useSpotlight;exports.useOnline=k.useOnline;exports.useWebSocket=B.useWebSocket;exports.useIdle=I.useIdle;exports.usePageVisibility=L.usePageVisibility;exports.useLongPress=h.useLongPress;
@@ -31,3 +31,17 @@ export { useDragDrop } from './useDragDrop';
31
31
  export type { UseDragDropOptions, UseDragDropReturn, DragDropId } from './useDragDrop';
32
32
  export { useLazyLoad } from './useLazyLoad';
33
33
  export type { UseLazyLoadOptions, UseLazyLoadReturn } from './useLazyLoad';
34
+ export { useBearComponent, useBC, BearComponentProvider, useBearComponentContext } from './useBearComponent';
35
+ export type { UseBearComponentReturn, BearComponentContextValue } from './useBearComponent';
36
+ export { useSpotlight } from './useSpotlight';
37
+ export type { UseSpotlightOptions, UseSpotlightReturn } from './useSpotlight';
38
+ export { useOnline } from './useOnline';
39
+ export type { UseOnlineOptions, UseOnlineReturn } from './useOnline';
40
+ export { useWebSocket } from './useWebSocket';
41
+ export type { UseWebSocketOptions, UseWebSocketReturn, WebSocketStatus } from './useWebSocket';
42
+ export { useIdle } from './useIdle';
43
+ export type { UseIdleOptions, UseIdleReturn } from './useIdle';
44
+ export { usePageVisibility } from './usePageVisibility';
45
+ export type { UsePageVisibilityOptions, UsePageVisibilityReturn } from './usePageVisibility';
46
+ export { useLongPress } from './useLongPress';
47
+ export type { UseLongPressOptions, UseLongPressReturn } from './useLongPress';
@@ -1,49 +1,66 @@
1
- import { useIsDesktop as o, useIsMobile as s, useIsTablet as t, useMediaQuery as u, usePrefersDark as p, usePrefersReducedMotion as a } from "./useMediaQuery.js";
1
+ import { useIsDesktop as r, useIsMobile as s, useIsTablet as t, useMediaQuery as u, usePrefersDark as p, usePrefersReducedMotion as m } from "./useMediaQuery.js";
2
2
  import { useClickOutside as x } from "./useClickOutside.js";
3
- import { useDisclosure as m } from "./useDisclosure.js";
4
- import { useBearStyles as d } from "./useBearStyles.js";
3
+ import { useDisclosure as l } from "./useDisclosure.js";
4
+ import { useBearStyles as n } from "./useBearStyles.js";
5
5
  import { bearStyled as b } from "./bearStyled.js";
6
- import { useSlide as D } from "./useSlide/useSlide.js";
7
- import { useParallax as y } from "./useParallax/useParallax.js";
8
- import { useBounce as S } from "./useBounce/useBounce.js";
9
- import { useFloat as C } from "./useFloat/useFloat.js";
10
- import { usePulse as L } from "./usePulse/usePulse.js";
11
- import { useShake as T } from "./useShake/useShake.js";
12
- import { useClipboard as B } from "./useClipboard/useClipboard.js";
13
- import { useDebounce as O, useDebouncedCallback as v } from "./useDebounce/useDebounce.js";
14
- import { useThrottle as z, useThrottledCallback as F } from "./useThrottle/useThrottle.js";
15
- import { useLocalStorage as R } from "./useLocalStorage/useLocalStorage.js";
16
- import { useKeyPress as j, useKeyPressState as q } from "./useKeyPress/useKeyPress.js";
17
- import { useInView as E, useIntersectionObserver as G } from "./useIntersectionObserver/useIntersectionObserver.js";
18
- import { useDragDrop as J } from "./useDragDrop/useDragDrop.js";
19
- import { useLazyLoad as U } from "./useLazyLoad/useLazyLoad.js";
6
+ import { useSlide as C } from "./useSlide/useSlide.js";
7
+ import { useParallax as S } from "./useParallax/useParallax.js";
8
+ import { useBounce as y } from "./useBounce/useBounce.js";
9
+ import { useFloat as B } from "./useFloat/useFloat.js";
10
+ import { usePulse as g } from "./usePulse/usePulse.js";
11
+ import { useShake as L } from "./useShake/useShake.js";
12
+ import { useClipboard as O } from "./useClipboard/useClipboard.js";
13
+ import { useDebounce as v, useDebouncedCallback as K } from "./useDebounce/useDebounce.js";
14
+ import { useThrottle as w, useThrottledCallback as z } from "./useThrottle/useThrottle.js";
15
+ import { useLocalStorage as Q } from "./useLocalStorage/useLocalStorage.js";
16
+ import { useKeyPress as W, useKeyPressState as j } from "./useKeyPress/useKeyPress.js";
17
+ import { useInView as A, useIntersectionObserver as E } from "./useIntersectionObserver/useIntersectionObserver.js";
18
+ import { useDragDrop as H } from "./useDragDrop/useDragDrop.js";
19
+ import { useLazyLoad as N } from "./useLazyLoad/useLazyLoad.js";
20
+ import { BearComponentProvider as X, useBC as Y, useBearComponent as Z, useBearComponentContext as _ } from "./useBearComponent/useBearComponent.js";
21
+ import { useSpotlight as ee } from "./useSpotlight/useSpotlight.js";
22
+ import { useOnline as re } from "./useOnline/useOnline.js";
23
+ import { useWebSocket as te } from "./useWebSocket/useWebSocket.js";
24
+ import { useIdle as pe } from "./useIdle/useIdle.js";
25
+ import { usePageVisibility as fe } from "./usePageVisibility/usePageVisibility.js";
26
+ import { useLongPress as ae } from "./useLongPress/useLongPress.js";
20
27
  export {
28
+ X as BearComponentProvider,
21
29
  b as bearStyled,
22
- d as useBearStyles,
23
- S as useBounce,
30
+ Y as useBC,
31
+ Z as useBearComponent,
32
+ _ as useBearComponentContext,
33
+ n as useBearStyles,
34
+ y as useBounce,
24
35
  x as useClickOutside,
25
- B as useClipboard,
26
- O as useDebounce,
27
- v as useDebouncedCallback,
28
- m as useDisclosure,
29
- J as useDragDrop,
30
- C as useFloat,
31
- E as useInView,
32
- G as useIntersectionObserver,
33
- o as useIsDesktop,
36
+ O as useClipboard,
37
+ v as useDebounce,
38
+ K as useDebouncedCallback,
39
+ l as useDisclosure,
40
+ H as useDragDrop,
41
+ B as useFloat,
42
+ pe as useIdle,
43
+ A as useInView,
44
+ E as useIntersectionObserver,
45
+ r as useIsDesktop,
34
46
  s as useIsMobile,
35
47
  t as useIsTablet,
36
- j as useKeyPress,
37
- q as useKeyPressState,
38
- U as useLazyLoad,
39
- R as useLocalStorage,
48
+ W as useKeyPress,
49
+ j as useKeyPressState,
50
+ N as useLazyLoad,
51
+ Q as useLocalStorage,
52
+ ae as useLongPress,
40
53
  u as useMediaQuery,
41
- y as useParallax,
54
+ re as useOnline,
55
+ fe as usePageVisibility,
56
+ S as useParallax,
42
57
  p as usePrefersDark,
43
- a as usePrefersReducedMotion,
44
- L as usePulse,
45
- T as useShake,
46
- D as useSlide,
47
- z as useThrottle,
48
- F as useThrottledCallback
58
+ m as usePrefersReducedMotion,
59
+ g as usePulse,
60
+ L as useShake,
61
+ C as useSlide,
62
+ ee as useSpotlight,
63
+ w as useThrottle,
64
+ z as useThrottledCallback,
65
+ te as useWebSocket
49
66
  };
@@ -0,0 +1,2 @@
1
+ export { useBearComponent, useBC, BearComponentProvider, useBearComponentContext } from './useBearComponent';
2
+ export type { UseBearComponentReturn, BearComponentContextValue } from './useBearComponent.types';
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const B=require("react/jsx-runtime"),e=require("react"),p=e.createContext(null),k=({children:b,components:C={},variants:u={}})=>{const[t,a]=e.useState(C),[c,i]=e.useState(u),o=e.useCallback((n,g)=>{a(l=>({...l,[n]:{...l[n]||{},...g}}))},[]),s=e.useCallback((n,g)=>{i(l=>({...l,[n]:{...l[n]||{},...g}}))},[]),r=e.useCallback(n=>t[n],[t]),m=e.useCallback(n=>c[n],[c]),S=e.useCallback(()=>{a({}),i({})},[]),v=e.useMemo(()=>({components:t,variants:c,registerComponent:o,registerVariant:s,getComponentStyles:r,getVariantConfig:m,clearOverrides:S}),[t,c,o,s,r,m,S]);return B.jsx(p.Provider,{value:v,children:b})},y=()=>e.useContext(p),d=(b,C)=>{const u=e.useContext(p),t=u==null?void 0:u.components[b],a=e.useCallback((o="root")=>{const s=t,r=C,m=s==null?void 0:s[o];return{...(r==null?void 0:r[o])||{},...m||{}}},[t,C]),c=e.useCallback((o="root",s)=>({...a(o),...s||{}}),[a]),i=e.useMemo(()=>t!==void 0&&Object.keys(t).length>0,[t]);return{getStyles:a,mergeStyles:c,hasOverrides:i}},x=d;exports.BearComponentProvider=k;exports.useBC=x;exports.useBearComponent=d;exports.useBearComponentContext=y;