@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.
Files changed (100) hide show
  1. package/README.md +192 -44
  2. package/dist/blocks/chat/chat.js +1 -1
  3. package/dist/blocks/chat/chat.js.map +1 -1
  4. package/dist/blocks/datepicker/date-range-picker-modal.js +1 -1
  5. package/dist/blocks/datepicker/date-range-picker-modal.js.map +1 -1
  6. package/dist/blocks/datepicker/datepicker-modal.js +1 -1
  7. package/dist/blocks/datepicker/datepicker-modal.js.map +1 -1
  8. package/dist/blocks/layout/confirm-action-sheet.js +1 -1
  9. package/dist/blocks/layout/confirm-action-sheet.js.map +1 -1
  10. package/dist/blocks/layout/content-skeleton.d.ts +9 -0
  11. package/dist/blocks/layout/content-skeleton.d.ts.map +1 -0
  12. package/dist/blocks/layout/content-skeleton.js +27 -0
  13. package/dist/blocks/layout/content-skeleton.js.map +1 -0
  14. package/dist/blocks/layout/error-boundary.d.ts +20 -0
  15. package/dist/blocks/layout/error-boundary.d.ts.map +1 -0
  16. package/dist/blocks/layout/error-boundary.js +31 -0
  17. package/dist/blocks/layout/error-boundary.js.map +1 -0
  18. package/dist/blocks/layout/index.d.ts +6 -0
  19. package/dist/blocks/layout/index.d.ts.map +1 -1
  20. package/dist/blocks/layout/index.js +5 -0
  21. package/dist/blocks/layout/index.js.map +1 -1
  22. package/dist/blocks/layout/page-skeleton.d.ts +15 -0
  23. package/dist/blocks/layout/page-skeleton.d.ts.map +1 -0
  24. package/dist/blocks/layout/page-skeleton.js +46 -0
  25. package/dist/blocks/layout/page-skeleton.js.map +1 -0
  26. package/dist/blocks/layout/pull-to-refresh-scroll-view.d.ts +9 -0
  27. package/dist/blocks/layout/pull-to-refresh-scroll-view.d.ts.map +1 -0
  28. package/dist/blocks/layout/pull-to-refresh-scroll-view.js +11 -0
  29. package/dist/blocks/layout/pull-to-refresh-scroll-view.js.map +1 -0
  30. package/dist/blocks/layout/sheet.d.ts +30 -0
  31. package/dist/blocks/layout/sheet.d.ts.map +1 -0
  32. package/dist/blocks/layout/sheet.js +52 -0
  33. package/dist/blocks/layout/sheet.js.map +1 -0
  34. package/dist/blocks/layout/smart-input.js +1 -1
  35. package/dist/blocks/layout/smart-input.js.map +1 -1
  36. package/dist/components/badge/badge.d.ts.map +1 -1
  37. package/dist/components/badge/badge.js +2 -1
  38. package/dist/components/badge/badge.js.map +1 -1
  39. package/dist/components/button/button.d.ts.map +1 -1
  40. package/dist/components/button/button.js +2 -2
  41. package/dist/components/button/button.js.map +1 -1
  42. package/dist/components/card/card.d.ts +3 -3
  43. package/dist/components/card/card.d.ts.map +1 -1
  44. package/dist/components/card/card.js +2 -1
  45. package/dist/components/card/card.js.map +1 -1
  46. package/dist/components/checkbox/checkbox.d.ts.map +1 -1
  47. package/dist/components/checkbox/checkbox.js +1 -1
  48. package/dist/components/checkbox/checkbox.js.map +1 -1
  49. package/dist/components/form-field/form-field.js +1 -1
  50. package/dist/components/form-field/form-field.js.map +1 -1
  51. package/dist/components/input/input.d.ts +2 -2
  52. package/dist/components/input/input.js +3 -3
  53. package/dist/components/input/input.js.map +1 -1
  54. package/dist/components/label/label.js +3 -3
  55. package/dist/components/label/label.js.map +1 -1
  56. package/dist/components/labeled-field/labeled-field.js +1 -1
  57. package/dist/components/labeled-field/labeled-field.js.map +1 -1
  58. package/dist/components/numeric-input/numeric-input.d.ts +2 -2
  59. package/dist/components/numeric-input/numeric-input.d.ts.map +1 -1
  60. package/dist/components/numeric-input/numeric-input.js +12 -5
  61. package/dist/components/numeric-input/numeric-input.js.map +1 -1
  62. package/dist/components/radio-group/radio-group.d.ts.map +1 -1
  63. package/dist/components/radio-group/radio-group.js +1 -1
  64. package/dist/components/radio-group/radio-group.js.map +1 -1
  65. package/dist/components/segmented-control/segmented-control.d.ts +60 -3
  66. package/dist/components/segmented-control/segmented-control.d.ts.map +1 -1
  67. package/dist/components/segmented-control/segmented-control.js +17 -5
  68. package/dist/components/segmented-control/segmented-control.js.map +1 -1
  69. package/dist/components/select/select.js +1 -1
  70. package/dist/components/select/select.js.map +1 -1
  71. package/dist/components/skeleton/index.d.ts +1 -1
  72. package/dist/components/skeleton/index.d.ts.map +1 -1
  73. package/dist/components/skeleton/index.js +1 -1
  74. package/dist/components/skeleton/index.js.map +1 -1
  75. package/dist/components/skeleton/skeleton.d.ts +40 -3
  76. package/dist/components/skeleton/skeleton.d.ts.map +1 -1
  77. package/dist/components/skeleton/skeleton.js +43 -9
  78. package/dist/components/skeleton/skeleton.js.map +1 -1
  79. package/dist/components/switch/switch.d.ts.map +1 -1
  80. package/dist/components/switch/switch.js +1 -1
  81. package/dist/components/switch/switch.js.map +1 -1
  82. package/dist/components/text/text.d.ts.map +1 -1
  83. package/dist/components/text/text.js +3 -3
  84. package/dist/components/text/text.js.map +1 -1
  85. package/dist/components/textarea/textarea.d.ts +2 -2
  86. package/dist/components/textarea/textarea.js +2 -2
  87. package/dist/components/textarea/textarea.js.map +1 -1
  88. package/dist/index.d.ts +3 -5
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +3 -5
  91. package/dist/index.js.map +1 -1
  92. package/dist/lib/font-context.d.ts +18 -3
  93. package/dist/lib/font-context.d.ts.map +1 -1
  94. package/dist/lib/font-context.js +27 -8
  95. package/dist/lib/font-context.js.map +1 -1
  96. package/dist/lib/theme-colors.d.ts +6 -0
  97. package/dist/lib/theme-colors.d.ts.map +1 -1
  98. package/dist/lib/theme-colors.js +7 -1
  99. package/dist/lib/theme-colors.js.map +1 -1
  100. 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 blocks use objects: `onSubmit({ email, password })`, `onSubmit({ firstName, lastName, email, password })`, etc. Wire to your auth service.
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`; flow patterns in README "Flow Patterns" section.
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 | SegmentedControl, SegmentedControlItem, SegmentedControlItemText with wrapping layout support |
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** | | Loading placeholder |
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 | Description |
270
- | ---------------------- | ----------------------------------------------------------------------- |
271
- | **ActionBar** | Sticky bottom action row with safe-area padding |
272
- | **ConfirmActionSheet** | Reusable destructive confirmation sheet |
273
- | **FormModalScreen** | Modal scaffold for forms with loading states |
274
- | **EmptyState** | Empty content placeholder |
275
- | **ErrorState** | Error display with retry |
276
- | **LoadingScreen** | Full-screen loading indicator |
277
- | **SmartInput** | Keyboard-aware compose input: left/center/right slots, bar/card variant |
278
- | **OnboardingScreen** | Onboarding flow screen |
279
- | **SplashScreen** | Branded splash (fade/scale/slide variants) |
280
- | **MinimalSplash** | Minimal monochrome splash |
281
- | **BrandedSplash** | Splash with brand imagery |
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
- | Block | Description |
294
- | ------------------- | ----------------------------------- |
295
- | **ProfileHeader** | Profile header with stats |
296
- | **AccountCard** | Account summary card |
297
- | **SettingsSection** | Section header with optional action |
298
- | **SettingsItem** | Row for toggles/links/settings |
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
- │ │ ├── auth/
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 (Release Baseline)
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 '@thewhileloop/whileui';
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 '@thewhileloop/whileui';
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 '@thewhileloop/whileui';
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 '@thewhileloop/whileui';
1533
+ import { SettingsSection, SettingsItem } from './templates/profile'; // or your path
1386
1534
 
1387
1535
  <SettingsSection title="Preferences">
1388
1536
  <SettingsItem
@@ -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-input bg-background px-4 py-2 active:bg-muted", children: _jsx(Text, { className: "text-sm text-foreground", children: text }) }, `${text}-${i}`))) }));
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":"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"}
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,sEAAsE,YAEhF,KAAC,IAAI,IAAC,SAAS,EAAC,yBAAyB,YAAE,IAAI,GAAQ,IANlD,GAAG,IAAI,IAAI,CAAC,EAAE,CAOT,CACb,CAAC,GACG,CACR,CAAC;AACJ,CAAC;AAED,gEAAgE;AAEhE,MAAM,UAAU,IAAI,CAAC,EACnB,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,MAAM,EACN,WAAW,GAAG,YAAY,EAC1B,WAAW,GAAG,EAAE,EAChB,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,OAAO,GAAG,KAAK,EACf,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,GAAG,IAAI,EACpB,sBAAsB,GAAG,CAAC,EAC1B,SAAS,EACT,iBAAiB,GACP;IACV,MAAM,SAAS,GAAG,MAAM,CAAa,IAAI,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IACtC,MAAM,eAAe,GAAG,OAAO,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IAE1D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IAEvC,MAAM,gBAAgB,GAAG,SAAS,IAAI,CACpC,KAAC,cAAc,IAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAI,CACxE,CAAC;IAEF,OAAO,CACL,MAAC,oBAAoB,IACnB,QAAQ,EAAE,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACvD,sBAAsB,EAAE,sBAAsB,EAC9C,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAClB,SAAS,EAAE,SAAS,aAEnB,MAAM,EACP,KAAC,UAAU,IACT,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAC1C,qBAAqB,EAAE;oBACrB,QAAQ,EAAE,CAAC;oBACX,aAAa,EAAE,CAAC;oBAChB,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;iBACxD,EACD,yBAAyB,EAAC,SAAS,YAElC,eAAe,CAAC,CAAC,CAAC,CACjB,MAAC,IAAI,IAAC,SAAS,EAAC,uBAAuB,aACpC,cAAc,IAAI,CACjB,KAAC,IAAI,IAAC,SAAS,EAAC,WAAW,YACxB,aAAa,CAAC,CAAC,CAAC,CACf,aAAa,CAAC,cAAc,CAAC,CAC9B,CAAC,CAAC,CAAC,CACF,KAAC,iBAAiB,IAAC,OAAO,EAAE,cAAc,GAAI,CAC/C,GACI,CACR,EACA,UAAU,IAAI,CACb,KAAC,IAAI,IAAC,SAAS,EAAC,sDAAsD,YACnE,UAAU,GACN,CACR,EACA,gBAAgB,IAAI,CACnB,KAAC,IAAI,IAAC,SAAS,EAAC,gDAAgD,YAC7D,gBAAgB,GACZ,CACR,EACD,KAAC,eAAe,IAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,GAAI,IACnF,CACR,CAAC,CAAC,CAAC,CACF,MAAC,IAAI,IAAC,SAAS,EAAC,iBAAiB,aAC9B,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACpB,aAAa,CAAC,CAAC,CAAC,CACd,KAAC,KAAK,CAAC,QAAQ,cAAe,aAAa,CAAC,GAAG,CAAC,IAA3B,GAAG,CAAC,EAAE,CAAuC,CACnE,CAAC,CAAC,CAAC,CACF,KAAC,iBAAiB,IAAc,OAAO,EAAE,GAAG,IAApB,GAAG,CAAC,EAAE,CAAkB,CACjD,CACF,EACA,OAAO,IAAI,gBAAgB,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,MAAM,YAAE,gBAAgB,GAAQ,IAC3E,CACR,GACU,EACb,KAAC,UAAU,IACT,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,EAAE,CAAC,OAAO,EAClB,QAAQ,EAAE,aAAa,GACvB,IACmB,CACxB,CAAC;AACJ,CAAC;AAED,iEAAiE;AAEjE,SAAS,cAAc,CAAC,EAAE,OAAO,EAAE,QAAQ,EAA+C;IACxF,OAAO,CACL,KAAC,SAAS,IACR,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAC,QAAQ,EAC1B,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,cAAc,EACjE,SAAS,EAAE,EAAE,CACX,oDAAoD,EACpD,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,8BAA8B,CAClE,YAED,KAAC,IAAI,IAAC,SAAS,EAAC,iCAAiC,uBAAS,GAChD,CACb,CAAC;AACJ,CAAC"}
@@ -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-input bg-background 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) })] }) }) })] }));
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":"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"}
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-input bg-background 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) })] }) }) })] }));
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":"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"}
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-input bg-background' : '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));
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"}