@thewhileloop/whileui 2.0.0 → 3.0.0

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 (56) hide show
  1. package/README.md +18 -5
  2. package/dist/blocks/commerce/metric-card.d.ts +9 -29
  3. package/dist/blocks/datepicker/date-range-picker-modal.d.ts +1 -1
  4. package/dist/blocks/datepicker/date-range-picker-modal.js +6 -14
  5. package/dist/blocks/datepicker/datepicker-modal.d.ts +1 -1
  6. package/dist/blocks/datepicker/datepicker-modal.js +6 -12
  7. package/dist/blocks/layout/smart-input.d.ts +3 -2
  8. package/dist/blocks/layout/smart-input.js +33 -18
  9. package/dist/blocks/media/smart-image.d.ts +39 -98
  10. package/dist/blocks/navigation/drawer-menu.js +88 -72
  11. package/dist/components/alert/alert.d.ts +23 -55
  12. package/dist/components/alert/alert.js +1 -1
  13. package/dist/components/alert-dialog/alert-dialog.js +1 -4
  14. package/dist/components/avatar/avatar.d.ts +18 -45
  15. package/dist/components/avatar/avatar.js +1 -1
  16. package/dist/components/badge/badge.d.ts +84 -212
  17. package/dist/components/button/button.d.ts +69 -188
  18. package/dist/components/card/card.d.ts +29 -73
  19. package/dist/components/card/card.js +1 -1
  20. package/dist/components/container/container.d.ts +24 -96
  21. package/dist/components/data-row/data-row.d.ts +18 -38
  22. package/dist/components/data-row/data-row.js +1 -1
  23. package/dist/components/form-field/form-field.d.ts +31 -87
  24. package/dist/components/form-field/form-field.js +1 -1
  25. package/dist/components/hover-card/hover-card.d.ts +3 -2
  26. package/dist/components/input/input.d.ts +12 -31
  27. package/dist/components/label/label.d.ts +3 -3
  28. package/dist/components/labeled-field/labeled-field.d.ts +3 -2
  29. package/dist/components/numeric-input/numeric-input.d.ts +27 -82
  30. package/dist/components/numeric-input/numeric-input.js +69 -78
  31. package/dist/components/otp-input/otp-input.d.ts +21 -65
  32. package/dist/components/popover/popover.d.ts +4 -3
  33. package/dist/components/pressable/pressable.d.ts +3 -3
  34. package/dist/components/progress/progress.d.ts +15 -39
  35. package/dist/components/row/row.d.ts +63 -163
  36. package/dist/components/segmented-control/segmented-control.d.ts +69 -241
  37. package/dist/components/select/select.d.ts +10 -22
  38. package/dist/components/select/select.js +2 -2
  39. package/dist/components/separator/separator.d.ts +3 -3
  40. package/dist/components/skeleton/skeleton.d.ts +9 -29
  41. package/dist/components/spinner/spinner.d.ts +12 -36
  42. package/dist/components/stack/stack.d.ts +63 -163
  43. package/dist/components/tabs/tabs.d.ts +9 -29
  44. package/dist/components/text/text.d.ts +51 -131
  45. package/dist/components/textarea/textarea.d.ts +15 -39
  46. package/dist/components/textarea/textarea.js +1 -1
  47. package/dist/components/toast/toast.d.ts +12 -36
  48. package/dist/components/toggle/toggle.d.ts +42 -138
  49. package/dist/components/toggle-group/toggle-group.d.ts +42 -138
  50. package/dist/components/tooltip/tooltip.d.ts +3 -2
  51. package/dist/components/view/view.d.ts +3 -3
  52. package/dist/lib/ref-types.d.ts +3 -0
  53. package/dist/lib/ref-types.js +1 -0
  54. package/dist/lib/theme-bridge.d.ts +4 -2
  55. package/dist/lib/theme-bridge.js +13 -9
  56. package/package.json +29 -28
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import React from 'react';
3
- import { TextInput } from 'react-native';
3
+ import { TextInput, } from 'react-native';
4
4
  import { cn } from '../../lib/cn';
5
5
  import { focusRing } from '../../lib/focus-ring';
6
6
  import { tv } from '../../lib/tv';
@@ -25,47 +25,23 @@ export interface ToastProviderProps {
25
25
  export declare function ToastProvider({ children }: ToastProviderProps): React.JSX.Element;
26
26
  declare const toastVariants: import("tailwind-variants").TVReturnType<{
27
27
  variant: {
28
- default: string;
29
- destructive: string;
30
- success: string;
28
+ default: "border-border bg-background";
29
+ destructive: "border-destructive bg-destructive";
30
+ success: "border-success bg-success";
31
31
  };
32
- }, undefined, "w-full flex-row items-center justify-between border", import("tailwind-variants/dist/config.js").TVConfig<{
32
+ }, undefined, "w-full flex-row items-center justify-between border", {
33
33
  variant: {
34
- default: string;
35
- destructive: string;
36
- success: string;
34
+ default: "border-border bg-background";
35
+ destructive: "border-destructive bg-destructive";
36
+ success: "border-success bg-success";
37
37
  };
38
- }, {
38
+ }, undefined, import("tailwind-variants").TVReturnTypeLike<{
39
39
  variant: {
40
- default: string;
41
- destructive: string;
42
- success: string;
40
+ default: "border-border bg-background";
41
+ destructive: "border-destructive bg-destructive";
42
+ success: "border-success bg-success";
43
43
  };
44
- }>, {
45
- variant: {
46
- default: string;
47
- destructive: string;
48
- success: string;
49
- };
50
- }, undefined, import("tailwind-variants").TVReturnType<{
51
- variant: {
52
- default: string;
53
- destructive: string;
54
- success: string;
55
- };
56
- }, undefined, "w-full flex-row items-center justify-between border", import("tailwind-variants/dist/config.js").TVConfig<{
57
- variant: {
58
- default: string;
59
- destructive: string;
60
- success: string;
61
- };
62
- }, {
63
- variant: {
64
- default: string;
65
- destructive: string;
66
- success: string;
67
- };
68
- }>, unknown, unknown, undefined>>;
44
+ }, undefined>>;
69
45
  export interface ToastProps extends ViewProps, VariantProps<typeof toastVariants> {
70
46
  toast: ToastData;
71
47
  onDismiss: () => void;
@@ -3,174 +3,78 @@ import { type PressableProps, type TextProps } from 'react-native';
3
3
  import { type VariantProps } from '../../lib/tv';
4
4
  declare const toggleVariants: import("tailwind-variants").TVReturnType<{
5
5
  variant: {
6
- default: string;
7
- outline: string;
6
+ default: "bg-transparent";
7
+ outline: "border border-input bg-transparent";
8
8
  };
9
9
  size: {
10
- default: string;
11
- sm: string;
12
- lg: string;
10
+ default: "";
11
+ sm: "";
12
+ lg: "";
13
13
  };
14
14
  pressed: {
15
- true: string;
16
- false: string;
15
+ true: "bg-accent";
16
+ false: "";
17
17
  };
18
- }, undefined, "inline-flex items-center justify-center active:bg-accent", import("tailwind-variants/dist/config.js").TVConfig<{
18
+ }, undefined, "inline-flex items-center justify-center active:bg-accent", {
19
19
  variant: {
20
- default: string;
21
- outline: string;
20
+ default: "bg-transparent";
21
+ outline: "border border-input bg-transparent";
22
22
  };
23
23
  size: {
24
- default: string;
25
- sm: string;
26
- lg: string;
24
+ default: "";
25
+ sm: "";
26
+ lg: "";
27
27
  };
28
28
  pressed: {
29
- true: string;
30
- false: string;
29
+ true: "bg-accent";
30
+ false: "";
31
31
  };
32
- }, {
32
+ }, undefined, import("tailwind-variants").TVReturnTypeLike<{
33
33
  variant: {
34
- default: string;
35
- outline: string;
34
+ default: "bg-transparent";
35
+ outline: "border border-input bg-transparent";
36
36
  };
37
37
  size: {
38
- default: string;
39
- sm: string;
40
- lg: string;
38
+ default: "";
39
+ sm: "";
40
+ lg: "";
41
41
  };
42
42
  pressed: {
43
- true: string;
44
- false: string;
43
+ true: "bg-accent";
44
+ false: "";
45
45
  };
46
- }>, {
47
- variant: {
48
- default: string;
49
- outline: string;
50
- };
51
- size: {
52
- default: string;
53
- sm: string;
54
- lg: string;
55
- };
56
- pressed: {
57
- true: string;
58
- false: string;
59
- };
60
- }, undefined, import("tailwind-variants").TVReturnType<{
61
- variant: {
62
- default: string;
63
- outline: string;
64
- };
65
- size: {
66
- default: string;
67
- sm: string;
68
- lg: string;
69
- };
70
- pressed: {
71
- true: string;
72
- false: string;
73
- };
74
- }, undefined, "inline-flex items-center justify-center active:bg-accent", import("tailwind-variants/dist/config.js").TVConfig<{
75
- variant: {
76
- default: string;
77
- outline: string;
78
- };
79
- size: {
80
- default: string;
81
- sm: string;
82
- lg: string;
83
- };
84
- pressed: {
85
- true: string;
86
- false: string;
87
- };
88
- }, {
89
- variant: {
90
- default: string;
91
- outline: string;
92
- };
93
- size: {
94
- default: string;
95
- sm: string;
96
- lg: string;
97
- };
98
- pressed: {
99
- true: string;
100
- false: string;
101
- };
102
- }>, unknown, unknown, undefined>>;
46
+ }, undefined>>;
103
47
  declare const toggleTextVariants: import("tailwind-variants").TVReturnType<{
104
48
  pressed: {
105
- true: string;
106
- false: string;
107
- };
108
- size: {
109
- default: string;
110
- sm: string;
111
- lg: string;
112
- };
113
- }, undefined, "font-medium", import("tailwind-variants/dist/config.js").TVConfig<{
114
- pressed: {
115
- true: string;
116
- false: string;
117
- };
118
- size: {
119
- default: string;
120
- sm: string;
121
- lg: string;
122
- };
123
- }, {
124
- pressed: {
125
- true: string;
126
- false: string;
127
- };
128
- size: {
129
- default: string;
130
- sm: string;
131
- lg: string;
132
- };
133
- }>, {
134
- pressed: {
135
- true: string;
136
- false: string;
137
- };
138
- size: {
139
- default: string;
140
- sm: string;
141
- lg: string;
142
- };
143
- }, undefined, import("tailwind-variants").TVReturnType<{
144
- pressed: {
145
- true: string;
146
- false: string;
49
+ true: "text-accent-foreground";
50
+ false: "text-muted-foreground";
147
51
  };
148
52
  size: {
149
- default: string;
150
- sm: string;
151
- lg: string;
53
+ default: "";
54
+ sm: "";
55
+ lg: "";
152
56
  };
153
- }, undefined, "font-medium", import("tailwind-variants/dist/config.js").TVConfig<{
57
+ }, undefined, "font-medium", {
154
58
  pressed: {
155
- true: string;
156
- false: string;
59
+ true: "text-accent-foreground";
60
+ false: "text-muted-foreground";
157
61
  };
158
62
  size: {
159
- default: string;
160
- sm: string;
161
- lg: string;
63
+ default: "";
64
+ sm: "";
65
+ lg: "";
162
66
  };
163
- }, {
67
+ }, undefined, import("tailwind-variants").TVReturnTypeLike<{
164
68
  pressed: {
165
- true: string;
166
- false: string;
69
+ true: "text-accent-foreground";
70
+ false: "text-muted-foreground";
167
71
  };
168
72
  size: {
169
- default: string;
170
- sm: string;
171
- lg: string;
73
+ default: "";
74
+ sm: "";
75
+ lg: "";
172
76
  };
173
- }>, unknown, unknown, undefined>>;
77
+ }, undefined>>;
174
78
  export interface ToggleProps extends Omit<PressableProps, 'children'> {
175
79
  pressed?: boolean;
176
80
  defaultPressed?: boolean;
@@ -3,174 +3,78 @@ import { type ViewProps, type PressableProps, type TextProps } from 'react-nativ
3
3
  type ToggleGroupType = 'single' | 'multiple';
4
4
  declare const toggleGroupItemVariants: import("tailwind-variants").TVReturnType<{
5
5
  variant: {
6
- default: string;
7
- outline: string;
6
+ default: "bg-transparent";
7
+ outline: "border border-input bg-transparent";
8
8
  };
9
9
  size: {
10
- default: string;
11
- sm: string;
12
- lg: string;
10
+ default: "";
11
+ sm: "";
12
+ lg: "";
13
13
  };
14
14
  pressed: {
15
- true: string;
16
- false: string;
15
+ true: "bg-accent";
16
+ false: "";
17
17
  };
18
- }, undefined, "inline-flex items-center justify-center", import("tailwind-variants/dist/config.js").TVConfig<{
18
+ }, undefined, "inline-flex items-center justify-center", {
19
19
  variant: {
20
- default: string;
21
- outline: string;
20
+ default: "bg-transparent";
21
+ outline: "border border-input bg-transparent";
22
22
  };
23
23
  size: {
24
- default: string;
25
- sm: string;
26
- lg: string;
24
+ default: "";
25
+ sm: "";
26
+ lg: "";
27
27
  };
28
28
  pressed: {
29
- true: string;
30
- false: string;
29
+ true: "bg-accent";
30
+ false: "";
31
31
  };
32
- }, {
32
+ }, undefined, import("tailwind-variants").TVReturnTypeLike<{
33
33
  variant: {
34
- default: string;
35
- outline: string;
34
+ default: "bg-transparent";
35
+ outline: "border border-input bg-transparent";
36
36
  };
37
37
  size: {
38
- default: string;
39
- sm: string;
40
- lg: string;
38
+ default: "";
39
+ sm: "";
40
+ lg: "";
41
41
  };
42
42
  pressed: {
43
- true: string;
44
- false: string;
43
+ true: "bg-accent";
44
+ false: "";
45
45
  };
46
- }>, {
47
- variant: {
48
- default: string;
49
- outline: string;
50
- };
51
- size: {
52
- default: string;
53
- sm: string;
54
- lg: string;
55
- };
56
- pressed: {
57
- true: string;
58
- false: string;
59
- };
60
- }, undefined, import("tailwind-variants").TVReturnType<{
61
- variant: {
62
- default: string;
63
- outline: string;
64
- };
65
- size: {
66
- default: string;
67
- sm: string;
68
- lg: string;
69
- };
70
- pressed: {
71
- true: string;
72
- false: string;
73
- };
74
- }, undefined, "inline-flex items-center justify-center", import("tailwind-variants/dist/config.js").TVConfig<{
75
- variant: {
76
- default: string;
77
- outline: string;
78
- };
79
- size: {
80
- default: string;
81
- sm: string;
82
- lg: string;
83
- };
84
- pressed: {
85
- true: string;
86
- false: string;
87
- };
88
- }, {
89
- variant: {
90
- default: string;
91
- outline: string;
92
- };
93
- size: {
94
- default: string;
95
- sm: string;
96
- lg: string;
97
- };
98
- pressed: {
99
- true: string;
100
- false: string;
101
- };
102
- }>, unknown, unknown, undefined>>;
46
+ }, undefined>>;
103
47
  declare const toggleGroupItemTextVariants: import("tailwind-variants").TVReturnType<{
104
48
  pressed: {
105
- true: string;
106
- false: string;
107
- };
108
- size: {
109
- default: string;
110
- sm: string;
111
- lg: string;
112
- };
113
- }, undefined, "font-medium", import("tailwind-variants/dist/config.js").TVConfig<{
114
- pressed: {
115
- true: string;
116
- false: string;
117
- };
118
- size: {
119
- default: string;
120
- sm: string;
121
- lg: string;
122
- };
123
- }, {
124
- pressed: {
125
- true: string;
126
- false: string;
127
- };
128
- size: {
129
- default: string;
130
- sm: string;
131
- lg: string;
132
- };
133
- }>, {
134
- pressed: {
135
- true: string;
136
- false: string;
137
- };
138
- size: {
139
- default: string;
140
- sm: string;
141
- lg: string;
142
- };
143
- }, undefined, import("tailwind-variants").TVReturnType<{
144
- pressed: {
145
- true: string;
146
- false: string;
49
+ true: "text-accent-foreground";
50
+ false: "text-muted-foreground";
147
51
  };
148
52
  size: {
149
- default: string;
150
- sm: string;
151
- lg: string;
53
+ default: "";
54
+ sm: "";
55
+ lg: "";
152
56
  };
153
- }, undefined, "font-medium", import("tailwind-variants/dist/config.js").TVConfig<{
57
+ }, undefined, "font-medium", {
154
58
  pressed: {
155
- true: string;
156
- false: string;
59
+ true: "text-accent-foreground";
60
+ false: "text-muted-foreground";
157
61
  };
158
62
  size: {
159
- default: string;
160
- sm: string;
161
- lg: string;
63
+ default: "";
64
+ sm: "";
65
+ lg: "";
162
66
  };
163
- }, {
67
+ }, undefined, import("tailwind-variants").TVReturnTypeLike<{
164
68
  pressed: {
165
- true: string;
166
- false: string;
69
+ true: "text-accent-foreground";
70
+ false: "text-muted-foreground";
167
71
  };
168
72
  size: {
169
- default: string;
170
- sm: string;
171
- lg: string;
73
+ default: "";
74
+ sm: "";
75
+ lg: "";
172
76
  };
173
- }>, unknown, unknown, undefined>>;
77
+ }, undefined>>;
174
78
  export interface ToggleGroupProps extends ViewProps {
175
79
  type?: ToggleGroupType;
176
80
  defaultValue?: string | string[];
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import * as TooltipPrimitive from '@rn-primitives/tooltip';
3
+ import type { ForwardRefComponent } from '../../lib/ref-types';
3
4
  export interface TooltipProps {
4
5
  onOpenChange?: (open: boolean) => void;
5
6
  delayDuration?: number;
@@ -15,6 +16,6 @@ export interface TooltipContentProps extends React.ComponentPropsWithoutRef<type
15
16
  portalHost?: string;
16
17
  }
17
18
  declare function Tooltip({ onOpenChange, delayDuration, skipDelayDuration, disableHoverableContent, children, }: TooltipProps): React.JSX.Element;
18
- declare const TooltipTrigger: React.ForwardRefExoticComponent<TooltipTriggerProps & React.RefAttributes<import("@rn-primitives/tooltip").TriggerRef>>;
19
- declare const TooltipContent: React.ForwardRefExoticComponent<TooltipContentProps & React.RefAttributes<import("react-native").View>>;
19
+ declare const TooltipTrigger: ForwardRefComponent<TooltipPrimitive.TriggerRef, TooltipTriggerProps>;
20
+ declare const TooltipContent: ForwardRefComponent<TooltipPrimitive.ContentRef, TooltipContentProps>;
20
21
  export { Tooltip, TooltipTrigger, TooltipContent };
@@ -1,6 +1,6 @@
1
- import React from 'react';
2
- import { View as RNView, type ViewProps as RNViewProps } from 'react-native';
1
+ import { type ViewInstance, type ViewProps as RNViewProps } from 'react-native';
2
+ import type { ForwardRefComponent } from '../../lib/ref-types';
3
3
  export interface ViewProps extends RNViewProps {
4
4
  }
5
- declare const View: React.ForwardRefExoticComponent<ViewProps & React.RefAttributes<RNView>>;
5
+ declare const View: ForwardRefComponent<ViewInstance, ViewProps>;
6
6
  export { View };
@@ -0,0 +1,3 @@
1
+ import type React from 'react';
2
+ /** A named public shape for ref-forwarding components under React Native's Strict API. */
3
+ export type ForwardRefComponent<TInstance, TProps> = React.ForwardRefExoticComponent<React.PropsWithoutRef<TProps> & React.RefAttributes<TInstance>>;
@@ -0,0 +1 @@
1
+ export {};
@@ -8,7 +8,6 @@ export interface ThemeBridgeProps {
8
8
  mode?: ThemeMode;
9
9
  initialMode?: ThemeMode;
10
10
  adapter?: ThemeBridgeAdapter;
11
- onModeChange?: (mode: ThemeMode) => void;
12
11
  }
13
12
  export interface UseThemeBridgeOptions {
14
13
  initialMode?: ThemeMode;
@@ -24,5 +23,8 @@ export declare function applyThemeMode(mode: ThemeMode): void;
24
23
  export declare function resolveThemeMode(adapter?: ThemeBridgeAdapter, fallback?: ThemeMode): Promise<ThemeMode>;
25
24
  export declare function syncThemeMode(mode: ThemeMode, adapter?: ThemeBridgeAdapter): Promise<ThemeMode>;
26
25
  export declare function useThemeBridge({ initialMode, adapter, }?: UseThemeBridgeOptions): UseThemeBridgeResult;
27
- export declare function ThemeBridge({ mode: controlledMode, initialMode, adapter, onModeChange, }: ThemeBridgeProps): null;
26
+ export declare function ThemeBridge({ mode, initialMode, adapter }: ThemeBridgeProps): import("react").FunctionComponentElement<Pick<ThemeBridgeProps, "initialMode" | "adapter">> | import("react").FunctionComponentElement<{
27
+ mode: ThemeMode;
28
+ adapter?: ThemeBridgeAdapter;
29
+ }>;
28
30
  export {};
@@ -1,4 +1,4 @@
1
- import { useCallback, useEffect, useMemo, useState } from 'react';
1
+ import { createElement, useCallback, useEffect, useMemo, useState } from 'react';
2
2
  import { Uniwind, useUniwind } from 'uniwind';
3
3
  const modeCycle = ['light', 'dark', 'system'];
4
4
  export function applyThemeMode(mode) {
@@ -74,14 +74,18 @@ export function useThemeBridge({ initialMode = 'system', adapter, } = {}) {
74
74
  cycleMode,
75
75
  }), [cycleMode, mode, theme]);
76
76
  }
77
- export function ThemeBridge({ mode: controlledMode, initialMode = 'system', adapter, onModeChange, }) {
78
- const { mode, setMode } = useThemeBridge({ initialMode, adapter });
79
- const effectiveMode = controlledMode ?? mode;
77
+ function ControlledThemeBridge({ mode, adapter, }) {
80
78
  useEffect(() => {
81
- setMode(effectiveMode);
82
- }, [effectiveMode, setMode]);
83
- useEffect(() => {
84
- onModeChange?.(effectiveMode);
85
- }, [effectiveMode, onModeChange]);
79
+ void syncThemeMode(mode, adapter);
80
+ }, [adapter, mode]);
81
+ return null;
82
+ }
83
+ function UncontrolledThemeBridge({ initialMode, adapter, }) {
84
+ useThemeBridge({ initialMode, adapter });
86
85
  return null;
87
86
  }
87
+ export function ThemeBridge({ mode, initialMode = 'system', adapter }) {
88
+ return mode === undefined
89
+ ? createElement(UncontrolledThemeBridge, { initialMode, adapter })
90
+ : createElement(ControlledThemeBridge, { mode, adapter });
91
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thewhileloop/whileui",
3
- "version": "2.0.0",
3
+ "version": "3.0.0",
4
4
  "description": "WhileUI Native — Copy-paste components for React Native. You own the code.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -60,25 +60,25 @@
60
60
  "test:watch": "jest --watch"
61
61
  },
62
62
  "peerDependencies": {
63
- "@rn-primitives/hooks": ">=1.0.0",
64
- "@rn-primitives/hover-card": ">=1.0.0",
65
- "@rn-primitives/popover": ">=1.0.0",
66
- "@rn-primitives/portal": ">=1.0.0",
67
- "@rn-primitives/select": ">=1.0.0",
68
- "@rn-primitives/slot": ">=1.0.0",
69
- "@rn-primitives/tooltip": ">=1.0.0",
70
- "expo": ">=57.0.0",
71
- "expo-blur": ">=57.0.0",
72
- "expo-image": ">=57.0.0",
73
- "react": ">=19.2.0",
74
- "react-native": ">=0.86.0",
75
- "react-native-gesture-handler": ">=2.32.0",
76
- "react-native-reanimated": ">=4.5.0",
77
- "react-native-safe-area-context": ">=5.7.0",
78
- "react-native-screens": ">=4.26.0",
63
+ "@rn-primitives/hooks": ">=1.5.2",
64
+ "@rn-primitives/hover-card": ">=1.5.2",
65
+ "@rn-primitives/popover": ">=1.5.2",
66
+ "@rn-primitives/portal": ">=1.5.3",
67
+ "@rn-primitives/select": ">=1.5.2",
68
+ "@rn-primitives/slot": ">=1.5.2",
69
+ "@rn-primitives/tooltip": ">=1.5.2",
70
+ "expo": ">=58.0.0",
71
+ "expo-blur": ">=58.0.0",
72
+ "expo-image": ">=58.0.0",
73
+ "react": ">=19.3.0",
74
+ "react-native": ">=0.88.0",
75
+ "react-native-gesture-handler": ">=3.3.0",
76
+ "react-native-reanimated": ">=4.7.0",
77
+ "react-native-safe-area-context": ">=5.10.0",
78
+ "react-native-screens": ">=4.30.0",
79
79
  "tailwindcss": ">=4.0.0",
80
80
  "uniwind": ">=1.12.0",
81
- "react-native-worklets": ">=0.10.0"
81
+ "react-native-worklets": ">=0.13.0"
82
82
  },
83
83
  "peerDependenciesMeta": {
84
84
  "expo-blur": {
@@ -89,19 +89,20 @@
89
89
  "clsx": "^2.1.0",
90
90
  "culori": "^4.0.2",
91
91
  "react-native-calendars": "^1.1314.0",
92
- "tailwind-merge": "^3.0.0",
93
- "tailwind-variants": "^0.3.0"
92
+ "tailwind-merge": "^3.7.0",
93
+ "tailwind-variants": "^3.3.1"
94
94
  },
95
95
  "devDependencies": {
96
- "@testing-library/react-native": "^14.0.1",
96
+ "@react-native/jest-preset": "0.88.0",
97
+ "@testing-library/react-native": "^14.1.0",
97
98
  "@types/culori": "^4.0.1",
98
- "@types/jest": "^29.5.14",
99
- "@types/react": "~19.2.0",
100
- "expo-image": "~57.0.5",
101
- "jest": "^29.7.0",
102
- "jest-expo": "~57.0.5",
103
- "react-native-screens": "~4.26.0",
104
- "test-renderer": "^1.2.0",
99
+ "@types/jest": "^30.0.0",
100
+ "@types/react": "~19.3.0",
101
+ "expo-image": "~58.0.15",
102
+ "jest": "^30.5.2",
103
+ "jest-expo": "~58.0.11",
104
+ "react-native-screens": "~4.30.0",
105
+ "test-renderer": "^1.3.1",
105
106
  "typescript": "~6.0.3"
106
107
  }
107
108
  }