@thewhileloop/whileui 0.2.12 → 1.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.
- package/README.md +192 -44
- package/dist/blocks/chat/chat.js +1 -1
- package/dist/blocks/chat/chat.js.map +1 -1
- package/dist/blocks/datepicker/date-range-picker-modal.js +1 -1
- package/dist/blocks/datepicker/date-range-picker-modal.js.map +1 -1
- package/dist/blocks/datepicker/datepicker-modal.js +1 -1
- package/dist/blocks/datepicker/datepicker-modal.js.map +1 -1
- package/dist/blocks/layout/confirm-action-sheet.js +1 -1
- package/dist/blocks/layout/confirm-action-sheet.js.map +1 -1
- package/dist/blocks/layout/content-skeleton.d.ts +9 -0
- package/dist/blocks/layout/content-skeleton.d.ts.map +1 -0
- package/dist/blocks/layout/content-skeleton.js +27 -0
- package/dist/blocks/layout/content-skeleton.js.map +1 -0
- package/dist/blocks/layout/error-boundary.d.ts +20 -0
- package/dist/blocks/layout/error-boundary.d.ts.map +1 -0
- package/dist/blocks/layout/error-boundary.js +31 -0
- package/dist/blocks/layout/error-boundary.js.map +1 -0
- package/dist/blocks/layout/index.d.ts +6 -0
- package/dist/blocks/layout/index.d.ts.map +1 -1
- package/dist/blocks/layout/index.js +5 -0
- package/dist/blocks/layout/index.js.map +1 -1
- package/dist/blocks/layout/page-skeleton.d.ts +15 -0
- package/dist/blocks/layout/page-skeleton.d.ts.map +1 -0
- package/dist/blocks/layout/page-skeleton.js +46 -0
- package/dist/blocks/layout/page-skeleton.js.map +1 -0
- package/dist/blocks/layout/pull-to-refresh-scroll-view.d.ts +9 -0
- package/dist/blocks/layout/pull-to-refresh-scroll-view.d.ts.map +1 -0
- package/dist/blocks/layout/pull-to-refresh-scroll-view.js +11 -0
- package/dist/blocks/layout/pull-to-refresh-scroll-view.js.map +1 -0
- package/dist/blocks/layout/sheet.d.ts +30 -0
- package/dist/blocks/layout/sheet.d.ts.map +1 -0
- package/dist/blocks/layout/sheet.js +52 -0
- package/dist/blocks/layout/sheet.js.map +1 -0
- package/dist/blocks/layout/smart-input.js +1 -1
- package/dist/blocks/layout/smart-input.js.map +1 -1
- package/dist/components/badge/badge.d.ts.map +1 -1
- package/dist/components/badge/badge.js +2 -1
- package/dist/components/badge/badge.js.map +1 -1
- package/dist/components/button/button.d.ts.map +1 -1
- package/dist/components/button/button.js +2 -2
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/card/card.d.ts +3 -3
- package/dist/components/card/card.d.ts.map +1 -1
- package/dist/components/card/card.js +2 -1
- package/dist/components/card/card.js.map +1 -1
- package/dist/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox/checkbox.js +1 -1
- package/dist/components/checkbox/checkbox.js.map +1 -1
- package/dist/components/form-field/form-field.js +1 -1
- package/dist/components/form-field/form-field.js.map +1 -1
- package/dist/components/input/input.d.ts +2 -2
- package/dist/components/input/input.js +3 -3
- package/dist/components/input/input.js.map +1 -1
- package/dist/components/label/label.js +3 -3
- package/dist/components/label/label.js.map +1 -1
- package/dist/components/labeled-field/labeled-field.js +1 -1
- package/dist/components/labeled-field/labeled-field.js.map +1 -1
- package/dist/components/numeric-input/numeric-input.d.ts +2 -2
- package/dist/components/numeric-input/numeric-input.d.ts.map +1 -1
- package/dist/components/numeric-input/numeric-input.js +12 -5
- package/dist/components/numeric-input/numeric-input.js.map +1 -1
- package/dist/components/radio-group/radio-group.d.ts.map +1 -1
- package/dist/components/radio-group/radio-group.js +1 -1
- package/dist/components/radio-group/radio-group.js.map +1 -1
- package/dist/components/segmented-control/segmented-control.d.ts +60 -3
- package/dist/components/segmented-control/segmented-control.d.ts.map +1 -1
- package/dist/components/segmented-control/segmented-control.js +17 -5
- package/dist/components/segmented-control/segmented-control.js.map +1 -1
- package/dist/components/select/select.js +1 -1
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/skeleton/index.d.ts +1 -1
- package/dist/components/skeleton/index.d.ts.map +1 -1
- package/dist/components/skeleton/index.js +1 -1
- package/dist/components/skeleton/index.js.map +1 -1
- package/dist/components/skeleton/skeleton.d.ts +40 -3
- package/dist/components/skeleton/skeleton.d.ts.map +1 -1
- package/dist/components/skeleton/skeleton.js +43 -9
- package/dist/components/skeleton/skeleton.js.map +1 -1
- package/dist/components/switch/switch.d.ts.map +1 -1
- package/dist/components/switch/switch.js +1 -1
- package/dist/components/switch/switch.js.map +1 -1
- package/dist/components/text/text.d.ts.map +1 -1
- package/dist/components/text/text.js +3 -3
- package/dist/components/text/text.js.map +1 -1
- package/dist/components/textarea/textarea.d.ts +2 -2
- package/dist/components/textarea/textarea.js +2 -2
- package/dist/components/textarea/textarea.js.map +1 -1
- package/dist/index.d.ts +3 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/font-context.d.ts +18 -3
- package/dist/lib/font-context.d.ts.map +1 -1
- package/dist/lib/font-context.js +27 -8
- package/dist/lib/font-context.js.map +1 -1
- package/dist/lib/theme-colors.d.ts +6 -0
- package/dist/lib/theme-colors.d.ts.map +1 -1
- package/dist/lib/theme-colors.js +7 -1
- package/dist/lib/theme-colors.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -147,6 +147,22 @@ function MyScreen() {
|
|
|
147
147
|
}
|
|
148
148
|
```
|
|
149
149
|
|
|
150
|
+
## Blocks Strategy: Core vs Templates
|
|
151
|
+
|
|
152
|
+
**Core package** exports:
|
|
153
|
+
|
|
154
|
+
- **Primitives** — Button, Input, Card, Text, etc.
|
|
155
|
+
- **Generic layout blocks** — EmptyState, ErrorState, LoadingScreen, ContentSkeleton, PageSkeleton
|
|
156
|
+
- **Layout infrastructure** — FormModalScreen, ConfirmActionSheet, SmartInput, ActionBar
|
|
157
|
+
- **Navigation, Chat, Lists, Commerce, Media, DatePicker** — Blocks that rarely need app-specific customization
|
|
158
|
+
|
|
159
|
+
**Opinionated blocks** (auth, profile) are **copy-paste templates** in the showcase app:
|
|
160
|
+
|
|
161
|
+
- **Auth:** `apps/showcase/templates/auth/` — SignInForm, SignUpForm, ForgotPasswordForm, ResetPasswordForm, VerifyEmailForm, SocialConnections, UserMenu
|
|
162
|
+
- **Profile:** `apps/showcase/templates/profile/` — ProfileHeader, SettingsSection, SettingsItem, AccountCard
|
|
163
|
+
|
|
164
|
+
**To use auth or profile blocks:** Copy the template file(s) from `apps/showcase/templates/` into your app. Customize as needed (error handling, loading state, social auth slot, branding). Each template imports primitives from `@thewhileloop/whileui`.
|
|
165
|
+
|
|
150
166
|
## Philosophy
|
|
151
167
|
|
|
152
168
|
- **Copy-Paste Ownership** — Components live in _your_ project. No `node_modules` lock-in.
|
|
@@ -159,10 +175,10 @@ function MyScreen() {
|
|
|
159
175
|
|
|
160
176
|
- **Full-screen:** `AppShell` + `Header` in `header` + `BottomNav` in `bottomNav` + content in `children`
|
|
161
177
|
- **Layout:** `Stack` (vertical), `Row` (horizontal) — both support `gap`, `align`, `justify`
|
|
162
|
-
- **Auth callbacks:** Auth
|
|
178
|
+
- **Auth callbacks:** Auth templates use objects: `onSubmit({ email, password })`, `onSubmit({ firstName, lastName, email, password })`, etc. Copy templates from `apps/showcase/templates/auth/`.
|
|
163
179
|
- **PortalHost:** Add `<PortalHost />` at app root for Select, Popover, Tooltip, HoverCard.
|
|
164
180
|
- **Uniwind:** `withUniwindConfig` must wrap metro config. `global.css` at app root, imported in `App.tsx`.
|
|
165
|
-
- **Reference:** Block props in `packages/ui/src/blocks
|
|
181
|
+
- **Reference:** Block props in `packages/ui/src/blocks` (core) and `apps/showcase/templates/` (auth, profile); flow patterns in README "Flow Patterns" section.
|
|
166
182
|
|
|
167
183
|
## Components
|
|
168
184
|
|
|
@@ -192,7 +208,7 @@ function MyScreen() {
|
|
|
192
208
|
| **RadioGroup** | — | RadioGroup + RadioGroupItem |
|
|
193
209
|
| **Select** | — | Uses `SelectOption` type `{value, label}`. Includes SelectGroup, SelectLabel, SelectSeparator |
|
|
194
210
|
| **Label** | — | Form field label |
|
|
195
|
-
| **SegmentedControl** | single select
|
|
211
|
+
| **SegmentedControl** | default, pill; single select | SegmentedControl, SegmentedControlItem, SegmentedControlItemText with wrapping layout support |
|
|
196
212
|
| **Toggle** | default, outline | ToggleText sub-component |
|
|
197
213
|
| **ToggleGroup** | single, multiple | Group of toggle items |
|
|
198
214
|
|
|
@@ -208,7 +224,7 @@ function MyScreen() {
|
|
|
208
224
|
| **Separator** | horizontal, vertical | Themed divider |
|
|
209
225
|
| **Progress** | sm, default, lg | Value-based progress bar with accessibility |
|
|
210
226
|
| **Spinner** | sm, default, lg | ActivityIndicator wrapper |
|
|
211
|
-
| **Skeleton** |
|
|
227
|
+
| **Skeleton** | pulse, shimmer | Loading placeholder (pulse = opacity fade, shimmer = sweep) |
|
|
212
228
|
| **AspectRatio** | — | Maintain aspect ratio container |
|
|
213
229
|
|
|
214
230
|
### Layout
|
|
@@ -240,17 +256,19 @@ function MyScreen() {
|
|
|
240
256
|
|
|
241
257
|
## Blocks (Pre-built Screens)
|
|
242
258
|
|
|
243
|
-
### Auth
|
|
259
|
+
### Auth (Copy from showcase templates)
|
|
260
|
+
|
|
261
|
+
Copy from `apps/showcase/templates/auth/`:
|
|
244
262
|
|
|
245
|
-
| Block | Description |
|
|
246
|
-
| ---------------------- | ------------------------------------- |
|
|
247
|
-
| **SignInForm** | Email/password sign in with callbacks |
|
|
248
|
-
| **SignUpForm** | Registration form with callbacks |
|
|
249
|
-
| **ForgotPasswordForm** | Password reset request |
|
|
250
|
-
| **ResetPasswordForm** | Set new password |
|
|
251
|
-
| **VerifyEmailForm** | Email verification code input |
|
|
252
|
-
| **SocialConnections** | OAuth provider buttons |
|
|
253
|
-
| **UserMenu** | Profile dropdown for auth flows |
|
|
263
|
+
| Block | File | Description |
|
|
264
|
+
| ---------------------- | -------------------------- | ------------------------------------- |
|
|
265
|
+
| **SignInForm** | `sign-in-form.tsx` | Email/password sign in with callbacks |
|
|
266
|
+
| **SignUpForm** | `sign-up-form.tsx` | Registration form with callbacks |
|
|
267
|
+
| **ForgotPasswordForm** | `forgot-password-form.tsx` | Password reset request |
|
|
268
|
+
| **ResetPasswordForm** | `reset-password-form.tsx` | Set new password |
|
|
269
|
+
| **VerifyEmailForm** | `verify-email-form.tsx` | Email verification code input |
|
|
270
|
+
| **SocialConnections** | `social-connections.tsx` | OAuth provider buttons |
|
|
271
|
+
| **UserMenu** | `user-menu.tsx` | Profile dropdown for auth flows |
|
|
254
272
|
|
|
255
273
|
### Navigation
|
|
256
274
|
|
|
@@ -266,19 +284,24 @@ function MyScreen() {
|
|
|
266
284
|
|
|
267
285
|
### Layout
|
|
268
286
|
|
|
269
|
-
| Block
|
|
270
|
-
|
|
|
271
|
-
| **ActionBar**
|
|
272
|
-
| **ConfirmActionSheet**
|
|
273
|
-
| **
|
|
274
|
-
| **
|
|
275
|
-
| **
|
|
276
|
-
| **
|
|
277
|
-
| **
|
|
278
|
-
| **
|
|
279
|
-
| **
|
|
280
|
-
| **
|
|
281
|
-
| **
|
|
287
|
+
| Block | Description |
|
|
288
|
+
| --------------------------- | ----------------------------------------------------------------------- |
|
|
289
|
+
| **ActionBar** | Sticky bottom action row with safe-area padding |
|
|
290
|
+
| **ConfirmActionSheet** | Reusable destructive confirmation sheet |
|
|
291
|
+
| **Sheet** | Bottom sheet modal with header/content/footer slots |
|
|
292
|
+
| **FormModalScreen** | Modal scaffold for forms with loading states |
|
|
293
|
+
| **ContentSkeleton** | Page/content placeholder with variants (list, card, generic) |
|
|
294
|
+
| **PageSkeleton** | Variant-based page layouts (dashboard, list, settings, card, generic) |
|
|
295
|
+
| **ErrorBoundary** | React ErrorBoundary that renders ErrorState by default |
|
|
296
|
+
| **EmptyState** | Empty content placeholder |
|
|
297
|
+
| **ErrorState** | Error display with retry |
|
|
298
|
+
| **LoadingScreen** | Full-screen loading indicator |
|
|
299
|
+
| **PullToRefreshScrollView** | Themed ScrollView with RefreshControl (useThemeTokens for colors) |
|
|
300
|
+
| **SmartInput** | Keyboard-aware compose input: left/center/right slots, bar/card variant |
|
|
301
|
+
| **OnboardingScreen** | Onboarding flow screen |
|
|
302
|
+
| **SplashScreen** | Branded splash (fade/scale/slide variants) |
|
|
303
|
+
| **MinimalSplash** | Minimal monochrome splash |
|
|
304
|
+
| **BrandedSplash** | Splash with brand imagery |
|
|
282
305
|
|
|
283
306
|
### Chat
|
|
284
307
|
|
|
@@ -288,14 +311,16 @@ function MyScreen() {
|
|
|
288
311
|
| **ChatMessageBubble** | Message bubble (user/assistant, big/small text) |
|
|
289
312
|
| **ChatSuggestions** | Suggestion chips when empty |
|
|
290
313
|
|
|
291
|
-
### Profile & Settings
|
|
314
|
+
### Profile & Settings (Copy from showcase templates)
|
|
292
315
|
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
|
296
|
-
|
|
|
297
|
-
| **
|
|
298
|
-
| **
|
|
316
|
+
Copy from `apps/showcase/templates/profile/`:
|
|
317
|
+
|
|
318
|
+
| Block | File | Description |
|
|
319
|
+
| ------------------- | ---------------------- | ----------------------------------- |
|
|
320
|
+
| **ProfileHeader** | `profile-header.tsx` | Profile header with stats |
|
|
321
|
+
| **AccountCard** | `account-card.tsx` | Account summary card |
|
|
322
|
+
| **SettingsSection** | `settings-section.tsx` | Section header with optional action |
|
|
323
|
+
| **SettingsItem** | `settings-item.tsx` | Row for toggles/links/settings |
|
|
299
324
|
|
|
300
325
|
### Lists
|
|
301
326
|
|
|
@@ -418,11 +443,10 @@ whileui/
|
|
|
418
443
|
│ │ ├── data-row/
|
|
419
444
|
│ │ ├── dialog/
|
|
420
445
|
│ │ └── ...
|
|
421
|
-
│ ├── blocks/ # Pre-built screens
|
|
422
|
-
│ │ ├──
|
|
446
|
+
│ ├── blocks/ # Pre-built screens (core only)
|
|
447
|
+
│ │ ├── chat/
|
|
423
448
|
│ │ ├── navigation/
|
|
424
449
|
│ │ ├── layout/
|
|
425
|
-
│ │ ├── profile/
|
|
426
450
|
│ │ ├── lists/
|
|
427
451
|
│ │ ├── commerce/
|
|
428
452
|
│ │ ├── splash/
|
|
@@ -435,6 +459,9 @@ whileui/
|
|
|
435
459
|
│ └── index.ts # Barrel export
|
|
436
460
|
├── apps/
|
|
437
461
|
│ └── showcase/ # Expo demo app
|
|
462
|
+
│ ├── templates/ # Copy-paste templates (auth, profile)
|
|
463
|
+
│ │ ├── auth/
|
|
464
|
+
│ │ └── profile/
|
|
438
465
|
│ ├── App.tsx # Component showcase
|
|
439
466
|
│ ├── global.css # Theme variables (OKLCH) — at app root!
|
|
440
467
|
│ └── metro.config.js # Uniwind + monorepo config
|
|
@@ -459,7 +486,7 @@ Themes are defined in `global.css` using CSS variables with OKLCH colors:
|
|
|
459
486
|
}
|
|
460
487
|
```
|
|
461
488
|
|
|
462
|
-
### Token Contract
|
|
489
|
+
### Strict Theme Token Contract
|
|
463
490
|
|
|
464
491
|
The WhileUI token contract is strict for cross-app reuse. Define these in **every** theme variant (`@variant light`, `@variant dark`, and custom variants):
|
|
465
492
|
|
|
@@ -521,7 +548,7 @@ const iconColors = useIconColors();
|
|
|
521
548
|
<Spinner color={colors.foreground} /> // Spinner defaults to this when color not passed
|
|
522
549
|
```
|
|
523
550
|
|
|
524
|
-
- **useThemeColors** — Returns RN-safe color strings for all semantic tokens. Falls back to `--app-color-*` when `--color-*` is not RN-native (e.g. `oklch(...)`).
|
|
551
|
+
- **useThemeColors** / **useThemeTokens** — Returns RN-safe color strings (hex) for all semantic tokens. Use for RefreshControl, LinearGradient, charts. Falls back to `--app-color-*` when `--color-*` is not RN-native (e.g. `oklch(...)`).
|
|
525
552
|
- **useIconColors** — Subset for icons. Maps `muted` → `mutedForeground` (readable on backgrounds).
|
|
526
553
|
|
|
527
554
|
Input, Textarea, NumericInput, SmartInput, Spinner, and LoadingScreen default to theme colors when you omit `placeholderTextColor` or `spinnerColor`.
|
|
@@ -698,7 +725,7 @@ import {
|
|
|
698
725
|
SegmentedControlItemText,
|
|
699
726
|
} from '@thewhileloop/whileui';
|
|
700
727
|
|
|
701
|
-
<SegmentedControl value={unit} onValueChange={setUnit} wrap>
|
|
728
|
+
<SegmentedControl value={unit} onValueChange={setUnit} variant="pill" wrap>
|
|
702
729
|
<SegmentedControlItem value="metric">
|
|
703
730
|
<SegmentedControlItemText>Metric</SegmentedControlItemText>
|
|
704
731
|
</SegmentedControlItem>
|
|
@@ -708,6 +735,10 @@ import {
|
|
|
708
735
|
</SegmentedControl>;
|
|
709
736
|
```
|
|
710
737
|
|
|
738
|
+
| Prop | Type | Default | Description |
|
|
739
|
+
| ------- | --------------------- | ----------- | ------------------------- |
|
|
740
|
+
| variant | `'default' \| 'pill'` | `'default'` | Pill = rounded-full items |
|
|
741
|
+
|
|
711
742
|
## DataRow
|
|
712
743
|
|
|
713
744
|
```tsx
|
|
@@ -1081,8 +1112,10 @@ import {
|
|
|
1081
1112
|
|
|
1082
1113
|
## SignInForm
|
|
1083
1114
|
|
|
1115
|
+
Copy from `apps/showcase/templates/auth/sign-in-form.tsx`, then:
|
|
1116
|
+
|
|
1084
1117
|
```tsx
|
|
1085
|
-
import { SignInForm } from '
|
|
1118
|
+
import { SignInForm } from './templates/auth'; // or your path
|
|
1086
1119
|
|
|
1087
1120
|
<SignInForm
|
|
1088
1121
|
onSubmit={({ email, password }) => signIn(email, password)}
|
|
@@ -1103,8 +1136,10 @@ import { SignInForm } from '@thewhileloop/whileui';
|
|
|
1103
1136
|
|
|
1104
1137
|
## SignUpForm
|
|
1105
1138
|
|
|
1139
|
+
Copy from `apps/showcase/templates/auth/sign-up-form.tsx`, then:
|
|
1140
|
+
|
|
1106
1141
|
```tsx
|
|
1107
|
-
import { SignUpForm } from '
|
|
1142
|
+
import { SignUpForm } from './templates/auth'; // or your path
|
|
1108
1143
|
|
|
1109
1144
|
<SignUpForm
|
|
1110
1145
|
onSubmit={({ firstName, lastName, email, password }) =>
|
|
@@ -1289,6 +1324,41 @@ import { ConfirmActionSheet } from '@thewhileloop/whileui';
|
|
|
1289
1324
|
/>;
|
|
1290
1325
|
```
|
|
1291
1326
|
|
|
1327
|
+
## Sheet
|
|
1328
|
+
|
|
1329
|
+
Bottom sheet modal with slide animation. Slots: `SheetHeader`, `SheetContent`, `SheetFooter`, `SheetClose`.
|
|
1330
|
+
|
|
1331
|
+
```tsx
|
|
1332
|
+
import {
|
|
1333
|
+
Sheet,
|
|
1334
|
+
SheetHeader,
|
|
1335
|
+
SheetContent,
|
|
1336
|
+
SheetFooter,
|
|
1337
|
+
SheetClose,
|
|
1338
|
+
Button,
|
|
1339
|
+
ButtonText,
|
|
1340
|
+
} from '@thewhileloop/whileui';
|
|
1341
|
+
|
|
1342
|
+
<Sheet open={open} onOpenChange={setOpen} maxHeight="half">
|
|
1343
|
+
<SheetHeader title="Settings" description="Adjust preferences" />
|
|
1344
|
+
<SheetContent>{/* Scrollable body */}</SheetContent>
|
|
1345
|
+
<SheetFooter>
|
|
1346
|
+
<SheetClose asChild>
|
|
1347
|
+
<Button>
|
|
1348
|
+
<ButtonText>Save</ButtonText>
|
|
1349
|
+
</Button>
|
|
1350
|
+
</SheetClose>
|
|
1351
|
+
</SheetFooter>
|
|
1352
|
+
</Sheet>;
|
|
1353
|
+
```
|
|
1354
|
+
|
|
1355
|
+
| Prop | Type | Default |
|
|
1356
|
+
| ------------ | ---------------------------- | -------- |
|
|
1357
|
+
| open | `boolean` | — |
|
|
1358
|
+
| onOpenChange | `(open: boolean) => void` | — |
|
|
1359
|
+
| maxHeight | `'half' \| 'full' \| number` | `'full'` |
|
|
1360
|
+
| maxWidth | `number` | `360` |
|
|
1361
|
+
|
|
1292
1362
|
## NavigationSidebar
|
|
1293
1363
|
|
|
1294
1364
|
```tsx
|
|
@@ -1346,6 +1416,80 @@ import { SplashScreen } from '@thewhileloop/whileui';
|
|
|
1346
1416
|
| duration | `number` | `800` |
|
|
1347
1417
|
| showLoading | `boolean` | `false` |
|
|
1348
1418
|
|
|
1419
|
+
## ContentSkeleton
|
|
1420
|
+
|
|
1421
|
+
Page/content placeholder with layout presets. Use while loading data instead of a spinner when you want to preview the layout.
|
|
1422
|
+
|
|
1423
|
+
```tsx
|
|
1424
|
+
import { ContentSkeleton } from '@thewhileloop/whileui';
|
|
1425
|
+
|
|
1426
|
+
<ContentSkeleton variant="list" rows={4} />
|
|
1427
|
+
<ContentSkeleton variant="card" />
|
|
1428
|
+
<ContentSkeleton variant="generic" />
|
|
1429
|
+
```
|
|
1430
|
+
|
|
1431
|
+
| Prop | Type | Default | Description |
|
|
1432
|
+
| ------- | ------------------------------- | -------- | --------------------------------------- |
|
|
1433
|
+
| variant | `'list' \| 'card' \| 'generic'` | `'list'` | Layout preset |
|
|
1434
|
+
| rows | `number` | `4` | Number of list rows (list variant only) |
|
|
1435
|
+
|
|
1436
|
+
## PageSkeleton
|
|
1437
|
+
|
|
1438
|
+
Variant-based page layouts for loading states. Replaces app-specific skeletons with presets for dashboard, list, settings, card, and generic pages.
|
|
1439
|
+
|
|
1440
|
+
```tsx
|
|
1441
|
+
import { PageSkeleton } from '@thewhileloop/whileui';
|
|
1442
|
+
|
|
1443
|
+
<PageSkeleton variant="dashboard" />
|
|
1444
|
+
<PageSkeleton variant="list" count={5} />
|
|
1445
|
+
<PageSkeleton variant="settings" count={6} />
|
|
1446
|
+
<PageSkeleton variant="card" />
|
|
1447
|
+
<PageSkeleton variant="generic" />
|
|
1448
|
+
<PageSkeleton variant="list" padding="none" className="flex-1" />
|
|
1449
|
+
```
|
|
1450
|
+
|
|
1451
|
+
| Prop | Type | Default | Description |
|
|
1452
|
+
| --------- | ------------------------------------------------------------ | ---------------------- | --------------------------------------- |
|
|
1453
|
+
| variant | `'dashboard' \| 'list' \| 'settings' \| 'card' \| 'generic'` | required | Layout preset |
|
|
1454
|
+
| count | `number` | 3 (list), 4 (settings) | Rows/items for list or settings variant |
|
|
1455
|
+
| padding | `'none' \| 'sm' \| 'default' \| 'lg'` | `'default'` | Container padding |
|
|
1456
|
+
| className | `string` | — | Outer container classes |
|
|
1457
|
+
|
|
1458
|
+
## ErrorBoundary
|
|
1459
|
+
|
|
1460
|
+
React ErrorBoundary that catches render errors and renders ErrorState by default.
|
|
1461
|
+
|
|
1462
|
+
```tsx
|
|
1463
|
+
import { ErrorBoundary } from '@thewhileloop/whileui';
|
|
1464
|
+
|
|
1465
|
+
<ErrorBoundary onError={(err) => console.error(err)}>
|
|
1466
|
+
<App />
|
|
1467
|
+
</ErrorBoundary>;
|
|
1468
|
+
```
|
|
1469
|
+
|
|
1470
|
+
| Prop | Type | Description |
|
|
1471
|
+
| -------- | ------------------------------------------ | --------------------------------------- |
|
|
1472
|
+
| fallback | `ReactNode \| (error, reset) => ReactNode` | Custom fallback; defaults to ErrorState |
|
|
1473
|
+
| onError | `(error, errorInfo) => void` | Called when error is caught |
|
|
1474
|
+
|
|
1475
|
+
## PullToRefreshScrollView
|
|
1476
|
+
|
|
1477
|
+
Themed ScrollView with RefreshControl. Uses `useThemeTokens` for spinner color.
|
|
1478
|
+
|
|
1479
|
+
```tsx
|
|
1480
|
+
import { PullToRefreshScrollView } from '@thewhileloop/whileui';
|
|
1481
|
+
|
|
1482
|
+
<PullToRefreshScrollView refreshing={refreshing} onRefresh={fetchData} refreshColor="#22c55e">
|
|
1483
|
+
{content}
|
|
1484
|
+
</PullToRefreshScrollView>;
|
|
1485
|
+
```
|
|
1486
|
+
|
|
1487
|
+
| Prop | Type | Description |
|
|
1488
|
+
| ------------ | ------------ | ------------------------------------------ |
|
|
1489
|
+
| refreshing | `boolean` | Whether refresh is in progress |
|
|
1490
|
+
| onRefresh | `() => void` | Called when user pulls to refresh |
|
|
1491
|
+
| refreshColor | `string` | Optional hex override; defaults to primary |
|
|
1492
|
+
|
|
1349
1493
|
## EmptyState
|
|
1350
1494
|
|
|
1351
1495
|
```tsx
|
|
@@ -1361,8 +1505,10 @@ import { EmptyState } from '@thewhileloop/whileui';
|
|
|
1361
1505
|
|
|
1362
1506
|
## ProfileHeader
|
|
1363
1507
|
|
|
1508
|
+
Copy from `apps/showcase/templates/profile/profile-header.tsx`, then:
|
|
1509
|
+
|
|
1364
1510
|
```tsx
|
|
1365
|
-
import { ProfileHeader } from '
|
|
1511
|
+
import { ProfileHeader } from './templates/profile'; // or your path
|
|
1366
1512
|
|
|
1367
1513
|
<ProfileHeader
|
|
1368
1514
|
name="John Doe"
|
|
@@ -1381,8 +1527,10 @@ import { ProfileHeader } from '@thewhileloop/whileui';
|
|
|
1381
1527
|
|
|
1382
1528
|
## SettingsSection / SettingsItem
|
|
1383
1529
|
|
|
1530
|
+
Copy from `apps/showcase/templates/profile/`, then:
|
|
1531
|
+
|
|
1384
1532
|
```tsx
|
|
1385
|
-
import { SettingsSection, SettingsItem } from '
|
|
1533
|
+
import { SettingsSection, SettingsItem } from './templates/profile'; // or your path
|
|
1386
1534
|
|
|
1387
1535
|
<SettingsSection title="Preferences">
|
|
1388
1536
|
<SettingsItem
|
package/dist/blocks/chat/chat.js
CHANGED
|
@@ -31,7 +31,7 @@ export function ChatMessageBubble({ message, contentClassName, }) {
|
|
|
31
31
|
}
|
|
32
32
|
// ─── ChatSuggestions ──────────────────────────────────────────
|
|
33
33
|
export function ChatSuggestions({ suggestions, onSelect, className }) {
|
|
34
|
-
return (_jsx(View, { className: cn('flex-row flex-wrap justify-center gap-2 px-4 py-6', className), children: suggestions.map((text, i) => (_jsx(Pressable, { onPress: () => onSelect(text), accessibilityRole: "button", accessibilityLabel: `Suggestion: ${text}`, className: "rounded-full border border-
|
|
34
|
+
return (_jsx(View, { className: cn('flex-row flex-wrap justify-center gap-2 px-4 py-6', className), children: suggestions.map((text, i) => (_jsx(Pressable, { onPress: () => onSelect(text), accessibilityRole: "button", accessibilityLabel: `Suggestion: ${text}`, className: "rounded-full border border-border bg-muted px-4 py-2 active:bg-muted", children: _jsx(Text, { className: "text-sm text-foreground", children: text }) }, `${text}-${i}`))) }));
|
|
35
35
|
}
|
|
36
36
|
// ─── Chat ────────────────────────────────────────────────────
|
|
37
37
|
export function Chat({ messages, value, onChangeText, onSend, placeholder = 'Message...', suggestions = [], onSuggestionPress, leftSlot, rightSlot, loading = false, header, emptyTitle, emptyDescription, exampleMessage, renderMessage, loadingIndicator, inputSafeArea = true, keyboardVerticalOffset = 0, className, messagesClassName, }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/blocks/chat/chat.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAiDlC,gEAAgE;AAEhE,MAAM,kBAAkB,GAAG;IACzB,EAAE,EAAE,SAAS;IACb,OAAO,EAAE,WAAW;IACpB,EAAE,EAAE,SAAS;CACL,CAAC;AAEX,MAAM,yBAAyB,GAAG,EAAE,CAAC;IACnC,IAAI,EAAE,mCAAmC;IACzC,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,IAAI,EAAE,qBAAqB;YAC3B,SAAS,EAAE,qBAAqB;YAChC,MAAM,EAAE,qCAAqC;SAC9C;KACF;IACD,eAAe,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;CACvC,CAAC,CAAC;AAEH,gEAAgE;AAEhE,MAAM,UAAU,iBAAiB,CAAC,EAChC,OAAO,EACP,gBAAgB,GAIjB;IACC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACjE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC;IACvC,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC;IAEvE,OAAO,CACL,MAAC,IAAI,IACH,UAAU,QACV,iBAAiB,EAAC,MAAM,EACxB,kBAAkB,EAChB,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,mBAAmB,EAE9F,SAAS,EAAE,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,aAE9C,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CACX,iBAAiB,EACjB,SAAS,EACT,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,iBAAiB,EACtD,gBAAgB,CACjB,YAEA,OAAO,CAAC,OAAO,GACX,EACN,OAAO,CAAC,SAAS,IAAI,CACpB,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CACX,cAAc,EACd,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,uBAAuB,CAChE,YAEA,OAAO,CAAC,SAAS,GACb,CACR,IACI,CACR,CAAC;AACJ,CAAC;AAED,iEAAiE;AAEjE,MAAM,UAAU,eAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAwB;IACxF,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,mDAAmD,EAAE,SAAS,CAAC,YAChF,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5B,KAAC,SAAS,IAER,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC7B,iBAAiB,EAAC,QAAQ,EAC1B,kBAAkB,EAAE,eAAe,IAAI,EAAE,EACzC,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../src/blocks/chat/chat.tsx"],"names":[],"mappings":"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"}
|
|
@@ -110,7 +110,7 @@ export function DateRangePickerModal({ value, onValueChange, open, onOpenChange,
|
|
|
110
110
|
setDraftStart(null);
|
|
111
111
|
setDraftEnd(null);
|
|
112
112
|
}, [onOpenChange]);
|
|
113
|
-
return (_jsxs(_Fragment, { children: [trigger ? (_jsx(Pressable, { onPress: handleOpen, className: cn('min-h-10 w-full flex-row items-center rounded-lg border border-
|
|
113
|
+
return (_jsxs(_Fragment, { children: [trigger ? (_jsx(Pressable, { onPress: handleOpen, className: cn('min-h-10 w-full flex-row items-center rounded-lg border border-border bg-muted px-4', className), children: trigger })) : null, _jsx(Modal, { visible: open, transparent: true, animationType: "slide", children: _jsx(Pressable, { className: "flex-1 justify-end bg-black/40", onPress: handleBackdropPress, children: _jsxs(Pressable, { className: "rounded-t-xl border border-border bg-background", style: { paddingBottom: Math.max(insets.bottom, 16) }, onPress: (e) => e.stopPropagation(), children: [_jsxs(View, { className: "flex-row items-center justify-between border-b border-border px-4 py-3", children: [_jsx(Text, { className: "text-base font-medium text-foreground", children: title }), _jsx(Button, { size: "sm", onPress: handleConfirm, children: _jsx(ButtonText, { children: confirmLabel }) })] }), _jsx(View, { className: "p-4", children: _jsx(Calendar, { current: draftStart ?? value?.start ?? undefined, onDayPress: handleDayPress, markedDates: markedDates, markingType: "period", minDate: minDate, maxDate: maxDate, theme: calendarTheme, renderArrow: renderArrow, enableSwipeMonths: true }, theme) })] }) }) })] }));
|
|
114
114
|
}
|
|
115
115
|
/** Compact trigger showing formatted range. Use as DateRangePickerModal's trigger prop. */
|
|
116
116
|
export function DateRangePickerTrigger({ value, placeholder = 'Select date range', className, }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-picker-modal.js","sourceRoot":"","sources":["../../../src/blocks/datepicker/date-range-picker-modal.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAiB,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAsB,MAAM,sBAAsB,CAAC;AA0C5E,SAAS,kBAAkB,CAAC,KAAmC;IAC7D,IAAI,CAAC,KAAK;QAAE,OAAO,mBAAmB,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,CAAC,CAAO,EAAE,EAAE,CACtB,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACvF,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAO;IAChC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,GAAW,EAAE,KAAoB;IACxE,MAAM,KAAK,GAAG,KAAK,CAAC,0BAA0B,CAAC;IAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,oBAAoB,CAAC;IAC7C,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEtD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAEzC,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,GAAG,CAAC,GAAG;YACZ,WAAW,EAAE,GAAG,KAAK,KAAK;YAC1B,SAAS,EAAE,GAAG,KAAK,GAAG;YACtB,KAAK;YACL,SAAS;YACT,KAAK,EAAE,KAAK,EAAE,+DAA+D;SAC9E,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EACnC,KAAK,EACL,aAAa,EACb,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,OAAO,EACP,KAAK,EAAE,WAAW,EAClB,OAAO,EACP,KAAK,GAAG,mBAAmB,EAC3B,YAAY,GAAG,MAAM,EACrB,SAAS,GACiB;IAC1B,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,CAAC;IAC/B,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,UAAU,GACd,aAAa,CAAC,UAAU;QACxB,aAAa,CAAC,cAAc;QAC5B,aAAa,CAAC,YAAY;QAC1B,SAAS,CAAC;IACZ,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,SAA2B,EAAE,EAAE,CAAC,CAC/B,KAAC,IAAI,IAAC,SAAS,EAAC,uBAAuB,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,YACjE,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAC5B,CACR,EACD,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAgB,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC;IAClF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAgB,KAAK,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC;IAE5E,MAAM,WAAW,GAAG,OAAO,CAAC,GAAgB,EAAE;QAC5C,MAAM,KAAK,GAAG,aAAa,CAAC,0BAA0B,CAAC;QACvD,MAAM,SAAS,GAAG,aAAa,CAAC,oBAAoB,CAAC;QACrD,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO;oBACL,CAAC,UAAU,CAAC,EAAE;wBACZ,WAAW,EAAE,IAAI;wBACjB,SAAS,EAAE,IAAI;wBACf,KAAK;wBACL,SAAS;wBACT,KAAK,EAAE,KAAK;qBACb;iBACF,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,UAAU,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC9F,OAAO,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;IACrD,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IAE1C,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,GAAa,EAAE,EAAE;QAChB,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC;QACzB,IAAI,CAAC,UAAU,IAAI,QAAQ,EAAE,CAAC;YAC5B,aAAa,CAAC,CAAC,CAAC,CAAC;YACjB,WAAW,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,EACD,CAAC,UAAU,EAAE,QAAQ,CAAC,CACvB,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,UAAU,CAAC;YACzB,MAAM,GAAG,GAAG,QAAQ,IAAI,UAAU,CAAC;YACnC,aAAa,EAAE,CAAC;gBACd,KAAK,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;gBACjC,GAAG,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;aAChC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;IAExD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,aAAa,CAAC,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC;QACpC,WAAW,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC;QAChC,YAAY,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;IAE1B,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC3C,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,OAAO,CACL,8BACG,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,SAAS,IACR,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,EAAE,CACX,
|
|
1
|
+
{"version":3,"file":"date-range-picker-modal.js","sourceRoot":"","sources":["../../../src/blocks/datepicker/date-range-picker-modal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -48,7 +48,7 @@ export function DatePickerModal({ value, onValueChange, open, onOpenChange, minD
|
|
|
48
48
|
const handleBackdropPress = () => {
|
|
49
49
|
onOpenChange(false);
|
|
50
50
|
};
|
|
51
|
-
return (_jsxs(_Fragment, { children: [trigger ? (_jsx(Pressable, { onPress: () => onOpenChange(true), className: cn('min-h-10 w-full flex-row items-center rounded-lg border border-
|
|
51
|
+
return (_jsxs(_Fragment, { children: [trigger ? (_jsx(Pressable, { onPress: () => onOpenChange(true), className: cn('min-h-10 w-full flex-row items-center rounded-lg border border-border bg-muted px-4', className), children: trigger })) : null, _jsx(Modal, { visible: open, transparent: true, animationType: "slide", children: _jsx(Pressable, { className: "flex-1 justify-end bg-black/40", onPress: handleBackdropPress, children: _jsxs(Pressable, { className: "rounded-t-xl border border-border bg-background", style: { paddingBottom: Math.max(insets.bottom, 16) }, onPress: (e) => e.stopPropagation(), children: [_jsxs(View, { className: "flex-row items-center justify-between border-b border-border px-4 py-3", children: [_jsx(Text, { className: "text-base font-medium text-foreground", children: title }), _jsx(Button, { size: "sm", onPress: handleConfirm, children: _jsx(ButtonText, { children: confirmLabel }) })] }), _jsx(View, { className: "p-4", children: _jsx(Calendar, { current: value ?? undefined, onDayPress: handleDayPress, markedDates: markedDates, minDate: minDate, maxDate: maxDate, theme: calendarTheme, renderArrow: renderArrow, enableSwipeMonths: true }, theme) })] }) }) })] }));
|
|
52
52
|
}
|
|
53
53
|
/** Compact trigger showing formatted date. Use as DatePickerModal's trigger prop. */
|
|
54
54
|
export function DatePickerTrigger({ value, placeholder = 'Select date', className, }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker-modal.js","sourceRoot":"","sources":["../../../src/blocks/datepicker/datepicker-modal.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAiB,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAsB,MAAM,sBAAsB,CAAC;AA0B5E,SAAS,iBAAiB,CAAC,UAAqC;IAC9D,IAAI,CAAC,UAAU;QAAE,OAAO,aAAa,CAAC;IACtC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC;IAC7C,OAAO,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE;QACrC,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,EACL,aAAa,EACb,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,OAAO,EACP,KAAK,EAAE,WAAW,EAClB,OAAO,EACP,KAAK,GAAG,aAAa,EACrB,YAAY,GAAG,MAAM,EACrB,SAAS,GACY;IACrB,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,CAAC;IAC/B,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,UAAU,GACd,aAAa,CAAC,UAAU;QACxB,aAAa,CAAC,cAAc;QAC5B,aAAa,CAAC,YAAY;QAC1B,SAAS,CAAC;IACZ,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,SAA2B,EAAE,EAAE,CAAC,CAC/B,KAAC,IAAI,IAAC,SAAS,EAAC,uBAAuB,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,YACjE,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAC5B,CACR,EACD,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QAC/B,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,OAAO;YACL,CAAC,KAAK,CAAC,EAAE;gBACP,QAAQ,EAAE,IAAI;gBACd,iBAAiB,EAAE,KAAK;gBACxB,KAAK,EAAE,KAAK;aACb;SACF,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,cAAc,GAAG,CAAC,GAAa,EAAE,EAAE;QACvC,aAAa,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC/B,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,OAAO,CACL,8BACG,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,SAAS,IACR,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EACjC,SAAS,EAAE,EAAE,CACX,
|
|
1
|
+
{"version":3,"file":"datepicker-modal.js","sourceRoot":"","sources":["../../../src/blocks/datepicker/datepicker-modal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,7 @@ export function ConfirmActionSheet({ open, onOpenChange, title, description, act
|
|
|
35
35
|
return (_jsx(Modal, { visible: open, transparent: true, animationType: "fade", onRequestClose: handleClose, children: _jsxs(View, { className: "flex-1 justify-end bg-black/40", children: [_jsx(Pressable, { className: "flex-1", onPress: handleClose }), _jsxs(View, { className: cn('rounded-t-lg border border-border bg-background px-4 pt-4', className), style: [{ paddingBottom: Math.max(insets.bottom, 12) }, style], ...props, children: [_jsxs(View, { className: "mb-4 gap-1.5", children: [_jsx(Text, { className: "text-base font-semibold text-foreground", children: title }), description ? (_jsx(Text, { className: "text-sm text-muted-foreground", children: description })) : null] }), _jsx(View, { className: "gap-2", children: resolvedActions.map((action) => {
|
|
36
36
|
const isDestructive = action.variant === 'destructive';
|
|
37
37
|
const isCancel = action.variant === 'cancel';
|
|
38
|
-
return (_jsx(Pressable, { className: cn('min-h-11 items-center justify-center rounded-md border px-4 py-2 active:opacity-70', isCancel ? 'border-
|
|
38
|
+
return (_jsx(Pressable, { className: cn('min-h-11 items-center justify-center rounded-md border px-4 py-2 active:opacity-70', isCancel ? 'border-border bg-muted' : 'border-transparent bg-secondary', isDestructive && 'bg-destructive/10 border-destructive/30', action.disabled && 'opacity-50'), onPress: () => handleActionPress(action), disabled: action.disabled, accessibilityRole: "button", children: _jsx(Text, { className: cn('text-sm font-medium', isCancel ? 'text-foreground' : 'text-secondary-foreground', isDestructive && 'text-destructive'), children: action.label }) }, action.key));
|
|
39
39
|
}) })] })] }) }));
|
|
40
40
|
}
|
|
41
41
|
//# sourceMappingURL=confirm-action-sheet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confirm-action-sheet.js","sourceRoot":"","sources":["../../../src/blocks/layout/confirm-action-sheet.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"confirm-action-sheet.js","sourceRoot":"","sources":["../../../src/blocks/layout/confirm-action-sheet.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type ViewProps } from 'react-native';
|
|
2
|
+
export interface ContentSkeletonProps extends ViewProps {
|
|
3
|
+
/** Layout preset. `list` = avatar + lines rows, `card` = card with image/body, `generic` = simple page lines. */
|
|
4
|
+
variant?: 'list' | 'card' | 'generic';
|
|
5
|
+
/** Number of list rows (list variant only). Default 4. */
|
|
6
|
+
rows?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function ContentSkeleton({ variant, rows, className, ...props }: ContentSkeletonProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=content-skeleton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-skeleton.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/content-skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAMpD,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD,iHAAiH;IACjH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACtC,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAyDD,wBAAgB,eAAe,CAAC,EAC9B,OAAgB,EAChB,IAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,oBAAoB,2CAQtB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
import { Skeleton } from '../../components/skeleton';
|
|
4
|
+
import { cn } from '../../lib/cn';
|
|
5
|
+
// ─── Component ───────────────────────────────────────────────
|
|
6
|
+
function ListRow() {
|
|
7
|
+
return (_jsxs(View, { className: "flex-row items-center gap-3 border-b border-border pb-4 mb-4", children: [_jsx(Skeleton, { className: "h-12 w-12 rounded-full shrink-0" }), _jsxs(View, { className: "flex-1 gap-2", children: [_jsx(Skeleton, { className: "h-4 w-3/4" }), _jsx(Skeleton, { className: "h-3 w-1/2" })] })] }));
|
|
8
|
+
}
|
|
9
|
+
function ListVariant({ className, rows = 4, ...props }) {
|
|
10
|
+
return (_jsx(View, { className: cn('p-4', className), ...props, children: Array.from({ length: rows }).map((_, i) => (_jsx(ListRow, {}, i))) }));
|
|
11
|
+
}
|
|
12
|
+
function CardVariant({ className, ...props }) {
|
|
13
|
+
return (_jsxs(View, { className: cn('rounded-xl overflow-hidden bg-card border border-border', className), ...props, children: [_jsx(Skeleton, { className: "aspect-video w-full" }), _jsxs(View, { className: "p-4 gap-3", children: [_jsx(Skeleton, { className: "h-5 w-2/3" }), _jsx(Skeleton, { className: "h-3 w-full" }), _jsx(Skeleton, { className: "h-3 w-full" }), _jsx(Skeleton, { className: "h-3 w-4/5" })] })] }));
|
|
14
|
+
}
|
|
15
|
+
function GenericVariant({ className, ...props }) {
|
|
16
|
+
return (_jsxs(View, { className: cn('p-4 gap-4', className), ...props, children: [_jsx(Skeleton, { className: "h-6 w-1/2" }), _jsxs(View, { className: "gap-3", children: [_jsx(Skeleton, { className: "h-4 w-full" }), _jsx(Skeleton, { className: "h-4 w-full" }), _jsx(Skeleton, { className: "h-4 w-5/6" }), _jsx(Skeleton, { className: "h-4 w-4/5" })] })] }));
|
|
17
|
+
}
|
|
18
|
+
export function ContentSkeleton({ variant = 'list', rows = 4, className, ...props }) {
|
|
19
|
+
if (variant === 'list') {
|
|
20
|
+
return _jsx(ListVariant, { rows: rows, className: className, ...props });
|
|
21
|
+
}
|
|
22
|
+
if (variant === 'card') {
|
|
23
|
+
return _jsx(CardVariant, { className: className, ...props });
|
|
24
|
+
}
|
|
25
|
+
return _jsx(GenericVariant, { className: className, ...props });
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=content-skeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-skeleton.js","sourceRoot":"","sources":["../../../src/blocks/layout/content-skeleton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAWlC,gEAAgE;AAEhE,SAAS,OAAO;IACd,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAC,8DAA8D,aAC5E,KAAC,QAAQ,IAAC,SAAS,EAAC,iCAAiC,GAAG,EACxD,MAAC,IAAI,IAAC,SAAS,EAAC,cAAc,aAC5B,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,EAClC,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,IAC7B,IACF,CACR,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,KAAK,EAAwB;IAC1E,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,KAAM,KAAK,YAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC1C,KAAC,OAAO,MAAM,CAAC,CAAI,CACpB,CAAC,GACG,CACR,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwB;IAChE,OAAO,CACL,MAAC,IAAI,IACH,SAAS,EAAE,EAAE,CAAC,yDAAyD,EAAE,SAAS,CAAC,KAC/E,KAAK,aAET,KAAC,QAAQ,IAAC,SAAS,EAAC,qBAAqB,GAAG,EAC5C,MAAC,IAAI,IAAC,SAAS,EAAC,WAAW,aACzB,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,EAClC,KAAC,QAAQ,IAAC,SAAS,EAAC,YAAY,GAAG,EACnC,KAAC,QAAQ,IAAC,SAAS,EAAC,YAAY,GAAG,EACnC,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,IAC7B,IACF,CACR,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAwB;IACnE,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,KAAM,KAAK,aACpD,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,EAClC,MAAC,IAAI,IAAC,SAAS,EAAC,OAAO,aACrB,KAAC,QAAQ,IAAC,SAAS,EAAC,YAAY,GAAG,EACnC,KAAC,QAAQ,IAAC,SAAS,EAAC,YAAY,GAAG,EACnC,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,EAClC,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,IAC7B,IACF,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAC9B,OAAO,GAAG,MAAM,EAChB,IAAI,GAAG,CAAC,EACR,SAAS,EACT,GAAG,KAAK,EACa;IACrB,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,KAAC,WAAW,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,KAAM,KAAK,GAAI,CAAC;IACtE,CAAC;IACD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,KAAC,WAAW,IAAC,SAAS,EAAE,SAAS,KAAM,KAAK,GAAI,CAAC;IAC1D,CAAC;IACD,OAAO,KAAC,cAAc,IAAC,SAAS,EAAE,SAAS,KAAM,KAAK,GAAI,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Component, type ErrorInfo, type ReactNode } from 'react';
|
|
2
|
+
export interface ErrorBoundaryProps {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
/** Custom fallback. If not provided, uses ErrorState. */
|
|
5
|
+
fallback?: ReactNode | ((error: Error, reset: () => void) => ReactNode);
|
|
6
|
+
/** Called when error is caught. */
|
|
7
|
+
onError?: (error: Error, errorInfo: ErrorInfo) => void;
|
|
8
|
+
}
|
|
9
|
+
interface ErrorBoundaryState {
|
|
10
|
+
error: Error | null;
|
|
11
|
+
}
|
|
12
|
+
export declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
|
|
13
|
+
state: ErrorBoundaryState;
|
|
14
|
+
static getDerivedStateFromError(error: Error): ErrorBoundaryState;
|
|
15
|
+
componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
|
|
16
|
+
reset: () => void;
|
|
17
|
+
render(): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=error-boundary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-boundary.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/error-boundary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKlE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC,CAAC;IACxE,mCAAmC;IACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;CACxD;AAED,UAAU,kBAAkB;IAC1B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAID,qBAAa,aAAc,SAAQ,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAClF,KAAK,EAAE,kBAAkB,CAAmB;IAE5C,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB;IAIjE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;IAIpD,KAAK,aAEH;IAEF,MAAM;CAgBP"}
|