@blinkdotnew/mobile-ui 2.0.0-alpha.12 → 2.0.0-alpha.14
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/dist/index.d.mts +130 -3
- package/dist/index.d.ts +130 -3
- package/dist/index.js +747 -115
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +671 -47
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -2
package/dist/index.js
CHANGED
|
@@ -20,179 +20,187 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/index.ts
|
|
21
21
|
var index_exports = {};
|
|
22
22
|
__export(index_exports, {
|
|
23
|
-
Accordion: () =>
|
|
23
|
+
Accordion: () => import_tamagui67.Accordion,
|
|
24
24
|
ActionSheet: () => ActionSheet,
|
|
25
|
-
Adapt: () =>
|
|
26
|
-
AlertDialog: () =>
|
|
27
|
-
Anchor: () =>
|
|
28
|
-
AnimatePresence: () =>
|
|
25
|
+
Adapt: () => import_tamagui67.Adapt,
|
|
26
|
+
AlertDialog: () => import_tamagui67.AlertDialog,
|
|
27
|
+
Anchor: () => import_tamagui67.Anchor,
|
|
28
|
+
AnimatePresence: () => import_tamagui67.AnimatePresence,
|
|
29
29
|
AppHeader: () => AppHeader,
|
|
30
|
-
Article: () =>
|
|
31
|
-
Aside: () =>
|
|
32
|
-
Avatar: () =>
|
|
30
|
+
Article: () => import_tamagui67.Article,
|
|
31
|
+
Aside: () => import_tamagui67.Aside,
|
|
32
|
+
Avatar: () => import_tamagui67.Avatar,
|
|
33
33
|
AvatarGroup: () => AvatarGroup,
|
|
34
34
|
Badge: () => Badge,
|
|
35
35
|
BlinkAccordion: () => BlinkAccordion,
|
|
36
36
|
BlinkAvatar: () => Avatar,
|
|
37
37
|
BlinkButton: () => Button,
|
|
38
38
|
BlinkCard: () => Card,
|
|
39
|
+
BlinkDialog: () => BlinkDialog,
|
|
39
40
|
BlinkInput: () => Input,
|
|
40
|
-
|
|
41
|
+
BlinkPopover: () => BlinkPopover,
|
|
42
|
+
BlinkProvider: () => import_tamagui67.TamaguiProvider,
|
|
43
|
+
BlinkSelect: () => BlinkSelect,
|
|
41
44
|
BlinkTabs: () => BlinkTabs,
|
|
42
45
|
BlinkText: () => BlinkText,
|
|
43
46
|
BlinkToastProvider: () => BlinkToastProvider,
|
|
44
47
|
BlinkToggleGroup: () => BlinkToggleGroup,
|
|
45
48
|
BlinkTooltip: () => BlinkTooltip,
|
|
46
49
|
BottomSheet: () => BottomSheet,
|
|
47
|
-
Button: () =>
|
|
48
|
-
Card: () =>
|
|
50
|
+
Button: () => import_tamagui67.Button,
|
|
51
|
+
Card: () => import_tamagui67.Card,
|
|
49
52
|
Carousel: () => Carousel,
|
|
50
53
|
ChatBubble: () => ChatBubble,
|
|
51
|
-
Checkbox: () =>
|
|
54
|
+
Checkbox: () => import_tamagui67.Checkbox,
|
|
52
55
|
Chip: () => Chip,
|
|
53
56
|
ChipGroup: () => ChipGroup,
|
|
54
|
-
Circle: () =>
|
|
57
|
+
Circle: () => import_tamagui67.Circle,
|
|
55
58
|
ConfirmDialog: () => ConfirmDialog,
|
|
56
59
|
Container: () => Container,
|
|
57
60
|
CountdownBanner: () => CountdownBanner,
|
|
58
|
-
|
|
61
|
+
DataTable: () => DataTable,
|
|
62
|
+
DatePicker: () => DatePicker,
|
|
63
|
+
Dialog: () => import_tamagui67.Dialog,
|
|
59
64
|
DialogProvider: () => DialogProvider,
|
|
60
65
|
Divider: () => Divider,
|
|
61
66
|
EmptyState: () => EmptyState,
|
|
62
|
-
EnsureFlexed: () =>
|
|
63
|
-
|
|
67
|
+
EnsureFlexed: () => import_tamagui67.EnsureFlexed,
|
|
68
|
+
EventCard: () => EventCard,
|
|
69
|
+
Fieldset: () => import_tamagui67.Fieldset,
|
|
64
70
|
FloatingActionButton: () => FloatingActionButton,
|
|
65
|
-
Footer: () =>
|
|
66
|
-
Form: () =>
|
|
71
|
+
Footer: () => import_tamagui67.Footer,
|
|
72
|
+
Form: () => import_tamagui67.Form,
|
|
67
73
|
FormField: () => FormField,
|
|
68
|
-
Frame: () =>
|
|
74
|
+
Frame: () => import_tamagui67.Frame,
|
|
69
75
|
GlassCard: () => GlassCard,
|
|
70
76
|
Grid: () => Grid,
|
|
71
|
-
Group: () =>
|
|
72
|
-
H1: () =>
|
|
73
|
-
H2: () =>
|
|
74
|
-
H3: () =>
|
|
75
|
-
H4: () =>
|
|
76
|
-
H5: () =>
|
|
77
|
-
H6: () =>
|
|
78
|
-
Header: () =>
|
|
79
|
-
Heading: () =>
|
|
77
|
+
Group: () => import_tamagui67.Group,
|
|
78
|
+
H1: () => import_tamagui67.H1,
|
|
79
|
+
H2: () => import_tamagui67.H2,
|
|
80
|
+
H3: () => import_tamagui67.H3,
|
|
81
|
+
H4: () => import_tamagui67.H4,
|
|
82
|
+
H5: () => import_tamagui67.H5,
|
|
83
|
+
H6: () => import_tamagui67.H6,
|
|
84
|
+
Header: () => import_tamagui67.Header,
|
|
85
|
+
Heading: () => import_tamagui67.Heading,
|
|
80
86
|
ICONS: () => ICONS,
|
|
81
87
|
Icon: () => Icon,
|
|
82
88
|
Image: () => Image2,
|
|
83
|
-
Input: () =>
|
|
89
|
+
Input: () => import_tamagui67.Input,
|
|
84
90
|
KeyboardStickyFooter: () => KeyboardStickyFooter,
|
|
85
|
-
Label: () =>
|
|
91
|
+
Label: () => import_tamagui67.Label,
|
|
86
92
|
ListItem: () => ListItem,
|
|
87
93
|
LoginScreen: () => LoginScreen,
|
|
88
|
-
Main: () =>
|
|
94
|
+
Main: () => import_tamagui67.Main,
|
|
89
95
|
MediaCard: () => MediaCard,
|
|
90
|
-
Nav: () =>
|
|
96
|
+
Nav: () => import_tamagui67.Nav,
|
|
91
97
|
NotificationBanner: () => NotificationBanner,
|
|
92
98
|
OTPInput: () => OTPInput,
|
|
93
99
|
OnboardingCarousel: () => OnboardingCarousel,
|
|
94
100
|
PageContainer: () => PageContainer,
|
|
95
101
|
PageMainContainer: () => PageMainContainer,
|
|
96
|
-
Paragraph: () =>
|
|
102
|
+
Paragraph: () => import_tamagui67.Paragraph,
|
|
97
103
|
PasswordInput: () => PasswordInput,
|
|
98
104
|
PaywallScreen: () => PaywallScreen,
|
|
99
|
-
Popover: () =>
|
|
100
|
-
Portal: () =>
|
|
101
|
-
PortalHost: () =>
|
|
102
|
-
PortalItem: () =>
|
|
103
|
-
PortalProvider: () =>
|
|
105
|
+
Popover: () => import_tamagui67.Popover,
|
|
106
|
+
Portal: () => import_tamagui67.Portal,
|
|
107
|
+
PortalHost: () => import_tamagui67.PortalHost,
|
|
108
|
+
PortalItem: () => import_tamagui67.PortalItem,
|
|
109
|
+
PortalProvider: () => import_tamagui67.PortalProvider,
|
|
104
110
|
Pressable: () => Pressable,
|
|
105
111
|
PricingTable: () => PricingTable,
|
|
106
112
|
ProductCard: () => ProductCard,
|
|
107
113
|
ProfileHeader: () => ProfileHeader,
|
|
108
|
-
Progress: () =>
|
|
114
|
+
Progress: () => import_tamagui67.Progress,
|
|
109
115
|
ProgressSteps: () => ProgressSteps,
|
|
110
116
|
PullToRefresh: () => PullToRefresh,
|
|
111
|
-
RadioGroup: () =>
|
|
117
|
+
RadioGroup: () => import_tamagui67.RadioGroup,
|
|
112
118
|
SafeArea: () => SafeArea,
|
|
113
119
|
ScreenLayout: () => ScreenLayout,
|
|
114
|
-
ScrollView: () =>
|
|
120
|
+
ScrollView: () => import_tamagui67.ScrollView,
|
|
115
121
|
SearchBar: () => SearchBar,
|
|
116
122
|
Section: () => Section,
|
|
117
|
-
Select: () =>
|
|
123
|
+
Select: () => import_tamagui67.Select,
|
|
118
124
|
SepHeading: () => SepHeading,
|
|
119
|
-
Separator: () =>
|
|
125
|
+
Separator: () => import_tamagui67.Separator,
|
|
120
126
|
SettingsScreen: () => SettingsScreen,
|
|
121
|
-
Sheet: () =>
|
|
122
|
-
SizableStack: () =>
|
|
123
|
-
SizableText: () =>
|
|
127
|
+
Sheet: () => import_tamagui67.Sheet,
|
|
128
|
+
SizableStack: () => import_tamagui67.SizableStack,
|
|
129
|
+
SizableText: () => import_tamagui67.SizableText,
|
|
124
130
|
Skeleton: () => Skeleton,
|
|
125
|
-
Slider: () =>
|
|
126
|
-
Spacer: () =>
|
|
127
|
-
Spinner: () =>
|
|
128
|
-
Square: () =>
|
|
129
|
-
Stack: () =>
|
|
131
|
+
Slider: () => import_tamagui67.Slider,
|
|
132
|
+
Spacer: () => import_tamagui67.Spacer,
|
|
133
|
+
Spinner: () => import_tamagui67.Spinner,
|
|
134
|
+
Square: () => import_tamagui67.Square,
|
|
135
|
+
Stack: () => import_tamagui67.Stack,
|
|
136
|
+
StatusBadge: () => StatusBadge,
|
|
130
137
|
StepPageLayout: () => StepPageLayout,
|
|
131
138
|
SubHeading: () => SubHeading,
|
|
132
139
|
SwipeCards: () => SwipeCards,
|
|
133
140
|
SwipeableRow: () => SwipeableRow,
|
|
134
|
-
Switch: () =>
|
|
141
|
+
Switch: () => import_tamagui67.Switch,
|
|
135
142
|
TabBar: () => TabBar,
|
|
136
|
-
Tabs: () =>
|
|
137
|
-
TamaguiImage: () =>
|
|
138
|
-
TamaguiListItem: () =>
|
|
139
|
-
TamaguiProvider: () =>
|
|
143
|
+
Tabs: () => import_tamagui67.Tabs,
|
|
144
|
+
TamaguiImage: () => import_tamagui67.Image,
|
|
145
|
+
TamaguiListItem: () => import_tamagui67.ListItem,
|
|
146
|
+
TamaguiProvider: () => import_tamagui67.TamaguiProvider,
|
|
140
147
|
TestimonialCard: () => TestimonialCard,
|
|
141
|
-
Text: () =>
|
|
142
|
-
TextArea: () =>
|
|
143
|
-
Theme: () =>
|
|
144
|
-
ThemeableStack: () =>
|
|
145
|
-
ToggleGroup: () =>
|
|
146
|
-
Tooltip: () =>
|
|
147
|
-
TooltipSimple: () =>
|
|
148
|
-
Unspaced: () =>
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
148
|
+
Text: () => import_tamagui67.Text,
|
|
149
|
+
TextArea: () => import_tamagui67.TextArea,
|
|
150
|
+
Theme: () => import_tamagui67.Theme,
|
|
151
|
+
ThemeableStack: () => import_tamagui67.ThemeableStack,
|
|
152
|
+
ToggleGroup: () => import_tamagui67.ToggleGroup,
|
|
153
|
+
Tooltip: () => import_tamagui67.Tooltip,
|
|
154
|
+
TooltipSimple: () => import_tamagui67.TooltipSimple,
|
|
155
|
+
Unspaced: () => import_tamagui67.Unspaced,
|
|
156
|
+
UserPreferences: () => UserPreferences,
|
|
157
|
+
View: () => import_tamagui67.View,
|
|
158
|
+
VisuallyHidden: () => import_tamagui67.VisuallyHidden,
|
|
159
|
+
XGroup: () => import_tamagui67.XGroup,
|
|
160
|
+
XStack: () => import_tamagui67.XStack,
|
|
161
|
+
YGroup: () => import_tamagui67.YGroup,
|
|
162
|
+
YStack: () => import_tamagui67.YStack,
|
|
163
|
+
ZStack: () => import_tamagui67.ZStack,
|
|
164
|
+
addTheme: () => import_tamagui67.addTheme,
|
|
157
165
|
blinkConfig: () => blinkConfig,
|
|
158
|
-
composeEventHandlers: () =>
|
|
159
|
-
composeRefs: () =>
|
|
160
|
-
createFont: () =>
|
|
161
|
-
createMedia: () =>
|
|
162
|
-
createStyledContext: () =>
|
|
163
|
-
createTamagui: () =>
|
|
164
|
-
createTheme: () =>
|
|
165
|
-
createTokens: () =>
|
|
166
|
-
createVariable: () =>
|
|
166
|
+
composeEventHandlers: () => import_tamagui67.composeEventHandlers,
|
|
167
|
+
composeRefs: () => import_tamagui67.composeRefs,
|
|
168
|
+
createFont: () => import_tamagui67.createFont,
|
|
169
|
+
createMedia: () => import_tamagui67.createMedia,
|
|
170
|
+
createStyledContext: () => import_tamagui67.createStyledContext,
|
|
171
|
+
createTamagui: () => import_tamagui67.createTamagui,
|
|
172
|
+
createTheme: () => import_tamagui67.createTheme,
|
|
173
|
+
createTokens: () => import_tamagui67.createTokens,
|
|
174
|
+
createVariable: () => import_tamagui67.createVariable,
|
|
167
175
|
dialogConfirm: () => dialogConfirm,
|
|
168
|
-
getConfig: () =>
|
|
169
|
-
getToken: () =>
|
|
170
|
-
getTokenValue: () =>
|
|
171
|
-
getTokens: () =>
|
|
172
|
-
isClient: () =>
|
|
173
|
-
isWeb: () =>
|
|
174
|
-
replaceTheme: () =>
|
|
176
|
+
getConfig: () => import_tamagui67.getConfig,
|
|
177
|
+
getToken: () => import_tamagui67.getToken,
|
|
178
|
+
getTokenValue: () => import_tamagui67.getTokenValue,
|
|
179
|
+
getTokens: () => import_tamagui67.getTokens,
|
|
180
|
+
isClient: () => import_tamagui67.isClient,
|
|
181
|
+
isWeb: () => import_tamagui67.isWeb,
|
|
182
|
+
replaceTheme: () => import_tamagui67.replaceTheme,
|
|
175
183
|
showError: () => showError,
|
|
176
|
-
styled: () =>
|
|
184
|
+
styled: () => import_tamagui67.styled,
|
|
177
185
|
tamaguiDefaultConfig: () => import_v52.defaultConfig,
|
|
178
186
|
toast: () => toast,
|
|
179
|
-
updateTheme: () =>
|
|
187
|
+
updateTheme: () => import_tamagui67.updateTheme,
|
|
180
188
|
useBlinkToast: () => useBlinkToast,
|
|
181
|
-
useComposedRefs: () =>
|
|
182
|
-
useControllableState: () =>
|
|
183
|
-
useDebounce: () =>
|
|
184
|
-
useDebounceValue: () =>
|
|
185
|
-
useDidFinishSSR: () =>
|
|
186
|
-
useEvent: () =>
|
|
187
|
-
useForceUpdate: () =>
|
|
188
|
-
useIsPresent: () =>
|
|
189
|
-
useIsomorphicLayoutEffect: () =>
|
|
190
|
-
useMedia: () =>
|
|
191
|
-
usePresence: () =>
|
|
192
|
-
useTheme: () =>
|
|
193
|
-
useThemeName: () =>
|
|
194
|
-
useWindowDimensions: () =>
|
|
195
|
-
withStaticProperties: () =>
|
|
189
|
+
useComposedRefs: () => import_tamagui67.useComposedRefs,
|
|
190
|
+
useControllableState: () => import_tamagui67.useControllableState,
|
|
191
|
+
useDebounce: () => import_tamagui67.useDebounce,
|
|
192
|
+
useDebounceValue: () => import_tamagui67.useDebounceValue,
|
|
193
|
+
useDidFinishSSR: () => import_tamagui67.useDidFinishSSR,
|
|
194
|
+
useEvent: () => import_tamagui67.useEvent,
|
|
195
|
+
useForceUpdate: () => import_tamagui67.useForceUpdate,
|
|
196
|
+
useIsPresent: () => import_tamagui67.useIsPresent,
|
|
197
|
+
useIsomorphicLayoutEffect: () => import_tamagui67.useIsomorphicLayoutEffect,
|
|
198
|
+
useMedia: () => import_tamagui67.useMedia,
|
|
199
|
+
usePresence: () => import_tamagui67.usePresence,
|
|
200
|
+
useTheme: () => import_tamagui67.useTheme,
|
|
201
|
+
useThemeName: () => import_tamagui67.useThemeName,
|
|
202
|
+
useWindowDimensions: () => import_tamagui67.useWindowDimensions,
|
|
203
|
+
withStaticProperties: () => import_tamagui67.withStaticProperties
|
|
196
204
|
});
|
|
197
205
|
module.exports = __toCommonJS(index_exports);
|
|
198
206
|
|
|
@@ -205,7 +213,7 @@ var blinkConfig = (0, import_tamagui.createTamagui)({
|
|
|
205
213
|
|
|
206
214
|
// src/index.ts
|
|
207
215
|
var import_v52 = require("@tamagui/config/v5");
|
|
208
|
-
var
|
|
216
|
+
var import_tamagui67 = require("tamagui");
|
|
209
217
|
|
|
210
218
|
// src/primitives/Button.tsx
|
|
211
219
|
var import_tamagui2 = require("tamagui");
|
|
@@ -2404,20 +2412,25 @@ function ChipGroup({ chips, selected = [], onSelectionChange, multiSelect = true
|
|
|
2404
2412
|
|
|
2405
2413
|
// src/patterns/OTPInput.tsx
|
|
2406
2414
|
var import_react14 = require("react");
|
|
2415
|
+
var import_react_native5 = require("react-native");
|
|
2407
2416
|
var import_tamagui54 = require("tamagui");
|
|
2408
2417
|
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
2409
2418
|
function OTPInput({ length = 6, value = "", onChange, onComplete, error, autoFocus, secureEntry }) {
|
|
2410
2419
|
const inputRef = (0, import_react14.useRef)(null);
|
|
2420
|
+
const [focused, setFocused] = (0, import_react14.useState)(false);
|
|
2411
2421
|
const digits = value.padEnd(length, " ").slice(0, length);
|
|
2412
2422
|
const handleChange = (0, import_react14.useCallback)((text) => {
|
|
2413
2423
|
const cleaned = text.replace(/\D/g, "").slice(0, length);
|
|
2414
2424
|
onChange?.(cleaned);
|
|
2415
2425
|
if (cleaned.length === length) onComplete?.(cleaned);
|
|
2416
2426
|
}, [length, onChange, onComplete]);
|
|
2417
|
-
|
|
2418
|
-
|
|
2427
|
+
const focusInput = (0, import_react14.useCallback)(() => {
|
|
2428
|
+
inputRef.current?.focus();
|
|
2429
|
+
}, []);
|
|
2430
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(import_tamagui54.YStack, { position: "relative", children: [
|
|
2431
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_tamagui54.XStack, { gap: "$2", justifyContent: "center", children: Array.from({ length }, (_, i) => {
|
|
2419
2432
|
const char = digits[i]?.trim();
|
|
2420
|
-
const
|
|
2433
|
+
const isCursor = focused && value.length === i;
|
|
2421
2434
|
return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
|
|
2422
2435
|
import_tamagui54.YStack,
|
|
2423
2436
|
{
|
|
@@ -2425,20 +2438,59 @@ function OTPInput({ length = 6, value = "", onChange, onComplete, error, autoFoc
|
|
|
2425
2438
|
height: 56,
|
|
2426
2439
|
borderRadius: "$3",
|
|
2427
2440
|
borderWidth: 2,
|
|
2428
|
-
borderColor: error ? "$red9" :
|
|
2429
|
-
backgroundColor: error ? "$red2" : "$color2",
|
|
2441
|
+
borderColor: error ? "$red9" : isCursor ? "$color9" : char ? "$color7" : "$color5",
|
|
2442
|
+
backgroundColor: error ? "$red2" : isCursor ? "$color2" : "$color1",
|
|
2430
2443
|
alignItems: "center",
|
|
2431
2444
|
justifyContent: "center",
|
|
2432
2445
|
animation: "quick",
|
|
2446
|
+
pointerEvents: "none",
|
|
2433
2447
|
children: [
|
|
2434
2448
|
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_tamagui54.SizableText, { size: "$7", fontWeight: "600", color: "$color12", children: char ? secureEntry ? "\u25CF" : char : "" }),
|
|
2435
|
-
|
|
2449
|
+
isCursor && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
2450
|
+
import_tamagui54.YStack,
|
|
2451
|
+
{
|
|
2452
|
+
position: "absolute",
|
|
2453
|
+
bottom: 10,
|
|
2454
|
+
width: 20,
|
|
2455
|
+
height: 2,
|
|
2456
|
+
backgroundColor: "$color9",
|
|
2457
|
+
animation: "quick"
|
|
2458
|
+
}
|
|
2459
|
+
)
|
|
2436
2460
|
]
|
|
2437
2461
|
},
|
|
2438
2462
|
i
|
|
2439
2463
|
);
|
|
2440
2464
|
}) }),
|
|
2441
|
-
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
2465
|
+
import_react_native5.Platform.OS === "web" ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
2466
|
+
"input",
|
|
2467
|
+
{
|
|
2468
|
+
ref: inputRef,
|
|
2469
|
+
type: "text",
|
|
2470
|
+
inputMode: "numeric",
|
|
2471
|
+
pattern: "[0-9]*",
|
|
2472
|
+
autoComplete: "one-time-code",
|
|
2473
|
+
maxLength: length,
|
|
2474
|
+
value,
|
|
2475
|
+
autoFocus,
|
|
2476
|
+
onChange: (e) => handleChange(e.target.value),
|
|
2477
|
+
onFocus: () => setFocused(true),
|
|
2478
|
+
onBlur: () => setFocused(false),
|
|
2479
|
+
style: {
|
|
2480
|
+
position: "absolute",
|
|
2481
|
+
top: 0,
|
|
2482
|
+
left: 0,
|
|
2483
|
+
right: 0,
|
|
2484
|
+
bottom: 0,
|
|
2485
|
+
width: "100%",
|
|
2486
|
+
height: "100%",
|
|
2487
|
+
opacity: 0,
|
|
2488
|
+
fontSize: 16,
|
|
2489
|
+
caretColor: "transparent",
|
|
2490
|
+
cursor: "pointer"
|
|
2491
|
+
}
|
|
2492
|
+
}
|
|
2493
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
2442
2494
|
import_tamagui54.Input,
|
|
2443
2495
|
{
|
|
2444
2496
|
ref: inputRef,
|
|
@@ -2447,10 +2499,15 @@ function OTPInput({ length = 6, value = "", onChange, onComplete, error, autoFoc
|
|
|
2447
2499
|
keyboardType: "number-pad",
|
|
2448
2500
|
maxLength: length,
|
|
2449
2501
|
autoFocus,
|
|
2502
|
+
onFocus: () => setFocused(true),
|
|
2503
|
+
onBlur: () => setFocused(false),
|
|
2450
2504
|
position: "absolute",
|
|
2505
|
+
top: 0,
|
|
2506
|
+
left: 0,
|
|
2507
|
+
right: 0,
|
|
2508
|
+
bottom: 0,
|
|
2451
2509
|
opacity: 0,
|
|
2452
|
-
|
|
2453
|
-
height: 1
|
|
2510
|
+
fontSize: 16
|
|
2454
2511
|
}
|
|
2455
2512
|
)
|
|
2456
2513
|
] });
|
|
@@ -2742,6 +2799,573 @@ function GlassCard({
|
|
|
2742
2799
|
}
|
|
2743
2800
|
);
|
|
2744
2801
|
}
|
|
2802
|
+
|
|
2803
|
+
// src/patterns/DataTable.tsx
|
|
2804
|
+
var import_react17 = require("react");
|
|
2805
|
+
var import_tamagui59 = require("tamagui");
|
|
2806
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
2807
|
+
var TH = (0, import_tamagui59.styled)(import_tamagui59.View, { padding: "$3", justifyContent: "center" });
|
|
2808
|
+
var TD = (0, import_tamagui59.styled)(import_tamagui59.View, { padding: "$3", justifyContent: "center" });
|
|
2809
|
+
function StatusBadge({ status }) {
|
|
2810
|
+
const isActive = status.toLowerCase() === "active";
|
|
2811
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_tamagui59.XStack, { gap: "$2", alignItems: "center", children: [
|
|
2812
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
2813
|
+
import_tamagui59.View,
|
|
2814
|
+
{
|
|
2815
|
+
width: 8,
|
|
2816
|
+
height: 8,
|
|
2817
|
+
borderRadius: 4,
|
|
2818
|
+
backgroundColor: isActive ? "$green9" : "$orange9"
|
|
2819
|
+
}
|
|
2820
|
+
),
|
|
2821
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_tamagui59.SizableText, { size: "$3", color: "$color11", children: status })
|
|
2822
|
+
] });
|
|
2823
|
+
}
|
|
2824
|
+
function HeaderCell({ col, sort, onSort }) {
|
|
2825
|
+
const active = sort?.key === col.key;
|
|
2826
|
+
const indicator = active ? sort.dir === "asc" ? " \u25B2" : " \u25BC" : "";
|
|
2827
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
2828
|
+
TH,
|
|
2829
|
+
{
|
|
2830
|
+
width: col.width,
|
|
2831
|
+
flexDirection: "row",
|
|
2832
|
+
alignItems: "center",
|
|
2833
|
+
cursor: col.sortable ? "pointer" : void 0,
|
|
2834
|
+
onPress: col.sortable ? onSort : void 0,
|
|
2835
|
+
pressStyle: col.sortable ? { opacity: 0.7 } : void 0,
|
|
2836
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
|
|
2837
|
+
import_tamagui59.SizableText,
|
|
2838
|
+
{
|
|
2839
|
+
size: "$2",
|
|
2840
|
+
fontWeight: "700",
|
|
2841
|
+
color: active ? "$color12" : "$color9",
|
|
2842
|
+
textTransform: "uppercase",
|
|
2843
|
+
letterSpacing: 0.5,
|
|
2844
|
+
children: [
|
|
2845
|
+
col.header,
|
|
2846
|
+
indicator
|
|
2847
|
+
]
|
|
2848
|
+
}
|
|
2849
|
+
)
|
|
2850
|
+
},
|
|
2851
|
+
col.key
|
|
2852
|
+
);
|
|
2853
|
+
}
|
|
2854
|
+
function TableRow({ row, columns, onPress, odd }) {
|
|
2855
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
2856
|
+
import_tamagui59.XStack,
|
|
2857
|
+
{
|
|
2858
|
+
backgroundColor: odd ? "$color2" : "transparent",
|
|
2859
|
+
borderBottomWidth: 0.5,
|
|
2860
|
+
borderColor: "$color4",
|
|
2861
|
+
hoverStyle: { backgroundColor: "$color3" },
|
|
2862
|
+
cursor: onPress ? "pointer" : void 0,
|
|
2863
|
+
onPress: onPress ? () => onPress(row) : void 0,
|
|
2864
|
+
pressStyle: onPress ? { opacity: 0.85 } : void 0,
|
|
2865
|
+
animation: "quick",
|
|
2866
|
+
children: columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(TD, { width: col.width, flex: col.width ? void 0 : 1, children: col.render ? col.render(row[col.key], row) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_tamagui59.SizableText, { size: "$3", color: "$color11", children: String(row[col.key] ?? "") }) }, col.key))
|
|
2867
|
+
}
|
|
2868
|
+
);
|
|
2869
|
+
}
|
|
2870
|
+
function CardRow({ row, columns, onPress }) {
|
|
2871
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
2872
|
+
import_tamagui59.YStack,
|
|
2873
|
+
{
|
|
2874
|
+
backgroundColor: "$color1",
|
|
2875
|
+
borderRadius: "$4",
|
|
2876
|
+
borderWidth: 1,
|
|
2877
|
+
borderColor: "$color4",
|
|
2878
|
+
padding: "$3",
|
|
2879
|
+
gap: "$2",
|
|
2880
|
+
onPress: onPress ? () => onPress(row) : void 0,
|
|
2881
|
+
pressStyle: onPress ? { scale: 0.98, opacity: 0.9 } : void 0,
|
|
2882
|
+
animation: "quick",
|
|
2883
|
+
children: columns.map((col, i) => /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_tamagui59.YStack, { children: [
|
|
2884
|
+
i > 0 && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_tamagui59.Separator, { marginVertical: "$1.5", borderColor: "$color4" }),
|
|
2885
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_tamagui59.XStack, { justifyContent: "space-between", alignItems: "center", children: [
|
|
2886
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_tamagui59.SizableText, { size: "$2", color: "$color9", fontWeight: "600", children: col.header }),
|
|
2887
|
+
col.render ? col.render(row[col.key], row) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_tamagui59.SizableText, { size: "$3", color: "$color11", children: String(row[col.key] ?? "") })
|
|
2888
|
+
] })
|
|
2889
|
+
] }, col.key))
|
|
2890
|
+
}
|
|
2891
|
+
);
|
|
2892
|
+
}
|
|
2893
|
+
function DataTable({ columns, data, onRowPress, emptyMessage = "No data" }) {
|
|
2894
|
+
const [sort, setSort] = (0, import_react17.useState)(null);
|
|
2895
|
+
const media = (0, import_tamagui59.useMedia)();
|
|
2896
|
+
const isSmall = media.sm;
|
|
2897
|
+
const sorted = (0, import_react17.useMemo)(() => {
|
|
2898
|
+
if (!sort) return data;
|
|
2899
|
+
return [...data].sort((a, b) => {
|
|
2900
|
+
const av = a[sort.key], bv = b[sort.key];
|
|
2901
|
+
const cmp = typeof av === "number" && typeof bv === "number" ? av - bv : String(av ?? "").localeCompare(String(bv ?? ""));
|
|
2902
|
+
return sort.dir === "asc" ? cmp : -cmp;
|
|
2903
|
+
});
|
|
2904
|
+
}, [data, sort]);
|
|
2905
|
+
const toggleSort = (key) => setSort((s) => s?.key === key ? { key, dir: s.dir === "asc" ? "desc" : "asc" } : { key, dir: "asc" });
|
|
2906
|
+
if (!data.length) {
|
|
2907
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_tamagui59.YStack, { padding: "$6", alignItems: "center", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_tamagui59.SizableText, { size: "$4", color: "$color9", children: emptyMessage }) });
|
|
2908
|
+
}
|
|
2909
|
+
if (isSmall) {
|
|
2910
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_tamagui59.YStack, { gap: "$3", children: sorted.map((row, i) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(CardRow, { row, columns, onPress: onRowPress }, i)) });
|
|
2911
|
+
}
|
|
2912
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_tamagui59.YStack, { borderWidth: 1, borderColor: "$color4", borderRadius: "$4", overflow: "hidden", children: [
|
|
2913
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_tamagui59.XStack, { backgroundColor: "$color1", borderBottomWidth: 1, borderColor: "$color4", children: columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(HeaderCell, { col, sort, onSort: () => toggleSort(col.key) }, col.key)) }),
|
|
2914
|
+
sorted.map((row, i) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(TableRow, { row, columns, onPress: onRowPress, odd: i % 2 === 1 }, i))
|
|
2915
|
+
] });
|
|
2916
|
+
}
|
|
2917
|
+
|
|
2918
|
+
// src/patterns/DatePicker.tsx
|
|
2919
|
+
var import_react18 = require("react");
|
|
2920
|
+
var import_tamagui60 = require("tamagui");
|
|
2921
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
2922
|
+
var MONTH_NAMES = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
|
|
2923
|
+
var DAY_LABELS_SUN = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
|
|
2924
|
+
var DAY_LABELS_MON = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"];
|
|
2925
|
+
function daysInMonth(year, month) {
|
|
2926
|
+
return new Date(year, month + 1, 0).getDate();
|
|
2927
|
+
}
|
|
2928
|
+
function sameDay(a, b) {
|
|
2929
|
+
return a ? a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate() : false;
|
|
2930
|
+
}
|
|
2931
|
+
function buildGrid(year, month, startDay) {
|
|
2932
|
+
const total = daysInMonth(year, month);
|
|
2933
|
+
const firstWeekday = new Date(year, month, 1).getDay();
|
|
2934
|
+
const offset = (firstWeekday - startDay + 7) % 7;
|
|
2935
|
+
const prevTotal = daysInMonth(year, month - 1);
|
|
2936
|
+
const cells = [];
|
|
2937
|
+
for (let i = offset - 1; i >= 0; i--)
|
|
2938
|
+
cells.push({ day: prevTotal - i, month: month - 1, year: month === 0 ? year - 1 : year, outside: true });
|
|
2939
|
+
for (let d = 1; d <= total; d++)
|
|
2940
|
+
cells.push({ day: d, month, year, outside: false });
|
|
2941
|
+
while (cells.length < 42)
|
|
2942
|
+
cells.push({ day: cells.length - offset - total + 1, month: month + 1, year: month === 11 ? year + 1 : year, outside: true });
|
|
2943
|
+
return cells;
|
|
2944
|
+
}
|
|
2945
|
+
function NavButton({ label, onPress }) {
|
|
2946
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
2947
|
+
import_tamagui60.XStack,
|
|
2948
|
+
{
|
|
2949
|
+
width: 36,
|
|
2950
|
+
height: 36,
|
|
2951
|
+
borderRadius: "$10",
|
|
2952
|
+
alignItems: "center",
|
|
2953
|
+
justifyContent: "center",
|
|
2954
|
+
backgroundColor: "$color3",
|
|
2955
|
+
pressStyle: { scale: 0.92, backgroundColor: "$color5" },
|
|
2956
|
+
animation: "quick",
|
|
2957
|
+
onPress,
|
|
2958
|
+
cursor: "pointer",
|
|
2959
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_tamagui60.SizableText, { size: "$5", color: "$color11", fontWeight: "600", children: label })
|
|
2960
|
+
}
|
|
2961
|
+
);
|
|
2962
|
+
}
|
|
2963
|
+
function DatePicker({ value, onDateChange, minDate, maxDate, startDay = 1 }) {
|
|
2964
|
+
const today = (0, import_react18.useMemo)(() => /* @__PURE__ */ new Date(), []);
|
|
2965
|
+
const [viewMonth, setViewMonth] = (0, import_react18.useState)(value?.getMonth() ?? today.getMonth());
|
|
2966
|
+
const [viewYear, setViewYear] = (0, import_react18.useState)(value?.getFullYear() ?? today.getFullYear());
|
|
2967
|
+
const headers = startDay === 1 ? DAY_LABELS_MON : DAY_LABELS_SUN;
|
|
2968
|
+
const grid = (0, import_react18.useMemo)(() => buildGrid(viewYear, viewMonth, startDay), [viewYear, viewMonth, startDay]);
|
|
2969
|
+
const navigate = (0, import_react18.useCallback)((dir) => {
|
|
2970
|
+
setViewMonth((m) => {
|
|
2971
|
+
const next = m + dir;
|
|
2972
|
+
if (next < 0) {
|
|
2973
|
+
setViewYear((y) => y - 1);
|
|
2974
|
+
return 11;
|
|
2975
|
+
}
|
|
2976
|
+
if (next > 11) {
|
|
2977
|
+
setViewYear((y) => y + 1);
|
|
2978
|
+
return 0;
|
|
2979
|
+
}
|
|
2980
|
+
return next;
|
|
2981
|
+
});
|
|
2982
|
+
}, []);
|
|
2983
|
+
const isDisabled = (0, import_react18.useCallback)((d) => {
|
|
2984
|
+
if (minDate && d < new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate())) return true;
|
|
2985
|
+
if (maxDate && d > new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate())) return true;
|
|
2986
|
+
return false;
|
|
2987
|
+
}, [minDate, maxDate]);
|
|
2988
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_tamagui60.YStack, { backgroundColor: "$color2", borderRadius: "$4", padding: "$3", gap: "$2", animation: "quick", children: [
|
|
2989
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_tamagui60.XStack, { alignItems: "center", justifyContent: "space-between", children: [
|
|
2990
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(NavButton, { label: "\u2039", onPress: () => navigate(-1) }),
|
|
2991
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_tamagui60.SizableText, { size: "$4", fontWeight: "700", color: "$color12", children: [
|
|
2992
|
+
MONTH_NAMES[viewMonth],
|
|
2993
|
+
" ",
|
|
2994
|
+
viewYear
|
|
2995
|
+
] }),
|
|
2996
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(NavButton, { label: "\u203A", onPress: () => navigate(1) })
|
|
2997
|
+
] }),
|
|
2998
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_tamagui60.XStack, { children: headers.map((h) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_tamagui60.SizableText, { size: "$2", color: "$color8", fontWeight: "600", textAlign: "center", flex: 1, children: h }, h)) }),
|
|
2999
|
+
Array.from({ length: Math.ceil(grid.length / 7) }, (_, row) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_tamagui60.XStack, { children: grid.slice(row * 7, row * 7 + 7).map((cell, i) => {
|
|
3000
|
+
const date = new Date(cell.year, cell.month, cell.day);
|
|
3001
|
+
const selected = sameDay(value, date);
|
|
3002
|
+
const isToday = sameDay(today, date);
|
|
3003
|
+
const disabled = cell.outside || isDisabled(date);
|
|
3004
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_tamagui60.YStack, { flex: 1, alignItems: "center", paddingVertical: "$0.5", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
3005
|
+
import_tamagui60.XStack,
|
|
3006
|
+
{
|
|
3007
|
+
width: 40,
|
|
3008
|
+
height: 40,
|
|
3009
|
+
borderRadius: "$10",
|
|
3010
|
+
alignItems: "center",
|
|
3011
|
+
justifyContent: "center",
|
|
3012
|
+
backgroundColor: selected ? "$color9" : "transparent",
|
|
3013
|
+
borderWidth: isToday && !selected ? 1.5 : 0,
|
|
3014
|
+
borderColor: "$color9",
|
|
3015
|
+
pressStyle: disabled ? void 0 : { scale: 0.9, backgroundColor: selected ? "$color10" : "$color4" },
|
|
3016
|
+
animation: "quick",
|
|
3017
|
+
opacity: disabled ? 0.35 : 1,
|
|
3018
|
+
cursor: disabled ? "default" : "pointer",
|
|
3019
|
+
onPress: disabled ? void 0 : () => onDateChange?.(date),
|
|
3020
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
3021
|
+
import_tamagui60.SizableText,
|
|
3022
|
+
{
|
|
3023
|
+
size: "$3",
|
|
3024
|
+
fontWeight: selected || isToday ? "700" : "400",
|
|
3025
|
+
color: selected ? "white" : cell.outside ? "$color5" : "$color12",
|
|
3026
|
+
children: cell.day
|
|
3027
|
+
}
|
|
3028
|
+
)
|
|
3029
|
+
}
|
|
3030
|
+
) }, `${row}-${i}`);
|
|
3031
|
+
}) }, row))
|
|
3032
|
+
] });
|
|
3033
|
+
}
|
|
3034
|
+
|
|
3035
|
+
// src/patterns/EventCard.tsx
|
|
3036
|
+
var import_tamagui61 = require("tamagui");
|
|
3037
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
3038
|
+
var THEME_MAP = {
|
|
3039
|
+
purple: "purple",
|
|
3040
|
+
green: "green",
|
|
3041
|
+
blue: "blue",
|
|
3042
|
+
orange: "orange",
|
|
3043
|
+
red: "red",
|
|
3044
|
+
pink: "pink"
|
|
3045
|
+
};
|
|
3046
|
+
function ParticipantDots({ count, max }) {
|
|
3047
|
+
const dots = Math.min(count, 5);
|
|
3048
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_tamagui61.XStack, { alignItems: "center", gap: "$1.5", children: [
|
|
3049
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_tamagui61.XStack, { children: Array.from({ length: dots }, (_, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
3050
|
+
import_tamagui61.YStack,
|
|
3051
|
+
{
|
|
3052
|
+
width: 22,
|
|
3053
|
+
height: 22,
|
|
3054
|
+
borderRadius: 11,
|
|
3055
|
+
backgroundColor: "$color7",
|
|
3056
|
+
borderWidth: 2,
|
|
3057
|
+
borderColor: "$color4",
|
|
3058
|
+
marginLeft: i > 0 ? -8 : 0,
|
|
3059
|
+
alignItems: "center",
|
|
3060
|
+
justifyContent: "center",
|
|
3061
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_tamagui61.SizableText, { size: "$1", color: "$color1", fontWeight: "700", children: String.fromCharCode(65 + i) })
|
|
3062
|
+
},
|
|
3063
|
+
i
|
|
3064
|
+
)) }),
|
|
3065
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_tamagui61.SizableText, { size: "$2", color: "$color11", fontWeight: "500", children: [
|
|
3066
|
+
count,
|
|
3067
|
+
max ? `/${max}` : ""
|
|
3068
|
+
] })
|
|
3069
|
+
] });
|
|
3070
|
+
}
|
|
3071
|
+
function CardInner({ title, subtitle, time, location, label, participants, maxParticipants, onPress, actions }) {
|
|
3072
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
|
|
3073
|
+
import_tamagui61.YStack,
|
|
3074
|
+
{
|
|
3075
|
+
backgroundColor: "$color4",
|
|
3076
|
+
borderRadius: "$5",
|
|
3077
|
+
padding: "$4",
|
|
3078
|
+
gap: "$3",
|
|
3079
|
+
borderWidth: 1,
|
|
3080
|
+
borderColor: "$color7",
|
|
3081
|
+
onPress,
|
|
3082
|
+
animation: "quick",
|
|
3083
|
+
pressStyle: onPress ? { scale: 0.97, opacity: 0.9 } : void 0,
|
|
3084
|
+
cursor: onPress ? "pointer" : void 0,
|
|
3085
|
+
children: [
|
|
3086
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_tamagui61.XStack, { justifyContent: "space-between", alignItems: "flex-start", children: [
|
|
3087
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_tamagui61.YStack, { flex: 1, gap: "$1", children: [
|
|
3088
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_tamagui61.SizableText, { size: "$6", fontWeight: "700", color: "$color12", children: title }),
|
|
3089
|
+
subtitle && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_tamagui61.SizableText, { size: "$3", color: "$color11", opacity: 0.8, children: subtitle })
|
|
3090
|
+
] }),
|
|
3091
|
+
time && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_tamagui61.YStack, { backgroundColor: "$color6", paddingHorizontal: "$2.5", paddingVertical: "$1.5", borderRadius: "$3", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_tamagui61.SizableText, { size: "$2", fontWeight: "600", color: "$color12", children: time }) })
|
|
3092
|
+
] }),
|
|
3093
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_tamagui61.XStack, { gap: "$4", alignItems: "center", flexWrap: "wrap", children: [
|
|
3094
|
+
location && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_tamagui61.XStack, { gap: "$1.5", alignItems: "center", children: [
|
|
3095
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_tamagui61.SizableText, { size: "$3", children: "\u{1F4CD}" }),
|
|
3096
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_tamagui61.SizableText, { size: "$3", color: "$color11", children: location })
|
|
3097
|
+
] }),
|
|
3098
|
+
participants !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(ParticipantDots, { count: participants, max: maxParticipants })
|
|
3099
|
+
] }),
|
|
3100
|
+
(label || actions) && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_tamagui61.XStack, { justifyContent: "space-between", alignItems: "center", children: [
|
|
3101
|
+
label ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_tamagui61.XStack, { backgroundColor: "$color6", paddingHorizontal: "$2.5", paddingVertical: "$1", borderRadius: "$10", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_tamagui61.SizableText, { size: "$2", fontWeight: "600", color: "$color11", children: label }) }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_tamagui61.YStack, {}),
|
|
3102
|
+
actions
|
|
3103
|
+
] })
|
|
3104
|
+
]
|
|
3105
|
+
}
|
|
3106
|
+
);
|
|
3107
|
+
}
|
|
3108
|
+
function EventCard({ theme = "purple", ...props }) {
|
|
3109
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_tamagui61.Theme, { name: THEME_MAP[theme], children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(CardInner, { ...props }) });
|
|
3110
|
+
}
|
|
3111
|
+
|
|
3112
|
+
// src/patterns/UserPreferences.tsx
|
|
3113
|
+
var import_tamagui62 = require("tamagui");
|
|
3114
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
3115
|
+
function ItemLabel({ title, description, color }) {
|
|
3116
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_tamagui62.YStack, { flex: 1, gap: "$1", children: [
|
|
3117
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_tamagui62.SizableText, { size: "$4", fontWeight: "500", color: color ?? "$color12", children: title }),
|
|
3118
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_tamagui62.SizableText, { size: "$2", color: "$color9", children: description })
|
|
3119
|
+
] });
|
|
3120
|
+
}
|
|
3121
|
+
function ToggleRow({ item }) {
|
|
3122
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_tamagui62.XStack, { alignItems: "center", gap: "$3", paddingVertical: "$3", paddingHorizontal: "$4", children: [
|
|
3123
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(ItemLabel, { title: item.title, description: item.description }),
|
|
3124
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_tamagui62.Switch, { size: "$3", checked: item.value, onCheckedChange: item.onValueChange, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_tamagui62.Switch.Thumb, { animation: "quick" }) })
|
|
3125
|
+
] });
|
|
3126
|
+
}
|
|
3127
|
+
function SelectRow({ item }) {
|
|
3128
|
+
const current = item.options.find((o) => o.value === item.value);
|
|
3129
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
3130
|
+
import_tamagui62.XStack,
|
|
3131
|
+
{
|
|
3132
|
+
alignItems: "center",
|
|
3133
|
+
gap: "$3",
|
|
3134
|
+
paddingVertical: "$3",
|
|
3135
|
+
paddingHorizontal: "$4",
|
|
3136
|
+
pressStyle: { backgroundColor: "$color3" },
|
|
3137
|
+
animation: "quick",
|
|
3138
|
+
cursor: "pointer",
|
|
3139
|
+
onPress: () => {
|
|
3140
|
+
const idx = item.options.findIndex((o) => o.value === item.value);
|
|
3141
|
+
const next = item.options[(idx + 1) % item.options.length];
|
|
3142
|
+
if (next) item.onValueChange(next.value);
|
|
3143
|
+
},
|
|
3144
|
+
children: [
|
|
3145
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(ItemLabel, { title: item.title, description: item.description }),
|
|
3146
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_tamagui62.SizableText, { size: "$3", color: "$color9", fontWeight: "500", children: current?.label ?? item.value }),
|
|
3147
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_tamagui62.SizableText, { size: "$4", color: "$color8", children: "\u203A" })
|
|
3148
|
+
]
|
|
3149
|
+
}
|
|
3150
|
+
);
|
|
3151
|
+
}
|
|
3152
|
+
function SliderRow({ item }) {
|
|
3153
|
+
const min = item.min ?? 0;
|
|
3154
|
+
const max = item.max ?? 100;
|
|
3155
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_tamagui62.YStack, { gap: "$2", paddingVertical: "$3", paddingHorizontal: "$4", children: [
|
|
3156
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_tamagui62.XStack, { justifyContent: "space-between", alignItems: "center", children: [
|
|
3157
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(ItemLabel, { title: item.title, description: item.description }),
|
|
3158
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_tamagui62.SizableText, { size: "$3", fontWeight: "600", color: "$color11", children: item.value })
|
|
3159
|
+
] }),
|
|
3160
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
3161
|
+
import_tamagui62.Slider,
|
|
3162
|
+
{
|
|
3163
|
+
value: [item.value],
|
|
3164
|
+
min,
|
|
3165
|
+
max,
|
|
3166
|
+
step: 1,
|
|
3167
|
+
onValueChange: ([v]) => {
|
|
3168
|
+
if (v !== void 0) item.onValueChange(v);
|
|
3169
|
+
},
|
|
3170
|
+
children: [
|
|
3171
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_tamagui62.Slider.Track, { backgroundColor: "$color4", height: 4, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_tamagui62.Slider.TrackActive, { backgroundColor: "$color9" }) }),
|
|
3172
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_tamagui62.Slider.Thumb, { index: 0, size: "$1.5", backgroundColor: "$color9", borderWidth: 0, circular: true })
|
|
3173
|
+
]
|
|
3174
|
+
}
|
|
3175
|
+
)
|
|
3176
|
+
] });
|
|
3177
|
+
}
|
|
3178
|
+
function ActionRow({ item }) {
|
|
3179
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
3180
|
+
import_tamagui62.XStack,
|
|
3181
|
+
{
|
|
3182
|
+
alignItems: "center",
|
|
3183
|
+
gap: "$3",
|
|
3184
|
+
paddingVertical: "$3",
|
|
3185
|
+
paddingHorizontal: "$4",
|
|
3186
|
+
pressStyle: { backgroundColor: "$color3" },
|
|
3187
|
+
animation: "quick",
|
|
3188
|
+
cursor: "pointer",
|
|
3189
|
+
onPress: item.onPress,
|
|
3190
|
+
children: [
|
|
3191
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
3192
|
+
ItemLabel,
|
|
3193
|
+
{
|
|
3194
|
+
title: item.title,
|
|
3195
|
+
description: item.description,
|
|
3196
|
+
color: item.destructive ? "$red10" : void 0
|
|
3197
|
+
}
|
|
3198
|
+
),
|
|
3199
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_tamagui62.SizableText, { size: "$4", color: "$color8", children: "\u203A" })
|
|
3200
|
+
]
|
|
3201
|
+
}
|
|
3202
|
+
);
|
|
3203
|
+
}
|
|
3204
|
+
function PreferenceRow({ item }) {
|
|
3205
|
+
switch (item.type) {
|
|
3206
|
+
case "toggle":
|
|
3207
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(ToggleRow, { item });
|
|
3208
|
+
case "select":
|
|
3209
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectRow, { item });
|
|
3210
|
+
case "slider":
|
|
3211
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SliderRow, { item });
|
|
3212
|
+
case "action":
|
|
3213
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(ActionRow, { item });
|
|
3214
|
+
}
|
|
3215
|
+
}
|
|
3216
|
+
function UserPreferences({ sections }) {
|
|
3217
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_tamagui62.YStack, { gap: "$5", children: sections.map((section, si) => /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_tamagui62.YStack, { gap: "$2", children: [
|
|
3218
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_tamagui62.YStack, { paddingHorizontal: "$1", gap: "$0.5", children: [
|
|
3219
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_tamagui62.SizableText, { size: "$2", fontWeight: "600", color: "$color9", textTransform: "uppercase", children: section.title }),
|
|
3220
|
+
section.description && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_tamagui62.SizableText, { size: "$2", color: "$color8", children: section.description })
|
|
3221
|
+
] }),
|
|
3222
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
3223
|
+
import_tamagui62.YStack,
|
|
3224
|
+
{
|
|
3225
|
+
backgroundColor: "$color2",
|
|
3226
|
+
borderRadius: "$4",
|
|
3227
|
+
overflow: "hidden",
|
|
3228
|
+
borderWidth: 1,
|
|
3229
|
+
borderColor: "$color4",
|
|
3230
|
+
children: section.items.map((item, ii) => /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_tamagui62.YStack, { children: [
|
|
3231
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(PreferenceRow, { item }),
|
|
3232
|
+
ii < section.items.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_tamagui62.Separator, { borderColor: "$color4" })
|
|
3233
|
+
] }, item.id))
|
|
3234
|
+
}
|
|
3235
|
+
)
|
|
3236
|
+
] }, si)) });
|
|
3237
|
+
}
|
|
3238
|
+
|
|
3239
|
+
// src/patterns/BlinkSelect.tsx
|
|
3240
|
+
var import_tamagui63 = require("tamagui");
|
|
3241
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
3242
|
+
function BlinkSelect({
|
|
3243
|
+
items,
|
|
3244
|
+
value,
|
|
3245
|
+
onValueChange,
|
|
3246
|
+
placeholder = "Select...",
|
|
3247
|
+
size = "$4",
|
|
3248
|
+
disabled,
|
|
3249
|
+
width = "100%"
|
|
3250
|
+
}) {
|
|
3251
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
3252
|
+
import_tamagui63.Select,
|
|
3253
|
+
{
|
|
3254
|
+
value,
|
|
3255
|
+
onValueChange,
|
|
3256
|
+
disablePreventBodyScroll: true,
|
|
3257
|
+
...disabled ? { disabled: true } : {},
|
|
3258
|
+
children: [
|
|
3259
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_tamagui63.Select.Trigger, { width, iconAfter: () => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_tamagui63.SizableText, { children: "\u25BC" }), size, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_tamagui63.Select.Value, { placeholder }) }),
|
|
3260
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_tamagui63.Adapt, { when: "maxMd", platform: "touch", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_tamagui63.Sheet, { modal: true, dismissOnSnapToBottom: true, snapPointsMode: "fit", children: [
|
|
3261
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_tamagui63.Sheet.Frame, { padding: "$4", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_tamagui63.Adapt.Contents, {}) }),
|
|
3262
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_tamagui63.Sheet.Overlay, {})
|
|
3263
|
+
] }) }),
|
|
3264
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_tamagui63.Select.Content, { zIndex: 2e5, children: [
|
|
3265
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_tamagui63.Select.ScrollUpButton, { alignItems: "center", justifyContent: "center", height: "$3", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_tamagui63.SizableText, { children: "\u25B2" }) }),
|
|
3266
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_tamagui63.Select.Viewport, { minWidth: 200, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_tamagui63.Select.Group, { children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_tamagui63.Select.Item, { index: i, value: item.value, children: [
|
|
3267
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_tamagui63.Select.ItemText, { children: item.label }),
|
|
3268
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_tamagui63.Select.ItemIndicator, { marginLeft: "auto", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_tamagui63.SizableText, { children: "\u2713" }) })
|
|
3269
|
+
] }, item.value)) }) }),
|
|
3270
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_tamagui63.Select.ScrollDownButton, { alignItems: "center", justifyContent: "center", height: "$3", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_tamagui63.SizableText, { children: "\u25BC" }) })
|
|
3271
|
+
] })
|
|
3272
|
+
]
|
|
3273
|
+
}
|
|
3274
|
+
);
|
|
3275
|
+
}
|
|
3276
|
+
|
|
3277
|
+
// src/patterns/BlinkDialog.tsx
|
|
3278
|
+
var import_tamagui64 = require("tamagui");
|
|
3279
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
3280
|
+
function BlinkDialog({
|
|
3281
|
+
open,
|
|
3282
|
+
onOpenChange,
|
|
3283
|
+
trigger,
|
|
3284
|
+
title,
|
|
3285
|
+
description,
|
|
3286
|
+
children,
|
|
3287
|
+
confirmLabel = "Confirm",
|
|
3288
|
+
cancelLabel = "Cancel",
|
|
3289
|
+
onConfirm,
|
|
3290
|
+
onCancel,
|
|
3291
|
+
confirmTheme = "active"
|
|
3292
|
+
}) {
|
|
3293
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_tamagui64.Dialog, { modal: true, open, onOpenChange, children: [
|
|
3294
|
+
trigger && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_tamagui64.Dialog.Trigger, { asChild: true, children: trigger }),
|
|
3295
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_tamagui64.Adapt, { when: "maxMd", platform: "touch", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_tamagui64.Sheet, { modal: true, dismissOnSnapToBottom: true, snapPointsMode: "fit", children: [
|
|
3296
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_tamagui64.Sheet.Frame, { padding: "$4", gap: "$4", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_tamagui64.Adapt.Contents, {}) }),
|
|
3297
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_tamagui64.Sheet.Overlay, {})
|
|
3298
|
+
] }) }),
|
|
3299
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_tamagui64.Dialog.Portal, { children: [
|
|
3300
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
3301
|
+
import_tamagui64.Dialog.Overlay,
|
|
3302
|
+
{
|
|
3303
|
+
animation: "quick",
|
|
3304
|
+
opacity: 0.5,
|
|
3305
|
+
enterStyle: { opacity: 0 },
|
|
3306
|
+
exitStyle: { opacity: 0 }
|
|
3307
|
+
},
|
|
3308
|
+
"overlay"
|
|
3309
|
+
),
|
|
3310
|
+
/* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
|
|
3311
|
+
import_tamagui64.Dialog.Content,
|
|
3312
|
+
{
|
|
3313
|
+
bordered: true,
|
|
3314
|
+
elevate: true,
|
|
3315
|
+
animateOnly: ["transform", "opacity"],
|
|
3316
|
+
animation: ["quick", { opacity: { overshootClamping: true } }],
|
|
3317
|
+
enterStyle: { x: 0, y: -20, opacity: 0, scale: 0.9 },
|
|
3318
|
+
exitStyle: { x: 0, y: 10, opacity: 0, scale: 0.95 },
|
|
3319
|
+
gap: "$4",
|
|
3320
|
+
children: [
|
|
3321
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_tamagui64.Dialog.Title, { children: title }),
|
|
3322
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_tamagui64.Dialog.Description, { size: "$3", color: "$color10", children: description }),
|
|
3323
|
+
children,
|
|
3324
|
+
(onConfirm || onCancel) && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_tamagui64.XStack, { justifyContent: "flex-end", gap: "$3", children: [
|
|
3325
|
+
onCancel && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_tamagui64.Dialog.Close, { displayWhenAdapted: true, asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_tamagui64.Button, { variant: "outlined", onPress: onCancel, children: cancelLabel }) }),
|
|
3326
|
+
onConfirm && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_tamagui64.Dialog.Close, { displayWhenAdapted: true, asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_tamagui64.Button, { theme: confirmTheme, onPress: onConfirm, children: confirmLabel }) })
|
|
3327
|
+
] })
|
|
3328
|
+
]
|
|
3329
|
+
},
|
|
3330
|
+
"content"
|
|
3331
|
+
)
|
|
3332
|
+
] })
|
|
3333
|
+
] });
|
|
3334
|
+
}
|
|
3335
|
+
|
|
3336
|
+
// src/patterns/BlinkPopover.tsx
|
|
3337
|
+
var import_tamagui65 = require("tamagui");
|
|
3338
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
3339
|
+
function BlinkPopover({
|
|
3340
|
+
trigger,
|
|
3341
|
+
children,
|
|
3342
|
+
placement = "bottom",
|
|
3343
|
+
allowFlip = true,
|
|
3344
|
+
size = "$5"
|
|
3345
|
+
}) {
|
|
3346
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_tamagui65.Popover, { size, allowFlip, placement, children: [
|
|
3347
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_tamagui65.Popover.Trigger, { asChild: true, children: trigger }),
|
|
3348
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_tamagui65.Adapt, { when: "maxMd", platform: "touch", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_tamagui65.Popover.Sheet, { modal: true, dismissOnSnapToBottom: true, snapPointsMode: "fit", children: [
|
|
3349
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_tamagui65.Popover.Sheet.Frame, { padding: "$4", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_tamagui65.Adapt.Contents, {}) }),
|
|
3350
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_tamagui65.Popover.Sheet.Overlay, {})
|
|
3351
|
+
] }) }),
|
|
3352
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
3353
|
+
import_tamagui65.Popover.Content,
|
|
3354
|
+
{
|
|
3355
|
+
borderWidth: 1,
|
|
3356
|
+
borderColor: "$borderColor",
|
|
3357
|
+
enterStyle: { y: -10, opacity: 0 },
|
|
3358
|
+
exitStyle: { y: -10, opacity: 0 },
|
|
3359
|
+
elevate: true,
|
|
3360
|
+
animation: ["quick", { opacity: { overshootClamping: true } }],
|
|
3361
|
+
children: [
|
|
3362
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_tamagui65.Popover.Arrow, { borderWidth: 1, borderColor: "$borderColor" }),
|
|
3363
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_tamagui65.YStack, { gap: "$3", padding: "$3", children })
|
|
3364
|
+
]
|
|
3365
|
+
}
|
|
3366
|
+
)
|
|
3367
|
+
] });
|
|
3368
|
+
}
|
|
2745
3369
|
// Annotate the CommonJS export names for ESM import in node:
|
|
2746
3370
|
0 && (module.exports = {
|
|
2747
3371
|
Accordion,
|
|
@@ -2760,8 +3384,11 @@ function GlassCard({
|
|
|
2760
3384
|
BlinkAvatar,
|
|
2761
3385
|
BlinkButton,
|
|
2762
3386
|
BlinkCard,
|
|
3387
|
+
BlinkDialog,
|
|
2763
3388
|
BlinkInput,
|
|
3389
|
+
BlinkPopover,
|
|
2764
3390
|
BlinkProvider,
|
|
3391
|
+
BlinkSelect,
|
|
2765
3392
|
BlinkTabs,
|
|
2766
3393
|
BlinkText,
|
|
2767
3394
|
BlinkToastProvider,
|
|
@@ -2779,11 +3406,14 @@ function GlassCard({
|
|
|
2779
3406
|
ConfirmDialog,
|
|
2780
3407
|
Container,
|
|
2781
3408
|
CountdownBanner,
|
|
3409
|
+
DataTable,
|
|
3410
|
+
DatePicker,
|
|
2782
3411
|
Dialog,
|
|
2783
3412
|
DialogProvider,
|
|
2784
3413
|
Divider,
|
|
2785
3414
|
EmptyState,
|
|
2786
3415
|
EnsureFlexed,
|
|
3416
|
+
EventCard,
|
|
2787
3417
|
Fieldset,
|
|
2788
3418
|
FloatingActionButton,
|
|
2789
3419
|
Footer,
|
|
@@ -2851,6 +3481,7 @@ function GlassCard({
|
|
|
2851
3481
|
Spinner,
|
|
2852
3482
|
Square,
|
|
2853
3483
|
Stack,
|
|
3484
|
+
StatusBadge,
|
|
2854
3485
|
StepPageLayout,
|
|
2855
3486
|
SubHeading,
|
|
2856
3487
|
SwipeCards,
|
|
@@ -2870,6 +3501,7 @@ function GlassCard({
|
|
|
2870
3501
|
Tooltip,
|
|
2871
3502
|
TooltipSimple,
|
|
2872
3503
|
Unspaced,
|
|
3504
|
+
UserPreferences,
|
|
2873
3505
|
View,
|
|
2874
3506
|
VisuallyHidden,
|
|
2875
3507
|
XGroup,
|