@hzblj/kara-components 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/README.md +7 -2
- package/lib/module/atoms/activity-indicator/activity-indicator.js +14 -0
- package/lib/module/atoms/activity-indicator/activity-indicator.js.map +1 -0
- package/lib/module/atoms/activity-indicator/index.js +4 -0
- package/lib/module/atoms/activity-indicator/index.js.map +1 -0
- package/lib/module/atoms/avatar/avatar.js +47 -0
- package/lib/module/atoms/avatar/avatar.js.map +1 -0
- package/lib/module/atoms/avatar/avatar.types.js +4 -0
- package/lib/module/atoms/avatar/avatar.types.js.map +1 -0
- package/lib/module/atoms/avatar/index.js +5 -0
- package/lib/module/atoms/avatar/index.js.map +1 -0
- package/lib/module/atoms/badge/badge-tokens.js +21 -0
- package/lib/module/atoms/badge/badge-tokens.js.map +1 -0
- package/lib/module/atoms/badge/badge.android.js +21 -0
- package/lib/module/atoms/badge/badge.android.js.map +1 -0
- package/lib/module/atoms/badge/badge.ios.js +30 -0
- package/lib/module/atoms/badge/badge.ios.js.map +1 -0
- package/lib/module/atoms/badge/badge.types.js +4 -0
- package/lib/module/atoms/badge/badge.types.js.map +1 -0
- package/lib/module/atoms/badge/index.js +6 -0
- package/lib/module/atoms/badge/index.js.map +1 -0
- package/lib/module/atoms/box/a-box.js +6 -0
- package/lib/module/atoms/box/a-box.js.map +1 -0
- package/lib/module/atoms/box/box.js +11 -0
- package/lib/module/atoms/box/box.js.map +1 -0
- package/lib/module/atoms/box/box.types.js +4 -0
- package/lib/module/atoms/box/box.types.js.map +1 -0
- package/lib/module/atoms/box/index.js +6 -0
- package/lib/module/atoms/box/index.js.map +1 -0
- package/lib/module/atoms/button/button-tokens.js +43 -0
- package/lib/module/atoms/button/button-tokens.js.map +1 -0
- package/lib/module/atoms/button/button.android.js +38 -0
- package/lib/module/atoms/button/button.android.js.map +1 -0
- package/lib/module/atoms/button/button.ios.js +86 -0
- package/lib/module/atoms/button/button.ios.js.map +1 -0
- package/lib/module/atoms/button/button.types.js +4 -0
- package/lib/module/atoms/button/button.types.js.map +1 -0
- package/lib/module/atoms/button/index.js +5 -0
- package/lib/module/atoms/button/index.js.map +1 -0
- package/lib/module/atoms/card/card.android.js +28 -0
- package/lib/module/atoms/card/card.android.js.map +1 -0
- package/lib/module/atoms/card/card.ios.js +27 -0
- package/lib/module/atoms/card/card.ios.js.map +1 -0
- package/lib/module/atoms/card/card.types.js +4 -0
- package/lib/module/atoms/card/card.types.js.map +1 -0
- package/lib/module/atoms/card/index.js +5 -0
- package/lib/module/atoms/card/index.js.map +1 -0
- package/lib/module/atoms/checkbox/checkbox.android.js +32 -0
- package/lib/module/atoms/checkbox/checkbox.android.js.map +1 -0
- package/lib/module/atoms/checkbox/checkbox.ios.js +31 -0
- package/lib/module/atoms/checkbox/checkbox.ios.js.map +1 -0
- package/lib/module/atoms/checkbox/checkbox.types.js +4 -0
- package/lib/module/atoms/checkbox/checkbox.types.js.map +1 -0
- package/lib/module/atoms/checkbox/index.js +5 -0
- package/lib/module/atoms/checkbox/index.js.map +1 -0
- package/lib/module/atoms/chip/chip.js +29 -0
- package/lib/module/atoms/chip/chip.js.map +1 -0
- package/lib/module/atoms/chip/chip.types.js +4 -0
- package/lib/module/atoms/chip/chip.types.js.map +1 -0
- package/lib/module/atoms/chip/index.js +5 -0
- package/lib/module/atoms/chip/index.js.map +1 -0
- package/lib/module/atoms/color-picker/color-picker.android.js +9 -0
- package/lib/module/atoms/color-picker/color-picker.android.js.map +1 -0
- package/lib/module/atoms/color-picker/color-picker.ios.js +22 -0
- package/lib/module/atoms/color-picker/color-picker.ios.js.map +1 -0
- package/lib/module/atoms/color-picker/color-picker.types.js +4 -0
- package/lib/module/atoms/color-picker/color-picker.types.js.map +1 -0
- package/lib/module/atoms/color-picker/index.js +5 -0
- package/lib/module/atoms/color-picker/index.js.map +1 -0
- package/lib/module/atoms/countdown/countdown-frame.js +115 -0
- package/lib/module/atoms/countdown/countdown-frame.js.map +1 -0
- package/lib/module/atoms/countdown/countdown-units.js +25 -0
- package/lib/module/atoms/countdown/countdown-units.js.map +1 -0
- package/lib/module/atoms/countdown/countdown.android.js +53 -0
- package/lib/module/atoms/countdown/countdown.android.js.map +1 -0
- package/lib/module/atoms/countdown/countdown.ios.js +50 -0
- package/lib/module/atoms/countdown/countdown.ios.js.map +1 -0
- package/lib/module/atoms/countdown/countdown.types.js +4 -0
- package/lib/module/atoms/countdown/countdown.types.js.map +1 -0
- package/lib/module/atoms/countdown/index.js +5 -0
- package/lib/module/atoms/countdown/index.js.map +1 -0
- package/lib/module/atoms/date-picker/date-picker.js +28 -0
- package/lib/module/atoms/date-picker/date-picker.js.map +1 -0
- package/lib/module/atoms/date-picker/date-picker.types.js +4 -0
- package/lib/module/atoms/date-picker/date-picker.types.js.map +1 -0
- package/lib/module/atoms/date-picker/index.js +5 -0
- package/lib/module/atoms/date-picker/index.js.map +1 -0
- package/lib/module/atoms/divider/divider.android.js +16 -0
- package/lib/module/atoms/divider/divider.android.js.map +1 -0
- package/lib/module/atoms/divider/divider.ios.js +21 -0
- package/lib/module/atoms/divider/divider.ios.js.map +1 -0
- package/lib/module/atoms/divider/divider.types.js +4 -0
- package/lib/module/atoms/divider/divider.types.js.map +1 -0
- package/lib/module/atoms/divider/index.js +5 -0
- package/lib/module/atoms/divider/index.js.map +1 -0
- package/lib/module/atoms/fab/fab.android.js +23 -0
- package/lib/module/atoms/fab/fab.android.js.map +1 -0
- package/lib/module/atoms/fab/fab.ios.js +35 -0
- package/lib/module/atoms/fab/fab.ios.js.map +1 -0
- package/lib/module/atoms/fab/fab.types.js +4 -0
- package/lib/module/atoms/fab/fab.types.js.map +1 -0
- package/lib/module/atoms/fab/index.js +5 -0
- package/lib/module/atoms/fab/index.js.map +1 -0
- package/lib/module/atoms/flash-list/flash-list.js +31 -0
- package/lib/module/atoms/flash-list/flash-list.js.map +1 -0
- package/lib/module/atoms/flash-list/flash-list.types.js +4 -0
- package/lib/module/atoms/flash-list/flash-list.types.js.map +1 -0
- package/lib/module/atoms/flash-list/index.js +5 -0
- package/lib/module/atoms/flash-list/index.js.map +1 -0
- package/lib/module/atoms/glass-view/glass-fallback.js +17 -0
- package/lib/module/atoms/glass-view/glass-fallback.js.map +1 -0
- package/lib/module/atoms/glass-view/glass-view.android.js +9 -0
- package/lib/module/atoms/glass-view/glass-view.android.js.map +1 -0
- package/lib/module/atoms/glass-view/glass-view.ios.js +36 -0
- package/lib/module/atoms/glass-view/glass-view.ios.js.map +1 -0
- package/lib/module/atoms/glass-view/glass-view.types.js +4 -0
- package/lib/module/atoms/glass-view/glass-view.types.js.map +1 -0
- package/lib/module/atoms/glass-view/index.js +6 -0
- package/lib/module/atoms/glass-view/index.js.map +1 -0
- package/lib/module/atoms/h-stack/h-stack.android.js +35 -0
- package/lib/module/atoms/h-stack/h-stack.android.js.map +1 -0
- package/lib/module/atoms/h-stack/h-stack.ios.js +39 -0
- package/lib/module/atoms/h-stack/h-stack.ios.js.map +1 -0
- package/lib/module/atoms/h-stack/h-stack.types.js +4 -0
- package/lib/module/atoms/h-stack/h-stack.types.js.map +1 -0
- package/lib/module/atoms/h-stack/index.js +5 -0
- package/lib/module/atoms/h-stack/index.js.map +1 -0
- package/lib/module/atoms/icon/icon-names.js +53 -0
- package/lib/module/atoms/icon/icon-names.js.map +1 -0
- package/lib/module/atoms/icon/icon.android.js +26 -0
- package/lib/module/atoms/icon/icon.android.js.map +1 -0
- package/lib/module/atoms/icon/icon.ios.js +23 -0
- package/lib/module/atoms/icon/icon.ios.js.map +1 -0
- package/lib/module/atoms/icon/icon.types.js +4 -0
- package/lib/module/atoms/icon/icon.types.js.map +1 -0
- package/lib/module/atoms/icon/index.js +6 -0
- package/lib/module/atoms/icon/index.js.map +1 -0
- package/lib/module/atoms/icon-button/icon-button.android.js +22 -0
- package/lib/module/atoms/icon-button/icon-button.android.js.map +1 -0
- package/lib/module/atoms/icon-button/icon-button.ios.js +33 -0
- package/lib/module/atoms/icon-button/icon-button.ios.js.map +1 -0
- package/lib/module/atoms/icon-button/icon-button.types.js +4 -0
- package/lib/module/atoms/icon-button/icon-button.types.js.map +1 -0
- package/lib/module/atoms/icon-button/index.js +5 -0
- package/lib/module/atoms/icon-button/index.js.map +1 -0
- package/lib/module/atoms/image/image.js +14 -0
- package/lib/module/atoms/image/image.js.map +1 -0
- package/lib/module/atoms/image/index.js +4 -0
- package/lib/module/atoms/image/index.js.map +1 -0
- package/lib/module/atoms/index.js +43 -0
- package/lib/module/atoms/index.js.map +1 -0
- package/lib/module/atoms/island/index.js +5 -0
- package/lib/module/atoms/island/index.js.map +1 -0
- package/lib/module/atoms/island/island.android.js +31 -0
- package/lib/module/atoms/island/island.android.js.map +1 -0
- package/lib/module/atoms/island/island.ios.js +38 -0
- package/lib/module/atoms/island/island.ios.js.map +1 -0
- package/lib/module/atoms/island/island.types.js +4 -0
- package/lib/module/atoms/island/island.types.js.map +1 -0
- package/lib/module/atoms/list/index.js +5 -0
- package/lib/module/atoms/list/index.js.map +1 -0
- package/lib/module/atoms/list/list.android.js +33 -0
- package/lib/module/atoms/list/list.android.js.map +1 -0
- package/lib/module/atoms/list/list.ios.js +21 -0
- package/lib/module/atoms/list/list.ios.js.map +1 -0
- package/lib/module/atoms/list/list.types.js +4 -0
- package/lib/module/atoms/list/list.types.js.map +1 -0
- package/lib/module/atoms/picker/index.js +5 -0
- package/lib/module/atoms/picker/index.js.map +1 -0
- package/lib/module/atoms/picker/picker.js +28 -0
- package/lib/module/atoms/picker/picker.js.map +1 -0
- package/lib/module/atoms/picker/picker.types.js +4 -0
- package/lib/module/atoms/picker/picker.types.js.map +1 -0
- package/lib/module/atoms/pressable/index.js +5 -0
- package/lib/module/atoms/pressable/index.js.map +1 -0
- package/lib/module/atoms/pressable/pressable.js +53 -0
- package/lib/module/atoms/pressable/pressable.js.map +1 -0
- package/lib/module/atoms/pressable/pressable.types.js +4 -0
- package/lib/module/atoms/pressable/pressable.types.js.map +1 -0
- package/lib/module/atoms/progress/index.js +5 -0
- package/lib/module/atoms/progress/index.js.map +1 -0
- package/lib/module/atoms/progress/progress.android.js +25 -0
- package/lib/module/atoms/progress/progress.android.js.map +1 -0
- package/lib/module/atoms/progress/progress.ios.js +21 -0
- package/lib/module/atoms/progress/progress.ios.js.map +1 -0
- package/lib/module/atoms/progress/progress.types.js +4 -0
- package/lib/module/atoms/progress/progress.types.js.map +1 -0
- package/lib/module/atoms/rn-flat-list/index.js +5 -0
- package/lib/module/atoms/rn-flat-list/index.js.map +1 -0
- package/lib/module/atoms/rn-flat-list/rn-flat-list.js +35 -0
- package/lib/module/atoms/rn-flat-list/rn-flat-list.js.map +1 -0
- package/lib/module/atoms/rn-flat-list/rn-flat-list.types.js +4 -0
- package/lib/module/atoms/rn-flat-list/rn-flat-list.types.js.map +1 -0
- package/lib/module/atoms/rn-scroll-view/index.js +5 -0
- package/lib/module/atoms/rn-scroll-view/index.js.map +1 -0
- package/lib/module/atoms/rn-scroll-view/rn-scroll-view.js +29 -0
- package/lib/module/atoms/rn-scroll-view/rn-scroll-view.js.map +1 -0
- package/lib/module/atoms/rn-scroll-view/rn-scroll-view.types.js +4 -0
- package/lib/module/atoms/rn-scroll-view/rn-scroll-view.types.js.map +1 -0
- package/lib/module/atoms/rn-section-list/index.js +5 -0
- package/lib/module/atoms/rn-section-list/index.js.map +1 -0
- package/lib/module/atoms/rn-section-list/rn-section-list.js +38 -0
- package/lib/module/atoms/rn-section-list/rn-section-list.js.map +1 -0
- package/lib/module/atoms/rn-section-list/rn-section-list.types.js +4 -0
- package/lib/module/atoms/rn-section-list/rn-section-list.types.js.map +1 -0
- package/lib/module/atoms/rn-text/index.js +5 -0
- package/lib/module/atoms/rn-text/index.js.map +1 -0
- package/lib/module/atoms/rn-text/rn-text.js +37 -0
- package/lib/module/atoms/rn-text/rn-text.js.map +1 -0
- package/lib/module/atoms/rn-text/rn-text.types.js +4 -0
- package/lib/module/atoms/rn-text/rn-text.types.js.map +1 -0
- package/lib/module/atoms/rn-view/index.js +5 -0
- package/lib/module/atoms/rn-view/index.js.map +1 -0
- package/lib/module/atoms/rn-view/rn-view.android.js +12 -0
- package/lib/module/atoms/rn-view/rn-view.android.js.map +1 -0
- package/lib/module/atoms/rn-view/rn-view.ios.js +12 -0
- package/lib/module/atoms/rn-view/rn-view.ios.js.map +1 -0
- package/lib/module/atoms/rn-view/rn-view.types.js +4 -0
- package/lib/module/atoms/rn-view/rn-view.types.js.map +1 -0
- package/lib/module/atoms/scroll-view/index.js +5 -0
- package/lib/module/atoms/scroll-view/index.js.map +1 -0
- package/lib/module/atoms/scroll-view/scroll-view.android.js +53 -0
- package/lib/module/atoms/scroll-view/scroll-view.android.js.map +1 -0
- package/lib/module/atoms/scroll-view/scroll-view.ios.js +41 -0
- package/lib/module/atoms/scroll-view/scroll-view.ios.js.map +1 -0
- package/lib/module/atoms/scroll-view/scroll-view.types.js +4 -0
- package/lib/module/atoms/scroll-view/scroll-view.types.js.map +1 -0
- package/lib/module/atoms/segmented-control/index.js +5 -0
- package/lib/module/atoms/segmented-control/index.js.map +1 -0
- package/lib/module/atoms/segmented-control/segmented-control.js +28 -0
- package/lib/module/atoms/segmented-control/segmented-control.js.map +1 -0
- package/lib/module/atoms/segmented-control/segmented-control.types.js +4 -0
- package/lib/module/atoms/segmented-control/segmented-control.types.js.map +1 -0
- package/lib/module/atoms/skeleton/index.js +5 -0
- package/lib/module/atoms/skeleton/index.js.map +1 -0
- package/lib/module/atoms/skeleton/skeleton.js +33 -0
- package/lib/module/atoms/skeleton/skeleton.js.map +1 -0
- package/lib/module/atoms/skeleton/skeleton.types.js +4 -0
- package/lib/module/atoms/skeleton/skeleton.types.js.map +1 -0
- package/lib/module/atoms/slider/index.js +5 -0
- package/lib/module/atoms/slider/index.js.map +1 -0
- package/lib/module/atoms/slider/slider.android.js +30 -0
- package/lib/module/atoms/slider/slider.android.js.map +1 -0
- package/lib/module/atoms/slider/slider.ios.js +35 -0
- package/lib/module/atoms/slider/slider.ios.js.map +1 -0
- package/lib/module/atoms/slider/slider.types.js +4 -0
- package/lib/module/atoms/slider/slider.types.js.map +1 -0
- package/lib/module/atoms/spacer/index.js +5 -0
- package/lib/module/atoms/spacer/index.js.map +1 -0
- package/lib/module/atoms/spacer/spacer.android.js +20 -0
- package/lib/module/atoms/spacer/spacer.android.js.map +1 -0
- package/lib/module/atoms/spacer/spacer.ios.js +17 -0
- package/lib/module/atoms/spacer/spacer.ios.js.map +1 -0
- package/lib/module/atoms/spacer/spacer.types.js +4 -0
- package/lib/module/atoms/spacer/spacer.types.js.map +1 -0
- package/lib/module/atoms/surface/index.js +5 -0
- package/lib/module/atoms/surface/index.js.map +1 -0
- package/lib/module/atoms/surface/surface.android.js +38 -0
- package/lib/module/atoms/surface/surface.android.js.map +1 -0
- package/lib/module/atoms/surface/surface.ios.js +32 -0
- package/lib/module/atoms/surface/surface.ios.js.map +1 -0
- package/lib/module/atoms/surface/surface.types.js +4 -0
- package/lib/module/atoms/surface/surface.types.js.map +1 -0
- package/lib/module/atoms/switch/index.js +5 -0
- package/lib/module/atoms/switch/index.js.map +1 -0
- package/lib/module/atoms/switch/switch.android.js +33 -0
- package/lib/module/atoms/switch/switch.android.js.map +1 -0
- package/lib/module/atoms/switch/switch.ios.js +31 -0
- package/lib/module/atoms/switch/switch.ios.js.map +1 -0
- package/lib/module/atoms/switch/switch.types.js +4 -0
- package/lib/module/atoms/switch/switch.types.js.map +1 -0
- package/lib/module/atoms/text/index.js +5 -0
- package/lib/module/atoms/text/index.js.map +1 -0
- package/lib/module/atoms/text/text.android.js +50 -0
- package/lib/module/atoms/text/text.android.js.map +1 -0
- package/lib/module/atoms/text/text.ios.js +67 -0
- package/lib/module/atoms/text/text.ios.js.map +1 -0
- package/lib/module/atoms/text/text.types.js +4 -0
- package/lib/module/atoms/text/text.types.js.map +1 -0
- package/lib/module/atoms/text-field/index.js +5 -0
- package/lib/module/atoms/text-field/index.js.map +1 -0
- package/lib/module/atoms/text-field/text-field.android.js +47 -0
- package/lib/module/atoms/text-field/text-field.android.js.map +1 -0
- package/lib/module/atoms/text-field/text-field.ios.js +89 -0
- package/lib/module/atoms/text-field/text-field.ios.js.map +1 -0
- package/lib/module/atoms/text-field/text-field.types.js +4 -0
- package/lib/module/atoms/text-field/text-field.types.js.map +1 -0
- package/lib/module/atoms/v-stack/index.js +5 -0
- package/lib/module/atoms/v-stack/index.js.map +1 -0
- package/lib/module/atoms/v-stack/v-stack.android.js +35 -0
- package/lib/module/atoms/v-stack/v-stack.android.js.map +1 -0
- package/lib/module/atoms/v-stack/v-stack.ios.js +34 -0
- package/lib/module/atoms/v-stack/v-stack.ios.js.map +1 -0
- package/lib/module/atoms/v-stack/v-stack.types.js +4 -0
- package/lib/module/atoms/v-stack/v-stack.types.js.map +1 -0
- package/lib/module/atoms/z-stack/index.js +5 -0
- package/lib/module/atoms/z-stack/index.js.map +1 -0
- package/lib/module/atoms/z-stack/z-stack.android.js +30 -0
- package/lib/module/atoms/z-stack/z-stack.android.js.map +1 -0
- package/lib/module/atoms/z-stack/z-stack.ios.js +31 -0
- package/lib/module/atoms/z-stack/z-stack.ios.js.map +1 -0
- package/lib/module/atoms/z-stack/z-stack.types.js +4 -0
- package/lib/module/atoms/z-stack/z-stack.types.js.map +1 -0
- package/lib/module/host-context.js +18 -0
- package/lib/module/host-context.js.map +1 -0
- package/lib/module/index.js +7 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/molecules/collapsible/collapsible.android.js +38 -0
- package/lib/module/molecules/collapsible/collapsible.android.js.map +1 -0
- package/lib/module/molecules/collapsible/collapsible.ios.js +20 -0
- package/lib/module/molecules/collapsible/collapsible.ios.js.map +1 -0
- package/lib/module/molecules/collapsible/collapsible.types.js +4 -0
- package/lib/module/molecules/collapsible/collapsible.types.js.map +1 -0
- package/lib/module/molecules/collapsible/index.js +5 -0
- package/lib/module/molecules/collapsible/index.js.map +1 -0
- package/lib/module/molecules/empty-state/empty-state.js +34 -0
- package/lib/module/molecules/empty-state/empty-state.js.map +1 -0
- package/lib/module/molecules/empty-state/empty-state.types.js +4 -0
- package/lib/module/molecules/empty-state/empty-state.types.js.map +1 -0
- package/lib/module/molecules/empty-state/index.js +5 -0
- package/lib/module/molecules/empty-state/index.js.map +1 -0
- package/lib/module/molecules/index.js +17 -0
- package/lib/module/molecules/index.js.map +1 -0
- package/lib/module/molecules/label/index.js +5 -0
- package/lib/module/molecules/label/index.js.map +1 -0
- package/lib/module/molecules/label/label.js +28 -0
- package/lib/module/molecules/label/label.js.map +1 -0
- package/lib/module/molecules/label/label.types.js +4 -0
- package/lib/module/molecules/label/label.types.js.map +1 -0
- package/lib/module/molecules/labeled-content/index.js +5 -0
- package/lib/module/molecules/labeled-content/index.js.map +1 -0
- package/lib/module/molecules/labeled-content/labeled-content.js +44 -0
- package/lib/module/molecules/labeled-content/labeled-content.js.map +1 -0
- package/lib/module/molecules/labeled-content/labeled-content.types.js +4 -0
- package/lib/module/molecules/labeled-content/labeled-content.types.js.map +1 -0
- package/lib/module/molecules/link/index.js +5 -0
- package/lib/module/molecules/link/index.js.map +1 -0
- package/lib/module/molecules/link/link.js +35 -0
- package/lib/module/molecules/link/link.js.map +1 -0
- package/lib/module/molecules/link/link.types.js +4 -0
- package/lib/module/molecules/link/link.types.js.map +1 -0
- package/lib/module/molecules/list-item/index.js +5 -0
- package/lib/module/molecules/list-item/index.js.map +1 -0
- package/lib/module/molecules/list-item/list-item.js +42 -0
- package/lib/module/molecules/list-item/list-item.js.map +1 -0
- package/lib/module/molecules/list-item/list-item.types.js +4 -0
- package/lib/module/molecules/list-item/list-item.types.js.map +1 -0
- package/lib/module/molecules/navigation-bar/index.js +5 -0
- package/lib/module/molecules/navigation-bar/index.js.map +1 -0
- package/lib/module/molecules/navigation-bar/navigation-bar.android.js +37 -0
- package/lib/module/molecules/navigation-bar/navigation-bar.android.js.map +1 -0
- package/lib/module/molecules/navigation-bar/navigation-bar.ios.js +33 -0
- package/lib/module/molecules/navigation-bar/navigation-bar.ios.js.map +1 -0
- package/lib/module/molecules/navigation-bar/navigation-bar.types.js +4 -0
- package/lib/module/molecules/navigation-bar/navigation-bar.types.js.map +1 -0
- package/lib/module/molecules/pager/index.js +5 -0
- package/lib/module/molecules/pager/index.js.map +1 -0
- package/lib/module/molecules/pager/pager.android.js +86 -0
- package/lib/module/molecules/pager/pager.android.js.map +1 -0
- package/lib/module/molecules/pager/pager.ios.js +42 -0
- package/lib/module/molecules/pager/pager.ios.js.map +1 -0
- package/lib/module/molecules/pager/pager.types.js +4 -0
- package/lib/module/molecules/pager/pager.types.js.map +1 -0
- package/lib/module/molecules/radio-group/index.js +5 -0
- package/lib/module/molecules/radio-group/index.js.map +1 -0
- package/lib/module/molecules/radio-group/radio-group.android.js +31 -0
- package/lib/module/molecules/radio-group/radio-group.android.js.map +1 -0
- package/lib/module/molecules/radio-group/radio-group.ios.js +34 -0
- package/lib/module/molecules/radio-group/radio-group.ios.js.map +1 -0
- package/lib/module/molecules/radio-group/radio-group.types.js +4 -0
- package/lib/module/molecules/radio-group/radio-group.types.js.map +1 -0
- package/lib/module/molecules/rn-tooltip/index.js +5 -0
- package/lib/module/molecules/rn-tooltip/index.js.map +1 -0
- package/lib/module/molecules/rn-tooltip/rn-tooltip.android.js +94 -0
- package/lib/module/molecules/rn-tooltip/rn-tooltip.android.js.map +1 -0
- package/lib/module/molecules/rn-tooltip/rn-tooltip.ios.js +65 -0
- package/lib/module/molecules/rn-tooltip/rn-tooltip.ios.js.map +1 -0
- package/lib/module/molecules/rn-tooltip/rn-tooltip.types.js +4 -0
- package/lib/module/molecules/rn-tooltip/rn-tooltip.types.js.map +1 -0
- package/lib/module/molecules/scroll-edge-container/index.js +6 -0
- package/lib/module/molecules/scroll-edge-container/index.js.map +1 -0
- package/lib/module/molecules/scroll-edge-container/scroll-edge-container.android.js +25 -0
- package/lib/module/molecules/scroll-edge-container/scroll-edge-container.android.js.map +1 -0
- package/lib/module/molecules/scroll-edge-container/scroll-edge-container.ios.js +30 -0
- package/lib/module/molecules/scroll-edge-container/scroll-edge-container.ios.js.map +1 -0
- package/lib/module/molecules/scroll-edge-container/scroll-edge-container.types.js +4 -0
- package/lib/module/molecules/scroll-edge-container/scroll-edge-container.types.js.map +1 -0
- package/lib/module/molecules/search-bar/index.js +5 -0
- package/lib/module/molecules/search-bar/index.js.map +1 -0
- package/lib/module/molecules/search-bar/search-bar.js +63 -0
- package/lib/module/molecules/search-bar/search-bar.js.map +1 -0
- package/lib/module/molecules/search-bar/search-bar.types.js +4 -0
- package/lib/module/molecules/search-bar/search-bar.types.js.map +1 -0
- package/lib/module/molecules/stepper/index.js +5 -0
- package/lib/module/molecules/stepper/index.js.map +1 -0
- package/lib/module/molecules/stepper/stepper.android.js +41 -0
- package/lib/module/molecules/stepper/stepper.android.js.map +1 -0
- package/lib/module/molecules/stepper/stepper.ios.js +24 -0
- package/lib/module/molecules/stepper/stepper.ios.js.map +1 -0
- package/lib/module/molecules/stepper/stepper.types.js +4 -0
- package/lib/module/molecules/stepper/stepper.types.js.map +1 -0
- package/lib/module/molecules/tooltip/index.js +5 -0
- package/lib/module/molecules/tooltip/index.js.map +1 -0
- package/lib/module/molecules/tooltip/tooltip.android.js +25 -0
- package/lib/module/molecules/tooltip/tooltip.android.js.map +1 -0
- package/lib/module/molecules/tooltip/tooltip.ios.js +35 -0
- package/lib/module/molecules/tooltip/tooltip.ios.js.map +1 -0
- package/lib/module/molecules/tooltip/tooltip.types.js +4 -0
- package/lib/module/molecules/tooltip/tooltip.types.js.map +1 -0
- package/lib/module/organisms/action-sheet/action-sheet.android.js +43 -0
- package/lib/module/organisms/action-sheet/action-sheet.android.js.map +1 -0
- package/lib/module/organisms/action-sheet/action-sheet.ios.js +28 -0
- package/lib/module/organisms/action-sheet/action-sheet.ios.js.map +1 -0
- package/lib/module/organisms/action-sheet/action-sheet.types.js +4 -0
- package/lib/module/organisms/action-sheet/action-sheet.types.js.map +1 -0
- package/lib/module/organisms/action-sheet/index.js +5 -0
- package/lib/module/organisms/action-sheet/index.js.map +1 -0
- package/lib/module/organisms/alert/alert.android.js +41 -0
- package/lib/module/organisms/alert/alert.android.js.map +1 -0
- package/lib/module/organisms/alert/alert.ios.js +41 -0
- package/lib/module/organisms/alert/alert.ios.js.map +1 -0
- package/lib/module/organisms/alert/alert.types.js +4 -0
- package/lib/module/organisms/alert/alert.types.js.map +1 -0
- package/lib/module/organisms/alert/index.js +5 -0
- package/lib/module/organisms/alert/index.js.map +1 -0
- package/lib/module/organisms/context-menu/context-menu.android.js +50 -0
- package/lib/module/organisms/context-menu/context-menu.android.js.map +1 -0
- package/lib/module/organisms/context-menu/context-menu.ios.js +23 -0
- package/lib/module/organisms/context-menu/context-menu.ios.js.map +1 -0
- package/lib/module/organisms/context-menu/context-menu.types.js +4 -0
- package/lib/module/organisms/context-menu/context-menu.types.js.map +1 -0
- package/lib/module/organisms/context-menu/index.js +5 -0
- package/lib/module/organisms/context-menu/index.js.map +1 -0
- package/lib/module/organisms/fab-menu/fab-menu.android.js +73 -0
- package/lib/module/organisms/fab-menu/fab-menu.android.js.map +1 -0
- package/lib/module/organisms/fab-menu/fab-menu.ios.js +39 -0
- package/lib/module/organisms/fab-menu/fab-menu.ios.js.map +1 -0
- package/lib/module/organisms/fab-menu/fab-menu.types.js +4 -0
- package/lib/module/organisms/fab-menu/fab-menu.types.js.map +1 -0
- package/lib/module/organisms/fab-menu/index.js +5 -0
- package/lib/module/organisms/fab-menu/index.js.map +1 -0
- package/lib/module/organisms/form/form.android.js +43 -0
- package/lib/module/organisms/form/form.android.js.map +1 -0
- package/lib/module/organisms/form/form.ios.js +32 -0
- package/lib/module/organisms/form/form.ios.js.map +1 -0
- package/lib/module/organisms/form/form.types.js +4 -0
- package/lib/module/organisms/form/form.types.js.map +1 -0
- package/lib/module/organisms/form/index.js +5 -0
- package/lib/module/organisms/form/index.js.map +1 -0
- package/lib/module/organisms/index.js +13 -0
- package/lib/module/organisms/index.js.map +1 -0
- package/lib/module/organisms/menu/index.js +5 -0
- package/lib/module/organisms/menu/index.js.map +1 -0
- package/lib/module/organisms/menu/menu.android.js +63 -0
- package/lib/module/organisms/menu/menu.android.js.map +1 -0
- package/lib/module/organisms/menu/menu.ios.js +20 -0
- package/lib/module/organisms/menu/menu.ios.js.map +1 -0
- package/lib/module/organisms/menu/menu.types.js +4 -0
- package/lib/module/organisms/menu/menu.types.js.map +1 -0
- package/lib/module/organisms/rn-context-menu/index.js +5 -0
- package/lib/module/organisms/rn-context-menu/index.js.map +1 -0
- package/lib/module/organisms/rn-context-menu/rn-context-menu.android.js +101 -0
- package/lib/module/organisms/rn-context-menu/rn-context-menu.android.js.map +1 -0
- package/lib/module/organisms/rn-context-menu/rn-context-menu.ios.js +44 -0
- package/lib/module/organisms/rn-context-menu/rn-context-menu.ios.js.map +1 -0
- package/lib/module/organisms/rn-context-menu/rn-context-menu.types.js +4 -0
- package/lib/module/organisms/rn-context-menu/rn-context-menu.types.js.map +1 -0
- package/lib/module/organisms/sheet/index.js +5 -0
- package/lib/module/organisms/sheet/index.js.map +1 -0
- package/lib/module/organisms/sheet/sheet.android.js +26 -0
- package/lib/module/organisms/sheet/sheet.android.js.map +1 -0
- package/lib/module/organisms/sheet/sheet.ios.js +25 -0
- package/lib/module/organisms/sheet/sheet.ios.js.map +1 -0
- package/lib/module/organisms/sheet/sheet.types.js +4 -0
- package/lib/module/organisms/sheet/sheet.types.js.map +1 -0
- package/lib/module/organisms/snackbar/index.js +5 -0
- package/lib/module/organisms/snackbar/index.js.map +1 -0
- package/lib/module/organisms/snackbar/snackbar.js +46 -0
- package/lib/module/organisms/snackbar/snackbar.js.map +1 -0
- package/lib/module/organisms/snackbar/snackbar.types.js +4 -0
- package/lib/module/organisms/snackbar/snackbar.types.js.map +1 -0
- package/lib/module/organisms/swipe-actions/index.js +5 -0
- package/lib/module/organisms/swipe-actions/index.js.map +1 -0
- package/lib/module/organisms/swipe-actions/swipe-actions.android.js +17 -0
- package/lib/module/organisms/swipe-actions/swipe-actions.android.js.map +1 -0
- package/lib/module/organisms/swipe-actions/swipe-actions.ios.js +28 -0
- package/lib/module/organisms/swipe-actions/swipe-actions.ios.js.map +1 -0
- package/lib/module/organisms/swipe-actions/swipe-actions.types.js +4 -0
- package/lib/module/organisms/swipe-actions/swipe-actions.types.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/platform-support.js +19 -0
- package/lib/module/platform-support.js.map +1 -0
- package/lib/module/templates/index.js +4 -0
- package/lib/module/templates/index.js.map +1 -0
- package/lib/module/templates/screen/index.js +5 -0
- package/lib/module/templates/screen/index.js.map +1 -0
- package/lib/module/templates/screen/screen.android.js +34 -0
- package/lib/module/templates/screen/screen.android.js.map +1 -0
- package/lib/module/templates/screen/screen.ios.js +44 -0
- package/lib/module/templates/screen/screen.ios.js.map +1 -0
- package/lib/module/templates/screen/screen.types.js +4 -0
- package/lib/module/templates/screen/screen.types.js.map +1 -0
- package/lib/module/use-refresh-state.js +28 -0
- package/lib/module/use-refresh-state.js.map +1 -0
- package/lib/typescript/atoms/activity-indicator/activity-indicator.d.ts +3 -0
- package/lib/typescript/atoms/activity-indicator/index.d.ts +1 -0
- package/lib/typescript/atoms/avatar/avatar.d.ts +2 -0
- package/lib/typescript/atoms/avatar/avatar.types.d.ts +10 -0
- package/lib/typescript/atoms/avatar/index.d.ts +2 -0
- package/lib/typescript/atoms/badge/badge-tokens.d.ts +18 -0
- package/lib/typescript/atoms/badge/badge.d.ts +1 -0
- package/lib/typescript/atoms/badge/badge.ios.d.ts +2 -0
- package/lib/typescript/atoms/badge/badge.types.d.ts +7 -0
- package/lib/typescript/atoms/badge/index.d.ts +3 -0
- package/lib/typescript/atoms/box/a-box.d.ts +49 -0
- package/lib/typescript/atoms/box/box.d.ts +9 -0
- package/lib/typescript/atoms/box/box.types.d.ts +4 -0
- package/lib/typescript/atoms/box/index.d.ts +3 -0
- package/lib/typescript/atoms/button/button-tokens.d.ts +23 -0
- package/lib/typescript/atoms/button/button.d.ts +1 -0
- package/lib/typescript/atoms/button/button.ios.d.ts +2 -0
- package/lib/typescript/atoms/button/button.types.d.ts +30 -0
- package/lib/typescript/atoms/button/index.d.ts +2 -0
- package/lib/typescript/atoms/card/card.d.ts +1 -0
- package/lib/typescript/atoms/card/card.ios.d.ts +2 -0
- package/lib/typescript/atoms/card/card.types.d.ts +7 -0
- package/lib/typescript/atoms/card/index.d.ts +2 -0
- package/lib/typescript/atoms/checkbox/checkbox.d.ts +1 -0
- package/lib/typescript/atoms/checkbox/checkbox.ios.d.ts +2 -0
- package/lib/typescript/atoms/checkbox/checkbox.types.d.ts +8 -0
- package/lib/typescript/atoms/checkbox/index.d.ts +2 -0
- package/lib/typescript/atoms/chip/chip.d.ts +2 -0
- package/lib/typescript/atoms/chip/chip.types.d.ts +8 -0
- package/lib/typescript/atoms/chip/index.d.ts +2 -0
- package/lib/typescript/atoms/color-picker/color-picker.d.ts +1 -0
- package/lib/typescript/atoms/color-picker/color-picker.ios.d.ts +2 -0
- package/lib/typescript/atoms/color-picker/color-picker.types.d.ts +14 -0
- package/lib/typescript/atoms/color-picker/index.d.ts +2 -0
- package/lib/typescript/atoms/countdown/countdown-frame.d.ts +17 -0
- package/lib/typescript/atoms/countdown/countdown-units.d.ts +5 -0
- package/lib/typescript/atoms/countdown/countdown.d.ts +1 -0
- package/lib/typescript/atoms/countdown/countdown.ios.d.ts +2 -0
- package/lib/typescript/atoms/countdown/countdown.types.d.ts +21 -0
- package/lib/typescript/atoms/countdown/index.d.ts +2 -0
- package/lib/typescript/atoms/date-picker/date-picker.d.ts +2 -0
- package/lib/typescript/atoms/date-picker/date-picker.types.d.ts +11 -0
- package/lib/typescript/atoms/date-picker/index.d.ts +2 -0
- package/lib/typescript/atoms/divider/divider.d.ts +1 -0
- package/lib/typescript/atoms/divider/divider.ios.d.ts +2 -0
- package/lib/typescript/atoms/divider/divider.types.d.ts +7 -0
- package/lib/typescript/atoms/divider/index.d.ts +2 -0
- package/lib/typescript/atoms/fab/fab.d.ts +1 -0
- package/lib/typescript/atoms/fab/fab.ios.d.ts +2 -0
- package/lib/typescript/atoms/fab/fab.types.d.ts +8 -0
- package/lib/typescript/atoms/fab/index.d.ts +2 -0
- package/lib/typescript/atoms/flash-list/flash-list.d.ts +8 -0
- package/lib/typescript/atoms/flash-list/flash-list.types.d.ts +18 -0
- package/lib/typescript/atoms/flash-list/index.d.ts +2 -0
- package/lib/typescript/atoms/glass-view/glass-fallback.d.ts +3 -0
- package/lib/typescript/atoms/glass-view/glass-view.d.ts +1 -0
- package/lib/typescript/atoms/glass-view/glass-view.ios.d.ts +2 -0
- package/lib/typescript/atoms/glass-view/glass-view.types.d.ts +18 -0
- package/lib/typescript/atoms/glass-view/index.d.ts +3 -0
- package/lib/typescript/atoms/h-stack/h-stack.d.ts +1 -0
- package/lib/typescript/atoms/h-stack/h-stack.ios.d.ts +2 -0
- package/lib/typescript/atoms/h-stack/h-stack.types.d.ts +12 -0
- package/lib/typescript/atoms/h-stack/index.d.ts +2 -0
- package/lib/typescript/atoms/icon/icon-names.d.ts +50 -0
- package/lib/typescript/atoms/icon/icon.d.ts +1 -0
- package/lib/typescript/atoms/icon/icon.ios.d.ts +2 -0
- package/lib/typescript/atoms/icon/icon.types.d.ts +10 -0
- package/lib/typescript/atoms/icon/index.d.ts +3 -0
- package/lib/typescript/atoms/icon-button/icon-button.d.ts +1 -0
- package/lib/typescript/atoms/icon-button/icon-button.ios.d.ts +2 -0
- package/lib/typescript/atoms/icon-button/icon-button.types.d.ts +9 -0
- package/lib/typescript/atoms/icon-button/index.d.ts +2 -0
- package/lib/typescript/atoms/image/image.d.ts +4 -0
- package/lib/typescript/atoms/image/index.d.ts +1 -0
- package/lib/typescript/atoms/index.d.ts +40 -0
- package/lib/typescript/atoms/island/index.d.ts +2 -0
- package/lib/typescript/atoms/island/island.d.ts +1 -0
- package/lib/typescript/atoms/island/island.ios.d.ts +2 -0
- package/lib/typescript/atoms/island/island.types.d.ts +20 -0
- package/lib/typescript/atoms/list/index.d.ts +2 -0
- package/lib/typescript/atoms/list/list.d.ts +1 -0
- package/lib/typescript/atoms/list/list.ios.d.ts +2 -0
- package/lib/typescript/atoms/list/list.types.d.ts +11 -0
- package/lib/typescript/atoms/picker/index.d.ts +2 -0
- package/lib/typescript/atoms/picker/picker.d.ts +2 -0
- package/lib/typescript/atoms/picker/picker.types.d.ts +13 -0
- package/lib/typescript/atoms/pressable/index.d.ts +2 -0
- package/lib/typescript/atoms/pressable/pressable.d.ts +2 -0
- package/lib/typescript/atoms/pressable/pressable.types.d.ts +10 -0
- package/lib/typescript/atoms/progress/index.d.ts +2 -0
- package/lib/typescript/atoms/progress/progress.d.ts +1 -0
- package/lib/typescript/atoms/progress/progress.ios.d.ts +2 -0
- package/lib/typescript/atoms/progress/progress.types.d.ts +6 -0
- package/lib/typescript/atoms/rn-flat-list/index.d.ts +2 -0
- package/lib/typescript/atoms/rn-flat-list/rn-flat-list.d.ts +12 -0
- package/lib/typescript/atoms/rn-flat-list/rn-flat-list.types.d.ts +9 -0
- package/lib/typescript/atoms/rn-scroll-view/index.d.ts +2 -0
- package/lib/typescript/atoms/rn-scroll-view/rn-scroll-view.d.ts +2 -0
- package/lib/typescript/atoms/rn-scroll-view/rn-scroll-view.types.d.ts +19 -0
- package/lib/typescript/atoms/rn-section-list/index.d.ts +2 -0
- package/lib/typescript/atoms/rn-section-list/rn-section-list.d.ts +16 -0
- package/lib/typescript/atoms/rn-section-list/rn-section-list.types.d.ts +9 -0
- package/lib/typescript/atoms/rn-text/index.d.ts +2 -0
- package/lib/typescript/atoms/rn-text/rn-text.d.ts +2 -0
- package/lib/typescript/atoms/rn-text/rn-text.types.d.ts +9 -0
- package/lib/typescript/atoms/rn-view/index.d.ts +2 -0
- package/lib/typescript/atoms/rn-view/rn-view.d.ts +1 -0
- package/lib/typescript/atoms/rn-view/rn-view.ios.d.ts +2 -0
- package/lib/typescript/atoms/rn-view/rn-view.types.d.ts +19 -0
- package/lib/typescript/atoms/scroll-view/index.d.ts +2 -0
- package/lib/typescript/atoms/scroll-view/scroll-view.d.ts +1 -0
- package/lib/typescript/atoms/scroll-view/scroll-view.ios.d.ts +2 -0
- package/lib/typescript/atoms/scroll-view/scroll-view.types.d.ts +25 -0
- package/lib/typescript/atoms/segmented-control/index.d.ts +2 -0
- package/lib/typescript/atoms/segmented-control/segmented-control.d.ts +2 -0
- package/lib/typescript/atoms/segmented-control/segmented-control.types.d.ts +9 -0
- package/lib/typescript/atoms/skeleton/index.d.ts +2 -0
- package/lib/typescript/atoms/skeleton/skeleton.d.ts +2 -0
- package/lib/typescript/atoms/skeleton/skeleton.types.d.ts +9 -0
- package/lib/typescript/atoms/slider/index.d.ts +2 -0
- package/lib/typescript/atoms/slider/slider.d.ts +1 -0
- package/lib/typescript/atoms/slider/slider.ios.d.ts +2 -0
- package/lib/typescript/atoms/slider/slider.types.d.ts +10 -0
- package/lib/typescript/atoms/spacer/index.d.ts +2 -0
- package/lib/typescript/atoms/spacer/spacer.d.ts +1 -0
- package/lib/typescript/atoms/spacer/spacer.ios.d.ts +2 -0
- package/lib/typescript/atoms/spacer/spacer.types.d.ts +7 -0
- package/lib/typescript/atoms/surface/index.d.ts +2 -0
- package/lib/typescript/atoms/surface/surface.d.ts +1 -0
- package/lib/typescript/atoms/surface/surface.ios.d.ts +2 -0
- package/lib/typescript/atoms/surface/surface.types.d.ts +8 -0
- package/lib/typescript/atoms/switch/index.d.ts +2 -0
- package/lib/typescript/atoms/switch/switch.d.ts +1 -0
- package/lib/typescript/atoms/switch/switch.ios.d.ts +2 -0
- package/lib/typescript/atoms/switch/switch.types.d.ts +8 -0
- package/lib/typescript/atoms/text/index.d.ts +2 -0
- package/lib/typescript/atoms/text/text.d.ts +1 -0
- package/lib/typescript/atoms/text/text.ios.d.ts +2 -0
- package/lib/typescript/atoms/text/text.types.d.ts +16 -0
- package/lib/typescript/atoms/text-field/index.d.ts +2 -0
- package/lib/typescript/atoms/text-field/text-field.d.ts +1 -0
- package/lib/typescript/atoms/text-field/text-field.ios.d.ts +2 -0
- package/lib/typescript/atoms/text-field/text-field.types.d.ts +12 -0
- package/lib/typescript/atoms/v-stack/index.d.ts +2 -0
- package/lib/typescript/atoms/v-stack/v-stack.d.ts +1 -0
- package/lib/typescript/atoms/v-stack/v-stack.ios.d.ts +2 -0
- package/lib/typescript/atoms/v-stack/v-stack.types.d.ts +12 -0
- package/lib/typescript/atoms/z-stack/index.d.ts +2 -0
- package/lib/typescript/atoms/z-stack/z-stack.d.ts +1 -0
- package/lib/typescript/atoms/z-stack/z-stack.ios.d.ts +2 -0
- package/lib/typescript/atoms/z-stack/z-stack.types.d.ts +10 -0
- package/lib/typescript/host-context.d.ts +5 -0
- package/lib/typescript/index.d.ts +4 -0
- package/lib/typescript/molecules/collapsible/collapsible.d.ts +1 -0
- package/lib/typescript/molecules/collapsible/collapsible.ios.d.ts +2 -0
- package/lib/typescript/molecules/collapsible/collapsible.types.d.ts +8 -0
- package/lib/typescript/molecules/collapsible/index.d.ts +2 -0
- package/lib/typescript/molecules/empty-state/empty-state.d.ts +2 -0
- package/lib/typescript/molecules/empty-state/empty-state.types.d.ts +14 -0
- package/lib/typescript/molecules/empty-state/index.d.ts +2 -0
- package/lib/typescript/molecules/index.d.ts +14 -0
- package/lib/typescript/molecules/label/index.d.ts +2 -0
- package/lib/typescript/molecules/label/label.d.ts +2 -0
- package/lib/typescript/molecules/label/label.types.d.ts +16 -0
- package/lib/typescript/molecules/labeled-content/index.d.ts +2 -0
- package/lib/typescript/molecules/labeled-content/labeled-content.d.ts +2 -0
- package/lib/typescript/molecules/labeled-content/labeled-content.types.d.ts +15 -0
- package/lib/typescript/molecules/link/index.d.ts +2 -0
- package/lib/typescript/molecules/link/link.d.ts +2 -0
- package/lib/typescript/molecules/link/link.types.d.ts +13 -0
- package/lib/typescript/molecules/list-item/index.d.ts +2 -0
- package/lib/typescript/molecules/list-item/list-item.d.ts +2 -0
- package/lib/typescript/molecules/list-item/list-item.types.d.ts +10 -0
- package/lib/typescript/molecules/navigation-bar/index.d.ts +2 -0
- package/lib/typescript/molecules/navigation-bar/navigation-bar.d.ts +1 -0
- package/lib/typescript/molecules/navigation-bar/navigation-bar.ios.d.ts +2 -0
- package/lib/typescript/molecules/navigation-bar/navigation-bar.types.d.ts +24 -0
- package/lib/typescript/molecules/pager/index.d.ts +2 -0
- package/lib/typescript/molecules/pager/pager.d.ts +1 -0
- package/lib/typescript/molecules/pager/pager.ios.d.ts +2 -0
- package/lib/typescript/molecules/pager/pager.types.d.ts +32 -0
- package/lib/typescript/molecules/radio-group/index.d.ts +2 -0
- package/lib/typescript/molecules/radio-group/radio-group.d.ts +1 -0
- package/lib/typescript/molecules/radio-group/radio-group.ios.d.ts +2 -0
- package/lib/typescript/molecules/radio-group/radio-group.types.d.ts +11 -0
- package/lib/typescript/molecules/rn-tooltip/index.d.ts +2 -0
- package/lib/typescript/molecules/rn-tooltip/rn-tooltip.d.ts +1 -0
- package/lib/typescript/molecules/rn-tooltip/rn-tooltip.ios.d.ts +2 -0
- package/lib/typescript/molecules/rn-tooltip/rn-tooltip.types.d.ts +37 -0
- package/lib/typescript/molecules/scroll-edge-container/index.d.ts +3 -0
- package/lib/typescript/molecules/scroll-edge-container/scroll-edge-container.d.ts +1 -0
- package/lib/typescript/molecules/scroll-edge-container/scroll-edge-container.ios.d.ts +6 -0
- package/lib/typescript/molecules/scroll-edge-container/scroll-edge-container.types.d.ts +23 -0
- package/lib/typescript/molecules/search-bar/index.d.ts +2 -0
- package/lib/typescript/molecules/search-bar/search-bar.d.ts +2 -0
- package/lib/typescript/molecules/search-bar/search-bar.types.d.ts +8 -0
- package/lib/typescript/molecules/stepper/index.d.ts +2 -0
- package/lib/typescript/molecules/stepper/stepper.d.ts +1 -0
- package/lib/typescript/molecules/stepper/stepper.ios.d.ts +2 -0
- package/lib/typescript/molecules/stepper/stepper.types.d.ts +10 -0
- package/lib/typescript/molecules/tooltip/index.d.ts +2 -0
- package/lib/typescript/molecules/tooltip/tooltip.d.ts +1 -0
- package/lib/typescript/molecules/tooltip/tooltip.ios.d.ts +2 -0
- package/lib/typescript/molecules/tooltip/tooltip.types.d.ts +8 -0
- package/lib/typescript/organisms/action-sheet/action-sheet.d.ts +1 -0
- package/lib/typescript/organisms/action-sheet/action-sheet.ios.d.ts +2 -0
- package/lib/typescript/organisms/action-sheet/action-sheet.types.d.ts +9 -0
- package/lib/typescript/organisms/action-sheet/index.d.ts +2 -0
- package/lib/typescript/organisms/alert/alert.d.ts +1 -0
- package/lib/typescript/organisms/alert/alert.ios.d.ts +2 -0
- package/lib/typescript/organisms/alert/alert.types.d.ts +11 -0
- package/lib/typescript/organisms/alert/index.d.ts +2 -0
- package/lib/typescript/organisms/context-menu/context-menu.d.ts +1 -0
- package/lib/typescript/organisms/context-menu/context-menu.ios.d.ts +2 -0
- package/lib/typescript/organisms/context-menu/context-menu.types.d.ts +7 -0
- package/lib/typescript/organisms/context-menu/index.d.ts +2 -0
- package/lib/typescript/organisms/fab-menu/fab-menu.d.ts +1 -0
- package/lib/typescript/organisms/fab-menu/fab-menu.ios.d.ts +2 -0
- package/lib/typescript/organisms/fab-menu/fab-menu.types.d.ts +15 -0
- package/lib/typescript/organisms/fab-menu/index.d.ts +2 -0
- package/lib/typescript/organisms/form/form.d.ts +1 -0
- package/lib/typescript/organisms/form/form.ios.d.ts +2 -0
- package/lib/typescript/organisms/form/form.types.d.ts +13 -0
- package/lib/typescript/organisms/form/index.d.ts +2 -0
- package/lib/typescript/organisms/index.d.ts +10 -0
- package/lib/typescript/organisms/menu/index.d.ts +2 -0
- package/lib/typescript/organisms/menu/menu.d.ts +1 -0
- package/lib/typescript/organisms/menu/menu.ios.d.ts +2 -0
- package/lib/typescript/organisms/menu/menu.types.d.ts +13 -0
- package/lib/typescript/organisms/rn-context-menu/index.d.ts +2 -0
- package/lib/typescript/organisms/rn-context-menu/rn-context-menu.d.ts +1 -0
- package/lib/typescript/organisms/rn-context-menu/rn-context-menu.ios.d.ts +2 -0
- package/lib/typescript/organisms/rn-context-menu/rn-context-menu.types.d.ts +33 -0
- package/lib/typescript/organisms/sheet/index.d.ts +2 -0
- package/lib/typescript/organisms/sheet/sheet.d.ts +1 -0
- package/lib/typescript/organisms/sheet/sheet.ios.d.ts +2 -0
- package/lib/typescript/organisms/sheet/sheet.types.d.ts +8 -0
- package/lib/typescript/organisms/snackbar/index.d.ts +2 -0
- package/lib/typescript/organisms/snackbar/snackbar.d.ts +2 -0
- package/lib/typescript/organisms/snackbar/snackbar.types.d.ts +8 -0
- package/lib/typescript/organisms/swipe-actions/index.d.ts +2 -0
- package/lib/typescript/organisms/swipe-actions/swipe-actions.d.ts +1 -0
- package/lib/typescript/organisms/swipe-actions/swipe-actions.ios.d.ts +2 -0
- package/lib/typescript/organisms/swipe-actions/swipe-actions.types.d.ts +20 -0
- package/lib/typescript/platform-support.d.ts +8 -0
- package/lib/typescript/templates/index.d.ts +1 -0
- package/lib/typescript/templates/screen/index.d.ts +2 -0
- package/lib/typescript/templates/screen/screen.d.ts +1 -0
- package/lib/typescript/templates/screen/screen.ios.d.ts +2 -0
- package/lib/typescript/templates/screen/screen.types.d.ts +9 -0
- package/lib/typescript/use-refresh-state.d.ts +15 -0
- package/package.json +95 -3
- package/src/atoms/activity-indicator/activity-indicator.tsx +9 -0
- package/src/atoms/activity-indicator/index.ts +1 -0
- package/src/atoms/avatar/avatar.tsx +43 -0
- package/src/atoms/avatar/avatar.types.ts +13 -0
- package/src/atoms/avatar/index.ts +2 -0
- package/src/atoms/badge/badge-tokens.ts +10 -0
- package/src/atoms/badge/badge.android.tsx +17 -0
- package/src/atoms/badge/badge.ios.tsx +20 -0
- package/src/atoms/badge/badge.types.ts +10 -0
- package/src/atoms/badge/index.ts +3 -0
- package/src/atoms/box/a-box.ts +5 -0
- package/src/atoms/box/box.tsx +8 -0
- package/src/atoms/box/box.types.ts +6 -0
- package/src/atoms/box/index.ts +3 -0
- package/src/atoms/button/button-tokens.ts +35 -0
- package/src/atoms/button/button.android.tsx +36 -0
- package/src/atoms/button/button.ios.tsx +86 -0
- package/src/atoms/button/button.types.ts +42 -0
- package/src/atoms/button/index.ts +2 -0
- package/src/atoms/card/card.android.tsx +17 -0
- package/src/atoms/card/card.ios.tsx +15 -0
- package/src/atoms/card/card.types.ts +9 -0
- package/src/atoms/card/index.ts +2 -0
- package/src/atoms/checkbox/checkbox.android.tsx +24 -0
- package/src/atoms/checkbox/checkbox.ios.tsx +24 -0
- package/src/atoms/checkbox/checkbox.types.ts +10 -0
- package/src/atoms/checkbox/index.ts +2 -0
- package/src/atoms/chip/chip.tsx +23 -0
- package/src/atoms/chip/chip.types.ts +10 -0
- package/src/atoms/chip/index.ts +2 -0
- package/src/atoms/color-picker/color-picker.android.tsx +9 -0
- package/src/atoms/color-picker/color-picker.ios.tsx +24 -0
- package/src/atoms/color-picker/color-picker.types.ts +16 -0
- package/src/atoms/color-picker/index.ts +2 -0
- package/src/atoms/countdown/countdown-frame.tsx +123 -0
- package/src/atoms/countdown/countdown-units.ts +37 -0
- package/src/atoms/countdown/countdown.android.tsx +49 -0
- package/src/atoms/countdown/countdown.ios.tsx +46 -0
- package/src/atoms/countdown/countdown.types.ts +24 -0
- package/src/atoms/countdown/index.ts +2 -0
- package/src/atoms/date-picker/date-picker.tsx +26 -0
- package/src/atoms/date-picker/date-picker.types.ts +14 -0
- package/src/atoms/date-picker/index.ts +2 -0
- package/src/atoms/divider/divider.android.tsx +12 -0
- package/src/atoms/divider/divider.ios.tsx +15 -0
- package/src/atoms/divider/divider.types.ts +9 -0
- package/src/atoms/divider/index.ts +2 -0
- package/src/atoms/fab/fab.android.tsx +18 -0
- package/src/atoms/fab/fab.ios.tsx +27 -0
- package/src/atoms/fab/fab.types.ts +11 -0
- package/src/atoms/fab/index.ts +2 -0
- package/src/atoms/flash-list/flash-list.tsx +28 -0
- package/src/atoms/flash-list/flash-list.types.ts +20 -0
- package/src/atoms/flash-list/index.ts +2 -0
- package/src/atoms/glass-view/glass-fallback.tsx +9 -0
- package/src/atoms/glass-view/glass-view.android.tsx +5 -0
- package/src/atoms/glass-view/glass-view.ios.tsx +30 -0
- package/src/atoms/glass-view/glass-view.types.ts +20 -0
- package/src/atoms/glass-view/index.ts +3 -0
- package/src/atoms/h-stack/h-stack.android.tsx +39 -0
- package/src/atoms/h-stack/h-stack.ios.tsx +46 -0
- package/src/atoms/h-stack/h-stack.types.ts +15 -0
- package/src/atoms/h-stack/index.ts +2 -0
- package/src/atoms/icon/icon-names.ts +53 -0
- package/src/atoms/icon/icon.android.tsx +17 -0
- package/src/atoms/icon/icon.ios.tsx +15 -0
- package/src/atoms/icon/icon.types.ts +36 -0
- package/src/atoms/icon/index.ts +3 -0
- package/src/atoms/icon-button/icon-button.android.tsx +15 -0
- package/src/atoms/icon-button/icon-button.ios.tsx +27 -0
- package/src/atoms/icon-button/icon-button.types.ts +12 -0
- package/src/atoms/icon-button/index.ts +2 -0
- package/src/atoms/image/image.tsx +15 -0
- package/src/atoms/image/index.ts +1 -0
- package/src/atoms/index.ts +40 -0
- package/src/atoms/island/index.ts +2 -0
- package/src/atoms/island/island.android.tsx +24 -0
- package/src/atoms/island/island.ios.tsx +29 -0
- package/src/atoms/island/island.types.ts +22 -0
- package/src/atoms/list/index.ts +2 -0
- package/src/atoms/list/list.android.tsx +23 -0
- package/src/atoms/list/list.ios.tsx +18 -0
- package/src/atoms/list/list.types.ts +13 -0
- package/src/atoms/picker/index.ts +2 -0
- package/src/atoms/picker/picker.tsx +24 -0
- package/src/atoms/picker/picker.types.ts +16 -0
- package/src/atoms/pressable/index.ts +2 -0
- package/src/atoms/pressable/pressable.tsx +55 -0
- package/src/atoms/pressable/pressable.types.ts +12 -0
- package/src/atoms/progress/index.ts +2 -0
- package/src/atoms/progress/progress.android.tsx +17 -0
- package/src/atoms/progress/progress.ios.tsx +19 -0
- package/src/atoms/progress/progress.types.ts +8 -0
- package/src/atoms/rn-flat-list/index.ts +2 -0
- package/src/atoms/rn-flat-list/rn-flat-list.tsx +32 -0
- package/src/atoms/rn-flat-list/rn-flat-list.types.ts +11 -0
- package/src/atoms/rn-scroll-view/index.ts +2 -0
- package/src/atoms/rn-scroll-view/rn-scroll-view.tsx +32 -0
- package/src/atoms/rn-scroll-view/rn-scroll-view.types.ts +22 -0
- package/src/atoms/rn-section-list/index.ts +2 -0
- package/src/atoms/rn-section-list/rn-section-list.tsx +40 -0
- package/src/atoms/rn-section-list/rn-section-list.types.ts +11 -0
- package/src/atoms/rn-text/index.ts +2 -0
- package/src/atoms/rn-text/rn-text.tsx +33 -0
- package/src/atoms/rn-text/rn-text.types.ts +11 -0
- package/src/atoms/rn-view/index.ts +2 -0
- package/src/atoms/rn-view/rn-view.android.tsx +7 -0
- package/src/atoms/rn-view/rn-view.ios.tsx +7 -0
- package/src/atoms/rn-view/rn-view.types.ts +21 -0
- package/src/atoms/scroll-view/index.ts +2 -0
- package/src/atoms/scroll-view/scroll-view.android.tsx +62 -0
- package/src/atoms/scroll-view/scroll-view.ios.tsx +42 -0
- package/src/atoms/scroll-view/scroll-view.types.ts +28 -0
- package/src/atoms/segmented-control/index.ts +2 -0
- package/src/atoms/segmented-control/segmented-control.tsx +34 -0
- package/src/atoms/segmented-control/segmented-control.types.ts +11 -0
- package/src/atoms/skeleton/index.ts +2 -0
- package/src/atoms/skeleton/skeleton.tsx +28 -0
- package/src/atoms/skeleton/skeleton.types.ts +11 -0
- package/src/atoms/slider/index.ts +2 -0
- package/src/atoms/slider/slider.android.tsx +32 -0
- package/src/atoms/slider/slider.ios.tsx +33 -0
- package/src/atoms/slider/slider.types.ts +12 -0
- package/src/atoms/spacer/index.ts +2 -0
- package/src/atoms/spacer/spacer.android.tsx +18 -0
- package/src/atoms/spacer/spacer.ios.tsx +11 -0
- package/src/atoms/spacer/spacer.types.ts +9 -0
- package/src/atoms/surface/index.ts +2 -0
- package/src/atoms/surface/surface.android.tsx +26 -0
- package/src/atoms/surface/surface.ios.tsx +21 -0
- package/src/atoms/surface/surface.types.ts +10 -0
- package/src/atoms/switch/index.ts +2 -0
- package/src/atoms/switch/switch.android.tsx +24 -0
- package/src/atoms/switch/switch.ios.tsx +24 -0
- package/src/atoms/switch/switch.types.ts +10 -0
- package/src/atoms/text/index.ts +2 -0
- package/src/atoms/text/text.android.tsx +58 -0
- package/src/atoms/text/text.ios.tsx +76 -0
- package/src/atoms/text/text.types.ts +21 -0
- package/src/atoms/text-field/index.ts +2 -0
- package/src/atoms/text-field/text-field.android.tsx +47 -0
- package/src/atoms/text-field/text-field.ios.tsx +90 -0
- package/src/atoms/text-field/text-field.types.ts +14 -0
- package/src/atoms/v-stack/index.ts +2 -0
- package/src/atoms/v-stack/v-stack.android.tsx +39 -0
- package/src/atoms/v-stack/v-stack.ios.tsx +40 -0
- package/src/atoms/v-stack/v-stack.types.ts +15 -0
- package/src/atoms/z-stack/index.ts +2 -0
- package/src/atoms/z-stack/z-stack.android.tsx +27 -0
- package/src/atoms/z-stack/z-stack.ios.tsx +27 -0
- package/src/atoms/z-stack/z-stack.types.ts +13 -0
- package/src/host-context.tsx +17 -0
- package/src/index.ts +4 -0
- package/src/molecules/collapsible/collapsible.android.tsx +25 -0
- package/src/molecules/collapsible/collapsible.ios.tsx +14 -0
- package/src/molecules/collapsible/collapsible.types.ts +10 -0
- package/src/molecules/collapsible/index.ts +2 -0
- package/src/molecules/empty-state/empty-state.tsx +19 -0
- package/src/molecules/empty-state/empty-state.types.ts +16 -0
- package/src/molecules/empty-state/index.ts +2 -0
- package/src/molecules/index.ts +14 -0
- package/src/molecules/label/index.ts +2 -0
- package/src/molecules/label/label.tsx +20 -0
- package/src/molecules/label/label.types.ts +19 -0
- package/src/molecules/labeled-content/index.ts +2 -0
- package/src/molecules/labeled-content/labeled-content.tsx +28 -0
- package/src/molecules/labeled-content/labeled-content.types.ts +17 -0
- package/src/molecules/link/index.ts +2 -0
- package/src/molecules/link/link.tsx +28 -0
- package/src/molecules/link/link.types.ts +16 -0
- package/src/molecules/list-item/index.ts +2 -0
- package/src/molecules/list-item/list-item.tsx +22 -0
- package/src/molecules/list-item/list-item.types.ts +13 -0
- package/src/molecules/navigation-bar/index.ts +2 -0
- package/src/molecules/navigation-bar/navigation-bar.android.tsx +21 -0
- package/src/molecules/navigation-bar/navigation-bar.ios.tsx +33 -0
- package/src/molecules/navigation-bar/navigation-bar.types.ts +26 -0
- package/src/molecules/pager/index.ts +2 -0
- package/src/molecules/pager/pager.android.tsx +95 -0
- package/src/molecules/pager/pager.ios.tsx +43 -0
- package/src/molecules/pager/pager.types.ts +34 -0
- package/src/molecules/radio-group/index.ts +2 -0
- package/src/molecules/radio-group/radio-group.android.tsx +24 -0
- package/src/molecules/radio-group/radio-group.ios.tsx +23 -0
- package/src/molecules/radio-group/radio-group.types.ts +14 -0
- package/src/molecules/rn-tooltip/index.ts +2 -0
- package/src/molecules/rn-tooltip/rn-tooltip.android.tsx +95 -0
- package/src/molecules/rn-tooltip/rn-tooltip.ios.tsx +67 -0
- package/src/molecules/rn-tooltip/rn-tooltip.types.ts +39 -0
- package/src/molecules/scroll-edge-container/index.ts +3 -0
- package/src/molecules/scroll-edge-container/scroll-edge-container.android.tsx +22 -0
- package/src/molecules/scroll-edge-container/scroll-edge-container.ios.tsx +32 -0
- package/src/molecules/scroll-edge-container/scroll-edge-container.types.ts +26 -0
- package/src/molecules/search-bar/index.ts +2 -0
- package/src/molecules/search-bar/search-bar.tsx +49 -0
- package/src/molecules/search-bar/search-bar.types.ts +10 -0
- package/src/molecules/stepper/index.ts +2 -0
- package/src/molecules/stepper/stepper.android.tsx +31 -0
- package/src/molecules/stepper/stepper.ios.tsx +10 -0
- package/src/molecules/stepper/stepper.types.ts +12 -0
- package/src/molecules/tooltip/index.ts +2 -0
- package/src/molecules/tooltip/tooltip.android.tsx +25 -0
- package/src/molecules/tooltip/tooltip.ios.tsx +27 -0
- package/src/molecules/tooltip/tooltip.types.ts +10 -0
- package/src/organisms/action-sheet/action-sheet.android.tsx +35 -0
- package/src/organisms/action-sheet/action-sheet.ios.tsx +29 -0
- package/src/organisms/action-sheet/action-sheet.types.ts +12 -0
- package/src/organisms/action-sheet/index.ts +2 -0
- package/src/organisms/alert/alert.android.tsx +37 -0
- package/src/organisms/alert/alert.ios.tsx +45 -0
- package/src/organisms/alert/alert.types.ts +13 -0
- package/src/organisms/alert/index.ts +2 -0
- package/src/organisms/context-menu/context-menu.android.tsx +56 -0
- package/src/organisms/context-menu/context-menu.ios.tsx +24 -0
- package/src/organisms/context-menu/context-menu.types.ts +10 -0
- package/src/organisms/context-menu/index.ts +2 -0
- package/src/organisms/fab-menu/fab-menu.android.tsx +78 -0
- package/src/organisms/fab-menu/fab-menu.ios.tsx +43 -0
- package/src/organisms/fab-menu/fab-menu.types.ts +18 -0
- package/src/organisms/fab-menu/index.ts +2 -0
- package/src/organisms/form/form.android.tsx +33 -0
- package/src/organisms/form/form.ios.tsx +18 -0
- package/src/organisms/form/form.types.ts +16 -0
- package/src/organisms/form/index.ts +2 -0
- package/src/organisms/index.ts +10 -0
- package/src/organisms/menu/index.ts +2 -0
- package/src/organisms/menu/menu.android.tsx +62 -0
- package/src/organisms/menu/menu.ios.tsx +21 -0
- package/src/organisms/menu/menu.types.ts +17 -0
- package/src/organisms/rn-context-menu/index.ts +2 -0
- package/src/organisms/rn-context-menu/rn-context-menu.android.tsx +90 -0
- package/src/organisms/rn-context-menu/rn-context-menu.ios.tsx +47 -0
- package/src/organisms/rn-context-menu/rn-context-menu.types.ts +36 -0
- package/src/organisms/sheet/index.ts +2 -0
- package/src/organisms/sheet/sheet.android.tsx +25 -0
- package/src/organisms/sheet/sheet.ios.tsx +23 -0
- package/src/organisms/sheet/sheet.types.ts +10 -0
- package/src/organisms/snackbar/index.ts +2 -0
- package/src/organisms/snackbar/snackbar.tsx +42 -0
- package/src/organisms/snackbar/snackbar.types.ts +10 -0
- package/src/organisms/swipe-actions/index.ts +2 -0
- package/src/organisms/swipe-actions/swipe-actions.android.tsx +14 -0
- package/src/organisms/swipe-actions/swipe-actions.ios.tsx +18 -0
- package/src/organisms/swipe-actions/swipe-actions.types.ts +24 -0
- package/src/platform-support.ts +20 -0
- package/src/templates/index.ts +1 -0
- package/src/templates/screen/index.ts +2 -0
- package/src/templates/screen/screen.android.tsx +24 -0
- package/src/templates/screen/screen.ios.tsx +33 -0
- package/src/templates/screen/screen.types.ts +11 -0
- package/src/use-refresh-state.ts +34 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import {ScrollEdgeContainer as NativeScrollEdgeContainer} from '@hzblj/kara-native/swift-ui'
|
|
2
|
+
import {useSx} from '@hzblj/kara-sx'
|
|
3
|
+
import type {ScrollEdgeContainerComponent, ScrollEdgeContainerProps} from './scroll-edge-container.types'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Below iOS 26 the native container still lays the bars out as insets, just without the effect — so a bar wants a
|
|
7
|
+
* background of its own there; `isScrollEdgeEffectAvailable()` says which case applies.
|
|
8
|
+
*/
|
|
9
|
+
export const ScrollEdgeContainer: ScrollEdgeContainerComponent = ({
|
|
10
|
+
automaticInsets,
|
|
11
|
+
bottomBar,
|
|
12
|
+
children,
|
|
13
|
+
effect,
|
|
14
|
+
testID,
|
|
15
|
+
topBar,
|
|
16
|
+
...sx
|
|
17
|
+
}: ScrollEdgeContainerProps) => {
|
|
18
|
+
const style = useSx(sx)
|
|
19
|
+
|
|
20
|
+
return (
|
|
21
|
+
<NativeScrollEdgeContainer
|
|
22
|
+
automaticInsets={automaticInsets}
|
|
23
|
+
bottomBar={bottomBar}
|
|
24
|
+
effect={effect}
|
|
25
|
+
style={style}
|
|
26
|
+
testID={testID}
|
|
27
|
+
topBar={topBar}
|
|
28
|
+
>
|
|
29
|
+
{children}
|
|
30
|
+
</NativeScrollEdgeContainer>
|
|
31
|
+
)
|
|
32
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type {ScrollEdgeEffect, ScrollEdgeScrollableProps} from '@hzblj/kara-native/swift-ui'
|
|
2
|
+
import type {ResponsiveViewSx} from '@hzblj/kara-sx'
|
|
3
|
+
import type {ReactElement, ReactNode} from 'react'
|
|
4
|
+
|
|
5
|
+
export type {ScrollEdgeEffect, ScrollEdgeScrollableProps} from '@hzblj/kara-native/swift-ui'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Bars over one React Native scroll view, with the iOS 26 scroll edge effect under them — the system's progressive
|
|
9
|
+
* blur where content scrolls past a bar. The React Native tier: it needs no host.
|
|
10
|
+
*/
|
|
11
|
+
export type ScrollEdgeContainerProps = ResponsiveViewSx & {
|
|
12
|
+
/**
|
|
13
|
+
* iOS: adds the bars' heights to the scroll view's own `contentInset` and starts it at the top of that inset, so the
|
|
14
|
+
* content begins below the top bar and scrolls under it. On by default.
|
|
15
|
+
*/
|
|
16
|
+
automaticInsets?: boolean
|
|
17
|
+
bottomBar?: ReactNode
|
|
18
|
+
/** Exactly one React Native scroll view — `RnScrollView`, `RnFlatList`, `RnSectionList`. */
|
|
19
|
+
children: ReactElement<ScrollEdgeScrollableProps>
|
|
20
|
+
/** iOS 26: how hard the edge cuts. `soft` by default. */
|
|
21
|
+
effect?: ScrollEdgeEffect
|
|
22
|
+
testID?: string
|
|
23
|
+
topBar?: ReactNode
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export type ScrollEdgeContainerComponent = (props: ScrollEdgeContainerProps) => ReactNode
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import {spacing, useAppTheme} from '@hzblj/kara-theme'
|
|
2
|
+
import {TextInput} from 'react-native'
|
|
3
|
+
|
|
4
|
+
import {Box} from '../../atoms/box'
|
|
5
|
+
import {Icon} from '../../atoms/icon'
|
|
6
|
+
import {Island} from '../../atoms/island'
|
|
7
|
+
import {Pressable} from '../../atoms/pressable'
|
|
8
|
+
import type {SearchBarComponent, SearchBarProps} from './search-bar.types'
|
|
9
|
+
|
|
10
|
+
export const SearchBar: SearchBarComponent = ({
|
|
11
|
+
onChangeText,
|
|
12
|
+
placeholder = 'Search',
|
|
13
|
+
testID,
|
|
14
|
+
value,
|
|
15
|
+
}: SearchBarProps) => {
|
|
16
|
+
const theme = useAppTheme()
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<Box
|
|
20
|
+
align="center"
|
|
21
|
+
bg="fill.quaternary"
|
|
22
|
+
borderRadius="medium"
|
|
23
|
+
flexDirection="row"
|
|
24
|
+
gap="s8"
|
|
25
|
+
px="s12"
|
|
26
|
+
py="s8"
|
|
27
|
+
testID={testID}
|
|
28
|
+
wide
|
|
29
|
+
>
|
|
30
|
+
<Island style={{height: spacing.s20, width: spacing.s20}}>
|
|
31
|
+
<Icon color="content.tertiary" name="search" size="s20" />
|
|
32
|
+
</Island>
|
|
33
|
+
<TextInput
|
|
34
|
+
onChangeText={onChangeText}
|
|
35
|
+
placeholder={placeholder}
|
|
36
|
+
placeholderTextColor={theme.color('content.quaternary')}
|
|
37
|
+
style={[theme.typography.body, {color: theme.color('content.primary'), flex: 1, padding: 0}]}
|
|
38
|
+
value={value}
|
|
39
|
+
/>
|
|
40
|
+
{value.length > 0 ? (
|
|
41
|
+
<Pressable onPress={() => onChangeText?.('')}>
|
|
42
|
+
<Island style={{height: spacing.s20, width: spacing.s20}}>
|
|
43
|
+
<Icon color="content.tertiary" name="close" size="s20" />
|
|
44
|
+
</Island>
|
|
45
|
+
</Pressable>
|
|
46
|
+
) : null}
|
|
47
|
+
</Box>
|
|
48
|
+
)
|
|
49
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import {useCallback} from 'react'
|
|
2
|
+
import {HStack} from '../../atoms/h-stack'
|
|
3
|
+
import {IconButton} from '../../atoms/icon-button'
|
|
4
|
+
import {Spacer} from '../../atoms/spacer'
|
|
5
|
+
import {Text} from '../../atoms/text'
|
|
6
|
+
import {useHostGuard} from '../../host-context'
|
|
7
|
+
import type {StepperComponent, StepperProps} from './stepper.types'
|
|
8
|
+
|
|
9
|
+
export const Stepper: StepperComponent = ({
|
|
10
|
+
label,
|
|
11
|
+
max = Number.MAX_SAFE_INTEGER,
|
|
12
|
+
min = Number.MIN_SAFE_INTEGER,
|
|
13
|
+
onValueChange,
|
|
14
|
+
step = 1,
|
|
15
|
+
value,
|
|
16
|
+
}: StepperProps) => {
|
|
17
|
+
useHostGuard('Stepper')
|
|
18
|
+
|
|
19
|
+
const onDecrement = useCallback(() => onValueChange(Math.max(min, value - step)), [min, onValueChange, step, value])
|
|
20
|
+
const onIncrement = useCallback(() => onValueChange(Math.min(max, value + step)), [max, onValueChange, step, value])
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<HStack align="center" spacing="s8" wide>
|
|
24
|
+
<Text>{label}</Text>
|
|
25
|
+
<Spacer />
|
|
26
|
+
<IconButton disabled={value <= min} name="close" onPress={onDecrement} />
|
|
27
|
+
<Text variant="labelMedium">{String(value)}</Text>
|
|
28
|
+
<IconButton disabled={value >= max} name="add" onPress={onIncrement} />
|
|
29
|
+
</HStack>
|
|
30
|
+
)
|
|
31
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import {Stepper as SwiftUIStepper} from '@expo/ui/swift-ui'
|
|
2
|
+
|
|
3
|
+
import {useHostGuard} from '../../host-context'
|
|
4
|
+
import type {StepperComponent, StepperProps} from './stepper.types'
|
|
5
|
+
|
|
6
|
+
export const Stepper: StepperComponent = ({label, max, min, onValueChange, step = 1, value}: StepperProps) => {
|
|
7
|
+
useHostGuard('Stepper')
|
|
8
|
+
|
|
9
|
+
return <SwiftUIStepper label={label} max={max} min={min} onValueChange={onValueChange} step={step} value={value} />
|
|
10
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type {ReactNode} from 'react'
|
|
2
|
+
|
|
3
|
+
export type StepperProps = {
|
|
4
|
+
label: string
|
|
5
|
+
max?: number
|
|
6
|
+
min?: number
|
|
7
|
+
onValueChange: (value: number) => void
|
|
8
|
+
step?: number
|
|
9
|
+
value: number
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export type StepperComponent = (props: StepperProps) => ReactNode
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {Text as ComposeText, TooltipBox} from '@expo/ui/jetpack-compose'
|
|
2
|
+
import {useAppTheme} from '@hzblj/kara-theme'
|
|
3
|
+
|
|
4
|
+
import {useHostGuard} from '../../host-context'
|
|
5
|
+
import type {TooltipComponent, TooltipProps} from './tooltip.types'
|
|
6
|
+
|
|
7
|
+
export const Tooltip: TooltipComponent = ({children, text}: TooltipProps) => {
|
|
8
|
+
useHostGuard('Tooltip')
|
|
9
|
+
|
|
10
|
+
const theme = useAppTheme()
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<TooltipBox>
|
|
14
|
+
<TooltipBox.PlainTooltip
|
|
15
|
+
containerColor={theme.colorString('surface.high.contrast')}
|
|
16
|
+
contentColor={theme.colorString('content.on.high.contrast')}
|
|
17
|
+
>
|
|
18
|
+
<ComposeText color={theme.colorString('content.on.high.contrast')} style={theme.typography.footnote}>
|
|
19
|
+
{text}
|
|
20
|
+
</ComposeText>
|
|
21
|
+
</TooltipBox.PlainTooltip>
|
|
22
|
+
{children}
|
|
23
|
+
</TooltipBox>
|
|
24
|
+
)
|
|
25
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import {Popover} from '@expo/ui/swift-ui'
|
|
2
|
+
import {Text} from '../../atoms/text'
|
|
3
|
+
import {VStack} from '../../atoms/v-stack'
|
|
4
|
+
import {useHostGuard} from '../../host-context'
|
|
5
|
+
import type {TooltipComponent, TooltipProps} from './tooltip.types'
|
|
6
|
+
|
|
7
|
+
export const Tooltip: TooltipComponent = ({children, onDismiss, text, visible}: TooltipProps) => {
|
|
8
|
+
useHostGuard('Tooltip')
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<Popover
|
|
12
|
+
isPresented={visible}
|
|
13
|
+
onIsPresentedChange={next => {
|
|
14
|
+
if (!next) {
|
|
15
|
+
onDismiss()
|
|
16
|
+
}
|
|
17
|
+
}}
|
|
18
|
+
>
|
|
19
|
+
<Popover.Trigger>{children}</Popover.Trigger>
|
|
20
|
+
<Popover.Content>
|
|
21
|
+
<VStack p="s12">
|
|
22
|
+
<Text variant="footnote">{text}</Text>
|
|
23
|
+
</VStack>
|
|
24
|
+
</Popover.Content>
|
|
25
|
+
</Popover>
|
|
26
|
+
)
|
|
27
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import {Divider} from '../../atoms/divider'
|
|
2
|
+
import {HStack} from '../../atoms/h-stack'
|
|
3
|
+
import {Text} from '../../atoms/text'
|
|
4
|
+
import {VStack} from '../../atoms/v-stack'
|
|
5
|
+
import {useHostGuard} from '../../host-context'
|
|
6
|
+
import {Sheet} from '../sheet'
|
|
7
|
+
import type {ActionSheetComponent, ActionSheetProps} from './action-sheet.types'
|
|
8
|
+
|
|
9
|
+
export const ActionSheet: ActionSheetComponent = ({actions, onDismiss, title, visible}: ActionSheetProps) => {
|
|
10
|
+
useHostGuard('ActionSheet')
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<Sheet onDismiss={onDismiss} visible={visible}>
|
|
14
|
+
<VStack p="s16" spacing="s4" wide>
|
|
15
|
+
<Text color="content.secondary" variant="labelMedium">
|
|
16
|
+
{title}
|
|
17
|
+
</Text>
|
|
18
|
+
<Divider />
|
|
19
|
+
{actions.map(action => (
|
|
20
|
+
<HStack
|
|
21
|
+
key={action.label}
|
|
22
|
+
onPress={() => {
|
|
23
|
+
onDismiss()
|
|
24
|
+
action.onPress()
|
|
25
|
+
}}
|
|
26
|
+
py="s12"
|
|
27
|
+
wide
|
|
28
|
+
>
|
|
29
|
+
<Text color={action.destructive ? 'content.destructive' : 'content.primary'}>{action.label}</Text>
|
|
30
|
+
</HStack>
|
|
31
|
+
))}
|
|
32
|
+
</VStack>
|
|
33
|
+
</Sheet>
|
|
34
|
+
)
|
|
35
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import {Button, ConfirmationDialog} from '@expo/ui/swift-ui'
|
|
2
|
+
|
|
3
|
+
import {useHostGuard} from '../../host-context'
|
|
4
|
+
import type {ActionSheetComponent, ActionSheetProps} from './action-sheet.types'
|
|
5
|
+
|
|
6
|
+
export const ActionSheet: ActionSheetComponent = ({actions, onDismiss, title, visible}: ActionSheetProps) => {
|
|
7
|
+
useHostGuard('ActionSheet')
|
|
8
|
+
|
|
9
|
+
return (
|
|
10
|
+
<ConfirmationDialog
|
|
11
|
+
isPresented={visible}
|
|
12
|
+
onIsPresentedChange={next => {
|
|
13
|
+
if (!next) {
|
|
14
|
+
onDismiss()
|
|
15
|
+
}
|
|
16
|
+
}}
|
|
17
|
+
title={title}
|
|
18
|
+
>
|
|
19
|
+
{actions.map(action => (
|
|
20
|
+
<Button
|
|
21
|
+
key={action.label}
|
|
22
|
+
label={action.label}
|
|
23
|
+
onPress={action.onPress}
|
|
24
|
+
role={action.destructive ? 'destructive' : 'default'}
|
|
25
|
+
/>
|
|
26
|
+
))}
|
|
27
|
+
</ConfirmationDialog>
|
|
28
|
+
)
|
|
29
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type {ReactNode} from 'react'
|
|
2
|
+
|
|
3
|
+
import type {MenuAction} from '../menu'
|
|
4
|
+
|
|
5
|
+
export type ActionSheetProps = {
|
|
6
|
+
actions: MenuAction[]
|
|
7
|
+
onDismiss: () => void
|
|
8
|
+
title: string
|
|
9
|
+
visible: boolean
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export type ActionSheetComponent = (props: ActionSheetProps) => ReactNode
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import {AlertDialog, Button, Column, Text as ComposeText} from '@expo/ui/jetpack-compose'
|
|
2
|
+
import {useAppTheme} from '@hzblj/kara-theme'
|
|
3
|
+
|
|
4
|
+
import {useHostGuard} from '../../host-context'
|
|
5
|
+
import type {AlertComponent, AlertProps} from './alert.types'
|
|
6
|
+
|
|
7
|
+
export const Alert: AlertComponent = ({
|
|
8
|
+
confirmLabel = 'OK',
|
|
9
|
+
message,
|
|
10
|
+
onConfirm,
|
|
11
|
+
onDismiss,
|
|
12
|
+
title,
|
|
13
|
+
visible,
|
|
14
|
+
}: AlertProps) => {
|
|
15
|
+
useHostGuard('Alert')
|
|
16
|
+
const theme = useAppTheme()
|
|
17
|
+
|
|
18
|
+
if (!visible) {
|
|
19
|
+
return null
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<AlertDialog onDismissRequest={onDismiss}>
|
|
24
|
+
<Column verticalArrangement={{spacedBy: 8}}>
|
|
25
|
+
<ComposeText color={theme.colorString('content.primary')} style={theme.typography.headingXs}>
|
|
26
|
+
{title}
|
|
27
|
+
</ComposeText>
|
|
28
|
+
{message ? (
|
|
29
|
+
<ComposeText color={theme.colorString('content.secondary')} style={theme.typography.body}>
|
|
30
|
+
{message}
|
|
31
|
+
</ComposeText>
|
|
32
|
+
) : null}
|
|
33
|
+
<Button onClick={onConfirm ?? onDismiss}>{confirmLabel}</Button>
|
|
34
|
+
</Column>
|
|
35
|
+
</AlertDialog>
|
|
36
|
+
)
|
|
37
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import {Button, Alert as SwiftUIAlert, Text as SwiftUIText} from '@expo/ui/swift-ui'
|
|
2
|
+
|
|
3
|
+
import {useHostGuard} from '../../host-context'
|
|
4
|
+
import type {AlertComponent, AlertProps} from './alert.types'
|
|
5
|
+
|
|
6
|
+
export const Alert: AlertComponent = ({
|
|
7
|
+
confirmLabel = 'OK',
|
|
8
|
+
destructive = false,
|
|
9
|
+
message,
|
|
10
|
+
onConfirm,
|
|
11
|
+
onDismiss,
|
|
12
|
+
title,
|
|
13
|
+
visible,
|
|
14
|
+
}: AlertProps) => {
|
|
15
|
+
useHostGuard('Alert')
|
|
16
|
+
|
|
17
|
+
return (
|
|
18
|
+
<SwiftUIAlert
|
|
19
|
+
isPresented={visible}
|
|
20
|
+
onIsPresentedChange={next => {
|
|
21
|
+
if (!next) {
|
|
22
|
+
onDismiss()
|
|
23
|
+
}
|
|
24
|
+
}}
|
|
25
|
+
title={title}
|
|
26
|
+
>
|
|
27
|
+
<SwiftUIAlert.Actions>
|
|
28
|
+
<Button label={confirmLabel} onPress={onConfirm ?? onDismiss} role={destructive ? 'destructive' : 'default'} />
|
|
29
|
+
<Button label="Cancel" onPress={onDismiss} role="cancel" />
|
|
30
|
+
</SwiftUIAlert.Actions>
|
|
31
|
+
{/*
|
|
32
|
+
`Alert.Message` is a native slot view, and a SwiftUI host cannot render a bare string — it
|
|
33
|
+
becomes a `RawText` node with no component view and trips an assertion in
|
|
34
|
+
`RCTComponentViewFactory`. The alert mounts even while dismissed (`visible` only drives
|
|
35
|
+
`isPresented`), so an unwrapped string here crashes on mount, not on open. Plain SwiftUI
|
|
36
|
+
`Text` rather than the themed atom, so the message keeps system alert styling.
|
|
37
|
+
*/}
|
|
38
|
+
{message ? (
|
|
39
|
+
<SwiftUIAlert.Message>
|
|
40
|
+
<SwiftUIText>{message}</SwiftUIText>
|
|
41
|
+
</SwiftUIAlert.Message>
|
|
42
|
+
) : null}
|
|
43
|
+
</SwiftUIAlert>
|
|
44
|
+
)
|
|
45
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type {ReactNode} from 'react'
|
|
2
|
+
|
|
3
|
+
export type AlertProps = {
|
|
4
|
+
confirmLabel?: string
|
|
5
|
+
destructive?: boolean
|
|
6
|
+
message?: string
|
|
7
|
+
onConfirm?: () => void
|
|
8
|
+
onDismiss: () => void
|
|
9
|
+
title: string
|
|
10
|
+
visible: boolean
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type AlertComponent = (props: AlertProps) => ReactNode
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import {Column, Text as ComposeText, DropdownMenu} from '@expo/ui/jetpack-compose'
|
|
2
|
+
import {clickable, combinedClickable} from '@expo/ui/jetpack-compose/modifiers'
|
|
3
|
+
import {useAppTheme} from '@hzblj/kara-theme'
|
|
4
|
+
import {useCallback, useMemo, useState} from 'react'
|
|
5
|
+
|
|
6
|
+
import {useHostGuard} from '../../host-context'
|
|
7
|
+
import type {MenuAction} from '../menu'
|
|
8
|
+
import type {ContextMenuComponent, ContextMenuProps} from './context-menu.types'
|
|
9
|
+
|
|
10
|
+
type MenuItemProps = {
|
|
11
|
+
action: MenuAction
|
|
12
|
+
onDismiss: () => void
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/** A row's `clickable` closes over its own action, so memoising it needs a component per row. */
|
|
16
|
+
const MenuItem = ({action, onDismiss}: MenuItemProps) => {
|
|
17
|
+
const theme = useAppTheme()
|
|
18
|
+
const modifiers = useMemo(
|
|
19
|
+
() => [
|
|
20
|
+
clickable(() => {
|
|
21
|
+
onDismiss()
|
|
22
|
+
action.onPress()
|
|
23
|
+
}),
|
|
24
|
+
],
|
|
25
|
+
[action, onDismiss]
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
<ComposeText
|
|
30
|
+
color={theme.colorString(action.destructive ? 'content.destructive' : 'content.primary')}
|
|
31
|
+
modifiers={modifiers}
|
|
32
|
+
style={theme.typography.body}
|
|
33
|
+
>
|
|
34
|
+
{action.label}
|
|
35
|
+
</ComposeText>
|
|
36
|
+
)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export const ContextMenu: ContextMenuComponent = ({actions, children}: ContextMenuProps) => {
|
|
40
|
+
useHostGuard('ContextMenu')
|
|
41
|
+
|
|
42
|
+
const [expanded, setExpanded] = useState(false)
|
|
43
|
+
const dismiss = useCallback(() => setExpanded(false), [])
|
|
44
|
+
const triggerModifiers = useMemo(() => [combinedClickable({onLongClick: () => setExpanded(true)})], [])
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<Column>
|
|
48
|
+
<Column modifiers={triggerModifiers}>{children}</Column>
|
|
49
|
+
<DropdownMenu expanded={expanded} onDismissRequest={dismiss}>
|
|
50
|
+
{actions.map(action => (
|
|
51
|
+
<MenuItem action={action} key={action.label} onDismiss={dismiss} />
|
|
52
|
+
))}
|
|
53
|
+
</DropdownMenu>
|
|
54
|
+
</Column>
|
|
55
|
+
)
|
|
56
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import {Button, ContextMenu as SwiftUIContextMenu} from '@expo/ui/swift-ui'
|
|
2
|
+
|
|
3
|
+
import {useHostGuard} from '../../host-context'
|
|
4
|
+
import type {ContextMenuComponent, ContextMenuProps} from './context-menu.types'
|
|
5
|
+
|
|
6
|
+
export const ContextMenu: ContextMenuComponent = ({actions, children}: ContextMenuProps) => {
|
|
7
|
+
useHostGuard('ContextMenu')
|
|
8
|
+
|
|
9
|
+
return (
|
|
10
|
+
<SwiftUIContextMenu>
|
|
11
|
+
<SwiftUIContextMenu.Items>
|
|
12
|
+
{actions.map(action => (
|
|
13
|
+
<Button
|
|
14
|
+
key={action.label}
|
|
15
|
+
label={action.label}
|
|
16
|
+
onPress={action.onPress}
|
|
17
|
+
role={action.destructive ? 'destructive' : 'default'}
|
|
18
|
+
/>
|
|
19
|
+
))}
|
|
20
|
+
</SwiftUIContextMenu.Items>
|
|
21
|
+
<SwiftUIContextMenu.Trigger>{children}</SwiftUIContextMenu.Trigger>
|
|
22
|
+
</SwiftUIContextMenu>
|
|
23
|
+
)
|
|
24
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import {Text as ComposeText} from '@expo/ui/jetpack-compose'
|
|
2
|
+
import {
|
|
3
|
+
FloatingActionButtonMenu,
|
|
4
|
+
FloatingActionButtonMenuItem,
|
|
5
|
+
ToggleFloatingActionButton,
|
|
6
|
+
} from '@hzblj/kara-native/jetpack-compose'
|
|
7
|
+
import {useAppTheme} from '@hzblj/kara-theme'
|
|
8
|
+
import {useCallback, useState} from 'react'
|
|
9
|
+
import {Icon} from '../../atoms/icon'
|
|
10
|
+
import {useHostGuard} from '../../host-context'
|
|
11
|
+
import type {MenuAction} from '../menu'
|
|
12
|
+
import type {FabMenuComponent, FabMenuProps} from './fab-menu.types'
|
|
13
|
+
|
|
14
|
+
type FabMenuRowProps = {
|
|
15
|
+
action: MenuAction
|
|
16
|
+
onSelect: (action: MenuAction) => void
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** A row's `onClick` closes over its own action, so memoising it needs a component per row. */
|
|
20
|
+
const FabMenuRow = ({action, onSelect}: FabMenuRowProps) => {
|
|
21
|
+
const theme = useAppTheme()
|
|
22
|
+
const onClick = useCallback(() => onSelect(action), [action, onSelect])
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<FloatingActionButtonMenuItem
|
|
26
|
+
containerColor={theme.color('fill.accent.primary')}
|
|
27
|
+
contentColor={theme.color('content.on.bg')}
|
|
28
|
+
onClick={onClick}
|
|
29
|
+
>
|
|
30
|
+
{action.icon ? (
|
|
31
|
+
<FloatingActionButtonMenuItem.Icon>
|
|
32
|
+
<Icon color="content.on.bg" name={action.icon} />
|
|
33
|
+
</FloatingActionButtonMenuItem.Icon>
|
|
34
|
+
) : null}
|
|
35
|
+
<FloatingActionButtonMenuItem.Text>
|
|
36
|
+
<ComposeText color={theme.colorString('content.on.bg')} style={theme.typography.labelMedium}>
|
|
37
|
+
{action.label}
|
|
38
|
+
</ComposeText>
|
|
39
|
+
</FloatingActionButtonMenuItem.Text>
|
|
40
|
+
</FloatingActionButtonMenuItem>
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The menu fills its host and pins itself to the bottom end, so give it the corner of a screen — a `ZStack` over the
|
|
46
|
+
* content — rather than a row of its own. The pills take the button's colours, so the menu reads as the button
|
|
47
|
+
* unfolding rather than a second surface.
|
|
48
|
+
*/
|
|
49
|
+
export const FabMenu: FabMenuComponent = ({actions, icon = 'add'}: FabMenuProps) => {
|
|
50
|
+
useHostGuard('FabMenu')
|
|
51
|
+
|
|
52
|
+
const theme = useAppTheme()
|
|
53
|
+
const [expanded, setExpanded] = useState(false)
|
|
54
|
+
|
|
55
|
+
const onSelect = useCallback((action: MenuAction) => {
|
|
56
|
+
setExpanded(false)
|
|
57
|
+
action.onPress()
|
|
58
|
+
}, [])
|
|
59
|
+
|
|
60
|
+
return (
|
|
61
|
+
<FloatingActionButtonMenu expanded={expanded} horizontalAlignment="end">
|
|
62
|
+
<FloatingActionButtonMenu.Button>
|
|
63
|
+
<ToggleFloatingActionButton
|
|
64
|
+
checked={expanded}
|
|
65
|
+
containerColor={theme.color('fill.accent.primary')}
|
|
66
|
+
onCheckedChange={setExpanded}
|
|
67
|
+
>
|
|
68
|
+
<ToggleFloatingActionButton.Icon>
|
|
69
|
+
<Icon color="content.on.bg" name={icon} />
|
|
70
|
+
</ToggleFloatingActionButton.Icon>
|
|
71
|
+
</ToggleFloatingActionButton>
|
|
72
|
+
</FloatingActionButtonMenu.Button>
|
|
73
|
+
{actions.map(action => (
|
|
74
|
+
<FabMenuRow action={action} key={action.label} onSelect={onSelect} />
|
|
75
|
+
))}
|
|
76
|
+
</FloatingActionButtonMenu>
|
|
77
|
+
)
|
|
78
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import {Button, Menu} from '@expo/ui/swift-ui'
|
|
2
|
+
import type {SFSymbol} from 'sf-symbols-typescript'
|
|
3
|
+
|
|
4
|
+
import {Icon, SF_SYMBOLS} from '../../atoms/icon'
|
|
5
|
+
import {VStack} from '../../atoms/v-stack'
|
|
6
|
+
import {useHostGuard} from '../../host-context'
|
|
7
|
+
import type {FabMenuComponent, FabMenuProps} from './fab-menu.types'
|
|
8
|
+
|
|
9
|
+
/** Matches `Fab`, so a screen can switch between the two without the button changing shape. */
|
|
10
|
+
const FAB_SIZE = 56
|
|
11
|
+
|
|
12
|
+
export const FabMenu: FabMenuComponent = ({actions, icon = 'add', testID}: FabMenuProps) => {
|
|
13
|
+
useHostGuard('FabMenu')
|
|
14
|
+
|
|
15
|
+
return (
|
|
16
|
+
<Menu
|
|
17
|
+
label={
|
|
18
|
+
<VStack
|
|
19
|
+
align="center"
|
|
20
|
+
bg="fill.accent.primary"
|
|
21
|
+
borderRadius="full"
|
|
22
|
+
h={FAB_SIZE}
|
|
23
|
+
p="s16"
|
|
24
|
+
shadow="btn.accent"
|
|
25
|
+
w={FAB_SIZE}
|
|
26
|
+
>
|
|
27
|
+
<Icon color="content.on.bg" name={icon} />
|
|
28
|
+
</VStack>
|
|
29
|
+
}
|
|
30
|
+
testID={testID}
|
|
31
|
+
>
|
|
32
|
+
{actions.map(action => (
|
|
33
|
+
<Button
|
|
34
|
+
key={action.label}
|
|
35
|
+
label={action.label}
|
|
36
|
+
onPress={action.onPress}
|
|
37
|
+
role={action.destructive ? 'destructive' : 'default'}
|
|
38
|
+
systemImage={action.icon ? (SF_SYMBOLS[action.icon] as SFSymbol) : undefined}
|
|
39
|
+
/>
|
|
40
|
+
))}
|
|
41
|
+
</Menu>
|
|
42
|
+
)
|
|
43
|
+
}
|