@hzblj/kara-components 0.0.0-stage → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +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 +27 -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 +82 -0
- package/lib/module/atoms/button/button-tokens.js.map +1 -0
- package/lib/module/atoms/button/button.android.js +66 -0
- package/lib/module/atoms/button/button.android.js.map +1 -0
- package/lib/module/atoms/button/button.ios.js +89 -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 +47 -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/date-picker/date-picker.android.js +72 -0
- package/lib/module/atoms/date-picker/date-picker.android.js.map +1 -0
- package/lib/module/atoms/date-picker/date-picker.ios.js +25 -0
- package/lib/module/atoms/date-picker/date-picker.ios.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 +25 -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 +20 -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.android.js +24 -0
- package/lib/module/atoms/icon/icon.android.js.map +1 -0
- package/lib/module/atoms/icon/icon.ios.js +35 -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 +5 -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 +39 -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.android.js +87 -0
- package/lib/module/atoms/picker/picker.android.js.map +1 -0
- package/lib/module/atoms/picker/picker.ios.js +28 -0
- package/lib/module/atoms/picker/picker.ios.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-icon/index.js +5 -0
- package/lib/module/atoms/rn-icon/index.js.map +1 -0
- package/lib/module/atoms/rn-icon/rn-icon.android.js +29 -0
- package/lib/module/atoms/rn-icon/rn-icon.android.js.map +1 -0
- package/lib/module/atoms/rn-icon/rn-icon.ios.js +29 -0
- package/lib/module/atoms/rn-icon/rn-icon.ios.js.map +1 -0
- package/lib/module/atoms/rn-icon/rn-icon.types.js +4 -0
- package/lib/module/atoms/rn-icon/rn-icon.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 +66 -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 +46 -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/glyph/glyph-button.android.js +25 -0
- package/lib/module/glyph/glyph-button.android.js.map +1 -0
- package/lib/module/glyph/glyph-button.ios.js +33 -0
- package/lib/module/glyph/glyph-button.ios.js.map +1 -0
- package/lib/module/glyph/glyph-button.types.js +4 -0
- package/lib/module/glyph/glyph-button.types.js.map +1 -0
- package/lib/module/glyph/glyph.android.js +20 -0
- package/lib/module/glyph/glyph.android.js.map +1 -0
- package/lib/module/glyph/glyph.ios.js +24 -0
- package/lib/module/glyph/glyph.ios.js.map +1 -0
- package/lib/module/glyph/glyph.types.js +4 -0
- package/lib/module/glyph/glyph.types.js.map +1 -0
- package/lib/module/glyph/index.js +8 -0
- package/lib/module/glyph/index.js.map +1 -0
- package/lib/module/glyph/rn-glyph.android.js +25 -0
- package/lib/module/glyph/rn-glyph.android.js.map +1 -0
- package/lib/module/glyph/rn-glyph.ios.js +26 -0
- package/lib/module/glyph/rn-glyph.ios.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 +45 -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 +43 -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 +41 -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 +36 -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 +50 -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 +43 -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 +70 -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 +101 -0
- package/lib/module/organisms/context-menu/context-menu.android.js.map +1 -0
- package/lib/module/organisms/context-menu/context-menu.ios.js +44 -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 +77 -0
- package/lib/module/organisms/fab-menu/fab-menu.android.js.map +1 -0
- package/lib/module/organisms/fab-menu/fab-menu.ios.js +48 -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 +44 -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 +12 -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 +81 -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/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 +28 -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/date-picker/date-picker.d.ts +1 -0
- package/lib/typescript/atoms/date-picker/date-picker.ios.d.ts +3 -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 +6 -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.d.ts +1 -0
- package/lib/typescript/atoms/icon/icon.ios.d.ts +6 -0
- package/lib/typescript/atoms/icon/icon.types.d.ts +27 -0
- package/lib/typescript/atoms/icon/index.d.ts +2 -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 +20 -0
- package/lib/typescript/atoms/picker/index.d.ts +2 -0
- package/lib/typescript/atoms/picker/picker.d.ts +1 -0
- package/lib/typescript/atoms/picker/picker.ios.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-icon/index.d.ts +2 -0
- package/lib/typescript/atoms/rn-icon/rn-icon.d.ts +1 -0
- package/lib/typescript/atoms/rn-icon/rn-icon.ios.d.ts +3 -0
- package/lib/typescript/atoms/rn-icon/rn-icon.types.d.ts +5 -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/glyph/glyph-button.d.ts +1 -0
- package/lib/typescript/glyph/glyph-button.ios.d.ts +2 -0
- package/lib/typescript/glyph/glyph-button.types.d.ts +10 -0
- package/lib/typescript/glyph/glyph.d.ts +1 -0
- package/lib/typescript/glyph/glyph.ios.d.ts +3 -0
- package/lib/typescript/glyph/glyph.types.d.ts +13 -0
- package/lib/typescript/glyph/index.d.ts +5 -0
- package/lib/typescript/glyph/rn-glyph.d.ts +1 -0
- package/lib/typescript/glyph/rn-glyph.ios.d.ts +3 -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 +26 -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 +33 -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 +18 -0
- package/lib/typescript/organisms/form/index.d.ts +2 -0
- package/lib/typescript/organisms/index.d.ts +9 -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/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 +94 -4
- 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 +20 -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 +84 -0
- package/src/atoms/button/button.android.tsx +70 -0
- package/src/atoms/button/button.ios.tsx +89 -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 +41 -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/date-picker/date-picker.android.tsx +74 -0
- package/src/atoms/date-picker/date-picker.ios.tsx +27 -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 +21 -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 +12 -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.android.tsx +21 -0
- package/src/atoms/icon/icon.ios.tsx +35 -0
- package/src/atoms/icon/icon.types.ts +30 -0
- package/src/atoms/icon/index.ts +2 -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 +34 -0
- package/src/atoms/list/list.ios.tsx +18 -0
- package/src/atoms/list/list.types.ts +22 -0
- package/src/atoms/picker/index.ts +2 -0
- package/src/atoms/picker/picker.android.tsx +88 -0
- package/src/atoms/picker/picker.ios.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-icon/index.ts +2 -0
- package/src/atoms/rn-icon/rn-icon.android.tsx +28 -0
- package/src/atoms/rn-icon/rn-icon.ios.tsx +28 -0
- package/src/atoms/rn-icon/rn-icon.types.ts +8 -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 +50 -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 +45 -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/glyph/glyph-button.android.tsx +25 -0
- package/src/glyph/glyph-button.ios.tsx +37 -0
- package/src/glyph/glyph-button.types.ts +12 -0
- package/src/glyph/glyph.android.tsx +12 -0
- package/src/glyph/glyph.ios.tsx +15 -0
- package/src/glyph/glyph.types.ts +15 -0
- package/src/glyph/index.ts +5 -0
- package/src/glyph/rn-glyph.android.tsx +14 -0
- package/src/glyph/rn-glyph.ios.tsx +16 -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 +29 -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 +23 -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 +28 -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 +33 -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 +29 -0
- package/src/molecules/search-bar/index.ts +2 -0
- package/src/molecules/search-bar/search-bar.tsx +44 -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 +74 -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 +90 -0
- package/src/organisms/context-menu/context-menu.ios.tsx +46 -0
- package/src/organisms/context-menu/context-menu.types.ts +36 -0
- package/src/organisms/context-menu/index.ts +2 -0
- package/src/organisms/fab-menu/fab-menu.android.tsx +79 -0
- package/src/organisms/fab-menu/fab-menu.ios.tsx +44 -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 +21 -0
- package/src/organisms/form/index.ts +2 -0
- package/src/organisms/index.ts +9 -0
- package/src/organisms/menu/index.ts +2 -0
- package/src/organisms/menu/menu.android.tsx +68 -0
- package/src/organisms/menu/menu.ios.tsx +21 -0
- package/src/organisms/menu/menu.types.ts +17 -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,95 @@
|
|
|
1
|
+
import {HorizontalPager, type HorizontalPagerHandle} from '@expo/ui/jetpack-compose'
|
|
2
|
+
import {fillMaxSize, type ModifierConfig, testID as testIdModifier, weight} from '@expo/ui/jetpack-compose/modifiers'
|
|
3
|
+
import {spacing} from '@hzblj/kara-theme'
|
|
4
|
+
import {Children, useCallback, useEffect, useMemo, useRef, useState} from 'react'
|
|
5
|
+
|
|
6
|
+
import {HStack} from '../../atoms/h-stack'
|
|
7
|
+
import {VStack} from '../../atoms/v-stack'
|
|
8
|
+
import {useHostGuard} from '../../host-context'
|
|
9
|
+
import type {PagerComponent, PagerProps} from './pager.types'
|
|
10
|
+
|
|
11
|
+
const DOT_SIZE = 6
|
|
12
|
+
|
|
13
|
+
/** Compose ships no page indicator, so the dots are composed out of atoms. */
|
|
14
|
+
const PagerDots = ({count, current}: {count: number; current: number}) => (
|
|
15
|
+
<HStack align="center" py="s12" spacing="s6" wide>
|
|
16
|
+
{Array.from({length: count}, (_, index) => (
|
|
17
|
+
<VStack
|
|
18
|
+
bg={index === current ? 'content.primary' : 'fill.tertiary'}
|
|
19
|
+
borderRadius="full"
|
|
20
|
+
h={DOT_SIZE}
|
|
21
|
+
key={index}
|
|
22
|
+
w={DOT_SIZE}
|
|
23
|
+
/>
|
|
24
|
+
))}
|
|
25
|
+
</HStack>
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
export const Pager: PagerComponent = ({
|
|
29
|
+
children,
|
|
30
|
+
indicators = true,
|
|
31
|
+
onPageChange,
|
|
32
|
+
page,
|
|
33
|
+
pageSpacing,
|
|
34
|
+
scrollEnabled = true,
|
|
35
|
+
testID,
|
|
36
|
+
}: PagerProps) => {
|
|
37
|
+
useHostGuard('Pager')
|
|
38
|
+
|
|
39
|
+
const pagerRef = useRef<HorizontalPagerHandle>(null)
|
|
40
|
+
const settledPage = useRef(page ?? 0)
|
|
41
|
+
const [currentPage, setCurrentPage] = useState(page ?? 0)
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Compose reads `initialPage` only at mount, so a controlled `page` has to be driven through the
|
|
45
|
+
* ref. Guarded on the last settled page: without it, the `onSettledPageChange` this component just
|
|
46
|
+
* reported would come back as a fresh `page` and re-scroll to where the pager already is.
|
|
47
|
+
*/
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
if (page === undefined || page === settledPage.current) {
|
|
50
|
+
return
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
settledPage.current = page
|
|
54
|
+
void pagerRef.current?.animateScrollToPage(page)
|
|
55
|
+
}, [page])
|
|
56
|
+
|
|
57
|
+
const onSettledPageChange = useCallback(
|
|
58
|
+
(next: number) => {
|
|
59
|
+
settledPage.current = next
|
|
60
|
+
onPageChange?.(next)
|
|
61
|
+
},
|
|
62
|
+
[onPageChange]
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
// `weight` only means anything inside the Column the indicators add; standalone, the pager fills.
|
|
66
|
+
const modifiers = useMemo<ModifierConfig[]>(
|
|
67
|
+
() => [indicators ? weight(1) : fillMaxSize(), ...(testID ? [testIdModifier(testID)] : [])],
|
|
68
|
+
[indicators, testID]
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
const pager = (
|
|
72
|
+
<HorizontalPager
|
|
73
|
+
initialPage={page ?? 0}
|
|
74
|
+
modifiers={modifiers}
|
|
75
|
+
onCurrentPageChange={indicators ? setCurrentPage : undefined}
|
|
76
|
+
onSettledPageChange={onSettledPageChange}
|
|
77
|
+
pageSpacing={pageSpacing === undefined ? undefined : spacing[pageSpacing]}
|
|
78
|
+
ref={pagerRef}
|
|
79
|
+
userScrollEnabled={scrollEnabled}
|
|
80
|
+
>
|
|
81
|
+
{children}
|
|
82
|
+
</HorizontalPager>
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
if (!indicators) {
|
|
86
|
+
return pager
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return (
|
|
90
|
+
<VStack tall wide>
|
|
91
|
+
{pager}
|
|
92
|
+
<PagerDots count={Children.count(children)} current={currentPage} />
|
|
93
|
+
</VStack>
|
|
94
|
+
)
|
|
95
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import {TabView} from '@expo/ui/swift-ui'
|
|
2
|
+
import {type ModifierConfig, tabViewStyle} from '@expo/ui/swift-ui/modifiers'
|
|
3
|
+
import {Children, useCallback, useMemo} from 'react'
|
|
4
|
+
|
|
5
|
+
import {useHostGuard} from '../../host-context'
|
|
6
|
+
import type {PagerComponent, PagerProps} from './pager.types'
|
|
7
|
+
|
|
8
|
+
export const Pager: PagerComponent = ({children, indicators = true, onPageChange, page, testID}: PagerProps) => {
|
|
9
|
+
useHostGuard('Pager')
|
|
10
|
+
|
|
11
|
+
const modifiers = useMemo<ModifierConfig[]>(
|
|
12
|
+
() => [tabViewStyle({indexDisplayMode: indicators ? 'always' : 'never', type: 'page'})],
|
|
13
|
+
[indicators]
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
const onSelectionChange = useCallback((value: string) => onPageChange?.(Number(value)), [onPageChange])
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* A `TabView` identifies its pages by string, so each child's index stands in as its value. The
|
|
20
|
+
* component also demands at least one element, hence the guard below.
|
|
21
|
+
*/
|
|
22
|
+
const tabs = Children.toArray(children).map((child, index) => (
|
|
23
|
+
<TabView.Tab key={index} value={String(index)}>
|
|
24
|
+
{child}
|
|
25
|
+
</TabView.Tab>
|
|
26
|
+
))
|
|
27
|
+
|
|
28
|
+
if (tabs.length === 0) {
|
|
29
|
+
return null
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<TabView
|
|
34
|
+
defaultSelection="0"
|
|
35
|
+
modifiers={modifiers}
|
|
36
|
+
onSelectionChange={onSelectionChange}
|
|
37
|
+
selection={page === undefined ? undefined : String(page)}
|
|
38
|
+
testID={testID}
|
|
39
|
+
>
|
|
40
|
+
{tabs}
|
|
41
|
+
</TabView>
|
|
42
|
+
)
|
|
43
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type {SpaceSize} from '@hzblj/kara-theme'
|
|
2
|
+
import type {ReactNode} from 'react'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* A swipeable, snapping pager: SwiftUI's `TabView` in its page style, Compose's `HorizontalPager`.
|
|
6
|
+
*
|
|
7
|
+
* Pages are addressed by their index rather than by a name, because Compose's pager is index-native
|
|
8
|
+
* and SwiftUI's tab values are strings — synthesising the string from the child's position is
|
|
9
|
+
* lossless, whereas inventing indices for named tabs on Compose would not be. Children are therefore
|
|
10
|
+
* plain nodes with no `Pager.Page` part to wrap them in: a page carries no props of its own, so the
|
|
11
|
+
* ceremony would buy nothing.
|
|
12
|
+
*/
|
|
13
|
+
export type PagerProps = {
|
|
14
|
+
children?: ReactNode
|
|
15
|
+
/**
|
|
16
|
+
* Page dots. iOS draws SwiftUI's own, over the bottom edge; Compose has no built-in indicator, so
|
|
17
|
+
* Android composes the dots and places them below the pager, which is where Material puts them.
|
|
18
|
+
*/
|
|
19
|
+
indicators?: boolean
|
|
20
|
+
/** Fires once a swipe or a programmatic move has settled, never mid-gesture. */
|
|
21
|
+
onPageChange?: (page: number) => void
|
|
22
|
+
/** Zero-based. Controlled when passed; otherwise the pager just starts at 0 and owns its position. */
|
|
23
|
+
page?: number
|
|
24
|
+
/** Android only — a SwiftUI page-style `TabView` has no gap between pages. */
|
|
25
|
+
pageSpacing?: SpaceSize
|
|
26
|
+
/**
|
|
27
|
+
* Android only. SwiftUI can only disable a `TabView` as a whole, which would take the pages'
|
|
28
|
+
* content down with the swipe, so iOS always stays swipeable.
|
|
29
|
+
*/
|
|
30
|
+
scrollEnabled?: boolean
|
|
31
|
+
testID?: string
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export type PagerComponent = (props: PagerProps) => ReactNode
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import {Text as ComposeText, RadioButton, Row} from '@expo/ui/jetpack-compose'
|
|
2
|
+
import {clickable, fillMaxWidth} from '@expo/ui/jetpack-compose/modifiers'
|
|
3
|
+
import {useAppTheme} from '@hzblj/kara-theme'
|
|
4
|
+
import {VStack} from '../../atoms/v-stack'
|
|
5
|
+
import {useHostGuard} from '../../host-context'
|
|
6
|
+
import type {RadioGroupComponent, RadioGroupProps} from './radio-group.types'
|
|
7
|
+
|
|
8
|
+
export const RadioGroup: RadioGroupComponent = ({onValueChange, options, value}: RadioGroupProps) => {
|
|
9
|
+
useHostGuard('RadioGroup')
|
|
10
|
+
|
|
11
|
+
const theme = useAppTheme()
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<VStack spacing="s4" wide>
|
|
15
|
+
{options.map(option => (
|
|
16
|
+
<Row
|
|
17
|
+
key={option.value}
|
|
18
|
+
modifiers={[fillMaxWidth(), clickable(() => onValueChange?.(option.value))]}
|
|
19
|
+
verticalAlignment="center"
|
|
20
|
+
>
|
|
21
|
+
<RadioButton
|
|
22
|
+
colors={{selectedColor: theme.color('fill.accent.primary')}}
|
|
23
|
+
onClick={() => onValueChange?.(option.value)}
|
|
24
|
+
selected={option.value === value}
|
|
25
|
+
/>
|
|
26
|
+
<ComposeText color={theme.colorString('content.primary')} style={theme.typography.body}>
|
|
27
|
+
{option.label}
|
|
28
|
+
</ComposeText>
|
|
29
|
+
</Row>
|
|
30
|
+
))}
|
|
31
|
+
</VStack>
|
|
32
|
+
)
|
|
33
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {HStack} from '../../atoms/h-stack'
|
|
2
|
+
import {Spacer} from '../../atoms/spacer'
|
|
3
|
+
import {Text} from '../../atoms/text'
|
|
4
|
+
import {VStack} from '../../atoms/v-stack'
|
|
5
|
+
import {Glyph} from '../../glyph'
|
|
6
|
+
import {useHostGuard} from '../../host-context'
|
|
7
|
+
import type {RadioGroupComponent, RadioGroupProps} from './radio-group.types'
|
|
8
|
+
|
|
9
|
+
export const RadioGroup: RadioGroupComponent = ({onValueChange, options, value}: RadioGroupProps) => {
|
|
10
|
+
useHostGuard('RadioGroup')
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<VStack spacing="s4" wide>
|
|
14
|
+
{options.map(option => (
|
|
15
|
+
<HStack align="center" key={option.value} onPress={() => onValueChange?.(option.value)} py="s8" wide>
|
|
16
|
+
<Text>{option.label}</Text>
|
|
17
|
+
<Spacer />
|
|
18
|
+
{option.value === value ? <Glyph color="content.accent" name="check" size="s20" /> : null}
|
|
19
|
+
</HStack>
|
|
20
|
+
))}
|
|
21
|
+
</VStack>
|
|
22
|
+
)
|
|
23
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type {ReactNode} from 'react'
|
|
2
|
+
|
|
3
|
+
export type RadioOption = {
|
|
4
|
+
label: string
|
|
5
|
+
value: string
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export type RadioGroupProps = {
|
|
9
|
+
onValueChange?: (value: string) => void
|
|
10
|
+
options: RadioOption[]
|
|
11
|
+
value: string
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export type RadioGroupComponent = (props: RadioGroupProps) => ReactNode
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import {Text as ComposeText, Host, RNHostView, Row, TextButton} from '@expo/ui/jetpack-compose'
|
|
2
|
+
|
|
3
|
+
import {TooltipBox} from '@hzblj/kara-native/jetpack-compose'
|
|
4
|
+
import {useAppTheme} from '@hzblj/kara-theme'
|
|
5
|
+
import {Button} from '../../atoms/button'
|
|
6
|
+
import {HostBoundary} from '../../host-context'
|
|
7
|
+
import type {RnTooltipAction, RnTooltipComponent, RnTooltipProps} from './rn-tooltip.types'
|
|
8
|
+
|
|
9
|
+
/** Material's rich tooltip width, in dp. */
|
|
10
|
+
const MAX_WIDTH = 280
|
|
11
|
+
|
|
12
|
+
const ACTIONS_ARRANGEMENT = {spacedBy: 8}
|
|
13
|
+
|
|
14
|
+
const TooltipActionButton = ({action}: {action: RnTooltipAction}) => {
|
|
15
|
+
const theme = useAppTheme()
|
|
16
|
+
|
|
17
|
+
if (action.variant === 'primary' || action.variant === 'secondary') {
|
|
18
|
+
return (
|
|
19
|
+
<Button
|
|
20
|
+
label={action.label}
|
|
21
|
+
onPress={action.onPress}
|
|
22
|
+
variant={action.variant === 'primary' ? 'accent' : 'secondary'}
|
|
23
|
+
wide={false}
|
|
24
|
+
/>
|
|
25
|
+
)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
<TextButton onClick={action.onPress}>
|
|
30
|
+
<ComposeText color={theme.colorString('content.accent')} style={theme.typography.footnoteMedium}>
|
|
31
|
+
{action.label}
|
|
32
|
+
</ComposeText>
|
|
33
|
+
</TextButton>
|
|
34
|
+
)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Material 3's rich tooltip below the anchor, in its own host — so the anchor is a React Native view carried back in
|
|
39
|
+
* through `RNHostView`. Any touch outside asks for dismissal, the start of a scroll included; that is Material's
|
|
40
|
+
* behaviour, where iOS keeps the tooltip through a scroll.
|
|
41
|
+
*/
|
|
42
|
+
export const RnTooltip: RnTooltipComponent = ({
|
|
43
|
+
actions,
|
|
44
|
+
actionsAlignment = 'end',
|
|
45
|
+
boundaryInsets,
|
|
46
|
+
children,
|
|
47
|
+
message,
|
|
48
|
+
onDismiss,
|
|
49
|
+
onShown,
|
|
50
|
+
title,
|
|
51
|
+
visible,
|
|
52
|
+
}: RnTooltipProps) => {
|
|
53
|
+
const theme = useAppTheme()
|
|
54
|
+
|
|
55
|
+
return (
|
|
56
|
+
<Host colorScheme={theme.dark ? 'dark' : 'light'} matchContents seedColor={theme.materialSeed}>
|
|
57
|
+
<HostBoundary>
|
|
58
|
+
<TooltipBox
|
|
59
|
+
actionsAlignment={actionsAlignment}
|
|
60
|
+
boundaryInsets={boundaryInsets}
|
|
61
|
+
containerColor={theme.color('surface.primary')}
|
|
62
|
+
isPresented={visible}
|
|
63
|
+
maxWidth={MAX_WIDTH}
|
|
64
|
+
onDismissRequest={onDismiss}
|
|
65
|
+
onShown={onShown}
|
|
66
|
+
>
|
|
67
|
+
{title ? (
|
|
68
|
+
<TooltipBox.Title>
|
|
69
|
+
<ComposeText color={theme.colorString('content.primary')} style={theme.typography.subheadlineMedium}>
|
|
70
|
+
{title}
|
|
71
|
+
</ComposeText>
|
|
72
|
+
</TooltipBox.Title>
|
|
73
|
+
) : null}
|
|
74
|
+
{message ? (
|
|
75
|
+
<TooltipBox.Text>
|
|
76
|
+
<ComposeText color={theme.colorString('content.secondary')} style={theme.typography.footnote}>
|
|
77
|
+
{message}
|
|
78
|
+
</ComposeText>
|
|
79
|
+
</TooltipBox.Text>
|
|
80
|
+
) : null}
|
|
81
|
+
{actions?.length ? (
|
|
82
|
+
<TooltipBox.Action>
|
|
83
|
+
<Row horizontalArrangement={ACTIONS_ARRANGEMENT} verticalAlignment="center">
|
|
84
|
+
{actions.map(action => (
|
|
85
|
+
<TooltipActionButton action={action} key={action.label} />
|
|
86
|
+
))}
|
|
87
|
+
</Row>
|
|
88
|
+
</TooltipBox.Action>
|
|
89
|
+
) : null}
|
|
90
|
+
<RNHostView matchContents>{children}</RNHostView>
|
|
91
|
+
</TooltipBox>
|
|
92
|
+
</HostBoundary>
|
|
93
|
+
</Host>
|
|
94
|
+
)
|
|
95
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Tooltip as NativeTooltip,
|
|
3
|
+
type TooltipAction as NativeTooltipAction,
|
|
4
|
+
type TooltipTextStyle,
|
|
5
|
+
} from '@hzblj/kara-native/swift-ui'
|
|
6
|
+
import {type ResolvedTextStyle, resolvePaletteColor, useAppTheme} from '@hzblj/kara-theme'
|
|
7
|
+
import {useCallback, useMemo} from 'react'
|
|
8
|
+
import type {RnTooltipComponent, RnTooltipProps} from './rn-tooltip.types'
|
|
9
|
+
|
|
10
|
+
/** The bubble's width before it is narrowed to fit the window. */
|
|
11
|
+
const BUBBLE_WIDTH = 250
|
|
12
|
+
|
|
13
|
+
const textStyle = ({fontFamily, fontSize, lineHeight, weight}: ResolvedTextStyle): TooltipTextStyle => ({
|
|
14
|
+
fontFamily,
|
|
15
|
+
fontSize,
|
|
16
|
+
fontWeight: weight,
|
|
17
|
+
letterSpacing: 0,
|
|
18
|
+
lineHeight,
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
export const RnTooltip: RnTooltipComponent = ({
|
|
22
|
+
actions,
|
|
23
|
+
actionsAlignment = 'end',
|
|
24
|
+
boundaryInsets,
|
|
25
|
+
children,
|
|
26
|
+
message,
|
|
27
|
+
onDismiss,
|
|
28
|
+
onShown,
|
|
29
|
+
title,
|
|
30
|
+
visible,
|
|
31
|
+
}: RnTooltipProps) => {
|
|
32
|
+
const theme = useAppTheme()
|
|
33
|
+
|
|
34
|
+
const nativeActions = useMemo<NativeTooltipAction[]>(
|
|
35
|
+
() => (actions ?? []).map(({label, variant = 'link'}) => ({label, variant})),
|
|
36
|
+
[actions]
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
const onAction = useCallback((index: number) => actions?.[index]?.onPress(), [actions])
|
|
40
|
+
|
|
41
|
+
return (
|
|
42
|
+
<NativeTooltip
|
|
43
|
+
actions={nativeActions}
|
|
44
|
+
actionStyle={textStyle(theme.typography.footnoteMedium)}
|
|
45
|
+
actionsAlignment={actionsAlignment}
|
|
46
|
+
boundaryInsets={boundaryInsets}
|
|
47
|
+
bubbleColor={theme.color('surface.primary')}
|
|
48
|
+
isPresented={visible}
|
|
49
|
+
linkColor={theme.color('content.accent')}
|
|
50
|
+
message={message || undefined}
|
|
51
|
+
messageColor={theme.color('content.secondary')}
|
|
52
|
+
messageStyle={textStyle(theme.typography.footnote)}
|
|
53
|
+
onAction={onAction}
|
|
54
|
+
onDismissRequest={onDismiss}
|
|
55
|
+
onShown={onShown}
|
|
56
|
+
primaryTint={theme.color('fill.accent.primary')}
|
|
57
|
+
secondaryTint={theme.color('content.primary')}
|
|
58
|
+
shadowColor={resolvePaletteColor(theme, theme.shadow.snackbar.drop)}
|
|
59
|
+
title={title || undefined}
|
|
60
|
+
titleColor={theme.color('content.primary')}
|
|
61
|
+
titleStyle={textStyle(theme.typography.subheadlineMedium)}
|
|
62
|
+
width={BUBBLE_WIDTH}
|
|
63
|
+
>
|
|
64
|
+
{children}
|
|
65
|
+
</NativeTooltip>
|
|
66
|
+
)
|
|
67
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type {ReactElement, ReactNode} from 'react'
|
|
2
|
+
|
|
3
|
+
export type RnTooltipActionVariant = 'link' | 'primary' | 'secondary'
|
|
4
|
+
|
|
5
|
+
export type RnTooltipAction = {
|
|
6
|
+
label: string
|
|
7
|
+
onPress: () => void
|
|
8
|
+
/** `link` by default — an underlined text. `primary`/`secondary` are small filled/outlined buttons. */
|
|
9
|
+
variant?: RnTooltipActionVariant
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/** `outside`: a touch outside the bubble. `anchorHidden`: the anchor's centre left the visible area. */
|
|
13
|
+
export type RnTooltipDismissReason = 'anchorHidden' | 'outside'
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* A rich tooltip — title, message, actions — anchored below a React Native view, and drawn above every sibling.
|
|
17
|
+
* Controlled: it never hides itself. `onDismiss` reports why it should, and the caller turns `visible` off. The React
|
|
18
|
+
* Native tier, unlike `Tooltip`, whose anchor is a native view inside a host.
|
|
19
|
+
*/
|
|
20
|
+
export type RnTooltipProps = {
|
|
21
|
+
actions?: RnTooltipAction[]
|
|
22
|
+
/** Which end of the bubble the actions sit at. `end` by default. */
|
|
23
|
+
actionsAlignment?: 'end' | 'start'
|
|
24
|
+
/**
|
|
25
|
+
* Insets from the window's top and bottom that the anchor's centre must stay inside — a header or a tab bar over the
|
|
26
|
+
* content. Past them the tooltip asks to be dismissed with `anchorHidden`.
|
|
27
|
+
*/
|
|
28
|
+
boundaryInsets?: {bottom?: number; top?: number}
|
|
29
|
+
/** The anchor — a single React Native view. */
|
|
30
|
+
children: ReactElement
|
|
31
|
+
message?: string
|
|
32
|
+
onDismiss: (reason: RnTooltipDismissReason) => void
|
|
33
|
+
/** The appear animation finished. */
|
|
34
|
+
onShown?: () => void
|
|
35
|
+
title?: string
|
|
36
|
+
visible: boolean
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export type RnTooltipComponent = (props: RnTooltipProps) => ReactNode
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {Box} from '../../atoms/box'
|
|
2
|
+
import type {ScrollEdgeContainerComponent, ScrollEdgeContainerProps} from './scroll-edge-container.types'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Android has no scroll edge effect, and a React Native scroll view there has no `contentInset` to slide content under
|
|
6
|
+
* a bar with — so the bars stack above and below the scroll view instead of over it. Give them a background.
|
|
7
|
+
*/
|
|
8
|
+
export const ScrollEdgeContainer: ScrollEdgeContainerComponent = ({
|
|
9
|
+
automaticInsets: _automaticInsets,
|
|
10
|
+
bottomBar,
|
|
11
|
+
children,
|
|
12
|
+
effect: _effect,
|
|
13
|
+
testID,
|
|
14
|
+
topBar,
|
|
15
|
+
...sx
|
|
16
|
+
}: ScrollEdgeContainerProps) => (
|
|
17
|
+
<Box {...sx} testID={testID}>
|
|
18
|
+
{topBar}
|
|
19
|
+
<Box flex={1}>{children}</Box>
|
|
20
|
+
{bottomBar}
|
|
21
|
+
</Box>
|
|
22
|
+
)
|
|
@@ -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,29 @@
|
|
|
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
|
+
* A screen-level container: wrap the screen's scroll view with it. Mounted inside a cell of a virtualized list on iOS
|
|
12
|
+
* it draws only its bottom bar — the hosted scroll view and the top bar stay blank.
|
|
13
|
+
*/
|
|
14
|
+
export type ScrollEdgeContainerProps = ResponsiveViewSx & {
|
|
15
|
+
/**
|
|
16
|
+
* iOS: adds the bars' heights to the scroll view's own `contentInset` and starts it at the top of that inset, so the
|
|
17
|
+
* content begins below the top bar and scrolls under it. On by default.
|
|
18
|
+
*/
|
|
19
|
+
automaticInsets?: boolean
|
|
20
|
+
bottomBar?: ReactNode
|
|
21
|
+
/** Exactly one React Native scroll view — `RnScrollView`, `RnFlatList`, `RnSectionList`. */
|
|
22
|
+
children: ReactElement<ScrollEdgeScrollableProps>
|
|
23
|
+
/** iOS 26: how hard the edge cuts. `soft` by default. */
|
|
24
|
+
effect?: ScrollEdgeEffect
|
|
25
|
+
testID?: string
|
|
26
|
+
topBar?: ReactNode
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export type ScrollEdgeContainerComponent = (props: ScrollEdgeContainerProps) => ReactNode
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import {useAppTheme} from '@hzblj/kara-theme'
|
|
2
|
+
import {TextInput} from 'react-native'
|
|
3
|
+
|
|
4
|
+
import {Box} from '../../atoms/box'
|
|
5
|
+
import {Pressable} from '../../atoms/pressable'
|
|
6
|
+
import {RnGlyph} from '../../glyph'
|
|
7
|
+
import type {SearchBarComponent, SearchBarProps} from './search-bar.types'
|
|
8
|
+
|
|
9
|
+
export const SearchBar: SearchBarComponent = ({
|
|
10
|
+
onChangeText,
|
|
11
|
+
placeholder = 'Search',
|
|
12
|
+
testID,
|
|
13
|
+
value,
|
|
14
|
+
}: SearchBarProps) => {
|
|
15
|
+
const theme = useAppTheme()
|
|
16
|
+
|
|
17
|
+
return (
|
|
18
|
+
<Box
|
|
19
|
+
align="center"
|
|
20
|
+
bg="fill.quaternary"
|
|
21
|
+
borderRadius="medium"
|
|
22
|
+
flexDirection="row"
|
|
23
|
+
gap="s8"
|
|
24
|
+
px="s12"
|
|
25
|
+
py="s8"
|
|
26
|
+
testID={testID}
|
|
27
|
+
wide
|
|
28
|
+
>
|
|
29
|
+
<RnGlyph color="content.tertiary" name="search" size="s20" />
|
|
30
|
+
<TextInput
|
|
31
|
+
onChangeText={onChangeText}
|
|
32
|
+
placeholder={placeholder}
|
|
33
|
+
placeholderTextColor={theme.color('content.quaternary')}
|
|
34
|
+
style={[theme.typography.body, {color: theme.color('content.primary'), flex: 1, padding: 0}]}
|
|
35
|
+
value={value}
|
|
36
|
+
/>
|
|
37
|
+
{value.length > 0 ? (
|
|
38
|
+
<Pressable onPress={() => onChangeText?.('')}>
|
|
39
|
+
<RnGlyph color="content.tertiary" name="close" size="s20" />
|
|
40
|
+
</Pressable>
|
|
41
|
+
) : null}
|
|
42
|
+
</Box>
|
|
43
|
+
)
|
|
44
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import {useCallback} from 'react'
|
|
2
|
+
import {HStack} from '../../atoms/h-stack'
|
|
3
|
+
import {Spacer} from '../../atoms/spacer'
|
|
4
|
+
import {Text} from '../../atoms/text'
|
|
5
|
+
import {GlyphButton} from '../../glyph'
|
|
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
|
+
<GlyphButton accessibilityLabel="Decrement" disabled={value <= min} name="minus" onPress={onDecrement} />
|
|
27
|
+
<Text variant="labelMedium">{String(value)}</Text>
|
|
28
|
+
<GlyphButton accessibilityLabel="Increment" disabled={value >= max} name="plus" 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
|