@campxdev/react-native-blueprint 0.1.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 (178) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +358 -0
  3. package/lib/module/app/_layout.js +23 -0
  4. package/lib/module/app/_layout.js.map +1 -0
  5. package/lib/module/assets/icons/weather_icons/drizzle.png +0 -0
  6. package/lib/module/assets/icons/weather_icons/foggy.png +0 -0
  7. package/lib/module/assets/icons/weather_icons/freezing_rain.png +0 -0
  8. package/lib/module/assets/icons/weather_icons/partly_cloudy.png +0 -0
  9. package/lib/module/assets/icons/weather_icons/rainy.png +0 -0
  10. package/lib/module/assets/icons/weather_icons/showers.png +0 -0
  11. package/lib/module/assets/icons/weather_icons/sunny_weather.png +0 -0
  12. package/lib/module/assets/icons/weather_icons/thunderstorm.png +0 -0
  13. package/lib/module/assets/icons/weather_icons/thunderstorm_hail.png +0 -0
  14. package/lib/module/components/theme-config.js +265 -0
  15. package/lib/module/components/theme-config.js.map +1 -0
  16. package/lib/module/components/ui/Accordion.js +228 -0
  17. package/lib/module/components/ui/Accordion.js.map +1 -0
  18. package/lib/module/components/ui/Alert-Dialog.js +266 -0
  19. package/lib/module/components/ui/Alert-Dialog.js.map +1 -0
  20. package/lib/module/components/ui/Alert.js +107 -0
  21. package/lib/module/components/ui/Alert.js.map +1 -0
  22. package/lib/module/components/ui/AppBar.js +403 -0
  23. package/lib/module/components/ui/AppBar.js.map +1 -0
  24. package/lib/module/components/ui/Aspect-Ratio.js +27 -0
  25. package/lib/module/components/ui/Aspect-Ratio.js.map +1 -0
  26. package/lib/module/components/ui/Avatar.js +97 -0
  27. package/lib/module/components/ui/Avatar.js.map +1 -0
  28. package/lib/module/components/ui/Badge.js +127 -0
  29. package/lib/module/components/ui/Badge.js.map +1 -0
  30. package/lib/module/components/ui/Bottom-Sheet.js +144 -0
  31. package/lib/module/components/ui/Bottom-Sheet.js.map +1 -0
  32. package/lib/module/components/ui/Button.js +88 -0
  33. package/lib/module/components/ui/Button.js.map +1 -0
  34. package/lib/module/components/ui/Card.js +176 -0
  35. package/lib/module/components/ui/Card.js.map +1 -0
  36. package/lib/module/components/ui/Checkbox.js +65 -0
  37. package/lib/module/components/ui/Checkbox.js.map +1 -0
  38. package/lib/module/components/ui/Collapsible.js +42 -0
  39. package/lib/module/components/ui/Collapsible.js.map +1 -0
  40. package/lib/module/components/ui/Context-Menu.js +287 -0
  41. package/lib/module/components/ui/Context-Menu.js.map +1 -0
  42. package/lib/module/components/ui/Custom-Card.js +202 -0
  43. package/lib/module/components/ui/Custom-Card.js.map +1 -0
  44. package/lib/module/components/ui/Dialog.js +202 -0
  45. package/lib/module/components/ui/Dialog.js.map +1 -0
  46. package/lib/module/components/ui/Dropdown-Menu.js +421 -0
  47. package/lib/module/components/ui/Dropdown-Menu.js.map +1 -0
  48. package/lib/module/components/ui/Floating-Action.js +50 -0
  49. package/lib/module/components/ui/Floating-Action.js.map +1 -0
  50. package/lib/module/components/ui/Greeting-Card.js +392 -0
  51. package/lib/module/components/ui/Greeting-Card.js.map +1 -0
  52. package/lib/module/components/ui/Hover-Card.js +96 -0
  53. package/lib/module/components/ui/Hover-Card.js.map +1 -0
  54. package/lib/module/components/ui/Icon.js +73 -0
  55. package/lib/module/components/ui/Icon.js.map +1 -0
  56. package/lib/module/components/ui/Input.js +74 -0
  57. package/lib/module/components/ui/Input.js.map +1 -0
  58. package/lib/module/components/ui/Label.js +44 -0
  59. package/lib/module/components/ui/Label.js.map +1 -0
  60. package/lib/module/components/ui/Menubar.js +375 -0
  61. package/lib/module/components/ui/Menubar.js.map +1 -0
  62. package/lib/module/components/ui/Native-Only-Animated-View.js +41 -0
  63. package/lib/module/components/ui/Native-Only-Animated-View.js.map +1 -0
  64. package/lib/module/components/ui/NavBar.js +352 -0
  65. package/lib/module/components/ui/NavBar.js.map +1 -0
  66. package/lib/module/components/ui/Popover.js +101 -0
  67. package/lib/module/components/ui/Popover.js.map +1 -0
  68. package/lib/module/components/ui/Progress.js +124 -0
  69. package/lib/module/components/ui/Progress.js.map +1 -0
  70. package/lib/module/components/ui/Radio-Group.js +75 -0
  71. package/lib/module/components/ui/Radio-Group.js.map +1 -0
  72. package/lib/module/components/ui/Select.js +269 -0
  73. package/lib/module/components/ui/Select.js.map +1 -0
  74. package/lib/module/components/ui/Separator.js +58 -0
  75. package/lib/module/components/ui/Separator.js.map +1 -0
  76. package/lib/module/components/ui/SizedBox.js +101 -0
  77. package/lib/module/components/ui/SizedBox.js.map +1 -0
  78. package/lib/module/components/ui/Skeleton.js +57 -0
  79. package/lib/module/components/ui/Skeleton.js.map +1 -0
  80. package/lib/module/components/ui/Slider.js +169 -0
  81. package/lib/module/components/ui/Slider.js.map +1 -0
  82. package/lib/module/components/ui/Switch.js +55 -0
  83. package/lib/module/components/ui/Switch.js.map +1 -0
  84. package/lib/module/components/ui/Table.js +150 -0
  85. package/lib/module/components/ui/Table.js.map +1 -0
  86. package/lib/module/components/ui/Tabs.js +106 -0
  87. package/lib/module/components/ui/Tabs.js.map +1 -0
  88. package/lib/module/components/ui/Text.js +69 -0
  89. package/lib/module/components/ui/Text.js.map +1 -0
  90. package/lib/module/components/ui/Textarea.js +88 -0
  91. package/lib/module/components/ui/Textarea.js.map +1 -0
  92. package/lib/module/components/ui/Theme-Toggle.js +156 -0
  93. package/lib/module/components/ui/Theme-Toggle.js.map +1 -0
  94. package/lib/module/components/ui/Toast.js +101 -0
  95. package/lib/module/components/ui/Toast.js.map +1 -0
  96. package/lib/module/components/ui/Toggle-Group.js +129 -0
  97. package/lib/module/components/ui/Toggle-Group.js.map +1 -0
  98. package/lib/module/components/ui/Toggle.js +106 -0
  99. package/lib/module/components/ui/Toggle.js.map +1 -0
  100. package/lib/module/components/ui/Tooltip.js +106 -0
  101. package/lib/module/components/ui/Tooltip.js.map +1 -0
  102. package/lib/module/components/ui/index.js +45 -0
  103. package/lib/module/components/ui/index.js.map +1 -0
  104. package/lib/module/index.js +19 -0
  105. package/lib/module/index.js.map +1 -0
  106. package/lib/module/lib/ThemeProvider.js +173 -0
  107. package/lib/module/lib/ThemeProvider.js.map +1 -0
  108. package/lib/module/lib/cornerRadius.js +164 -0
  109. package/lib/module/lib/cornerRadius.js.map +1 -0
  110. package/lib/module/lib/fonts.js +25 -0
  111. package/lib/module/lib/fonts.js.map +1 -0
  112. package/lib/module/lib/theme.js +212 -0
  113. package/lib/module/lib/theme.js.map +1 -0
  114. package/lib/module/lib/utils.js +137 -0
  115. package/lib/module/lib/utils.js.map +1 -0
  116. package/lib/module/package.json +1 -0
  117. package/package.json +208 -0
  118. package/src/app/_layout.tsx +25 -0
  119. package/src/assets/icons/weather_icons/drizzle.png +0 -0
  120. package/src/assets/icons/weather_icons/foggy.png +0 -0
  121. package/src/assets/icons/weather_icons/freezing_rain.png +0 -0
  122. package/src/assets/icons/weather_icons/partly_cloudy.png +0 -0
  123. package/src/assets/icons/weather_icons/rainy.png +0 -0
  124. package/src/assets/icons/weather_icons/showers.png +0 -0
  125. package/src/assets/icons/weather_icons/sunny_weather.png +0 -0
  126. package/src/assets/icons/weather_icons/thunderstorm.png +0 -0
  127. package/src/assets/icons/weather_icons/thunderstorm_hail.png +0 -0
  128. package/src/components/theme-config.ts +331 -0
  129. package/src/components/ui/Accordion.tsx +253 -0
  130. package/src/components/ui/Alert-Dialog.tsx +295 -0
  131. package/src/components/ui/Alert.tsx +137 -0
  132. package/src/components/ui/AppBar.tsx +551 -0
  133. package/src/components/ui/Aspect-Ratio.tsx +25 -0
  134. package/src/components/ui/Avatar.tsx +103 -0
  135. package/src/components/ui/Badge.tsx +121 -0
  136. package/src/components/ui/Bottom-Sheet.tsx +224 -0
  137. package/src/components/ui/Button.tsx +100 -0
  138. package/src/components/ui/Card.tsx +185 -0
  139. package/src/components/ui/Checkbox.tsx +81 -0
  140. package/src/components/ui/Collapsible.tsx +40 -0
  141. package/src/components/ui/Context-Menu.tsx +407 -0
  142. package/src/components/ui/Custom-Card.tsx +226 -0
  143. package/src/components/ui/Dialog.tsx +240 -0
  144. package/src/components/ui/Dropdown-Menu.tsx +544 -0
  145. package/src/components/ui/Floating-Action.tsx +54 -0
  146. package/src/components/ui/Greeting-Card.tsx +471 -0
  147. package/src/components/ui/Hover-Card.tsx +101 -0
  148. package/src/components/ui/Icon.tsx +75 -0
  149. package/src/components/ui/Input.tsx +90 -0
  150. package/src/components/ui/Label.tsx +48 -0
  151. package/src/components/ui/Menubar.tsx +509 -0
  152. package/src/components/ui/Native-Only-Animated-View.tsx +37 -0
  153. package/src/components/ui/NavBar.tsx +397 -0
  154. package/src/components/ui/Popover.tsx +110 -0
  155. package/src/components/ui/Progress.tsx +138 -0
  156. package/src/components/ui/Radio-Group.tsx +79 -0
  157. package/src/components/ui/Select.tsx +344 -0
  158. package/src/components/ui/Separator.tsx +68 -0
  159. package/src/components/ui/SizedBox.tsx +116 -0
  160. package/src/components/ui/Skeleton.tsx +55 -0
  161. package/src/components/ui/Slider.tsx +222 -0
  162. package/src/components/ui/Switch.tsx +67 -0
  163. package/src/components/ui/Table.tsx +170 -0
  164. package/src/components/ui/Tabs.tsx +119 -0
  165. package/src/components/ui/Text.tsx +73 -0
  166. package/src/components/ui/Textarea.tsx +93 -0
  167. package/src/components/ui/Theme-Toggle.tsx +204 -0
  168. package/src/components/ui/Toast.tsx +127 -0
  169. package/src/components/ui/Toggle-Group.tsx +160 -0
  170. package/src/components/ui/Toggle.tsx +122 -0
  171. package/src/components/ui/Tooltip.tsx +117 -0
  172. package/src/components/ui/index.ts +42 -0
  173. package/src/index.tsx +24 -0
  174. package/src/lib/ThemeProvider.tsx +204 -0
  175. package/src/lib/cornerRadius.ts +160 -0
  176. package/src/lib/fonts.ts +28 -0
  177. package/src/lib/theme.ts +151 -0
  178. package/src/lib/utils.ts +146 -0
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+
3
+ import { Icon } from "./Icon.js";
4
+ import { NativeOnlyAnimatedView } from "./Native-Only-Animated-View.js";
5
+ import { cn } from "../../lib/utils.js";
6
+ import * as DialogPrimitive from '@rn-primitives/dialog';
7
+ import { X } from 'lucide-react-native';
8
+ import * as React from 'react';
9
+ import { Platform, Text, View } from 'react-native';
10
+ import { cssInterop } from 'nativewind';
11
+ import { FadeIn, FadeOut } from 'react-native-reanimated';
12
+ import { FullWindowOverlay as RNFullWindowOverlay } from 'react-native-screens';
13
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ cssInterop(View, {
15
+ className: 'style'
16
+ });
17
+ cssInterop(Text, {
18
+ className: 'style'
19
+ });
20
+
21
+ /**
22
+ * Root dialog container
23
+ *
24
+ * A modal window that overlays the main content and requires user interaction.
25
+ * Unlike AlertDialog, this is for non-critical content that doesn't require immediate action.
26
+ *
27
+ * @component
28
+ * @example
29
+ * ```tsx
30
+ * <Dialog>
31
+ * <DialogTrigger asChild>
32
+ * <Button><Text>Open Dialog</Text></Button>
33
+ * </DialogTrigger>
34
+ * <DialogContent>
35
+ * <DialogHeader>
36
+ * <DialogTitle><Text>Edit Profile</Text></DialogTitle>
37
+ * <DialogDescription><Text>Make changes to your profile</Text></DialogDescription>
38
+ * </DialogHeader>
39
+ * <DialogFooter>
40
+ * <Button><Text>Save</Text></Button>
41
+ * </DialogFooter>
42
+ * </DialogContent>
43
+ * </Dialog>
44
+ * ```
45
+ */
46
+ const Dialog = DialogPrimitive.Root;
47
+
48
+ /**
49
+ * Trigger button that opens the dialog
50
+ */
51
+ const DialogTrigger = DialogPrimitive.Trigger;
52
+
53
+ /**
54
+ * Portal component for rendering dialog outside DOM hierarchy
55
+ */
56
+ const DialogPortal = DialogPrimitive.Portal;
57
+
58
+ /**
59
+ * Close button component for manually closing the dialog
60
+ */
61
+ const DialogClose = DialogPrimitive.Close;
62
+ const FullWindowOverlay = Platform.OS === 'ios' ? RNFullWindowOverlay : React.Fragment;
63
+
64
+ /**
65
+ * Semi-transparent overlay behind the dialog
66
+ *
67
+ * Provides backdrop that dims background content. Uses platform-specific
68
+ * full window overlay on iOS for proper z-index layering.
69
+ */
70
+ function DialogOverlay({
71
+ className,
72
+ children,
73
+ ...props
74
+ }) {
75
+ return /*#__PURE__*/_jsx(FullWindowOverlay, {
76
+ children: /*#__PURE__*/_jsx(DialogPrimitive.Overlay, {
77
+ className: cn('absolute bottom-0 left-0 right-0 top-0 z-50 flex items-center justify-center bg-black/50 p-2', Platform.select({
78
+ web: 'animate-in fade-in-0 fixed cursor-default [&>*]:cursor-auto'
79
+ }), className),
80
+ ...props,
81
+ asChild: Platform.OS !== 'web',
82
+ children: /*#__PURE__*/_jsx(NativeOnlyAnimatedView, {
83
+ entering: FadeIn.duration(200),
84
+ exiting: FadeOut.duration(150),
85
+ children: /*#__PURE__*/_jsx(NativeOnlyAnimatedView, {
86
+ entering: FadeIn.delay(50),
87
+ exiting: FadeOut.duration(150),
88
+ children: /*#__PURE__*/_jsx(_Fragment, {
89
+ children: children
90
+ })
91
+ })
92
+ })
93
+ })
94
+ });
95
+ }
96
+
97
+ /**
98
+ * Main dialog content container
99
+ *
100
+ * Contains the actual dialog UI with automatic close button in top-right corner.
101
+ * Includes smooth fade and zoom animations.
102
+ *
103
+ * @param {string} [portalHost] - Optional portal host name for custom rendering location
104
+ * @param {string} [className] - Additional Tailwind classes
105
+ */
106
+ function DialogContent({
107
+ className,
108
+ portalHost,
109
+ children,
110
+ ...props
111
+ }) {
112
+ return /*#__PURE__*/_jsx(DialogPortal, {
113
+ hostName: portalHost,
114
+ children: /*#__PURE__*/_jsx(DialogOverlay, {
115
+ children: /*#__PURE__*/_jsxs(DialogPrimitive.Content, {
116
+ className: cn('bg-background border-border z-50 mx-auto flex w-full max-w-[calc(100%-2rem)] flex-col gap-4 rounded-lg border p-6 shadow-lg shadow-black/5 sm:max-w-lg', Platform.select({
117
+ web: 'animate-in fade-in-0 zoom-in-95 duration-200'
118
+ }), className),
119
+ ...props,
120
+ children: [/*#__PURE__*/_jsx(_Fragment, {
121
+ children: children
122
+ }), /*#__PURE__*/_jsxs(DialogPrimitive.Close, {
123
+ className: cn('absolute right-4 top-4 rounded opacity-70 active:opacity-100', Platform.select({
124
+ web: 'ring-offset-background focus:ring-ring data-[state=open]:bg-accent transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-offset-2'
125
+ })),
126
+ hitSlop: 12,
127
+ children: [/*#__PURE__*/_jsx(Icon, {
128
+ as: X,
129
+ className: cn('text-accent-foreground web:pointer-events-none size-4 shrink-0')
130
+ }), /*#__PURE__*/_jsx(Text, {
131
+ className: "sr-only",
132
+ children: "Close"
133
+ })]
134
+ })]
135
+ })
136
+ })
137
+ });
138
+ }
139
+
140
+ /**
141
+ * Dialog header container
142
+ *
143
+ * Contains title and description with appropriate spacing and alignment.
144
+ * Centered on mobile, left-aligned on larger screens.
145
+ */
146
+ function DialogHeader({
147
+ className,
148
+ ...props
149
+ }) {
150
+ return /*#__PURE__*/_jsx(View, {
151
+ className: cn('flex flex-col gap-2 text-center sm:text-left', className),
152
+ ...props
153
+ });
154
+ }
155
+
156
+ /**
157
+ * Dialog footer container
158
+ *
159
+ * Contains action buttons. Stacked vertically on mobile (reverse order),
160
+ * horizontal row on larger screens (right-aligned).
161
+ */
162
+ function DialogFooter({
163
+ className,
164
+ ...props
165
+ }) {
166
+ return /*#__PURE__*/_jsx(View, {
167
+ className: cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className),
168
+ ...props
169
+ });
170
+ }
171
+
172
+ /**
173
+ * Dialog title component
174
+ *
175
+ * Large, semibold heading for the dialog. Automatically announced by screen readers.
176
+ */
177
+ function DialogTitle({
178
+ className,
179
+ ...props
180
+ }) {
181
+ return /*#__PURE__*/_jsx(DialogPrimitive.Title, {
182
+ className: cn('text-foreground text-lg font-semibold leading-none', className),
183
+ ...props
184
+ });
185
+ }
186
+
187
+ /**
188
+ * Dialog description component
189
+ *
190
+ * Muted text providing additional context or instructions for the dialog.
191
+ */
192
+ function DialogDescription({
193
+ className,
194
+ ...props
195
+ }) {
196
+ return /*#__PURE__*/_jsx(DialogPrimitive.Description, {
197
+ className: cn('text-muted-foreground text-sm', className),
198
+ ...props
199
+ });
200
+ }
201
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
202
+ //# sourceMappingURL=Dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Icon","NativeOnlyAnimatedView","cn","DialogPrimitive","X","React","Platform","Text","View","cssInterop","FadeIn","FadeOut","FullWindowOverlay","RNFullWindowOverlay","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","className","Dialog","Root","DialogTrigger","Trigger","DialogPortal","Portal","DialogClose","Close","OS","DialogOverlay","children","props","Overlay","select","web","asChild","entering","duration","exiting","delay","DialogContent","portalHost","hostName","Content","hitSlop","as","DialogHeader","DialogFooter","DialogTitle","Title","DialogDescription","Description"],"sourceRoot":"../../../../src","sources":["components/ui/Dialog.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,421 @@
1
+ "use strict";
2
+
3
+ import { Icon } from "./Icon.js";
4
+ import { NativeOnlyAnimatedView } from "./Native-Only-Animated-View.js";
5
+ import { TextClassContext } from "./Text.js";
6
+ import { cn } from "../../lib/utils.js";
7
+ import * as DropdownMenuPrimitive from '@rn-primitives/dropdown-menu';
8
+ import { Check, ChevronDown, ChevronRight, ChevronUp } from 'lucide-react-native';
9
+ import * as React from 'react';
10
+ import { Platform, StyleSheet, Text, View } from 'react-native';
11
+ import { cssInterop } from 'nativewind';
12
+ import { FadeIn } from 'react-native-reanimated';
13
+ import { FullWindowOverlay as RNFullWindowOverlay } from 'react-native-screens';
14
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
+ cssInterop(View, {
16
+ className: 'style'
17
+ });
18
+ cssInterop(Text, {
19
+ className: 'style'
20
+ });
21
+
22
+ /**
23
+ * Root component for dropdown menu - provides context for all dropdown menu children
24
+ *
25
+ * @component
26
+ * @example
27
+ * ```tsx
28
+ * <DropdownMenu>
29
+ * <DropdownMenuTrigger>
30
+ * <Button variant="outline">
31
+ * <Text>Open Menu</Text>
32
+ * </Button>
33
+ * </DropdownMenuTrigger>
34
+ * <DropdownMenuContent>
35
+ * <DropdownMenuItem>
36
+ * <Text>Profile</Text>
37
+ * </DropdownMenuItem>
38
+ * </DropdownMenuContent>
39
+ * </DropdownMenu>
40
+ * ```
41
+ */
42
+ const DropdownMenu = DropdownMenuPrimitive.Root;
43
+
44
+ /**
45
+ * Trigger component that opens the dropdown menu when pressed
46
+ *
47
+ * @component
48
+ */
49
+ const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
50
+
51
+ /**
52
+ * Groups related menu items together
53
+ *
54
+ * @component
55
+ */
56
+ const DropdownMenuGroup = DropdownMenuPrimitive.Group;
57
+
58
+ /**
59
+ * Portal component to render menu content outside the DOM hierarchy
60
+ *
61
+ * @component
62
+ */
63
+ const DropdownMenuPortal = DropdownMenuPrimitive.Portal;
64
+
65
+ /**
66
+ * Root component for nested submenu
67
+ *
68
+ * @component
69
+ */
70
+ const DropdownMenuSub = DropdownMenuPrimitive.Sub;
71
+
72
+ /**
73
+ * Groups radio items together with single selection
74
+ *
75
+ * @component
76
+ */
77
+ const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
78
+
79
+ /**
80
+ * Trigger for opening a nested submenu
81
+ *
82
+ * Displays a chevron icon that indicates expandable content. The icon direction
83
+ * changes based on platform and submenu state.
84
+ *
85
+ * @component
86
+ * @example
87
+ * ```tsx
88
+ * <DropdownMenuSub>
89
+ * <DropdownMenuSubTrigger>
90
+ * <Text>More Options</Text>
91
+ * </DropdownMenuSubTrigger>
92
+ * <DropdownMenuSubContent>
93
+ * <DropdownMenuItem>
94
+ * <Text>Nested Item</Text>
95
+ * </DropdownMenuItem>
96
+ * </DropdownMenuSubContent>
97
+ * </DropdownMenuSub>
98
+ * ```
99
+ */
100
+ function DropdownMenuSubTrigger({
101
+ className: _className,
102
+ inset,
103
+ children,
104
+ iconClassName,
105
+ ...props
106
+ }) {
107
+ const {
108
+ open
109
+ } = DropdownMenuPrimitive.useSubContext();
110
+ const icon = Platform.OS === 'web' ? ChevronRight : open ? ChevronUp : ChevronDown;
111
+ return /*#__PURE__*/_jsx(TextClassContext.Provider, {
112
+ value: cn('text-sm select-none group-active:text-accent-foreground', open && 'text-accent-foreground'),
113
+ children: /*#__PURE__*/_jsxs(DropdownMenuPrimitive.SubTrigger, {
114
+ className: cn('active:bg-accent group flex flex-row items-center rounded-sm px-2 py-2 sm:py-1.5', Platform.select({
115
+ web: 'focus:bg-accent focus:text-accent-foreground cursor-default outline-none [&_svg]:pointer-events-none'
116
+ }), open && 'bg-accent', inset && 'pl-8'),
117
+ ...props,
118
+ children: [/*#__PURE__*/_jsx(_Fragment, {
119
+ children: children
120
+ }), /*#__PURE__*/_jsx(Icon, {
121
+ as: icon,
122
+ className: cn('text-foreground ml-auto size-4 shrink-0', iconClassName)
123
+ })]
124
+ })
125
+ });
126
+ }
127
+
128
+ /**
129
+ * Content container for nested submenu items
130
+ *
131
+ * @component
132
+ * @example
133
+ * ```tsx
134
+ * <DropdownMenuSubContent>
135
+ * <DropdownMenuItem>
136
+ * <Text>Submenu Item</Text>
137
+ * </DropdownMenuItem>
138
+ * </DropdownMenuSubContent>
139
+ * ```
140
+ */
141
+ function DropdownMenuSubContent({
142
+ className,
143
+ ...props
144
+ }) {
145
+ return /*#__PURE__*/_jsx(NativeOnlyAnimatedView, {
146
+ entering: FadeIn,
147
+ children: /*#__PURE__*/_jsx(DropdownMenuPrimitive.SubContent, {
148
+ className: cn('bg-popover border-border overflow-hidden rounded-md border p-1 shadow-lg shadow-black/5', Platform.select({
149
+ web: 'animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 fade-in-0 data-[state=closed]:zoom-out-95 zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-context-menu-content-transform-origin) z-50 min-w-[8rem]'
150
+ }), className),
151
+ ...props
152
+ })
153
+ });
154
+ }
155
+
156
+ /**
157
+ * Full window overlay wrapper for iOS, Fragment for other platforms
158
+ */
159
+ const FullWindowOverlay = Platform.OS === 'ios' ? RNFullWindowOverlay : React.Fragment;
160
+
161
+ /**
162
+ * Main content container for dropdown menu items
163
+ *
164
+ * Renders menu items in a popover with proper positioning, animations,
165
+ * and overlay handling. Uses a portal to render outside the parent hierarchy.
166
+ *
167
+ * @component
168
+ * @example
169
+ * ```tsx
170
+ * <DropdownMenuContent>
171
+ * <DropdownMenuItem>
172
+ * <Text>Profile</Text>
173
+ * </DropdownMenuItem>
174
+ * <DropdownMenuSeparator />
175
+ * <DropdownMenuItem>
176
+ * <Text>Settings</Text>
177
+ * </DropdownMenuItem>
178
+ * </DropdownMenuContent>
179
+ * ```
180
+ *
181
+ * @accessibility
182
+ * - Properly handles focus management
183
+ * - Supports keyboard navigation
184
+ * - Screen reader friendly menu structure
185
+ */
186
+ function DropdownMenuContent({
187
+ className,
188
+ overlayClassName,
189
+ overlayStyle,
190
+ portalHost,
191
+ ...props
192
+ }) {
193
+ return /*#__PURE__*/_jsx(DropdownMenuPrimitive.Portal, {
194
+ hostName: portalHost,
195
+ children: /*#__PURE__*/_jsx(FullWindowOverlay, {
196
+ children: /*#__PURE__*/_jsx(DropdownMenuPrimitive.Overlay, {
197
+ style: Platform.select({
198
+ web: overlayStyle ?? undefined,
199
+ native: overlayStyle ? StyleSheet.flatten([StyleSheet.absoluteFill, overlayStyle]) : StyleSheet.absoluteFill
200
+ }),
201
+ className: overlayClassName,
202
+ children: /*#__PURE__*/_jsx(NativeOnlyAnimatedView, {
203
+ entering: FadeIn,
204
+ children: /*#__PURE__*/_jsx(TextClassContext.Provider, {
205
+ value: "text-popover-foreground",
206
+ children: /*#__PURE__*/_jsx(DropdownMenuPrimitive.Content, {
207
+ className: cn('bg-popover border-border min-w-[8rem] overflow-hidden rounded-md border p-1 shadow-lg shadow-black/5', Platform.select({
208
+ web: cn('animate-in fade-in-0 zoom-in-95 max-h-(--radix-context-menu-content-available-height) origin-(--radix-context-menu-content-transform-origin) z-50 cursor-default', props.side === 'bottom' && 'slide-in-from-top-2', props.side === 'top' && 'slide-in-from-bottom-2')
209
+ }), className),
210
+ ...props
211
+ })
212
+ })
213
+ })
214
+ })
215
+ })
216
+ });
217
+ }
218
+
219
+ /**
220
+ * Individual menu item component
221
+ *
222
+ * Supports both default and destructive variants for different actions.
223
+ * Includes proper hover, active, and focus states.
224
+ *
225
+ * @component
226
+ * @example
227
+ * ```tsx
228
+ * <DropdownMenuItem onSelect={() => console.log('Selected')}>
229
+ * <Text>Edit Profile</Text>
230
+ * </DropdownMenuItem>
231
+ *
232
+ * <DropdownMenuItem variant="destructive">
233
+ * <Text>Delete Account</Text>
234
+ * </DropdownMenuItem>
235
+ * ```
236
+ *
237
+ * @accessibility
238
+ * - Disabled items cannot be interacted with
239
+ * - Proper focus indicators on web
240
+ */
241
+ function DropdownMenuItem({
242
+ className,
243
+ inset,
244
+ variant,
245
+ ...props
246
+ }) {
247
+ return /*#__PURE__*/_jsx(TextClassContext.Provider, {
248
+ value: cn('select-none text-sm text-popover-foreground group-active:text-popover-foreground', variant === 'destructive' && 'text-destructive group-active:text-destructive'),
249
+ children: /*#__PURE__*/_jsx(DropdownMenuPrimitive.Item, {
250
+ className: cn('active:bg-accent group relative flex flex-row items-center gap-2 rounded-sm px-2 py-2 sm:py-1.5', Platform.select({
251
+ web: cn('focus:bg-accent focus:text-accent-foreground cursor-default outline-none data-[disabled]:pointer-events-none', variant === 'destructive' && 'focus:bg-destructive/10 dark:focus:bg-destructive/20')
252
+ }), variant === 'destructive' && 'active:bg-destructive/10 dark:active:bg-destructive/20', props.disabled && 'opacity-50', inset && 'pl-8', className),
253
+ ...props
254
+ })
255
+ });
256
+ }
257
+
258
+ /**
259
+ * Menu item with checkbox for multi-selection
260
+ *
261
+ * Shows a checkmark when selected. Useful for toggling multiple options.
262
+ *
263
+ * @component
264
+ * @example
265
+ * ```tsx
266
+ * <DropdownMenuCheckboxItem
267
+ * checked={showPanel}
268
+ * onCheckedChange={setShowPanel}
269
+ * >
270
+ * <Text>Show Side Panel</Text>
271
+ * </DropdownMenuCheckboxItem>
272
+ * ```
273
+ */
274
+ function DropdownMenuCheckboxItem({
275
+ className,
276
+ children,
277
+ ...props
278
+ }) {
279
+ return /*#__PURE__*/_jsx(TextClassContext.Provider, {
280
+ value: "text-sm text-popover-foreground select-none group-active:text-accent-foreground",
281
+ children: /*#__PURE__*/_jsxs(DropdownMenuPrimitive.CheckboxItem, {
282
+ className: cn('active:bg-accent group relative flex flex-row items-center gap-2 rounded-sm py-2 pl-8 pr-2 sm:py-1.5', Platform.select({
283
+ web: 'focus:bg-accent focus:text-accent-foreground cursor-default outline-none data-[disabled]:pointer-events-none'
284
+ }), props.disabled && 'opacity-50', className),
285
+ ...props,
286
+ children: [/*#__PURE__*/_jsx(View, {
287
+ className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center",
288
+ children: /*#__PURE__*/_jsx(DropdownMenuPrimitive.ItemIndicator, {
289
+ children: /*#__PURE__*/_jsx(Icon, {
290
+ as: Check,
291
+ className: cn('text-foreground size-4', Platform.select({
292
+ web: 'pointer-events-none'
293
+ }))
294
+ })
295
+ })
296
+ }), /*#__PURE__*/_jsx(_Fragment, {
297
+ children: children
298
+ })]
299
+ })
300
+ });
301
+ }
302
+
303
+ /**
304
+ * Menu item with radio button for single selection within a group
305
+ *
306
+ * Shows a filled circle when selected. Use within DropdownMenuRadioGroup.
307
+ *
308
+ * @component
309
+ * @example
310
+ * ```tsx
311
+ * <DropdownMenuRadioGroup value={sortBy} onValueChange={setSortBy}>
312
+ * <DropdownMenuRadioItem value="name">
313
+ * <Text>Sort by Name</Text>
314
+ * </DropdownMenuRadioItem>
315
+ * <DropdownMenuRadioItem value="date">
316
+ * <Text>Sort by Date</Text>
317
+ * </DropdownMenuRadioItem>
318
+ * </DropdownMenuRadioGroup>
319
+ * ```
320
+ */
321
+ function DropdownMenuRadioItem({
322
+ className,
323
+ children,
324
+ ...props
325
+ }) {
326
+ return /*#__PURE__*/_jsx(TextClassContext.Provider, {
327
+ value: "text-sm text-popover-foreground select-none group-active:text-accent-foreground",
328
+ children: /*#__PURE__*/_jsxs(DropdownMenuPrimitive.RadioItem, {
329
+ className: cn('active:bg-accent group relative flex flex-row items-center gap-2 rounded-sm py-2 pl-8 pr-2 sm:py-1.5', Platform.select({
330
+ web: 'focus:bg-accent focus:text-accent-foreground cursor-default outline-none data-[disabled]:pointer-events-none'
331
+ }), props.disabled && 'opacity-50', className),
332
+ ...props,
333
+ children: [/*#__PURE__*/_jsx(View, {
334
+ className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center",
335
+ children: /*#__PURE__*/_jsx(DropdownMenuPrimitive.ItemIndicator, {
336
+ children: /*#__PURE__*/_jsx(View, {
337
+ className: "bg-foreground h-2 w-2 rounded-full"
338
+ })
339
+ })
340
+ }), /*#__PURE__*/_jsx(_Fragment, {
341
+ children: children
342
+ })]
343
+ })
344
+ });
345
+ }
346
+
347
+ /**
348
+ * Label component for grouping and describing menu sections
349
+ *
350
+ * @component
351
+ * @example
352
+ * ```tsx
353
+ * <DropdownMenuLabel>
354
+ * <Text>Account</Text>
355
+ * </DropdownMenuLabel>
356
+ * <DropdownMenuItem>
357
+ * <Text>Profile</Text>
358
+ * </DropdownMenuItem>
359
+ * ```
360
+ */
361
+ function DropdownMenuLabel({
362
+ className,
363
+ inset,
364
+ ...props
365
+ }) {
366
+ return /*#__PURE__*/_jsx(DropdownMenuPrimitive.Label, {
367
+ className: cn('text-foreground px-2 py-2 text-sm font-medium sm:py-1.5', inset && 'pl-8', className),
368
+ ...props
369
+ });
370
+ }
371
+
372
+ /**
373
+ * Visual separator between menu items or sections
374
+ *
375
+ * @component
376
+ * @example
377
+ * ```tsx
378
+ * <DropdownMenuItem>
379
+ * <Text>Edit</Text>
380
+ * </DropdownMenuItem>
381
+ * <DropdownMenuSeparator />
382
+ * <DropdownMenuItem variant="destructive">
383
+ * <Text>Delete</Text>
384
+ * </DropdownMenuItem>
385
+ * ```
386
+ */
387
+ function DropdownMenuSeparator({
388
+ className,
389
+ ...props
390
+ }) {
391
+ return /*#__PURE__*/_jsx(DropdownMenuPrimitive.Separator, {
392
+ className: cn('bg-border -mx-1 my-1 h-px', className),
393
+ ...props
394
+ });
395
+ }
396
+
397
+ /**
398
+ * Displays keyboard shortcut hint for menu items
399
+ *
400
+ * @component
401
+ * @example
402
+ * ```tsx
403
+ * <DropdownMenuItem>
404
+ * <Text>Save</Text>
405
+ * <DropdownMenuShortcut>
406
+ * <Text>⌘S</Text>
407
+ * </DropdownMenuShortcut>
408
+ * </DropdownMenuItem>
409
+ * ```
410
+ */
411
+ function DropdownMenuShortcut({
412
+ className,
413
+ ...props
414
+ }) {
415
+ return /*#__PURE__*/_jsx(Text, {
416
+ className: cn('text-muted-foreground ml-auto text-xs tracking-widest', className),
417
+ ...props
418
+ });
419
+ }
420
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };
421
+ //# sourceMappingURL=Dropdown-Menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Icon","NativeOnlyAnimatedView","TextClassContext","cn","DropdownMenuPrimitive","Check","ChevronDown","ChevronRight","ChevronUp","React","Platform","StyleSheet","Text","View","cssInterop","FadeIn","FullWindowOverlay","RNFullWindowOverlay","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","className","DropdownMenu","Root","DropdownMenuTrigger","Trigger","DropdownMenuGroup","Group","DropdownMenuPortal","Portal","DropdownMenuSub","Sub","DropdownMenuRadioGroup","RadioGroup","DropdownMenuSubTrigger","_className","inset","children","iconClassName","props","open","useSubContext","icon","OS","Provider","value","SubTrigger","select","web","as","DropdownMenuSubContent","entering","SubContent","DropdownMenuContent","overlayClassName","overlayStyle","portalHost","hostName","Overlay","style","undefined","native","flatten","absoluteFill","Content","side","DropdownMenuItem","variant","Item","disabled","DropdownMenuCheckboxItem","CheckboxItem","ItemIndicator","DropdownMenuRadioItem","RadioItem","DropdownMenuLabel","Label","DropdownMenuSeparator","Separator","DropdownMenuShortcut"],"sourceRoot":"../../../../src","sources":["components/ui/Dropdown-Menu.tsx"],"mappings":"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","ignoreList":[]}