linked-data-browser 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/.eslintrc.js +13 -0
  2. package/.ldo/profile.context.ts +459 -0
  3. package/.ldo/profile.schema.ts +751 -0
  4. package/.ldo/profile.shapeTypes.ts +71 -0
  5. package/.ldo/profile.typings.ts +295 -0
  6. package/.prettierignore +6 -0
  7. package/.prettierrc +10 -0
  8. package/.shapes/profile.shex +121 -0
  9. package/README.md +3 -0
  10. package/app/index.tsx +25 -0
  11. package/app.json +37 -0
  12. package/assets/images/adaptive-icon.png +0 -0
  13. package/assets/images/favicon.png +0 -0
  14. package/assets/images/icon.png +0 -0
  15. package/assets/images/splash.png +0 -0
  16. package/babel.config.js +6 -0
  17. package/components/DataBrowser.tsx +57 -0
  18. package/components/ResourceView.tsx +14 -0
  19. package/components/TargetResourceProvider.tsx +128 -0
  20. package/components/ThemeProvider.tsx +123 -0
  21. package/components/nav/DialogProvider.tsx +140 -0
  22. package/components/nav/Layout.tsx +118 -0
  23. package/components/nav/header/AddressBox.tsx +126 -0
  24. package/components/nav/header/AvatarMenu.tsx +62 -0
  25. package/components/nav/header/Header.tsx +28 -0
  26. package/components/nav/header/SignInMenu.tsx +126 -0
  27. package/components/nav/header/ThemeToggleMenu.tsx +34 -0
  28. package/components/nav/header/ViewMenu.tsx +88 -0
  29. package/components/nav/useValidView.tsx +51 -0
  30. package/components/nav/utilityResourceViews/ErrorMessageResourceView.tsx +26 -0
  31. package/components/ui/avatar.tsx +53 -0
  32. package/components/ui/button.tsx +88 -0
  33. package/components/ui/card.tsx +101 -0
  34. package/components/ui/dialog.tsx +159 -0
  35. package/components/ui/dropdown-menu.tsx +275 -0
  36. package/components/ui/input.tsx +25 -0
  37. package/components/ui/label.tsx +34 -0
  38. package/components/ui/navigation-menu.tsx +200 -0
  39. package/components/ui/popover.tsx +45 -0
  40. package/components/ui/progress.tsx +79 -0
  41. package/components/ui/radio-group.tsx +59 -0
  42. package/components/ui/separator.tsx +27 -0
  43. package/components/ui/switch.tsx +105 -0
  44. package/components/ui/text.tsx +30 -0
  45. package/components/ui/tooltip.tsx +46 -0
  46. package/components.json +7 -0
  47. package/global.css +61 -0
  48. package/index.js +12 -0
  49. package/lib/android-navigation-bar.ts +11 -0
  50. package/lib/constants.ts +18 -0
  51. package/lib/icons/ArrowRight.tsx +4 -0
  52. package/lib/icons/Check.tsx +4 -0
  53. package/lib/icons/ChevronDown.tsx +4 -0
  54. package/lib/icons/ChevronRight.tsx +4 -0
  55. package/lib/icons/ChevronUp.tsx +4 -0
  56. package/lib/icons/ChevronsRight.tsx +4 -0
  57. package/lib/icons/CircleSlash.tsx +4 -0
  58. package/lib/icons/CircleX.tsx +4 -0
  59. package/lib/icons/Code.tsx +4 -0
  60. package/lib/icons/EllipsisVertical.tsx +4 -0
  61. package/lib/icons/EyeOff.tsx +4 -0
  62. package/lib/icons/File.tsx +4 -0
  63. package/lib/icons/Folder.tsx +4 -0
  64. package/lib/icons/Folders.tsx +4 -0
  65. package/lib/icons/Info.tsx +4 -0
  66. package/lib/icons/MonitorSmartphone.tsx +4 -0
  67. package/lib/icons/MoonStar.tsx +4 -0
  68. package/lib/icons/OctagonX.tsx +4 -0
  69. package/lib/icons/RefreshCw.tsx +4 -0
  70. package/lib/icons/ShieldX.tsx +4 -0
  71. package/lib/icons/Sun.tsx +4 -0
  72. package/lib/icons/TextCursorInput.tsx +4 -0
  73. package/lib/icons/Trash.tsx +4 -0
  74. package/lib/icons/ViewIcon.tsx +4 -0
  75. package/lib/icons/X.tsx +4 -0
  76. package/lib/icons/iconWithClassName.ts +14 -0
  77. package/lib/utils.ts +6 -0
  78. package/metro.config.js +6 -0
  79. package/nativewind-env.d.ts +1 -0
  80. package/package.json +89 -0
  81. package/resourceViews/Container/ContainerConfig.tsx +13 -0
  82. package/resourceViews/Container/ContainerView.tsx +148 -0
  83. package/resourceViews/RawCode/RawCodeConfig.tsx +11 -0
  84. package/resourceViews/RawCode/RawCodeEditor.tsx +37 -0
  85. package/resourceViews/RawCode/RawCodeView.tsx +67 -0
  86. package/scripts/adjust-server-paths.js +37 -0
  87. package/scripts/adjust-standalone-paths.js +28 -0
  88. package/tailwind.config.js +69 -0
  89. package/test-server/server-config.json +75 -0
  90. package/test-server/solid-css-seed.json +11 -0
  91. package/tsconfig.json +19 -0
@@ -0,0 +1,45 @@
1
+ import React from 'react';
2
+ import * as PopoverPrimitive from '@rn-primitives/popover';
3
+ import { Platform, StyleSheet } from 'react-native';
4
+ import Animated, { FadeIn, FadeOut } from 'react-native-reanimated';
5
+ import { cn } from '~/lib/utils';
6
+ import { TextClassContext } from '~/components/ui/text';
7
+
8
+ const Popover = PopoverPrimitive.Root;
9
+
10
+ const PopoverTrigger = PopoverPrimitive.Trigger;
11
+
12
+ function PopoverContent({
13
+ className,
14
+ align = 'center',
15
+ sideOffset = 4,
16
+ portalHost,
17
+ ...props
18
+ }: PopoverPrimitive.ContentProps & {
19
+ ref?: React.RefObject<PopoverPrimitive.ContentRef>;
20
+ portalHost?: string;
21
+ }) {
22
+ return (
23
+ <PopoverPrimitive.Portal hostName={portalHost}>
24
+ <PopoverPrimitive.Overlay
25
+ style={Platform.OS !== 'web' ? StyleSheet.absoluteFill : undefined}
26
+ >
27
+ <Animated.View entering={FadeIn.duration(200)} exiting={FadeOut}>
28
+ <TextClassContext.Provider value="text-popover-foreground">
29
+ <PopoverPrimitive.Content
30
+ align={align}
31
+ sideOffset={sideOffset}
32
+ className={cn(
33
+ 'z-50 w-72 rounded-md web:cursor-auto border border-border bg-popover p-4 shadow-md shadow-foreground/5 web:outline-none web:data-[side=bottom]:slide-in-from-top-2 web:data-[side=left]:slide-in-from-right-2 web:data-[side=right]:slide-in-from-left-2 web:data-[side=top]:slide-in-from-bottom-2 web:animate-in web:zoom-in-95 web:fade-in-0',
34
+ className,
35
+ )}
36
+ {...props}
37
+ />
38
+ </TextClassContext.Provider>
39
+ </Animated.View>
40
+ </PopoverPrimitive.Overlay>
41
+ </PopoverPrimitive.Portal>
42
+ );
43
+ }
44
+
45
+ export { Popover, PopoverContent, PopoverTrigger };
@@ -0,0 +1,79 @@
1
+ import * as ProgressPrimitive from '@rn-primitives/progress';
2
+ import * as React from 'react';
3
+ import { Platform, View } from 'react-native';
4
+ import Animated, {
5
+ Extrapolation,
6
+ interpolate,
7
+ useAnimatedStyle,
8
+ useDerivedValue,
9
+ withSpring,
10
+ } from 'react-native-reanimated';
11
+ import { cn } from '~/lib/utils';
12
+
13
+ function Progress({
14
+ className,
15
+ value,
16
+ indicatorClassName,
17
+ ...props
18
+ }: ProgressPrimitive.RootProps & {
19
+ ref?: React.RefObject<ProgressPrimitive.RootRef>;
20
+ indicatorClassName?: string;
21
+ }) {
22
+ return (
23
+ <ProgressPrimitive.Root
24
+ className={cn(
25
+ 'relative h-4 w-full overflow-hidden rounded-full bg-secondary',
26
+ className,
27
+ )}
28
+ {...props}
29
+ >
30
+ <Indicator value={value} className={indicatorClassName} />
31
+ </ProgressPrimitive.Root>
32
+ );
33
+ }
34
+
35
+ export { Progress };
36
+
37
+ function Indicator({
38
+ value,
39
+ className,
40
+ }: {
41
+ value: number | undefined | null;
42
+ className?: string;
43
+ }) {
44
+ const progress = useDerivedValue(() => value ?? 0);
45
+
46
+ const indicator = useAnimatedStyle(() => {
47
+ return {
48
+ width: withSpring(
49
+ `${interpolate(progress.value, [0, 100], [1, 100], Extrapolation.CLAMP)}%`,
50
+ { overshootClamping: true },
51
+ ),
52
+ };
53
+ });
54
+
55
+ if (Platform.OS === 'web') {
56
+ return (
57
+ <View
58
+ className={cn(
59
+ 'h-full w-full flex-1 bg-primary web:transition-all',
60
+ className,
61
+ )}
62
+ style={{ transform: `translateX(-${100 - (value ?? 0)}%)` }}
63
+ >
64
+ <ProgressPrimitive.Indicator
65
+ className={cn('h-full w-full', className)}
66
+ />
67
+ </View>
68
+ );
69
+ }
70
+
71
+ return (
72
+ <ProgressPrimitive.Indicator asChild>
73
+ <Animated.View
74
+ style={indicator}
75
+ className={cn('h-full bg-foreground', className)}
76
+ />
77
+ </ProgressPrimitive.Indicator>
78
+ );
79
+ }
@@ -0,0 +1,59 @@
1
+ import React, { PropsWithChildren } from 'react';
2
+ import * as RadioGroupPrimitive from '@rn-primitives/radio-group';
3
+ import { View } from 'react-native';
4
+ import { cn } from '~/lib/utils';
5
+ import { Label } from './label';
6
+
7
+ function RadioGroup({
8
+ className,
9
+ ...props
10
+ }: RadioGroupPrimitive.RootProps & {
11
+ ref?: React.RefObject<RadioGroupPrimitive.RootRef>;
12
+ }) {
13
+ return (
14
+ <RadioGroupPrimitive.Root
15
+ className={cn('web:grid gap-2', className)}
16
+ {...props}
17
+ />
18
+ );
19
+ }
20
+
21
+ function RadioGroupItem({
22
+ className,
23
+ ...props
24
+ }: RadioGroupPrimitive.ItemProps & {
25
+ ref?: React.RefObject<RadioGroupPrimitive.ItemRef>;
26
+ }) {
27
+ return (
28
+ <RadioGroupPrimitive.Item
29
+ className={cn(
30
+ 'aspect-square h-4 w-4 native:h-5 native:w-5 rounded-full justify-center items-center border border-primary text-primary web:ring-offset-background web:focus:outline-none web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2',
31
+ props.disabled && 'web:cursor-not-allowed opacity-50',
32
+ className,
33
+ )}
34
+ {...props}
35
+ >
36
+ <RadioGroupPrimitive.Indicator className="flex items-center justify-center">
37
+ <View className="aspect-square h-[9px] w-[9px] native:h-[10] native:w-[10] bg-primary rounded-full" />
38
+ </RadioGroupPrimitive.Indicator>
39
+ </RadioGroupPrimitive.Item>
40
+ );
41
+ }
42
+
43
+ function RadioGroupItemWithLabel({
44
+ value,
45
+ children,
46
+ }: PropsWithChildren<{
47
+ value: string;
48
+ }>) {
49
+ return (
50
+ <View className={'flex-row gap-2 items-center'}>
51
+ <RadioGroupItem aria-labelledby={`label-for-${value}`} value={value} />
52
+ <Label nativeID={`label-for-${value}`} className="flex flex-row gap-1">
53
+ {children}
54
+ </Label>
55
+ </View>
56
+ );
57
+ }
58
+
59
+ export { RadioGroup, RadioGroupItem, RadioGroupItemWithLabel };
@@ -0,0 +1,27 @@
1
+ import * as SeparatorPrimitive from '@rn-primitives/separator';
2
+ import * as React from 'react';
3
+ import { cn } from '~/lib/utils';
4
+
5
+ function Separator({
6
+ className,
7
+ orientation = 'horizontal',
8
+ decorative = true,
9
+ ...props
10
+ }: SeparatorPrimitive.RootProps & {
11
+ ref?: React.RefObject<SeparatorPrimitive.RootRef>;
12
+ }) {
13
+ return (
14
+ <SeparatorPrimitive.Root
15
+ decorative={decorative}
16
+ orientation={orientation}
17
+ className={cn(
18
+ 'shrink-0 bg-border',
19
+ orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',
20
+ className
21
+ )}
22
+ {...props}
23
+ />
24
+ );
25
+ }
26
+
27
+ export { Separator };
@@ -0,0 +1,105 @@
1
+ import * as SwitchPrimitives from '@rn-primitives/switch';
2
+ import * as React from 'react';
3
+ import { Platform } from 'react-native';
4
+ import Animated, {
5
+ interpolateColor,
6
+ useAnimatedStyle,
7
+ useDerivedValue,
8
+ withTiming,
9
+ } from 'react-native-reanimated';
10
+ import { cn } from '~/lib/utils';
11
+ import { useThemeChange } from '../ThemeProvider';
12
+
13
+ function SwitchWeb({
14
+ className,
15
+ ...props
16
+ }: SwitchPrimitives.RootProps & {
17
+ ref?: React.RefObject<SwitchPrimitives.RootRef>;
18
+ }) {
19
+ return (
20
+ <SwitchPrimitives.Root
21
+ className={cn(
22
+ 'peer flex-row h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed',
23
+ props.checked ? 'bg-primary' : 'bg-input',
24
+ props.disabled && 'opacity-50',
25
+ className,
26
+ )}
27
+ {...props}
28
+ >
29
+ <SwitchPrimitives.Thumb
30
+ className={cn(
31
+ 'pointer-events-none block h-5 w-5 rounded-full bg-background shadow-md shadow-foreground/5 ring-0 transition-transform',
32
+ props.checked ? 'translate-x-5' : 'translate-x-0',
33
+ )}
34
+ />
35
+ </SwitchPrimitives.Root>
36
+ );
37
+ }
38
+
39
+ const RGB_COLORS = {
40
+ light: {
41
+ primary: 'rgb(24, 24, 27)',
42
+ input: 'rgb(228, 228, 231)',
43
+ },
44
+ dark: {
45
+ primary: 'rgb(250, 250, 250)',
46
+ input: 'rgb(39, 39, 42)',
47
+ },
48
+ } as const;
49
+
50
+ function SwitchNative({
51
+ className,
52
+ ...props
53
+ }: SwitchPrimitives.RootProps & {
54
+ ref?: React.RefObject<SwitchPrimitives.RootRef>;
55
+ }) {
56
+ const { colorScheme } = useThemeChange();
57
+ const translateX = useDerivedValue(() => (props.checked ? 18 : 0));
58
+ const animatedRootStyle = useAnimatedStyle(() => {
59
+ return {
60
+ backgroundColor: interpolateColor(
61
+ translateX.value,
62
+ [0, 18],
63
+ [RGB_COLORS[colorScheme].input, RGB_COLORS[colorScheme].primary],
64
+ ),
65
+ };
66
+ });
67
+ const animatedThumbStyle = useAnimatedStyle(() => ({
68
+ transform: [
69
+ { translateX: withTiming(translateX.value, { duration: 200 }) },
70
+ ],
71
+ }));
72
+ return (
73
+ <Animated.View
74
+ style={animatedRootStyle}
75
+ className={cn(
76
+ 'h-8 w-[46px] rounded-full',
77
+ props.disabled && 'opacity-50',
78
+ )}
79
+ >
80
+ <SwitchPrimitives.Root
81
+ className={cn(
82
+ 'flex-row h-8 w-[46px] shrink-0 items-center rounded-full border-2 border-transparent',
83
+ props.checked ? 'bg-primary' : 'bg-input',
84
+ className,
85
+ )}
86
+ {...props}
87
+ >
88
+ <Animated.View style={animatedThumbStyle}>
89
+ <SwitchPrimitives.Thumb
90
+ className={
91
+ 'h-7 w-7 rounded-full bg-background shadow-md shadow-foreground/25 ring-0'
92
+ }
93
+ />
94
+ </Animated.View>
95
+ </SwitchPrimitives.Root>
96
+ </Animated.View>
97
+ );
98
+ }
99
+
100
+ const Switch = Platform.select({
101
+ web: SwitchWeb,
102
+ default: SwitchNative,
103
+ });
104
+
105
+ export { Switch };
@@ -0,0 +1,30 @@
1
+ import * as Slot from '@rn-primitives/slot';
2
+ import * as React from 'react';
3
+ import { Text as RNText } from 'react-native';
4
+ import { cn } from '~/lib/utils';
5
+
6
+ const TextClassContext = React.createContext<string | undefined>(undefined);
7
+
8
+ function Text({
9
+ className,
10
+ asChild = false,
11
+ ...props
12
+ }: React.ComponentProps<typeof RNText> & {
13
+ ref?: React.RefObject<RNText>;
14
+ asChild?: boolean;
15
+ }) {
16
+ const textClass = React.useContext(TextClassContext);
17
+ const Component = asChild ? Slot.Text : RNText;
18
+ return (
19
+ <Component
20
+ className={cn(
21
+ 'text-base text-foreground web:select-text',
22
+ textClass,
23
+ className,
24
+ )}
25
+ {...props}
26
+ />
27
+ );
28
+ }
29
+
30
+ export { Text, TextClassContext };
@@ -0,0 +1,46 @@
1
+ import * as TooltipPrimitive from '@rn-primitives/tooltip';
2
+ import * as React from 'react';
3
+ import { Platform, StyleSheet } from 'react-native';
4
+ import Animated, { FadeIn, FadeOut } from 'react-native-reanimated';
5
+ import { TextClassContext } from '~/components/ui/text';
6
+ import { cn } from '~/lib/utils';
7
+
8
+ const Tooltip = TooltipPrimitive.Root;
9
+
10
+ const TooltipTrigger = TooltipPrimitive.Trigger;
11
+
12
+ function TooltipContent({
13
+ className,
14
+ sideOffset = 4,
15
+ portalHost,
16
+ ...props
17
+ }: TooltipPrimitive.ContentProps & {
18
+ ref?: React.RefObject<TooltipPrimitive.ContentRef>;
19
+ portalHost?: string;
20
+ }) {
21
+ return (
22
+ <TooltipPrimitive.Portal hostName={portalHost}>
23
+ <TooltipPrimitive.Overlay
24
+ style={Platform.OS !== 'web' ? StyleSheet.absoluteFill : undefined}
25
+ >
26
+ <Animated.View
27
+ entering={Platform.select({ web: undefined, default: FadeIn })}
28
+ exiting={Platform.select({ web: undefined, default: FadeOut })}
29
+ >
30
+ <TextClassContext.Provider value="text-sm native:text-base text-popover-foreground">
31
+ <TooltipPrimitive.Content
32
+ sideOffset={sideOffset}
33
+ className={cn(
34
+ 'z-50 overflow-hidden rounded-md border border-border bg-popover px-3 py-1.5 shadow-md shadow-foreground/5 web:animate-in web:fade-in-0 web:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',
35
+ className,
36
+ )}
37
+ {...props}
38
+ />
39
+ </TextClassContext.Provider>
40
+ </Animated.View>
41
+ </TooltipPrimitive.Overlay>
42
+ </TooltipPrimitive.Portal>
43
+ );
44
+ }
45
+
46
+ export { Tooltip, TooltipContent, TooltipTrigger };
@@ -0,0 +1,7 @@
1
+ {
2
+ "aliases": {
3
+ "components": "~/components",
4
+ "lib": "~/lib",
5
+ "resourceViews": "~/resourceViews"
6
+ }
7
+ }
package/global.css ADDED
@@ -0,0 +1,61 @@
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
4
+
5
+ @layer base {
6
+ :root {
7
+ --background: 0 0% 100%;
8
+ --foreground: 240 10% 3.9%;
9
+ --card: 0 0% 100%;
10
+ --card-foreground: 240 10% 3.9%;
11
+ --popover: 0 0% 100%;
12
+ --popover-foreground: 240 10% 3.9%;
13
+ --primary: 240 5.9% 10%;
14
+ --primary-foreground: 0 0% 98%;
15
+ --secondary: 240 4.8% 95.9%;
16
+ --secondary-foreground: 240 5.9% 10%;
17
+ --muted: 240 4.8% 95.9%;
18
+ --muted-foreground: 240 3.8% 46.1%;
19
+ --accent: 240 4.8% 95.9%;
20
+ --accent-foreground: 240 5.9% 10%;
21
+ --destructive: 0 84.2% 60.2%;
22
+ --destructive-foreground: 0 0% 98%;
23
+ --border: 240 5.9% 90%;
24
+ --input: 240 5.9% 90%;
25
+ --ring: 240 5.9% 10%;
26
+ }
27
+
28
+ .dark:root {
29
+ --background: 240 10% 3.9%;
30
+ --foreground: 0 0% 98%;
31
+ --card: 240 10% 3.9%;
32
+ --card-foreground: 0 0% 98%;
33
+ --popover: 240 10% 3.9%;
34
+ --popover-foreground: 0 0% 98%;
35
+ --primary: 0 0% 98%;
36
+ --primary-foreground: 240 5.9% 10%;
37
+ --secondary: 240 3.7% 15.9%;
38
+ --secondary-foreground: 0 0% 98%;
39
+ --muted: 240 3.7% 15.9%;
40
+ --muted-foreground: 240 5% 64.9%;
41
+ --accent: 240 3.7% 15.9%;
42
+ --accent-foreground: 0 0% 98%;
43
+ --destructive: 0 72% 51%;
44
+ --destructive-foreground: 0 0% 98%;
45
+ --border: 240 3.7% 15.9%;
46
+ --input: 240 3.7% 15.9%;
47
+ --ring: 240 4.9% 83.9%;
48
+ }
49
+ }
50
+
51
+ .scrollbar-hide {
52
+ -ms-overflow-style: none;
53
+ /* IE/Edge */
54
+ scrollbar-width: none;
55
+ /* Firefox */
56
+ }
57
+
58
+ .scrollbar-hide::-webkit-scrollbar {
59
+ display: none;
60
+ /* Chrome, Safari, Opera */
61
+ }
package/index.js ADDED
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { registerRootComponent } from 'expo';
3
+ import { Screen } from './app/index';
4
+
5
+ // https://docs.expo.dev/router/reference/troubleshooting/#expo_router_app_root-not-defined
6
+
7
+ // Must be exported or Fast Refresh won't update the context
8
+ export function App() {
9
+ return <Screen />;
10
+ }
11
+
12
+ registerRootComponent(App);
@@ -0,0 +1,11 @@
1
+ import * as NavigationBar from 'expo-navigation-bar';
2
+ import { Platform } from 'react-native';
3
+ import { NAV_THEME } from '~/lib/constants';
4
+
5
+ export async function setAndroidNavigationBar(theme: 'light' | 'dark') {
6
+ if (Platform.OS !== 'android') return;
7
+ await NavigationBar.setButtonStyleAsync(theme === 'dark' ? 'light' : 'dark');
8
+ await NavigationBar.setBackgroundColorAsync(
9
+ theme === 'dark' ? NAV_THEME.dark.background : NAV_THEME.light.background,
10
+ );
11
+ }
@@ -0,0 +1,18 @@
1
+ export const NAV_THEME = {
2
+ light: {
3
+ background: 'hsl(0 0% 100%)', // background
4
+ border: 'hsl(240 5.9% 90%)', // border
5
+ card: 'hsl(0 0% 100%)', // card
6
+ notification: 'hsl(0 84.2% 60.2%)', // destructive
7
+ primary: 'hsl(240 5.9% 10%)', // primary
8
+ text: 'hsl(240 10% 3.9%)', // foreground
9
+ },
10
+ dark: {
11
+ background: 'hsl(240 10% 3.9%)', // background
12
+ border: 'hsl(240 3.7% 15.9%)', // border
13
+ card: 'hsl(240 10% 3.9%)', // card
14
+ notification: 'hsl(0 72% 51%)', // destructive
15
+ primary: 'hsl(0 0% 98%)', // primary
16
+ text: 'hsl(0 0% 98%)', // foreground
17
+ },
18
+ };
@@ -0,0 +1,4 @@
1
+ import { ArrowRight } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(ArrowRight);
4
+ export { ArrowRight };
@@ -0,0 +1,4 @@
1
+ import { Check } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(Check);
4
+ export { Check };
@@ -0,0 +1,4 @@
1
+ import { ChevronDown } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(ChevronDown);
4
+ export { ChevronDown };
@@ -0,0 +1,4 @@
1
+ import { ChevronRight } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(ChevronRight);
4
+ export { ChevronRight };
@@ -0,0 +1,4 @@
1
+ import { ChevronUp } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(ChevronUp);
4
+ export { ChevronUp };
@@ -0,0 +1,4 @@
1
+ import { ChevronsRight } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(ChevronsRight);
4
+ export { ChevronsRight };
@@ -0,0 +1,4 @@
1
+ import { CircleSlash } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(CircleSlash);
4
+ export { CircleSlash };
@@ -0,0 +1,4 @@
1
+ import { CircleX } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(CircleX);
4
+ export { CircleX };
@@ -0,0 +1,4 @@
1
+ import { Code } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(Code);
4
+ export { Code };
@@ -0,0 +1,4 @@
1
+ import { EllipsisVertical } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(EllipsisVertical);
4
+ export { EllipsisVertical };
@@ -0,0 +1,4 @@
1
+ import { EyeOff } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(EyeOff);
4
+ export { EyeOff };
@@ -0,0 +1,4 @@
1
+ import { File } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(File);
4
+ export { File };
@@ -0,0 +1,4 @@
1
+ import { Folder } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(Folder);
4
+ export { Folder };
@@ -0,0 +1,4 @@
1
+ import { Folders } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(Folders);
4
+ export { Folders };
@@ -0,0 +1,4 @@
1
+ import { Info } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(Info);
4
+ export { Info };
@@ -0,0 +1,4 @@
1
+ import { MonitorSmartphone } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(MonitorSmartphone);
4
+ export { MonitorSmartphone };
@@ -0,0 +1,4 @@
1
+ import { MoonStar } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(MoonStar);
4
+ export { MoonStar };
@@ -0,0 +1,4 @@
1
+ import { OctagonX } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(OctagonX);
4
+ export { OctagonX };
@@ -0,0 +1,4 @@
1
+ import { RefreshCw } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(RefreshCw);
4
+ export { RefreshCw };
@@ -0,0 +1,4 @@
1
+ import { ShieldX } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(ShieldX);
4
+ export { ShieldX };
@@ -0,0 +1,4 @@
1
+ import { Sun } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(Sun);
4
+ export { Sun };
@@ -0,0 +1,4 @@
1
+ import { TextCursorInput } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(TextCursorInput);
4
+ export { TextCursorInput };
@@ -0,0 +1,4 @@
1
+ import { Trash } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(Trash);
4
+ export { Trash };
@@ -0,0 +1,4 @@
1
+ import { View } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(View);
4
+ export const ViewIcon = View;
@@ -0,0 +1,4 @@
1
+ import { X } from 'lucide-react-native';
2
+ import { iconWithClassName } from './iconWithClassName';
3
+ iconWithClassName(X);
4
+ export { X };