@campxdev/react-native-blueprint 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +358 -0
  3. package/lib/module/app/_layout.js +23 -0
  4. package/lib/module/app/_layout.js.map +1 -0
  5. package/lib/module/assets/icons/weather_icons/drizzle.png +0 -0
  6. package/lib/module/assets/icons/weather_icons/foggy.png +0 -0
  7. package/lib/module/assets/icons/weather_icons/freezing_rain.png +0 -0
  8. package/lib/module/assets/icons/weather_icons/partly_cloudy.png +0 -0
  9. package/lib/module/assets/icons/weather_icons/rainy.png +0 -0
  10. package/lib/module/assets/icons/weather_icons/showers.png +0 -0
  11. package/lib/module/assets/icons/weather_icons/sunny_weather.png +0 -0
  12. package/lib/module/assets/icons/weather_icons/thunderstorm.png +0 -0
  13. package/lib/module/assets/icons/weather_icons/thunderstorm_hail.png +0 -0
  14. package/lib/module/components/theme-config.js +265 -0
  15. package/lib/module/components/theme-config.js.map +1 -0
  16. package/lib/module/components/ui/Accordion.js +228 -0
  17. package/lib/module/components/ui/Accordion.js.map +1 -0
  18. package/lib/module/components/ui/Alert-Dialog.js +266 -0
  19. package/lib/module/components/ui/Alert-Dialog.js.map +1 -0
  20. package/lib/module/components/ui/Alert.js +107 -0
  21. package/lib/module/components/ui/Alert.js.map +1 -0
  22. package/lib/module/components/ui/AppBar.js +403 -0
  23. package/lib/module/components/ui/AppBar.js.map +1 -0
  24. package/lib/module/components/ui/Aspect-Ratio.js +27 -0
  25. package/lib/module/components/ui/Aspect-Ratio.js.map +1 -0
  26. package/lib/module/components/ui/Avatar.js +97 -0
  27. package/lib/module/components/ui/Avatar.js.map +1 -0
  28. package/lib/module/components/ui/Badge.js +127 -0
  29. package/lib/module/components/ui/Badge.js.map +1 -0
  30. package/lib/module/components/ui/Bottom-Sheet.js +144 -0
  31. package/lib/module/components/ui/Bottom-Sheet.js.map +1 -0
  32. package/lib/module/components/ui/Button.js +88 -0
  33. package/lib/module/components/ui/Button.js.map +1 -0
  34. package/lib/module/components/ui/Card.js +176 -0
  35. package/lib/module/components/ui/Card.js.map +1 -0
  36. package/lib/module/components/ui/Checkbox.js +65 -0
  37. package/lib/module/components/ui/Checkbox.js.map +1 -0
  38. package/lib/module/components/ui/Collapsible.js +42 -0
  39. package/lib/module/components/ui/Collapsible.js.map +1 -0
  40. package/lib/module/components/ui/Context-Menu.js +287 -0
  41. package/lib/module/components/ui/Context-Menu.js.map +1 -0
  42. package/lib/module/components/ui/Custom-Card.js +202 -0
  43. package/lib/module/components/ui/Custom-Card.js.map +1 -0
  44. package/lib/module/components/ui/Dialog.js +202 -0
  45. package/lib/module/components/ui/Dialog.js.map +1 -0
  46. package/lib/module/components/ui/Dropdown-Menu.js +421 -0
  47. package/lib/module/components/ui/Dropdown-Menu.js.map +1 -0
  48. package/lib/module/components/ui/Floating-Action.js +50 -0
  49. package/lib/module/components/ui/Floating-Action.js.map +1 -0
  50. package/lib/module/components/ui/Greeting-Card.js +392 -0
  51. package/lib/module/components/ui/Greeting-Card.js.map +1 -0
  52. package/lib/module/components/ui/Hover-Card.js +96 -0
  53. package/lib/module/components/ui/Hover-Card.js.map +1 -0
  54. package/lib/module/components/ui/Icon.js +73 -0
  55. package/lib/module/components/ui/Icon.js.map +1 -0
  56. package/lib/module/components/ui/Input.js +74 -0
  57. package/lib/module/components/ui/Input.js.map +1 -0
  58. package/lib/module/components/ui/Label.js +44 -0
  59. package/lib/module/components/ui/Label.js.map +1 -0
  60. package/lib/module/components/ui/Menubar.js +375 -0
  61. package/lib/module/components/ui/Menubar.js.map +1 -0
  62. package/lib/module/components/ui/Native-Only-Animated-View.js +41 -0
  63. package/lib/module/components/ui/Native-Only-Animated-View.js.map +1 -0
  64. package/lib/module/components/ui/NavBar.js +352 -0
  65. package/lib/module/components/ui/NavBar.js.map +1 -0
  66. package/lib/module/components/ui/Popover.js +101 -0
  67. package/lib/module/components/ui/Popover.js.map +1 -0
  68. package/lib/module/components/ui/Progress.js +124 -0
  69. package/lib/module/components/ui/Progress.js.map +1 -0
  70. package/lib/module/components/ui/Radio-Group.js +75 -0
  71. package/lib/module/components/ui/Radio-Group.js.map +1 -0
  72. package/lib/module/components/ui/Select.js +269 -0
  73. package/lib/module/components/ui/Select.js.map +1 -0
  74. package/lib/module/components/ui/Separator.js +58 -0
  75. package/lib/module/components/ui/Separator.js.map +1 -0
  76. package/lib/module/components/ui/SizedBox.js +101 -0
  77. package/lib/module/components/ui/SizedBox.js.map +1 -0
  78. package/lib/module/components/ui/Skeleton.js +57 -0
  79. package/lib/module/components/ui/Skeleton.js.map +1 -0
  80. package/lib/module/components/ui/Slider.js +169 -0
  81. package/lib/module/components/ui/Slider.js.map +1 -0
  82. package/lib/module/components/ui/Switch.js +55 -0
  83. package/lib/module/components/ui/Switch.js.map +1 -0
  84. package/lib/module/components/ui/Table.js +150 -0
  85. package/lib/module/components/ui/Table.js.map +1 -0
  86. package/lib/module/components/ui/Tabs.js +106 -0
  87. package/lib/module/components/ui/Tabs.js.map +1 -0
  88. package/lib/module/components/ui/Text.js +69 -0
  89. package/lib/module/components/ui/Text.js.map +1 -0
  90. package/lib/module/components/ui/Textarea.js +88 -0
  91. package/lib/module/components/ui/Textarea.js.map +1 -0
  92. package/lib/module/components/ui/Theme-Toggle.js +156 -0
  93. package/lib/module/components/ui/Theme-Toggle.js.map +1 -0
  94. package/lib/module/components/ui/Toast.js +101 -0
  95. package/lib/module/components/ui/Toast.js.map +1 -0
  96. package/lib/module/components/ui/Toggle-Group.js +129 -0
  97. package/lib/module/components/ui/Toggle-Group.js.map +1 -0
  98. package/lib/module/components/ui/Toggle.js +106 -0
  99. package/lib/module/components/ui/Toggle.js.map +1 -0
  100. package/lib/module/components/ui/Tooltip.js +106 -0
  101. package/lib/module/components/ui/Tooltip.js.map +1 -0
  102. package/lib/module/components/ui/index.js +45 -0
  103. package/lib/module/components/ui/index.js.map +1 -0
  104. package/lib/module/index.js +19 -0
  105. package/lib/module/index.js.map +1 -0
  106. package/lib/module/lib/ThemeProvider.js +173 -0
  107. package/lib/module/lib/ThemeProvider.js.map +1 -0
  108. package/lib/module/lib/cornerRadius.js +164 -0
  109. package/lib/module/lib/cornerRadius.js.map +1 -0
  110. package/lib/module/lib/fonts.js +25 -0
  111. package/lib/module/lib/fonts.js.map +1 -0
  112. package/lib/module/lib/theme.js +212 -0
  113. package/lib/module/lib/theme.js.map +1 -0
  114. package/lib/module/lib/utils.js +137 -0
  115. package/lib/module/lib/utils.js.map +1 -0
  116. package/lib/module/package.json +1 -0
  117. package/package.json +208 -0
  118. package/src/app/_layout.tsx +25 -0
  119. package/src/assets/icons/weather_icons/drizzle.png +0 -0
  120. package/src/assets/icons/weather_icons/foggy.png +0 -0
  121. package/src/assets/icons/weather_icons/freezing_rain.png +0 -0
  122. package/src/assets/icons/weather_icons/partly_cloudy.png +0 -0
  123. package/src/assets/icons/weather_icons/rainy.png +0 -0
  124. package/src/assets/icons/weather_icons/showers.png +0 -0
  125. package/src/assets/icons/weather_icons/sunny_weather.png +0 -0
  126. package/src/assets/icons/weather_icons/thunderstorm.png +0 -0
  127. package/src/assets/icons/weather_icons/thunderstorm_hail.png +0 -0
  128. package/src/components/theme-config.ts +331 -0
  129. package/src/components/ui/Accordion.tsx +253 -0
  130. package/src/components/ui/Alert-Dialog.tsx +295 -0
  131. package/src/components/ui/Alert.tsx +137 -0
  132. package/src/components/ui/AppBar.tsx +551 -0
  133. package/src/components/ui/Aspect-Ratio.tsx +25 -0
  134. package/src/components/ui/Avatar.tsx +103 -0
  135. package/src/components/ui/Badge.tsx +121 -0
  136. package/src/components/ui/Bottom-Sheet.tsx +224 -0
  137. package/src/components/ui/Button.tsx +100 -0
  138. package/src/components/ui/Card.tsx +185 -0
  139. package/src/components/ui/Checkbox.tsx +81 -0
  140. package/src/components/ui/Collapsible.tsx +40 -0
  141. package/src/components/ui/Context-Menu.tsx +407 -0
  142. package/src/components/ui/Custom-Card.tsx +226 -0
  143. package/src/components/ui/Dialog.tsx +240 -0
  144. package/src/components/ui/Dropdown-Menu.tsx +544 -0
  145. package/src/components/ui/Floating-Action.tsx +54 -0
  146. package/src/components/ui/Greeting-Card.tsx +471 -0
  147. package/src/components/ui/Hover-Card.tsx +101 -0
  148. package/src/components/ui/Icon.tsx +75 -0
  149. package/src/components/ui/Input.tsx +90 -0
  150. package/src/components/ui/Label.tsx +48 -0
  151. package/src/components/ui/Menubar.tsx +509 -0
  152. package/src/components/ui/Native-Only-Animated-View.tsx +37 -0
  153. package/src/components/ui/NavBar.tsx +397 -0
  154. package/src/components/ui/Popover.tsx +110 -0
  155. package/src/components/ui/Progress.tsx +138 -0
  156. package/src/components/ui/Radio-Group.tsx +79 -0
  157. package/src/components/ui/Select.tsx +344 -0
  158. package/src/components/ui/Separator.tsx +68 -0
  159. package/src/components/ui/SizedBox.tsx +116 -0
  160. package/src/components/ui/Skeleton.tsx +55 -0
  161. package/src/components/ui/Slider.tsx +222 -0
  162. package/src/components/ui/Switch.tsx +67 -0
  163. package/src/components/ui/Table.tsx +170 -0
  164. package/src/components/ui/Tabs.tsx +119 -0
  165. package/src/components/ui/Text.tsx +73 -0
  166. package/src/components/ui/Textarea.tsx +93 -0
  167. package/src/components/ui/Theme-Toggle.tsx +204 -0
  168. package/src/components/ui/Toast.tsx +127 -0
  169. package/src/components/ui/Toggle-Group.tsx +160 -0
  170. package/src/components/ui/Toggle.tsx +122 -0
  171. package/src/components/ui/Tooltip.tsx +117 -0
  172. package/src/components/ui/index.ts +42 -0
  173. package/src/index.tsx +24 -0
  174. package/src/lib/ThemeProvider.tsx +204 -0
  175. package/src/lib/cornerRadius.ts +160 -0
  176. package/src/lib/fonts.ts +28 -0
  177. package/src/lib/theme.ts +151 -0
  178. package/src/lib/utils.ts +146 -0
@@ -0,0 +1,287 @@
1
+ "use strict";
2
+
3
+ import { Icon } from "./Icon.js";
4
+ import { NativeOnlyAnimatedView } from "./Native-Only-Animated-View.js";
5
+ import { TextClassContext } from "./Text.js";
6
+ import { cn } from "../../lib/utils.js";
7
+ import * as ContextMenuPrimitive from '@rn-primitives/context-menu';
8
+ import { Check, ChevronDown, ChevronRight, ChevronUp } from 'lucide-react-native';
9
+ import * as React from 'react';
10
+ import { Platform, StyleSheet, Text, View } from 'react-native';
11
+ import { cssInterop } from 'nativewind';
12
+ import { FadeIn } from 'react-native-reanimated';
13
+ import { FullWindowOverlay as RNFullWindowOverlay } from 'react-native-screens';
14
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
+ cssInterop(View, {
16
+ className: 'style'
17
+ });
18
+ cssInterop(Text, {
19
+ className: 'style'
20
+ });
21
+
22
+ /**
23
+ * Root context menu component
24
+ *
25
+ * @component
26
+ * @example
27
+ * ```tsx
28
+ * <ContextMenu>
29
+ * <ContextMenuTrigger>
30
+ * <View><Text>Right-click me</Text></View>
31
+ * </ContextMenuTrigger>
32
+ * <ContextMenuContent>
33
+ * <ContextMenuItem><Text>Edit</Text></ContextMenuItem>
34
+ * <ContextMenuItem><Text>Delete</Text></ContextMenuItem>
35
+ * </ContextMenuContent>
36
+ * </ContextMenu>
37
+ * ```
38
+ */
39
+ const ContextMenu = ContextMenuPrimitive.Root;
40
+
41
+ /**
42
+ * Trigger component that opens context menu on right-click or long-press
43
+ * @component
44
+ */
45
+ const ContextMenuTrigger = ContextMenuPrimitive.Trigger;
46
+
47
+ /**
48
+ * Groups related context menu items
49
+ * @component
50
+ */
51
+ const ContextMenuGroup = ContextMenuPrimitive.Group;
52
+
53
+ /**
54
+ * Root component for nested submenu
55
+ * @component
56
+ */
57
+ const ContextMenuSub = ContextMenuPrimitive.Sub;
58
+
59
+ /**
60
+ * Groups radio items for single selection
61
+ * @component
62
+ */
63
+ const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
64
+
65
+ /**
66
+ * Trigger for opening a nested submenu
67
+ * @component
68
+ */
69
+ function ContextMenuSubTrigger({
70
+ className: _className,
71
+ inset,
72
+ children,
73
+ iconClassName,
74
+ ...props
75
+ }) {
76
+ const {
77
+ open
78
+ } = ContextMenuPrimitive.useSubContext();
79
+ const icon = Platform.OS === 'web' ? ChevronRight : open ? ChevronUp : ChevronDown;
80
+ return /*#__PURE__*/_jsx(TextClassContext.Provider, {
81
+ value: cn('text-sm select-none group-active:text-accent-foreground', open && 'text-accent-foreground'),
82
+ children: /*#__PURE__*/_jsxs(ContextMenuPrimitive.SubTrigger, {
83
+ className: cn('active:bg-accent group flex flex-row items-center rounded-sm px-2 py-2 sm:py-1.5', Platform.select({
84
+ web: 'focus:bg-accent focus:text-accent-foreground cursor-default outline-none [&_svg]:pointer-events-none'
85
+ }), open && cn('bg-accent', Platform.select({
86
+ native: 'mb-1'
87
+ })), inset && 'pl-8'),
88
+ ...props,
89
+ children: [/*#__PURE__*/_jsx(_Fragment, {
90
+ children: children
91
+ }), /*#__PURE__*/_jsx(Icon, {
92
+ as: icon,
93
+ className: cn('text-foreground ml-auto size-4 shrink-0', iconClassName)
94
+ })]
95
+ })
96
+ });
97
+ }
98
+
99
+ /**
100
+ * Content container for nested submenu items
101
+ * @component
102
+ */
103
+ function ContextMenuSubContent({
104
+ className,
105
+ ...props
106
+ }) {
107
+ return /*#__PURE__*/_jsx(NativeOnlyAnimatedView, {
108
+ entering: FadeIn,
109
+ children: /*#__PURE__*/_jsx(ContextMenuPrimitive.SubContent, {
110
+ className: cn('bg-popover border-border overflow-hidden rounded-md border p-1 shadow-lg shadow-black/5', Platform.select({
111
+ web: 'animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 fade-in-0 data-[state=closed]:zoom-out-95 zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-context-menu-content-transform-origin) z-50 min-w-[8rem]'
112
+ }), className),
113
+ ...props
114
+ })
115
+ });
116
+ }
117
+
118
+ /**
119
+ * Full window overlay wrapper for iOS
120
+ */
121
+ const FullWindowOverlay = Platform.OS === 'ios' ? RNFullWindowOverlay : React.Fragment;
122
+
123
+ /**
124
+ * Main content container for context menu items
125
+ * @component
126
+ */
127
+ function ContextMenuContent({
128
+ className,
129
+ overlayClassName,
130
+ overlayStyle,
131
+ portalHost,
132
+ ...props
133
+ }) {
134
+ return /*#__PURE__*/_jsx(ContextMenuPrimitive.Portal, {
135
+ hostName: portalHost,
136
+ children: /*#__PURE__*/_jsx(FullWindowOverlay, {
137
+ children: /*#__PURE__*/_jsx(ContextMenuPrimitive.Overlay, {
138
+ style: Platform.select({
139
+ web: overlayStyle ?? undefined,
140
+ native: overlayStyle ? StyleSheet.flatten([StyleSheet.absoluteFill, overlayStyle]) : StyleSheet.absoluteFill
141
+ }),
142
+ className: overlayClassName,
143
+ children: /*#__PURE__*/_jsx(NativeOnlyAnimatedView, {
144
+ entering: FadeIn,
145
+ children: /*#__PURE__*/_jsx(TextClassContext.Provider, {
146
+ value: "text-popover-foreground",
147
+ children: /*#__PURE__*/_jsx(ContextMenuPrimitive.Content, {
148
+ className: cn('bg-popover border-border min-w-[8rem] overflow-hidden rounded-md border p-1 shadow-lg shadow-black/5', Platform.select({
149
+ web: cn('animate-in fade-in-0 zoom-in-95 max-h-(--radix-context-menu-content-available-height) origin-(--radix-context-menu-content-transform-origin) z-50 cursor-default', props.side === 'bottom' && 'slide-in-from-top-2', props.side === 'top' && 'slide-in-from-bottom-2')
150
+ }), className),
151
+ ...props
152
+ })
153
+ })
154
+ })
155
+ })
156
+ })
157
+ });
158
+ }
159
+
160
+ /**
161
+ * Individual context menu item
162
+ * @component
163
+ */
164
+ function ContextMenuItem({
165
+ className,
166
+ inset,
167
+ variant,
168
+ ...props
169
+ }) {
170
+ return /*#__PURE__*/_jsx(TextClassContext.Provider, {
171
+ value: cn('select-none text-sm text-popover-foreground group-active:text-popover-foreground', variant === 'destructive' && 'text-destructive group-active:text-destructive'),
172
+ children: /*#__PURE__*/_jsx(ContextMenuPrimitive.Item, {
173
+ className: cn('active:bg-accent group relative flex flex-row items-center gap-2 rounded-sm px-2 py-2 sm:py-1.5', Platform.select({
174
+ web: cn('focus:bg-accent focus:text-accent-foreground cursor-default outline-none data-[disabled]:pointer-events-none', variant === 'destructive' && 'focus:bg-destructive/10 dark:focus:bg-destructive/20')
175
+ }), variant === 'destructive' && 'active:bg-destructive/10 dark:active:bg-destructive/20', props.disabled && 'opacity-50', inset && 'pl-8', className),
176
+ ...props
177
+ })
178
+ });
179
+ }
180
+
181
+ /**
182
+ * Menu item with checkbox for multi-selection
183
+ * @component
184
+ */
185
+ function ContextMenuCheckboxItem({
186
+ className,
187
+ children,
188
+ ...props
189
+ }) {
190
+ return /*#__PURE__*/_jsx(TextClassContext.Provider, {
191
+ value: "text-sm text-popover-foreground select-none group-active:text-accent-foreground",
192
+ children: /*#__PURE__*/_jsxs(ContextMenuPrimitive.CheckboxItem, {
193
+ className: cn('active:bg-accent group relative flex flex-row items-center gap-2 rounded-sm py-2 pl-8 pr-2 sm:py-1.5', Platform.select({
194
+ web: 'focus:bg-accent focus:text-accent-foreground cursor-default outline-none data-[disabled]:pointer-events-none'
195
+ }), props.disabled && 'opacity-50', className),
196
+ ...props,
197
+ children: [/*#__PURE__*/_jsx(View, {
198
+ className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center",
199
+ children: /*#__PURE__*/_jsx(ContextMenuPrimitive.ItemIndicator, {
200
+ children: /*#__PURE__*/_jsx(Icon, {
201
+ as: Check,
202
+ className: cn('text-foreground size-4', Platform.select({
203
+ web: 'pointer-events-none'
204
+ }))
205
+ })
206
+ })
207
+ }), /*#__PURE__*/_jsx(_Fragment, {
208
+ children: children
209
+ })]
210
+ })
211
+ });
212
+ }
213
+
214
+ /**
215
+ * Menu item with radio button for single selection
216
+ * @component
217
+ */
218
+ function ContextMenuRadioItem({
219
+ className,
220
+ children,
221
+ ...props
222
+ }) {
223
+ return /*#__PURE__*/_jsx(TextClassContext.Provider, {
224
+ value: "text-sm text-popover-foreground select-none group-active:text-accent-foreground",
225
+ children: /*#__PURE__*/_jsxs(ContextMenuPrimitive.RadioItem, {
226
+ className: cn('active:bg-accent group relative flex flex-row items-center gap-2 rounded-sm py-2 pl-8 pr-2 sm:py-1.5', Platform.select({
227
+ web: 'focus:bg-accent focus:text-accent-foreground cursor-default outline-none data-[disabled]:pointer-events-none'
228
+ }), props.disabled && 'opacity-50', className),
229
+ ...props,
230
+ children: [/*#__PURE__*/_jsx(View, {
231
+ className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center",
232
+ children: /*#__PURE__*/_jsx(ContextMenuPrimitive.ItemIndicator, {
233
+ children: /*#__PURE__*/_jsx(View, {
234
+ className: "bg-foreground h-2 w-2 rounded-full"
235
+ })
236
+ })
237
+ }), /*#__PURE__*/_jsx(_Fragment, {
238
+ children: children
239
+ })]
240
+ })
241
+ });
242
+ }
243
+
244
+ /**
245
+ * Label for grouping context menu sections
246
+ * @component
247
+ */
248
+ function ContextMenuLabel({
249
+ className,
250
+ inset,
251
+ ...props
252
+ }) {
253
+ return /*#__PURE__*/_jsx(ContextMenuPrimitive.Label, {
254
+ className: cn('text-foreground px-2 py-2 text-sm font-medium sm:py-1.5', inset && 'pl-8', className),
255
+ ...props
256
+ });
257
+ }
258
+
259
+ /**
260
+ * Visual separator between menu items
261
+ * @component
262
+ */
263
+ function ContextMenuSeparator({
264
+ className,
265
+ ...props
266
+ }) {
267
+ return /*#__PURE__*/_jsx(ContextMenuPrimitive.Separator, {
268
+ className: cn('bg-border -mx-1 my-1 h-px', className),
269
+ ...props
270
+ });
271
+ }
272
+
273
+ /**
274
+ * Displays keyboard shortcut hint for menu items
275
+ * @component
276
+ */
277
+ function ContextMenuShortcut({
278
+ className,
279
+ ...props
280
+ }) {
281
+ return /*#__PURE__*/_jsx(Text, {
282
+ className: cn('text-muted-foreground ml-auto text-xs tracking-widest', className),
283
+ ...props
284
+ });
285
+ }
286
+ export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
287
+ //# sourceMappingURL=Context-Menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Icon","NativeOnlyAnimatedView","TextClassContext","cn","ContextMenuPrimitive","Check","ChevronDown","ChevronRight","ChevronUp","React","Platform","StyleSheet","Text","View","cssInterop","FadeIn","FullWindowOverlay","RNFullWindowOverlay","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","className","ContextMenu","Root","ContextMenuTrigger","Trigger","ContextMenuGroup","Group","ContextMenuSub","Sub","ContextMenuRadioGroup","RadioGroup","ContextMenuSubTrigger","_className","inset","children","iconClassName","props","open","useSubContext","icon","OS","Provider","value","SubTrigger","select","web","native","as","ContextMenuSubContent","entering","SubContent","ContextMenuContent","overlayClassName","overlayStyle","portalHost","Portal","hostName","Overlay","style","undefined","flatten","absoluteFill","Content","side","ContextMenuItem","variant","Item","disabled","ContextMenuCheckboxItem","CheckboxItem","ItemIndicator","ContextMenuRadioItem","RadioItem","ContextMenuLabel","Label","ContextMenuSeparator","Separator","ContextMenuShortcut"],"sourceRoot":"../../../../src","sources":["components/ui/Context-Menu.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,WAAQ;AAC7B,SAASC,sBAAsB,QAAQ,gCAA6B;AACpE,SAASC,gBAAgB,QAAQ,WAAQ;AACzC,SAASC,EAAE,QAAQ,oBAAiB;AACpC,OAAO,KAAKC,oBAAoB,MAAM,6BAA6B;AACnE,SACEC,KAAK,EACLC,WAAW,EACXC,YAAY,EACZC,SAAS,QACJ,qBAAqB;AAC5B,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SACEC,QAAQ,EAERC,UAAU,EACVC,IAAI,EAEJC,IAAI,QAEC,cAAc;AACrB,SAASC,UAAU,QAAQ,YAAY;AACvC,SAASC,MAAM,QAAQ,yBAAyB;AAChD,SAASC,iBAAiB,IAAIC,mBAAmB,QAAQ,sBAAsB;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEhFT,UAAU,CAACD,IAAI,EAAE;EAAEW,SAAS,EAAE;AAAQ,CAAC,CAAC;AACxCV,UAAU,CAACF,IAAI,EAAE;EAAEY,SAAS,EAAE;AAAQ,CAAC,CAAC;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,WAAW,GAAGrB,oBAAoB,CAACsB,IAAI;;AAE7C;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAGvB,oBAAoB,CAACwB,OAAO;;AAEvD;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,GAAGzB,oBAAoB,CAAC0B,KAAK;;AAEnD;AACA;AACA;AACA;AACA,MAAMC,cAAc,GAAG3B,oBAAoB,CAAC4B,GAAG;;AAE/C;AACA;AACA;AACA;AACA,MAAMC,qBAAqB,GAAG7B,oBAAoB,CAAC8B,UAAU;;AAE7D;AACA;AACA;AACA;AACA,SAASC,qBAAqBA,CAAC;EAC7BX,SAAS,EAAEY,UAAU;EACrBC,KAAK;EACLC,QAAQ;EACRC,aAAa;EACb,GAAGC;AAMH,CAAC,EAAE;EACH,MAAM;IAAEC;EAAK,CAAC,GAAGrC,oBAAoB,CAACsC,aAAa,CAAC,CAAC;EACrD,MAAMC,IAAI,GACRjC,QAAQ,CAACkC,EAAE,KAAK,KAAK,GAAGrC,YAAY,GAAGkC,IAAI,GAAGjC,SAAS,GAAGF,WAAW;EACvE,oBACEe,IAAA,CAACnB,gBAAgB,CAAC2C,QAAQ;IACxBC,KAAK,EAAE3C,EAAE,CACP,yDAAyD,EACzDsC,IAAI,IAAI,wBACV,CAAE;IAAAH,QAAA,eAEFf,KAAA,CAACnB,oBAAoB,CAAC2C,UAAU;MAC9BvB,SAAS,EAAErB,EAAE,CACX,kFAAkF,EAClFO,QAAQ,CAACsC,MAAM,CAAC;QACdC,GAAG,EAAE;MACP,CAAC,CAAC,EACFR,IAAI,IAAItC,EAAE,CAAC,WAAW,EAAEO,QAAQ,CAACsC,MAAM,CAAC;QAAEE,MAAM,EAAE;MAAO,CAAC,CAAC,CAAC,EAC5Db,KAAK,IAAI,MACX,CAAE;MAAA,GACEG,KAAK;MAAAF,QAAA,gBAETjB,IAAA,CAAAF,SAAA;QAAAmB,QAAA,EAAGA;MAAQ,CAAG,CAAC,eACfjB,IAAA,CAACrB,IAAI;QACHmD,EAAE,EAAER,IAAK;QACTnB,SAAS,EAAErB,EAAE,CACX,yCAAyC,EACzCoC,aACF;MAAE,CACH,CAAC;IAAA,CAC6B;EAAC,CACT,CAAC;AAEhC;;AAEA;AACA;AACA;AACA;AACA,SAASa,qBAAqBA,CAAC;EAC7B5B,SAAS;EACT,GAAGgB;AAEmD,CAAC,EAAE;EACzD,oBACEnB,IAAA,CAACpB,sBAAsB;IAACoD,QAAQ,EAAEtC,MAAO;IAAAuB,QAAA,eACvCjB,IAAA,CAACjB,oBAAoB,CAACkD,UAAU;MAC9B9B,SAAS,EAAErB,EAAE,CACX,yFAAyF,EACzFO,QAAQ,CAACsC,MAAM,CAAC;QACdC,GAAG,EAAE;MACP,CAAC,CAAC,EACFzB,SACF,CAAE;MAAA,GACEgB;IAAK,CACV;EAAC,CACoB,CAAC;AAE7B;;AAEA;AACA;AACA;AACA,MAAMxB,iBAAiB,GACrBN,QAAQ,CAACkC,EAAE,KAAK,KAAK,GAAG3B,mBAAmB,GAAGR,KAAK,CAACS,QAAQ;;AAE9D;AACA;AACA;AACA;AACA,SAASqC,kBAAkBA,CAAC;EAC1B/B,SAAS;EACTgC,gBAAgB;EAChBC,YAAY;EACZC,UAAU;EACV,GAAGlB;AAMH,CAAC,EAAE;EACH,oBACEnB,IAAA,CAACjB,oBAAoB,CAACuD,MAAM;IAACC,QAAQ,EAAEF,UAAW;IAAApB,QAAA,eAChDjB,IAAA,CAACL,iBAAiB;MAAAsB,QAAA,eAChBjB,IAAA,CAACjB,oBAAoB,CAACyD,OAAO;QAC3BC,KAAK,EAAEpD,QAAQ,CAACsC,MAAM,CAAC;UACrBC,GAAG,EAAEQ,YAAY,IAAIM,SAAS;UAC9Bb,MAAM,EAAEO,YAAY,GAChB9C,UAAU,CAACqD,OAAO,CAAC,CACjBrD,UAAU,CAACsD,YAAY,EACvBR,YAAY,CACb,CAAC,GACF9C,UAAU,CAACsD;QACjB,CAAC,CAAE;QACHzC,SAAS,EAAEgC,gBAAiB;QAAAlB,QAAA,eAE5BjB,IAAA,CAACpB,sBAAsB;UAACoD,QAAQ,EAAEtC,MAAO;UAAAuB,QAAA,eACvCjB,IAAA,CAACnB,gBAAgB,CAAC2C,QAAQ;YAACC,KAAK,EAAC,yBAAyB;YAAAR,QAAA,eACxDjB,IAAA,CAACjB,oBAAoB,CAAC8D,OAAO;cAC3B1C,SAAS,EAAErB,EAAE,CACX,sGAAsG,EACtGO,QAAQ,CAACsC,MAAM,CAAC;gBACdC,GAAG,EAAE9C,EAAE,CACL,kKAAkK,EAClKqC,KAAK,CAAC2B,IAAI,KAAK,QAAQ,IAAI,qBAAqB,EAChD3B,KAAK,CAAC2B,IAAI,KAAK,KAAK,IAAI,wBAC1B;cACF,CAAC,CAAC,EACF3C,SACF,CAAE;cAAA,GACEgB;YAAK,CACV;UAAC,CACuB;QAAC,CACN;MAAC,CACG;IAAC,CACd;EAAC,CACO,CAAC;AAElC;;AAEA;AACA;AACA;AACA;AACA,SAAS4B,eAAeA,CAAC;EACvB5C,SAAS;EACTa,KAAK;EACLgC,OAAO;EACP,GAAG7B;AAMH,CAAC,EAAE;EACH,oBACEnB,IAAA,CAACnB,gBAAgB,CAAC2C,QAAQ;IACxBC,KAAK,EAAE3C,EAAE,CACP,kFAAkF,EAClFkE,OAAO,KAAK,aAAa,IACvB,gDACJ,CAAE;IAAA/B,QAAA,eAEFjB,IAAA,CAACjB,oBAAoB,CAACkE,IAAI;MACxB9C,SAAS,EAAErB,EAAE,CACX,iGAAiG,EACjGO,QAAQ,CAACsC,MAAM,CAAC;QACdC,GAAG,EAAE9C,EAAE,CACL,8GAA8G,EAC9GkE,OAAO,KAAK,aAAa,IACvB,sDACJ;MACF,CAAC,CAAC,EACFA,OAAO,KAAK,aAAa,IACvB,wDAAwD,EAC1D7B,KAAK,CAAC+B,QAAQ,IAAI,YAAY,EAC9BlC,KAAK,IAAI,MAAM,EACfb,SACF,CAAE;MAAA,GACEgB;IAAK,CACV;EAAC,CACuB,CAAC;AAEhC;;AAEA;AACA;AACA;AACA;AACA,SAASgC,uBAAuBA,CAAC;EAC/BhD,SAAS;EACTc,QAAQ;EACR,GAAGE;AAIH,CAAC,EAAE;EACH,oBACEnB,IAAA,CAACnB,gBAAgB,CAAC2C,QAAQ;IAACC,KAAK,EAAC,iFAAiF;IAAAR,QAAA,eAChHf,KAAA,CAACnB,oBAAoB,CAACqE,YAAY;MAChCjD,SAAS,EAAErB,EAAE,CACX,sGAAsG,EACtGO,QAAQ,CAACsC,MAAM,CAAC;QACdC,GAAG,EAAE;MACP,CAAC,CAAC,EACFT,KAAK,CAAC+B,QAAQ,IAAI,YAAY,EAC9B/C,SACF,CAAE;MAAA,GACEgB,KAAK;MAAAF,QAAA,gBAETjB,IAAA,CAACR,IAAI;QAACW,SAAS,EAAC,8DAA8D;QAAAc,QAAA,eAC5EjB,IAAA,CAACjB,oBAAoB,CAACsE,aAAa;UAAApC,QAAA,eACjCjB,IAAA,CAACrB,IAAI;YACHmD,EAAE,EAAE9C,KAAM;YACVmB,SAAS,EAAErB,EAAE,CACX,wBAAwB,EACxBO,QAAQ,CAACsC,MAAM,CAAC;cAAEC,GAAG,EAAE;YAAsB,CAAC,CAChD;UAAE,CACH;QAAC,CACgC;MAAC,CACjC,CAAC,eACP5B,IAAA,CAAAF,SAAA;QAAAmB,QAAA,EAAGA;MAAQ,CAAG,CAAC;IAAA,CACkB;EAAC,CACX,CAAC;AAEhC;;AAEA;AACA;AACA;AACA;AACA,SAASqC,oBAAoBA,CAAC;EAC5BnD,SAAS;EACTc,QAAQ;EACR,GAAGE;AAIH,CAAC,EAAE;EACH,oBACEnB,IAAA,CAACnB,gBAAgB,CAAC2C,QAAQ;IAACC,KAAK,EAAC,iFAAiF;IAAAR,QAAA,eAChHf,KAAA,CAACnB,oBAAoB,CAACwE,SAAS;MAC7BpD,SAAS,EAAErB,EAAE,CACX,sGAAsG,EACtGO,QAAQ,CAACsC,MAAM,CAAC;QACdC,GAAG,EAAE;MACP,CAAC,CAAC,EACFT,KAAK,CAAC+B,QAAQ,IAAI,YAAY,EAC9B/C,SACF,CAAE;MAAA,GACEgB,KAAK;MAAAF,QAAA,gBAETjB,IAAA,CAACR,IAAI;QAACW,SAAS,EAAC,8DAA8D;QAAAc,QAAA,eAC5EjB,IAAA,CAACjB,oBAAoB,CAACsE,aAAa;UAAApC,QAAA,eACjCjB,IAAA,CAACR,IAAI;YAACW,SAAS,EAAC;UAAoC,CAAE;QAAC,CACrB;MAAC,CACjC,CAAC,eACPH,IAAA,CAAAF,SAAA;QAAAmB,QAAA,EAAGA;MAAQ,CAAG,CAAC;IAAA,CACe;EAAC,CACR,CAAC;AAEhC;;AAEA;AACA;AACA;AACA;AACA,SAASuC,gBAAgBA,CAAC;EACxBrD,SAAS;EACTa,KAAK;EACL,GAAGG;AAKH,CAAC,EAAE;EACH,oBACEnB,IAAA,CAACjB,oBAAoB,CAAC0E,KAAK;IACzBtD,SAAS,EAAErB,EAAE,CACX,yDAAyD,EACzDkC,KAAK,IAAI,MAAM,EACfb,SACF,CAAE;IAAA,GACEgB;EAAK,CACV,CAAC;AAEN;;AAEA;AACA;AACA;AACA;AACA,SAASuC,oBAAoBA,CAAC;EAC5BvD,SAAS;EACT,GAAGgB;AAEkD,CAAC,EAAE;EACxD,oBACEnB,IAAA,CAACjB,oBAAoB,CAAC4E,SAAS;IAC7BxD,SAAS,EAAErB,EAAE,CAAC,2BAA2B,EAAEqB,SAAS,CAAE;IAAA,GAClDgB;EAAK,CACV,CAAC;AAEN;;AAEA;AACA;AACA;AACA;AACA,SAASyC,mBAAmBA,CAAC;EAC3BzD,SAAS;EACT,GAAGgB;AACkC,CAAC,EAAE;EACxC,oBACEnB,IAAA,CAACT,IAAI;IACHY,SAAS,EAAErB,EAAE,CACX,uDAAuD,EACvDqB,SACF,CAAE;IAAA,GACEgB;EAAK,CACV,CAAC;AAEN;AAEA,SACEf,WAAW,EACX+C,uBAAuB,EACvBjB,kBAAkB,EAClB1B,gBAAgB,EAChBuC,eAAe,EACfS,gBAAgB,EAChB5C,qBAAqB,EACrB0C,oBAAoB,EACpBI,oBAAoB,EACpBE,mBAAmB,EACnBlD,cAAc,EACdqB,qBAAqB,EACrBjB,qBAAqB,EACrBR,kBAAkB","ignoreList":[]}
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+
3
+ import * as Slot from '@rn-primitives/slot';
4
+ import * as React from 'react';
5
+ import { View, useColorScheme } from 'react-native';
6
+ import { SquircleView } from 'react-native-figma-squircle';
7
+ import { cn } from "../../lib/utils.js";
8
+ import { TextClassContext } from "./Text.js";
9
+
10
+ /**
11
+ * CustomCard container component with squircle shape
12
+ *
13
+ * Provides elevated container with smooth squircle corners (iOS-like rounded corners),
14
+ * border, and shadow. Uses Figma's squircle algorithm for premium look.
15
+ * Use with CardHeader, CardTitle, CardDescription, CardContent, and CardFooter
16
+ * for a complete card structure.
17
+ *
18
+ * @component
19
+ * @example
20
+ * ```tsx
21
+ * <CustomCard>
22
+ * <CardHeader>
23
+ * <CardTitle><Text>Title</Text></CardTitle>
24
+ * <CardDescription><Text>Description</Text></CardDescription>
25
+ * </CardHeader>
26
+ * <CardContent>
27
+ * <Text>Card content goes here</Text>
28
+ * </CardContent>
29
+ * <CardFooter>
30
+ * <Button>Action</Button>
31
+ * </CardFooter>
32
+ * </CustomCard>
33
+ *
34
+ * // With custom corner smoothing
35
+ * <CustomCard cornerSmoothing={1}>
36
+ * <Text>Extra smooth corners</Text>
37
+ * </CustomCard>
38
+ * ```
39
+ *
40
+ * @property {boolean} [asChild] - When true, merges props into immediate child
41
+ * @property {string} [className] - Additional Tailwind classes
42
+ * @property {number} [cornerRadius=16] - Corner radius in pixels
43
+ * @property {number} [cornerSmoothing=0.8] - Smoothing factor (0-1), higher = more iOS-like
44
+ */
45
+ import { jsx as _jsx } from "react/jsx-runtime";
46
+ const CustomCard = /*#__PURE__*/React.forwardRef(({
47
+ className: _className,
48
+ asChild = false,
49
+ cornerRadius = 16,
50
+ cornerSmoothing = 1.0,
51
+ children,
52
+ ...props
53
+ }, ref) => {
54
+ const colorScheme = useColorScheme();
55
+ const isDark = colorScheme === 'dark';
56
+ if (asChild) {
57
+ const Component = Slot.View;
58
+ return /*#__PURE__*/_jsx(Component, {
59
+ ref: ref,
60
+ ...props,
61
+ children: children
62
+ });
63
+ }
64
+
65
+ // Use SquircleView directly as the container with inner View for content
66
+ return /*#__PURE__*/_jsx(SquircleView, {
67
+ squircleParams: {
68
+ cornerRadius,
69
+ cornerSmoothing,
70
+ fillColor: isDark ? 'hsl(224 71.4% 4.1%)' : 'hsl(0 0% 100%)',
71
+ strokeColor: isDark ? 'hsl(215 27.9% 16.9%)' : 'hsl(214.3 31.8% 91.4%)',
72
+ strokeWidth: 1
73
+ },
74
+ ...props,
75
+ children: /*#__PURE__*/_jsx(View, {
76
+ ref: ref,
77
+ className: "px-4",
78
+ children: children
79
+ })
80
+ });
81
+ });
82
+ CustomCard.displayName = 'CustomCard';
83
+
84
+ /**
85
+ * CustomCardHeader - Container for card title and description
86
+ *
87
+ * Provides proper spacing for title and description elements at the top of a card.
88
+ *
89
+ * @property {boolean} [asChild] - When true, merges props into immediate child
90
+ * @property {string} [className] - Additional Tailwind classes
91
+ */
92
+ const CustomCardHeader = /*#__PURE__*/React.forwardRef(({
93
+ className,
94
+ asChild = false,
95
+ ...props
96
+ }, ref) => {
97
+ const Component = asChild ? Slot.View : View;
98
+ return /*#__PURE__*/_jsx(Component, {
99
+ className: cn('flex flex-col gap-1.5 p-6', className),
100
+ ref: ref,
101
+ ...props
102
+ });
103
+ });
104
+ CustomCardHeader.displayName = 'CustomCardHeader';
105
+
106
+ /**
107
+ * CustomCardTitle - Main title text for the card
108
+ *
109
+ * Automatically styles child Text components with large, semibold typography.
110
+ * Uses TextClassContext to apply consistent styling to nested Text elements.
111
+ *
112
+ * @property {boolean} [asChild] - When true, merges props into immediate child
113
+ * @property {string} [className] - Additional Tailwind classes for text styling
114
+ */
115
+ const CustomCardTitle = /*#__PURE__*/React.forwardRef(({
116
+ className,
117
+ asChild = false,
118
+ ...props
119
+ }, ref) => {
120
+ const Component = asChild ? Slot.View : View;
121
+ return /*#__PURE__*/_jsx(TextClassContext.Provider, {
122
+ value: cn('text-2xl font-semibold leading-none tracking-tight text-card-foreground dark:text-card-foreground', className),
123
+ children: /*#__PURE__*/_jsx(Component, {
124
+ ref: ref,
125
+ ...props
126
+ })
127
+ });
128
+ });
129
+ CustomCardTitle.displayName = 'CustomCardTitle';
130
+
131
+ /**
132
+ * CustomCardDescription - Subtitle or description text for the card
133
+ *
134
+ * Automatically styles child Text components with muted, smaller typography.
135
+ * Uses TextClassContext to apply consistent styling to nested Text elements.
136
+ *
137
+ * @property {boolean} [asChild] - When true, merges props into immediate child
138
+ * @property {string} [className] - Additional Tailwind classes for text styling
139
+ */
140
+ const CustomCardDescription = /*#__PURE__*/React.forwardRef(({
141
+ className,
142
+ asChild = false,
143
+ ...props
144
+ }, ref) => {
145
+ const Component = asChild ? Slot.View : View;
146
+ return /*#__PURE__*/_jsx(TextClassContext.Provider, {
147
+ value: cn('text-sm text-muted-foreground dark:text-muted-foreground', className),
148
+ children: /*#__PURE__*/_jsx(Component, {
149
+ ref: ref,
150
+ ...props
151
+ })
152
+ });
153
+ });
154
+ CustomCardDescription.displayName = 'CustomCardDescription';
155
+
156
+ /**
157
+ * CustomCardContent - Main content area of the card
158
+ *
159
+ * Container for the primary card content with appropriate padding.
160
+ * Top padding is removed to flow naturally after CustomCardHeader.
161
+ *
162
+ * @property {boolean} [asChild] - When true, merges props into immediate child
163
+ * @property {string} [className] - Additional Tailwind classes
164
+ */
165
+ const CustomCardContent = /*#__PURE__*/React.forwardRef(({
166
+ className,
167
+ asChild = false,
168
+ ...props
169
+ }, ref) => {
170
+ const Component = asChild ? Slot.View : View;
171
+ return /*#__PURE__*/_jsx(Component, {
172
+ className: cn('p-6 pt-0', className),
173
+ ref: ref,
174
+ ...props
175
+ });
176
+ });
177
+ CustomCardContent.displayName = 'CustomCardContent';
178
+
179
+ /**
180
+ * CustomCardFooter - Footer area for actions or additional info
181
+ *
182
+ * Typically contains buttons or other interactive elements.
183
+ * Arranged as a row with centered items.
184
+ *
185
+ * @property {boolean} [asChild] - When true, merges props into immediate child
186
+ * @property {string} [className] - Additional Tailwind classes
187
+ */
188
+ const CustomCardFooter = /*#__PURE__*/React.forwardRef(({
189
+ className,
190
+ asChild = false,
191
+ ...props
192
+ }, ref) => {
193
+ const Component = asChild ? Slot.View : View;
194
+ return /*#__PURE__*/_jsx(Component, {
195
+ className: cn('flex flex-row items-center p-6 pt-0', className),
196
+ ref: ref,
197
+ ...props
198
+ });
199
+ });
200
+ CustomCardFooter.displayName = 'CustomCardFooter';
201
+ export { CustomCard, CustomCardContent, CustomCardDescription, CustomCardFooter, CustomCardHeader, CustomCardTitle };
202
+ //# sourceMappingURL=Custom-Card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Slot","React","View","useColorScheme","SquircleView","cn","TextClassContext","jsx","_jsx","CustomCard","forwardRef","className","_className","asChild","cornerRadius","cornerSmoothing","children","props","ref","colorScheme","isDark","Component","squircleParams","fillColor","strokeColor","strokeWidth","displayName","CustomCardHeader","CustomCardTitle","Provider","value","CustomCardDescription","CustomCardContent","CustomCardFooter"],"sourceRoot":"../../../../src","sources":["components/ui/Custom-Card.tsx"],"mappings":"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","ignoreList":[]}