@thewhileloop/whileui 1.2.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +246 -83
- package/dist/blocks/chat/chat.d.ts +3 -4
- package/dist/blocks/chat/chat.js +29 -17
- package/dist/blocks/chat/index.d.ts +0 -1
- package/dist/blocks/chat/index.js +0 -1
- package/dist/blocks/commerce/checkout-summary.d.ts +1 -2
- package/dist/blocks/commerce/checkout-summary.js +16 -4
- package/dist/blocks/commerce/feature-gate.d.ts +1 -2
- package/dist/blocks/commerce/feature-gate.js +14 -4
- package/dist/blocks/commerce/index.d.ts +0 -1
- package/dist/blocks/commerce/index.js +0 -1
- package/dist/blocks/commerce/metric-card.d.ts +3 -4
- package/dist/blocks/commerce/metric-card.js +7 -3
- package/dist/blocks/commerce/plan-toggle.d.ts +1 -2
- package/dist/blocks/commerce/plan-toggle.js +11 -9
- package/dist/blocks/commerce/pricing-card.d.ts +1 -2
- package/dist/blocks/commerce/pricing-card.js +23 -6
- package/dist/blocks/commerce/product-card.d.ts +1 -2
- package/dist/blocks/commerce/product-card.js +23 -9
- package/dist/blocks/commerce/subscription-card.d.ts +1 -2
- package/dist/blocks/commerce/subscription-card.js +6 -3
- package/dist/blocks/commerce/upgrade-banner.d.ts +1 -2
- package/dist/blocks/commerce/upgrade-banner.js +13 -3
- package/dist/blocks/commerce/usage-bar.d.ts +1 -2
- package/dist/blocks/commerce/usage-bar.js +4 -2
- package/dist/blocks/datepicker/date-range-picker-modal.d.ts +2 -3
- package/dist/blocks/datepicker/date-range-picker-modal.js +33 -7
- package/dist/blocks/datepicker/datepicker-inline.d.ts +1 -2
- package/dist/blocks/datepicker/datepicker-inline.js +9 -3
- package/dist/blocks/datepicker/datepicker-modal.d.ts +2 -3
- package/dist/blocks/datepicker/datepicker-modal.js +49 -17
- package/dist/blocks/datepicker/index.d.ts +0 -1
- package/dist/blocks/datepicker/index.js +0 -1
- package/dist/blocks/datepicker/use-calendar-theme.d.ts +0 -1
- package/dist/blocks/datepicker/use-calendar-theme.js +0 -1
- package/dist/blocks/layout/action-bar.d.ts +1 -2
- package/dist/blocks/layout/action-bar.js +0 -1
- package/dist/blocks/layout/app-shell.d.ts +1 -2
- package/dist/blocks/layout/app-shell.js +11 -5
- package/dist/blocks/layout/confirm-action-sheet.d.ts +1 -2
- package/dist/blocks/layout/confirm-action-sheet.js +18 -6
- package/dist/blocks/layout/content-skeleton.d.ts +1 -2
- package/dist/blocks/layout/content-skeleton.js +22 -9
- package/dist/blocks/layout/docked-input.d.ts +11 -0
- package/dist/blocks/layout/docked-input.js +27 -0
- package/dist/blocks/layout/empty-state.d.ts +1 -2
- package/dist/blocks/layout/empty-state.js +10 -5
- package/dist/blocks/layout/error-boundary.d.ts +1 -2
- package/dist/blocks/layout/error-boundary.js +0 -2
- package/dist/blocks/layout/error-state.d.ts +1 -2
- package/dist/blocks/layout/error-state.js +0 -2
- package/dist/blocks/layout/form-modal-screen.d.ts +1 -2
- package/dist/blocks/layout/form-modal-screen.js +24 -21
- package/dist/blocks/layout/index.d.ts +2 -2
- package/dist/blocks/layout/index.js +2 -2
- package/dist/blocks/layout/keyboard-aware-screen.d.ts +14 -0
- package/dist/blocks/layout/keyboard-aware-screen.js +12 -0
- package/dist/blocks/layout/loading-screen.d.ts +1 -2
- package/dist/blocks/layout/loading-screen.js +6 -8
- package/dist/blocks/layout/page-skeleton.d.ts +1 -2
- package/dist/blocks/layout/page-skeleton.js +38 -20
- package/dist/blocks/layout/pull-to-refresh-scroll-view.d.ts +8 -4
- package/dist/blocks/layout/pull-to-refresh-scroll-view.js +17 -4
- package/dist/blocks/layout/screen-skeleton.d.ts +1 -2
- package/dist/blocks/layout/screen-skeleton.js +0 -1
- package/dist/blocks/layout/sheet.d.ts +9 -9
- package/dist/blocks/layout/sheet.js +51 -21
- package/dist/blocks/layout/smart-input.d.ts +6 -1
- package/dist/blocks/layout/smart-input.js +121 -9
- package/dist/blocks/lists/index.d.ts +0 -2
- package/dist/blocks/lists/index.js +0 -2
- package/dist/blocks/lists/list-item.d.ts +1 -2
- package/dist/blocks/lists/list-item.js +20 -6
- package/dist/blocks/lists/notification-item.d.ts +1 -2
- package/dist/blocks/lists/notification-item.js +19 -6
- package/dist/blocks/lists/timeline-feed.d.ts +1 -2
- package/dist/blocks/lists/timeline-feed.js +4 -2
- package/dist/blocks/media/index.d.ts +0 -1
- package/dist/blocks/media/index.js +0 -1
- package/dist/blocks/media/smart-image.d.ts +0 -1
- package/dist/blocks/media/smart-image.js +24 -8
- package/dist/blocks/navigation/bottom-nav.d.ts +1 -2
- package/dist/blocks/navigation/bottom-nav.js +7 -4
- package/dist/blocks/navigation/drawer-menu.d.ts +1 -2
- package/dist/blocks/navigation/drawer-menu.js +52 -15
- package/dist/blocks/navigation/floating-bottom-nav.d.ts +1 -2
- package/dist/blocks/navigation/floating-bottom-nav.js +14 -5
- package/dist/blocks/navigation/header.d.ts +2 -3
- package/dist/blocks/navigation/header.js +13 -5
- package/dist/blocks/navigation/index.d.ts +0 -2
- package/dist/blocks/navigation/index.js +0 -2
- package/dist/blocks/navigation/tab-bar.d.ts +1 -2
- package/dist/blocks/navigation/tab-bar.js +22 -10
- package/dist/blocks/splash/index.d.ts +0 -1
- package/dist/blocks/splash/index.js +0 -1
- package/dist/blocks/splash/splash-screen.d.ts +3 -4
- package/dist/blocks/splash/splash-screen.js +15 -11
- package/dist/components/accordion/accordion.d.ts +4 -5
- package/dist/components/accordion/accordion.js +6 -7
- package/dist/components/accordion/index.d.ts +0 -1
- package/dist/components/accordion/index.js +0 -1
- package/dist/components/alert/alert.d.ts +2 -3
- package/dist/components/alert/alert.js +19 -8
- package/dist/components/alert/index.d.ts +0 -1
- package/dist/components/alert/index.js +0 -1
- package/dist/components/alert-dialog/alert-dialog.d.ts +9 -10
- package/dist/components/alert-dialog/alert-dialog.js +175 -51
- package/dist/components/alert-dialog/index.d.ts +0 -1
- package/dist/components/alert-dialog/index.js +0 -1
- package/dist/components/aspect-ratio/aspect-ratio.d.ts +1 -2
- package/dist/components/aspect-ratio/aspect-ratio.js +0 -3
- package/dist/components/aspect-ratio/index.d.ts +0 -1
- package/dist/components/aspect-ratio/index.js +0 -1
- package/dist/components/avatar/avatar.d.ts +2 -3
- package/dist/components/avatar/avatar.js +7 -8
- package/dist/components/avatar/index.d.ts +0 -1
- package/dist/components/avatar/index.js +0 -1
- package/dist/components/badge/badge.d.ts +6 -7
- package/dist/components/badge/badge.js +21 -9
- package/dist/components/badge/index.d.ts +0 -1
- package/dist/components/badge/index.js +0 -1
- package/dist/components/button/button.d.ts +11 -10
- package/dist/components/button/button.js +62 -33
- package/dist/components/button/index.d.ts +0 -1
- package/dist/components/button/index.js +0 -1
- package/dist/components/card/card.d.ts +5 -3
- package/dist/components/card/card.js +28 -14
- package/dist/components/card/index.d.ts +0 -1
- package/dist/components/card/index.js +0 -1
- package/dist/components/checkbox/checkbox.d.ts +1 -2
- package/dist/components/checkbox/checkbox.js +15 -2
- package/dist/components/checkbox/index.d.ts +0 -1
- package/dist/components/checkbox/index.js +0 -1
- package/dist/components/collapsible/collapsible.d.ts +4 -4
- package/dist/components/collapsible/collapsible.js +8 -11
- package/dist/components/collapsible/index.d.ts +0 -1
- package/dist/components/collapsible/index.js +0 -1
- package/dist/components/container/container.d.ts +146 -0
- package/dist/components/container/container.js +43 -0
- package/dist/components/container/index.d.ts +1 -0
- package/dist/components/container/index.js +1 -0
- package/dist/components/context-menu/context-menu.d.ts +6 -7
- package/dist/components/context-menu/context-menu.js +42 -12
- package/dist/components/context-menu/index.d.ts +0 -1
- package/dist/components/context-menu/index.js +0 -1
- package/dist/components/data-row/data-row.d.ts +0 -1
- package/dist/components/data-row/data-row.js +35 -17
- package/dist/components/data-row/index.d.ts +0 -1
- package/dist/components/data-row/index.js +0 -1
- package/dist/components/dialog/dialog.d.ts +8 -9
- package/dist/components/dialog/dialog.js +48 -24
- package/dist/components/dialog/index.d.ts +0 -1
- package/dist/components/dialog/index.js +0 -1
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +6 -7
- package/dist/components/dropdown-menu/dropdown-menu.js +45 -11
- package/dist/components/dropdown-menu/index.d.ts +0 -1
- package/dist/components/dropdown-menu/index.js +0 -1
- package/dist/components/form-field/form-field.d.ts +0 -1
- package/dist/components/form-field/form-field.js +26 -13
- package/dist/components/form-field/index.d.ts +0 -1
- package/dist/components/form-field/index.js +0 -1
- package/dist/components/hover-card/hover-card.d.ts +1 -2
- package/dist/components/hover-card/hover-card.js +12 -3
- package/dist/components/hover-card/index.d.ts +0 -1
- package/dist/components/hover-card/index.js +0 -1
- package/dist/components/input/index.d.ts +0 -1
- package/dist/components/input/index.js +0 -1
- package/dist/components/input/input.d.ts +2 -3
- package/dist/components/input/input.js +18 -3
- package/dist/components/label/index.d.ts +0 -1
- package/dist/components/label/index.js +0 -1
- package/dist/components/label/label.d.ts +0 -1
- package/dist/components/label/label.js +0 -1
- package/dist/components/labeled-field/index.d.ts +0 -1
- package/dist/components/labeled-field/index.js +0 -1
- package/dist/components/labeled-field/labeled-field.d.ts +1 -2
- package/dist/components/labeled-field/labeled-field.js +10 -2
- package/dist/components/menubar/index.d.ts +0 -1
- package/dist/components/menubar/index.js +0 -1
- package/dist/components/menubar/menubar.d.ts +7 -8
- package/dist/components/menubar/menubar.js +48 -15
- package/dist/components/numeric-input/index.d.ts +0 -1
- package/dist/components/numeric-input/index.js +0 -1
- package/dist/components/numeric-input/numeric-input.d.ts +6 -5
- package/dist/components/numeric-input/numeric-input.js +55 -26
- package/dist/components/otp-input/index.d.ts +0 -1
- package/dist/components/otp-input/index.js +0 -1
- package/dist/components/otp-input/otp-input.d.ts +3 -4
- package/dist/components/otp-input/otp-input.js +13 -9
- package/dist/components/popover/index.d.ts +0 -1
- package/dist/components/popover/index.js +0 -1
- package/dist/components/popover/popover.d.ts +4 -2
- package/dist/components/popover/popover.js +21 -4
- package/dist/components/pressable/index.d.ts +0 -1
- package/dist/components/pressable/index.js +0 -1
- package/dist/components/pressable/pressable.d.ts +7 -1
- package/dist/components/pressable/pressable.js +47 -4
- package/dist/components/progress/index.d.ts +0 -1
- package/dist/components/progress/index.js +0 -1
- package/dist/components/progress/progress.d.ts +0 -1
- package/dist/components/progress/progress.js +5 -2
- package/dist/components/radio-group/index.d.ts +0 -1
- package/dist/components/radio-group/index.js +0 -1
- package/dist/components/radio-group/radio-group.d.ts +2 -3
- package/dist/components/radio-group/radio-group.js +16 -7
- package/dist/components/row/index.d.ts +0 -1
- package/dist/components/row/index.js +0 -1
- package/dist/components/row/row.d.ts +0 -1
- package/dist/components/row/row.js +0 -1
- package/dist/components/segmented-control/index.d.ts +0 -1
- package/dist/components/segmented-control/index.js +0 -1
- package/dist/components/segmented-control/segmented-control.d.ts +7 -8
- package/dist/components/segmented-control/segmented-control.js +57 -24
- package/dist/components/select/index.d.ts +0 -1
- package/dist/components/select/index.js +0 -1
- package/dist/components/select/select.d.ts +15 -7
- package/dist/components/select/select.js +53 -11
- package/dist/components/separator/index.d.ts +0 -1
- package/dist/components/separator/index.js +0 -1
- package/dist/components/separator/separator.d.ts +0 -1
- package/dist/components/separator/separator.js +0 -1
- package/dist/components/skeleton/index.d.ts +0 -1
- package/dist/components/skeleton/index.js +0 -1
- package/dist/components/skeleton/skeleton.d.ts +3 -4
- package/dist/components/skeleton/skeleton.js +7 -8
- package/dist/components/spinner/index.d.ts +0 -1
- package/dist/components/spinner/index.js +0 -1
- package/dist/components/spinner/spinner.d.ts +1 -2
- package/dist/components/spinner/spinner.js +4 -2
- package/dist/components/stack/index.d.ts +0 -1
- package/dist/components/stack/index.js +0 -1
- package/dist/components/stack/stack.d.ts +0 -1
- package/dist/components/stack/stack.js +0 -1
- package/dist/components/switch/index.d.ts +0 -1
- package/dist/components/switch/index.js +0 -1
- package/dist/components/switch/switch.d.ts +1 -2
- package/dist/components/switch/switch.js +21 -2
- package/dist/components/tabs/index.d.ts +0 -1
- package/dist/components/tabs/index.js +0 -1
- package/dist/components/tabs/tabs.d.ts +6 -7
- package/dist/components/tabs/tabs.js +42 -12
- package/dist/components/text/index.d.ts +0 -1
- package/dist/components/text/index.js +0 -1
- package/dist/components/text/text.d.ts +0 -1
- package/dist/components/text/text.js +0 -1
- package/dist/components/textarea/index.d.ts +0 -1
- package/dist/components/textarea/index.js +0 -1
- package/dist/components/textarea/textarea.d.ts +2 -3
- package/dist/components/textarea/textarea.js +16 -8
- package/dist/components/toast/index.d.ts +0 -1
- package/dist/components/toast/index.js +0 -1
- package/dist/components/toast/toast.d.ts +5 -6
- package/dist/components/toast/toast.js +40 -24
- package/dist/components/toggle/index.d.ts +0 -1
- package/dist/components/toggle/index.js +0 -1
- package/dist/components/toggle/toggle.d.ts +6 -7
- package/dist/components/toggle/toggle.js +32 -16
- package/dist/components/toggle-group/index.d.ts +0 -1
- package/dist/components/toggle-group/index.js +0 -1
- package/dist/components/toggle-group/toggle-group.d.ts +7 -8
- package/dist/components/toggle-group/toggle-group.js +36 -19
- package/dist/components/tooltip/index.d.ts +0 -1
- package/dist/components/tooltip/index.js +0 -1
- package/dist/components/tooltip/tooltip.d.ts +1 -2
- package/dist/components/tooltip/tooltip.js +20 -3
- package/dist/components/view/index.d.ts +0 -1
- package/dist/components/view/index.js +0 -1
- package/dist/components/view/view.d.ts +0 -1
- package/dist/components/view/view.js +0 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.js +9 -7
- package/dist/lib/cn.d.ts +0 -1
- package/dist/lib/cn.js +0 -1
- package/dist/lib/compose-event-handlers.d.ts +15 -0
- package/dist/lib/compose-event-handlers.js +20 -0
- package/dist/lib/focus-ring.d.ts +25 -0
- package/dist/lib/focus-ring.js +25 -0
- package/dist/lib/font-context.d.ts +1 -1
- package/dist/lib/font-context.js +6 -4
- package/dist/lib/frosted-surface.d.ts +0 -1
- package/dist/lib/frosted-surface.js +31 -6
- package/dist/lib/interaction-tokens.d.ts +12 -1
- package/dist/lib/interaction-tokens.js +27 -13
- package/dist/lib/motion-policy.d.ts +25 -0
- package/dist/lib/motion-policy.js +97 -0
- package/dist/lib/overlay-insets.d.ts +17 -0
- package/dist/lib/overlay-insets.js +23 -0
- package/dist/lib/portal.d.ts +0 -1
- package/dist/lib/portal.js +0 -1
- package/dist/lib/react-native-classname.d.ts +0 -1
- package/dist/lib/react-native-classname.js +0 -1
- package/dist/lib/recipes.d.ts +30 -0
- package/dist/lib/recipes.js +138 -0
- package/dist/lib/tap-only.d.ts +11 -0
- package/dist/lib/tap-only.js +24 -0
- package/dist/lib/theme-bridge.d.ts +0 -1
- package/dist/lib/theme-bridge.js +11 -3
- package/dist/lib/theme-colors.d.ts +2 -46
- package/dist/lib/theme-colors.js +25 -226
- package/dist/lib/theme-contract.d.ts +78 -0
- package/dist/lib/theme-contract.js +481 -0
- package/dist/lib/theme-derive.d.ts +4 -0
- package/dist/lib/theme-derive.js +80 -0
- package/dist/lib/theme-presets.d.ts +31 -0
- package/dist/lib/theme-presets.js +221 -0
- package/dist/lib/tv.d.ts +0 -1
- package/dist/lib/tv.js +0 -1
- package/dist/lib/visual-token-contract.d.ts +110 -0
- package/dist/lib/visual-token-contract.js +583 -0
- package/dist/lib/visual-tokens.d.ts +2 -38
- package/dist/lib/visual-tokens.js +22 -75
- package/dist/tokens.d.ts +4 -0
- package/dist/tokens.js +6 -0
- package/dist/vite.d.ts +0 -1
- package/dist/vite.js +0 -1
- package/package.json +30 -20
- package/dist/blocks/auth/forgot-password-form.d.ts +0 -10
- package/dist/blocks/auth/forgot-password-form.d.ts.map +0 -1
- package/dist/blocks/auth/forgot-password-form.js +0 -17
- package/dist/blocks/auth/forgot-password-form.js.map +0 -1
- package/dist/blocks/auth/index.d.ts +0 -8
- package/dist/blocks/auth/index.d.ts.map +0 -1
- package/dist/blocks/auth/index.js +0 -8
- package/dist/blocks/auth/index.js.map +0 -1
- package/dist/blocks/auth/reset-password-form.d.ts +0 -9
- package/dist/blocks/auth/reset-password-form.d.ts.map +0 -1
- package/dist/blocks/auth/reset-password-form.js +0 -16
- package/dist/blocks/auth/reset-password-form.js.map +0 -1
- package/dist/blocks/auth/sign-in-form.d.ts +0 -17
- package/dist/blocks/auth/sign-in-form.d.ts.map +0 -1
- package/dist/blocks/auth/sign-in-form.js +0 -19
- package/dist/blocks/auth/sign-in-form.js.map +0 -1
- package/dist/blocks/auth/sign-up-form.d.ts +0 -17
- package/dist/blocks/auth/sign-up-form.d.ts.map +0 -1
- package/dist/blocks/auth/sign-up-form.js +0 -21
- package/dist/blocks/auth/sign-up-form.js.map +0 -1
- package/dist/blocks/auth/social-connections.d.ts +0 -10
- package/dist/blocks/auth/social-connections.d.ts.map +0 -1
- package/dist/blocks/auth/social-connections.js +0 -8
- package/dist/blocks/auth/social-connections.js.map +0 -1
- package/dist/blocks/auth/user-menu.d.ts +0 -12
- package/dist/blocks/auth/user-menu.d.ts.map +0 -1
- package/dist/blocks/auth/user-menu.js +0 -10
- package/dist/blocks/auth/user-menu.js.map +0 -1
- package/dist/blocks/auth/verify-email-form.d.ts +0 -10
- package/dist/blocks/auth/verify-email-form.d.ts.map +0 -1
- package/dist/blocks/auth/verify-email-form.js +0 -17
- package/dist/blocks/auth/verify-email-form.js.map +0 -1
- package/dist/blocks/chat/chat.d.ts.map +0 -1
- package/dist/blocks/chat/chat.js.map +0 -1
- package/dist/blocks/chat/index.d.ts.map +0 -1
- package/dist/blocks/chat/index.js.map +0 -1
- package/dist/blocks/commerce/checkout-summary.d.ts.map +0 -1
- package/dist/blocks/commerce/checkout-summary.js.map +0 -1
- package/dist/blocks/commerce/feature-gate.d.ts.map +0 -1
- package/dist/blocks/commerce/feature-gate.js.map +0 -1
- package/dist/blocks/commerce/index.d.ts.map +0 -1
- package/dist/blocks/commerce/index.js.map +0 -1
- package/dist/blocks/commerce/metric-card.d.ts.map +0 -1
- package/dist/blocks/commerce/metric-card.js.map +0 -1
- package/dist/blocks/commerce/plan-toggle.d.ts.map +0 -1
- package/dist/blocks/commerce/plan-toggle.js.map +0 -1
- package/dist/blocks/commerce/pricing-card.d.ts.map +0 -1
- package/dist/blocks/commerce/pricing-card.js.map +0 -1
- package/dist/blocks/commerce/product-card.d.ts.map +0 -1
- package/dist/blocks/commerce/product-card.js.map +0 -1
- package/dist/blocks/commerce/subscription-card.d.ts.map +0 -1
- package/dist/blocks/commerce/subscription-card.js.map +0 -1
- package/dist/blocks/commerce/upgrade-banner.d.ts.map +0 -1
- package/dist/blocks/commerce/upgrade-banner.js.map +0 -1
- package/dist/blocks/commerce/usage-bar.d.ts.map +0 -1
- package/dist/blocks/commerce/usage-bar.js.map +0 -1
- package/dist/blocks/datepicker/date-range-picker-modal.d.ts.map +0 -1
- package/dist/blocks/datepicker/date-range-picker-modal.js.map +0 -1
- package/dist/blocks/datepicker/datepicker-inline.d.ts.map +0 -1
- package/dist/blocks/datepicker/datepicker-inline.js.map +0 -1
- package/dist/blocks/datepicker/datepicker-modal.d.ts.map +0 -1
- package/dist/blocks/datepicker/datepicker-modal.js.map +0 -1
- package/dist/blocks/datepicker/index.d.ts.map +0 -1
- package/dist/blocks/datepicker/index.js.map +0 -1
- package/dist/blocks/datepicker/use-calendar-theme.d.ts.map +0 -1
- package/dist/blocks/datepicker/use-calendar-theme.js.map +0 -1
- package/dist/blocks/layout/action-bar.d.ts.map +0 -1
- package/dist/blocks/layout/action-bar.js.map +0 -1
- package/dist/blocks/layout/app-shell.d.ts.map +0 -1
- package/dist/blocks/layout/app-shell.js.map +0 -1
- package/dist/blocks/layout/confirm-action-sheet.d.ts.map +0 -1
- package/dist/blocks/layout/confirm-action-sheet.js.map +0 -1
- package/dist/blocks/layout/content-skeleton.d.ts.map +0 -1
- package/dist/blocks/layout/content-skeleton.js.map +0 -1
- package/dist/blocks/layout/empty-state.d.ts.map +0 -1
- package/dist/blocks/layout/empty-state.js.map +0 -1
- package/dist/blocks/layout/error-boundary.d.ts.map +0 -1
- package/dist/blocks/layout/error-boundary.js.map +0 -1
- package/dist/blocks/layout/error-state.d.ts.map +0 -1
- package/dist/blocks/layout/error-state.js.map +0 -1
- package/dist/blocks/layout/form-modal-screen.d.ts.map +0 -1
- package/dist/blocks/layout/form-modal-screen.js.map +0 -1
- package/dist/blocks/layout/index.d.ts.map +0 -1
- package/dist/blocks/layout/index.js.map +0 -1
- package/dist/blocks/layout/loading-screen.d.ts.map +0 -1
- package/dist/blocks/layout/loading-screen.js.map +0 -1
- package/dist/blocks/layout/onboarding-screen.d.ts +0 -19
- package/dist/blocks/layout/onboarding-screen.d.ts.map +0 -1
- package/dist/blocks/layout/onboarding-screen.js +0 -35
- package/dist/blocks/layout/onboarding-screen.js.map +0 -1
- package/dist/blocks/layout/page-skeleton.d.ts.map +0 -1
- package/dist/blocks/layout/page-skeleton.js.map +0 -1
- package/dist/blocks/layout/pull-to-refresh-scroll-view.d.ts.map +0 -1
- package/dist/blocks/layout/pull-to-refresh-scroll-view.js.map +0 -1
- package/dist/blocks/layout/screen-skeleton.d.ts.map +0 -1
- package/dist/blocks/layout/screen-skeleton.js.map +0 -1
- package/dist/blocks/layout/sheet.d.ts.map +0 -1
- package/dist/blocks/layout/sheet.js.map +0 -1
- package/dist/blocks/layout/smart-image.d.ts +0 -9
- package/dist/blocks/layout/smart-image.d.ts.map +0 -1
- package/dist/blocks/layout/smart-image.js +0 -23
- package/dist/blocks/layout/smart-image.js.map +0 -1
- package/dist/blocks/layout/smart-input.d.ts.map +0 -1
- package/dist/blocks/layout/smart-input.js.map +0 -1
- package/dist/blocks/lists/index.d.ts.map +0 -1
- package/dist/blocks/lists/index.js.map +0 -1
- package/dist/blocks/lists/list-item.d.ts.map +0 -1
- package/dist/blocks/lists/list-item.js.map +0 -1
- package/dist/blocks/lists/notification-item.d.ts.map +0 -1
- package/dist/blocks/lists/notification-item.js.map +0 -1
- package/dist/blocks/lists/swipeable-item.d.ts +0 -17
- package/dist/blocks/lists/swipeable-item.d.ts.map +0 -1
- package/dist/blocks/lists/swipeable-item.js +0 -65
- package/dist/blocks/lists/swipeable-item.js.map +0 -1
- package/dist/blocks/lists/timeline-feed.d.ts.map +0 -1
- package/dist/blocks/lists/timeline-feed.js.map +0 -1
- package/dist/blocks/media/index.d.ts.map +0 -1
- package/dist/blocks/media/index.js.map +0 -1
- package/dist/blocks/media/smart-image.d.ts.map +0 -1
- package/dist/blocks/media/smart-image.js.map +0 -1
- package/dist/blocks/navigation/bottom-nav.d.ts.map +0 -1
- package/dist/blocks/navigation/bottom-nav.js.map +0 -1
- package/dist/blocks/navigation/drawer-menu.d.ts.map +0 -1
- package/dist/blocks/navigation/drawer-menu.js.map +0 -1
- package/dist/blocks/navigation/floating-bottom-nav.d.ts.map +0 -1
- package/dist/blocks/navigation/floating-bottom-nav.js.map +0 -1
- package/dist/blocks/navigation/header.d.ts.map +0 -1
- package/dist/blocks/navigation/header.js.map +0 -1
- package/dist/blocks/navigation/index.d.ts.map +0 -1
- package/dist/blocks/navigation/index.js.map +0 -1
- package/dist/blocks/navigation/navigation-sidebar.d.ts +0 -25
- package/dist/blocks/navigation/navigation-sidebar.d.ts.map +0 -1
- package/dist/blocks/navigation/navigation-sidebar.js +0 -18
- package/dist/blocks/navigation/navigation-sidebar.js.map +0 -1
- package/dist/blocks/navigation/tab-bar.d.ts.map +0 -1
- package/dist/blocks/navigation/tab-bar.js.map +0 -1
- package/dist/blocks/profile/account-card.d.ts +0 -11
- package/dist/blocks/profile/account-card.d.ts.map +0 -1
- package/dist/blocks/profile/account-card.js +0 -10
- package/dist/blocks/profile/account-card.js.map +0 -1
- package/dist/blocks/profile/index.d.ts +0 -5
- package/dist/blocks/profile/index.d.ts.map +0 -1
- package/dist/blocks/profile/index.js +0 -5
- package/dist/blocks/profile/index.js.map +0 -1
- package/dist/blocks/profile/profile-header.d.ts +0 -27
- package/dist/blocks/profile/profile-header.d.ts.map +0 -1
- package/dist/blocks/profile/profile-header.js +0 -11
- package/dist/blocks/profile/profile-header.js.map +0 -1
- package/dist/blocks/profile/settings-item.d.ts +0 -15
- package/dist/blocks/profile/settings-item.d.ts.map +0 -1
- package/dist/blocks/profile/settings-item.js +0 -11
- package/dist/blocks/profile/settings-item.js.map +0 -1
- package/dist/blocks/profile/settings-section.d.ts +0 -7
- package/dist/blocks/profile/settings-section.d.ts.map +0 -1
- package/dist/blocks/profile/settings-section.js +0 -9
- package/dist/blocks/profile/settings-section.js.map +0 -1
- package/dist/blocks/splash/index.d.ts.map +0 -1
- package/dist/blocks/splash/index.js.map +0 -1
- package/dist/blocks/splash/splash-screen.d.ts.map +0 -1
- package/dist/blocks/splash/splash-screen.js.map +0 -1
- package/dist/components/accordion/accordion.d.ts.map +0 -1
- package/dist/components/accordion/accordion.js.map +0 -1
- package/dist/components/accordion/index.d.ts.map +0 -1
- package/dist/components/accordion/index.js.map +0 -1
- package/dist/components/alert/alert.d.ts.map +0 -1
- package/dist/components/alert/alert.js.map +0 -1
- package/dist/components/alert/index.d.ts.map +0 -1
- package/dist/components/alert/index.js.map +0 -1
- package/dist/components/alert-dialog/alert-dialog.d.ts.map +0 -1
- package/dist/components/alert-dialog/alert-dialog.js.map +0 -1
- package/dist/components/alert-dialog/index.d.ts.map +0 -1
- package/dist/components/alert-dialog/index.js.map +0 -1
- package/dist/components/aspect-ratio/aspect-ratio.d.ts.map +0 -1
- package/dist/components/aspect-ratio/aspect-ratio.js.map +0 -1
- package/dist/components/aspect-ratio/index.d.ts.map +0 -1
- package/dist/components/aspect-ratio/index.js.map +0 -1
- package/dist/components/avatar/avatar.d.ts.map +0 -1
- package/dist/components/avatar/avatar.js.map +0 -1
- package/dist/components/avatar/index.d.ts.map +0 -1
- package/dist/components/avatar/index.js.map +0 -1
- package/dist/components/badge/badge.d.ts.map +0 -1
- package/dist/components/badge/badge.js.map +0 -1
- package/dist/components/badge/index.d.ts.map +0 -1
- package/dist/components/badge/index.js.map +0 -1
- package/dist/components/box/box.d.ts +0 -143
- package/dist/components/box/box.d.ts.map +0 -1
- package/dist/components/box/box.js +0 -38
- package/dist/components/box/box.js.map +0 -1
- package/dist/components/box/index.d.ts +0 -2
- package/dist/components/box/index.d.ts.map +0 -1
- package/dist/components/box/index.js +0 -2
- package/dist/components/box/index.js.map +0 -1
- package/dist/components/button/button.d.ts.map +0 -1
- package/dist/components/button/button.js.map +0 -1
- package/dist/components/button/index.d.ts.map +0 -1
- package/dist/components/button/index.js.map +0 -1
- package/dist/components/card/card.d.ts.map +0 -1
- package/dist/components/card/card.js.map +0 -1
- package/dist/components/card/index.d.ts.map +0 -1
- package/dist/components/card/index.js.map +0 -1
- package/dist/components/checkbox/checkbox.d.ts.map +0 -1
- package/dist/components/checkbox/checkbox.js.map +0 -1
- package/dist/components/checkbox/index.d.ts.map +0 -1
- package/dist/components/checkbox/index.js.map +0 -1
- package/dist/components/collapsible/collapsible.d.ts.map +0 -1
- package/dist/components/collapsible/collapsible.js.map +0 -1
- package/dist/components/collapsible/index.d.ts.map +0 -1
- package/dist/components/collapsible/index.js.map +0 -1
- package/dist/components/context-menu/context-menu.d.ts.map +0 -1
- package/dist/components/context-menu/context-menu.js.map +0 -1
- package/dist/components/context-menu/index.d.ts.map +0 -1
- package/dist/components/context-menu/index.js.map +0 -1
- package/dist/components/data-row/data-row.d.ts.map +0 -1
- package/dist/components/data-row/data-row.js.map +0 -1
- package/dist/components/data-row/index.d.ts.map +0 -1
- package/dist/components/data-row/index.js.map +0 -1
- package/dist/components/dialog/dialog.d.ts.map +0 -1
- package/dist/components/dialog/dialog.js.map +0 -1
- package/dist/components/dialog/index.d.ts.map +0 -1
- package/dist/components/dialog/index.js.map +0 -1
- package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +0 -1
- package/dist/components/dropdown-menu/dropdown-menu.js.map +0 -1
- package/dist/components/dropdown-menu/index.d.ts.map +0 -1
- package/dist/components/dropdown-menu/index.js.map +0 -1
- package/dist/components/form-field/form-field.d.ts.map +0 -1
- package/dist/components/form-field/form-field.js.map +0 -1
- package/dist/components/form-field/index.d.ts.map +0 -1
- package/dist/components/form-field/index.js.map +0 -1
- package/dist/components/hover-card/hover-card.d.ts.map +0 -1
- package/dist/components/hover-card/hover-card.js.map +0 -1
- package/dist/components/hover-card/index.d.ts.map +0 -1
- package/dist/components/hover-card/index.js.map +0 -1
- package/dist/components/input/index.d.ts.map +0 -1
- package/dist/components/input/index.js.map +0 -1
- package/dist/components/input/input.d.ts.map +0 -1
- package/dist/components/input/input.js.map +0 -1
- package/dist/components/label/index.d.ts.map +0 -1
- package/dist/components/label/index.js.map +0 -1
- package/dist/components/label/label.d.ts.map +0 -1
- package/dist/components/label/label.js.map +0 -1
- package/dist/components/labeled-field/index.d.ts.map +0 -1
- package/dist/components/labeled-field/index.js.map +0 -1
- package/dist/components/labeled-field/labeled-field.d.ts.map +0 -1
- package/dist/components/labeled-field/labeled-field.js.map +0 -1
- package/dist/components/layout/index.d.ts +0 -2
- package/dist/components/layout/index.d.ts.map +0 -1
- package/dist/components/layout/index.js +0 -2
- package/dist/components/layout/index.js.map +0 -1
- package/dist/components/layout/layout.d.ts +0 -395
- package/dist/components/layout/layout.d.ts.map +0 -1
- package/dist/components/layout/layout.js +0 -93
- package/dist/components/layout/layout.js.map +0 -1
- package/dist/components/menubar/index.d.ts.map +0 -1
- package/dist/components/menubar/index.js.map +0 -1
- package/dist/components/menubar/menubar.d.ts.map +0 -1
- package/dist/components/menubar/menubar.js.map +0 -1
- package/dist/components/numeric-input/index.d.ts.map +0 -1
- package/dist/components/numeric-input/index.js.map +0 -1
- package/dist/components/numeric-input/numeric-input.d.ts.map +0 -1
- package/dist/components/numeric-input/numeric-input.js.map +0 -1
- package/dist/components/otp-input/index.d.ts.map +0 -1
- package/dist/components/otp-input/index.js.map +0 -1
- package/dist/components/otp-input/otp-input.d.ts.map +0 -1
- package/dist/components/otp-input/otp-input.js.map +0 -1
- package/dist/components/popover/index.d.ts.map +0 -1
- package/dist/components/popover/index.js.map +0 -1
- package/dist/components/popover/popover.d.ts.map +0 -1
- package/dist/components/popover/popover.js.map +0 -1
- package/dist/components/pressable/index.d.ts.map +0 -1
- package/dist/components/pressable/index.js.map +0 -1
- package/dist/components/pressable/pressable.d.ts.map +0 -1
- package/dist/components/pressable/pressable.js.map +0 -1
- package/dist/components/progress/index.d.ts.map +0 -1
- package/dist/components/progress/index.js.map +0 -1
- package/dist/components/progress/progress.d.ts.map +0 -1
- package/dist/components/progress/progress.js.map +0 -1
- package/dist/components/radio-group/index.d.ts.map +0 -1
- package/dist/components/radio-group/index.js.map +0 -1
- package/dist/components/radio-group/radio-group.d.ts.map +0 -1
- package/dist/components/radio-group/radio-group.js.map +0 -1
- package/dist/components/row/index.d.ts.map +0 -1
- package/dist/components/row/index.js.map +0 -1
- package/dist/components/row/row.d.ts.map +0 -1
- package/dist/components/row/row.js.map +0 -1
- package/dist/components/segmented-control/index.d.ts.map +0 -1
- package/dist/components/segmented-control/index.js.map +0 -1
- package/dist/components/segmented-control/segmented-control.d.ts.map +0 -1
- package/dist/components/segmented-control/segmented-control.js.map +0 -1
- package/dist/components/select/index.d.ts.map +0 -1
- package/dist/components/select/index.js.map +0 -1
- package/dist/components/select/select.d.ts.map +0 -1
- package/dist/components/select/select.js.map +0 -1
- package/dist/components/separator/index.d.ts.map +0 -1
- package/dist/components/separator/index.js.map +0 -1
- package/dist/components/separator/separator.d.ts.map +0 -1
- package/dist/components/separator/separator.js.map +0 -1
- package/dist/components/skeleton/index.d.ts.map +0 -1
- package/dist/components/skeleton/index.js.map +0 -1
- package/dist/components/skeleton/skeleton.d.ts.map +0 -1
- package/dist/components/skeleton/skeleton.js.map +0 -1
- package/dist/components/spinner/index.d.ts.map +0 -1
- package/dist/components/spinner/index.js.map +0 -1
- package/dist/components/spinner/spinner.d.ts.map +0 -1
- package/dist/components/spinner/spinner.js.map +0 -1
- package/dist/components/stack/index.d.ts.map +0 -1
- package/dist/components/stack/index.js.map +0 -1
- package/dist/components/stack/stack.d.ts.map +0 -1
- package/dist/components/stack/stack.js.map +0 -1
- package/dist/components/switch/index.d.ts.map +0 -1
- package/dist/components/switch/index.js.map +0 -1
- package/dist/components/switch/switch.d.ts.map +0 -1
- package/dist/components/switch/switch.js.map +0 -1
- package/dist/components/tabs/index.d.ts.map +0 -1
- package/dist/components/tabs/index.js.map +0 -1
- package/dist/components/tabs/tabs.d.ts.map +0 -1
- package/dist/components/tabs/tabs.js.map +0 -1
- package/dist/components/text/index.d.ts.map +0 -1
- package/dist/components/text/index.js.map +0 -1
- package/dist/components/text/text.d.ts.map +0 -1
- package/dist/components/text/text.js.map +0 -1
- package/dist/components/textarea/index.d.ts.map +0 -1
- package/dist/components/textarea/index.js.map +0 -1
- package/dist/components/textarea/textarea.d.ts.map +0 -1
- package/dist/components/textarea/textarea.js.map +0 -1
- package/dist/components/toast/index.d.ts.map +0 -1
- package/dist/components/toast/index.js.map +0 -1
- package/dist/components/toast/toast.d.ts.map +0 -1
- package/dist/components/toast/toast.js.map +0 -1
- package/dist/components/toggle/index.d.ts.map +0 -1
- package/dist/components/toggle/index.js.map +0 -1
- package/dist/components/toggle/toggle.d.ts.map +0 -1
- package/dist/components/toggle/toggle.js.map +0 -1
- package/dist/components/toggle-group/index.d.ts.map +0 -1
- package/dist/components/toggle-group/index.js.map +0 -1
- package/dist/components/toggle-group/toggle-group.d.ts.map +0 -1
- package/dist/components/toggle-group/toggle-group.js.map +0 -1
- package/dist/components/tooltip/index.d.ts.map +0 -1
- package/dist/components/tooltip/index.js.map +0 -1
- package/dist/components/tooltip/tooltip.d.ts.map +0 -1
- package/dist/components/tooltip/tooltip.js.map +0 -1
- package/dist/components/view/index.d.ts.map +0 -1
- package/dist/components/view/index.js.map +0 -1
- package/dist/components/view/view.d.ts.map +0 -1
- package/dist/components/view/view.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/cn.d.ts.map +0 -1
- package/dist/lib/cn.js.map +0 -1
- package/dist/lib/font-context.d.ts.map +0 -1
- package/dist/lib/font-context.js.map +0 -1
- package/dist/lib/frosted-surface.d.ts.map +0 -1
- package/dist/lib/frosted-surface.js.map +0 -1
- package/dist/lib/index.d.ts +0 -6
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/index.js +0 -6
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/interaction-tokens.d.ts.map +0 -1
- package/dist/lib/interaction-tokens.js.map +0 -1
- package/dist/lib/portal.d.ts.map +0 -1
- package/dist/lib/portal.js.map +0 -1
- package/dist/lib/react-native-classname.d.ts.map +0 -1
- package/dist/lib/react-native-classname.js.map +0 -1
- package/dist/lib/theme-bridge.d.ts.map +0 -1
- package/dist/lib/theme-bridge.js.map +0 -1
- package/dist/lib/theme-colors.d.ts.map +0 -1
- package/dist/lib/theme-colors.js.map +0 -1
- package/dist/lib/tv.d.ts.map +0 -1
- package/dist/lib/tv.js.map +0 -1
- package/dist/lib/visual-tokens.d.ts.map +0 -1
- package/dist/lib/visual-tokens.js.map +0 -1
- package/dist/vite.d.ts.map +0 -1
- package/dist/vite.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import React, { createContext, useContext, useState, useCallback } from 'react';
|
|
2
|
+
import React, { createContext, useContext, useState, useCallback, useMemo } from 'react';
|
|
3
3
|
import { View, Pressable } from 'react-native';
|
|
4
4
|
import Animated, { useSharedValue, useAnimatedStyle, withTiming, Easing, } from 'react-native-reanimated';
|
|
5
5
|
import { cn } from '../../lib/cn';
|
|
@@ -14,7 +14,6 @@ const AccordionItemContext = createContext({
|
|
|
14
14
|
value: '',
|
|
15
15
|
isOpen: false,
|
|
16
16
|
});
|
|
17
|
-
// ─── Components ──────────────────────────────────────────────
|
|
18
17
|
function Accordion({ type = 'single', defaultValue, collapsible = true, className, children, ...props }) {
|
|
19
18
|
const [value, setValue] = useState(() => {
|
|
20
19
|
if (!defaultValue)
|
|
@@ -35,12 +34,14 @@ function Accordion({ type = 'single', defaultValue, collapsible = true, classNam
|
|
|
35
34
|
return [...prev, itemValue];
|
|
36
35
|
});
|
|
37
36
|
}, [type, collapsible]);
|
|
38
|
-
|
|
37
|
+
const contextValue = useMemo(() => ({ type, value, onValueChange, collapsible }), [collapsible, onValueChange, type, value]);
|
|
38
|
+
return (_jsx(AccordionContext.Provider, { value: contextValue, children: _jsx(View, { className: cn('w-full', className), ...props, children: children }) }));
|
|
39
39
|
}
|
|
40
40
|
function AccordionItem({ value, className, children, ...props }) {
|
|
41
41
|
const { value: selectedValues } = useContext(AccordionContext);
|
|
42
42
|
const isOpen = selectedValues.includes(value);
|
|
43
|
-
|
|
43
|
+
const contextValue = useMemo(() => ({ value, isOpen }), [isOpen, value]);
|
|
44
|
+
return (_jsx(AccordionItemContext.Provider, { value: contextValue, children: _jsx(View, { className: cn('border-b border-border', className), ...props, children: children }) }));
|
|
44
45
|
}
|
|
45
46
|
function AccordionTrigger({ className, children, style: styleProp, ...props }) {
|
|
46
47
|
const { onValueChange } = useContext(AccordionContext);
|
|
@@ -49,7 +50,7 @@ function AccordionTrigger({ className, children, style: styleProp, ...props }) {
|
|
|
49
50
|
const interactiveStyle = withInteractivePressableStyle(styleProp, interaction, {
|
|
50
51
|
pressedVariant: 'default',
|
|
51
52
|
});
|
|
52
|
-
return (_jsxs(Pressable, { className: cn('flex flex-row items-center justify-between py-4', className), onPress: () => onValueChange(value), style: interactiveStyle, ...props, children: [children, _jsx(View, { className: cn('border-foreground h-2 w-2 rotate-45 border-b-2 border-r-2 transition-transform', isOpen && 'rotate-[225deg]') })] }));
|
|
53
|
+
return (_jsxs(Pressable, { accessibilityRole: "button", className: cn('flex flex-row items-center justify-between py-4', className), onPress: () => onValueChange(value), style: interactiveStyle, ...props, children: [children, _jsx(View, { className: cn('border-foreground h-2 w-2 rotate-45 border-b-2 border-r-2 transition-transform', isOpen && 'rotate-[225deg]') })] }));
|
|
53
54
|
}
|
|
54
55
|
function AccordionContent({ className, children, ...props }) {
|
|
55
56
|
const { isOpen } = useContext(AccordionItemContext);
|
|
@@ -72,6 +73,4 @@ Accordion.displayName = 'Accordion';
|
|
|
72
73
|
AccordionItem.displayName = 'AccordionItem';
|
|
73
74
|
AccordionTrigger.displayName = 'AccordionTrigger';
|
|
74
75
|
AccordionContent.displayName = 'AccordionContent';
|
|
75
|
-
// ─── Exports ─────────────────────────────────────────────────
|
|
76
76
|
export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
|
|
77
|
-
//# sourceMappingURL=accordion.js.map
|
|
@@ -9,7 +9,7 @@ declare const alertVariants: import("tailwind-variants").TVReturnType<{
|
|
|
9
9
|
warning: string;
|
|
10
10
|
info: string;
|
|
11
11
|
};
|
|
12
|
-
}, undefined, "w-full
|
|
12
|
+
}, undefined, "w-full border", import("tailwind-variants/dist/config.js").TVConfig<{
|
|
13
13
|
variant: {
|
|
14
14
|
default: string;
|
|
15
15
|
destructive: string;
|
|
@@ -41,7 +41,7 @@ declare const alertVariants: import("tailwind-variants").TVReturnType<{
|
|
|
41
41
|
warning: string;
|
|
42
42
|
info: string;
|
|
43
43
|
};
|
|
44
|
-
}, undefined, "w-full
|
|
44
|
+
}, undefined, "w-full border", import("tailwind-variants/dist/config.js").TVConfig<{
|
|
45
45
|
variant: {
|
|
46
46
|
default: string;
|
|
47
47
|
destructive: string;
|
|
@@ -68,4 +68,3 @@ export interface AlertDescriptionProps extends TextProps {
|
|
|
68
68
|
}
|
|
69
69
|
declare const AlertDescription: React.ForwardRefExoticComponent<AlertDescriptionProps & React.RefAttributes<Text>>;
|
|
70
70
|
export { Alert, AlertTitle, AlertDescription, alertVariants };
|
|
71
|
-
//# sourceMappingURL=alert.d.ts.map
|
|
@@ -3,8 +3,10 @@ import React from 'react';
|
|
|
3
3
|
import { View, Text } from 'react-native';
|
|
4
4
|
import { cn } from '../../lib/cn';
|
|
5
5
|
import { tv } from '../../lib/tv';
|
|
6
|
+
import { useVisualTokens } from '../../lib/visual-tokens';
|
|
7
|
+
import { surfacePadding, surfaceRadius, typographyStyle } from '../../lib/recipes';
|
|
6
8
|
const alertVariants = tv({
|
|
7
|
-
base: 'w-full
|
|
9
|
+
base: 'w-full border',
|
|
8
10
|
variants: {
|
|
9
11
|
variant: {
|
|
10
12
|
default: 'border-border bg-background',
|
|
@@ -18,17 +20,26 @@ const alertVariants = tv({
|
|
|
18
20
|
variant: 'default',
|
|
19
21
|
},
|
|
20
22
|
});
|
|
21
|
-
const Alert = React.forwardRef(({ className, variant, ...props }, ref) => {
|
|
22
|
-
|
|
23
|
+
const Alert = React.forwardRef(({ className, variant, style, ...props }, ref) => {
|
|
24
|
+
const visual = useVisualTokens();
|
|
25
|
+
return (_jsx(View, { ref: ref, className: cn(alertVariants({ variant }), className), style: [
|
|
26
|
+
{
|
|
27
|
+
borderRadius: surfaceRadius(visual, 'lg'),
|
|
28
|
+
borderWidth: visual.borderWidthHairline,
|
|
29
|
+
padding: surfacePadding(visual, 'sm'),
|
|
30
|
+
},
|
|
31
|
+
style,
|
|
32
|
+
], ...props }));
|
|
23
33
|
});
|
|
24
34
|
Alert.displayName = 'Alert';
|
|
25
|
-
const AlertTitle = React.forwardRef(({ className, ...props }, ref) => {
|
|
26
|
-
|
|
35
|
+
const AlertTitle = React.forwardRef(({ className, style, ...props }, ref) => {
|
|
36
|
+
const visual = useVisualTokens();
|
|
37
|
+
return (_jsx(Text, { ref: ref, className: cn('mb-1 font-semibold text-foreground', className), style: [typographyStyle(visual, 'body'), style], ...props }));
|
|
27
38
|
});
|
|
28
39
|
AlertTitle.displayName = 'AlertTitle';
|
|
29
|
-
const AlertDescription = React.forwardRef(({ className, ...props }, ref) => {
|
|
30
|
-
|
|
40
|
+
const AlertDescription = React.forwardRef(({ className, style, ...props }, ref) => {
|
|
41
|
+
const visual = useVisualTokens();
|
|
42
|
+
return (_jsx(Text, { ref: ref, className: cn('text-muted-foreground', className), style: [typographyStyle(visual, 'label'), style], ...props }));
|
|
31
43
|
});
|
|
32
44
|
AlertDescription.displayName = 'AlertDescription';
|
|
33
45
|
export { Alert, AlertTitle, AlertDescription, alertVariants };
|
|
34
|
-
//# sourceMappingURL=alert.js.map
|
|
@@ -41,41 +41,40 @@ export interface AlertDialogActionProps extends PressableProps {
|
|
|
41
41
|
export interface AlertDialogCancelProps extends PressableProps {
|
|
42
42
|
className?: string;
|
|
43
43
|
}
|
|
44
|
-
declare function AlertDialog({ defaultOpen, open: controlledOpen, onOpenChange, children, }: AlertDialogProps):
|
|
44
|
+
declare function AlertDialog({ defaultOpen, open: controlledOpen, onOpenChange, children, }: AlertDialogProps): React.JSX.Element;
|
|
45
45
|
declare namespace AlertDialog {
|
|
46
46
|
var displayName: string;
|
|
47
47
|
}
|
|
48
|
-
declare function AlertDialogTrigger({ className, children, asChild, ...props }: AlertDialogTriggerProps):
|
|
48
|
+
declare function AlertDialogTrigger({ className, children, asChild, onPress, ...props }: AlertDialogTriggerProps): React.JSX.Element;
|
|
49
49
|
declare namespace AlertDialogTrigger {
|
|
50
50
|
var displayName: string;
|
|
51
51
|
}
|
|
52
|
-
declare function AlertDialogContent({ className, children, presentation, frosted, blurIntensity, blurTintToken, style, ...props }: AlertDialogContentProps):
|
|
52
|
+
declare function AlertDialogContent({ className, children, presentation, frosted, blurIntensity, blurTintToken, style, ...props }: AlertDialogContentProps): React.JSX.Element;
|
|
53
53
|
declare namespace AlertDialogContent {
|
|
54
54
|
var displayName: string;
|
|
55
55
|
}
|
|
56
|
-
declare function AlertDialogHeader({ className, ...props }: AlertDialogHeaderProps):
|
|
56
|
+
declare function AlertDialogHeader({ className, ...props }: AlertDialogHeaderProps): React.JSX.Element;
|
|
57
57
|
declare namespace AlertDialogHeader {
|
|
58
58
|
var displayName: string;
|
|
59
59
|
}
|
|
60
|
-
declare function AlertDialogFooter({ className, ...props }: AlertDialogFooterProps):
|
|
60
|
+
declare function AlertDialogFooter({ className, ...props }: AlertDialogFooterProps): React.JSX.Element;
|
|
61
61
|
declare namespace AlertDialogFooter {
|
|
62
62
|
var displayName: string;
|
|
63
63
|
}
|
|
64
|
-
declare function AlertDialogTitle({ className, children, ...props }: AlertDialogTitleProps):
|
|
64
|
+
declare function AlertDialogTitle({ className, children, style, ...props }: AlertDialogTitleProps): React.JSX.Element;
|
|
65
65
|
declare namespace AlertDialogTitle {
|
|
66
66
|
var displayName: string;
|
|
67
67
|
}
|
|
68
|
-
declare function AlertDialogDescription({ className, children, ...props }: AlertDialogDescriptionProps):
|
|
68
|
+
declare function AlertDialogDescription({ className, children, style, ...props }: AlertDialogDescriptionProps): React.JSX.Element;
|
|
69
69
|
declare namespace AlertDialogDescription {
|
|
70
70
|
var displayName: string;
|
|
71
71
|
}
|
|
72
|
-
declare function AlertDialogAction({ className, children, asChild, ...props }: AlertDialogActionProps):
|
|
72
|
+
declare function AlertDialogAction({ className, children, asChild, onPress, ...props }: AlertDialogActionProps): React.JSX.Element;
|
|
73
73
|
declare namespace AlertDialogAction {
|
|
74
74
|
var displayName: string;
|
|
75
75
|
}
|
|
76
|
-
declare function AlertDialogCancel({ className, children, ...props }: AlertDialogCancelProps):
|
|
76
|
+
declare function AlertDialogCancel({ className, children, onPress, ...props }: AlertDialogCancelProps): React.JSX.Element;
|
|
77
77
|
declare namespace AlertDialogCancel {
|
|
78
78
|
var displayName: string;
|
|
79
79
|
}
|
|
80
80
|
export { AlertDialog, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel, };
|
|
81
|
-
//# sourceMappingURL=alert-dialog.d.ts.map
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import React, { createContext, useContext, useLayoutEffect, useRef, useState } from 'react';
|
|
2
|
+
import React, { createContext, useCallback, useContext, useLayoutEffect, useMemo, useRef, useState, } from 'react';
|
|
3
3
|
import { View, Modal, Pressable, Text, Alert, Platform, StyleSheet, } from 'react-native';
|
|
4
4
|
import { cn } from '../../lib/cn';
|
|
5
|
+
import { composeEventHandlers } from '../../lib/compose-event-handlers';
|
|
6
|
+
import { useInteractionTokens, withInteractivePressableStyle } from '../../lib/interaction-tokens';
|
|
5
7
|
import { useThemeColors } from '../../lib/theme-colors';
|
|
6
8
|
import { useFrostedSurface } from '../../lib/frosted-surface';
|
|
9
|
+
import { useVisualTokens } from '../../lib/visual-tokens';
|
|
10
|
+
import { shadowStyle, typographyStyle } from '../../lib/recipes';
|
|
7
11
|
function emptyNativeCopy() {
|
|
8
12
|
return {
|
|
9
13
|
title: '',
|
|
@@ -19,13 +23,43 @@ function textFromNode(node) {
|
|
|
19
23
|
return '';
|
|
20
24
|
if (typeof node === 'string' || typeof node === 'number')
|
|
21
25
|
return String(node);
|
|
22
|
-
if (Array.isArray(node))
|
|
23
|
-
return node
|
|
26
|
+
if (Array.isArray(node)) {
|
|
27
|
+
return node
|
|
28
|
+
.reduce((parts, child) => {
|
|
29
|
+
const text = textFromNode(child);
|
|
30
|
+
if (text)
|
|
31
|
+
parts.push(text);
|
|
32
|
+
return parts;
|
|
33
|
+
}, [])
|
|
34
|
+
.join(' ');
|
|
35
|
+
}
|
|
24
36
|
if (React.isValidElement(node)) {
|
|
25
37
|
return textFromNode(node.props.children);
|
|
26
38
|
}
|
|
27
39
|
return '';
|
|
28
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Finds the `AlertDialogTitle` in a subtree and returns its text, so the panel can carry
|
|
43
|
+
* an accessible name from the same render that draws it. The native-alert path's copy ref
|
|
44
|
+
* cannot serve this: it is populated by child layout effects, which run after this render
|
|
45
|
+
* and never schedule another.
|
|
46
|
+
*/
|
|
47
|
+
function titleTextFromChildren(node) {
|
|
48
|
+
if (Array.isArray(node)) {
|
|
49
|
+
for (const child of node) {
|
|
50
|
+
const found = titleTextFromChildren(child);
|
|
51
|
+
if (found)
|
|
52
|
+
return found;
|
|
53
|
+
}
|
|
54
|
+
return '';
|
|
55
|
+
}
|
|
56
|
+
if (!React.isValidElement(node))
|
|
57
|
+
return '';
|
|
58
|
+
const children = node.props.children;
|
|
59
|
+
if (node.type === AlertDialogTitle)
|
|
60
|
+
return textFromNode(children);
|
|
61
|
+
return titleTextFromChildren(children);
|
|
62
|
+
}
|
|
29
63
|
/** Pressable children may be a render function; native alert only supports static labels. */
|
|
30
64
|
function textFromPressableChildren(children) {
|
|
31
65
|
if (typeof children === 'function')
|
|
@@ -38,30 +72,32 @@ const AlertDialogContext = createContext({
|
|
|
38
72
|
setOpen: () => { },
|
|
39
73
|
nativeCopyRef: fallbackNativeRef,
|
|
40
74
|
});
|
|
41
|
-
// ─── Components ──────────────────────────────────────────────
|
|
42
75
|
function AlertDialog({ defaultOpen = false, open: controlledOpen, onOpenChange, children, }) {
|
|
43
76
|
const [internalOpen, setInternalOpen] = useState(defaultOpen);
|
|
44
77
|
const open = controlledOpen ?? internalOpen;
|
|
45
|
-
const nativeCopyRef =
|
|
46
|
-
|
|
47
|
-
|
|
78
|
+
const [nativeCopyRef] = useState(() => ({
|
|
79
|
+
current: emptyNativeCopy(),
|
|
80
|
+
}));
|
|
81
|
+
const setOpen = useCallback((value) => {
|
|
82
|
+
if (controlledOpen === undefined) {
|
|
83
|
+
setInternalOpen(value);
|
|
84
|
+
}
|
|
48
85
|
onOpenChange?.(value);
|
|
49
|
-
};
|
|
50
|
-
|
|
86
|
+
}, [controlledOpen, onOpenChange]);
|
|
87
|
+
const contextValue = useMemo(() => ({ open, setOpen, nativeCopyRef }), [nativeCopyRef, open, setOpen]);
|
|
88
|
+
return _jsx(AlertDialogContext.Provider, { value: contextValue, children: children });
|
|
51
89
|
}
|
|
52
|
-
function AlertDialogTrigger({ className, children, asChild, ...props }) {
|
|
90
|
+
function AlertDialogTrigger({ className, children, asChild, onPress, ...props }) {
|
|
53
91
|
const { setOpen } = useContext(AlertDialogContext);
|
|
54
92
|
if (asChild && React.isValidElement(children)) {
|
|
55
93
|
const child = children;
|
|
56
94
|
return React.cloneElement(child, {
|
|
57
|
-
onPress: (e) => {
|
|
58
|
-
child.props.onPress?.(e);
|
|
59
|
-
setOpen(true);
|
|
60
|
-
},
|
|
61
95
|
...props,
|
|
96
|
+
className: cn(child.props.className, className),
|
|
97
|
+
onPress: composeEventHandlers(composeEventHandlers(child.props.onPress, onPress), () => setOpen(true)),
|
|
62
98
|
});
|
|
63
99
|
}
|
|
64
|
-
return (_jsx(Pressable, { className: cn(className), onPress: () => setOpen(true),
|
|
100
|
+
return (_jsx(Pressable, { accessibilityRole: "button", ...props, className: cn(className), onPress: composeEventHandlers(onPress, () => setOpen(true)), children: children }));
|
|
65
101
|
}
|
|
66
102
|
const nativeHiddenStyle = StyleSheet.create({
|
|
67
103
|
root: {
|
|
@@ -77,6 +113,7 @@ const nativeHiddenStyle = StyleSheet.create({
|
|
|
77
113
|
function AlertDialogContent({ className, children, presentation = 'modal', frosted = false, blurIntensity, blurTintToken, style, ...props }) {
|
|
78
114
|
const { open, setOpen, nativeCopyRef } = useContext(AlertDialogContext);
|
|
79
115
|
const colors = useThemeColors();
|
|
116
|
+
const visual = useVisualTokens();
|
|
80
117
|
const frostedSurface = useFrostedSurface({
|
|
81
118
|
frosted,
|
|
82
119
|
blurIntensity,
|
|
@@ -147,7 +184,44 @@ function AlertDialogContent({ className, children, presentation = 'modal', frost
|
|
|
147
184
|
prevOpenRef.current = false;
|
|
148
185
|
};
|
|
149
186
|
}, [open, useNativeAlert, setOpen, nativeCopyRef]);
|
|
150
|
-
const themedBody = (_jsx(
|
|
187
|
+
const themedBody = (_jsx(Pressable
|
|
188
|
+
// Tap-to-dismiss is a pointer affordance. Left accessible, this Pressable would be
|
|
189
|
+
// a single accessibility element wrapping the entire dialog, so VoiceOver would
|
|
190
|
+
// reach one "dismiss" target and none of the buttons inside it. Screen reader users
|
|
191
|
+
// dismiss with Cancel.
|
|
192
|
+
, {
|
|
193
|
+
// Tap-to-dismiss is a pointer affordance. Left accessible, this Pressable would be
|
|
194
|
+
// a single accessibility element wrapping the entire dialog, so VoiceOver would
|
|
195
|
+
// reach one "dismiss" target and none of the buttons inside it. Screen reader users
|
|
196
|
+
// dismiss with Cancel.
|
|
197
|
+
accessible: false, importantForAccessibility: "no", className: "flex-1 justify-center items-center px-4", style: { backgroundColor: colors.overlayStrong }, onPress: () => setOpen(false), children: _jsxs(Pressable
|
|
198
|
+
// This Pressable is a container: its only `onPress` stops the backdrop from
|
|
199
|
+
// dismissing. `accessible={false}` is what keeps it that way — Pressable defaults
|
|
200
|
+
// to `accessible: true`, which on iOS collapses every descendant into one element
|
|
201
|
+
// and makes the confirm and cancel buttons unreachable.
|
|
202
|
+
, {
|
|
203
|
+
// This Pressable is a container: its only `onPress` stops the backdrop from
|
|
204
|
+
// dismissing. `accessible={false}` is what keeps it that way — Pressable defaults
|
|
205
|
+
// to `accessible: true`, which on iOS collapses every descendant into one element
|
|
206
|
+
// and makes the confirm and cancel buttons unreachable.
|
|
207
|
+
accessible: false,
|
|
208
|
+
// A destructive confirmation is the worst place for a screen reader to wander
|
|
209
|
+
// out of. `accessibilityViewIsModal` keeps VoiceOver inside the panel; Android
|
|
210
|
+
// gets the same containment from the host Modal.
|
|
211
|
+
accessibilityViewIsModal: true, accessibilityRole: "alert",
|
|
212
|
+
// Names the panel where the container is exposed (Android contentDescription,
|
|
213
|
+
// web `aria-label`). Read from the element tree because the native-alert copy ref
|
|
214
|
+
// is filled by child layout effects, which run after this render.
|
|
215
|
+
accessibilityLabel: titleTextFromChildren(children) || undefined, className: cn('w-full border-border relative overflow-hidden', frosted ? 'bg-transparent' : 'bg-background', className), style: [
|
|
216
|
+
{
|
|
217
|
+
maxWidth: visual.sheetMaxWidth,
|
|
218
|
+
borderWidth: visual.borderWidthHairline,
|
|
219
|
+
borderRadius: visual.radiusXl,
|
|
220
|
+
padding: visual.surfacePaddingDefault,
|
|
221
|
+
},
|
|
222
|
+
shadowStyle(visual, colors, 'lg'),
|
|
223
|
+
contentStyle,
|
|
224
|
+
], onPress: (event) => event.stopPropagation(), ...props, children: [frostedSurface.overlay, children] }) }));
|
|
151
225
|
if (useNativeAlert) {
|
|
152
226
|
return (_jsx(View, { pointerEvents: "none", style: nativeHiddenStyle, collapsable: false, importantForAccessibility: "no-hide-descendants", children: children }));
|
|
153
227
|
}
|
|
@@ -156,11 +230,11 @@ function AlertDialogContent({ className, children, presentation = 'modal', frost
|
|
|
156
230
|
return (_jsx(View, { pointerEvents: "none", style: nativeHiddenStyle, collapsable: false, importantForAccessibility: "no-hide-descendants", children: children }));
|
|
157
231
|
}
|
|
158
232
|
return (_jsx(View, { pointerEvents: "box-none", style: [
|
|
159
|
-
StyleSheet.
|
|
233
|
+
StyleSheet.absoluteFill,
|
|
160
234
|
{ zIndex: 100, elevation: Platform.OS === 'android' ? 24 : undefined },
|
|
161
235
|
], children: themedBody }));
|
|
162
236
|
}
|
|
163
|
-
return (_jsx(Modal, { visible: open, transparent: true, animationType: "fade", presentationStyle: Platform.OS === 'ios' ? 'overFullScreen' : undefined, statusBarTranslucent: Platform.OS === 'android', children: themedBody }));
|
|
237
|
+
return (_jsx(Modal, { visible: open, transparent: true, animationType: "fade", presentationStyle: Platform.OS === 'ios' ? 'overFullScreen' : undefined, statusBarTranslucent: Platform.OS === 'android', navigationBarTranslucent: Platform.OS === 'android', onRequestClose: () => setOpen(false), children: themedBody }));
|
|
164
238
|
}
|
|
165
239
|
function useAlertDialogNativeCopy() {
|
|
166
240
|
return useContext(AlertDialogContext).nativeCopyRef;
|
|
@@ -171,75 +245,126 @@ function AlertDialogHeader({ className, ...props }) {
|
|
|
171
245
|
function AlertDialogFooter({ className, ...props }) {
|
|
172
246
|
return _jsx(View, { className: cn('flex flex-row justify-end gap-2 pt-4', className), ...props });
|
|
173
247
|
}
|
|
174
|
-
function AlertDialogTitle({ className, children, ...props }) {
|
|
248
|
+
function AlertDialogTitle({ className, children, style, ...props }) {
|
|
175
249
|
const nativeCopyRef = useAlertDialogNativeCopy();
|
|
250
|
+
const visual = useVisualTokens();
|
|
176
251
|
useLayoutEffect(() => {
|
|
177
|
-
nativeCopyRef.current
|
|
252
|
+
const copy = nativeCopyRef.current;
|
|
253
|
+
copy.title = textFromNode(children);
|
|
178
254
|
return () => {
|
|
179
|
-
|
|
255
|
+
copy.title = '';
|
|
180
256
|
};
|
|
181
257
|
}, [children, nativeCopyRef]);
|
|
182
|
-
return (_jsx(Text
|
|
258
|
+
return (_jsx(Text
|
|
259
|
+
// Gives VoiceOver and TalkBack something to land on first inside the modal, and
|
|
260
|
+
// lets rotor navigation find it. Set before the spread so callers can override.
|
|
261
|
+
, {
|
|
262
|
+
// Gives VoiceOver and TalkBack something to land on first inside the modal, and
|
|
263
|
+
// lets rotor navigation find it. Set before the spread so callers can override.
|
|
264
|
+
accessibilityRole: "header", className: cn('font-semibold text-foreground', className), style: [typographyStyle(visual, 'title'), style], ...props, children: children }));
|
|
183
265
|
}
|
|
184
|
-
function AlertDialogDescription({ className, children, ...props }) {
|
|
266
|
+
function AlertDialogDescription({ className, children, style, ...props }) {
|
|
185
267
|
const nativeCopyRef = useAlertDialogNativeCopy();
|
|
268
|
+
const visual = useVisualTokens();
|
|
186
269
|
useLayoutEffect(() => {
|
|
187
|
-
nativeCopyRef.current
|
|
270
|
+
const copy = nativeCopyRef.current;
|
|
271
|
+
copy.message = textFromNode(children);
|
|
188
272
|
return () => {
|
|
189
|
-
|
|
273
|
+
copy.message = '';
|
|
190
274
|
};
|
|
191
275
|
}, [children, nativeCopyRef]);
|
|
192
|
-
return (_jsx(Text, { className: cn('text-
|
|
276
|
+
return (_jsx(Text, { className: cn('text-muted-foreground', className), style: [typographyStyle(visual, 'label'), style], ...props, children: children }));
|
|
193
277
|
}
|
|
194
|
-
function AlertDialogAction({ className, children, asChild, ...props }) {
|
|
278
|
+
function AlertDialogAction({ className, children, asChild, onPress, ...props }) {
|
|
195
279
|
const { setOpen, nativeCopyRef } = useContext(AlertDialogContext);
|
|
196
|
-
const
|
|
197
|
-
|
|
280
|
+
const interaction = useInteractionTokens();
|
|
281
|
+
const visual = useVisualTokens();
|
|
282
|
+
const onPressRef = useRef(onPress);
|
|
198
283
|
useLayoutEffect(() => {
|
|
199
|
-
|
|
200
|
-
|
|
284
|
+
onPressRef.current = onPress;
|
|
285
|
+
}, [onPress]);
|
|
286
|
+
const interactiveStyle = withInteractivePressableStyle(undefined, interaction, {
|
|
287
|
+
pressedVariant: 'strong',
|
|
288
|
+
});
|
|
289
|
+
useLayoutEffect(() => {
|
|
290
|
+
const copy = nativeCopyRef.current;
|
|
291
|
+
copy.confirmLabel = textFromPressableChildren(children);
|
|
292
|
+
copy.onConfirm = () => {
|
|
201
293
|
const h = onPressRef.current;
|
|
202
294
|
if (h)
|
|
203
295
|
h();
|
|
204
296
|
};
|
|
205
297
|
return () => {
|
|
206
|
-
|
|
207
|
-
|
|
298
|
+
copy.confirmLabel = 'OK';
|
|
299
|
+
copy.onConfirm = null;
|
|
208
300
|
};
|
|
209
301
|
}, [children, nativeCopyRef]);
|
|
210
|
-
const handlePress = (e) => {
|
|
211
|
-
props.onPress?.(e);
|
|
212
|
-
setOpen(false);
|
|
213
|
-
};
|
|
214
302
|
if (asChild && React.isValidElement(children)) {
|
|
215
303
|
const child = children;
|
|
216
304
|
return React.cloneElement(child, {
|
|
217
|
-
onPress: handlePress,
|
|
218
305
|
...props,
|
|
306
|
+
className: cn(child.props.className, className),
|
|
307
|
+
onPress: composeEventHandlers(composeEventHandlers(child.props.onPress, onPress), () => setOpen(false)),
|
|
219
308
|
});
|
|
220
309
|
}
|
|
221
|
-
return (_jsx(Pressable
|
|
310
|
+
return (_jsx(Pressable
|
|
311
|
+
// Pressable sets no role of its own, so without this the confirm button in a
|
|
312
|
+
// destructive dialog announces as a plain view. Before the spread, so a caller can
|
|
313
|
+
// still override it.
|
|
314
|
+
, {
|
|
315
|
+
// Pressable sets no role of its own, so without this the confirm button in a
|
|
316
|
+
// destructive dialog announces as a plain view. Before the spread, so a caller can
|
|
317
|
+
// still override it.
|
|
318
|
+
accessibilityRole: "button", ...props, className: cn('inline-flex items-center justify-center bg-primary', className), style: (state) => {
|
|
319
|
+
const baseStyle = typeof interactiveStyle === 'function' ? interactiveStyle(state) : interactiveStyle;
|
|
320
|
+
return [
|
|
321
|
+
baseStyle,
|
|
322
|
+
{
|
|
323
|
+
minHeight: visual.controlHeightDefault,
|
|
324
|
+
borderRadius: visual.radiusLg,
|
|
325
|
+
paddingHorizontal: visual.controlPaddingXDefault,
|
|
326
|
+
paddingVertical: visual.controlPaddingYDefault,
|
|
327
|
+
},
|
|
328
|
+
];
|
|
329
|
+
}, onPress: composeEventHandlers(onPress, () => setOpen(false)), children: typeof children === 'string' ? (_jsx(Text, { className: "font-medium text-primary-foreground", style: typographyStyle(visual, 'label'), children: children })) : (children) }));
|
|
222
330
|
}
|
|
223
|
-
function AlertDialogCancel({ className, children, ...props }) {
|
|
331
|
+
function AlertDialogCancel({ className, children, onPress, ...props }) {
|
|
224
332
|
const { setOpen, nativeCopyRef } = useContext(AlertDialogContext);
|
|
225
|
-
const
|
|
226
|
-
|
|
333
|
+
const interaction = useInteractionTokens();
|
|
334
|
+
const visual = useVisualTokens();
|
|
335
|
+
const onPressRef = useRef(onPress);
|
|
227
336
|
useLayoutEffect(() => {
|
|
228
|
-
|
|
229
|
-
|
|
337
|
+
onPressRef.current = onPress;
|
|
338
|
+
}, [onPress]);
|
|
339
|
+
const interactiveStyle = withInteractivePressableStyle(undefined, interaction, {
|
|
340
|
+
pressedVariant: 'default',
|
|
341
|
+
});
|
|
342
|
+
useLayoutEffect(() => {
|
|
343
|
+
const copy = nativeCopyRef.current;
|
|
344
|
+
copy.cancelLabel = textFromPressableChildren(children);
|
|
345
|
+
copy.onCancel = () => {
|
|
230
346
|
const h = onPressRef.current;
|
|
231
347
|
if (h)
|
|
232
348
|
h();
|
|
233
349
|
};
|
|
234
350
|
return () => {
|
|
235
|
-
|
|
236
|
-
|
|
351
|
+
copy.cancelLabel = 'Cancel';
|
|
352
|
+
copy.onCancel = null;
|
|
237
353
|
};
|
|
238
354
|
}, [children, nativeCopyRef]);
|
|
239
|
-
return (_jsx(Pressable, { className: cn('inline-flex items-center justify-center
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
355
|
+
return (_jsx(Pressable, { accessibilityRole: "button", ...props, className: cn('inline-flex items-center justify-center border-border bg-transparent', className), style: (state) => {
|
|
356
|
+
const baseStyle = typeof interactiveStyle === 'function' ? interactiveStyle(state) : interactiveStyle;
|
|
357
|
+
return [
|
|
358
|
+
baseStyle,
|
|
359
|
+
{
|
|
360
|
+
minHeight: visual.controlHeightDefault,
|
|
361
|
+
borderWidth: visual.borderWidthControl,
|
|
362
|
+
borderRadius: visual.radiusLg,
|
|
363
|
+
paddingHorizontal: visual.controlPaddingXDefault,
|
|
364
|
+
paddingVertical: visual.controlPaddingYDefault,
|
|
365
|
+
},
|
|
366
|
+
];
|
|
367
|
+
}, onPress: composeEventHandlers(onPress, () => setOpen(false)), children: typeof children === 'string' ? (_jsx(Text, { className: "font-medium text-foreground", style: typographyStyle(visual, 'label'), children: children })) : (children) }));
|
|
243
368
|
}
|
|
244
369
|
AlertDialog.displayName = 'AlertDialog';
|
|
245
370
|
AlertDialogTrigger.displayName = 'AlertDialogTrigger';
|
|
@@ -251,4 +376,3 @@ AlertDialogDescription.displayName = 'AlertDialogDescription';
|
|
|
251
376
|
AlertDialogAction.displayName = 'AlertDialogAction';
|
|
252
377
|
AlertDialogCancel.displayName = 'AlertDialogCancel';
|
|
253
378
|
export { AlertDialog, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel, };
|
|
254
|
-
//# sourceMappingURL=alert-dialog.js.map
|
|
@@ -1,2 +1 @@
|
|
|
1
1
|
export { AlertDialog, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel, type AlertDialogProps, type AlertDialogTriggerProps, type AlertDialogContentProps, type AlertDialogHeaderProps, type AlertDialogFooterProps, type AlertDialogTitleProps, type AlertDialogDescriptionProps, type AlertDialogActionProps, type AlertDialogCancelProps, type AlertDialogPresentation, } from './alert-dialog';
|
|
2
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -3,9 +3,8 @@ export interface AspectRatioProps extends ViewProps {
|
|
|
3
3
|
ratio?: number;
|
|
4
4
|
className?: string;
|
|
5
5
|
}
|
|
6
|
-
declare function AspectRatio({ ratio, className, children, style, ...props }: AspectRatioProps): import("react
|
|
6
|
+
declare function AspectRatio({ ratio, className, children, style, ...props }: AspectRatioProps): import("react").JSX.Element;
|
|
7
7
|
declare namespace AspectRatio {
|
|
8
8
|
var displayName: string;
|
|
9
9
|
}
|
|
10
10
|
export { AspectRatio };
|
|
11
|
-
//# sourceMappingURL=aspect-ratio.d.ts.map
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { View } from 'react-native';
|
|
3
3
|
import { cn } from '../../lib/cn';
|
|
4
|
-
// ─── Component ───────────────────────────────────────────────
|
|
5
4
|
function AspectRatio({ ratio = 1, className, children, style, ...props }) {
|
|
6
5
|
return (_jsx(View, { className: cn('relative', className), style: [{ aspectRatio: ratio }, style], ...props, children: children }));
|
|
7
6
|
}
|
|
8
7
|
AspectRatio.displayName = 'AspectRatio';
|
|
9
|
-
// ─── Exports ─────────────────────────────────────────────────
|
|
10
8
|
export { AspectRatio };
|
|
11
|
-
//# sourceMappingURL=aspect-ratio.js.map
|
|
@@ -62,13 +62,12 @@ export interface AvatarFallbackProps extends ViewProps {
|
|
|
62
62
|
className?: string;
|
|
63
63
|
}
|
|
64
64
|
declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<View>>;
|
|
65
|
-
declare function AvatarImage({ className, onLoadingStatusChange, ...props }: AvatarImageProps):
|
|
65
|
+
declare function AvatarImage({ className, onLoadingStatusChange, ...props }: AvatarImageProps): React.JSX.Element;
|
|
66
66
|
declare namespace AvatarImage {
|
|
67
67
|
var displayName: string;
|
|
68
68
|
}
|
|
69
|
-
declare function AvatarFallback({ className, children, ...props }: AvatarFallbackProps):
|
|
69
|
+
declare function AvatarFallback({ className, children, ...props }: AvatarFallbackProps): React.JSX.Element | null;
|
|
70
70
|
declare namespace AvatarFallback {
|
|
71
71
|
var displayName: string;
|
|
72
72
|
}
|
|
73
73
|
export { Avatar, AvatarImage, AvatarFallback, avatarVariants };
|
|
74
|
-
//# sourceMappingURL=avatar.d.ts.map
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import React, { useState } from 'react';
|
|
2
|
+
import React, { useMemo, useState } from 'react';
|
|
3
3
|
import { View, Image, Text } from 'react-native';
|
|
4
4
|
import { cn } from '../../lib/cn';
|
|
5
5
|
import { tv } from '../../lib/tv';
|
|
6
|
-
|
|
6
|
+
import { useVisualTokens } from '../../lib/visual-tokens';
|
|
7
|
+
import { typographyStyle } from '../../lib/recipes';
|
|
7
8
|
const avatarVariants = tv({
|
|
8
9
|
base: 'relative flex shrink-0 overflow-hidden rounded-full',
|
|
9
10
|
variants: {
|
|
@@ -18,15 +19,14 @@ const avatarVariants = tv({
|
|
|
18
19
|
size: 'default',
|
|
19
20
|
},
|
|
20
21
|
});
|
|
21
|
-
// ─── Context ─────────────────────────────────────────────────
|
|
22
22
|
const AvatarContext = React.createContext({
|
|
23
23
|
imageLoaded: false,
|
|
24
24
|
setImageLoaded: () => { },
|
|
25
25
|
});
|
|
26
|
-
// ─── Components ──────────────────────────────────────────────
|
|
27
26
|
const Avatar = React.forwardRef(({ className, size, ...props }, ref) => {
|
|
28
27
|
const [imageLoaded, setImageLoaded] = useState(false);
|
|
29
|
-
|
|
28
|
+
const contextValue = useMemo(() => ({ imageLoaded, setImageLoaded }), [imageLoaded]);
|
|
29
|
+
return (_jsx(AvatarContext.Provider, { value: contextValue, children: _jsx(View, { ref: ref, className: cn(avatarVariants({ size }), className), ...props }) }));
|
|
30
30
|
});
|
|
31
31
|
Avatar.displayName = 'Avatar';
|
|
32
32
|
function AvatarImage({ className, onLoadingStatusChange, ...props }) {
|
|
@@ -42,11 +42,10 @@ function AvatarImage({ className, onLoadingStatusChange, ...props }) {
|
|
|
42
42
|
AvatarImage.displayName = 'AvatarImage';
|
|
43
43
|
function AvatarFallback({ className, children, ...props }) {
|
|
44
44
|
const { imageLoaded } = React.useContext(AvatarContext);
|
|
45
|
+
const visual = useVisualTokens();
|
|
45
46
|
if (imageLoaded)
|
|
46
47
|
return null;
|
|
47
|
-
return (_jsx(View, { className: cn('flex h-full w-full items-center justify-center rounded-full bg-muted', className), ...props, children: typeof children === 'string' ? (_jsx(Text, { className: "
|
|
48
|
+
return (_jsx(View, { className: cn('flex h-full w-full items-center justify-center rounded-full bg-muted', className), ...props, children: typeof children === 'string' ? (_jsx(Text, { className: "font-medium text-muted-foreground", style: typographyStyle(visual, 'label'), children: children })) : (children) }));
|
|
48
49
|
}
|
|
49
50
|
AvatarFallback.displayName = 'AvatarFallback';
|
|
50
|
-
// ─── Exports ─────────────────────────────────────────────────
|
|
51
51
|
export { Avatar, AvatarImage, AvatarFallback, avatarVariants };
|
|
52
|
-
//# sourceMappingURL=avatar.js.map
|