@thewhileloop/whileui 1.2.2 → 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 +248 -85
- 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 +16 -12
- package/dist/components/alert-dialog/alert-dialog.js +184 -49
- 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,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,
|
|
@@ -86,6 +123,7 @@ function AlertDialogContent({ className, children, presentation = 'modal', frost
|
|
|
86
123
|
});
|
|
87
124
|
const contentStyle = [frostedSurface.surfaceStyle, style];
|
|
88
125
|
const useNativeAlert = presentation === 'native' && (Platform.OS === 'ios' || Platform.OS === 'android');
|
|
126
|
+
const useOverlay = presentation === 'overlay';
|
|
89
127
|
const prevOpenRef = useRef(false);
|
|
90
128
|
const nativeAlertShownForOpenRef = useRef(false);
|
|
91
129
|
useLayoutEffect(() => {
|
|
@@ -146,10 +184,57 @@ function AlertDialogContent({ className, children, presentation = 'modal', frost
|
|
|
146
184
|
prevOpenRef.current = false;
|
|
147
185
|
};
|
|
148
186
|
}, [open, useNativeAlert, setOpen, nativeCopyRef]);
|
|
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] }) }));
|
|
149
225
|
if (useNativeAlert) {
|
|
150
226
|
return (_jsx(View, { pointerEvents: "none", style: nativeHiddenStyle, collapsable: false, importantForAccessibility: "no-hide-descendants", children: children }));
|
|
151
227
|
}
|
|
152
|
-
|
|
228
|
+
if (useOverlay) {
|
|
229
|
+
if (!open) {
|
|
230
|
+
return (_jsx(View, { pointerEvents: "none", style: nativeHiddenStyle, collapsable: false, importantForAccessibility: "no-hide-descendants", children: children }));
|
|
231
|
+
}
|
|
232
|
+
return (_jsx(View, { pointerEvents: "box-none", style: [
|
|
233
|
+
StyleSheet.absoluteFill,
|
|
234
|
+
{ zIndex: 100, elevation: Platform.OS === 'android' ? 24 : undefined },
|
|
235
|
+
], children: themedBody }));
|
|
236
|
+
}
|
|
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 }));
|
|
153
238
|
}
|
|
154
239
|
function useAlertDialogNativeCopy() {
|
|
155
240
|
return useContext(AlertDialogContext).nativeCopyRef;
|
|
@@ -160,75 +245,126 @@ function AlertDialogHeader({ className, ...props }) {
|
|
|
160
245
|
function AlertDialogFooter({ className, ...props }) {
|
|
161
246
|
return _jsx(View, { className: cn('flex flex-row justify-end gap-2 pt-4', className), ...props });
|
|
162
247
|
}
|
|
163
|
-
function AlertDialogTitle({ className, children, ...props }) {
|
|
248
|
+
function AlertDialogTitle({ className, children, style, ...props }) {
|
|
164
249
|
const nativeCopyRef = useAlertDialogNativeCopy();
|
|
250
|
+
const visual = useVisualTokens();
|
|
165
251
|
useLayoutEffect(() => {
|
|
166
|
-
nativeCopyRef.current
|
|
252
|
+
const copy = nativeCopyRef.current;
|
|
253
|
+
copy.title = textFromNode(children);
|
|
167
254
|
return () => {
|
|
168
|
-
|
|
255
|
+
copy.title = '';
|
|
169
256
|
};
|
|
170
257
|
}, [children, nativeCopyRef]);
|
|
171
|
-
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 }));
|
|
172
265
|
}
|
|
173
|
-
function AlertDialogDescription({ className, children, ...props }) {
|
|
266
|
+
function AlertDialogDescription({ className, children, style, ...props }) {
|
|
174
267
|
const nativeCopyRef = useAlertDialogNativeCopy();
|
|
268
|
+
const visual = useVisualTokens();
|
|
175
269
|
useLayoutEffect(() => {
|
|
176
|
-
nativeCopyRef.current
|
|
270
|
+
const copy = nativeCopyRef.current;
|
|
271
|
+
copy.message = textFromNode(children);
|
|
177
272
|
return () => {
|
|
178
|
-
|
|
273
|
+
copy.message = '';
|
|
179
274
|
};
|
|
180
275
|
}, [children, nativeCopyRef]);
|
|
181
|
-
return (_jsx(Text, { className: cn('text-
|
|
276
|
+
return (_jsx(Text, { className: cn('text-muted-foreground', className), style: [typographyStyle(visual, 'label'), style], ...props, children: children }));
|
|
182
277
|
}
|
|
183
|
-
function AlertDialogAction({ className, children, asChild, ...props }) {
|
|
278
|
+
function AlertDialogAction({ className, children, asChild, onPress, ...props }) {
|
|
184
279
|
const { setOpen, nativeCopyRef } = useContext(AlertDialogContext);
|
|
185
|
-
const
|
|
186
|
-
|
|
280
|
+
const interaction = useInteractionTokens();
|
|
281
|
+
const visual = useVisualTokens();
|
|
282
|
+
const onPressRef = useRef(onPress);
|
|
283
|
+
useLayoutEffect(() => {
|
|
284
|
+
onPressRef.current = onPress;
|
|
285
|
+
}, [onPress]);
|
|
286
|
+
const interactiveStyle = withInteractivePressableStyle(undefined, interaction, {
|
|
287
|
+
pressedVariant: 'strong',
|
|
288
|
+
});
|
|
187
289
|
useLayoutEffect(() => {
|
|
188
|
-
nativeCopyRef.current
|
|
189
|
-
|
|
290
|
+
const copy = nativeCopyRef.current;
|
|
291
|
+
copy.confirmLabel = textFromPressableChildren(children);
|
|
292
|
+
copy.onConfirm = () => {
|
|
190
293
|
const h = onPressRef.current;
|
|
191
294
|
if (h)
|
|
192
295
|
h();
|
|
193
296
|
};
|
|
194
297
|
return () => {
|
|
195
|
-
|
|
196
|
-
|
|
298
|
+
copy.confirmLabel = 'OK';
|
|
299
|
+
copy.onConfirm = null;
|
|
197
300
|
};
|
|
198
301
|
}, [children, nativeCopyRef]);
|
|
199
|
-
const handlePress = (e) => {
|
|
200
|
-
props.onPress?.(e);
|
|
201
|
-
setOpen(false);
|
|
202
|
-
};
|
|
203
302
|
if (asChild && React.isValidElement(children)) {
|
|
204
303
|
const child = children;
|
|
205
304
|
return React.cloneElement(child, {
|
|
206
|
-
onPress: handlePress,
|
|
207
305
|
...props,
|
|
306
|
+
className: cn(child.props.className, className),
|
|
307
|
+
onPress: composeEventHandlers(composeEventHandlers(child.props.onPress, onPress), () => setOpen(false)),
|
|
208
308
|
});
|
|
209
309
|
}
|
|
210
|
-
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) }));
|
|
211
330
|
}
|
|
212
|
-
function AlertDialogCancel({ className, children, ...props }) {
|
|
331
|
+
function AlertDialogCancel({ className, children, onPress, ...props }) {
|
|
213
332
|
const { setOpen, nativeCopyRef } = useContext(AlertDialogContext);
|
|
214
|
-
const
|
|
215
|
-
|
|
333
|
+
const interaction = useInteractionTokens();
|
|
334
|
+
const visual = useVisualTokens();
|
|
335
|
+
const onPressRef = useRef(onPress);
|
|
336
|
+
useLayoutEffect(() => {
|
|
337
|
+
onPressRef.current = onPress;
|
|
338
|
+
}, [onPress]);
|
|
339
|
+
const interactiveStyle = withInteractivePressableStyle(undefined, interaction, {
|
|
340
|
+
pressedVariant: 'default',
|
|
341
|
+
});
|
|
216
342
|
useLayoutEffect(() => {
|
|
217
|
-
nativeCopyRef.current
|
|
218
|
-
|
|
343
|
+
const copy = nativeCopyRef.current;
|
|
344
|
+
copy.cancelLabel = textFromPressableChildren(children);
|
|
345
|
+
copy.onCancel = () => {
|
|
219
346
|
const h = onPressRef.current;
|
|
220
347
|
if (h)
|
|
221
348
|
h();
|
|
222
349
|
};
|
|
223
350
|
return () => {
|
|
224
|
-
|
|
225
|
-
|
|
351
|
+
copy.cancelLabel = 'Cancel';
|
|
352
|
+
copy.onCancel = null;
|
|
226
353
|
};
|
|
227
354
|
}, [children, nativeCopyRef]);
|
|
228
|
-
return (_jsx(Pressable, { className: cn('inline-flex items-center justify-center
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
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) }));
|
|
232
368
|
}
|
|
233
369
|
AlertDialog.displayName = 'AlertDialog';
|
|
234
370
|
AlertDialogTrigger.displayName = 'AlertDialogTrigger';
|
|
@@ -240,4 +376,3 @@ AlertDialogDescription.displayName = 'AlertDialogDescription';
|
|
|
240
376
|
AlertDialogAction.displayName = 'AlertDialogAction';
|
|
241
377
|
AlertDialogCancel.displayName = 'AlertDialogCancel';
|
|
242
378
|
export { AlertDialog, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel, };
|
|
243
|
-
//# 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
|
|
@@ -16,7 +16,7 @@ declare const badgeVariants: import("tailwind-variants").TVReturnType<{
|
|
|
16
16
|
'soft-warning': string;
|
|
17
17
|
'soft-info': string;
|
|
18
18
|
};
|
|
19
|
-
}, undefined, "inline-flex items-center
|
|
19
|
+
}, undefined, "inline-flex items-center", import("tailwind-variants/dist/config.js").TVConfig<{
|
|
20
20
|
variant: {
|
|
21
21
|
default: string;
|
|
22
22
|
secondary: string;
|
|
@@ -80,7 +80,7 @@ declare const badgeVariants: import("tailwind-variants").TVReturnType<{
|
|
|
80
80
|
'soft-warning': string;
|
|
81
81
|
'soft-info': string;
|
|
82
82
|
};
|
|
83
|
-
}, undefined, "inline-flex items-center
|
|
83
|
+
}, undefined, "inline-flex items-center", import("tailwind-variants/dist/config.js").TVConfig<{
|
|
84
84
|
variant: {
|
|
85
85
|
default: string;
|
|
86
86
|
secondary: string;
|
|
@@ -129,7 +129,7 @@ declare const badgeTextVariants: import("tailwind-variants").TVReturnType<{
|
|
|
129
129
|
'soft-warning': string;
|
|
130
130
|
'soft-info': string;
|
|
131
131
|
};
|
|
132
|
-
}, undefined, "
|
|
132
|
+
}, undefined, "font-semibold", import("tailwind-variants/dist/config.js").TVConfig<{
|
|
133
133
|
variant: {
|
|
134
134
|
default: string;
|
|
135
135
|
secondary: string;
|
|
@@ -193,7 +193,7 @@ declare const badgeTextVariants: import("tailwind-variants").TVReturnType<{
|
|
|
193
193
|
'soft-warning': string;
|
|
194
194
|
'soft-info': string;
|
|
195
195
|
};
|
|
196
|
-
}, undefined, "
|
|
196
|
+
}, undefined, "font-semibold", import("tailwind-variants/dist/config.js").TVConfig<{
|
|
197
197
|
variant: {
|
|
198
198
|
default: string;
|
|
199
199
|
secondary: string;
|
|
@@ -230,13 +230,12 @@ export interface BadgeProps extends ViewProps, VariantProps<typeof badgeVariants
|
|
|
230
230
|
}
|
|
231
231
|
export interface BadgeTextProps extends TextProps, VariantProps<typeof badgeTextVariants> {
|
|
232
232
|
}
|
|
233
|
-
declare function Badge({ className, variant, children, ...props }: BadgeProps): import("react
|
|
233
|
+
declare function Badge({ className, variant, children, style, ...props }: BadgeProps): import("react").JSX.Element;
|
|
234
234
|
declare namespace Badge {
|
|
235
235
|
var displayName: string;
|
|
236
236
|
}
|
|
237
|
-
declare function BadgeText({ className, variant: variantProp, ...props }: BadgeTextProps): import("react
|
|
237
|
+
declare function BadgeText({ className, variant: variantProp, style, ...props }: BadgeTextProps): import("react").JSX.Element;
|
|
238
238
|
declare namespace BadgeText {
|
|
239
239
|
var displayName: string;
|
|
240
240
|
}
|
|
241
241
|
export { Badge, BadgeText, badgeVariants, badgeTextVariants };
|
|
242
|
-
//# sourceMappingURL=badge.d.ts.map
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { createContext, useContext } from 'react';
|
|
2
|
+
import { createContext, useContext, useMemo } from 'react';
|
|
3
3
|
import { View } from 'react-native';
|
|
4
4
|
import { Text } from '../text';
|
|
5
5
|
import { cn } from '../../lib/cn';
|
|
6
6
|
import { tv } from '../../lib/tv';
|
|
7
|
+
import { useVisualTokens } from '../../lib/visual-tokens';
|
|
8
|
+
import { typographyStyle } from '../../lib/recipes';
|
|
7
9
|
const BadgeContext = createContext({
|
|
8
10
|
variant: 'default',
|
|
9
11
|
});
|
|
10
12
|
const badgeVariants = tv({
|
|
11
|
-
base: 'inline-flex items-center
|
|
13
|
+
base: 'inline-flex items-center',
|
|
12
14
|
variants: {
|
|
13
15
|
variant: {
|
|
14
16
|
default: 'bg-primary',
|
|
15
17
|
secondary: 'bg-secondary',
|
|
16
18
|
destructive: 'bg-destructive',
|
|
17
|
-
outline: 'border
|
|
19
|
+
outline: 'border-border bg-transparent',
|
|
18
20
|
success: 'bg-success',
|
|
19
21
|
warning: 'bg-warning',
|
|
20
22
|
info: 'bg-info',
|
|
@@ -31,7 +33,7 @@ const badgeVariants = tv({
|
|
|
31
33
|
},
|
|
32
34
|
});
|
|
33
35
|
const badgeTextVariants = tv({
|
|
34
|
-
base: '
|
|
36
|
+
base: 'font-semibold',
|
|
35
37
|
variants: {
|
|
36
38
|
variant: {
|
|
37
39
|
default: 'text-primary-foreground',
|
|
@@ -53,15 +55,25 @@ const badgeTextVariants = tv({
|
|
|
53
55
|
variant: 'default',
|
|
54
56
|
},
|
|
55
57
|
});
|
|
56
|
-
function Badge({ className, variant = 'default', children, ...props }) {
|
|
57
|
-
|
|
58
|
+
function Badge({ className, variant = 'default', children, style, ...props }) {
|
|
59
|
+
const visual = useVisualTokens();
|
|
60
|
+
const contextValue = useMemo(() => ({ variant }), [variant]);
|
|
61
|
+
return (_jsx(BadgeContext.Provider, { value: contextValue, children: _jsx(View, { className: cn(badgeVariants({ variant }), className), style: [
|
|
62
|
+
{
|
|
63
|
+
borderRadius: visual.badgeRadius,
|
|
64
|
+
paddingHorizontal: visual.badgePaddingX,
|
|
65
|
+
paddingVertical: visual.badgePaddingY,
|
|
66
|
+
...(variant === 'outline' ? { borderWidth: visual.borderWidthHairline } : null),
|
|
67
|
+
},
|
|
68
|
+
style,
|
|
69
|
+
], ...props, children: children }) }));
|
|
58
70
|
}
|
|
59
|
-
function BadgeText({ className, variant: variantProp, ...props }) {
|
|
71
|
+
function BadgeText({ className, variant: variantProp, style, ...props }) {
|
|
60
72
|
const context = useContext(BadgeContext);
|
|
73
|
+
const visual = useVisualTokens();
|
|
61
74
|
const variant = variantProp ?? context.variant;
|
|
62
|
-
return _jsx(Text, { className: cn(badgeTextVariants({ variant }), className), ...props });
|
|
75
|
+
return (_jsx(Text, { className: cn(badgeTextVariants({ variant }), className), style: [typographyStyle(visual, 'caption'), style], ...props }));
|
|
63
76
|
}
|
|
64
77
|
Badge.displayName = 'Badge';
|
|
65
78
|
BadgeText.displayName = 'BadgeText';
|
|
66
79
|
export { Badge, BadgeText, badgeVariants, badgeTextVariants };
|
|
67
|
-
//# sourceMappingURL=badge.js.map
|