@campxdev/react-native-blueprint 0.1.1 → 0.1.3

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 (78) hide show
  1. package/lib/module/app/_layout.js +1 -1
  2. package/lib/module/app/_layout.js.map +1 -1
  3. package/lib/module/components/ui/index.js +1 -0
  4. package/lib/module/components/ui/index.js.map +1 -1
  5. package/lib/module/global.css +417 -0
  6. package/lib/module/types/global.d.js +6 -0
  7. package/lib/module/types/global.d.js.map +1 -0
  8. package/lib/module/types/rn-primitives.d.js +6 -0
  9. package/lib/module/types/rn-primitives.d.js.map +1 -0
  10. package/lib/typescript/src/app/_layout.d.ts +7 -8
  11. package/lib/typescript/src/components/ui/Accordion.d.ts +103 -11
  12. package/lib/typescript/src/components/ui/Alert-Dialog.d.ts +167 -10
  13. package/lib/typescript/src/components/ui/Alert-Dialog.d.ts.map +1 -1
  14. package/lib/typescript/src/components/ui/Alert.d.ts +59 -10
  15. package/lib/typescript/src/components/ui/Avatar.d.ts +1350 -10
  16. package/lib/typescript/src/components/ui/Badge.d.ts +203 -10
  17. package/lib/typescript/src/components/ui/Bottom-Sheet.d.ts +43 -11
  18. package/lib/typescript/src/components/ui/Button.d.ts +175 -10
  19. package/lib/typescript/src/components/ui/Card.d.ts +853 -10
  20. package/lib/typescript/src/components/ui/Checkbox.d.ts +36 -11
  21. package/lib/typescript/src/components/ui/Collapsible.d.ts +1 -147
  22. package/lib/typescript/src/components/ui/Collapsible.d.ts.map +1 -1
  23. package/lib/typescript/src/components/ui/Context-Menu.d.ts +149 -10
  24. package/lib/typescript/src/components/ui/Context-Menu.d.ts.map +1 -1
  25. package/lib/typescript/src/components/ui/Custom-Card.d.ts +863 -10
  26. package/lib/typescript/src/components/ui/Dialog.d.ts +125 -10
  27. package/lib/typescript/src/components/ui/Dialog.d.ts.map +1 -1
  28. package/lib/typescript/src/components/ui/Dropdown-Menu.d.ts +283 -10
  29. package/lib/typescript/src/components/ui/Dropdown-Menu.d.ts.map +1 -1
  30. package/lib/typescript/src/components/ui/Greeting-Card.d.ts +152 -10
  31. package/lib/typescript/src/components/ui/Hover-Card.d.ts +67 -10
  32. package/lib/typescript/src/components/ui/Hover-Card.d.ts.map +1 -1
  33. package/lib/typescript/src/components/ui/Icon.d.ts +43 -11
  34. package/lib/typescript/src/components/ui/Input.d.ts +51 -10
  35. package/lib/typescript/src/components/ui/Label.d.ts +104 -10
  36. package/lib/typescript/src/components/ui/Menubar.d.ts +174 -10
  37. package/lib/typescript/src/components/ui/NavBar.d.ts +271 -9
  38. package/lib/typescript/src/components/ui/Popover.d.ts +70 -10
  39. package/lib/typescript/src/components/ui/Popover.d.ts.map +1 -1
  40. package/lib/typescript/src/components/ui/Progress.d.ts +27 -11
  41. package/lib/typescript/src/components/ui/Radio-Group.d.ts +47 -11
  42. package/lib/typescript/src/components/ui/Select.d.ts +106 -10
  43. package/lib/typescript/src/components/ui/Separator.d.ts +165 -10
  44. package/lib/typescript/src/components/ui/Skeleton.d.ts +40 -11
  45. package/lib/typescript/src/components/ui/Slider.d.ts +52 -8
  46. package/lib/typescript/src/components/ui/Switch.d.ts +34 -11
  47. package/lib/typescript/src/components/ui/Table.d.ts +69 -10
  48. package/lib/typescript/src/components/ui/Tabs.d.ts +51 -11
  49. package/lib/typescript/src/components/ui/Text.d.ts +115 -10
  50. package/lib/typescript/src/components/ui/Textarea.d.ts +60 -10
  51. package/lib/typescript/src/components/ui/Theme-Toggle.d.ts +193 -10
  52. package/lib/typescript/src/components/ui/Toast.d.ts +54 -10
  53. package/lib/typescript/src/components/ui/Toggle-Group.d.ts +48 -10
  54. package/lib/typescript/src/components/ui/Toggle.d.ts +52 -10
  55. package/lib/typescript/src/components/ui/Tooltip.d.ts +70 -10
  56. package/lib/typescript/src/components/ui/Tooltip.d.ts.map +1 -1
  57. package/lib/typescript/src/components/ui/index.d.ts +7 -2
  58. package/lib/typescript/src/components/ui/index.d.ts.map +1 -1
  59. package/lib/typescript/src/index.d.ts +7 -93
  60. package/lib/typescript/src/lib/ThemeProvider.d.ts +136 -13
  61. package/lib/typescript/src/lib/cornerRadius.d.ts +112 -21
  62. package/lib/typescript/src/lib/fonts.d.ts +21 -30
  63. package/lib/typescript/src/lib/theme.d.ts +86 -8
  64. package/lib/typescript/src/lib/utils.d.ts +111 -1
  65. package/package.json +2 -9
  66. package/src/app/_layout.tsx +1 -1
  67. package/src/components/ui/index.ts +1 -0
  68. package/src/global.css +417 -0
  69. package/src/types/global.d.ts +44 -0
  70. package/src/types/rn-primitives.d.ts +70 -0
  71. package/lib/typescript/babel.config.d.ts +0 -13
  72. package/lib/typescript/babel.config.d.ts.map +0 -1
  73. package/lib/typescript/metro.config.d.ts +0 -3
  74. package/lib/typescript/metro.config.d.ts.map +0 -1
  75. package/lib/typescript/src/components/ui/Floating-Action-Button.d.ts +0 -11
  76. package/lib/typescript/src/components/ui.d.ts +0 -49
  77. package/lib/typescript/tailwind.config.d.ts +0 -3
  78. package/lib/typescript/tailwind.config.d.ts.map +0 -1
@@ -1,11 +1,116 @@
1
1
  import * as React from 'react';
2
- import { ViewProps } from 'react-native';
3
-
4
- export interface TextProps extends ViewProps {
5
- className?: string;
6
- children?: React.ReactNode;
7
- [key: string]: any;
8
- }
9
-
10
- export const Text: React.ComponentType<TextProps>;
11
- export default Text;
2
+ /**
3
+ * Context for sharing text class styles with child Text components
4
+ * Used by components like Button, Card, Badge to automatically style nested Text
5
+ */
6
+ declare const TextClassContext: React.Context<string>;
7
+ /**
8
+ * Enhanced Text component with NativeWind styling support
9
+ *
10
+ * Extends React Native's Text with:
11
+ * - Automatic style inheritance from TextClassContext
12
+ * - NativeWind className support
13
+ * - Slot pattern support for composition
14
+ * - Web-specific selection styling
15
+ *
16
+ * @component
17
+ * @example
18
+ * ```tsx
19
+ * // Basic text
20
+ * <Text>Hello World</Text>
21
+ *
22
+ * // With custom styling
23
+ * <Text className="text-lg font-bold">Title</Text>
24
+ *
25
+ * // Inside a styled context (e.g., Button)
26
+ * <Button variant="default">
27
+ * <Text>Button Text</Text> // Automatically inherits button text styling
28
+ * </Button>
29
+ *
30
+ * // Using asChild for composition
31
+ * <Text asChild>
32
+ * <Link href="/home">Home</Link>
33
+ * </Text>
34
+ * ```
35
+ *
36
+ * @property {string} [className] - Additional Tailwind classes
37
+ * @property {boolean} [asChild] - When true, merges props into immediate child
38
+ */
39
+ declare const Text: React.ForwardRefExoticComponent<Omit<Omit<Readonly<Omit<Readonly<{
40
+ onPointerEnter?: (event: import("react-native").PointerEvent) => void;
41
+ onPointerLeave?: (event: import("react-native").PointerEvent) => void;
42
+ onPointerMove?: (event: import("react-native").PointerEvent) => void;
43
+ }>, "onMoveShouldSetResponder" | "onResponderGrant" | "onResponderMove" | "onResponderRelease" | "onResponderTerminate" | "onResponderTerminationRequest" | "onStartShouldSetResponder" | "children" | "disabled" | "onPress" | "onPressIn" | "onPressOut" | "onLongPress" | "id" | "onLayout" | "accessibilityLabel" | "accessible" | "testID" | "style" | "adjustsFontSizeToFit" | "dynamicTypeRamp" | "suppressHighlighting" | "lineBreakStrategyIOS" | "selectionColor" | "dataDetectorType" | "textBreakStrategy" | "minimumFontScale" | "onAccessibilityAction" | "allowFontScaling" | "android_hyphenationFrequency" | "ellipsizeMode" | "maxFontSizeMultiplier" | "nativeID" | "numberOfLines" | "onTextLayout" | "pressRetentionOffset" | "role" | "selectable" | "accessibilityIgnoresInvertColors" | "accessibilityViewIsModal" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "aria-modal" | "accessibilityElementsHidden" | "accessibilityLanguage" | "accessibilityRespondsToUserInteraction" | "accessibilityHint" | "aria-label" | "accessibilityRole" | "accessibilityState" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "accessibilityActions" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "aria-hidden" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "importantForAccessibility" | "screenReaderFocusable"> & Omit<import("react-native/types_generated/Libraries/Text/TextProps").TextPropsIOS, "onMoveShouldSetResponder" | "onResponderGrant" | "onResponderMove" | "onResponderRelease" | "onResponderTerminate" | "onResponderTerminationRequest" | "onStartShouldSetResponder" | "children" | "onPress" | "onPressIn" | "onPressOut" | "onLongPress" | "id" | "onLayout" | "accessibilityLabel" | "accessible" | "testID" | "style" | keyof import("react-native/types_generated/Libraries/Text/TextProps").TextPropsAndroid | "onAccessibilityAction" | "allowFontScaling" | "android_hyphenationFrequency" | "ellipsizeMode" | "maxFontSizeMultiplier" | "nativeID" | "numberOfLines" | "onTextLayout" | "pressRetentionOffset" | "role" | "selectable" | "accessibilityIgnoresInvertColors" | "accessibilityViewIsModal" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "aria-modal" | "accessibilityElementsHidden" | "accessibilityLanguage" | "accessibilityRespondsToUserInteraction" | "accessibilityHint" | "aria-label" | "accessibilityRole" | "accessibilityState" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "accessibilityActions" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "aria-hidden" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "importantForAccessibility" | "screenReaderFocusable"> & Omit<import("react-native/types_generated/Libraries/Text/TextProps").TextPropsAndroid, "onMoveShouldSetResponder" | "onResponderGrant" | "onResponderMove" | "onResponderRelease" | "onResponderTerminate" | "onResponderTerminationRequest" | "onStartShouldSetResponder" | "children" | "onPress" | "onPressIn" | "onPressOut" | "onLongPress" | "id" | "onLayout" | "accessibilityLabel" | "accessible" | "testID" | "style" | "onAccessibilityAction" | "allowFontScaling" | "android_hyphenationFrequency" | "ellipsizeMode" | "maxFontSizeMultiplier" | "nativeID" | "numberOfLines" | "onTextLayout" | "pressRetentionOffset" | "role" | "selectable" | "accessibilityIgnoresInvertColors" | "accessibilityViewIsModal" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "aria-modal" | "accessibilityElementsHidden" | "accessibilityLanguage" | "accessibilityRespondsToUserInteraction" | "accessibilityHint" | "aria-label" | "accessibilityRole" | "accessibilityState" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "accessibilityActions" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "aria-hidden" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "importantForAccessibility" | "screenReaderFocusable"> & Omit<Readonly<{
44
+ onAccessibilityAction?: ((event: import("react-native").AccessibilityActionEvent) => unknown) | undefined;
45
+ allowFontScaling?: boolean | undefined;
46
+ android_hyphenationFrequency?: ("normal" | "none" | "full") | undefined;
47
+ children?: React.ReactNode | undefined;
48
+ ellipsizeMode?: ("clip" | "head" | "middle" | "tail") | undefined;
49
+ id?: string;
50
+ maxFontSizeMultiplier?: number | undefined;
51
+ nativeID?: string | undefined;
52
+ numberOfLines?: number | undefined;
53
+ onLayout?: ((event: import("react-native").LayoutChangeEvent) => unknown) | undefined;
54
+ onLongPress?: ((event: import("react-native").GestureResponderEvent) => unknown) | undefined;
55
+ onPress?: ((event: import("react-native").GestureResponderEvent) => unknown) | undefined;
56
+ onPressIn?: ((event: import("react-native").GestureResponderEvent) => unknown) | undefined;
57
+ onPressOut?: ((event: import("react-native").GestureResponderEvent) => unknown) | undefined;
58
+ onResponderGrant?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
59
+ onResponderMove?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
60
+ onResponderRelease?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
61
+ onResponderTerminate?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
62
+ onResponderTerminationRequest?: (() => boolean) | undefined;
63
+ onStartShouldSetResponder?: (() => boolean) | undefined;
64
+ onMoveShouldSetResponder?: (() => boolean) | undefined;
65
+ onTextLayout?: ((event: import("react-native").TextLayoutEvent) => unknown) | undefined;
66
+ pressRetentionOffset?: import("react-native/types_generated/Libraries/Text/TextProps").PressRetentionOffset | undefined;
67
+ role?: import("react-native").Role | undefined;
68
+ selectable?: boolean | undefined;
69
+ style?: import("react-native/types_generated/Libraries/StyleSheet/StyleSheet").TextStyleProp | undefined;
70
+ testID?: string | undefined;
71
+ }>, "accessibilityLabel" | "accessible" | "role" | "accessibilityIgnoresInvertColors" | "accessibilityViewIsModal" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "aria-modal" | "accessibilityElementsHidden" | "accessibilityLanguage" | "accessibilityRespondsToUserInteraction" | "accessibilityHint" | "aria-label" | "accessibilityRole" | "accessibilityState" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "accessibilityActions" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "aria-hidden" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "importantForAccessibility" | "screenReaderFocusable"> & Omit<Readonly<Omit<Readonly<{
72
+ accessibilityLabelledBy?: (string | undefined) | (Array<string> | undefined);
73
+ "aria-labelledby"?: string | undefined;
74
+ accessibilityLiveRegion?: ("none" | "polite" | "assertive") | undefined;
75
+ "aria-live"?: ("polite" | "assertive" | "off") | undefined;
76
+ importantForAccessibility?: ("auto" | "yes" | "no" | "no-hide-descendants") | undefined;
77
+ screenReaderFocusable?: boolean;
78
+ }>, "accessibilityLabel" | "accessible" | "role" | "accessibilityIgnoresInvertColors" | "accessibilityViewIsModal" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "aria-modal" | "accessibilityElementsHidden" | "accessibilityLanguage" | "accessibilityRespondsToUserInteraction" | "accessibilityHint" | "aria-label" | "accessibilityRole" | "accessibilityState" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "accessibilityActions" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "aria-hidden"> & Omit<Readonly<{
79
+ accessibilityIgnoresInvertColors?: boolean | undefined;
80
+ accessibilityViewIsModal?: boolean | undefined;
81
+ accessibilityShowsLargeContentViewer?: boolean | undefined;
82
+ accessibilityLargeContentTitle?: string | undefined;
83
+ "aria-modal"?: boolean | undefined;
84
+ accessibilityElementsHidden?: boolean | undefined;
85
+ accessibilityLanguage?: string | undefined;
86
+ accessibilityRespondsToUserInteraction?: boolean | undefined;
87
+ }>, "accessibilityLabel" | "accessible" | "role" | "accessibilityHint" | "aria-label" | "accessibilityRole" | "accessibilityState" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "accessibilityActions" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "aria-hidden"> & {
88
+ accessible?: boolean | undefined;
89
+ accessibilityLabel?: string | undefined;
90
+ accessibilityHint?: string | undefined;
91
+ "aria-label"?: string | undefined;
92
+ accessibilityRole?: import("react-native").AccessibilityRole | undefined;
93
+ role?: import("react-native").Role | undefined;
94
+ accessibilityState?: import("react-native").AccessibilityState | undefined;
95
+ accessibilityValue?: import("react-native").AccessibilityValue | undefined;
96
+ "aria-valuemax"?: import("react-native").AccessibilityValue["max"] | undefined;
97
+ "aria-valuemin"?: import("react-native").AccessibilityValue["min"] | undefined;
98
+ "aria-valuenow"?: import("react-native").AccessibilityValue["now"] | undefined;
99
+ "aria-valuetext"?: import("react-native").AccessibilityValue["text"] | undefined;
100
+ accessibilityActions?: ReadonlyArray<import("react-native/types_generated/Libraries/Components/View/ViewAccessibility").AccessibilityActionInfo> | undefined;
101
+ "aria-busy"?: boolean | undefined;
102
+ "aria-checked"?: (boolean | undefined) | "mixed";
103
+ "aria-disabled"?: boolean | undefined;
104
+ "aria-expanded"?: boolean | undefined;
105
+ "aria-selected"?: boolean | undefined;
106
+ "aria-hidden"?: boolean | undefined;
107
+ }>, never>>, "ref"> & {
108
+ ref?: React.Ref<import("react-native/types_generated/src/private/types/HostInstance").LegacyHostInstanceMethods>;
109
+ }, "ref"> & {
110
+ asChild?: boolean;
111
+ } & {
112
+ className?: string;
113
+ children?: React.ReactNode;
114
+ } & React.RefAttributes<import("react-native/types_generated/src/private/types/HostInstance").LegacyHostInstanceMethods>>;
115
+ export { Text, TextClassContext };
116
+ //# sourceMappingURL=Text.d.ts.map
@@ -1,11 +1,61 @@
1
- import * as React from 'react';
2
- import { ViewProps } from 'react-native';
3
-
4
- export interface TextareaProps extends ViewProps {
5
- className?: string;
6
- children?: React.ReactNode;
7
- [key: string]: any;
1
+ import { TextInput, type TextInputProps } from 'react-native';
2
+ /**
3
+ * Props for Textarea component
4
+ *
5
+ * @extends TextInputProps - All React Native TextInput properties
6
+ * @property {string} [className] - Additional Tailwind classes for styling
7
+ * @property {string} [placeholderClassName] - Tailwind classes for placeholder text styling
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * <Textarea
12
+ * placeholder="Enter your message"
13
+ * value={message}
14
+ * onChangeText={setMessage}
15
+ * numberOfLines={4}
16
+ * />
17
+ * ```
18
+ */
19
+ interface TextareaProps extends TextInputProps {
20
+ className?: string;
21
+ placeholderClassName?: string;
8
22
  }
9
-
10
- export const Textarea: React.ComponentType<TextareaProps>;
11
- export default Textarea;
23
+ /**
24
+ * Multi-line text input component
25
+ *
26
+ * A textarea component for longer text input with configurable height and styling.
27
+ * Automatically configured for multi-line input with appropriate platform-specific defaults.
28
+ *
29
+ * @component
30
+ * @example
31
+ * ```tsx
32
+ * // Basic textarea
33
+ * <Textarea
34
+ * placeholder="Enter description"
35
+ * value={description}
36
+ * onChangeText={setDescription}
37
+ * />
38
+ *
39
+ * // Controlled textarea with validation
40
+ * <Textarea
41
+ * value={bio}
42
+ * onChangeText={setBio}
43
+ * placeholder="Tell us about yourself"
44
+ * numberOfLines={6}
45
+ * maxLength={500}
46
+ * />
47
+ *
48
+ * // Disabled textarea
49
+ * <Textarea value={content} editable={false} />
50
+ * ```
51
+ *
52
+ * @accessibility
53
+ * - Supports standard TextInput accessibility props
54
+ * - Placeholder text with appropriate color contrast
55
+ * - Focus states on web for keyboard navigation
56
+ * - Disabled state with reduced opacity
57
+ */
58
+ declare function Textarea({ className, multiline, numberOfLines, placeholderClassName, editable, ...props }: TextareaProps & React.RefAttributes<TextInput>): import("react/jsx-runtime").JSX.Element;
59
+ export { Textarea };
60
+ export type { TextareaProps };
61
+ //# sourceMappingURL=Textarea.d.ts.map
@@ -1,11 +1,194 @@
1
1
  import * as React from 'react';
2
- import { ViewProps } from 'react-native';
3
-
4
- export interface Theme-ToggleProps extends ViewProps {
5
- className?: string;
6
- children?: React.ReactNode;
7
- [key: string]: any;
8
- }
9
-
10
- export const Theme-Toggle: React.ComponentType<Theme-ToggleProps>;
11
- export default Theme-Toggle;
2
+ import type { SlottableViewProps } from '@rn-primitives/types';
3
+ /**
4
+ * Theme toggle button variants
5
+ */
6
+ type ThemeToggleVariant = 'icon' | 'button' | 'segmented';
7
+ /**
8
+ * Props for ThemeToggle component
9
+ *
10
+ * @property {'icon' | 'button' | 'segmented'} [variant='icon'] - Visual style variant
11
+ * @property {boolean} [showLabel=false] - Show text label next to icon (for button variant)
12
+ * @property {string} [className] - Additional Tailwind classes
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * // Icon only (default)
17
+ * <ThemeToggle />
18
+ *
19
+ * // Button with label
20
+ * <ThemeToggle variant="button" showLabel />
21
+ *
22
+ * // Segmented control
23
+ * <ThemeToggle variant="segmented" />
24
+ * ```
25
+ */
26
+ type ThemeToggleProps = SlottableViewProps & {
27
+ variant?: ThemeToggleVariant;
28
+ showLabel?: boolean;
29
+ className?: string;
30
+ };
31
+ /**
32
+ * Theme toggle component for switching between light, dark, and system themes
33
+ *
34
+ * Provides three variants:
35
+ * - **icon**: Simple icon button that cycles through themes (light → dark → system)
36
+ * - **button**: Button with icon and optional label
37
+ * - **segmented**: Segmented control showing all three options
38
+ *
39
+ * @component
40
+ * @example
41
+ * ```tsx
42
+ * // Icon toggle (minimal)
43
+ * <ThemeToggle />
44
+ *
45
+ * // Button with label
46
+ * <ThemeToggle variant="button" showLabel />
47
+ *
48
+ * // Segmented control (shows all options)
49
+ * <ThemeToggle variant="segmented" />
50
+ *
51
+ * // Custom styling
52
+ * <ThemeToggle className="my-4" />
53
+ * ```
54
+ *
55
+ * @accessibility
56
+ * - Proper button role for screen readers
57
+ * - Announces current theme state
58
+ * - Keyboard navigable on web
59
+ */
60
+ declare const ThemeToggle: React.ForwardRefExoticComponent<Omit<Omit<Readonly<Omit<Readonly<{
61
+ onAccessibilityAction?: ((event: import("react-native").AccessibilityActionEvent) => unknown) | undefined;
62
+ onAccessibilityTap?: (() => unknown) | undefined;
63
+ onLayout?: ((event: import("react-native").LayoutChangeEvent) => unknown) | undefined;
64
+ onMagicTap?: (() => unknown) | undefined;
65
+ onAccessibilityEscape?: (() => unknown) | undefined;
66
+ }>, "onMoveShouldSetResponder" | "onMoveShouldSetResponderCapture" | "onResponderGrant" | "onResponderMove" | "onResponderReject" | "onResponderRelease" | "onResponderStart" | "onResponderEnd" | "onResponderTerminate" | "onResponderTerminationRequest" | "onStartShouldSetResponder" | "onStartShouldSetResponderCapture" | "pointerEvents" | "hitSlop" | "children" | "id" | "accessibilityLabel" | "accessible" | "testID" | "style" | "nativeID" | "role" | "accessibilityIgnoresInvertColors" | "accessibilityViewIsModal" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "aria-modal" | "accessibilityElementsHidden" | "accessibilityLanguage" | "accessibilityRespondsToUserInteraction" | "accessibilityHint" | "aria-label" | "accessibilityRole" | "accessibilityState" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "accessibilityActions" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "aria-hidden" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "importantForAccessibility" | "screenReaderFocusable" | "onPointerEnter" | "onPointerLeave" | "onPointerMove" | "onClick" | "onMouseEnter" | "onMouseLeave" | "onClickCapture" | "onPointerEnterCapture" | "onPointerLeaveCapture" | "onPointerMoveCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onBlur" | "onBlurCapture" | "onFocus" | "onFocusCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "nativeBackgroundAndroid" | "nativeForegroundAndroid" | "renderToHardwareTextureAndroid" | "hasTVPreferredFocus" | "nextFocusDown" | "nextFocusForward" | "nextFocusLeft" | "nextFocusRight" | "nextFocusUp" | "focusable" | "tabIndex" | "shouldRasterizeIOS" | "collapsable" | "collapsableChildren" | "needsOffscreenAlphaCompositing" | "removeClippedSubviews" | "experimental_accessibilityOrder"> & Omit<Readonly<{
67
+ onMoveShouldSetResponder?: ((e: import("react-native").GestureResponderEvent) => boolean) | undefined;
68
+ onMoveShouldSetResponderCapture?: ((e: import("react-native").GestureResponderEvent) => boolean) | undefined;
69
+ onResponderGrant?: ((e: import("react-native").GestureResponderEvent) => void | boolean) | undefined;
70
+ onResponderMove?: ((e: import("react-native").GestureResponderEvent) => void) | undefined;
71
+ onResponderReject?: ((e: import("react-native").GestureResponderEvent) => void) | undefined;
72
+ onResponderRelease?: ((e: import("react-native").GestureResponderEvent) => void) | undefined;
73
+ onResponderStart?: ((e: import("react-native").GestureResponderEvent) => void) | undefined;
74
+ onResponderEnd?: ((e: import("react-native").GestureResponderEvent) => void) | undefined;
75
+ onResponderTerminate?: ((e: import("react-native").GestureResponderEvent) => void) | undefined;
76
+ onResponderTerminationRequest?: ((e: import("react-native").GestureResponderEvent) => boolean) | undefined;
77
+ onStartShouldSetResponder?: ((e: import("react-native").GestureResponderEvent) => boolean) | undefined;
78
+ onStartShouldSetResponderCapture?: ((e: import("react-native").GestureResponderEvent) => boolean) | undefined;
79
+ }>, "pointerEvents" | "hitSlop" | "children" | "id" | "accessibilityLabel" | "accessible" | "testID" | "style" | "nativeID" | "role" | "accessibilityIgnoresInvertColors" | "accessibilityViewIsModal" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "aria-modal" | "accessibilityElementsHidden" | "accessibilityLanguage" | "accessibilityRespondsToUserInteraction" | "accessibilityHint" | "aria-label" | "accessibilityRole" | "accessibilityState" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "accessibilityActions" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "aria-hidden" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "importantForAccessibility" | "screenReaderFocusable" | "onPointerEnter" | "onPointerLeave" | "onPointerMove" | "onClick" | "onMouseEnter" | "onMouseLeave" | "onClickCapture" | "onPointerEnterCapture" | "onPointerLeaveCapture" | "onPointerMoveCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onBlur" | "onBlurCapture" | "onFocus" | "onFocusCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "nativeBackgroundAndroid" | "nativeForegroundAndroid" | "renderToHardwareTextureAndroid" | "hasTVPreferredFocus" | "nextFocusDown" | "nextFocusForward" | "nextFocusLeft" | "nextFocusRight" | "nextFocusUp" | "focusable" | "tabIndex" | "shouldRasterizeIOS" | "collapsable" | "collapsableChildren" | "needsOffscreenAlphaCompositing" | "removeClippedSubviews" | "experimental_accessibilityOrder"> & Omit<Readonly<{
80
+ onMouseEnter?: ((event: import("react-native").MouseEvent) => void) | undefined;
81
+ onMouseLeave?: ((event: import("react-native").MouseEvent) => void) | undefined;
82
+ }>, "pointerEvents" | "hitSlop" | "children" | "id" | "accessibilityLabel" | "accessible" | "testID" | "style" | "nativeID" | "role" | "accessibilityIgnoresInvertColors" | "accessibilityViewIsModal" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "aria-modal" | "accessibilityElementsHidden" | "accessibilityLanguage" | "accessibilityRespondsToUserInteraction" | "accessibilityHint" | "aria-label" | "accessibilityRole" | "accessibilityState" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "accessibilityActions" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "aria-hidden" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "importantForAccessibility" | "screenReaderFocusable" | "onPointerEnter" | "onPointerLeave" | "onPointerMove" | "onClick" | "onClickCapture" | "onPointerEnterCapture" | "onPointerLeaveCapture" | "onPointerMoveCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onBlur" | "onBlurCapture" | "onFocus" | "onFocusCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "nativeBackgroundAndroid" | "nativeForegroundAndroid" | "renderToHardwareTextureAndroid" | "hasTVPreferredFocus" | "nextFocusDown" | "nextFocusForward" | "nextFocusLeft" | "nextFocusRight" | "nextFocusUp" | "focusable" | "tabIndex" | "shouldRasterizeIOS" | "collapsable" | "collapsableChildren" | "needsOffscreenAlphaCompositing" | "removeClippedSubviews" | "experimental_accessibilityOrder"> & Omit<Readonly<{
83
+ onClick?: ((event: import("react-native").PointerEvent) => void) | undefined;
84
+ onClickCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
85
+ onPointerEnter?: ((event: import("react-native").PointerEvent) => void) | undefined;
86
+ onPointerEnterCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
87
+ onPointerLeave?: ((event: import("react-native").PointerEvent) => void) | undefined;
88
+ onPointerLeaveCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
89
+ onPointerMove?: ((event: import("react-native").PointerEvent) => void) | undefined;
90
+ onPointerMoveCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
91
+ onPointerCancel?: ((e: import("react-native").PointerEvent) => void) | undefined;
92
+ onPointerCancelCapture?: ((e: import("react-native").PointerEvent) => void) | undefined;
93
+ onPointerDown?: ((e: import("react-native").PointerEvent) => void) | undefined;
94
+ onPointerDownCapture?: ((e: import("react-native").PointerEvent) => void) | undefined;
95
+ onPointerUp?: ((e: import("react-native").PointerEvent) => void) | undefined;
96
+ onPointerUpCapture?: ((e: import("react-native").PointerEvent) => void) | undefined;
97
+ onPointerOver?: ((e: import("react-native").PointerEvent) => void) | undefined;
98
+ onPointerOverCapture?: ((e: import("react-native").PointerEvent) => void) | undefined;
99
+ onPointerOut?: ((e: import("react-native").PointerEvent) => void) | undefined;
100
+ onPointerOutCapture?: ((e: import("react-native").PointerEvent) => void) | undefined;
101
+ onGotPointerCapture?: ((e: import("react-native").PointerEvent) => void) | undefined;
102
+ onGotPointerCaptureCapture?: ((e: import("react-native").PointerEvent) => void) | undefined;
103
+ onLostPointerCapture?: ((e: import("react-native").PointerEvent) => void) | undefined;
104
+ onLostPointerCaptureCapture?: ((e: import("react-native").PointerEvent) => void) | undefined;
105
+ }>, "pointerEvents" | "hitSlop" | "children" | "id" | "accessibilityLabel" | "accessible" | "testID" | "style" | "nativeID" | "role" | "accessibilityIgnoresInvertColors" | "accessibilityViewIsModal" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "aria-modal" | "accessibilityElementsHidden" | "accessibilityLanguage" | "accessibilityRespondsToUserInteraction" | "accessibilityHint" | "aria-label" | "accessibilityRole" | "accessibilityState" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "accessibilityActions" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "aria-hidden" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "importantForAccessibility" | "screenReaderFocusable" | "onClick" | "onBlur" | "onBlurCapture" | "onFocus" | "onFocusCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "nativeBackgroundAndroid" | "nativeForegroundAndroid" | "renderToHardwareTextureAndroid" | "hasTVPreferredFocus" | "nextFocusDown" | "nextFocusForward" | "nextFocusLeft" | "nextFocusRight" | "nextFocusUp" | "focusable" | "tabIndex" | "shouldRasterizeIOS" | "collapsable" | "collapsableChildren" | "needsOffscreenAlphaCompositing" | "removeClippedSubviews" | "experimental_accessibilityOrder"> & Omit<Readonly<{
106
+ onBlur?: ((event: import("react-native").BlurEvent) => void) | undefined;
107
+ onBlurCapture?: ((event: import("react-native").BlurEvent) => void) | undefined;
108
+ onFocus?: ((event: import("react-native").FocusEvent) => void) | undefined;
109
+ onFocusCapture?: ((event: import("react-native").FocusEvent) => void) | undefined;
110
+ }>, "pointerEvents" | "hitSlop" | "children" | "id" | "accessibilityLabel" | "accessible" | "testID" | "style" | "nativeID" | "role" | "accessibilityIgnoresInvertColors" | "accessibilityViewIsModal" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "aria-modal" | "accessibilityElementsHidden" | "accessibilityLanguage" | "accessibilityRespondsToUserInteraction" | "accessibilityHint" | "aria-label" | "accessibilityRole" | "accessibilityState" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "accessibilityActions" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "aria-hidden" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "importantForAccessibility" | "screenReaderFocusable" | "onClick" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "nativeBackgroundAndroid" | "nativeForegroundAndroid" | "renderToHardwareTextureAndroid" | "hasTVPreferredFocus" | "nextFocusDown" | "nextFocusForward" | "nextFocusLeft" | "nextFocusRight" | "nextFocusUp" | "focusable" | "tabIndex" | "shouldRasterizeIOS" | "collapsable" | "collapsableChildren" | "needsOffscreenAlphaCompositing" | "removeClippedSubviews" | "experimental_accessibilityOrder"> & Omit<Readonly<{
111
+ onTouchCancel?: ((e: import("react-native").GestureResponderEvent) => void) | undefined;
112
+ onTouchCancelCapture?: ((e: import("react-native").GestureResponderEvent) => void) | undefined;
113
+ onTouchEnd?: ((e: import("react-native").GestureResponderEvent) => void) | undefined;
114
+ onTouchEndCapture?: ((e: import("react-native").GestureResponderEvent) => void) | undefined;
115
+ onTouchMove?: ((e: import("react-native").GestureResponderEvent) => void) | undefined;
116
+ onTouchMoveCapture?: ((e: import("react-native").GestureResponderEvent) => void) | undefined;
117
+ onTouchStart?: ((e: import("react-native").GestureResponderEvent) => void) | undefined;
118
+ onTouchStartCapture?: ((e: import("react-native").GestureResponderEvent) => void) | undefined;
119
+ }>, "pointerEvents" | "hitSlop" | "children" | "id" | "accessibilityLabel" | "accessible" | "testID" | "style" | "nativeID" | "role" | "accessibilityIgnoresInvertColors" | "accessibilityViewIsModal" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "aria-modal" | "accessibilityElementsHidden" | "accessibilityLanguage" | "accessibilityRespondsToUserInteraction" | "accessibilityHint" | "aria-label" | "accessibilityRole" | "accessibilityState" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "accessibilityActions" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "aria-hidden" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "importantForAccessibility" | "screenReaderFocusable" | "onClick" | "nativeBackgroundAndroid" | "nativeForegroundAndroid" | "renderToHardwareTextureAndroid" | "hasTVPreferredFocus" | "nextFocusDown" | "nextFocusForward" | "nextFocusLeft" | "nextFocusRight" | "nextFocusUp" | "focusable" | "tabIndex" | "shouldRasterizeIOS" | "collapsable" | "collapsableChildren" | "needsOffscreenAlphaCompositing" | "removeClippedSubviews" | "experimental_accessibilityOrder"> & Omit<Readonly<{
120
+ nativeBackgroundAndroid?: import("react-native/types_generated/Libraries/Components/View/ViewPropTypes").AndroidDrawable | undefined;
121
+ nativeForegroundAndroid?: import("react-native/types_generated/Libraries/Components/View/ViewPropTypes").AndroidDrawable | undefined;
122
+ renderToHardwareTextureAndroid?: boolean | undefined;
123
+ hasTVPreferredFocus?: boolean | undefined;
124
+ nextFocusDown?: number | undefined;
125
+ nextFocusForward?: number | undefined;
126
+ nextFocusLeft?: number | undefined;
127
+ nextFocusRight?: number | undefined;
128
+ nextFocusUp?: number | undefined;
129
+ focusable?: boolean | undefined;
130
+ tabIndex?: 0 | -1;
131
+ onClick?: ((event: import("react-native").GestureResponderEvent) => unknown) | undefined;
132
+ }>, "pointerEvents" | "hitSlop" | "children" | "id" | "accessibilityLabel" | "accessible" | "testID" | "style" | "nativeID" | "role" | "accessibilityIgnoresInvertColors" | "accessibilityViewIsModal" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "aria-modal" | "accessibilityElementsHidden" | "accessibilityLanguage" | "accessibilityRespondsToUserInteraction" | "accessibilityHint" | "aria-label" | "accessibilityRole" | "accessibilityState" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "accessibilityActions" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "aria-hidden" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "importantForAccessibility" | "screenReaderFocusable" | "shouldRasterizeIOS" | "collapsable" | "collapsableChildren" | "needsOffscreenAlphaCompositing" | "removeClippedSubviews" | "experimental_accessibilityOrder"> & Omit<Readonly<{
133
+ shouldRasterizeIOS?: boolean | undefined;
134
+ }>, "pointerEvents" | "hitSlop" | "children" | "id" | "accessibilityLabel" | "accessible" | "testID" | "style" | "nativeID" | "role" | "accessibilityIgnoresInvertColors" | "accessibilityViewIsModal" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "aria-modal" | "accessibilityElementsHidden" | "accessibilityLanguage" | "accessibilityRespondsToUserInteraction" | "accessibilityHint" | "aria-label" | "accessibilityRole" | "accessibilityState" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "accessibilityActions" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "aria-hidden" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "importantForAccessibility" | "screenReaderFocusable" | "collapsable" | "collapsableChildren" | "needsOffscreenAlphaCompositing" | "removeClippedSubviews" | "experimental_accessibilityOrder"> & Omit<Readonly<Omit<Readonly<{
135
+ accessibilityLabelledBy?: (string | undefined) | (Array<string> | undefined);
136
+ "aria-labelledby"?: string | undefined;
137
+ accessibilityLiveRegion?: ("none" | "polite" | "assertive") | undefined;
138
+ "aria-live"?: ("polite" | "assertive" | "off") | undefined;
139
+ importantForAccessibility?: ("auto" | "yes" | "no" | "no-hide-descendants") | undefined;
140
+ screenReaderFocusable?: boolean;
141
+ }>, "accessibilityLabel" | "accessible" | "role" | "accessibilityIgnoresInvertColors" | "accessibilityViewIsModal" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "aria-modal" | "accessibilityElementsHidden" | "accessibilityLanguage" | "accessibilityRespondsToUserInteraction" | "accessibilityHint" | "aria-label" | "accessibilityRole" | "accessibilityState" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "accessibilityActions" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "aria-hidden"> & Omit<Readonly<{
142
+ accessibilityIgnoresInvertColors?: boolean | undefined;
143
+ accessibilityViewIsModal?: boolean | undefined;
144
+ accessibilityShowsLargeContentViewer?: boolean | undefined;
145
+ accessibilityLargeContentTitle?: string | undefined;
146
+ "aria-modal"?: boolean | undefined;
147
+ accessibilityElementsHidden?: boolean | undefined;
148
+ accessibilityLanguage?: string | undefined;
149
+ accessibilityRespondsToUserInteraction?: boolean | undefined;
150
+ }>, "accessibilityLabel" | "accessible" | "role" | "accessibilityHint" | "aria-label" | "accessibilityRole" | "accessibilityState" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "accessibilityActions" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "aria-hidden"> & {
151
+ accessible?: boolean | undefined;
152
+ accessibilityLabel?: string | undefined;
153
+ accessibilityHint?: string | undefined;
154
+ "aria-label"?: string | undefined;
155
+ accessibilityRole?: import("react-native").AccessibilityRole | undefined;
156
+ role?: import("react-native").Role | undefined;
157
+ accessibilityState?: import("react-native").AccessibilityState | undefined;
158
+ accessibilityValue?: import("react-native").AccessibilityValue | undefined;
159
+ "aria-valuemax"?: import("react-native").AccessibilityValue["max"] | undefined;
160
+ "aria-valuemin"?: import("react-native").AccessibilityValue["min"] | undefined;
161
+ "aria-valuenow"?: import("react-native").AccessibilityValue["now"] | undefined;
162
+ "aria-valuetext"?: import("react-native").AccessibilityValue["text"] | undefined;
163
+ accessibilityActions?: ReadonlyArray<import("react-native/types_generated/Libraries/Components/View/ViewAccessibility").AccessibilityActionInfo> | undefined;
164
+ "aria-busy"?: boolean | undefined;
165
+ "aria-checked"?: (boolean | undefined) | "mixed";
166
+ "aria-disabled"?: boolean | undefined;
167
+ "aria-expanded"?: boolean | undefined;
168
+ "aria-selected"?: boolean | undefined;
169
+ "aria-hidden"?: boolean | undefined;
170
+ }>, "pointerEvents" | "hitSlop" | "children" | "id" | "testID" | "style" | "nativeID" | "collapsable" | "collapsableChildren" | "needsOffscreenAlphaCompositing" | "removeClippedSubviews" | "experimental_accessibilityOrder"> & Omit<Readonly<{
171
+ children?: React.ReactNode;
172
+ style?: import("react-native/types_generated/Libraries/StyleSheet/StyleSheet").ViewStyleProp | undefined;
173
+ collapsable?: boolean | undefined;
174
+ collapsableChildren?: boolean | undefined;
175
+ id?: string;
176
+ testID?: string | undefined;
177
+ nativeID?: string | undefined;
178
+ needsOffscreenAlphaCompositing?: boolean | undefined;
179
+ hitSlop?: import("react-native/types_generated/Libraries/StyleSheet/EdgeInsetsPropType").EdgeInsetsOrSizeProp | undefined;
180
+ pointerEvents?: ("auto" | "box-none" | "box-only" | "none") | undefined;
181
+ removeClippedSubviews?: boolean | undefined;
182
+ experimental_accessibilityOrder?: Array<string> | undefined;
183
+ }>, never>>, "ref"> & {
184
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
185
+ }, "ref"> & {
186
+ asChild?: boolean;
187
+ } & {
188
+ variant?: ThemeToggleVariant;
189
+ showLabel?: boolean;
190
+ className?: string;
191
+ } & React.RefAttributes<import("react-native/types_generated/src/private/types/HostInstance").LegacyHostInstanceMethods>>;
192
+ export { ThemeToggle };
193
+ export type { ThemeToggleProps, ThemeToggleVariant };
194
+ //# sourceMappingURL=Theme-Toggle.d.ts.map
@@ -1,11 +1,55 @@
1
+ import { Text } from './Text';
2
+ import type { LucideIcon } from 'lucide-react-native';
1
3
  import * as React from 'react';
2
- import { ViewProps } from 'react-native';
3
-
4
- export interface ToastProps extends ViewProps {
5
- className?: string;
6
- children?: React.ReactNode;
7
- [key: string]: any;
8
- }
9
-
10
- export const Toast: React.ComponentType<ToastProps>;
11
- export default Toast;
4
+ import { View, type ViewProps } from 'react-native';
5
+ /**
6
+ * Toast notification component
7
+ *
8
+ * Displays temporary messages or notifications with optional icons.
9
+ * Supports default and destructive variants for different message types.
10
+ *
11
+ * @component
12
+ * @example
13
+ * ```tsx
14
+ * <Toast icon={CheckCircle}>
15
+ * <ToastTitle>
16
+ * <Text>Success</Text>
17
+ * </ToastTitle>
18
+ * <ToastDescription>
19
+ * <Text>Your changes have been saved</Text>
20
+ * </ToastDescription>
21
+ * </Toast>
22
+ *
23
+ * <Toast variant="destructive" icon={AlertCircle}>
24
+ * <ToastTitle>
25
+ * <Text>Error</Text>
26
+ * </ToastTitle>
27
+ * <ToastDescription>
28
+ * <Text>Failed to save changes</Text>
29
+ * </ToastDescription>
30
+ * </Toast>
31
+ * ```
32
+ *
33
+ * @accessibility
34
+ * - Announces messages to screen readers
35
+ * - Proper role for notifications
36
+ */
37
+ declare function Toast({ className, variant, children, icon, iconClassName, ...props }: ViewProps & React.RefAttributes<View> & {
38
+ icon?: LucideIcon;
39
+ variant?: 'default' | 'destructive';
40
+ iconClassName?: string;
41
+ }): import("react/jsx-runtime").JSX.Element;
42
+ /**
43
+ * Toast title component
44
+ *
45
+ * @component
46
+ */
47
+ declare function ToastTitle({ className, ...props }: React.ComponentProps<typeof Text> & React.RefAttributes<Text>): import("react/jsx-runtime").JSX.Element;
48
+ /**
49
+ * Toast description component
50
+ *
51
+ * @component
52
+ */
53
+ declare function ToastDescription({ className, ...props }: React.ComponentProps<typeof Text> & React.RefAttributes<Text>): import("react/jsx-runtime").JSX.Element;
54
+ export { Toast, ToastDescription, ToastTitle };
55
+ //# sourceMappingURL=Toast.d.ts.map
@@ -1,11 +1,49 @@
1
+ import { Icon } from './Icon';
2
+ import { toggleVariants } from './Toggle';
3
+ import * as ToggleGroupPrimitive from '@rn-primitives/toggle-group';
4
+ import type { VariantProps } from 'class-variance-authority';
1
5
  import * as React from 'react';
2
- import { ViewProps } from 'react-native';
3
-
4
- export interface Toggle-GroupProps extends ViewProps {
5
- className?: string;
6
- children?: React.ReactNode;
7
- [key: string]: any;
8
- }
9
-
10
- export const Toggle-Group: React.ComponentType<Toggle-GroupProps>;
11
- export default Toggle-Group;
6
+ /**
7
+ * Toggle group component for grouping related toggle buttons
8
+ *
9
+ * Allows single or multiple selection among a set of toggle buttons.
10
+ * Supports both outline and default variants.
11
+ *
12
+ * @component
13
+ * @example
14
+ * ```tsx
15
+ * <ToggleGroup type="single" value={alignment} onValueChange={setAlignment}>
16
+ * <ToggleGroupItem value="left" isFirst>
17
+ * <ToggleGroupIcon as={AlignLeft} />
18
+ * </ToggleGroupItem>
19
+ * <ToggleGroupItem value="center">
20
+ * <ToggleGroupIcon as={AlignCenter} />
21
+ * </ToggleGroupItem>
22
+ * <ToggleGroupItem value="right" isLast>
23
+ * <ToggleGroupIcon as={AlignRight} />
24
+ * </ToggleGroupItem>
25
+ * </ToggleGroup>
26
+ * ```
27
+ *
28
+ * @accessibility
29
+ * - Uses proper ARIA attributes for grouped toggles
30
+ * - Keyboard navigation support
31
+ */
32
+ declare function ToggleGroup({ className, variant, size, children, ...props }: ToggleGroupPrimitive.RootProps & VariantProps<typeof toggleVariants> & React.RefAttributes<ToggleGroupPrimitive.RootRef>): import("react/jsx-runtime").JSX.Element;
33
+ /**
34
+ * Individual toggle item within a toggle group
35
+ *
36
+ * @component
37
+ */
38
+ declare function ToggleGroupItem({ className, children, variant, size, isFirst, isLast, ...props }: ToggleGroupPrimitive.ItemProps & VariantProps<typeof toggleVariants> & React.RefAttributes<ToggleGroupPrimitive.ItemRef> & {
39
+ isFirst?: boolean;
40
+ isLast?: boolean;
41
+ }): import("react/jsx-runtime").JSX.Element;
42
+ /**
43
+ * Icon component for use within toggle group items
44
+ *
45
+ * @component
46
+ */
47
+ declare function ToggleGroupIcon({ className, ...props }: React.ComponentProps<typeof Icon>): import("react/jsx-runtime").JSX.Element;
48
+ export { ToggleGroup, ToggleGroupIcon, ToggleGroupItem };
49
+ //# sourceMappingURL=Toggle-Group.d.ts.map