@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
|
@@ -15,7 +15,7 @@ declare const toggleGroupItemVariants: import("tailwind-variants").TVReturnType<
|
|
|
15
15
|
true: string;
|
|
16
16
|
false: string;
|
|
17
17
|
};
|
|
18
|
-
}, undefined, "inline-flex items-center justify-center
|
|
18
|
+
}, undefined, "inline-flex items-center justify-center", import("tailwind-variants/dist/config.js").TVConfig<{
|
|
19
19
|
variant: {
|
|
20
20
|
default: string;
|
|
21
21
|
outline: string;
|
|
@@ -71,7 +71,7 @@ declare const toggleGroupItemVariants: import("tailwind-variants").TVReturnType<
|
|
|
71
71
|
true: string;
|
|
72
72
|
false: string;
|
|
73
73
|
};
|
|
74
|
-
}, undefined, "inline-flex items-center justify-center
|
|
74
|
+
}, undefined, "inline-flex items-center justify-center", import("tailwind-variants/dist/config.js").TVConfig<{
|
|
75
75
|
variant: {
|
|
76
76
|
default: string;
|
|
77
77
|
outline: string;
|
|
@@ -110,7 +110,7 @@ declare const toggleGroupItemTextVariants: import("tailwind-variants").TVReturnT
|
|
|
110
110
|
sm: string;
|
|
111
111
|
lg: string;
|
|
112
112
|
};
|
|
113
|
-
}, undefined, "
|
|
113
|
+
}, undefined, "font-medium", import("tailwind-variants/dist/config.js").TVConfig<{
|
|
114
114
|
pressed: {
|
|
115
115
|
true: string;
|
|
116
116
|
false: string;
|
|
@@ -150,7 +150,7 @@ declare const toggleGroupItemTextVariants: import("tailwind-variants").TVReturnT
|
|
|
150
150
|
sm: string;
|
|
151
151
|
lg: string;
|
|
152
152
|
};
|
|
153
|
-
}, undefined, "
|
|
153
|
+
}, undefined, "font-medium", import("tailwind-variants/dist/config.js").TVConfig<{
|
|
154
154
|
pressed: {
|
|
155
155
|
true: string;
|
|
156
156
|
false: string;
|
|
@@ -188,17 +188,16 @@ export interface ToggleGroupItemProps extends Omit<PressableProps, 'children'> {
|
|
|
188
188
|
export interface ToggleGroupItemTextProps extends TextProps {
|
|
189
189
|
className?: string;
|
|
190
190
|
}
|
|
191
|
-
declare function ToggleGroup({ type, defaultValue, value: controlledValue, onValueChange, variant, size, className, children, ...props }: ToggleGroupProps):
|
|
191
|
+
declare function ToggleGroup({ type, defaultValue, value: controlledValue, onValueChange, variant, size, className, children, ...props }: ToggleGroupProps): React.JSX.Element;
|
|
192
192
|
declare namespace ToggleGroup {
|
|
193
193
|
var displayName: string;
|
|
194
194
|
}
|
|
195
|
-
declare function ToggleGroupItem({ value: itemValue, className, children, ...props }: ToggleGroupItemProps):
|
|
195
|
+
declare function ToggleGroupItem({ value: itemValue, className, children, style: styleProp, ...props }: ToggleGroupItemProps): React.JSX.Element;
|
|
196
196
|
declare namespace ToggleGroupItem {
|
|
197
197
|
var displayName: string;
|
|
198
198
|
}
|
|
199
|
-
declare function ToggleGroupItemText({ className, ...props }: ToggleGroupItemTextProps):
|
|
199
|
+
declare function ToggleGroupItemText({ className, style, ...props }: ToggleGroupItemTextProps): React.JSX.Element;
|
|
200
200
|
declare namespace ToggleGroupItemText {
|
|
201
201
|
var displayName: string;
|
|
202
202
|
}
|
|
203
203
|
export { ToggleGroup, ToggleGroupItem, ToggleGroupItemText, toggleGroupItemVariants, toggleGroupItemTextVariants, };
|
|
204
|
-
//# sourceMappingURL=toggle-group.d.ts.map
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { createContext, useContext, useState, useCallback } from 'react';
|
|
2
|
+
import { createContext, useContext, useState, useCallback, useMemo } from 'react';
|
|
3
3
|
import { View, Pressable, Text, } from 'react-native';
|
|
4
4
|
import { cn } from '../../lib/cn';
|
|
5
|
+
import { focusRing } from '../../lib/focus-ring';
|
|
5
6
|
import { tv } from '../../lib/tv';
|
|
7
|
+
import { useVisualTokens } from '../../lib/visual-tokens';
|
|
8
|
+
import { controlRecipe, typographyStyle } from '../../lib/recipes';
|
|
6
9
|
const ToggleGroupContext = createContext({
|
|
7
10
|
type: 'single',
|
|
8
11
|
value: [],
|
|
@@ -12,18 +15,17 @@ const ToggleGroupItemContext = createContext({
|
|
|
12
15
|
pressed: false,
|
|
13
16
|
size: 'default',
|
|
14
17
|
});
|
|
15
|
-
// ─── Variants ────────────────────────────────────────────────
|
|
16
18
|
const toggleGroupItemVariants = tv({
|
|
17
|
-
base: 'inline-flex items-center justify-center
|
|
19
|
+
base: 'inline-flex items-center justify-center',
|
|
18
20
|
variants: {
|
|
19
21
|
variant: {
|
|
20
22
|
default: 'bg-transparent',
|
|
21
23
|
outline: 'border border-input bg-transparent',
|
|
22
24
|
},
|
|
23
25
|
size: {
|
|
24
|
-
default: '
|
|
25
|
-
sm: '
|
|
26
|
-
lg: '
|
|
26
|
+
default: '',
|
|
27
|
+
sm: '',
|
|
28
|
+
lg: '',
|
|
27
29
|
},
|
|
28
30
|
pressed: {
|
|
29
31
|
true: 'bg-accent',
|
|
@@ -36,17 +38,22 @@ const toggleGroupItemVariants = tv({
|
|
|
36
38
|
pressed: false,
|
|
37
39
|
},
|
|
38
40
|
});
|
|
41
|
+
const TOGGLE_GROUP_TEXT_ROLE = {
|
|
42
|
+
default: 'label',
|
|
43
|
+
sm: 'caption',
|
|
44
|
+
lg: 'body',
|
|
45
|
+
};
|
|
39
46
|
const toggleGroupItemTextVariants = tv({
|
|
40
|
-
base: '
|
|
47
|
+
base: 'font-medium',
|
|
41
48
|
variants: {
|
|
42
49
|
pressed: {
|
|
43
50
|
true: 'text-accent-foreground',
|
|
44
51
|
false: 'text-muted-foreground',
|
|
45
52
|
},
|
|
46
53
|
size: {
|
|
47
|
-
default: '
|
|
48
|
-
sm: '
|
|
49
|
-
lg: '
|
|
54
|
+
default: '',
|
|
55
|
+
sm: '',
|
|
56
|
+
lg: '',
|
|
50
57
|
},
|
|
51
58
|
},
|
|
52
59
|
defaultVariants: {
|
|
@@ -54,18 +61,17 @@ const toggleGroupItemTextVariants = tv({
|
|
|
54
61
|
size: 'default',
|
|
55
62
|
},
|
|
56
63
|
});
|
|
57
|
-
// ─── Components ──────────────────────────────────────────────
|
|
58
64
|
function ToggleGroup({ type = 'single', defaultValue, value: controlledValue, onValueChange, variant = 'default', size = 'default', className, children, ...props }) {
|
|
59
65
|
const [internalValue, setInternalValue] = useState(() => {
|
|
60
66
|
if (!defaultValue)
|
|
61
67
|
return [];
|
|
62
68
|
return Array.isArray(defaultValue) ? defaultValue : [defaultValue];
|
|
63
69
|
});
|
|
64
|
-
const value = controlledValue
|
|
70
|
+
const value = useMemo(() => controlledValue
|
|
65
71
|
? Array.isArray(controlledValue)
|
|
66
72
|
? controlledValue
|
|
67
73
|
: [controlledValue]
|
|
68
|
-
: internalValue;
|
|
74
|
+
: internalValue, [controlledValue, internalValue]);
|
|
69
75
|
const handleValueChange = useCallback((itemValue) => {
|
|
70
76
|
let next;
|
|
71
77
|
if (type === 'single') {
|
|
@@ -79,19 +85,30 @@ function ToggleGroup({ type = 'single', defaultValue, value: controlledValue, on
|
|
|
79
85
|
setInternalValue(next);
|
|
80
86
|
onValueChange?.(type === 'single' ? next[0] || '' : next);
|
|
81
87
|
}, [type, value, onValueChange]);
|
|
82
|
-
|
|
88
|
+
const contextValue = useMemo(() => ({ type, value, onValueChange: handleValueChange, variant, size }), [handleValueChange, size, type, value, variant]);
|
|
89
|
+
return (_jsx(ToggleGroupContext.Provider, { value: contextValue, children: _jsx(View, { className: cn('flex flex-row items-center gap-1', className), ...props, children: children }) }));
|
|
83
90
|
}
|
|
84
|
-
function ToggleGroupItem({ value: itemValue, className, children, ...props }) {
|
|
91
|
+
function ToggleGroupItem({ value: itemValue, className, children, style: styleProp, ...props }) {
|
|
85
92
|
const { value, onValueChange, variant, size } = useContext(ToggleGroupContext);
|
|
86
93
|
const pressed = value.includes(itemValue);
|
|
87
|
-
|
|
94
|
+
const visual = useVisualTokens();
|
|
95
|
+
const contextValue = useMemo(() => ({ pressed, size }), [pressed, size]);
|
|
96
|
+
const tokenStyle = {
|
|
97
|
+
...controlRecipe(visual, size ?? 'default'),
|
|
98
|
+
...(variant === 'outline' ? { borderWidth: visual.borderWidthControl } : null),
|
|
99
|
+
};
|
|
100
|
+
return (_jsx(ToggleGroupItemContext.Provider, { value: contextValue, children: _jsx(Pressable, { className: cn(toggleGroupItemVariants({ variant, size, pressed }), focusRing, className), style: (state) => [
|
|
101
|
+
tokenStyle,
|
|
102
|
+
typeof styleProp === 'function' ? styleProp(state) : styleProp,
|
|
103
|
+
], onPress: () => onValueChange(itemValue), accessibilityRole: "button", accessibilityState: { selected: pressed }, ...props, children: children }) }));
|
|
88
104
|
}
|
|
89
|
-
function ToggleGroupItemText({ className, ...props }) {
|
|
105
|
+
function ToggleGroupItemText({ className, style, ...props }) {
|
|
90
106
|
const { pressed, size } = useContext(ToggleGroupItemContext);
|
|
91
|
-
|
|
107
|
+
const visual = useVisualTokens();
|
|
108
|
+
const typography = typographyStyle(visual, TOGGLE_GROUP_TEXT_ROLE[size ?? 'default'] ?? 'label');
|
|
109
|
+
return (_jsx(Text, { className: cn(toggleGroupItemTextVariants({ pressed, size }), className), style: [typography, style], ...props }));
|
|
92
110
|
}
|
|
93
111
|
ToggleGroup.displayName = 'ToggleGroup';
|
|
94
112
|
ToggleGroupItem.displayName = 'ToggleGroupItem';
|
|
95
113
|
ToggleGroupItemText.displayName = 'ToggleGroupItemText';
|
|
96
114
|
export { ToggleGroup, ToggleGroupItem, ToggleGroupItemText, toggleGroupItemVariants, toggleGroupItemTextVariants, };
|
|
97
|
-
//# sourceMappingURL=toggle-group.js.map
|
|
@@ -14,8 +14,7 @@ export interface TooltipContentProps extends React.ComponentPropsWithoutRef<type
|
|
|
14
14
|
className?: string;
|
|
15
15
|
portalHost?: string;
|
|
16
16
|
}
|
|
17
|
-
declare function Tooltip({ onOpenChange, delayDuration, skipDelayDuration, disableHoverableContent, children, }: TooltipProps):
|
|
17
|
+
declare function Tooltip({ onOpenChange, delayDuration, skipDelayDuration, disableHoverableContent, children, }: TooltipProps): React.JSX.Element;
|
|
18
18
|
declare const TooltipTrigger: React.ForwardRefExoticComponent<TooltipTriggerProps & React.RefAttributes<import("@rn-primitives/tooltip").TriggerRef>>;
|
|
19
19
|
declare const TooltipContent: React.ForwardRefExoticComponent<TooltipContentProps & React.RefAttributes<import("react-native").View>>;
|
|
20
20
|
export { Tooltip, TooltipTrigger, TooltipContent };
|
|
21
|
-
//# sourceMappingURL=tooltip.d.ts.map
|
|
@@ -3,16 +3,33 @@ import * as React from 'react';
|
|
|
3
3
|
import { Platform, StyleSheet, Text } from 'react-native';
|
|
4
4
|
import * as TooltipPrimitive from '@rn-primitives/tooltip';
|
|
5
5
|
import { cn } from '../../lib/cn';
|
|
6
|
-
|
|
6
|
+
import { useVisualTokens } from '../../lib/visual-tokens';
|
|
7
|
+
import { useThemeColors } from '../../lib/theme-colors';
|
|
8
|
+
import { shadowStyle, surfaceRadius, typographyStyle } from '../../lib/recipes';
|
|
7
9
|
function Tooltip({ onOpenChange, delayDuration, skipDelayDuration, disableHoverableContent, children, }) {
|
|
8
10
|
return (_jsx(TooltipPrimitive.Root, { onOpenChange: onOpenChange, delayDuration: delayDuration, skipDelayDuration: skipDelayDuration, disableHoverableContent: disableHoverableContent, children: children }));
|
|
9
11
|
}
|
|
10
12
|
const TooltipTrigger = React.forwardRef(({ className, ...props }, ref) => (_jsx(TooltipPrimitive.Trigger, { ref: ref, className: cn(className), ...props })));
|
|
11
13
|
TooltipTrigger.displayName = 'TooltipTrigger';
|
|
12
|
-
const TooltipContent = React.forwardRef(({ className, sideOffset = 4, portalHost, children, ...props }, ref) =>
|
|
14
|
+
const TooltipContent = React.forwardRef(({ className, sideOffset = 4, portalHost, children, style, ...props }, ref) => {
|
|
15
|
+
const visual = useVisualTokens();
|
|
16
|
+
const colors = useThemeColors();
|
|
17
|
+
const resolvedStyle = StyleSheet.flatten([
|
|
18
|
+
Platform.OS === 'web' ? undefined : contentStyles,
|
|
19
|
+
{
|
|
20
|
+
borderRadius: surfaceRadius(visual, 'md'),
|
|
21
|
+
borderWidth: visual.borderWidthHairline,
|
|
22
|
+
borderColor: colors.border,
|
|
23
|
+
paddingHorizontal: visual.controlPaddingXSm,
|
|
24
|
+
paddingVertical: visual.controlPaddingYSm,
|
|
25
|
+
},
|
|
26
|
+
shadowStyle(visual, colors, 'md'),
|
|
27
|
+
style,
|
|
28
|
+
]);
|
|
29
|
+
return (_jsx(TooltipPrimitive.Portal, { hostName: portalHost, children: _jsx(TooltipPrimitive.Overlay, { style: Platform.OS !== 'web' ? StyleSheet.absoluteFill : undefined, children: _jsx(TooltipPrimitive.Content, { ref: ref, sideOffset: sideOffset, className: cn('z-50 overflow-hidden bg-primary', 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1', className), style: resolvedStyle, ...props, children: typeof children === 'string' ? (_jsx(Text, { className: "text-primary-foreground", style: typographyStyle(visual, 'caption'), children: children })) : (children) }) }) }));
|
|
30
|
+
});
|
|
13
31
|
TooltipContent.displayName = 'TooltipContent';
|
|
14
32
|
const contentStyles = {
|
|
15
33
|
position: 'absolute',
|
|
16
34
|
};
|
|
17
35
|
export { Tooltip, TooltipTrigger, TooltipContent };
|
|
18
|
-
//# sourceMappingURL=tooltip.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
import './lib/react-native-classname';
|
|
2
2
|
export { cn } from './lib/cn';
|
|
3
|
+
export { focusRing, focusRingInset } from './lib/focus-ring';
|
|
3
4
|
export { tv, type VariantProps } from './lib/tv';
|
|
4
5
|
export { FontProvider, type FontFamilyMap, type ResolvedFont, type ResolvedFontResult, } from './lib/font-context';
|
|
5
6
|
export { PortalHost } from './lib/portal';
|
|
6
7
|
export { ThemeBridge, applyThemeMode, resolveThemeMode, syncThemeMode, useThemeBridge, type ThemeMode, type ThemeBridgeAdapter, type ThemeBridgeProps, type UseThemeBridgeOptions, type UseThemeBridgeResult, } from './lib/theme-bridge';
|
|
7
|
-
export { useThemeColors, useThemeTokens, useIconColors,
|
|
8
|
+
export { useThemeColors, useThemeTokens, useIconColors, type ThemeColors, } from './lib/theme-colors';
|
|
9
|
+
export { THEME_TOKEN_SPECS, THEME_TOKEN_GROUPS, WHILEUI_LIGHT_THEME_COLORS, WHILEUI_DARK_THEME_COLORS, type ThemeTokenGroup, type ThemeTokenKey, type ThemeTokenSpec, } from './lib/theme-contract';
|
|
8
10
|
export { useInteractionTokens, withInteractivePressableStyle, type InteractionTokens, type InteractivePressableOptions, type PressedVariant, type DisabledVariant, } from './lib/interaction-tokens';
|
|
11
|
+
export { MotionProvider, useMotionPolicy, type MotionMode, type MotionDuration, type MotionSpring, type MotionSpringConfig, type MotionPolicy, type MotionProviderProps, } from './lib/motion-policy';
|
|
9
12
|
export { useVisualTokens, type VisualTokens } from './lib/visual-tokens';
|
|
13
|
+
export { VISUAL_TOKEN_SPECS, VISUAL_TOKEN_GROUPS, type VisualTokenGroup, type VisualTokenKey, type VisualTokenKind, type VisualTokenSpec, } from './lib/visual-token-contract';
|
|
10
14
|
export { registerFrostedBlurView, type FrostedSurfaceProps, type FrostedTintToken, } from './lib/frosted-surface';
|
|
15
|
+
export { controlRecipe, fieldRecipe, surfaceRecipe, surfacePadding, surfaceRadius, shadowStyle, typographyStyle, useControlRecipe, useFieldRecipe, useSurfaceRecipe, useShadowStyle, useTypography, type ControlSize, type SurfacePaddingSize, type SurfaceRecipeOptions, type ShadowTier, type TypographyRole, } from './lib/recipes';
|
|
16
|
+
export { WHILEUI_PRESET_SOFT, WHILEUI_PRESET_ATELIER, WHILEUI_THEME_PRESETS, themePresetToCssVariables, themePresetToCss, type ThemePreset, } from './lib/theme-presets';
|
|
17
|
+
export { deriveThemeColors, THEME_BASE_TOKEN_KEYS, type ThemeBaseColors } from './lib/theme-derive';
|
|
11
18
|
export { Text, textVariants, type TextProps } from './components/text';
|
|
12
19
|
export { View, type ViewProps } from './components/view';
|
|
13
20
|
export { Pressable, type PressableProps } from './components/pressable';
|
|
14
21
|
export { Stack, stackVariants, type StackProps } from './components/stack';
|
|
15
22
|
export { Row, rowVariants, type RowProps } from './components/row';
|
|
16
|
-
export { Box, boxVariants, type BoxProps } from './components/box';
|
|
17
23
|
export { Button, ButtonText, ButtonIcon, buttonVariants, buttonTextVariants, type ButtonProps, type ButtonTextProps, type ButtonIconProps, } from './components/button';
|
|
18
24
|
export { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter, cardVariants, type CardProps, type CardHeaderProps, type CardTitleProps, type CardDescriptionProps, type CardContentProps, type CardFooterProps, } from './components/card';
|
|
19
25
|
export { Input, inputVariants, type InputProps } from './components/input';
|
|
@@ -35,6 +41,7 @@ export { AspectRatio, type AspectRatioProps } from './components/aspect-ratio';
|
|
|
35
41
|
export { Avatar, AvatarImage, AvatarFallback, avatarVariants, type AvatarProps, type AvatarImageProps, type AvatarFallbackProps, } from './components/avatar';
|
|
36
42
|
export { Accordion, AccordionItem, AccordionTrigger, AccordionContent, type AccordionProps, type AccordionItemProps, type AccordionTriggerProps, type AccordionContentProps, } from './components/accordion';
|
|
37
43
|
export { Collapsible, CollapsibleTrigger, CollapsibleContent, type CollapsibleProps, type CollapsibleTriggerProps, type CollapsibleContentProps, } from './components/collapsible';
|
|
44
|
+
export { Container, containerVariants, type ContainerProps } from './components/container';
|
|
38
45
|
export { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, DialogClose, type DialogProps, type DialogTriggerProps, type DialogContentProps, type DialogHeaderProps, type DialogFooterProps, type DialogTitleProps, type DialogDescriptionProps, type DialogCloseProps, } from './components/dialog';
|
|
39
46
|
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 './components/alert-dialog';
|
|
40
47
|
export { Tabs, TabsList, TabsTrigger, TabsContent, tabsTriggerVariants, type TabsProps, type TabsListProps, type TabsTriggerProps, type TabsContentProps, } from './components/tabs';
|
|
@@ -59,4 +66,3 @@ export * from './blocks/commerce';
|
|
|
59
66
|
export * from './blocks/splash';
|
|
60
67
|
export * from './blocks/media';
|
|
61
68
|
export * from './blocks/datepicker';
|
|
62
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
import './lib/react-native-classname';
|
|
2
|
-
// ─── Utilities ───────────────────────────────────────────────
|
|
3
2
|
export { cn } from './lib/cn';
|
|
3
|
+
export { focusRing, focusRingInset } from './lib/focus-ring';
|
|
4
4
|
export { tv } from './lib/tv';
|
|
5
5
|
export { FontProvider, } from './lib/font-context';
|
|
6
6
|
export { PortalHost } from './lib/portal';
|
|
7
7
|
export { ThemeBridge, applyThemeMode, resolveThemeMode, syncThemeMode, useThemeBridge, } from './lib/theme-bridge';
|
|
8
|
-
export { useThemeColors, useThemeTokens, useIconColors,
|
|
8
|
+
export { useThemeColors, useThemeTokens, useIconColors, } from './lib/theme-colors';
|
|
9
|
+
export { THEME_TOKEN_SPECS, THEME_TOKEN_GROUPS, WHILEUI_LIGHT_THEME_COLORS, WHILEUI_DARK_THEME_COLORS, } from './lib/theme-contract';
|
|
9
10
|
export { useInteractionTokens, withInteractivePressableStyle, } from './lib/interaction-tokens';
|
|
11
|
+
export { MotionProvider, useMotionPolicy, } from './lib/motion-policy';
|
|
10
12
|
export { useVisualTokens } from './lib/visual-tokens';
|
|
13
|
+
export { VISUAL_TOKEN_SPECS, VISUAL_TOKEN_GROUPS, } from './lib/visual-token-contract';
|
|
11
14
|
export { registerFrostedBlurView, } from './lib/frosted-surface';
|
|
12
|
-
|
|
15
|
+
export { controlRecipe, fieldRecipe, surfaceRecipe, surfacePadding, surfaceRadius, shadowStyle, typographyStyle, useControlRecipe, useFieldRecipe, useSurfaceRecipe, useShadowStyle, useTypography, } from './lib/recipes';
|
|
16
|
+
export { WHILEUI_PRESET_SOFT, WHILEUI_PRESET_ATELIER, WHILEUI_THEME_PRESETS, themePresetToCssVariables, themePresetToCss, } from './lib/theme-presets';
|
|
17
|
+
export { deriveThemeColors, THEME_BASE_TOKEN_KEYS } from './lib/theme-derive';
|
|
13
18
|
export { Text, textVariants } from './components/text';
|
|
14
19
|
export { View } from './components/view';
|
|
15
20
|
export { Pressable } from './components/pressable';
|
|
16
21
|
export { Stack, stackVariants } from './components/stack';
|
|
17
22
|
export { Row, rowVariants } from './components/row';
|
|
18
|
-
export { Box, boxVariants } from './components/box';
|
|
19
|
-
// ─── Components ──────────────────────────────────────────────
|
|
20
23
|
export { Button, ButtonText, ButtonIcon, buttonVariants, buttonTextVariants, } from './components/button';
|
|
21
24
|
export { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter, cardVariants, } from './components/card';
|
|
22
25
|
export { Input, inputVariants } from './components/input';
|
|
@@ -38,6 +41,7 @@ export { AspectRatio } from './components/aspect-ratio';
|
|
|
38
41
|
export { Avatar, AvatarImage, AvatarFallback, avatarVariants, } from './components/avatar';
|
|
39
42
|
export { Accordion, AccordionItem, AccordionTrigger, AccordionContent, } from './components/accordion';
|
|
40
43
|
export { Collapsible, CollapsibleTrigger, CollapsibleContent, } from './components/collapsible';
|
|
44
|
+
export { Container, containerVariants } from './components/container';
|
|
41
45
|
export { Dialog, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, DialogClose, } from './components/dialog';
|
|
42
46
|
export { AlertDialog, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel, } from './components/alert-dialog';
|
|
43
47
|
export { Tabs, TabsList, TabsTrigger, TabsContent, tabsTriggerVariants, } from './components/tabs';
|
|
@@ -54,7 +58,6 @@ export { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, C
|
|
|
54
58
|
export { HoverCard, HoverCardTrigger, HoverCardContent, } from './components/hover-card';
|
|
55
59
|
export { Menubar, MenubarMenu, MenubarTrigger, MenubarContent, MenubarItem, MenubarLabel, MenubarSeparator, } from './components/menubar';
|
|
56
60
|
export { Toast, ToastContainer, ToastProvider, toastVariants, useToast, } from './components/toast';
|
|
57
|
-
// ─── Blocks ──────────────────────────────────────────────────
|
|
58
61
|
export * from './blocks/chat';
|
|
59
62
|
export * from './blocks/navigation';
|
|
60
63
|
export * from './blocks/layout';
|
|
@@ -63,4 +66,3 @@ export * from './blocks/commerce';
|
|
|
63
66
|
export * from './blocks/splash';
|
|
64
67
|
export * from './blocks/media';
|
|
65
68
|
export * from './blocks/datepicker';
|
|
66
|
-
//# sourceMappingURL=index.js.map
|
package/dist/lib/cn.d.ts
CHANGED
package/dist/lib/cn.js
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { PressableProps } from 'react-native';
|
|
2
|
+
import type { ReactElement } from 'react';
|
|
3
|
+
type EventHandler<E> = ((event: E) => void) | null | undefined;
|
|
4
|
+
/**
|
|
5
|
+
* What `asChild` can assume about the element it was handed. The child is the caller's,
|
|
6
|
+
* so this names only the props we actually read off it before cloning — anything wider
|
|
7
|
+
* would be a claim we cannot check.
|
|
8
|
+
*/
|
|
9
|
+
export type AsChildElement = ReactElement<Pick<PressableProps, 'onPress' | 'onLongPress'> & {
|
|
10
|
+
className?: string;
|
|
11
|
+
}>;
|
|
12
|
+
export declare function composeEventHandlers<E>(userHandler?: EventHandler<E>, internalHandler?: EventHandler<E>, { checkForDefaultPrevented }?: {
|
|
13
|
+
checkForDefaultPrevented?: boolean;
|
|
14
|
+
}): (event: E) => void;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
function isDefaultPrevented(event) {
|
|
2
|
+
if (!event || typeof event !== 'object')
|
|
3
|
+
return false;
|
|
4
|
+
if ('defaultPrevented' in event && typeof event.defaultPrevented === 'boolean') {
|
|
5
|
+
return event.defaultPrevented;
|
|
6
|
+
}
|
|
7
|
+
if ('isDefaultPrevented' in event && typeof event.isDefaultPrevented === 'function') {
|
|
8
|
+
return Boolean(event.isDefaultPrevented());
|
|
9
|
+
}
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
export function composeEventHandlers(userHandler, internalHandler, { checkForDefaultPrevented = true } = {}) {
|
|
13
|
+
return (event) => {
|
|
14
|
+
userHandler?.(event);
|
|
15
|
+
if (checkForDefaultPrevented && isDefaultPrevented(event)) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
internalHandler?.(event);
|
|
19
|
+
};
|
|
20
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One focus treatment for every interactive component.
|
|
3
|
+
*
|
|
4
|
+
* Web needs this and native does not: React Native has no `:focus-visible`, and the
|
|
5
|
+
* platforms draw their own focus for hardware keyboards and TV remotes. So these classes
|
|
6
|
+
* are scoped with Uniwind's `web:` selector and compile to nothing elsewhere.
|
|
7
|
+
*
|
|
8
|
+
* `focus-visible`, not `focus`. `:focus` also fires on mouse press, which puts a ring on
|
|
9
|
+
* a button someone just clicked — visually noisy, and it trains people to ignore the ring
|
|
10
|
+
* that keyboard users actually depend on.
|
|
11
|
+
*
|
|
12
|
+
* WCAG 2.4.7 (Focus Visible, AA) requires an indicator. Several components here removed
|
|
13
|
+
* the browser default with `outline-none` and replaced it with nothing, which is the
|
|
14
|
+
* failure this exists to fix — the outline is only safe to remove if a ring takes over.
|
|
15
|
+
*
|
|
16
|
+
* The offset keeps the ring outside the control's own border so the two do not merge
|
|
17
|
+
* into one thick smudge, and `ring-offset-background` fills that gap with the surface
|
|
18
|
+
* colour rather than letting the ring sit on whatever is behind.
|
|
19
|
+
*/
|
|
20
|
+
export declare const focusRing = "web:outline-none web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2 web:focus-visible:ring-offset-background";
|
|
21
|
+
/**
|
|
22
|
+
* For controls drawn flush against an edge or inside a dense row, where an offset ring
|
|
23
|
+
* would be clipped by the parent or collide with a neighbour.
|
|
24
|
+
*/
|
|
25
|
+
export declare const focusRingInset = "web:outline-none web:focus-visible:ring-2 web:focus-visible:ring-ring";
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One focus treatment for every interactive component.
|
|
3
|
+
*
|
|
4
|
+
* Web needs this and native does not: React Native has no `:focus-visible`, and the
|
|
5
|
+
* platforms draw their own focus for hardware keyboards and TV remotes. So these classes
|
|
6
|
+
* are scoped with Uniwind's `web:` selector and compile to nothing elsewhere.
|
|
7
|
+
*
|
|
8
|
+
* `focus-visible`, not `focus`. `:focus` also fires on mouse press, which puts a ring on
|
|
9
|
+
* a button someone just clicked — visually noisy, and it trains people to ignore the ring
|
|
10
|
+
* that keyboard users actually depend on.
|
|
11
|
+
*
|
|
12
|
+
* WCAG 2.4.7 (Focus Visible, AA) requires an indicator. Several components here removed
|
|
13
|
+
* the browser default with `outline-none` and replaced it with nothing, which is the
|
|
14
|
+
* failure this exists to fix — the outline is only safe to remove if a ring takes over.
|
|
15
|
+
*
|
|
16
|
+
* The offset keeps the ring outside the control's own border so the two do not merge
|
|
17
|
+
* into one thick smudge, and `ring-offset-background` fills that gap with the surface
|
|
18
|
+
* colour rather than letting the ring sit on whatever is behind.
|
|
19
|
+
*/
|
|
20
|
+
export const focusRing = 'web:outline-none web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2 web:focus-visible:ring-offset-background';
|
|
21
|
+
/**
|
|
22
|
+
* For controls drawn flush against an edge or inside a dense row, where an offset ring
|
|
23
|
+
* would be clipped by the parent or collide with a neighbour.
|
|
24
|
+
*/
|
|
25
|
+
export const focusRingInset = 'web:outline-none web:focus-visible:ring-2 web:focus-visible:ring-ring';
|
|
@@ -17,6 +17,7 @@ export interface FontFamilyMap {
|
|
|
17
17
|
}
|
|
18
18
|
export interface ResolvedFont {
|
|
19
19
|
fontFamily: string;
|
|
20
|
+
paddingRight?: number;
|
|
20
21
|
}
|
|
21
22
|
export declare const FontProvider: import("react").Provider<FontFamilyMap | null>;
|
|
22
23
|
export interface ResolvedFontResult {
|
|
@@ -36,4 +37,3 @@ export interface ResolvedFontResult {
|
|
|
36
37
|
* ensures the style prop is the sole source of font info.
|
|
37
38
|
*/
|
|
38
39
|
export declare function useResolveFontFamily(className?: string): ResolvedFontResult | undefined;
|
|
39
|
-
//# sourceMappingURL=font-context.d.ts.map
|
package/dist/lib/font-context.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createContext, useContext } from 'react';
|
|
2
|
+
import { Platform } from 'react-native';
|
|
2
3
|
const FontContext = createContext(null);
|
|
3
4
|
export const FontProvider = FontContext.Provider;
|
|
4
5
|
const FONT_WEIGHT_RE = /\bfont-(thin|extralight|light|normal|medium|semibold|bold|extrabold|black)\b/g;
|
|
@@ -15,18 +16,20 @@ export function useResolveFontFamily(className) {
|
|
|
15
16
|
const map = useContext(FontContext);
|
|
16
17
|
if (!map)
|
|
17
18
|
return undefined;
|
|
19
|
+
const isNative = Platform.OS !== 'web';
|
|
20
|
+
const paddingRight = isNative ? 4 : undefined;
|
|
18
21
|
if (!className)
|
|
19
22
|
return {
|
|
20
|
-
style: { fontFamily: map['font-normal'] },
|
|
23
|
+
style: { fontFamily: map['font-normal'], paddingRight },
|
|
21
24
|
className: '',
|
|
22
25
|
};
|
|
23
26
|
const classes = className.split(/\s+/);
|
|
24
|
-
let resolved = { fontFamily: map['font-normal'] };
|
|
27
|
+
let resolved = { fontFamily: map['font-normal'], paddingRight };
|
|
25
28
|
for (let i = classes.length - 1; i >= 0; i--) {
|
|
26
29
|
const cls = classes[i];
|
|
27
30
|
const mapped = map[cls];
|
|
28
31
|
if (mapped) {
|
|
29
|
-
resolved = { fontFamily: mapped };
|
|
32
|
+
resolved = { fontFamily: mapped, paddingRight };
|
|
30
33
|
break;
|
|
31
34
|
}
|
|
32
35
|
}
|
|
@@ -38,4 +41,3 @@ export function useResolveFontFamily(className) {
|
|
|
38
41
|
.trim(),
|
|
39
42
|
};
|
|
40
43
|
}
|
|
41
|
-
//# sourceMappingURL=font-context.js.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Platform, StyleSheet, View } from 'react-native';
|
|
3
3
|
import { useUniwind } from 'uniwind';
|
|
4
|
+
import { formatRgb, parse } from 'culori';
|
|
4
5
|
import { useThemeColors } from './theme-colors';
|
|
5
6
|
import { useVisualTokens } from './visual-tokens';
|
|
6
7
|
let cachedBlurViewComponent;
|
|
@@ -47,6 +48,26 @@ function resolveTintColor(colors, tintToken) {
|
|
|
47
48
|
return colors.surfaceTranslucent;
|
|
48
49
|
return colors.surfaceElevated;
|
|
49
50
|
}
|
|
51
|
+
function scaleColorAlpha(color, alphaScale) {
|
|
52
|
+
if (alphaScale === 1)
|
|
53
|
+
return color;
|
|
54
|
+
try {
|
|
55
|
+
const parsed = parse(color);
|
|
56
|
+
if (!parsed)
|
|
57
|
+
return color;
|
|
58
|
+
const currentAlpha = typeof parsed.alpha === 'number' ? parsed.alpha : 1;
|
|
59
|
+
if (currentAlpha >= 1)
|
|
60
|
+
return color;
|
|
61
|
+
const nextColor = {
|
|
62
|
+
...parsed,
|
|
63
|
+
alpha: Math.min(1, Math.max(0, currentAlpha * alphaScale)),
|
|
64
|
+
};
|
|
65
|
+
return formatRgb(nextColor) ?? color;
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return color;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
50
71
|
function resolveBlurIntensity(visualTokens, blurIntensity, preset) {
|
|
51
72
|
if (typeof blurIntensity === 'number' && Number.isFinite(blurIntensity)) {
|
|
52
73
|
return Math.max(0, Math.round(blurIntensity));
|
|
@@ -60,7 +81,7 @@ function resolveBlurIntensity(visualTokens, blurIntensity, preset) {
|
|
|
60
81
|
function getInsetAbsoluteFillStyle() {
|
|
61
82
|
const inset = Math.max(0, StyleSheet.hairlineWidth);
|
|
62
83
|
if (inset <= 0) {
|
|
63
|
-
return StyleSheet.
|
|
84
|
+
return StyleSheet.absoluteFill;
|
|
64
85
|
}
|
|
65
86
|
return {
|
|
66
87
|
position: 'absolute',
|
|
@@ -79,7 +100,7 @@ function FrostedOverlay({ intensity, tintColor, highlightColor, saturationPct, h
|
|
|
79
100
|
: undefined;
|
|
80
101
|
const showHighlight = highlightHeight > 0;
|
|
81
102
|
const blurFill = getInsetAbsoluteFillStyle();
|
|
82
|
-
const tintFill = StyleSheet.
|
|
103
|
+
const tintFill = StyleSheet.absoluteFill;
|
|
83
104
|
const highlightInset = Math.max(0, StyleSheet.hairlineWidth);
|
|
84
105
|
if (!BlurView && Platform.OS === 'web') {
|
|
85
106
|
const webStyle = {
|
|
@@ -128,7 +149,7 @@ function FrostedBackdropOverlay({ intensity, tintColor, saturationPct, androidEx
|
|
|
128
149
|
? { experimentalBlurMethod: 'dimezisBlurView' }
|
|
129
150
|
: undefined;
|
|
130
151
|
const blurFill = getInsetAbsoluteFillStyle();
|
|
131
|
-
const tintFill = StyleSheet.
|
|
152
|
+
const tintFill = StyleSheet.absoluteFill;
|
|
132
153
|
if (!BlurView && Platform.OS === 'web') {
|
|
133
154
|
const webStyle = {
|
|
134
155
|
backdropFilter: `blur(${intensity}px) saturate(${saturationPct}%)`,
|
|
@@ -153,6 +174,9 @@ export function useFrostedSurface({ frosted = false, blurIntensity, blurTintToke
|
|
|
153
174
|
}
|
|
154
175
|
const tintToken = blurTintToken ?? defaultTintToken;
|
|
155
176
|
const tintColor = resolveTintColor(colors, tintToken);
|
|
177
|
+
const resolvedTintColor = Platform.OS === 'android'
|
|
178
|
+
? scaleColorAlpha(tintColor, visualTokens.androidFrostedTintAlphaScale)
|
|
179
|
+
: tintColor;
|
|
156
180
|
const intensity = resolveBlurIntensity(visualTokens, blurIntensity, defaultBlurPreset);
|
|
157
181
|
const highlightColor = colors.surfaceHighlight;
|
|
158
182
|
const highlightHeight = visualTokens.frostedHighlightHeight;
|
|
@@ -160,7 +184,7 @@ export function useFrostedSurface({ frosted = false, blurIntensity, blurTintToke
|
|
|
160
184
|
const androidExperimentalBlurEnabled = visualTokens.androidExperimentalBlurEnabled;
|
|
161
185
|
return {
|
|
162
186
|
frosted: true,
|
|
163
|
-
overlay: (_jsx(FrostedOverlay, { intensity: intensity, tintColor:
|
|
187
|
+
overlay: (_jsx(FrostedOverlay, { intensity: intensity, tintColor: resolvedTintColor, highlightColor: highlightColor, highlightHeight: highlightHeight, saturationPct: saturationPct, androidExperimentalBlurEnabled: androidExperimentalBlurEnabled })),
|
|
164
188
|
surfaceStyle: {
|
|
165
189
|
backgroundColor: 'transparent',
|
|
166
190
|
borderColor: colors.surfaceBorder,
|
|
@@ -175,7 +199,8 @@ export function useFrostedBackdrop({ frosted = false, blurIntensity, tintColor,
|
|
|
175
199
|
const intensity = typeof blurIntensity === 'number' && Number.isFinite(blurIntensity)
|
|
176
200
|
? Math.max(0, Math.round(blurIntensity))
|
|
177
201
|
: visualTokens.frostedBackdropBlurIntensity;
|
|
178
|
-
const resolvedTintColor =
|
|
202
|
+
const resolvedTintColor = Platform.OS === 'android'
|
|
203
|
+
? scaleColorAlpha(tintColor ?? colors.overlay, visualTokens.androidFrostedTintAlphaScale)
|
|
204
|
+
: (tintColor ?? colors.overlay);
|
|
179
205
|
return (_jsx(FrostedBackdropOverlay, { intensity: intensity, tintColor: resolvedTintColor, saturationPct: visualTokens.blurSaturationPct, androidExperimentalBlurEnabled: visualTokens.androidExperimentalBlurEnabled }));
|
|
180
206
|
}
|
|
181
|
-
//# sourceMappingURL=frosted-surface.js.map
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import { type PressableProps } from 'react-native';
|
|
2
|
+
/** Motion values used when a `--ui-motion-*` token is absent, and by the provider-less motion policy. */
|
|
3
|
+
export declare const MOTION_TOKEN_DEFAULTS: {
|
|
4
|
+
readonly motionFast: 140;
|
|
5
|
+
readonly motionNormal: 200;
|
|
6
|
+
readonly motionSlow: 280;
|
|
7
|
+
readonly motionSpringDamping: 20;
|
|
8
|
+
readonly motionSpringStiffness: 260;
|
|
9
|
+
readonly motionSpringMass: 0.8;
|
|
10
|
+
};
|
|
2
11
|
export interface InteractionTokens {
|
|
3
12
|
pressOpacity: number;
|
|
4
13
|
pressOpacityStrong: number;
|
|
@@ -9,6 +18,9 @@ export interface InteractionTokens {
|
|
|
9
18
|
motionFast: number;
|
|
10
19
|
motionNormal: number;
|
|
11
20
|
motionSlow: number;
|
|
21
|
+
motionSpringDamping: number;
|
|
22
|
+
motionSpringStiffness: number;
|
|
23
|
+
motionSpringMass: number;
|
|
12
24
|
drawerOpenDuration: number;
|
|
13
25
|
drawerCloseDuration: number;
|
|
14
26
|
}
|
|
@@ -23,4 +35,3 @@ export declare function useInteractionTokens(): InteractionTokens;
|
|
|
23
35
|
type PressableStyle = PressableProps['style'];
|
|
24
36
|
export declare function withInteractivePressableStyle(styleProp: PressableStyle | undefined, tokens: InteractionTokens, options?: InteractivePressableOptions): PressableStyle;
|
|
25
37
|
export {};
|
|
26
|
-
//# sourceMappingURL=interaction-tokens.d.ts.map
|