@react-native-reusables/cli 0.0.14 → 0.0.16
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.
- package/__generated/components/primitives/portal.tsx +27 -12
- package/__generated/components/ui/accordion.tsx +1 -1
- package/__generated/components/ui/alert-dialog.tsx +3 -3
- package/__generated/components/ui/checkbox.tsx +2 -2
- package/__generated/components/ui/context-menu.tsx +9 -5
- package/__generated/components/ui/dialog.tsx +5 -5
- package/__generated/components/ui/dropdown-menu.tsx +10 -6
- package/__generated/components/ui/input.tsx +0 -1
- package/__generated/components/ui/menubar.tsx +9 -6
- package/__generated/components/ui/navigation-menu.tsx +6 -4
- package/__generated/components/ui/popover.tsx +3 -3
- package/__generated/components/ui/select.tsx +7 -5
- package/__generated/components/ui/tabs.tsx +1 -1
- package/__generated/components/ui/tooltip.tsx +7 -4
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/package.json +36 -36
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { Platform, type View, type ViewStyle } from 'react-native';
|
|
2
3
|
import { create } from 'zustand';
|
|
3
4
|
|
|
4
5
|
const DEFAULT_PORTAL_HOST = 'INTERNAL_PRIMITIVE_DEFAULT_HOST_NAME';
|
|
@@ -7,17 +8,10 @@ type PortalMap = Map<string, React.ReactNode>;
|
|
|
7
8
|
type PortalHostMap = Map<string, PortalMap>;
|
|
8
9
|
|
|
9
10
|
const usePortal = create<{ map: PortalHostMap }>(() => ({
|
|
10
|
-
map: new Map<string, PortalMap>().set(
|
|
11
|
-
DEFAULT_PORTAL_HOST,
|
|
12
|
-
new Map<string, React.ReactNode>()
|
|
13
|
-
),
|
|
11
|
+
map: new Map<string, PortalMap>().set(DEFAULT_PORTAL_HOST, new Map<string, React.ReactNode>()),
|
|
14
12
|
}));
|
|
15
13
|
|
|
16
|
-
const updatePortal = (
|
|
17
|
-
hostName: string,
|
|
18
|
-
name: string,
|
|
19
|
-
children: React.ReactNode
|
|
20
|
-
) => {
|
|
14
|
+
const updatePortal = (hostName: string, name: string, children: React.ReactNode) => {
|
|
21
15
|
usePortal.setState((prev) => {
|
|
22
16
|
const next = new Map(prev.map);
|
|
23
17
|
const portal = next.get(hostName) ?? new Map<string, React.ReactNode>();
|
|
@@ -37,9 +31,7 @@ const removePortal = (hostName: string, name: string) => {
|
|
|
37
31
|
};
|
|
38
32
|
|
|
39
33
|
export function PortalHost({ name = DEFAULT_PORTAL_HOST }: { name?: string }) {
|
|
40
|
-
const portalMap =
|
|
41
|
-
usePortal((state) => state.map).get(name) ??
|
|
42
|
-
new Map<string, React.ReactNode>();
|
|
34
|
+
const portalMap = usePortal((state) => state.map).get(name) ?? new Map<string, React.ReactNode>();
|
|
43
35
|
if (portalMap.size === 0) return null;
|
|
44
36
|
return <>{Array.from(portalMap.values())}</>;
|
|
45
37
|
}
|
|
@@ -65,3 +57,26 @@ export function Portal({
|
|
|
65
57
|
|
|
66
58
|
return null;
|
|
67
59
|
}
|
|
60
|
+
|
|
61
|
+
const ROOT: ViewStyle = {
|
|
62
|
+
flex: 1,
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export function useModalPortalRoot() {
|
|
66
|
+
const ref = React.useRef<View>(null);
|
|
67
|
+
const [sideOffset, setSideOffSet] = React.useState(0);
|
|
68
|
+
|
|
69
|
+
const onLayout = React.useCallback(() => {
|
|
70
|
+
if (Platform.OS === 'web') return;
|
|
71
|
+
ref.current?.measure((_x, _y, _width, _height, _pageX, pageY) => {
|
|
72
|
+
setSideOffSet(-pageY);
|
|
73
|
+
});
|
|
74
|
+
}, []);
|
|
75
|
+
|
|
76
|
+
return {
|
|
77
|
+
ref,
|
|
78
|
+
sideOffset,
|
|
79
|
+
onLayout,
|
|
80
|
+
style: ROOT,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
@@ -12,8 +12,8 @@ import Animated, {
|
|
|
12
12
|
useDerivedValue,
|
|
13
13
|
withTiming,
|
|
14
14
|
} from 'react-native-reanimated';
|
|
15
|
+
import { ChevronDown } from '../../lib/icons/ChevronDown';
|
|
15
16
|
import { cn } from '../../lib/utils';
|
|
16
|
-
import { ChevronDown } from '../Icons';
|
|
17
17
|
import { TextClassContext } from './text';
|
|
18
18
|
|
|
19
19
|
const Accordion = React.forwardRef<
|
|
@@ -61,12 +61,12 @@ const AlertDialogOverlay = Platform.select({
|
|
|
61
61
|
|
|
62
62
|
const AlertDialogContent = React.forwardRef<
|
|
63
63
|
React.ElementRef<typeof AlertDialogPrimitive.Content>,
|
|
64
|
-
React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>
|
|
65
|
-
>(({ className, ...props }, ref) => {
|
|
64
|
+
React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content> & { portalHost?: string }
|
|
65
|
+
>(({ className, portalHost, ...props }, ref) => {
|
|
66
66
|
const { open } = AlertDialogPrimitive.useRootContext();
|
|
67
67
|
|
|
68
68
|
return (
|
|
69
|
-
<AlertDialogPortal>
|
|
69
|
+
<AlertDialogPortal hostName={portalHost}>
|
|
70
70
|
<AlertDialogOverlay>
|
|
71
71
|
<AlertDialogPrimitive.Content
|
|
72
72
|
ref={ref}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Check } from '../../components/Icons';
|
|
2
|
-
import * as React from 'react';
|
|
3
1
|
import * as CheckboxPrimitive from '@rnr/checkbox';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { Check } from '../../lib/icons/Check';
|
|
4
4
|
|
|
5
5
|
import { Platform } from 'react-native';
|
|
6
6
|
import { cn } from '../../lib/utils';
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as ContextMenuPrimitive from '@rnr/context-menu';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { Platform, StyleProp, StyleSheet, Text, View, ViewStyle } from 'react-native';
|
|
4
|
-
import
|
|
4
|
+
import { Check } from '../../lib/icons/Check';
|
|
5
|
+
import { ChevronDown } from '../../lib/icons/ChevronDown';
|
|
6
|
+
import { ChevronRight } from '../../lib/icons/ChevronRight';
|
|
7
|
+
import { ChevronUp } from '../../lib/icons/ChevronUp';
|
|
5
8
|
import { cn } from '../../lib/utils';
|
|
6
9
|
import { TextClassContext } from './text';
|
|
7
10
|
|
|
@@ -76,18 +79,19 @@ const ContextMenuContent = React.forwardRef<
|
|
|
76
79
|
React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content> & {
|
|
77
80
|
overlayStyle?: StyleProp<ViewStyle>;
|
|
78
81
|
overlayClassName?: string;
|
|
82
|
+
portalHost?: string;
|
|
79
83
|
}
|
|
80
|
-
>(({ className, overlayClassName, overlayStyle, ...props }, ref) => {
|
|
84
|
+
>(({ className, overlayClassName, overlayStyle, portalHost, ...props }, ref) => {
|
|
81
85
|
const { open } = ContextMenuPrimitive.useRootContext();
|
|
82
86
|
return (
|
|
83
|
-
<ContextMenuPrimitive.Portal>
|
|
87
|
+
<ContextMenuPrimitive.Portal hostName={portalHost}>
|
|
84
88
|
<ContextMenuPrimitive.Overlay
|
|
85
89
|
style={
|
|
86
90
|
overlayStyle
|
|
87
91
|
? StyleSheet.flatten([
|
|
88
92
|
Platform.OS !== 'web' ? StyleSheet.absoluteFill : undefined,
|
|
89
93
|
overlayStyle,
|
|
90
|
-
])
|
|
94
|
+
] as ViewStyle)
|
|
91
95
|
: Platform.OS !== 'web'
|
|
92
96
|
? StyleSheet.absoluteFill
|
|
93
97
|
: undefined
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as DialogPrimitive from '@rnr/dialog';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { Platform, StyleSheet, View } from 'react-native';
|
|
4
4
|
import Animated, { FadeIn, FadeOut } from 'react-native-reanimated';
|
|
5
|
-
import
|
|
5
|
+
import { X } from '../../lib/icons/X';
|
|
6
6
|
import { cn } from '../../lib/utils';
|
|
7
7
|
|
|
8
8
|
const Dialog = DialogPrimitive.Root;
|
|
@@ -61,11 +61,11 @@ const DialogOverlay = Platform.select({
|
|
|
61
61
|
|
|
62
62
|
const DialogContent = React.forwardRef<
|
|
63
63
|
React.ElementRef<typeof DialogPrimitive.Content>,
|
|
64
|
-
React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>
|
|
65
|
-
>(({ className, children, ...props }, ref) => {
|
|
64
|
+
React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & { portalHost?: string }
|
|
65
|
+
>(({ className, children, portalHost, ...props }, ref) => {
|
|
66
66
|
const { open } = DialogPrimitive.useRootContext();
|
|
67
67
|
return (
|
|
68
|
-
<DialogPortal>
|
|
68
|
+
<DialogPortal hostName={portalHost}>
|
|
69
69
|
<DialogOverlay>
|
|
70
70
|
<DialogPrimitive.Content
|
|
71
71
|
ref={ref}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as DropdownMenuPrimitive from '@rnr/dropdown-menu';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { Platform, StyleProp, StyleSheet, Text, View, ViewStyle } from 'react-native';
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
4
|
+
import { Check } from '../../lib/icons/Check';
|
|
5
|
+
import { ChevronDown } from '../../lib/icons/ChevronDown';
|
|
6
|
+
import { ChevronRight } from '../../lib/icons/ChevronRight';
|
|
7
|
+
import { ChevronUp } from '../../lib/icons/ChevronUp';
|
|
6
8
|
import { cn } from '../../lib/utils';
|
|
9
|
+
import { TextClassContext } from './text';
|
|
7
10
|
|
|
8
11
|
const DropdownMenu = DropdownMenuPrimitive.Root;
|
|
9
12
|
|
|
@@ -76,18 +79,19 @@ const DropdownMenuContent = React.forwardRef<
|
|
|
76
79
|
React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content> & {
|
|
77
80
|
overlayStyle?: StyleProp<ViewStyle>;
|
|
78
81
|
overlayClassName?: string;
|
|
82
|
+
portalHost?: string;
|
|
79
83
|
}
|
|
80
|
-
>(({ className, overlayClassName, overlayStyle, ...props }, ref) => {
|
|
84
|
+
>(({ className, overlayClassName, overlayStyle, portalHost, ...props }, ref) => {
|
|
81
85
|
const { open } = DropdownMenuPrimitive.useRootContext();
|
|
82
86
|
return (
|
|
83
|
-
<DropdownMenuPrimitive.Portal>
|
|
87
|
+
<DropdownMenuPrimitive.Portal hostName={portalHost}>
|
|
84
88
|
<DropdownMenuPrimitive.Overlay
|
|
85
89
|
style={
|
|
86
90
|
overlayStyle
|
|
87
91
|
? StyleSheet.flatten([
|
|
88
92
|
Platform.OS !== 'web' ? StyleSheet.absoluteFill : undefined,
|
|
89
93
|
overlayStyle,
|
|
90
|
-
])
|
|
94
|
+
] as ViewStyle)
|
|
91
95
|
: Platform.OS !== 'web'
|
|
92
96
|
? StyleSheet.absoluteFill
|
|
93
97
|
: undefined
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as MenubarPrimitive from '@rnr/menubar';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { Platform, Text, View } from 'react-native';
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
4
|
+
import { Check } from '../../lib/icons/Check';
|
|
5
|
+
import { ChevronDown } from '../../lib/icons/ChevronDown';
|
|
6
|
+
import { ChevronRight } from '../../lib/icons/ChevronRight';
|
|
7
|
+
import { ChevronUp } from '../../lib/icons/ChevronUp';
|
|
6
8
|
import { cn } from '../../lib/utils';
|
|
9
|
+
import { TextClassContext } from './text';
|
|
7
10
|
|
|
8
11
|
const MenubarMenu = MenubarPrimitive.Menu;
|
|
9
12
|
|
|
@@ -107,12 +110,12 @@ MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
|
|
|
107
110
|
|
|
108
111
|
const MenubarContent = React.forwardRef<
|
|
109
112
|
React.ElementRef<typeof MenubarPrimitive.Content>,
|
|
110
|
-
React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Content>
|
|
111
|
-
>(({ className, ...props }, ref) => {
|
|
113
|
+
React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Content> & { portalHost?: string }
|
|
114
|
+
>(({ className, portalHost, ...props }, ref) => {
|
|
112
115
|
const { value } = MenubarPrimitive.useRootContext();
|
|
113
116
|
const { value: itemValue } = MenubarPrimitive.useMenuContext();
|
|
114
117
|
return (
|
|
115
|
-
<MenubarPrimitive.Portal>
|
|
118
|
+
<MenubarPrimitive.Portal hostName={portalHost}>
|
|
116
119
|
<MenubarPrimitive.Content
|
|
117
120
|
ref={ref}
|
|
118
121
|
className={cn(
|
|
@@ -11,7 +11,7 @@ import Animated, {
|
|
|
11
11
|
useDerivedValue,
|
|
12
12
|
withTiming,
|
|
13
13
|
} from 'react-native-reanimated';
|
|
14
|
-
import { ChevronDown } from '../../
|
|
14
|
+
import { ChevronDown } from '../../lib/icons/ChevronDown';
|
|
15
15
|
import { cn } from '../../lib/utils';
|
|
16
16
|
|
|
17
17
|
const NavigationMenu = React.forwardRef<
|
|
@@ -91,12 +91,14 @@ NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
|
|
|
91
91
|
|
|
92
92
|
const NavigationMenuContent = React.forwardRef<
|
|
93
93
|
React.ElementRef<typeof NavigationMenuPrimitive.Content>,
|
|
94
|
-
React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>
|
|
95
|
-
|
|
94
|
+
React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content> & {
|
|
95
|
+
portalHost?: string;
|
|
96
|
+
}
|
|
97
|
+
>(({ className, children, portalHost, ...props }, ref) => {
|
|
96
98
|
const { value } = NavigationMenuPrimitive.useRootContext();
|
|
97
99
|
const { value: itemValue } = NavigationMenuPrimitive.useItemContext();
|
|
98
100
|
return (
|
|
99
|
-
<NavigationMenuPrimitive.Portal>
|
|
101
|
+
<NavigationMenuPrimitive.Portal hostName={portalHost}>
|
|
100
102
|
<NavigationMenuPrimitive.Content
|
|
101
103
|
ref={ref}
|
|
102
104
|
className={cn(
|
|
@@ -11,10 +11,10 @@ const PopoverTrigger = PopoverPrimitive.Trigger;
|
|
|
11
11
|
|
|
12
12
|
const PopoverContent = React.forwardRef<
|
|
13
13
|
React.ElementRef<typeof PopoverPrimitive.Content>,
|
|
14
|
-
React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>
|
|
15
|
-
>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => {
|
|
14
|
+
React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & { portalHost?: string }
|
|
15
|
+
>(({ className, align = 'center', sideOffset = 4, portalHost, ...props }, ref) => {
|
|
16
16
|
return (
|
|
17
|
-
<PopoverPrimitive.Portal>
|
|
17
|
+
<PopoverPrimitive.Portal hostName={portalHost}>
|
|
18
18
|
<PopoverPrimitive.Overlay style={Platform.OS !== 'web' ? StyleSheet.absoluteFill : undefined}>
|
|
19
19
|
<Animated.View entering={FadeIn.duration(200)} exiting={FadeOut}>
|
|
20
20
|
<TextClassContext.Provider value='text-popover-foreground'>
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import * as SelectPrimitive from '@rnr/select';
|
|
1
2
|
import * as React from 'react';
|
|
2
3
|
import { Platform, StyleSheet, View } from 'react-native';
|
|
3
4
|
import Animated, { FadeIn, FadeOut } from 'react-native-reanimated';
|
|
4
|
-
import { Check
|
|
5
|
-
import
|
|
5
|
+
import { Check } from '../../lib/icons/Check';
|
|
6
|
+
import { ChevronDown } from '../../lib/icons/ChevronDown';
|
|
7
|
+
import { ChevronUp } from '../../lib/icons/ChevronUp';
|
|
6
8
|
import { cn } from '../../lib/utils';
|
|
7
9
|
|
|
8
10
|
type Option = SelectPrimitive.Option;
|
|
@@ -74,12 +76,12 @@ const SelectScrollDownButton = ({
|
|
|
74
76
|
|
|
75
77
|
const SelectContent = React.forwardRef<
|
|
76
78
|
React.ElementRef<typeof SelectPrimitive.Content>,
|
|
77
|
-
React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>
|
|
78
|
-
>(({ className, children, position = 'popper', ...props }, ref) => {
|
|
79
|
+
React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content> & { portalHost?: string }
|
|
80
|
+
>(({ className, children, position = 'popper', portalHost, ...props }, ref) => {
|
|
79
81
|
const { open } = SelectPrimitive.useRootContext();
|
|
80
82
|
|
|
81
83
|
return (
|
|
82
|
-
<SelectPrimitive.Portal>
|
|
84
|
+
<SelectPrimitive.Portal hostName={portalHost}>
|
|
83
85
|
<SelectPrimitive.Overlay style={Platform.OS !== 'web' ? StyleSheet.absoluteFill : undefined}>
|
|
84
86
|
<Animated.View entering={FadeIn} exiting={FadeOut}>
|
|
85
87
|
<SelectPrimitive.Content
|
|
@@ -35,7 +35,7 @@ const TabsTrigger = React.forwardRef<
|
|
|
35
35
|
<TabsPrimitive.Trigger
|
|
36
36
|
ref={ref}
|
|
37
37
|
className={cn(
|
|
38
|
-
'inline-flex items-center justify-center web:whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium web:ring-offset-background web:transition-all web:focus-visible:outline-none web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2',
|
|
38
|
+
'inline-flex items-center justify-center shadow-none web:whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium web:ring-offset-background web:transition-all web:focus-visible:outline-none web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2',
|
|
39
39
|
props.disabled && 'web:pointer-events-none opacity-50',
|
|
40
40
|
props.value === value && 'bg-background shadow-lg shadow-foreground/10',
|
|
41
41
|
className
|
|
@@ -11,11 +11,14 @@ const TooltipTrigger = TooltipPrimitive.Trigger;
|
|
|
11
11
|
|
|
12
12
|
const TooltipContent = React.forwardRef<
|
|
13
13
|
React.ElementRef<typeof TooltipPrimitive.Content>,
|
|
14
|
-
React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>
|
|
15
|
-
>(({ className, sideOffset = 4, ...props }, ref) => (
|
|
16
|
-
<TooltipPrimitive.Portal>
|
|
14
|
+
React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> & { portalHost?: string }
|
|
15
|
+
>(({ className, sideOffset = 4, portalHost, ...props }, ref) => (
|
|
16
|
+
<TooltipPrimitive.Portal hostName={portalHost}>
|
|
17
17
|
<TooltipPrimitive.Overlay style={Platform.OS !== 'web' ? StyleSheet.absoluteFill : undefined}>
|
|
18
|
-
<Animated.View
|
|
18
|
+
<Animated.View
|
|
19
|
+
entering={Platform.select({ web: undefined, default: FadeIn })}
|
|
20
|
+
exiting={Platform.select({ web: undefined, default: FadeOut })}
|
|
21
|
+
>
|
|
19
22
|
<TextClassContext.Provider value='text-sm native:text-base text-popover-foreground'>
|
|
20
23
|
<TooltipPrimitive.Content
|
|
21
24
|
ref={ref}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{createMatchPath as U}from"tsconfig-paths";async function k(e,o){return U(o.absoluteBaseUrl,o.paths)(e,void 0,()=>!0,[".ts",".tsx"])}import{cosmiconfig as W}from"cosmiconfig";import{loadConfig as z}from"tsconfig-paths";import{z as p}from"zod";var E="~/components",N="~/lib",J=W("components",{searchPlaces:["components.json"]}),x=p.object({platforms:p.string().optional(),aliases:p.object({components:p.string(),lib:p.string()})}).strict(),B=x.extend({platforms:p.string().optional(),resolvedPaths:p.object({lib:p.string(),components:p.string()})});async function S(e){let o=await V(e);return o?await P(e,o):null}async function P(e,o){let t=await z(e);if(t.resultType==="failed")throw new Error(`Failed to load tsconfig.json. ${t.message??""}`.trim());return B.parse({...o,resolvedPaths:{lib:await k(o.aliases.lib,t),components:await k(o.aliases.components,t)}})}async function V(e){try{let o=await J.search(e);return o?x.parse(o.config):null}catch{throw new Error(`Invalid configuration found in ${e}/components.json.`)}}import{detect as G}from"@antfu/ni";async function I(e){let o=await G({programmatic:!0,cwd:e});return o==="yarn@berry"?"yarn":o==="pnpm@6"?"pnpm":o==="bun"?"bun":o??"npm"}import y from"chalk";var a={error(...e){console.log(y.red(...e))},warn(...e){console.log(y.yellow(...e))},info(...e){console.log(y.cyan(...e))},success(...e){console.log(y.green(...e))},break(){console.log("")}};function F(e){typeof e=="string"&&(a.error(e),process.exit(1)),e instanceof Error&&(a.error(e.message),process.exit(1)),a.error("Something went wrong. Please try again."),process.exit(1)}import h from"chalk";import{Command as H}from"commander";import{execa as K}from"execa";import{existsSync as O,promises as _}from"fs";import M from"ora";import d from"path";import w from"prompts";import{z as f}from"zod";var C=[{name:"accordion",dependencies:["accordion-primitive","text"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/accordion.tsx",to:{folder:"ui",file:"accordion.tsx"}}]},{name:"alert-dialog",dependencies:["alert-dialog-primitive","button","text"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/alert-dialog.tsx",to:{folder:"ui",file:"alert-dialog.tsx"}}]},{name:"aspect-ratio",dependencies:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/aspect-ratio.tsx",to:{folder:"ui",file:"aspect-ratio.tsx"}}]},{name:"avatar",dependencies:["avatar-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/avatar.tsx",to:{folder:"ui",file:"avatar.tsx"}}]},{name:"badge",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/badge.tsx",to:{folder:"ui",file:"badge.tsx"}}]},{name:"button",dependencies:["text","types-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/button.tsx",to:{folder:"ui",file:"button.tsx"}}]},{name:"card",dependencies:["text","types-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/card.tsx",to:{folder:"ui",file:"card.tsx"}}]},{name:"checkbox",dependencies:["checkbox-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/checkbox.tsx",to:{folder:"ui",file:"checkbox.tsx"}}]},{name:"collapsible",dependencies:["collapsible-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/collapsible.tsx",to:{folder:"ui",file:"collapsible.tsx"}}]},{name:"context-menu",dependencies:["context-menu-primitive","text"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/context-menu.tsx",to:{folder:"ui",file:"context-menu.tsx"}}]},{name:"dialog",dependencies:["dialog-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/dialog.tsx",to:{folder:"ui",file:"dialog.tsx"}}]},{name:"dropdown-menu",dependencies:["dropdown-menu-primitive","text"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/dropdown-menu.tsx",to:{folder:"ui",file:"dropdown-menu.tsx"}}]},{name:"hover-card",dependencies:["hover-card-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/hover-card.tsx",to:{folder:"ui",file:"hover-card.tsx"}}]},{name:"input",dependencies:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/input.tsx",to:{folder:"ui",file:"input.tsx"}}]},{name:"label",dependencies:["label-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/label.tsx",to:{folder:"ui",file:"label.tsx"}}]},{name:"menubar",dependencies:["menubar-primitive","text"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/menubar.tsx",to:{folder:"ui",file:"menubar.tsx"}}]},{name:"navigation-menu",dependencies:["navigation-menu-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/navigation-menu.tsx",to:{folder:"ui",file:"navigation-menu.tsx"}}]},{name:"popover",dependencies:["popover-primitive","text"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/popover.tsx",to:{folder:"ui",file:"popover.tsx"}}]},{name:"radio-group",dependencies:["radio-group-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/radio-group.tsx",to:{folder:"ui",file:"radio-group.tsx"}}]},{name:"select",dependencies:["select-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/select.tsx",to:{folder:"ui",file:"select.tsx"}}]},{name:"separator",dependencies:["separator-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/separator.tsx",to:{folder:"ui",file:"separator.tsx"}}]},{name:"skeleton",dependencies:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/skeleton.tsx",to:{folder:"ui",file:"skeleton.tsx"}}]},{name:"switch",dependencies:["switch-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/switch.tsx",to:{folder:"ui",file:"switch.tsx"}}]},{name:"table",dependencies:["table-primitive","text"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/table.tsx",to:{folder:"ui",file:"table.tsx"}}]},{name:"tabs",dependencies:["tabs-primitive","text"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/tabs.tsx",to:{folder:"ui",file:"tabs.tsx"}}]},{name:"text",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/text.tsx",to:{folder:"ui",file:"text.tsx"}}]},{name:"textarea",dependencies:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/textarea.tsx",to:{folder:"ui",file:"textarea.tsx"}}]},{name:"toggle",dependencies:["toggle-primitive","text"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/toggle.tsx",to:{folder:"ui",file:"toggle.tsx"}}]},{name:"toggle-group",dependencies:["toggle-group-primitive","text"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/toggle-group.tsx",to:{folder:"ui",file:"toggle-group.tsx"}}]},{name:"tooltip",dependencies:["tooltip-primitive","text"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/tooltip.tsx",to:{folder:"ui",file:"tooltip.tsx"}}]},{name:"typography",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/typography.tsx",to:{folder:"ui",file:"typography.tsx"}}]}],q=[{name:"accordion-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-accordion"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/accordion/src/index.ts",to:{folder:"primitives/accordion",file:"index.ts"}},{from:"./node_modules/@rnr/accordion/src/accordion.web.tsx",to:{folder:"primitives/accordion",file:"accordion.web.tsx"}},{from:"./node_modules/@rnr/accordion/src/accordion.tsx",to:{folder:"primitives/accordion",file:"accordion.tsx"}},{from:"./node_modules/@rnr/accordion/src/types.ts",to:{folder:"primitives/accordion",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/accordion/src/accordion.tsx",distFrom:"primitives/accordion/accordion.tsx",to:{folder:"primitives/accordion",file:"index.tsx"}},{from:"./node_modules/@rnr/accordion/src/types.ts",distFrom:"primitives/accordion/types.ts",to:{folder:"primitives/accordion",file:"types.ts"}}]}},{name:"alert-dialog-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive"],npmPackages:{universal:["@radix-ui/react-alert-dialog"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/alert-dialog/src/index.ts",to:{folder:"primitives/alert-dialog",file:"index.ts"}},{from:"./node_modules/@rnr/alert-dialog/src/alert-dialog.web.tsx",to:{folder:"primitives/alert-dialog",file:"alert-dialog.web.tsx"}},{from:"./node_modules/@rnr/alert-dialog/src/alert-dialog.tsx",to:{folder:"primitives/alert-dialog",file:"alert-dialog.tsx"}},{from:"./node_modules/@rnr/alert-dialog/src/types.ts",to:{folder:"primitives/alert-dialog",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/alert-dialog/src/alert-dialog.tsx",distFrom:"primitives/alert-dialog/alert-dialog.tsx",to:{folder:"primitives/alert-dialog",file:"index.tsx"}},{from:"./node_modules/@rnr/alert-dialog/src/types.ts",distFrom:"primitives/alert-dialog/types.ts",to:{folder:"primitives/alert-dialog",file:"types.ts"}}]}},{name:"aspect-ratio-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/aspect-ratio/src/aspect-ratio.tsx",to:{folder:"primitives",file:"aspect-ratio.tsx"}}]},{name:"avatar-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/avatar/src/avatar.tsx",to:{folder:"primitives/avatar",file:"index.tsx"}},{from:"./node_modules/@rnr/avatar/src/types.ts",to:{folder:"primitives/avatar",file:"types.ts"}}]},{name:"checkbox-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-checkbox"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/checkbox/src/index.ts",to:{folder:"primitives/checkbox",file:"index.ts"}},{from:"./node_modules/@rnr/checkbox/src/checkbox.web.tsx",to:{folder:"primitives/checkbox",file:"checkbox.web.tsx"}},{from:"./node_modules/@rnr/checkbox/src/checkbox.tsx",to:{folder:"primitives/checkbox",file:"checkbox.tsx"}},{from:"./node_modules/@rnr/checkbox/src/types.ts",to:{folder:"primitives/checkbox",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/checkbox/src/checkbox.tsx",distFrom:"primitives/checkbox/checkbox.tsx",to:{folder:"primitives/checkbox",file:"index.tsx"}},{from:"./node_modules/@rnr/checkbox/src/types.ts",distFrom:"primitives/checkbox/types.ts",to:{folder:"primitives/checkbox",file:"types.ts"}}]}},{name:"collapsible-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-collapsible"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/collapsible/src/index.ts",to:{folder:"primitives/collapsible",file:"index.ts"}},{from:"./node_modules/@rnr/collapsible/src/collapsible.web.tsx",to:{folder:"primitives/collapsible",file:"collapsible.web.tsx"}},{from:"./node_modules/@rnr/collapsible/src/collapsible.tsx",to:{folder:"primitives/collapsible",file:"collapsible.tsx"}},{from:"./node_modules/@rnr/collapsible/src/types.ts",to:{folder:"primitives/collapsible",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/collapsible/src/collapsible.tsx",distFrom:"primitives/collapsible/collapsible.tsx",to:{folder:"primitives/collapsible",file:"index.tsx"}},{from:"./node_modules/@rnr/collapsible/src/types.ts",distFrom:"primitives/collapsible/types.ts",to:{folder:"primitives/collapsible",file:"types.ts"}}]}},{name:"context-menu-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive","utils-primitive"],npmPackages:{universal:["@radix-ui/react-context-menu"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/context-menu/src/index.ts",to:{folder:"primitives/context-menu",file:"index.ts"}},{from:"./node_modules/@rnr/context-menu/src/context-menu.web.tsx",to:{folder:"primitives/context-menu",file:"context-menu.web.tsx"}},{from:"./node_modules/@rnr/context-menu/src/context-menu.tsx",to:{folder:"primitives/context-menu",file:"context-menu.tsx"}},{from:"./node_modules/@rnr/context-menu/src/types.ts",to:{folder:"primitives/context-menu",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/context-menu/src/context-menu.tsx",distFrom:"primitives/context-menu/context-menu.tsx",to:{folder:"primitives/context-menu",file:"index.tsx"}},{from:"./node_modules/@rnr/context-menu/src/types.ts",distFrom:"primitives/context-menu/types.ts",to:{folder:"primitives/context-menu",file:"types.ts"}}]}},{name:"dialog-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive"],npmPackages:{universal:["@radix-ui/react-dialog"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/dialog/src/index.ts",to:{folder:"primitives/dialog",file:"index.ts"}},{from:"./node_modules/@rnr/dialog/src/dialog.web.tsx",to:{folder:"primitives/dialog",file:"dialog.web.tsx"}},{from:"./node_modules/@rnr/dialog/src/dialog.tsx",to:{folder:"primitives/dialog",file:"dialog.tsx"}},{from:"./node_modules/@rnr/dialog/src/types.ts",to:{folder:"primitives/dialog",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/dialog/src/dialog.tsx",distFrom:"primitives/dialog/dialog.tsx",to:{folder:"primitives/dialog",file:"index.tsx"}},{from:"./node_modules/@rnr/dialog/src/types.ts",distFrom:"primitives/dialog/types.ts",to:{folder:"primitives/dialog",file:"types.ts"}}]}},{name:"dropdown-menu-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive","utils-primitive"],npmPackages:{universal:["@radix-ui/react-dropdown-menu"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/dropdown-menu/src/index.ts",to:{folder:"primitives/dropdown-menu",file:"index.ts"}},{from:"./node_modules/@rnr/dropdown-menu/src/dropdown-menu.web.tsx",to:{folder:"primitives/dropdown-menu",file:"dropdown-menu.web.tsx"}},{from:"./node_modules/@rnr/dropdown-menu/src/dropdown-menu.tsx",to:{folder:"primitives/dropdown-menu",file:"dropdown-menu.tsx"}},{from:"./node_modules/@rnr/dropdown-menu/src/types.ts",to:{folder:"primitives/dropdown-menu",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/dropdown-menu/src/dropdown-menu.tsx",distFrom:"primitives/dropdown-menu/dropdown-menu.tsx",to:{folder:"primitives/dropdown-menu",file:"index.tsx"}},{from:"./node_modules/@rnr/dropdown-menu/src/types.ts",distFrom:"primitives/dropdown-menu/types.ts",to:{folder:"primitives/dropdown-menu",file:"types.ts"}}]}},{name:"hover-card-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive"],npmPackages:{universal:["@radix-ui/react-hover-card"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/hover-card/src/index.ts",to:{folder:"primitives/hover-card",file:"index.ts"}},{from:"./node_modules/@rnr/hover-card/src/hover-card.web.tsx",to:{folder:"primitives/hover-card",file:"hover-card.web.tsx"}},{from:"./node_modules/@rnr/hover-card/src/hover-card.tsx",to:{folder:"primitives/hover-card",file:"hover-card.tsx"}},{from:"./node_modules/@rnr/hover-card/src/types.ts",to:{folder:"primitives/hover-card",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/hover-card/src/hover-card.tsx",distFrom:"primitives/hover-card/hover-card.tsx",to:{folder:"primitives/hover-card",file:"index.tsx"}},{from:"./node_modules/@rnr/hover-card/src/types.ts",distFrom:"primitives/hover-card/types.ts",to:{folder:"primitives/hover-card",file:"types.ts"}}]}},{name:"label-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-label"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/label/src/index.ts",to:{folder:"primitives/label",file:"index.ts"}},{from:"./node_modules/@rnr/label/src/label.web.tsx",to:{folder:"primitives/label",file:"label.web.tsx"}},{from:"./node_modules/@rnr/label/src/label.tsx",to:{folder:"primitives/label",file:"label.tsx"}},{from:"./node_modules/@rnr/label/src/types.ts",to:{folder:"primitives/label",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/label/src/label.tsx",distFrom:"primitives/label/label.tsx",to:{folder:"primitives/label",file:"index.tsx"}},{from:"./node_modules/@rnr/label/src/types.ts",distFrom:"primitives/label/types.ts",to:{folder:"primitives/label",file:"types.ts"}}]}},{name:"menubar-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive","utils-primitive"],npmPackages:{universal:["@radix-ui/react-menubar"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/menubar/src/index.ts",to:{folder:"primitives/menubar",file:"index.ts"}},{from:"./node_modules/@rnr/menubar/src/menubar.web.tsx",to:{folder:"primitives/menubar",file:"menubar.web.tsx"}},{from:"./node_modules/@rnr/menubar/src/menubar.tsx",to:{folder:"primitives/menubar",file:"menubar.tsx"}},{from:"./node_modules/@rnr/menubar/src/types.ts",to:{folder:"primitives/menubar",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/menubar/src/menubar.tsx",distFrom:"primitives/menubar/menubar.tsx",to:{folder:"primitives/menubar",file:"index.tsx"}},{from:"./node_modules/@rnr/menubar/src/types.ts",distFrom:"primitives/menubar/types.ts",to:{folder:"primitives/menubar",file:"types.ts"}}]}},{name:"navigation-menu-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive","utils-primitive"],npmPackages:{universal:["@radix-ui/react-navigation-menu"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/navigation-menu/src/index.ts",to:{folder:"primitives/navigation-menu",file:"index.ts"}},{from:"./node_modules/@rnr/navigation-menu/src/navigation-menu.web.tsx",to:{folder:"primitives/navigation-menu",file:"navigation-menu.web.tsx"}},{from:"./node_modules/@rnr/navigation-menu/src/navigation-menu.tsx",to:{folder:"primitives/navigation-menu",file:"navigation-menu.tsx"}},{from:"./node_modules/@rnr/navigation-menu/src/types.ts",to:{folder:"primitives/navigation-menu",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/navigation-menu/src/navigation-menu.tsx",distFrom:"primitives/navigation-menu/navigation-menu.tsx",to:{folder:"primitives/navigation-menu",file:"index.tsx"}},{from:"./node_modules/@rnr/navigation-menu/src/types.ts",distFrom:"primitives/navigation-menu/types.ts",to:{folder:"primitives/navigation-menu",file:"types.ts"}}]}},{name:"popover-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive"],npmPackages:{universal:["@radix-ui/react-popover"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/popover/src/index.ts",to:{folder:"primitives/popover",file:"index.ts"}},{from:"./node_modules/@rnr/popover/src/popover.web.tsx",to:{folder:"primitives/popover",file:"popover.web.tsx"}},{from:"./node_modules/@rnr/popover/src/popover.tsx",to:{folder:"primitives/popover",file:"popover.tsx"}},{from:"./node_modules/@rnr/popover/src/types.ts",to:{folder:"primitives/popover",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/popover/src/popover.tsx",distFrom:"primitives/popover/popover.tsx",to:{folder:"primitives/popover",file:"index.tsx"}},{from:"./node_modules/@rnr/popover/src/types.ts",distFrom:"primitives/popover/types.ts",to:{folder:"primitives/popover",file:"types.ts"}}]}},{name:"progress-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-progress"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/progress/src/index.ts",to:{folder:"primitives/progress",file:"index.ts"}},{from:"./node_modules/@rnr/progress/src/progress.web.tsx",to:{folder:"primitives/progress",file:"progress.web.tsx"}},{from:"./node_modules/@rnr/progress/src/progress.tsx",to:{folder:"primitives/progress",file:"progress.tsx"}},{from:"./node_modules/@rnr/progress/src/types.ts",to:{folder:"primitives/progress",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/progress/src/progress.tsx",distFrom:"primitives/progress/progress.tsx",to:{folder:"primitives/progress",file:"index.tsx"}},{from:"./node_modules/@rnr/progress/src/types.ts",distFrom:"primitives/progress/types.ts",to:{folder:"primitives/progress",file:"types.ts"}}]}},{name:"radio-group-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-radio-group"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/radio-group/src/index.ts",to:{folder:"primitives/radio-group",file:"index.ts"}},{from:"./node_modules/@rnr/radio-group/src/radio-group.web.tsx",to:{folder:"primitives/radio-group",file:"radio-group.web.tsx"}},{from:"./node_modules/@rnr/radio-group/src/radio-group.tsx",to:{folder:"primitives/radio-group",file:"radio-group.tsx"}},{from:"./node_modules/@rnr/radio-group/src/types.ts",to:{folder:"primitives/radio-group",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/radio-group/src/radio-group.tsx",distFrom:"primitives/radio-group/radio-group.tsx",to:{folder:"primitives/radio-group",file:"index.tsx"}},{from:"./node_modules/@rnr/radio-group/src/types.ts",distFrom:"primitives/radio-group/types.ts",to:{folder:"primitives/radio-group",file:"types.ts"}}]}},{name:"select-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive"],npmPackages:{universal:["@radix-ui/react-select"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/select/src/index.ts",to:{folder:"primitives/select",file:"index.ts"}},{from:"./node_modules/@rnr/select/src/select.web.tsx",to:{folder:"primitives/select",file:"select.web.tsx"}},{from:"./node_modules/@rnr/select/src/select.tsx",to:{folder:"primitives/select",file:"select.tsx"}},{from:"./node_modules/@rnr/select/src/types.ts",to:{folder:"primitives/select",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/select/src/select.tsx",distFrom:"primitives/select/select.tsx",to:{folder:"primitives/select",file:"index.tsx"}},{from:"./node_modules/@rnr/select/src/types.ts",distFrom:"primitives/select/types.ts",to:{folder:"primitives/select",file:"types.ts"}}]}},{name:"separator-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/separator/src/separator.tsx",to:{folder:"primitives/separator",file:"index.tsx"}},{from:"./node_modules/@rnr/separator/src/types.ts",to:{folder:"primitives/separator",file:"types.ts"}}]},{name:"slider-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-slider"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/slider/src/index.ts",to:{folder:"primitives/slider",file:"index.ts"}},{from:"./node_modules/@rnr/slider/src/slider.web.tsx",to:{folder:"primitives/slider",file:"slider.web.tsx"}},{from:"./node_modules/@rnr/slider/src/slider.tsx",to:{folder:"primitives/slider",file:"slider.tsx"}},{from:"./node_modules/@rnr/slider/src/types.ts",to:{folder:"primitives/slider",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/slider/src/slider.tsx",distFrom:"primitives/slider/slider.tsx",to:{folder:"primitives/slider",file:"index.tsx"}},{from:"./node_modules/@rnr/slider/src/types.ts",distFrom:"primitives/slider/types.ts",to:{folder:"primitives/slider",file:"types.ts"}}]}},{name:"switch-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-switch"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/switch/src/index.ts",to:{folder:"primitives/switch",file:"index.ts"}},{from:"./node_modules/@rnr/switch/src/switch.web.tsx",to:{folder:"primitives/switch",file:"switch.web.tsx"}},{from:"./node_modules/@rnr/switch/src/switch.tsx",to:{folder:"primitives/switch",file:"switch.tsx"}},{from:"./node_modules/@rnr/switch/src/types.ts",to:{folder:"primitives/switch",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/switch/src/switch.tsx",distFrom:"primitives/switch/switch.tsx",to:{folder:"primitives/switch",file:"index.tsx"}},{from:"./node_modules/@rnr/switch/src/types.ts",distFrom:"primitives/switch/types.ts",to:{folder:"primitives/switch",file:"types.ts"}}]}},{name:"table-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/table/src/table.tsx",to:{folder:"primitives",file:"table.tsx"}}]},{name:"tabs-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-tabs"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/tabs/src/index.ts",to:{folder:"primitives/tabs",file:"index.ts"}},{from:"./node_modules/@rnr/tabs/src/tabs.web.tsx",to:{folder:"primitives/tabs",file:"tabs.web.tsx"}},{from:"./node_modules/@rnr/tabs/src/tabs.tsx",to:{folder:"primitives/tabs",file:"tabs.tsx"}},{from:"./node_modules/@rnr/tabs/src/types.ts",to:{folder:"primitives/tabs",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/tabs/src/tabs.tsx",distFrom:"primitives/tabs/tabs.tsx",to:{folder:"primitives/tabs",file:"index.tsx"}},{from:"./node_modules/@rnr/tabs/src/types.ts",distFrom:"primitives/tabs/types.ts",to:{folder:"primitives/tabs",file:"types.ts"}}]}},{name:"toast-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/toast/src/toast.tsx",to:{folder:"primitives/toast",file:"index.tsx"}},{from:"./node_modules/@rnr/toast/src/types.ts",to:{folder:"primitives/toast",file:"types.ts"}}]},{name:"toggle-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-toggle"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/toggle/src/index.ts",to:{folder:"primitives/toggle",file:"index.ts"}},{from:"./node_modules/@rnr/toggle/src/toggle.web.tsx",to:{folder:"primitives/toggle",file:"toggle.web.tsx"}},{from:"./node_modules/@rnr/toggle/src/toggle.tsx",to:{folder:"primitives/toggle",file:"toggle.tsx"}},{from:"./node_modules/@rnr/toggle/src/types.ts",to:{folder:"primitives/toggle",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/toggle/src/toggle.tsx",distFrom:"primitives/toggle/toggle.tsx",to:{folder:"primitives/toggle",file:"index.tsx"}},{from:"./node_modules/@rnr/toggle/src/types.ts",distFrom:"primitives/toggle/types.ts",to:{folder:"primitives/toggle",file:"types.ts"}}]}},{name:"toggle-group-primitive",dependencies:["slot-primitive","types-primitive","utils-primitive"],npmPackages:{universal:["@radix-ui/react-toggle-group"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/toggle-group/src/index.ts",to:{folder:"primitives/toggle-group",file:"index.ts"}},{from:"./node_modules/@rnr/toggle-group/src/toggle-group.web.tsx",to:{folder:"primitives/toggle-group",file:"toggle-group.web.tsx"}},{from:"./node_modules/@rnr/toggle-group/src/toggle-group.tsx",to:{folder:"primitives/toggle-group",file:"toggle-group.tsx"}},{from:"./node_modules/@rnr/toggle-group/src/types.ts",to:{folder:"primitives/toggle-group",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/toggle-group/src/toggle-group.tsx",distFrom:"primitives/toggle-group/toggle-group.tsx",to:{folder:"primitives/toggle-group",file:"index.tsx"}},{from:"./node_modules/@rnr/toggle-group/src/types.ts",distFrom:"primitives/toggle-group/types.ts",to:{folder:"primitives/toggle-group",file:"types.ts"}}]}},{name:"toolbar-primitive",dependencies:["slot-primitive","types-primitive","utils-primitive"],npmPackages:{universal:["@radix-ui/react-toolbar"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/toolbar/src/index.ts",to:{folder:"primitives/toolbar",file:"index.ts"}},{from:"./node_modules/@rnr/toolbar/src/toolbar.web.tsx",to:{folder:"primitives/toolbar",file:"toolbar.web.tsx"}},{from:"./node_modules/@rnr/toolbar/src/toolbar.tsx",to:{folder:"primitives/toolbar",file:"toolbar.tsx"}},{from:"./node_modules/@rnr/toolbar/src/types.ts",to:{folder:"primitives/toolbar",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/toolbar/src/toolbar.tsx",distFrom:"primitives/toolbar/toolbar.tsx",to:{folder:"primitives/toolbar",file:"index.tsx"}},{from:"./node_modules/@rnr/toolbar/src/types.ts",distFrom:"primitives/toolbar/types.ts",to:{folder:"primitives/toolbar",file:"types.ts"}}]}},{name:"tooltip-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive"],npmPackages:{universal:["@radix-ui/react-tooltip"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/tooltip/src/index.ts",to:{folder:"primitives/tooltip",file:"index.ts"}},{from:"./node_modules/@rnr/tooltip/src/tooltip.web.tsx",to:{folder:"primitives/tooltip",file:"tooltip.web.tsx"}},{from:"./node_modules/@rnr/tooltip/src/tooltip.tsx",to:{folder:"primitives/tooltip",file:"tooltip.tsx"}},{from:"./node_modules/@rnr/tooltip/src/types.ts",to:{folder:"primitives/tooltip",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/tooltip/src/tooltip.tsx",distFrom:"primitives/tooltip/tooltip.tsx",to:{folder:"primitives/tooltip",file:"index.tsx"}},{from:"./node_modules/@rnr/tooltip/src/types.ts",distFrom:"primitives/tooltip/types.ts",to:{folder:"primitives/tooltip",file:"types.ts"}}]}},{name:"hooks-primitive",dependencies:["types-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/hooks/src/index.ts",to:{folder:"primitives/hooks",file:"index.ts"}},{from:"./node_modules/@rnr/hooks/src/useAugmentedRef.tsx",to:{folder:"primitives/hooks",file:"useAugmentedRef.tsx"}},{from:"./node_modules/@rnr/hooks/src/useControllableState.tsx",to:{folder:"primitives/hooks",file:"useControllableState.tsx"}},{from:"./node_modules/@rnr/hooks/src/useRelativePosition.tsx",to:{folder:"primitives/hooks",file:"useRelativePosition.tsx"}}]},{name:"portal-primitive",dependencies:[],npmPackages:{universal:["zustand"],"native-only":["zustand"]},paths:[{from:"./node_modules/@rnr/portal/src/portal.tsx",to:{folder:"primitives",file:"portal.tsx"}}]},{name:"slot-primitive",dependencies:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/slot/src/slot.tsx",to:{folder:"primitives",file:"slot.tsx"}}]},{name:"types-primitive",dependencies:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/types/src/index.ts",to:{folder:"primitives",file:"types.ts"}}]},{name:"utils-primitive",dependencies:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/utils/src/index.ts",to:{folder:"primitives",file:"utils.ts"}}]}],c=[...C,...q];function T(e,o=new Set){let t=c.find(s=>s.name===e);if(!t)return[];o.add(e);let i=t.dependencies.slice();return t.dependencies.forEach(s=>{if(!o.has(s)){let r=T(s,o);i=i.concat(r)}}),i}var b="invalid component";function j(e){let o=new Set;if(e.some(t=>!c.find(i=>i.name===t)))throw new Error(b);return e.forEach(t=>{let i=T(t);i.unshift(t),i.forEach(s=>{o.add(s)})}),Array.from(o).map(t=>{let i=c.find(s=>s.name===t);if(!i)throw new Error(b);return i})}import{fileURLToPath as Q}from"url";var X=Q(import.meta.url),A=d.dirname(X),Y=f.object({components:f.array(f.string()).optional(),overwrite:f.boolean(),cwd:f.string(),path:f.string().optional()}),$=new H().name("add").description("add components to your project").argument("[components...]","the components to add").option("-o, --overwrite","overwrite existing files.",!1).option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async(e,o)=>{try{let t=Y.parse({components:e,...o}),i=d.resolve(t.cwd);O(i)||(a.error(`The path ${i} does not exist. Please try again.`),process.exit(1));let s=await S(i);s||(s=await ee(i));let r=t.components??[];if(!r?.length){let{components:n}=await w({type:"multiselect",name:"components",message:"Which components would you like to add?",hint:"Space to select. A to toggle all. Enter to submit.",instructions:!1,choices:C.map(g=>({title:g.name,value:g.name,selected:!1}))});r=n}r?.length||(a.warn("No components selected. Exiting."),process.exit(0));let l=M("Installing components...").start(),u=[];try{u=j(r)}catch(n){n instanceof Error&&n.message===b&&(a.error(`Invalid component(s): ${r.filter(g=>!c.find(L=>L.name===g)).join(", ")}`),process.exit(1)),a.error(n)}let m=[];for(let n of u)l.text=`Installing ${n.name}...`,Array.isArray(n.paths)?await R(n,n.paths,s,l,t.overwrite):await R(n,n.paths[s.platforms==="universal"?"universal":"native-only"],s,l,t.overwrite),m.push(...n.npmPackages[s.platforms==="universal"?"universal":"native-only"]);let v=await I(i);m.length&&(l.text=`Installing ${m.join(", ")}...`,await K(v,[v==="npm"?"install":"add",...m],{cwd:i})),l.succeed("Done.")}catch(t){F(t)}});async function R(e,o,t,i,s){for(let r of o){let l=d.join(t.resolvedPaths.components,r.to.folder);if(O(l)||await _.mkdir(l,{recursive:!0}),i.stop(),O(d.join(l,r.to.file))){let m=[r.to.folder,r.to.file].join("/");if(!s){a.info(`File already exists: ${h.bgCyan(m)} was skipped. To overwrite, run with the ${h.green("--overwrite")} flag.`);continue}let{overwrite:v}=await w({type:"confirm",name:"overwrite",message:`File already exists: ${h.yellow(m)}. Would you like to overwrite?`,initial:!1});if(!v){a.info("Skipped");continue}}i.start(`Installing ${e.name}...`);let u=r.distFrom?d.join(A,"../__generated/components",r.distFrom):d.join(A,"../__generated/components",r.to.folder,r.to.file);try{let m=await _.readFile(d.resolve(u),"utf8");await _.writeFile(d.join(l,r.to.file),Z(m,t.aliases.components,t.aliases.lib))}catch(m){F(m)}}}function Z(e,o,t){return e.replace("../Icons",`${o}/Icons`).replace("./typography",`${o}/ui/typography`).replace("./text",`${o}/ui/text`).replaceAll("../../components",o).replaceAll("../../lib",t).replaceAll("@rnr",`${o}/primitives`)}async function ee(e){let o=r=>h.cyan(r),t=await w([{type:"select",name:"platforms",message:`Which ${o("platforms")} do you support?`,choices:[{title:"Universal (Web, iOS, and Android)",value:"universal"},{title:"Native Only (iOS and Android)",value:"native-only"}]},{type:"text",name:"components",message:`Configure the import alias for ${o("components")}:`,initial:E},{type:"text",name:"lib",message:`Configure the import alias for ${o("lib")}:`,initial:N}]),i=x.parse({platforms:t.platforms,aliases:{lib:t.lib,components:t.components}}),{proceed:s}=await w({type:"confirm",name:"proceed",message:`Write configuration to ${o("components.json")}. Proceed?`,initial:!0});if(s){a.info("");let r=M("Writing components.json...").start(),l=d.resolve(e,"components.json");await _.writeFile(l,JSON.stringify(i,null,2),"utf8"),r.succeed()}return await P(e,i)}import{Command as ie}from"commander";import oe from"path";import te from"fs-extra";function D(){let e=oe.join("package.json");return te.readJSONSync(e)}process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));async function re(){let e=await D(),o=new ie().name("rnr-cli").description("add components and dependencies to your project").version(e.version||"0.0.0-rc.0","-v, --version","display the version number");o.addCommand($),o.parse()}re();
|
|
2
|
+
import{createMatchPath as U}from"tsconfig-paths";async function C(e,o){return U(o.absoluteBaseUrl,o.paths)(e,void 0,()=>!0,[".ts",".tsx"])}import{cosmiconfig as W}from"cosmiconfig";import{loadConfig as z}from"tsconfig-paths";import{z as c}from"zod";var S="~/components",O="~/lib",J=W("components",{searchPlaces:["components.json"]}),w=c.object({platforms:c.string().optional(),aliases:c.object({components:c.string(),lib:c.string()})}).strict(),B=w.extend({platforms:c.string().optional(),resolvedPaths:c.object({lib:c.string(),components:c.string()})});async function E(e){let o=await V(e);return o?await F(e,o):null}async function F(e,o){let i=await z(e);if(i.resultType==="failed")throw new Error(`Failed to load tsconfig.json. ${i.message??""}`.trim());return B.parse({...o,resolvedPaths:{lib:await C(o.aliases.lib,i),components:await C(o.aliases.components,i)}})}async function V(e){try{let o=await J.search(e);return o?w.parse(o.config):null}catch{throw new Error(`Invalid configuration found in ${e}/components.json.`)}}import{detect as G}from"@antfu/ni";async function I(e){let o=await G({programmatic:!0,cwd:e});return o==="yarn@berry"?"yarn":o==="pnpm@6"?"pnpm":o==="bun"?"bun":o??"npm"}import k from"chalk";var l={error(...e){console.log(k.red(...e))},warn(...e){console.log(k.yellow(...e))},info(...e){console.log(k.cyan(...e))},success(...e){console.log(k.green(...e))},break(){console.log("")}};function x(e){typeof e=="string"&&(l.error(e),process.exit(1)),e instanceof Error&&(l.error(e.message),process.exit(1)),l.error("Something went wrong. Please try again."),process.exit(1)}import f from"chalk";import{Command as X}from"commander";import{execa as H}from"execa";import{existsSync as y,promises as u}from"fs";import A from"ora";import a from"path";import b from"prompts";import{z as g}from"zod";var N=[{name:"accordion",dependencies:["accordion-primitive","text"],icons:["ChevronDown"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/accordion.tsx",to:{folder:"ui",file:"accordion.tsx"}}]},{name:"alert-dialog",dependencies:["alert-dialog-primitive","button","text"],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/alert-dialog.tsx",to:{folder:"ui",file:"alert-dialog.tsx"}}]},{name:"aspect-ratio",dependencies:[],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/aspect-ratio.tsx",to:{folder:"ui",file:"aspect-ratio.tsx"}}]},{name:"avatar",dependencies:["avatar-primitive"],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/avatar.tsx",to:{folder:"ui",file:"avatar.tsx"}}]},{name:"badge",dependencies:["slot-primitive","types-primitive"],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/badge.tsx",to:{folder:"ui",file:"badge.tsx"}}]},{name:"button",dependencies:["text","types-primitive"],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/button.tsx",to:{folder:"ui",file:"button.tsx"}}]},{name:"card",dependencies:["text","types-primitive"],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/card.tsx",to:{folder:"ui",file:"card.tsx"}}]},{name:"checkbox",dependencies:["checkbox-primitive"],icons:["Check"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/checkbox.tsx",to:{folder:"ui",file:"checkbox.tsx"}}]},{name:"collapsible",dependencies:["collapsible-primitive"],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/collapsible.tsx",to:{folder:"ui",file:"collapsible.tsx"}}]},{name:"context-menu",dependencies:["context-menu-primitive","text"],icons:["Check","ChevronDown","ChevronRight","ChevronUp"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/context-menu.tsx",to:{folder:"ui",file:"context-menu.tsx"}}]},{name:"dialog",dependencies:["dialog-primitive"],icons:["X"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/dialog.tsx",to:{folder:"ui",file:"dialog.tsx"}}]},{name:"dropdown-menu",dependencies:["dropdown-menu-primitive","text"],icons:["Check","ChevronDown","ChevronRight","ChevronUp"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/dropdown-menu.tsx",to:{folder:"ui",file:"dropdown-menu.tsx"}}]},{name:"hover-card",dependencies:["hover-card-primitive"],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/hover-card.tsx",to:{folder:"ui",file:"hover-card.tsx"}}]},{name:"input",dependencies:[],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/input.tsx",to:{folder:"ui",file:"input.tsx"}}]},{name:"label",dependencies:["label-primitive"],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/label.tsx",to:{folder:"ui",file:"label.tsx"}}]},{name:"menubar",dependencies:["menubar-primitive","text"],icons:["Check","ChevronDown","ChevronRight","ChevronUp"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/menubar.tsx",to:{folder:"ui",file:"menubar.tsx"}}]},{name:"navigation-menu",dependencies:["navigation-menu-primitive"],icons:["ChevronDown"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/navigation-menu.tsx",to:{folder:"ui",file:"navigation-menu.tsx"}}]},{name:"popover",dependencies:["popover-primitive","text"],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/popover.tsx",to:{folder:"ui",file:"popover.tsx"}}]},{name:"radio-group",dependencies:["radio-group-primitive"],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/radio-group.tsx",to:{folder:"ui",file:"radio-group.tsx"}}]},{name:"select",dependencies:["select-primitive"],icons:["Check","ChevronDown","ChevronUp"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/select.tsx",to:{folder:"ui",file:"select.tsx"}}]},{name:"separator",dependencies:["separator-primitive"],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/separator.tsx",to:{folder:"ui",file:"separator.tsx"}}]},{name:"skeleton",dependencies:[],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/skeleton.tsx",to:{folder:"ui",file:"skeleton.tsx"}}]},{name:"switch",dependencies:["switch-primitive"],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/switch.tsx",to:{folder:"ui",file:"switch.tsx"}}]},{name:"table",dependencies:["table-primitive","text"],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/table.tsx",to:{folder:"ui",file:"table.tsx"}}]},{name:"tabs",dependencies:["tabs-primitive","text"],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/tabs.tsx",to:{folder:"ui",file:"tabs.tsx"}}]},{name:"text",dependencies:["slot-primitive","types-primitive"],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/text.tsx",to:{folder:"ui",file:"text.tsx"}}]},{name:"textarea",dependencies:[],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/textarea.tsx",to:{folder:"ui",file:"textarea.tsx"}}]},{name:"toggle",dependencies:["toggle-primitive","text"],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/toggle.tsx",to:{folder:"ui",file:"toggle.tsx"}}]},{name:"toggle-group",dependencies:["toggle-group-primitive","text"],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/toggle-group.tsx",to:{folder:"ui",file:"toggle-group.tsx"}}]},{name:"tooltip",dependencies:["tooltip-primitive","text"],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/tooltip.tsx",to:{folder:"ui",file:"tooltip.tsx"}}]},{name:"typography",dependencies:["slot-primitive","types-primitive"],icons:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/reusables/src/components/ui/typography.tsx",to:{folder:"ui",file:"typography.tsx"}}]}],q=[{name:"accordion-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-accordion"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/accordion/src/index.ts",to:{folder:"primitives/accordion",file:"index.ts"}},{from:"./node_modules/@rnr/accordion/src/accordion.web.tsx",to:{folder:"primitives/accordion",file:"accordion.web.tsx"}},{from:"./node_modules/@rnr/accordion/src/accordion.tsx",to:{folder:"primitives/accordion",file:"accordion.tsx"}},{from:"./node_modules/@rnr/accordion/src/types.ts",to:{folder:"primitives/accordion",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/accordion/src/accordion.tsx",distFrom:"primitives/accordion/accordion.tsx",to:{folder:"primitives/accordion",file:"index.tsx"}},{from:"./node_modules/@rnr/accordion/src/types.ts",distFrom:"primitives/accordion/types.ts",to:{folder:"primitives/accordion",file:"types.ts"}}]}},{name:"alert-dialog-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive"],npmPackages:{universal:["@radix-ui/react-alert-dialog"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/alert-dialog/src/index.ts",to:{folder:"primitives/alert-dialog",file:"index.ts"}},{from:"./node_modules/@rnr/alert-dialog/src/alert-dialog.web.tsx",to:{folder:"primitives/alert-dialog",file:"alert-dialog.web.tsx"}},{from:"./node_modules/@rnr/alert-dialog/src/alert-dialog.tsx",to:{folder:"primitives/alert-dialog",file:"alert-dialog.tsx"}},{from:"./node_modules/@rnr/alert-dialog/src/types.ts",to:{folder:"primitives/alert-dialog",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/alert-dialog/src/alert-dialog.tsx",distFrom:"primitives/alert-dialog/alert-dialog.tsx",to:{folder:"primitives/alert-dialog",file:"index.tsx"}},{from:"./node_modules/@rnr/alert-dialog/src/types.ts",distFrom:"primitives/alert-dialog/types.ts",to:{folder:"primitives/alert-dialog",file:"types.ts"}}]}},{name:"aspect-ratio-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/aspect-ratio/src/aspect-ratio.tsx",to:{folder:"primitives",file:"aspect-ratio.tsx"}}]},{name:"avatar-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/avatar/src/avatar.tsx",to:{folder:"primitives/avatar",file:"index.tsx"}},{from:"./node_modules/@rnr/avatar/src/types.ts",to:{folder:"primitives/avatar",file:"types.ts"}}]},{name:"checkbox-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-checkbox"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/checkbox/src/index.ts",to:{folder:"primitives/checkbox",file:"index.ts"}},{from:"./node_modules/@rnr/checkbox/src/checkbox.web.tsx",to:{folder:"primitives/checkbox",file:"checkbox.web.tsx"}},{from:"./node_modules/@rnr/checkbox/src/checkbox.tsx",to:{folder:"primitives/checkbox",file:"checkbox.tsx"}},{from:"./node_modules/@rnr/checkbox/src/types.ts",to:{folder:"primitives/checkbox",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/checkbox/src/checkbox.tsx",distFrom:"primitives/checkbox/checkbox.tsx",to:{folder:"primitives/checkbox",file:"index.tsx"}},{from:"./node_modules/@rnr/checkbox/src/types.ts",distFrom:"primitives/checkbox/types.ts",to:{folder:"primitives/checkbox",file:"types.ts"}}]}},{name:"collapsible-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-collapsible"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/collapsible/src/index.ts",to:{folder:"primitives/collapsible",file:"index.ts"}},{from:"./node_modules/@rnr/collapsible/src/collapsible.web.tsx",to:{folder:"primitives/collapsible",file:"collapsible.web.tsx"}},{from:"./node_modules/@rnr/collapsible/src/collapsible.tsx",to:{folder:"primitives/collapsible",file:"collapsible.tsx"}},{from:"./node_modules/@rnr/collapsible/src/types.ts",to:{folder:"primitives/collapsible",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/collapsible/src/collapsible.tsx",distFrom:"primitives/collapsible/collapsible.tsx",to:{folder:"primitives/collapsible",file:"index.tsx"}},{from:"./node_modules/@rnr/collapsible/src/types.ts",distFrom:"primitives/collapsible/types.ts",to:{folder:"primitives/collapsible",file:"types.ts"}}]}},{name:"context-menu-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive","utils-primitive"],npmPackages:{universal:["@radix-ui/react-context-menu"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/context-menu/src/index.ts",to:{folder:"primitives/context-menu",file:"index.ts"}},{from:"./node_modules/@rnr/context-menu/src/context-menu.web.tsx",to:{folder:"primitives/context-menu",file:"context-menu.web.tsx"}},{from:"./node_modules/@rnr/context-menu/src/context-menu.tsx",to:{folder:"primitives/context-menu",file:"context-menu.tsx"}},{from:"./node_modules/@rnr/context-menu/src/types.ts",to:{folder:"primitives/context-menu",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/context-menu/src/context-menu.tsx",distFrom:"primitives/context-menu/context-menu.tsx",to:{folder:"primitives/context-menu",file:"index.tsx"}},{from:"./node_modules/@rnr/context-menu/src/types.ts",distFrom:"primitives/context-menu/types.ts",to:{folder:"primitives/context-menu",file:"types.ts"}}]}},{name:"dialog-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive"],npmPackages:{universal:["@radix-ui/react-dialog"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/dialog/src/index.ts",to:{folder:"primitives/dialog",file:"index.ts"}},{from:"./node_modules/@rnr/dialog/src/dialog.web.tsx",to:{folder:"primitives/dialog",file:"dialog.web.tsx"}},{from:"./node_modules/@rnr/dialog/src/dialog.tsx",to:{folder:"primitives/dialog",file:"dialog.tsx"}},{from:"./node_modules/@rnr/dialog/src/types.ts",to:{folder:"primitives/dialog",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/dialog/src/dialog.tsx",distFrom:"primitives/dialog/dialog.tsx",to:{folder:"primitives/dialog",file:"index.tsx"}},{from:"./node_modules/@rnr/dialog/src/types.ts",distFrom:"primitives/dialog/types.ts",to:{folder:"primitives/dialog",file:"types.ts"}}]}},{name:"dropdown-menu-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive","utils-primitive"],npmPackages:{universal:["@radix-ui/react-dropdown-menu"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/dropdown-menu/src/index.ts",to:{folder:"primitives/dropdown-menu",file:"index.ts"}},{from:"./node_modules/@rnr/dropdown-menu/src/dropdown-menu.web.tsx",to:{folder:"primitives/dropdown-menu",file:"dropdown-menu.web.tsx"}},{from:"./node_modules/@rnr/dropdown-menu/src/dropdown-menu.tsx",to:{folder:"primitives/dropdown-menu",file:"dropdown-menu.tsx"}},{from:"./node_modules/@rnr/dropdown-menu/src/types.ts",to:{folder:"primitives/dropdown-menu",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/dropdown-menu/src/dropdown-menu.tsx",distFrom:"primitives/dropdown-menu/dropdown-menu.tsx",to:{folder:"primitives/dropdown-menu",file:"index.tsx"}},{from:"./node_modules/@rnr/dropdown-menu/src/types.ts",distFrom:"primitives/dropdown-menu/types.ts",to:{folder:"primitives/dropdown-menu",file:"types.ts"}}]}},{name:"hover-card-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive"],npmPackages:{universal:["@radix-ui/react-hover-card"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/hover-card/src/index.ts",to:{folder:"primitives/hover-card",file:"index.ts"}},{from:"./node_modules/@rnr/hover-card/src/hover-card.web.tsx",to:{folder:"primitives/hover-card",file:"hover-card.web.tsx"}},{from:"./node_modules/@rnr/hover-card/src/hover-card.tsx",to:{folder:"primitives/hover-card",file:"hover-card.tsx"}},{from:"./node_modules/@rnr/hover-card/src/types.ts",to:{folder:"primitives/hover-card",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/hover-card/src/hover-card.tsx",distFrom:"primitives/hover-card/hover-card.tsx",to:{folder:"primitives/hover-card",file:"index.tsx"}},{from:"./node_modules/@rnr/hover-card/src/types.ts",distFrom:"primitives/hover-card/types.ts",to:{folder:"primitives/hover-card",file:"types.ts"}}]}},{name:"label-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-label"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/label/src/index.ts",to:{folder:"primitives/label",file:"index.ts"}},{from:"./node_modules/@rnr/label/src/label.web.tsx",to:{folder:"primitives/label",file:"label.web.tsx"}},{from:"./node_modules/@rnr/label/src/label.tsx",to:{folder:"primitives/label",file:"label.tsx"}},{from:"./node_modules/@rnr/label/src/types.ts",to:{folder:"primitives/label",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/label/src/label.tsx",distFrom:"primitives/label/label.tsx",to:{folder:"primitives/label",file:"index.tsx"}},{from:"./node_modules/@rnr/label/src/types.ts",distFrom:"primitives/label/types.ts",to:{folder:"primitives/label",file:"types.ts"}}]}},{name:"menubar-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive","utils-primitive"],npmPackages:{universal:["@radix-ui/react-menubar"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/menubar/src/index.ts",to:{folder:"primitives/menubar",file:"index.ts"}},{from:"./node_modules/@rnr/menubar/src/menubar.web.tsx",to:{folder:"primitives/menubar",file:"menubar.web.tsx"}},{from:"./node_modules/@rnr/menubar/src/menubar.tsx",to:{folder:"primitives/menubar",file:"menubar.tsx"}},{from:"./node_modules/@rnr/menubar/src/types.ts",to:{folder:"primitives/menubar",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/menubar/src/menubar.tsx",distFrom:"primitives/menubar/menubar.tsx",to:{folder:"primitives/menubar",file:"index.tsx"}},{from:"./node_modules/@rnr/menubar/src/types.ts",distFrom:"primitives/menubar/types.ts",to:{folder:"primitives/menubar",file:"types.ts"}}]}},{name:"navigation-menu-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive","utils-primitive"],npmPackages:{universal:["@radix-ui/react-navigation-menu"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/navigation-menu/src/index.ts",to:{folder:"primitives/navigation-menu",file:"index.ts"}},{from:"./node_modules/@rnr/navigation-menu/src/navigation-menu.web.tsx",to:{folder:"primitives/navigation-menu",file:"navigation-menu.web.tsx"}},{from:"./node_modules/@rnr/navigation-menu/src/navigation-menu.tsx",to:{folder:"primitives/navigation-menu",file:"navigation-menu.tsx"}},{from:"./node_modules/@rnr/navigation-menu/src/types.ts",to:{folder:"primitives/navigation-menu",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/navigation-menu/src/navigation-menu.tsx",distFrom:"primitives/navigation-menu/navigation-menu.tsx",to:{folder:"primitives/navigation-menu",file:"index.tsx"}},{from:"./node_modules/@rnr/navigation-menu/src/types.ts",distFrom:"primitives/navigation-menu/types.ts",to:{folder:"primitives/navigation-menu",file:"types.ts"}}]}},{name:"popover-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive"],npmPackages:{universal:["@radix-ui/react-popover"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/popover/src/index.ts",to:{folder:"primitives/popover",file:"index.ts"}},{from:"./node_modules/@rnr/popover/src/popover.web.tsx",to:{folder:"primitives/popover",file:"popover.web.tsx"}},{from:"./node_modules/@rnr/popover/src/popover.tsx",to:{folder:"primitives/popover",file:"popover.tsx"}},{from:"./node_modules/@rnr/popover/src/types.ts",to:{folder:"primitives/popover",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/popover/src/popover.tsx",distFrom:"primitives/popover/popover.tsx",to:{folder:"primitives/popover",file:"index.tsx"}},{from:"./node_modules/@rnr/popover/src/types.ts",distFrom:"primitives/popover/types.ts",to:{folder:"primitives/popover",file:"types.ts"}}]}},{name:"progress-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-progress"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/progress/src/index.ts",to:{folder:"primitives/progress",file:"index.ts"}},{from:"./node_modules/@rnr/progress/src/progress.web.tsx",to:{folder:"primitives/progress",file:"progress.web.tsx"}},{from:"./node_modules/@rnr/progress/src/progress.tsx",to:{folder:"primitives/progress",file:"progress.tsx"}},{from:"./node_modules/@rnr/progress/src/types.ts",to:{folder:"primitives/progress",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/progress/src/progress.tsx",distFrom:"primitives/progress/progress.tsx",to:{folder:"primitives/progress",file:"index.tsx"}},{from:"./node_modules/@rnr/progress/src/types.ts",distFrom:"primitives/progress/types.ts",to:{folder:"primitives/progress",file:"types.ts"}}]}},{name:"radio-group-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-radio-group"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/radio-group/src/index.ts",to:{folder:"primitives/radio-group",file:"index.ts"}},{from:"./node_modules/@rnr/radio-group/src/radio-group.web.tsx",to:{folder:"primitives/radio-group",file:"radio-group.web.tsx"}},{from:"./node_modules/@rnr/radio-group/src/radio-group.tsx",to:{folder:"primitives/radio-group",file:"radio-group.tsx"}},{from:"./node_modules/@rnr/radio-group/src/types.ts",to:{folder:"primitives/radio-group",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/radio-group/src/radio-group.tsx",distFrom:"primitives/radio-group/radio-group.tsx",to:{folder:"primitives/radio-group",file:"index.tsx"}},{from:"./node_modules/@rnr/radio-group/src/types.ts",distFrom:"primitives/radio-group/types.ts",to:{folder:"primitives/radio-group",file:"types.ts"}}]}},{name:"select-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive"],npmPackages:{universal:["@radix-ui/react-select"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/select/src/index.ts",to:{folder:"primitives/select",file:"index.ts"}},{from:"./node_modules/@rnr/select/src/select.web.tsx",to:{folder:"primitives/select",file:"select.web.tsx"}},{from:"./node_modules/@rnr/select/src/select.tsx",to:{folder:"primitives/select",file:"select.tsx"}},{from:"./node_modules/@rnr/select/src/types.ts",to:{folder:"primitives/select",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/select/src/select.tsx",distFrom:"primitives/select/select.tsx",to:{folder:"primitives/select",file:"index.tsx"}},{from:"./node_modules/@rnr/select/src/types.ts",distFrom:"primitives/select/types.ts",to:{folder:"primitives/select",file:"types.ts"}}]}},{name:"separator-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/separator/src/separator.tsx",to:{folder:"primitives/separator",file:"index.tsx"}},{from:"./node_modules/@rnr/separator/src/types.ts",to:{folder:"primitives/separator",file:"types.ts"}}]},{name:"slider-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-slider"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/slider/src/index.ts",to:{folder:"primitives/slider",file:"index.ts"}},{from:"./node_modules/@rnr/slider/src/slider.web.tsx",to:{folder:"primitives/slider",file:"slider.web.tsx"}},{from:"./node_modules/@rnr/slider/src/slider.tsx",to:{folder:"primitives/slider",file:"slider.tsx"}},{from:"./node_modules/@rnr/slider/src/types.ts",to:{folder:"primitives/slider",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/slider/src/slider.tsx",distFrom:"primitives/slider/slider.tsx",to:{folder:"primitives/slider",file:"index.tsx"}},{from:"./node_modules/@rnr/slider/src/types.ts",distFrom:"primitives/slider/types.ts",to:{folder:"primitives/slider",file:"types.ts"}}]}},{name:"switch-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-switch"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/switch/src/index.ts",to:{folder:"primitives/switch",file:"index.ts"}},{from:"./node_modules/@rnr/switch/src/switch.web.tsx",to:{folder:"primitives/switch",file:"switch.web.tsx"}},{from:"./node_modules/@rnr/switch/src/switch.tsx",to:{folder:"primitives/switch",file:"switch.tsx"}},{from:"./node_modules/@rnr/switch/src/types.ts",to:{folder:"primitives/switch",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/switch/src/switch.tsx",distFrom:"primitives/switch/switch.tsx",to:{folder:"primitives/switch",file:"index.tsx"}},{from:"./node_modules/@rnr/switch/src/types.ts",distFrom:"primitives/switch/types.ts",to:{folder:"primitives/switch",file:"types.ts"}}]}},{name:"table-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/table/src/table.tsx",to:{folder:"primitives",file:"table.tsx"}}]},{name:"tabs-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-tabs"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/tabs/src/index.ts",to:{folder:"primitives/tabs",file:"index.ts"}},{from:"./node_modules/@rnr/tabs/src/tabs.web.tsx",to:{folder:"primitives/tabs",file:"tabs.web.tsx"}},{from:"./node_modules/@rnr/tabs/src/tabs.tsx",to:{folder:"primitives/tabs",file:"tabs.tsx"}},{from:"./node_modules/@rnr/tabs/src/types.ts",to:{folder:"primitives/tabs",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/tabs/src/tabs.tsx",distFrom:"primitives/tabs/tabs.tsx",to:{folder:"primitives/tabs",file:"index.tsx"}},{from:"./node_modules/@rnr/tabs/src/types.ts",distFrom:"primitives/tabs/types.ts",to:{folder:"primitives/tabs",file:"types.ts"}}]}},{name:"toast-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/toast/src/toast.tsx",to:{folder:"primitives/toast",file:"index.tsx"}},{from:"./node_modules/@rnr/toast/src/types.ts",to:{folder:"primitives/toast",file:"types.ts"}}]},{name:"toggle-primitive",dependencies:["slot-primitive","types-primitive"],npmPackages:{universal:["@radix-ui/react-toggle"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/toggle/src/index.ts",to:{folder:"primitives/toggle",file:"index.ts"}},{from:"./node_modules/@rnr/toggle/src/toggle.web.tsx",to:{folder:"primitives/toggle",file:"toggle.web.tsx"}},{from:"./node_modules/@rnr/toggle/src/toggle.tsx",to:{folder:"primitives/toggle",file:"toggle.tsx"}},{from:"./node_modules/@rnr/toggle/src/types.ts",to:{folder:"primitives/toggle",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/toggle/src/toggle.tsx",distFrom:"primitives/toggle/toggle.tsx",to:{folder:"primitives/toggle",file:"index.tsx"}},{from:"./node_modules/@rnr/toggle/src/types.ts",distFrom:"primitives/toggle/types.ts",to:{folder:"primitives/toggle",file:"types.ts"}}]}},{name:"toggle-group-primitive",dependencies:["slot-primitive","types-primitive","utils-primitive"],npmPackages:{universal:["@radix-ui/react-toggle-group"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/toggle-group/src/index.ts",to:{folder:"primitives/toggle-group",file:"index.ts"}},{from:"./node_modules/@rnr/toggle-group/src/toggle-group.web.tsx",to:{folder:"primitives/toggle-group",file:"toggle-group.web.tsx"}},{from:"./node_modules/@rnr/toggle-group/src/toggle-group.tsx",to:{folder:"primitives/toggle-group",file:"toggle-group.tsx"}},{from:"./node_modules/@rnr/toggle-group/src/types.ts",to:{folder:"primitives/toggle-group",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/toggle-group/src/toggle-group.tsx",distFrom:"primitives/toggle-group/toggle-group.tsx",to:{folder:"primitives/toggle-group",file:"index.tsx"}},{from:"./node_modules/@rnr/toggle-group/src/types.ts",distFrom:"primitives/toggle-group/types.ts",to:{folder:"primitives/toggle-group",file:"types.ts"}}]}},{name:"toolbar-primitive",dependencies:["slot-primitive","types-primitive","utils-primitive"],npmPackages:{universal:["@radix-ui/react-toolbar"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/toolbar/src/index.ts",to:{folder:"primitives/toolbar",file:"index.ts"}},{from:"./node_modules/@rnr/toolbar/src/toolbar.web.tsx",to:{folder:"primitives/toolbar",file:"toolbar.web.tsx"}},{from:"./node_modules/@rnr/toolbar/src/toolbar.tsx",to:{folder:"primitives/toolbar",file:"toolbar.tsx"}},{from:"./node_modules/@rnr/toolbar/src/types.ts",to:{folder:"primitives/toolbar",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/toolbar/src/toolbar.tsx",distFrom:"primitives/toolbar/toolbar.tsx",to:{folder:"primitives/toolbar",file:"index.tsx"}},{from:"./node_modules/@rnr/toolbar/src/types.ts",distFrom:"primitives/toolbar/types.ts",to:{folder:"primitives/toolbar",file:"types.ts"}}]}},{name:"tooltip-primitive",dependencies:["hooks-primitive","slot-primitive","types-primitive","portal-primitive"],npmPackages:{universal:["@radix-ui/react-tooltip"],"native-only":[]},paths:{universal:[{from:"./node_modules/@rnr/tooltip/src/index.ts",to:{folder:"primitives/tooltip",file:"index.ts"}},{from:"./node_modules/@rnr/tooltip/src/tooltip.web.tsx",to:{folder:"primitives/tooltip",file:"tooltip.web.tsx"}},{from:"./node_modules/@rnr/tooltip/src/tooltip.tsx",to:{folder:"primitives/tooltip",file:"tooltip.tsx"}},{from:"./node_modules/@rnr/tooltip/src/types.ts",to:{folder:"primitives/tooltip",file:"types.ts"}}],"native-only":[{from:"./node_modules/@rnr/tooltip/src/tooltip.tsx",distFrom:"primitives/tooltip/tooltip.tsx",to:{folder:"primitives/tooltip",file:"index.tsx"}},{from:"./node_modules/@rnr/tooltip/src/types.ts",distFrom:"primitives/tooltip/types.ts",to:{folder:"primitives/tooltip",file:"types.ts"}}]}},{name:"hooks-primitive",dependencies:["types-primitive"],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/hooks/src/index.ts",to:{folder:"primitives/hooks",file:"index.ts"}},{from:"./node_modules/@rnr/hooks/src/useAugmentedRef.tsx",to:{folder:"primitives/hooks",file:"useAugmentedRef.tsx"}},{from:"./node_modules/@rnr/hooks/src/useControllableState.tsx",to:{folder:"primitives/hooks",file:"useControllableState.tsx"}},{from:"./node_modules/@rnr/hooks/src/useRelativePosition.tsx",to:{folder:"primitives/hooks",file:"useRelativePosition.tsx"}}]},{name:"portal-primitive",dependencies:[],npmPackages:{universal:["zustand"],"native-only":["zustand"]},paths:[{from:"./node_modules/@rnr/portal/src/portal.tsx",to:{folder:"primitives",file:"portal.tsx"}}]},{name:"slot-primitive",dependencies:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/slot/src/slot.tsx",to:{folder:"primitives",file:"slot.tsx"}}]},{name:"types-primitive",dependencies:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/types/src/index.ts",to:{folder:"primitives",file:"types.ts"}}]},{name:"utils-primitive",dependencies:[],npmPackages:{universal:[],"native-only":[]},paths:[{from:"./node_modules/@rnr/utils/src/index.ts",to:{folder:"primitives",file:"utils.ts"}}]}],v=[...N,...q];function T(e,o=new Set){let i=v.find(s=>s.name===e);if(!i)return[];o.add(e);let r=i.dependencies.slice();return i.dependencies.forEach(s=>{if(!o.has(s)){let t=T(s,o);r=r.concat(t)}}),r}var P="invalid component";function $(e){let o=new Set;if(e.some(i=>!v.find(r=>r.name===i)))throw new Error(P);return e.forEach(i=>{let r=T(i);r.unshift(i),r.forEach(s=>{o.add(s)})}),Array.from(o).map(i=>{let r=v.find(s=>s.name===i);if(!r)throw new Error(P);return r})}import{fileURLToPath as K}from"url";var Q=K(import.meta.url),j=a.dirname(Q),Y=g.object({components:g.array(g.string()).optional(),overwrite:g.boolean(),cwd:g.string(),path:g.string().optional()}),D=new X().name("add").description("add components to your project").argument("[components...]","the components to add").option("-o, --overwrite","overwrite existing files.",!1).option("-c, --cwd <cwd>","the working directory. defaults to the current directory.",process.cwd()).action(async(e,o)=>{try{let i=Y.parse({components:e,...o}),r=a.resolve(i.cwd);y(r)||(l.error(`The path ${r} does not exist. Please try again.`),process.exit(1));let s=await E(r);s||(s=await ee(r));let t=i.components??[];if(!t?.length){let{components:p}=await b({type:"multiselect",name:"components",message:"Which components would you like to add?",hint:"Space to select. A to toggle all. Enter to submit.",instructions:!1,choices:N.map(_=>({title:_.name,value:_.name,selected:!1}))});t=p}t?.length||(l.warn("No components selected. Exiting."),process.exit(0));let n=A("Installing components...").start(),d=[];try{d=$(t)}catch(p){p instanceof Error&&p.message===P&&(l.error(`Invalid component(s): ${t.filter(_=>!v.find(L=>L.name===_)).join(", ")}`),process.exit(1)),l.error(p)}let m=[];for(let p of d)n.text=`Installing ${p.name}...`,Array.isArray(p.paths)?await R(p,p.paths,s,n,i.overwrite):await R(p,p.paths[s.platforms==="universal"?"universal":"native-only"],s,n,i.overwrite),m.push(...p.npmPackages[s.platforms==="universal"?"universal":"native-only"]);let h=await I(r);m.length&&(n.text=`Installing ${m.join(", ")}...`,await H(h,[h==="npm"?"install":"add",...m],{cwd:r})),n.succeed("Done.")}catch(i){x(i)}});async function R(e,o,i,r,s){for(let t of o){let n=a.join(i.resolvedPaths.components,t.to.folder);if(y(n)||await u.mkdir(n,{recursive:!0}),r.stop(),y(a.join(n,t.to.file))){let m=[t.to.folder,t.to.file].join("/");if(!s){l.info(`File already exists: ${f.bgCyan(m)} was skipped. To overwrite, run with the ${f.green("--overwrite")} flag.`);continue}let{overwrite:h}=await b({type:"confirm",name:"overwrite",message:`File already exists: ${f.yellow(m)}. Would you like to overwrite?`,initial:!1});if(!h){l.info("Skipped");continue}}r.start(`Installing ${e.name}...`);let d=t.distFrom?a.join(j,"../__generated/components",t.distFrom):a.join(j,"../__generated/components",t.to.folder,t.to.file);try{let m=await u.readFile(a.resolve(d),"utf8");await u.writeFile(a.join(n,t.to.file),Z(m,i.aliases.components,i.aliases.lib))}catch(m){x(m)}}for(let t of e.icons??[]){let n=a.resolve(i.resolvedPaths.lib,"icons");if(!y(n)){await u.mkdir(n,{recursive:!0});try{await u.writeFile(a.join(n,"iconWithClassName.ts"),`import type { LucideIcon } from 'lucide-react-native';
|
|
3
|
+
import { cssInterop } from 'nativewind';
|
|
4
|
+
|
|
5
|
+
export function iconWithClassName(icon: LucideIcon) {
|
|
6
|
+
cssInterop(icon, {
|
|
7
|
+
className: {
|
|
8
|
+
target: 'style',
|
|
9
|
+
nativeStyleToProp: {
|
|
10
|
+
color: true,
|
|
11
|
+
opacity: true,
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
});
|
|
15
|
+
}`)}catch(d){x(d)}}if(y(a.join(n,`${t}.tsx`))){let d=a.join(n,`${t}.tsx`);if(!s){l.info(`File already exists: ${f.bgCyan(`${t}.tsx`)} was skipped. To overwrite, run with the ${f.green("--overwrite")} flag.`);continue}let{overwrite:m}=await b({type:"confirm",name:"overwrite",message:`File already exists: ${f.yellow(d)}. Would you like to overwrite?`,initial:!1});if(!m){l.info(`Skipped ${t}.tsx`);continue}}r.start(`Adding the ${t} icon...`);try{await u.writeFile(a.join(n,`${t}.tsx`),`import { ${t} } from 'lucide-react-native';
|
|
16
|
+
import { iconWithClassName } from './iconWithClassName';
|
|
17
|
+
iconWithClassName(${t});
|
|
18
|
+
export { ${t} };`)}catch(d){x(d)}}}function Z(e,o,i){return e.replace("./typography",`${o}/ui/typography`).replace("./text",`${o}/ui/text`).replaceAll("../../components",o).replaceAll("../../lib",i).replaceAll("@rnr",`${o}/primitives`)}async function ee(e){let o=t=>f.cyan(t),i=await b([{type:"select",name:"platforms",message:`Which ${o("platforms")} do you support?`,choices:[{title:"Universal (Web, iOS, and Android)",value:"universal"},{title:"Native Only (iOS and Android)",value:"native-only"}]},{type:"text",name:"components",message:`Configure the import alias for ${o("components")}:`,initial:S},{type:"text",name:"lib",message:`Configure the import alias for ${o("lib")}:`,initial:O}]),r=w.parse({platforms:i.platforms,aliases:{lib:i.lib,components:i.components}}),{proceed:s}=await b({type:"confirm",name:"proceed",message:`Write configuration to ${o("components.json")}. Proceed?`,initial:!0});if(s){l.info("");let t=A("Writing components.json...").start(),n=a.resolve(e,"components.json");await u.writeFile(n,JSON.stringify(r,null,2),"utf8"),t.succeed()}return await F(e,r)}import{Command as te}from"commander";import oe from"path";import ie from"fs-extra";function M(){let e=oe.join("package.json");return ie.readJSONSync(e)}process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));async function re(){let e=await M(),o=new te().name("rnr-cli").description("add components and dependencies to your project").version(e.version||"0.0.0-rc.0","-v, --version","display the version number");o.addCommand(D),o.parse()}re();
|
|
3
19
|
//# sourceMappingURL=index.js.map
|