@thewhileloop/whileui 0.1.1
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/dist/blocks/auth/forgot-password-form.d.ts +2 -0
- package/dist/blocks/auth/forgot-password-form.d.ts.map +1 -0
- package/dist/blocks/auth/forgot-password-form.js +11 -0
- package/dist/blocks/auth/forgot-password-form.js.map +1 -0
- package/dist/blocks/auth/index.d.ts +8 -0
- package/dist/blocks/auth/index.d.ts.map +1 -0
- package/dist/blocks/auth/index.js +8 -0
- package/dist/blocks/auth/index.js.map +1 -0
- package/dist/blocks/auth/reset-password-form.d.ts +2 -0
- package/dist/blocks/auth/reset-password-form.d.ts.map +1 -0
- package/dist/blocks/auth/reset-password-form.js +10 -0
- package/dist/blocks/auth/reset-password-form.js.map +1 -0
- package/dist/blocks/auth/sign-in-form.d.ts +2 -0
- package/dist/blocks/auth/sign-in-form.d.ts.map +1 -0
- package/dist/blocks/auth/sign-in-form.js +12 -0
- package/dist/blocks/auth/sign-in-form.js.map +1 -0
- package/dist/blocks/auth/sign-up-form.d.ts +2 -0
- package/dist/blocks/auth/sign-up-form.d.ts.map +1 -0
- package/dist/blocks/auth/sign-up-form.js +12 -0
- package/dist/blocks/auth/sign-up-form.js.map +1 -0
- package/dist/blocks/auth/social-connections.d.ts +2 -0
- package/dist/blocks/auth/social-connections.d.ts.map +1 -0
- package/dist/blocks/auth/social-connections.js +8 -0
- package/dist/blocks/auth/social-connections.js.map +1 -0
- package/dist/blocks/auth/user-menu.d.ts +2 -0
- package/dist/blocks/auth/user-menu.d.ts.map +1 -0
- package/dist/blocks/auth/user-menu.js +10 -0
- package/dist/blocks/auth/user-menu.js.map +1 -0
- package/dist/blocks/auth/verify-email-form.d.ts +2 -0
- package/dist/blocks/auth/verify-email-form.d.ts.map +1 -0
- package/dist/blocks/auth/verify-email-form.js +11 -0
- package/dist/blocks/auth/verify-email-form.js.map +1 -0
- package/dist/blocks/commerce/checkout-summary.d.ts +19 -0
- package/dist/blocks/commerce/checkout-summary.d.ts.map +1 -0
- package/dist/blocks/commerce/checkout-summary.js +11 -0
- package/dist/blocks/commerce/checkout-summary.js.map +1 -0
- package/dist/blocks/commerce/index.d.ts +4 -0
- package/dist/blocks/commerce/index.d.ts.map +1 -0
- package/dist/blocks/commerce/index.js +4 -0
- package/dist/blocks/commerce/index.js.map +1 -0
- package/dist/blocks/commerce/pricing-card.d.ts +18 -0
- package/dist/blocks/commerce/pricing-card.d.ts.map +1 -0
- package/dist/blocks/commerce/pricing-card.js +11 -0
- package/dist/blocks/commerce/pricing-card.js.map +1 -0
- package/dist/blocks/commerce/product-card.d.ts +15 -0
- package/dist/blocks/commerce/product-card.d.ts.map +1 -0
- package/dist/blocks/commerce/product-card.js +11 -0
- package/dist/blocks/commerce/product-card.js.map +1 -0
- package/dist/blocks/layout/app-shell.d.ts +10 -0
- package/dist/blocks/layout/app-shell.d.ts.map +1 -0
- package/dist/blocks/layout/app-shell.js +10 -0
- package/dist/blocks/layout/app-shell.js.map +1 -0
- package/dist/blocks/layout/empty-state.d.ts +17 -0
- package/dist/blocks/layout/empty-state.d.ts.map +1 -0
- package/dist/blocks/layout/empty-state.js +10 -0
- package/dist/blocks/layout/empty-state.js.map +1 -0
- package/dist/blocks/layout/error-state.d.ts +12 -0
- package/dist/blocks/layout/error-state.d.ts.map +1 -0
- package/dist/blocks/layout/error-state.js +13 -0
- package/dist/blocks/layout/error-state.js.map +1 -0
- package/dist/blocks/layout/index.d.ts +6 -0
- package/dist/blocks/layout/index.d.ts.map +1 -0
- package/dist/blocks/layout/index.js +6 -0
- package/dist/blocks/layout/index.js.map +1 -0
- package/dist/blocks/layout/loading-screen.d.ts +7 -0
- package/dist/blocks/layout/loading-screen.d.ts.map +1 -0
- package/dist/blocks/layout/loading-screen.js +15 -0
- package/dist/blocks/layout/loading-screen.js.map +1 -0
- package/dist/blocks/layout/onboarding-screen.d.ts +19 -0
- package/dist/blocks/layout/onboarding-screen.d.ts.map +1 -0
- package/dist/blocks/layout/onboarding-screen.js +35 -0
- package/dist/blocks/layout/onboarding-screen.js.map +1 -0
- package/dist/blocks/lists/index.d.ts +4 -0
- package/dist/blocks/lists/index.d.ts.map +1 -0
- package/dist/blocks/lists/index.js +4 -0
- package/dist/blocks/lists/index.js.map +1 -0
- package/dist/blocks/lists/list-item.d.ts +15 -0
- package/dist/blocks/lists/list-item.d.ts.map +1 -0
- package/dist/blocks/lists/list-item.js +9 -0
- package/dist/blocks/lists/list-item.js.map +1 -0
- package/dist/blocks/lists/notification-item.d.ts +14 -0
- package/dist/blocks/lists/notification-item.d.ts.map +1 -0
- package/dist/blocks/lists/notification-item.js +10 -0
- package/dist/blocks/lists/notification-item.js.map +1 -0
- package/dist/blocks/lists/swipeable-item.d.ts +17 -0
- package/dist/blocks/lists/swipeable-item.d.ts.map +1 -0
- package/dist/blocks/lists/swipeable-item.js +62 -0
- package/dist/blocks/lists/swipeable-item.js.map +1 -0
- package/dist/blocks/navigation/bottom-nav.d.ts +19 -0
- package/dist/blocks/navigation/bottom-nav.d.ts.map +1 -0
- package/dist/blocks/navigation/bottom-nav.js +13 -0
- package/dist/blocks/navigation/bottom-nav.js.map +1 -0
- package/dist/blocks/navigation/drawer-menu.d.ts +26 -0
- package/dist/blocks/navigation/drawer-menu.d.ts.map +1 -0
- package/dist/blocks/navigation/drawer-menu.js +52 -0
- package/dist/blocks/navigation/drawer-menu.js.map +1 -0
- package/dist/blocks/navigation/floating-bottom-nav.d.ts +18 -0
- package/dist/blocks/navigation/floating-bottom-nav.d.ts.map +1 -0
- package/dist/blocks/navigation/floating-bottom-nav.js +13 -0
- package/dist/blocks/navigation/floating-bottom-nav.js.map +1 -0
- package/dist/blocks/navigation/header.d.ts +23 -0
- package/dist/blocks/navigation/header.d.ts.map +1 -0
- package/dist/blocks/navigation/header.js +12 -0
- package/dist/blocks/navigation/header.js.map +1 -0
- package/dist/blocks/navigation/index.d.ts +6 -0
- package/dist/blocks/navigation/index.d.ts.map +1 -0
- package/dist/blocks/navigation/index.js +6 -0
- package/dist/blocks/navigation/index.js.map +1 -0
- package/dist/blocks/navigation/tab-bar.d.ts +21 -0
- package/dist/blocks/navigation/tab-bar.d.ts.map +1 -0
- package/dist/blocks/navigation/tab-bar.js +28 -0
- package/dist/blocks/navigation/tab-bar.js.map +1 -0
- package/dist/blocks/profile/account-card.d.ts +11 -0
- package/dist/blocks/profile/account-card.d.ts.map +1 -0
- package/dist/blocks/profile/account-card.js +10 -0
- package/dist/blocks/profile/account-card.js.map +1 -0
- package/dist/blocks/profile/index.d.ts +5 -0
- package/dist/blocks/profile/index.d.ts.map +1 -0
- package/dist/blocks/profile/index.js +5 -0
- package/dist/blocks/profile/index.js.map +1 -0
- package/dist/blocks/profile/profile-header.d.ts +27 -0
- package/dist/blocks/profile/profile-header.d.ts.map +1 -0
- package/dist/blocks/profile/profile-header.js +11 -0
- package/dist/blocks/profile/profile-header.js.map +1 -0
- package/dist/blocks/profile/settings-item.d.ts +15 -0
- package/dist/blocks/profile/settings-item.d.ts.map +1 -0
- package/dist/blocks/profile/settings-item.js +11 -0
- package/dist/blocks/profile/settings-item.js.map +1 -0
- package/dist/blocks/profile/settings-section.d.ts +7 -0
- package/dist/blocks/profile/settings-section.d.ts.map +1 -0
- package/dist/blocks/profile/settings-section.js +9 -0
- package/dist/blocks/profile/settings-section.js.map +1 -0
- package/dist/blocks/splash/index.d.ts +2 -0
- package/dist/blocks/splash/index.d.ts.map +1 -0
- package/dist/blocks/splash/index.js +2 -0
- package/dist/blocks/splash/index.js.map +1 -0
- package/dist/blocks/splash/splash-screen.d.ts +29 -0
- package/dist/blocks/splash/splash-screen.d.ts.map +1 -0
- package/dist/blocks/splash/splash-screen.js +75 -0
- package/dist/blocks/splash/splash-screen.js.map +1 -0
- package/dist/components/accordion/accordion.d.ts +38 -0
- package/dist/components/accordion/accordion.d.ts.map +1 -0
- package/dist/components/accordion/accordion.js +71 -0
- package/dist/components/accordion/accordion.js.map +1 -0
- package/dist/components/accordion/index.d.ts +2 -0
- package/dist/components/accordion/index.d.ts.map +1 -0
- package/dist/components/accordion/index.js +2 -0
- package/dist/components/accordion/index.js.map +1 -0
- package/dist/components/alert/alert.d.ts +71 -0
- package/dist/components/alert/alert.d.ts.map +1 -0
- package/dist/components/alert/alert.js +34 -0
- package/dist/components/alert/alert.js.map +1 -0
- package/dist/components/alert/index.d.ts +2 -0
- package/dist/components/alert/index.d.ts.map +1 -0
- package/dist/components/alert/index.js +2 -0
- package/dist/components/alert/index.js.map +1 -0
- package/dist/components/alert-dialog/alert-dialog.d.ts +72 -0
- package/dist/components/alert-dialog/alert-dialog.d.ts.map +1 -0
- package/dist/components/alert-dialog/alert-dialog.js +81 -0
- package/dist/components/alert-dialog/alert-dialog.js.map +1 -0
- package/dist/components/alert-dialog/index.d.ts +2 -0
- package/dist/components/alert-dialog/index.d.ts.map +1 -0
- package/dist/components/alert-dialog/index.js +2 -0
- package/dist/components/alert-dialog/index.js.map +1 -0
- package/dist/components/aspect-ratio/aspect-ratio.d.ts +11 -0
- package/dist/components/aspect-ratio/aspect-ratio.d.ts.map +1 -0
- package/dist/components/aspect-ratio/aspect-ratio.js +11 -0
- package/dist/components/aspect-ratio/aspect-ratio.js.map +1 -0
- package/dist/components/aspect-ratio/index.d.ts +2 -0
- package/dist/components/aspect-ratio/index.d.ts.map +1 -0
- package/dist/components/aspect-ratio/index.js +2 -0
- package/dist/components/aspect-ratio/index.js.map +1 -0
- package/dist/components/avatar/avatar.d.ts +74 -0
- package/dist/components/avatar/avatar.d.ts.map +1 -0
- package/dist/components/avatar/avatar.js +52 -0
- package/dist/components/avatar/avatar.js.map +1 -0
- package/dist/components/avatar/index.d.ts +2 -0
- package/dist/components/avatar/index.d.ts.map +1 -0
- package/dist/components/avatar/index.js +2 -0
- package/dist/components/avatar/index.js.map +1 -0
- package/dist/components/badge/badge.d.ts +158 -0
- package/dist/components/badge/badge.d.ts.map +1 -0
- package/dist/components/badge/badge.js +54 -0
- package/dist/components/badge/badge.js.map +1 -0
- package/dist/components/badge/index.d.ts +2 -0
- package/dist/components/badge/index.d.ts.map +1 -0
- package/dist/components/badge/index.js +2 -0
- package/dist/components/badge/index.js.map +1 -0
- package/dist/components/button/button.d.ts +240 -0
- package/dist/components/button/button.d.ts.map +1 -0
- package/dist/components/button/button.js +79 -0
- package/dist/components/button/button.js.map +1 -0
- package/dist/components/button/index.d.ts +2 -0
- package/dist/components/button/index.d.ts.map +1 -0
- package/dist/components/button/index.js +2 -0
- package/dist/components/button/index.js.map +1 -0
- package/dist/components/card/card.d.ts +22 -0
- package/dist/components/card/card.d.ts.map +1 -0
- package/dist/components/card/card.js +31 -0
- package/dist/components/card/card.js.map +1 -0
- package/dist/components/card/index.d.ts +2 -0
- package/dist/components/card/index.d.ts.map +1 -0
- package/dist/components/card/index.js +2 -0
- package/dist/components/card/index.js.map +1 -0
- package/dist/components/checkbox/checkbox.d.ts +14 -0
- package/dist/components/checkbox/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox/checkbox.js +19 -0
- package/dist/components/checkbox/checkbox.js.map +1 -0
- package/dist/components/checkbox/index.d.ts +2 -0
- package/dist/components/checkbox/index.d.ts.map +1 -0
- package/dist/components/checkbox/index.js +2 -0
- package/dist/components/checkbox/index.js.map +1 -0
- package/dist/components/collapsible/collapsible.d.ts +36 -0
- package/dist/components/collapsible/collapsible.d.ts.map +1 -0
- package/dist/components/collapsible/collapsible.js +60 -0
- package/dist/components/collapsible/collapsible.js.map +1 -0
- package/dist/components/collapsible/index.d.ts +2 -0
- package/dist/components/collapsible/index.d.ts.map +1 -0
- package/dist/components/collapsible/index.js +2 -0
- package/dist/components/collapsible/index.js.map +1 -0
- package/dist/components/context-menu/context-menu.d.ts +48 -0
- package/dist/components/context-menu/context-menu.d.ts.map +1 -0
- package/dist/components/context-menu/context-menu.js +53 -0
- package/dist/components/context-menu/context-menu.js.map +1 -0
- package/dist/components/context-menu/index.d.ts +2 -0
- package/dist/components/context-menu/index.d.ts.map +1 -0
- package/dist/components/context-menu/index.js +2 -0
- package/dist/components/context-menu/index.js.map +1 -0
- package/dist/components/dialog/dialog.d.ts +68 -0
- package/dist/components/dialog/dialog.d.ts.map +1 -0
- package/dist/components/dialog/dialog.js +73 -0
- package/dist/components/dialog/dialog.js.map +1 -0
- package/dist/components/dialog/index.d.ts +2 -0
- package/dist/components/dialog/index.d.ts.map +1 -0
- package/dist/components/dialog/index.js +2 -0
- package/dist/components/dialog/index.js.map +1 -0
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +48 -0
- package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -0
- package/dist/components/dropdown-menu/dropdown-menu.js +51 -0
- package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -0
- package/dist/components/dropdown-menu/index.d.ts +2 -0
- package/dist/components/dropdown-menu/index.d.ts.map +1 -0
- package/dist/components/dropdown-menu/index.js +2 -0
- package/dist/components/dropdown-menu/index.js.map +1 -0
- package/dist/components/hover-card/hover-card.d.ts +20 -0
- package/dist/components/hover-card/hover-card.d.ts.map +1 -0
- package/dist/components/hover-card/hover-card.js +18 -0
- package/dist/components/hover-card/hover-card.js.map +1 -0
- package/dist/components/hover-card/index.d.ts +2 -0
- package/dist/components/hover-card/index.d.ts.map +1 -0
- package/dist/components/hover-card/index.js +2 -0
- package/dist/components/hover-card/index.js.map +1 -0
- package/dist/components/input/index.d.ts +2 -0
- package/dist/components/input/index.d.ts.map +1 -0
- package/dist/components/input/index.js +2 -0
- package/dist/components/input/index.js.map +1 -0
- package/dist/components/input/input.d.ts +45 -0
- package/dist/components/input/input.d.ts.map +1 -0
- package/dist/components/input/input.js +23 -0
- package/dist/components/input/input.js.map +1 -0
- package/dist/components/label/index.d.ts +2 -0
- package/dist/components/label/index.d.ts.map +1 -0
- package/dist/components/label/index.js +2 -0
- package/dist/components/label/index.js.map +1 -0
- package/dist/components/label/label.d.ts +7 -0
- package/dist/components/label/label.d.ts.map +1 -0
- package/dist/components/label/label.js +13 -0
- package/dist/components/label/label.js.map +1 -0
- package/dist/components/menubar/index.d.ts +2 -0
- package/dist/components/menubar/index.d.ts.map +1 -0
- package/dist/components/menubar/index.js +2 -0
- package/dist/components/menubar/index.js.map +1 -0
- package/dist/components/menubar/menubar.d.ts +54 -0
- package/dist/components/menubar/menubar.d.ts.map +1 -0
- package/dist/components/menubar/menubar.js +46 -0
- package/dist/components/menubar/menubar.js.map +1 -0
- package/dist/components/popover/index.d.ts +2 -0
- package/dist/components/popover/index.d.ts.map +1 -0
- package/dist/components/popover/index.js +2 -0
- package/dist/components/popover/index.js.map +1 -0
- package/dist/components/popover/popover.d.ts +22 -0
- package/dist/components/popover/popover.d.ts.map +1 -0
- package/dist/components/popover/popover.js +22 -0
- package/dist/components/popover/popover.js.map +1 -0
- package/dist/components/pressable/index.d.ts +2 -0
- package/dist/components/pressable/index.d.ts.map +1 -0
- package/dist/components/pressable/index.js +2 -0
- package/dist/components/pressable/index.js.map +1 -0
- package/dist/components/pressable/pressable.d.ts +8 -0
- package/dist/components/pressable/pressable.d.ts.map +1 -0
- package/dist/components/pressable/pressable.js +10 -0
- package/dist/components/pressable/pressable.js.map +1 -0
- package/dist/components/progress/index.d.ts +2 -0
- package/dist/components/progress/index.d.ts.map +1 -0
- package/dist/components/progress/index.js +2 -0
- package/dist/components/progress/index.js.map +1 -0
- package/dist/components/progress/progress.d.ts +53 -0
- package/dist/components/progress/progress.d.ts.map +1 -0
- package/dist/components/progress/progress.js +25 -0
- package/dist/components/progress/progress.js.map +1 -0
- package/dist/components/radio-group/index.d.ts +2 -0
- package/dist/components/radio-group/index.d.ts.map +1 -0
- package/dist/components/radio-group/index.js +2 -0
- package/dist/components/radio-group/index.js.map +1 -0
- package/dist/components/radio-group/radio-group.d.ts +21 -0
- package/dist/components/radio-group/radio-group.d.ts.map +1 -0
- package/dist/components/radio-group/radio-group.js +27 -0
- package/dist/components/radio-group/radio-group.js.map +1 -0
- package/dist/components/select/index.d.ts +2 -0
- package/dist/components/select/index.d.ts.map +1 -0
- package/dist/components/select/index.js +2 -0
- package/dist/components/select/index.js.map +1 -0
- package/dist/components/select/select.d.ts +79 -0
- package/dist/components/select/select.d.ts.map +1 -0
- package/dist/components/select/select.js +53 -0
- package/dist/components/select/select.js.map +1 -0
- package/dist/components/separator/index.d.ts +2 -0
- package/dist/components/separator/index.d.ts.map +1 -0
- package/dist/components/separator/index.js +2 -0
- package/dist/components/separator/index.js.map +1 -0
- package/dist/components/separator/separator.d.ts +8 -0
- package/dist/components/separator/separator.d.ts.map +1 -0
- package/dist/components/separator/separator.js +10 -0
- package/dist/components/separator/separator.js.map +1 -0
- package/dist/components/skeleton/index.d.ts +2 -0
- package/dist/components/skeleton/index.d.ts.map +1 -0
- package/dist/components/skeleton/index.js +2 -0
- package/dist/components/skeleton/index.js.map +1 -0
- package/dist/components/skeleton/skeleton.d.ts +10 -0
- package/dist/components/skeleton/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton/skeleton.js +19 -0
- package/dist/components/skeleton/skeleton.js.map +1 -0
- package/dist/components/spinner/index.d.ts +2 -0
- package/dist/components/spinner/index.d.ts.map +1 -0
- package/dist/components/spinner/index.js +2 -0
- package/dist/components/spinner/index.js.map +1 -0
- package/dist/components/spinner/spinner.d.ts +54 -0
- package/dist/components/spinner/spinner.d.ts.map +1 -0
- package/dist/components/spinner/spinner.js +29 -0
- package/dist/components/spinner/spinner.js.map +1 -0
- package/dist/components/switch/index.d.ts +2 -0
- package/dist/components/switch/index.d.ts.map +1 -0
- package/dist/components/switch/index.js +2 -0
- package/dist/components/switch/index.js.map +1 -0
- package/dist/components/switch/switch.d.ts +14 -0
- package/dist/components/switch/switch.d.ts.map +1 -0
- package/dist/components/switch/switch.js +19 -0
- package/dist/components/switch/switch.js.map +1 -0
- package/dist/components/tabs/index.d.ts +2 -0
- package/dist/components/tabs/index.d.ts.map +1 -0
- package/dist/components/tabs/index.js +2 -0
- package/dist/components/tabs/index.js.map +1 -0
- package/dist/components/tabs/tabs.d.ts +72 -0
- package/dist/components/tabs/tabs.d.ts.map +1 -0
- package/dist/components/tabs/tabs.js +52 -0
- package/dist/components/tabs/tabs.js.map +1 -0
- package/dist/components/text/index.d.ts +2 -0
- package/dist/components/text/index.d.ts.map +1 -0
- package/dist/components/text/index.js +2 -0
- package/dist/components/text/index.js.map +1 -0
- package/dist/components/text/text.d.ts +149 -0
- package/dist/components/text/text.d.ts.map +1 -0
- package/dist/components/text/text.js +41 -0
- package/dist/components/text/text.js.map +1 -0
- package/dist/components/textarea/index.d.ts +2 -0
- package/dist/components/textarea/index.d.ts.map +1 -0
- package/dist/components/textarea/index.js +2 -0
- package/dist/components/textarea/index.js.map +1 -0
- package/dist/components/textarea/textarea.d.ts +52 -0
- package/dist/components/textarea/textarea.d.ts.map +1 -0
- package/dist/components/textarea/textarea.js +27 -0
- package/dist/components/textarea/textarea.js.map +1 -0
- package/dist/components/toast/index.d.ts +2 -0
- package/dist/components/toast/index.d.ts.map +1 -0
- package/dist/components/toast/index.js +2 -0
- package/dist/components/toast/index.js.map +1 -0
- package/dist/components/toast/toast.d.ts +79 -0
- package/dist/components/toast/toast.d.ts.map +1 -0
- package/dist/components/toast/toast.js +69 -0
- package/dist/components/toast/toast.js.map +1 -0
- package/dist/components/toggle/index.d.ts +2 -0
- package/dist/components/toggle/index.d.ts.map +1 -0
- package/dist/components/toggle/index.js +2 -0
- package/dist/components/toggle/index.js.map +1 -0
- package/dist/components/toggle/toggle.d.ts +195 -0
- package/dist/components/toggle/toggle.d.ts.map +1 -0
- package/dist/components/toggle/toggle.js +71 -0
- package/dist/components/toggle/toggle.js.map +1 -0
- package/dist/components/toggle-group/index.d.ts +2 -0
- package/dist/components/toggle-group/index.d.ts.map +1 -0
- package/dist/components/toggle-group/index.js +2 -0
- package/dist/components/toggle-group/index.js.map +1 -0
- package/dist/components/toggle-group/toggle-group.d.ts +204 -0
- package/dist/components/toggle-group/toggle-group.d.ts.map +1 -0
- package/dist/components/toggle-group/toggle-group.js +97 -0
- package/dist/components/toggle-group/toggle-group.js.map +1 -0
- package/dist/components/tooltip/index.d.ts +2 -0
- package/dist/components/tooltip/index.d.ts.map +1 -0
- package/dist/components/tooltip/index.js +2 -0
- package/dist/components/tooltip/index.js.map +1 -0
- package/dist/components/tooltip/tooltip.d.ts +21 -0
- package/dist/components/tooltip/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip/tooltip.js +18 -0
- package/dist/components/tooltip/tooltip.js.map +1 -0
- package/dist/components/view/index.d.ts +2 -0
- package/dist/components/view/index.d.ts.map +1 -0
- package/dist/components/view/index.js +2 -0
- package/dist/components/view/index.js.map +1 -0
- package/dist/components/view/view.d.ts +7 -0
- package/dist/components/view/view.d.ts.map +1 -0
- package/dist/components/view/view.js +10 -0
- package/dist/components/view/view.js.map +1 -0
- package/dist/index.d.ts +46 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/cn.d.ts +11 -0
- package/dist/lib/cn.d.ts.map +1 -0
- package/dist/lib/cn.js +14 -0
- package/dist/lib/cn.js.map +1 -0
- package/dist/lib/font-context.d.ts +24 -0
- package/dist/lib/font-context.d.ts.map +1 -0
- package/dist/lib/font-context.js +22 -0
- package/dist/lib/font-context.js.map +1 -0
- package/dist/lib/index.d.ts +4 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +4 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/portal.d.ts +22 -0
- package/dist/lib/portal.d.ts.map +1 -0
- package/dist/lib/portal.js +22 -0
- package/dist/lib/portal.js.map +1 -0
- package/dist/lib/tv.d.ts +16 -0
- package/dist/lib/tv.d.ts.map +1 -0
- package/dist/lib/tv.js +16 -0
- package/dist/lib/tv.js.map +1 -0
- package/package.json +75 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ViewProps } from 'react-native';
|
|
3
|
+
export interface OnboardingSlide {
|
|
4
|
+
key: string;
|
|
5
|
+
title: string;
|
|
6
|
+
description: string;
|
|
7
|
+
image?: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
export interface OnboardingScreenProps extends ViewProps {
|
|
10
|
+
slides: OnboardingSlide[];
|
|
11
|
+
onComplete: () => void;
|
|
12
|
+
onSkip?: () => void;
|
|
13
|
+
completeLabel?: string;
|
|
14
|
+
nextLabel?: string;
|
|
15
|
+
skipLabel?: string;
|
|
16
|
+
showSkip?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare function OnboardingScreen({ slides, onComplete, onSkip, completeLabel, nextLabel, skipLabel, showSkip, className, ...props }: OnboardingScreenProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
//# sourceMappingURL=onboarding-screen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onboarding-screen.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/onboarding-screen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAChD,OAAO,EAKL,KAAK,SAAS,EAGf,MAAM,cAAc,CAAC;AAOtB,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AAED,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IACtD,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAID,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,UAAU,EACV,MAAM,EACN,aAA6B,EAC7B,SAAkB,EAClB,SAAkB,EAClB,QAAe,EACf,SAAS,EACT,GAAG,KAAK,EACT,EAAE,qBAAqB,2CAwFvB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useRef } from 'react';
|
|
3
|
+
import { View, ScrollView, Pressable, Dimensions, } from 'react-native';
|
|
4
|
+
import { Text } from '../../components/text';
|
|
5
|
+
import { Button, ButtonText } from '../../components/button';
|
|
6
|
+
import { cn } from '../../lib/cn';
|
|
7
|
+
// ─── Component ───────────────────────────────────────────────
|
|
8
|
+
export function OnboardingScreen({ slides, onComplete, onSkip, completeLabel = 'Get Started', nextLabel = 'Next', skipLabel = 'Skip', showSkip = true, className, ...props }) {
|
|
9
|
+
const [currentIndex, setCurrentIndex] = useState(0);
|
|
10
|
+
const scrollViewRef = useRef(null);
|
|
11
|
+
const { width } = Dimensions.get('window');
|
|
12
|
+
const isLastSlide = currentIndex === slides.length - 1;
|
|
13
|
+
const handleScroll = (event) => {
|
|
14
|
+
const index = Math.round(event.nativeEvent.contentOffset.x / width);
|
|
15
|
+
setCurrentIndex(index);
|
|
16
|
+
};
|
|
17
|
+
const goToNext = () => {
|
|
18
|
+
if (isLastSlide) {
|
|
19
|
+
onComplete();
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
scrollViewRef.current?.scrollTo({ x: (currentIndex + 1) * width, animated: true });
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const handleSkip = () => {
|
|
26
|
+
if (onSkip) {
|
|
27
|
+
onSkip();
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
onComplete();
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
return (_jsxs(View, { className: cn('flex-1 bg-background', className), ...props, children: [showSkip && !isLastSlide && (_jsx(View, { className: "absolute right-4 top-12 z-10", children: _jsx(Pressable, { onPress: handleSkip, children: _jsx(Text, { className: "text-muted-foreground", children: skipLabel }) }) })), _jsx(ScrollView, { ref: scrollViewRef, horizontal: true, pagingEnabled: true, showsHorizontalScrollIndicator: false, onScroll: handleScroll, scrollEventThrottle: 16, className: "flex-1", children: slides.map((slide) => (_jsxs(View, { style: { width }, className: "flex-1 items-center justify-center p-8", children: [slide.image && _jsx(View, { className: "mb-8", children: slide.image }), _jsx(Text, { className: "mb-4 text-center text-2xl font-bold text-foreground", children: slide.title }), _jsx(Text, { className: "max-w-sm text-center text-base text-muted-foreground", children: slide.description })] }, slide.key))) }), _jsxs(View, { className: "px-8 pb-12", children: [_jsx(View, { className: "mb-6 flex-row justify-center gap-2", children: slides.map((_, index) => (_jsx(View, { className: cn('h-2 rounded-full', index === currentIndex ? 'w-6 bg-primary' : 'w-2 bg-muted') }, index))) }), _jsx(Button, { onPress: goToNext, className: "w-full", children: _jsx(ButtonText, { children: isLastSlide ? completeLabel : nextLabel }) })] })] }));
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=onboarding-screen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onboarding-screen.js","sourceRoot":"","sources":["../../../src/blocks/layout/onboarding-screen.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { ListItem, type ListItemProps } from './list-item';
|
|
2
|
+
export { SwipeableItem, type SwipeableItemProps, type SwipeAction } from './swipeable-item';
|
|
3
|
+
export { NotificationItem, type NotificationItemProps } from './notification-item';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/lists/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/blocks/lists/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAsB,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,aAAa,EAA6C,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAA8B,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type PressableProps } from 'react-native';
|
|
3
|
+
export interface ListItemProps extends Omit<PressableProps, 'children'> {
|
|
4
|
+
icon?: React.ReactNode;
|
|
5
|
+
title: string;
|
|
6
|
+
subtitle?: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
rightIcon?: React.ReactNode;
|
|
9
|
+
rightText?: string;
|
|
10
|
+
action?: React.ReactNode;
|
|
11
|
+
showBorder?: boolean;
|
|
12
|
+
compact?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function ListItem({ icon, title, subtitle, description, rightIcon, rightText, action, showBorder, compact, className, ...props }: ListItemProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=list-item.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-item.d.ts","sourceRoot":"","sources":["../../../src/blocks/lists/list-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAMpE,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IACrE,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAID,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,WAAW,EACX,SAAS,EACT,SAAS,EACT,MAAM,EACN,UAAiB,EACjB,OAAe,EACf,SAAS,EACT,GAAG,KAAK,EACT,EAAE,aAAa,2CAiCf"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { View, Pressable } from 'react-native';
|
|
3
|
+
import { Text } from '../../components/text';
|
|
4
|
+
import { cn } from '../../lib/cn';
|
|
5
|
+
// ─── Component ───────────────────────────────────────────────
|
|
6
|
+
export function ListItem({ icon, title, subtitle, description, rightIcon, rightText, action, showBorder = true, compact = false, className, ...props }) {
|
|
7
|
+
return (_jsxs(Pressable, { className: cn('flex-row items-center bg-card px-4', compact ? 'py-2' : 'py-3', showBorder && 'border-b border-border', 'active:bg-muted', className), ...props, children: [icon && _jsx(View, { className: "mr-3 text-muted-foreground", children: icon }), _jsxs(View, { className: "flex-1", children: [_jsx(Text, { className: "text-base text-foreground", children: title }), subtitle && _jsx(Text, { className: "text-sm text-muted-foreground", children: subtitle }), description && (_jsx(Text, { className: "mt-1 text-sm text-muted-foreground", numberOfLines: 2, children: description }))] }), rightText && _jsx(Text, { className: "mr-2 text-sm text-muted-foreground", children: rightText }), rightIcon && _jsx(View, { className: "text-muted-foreground", children: rightIcon }), action, !action && !rightIcon && _jsx(Text, { className: "text-lg text-muted-foreground", children: "\u203A" })] }));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=list-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-item.js","sourceRoot":"","sources":["../../../src/blocks/lists/list-item.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAuB,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAgBlC,gEAAgE;AAEhE,MAAM,UAAU,QAAQ,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,WAAW,EACX,SAAS,EACT,SAAS,EACT,MAAM,EACN,UAAU,GAAG,IAAI,EACjB,OAAO,GAAG,KAAK,EACf,SAAS,EACT,GAAG,KAAK,EACM;IACd,OAAO,CACL,MAAC,SAAS,IACR,SAAS,EAAE,EAAE,CACX,oCAAoC,EACpC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EACzB,UAAU,IAAI,wBAAwB,EACtC,iBAAiB,EACjB,SAAS,CACV,KACG,KAAK,aAGR,IAAI,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,4BAA4B,YAAE,IAAI,GAAQ,EAGnE,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,aACtB,KAAC,IAAI,IAAC,SAAS,EAAC,2BAA2B,YAAE,KAAK,GAAQ,EACzD,QAAQ,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,+BAA+B,YAAE,QAAQ,GAAQ,EAC7E,WAAW,IAAI,CACd,KAAC,IAAI,IAAC,SAAS,EAAC,oCAAoC,EAAC,aAAa,EAAE,CAAC,YAClE,WAAW,GACP,CACR,IACI,EAGN,SAAS,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,oCAAoC,YAAE,SAAS,GAAQ,EACpF,SAAS,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,uBAAuB,YAAE,SAAS,GAAQ,EACvE,MAAM,EACN,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,+BAA+B,uBAAS,IACxE,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type PressableProps } from 'react-native';
|
|
3
|
+
export interface NotificationItemProps extends Omit<PressableProps, 'children'> {
|
|
4
|
+
icon?: React.ReactNode;
|
|
5
|
+
avatarUrl?: string;
|
|
6
|
+
avatarFallback?: string;
|
|
7
|
+
title: string;
|
|
8
|
+
message: string;
|
|
9
|
+
time: string;
|
|
10
|
+
read?: boolean;
|
|
11
|
+
showDot?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function NotificationItem({ icon, avatarUrl, avatarFallback, title, message, time, read, showDot, className, ...props }: NotificationItemProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=notification-item.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification-item.d.ts","sourceRoot":"","sources":["../../../src/blocks/lists/notification-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAOpE,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IAC7E,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAID,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,SAAS,EACT,cAAc,EACd,KAAK,EACL,OAAO,EACP,IAAI,EACJ,IAAY,EACZ,OAAc,EACd,SAAS,EACT,GAAG,KAAK,EACT,EAAE,qBAAqB,2CA2CvB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { View, Pressable } from 'react-native';
|
|
3
|
+
import { Text } from '../../components/text';
|
|
4
|
+
import { Avatar, AvatarFallback, AvatarImage } from '../../components/avatar';
|
|
5
|
+
import { cn } from '../../lib/cn';
|
|
6
|
+
// ─── Component ───────────────────────────────────────────────
|
|
7
|
+
export function NotificationItem({ icon, avatarUrl, avatarFallback, title, message, time, read = false, showDot = true, className, ...props }) {
|
|
8
|
+
return (_jsxs(Pressable, { className: cn('flex-row items-start px-4 py-3 active:bg-muted', !read && 'bg-primary/5', className), ...props, children: [avatarUrl || avatarFallback ? (_jsxs(Avatar, { className: "h-10 w-10", children: [avatarUrl && _jsx(AvatarImage, { src: avatarUrl }), _jsx(AvatarFallback, { children: avatarFallback })] })) : (icon && (_jsx(View, { className: "h-10 w-10 items-center justify-center rounded-full bg-muted", children: icon }))), _jsxs(View, { className: "ml-3 flex-1", children: [_jsxs(View, { className: "flex-row items-center justify-between", children: [_jsx(Text, { className: cn('text-sm', !read ? 'font-semibold text-foreground' : 'text-foreground'), children: title }), _jsxs(View, { className: "flex-row items-center gap-2", children: [_jsx(Text, { className: "text-xs text-muted-foreground", children: time }), !read && showDot && _jsx(View, { className: "h-2 w-2 rounded-full bg-primary" })] })] }), _jsx(Text, { className: "mt-0.5 text-sm text-muted-foreground", numberOfLines: 2, children: message })] })] }));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=notification-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification-item.js","sourceRoot":"","sources":["../../../src/blocks/lists/notification-item.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAuB,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAelC,gEAAgE;AAEhE,MAAM,UAAU,gBAAgB,CAAC,EAC/B,IAAI,EACJ,SAAS,EACT,cAAc,EACd,KAAK,EACL,OAAO,EACP,IAAI,EACJ,IAAI,GAAG,KAAK,EACZ,OAAO,GAAG,IAAI,EACd,SAAS,EACT,GAAG,KAAK,EACc;IACtB,OAAO,CACL,MAAC,SAAS,IACR,SAAS,EAAE,EAAE,CACX,gDAAgD,EAChD,CAAC,IAAI,IAAI,cAAc,EACvB,SAAS,CACV,KACG,KAAK,aAGR,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC,CAC7B,MAAC,MAAM,IAAC,SAAS,EAAC,WAAW,aAC1B,SAAS,IAAI,KAAC,WAAW,IAAC,GAAG,EAAE,SAAS,GAAI,EAC7C,KAAC,cAAc,cAAE,cAAc,GAAkB,IAC1C,CACV,CAAC,CAAC,CAAC,CACF,IAAI,IAAI,CACN,KAAC,IAAI,IAAC,SAAS,EAAC,6DAA6D,YAC1E,IAAI,GACA,CACR,CACF,EAGD,MAAC,IAAI,IAAC,SAAS,EAAC,aAAa,aAC3B,MAAC,IAAI,IAAC,SAAS,EAAC,uCAAuC,aACrD,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,iBAAiB,CAAC,YAEpF,KAAK,GACD,EACP,MAAC,IAAI,IAAC,SAAS,EAAC,6BAA6B,aAC3C,KAAC,IAAI,IAAC,SAAS,EAAC,+BAA+B,YAAE,IAAI,GAAQ,EAC5D,CAAC,IAAI,IAAI,OAAO,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,iCAAiC,GAAG,IACpE,IACF,EACP,KAAC,IAAI,IAAC,SAAS,EAAC,sCAAsC,EAAC,aAAa,EAAE,CAAC,YACpE,OAAO,GACH,IACF,IACG,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ViewProps } from 'react-native';
|
|
2
|
+
export interface SwipeAction {
|
|
3
|
+
key: string;
|
|
4
|
+
label: string;
|
|
5
|
+
icon?: React.ReactNode;
|
|
6
|
+
color: string;
|
|
7
|
+
onPress: () => void;
|
|
8
|
+
}
|
|
9
|
+
export interface SwipeableItemProps extends ViewProps {
|
|
10
|
+
leftActions?: SwipeAction[];
|
|
11
|
+
rightActions?: SwipeAction[];
|
|
12
|
+
onSwipeLeft?: () => void;
|
|
13
|
+
onSwipeRight?: () => void;
|
|
14
|
+
swipeThreshold?: number;
|
|
15
|
+
}
|
|
16
|
+
export declare function SwipeableItem({ leftActions, rightActions, onSwipeLeft, onSwipeRight, swipeThreshold, children, className, ...props }: SwipeableItemProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
//# sourceMappingURL=swipeable-item.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swipeable-item.d.ts","sourceRoot":"","sources":["../../../src/blocks/lists/swipeable-item.tsx"],"names":[],"mappings":"AACA,OAAO,EAA2C,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAMvF,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,wBAAgB,aAAa,CAAC,EAC5B,WAAgB,EAChB,YAAiB,EACjB,WAAW,EACX,YAAY,EACZ,cAAmB,EACnB,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,kBAAkB,2CAkGpB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useRef } from 'react';
|
|
3
|
+
import { View, Pressable, Animated, PanResponder } from 'react-native';
|
|
4
|
+
import { Text } from '../../components/text';
|
|
5
|
+
import { cn } from '../../lib/cn';
|
|
6
|
+
// ─── Component ───────────────────────────────────────────────
|
|
7
|
+
export function SwipeableItem({ leftActions = [], rightActions = [], onSwipeLeft, onSwipeRight, swipeThreshold = 80, children, className, ...props }) {
|
|
8
|
+
const translateX = useRef(new Animated.Value(0)).current;
|
|
9
|
+
const actionWidth = 80;
|
|
10
|
+
const panResponder = useRef(PanResponder.create({
|
|
11
|
+
onMoveShouldSetPanResponder: (_, gestureState) => {
|
|
12
|
+
return Math.abs(gestureState.dx) > 10;
|
|
13
|
+
},
|
|
14
|
+
onPanResponderMove: (_, gestureState) => {
|
|
15
|
+
const maxLeft = leftActions.length * actionWidth;
|
|
16
|
+
const maxRight = rightActions.length * actionWidth;
|
|
17
|
+
let newX = gestureState.dx;
|
|
18
|
+
if (newX > maxLeft)
|
|
19
|
+
newX = maxLeft;
|
|
20
|
+
if (newX < -maxRight)
|
|
21
|
+
newX = -maxRight;
|
|
22
|
+
translateX.setValue(newX);
|
|
23
|
+
},
|
|
24
|
+
onPanResponderRelease: (_, gestureState) => {
|
|
25
|
+
if (gestureState.dx > swipeThreshold && leftActions.length > 0) {
|
|
26
|
+
// Show left actions
|
|
27
|
+
Animated.spring(translateX, {
|
|
28
|
+
toValue: leftActions.length * actionWidth,
|
|
29
|
+
useNativeDriver: true,
|
|
30
|
+
}).start();
|
|
31
|
+
}
|
|
32
|
+
else if (gestureState.dx < -swipeThreshold && rightActions.length > 0) {
|
|
33
|
+
// Show right actions
|
|
34
|
+
Animated.spring(translateX, {
|
|
35
|
+
toValue: -rightActions.length * actionWidth,
|
|
36
|
+
useNativeDriver: true,
|
|
37
|
+
}).start();
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
// Reset
|
|
41
|
+
Animated.spring(translateX, {
|
|
42
|
+
toValue: 0,
|
|
43
|
+
useNativeDriver: true,
|
|
44
|
+
}).start();
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
})).current;
|
|
48
|
+
const resetPosition = () => {
|
|
49
|
+
Animated.spring(translateX, {
|
|
50
|
+
toValue: 0,
|
|
51
|
+
useNativeDriver: true,
|
|
52
|
+
}).start();
|
|
53
|
+
};
|
|
54
|
+
return (_jsxs(View, { className: cn('overflow-hidden', className), ...props, children: [_jsx(View, { className: "absolute bottom-0 left-0 top-0 flex-row", children: leftActions.map((action, _index) => (_jsxs(Pressable, { onPress: () => {
|
|
55
|
+
action.onPress();
|
|
56
|
+
resetPosition();
|
|
57
|
+
}, className: "items-center justify-center", style: { width: actionWidth, backgroundColor: action.color }, children: [action.icon, _jsx(Text, { className: "mt-1 text-xs font-medium text-white", children: action.label })] }, action.key))) }), _jsx(View, { className: "absolute bottom-0 right-0 top-0 flex-row", children: rightActions.map((action, _index) => (_jsxs(Pressable, { onPress: () => {
|
|
58
|
+
action.onPress();
|
|
59
|
+
resetPosition();
|
|
60
|
+
}, className: "items-center justify-center", style: { width: actionWidth, backgroundColor: action.color }, children: [action.icon, _jsx(Text, { className: "mt-1 text-xs font-medium text-white", children: action.label })] }, action.key))) }), _jsx(Animated.View, { ...panResponder.panHandlers, style: { transform: [{ translateX }] }, className: "bg-background", children: children })] }));
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=swipeable-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swipeable-item.js","sourceRoot":"","sources":["../../../src/blocks/lists/swipeable-item.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ViewProps, type PressableProps } from 'react-native';
|
|
3
|
+
export interface BottomNavItem {
|
|
4
|
+
key: string;
|
|
5
|
+
label: string;
|
|
6
|
+
icon: React.ReactNode;
|
|
7
|
+
badge?: number;
|
|
8
|
+
}
|
|
9
|
+
export interface BottomNavProps extends ViewProps {
|
|
10
|
+
items: BottomNavItem[];
|
|
11
|
+
activeKey: string;
|
|
12
|
+
onSelect: (key: string) => void;
|
|
13
|
+
}
|
|
14
|
+
export interface BottomNavItemProps extends Omit<PressableProps, 'children'> {
|
|
15
|
+
item: BottomNavItem;
|
|
16
|
+
isActive: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare function BottomNav({ items, activeKey, onSelect, className, ...props }: BottomNavProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
//# sourceMappingURL=bottom-nav.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bottom-nav.d.ts","sourceRoot":"","sources":["../../../src/blocks/navigation/bottom-nav.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAMpF,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IAC1E,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAkCD,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,2CAgB5F"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { View, Pressable } from 'react-native';
|
|
3
|
+
import { Text } from '../../components/text';
|
|
4
|
+
import { cn } from '../../lib/cn';
|
|
5
|
+
// ─── Components ──────────────────────────────────────────────
|
|
6
|
+
function BottomNavItemComponent({ item, isActive, className, ...props }) {
|
|
7
|
+
const { label, icon, badge } = item;
|
|
8
|
+
return (_jsxs(Pressable, { className: cn('flex-1 items-center justify-center py-2 active:opacity-70', className), ...props, children: [_jsxs(View, { className: cn('relative', !isActive && 'opacity-50'), children: [icon, badge !== undefined && badge > 0 && (_jsx(View, { className: "absolute -right-2 -top-1 h-4 min-w-4 items-center justify-center rounded-full bg-destructive px-1", children: _jsx(Text, { className: "text-[10px] font-bold text-destructive-foreground", children: badge > 99 ? '99+' : badge }) }))] }), _jsx(Text, { className: cn('mt-1 text-xs font-medium', isActive ? 'text-primary' : 'text-muted-foreground'), children: label })] }));
|
|
9
|
+
}
|
|
10
|
+
export function BottomNav({ items, activeKey, onSelect, className, ...props }) {
|
|
11
|
+
return (_jsx(View, { className: cn('flex-row border-t border-border bg-background px-2 pb-6 pt-2', className), ...props, children: items.map((item) => (_jsx(BottomNavItemComponent, { item: item, isActive: activeKey === item.key, onPress: () => onSelect(item.key) }, item.key))) }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=bottom-nav.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bottom-nav.js","sourceRoot":"","sources":["../../../src/blocks/navigation/bottom-nav.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAuC,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAsBlC,gEAAgE;AAEhE,SAAS,sBAAsB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAsB;IACzF,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAEpC,OAAO,CACL,MAAC,SAAS,IACR,SAAS,EAAE,EAAE,CAAC,2DAA2D,EAAE,SAAS,CAAC,KACjF,KAAK,aAET,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,IAAI,YAAY,CAAC,aACvD,IAAI,EACJ,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,IAAI,CACnC,KAAC,IAAI,IAAC,SAAS,EAAC,mGAAmG,YACjH,KAAC,IAAI,IAAC,SAAS,EAAC,mDAAmD,YAChE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GACtB,GACF,CACR,IACI,EACP,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CACX,0BAA0B,EAC1B,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,uBAAuB,CACpD,YAEA,KAAK,GACD,IACG,CACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAkB;IAC3F,OAAO,CACL,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CAAC,8DAA8D,EAAE,SAAS,CAAC,KACpF,KAAK,YAER,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,KAAC,sBAAsB,IAErB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC,GAAG,EAChC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAH5B,IAAI,CAAC,GAAG,CAIb,CACH,CAAC,GACG,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ViewStyle, type StyleProp } from 'react-native';
|
|
3
|
+
export interface DrawerMenuItem {
|
|
4
|
+
key: string;
|
|
5
|
+
label: string;
|
|
6
|
+
icon?: React.ReactNode;
|
|
7
|
+
badge?: number;
|
|
8
|
+
destructive?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface DrawerMenuSection {
|
|
11
|
+
title?: string;
|
|
12
|
+
items: DrawerMenuItem[];
|
|
13
|
+
}
|
|
14
|
+
export interface DrawerMenuProps {
|
|
15
|
+
visible: boolean;
|
|
16
|
+
onClose: () => void;
|
|
17
|
+
sections: DrawerMenuSection[];
|
|
18
|
+
activeKey?: string;
|
|
19
|
+
onSelect?: (key: string) => void;
|
|
20
|
+
header?: React.ReactNode;
|
|
21
|
+
footer?: React.ReactNode;
|
|
22
|
+
className?: string;
|
|
23
|
+
style?: StyleProp<ViewStyle>;
|
|
24
|
+
}
|
|
25
|
+
export declare function DrawerMenu({ visible, onClose, sections, activeKey, onSelect, header, footer, className, style, }: DrawerMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
//# sourceMappingURL=drawer-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawer-menu.d.ts","sourceRoot":"","sources":["../../../src/blocks/navigation/drawer-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAetB,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,OAAO,EACP,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,GACN,EAAE,eAAe,2CA8GjB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { View, Pressable, useWindowDimensions, StyleSheet, } from 'react-native';
|
|
4
|
+
import Animated, { useSharedValue, useAnimatedStyle, withTiming, Easing, interpolate, } from 'react-native-reanimated';
|
|
5
|
+
import { Text } from '../../components/text';
|
|
6
|
+
import { cn } from '../../lib/cn';
|
|
7
|
+
const DRAWER_WIDTH_RATIO = 0.85;
|
|
8
|
+
const OPEN_DURATION = 280;
|
|
9
|
+
const CLOSE_DURATION = 250;
|
|
10
|
+
export function DrawerMenu({ visible, onClose, sections, activeKey, onSelect, header, footer, className, style, }) {
|
|
11
|
+
const { width: screenWidth } = useWindowDimensions();
|
|
12
|
+
const drawerWidth = screenWidth * DRAWER_WIDTH_RATIO;
|
|
13
|
+
const progress = useSharedValue(0);
|
|
14
|
+
React.useEffect(() => {
|
|
15
|
+
progress.value = withTiming(visible ? 1 : 0, {
|
|
16
|
+
duration: visible ? OPEN_DURATION : CLOSE_DURATION,
|
|
17
|
+
easing: visible ? Easing.out(Easing.cubic) : Easing.in(Easing.cubic),
|
|
18
|
+
});
|
|
19
|
+
}, [visible, progress]);
|
|
20
|
+
const backdropStyle = useAnimatedStyle(() => ({
|
|
21
|
+
opacity: progress.value * 0.5,
|
|
22
|
+
pointerEvents: progress.value > 0 ? 'auto' : 'none',
|
|
23
|
+
}));
|
|
24
|
+
const drawerStyle = useAnimatedStyle(() => ({
|
|
25
|
+
transform: [{ translateX: interpolate(progress.value, [0, 1], [-drawerWidth, 0]) }],
|
|
26
|
+
}));
|
|
27
|
+
const containerStyle = useAnimatedStyle(() => ({
|
|
28
|
+
pointerEvents: progress.value > 0 ? 'auto' : 'none',
|
|
29
|
+
}));
|
|
30
|
+
const handleItemPress = (key) => {
|
|
31
|
+
onSelect?.(key);
|
|
32
|
+
};
|
|
33
|
+
return (_jsxs(Animated.View, { style: [StyleSheet.absoluteFill, containerStyle], children: [_jsx(Animated.View, { style: [StyleSheet.absoluteFill, { backgroundColor: '#000' }, backdropStyle], children: _jsx(Pressable, { style: StyleSheet.absoluteFill, onPress: onClose }) }), _jsx(Animated.View, { style: [
|
|
34
|
+
{
|
|
35
|
+
position: 'absolute',
|
|
36
|
+
top: 0,
|
|
37
|
+
bottom: 0,
|
|
38
|
+
left: 0,
|
|
39
|
+
width: drawerWidth,
|
|
40
|
+
},
|
|
41
|
+
drawerStyle,
|
|
42
|
+
style,
|
|
43
|
+
], className: cn('bg-background border-r border-border', className), children: _jsxs(View, { className: "flex-1 pt-14", children: [header && _jsx(View, { className: "px-5 pb-4 mb-2 border-b border-border", children: header }), _jsx(View, { className: "flex-1 px-3", children: sections.map((section, sectionIndex) => (_jsxs(View, { className: "mb-4", children: [section.title && (_jsx(Text, { className: "text-xs font-medium text-muted-foreground uppercase tracking-wide px-3 mb-2", children: section.title })), _jsx(View, { className: "gap-0.5", children: section.items.map((item) => {
|
|
44
|
+
const isActive = activeKey === item.key;
|
|
45
|
+
return (_jsxs(Pressable, { onPress: () => handleItemPress(item.key), className: cn('flex-row items-center gap-3 px-3 py-3 rounded-lg active:opacity-70', isActive && 'bg-primary/10'), children: [item.icon, _jsx(Text, { className: cn('flex-1 font-medium', item.destructive
|
|
46
|
+
? 'text-destructive'
|
|
47
|
+
: isActive
|
|
48
|
+
? 'text-primary'
|
|
49
|
+
: 'text-foreground'), children: item.label }), item.badge !== undefined && (_jsx(View, { className: "bg-primary px-2 py-0.5 rounded-full min-w-[20px] items-center", children: _jsx(Text, { className: "text-xs font-semibold text-primary-foreground", children: item.badge }) }))] }, item.key));
|
|
50
|
+
}) })] }, sectionIndex))) }), footer && _jsx(View, { className: "px-5 py-4 mt-auto border-t border-border", children: footer })] }) })] }));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=drawer-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawer-menu.js","sourceRoot":"","sources":["../../../src/blocks/navigation/drawer-menu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ViewProps, type PressableProps } from 'react-native';
|
|
3
|
+
export interface FloatingBottomNavItem {
|
|
4
|
+
key: string;
|
|
5
|
+
label: string;
|
|
6
|
+
icon: React.ReactNode;
|
|
7
|
+
}
|
|
8
|
+
export interface FloatingBottomNavProps extends ViewProps {
|
|
9
|
+
items: FloatingBottomNavItem[];
|
|
10
|
+
activeKey: string;
|
|
11
|
+
onSelect: (key: string) => void;
|
|
12
|
+
}
|
|
13
|
+
export interface FloatingBottomNavItemProps extends Omit<PressableProps, 'children'> {
|
|
14
|
+
item: FloatingBottomNavItem;
|
|
15
|
+
isActive: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare function FloatingBottomNav({ items, activeKey, onSelect, className, ...props }: FloatingBottomNavProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=floating-bottom-nav.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"floating-bottom-nav.d.ts","sourceRoot":"","sources":["../../../src/blocks/navigation/floating-bottom-nav.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAMpF,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACvD,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IAClF,IAAI,EAAE,qBAAqB,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAwBD,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,sBAAsB,2CAexB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { View, Pressable } from 'react-native';
|
|
3
|
+
import { Text } from '../../components/text';
|
|
4
|
+
import { cn } from '../../lib/cn';
|
|
5
|
+
// ─── Components ──────────────────────────────────────────────
|
|
6
|
+
function FloatingNavItem({ item, isActive, className, ...props }) {
|
|
7
|
+
const { label, icon } = item;
|
|
8
|
+
return (_jsxs(Pressable, { className: cn('flex-row items-center gap-2 rounded-full px-4 py-2 active:scale-95', isActive && 'bg-primary', className), ...props, children: [_jsx(View, { className: cn(isActive ? 'text-primary-foreground' : 'text-muted-foreground'), children: icon }), isActive && _jsx(Text, { className: "text-sm font-semibold text-primary-foreground", children: label })] }));
|
|
9
|
+
}
|
|
10
|
+
export function FloatingBottomNav({ items, activeKey, onSelect, className, ...props }) {
|
|
11
|
+
return (_jsx(View, { className: cn('items-center pb-8', className), ...props, children: _jsx(View, { className: "flex-row items-center gap-1 rounded-full bg-card p-1.5 shadow-lg", children: items.map((item) => (_jsx(FloatingNavItem, { item: item, isActive: activeKey === item.key, onPress: () => onSelect(item.key) }, item.key))) }) }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=floating-bottom-nav.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"floating-bottom-nav.js","sourceRoot":"","sources":["../../../src/blocks/navigation/floating-bottom-nav.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAuC,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAqBlC,gEAAgE;AAEhE,SAAS,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B;IAC1F,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAE7B,OAAO,CACL,MAAC,SAAS,IACR,SAAS,EAAE,EAAE,CACX,oEAAoE,EACpE,QAAQ,IAAI,YAAY,EACxB,SAAS,CACV,KACG,KAAK,aAET,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,uBAAuB,CAAC,YAChF,IAAI,GACA,EACN,QAAQ,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,+CAA+C,YAAE,KAAK,GAAQ,IACjF,CACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAChC,KAAK,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACe;IACvB,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,SAAS,CAAC,KAAM,KAAK,YAC5D,KAAC,IAAI,IAAC,SAAS,EAAC,kEAAkE,YAC/E,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,KAAC,eAAe,IAEd,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC,GAAG,EAChC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAH5B,IAAI,CAAC,GAAG,CAIb,CACH,CAAC,GACG,GACF,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ViewProps, type PressableProps } from 'react-native';
|
|
3
|
+
export interface HeaderAction {
|
|
4
|
+
key: string;
|
|
5
|
+
icon: React.ReactNode;
|
|
6
|
+
onPress: () => void;
|
|
7
|
+
}
|
|
8
|
+
export interface HeaderProps extends ViewProps {
|
|
9
|
+
title?: string;
|
|
10
|
+
subtitle?: string;
|
|
11
|
+
leftAction?: React.ReactNode;
|
|
12
|
+
rightActions?: HeaderAction[];
|
|
13
|
+
centerContent?: React.ReactNode;
|
|
14
|
+
transparent?: boolean;
|
|
15
|
+
border?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare function Header({ title, subtitle, leftAction, rightActions, centerContent, transparent, border, className, ...props }: HeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export interface HeaderBackButtonProps extends Omit<PressableProps, 'children'> {
|
|
19
|
+
icon?: React.ReactNode;
|
|
20
|
+
label?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function HeaderBackButton({ icon, label, className, ...props }: HeaderBackButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
//# sourceMappingURL=header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/blocks/navigation/header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAMpF,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAID,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,aAAa,EACb,WAAmB,EACnB,MAAa,EACb,SAAS,EACT,GAAG,KAAK,EACT,EAAE,WAAW,2CA8Cb;AAID,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IAC7E,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,2CAU3F"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { View, Pressable } from 'react-native';
|
|
3
|
+
import { Text } from '../../components/text';
|
|
4
|
+
import { cn } from '../../lib/cn';
|
|
5
|
+
// ─── Component ───────────────────────────────────────────────
|
|
6
|
+
export function Header({ title, subtitle, leftAction, rightActions, centerContent, transparent = false, border = true, className, ...props }) {
|
|
7
|
+
return (_jsxs(View, { className: cn('flex-row items-center px-4 py-3', !transparent && 'bg-background', border && 'border-b border-border', className), ...props, children: [_jsx(View, { className: "min-w-12", children: leftAction }), _jsx(View, { className: "flex-1 items-center", children: centerContent || (_jsxs(View, { className: "items-center", children: [title && (_jsx(Text, { className: "text-base font-semibold text-foreground", numberOfLines: 1, children: title })), subtitle && (_jsx(Text, { className: "text-xs text-muted-foreground", numberOfLines: 1, children: subtitle }))] })) }), _jsx(View, { className: "min-w-12 flex-row items-center justify-end gap-2", children: rightActions?.map((action) => (_jsx(Pressable, { onPress: action.onPress, className: "rounded-full p-2 active:bg-accent", children: action.icon }, action.key))) })] }));
|
|
8
|
+
}
|
|
9
|
+
export function HeaderBackButton({ icon, label, className, ...props }) {
|
|
10
|
+
return (_jsxs(Pressable, { className: cn('flex-row items-center gap-1 rounded-full py-1 active:opacity-70', className), ...props, children: [icon || _jsx(Text, { className: "text-xl text-primary", children: "\u2039" }), label && _jsx(Text, { className: "text-base text-primary", children: label })] }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.js","sourceRoot":"","sources":["../../../src/blocks/navigation/header.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAuC,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAoBlC,gEAAgE;AAEhE,MAAM,UAAU,MAAM,CAAC,EACrB,KAAK,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,aAAa,EACb,WAAW,GAAG,KAAK,EACnB,MAAM,GAAG,IAAI,EACb,SAAS,EACT,GAAG,KAAK,EACI;IACZ,OAAO,CACL,MAAC,IAAI,IACH,SAAS,EAAE,EAAE,CACX,iCAAiC,EACjC,CAAC,WAAW,IAAI,eAAe,EAC/B,MAAM,IAAI,wBAAwB,EAClC,SAAS,CACV,KACG,KAAK,aAGT,KAAC,IAAI,IAAC,SAAS,EAAC,UAAU,YAAE,UAAU,GAAQ,EAG9C,KAAC,IAAI,IAAC,SAAS,EAAC,qBAAqB,YAClC,aAAa,IAAI,CAChB,MAAC,IAAI,IAAC,SAAS,EAAC,cAAc,aAC3B,KAAK,IAAI,CACR,KAAC,IAAI,IAAC,SAAS,EAAC,yCAAyC,EAAC,aAAa,EAAE,CAAC,YACvE,KAAK,GACD,CACR,EACA,QAAQ,IAAI,CACX,KAAC,IAAI,IAAC,SAAS,EAAC,+BAA+B,EAAC,aAAa,EAAE,CAAC,YAC7D,QAAQ,GACJ,CACR,IACI,CACR,GACI,EAGP,KAAC,IAAI,IAAC,SAAS,EAAC,kDAAkD,YAC/D,YAAY,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC7B,KAAC,SAAS,IAER,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,SAAS,EAAC,mCAAmC,YAE5C,MAAM,CAAC,IAAI,IAJP,MAAM,CAAC,GAAG,CAKL,CACb,CAAC,GACG,IACF,CACR,CAAC;AACJ,CAAC;AASD,MAAM,UAAU,gBAAgB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAyB;IAC1F,OAAO,CACL,MAAC,SAAS,IACR,SAAS,EAAE,EAAE,CAAC,iEAAiE,EAAE,SAAS,CAAC,KACvF,KAAK,aAER,IAAI,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,sBAAsB,uBAAS,EACvD,KAAK,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,wBAAwB,YAAE,KAAK,GAAQ,IACvD,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { BottomNav, type BottomNavItem, type BottomNavProps } from './bottom-nav';
|
|
2
|
+
export { FloatingBottomNav, type FloatingBottomNavItem, type FloatingBottomNavProps, } from './floating-bottom-nav';
|
|
3
|
+
export { Header, HeaderBackButton, type HeaderAction, type HeaderBackButtonProps, type HeaderProps, } from './header';
|
|
4
|
+
export { TabBar, type TabBarItem, type TabBarProps } from './tab-bar';
|
|
5
|
+
export { DrawerMenu, type DrawerMenuItem, type DrawerMenuSection, type DrawerMenuProps, } from './drawer-menu';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/navigation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EACL,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,MAAM,EACN,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,GACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EACL,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { BottomNav } from './bottom-nav';
|
|
2
|
+
export { FloatingBottomNav, } from './floating-bottom-nav';
|
|
3
|
+
export { Header, HeaderBackButton, } from './header';
|
|
4
|
+
export { TabBar } from './tab-bar';
|
|
5
|
+
export { DrawerMenu, } from './drawer-menu';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/blocks/navigation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA2C,MAAM,cAAc,CAAC;AAClF,OAAO,EACL,iBAAiB,GAGlB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,MAAM,EACN,gBAAgB,GAIjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAqC,MAAM,WAAW,CAAC;AACtE,OAAO,EACL,UAAU,GAIX,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ViewProps, type PressableProps } from 'react-native';
|
|
3
|
+
export interface TabBarItem {
|
|
4
|
+
key: string;
|
|
5
|
+
label: string;
|
|
6
|
+
icon?: React.ReactNode;
|
|
7
|
+
}
|
|
8
|
+
export interface TabBarProps extends ViewProps {
|
|
9
|
+
items: TabBarItem[];
|
|
10
|
+
activeKey: string;
|
|
11
|
+
onSelect: (key: string) => void;
|
|
12
|
+
variant?: 'default' | 'pills' | 'underline';
|
|
13
|
+
scrollable?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface TabBarItemProps extends Omit<PressableProps, 'children'> {
|
|
16
|
+
item: TabBarItem;
|
|
17
|
+
isActive: boolean;
|
|
18
|
+
variant: 'default' | 'pills' | 'underline';
|
|
19
|
+
}
|
|
20
|
+
export declare function TabBar({ items, activeKey, onSelect, variant, scrollable, className, ...props }: TabBarProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
//# sourceMappingURL=tab-bar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab-bar.d.ts","sourceRoot":"","sources":["../../../src/blocks/navigation/tab-bar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAA+B,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAMhG,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IACvE,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;CAC5C;AAkCD,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,SAAS,EACT,QAAQ,EACR,OAAmB,EACnB,UAAkB,EAClB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,WAAW,2CAqCb"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { View, Pressable, ScrollView } from 'react-native';
|
|
3
|
+
import { Text } from '../../components/text';
|
|
4
|
+
import { cn } from '../../lib/cn';
|
|
5
|
+
// ─── Components ──────────────────────────────────────────────
|
|
6
|
+
function TabBarItemComponent({ item, isActive, variant, className, ...props }) {
|
|
7
|
+
const { label, icon } = item;
|
|
8
|
+
const baseStyles = 'flex-row items-center justify-center gap-2 px-4 py-2';
|
|
9
|
+
const variantStyles = {
|
|
10
|
+
default: isActive ? 'border-b-2 border-primary' : 'border-b-2 border-transparent',
|
|
11
|
+
pills: isActive ? 'bg-primary rounded-full' : 'rounded-full',
|
|
12
|
+
underline: isActive ? 'border-b-2 border-primary' : '',
|
|
13
|
+
};
|
|
14
|
+
const textStyles = {
|
|
15
|
+
default: isActive ? 'text-primary font-medium' : 'text-muted-foreground font-medium',
|
|
16
|
+
pills: isActive ? 'text-primary-foreground font-medium' : 'text-muted-foreground font-medium',
|
|
17
|
+
underline: isActive ? 'text-foreground font-medium' : 'text-muted-foreground font-medium',
|
|
18
|
+
};
|
|
19
|
+
return (_jsxs(Pressable, { className: cn(baseStyles, variantStyles[variant], 'active:opacity-70', className), ...props, children: [icon && (_jsx(View, { className: isActive && variant === 'pills' ? 'text-primary-foreground' : '', children: icon })), _jsx(Text, { className: cn('text-sm', textStyles[variant]), children: label })] }));
|
|
20
|
+
}
|
|
21
|
+
export function TabBar({ items, activeKey, onSelect, variant = 'default', scrollable = false, className, ...props }) {
|
|
22
|
+
const content = (_jsx(View, { className: cn('flex-row', variant === 'pills' && 'gap-1 rounded-full bg-muted p-1', variant === 'default' && 'border-b border-border', !scrollable && 'justify-around', className), ...props, children: items.map((item) => (_jsx(TabBarItemComponent, { item: item, isActive: activeKey === item.key, variant: variant, onPress: () => onSelect(item.key) }, item.key))) }));
|
|
23
|
+
if (scrollable) {
|
|
24
|
+
return (_jsx(ScrollView, { horizontal: true, showsHorizontalScrollIndicator: false, contentContainerStyle: { paddingHorizontal: 16 }, children: content }));
|
|
25
|
+
}
|
|
26
|
+
return content;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=tab-bar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab-bar.js","sourceRoot":"","sources":["../../../src/blocks/navigation/tab-bar.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAuC,MAAM,cAAc,CAAC;AAChG,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAwBlC,gEAAgE;AAEhE,SAAS,mBAAmB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,EAAmB;IAC5F,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAE7B,MAAM,UAAU,GAAG,sDAAsD,CAAC;IAC1E,MAAM,aAAa,GAAG;QACpB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,+BAA+B;QACjF,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,cAAc;QAC5D,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE;KACvD,CAAC;IACF,MAAM,UAAU,GAAG;QACjB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,mCAAmC;QACpF,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,mCAAmC;QAC7F,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,mCAAmC;KAC1F,CAAC;IAEF,OAAO,CACL,MAAC,SAAS,IACR,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,mBAAmB,EAAE,SAAS,CAAC,KAC7E,KAAK,aAER,IAAI,IAAI,CACP,KAAC,IAAI,IAAC,SAAS,EAAE,QAAQ,IAAI,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,YAC9E,IAAI,GACA,CACR,EACD,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,YAAG,KAAK,GAAQ,IACzD,CACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,EACrB,KAAK,EACL,SAAS,EACT,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,UAAU,GAAG,KAAK,EAClB,SAAS,EACT,GAAG,KAAK,EACI;IACZ,MAAM,OAAO,GAAG,CACd,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CACX,UAAU,EACV,OAAO,KAAK,OAAO,IAAI,iCAAiC,EACxD,OAAO,KAAK,SAAS,IAAI,wBAAwB,EACjD,CAAC,UAAU,IAAI,gBAAgB,EAC/B,SAAS,CACV,KACG,KAAK,YAER,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,KAAC,mBAAmB,IAElB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC,GAAG,EAChC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAJ5B,IAAI,CAAC,GAAG,CAKb,CACH,CAAC,GACG,CACR,CAAC;IAEF,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CACL,KAAC,UAAU,IACT,UAAU,QACV,8BAA8B,EAAE,KAAK,EACrC,qBAAqB,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,YAE/C,OAAO,GACG,CACd,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|