@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.
@@ -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 { Check, ChevronDown, ChevronRight, ChevronUp } from '../../components/Icons';
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 * as ContextMenuPrimitive from '@rnr/context-menu';
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 { X } from '../../components/Icons';
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 * as DialogPrimitive from '@rnr/dialog';
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 { Check, ChevronDown, ChevronRight, ChevronUp } from '../../components/Icons';
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 { TextClassContext } from './text';
5
- import * as DropdownMenuPrimitive from '@rnr/dropdown-menu';
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,6 +1,5 @@
1
1
  import * as React from 'react';
2
2
  import { TextInput } from 'react-native';
3
-
4
3
  import { cn } from '../../lib/utils';
5
4
 
6
5
  const Input = React.forwardRef<
@@ -1,9 +1,12 @@
1
- import { Check, ChevronDown, ChevronRight, ChevronUp } from '../../components/Icons';
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 { TextClassContext } from './text';
5
- import * as MenubarPrimitive from '@rnr/menubar';
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 '../../components/Icons';
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
- >(({ className, children, ...props }, ref) => {
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, ChevronDown, ChevronUp } from '../../components/Icons';
5
- import * as SelectPrimitive from '@rnr/select';
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 entering={FadeIn} exiting={FadeOut}>
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