@amazecontinuityprojects/amazeui 1.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.
- package/LICENSE +674 -0
- package/README.md +2 -0
- package/dist/index.d.mts +166 -0
- package/dist/index.d.ts +166 -0
- package/dist/index.js +682 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +605 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +60 -0
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,605 @@
|
|
|
1
|
+
// src/components/ui/button.tsx
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { Pressable, Text } from "react-native";
|
|
4
|
+
import { cva } from "class-variance-authority";
|
|
5
|
+
|
|
6
|
+
// src/lib/utils.ts
|
|
7
|
+
import { clsx } from "clsx";
|
|
8
|
+
import { twMerge } from "tailwind-merge";
|
|
9
|
+
function cn(...inputs) {
|
|
10
|
+
return twMerge(clsx(inputs));
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// src/components/ui/button.tsx
|
|
14
|
+
import { jsx } from "react/jsx-runtime";
|
|
15
|
+
var buttonVariants = cva(
|
|
16
|
+
"flex flex-row items-center justify-center gap-2 rounded-md font-medium transition-all",
|
|
17
|
+
{
|
|
18
|
+
variants: {
|
|
19
|
+
variant: {
|
|
20
|
+
default: "bg-primary hover:bg-primary/90",
|
|
21
|
+
destructive: "bg-danger hover:bg-danger/90",
|
|
22
|
+
outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
|
|
23
|
+
secondary: "bg-secondary hover:bg-secondary/80",
|
|
24
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
25
|
+
link: "underline-offset-4 hover:underline"
|
|
26
|
+
},
|
|
27
|
+
size: {
|
|
28
|
+
default: "h-9 px-4 py-2",
|
|
29
|
+
sm: "h-8 rounded-md px-3",
|
|
30
|
+
lg: "h-10 rounded-md px-6",
|
|
31
|
+
icon: "h-9 w-9"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
defaultVariants: {
|
|
35
|
+
variant: "default",
|
|
36
|
+
size: "default"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
var buttonTextVariants = cva(
|
|
41
|
+
"font-medium",
|
|
42
|
+
{
|
|
43
|
+
variants: {
|
|
44
|
+
variant: {
|
|
45
|
+
default: "text-primary-foreground",
|
|
46
|
+
destructive: "text-white",
|
|
47
|
+
outline: "text-foreground",
|
|
48
|
+
secondary: "text-secondary-foreground",
|
|
49
|
+
ghost: "text-foreground",
|
|
50
|
+
link: "text-primary"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
defaultVariants: {
|
|
54
|
+
variant: "default"
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
var Button = React.forwardRef(
|
|
59
|
+
({ className, variant, size, children, textClassName, ...props }, ref) => {
|
|
60
|
+
return /* @__PURE__ */ jsx(
|
|
61
|
+
Pressable,
|
|
62
|
+
{
|
|
63
|
+
ref,
|
|
64
|
+
...{ className: cn(buttonVariants({ variant, size }), className) },
|
|
65
|
+
...props,
|
|
66
|
+
children: typeof children === "string" ? /* @__PURE__ */ jsx(Text, { ...{ className: cn(buttonTextVariants({ variant }), textClassName) }, children }) : children
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
);
|
|
71
|
+
Button.displayName = "Button";
|
|
72
|
+
|
|
73
|
+
// src/components/ui/card.tsx
|
|
74
|
+
import * as React2 from "react";
|
|
75
|
+
import { View, Text as Text2 } from "react-native";
|
|
76
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
77
|
+
var Card = React2.forwardRef(
|
|
78
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
79
|
+
View,
|
|
80
|
+
{
|
|
81
|
+
ref,
|
|
82
|
+
...{ className: cn("rounded-xl border border-border bg-card shadow-sm", className) },
|
|
83
|
+
...props
|
|
84
|
+
}
|
|
85
|
+
)
|
|
86
|
+
);
|
|
87
|
+
Card.displayName = "Card";
|
|
88
|
+
var CardHeader = React2.forwardRef(
|
|
89
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
90
|
+
View,
|
|
91
|
+
{
|
|
92
|
+
ref,
|
|
93
|
+
...{ className: cn("flex flex-col space-y-1.5 p-6", className) },
|
|
94
|
+
...props
|
|
95
|
+
}
|
|
96
|
+
)
|
|
97
|
+
);
|
|
98
|
+
CardHeader.displayName = "CardHeader";
|
|
99
|
+
var CardTitle = React2.forwardRef(
|
|
100
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
101
|
+
Text2,
|
|
102
|
+
{
|
|
103
|
+
ref,
|
|
104
|
+
...{ className: cn("font-semibold text-lg leading-none tracking-tight text-foreground", className) },
|
|
105
|
+
...props
|
|
106
|
+
}
|
|
107
|
+
)
|
|
108
|
+
);
|
|
109
|
+
CardTitle.displayName = "CardTitle";
|
|
110
|
+
var CardDescription = React2.forwardRef(
|
|
111
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
112
|
+
Text2,
|
|
113
|
+
{
|
|
114
|
+
ref,
|
|
115
|
+
...{ className: cn("text-sm text-muted-foreground", className) },
|
|
116
|
+
...props
|
|
117
|
+
}
|
|
118
|
+
)
|
|
119
|
+
);
|
|
120
|
+
CardDescription.displayName = "CardDescription";
|
|
121
|
+
var CardContent = React2.forwardRef(
|
|
122
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx2(View, { ref, ...{ className: cn("p-6 pt-0", className) }, ...props })
|
|
123
|
+
);
|
|
124
|
+
CardContent.displayName = "CardContent";
|
|
125
|
+
var CardFooter = React2.forwardRef(
|
|
126
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
|
|
127
|
+
View,
|
|
128
|
+
{
|
|
129
|
+
ref,
|
|
130
|
+
...{ className: cn("flex flex-row items-center p-6 pt-0", className) },
|
|
131
|
+
...props
|
|
132
|
+
}
|
|
133
|
+
)
|
|
134
|
+
);
|
|
135
|
+
CardFooter.displayName = "CardFooter";
|
|
136
|
+
|
|
137
|
+
// src/components/ui/input.tsx
|
|
138
|
+
import * as React3 from "react";
|
|
139
|
+
import { TextInput } from "react-native";
|
|
140
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
141
|
+
var Input = React3.forwardRef(
|
|
142
|
+
({ className, ...props }, ref) => {
|
|
143
|
+
return /* @__PURE__ */ jsx3(
|
|
144
|
+
TextInput,
|
|
145
|
+
{
|
|
146
|
+
ref,
|
|
147
|
+
placeholderTextColor: "#a3a3a3",
|
|
148
|
+
...{ className: cn("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm text-foreground", className) },
|
|
149
|
+
...props
|
|
150
|
+
}
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
);
|
|
154
|
+
Input.displayName = "Input";
|
|
155
|
+
|
|
156
|
+
// src/components/ui/label.tsx
|
|
157
|
+
import * as React4 from "react";
|
|
158
|
+
import { Text as Text3 } from "react-native";
|
|
159
|
+
import { cva as cva2 } from "class-variance-authority";
|
|
160
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
161
|
+
var labelVariants = cva2(
|
|
162
|
+
"text-sm font-medium leading-none text-foreground peer-disabled:opacity-70",
|
|
163
|
+
{
|
|
164
|
+
variants: {},
|
|
165
|
+
defaultVariants: {}
|
|
166
|
+
}
|
|
167
|
+
);
|
|
168
|
+
var Label = React4.forwardRef(
|
|
169
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
|
|
170
|
+
Text3,
|
|
171
|
+
{
|
|
172
|
+
ref,
|
|
173
|
+
...{ className: cn(labelVariants(), className) },
|
|
174
|
+
...props
|
|
175
|
+
}
|
|
176
|
+
)
|
|
177
|
+
);
|
|
178
|
+
Label.displayName = "Label";
|
|
179
|
+
|
|
180
|
+
// src/components/ui/skeleton.tsx
|
|
181
|
+
import { View as View2 } from "react-native";
|
|
182
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
183
|
+
function Skeleton({ className, ...props }) {
|
|
184
|
+
return /* @__PURE__ */ jsx5(
|
|
185
|
+
View2,
|
|
186
|
+
{
|
|
187
|
+
...{ className: cn("animate-pulse rounded-md bg-primary/10", className) },
|
|
188
|
+
...props
|
|
189
|
+
}
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// src/components/ui/switch.tsx
|
|
194
|
+
import * as React5 from "react";
|
|
195
|
+
import { Switch as NativeSwitch } from "react-native";
|
|
196
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
197
|
+
var Switch = React5.forwardRef(
|
|
198
|
+
({ className, ...props }, ref) => {
|
|
199
|
+
return /* @__PURE__ */ jsx6(
|
|
200
|
+
NativeSwitch,
|
|
201
|
+
{
|
|
202
|
+
ref,
|
|
203
|
+
...props
|
|
204
|
+
}
|
|
205
|
+
);
|
|
206
|
+
}
|
|
207
|
+
);
|
|
208
|
+
Switch.displayName = "Switch";
|
|
209
|
+
|
|
210
|
+
// src/components/ui/progress.tsx
|
|
211
|
+
import * as React6 from "react";
|
|
212
|
+
import { View as View3 } from "react-native";
|
|
213
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
214
|
+
var Progress = React6.forwardRef(
|
|
215
|
+
({ className, value = 0, ...props }, ref) => {
|
|
216
|
+
const boundedValue = Math.min(100, Math.max(0, value || 0));
|
|
217
|
+
return /* @__PURE__ */ jsx7(
|
|
218
|
+
View3,
|
|
219
|
+
{
|
|
220
|
+
ref,
|
|
221
|
+
...{ className: cn("relative h-2 w-full overflow-hidden rounded-full bg-primary/20", className) },
|
|
222
|
+
...props,
|
|
223
|
+
children: /* @__PURE__ */ jsx7(
|
|
224
|
+
View3,
|
|
225
|
+
{
|
|
226
|
+
...{ className: "h-full bg-primary flex-1 transition-all" },
|
|
227
|
+
style: { width: `${boundedValue}%` }
|
|
228
|
+
}
|
|
229
|
+
)
|
|
230
|
+
}
|
|
231
|
+
);
|
|
232
|
+
}
|
|
233
|
+
);
|
|
234
|
+
Progress.displayName = "Progress";
|
|
235
|
+
|
|
236
|
+
// src/components/ui/tabs.tsx
|
|
237
|
+
import * as React7 from "react";
|
|
238
|
+
import { View as View4, Pressable as Pressable2, Text as Text4 } from "react-native";
|
|
239
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
240
|
+
var TabsContext = React7.createContext(null);
|
|
241
|
+
function Tabs({ value: controlledValue, defaultValue, onValueChange, className, children, ...props }) {
|
|
242
|
+
const [uncontrolledValue, setUncontrolledValue] = React7.useState(defaultValue || "");
|
|
243
|
+
const value = controlledValue !== void 0 ? controlledValue : uncontrolledValue;
|
|
244
|
+
const handleValueChange = React7.useCallback(
|
|
245
|
+
(newValue) => {
|
|
246
|
+
setUncontrolledValue(newValue);
|
|
247
|
+
onValueChange == null ? void 0 : onValueChange(newValue);
|
|
248
|
+
},
|
|
249
|
+
[onValueChange]
|
|
250
|
+
);
|
|
251
|
+
return /* @__PURE__ */ jsx8(TabsContext.Provider, { value: { value, onValueChange: handleValueChange }, children: /* @__PURE__ */ jsx8(View4, { ...{ className }, ...props, children }) });
|
|
252
|
+
}
|
|
253
|
+
function useTabsContext() {
|
|
254
|
+
const context = React7.useContext(TabsContext);
|
|
255
|
+
if (!context) {
|
|
256
|
+
throw new Error("Tabs compound components must be rendered within the Tabs component");
|
|
257
|
+
}
|
|
258
|
+
return context;
|
|
259
|
+
}
|
|
260
|
+
var TabsList = React7.forwardRef(
|
|
261
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
|
|
262
|
+
View4,
|
|
263
|
+
{
|
|
264
|
+
ref,
|
|
265
|
+
...{ className: cn("flex-row items-center justify-center rounded-md bg-muted p-1 text-muted-foreground", className) },
|
|
266
|
+
...props
|
|
267
|
+
}
|
|
268
|
+
)
|
|
269
|
+
);
|
|
270
|
+
TabsList.displayName = "TabsList";
|
|
271
|
+
var TabsTrigger = React7.forwardRef(
|
|
272
|
+
({ className, textClassName, value, children, ...props }, ref) => {
|
|
273
|
+
const context = useTabsContext();
|
|
274
|
+
const isSelected = context.value === value;
|
|
275
|
+
return /* @__PURE__ */ jsx8(
|
|
276
|
+
Pressable2,
|
|
277
|
+
{
|
|
278
|
+
ref,
|
|
279
|
+
onPress: () => context.onValueChange(value),
|
|
280
|
+
...{ className: cn(
|
|
281
|
+
"flex-1 items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5",
|
|
282
|
+
isSelected ? "bg-background shadow-sm" : "bg-transparent",
|
|
283
|
+
className
|
|
284
|
+
) },
|
|
285
|
+
...props,
|
|
286
|
+
children: typeof children === "string" ? /* @__PURE__ */ jsx8(Text4, { ...{ className: cn("text-sm font-medium transition-all", isSelected ? "text-foreground" : "text-muted-foreground", textClassName) }, children }) : children
|
|
287
|
+
}
|
|
288
|
+
);
|
|
289
|
+
}
|
|
290
|
+
);
|
|
291
|
+
TabsTrigger.displayName = "TabsTrigger";
|
|
292
|
+
var TabsContent = React7.forwardRef(
|
|
293
|
+
({ className, value, children, ...props }, ref) => {
|
|
294
|
+
const context = useTabsContext();
|
|
295
|
+
if (context.value !== value) {
|
|
296
|
+
return null;
|
|
297
|
+
}
|
|
298
|
+
return /* @__PURE__ */ jsx8(
|
|
299
|
+
View4,
|
|
300
|
+
{
|
|
301
|
+
ref,
|
|
302
|
+
...{ className: cn("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", className) },
|
|
303
|
+
...props,
|
|
304
|
+
children
|
|
305
|
+
}
|
|
306
|
+
);
|
|
307
|
+
}
|
|
308
|
+
);
|
|
309
|
+
TabsContent.displayName = "TabsContent";
|
|
310
|
+
|
|
311
|
+
// src/components/ui/table.tsx
|
|
312
|
+
import * as React8 from "react";
|
|
313
|
+
import { View as View5, Text as Text5 } from "react-native";
|
|
314
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
315
|
+
var Table = React8.forwardRef(
|
|
316
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx9(View5, { ...{ className: "w-full overflow-hidden" }, children: /* @__PURE__ */ jsx9(
|
|
317
|
+
View5,
|
|
318
|
+
{
|
|
319
|
+
ref,
|
|
320
|
+
...{ className: cn("w-full text-sm", className) },
|
|
321
|
+
...props
|
|
322
|
+
}
|
|
323
|
+
) })
|
|
324
|
+
);
|
|
325
|
+
Table.displayName = "Table";
|
|
326
|
+
var TableHeader = React8.forwardRef(
|
|
327
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx9(View5, { ref, ...{ className: cn("flex flex-row items-center border-b border-border bg-muted/50", className) }, ...props })
|
|
328
|
+
);
|
|
329
|
+
TableHeader.displayName = "TableHeader";
|
|
330
|
+
var TableBody = React8.forwardRef(
|
|
331
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
332
|
+
View5,
|
|
333
|
+
{
|
|
334
|
+
ref,
|
|
335
|
+
...{ className: cn("flex flex-col [&_>_view:last-child]:border-0", className) },
|
|
336
|
+
...props
|
|
337
|
+
}
|
|
338
|
+
)
|
|
339
|
+
);
|
|
340
|
+
TableBody.displayName = "TableBody";
|
|
341
|
+
var TableRow = React8.forwardRef(
|
|
342
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
343
|
+
View5,
|
|
344
|
+
{
|
|
345
|
+
ref,
|
|
346
|
+
...{ className: cn(
|
|
347
|
+
"flex flex-row items-center border-b border-border transition-colors hover:bg-muted/50",
|
|
348
|
+
className
|
|
349
|
+
) },
|
|
350
|
+
...props
|
|
351
|
+
}
|
|
352
|
+
)
|
|
353
|
+
);
|
|
354
|
+
TableRow.displayName = "TableRow";
|
|
355
|
+
var TableHead = React8.forwardRef(
|
|
356
|
+
({ className, children, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
357
|
+
View5,
|
|
358
|
+
{
|
|
359
|
+
ref,
|
|
360
|
+
...{ className: cn(
|
|
361
|
+
"h-12 px-4 flex justify-center text-left align-middle font-medium text-muted-foreground",
|
|
362
|
+
className
|
|
363
|
+
) },
|
|
364
|
+
...props,
|
|
365
|
+
children: typeof children === "string" ? /* @__PURE__ */ jsx9(Text5, { ...{ className: "font-semibold text-muted-foreground text-sm" }, children }) : children
|
|
366
|
+
}
|
|
367
|
+
)
|
|
368
|
+
);
|
|
369
|
+
TableHead.displayName = "TableHead";
|
|
370
|
+
var TableCell = React8.forwardRef(
|
|
371
|
+
({ className, children, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
372
|
+
View5,
|
|
373
|
+
{
|
|
374
|
+
ref,
|
|
375
|
+
...{ className: cn("p-4 align-middle", className) },
|
|
376
|
+
...props,
|
|
377
|
+
children: typeof children === "string" ? /* @__PURE__ */ jsx9(Text5, { ...{ className: "text-foreground text-sm" }, children }) : children
|
|
378
|
+
}
|
|
379
|
+
)
|
|
380
|
+
);
|
|
381
|
+
TableCell.displayName = "TableCell";
|
|
382
|
+
|
|
383
|
+
// src/components/ui/dialog.tsx
|
|
384
|
+
import * as React9 from "react";
|
|
385
|
+
import { Modal, View as View6, Text as Text6, Pressable as Pressable3 } from "react-native";
|
|
386
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
387
|
+
var DialogContext = React9.createContext(null);
|
|
388
|
+
function useDialog() {
|
|
389
|
+
const context = React9.useContext(DialogContext);
|
|
390
|
+
if (!context) throw new Error("Dialog components must be used within a Dialog");
|
|
391
|
+
return context;
|
|
392
|
+
}
|
|
393
|
+
function Dialog({ open = false, onOpenChange, children, ...props }) {
|
|
394
|
+
const [isOpen, setIsOpen] = React9.useState(open);
|
|
395
|
+
const isControlled = onOpenChange !== void 0;
|
|
396
|
+
const currentOpen = isControlled ? open : isOpen;
|
|
397
|
+
const setCurrentOpen = React9.useCallback((val) => {
|
|
398
|
+
if (!isControlled) setIsOpen(val);
|
|
399
|
+
onOpenChange == null ? void 0 : onOpenChange(val);
|
|
400
|
+
}, [isControlled, onOpenChange]);
|
|
401
|
+
return /* @__PURE__ */ jsx10(DialogContext.Provider, { value: { open: currentOpen, onOpenChange: setCurrentOpen }, children });
|
|
402
|
+
}
|
|
403
|
+
var DialogTrigger = React9.forwardRef(
|
|
404
|
+
({ onPress, children, ...props }, ref) => {
|
|
405
|
+
const { onOpenChange } = useDialog();
|
|
406
|
+
return /* @__PURE__ */ jsx10(Pressable3, { ref, onPress: (e) => {
|
|
407
|
+
onOpenChange(true);
|
|
408
|
+
onPress == null ? void 0 : onPress(e);
|
|
409
|
+
}, ...props, children });
|
|
410
|
+
}
|
|
411
|
+
);
|
|
412
|
+
DialogTrigger.displayName = "DialogTrigger";
|
|
413
|
+
var DialogContent = React9.forwardRef(
|
|
414
|
+
({ className, children, ...props }, ref) => {
|
|
415
|
+
const { open, onOpenChange } = useDialog();
|
|
416
|
+
return /* @__PURE__ */ jsx10(
|
|
417
|
+
Modal,
|
|
418
|
+
{
|
|
419
|
+
visible: open,
|
|
420
|
+
transparent: true,
|
|
421
|
+
animationType: "fade",
|
|
422
|
+
onRequestClose: () => onOpenChange(false),
|
|
423
|
+
children: /* @__PURE__ */ jsx10(View6, { ...{ className: "flex-1 items-center justify-center bg-black/80" }, children: /* @__PURE__ */ jsx10(
|
|
424
|
+
View6,
|
|
425
|
+
{
|
|
426
|
+
ref,
|
|
427
|
+
...{ className: cn("w-full max-w-lg rounded-xl border border-border bg-background p-6 shadow-lg sm:rounded-[1rem]", className) },
|
|
428
|
+
...props,
|
|
429
|
+
children
|
|
430
|
+
}
|
|
431
|
+
) })
|
|
432
|
+
}
|
|
433
|
+
);
|
|
434
|
+
}
|
|
435
|
+
);
|
|
436
|
+
DialogContent.displayName = "DialogContent";
|
|
437
|
+
var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx10(View6, { ...{ className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className) }, ...props });
|
|
438
|
+
DialogHeader.displayName = "DialogHeader";
|
|
439
|
+
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx10(View6, { ...{ className: cn("flex flex-row flex-wrap items-center justify-end space-x-2 mt-4", className) }, ...props });
|
|
440
|
+
DialogFooter.displayName = "DialogFooter";
|
|
441
|
+
var DialogTitle = React9.forwardRef(
|
|
442
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx10(Text6, { ref, ...{ className: cn("text-lg font-semibold leading-none tracking-tight text-foreground", className) }, ...props })
|
|
443
|
+
);
|
|
444
|
+
DialogTitle.displayName = "DialogTitle";
|
|
445
|
+
var DialogDescription = React9.forwardRef(
|
|
446
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx10(Text6, { ref, ...{ className: cn("text-sm text-muted-foreground", className) }, ...props })
|
|
447
|
+
);
|
|
448
|
+
DialogDescription.displayName = "DialogDescription";
|
|
449
|
+
|
|
450
|
+
// src/components/ui/dropdown-menu.tsx
|
|
451
|
+
import * as React10 from "react";
|
|
452
|
+
import { Modal as Modal2, View as View7, Text as Text7, Pressable as Pressable4 } from "react-native";
|
|
453
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
454
|
+
var DropdownContext = React10.createContext(null);
|
|
455
|
+
function DropdownMenu({ children }) {
|
|
456
|
+
const [open, setOpen] = React10.useState(false);
|
|
457
|
+
return /* @__PURE__ */ jsx11(DropdownContext.Provider, { value: { open, setOpen }, children: /* @__PURE__ */ jsx11(View7, { ...{ className: "relative" }, children }) });
|
|
458
|
+
}
|
|
459
|
+
var DropdownMenuTrigger = React10.forwardRef(
|
|
460
|
+
({ onPress, children, ...props }, ref) => {
|
|
461
|
+
const context = React10.useContext(DropdownContext);
|
|
462
|
+
return /* @__PURE__ */ jsx11(Pressable4, { ref, onPress: (e) => {
|
|
463
|
+
context == null ? void 0 : context.setOpen(!context.open);
|
|
464
|
+
onPress == null ? void 0 : onPress(e);
|
|
465
|
+
}, ...props, children });
|
|
466
|
+
}
|
|
467
|
+
);
|
|
468
|
+
DropdownMenuTrigger.displayName = "DropdownMenuTrigger";
|
|
469
|
+
var DropdownMenuContent = React10.forwardRef(
|
|
470
|
+
({ className, children, ...props }, ref) => {
|
|
471
|
+
const context = React10.useContext(DropdownContext);
|
|
472
|
+
if (!(context == null ? void 0 : context.open)) return null;
|
|
473
|
+
return /* @__PURE__ */ jsx11(Modal2, { visible: context.open, transparent: true, animationType: "fade", onRequestClose: () => context.setOpen(false), children: /* @__PURE__ */ jsx11(
|
|
474
|
+
Pressable4,
|
|
475
|
+
{
|
|
476
|
+
onPress: () => context.setOpen(false),
|
|
477
|
+
...{ className: "flex-1 bg-black/10 justify-end sm:justify-center items-center" },
|
|
478
|
+
children: /* @__PURE__ */ jsx11(Pressable4, { onPress: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx11(
|
|
479
|
+
View7,
|
|
480
|
+
{
|
|
481
|
+
ref,
|
|
482
|
+
...{ className: cn("z-50 min-w-[8rem] overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 zoom-in-95", className) },
|
|
483
|
+
...props,
|
|
484
|
+
children
|
|
485
|
+
}
|
|
486
|
+
) })
|
|
487
|
+
}
|
|
488
|
+
) });
|
|
489
|
+
}
|
|
490
|
+
);
|
|
491
|
+
DropdownMenuContent.displayName = "DropdownMenuContent";
|
|
492
|
+
var DropdownMenuItem = React10.forwardRef(
|
|
493
|
+
({ className, textClassName, onPress, children, ...props }, ref) => {
|
|
494
|
+
const context = React10.useContext(DropdownContext);
|
|
495
|
+
return /* @__PURE__ */ jsx11(
|
|
496
|
+
Pressable4,
|
|
497
|
+
{
|
|
498
|
+
ref,
|
|
499
|
+
onPress: (e) => {
|
|
500
|
+
context == null ? void 0 : context.setOpen(false);
|
|
501
|
+
onPress == null ? void 0 : onPress(e);
|
|
502
|
+
},
|
|
503
|
+
...{ className: cn("relative flex-row items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent focus:bg-accent", className) },
|
|
504
|
+
...props,
|
|
505
|
+
children: typeof children === "string" ? /* @__PURE__ */ jsx11(Text7, { ...{ className: cn("text-foreground", textClassName) }, children }) : children
|
|
506
|
+
}
|
|
507
|
+
);
|
|
508
|
+
}
|
|
509
|
+
);
|
|
510
|
+
DropdownMenuItem.displayName = "DropdownMenuItem";
|
|
511
|
+
var DropdownMenuLabel = React10.forwardRef(
|
|
512
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx11(Text7, { ref, ...{ className: cn("px-2 py-1.5 text-sm font-semibold text-foreground", className) }, ...props })
|
|
513
|
+
);
|
|
514
|
+
DropdownMenuLabel.displayName = "DropdownMenuLabel";
|
|
515
|
+
var DropdownMenuSeparator = React10.forwardRef(
|
|
516
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx11(View7, { ref, ...{ className: cn("-mx-1 my-1 h-px bg-muted", className) }, ...props })
|
|
517
|
+
);
|
|
518
|
+
DropdownMenuSeparator.displayName = "DropdownMenuSeparator";
|
|
519
|
+
|
|
520
|
+
// src/components/ui/popover.tsx
|
|
521
|
+
import * as React11 from "react";
|
|
522
|
+
import { Modal as Modal3, View as View8, Pressable as Pressable5 } from "react-native";
|
|
523
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
524
|
+
var PopoverContext = React11.createContext(null);
|
|
525
|
+
function Popover({ children }) {
|
|
526
|
+
const [open, setOpen] = React11.useState(false);
|
|
527
|
+
return /* @__PURE__ */ jsx12(PopoverContext.Provider, { value: { open, setOpen }, children: /* @__PURE__ */ jsx12(View8, { ...{ className: "relative" }, children }) });
|
|
528
|
+
}
|
|
529
|
+
var PopoverTrigger = React11.forwardRef(
|
|
530
|
+
({ onPress, children, ...props }, ref) => {
|
|
531
|
+
const context = React11.useContext(PopoverContext);
|
|
532
|
+
return /* @__PURE__ */ jsx12(Pressable5, { ref, onPress: (e) => {
|
|
533
|
+
context == null ? void 0 : context.setOpen(!context.open);
|
|
534
|
+
onPress == null ? void 0 : onPress(e);
|
|
535
|
+
}, ...props, children });
|
|
536
|
+
}
|
|
537
|
+
);
|
|
538
|
+
PopoverTrigger.displayName = "PopoverTrigger";
|
|
539
|
+
var PopoverContent = React11.forwardRef(
|
|
540
|
+
({ className, children, ...props }, ref) => {
|
|
541
|
+
const context = React11.useContext(PopoverContext);
|
|
542
|
+
if (!(context == null ? void 0 : context.open)) return null;
|
|
543
|
+
return /* @__PURE__ */ jsx12(Modal3, { visible: context.open, transparent: true, animationType: "fade", onRequestClose: () => context.setOpen(false), children: /* @__PURE__ */ jsx12(
|
|
544
|
+
Pressable5,
|
|
545
|
+
{
|
|
546
|
+
onPress: () => context.setOpen(false),
|
|
547
|
+
...{ className: "flex-1 bg-transparent justify-center items-center" },
|
|
548
|
+
children: /* @__PURE__ */ jsx12(Pressable5, { onPress: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx12(
|
|
549
|
+
View8,
|
|
550
|
+
{
|
|
551
|
+
ref,
|
|
552
|
+
...{ className: cn("z-50 w-72 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-none", className) },
|
|
553
|
+
...props,
|
|
554
|
+
children
|
|
555
|
+
}
|
|
556
|
+
) })
|
|
557
|
+
}
|
|
558
|
+
) });
|
|
559
|
+
}
|
|
560
|
+
);
|
|
561
|
+
PopoverContent.displayName = "PopoverContent";
|
|
562
|
+
export {
|
|
563
|
+
Button,
|
|
564
|
+
Card,
|
|
565
|
+
CardContent,
|
|
566
|
+
CardDescription,
|
|
567
|
+
CardFooter,
|
|
568
|
+
CardHeader,
|
|
569
|
+
CardTitle,
|
|
570
|
+
Dialog,
|
|
571
|
+
DialogContent,
|
|
572
|
+
DialogDescription,
|
|
573
|
+
DialogFooter,
|
|
574
|
+
DialogHeader,
|
|
575
|
+
DialogTitle,
|
|
576
|
+
DialogTrigger,
|
|
577
|
+
DropdownMenu,
|
|
578
|
+
DropdownMenuContent,
|
|
579
|
+
DropdownMenuItem,
|
|
580
|
+
DropdownMenuLabel,
|
|
581
|
+
DropdownMenuSeparator,
|
|
582
|
+
DropdownMenuTrigger,
|
|
583
|
+
Input,
|
|
584
|
+
Label,
|
|
585
|
+
Popover,
|
|
586
|
+
PopoverContent,
|
|
587
|
+
PopoverTrigger,
|
|
588
|
+
Progress,
|
|
589
|
+
Skeleton,
|
|
590
|
+
Switch,
|
|
591
|
+
Table,
|
|
592
|
+
TableBody,
|
|
593
|
+
TableCell,
|
|
594
|
+
TableHead,
|
|
595
|
+
TableHeader,
|
|
596
|
+
TableRow,
|
|
597
|
+
Tabs,
|
|
598
|
+
TabsContent,
|
|
599
|
+
TabsList,
|
|
600
|
+
TabsTrigger,
|
|
601
|
+
buttonTextVariants,
|
|
602
|
+
buttonVariants,
|
|
603
|
+
cn
|
|
604
|
+
};
|
|
605
|
+
//# sourceMappingURL=index.mjs.map
|