@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,68 @@
1
+ import * as HoverCardPrimitive from '@rn-primitives/hover-card';
1
2
  import * as React from 'react';
2
- import { ViewProps } from 'react-native';
3
-
4
- export interface Hover-CardProps extends ViewProps {
5
- className?: string;
6
- children?: React.ReactNode;
7
- [key: string]: any;
8
- }
9
-
10
- export const Hover-Card: React.ComponentType<Hover-CardProps>;
11
- export default Hover-Card;
3
+ /**
4
+ * Root component for hover card - provides context for trigger and content
5
+ *
6
+ * @component
7
+ * @example
8
+ * ```tsx
9
+ * <HoverCard>
10
+ * <HoverCardTrigger>
11
+ * <Text>Hover over me</Text>
12
+ * </HoverCardTrigger>
13
+ * <HoverCardContent>
14
+ * <Text>Additional information appears here</Text>
15
+ * </HoverCardContent>
16
+ * </HoverCard>
17
+ * ```
18
+ */
19
+ declare const HoverCard: React.ForwardRefExoticComponent<import("react-native").ViewProps & {
20
+ asChild?: boolean;
21
+ } & {
22
+ onOpenChange?: (open: boolean) => void;
23
+ openDelay?: number;
24
+ closeDelay?: number;
25
+ } & React.RefAttributes<(props: Omit<import("react-native/types_generated/Libraries/Components/View/ViewPropTypes").ViewProps, keyof {
26
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
27
+ }> & {
28
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
29
+ }) => React.ReactNode>>;
30
+ /**
31
+ * Trigger component that shows hover card content on hover/press
32
+ *
33
+ * @component
34
+ */
35
+ declare const HoverCardTrigger: React.ForwardRefExoticComponent<Omit<import("react-native").PressableProps & React.RefAttributes<(props: Omit<import("react-native/types_generated/Libraries/Components/View/ViewPropTypes").ViewProps, keyof {
36
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
37
+ }> & {
38
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
39
+ }) => React.ReactNode>, "ref"> & {
40
+ asChild?: boolean;
41
+ } & {
42
+ onKeyDown?: (ev: React.KeyboardEvent) => void;
43
+ onKeyUp?: (ev: React.KeyboardEvent) => void;
44
+ } & React.RefAttributes<import("@rn-primitives/hover-card").TriggerRef>>;
45
+ /**
46
+ * Content container for hover card
47
+ *
48
+ * Displays rich content in a popover when hovering over or pressing the trigger.
49
+ * Includes smooth fade animations and proper positioning.
50
+ *
51
+ * @component
52
+ * @example
53
+ * ```tsx
54
+ * <HoverCardContent align="center" sideOffset={8}>
55
+ * <View className="gap-2">
56
+ * <Text className="font-semibold">User Profile</Text>
57
+ * <Text className="text-sm">Additional details about the user</Text>
58
+ * </View>
59
+ * </HoverCardContent>
60
+ * ```
61
+ *
62
+ * @accessibility
63
+ * - Content is announced by screen readers
64
+ * - Proper focus management on web
65
+ */
66
+ declare function HoverCardContent({ className, align, sideOffset, ...props }: HoverCardPrimitive.ContentProps & React.RefAttributes<HoverCardPrimitive.ContentRef>): import("react/jsx-runtime").JSX.Element;
67
+ export { HoverCard, HoverCardContent, HoverCardTrigger };
68
+ //# sourceMappingURL=Hover-Card.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Hover-Card.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/Hover-Card.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,SAAS;;;;;;;OAAoB,CAAC;;OAGyB,CAAC;uBAHrB,CAAC;AAE1C;;;;GAIG;AACH,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAPa,CAAC;;OAGyB,CAAC;;;;;;wEAIX,CAAC;AAQpD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,KAAgB,EAChB,UAAc,EACd,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,YAAY,GAChC,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,2CA+BnD;AAED,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"Hover-Card.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/Hover-Card.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,SAAS;;;;;;;OAAoB,CAAC;;OAGyB,CAAC;uBAHrB,CAAC;AAE1C;;;;GAIG;AACH,QAAA,MAAM,gBAAgB;OAPa,CAAC;;OAGyB,CAAC;;;;;;wEAIX,CAAC;AAQpD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,KAAgB,EAChB,UAAc,EACd,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,YAAY,GAChC,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,2CA+BnD;AAED,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1,11 +1,43 @@
1
- import * as React from 'react';
2
- import { ViewProps } from 'react-native';
3
-
4
- export interface IconProps extends ViewProps {
5
- className?: string;
6
- children?: React.ReactNode;
7
- [key: string]: any;
8
- }
9
-
10
- export const Icon: React.ComponentType<IconProps>;
11
- export default Icon;
1
+ import type { LucideIcon, LucideProps } from 'lucide-react-native';
2
+ /**
3
+ * Props for Icon component
4
+ *
5
+ * @extends LucideProps - All Lucide icon properties (size, color, strokeWidth, etc.)
6
+ * @property {LucideIcon} as - The Lucide icon component to render
7
+ * @property {string} [className] - Tailwind classes for styling (supports NativeWind)
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { Home } from 'lucide-react-native';
12
+ * <Icon as={Home} size={24} className="text-primary" />
13
+ * ```
14
+ */
15
+ type IconProps = LucideProps & {
16
+ as: LucideIcon;
17
+ className?: string;
18
+ };
19
+ /**
20
+ * Universal icon wrapper for Lucide icons
21
+ *
22
+ * Provides consistent styling and sizing for Lucide React Native icons across the application.
23
+ * Automatically handles platform-specific sizing and color theming.
24
+ *
25
+ * @component
26
+ * @example
27
+ * ```tsx
28
+ * import { Settings, User, ChevronRight } from 'lucide-react-native';
29
+ *
30
+ * // Basic icon
31
+ * <Icon as={Settings} />
32
+ *
33
+ * // Sized icon with custom color
34
+ * <Icon as={User} size={32} className="text-primary" />
35
+ *
36
+ * // Icon with stroke width
37
+ * <Icon as={ChevronRight} size={20} strokeWidth={2.5} />
38
+ * ```
39
+ */
40
+ declare function Icon({ as: IconComponent, className, size, ...props }: IconProps): import("react/jsx-runtime").JSX.Element;
41
+ export { Icon };
42
+ export type { IconProps };
43
+ //# sourceMappingURL=Icon.d.ts.map
@@ -1,11 +1,52 @@
1
- import * as React from 'react';
2
- import { ViewProps } from 'react-native';
3
-
4
- export interface InputProps 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 Input component
4
+ *
5
+ * @extends TextInputProps - All standard React Native TextInput props
6
+ * @property {string} [className] - Additional Tailwind classes for custom styling
7
+ * @property {boolean} [editable=true] - Whether the input is editable (disabled when false)
8
+ */
9
+ interface InputProps extends TextInputProps {
10
+ className?: string;
8
11
  }
9
-
10
- export const Input: React.ComponentType<InputProps>;
11
- export default Input;
12
+ /**
13
+ * A styled text input component with consistent design across platforms
14
+ *
15
+ * Features platform-specific behaviors:
16
+ * - Web: Focus ring, selection styling, aria-invalid support
17
+ * - Native: Optimized placeholder opacity and input styling
18
+ *
19
+ * Automatically adapts styling when disabled/non-editable.
20
+ *
21
+ * @component
22
+ * @example
23
+ * ```tsx
24
+ * // Basic input
25
+ * <Input
26
+ * placeholder="Enter your name"
27
+ * value={name}
28
+ * onChangeText={setName}
29
+ * />
30
+ *
31
+ * // Disabled input
32
+ * <Input
33
+ * value="Read only"
34
+ * editable={false}
35
+ * />
36
+ *
37
+ * // With custom styling
38
+ * <Input
39
+ * className="border-primary"
40
+ * placeholder="Search..."
41
+ * />
42
+ * ```
43
+ *
44
+ * @accessibility
45
+ * - Supports aria-invalid for form validation states (web)
46
+ * - Placeholder text uses appropriate contrast colors
47
+ * - Disabled state is visually indicated with opacity
48
+ */
49
+ declare function Input({ className, editable, ...props }: InputProps & React.RefAttributes<TextInput>): import("react/jsx-runtime").JSX.Element;
50
+ export { Input };
51
+ export type { InputProps };
52
+ //# sourceMappingURL=Input.d.ts.map
@@ -1,11 +1,105 @@
1
1
  import * as React from 'react';
2
- import { ViewProps } from 'react-native';
3
-
4
- export interface LabelProps extends ViewProps {
5
- className?: string;
6
- children?: React.ReactNode;
7
- [key: string]: any;
8
- }
9
-
10
- export const Label: React.ComponentType<LabelProps>;
11
- export default Label;
2
+ /**
3
+ * Accessible label component for form controls
4
+ *
5
+ * Provides semantic labeling for form inputs with proper styling and accessibility support.
6
+ * Automatically associates with form controls and respects disabled states.
7
+ *
8
+ * @component
9
+ * @example
10
+ * ```tsx
11
+ * // Label with input
12
+ * <View className="gap-2">
13
+ * <Label htmlFor="email">Email Address</Label>
14
+ * <Input id="email" placeholder="Enter email" />
15
+ * </View>
16
+ *
17
+ * // Label for checkbox
18
+ * <View className="flex-row items-center gap-2">
19
+ * <Checkbox id="terms" />
20
+ * <Label htmlFor="terms">I agree to the terms and conditions</Label>
21
+ * </View>
22
+ * ```
23
+ *
24
+ * @accessibility
25
+ * - Properly associates with form controls via htmlFor/id
26
+ * - Reduced opacity when associated control is disabled
27
+ * - Screen reader compatible
28
+ */
29
+ declare const Label: React.ForwardRefExoticComponent<Omit<Omit<Readonly<Omit<Readonly<{
30
+ onPointerEnter?: (event: import("react-native").PointerEvent) => void;
31
+ onPointerLeave?: (event: import("react-native").PointerEvent) => void;
32
+ onPointerMove?: (event: import("react-native").PointerEvent) => void;
33
+ }>, "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<{
34
+ onAccessibilityAction?: ((event: import("react-native").AccessibilityActionEvent) => unknown) | undefined;
35
+ allowFontScaling?: boolean | undefined;
36
+ android_hyphenationFrequency?: ("normal" | "none" | "full") | undefined;
37
+ children?: React.ReactNode | undefined;
38
+ ellipsizeMode?: ("clip" | "head" | "middle" | "tail") | undefined;
39
+ id?: string;
40
+ maxFontSizeMultiplier?: number | undefined;
41
+ nativeID?: string | undefined;
42
+ numberOfLines?: number | undefined;
43
+ onLayout?: ((event: import("react-native").LayoutChangeEvent) => unknown) | undefined;
44
+ onLongPress?: ((event: import("react-native").GestureResponderEvent) => unknown) | undefined;
45
+ onPress?: ((event: import("react-native").GestureResponderEvent) => unknown) | undefined;
46
+ onPressIn?: ((event: import("react-native").GestureResponderEvent) => unknown) | undefined;
47
+ onPressOut?: ((event: import("react-native").GestureResponderEvent) => unknown) | undefined;
48
+ onResponderGrant?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
49
+ onResponderMove?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
50
+ onResponderRelease?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
51
+ onResponderTerminate?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
52
+ onResponderTerminationRequest?: (() => boolean) | undefined;
53
+ onStartShouldSetResponder?: (() => boolean) | undefined;
54
+ onMoveShouldSetResponder?: (() => boolean) | undefined;
55
+ onTextLayout?: ((event: import("react-native").TextLayoutEvent) => unknown) | undefined;
56
+ pressRetentionOffset?: import("react-native/types_generated/Libraries/Text/TextProps").PressRetentionOffset | undefined;
57
+ role?: import("react-native").Role | undefined;
58
+ selectable?: boolean | undefined;
59
+ style?: import("react-native/types_generated/Libraries/StyleSheet/StyleSheet").TextStyleProp | undefined;
60
+ testID?: string | undefined;
61
+ }>, "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<{
62
+ accessibilityLabelledBy?: (string | undefined) | (Array<string> | undefined);
63
+ "aria-labelledby"?: string | undefined;
64
+ accessibilityLiveRegion?: ("none" | "polite" | "assertive") | undefined;
65
+ "aria-live"?: ("polite" | "assertive" | "off") | undefined;
66
+ importantForAccessibility?: ("auto" | "yes" | "no" | "no-hide-descendants") | undefined;
67
+ screenReaderFocusable?: boolean;
68
+ }>, "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<{
69
+ accessibilityIgnoresInvertColors?: boolean | undefined;
70
+ accessibilityViewIsModal?: boolean | undefined;
71
+ accessibilityShowsLargeContentViewer?: boolean | undefined;
72
+ accessibilityLargeContentTitle?: string | undefined;
73
+ "aria-modal"?: boolean | undefined;
74
+ accessibilityElementsHidden?: boolean | undefined;
75
+ accessibilityLanguage?: string | undefined;
76
+ accessibilityRespondsToUserInteraction?: boolean | undefined;
77
+ }>, "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"> & {
78
+ accessible?: boolean | undefined;
79
+ accessibilityLabel?: string | undefined;
80
+ accessibilityHint?: string | undefined;
81
+ "aria-label"?: string | undefined;
82
+ accessibilityRole?: import("react-native").AccessibilityRole | undefined;
83
+ role?: import("react-native").Role | undefined;
84
+ accessibilityState?: import("react-native").AccessibilityState | undefined;
85
+ accessibilityValue?: import("react-native").AccessibilityValue | undefined;
86
+ "aria-valuemax"?: import("react-native").AccessibilityValue["max"] | undefined;
87
+ "aria-valuemin"?: import("react-native").AccessibilityValue["min"] | undefined;
88
+ "aria-valuenow"?: import("react-native").AccessibilityValue["now"] | undefined;
89
+ "aria-valuetext"?: import("react-native").AccessibilityValue["text"] | undefined;
90
+ accessibilityActions?: ReadonlyArray<import("react-native/types_generated/Libraries/Components/View/ViewAccessibility").AccessibilityActionInfo> | undefined;
91
+ "aria-busy"?: boolean | undefined;
92
+ "aria-checked"?: (boolean | undefined) | "mixed";
93
+ "aria-disabled"?: boolean | undefined;
94
+ "aria-expanded"?: boolean | undefined;
95
+ "aria-selected"?: boolean | undefined;
96
+ "aria-hidden"?: boolean | undefined;
97
+ }>, never>>, "ref"> & {
98
+ ref?: React.Ref<import("react-native/types_generated/src/private/types/HostInstance").LegacyHostInstanceMethods>;
99
+ }, "ref"> & {
100
+ asChild?: boolean;
101
+ } & {
102
+ className?: string;
103
+ } & React.RefAttributes<import("react-native/types_generated/src/private/types/HostInstance").LegacyHostInstanceMethods>>;
104
+ export { Label };
105
+ //# sourceMappingURL=Label.d.ts.map
@@ -1,11 +1,175 @@
1
+ import * as MenubarPrimitive from '@rn-primitives/menubar';
1
2
  import * as React from 'react';
2
- import { ViewProps } from 'react-native';
3
-
4
- export interface MenubarProps extends ViewProps {
5
- className?: string;
6
- children?: React.ReactNode;
7
- [key: string]: any;
8
- }
9
-
10
- export const Menubar: React.ComponentType<MenubarProps>;
11
- export default Menubar;
3
+ import { type StyleProp, Text, type TextProps, type ViewStyle } from 'react-native';
4
+ /**
5
+ * Individual menu within the menubar
6
+ *
7
+ * @component
8
+ */
9
+ declare const MenubarMenu: React.ForwardRefExoticComponent<import("react-native").ViewProps & {
10
+ asChild?: boolean;
11
+ } & {
12
+ value: string | undefined;
13
+ } & React.RefAttributes<(props: Omit<import("react-native/types_generated/Libraries/Components/View/ViewPropTypes").ViewProps, keyof {
14
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
15
+ }> & {
16
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
17
+ }) => React.ReactNode>>;
18
+ /**
19
+ * Groups related menu items together
20
+ *
21
+ * @component
22
+ */
23
+ declare const MenubarGroup: React.ForwardRefExoticComponent<import("react-native").ViewProps & {
24
+ asChild?: boolean;
25
+ } & React.RefAttributes<(props: Omit<import("react-native/types_generated/Libraries/Components/View/ViewPropTypes").ViewProps, keyof {
26
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
27
+ }> & {
28
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
29
+ }) => React.ReactNode>>;
30
+ /**
31
+ * Portal component to render menu content outside the DOM hierarchy
32
+ *
33
+ * @component
34
+ */
35
+ declare const MenubarPortal: typeof MenubarPrimitive.Portal;
36
+ /**
37
+ * Root component for nested submenu
38
+ *
39
+ * @component
40
+ */
41
+ declare const MenubarSub: React.ForwardRefExoticComponent<import("react-native").ViewProps & {
42
+ asChild?: boolean;
43
+ } & {
44
+ defaultOpen?: boolean;
45
+ open?: boolean;
46
+ onOpenChange?: (value: boolean) => void;
47
+ } & React.RefAttributes<(props: Omit<import("react-native/types_generated/Libraries/Components/View/ViewPropTypes").ViewProps, keyof {
48
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
49
+ }> & {
50
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
51
+ }) => React.ReactNode>>;
52
+ /**
53
+ * Groups radio items together with single selection
54
+ *
55
+ * @component
56
+ */
57
+ declare const MenubarRadioGroup: React.ForwardRefExoticComponent<import("react-native").ViewProps & {
58
+ asChild?: boolean;
59
+ } & {
60
+ value: string | undefined;
61
+ onValueChange: (value: string) => void;
62
+ } & React.RefAttributes<(props: Omit<import("react-native/types_generated/Libraries/Components/View/ViewPropTypes").ViewProps, keyof {
63
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
64
+ }> & {
65
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
66
+ }) => React.ReactNode>>;
67
+ /**
68
+ * Root menubar component for application-level menu navigation
69
+ *
70
+ * Provides horizontal menu bar similar to desktop applications, with support
71
+ * for nested menus and automatic close on outside press.
72
+ *
73
+ * @component
74
+ * @example
75
+ * ```tsx
76
+ * <Menubar>
77
+ * <MenubarMenu>
78
+ * <MenubarTrigger>
79
+ * <Text>File</Text>
80
+ * </MenubarTrigger>
81
+ * <MenubarContent>
82
+ * <MenubarItem>
83
+ * <Text>New File</Text>
84
+ * </MenubarItem>
85
+ * <MenubarItem>
86
+ * <Text>Open</Text>
87
+ * </MenubarItem>
88
+ * </MenubarContent>
89
+ * </MenubarMenu>
90
+ * </Menubar>
91
+ * ```
92
+ *
93
+ * @accessibility
94
+ * - Keyboard navigation support
95
+ * - Proper ARIA attributes for menu structure
96
+ */
97
+ declare function Menubar({ className, value: valueProp, onValueChange: onValueChangeProp, ...props }: MenubarPrimitive.RootProps & React.RefAttributes<MenubarPrimitive.RootRef>): import("react/jsx-runtime").JSX.Element;
98
+ /**
99
+ * Trigger button for a menubar menu
100
+ *
101
+ * @component
102
+ * @example
103
+ * ```tsx
104
+ * <MenubarTrigger>
105
+ * <Text>Edit</Text>
106
+ * </MenubarTrigger>
107
+ * ```
108
+ */
109
+ declare function MenubarTrigger({ className, ...props }: MenubarPrimitive.TriggerProps & React.RefAttributes<MenubarPrimitive.TriggerRef>): import("react/jsx-runtime").JSX.Element;
110
+ /**
111
+ * Trigger for opening a nested submenu
112
+ * @component
113
+ */
114
+ declare function MenubarSubTrigger({ className: _className, inset, children, iconClassName, ...props }: MenubarPrimitive.SubTriggerProps & React.RefAttributes<MenubarPrimitive.SubTriggerRef> & {
115
+ children?: React.ReactNode;
116
+ iconClassName?: string;
117
+ inset?: boolean;
118
+ }): import("react/jsx-runtime").JSX.Element;
119
+ /**
120
+ * Content container for nested submenu items
121
+ * @component
122
+ */
123
+ declare function MenubarSubContent({ className, ...props }: MenubarPrimitive.SubContentProps & React.RefAttributes<MenubarPrimitive.SubContentRef>): import("react/jsx-runtime").JSX.Element;
124
+ /**
125
+ * Main content container for menu items
126
+ * @component
127
+ */
128
+ declare function MenubarContent({ className, overlayClassName: _overlayClassName, overlayStyle: _overlayStyle, portalHost, align, alignOffset, sideOffset, ...props }: MenubarPrimitive.ContentProps & React.RefAttributes<MenubarPrimitive.ContentRef> & {
129
+ overlayStyle?: StyleProp<ViewStyle>;
130
+ overlayClassName?: string;
131
+ portalHost?: string;
132
+ }): import("react/jsx-runtime").JSX.Element;
133
+ /**
134
+ * Individual menu item component
135
+ * @component
136
+ */
137
+ declare function MenubarItem({ className, inset, variant, ...props }: MenubarPrimitive.ItemProps & React.RefAttributes<MenubarPrimitive.ItemRef> & {
138
+ className?: string;
139
+ inset?: boolean;
140
+ variant?: 'default' | 'destructive';
141
+ }): import("react/jsx-runtime").JSX.Element;
142
+ /**
143
+ * Menu item with checkbox for multi-selection
144
+ * @component
145
+ */
146
+ declare function MenubarCheckboxItem({ className, children, ...props }: MenubarPrimitive.CheckboxItemProps & React.RefAttributes<MenubarPrimitive.CheckboxItemRef> & {
147
+ children?: React.ReactNode;
148
+ }): import("react/jsx-runtime").JSX.Element;
149
+ /**
150
+ * Menu item with radio button for single selection within a group
151
+ * @component
152
+ */
153
+ declare function MenubarRadioItem({ className, children, ...props }: MenubarPrimitive.RadioItemProps & React.RefAttributes<MenubarPrimitive.RadioItemRef> & {
154
+ children?: React.ReactNode;
155
+ }): import("react/jsx-runtime").JSX.Element;
156
+ /**
157
+ * Label component for grouping and describing menu sections
158
+ * @component
159
+ */
160
+ declare function MenubarLabel({ className, inset, ...props }: MenubarPrimitive.LabelProps & React.RefAttributes<MenubarPrimitive.LabelRef> & {
161
+ className?: string;
162
+ inset?: boolean;
163
+ }): import("react/jsx-runtime").JSX.Element;
164
+ /**
165
+ * Visual separator between menu items or sections
166
+ * @component
167
+ */
168
+ declare function MenubarSeparator({ className, ...props }: MenubarPrimitive.SeparatorProps & React.RefAttributes<MenubarPrimitive.SeparatorRef>): import("react/jsx-runtime").JSX.Element;
169
+ /**
170
+ * Displays keyboard shortcut hint for menu items
171
+ * @component
172
+ */
173
+ declare function MenubarShortcut({ className, ...props }: TextProps & React.RefAttributes<Text>): import("react/jsx-runtime").JSX.Element;
174
+ export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, };
175
+ //# sourceMappingURL=Menubar.d.ts.map