orn-ui 0.2.9 → 0.3.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/AGENTS.md +67 -52
- package/README.md +5 -9
- package/lib/commonjs/atoms/Avatar.js +77 -5
- package/lib/commonjs/atoms/Avatar.js.map +1 -1
- package/lib/commonjs/atoms/Badge.js +17 -8
- package/lib/commonjs/atoms/Badge.js.map +1 -1
- package/lib/commonjs/atoms/Button.js +108 -39
- package/lib/commonjs/atoms/Button.js.map +1 -1
- package/lib/commonjs/atoms/Card.js +24 -2
- package/lib/commonjs/atoms/Card.js.map +1 -1
- package/lib/commonjs/atoms/Checkbox.js +41 -10
- package/lib/commonjs/atoms/Checkbox.js.map +1 -1
- package/lib/commonjs/atoms/Divider.js +30 -5
- package/lib/commonjs/atoms/Divider.js.map +1 -1
- package/lib/commonjs/atoms/EmptyState.js +58 -20
- package/lib/commonjs/atoms/EmptyState.js.map +1 -1
- package/lib/commonjs/atoms/Fab.js +32 -12
- package/lib/commonjs/atoms/Fab.js.map +1 -1
- package/lib/commonjs/atoms/Gradient.js +102 -36
- package/lib/commonjs/atoms/Gradient.js.map +1 -1
- package/lib/commonjs/atoms/IconButton.js +25 -4
- package/lib/commonjs/atoms/IconButton.js.map +1 -1
- package/lib/commonjs/atoms/Image.js +61 -25
- package/lib/commonjs/atoms/Image.js.map +1 -1
- package/lib/commonjs/atoms/Input.js +105 -17
- package/lib/commonjs/atoms/Input.js.map +1 -1
- package/lib/commonjs/atoms/KeyValueRow.js +37 -9
- package/lib/commonjs/atoms/KeyValueRow.js.map +1 -1
- package/lib/commonjs/atoms/PressableScale.js +25 -5
- package/lib/commonjs/atoms/PressableScale.js.map +1 -1
- package/lib/commonjs/atoms/ShinyText.js +29 -29
- package/lib/commonjs/atoms/Skeleton.js +28 -13
- package/lib/commonjs/atoms/Skeleton.js.map +1 -1
- package/lib/commonjs/atoms/Spinner.js +81 -22
- package/lib/commonjs/atoms/Spinner.js.map +1 -1
- package/lib/commonjs/atoms/Text.js +56 -5
- package/lib/commonjs/atoms/Text.js.map +1 -1
- package/lib/commonjs/atoms/Transition.js +46 -43
- package/lib/commonjs/atoms/Transition.js.map +1 -1
- package/lib/commonjs/atoms/index.js +6 -0
- package/lib/commonjs/atoms/index.js.map +1 -1
- package/lib/commonjs/atoms/inputValidation.js +56 -0
- package/lib/commonjs/atoms/inputValidation.js.map +1 -0
- package/lib/commonjs/icons/Icon.js +4 -4
- package/lib/commonjs/icons/defaultIcons.js +576 -24
- package/lib/commonjs/icons/defaultIcons.js.map +1 -1
- package/lib/commonjs/icons/index.js +6 -0
- package/lib/commonjs/icons/index.js.map +1 -1
- package/lib/commonjs/molecules/AvatarHeader.js +47 -14
- package/lib/commonjs/molecules/AvatarHeader.js.map +1 -1
- package/lib/commonjs/molecules/FormActions.js +25 -9
- package/lib/commonjs/molecules/FormActions.js.map +1 -1
- package/lib/commonjs/molecules/InfoRow.js +30 -14
- package/lib/commonjs/molecules/InfoRow.js.map +1 -1
- package/lib/commonjs/molecules/OptionCard.js +37 -22
- package/lib/commonjs/molecules/OptionCard.js.map +1 -1
- package/lib/commonjs/molecules/SegmentedControl.js +103 -14
- package/lib/commonjs/molecules/SegmentedControl.js.map +1 -1
- package/lib/commonjs/molecules/Stepper.js +61 -16
- package/lib/commonjs/molecules/Stepper.js.map +1 -1
- package/lib/commonjs/molecules/Steps.js +105 -41
- package/lib/commonjs/molecules/Steps.js.map +1 -1
- package/lib/commonjs/molecules/SymmetricGrid.js +26 -18
- package/lib/commonjs/molecules/SymmetricGrid.js.map +1 -1
- package/lib/commonjs/organisms/Alert.js +49 -35
- package/lib/commonjs/organisms/Alert.js.map +1 -1
- package/lib/commonjs/organisms/AlertProvider.js +10 -10
- package/lib/commonjs/organisms/BottomSheet.js +137 -85
- package/lib/commonjs/organisms/BottomSheet.js.map +1 -1
- package/lib/commonjs/organisms/Chart.js +197 -156
- package/lib/commonjs/organisms/Chart.js.map +1 -1
- package/lib/commonjs/organisms/DateField.js +36 -20
- package/lib/commonjs/organisms/DateField.js.map +1 -1
- package/lib/commonjs/organisms/DatePicker.js +56 -33
- package/lib/commonjs/organisms/DatePicker.js.map +1 -1
- package/lib/commonjs/organisms/List.js +62 -34
- package/lib/commonjs/organisms/List.js.map +1 -1
- package/lib/commonjs/organisms/Modal.js +120 -82
- package/lib/commonjs/organisms/Modal.js.map +1 -1
- package/lib/commonjs/organisms/NavigationBar.js +63 -24
- package/lib/commonjs/organisms/NavigationBar.js.map +1 -1
- package/lib/commonjs/organisms/OptionWheel.js +64 -64
- package/lib/commonjs/organisms/OptionWheel.js.map +1 -1
- package/lib/commonjs/organisms/ReorderableList.js +48 -27
- package/lib/commonjs/organisms/ReorderableList.js.map +1 -1
- package/lib/commonjs/organisms/Screen.js +68 -35
- package/lib/commonjs/organisms/Screen.js.map +1 -1
- package/lib/commonjs/organisms/SearchList.js +56 -26
- package/lib/commonjs/organisms/SearchList.js.map +1 -1
- package/lib/commonjs/organisms/Select.js +45 -24
- package/lib/commonjs/organisms/Select.js.map +1 -1
- package/lib/commonjs/organisms/Slides.js +36 -23
- package/lib/commonjs/organisms/Slides.js.map +1 -1
- package/lib/commonjs/organisms/ThemeToggle.js +10 -9
- package/lib/commonjs/organisms/ThemeToggle.js.map +1 -1
- package/lib/commonjs/organisms/Timeline.js +73 -56
- package/lib/commonjs/organisms/Timeline.js.map +1 -1
- package/lib/commonjs/organisms/Toast.js +46 -15
- package/lib/commonjs/organisms/Toast.js.map +1 -1
- package/lib/commonjs/organisms/ToastProvider.js +14 -10
- package/lib/commonjs/organisms/ToastProvider.js.map +1 -1
- package/lib/commonjs/organisms/Wizard.js +40 -15
- package/lib/commonjs/organisms/Wizard.js.map +1 -1
- package/lib/commonjs/organisms/chart/frame.js +25 -25
- package/lib/commonjs/organisms/chart/frame.js.map +1 -1
- package/lib/commonjs/organisms/chart/marks.js +42 -42
- package/lib/commonjs/organisms/chart/math.js +84 -85
- package/lib/commonjs/organisms/chart/math.js.map +1 -1
- package/lib/commonjs/organisms/chart/palette.js +28 -28
- package/lib/commonjs/organisms/imperativeBridge.js +5 -5
- package/lib/commonjs/organisms/imperativeBridge.js.map +1 -1
- package/lib/commonjs/organisms/useSlides.js +53 -21
- package/lib/commonjs/organisms/useSlides.js.map +1 -1
- package/lib/commonjs/safe-area/SafeAreaUIProvider.js +9 -66
- package/lib/commonjs/safe-area/SafeAreaUIProvider.js.map +1 -1
- package/lib/commonjs/safe-area/index.js.map +1 -1
- package/lib/commonjs/theme/KeyboardAvoidance.js +206 -0
- package/lib/commonjs/theme/KeyboardAvoidance.js.map +1 -0
- package/lib/commonjs/theme/NativeOverlay.js +263 -0
- package/lib/commonjs/theme/NativeOverlay.js.map +1 -0
- package/lib/commonjs/theme/UIProvider.js +86 -33
- package/lib/commonjs/theme/UIProvider.js.map +1 -1
- package/lib/commonjs/theme/colors.js +17 -17
- package/lib/commonjs/theme/colors.js.map +1 -1
- package/lib/commonjs/theme/createStyles.js +19 -16
- package/lib/commonjs/theme/createStyles.js.map +1 -1
- package/lib/commonjs/theme/createTheme.js +6 -6
- package/lib/commonjs/theme/index.js +6 -0
- package/lib/commonjs/theme/index.js.map +1 -1
- package/lib/commonjs/theme/insets.js +1 -1
- package/lib/commonjs/theme/labels.js +29 -1
- package/lib/commonjs/theme/labels.js.map +1 -1
- package/lib/commonjs/theme/palettes.js +25 -23
- package/lib/commonjs/theme/palettes.js.map +1 -1
- package/lib/commonjs/theme/tokens.js +28 -14
- package/lib/commonjs/theme/tokens.js.map +1 -1
- package/lib/commonjs/theme/useKeyboardField.js +36 -0
- package/lib/commonjs/theme/useKeyboardField.js.map +1 -0
- package/lib/commonjs/theme/useReduceMotion.js +31 -0
- package/lib/commonjs/theme/useReduceMotion.js.map +1 -0
- package/lib/module/atoms/Avatar.js +79 -8
- package/lib/module/atoms/Avatar.js.map +1 -1
- package/lib/module/atoms/Badge.js +17 -8
- package/lib/module/atoms/Badge.js.map +1 -1
- package/lib/module/atoms/Button.js +110 -41
- package/lib/module/atoms/Button.js.map +1 -1
- package/lib/module/atoms/Card.js +24 -2
- package/lib/module/atoms/Card.js.map +1 -1
- package/lib/module/atoms/Checkbox.js +42 -11
- package/lib/module/atoms/Checkbox.js.map +1 -1
- package/lib/module/atoms/Divider.js +31 -6
- package/lib/module/atoms/Divider.js.map +1 -1
- package/lib/module/atoms/EmptyState.js +58 -20
- package/lib/module/atoms/EmptyState.js.map +1 -1
- package/lib/module/atoms/Fab.js +33 -13
- package/lib/module/atoms/Fab.js.map +1 -1
- package/lib/module/atoms/Gradient.js +103 -37
- package/lib/module/atoms/Gradient.js.map +1 -1
- package/lib/module/atoms/IconButton.js +25 -4
- package/lib/module/atoms/IconButton.js.map +1 -1
- package/lib/module/atoms/Image.js +61 -25
- package/lib/module/atoms/Image.js.map +1 -1
- package/lib/module/atoms/Input.js +108 -20
- package/lib/module/atoms/Input.js.map +1 -1
- package/lib/module/atoms/KeyValueRow.js +37 -9
- package/lib/module/atoms/KeyValueRow.js.map +1 -1
- package/lib/module/atoms/PressableScale.js +25 -5
- package/lib/module/atoms/PressableScale.js.map +1 -1
- package/lib/module/atoms/ShinyText.js +29 -29
- package/lib/module/atoms/Skeleton.js +30 -13
- package/lib/module/atoms/Skeleton.js.map +1 -1
- package/lib/module/atoms/Spinner.js +82 -23
- package/lib/module/atoms/Spinner.js.map +1 -1
- package/lib/module/atoms/Text.js +56 -5
- package/lib/module/atoms/Text.js.map +1 -1
- package/lib/module/atoms/Transition.js +41 -42
- package/lib/module/atoms/Transition.js.map +1 -1
- package/lib/module/atoms/index.js +1 -1
- package/lib/module/atoms/index.js.map +1 -1
- package/lib/module/atoms/inputValidation.js +52 -0
- package/lib/module/atoms/inputValidation.js.map +1 -0
- package/lib/module/icons/Icon.js +4 -4
- package/lib/module/icons/defaultIcons.js +574 -24
- package/lib/module/icons/defaultIcons.js.map +1 -1
- package/lib/module/icons/index.js +1 -1
- package/lib/module/icons/index.js.map +1 -1
- package/lib/module/molecules/AvatarHeader.js +47 -14
- package/lib/module/molecules/AvatarHeader.js.map +1 -1
- package/lib/module/molecules/FormActions.js +25 -9
- package/lib/module/molecules/FormActions.js.map +1 -1
- package/lib/module/molecules/InfoRow.js +30 -14
- package/lib/module/molecules/InfoRow.js.map +1 -1
- package/lib/module/molecules/OptionCard.js +37 -22
- package/lib/module/molecules/OptionCard.js.map +1 -1
- package/lib/module/molecules/SegmentedControl.js +107 -18
- package/lib/module/molecules/SegmentedControl.js.map +1 -1
- package/lib/module/molecules/Stepper.js +63 -18
- package/lib/module/molecules/Stepper.js.map +1 -1
- package/lib/module/molecules/Steps.js +107 -43
- package/lib/module/molecules/Steps.js.map +1 -1
- package/lib/module/molecules/SymmetricGrid.js +26 -18
- package/lib/module/molecules/SymmetricGrid.js.map +1 -1
- package/lib/module/organisms/Alert.js +51 -37
- package/lib/module/organisms/Alert.js.map +1 -1
- package/lib/module/organisms/AlertProvider.js +10 -10
- package/lib/module/organisms/BottomSheet.js +142 -88
- package/lib/module/organisms/BottomSheet.js.map +1 -1
- package/lib/module/organisms/Chart.js +199 -158
- package/lib/module/organisms/Chart.js.map +1 -1
- package/lib/module/organisms/DateField.js +36 -20
- package/lib/module/organisms/DateField.js.map +1 -1
- package/lib/module/organisms/DatePicker.js +56 -33
- package/lib/module/organisms/DatePicker.js.map +1 -1
- package/lib/module/organisms/List.js +62 -34
- package/lib/module/organisms/List.js.map +1 -1
- package/lib/module/organisms/Modal.js +122 -84
- package/lib/module/organisms/Modal.js.map +1 -1
- package/lib/module/organisms/NavigationBar.js +64 -25
- package/lib/module/organisms/NavigationBar.js.map +1 -1
- package/lib/module/organisms/OptionWheel.js +64 -64
- package/lib/module/organisms/OptionWheel.js.map +1 -1
- package/lib/module/organisms/ReorderableList.js +48 -27
- package/lib/module/organisms/ReorderableList.js.map +1 -1
- package/lib/module/organisms/Screen.js +70 -37
- package/lib/module/organisms/Screen.js.map +1 -1
- package/lib/module/organisms/SearchList.js +56 -26
- package/lib/module/organisms/SearchList.js.map +1 -1
- package/lib/module/organisms/Select.js +46 -25
- package/lib/module/organisms/Select.js.map +1 -1
- package/lib/module/organisms/Slides.js +37 -24
- package/lib/module/organisms/Slides.js.map +1 -1
- package/lib/module/organisms/ThemeToggle.js +11 -10
- package/lib/module/organisms/ThemeToggle.js.map +1 -1
- package/lib/module/organisms/Timeline.js +73 -56
- package/lib/module/organisms/Timeline.js.map +1 -1
- package/lib/module/organisms/Toast.js +47 -16
- package/lib/module/organisms/Toast.js.map +1 -1
- package/lib/module/organisms/ToastProvider.js +15 -11
- package/lib/module/organisms/ToastProvider.js.map +1 -1
- package/lib/module/organisms/Wizard.js +41 -16
- package/lib/module/organisms/Wizard.js.map +1 -1
- package/lib/module/organisms/chart/frame.js +25 -25
- package/lib/module/organisms/chart/frame.js.map +1 -1
- package/lib/module/organisms/chart/marks.js +42 -42
- package/lib/module/organisms/chart/math.js +84 -85
- package/lib/module/organisms/chart/math.js.map +1 -1
- package/lib/module/organisms/chart/palette.js +28 -28
- package/lib/module/organisms/imperativeBridge.js +5 -5
- package/lib/module/organisms/imperativeBridge.js.map +1 -1
- package/lib/module/organisms/useSlides.js +53 -21
- package/lib/module/organisms/useSlides.js.map +1 -1
- package/lib/module/safe-area/SafeAreaUIProvider.js +10 -65
- package/lib/module/safe-area/SafeAreaUIProvider.js.map +1 -1
- package/lib/module/safe-area/index.js +1 -0
- package/lib/module/safe-area/index.js.map +1 -1
- package/lib/module/theme/KeyboardAvoidance.js +198 -0
- package/lib/module/theme/KeyboardAvoidance.js.map +1 -0
- package/lib/module/theme/NativeOverlay.js +257 -0
- package/lib/module/theme/NativeOverlay.js.map +1 -0
- package/lib/module/theme/UIProvider.js +88 -35
- package/lib/module/theme/UIProvider.js.map +1 -1
- package/lib/module/theme/colors.js +17 -17
- package/lib/module/theme/colors.js.map +1 -1
- package/lib/module/theme/createStyles.js +20 -16
- package/lib/module/theme/createStyles.js.map +1 -1
- package/lib/module/theme/createTheme.js +6 -6
- package/lib/module/theme/index.js +1 -1
- package/lib/module/theme/index.js.map +1 -1
- package/lib/module/theme/insets.js +1 -1
- package/lib/module/theme/labels.js +29 -1
- package/lib/module/theme/labels.js.map +1 -1
- package/lib/module/theme/palettes.js +25 -23
- package/lib/module/theme/palettes.js.map +1 -1
- package/lib/module/theme/tokens.js +27 -13
- package/lib/module/theme/tokens.js.map +1 -1
- package/lib/module/theme/useKeyboardField.js +33 -0
- package/lib/module/theme/useKeyboardField.js.map +1 -0
- package/lib/module/theme/useReduceMotion.js +28 -0
- package/lib/module/theme/useReduceMotion.js.map +1 -0
- package/lib/typescript/atoms/Avatar.d.ts +35 -5
- package/lib/typescript/atoms/Avatar.d.ts.map +1 -1
- package/lib/typescript/atoms/Badge.d.ts +14 -3
- package/lib/typescript/atoms/Badge.d.ts.map +1 -1
- package/lib/typescript/atoms/Button.d.ts +34 -3
- package/lib/typescript/atoms/Button.d.ts.map +1 -1
- package/lib/typescript/atoms/Card.d.ts +13 -2
- package/lib/typescript/atoms/Card.d.ts.map +1 -1
- package/lib/typescript/atoms/Checkbox.d.ts +26 -1
- package/lib/typescript/atoms/Checkbox.d.ts.map +1 -1
- package/lib/typescript/atoms/Divider.d.ts +18 -1
- package/lib/typescript/atoms/Divider.d.ts.map +1 -1
- package/lib/typescript/atoms/EmptyState.d.ts +30 -3
- package/lib/typescript/atoms/EmptyState.d.ts.map +1 -1
- package/lib/typescript/atoms/Fab.d.ts +24 -4
- package/lib/typescript/atoms/Fab.d.ts.map +1 -1
- package/lib/typescript/atoms/Gradient.d.ts +21 -15
- package/lib/typescript/atoms/Gradient.d.ts.map +1 -1
- package/lib/typescript/atoms/IconButton.d.ts +18 -4
- package/lib/typescript/atoms/IconButton.d.ts.map +1 -1
- package/lib/typescript/atoms/Image.d.ts +39 -17
- package/lib/typescript/atoms/Image.d.ts.map +1 -1
- package/lib/typescript/atoms/Input.d.ts +57 -7
- package/lib/typescript/atoms/Input.d.ts.map +1 -1
- package/lib/typescript/atoms/KeyValueRow.d.ts +16 -4
- package/lib/typescript/atoms/KeyValueRow.d.ts.map +1 -1
- package/lib/typescript/atoms/PressableScale.d.ts +12 -5
- package/lib/typescript/atoms/PressableScale.d.ts.map +1 -1
- package/lib/typescript/atoms/ShinyText.d.ts +17 -17
- package/lib/typescript/atoms/ShinyText.d.ts.map +1 -1
- package/lib/typescript/atoms/Skeleton.d.ts +12 -7
- package/lib/typescript/atoms/Skeleton.d.ts.map +1 -1
- package/lib/typescript/atoms/Spinner.d.ts +29 -1
- package/lib/typescript/atoms/Spinner.d.ts.map +1 -1
- package/lib/typescript/atoms/Text.d.ts +46 -0
- package/lib/typescript/atoms/Text.d.ts.map +1 -1
- package/lib/typescript/atoms/Transition.d.ts +19 -15
- package/lib/typescript/atoms/Transition.d.ts.map +1 -1
- package/lib/typescript/atoms/index.d.ts +3 -3
- package/lib/typescript/atoms/index.d.ts.map +1 -1
- package/lib/typescript/atoms/inputValidation.d.ts +29 -0
- package/lib/typescript/atoms/inputValidation.d.ts.map +1 -0
- package/lib/typescript/icons/Icon.d.ts +4 -4
- package/lib/typescript/icons/defaultIcons.d.ts +19 -2
- package/lib/typescript/icons/defaultIcons.d.ts.map +1 -1
- package/lib/typescript/icons/index.d.ts +2 -2
- package/lib/typescript/icons/index.d.ts.map +1 -1
- package/lib/typescript/icons/types.d.ts +13 -3
- package/lib/typescript/icons/types.d.ts.map +1 -1
- package/lib/typescript/molecules/AvatarHeader.d.ts +23 -4
- package/lib/typescript/molecules/AvatarHeader.d.ts.map +1 -1
- package/lib/typescript/molecules/FormActions.d.ts +21 -4
- package/lib/typescript/molecules/FormActions.d.ts.map +1 -1
- package/lib/typescript/molecules/InfoRow.d.ts +17 -3
- package/lib/typescript/molecules/InfoRow.d.ts.map +1 -1
- package/lib/typescript/molecules/OptionCard.d.ts +20 -5
- package/lib/typescript/molecules/OptionCard.d.ts.map +1 -1
- package/lib/typescript/molecules/SegmentedControl.d.ts +18 -2
- package/lib/typescript/molecules/SegmentedControl.d.ts.map +1 -1
- package/lib/typescript/molecules/Stepper.d.ts +23 -7
- package/lib/typescript/molecules/Stepper.d.ts.map +1 -1
- package/lib/typescript/molecules/Steps.d.ts +18 -4
- package/lib/typescript/molecules/Steps.d.ts.map +1 -1
- package/lib/typescript/molecules/SymmetricGrid.d.ts +15 -5
- package/lib/typescript/molecules/SymmetricGrid.d.ts.map +1 -1
- package/lib/typescript/organisms/Alert.d.ts +28 -2
- package/lib/typescript/organisms/Alert.d.ts.map +1 -1
- package/lib/typescript/organisms/AlertProvider.d.ts +10 -10
- package/lib/typescript/organisms/AlertProvider.d.ts.map +1 -1
- package/lib/typescript/organisms/BottomSheet.d.ts +20 -5
- package/lib/typescript/organisms/BottomSheet.d.ts.map +1 -1
- package/lib/typescript/organisms/Chart.d.ts +86 -75
- package/lib/typescript/organisms/Chart.d.ts.map +1 -1
- package/lib/typescript/organisms/DateField.d.ts +17 -3
- package/lib/typescript/organisms/DateField.d.ts.map +1 -1
- package/lib/typescript/organisms/DatePicker.d.ts +7 -11
- package/lib/typescript/organisms/DatePicker.d.ts.map +1 -1
- package/lib/typescript/organisms/List.d.ts +30 -3
- package/lib/typescript/organisms/List.d.ts.map +1 -1
- package/lib/typescript/organisms/Modal.d.ts +30 -3
- package/lib/typescript/organisms/Modal.d.ts.map +1 -1
- package/lib/typescript/organisms/NavigationBar.d.ts +26 -7
- package/lib/typescript/organisms/NavigationBar.d.ts.map +1 -1
- package/lib/typescript/organisms/OptionWheel.d.ts +20 -16
- package/lib/typescript/organisms/OptionWheel.d.ts.map +1 -1
- package/lib/typescript/organisms/ReorderableList.d.ts +20 -11
- package/lib/typescript/organisms/ReorderableList.d.ts.map +1 -1
- package/lib/typescript/organisms/Screen.d.ts +27 -8
- package/lib/typescript/organisms/Screen.d.ts.map +1 -1
- package/lib/typescript/organisms/SearchList.d.ts +46 -3
- package/lib/typescript/organisms/SearchList.d.ts.map +1 -1
- package/lib/typescript/organisms/Select.d.ts +26 -6
- package/lib/typescript/organisms/Select.d.ts.map +1 -1
- package/lib/typescript/organisms/Slides.d.ts +44 -26
- package/lib/typescript/organisms/Slides.d.ts.map +1 -1
- package/lib/typescript/organisms/ThemeToggle.d.ts +6 -2
- package/lib/typescript/organisms/ThemeToggle.d.ts.map +1 -1
- package/lib/typescript/organisms/Timeline.d.ts +26 -9
- package/lib/typescript/organisms/Timeline.d.ts.map +1 -1
- package/lib/typescript/organisms/Toast.d.ts +19 -4
- package/lib/typescript/organisms/Toast.d.ts.map +1 -1
- package/lib/typescript/organisms/ToastProvider.d.ts +8 -8
- package/lib/typescript/organisms/ToastProvider.d.ts.map +1 -1
- package/lib/typescript/organisms/Wizard.d.ts +24 -6
- package/lib/typescript/organisms/Wizard.d.ts.map +1 -1
- package/lib/typescript/organisms/chart/frame.d.ts +21 -21
- package/lib/typescript/organisms/chart/frame.d.ts.map +1 -1
- package/lib/typescript/organisms/chart/marks.d.ts +28 -28
- package/lib/typescript/organisms/chart/marks.d.ts.map +1 -1
- package/lib/typescript/organisms/chart/math.d.ts +69 -70
- package/lib/typescript/organisms/chart/math.d.ts.map +1 -1
- package/lib/typescript/organisms/chart/palette.d.ts +2 -2
- package/lib/typescript/organisms/chart/palette.d.ts.map +1 -1
- package/lib/typescript/organisms/imperativeBridge.d.ts +4 -4
- package/lib/typescript/organisms/useSlides.d.ts +8 -16
- package/lib/typescript/organisms/useSlides.d.ts.map +1 -1
- package/lib/typescript/safe-area/SafeAreaUIProvider.d.ts +9 -7
- package/lib/typescript/safe-area/SafeAreaUIProvider.d.ts.map +1 -1
- package/lib/typescript/safe-area/index.d.ts.map +1 -1
- package/lib/typescript/theme/KeyboardAvoidance.d.ts +62 -0
- package/lib/typescript/theme/KeyboardAvoidance.d.ts.map +1 -0
- package/lib/typescript/theme/NativeOverlay.d.ts +43 -0
- package/lib/typescript/theme/NativeOverlay.d.ts.map +1 -0
- package/lib/typescript/theme/UIProvider.d.ts +38 -20
- package/lib/typescript/theme/UIProvider.d.ts.map +1 -1
- package/lib/typescript/theme/colors.d.ts +13 -13
- package/lib/typescript/theme/colors.d.ts.map +1 -1
- package/lib/typescript/theme/createStyles.d.ts +20 -14
- package/lib/typescript/theme/createStyles.d.ts.map +1 -1
- package/lib/typescript/theme/createTheme.d.ts +5 -5
- package/lib/typescript/theme/index.d.ts +1 -1
- package/lib/typescript/theme/index.d.ts.map +1 -1
- package/lib/typescript/theme/insets.d.ts +1 -1
- package/lib/typescript/theme/insets.d.ts.map +1 -1
- package/lib/typescript/theme/labels.d.ts +57 -2
- package/lib/typescript/theme/labels.d.ts.map +1 -1
- package/lib/typescript/theme/palettes.d.ts +25 -19
- package/lib/typescript/theme/palettes.d.ts.map +1 -1
- package/lib/typescript/theme/tokens.d.ts +15 -8
- package/lib/typescript/theme/tokens.d.ts.map +1 -1
- package/lib/typescript/theme/types.d.ts +7 -7
- package/lib/typescript/theme/types.d.ts.map +1 -1
- package/lib/typescript/theme/useKeyboardField.d.ts +17 -0
- package/lib/typescript/theme/useKeyboardField.d.ts.map +1 -0
- package/lib/typescript/theme/useReduceMotion.d.ts +7 -0
- package/lib/typescript/theme/useReduceMotion.d.ts.map +1 -0
- package/llms.txt +4 -4
- package/package.json +15 -14
- package/registry/alert-provider.json +4 -3
- package/registry/alert.json +3 -2
- package/registry/avatar-header.json +1 -1
- package/registry/avatar.json +3 -2
- package/registry/badge.json +1 -1
- package/registry/bottom-sheet.json +1 -1
- package/registry/button.json +3 -2
- package/registry/card.json +1 -1
- package/registry/chart.json +5 -5
- package/registry/checkbox.json +3 -2
- package/registry/core.json +31 -15
- package/registry/date-field.json +1 -1
- package/registry/date-picker.json +3 -2
- package/registry/divider.json +1 -1
- package/registry/empty-state.json +4 -2
- package/registry/fab.json +3 -2
- package/registry/form-actions.json +3 -2
- package/registry/gradient.json +1 -1
- package/registry/icon-button.json +3 -2
- package/registry/image.json +1 -1
- package/registry/index.json +79 -61
- package/registry/info-row.json +1 -1
- package/registry/input.json +5 -1
- package/registry/key-value-row.json +1 -1
- package/registry/list.json +3 -1
- package/registry/manifest.json +3 -1
- package/registry/modal.json +1 -1
- package/registry/navigation-bar.json +1 -1
- package/registry/option-card.json +3 -2
- package/registry/option-wheel.json +1 -1
- package/registry/pressable-scale.json +3 -2
- package/registry/reorderable-list.json +1 -1
- package/registry/screen.json +1 -1
- package/registry/search-list.json +7 -1
- package/registry/segmented-control.json +1 -1
- package/registry/select.json +1 -1
- package/registry/shiny-text.json +1 -1
- package/registry/skeleton.json +3 -2
- package/registry/slides.json +2 -2
- package/registry/spinner.json +1 -1
- package/registry/stepper.json +1 -1
- package/registry/steps.json +1 -1
- package/registry/symmetric-grid.json +1 -1
- package/registry/theme-toggle.json +1 -1
- package/registry/timeline.json +1 -1
- package/registry/title.json +1 -1
- package/registry/toast-provider.json +2 -2
- package/registry/toast.json +1 -1
- package/registry/transition.json +1 -1
- package/registry/wizard.json +1 -1
- package/src/atoms/Avatar.tsx +117 -26
- package/src/atoms/Badge.tsx +20 -9
- package/src/atoms/Button.tsx +102 -30
- package/src/atoms/Card.tsx +23 -3
- package/src/atoms/Checkbox.tsx +49 -12
- package/src/atoms/Divider.tsx +34 -4
- package/src/atoms/EmptyState.tsx +63 -16
- package/src/atoms/Fab.tsx +56 -9
- package/src/atoms/Gradient.tsx +92 -41
- package/src/atoms/IconButton.tsx +27 -4
- package/src/atoms/Image.tsx +74 -28
- package/src/atoms/Input.tsx +129 -19
- package/src/atoms/KeyValueRow.tsx +72 -28
- package/src/atoms/PressableScale.tsx +31 -7
- package/src/atoms/ShinyText.tsx +31 -31
- package/src/atoms/Skeleton.tsx +37 -17
- package/src/atoms/Spinner.tsx +87 -24
- package/src/atoms/Text.tsx +66 -6
- package/src/atoms/Transition.tsx +40 -44
- package/src/atoms/index.ts +3 -3
- package/src/atoms/inputValidation.ts +59 -0
- package/src/icons/Icon.tsx +4 -4
- package/src/icons/defaultIcons.tsx +445 -22
- package/src/icons/index.ts +2 -2
- package/src/icons/types.ts +26 -4
- package/src/molecules/AvatarHeader.tsx +88 -34
- package/src/molecules/FormActions.tsx +36 -6
- package/src/molecules/InfoRow.tsx +39 -12
- package/src/molecules/OptionCard.tsx +55 -20
- package/src/molecules/SegmentedControl.tsx +135 -15
- package/src/molecules/Stepper.tsx +73 -19
- package/src/molecules/Steps.tsx +121 -39
- package/src/molecules/SymmetricGrid.tsx +28 -12
- package/src/organisms/Alert.tsx +97 -26
- package/src/organisms/AlertProvider.tsx +13 -13
- package/src/organisms/BottomSheet.tsx +115 -43
- package/src/organisms/Chart.tsx +223 -165
- package/src/organisms/DateField.tsx +40 -15
- package/src/organisms/DatePicker.tsx +53 -32
- package/src/organisms/List.tsx +64 -15
- package/src/organisms/Modal.tsx +122 -63
- package/src/organisms/NavigationBar.tsx +73 -23
- package/src/organisms/OptionWheel.tsx +70 -66
- package/src/organisms/ReorderableList.tsx +49 -27
- package/src/organisms/Screen.tsx +79 -42
- package/src/organisms/SearchList.tsx +84 -20
- package/src/organisms/Select.tsx +63 -29
- package/src/organisms/Slides.tsx +63 -44
- package/src/organisms/ThemeToggle.tsx +15 -6
- package/src/organisms/Timeline.tsx +79 -62
- package/src/organisms/Toast.tsx +50 -15
- package/src/organisms/ToastProvider.tsx +17 -13
- package/src/organisms/Wizard.tsx +58 -21
- package/src/organisms/chart/frame.tsx +35 -35
- package/src/organisms/chart/marks.tsx +53 -53
- package/src/organisms/chart/math.ts +93 -94
- package/src/organisms/chart/palette.ts +28 -28
- package/src/organisms/imperativeBridge.ts +5 -5
- package/src/organisms/useSlides.ts +66 -31
- package/src/safe-area/SafeAreaUIProvider.tsx +9 -70
- package/src/safe-area/index.ts +1 -0
- package/src/theme/KeyboardAvoidance.tsx +216 -0
- package/src/theme/NativeOverlay.tsx +269 -0
- package/src/theme/UIProvider.tsx +109 -46
- package/src/theme/colors.ts +21 -21
- package/src/theme/createStyles.ts +23 -19
- package/src/theme/createTheme.ts +6 -6
- package/src/theme/index.ts +1 -1
- package/src/theme/insets.ts +1 -1
- package/src/theme/labels.ts +85 -2
- package/src/theme/palettes.ts +33 -25
- package/src/theme/tokens.ts +27 -13
- package/src/theme/types.ts +7 -7
- package/src/theme/useKeyboardField.ts +33 -0
- package/src/theme/useReduceMotion.ts +27 -0
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { memo } from 'react';
|
|
3
|
+
import React, { memo, useEffect, useRef, useState } from 'react';
|
|
4
4
|
import { ScrollView, Text, TouchableOpacity, View } from 'react-native';
|
|
5
|
+
import { useReduceMotion } from '../theme/useReduceMotion';
|
|
5
6
|
import { createStyles } from '../theme/createStyles';
|
|
6
|
-
import { useAllowFontScaling, useColors } from '../theme/UIProvider';
|
|
7
|
+
import { useAllowFontScaling, useColors, useLabels } from '../theme/UIProvider';
|
|
7
8
|
import { Icon } from '../icons/Icon';
|
|
8
9
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
10
|
const CIRCLE = 32;
|
|
10
|
-
|
|
11
|
+
const CIRCLE_BORDER = 2;
|
|
12
|
+
const CHECK_SIZE = 18;
|
|
13
|
+
const CONNECTOR = 2;
|
|
14
|
+
/** Minimum width of a horizontal column: below it, labels break mid-word. */
|
|
11
15
|
const STEP_MIN_WIDTH = 76;
|
|
16
|
+
/** Share of the row a horizontal connector takes next to a step (flex: 1). */
|
|
17
|
+
const CONNECTOR_FLEX = 0.3;
|
|
18
|
+
const PRESSED_OPACITY = 0.7;
|
|
12
19
|
const useStyles = createStyles(theme => ({
|
|
13
20
|
rowContainer: {
|
|
14
21
|
flexDirection: 'row',
|
|
@@ -18,8 +25,8 @@ const useStyles = createStyles(theme => ({
|
|
|
18
25
|
flexDirection: 'column'
|
|
19
26
|
},
|
|
20
27
|
// horizontal
|
|
21
|
-
// ScrollView
|
|
22
|
-
//
|
|
28
|
+
// ScrollView ships with flexGrow: 1 and was eating all the available height
|
|
29
|
+
// of the container, leaving the steps stuck to the top of a huge box.
|
|
23
30
|
hScrollView: {
|
|
24
31
|
flexGrow: 0,
|
|
25
32
|
flexShrink: 0
|
|
@@ -29,9 +36,9 @@ const useStyles = createStyles(theme => ({
|
|
|
29
36
|
flexDirection: 'row',
|
|
30
37
|
alignItems: 'flex-start'
|
|
31
38
|
},
|
|
32
|
-
// `minWidth`
|
|
33
|
-
// ("Almacé / n"):
|
|
34
|
-
//
|
|
39
|
+
// `minWidth` is what keeps RN from breaking words in half
|
|
40
|
+
// ("Almacé / n"): rather than squeezing the column below a regular
|
|
41
|
+
// word, the row becomes scrollable.
|
|
35
42
|
hStep: {
|
|
36
43
|
flex: 1,
|
|
37
44
|
minWidth: STEP_MIN_WIDTH,
|
|
@@ -40,23 +47,25 @@ const useStyles = createStyles(theme => ({
|
|
|
40
47
|
},
|
|
41
48
|
hLabels: {
|
|
42
49
|
alignItems: 'center',
|
|
43
|
-
gap:
|
|
44
|
-
paddingHorizontal:
|
|
50
|
+
gap: theme.tokens.spacing.xxs,
|
|
51
|
+
paddingHorizontal: theme.tokens.spacing.xs
|
|
45
52
|
},
|
|
46
|
-
//
|
|
47
|
-
//
|
|
53
|
+
// The connector takes a small fraction of the width: competing on equal
|
|
54
|
+
// terms with the steps (flex: 1), each label ended up with 1/(2n-1) of the
|
|
48
55
|
// total.
|
|
49
56
|
hConnector: {
|
|
50
|
-
height:
|
|
51
|
-
flex:
|
|
52
|
-
minWidth:
|
|
53
|
-
marginTop: CIRCLE / 2 -
|
|
57
|
+
height: CONNECTOR,
|
|
58
|
+
flex: CONNECTOR_FLEX,
|
|
59
|
+
minWidth: theme.tokens.spacing.md,
|
|
60
|
+
marginTop: CIRCLE / 2 - CONNECTOR / 2
|
|
54
61
|
},
|
|
55
62
|
hLabel: {
|
|
56
|
-
fontSize: theme.tokens.fontSize.sm
|
|
63
|
+
fontSize: theme.tokens.fontSize.sm,
|
|
64
|
+
lineHeight: theme.tokens.lineHeight.sm
|
|
57
65
|
},
|
|
58
66
|
hDescription: {
|
|
59
|
-
fontSize: theme.tokens.fontSize.xs
|
|
67
|
+
fontSize: theme.tokens.fontSize.xs,
|
|
68
|
+
lineHeight: theme.tokens.lineHeight.sm
|
|
60
69
|
},
|
|
61
70
|
// vertical
|
|
62
71
|
vStep: {
|
|
@@ -67,21 +76,25 @@ const useStyles = createStyles(theme => ({
|
|
|
67
76
|
alignItems: 'center'
|
|
68
77
|
},
|
|
69
78
|
vConnector: {
|
|
70
|
-
width:
|
|
79
|
+
width: CONNECTOR,
|
|
71
80
|
flex: 1,
|
|
72
|
-
minHeight:
|
|
73
|
-
marginVertical:
|
|
81
|
+
minHeight: theme.tokens.spacing.xl,
|
|
82
|
+
marginVertical: theme.tokens.spacing.xs
|
|
74
83
|
},
|
|
75
84
|
vLabels: {
|
|
76
85
|
flex: 1,
|
|
77
|
-
gap:
|
|
86
|
+
gap: theme.tokens.spacing.xxs,
|
|
78
87
|
paddingBottom: theme.tokens.spacing.lg
|
|
79
88
|
},
|
|
89
|
+
// The last step has no connector below: no trailing space either.
|
|
90
|
+
vLabelsLast: {
|
|
91
|
+
paddingBottom: 0
|
|
92
|
+
},
|
|
80
93
|
circle: {
|
|
81
94
|
width: CIRCLE,
|
|
82
95
|
height: CIRCLE,
|
|
83
96
|
borderRadius: CIRCLE / 2,
|
|
84
|
-
borderWidth:
|
|
97
|
+
borderWidth: CIRCLE_BORDER,
|
|
85
98
|
alignItems: 'center',
|
|
86
99
|
justifyContent: 'center'
|
|
87
100
|
},
|
|
@@ -91,14 +104,23 @@ const useStyles = createStyles(theme => ({
|
|
|
91
104
|
},
|
|
92
105
|
label: {
|
|
93
106
|
fontSize: theme.tokens.fontSize.md,
|
|
107
|
+
lineHeight: theme.tokens.lineHeight.md,
|
|
94
108
|
fontWeight: theme.tokens.fontWeight.semibold,
|
|
95
109
|
color: theme.colors.text
|
|
96
110
|
},
|
|
111
|
+
labelCurrent: {
|
|
112
|
+
color: theme.colors.primaryText
|
|
113
|
+
},
|
|
114
|
+
labelPending: {
|
|
115
|
+
color: theme.colors.textLight,
|
|
116
|
+
fontWeight: theme.tokens.fontWeight.medium
|
|
117
|
+
},
|
|
97
118
|
labelCentered: {
|
|
98
119
|
textAlign: 'center'
|
|
99
120
|
},
|
|
100
121
|
description: {
|
|
101
122
|
fontSize: theme.tokens.fontSize.sm,
|
|
123
|
+
lineHeight: theme.tokens.lineHeight.sm,
|
|
102
124
|
color: theme.colors.textLight
|
|
103
125
|
},
|
|
104
126
|
descriptionCentered: {
|
|
@@ -113,8 +135,17 @@ function statusOf(index, current) {
|
|
|
113
135
|
|
|
114
136
|
/**
|
|
115
137
|
* Steps
|
|
116
|
-
*
|
|
117
|
-
*
|
|
138
|
+
* Multi-step progress indicator. The visual base of `Wizard`, but usable on
|
|
139
|
+
* its own to show progress through a flow that is navigated some other way.
|
|
140
|
+
*
|
|
141
|
+
* Gestalt, continuity: a connector line runs through the circles, so the steps
|
|
142
|
+
* read as one path; the stretch already walked is filled with the accent.
|
|
143
|
+
* Similarity: every step is the same circle + label, and the state only
|
|
144
|
+
* changes fill and color (done = filled, current = outlined accent, pending =
|
|
145
|
+
* grey). Von Restorff: the current step is the only accent-colored label.
|
|
146
|
+
*
|
|
147
|
+
* Accessibility: each step announces "Step 2 of 3: Payment, current", with
|
|
148
|
+
* every word from `labels`.
|
|
118
149
|
*/
|
|
119
150
|
export const Steps = /*#__PURE__*/memo(({
|
|
120
151
|
steps,
|
|
@@ -122,12 +153,34 @@ export const Steps = /*#__PURE__*/memo(({
|
|
|
122
153
|
orientation = 'horizontal',
|
|
123
154
|
completedIndicator = 'check',
|
|
124
155
|
onStepPress,
|
|
125
|
-
style
|
|
156
|
+
style,
|
|
157
|
+
testID
|
|
126
158
|
}) => {
|
|
127
159
|
const colors = useColors();
|
|
160
|
+
const labels = useLabels();
|
|
128
161
|
const styles = useStyles();
|
|
129
162
|
const allowFontScaling = useAllowFontScaling();
|
|
130
163
|
const isVertical = orientation === 'vertical';
|
|
164
|
+
const reduceMotion = useReduceMotion();
|
|
165
|
+
|
|
166
|
+
// Horizontal overflow: when the steps don't fit, the row scrolls. A hidden
|
|
167
|
+
// step gave no hint of existing, so the current step is brought into view
|
|
168
|
+
// and the scroll bar flashes once (visibility of system status).
|
|
169
|
+
const scrollRef = useRef(null);
|
|
170
|
+
const [viewportWidth, setViewportWidth] = useState(0);
|
|
171
|
+
const [contentWidth, setContentWidth] = useState(0);
|
|
172
|
+
const stepX = useRef([]);
|
|
173
|
+
const overflows = !isVertical && viewportWidth > 0 && contentWidth > viewportWidth + 1;
|
|
174
|
+
useEffect(() => {
|
|
175
|
+
if (!overflows) return;
|
|
176
|
+
const x = stepX.current[current] ?? 0;
|
|
177
|
+
// A quarter of the row of lead-in: the previous step stays partly visible.
|
|
178
|
+
scrollRef.current?.scrollTo({
|
|
179
|
+
x: Math.max(0, x - viewportWidth / 4),
|
|
180
|
+
animated: !reduceMotion
|
|
181
|
+
});
|
|
182
|
+
scrollRef.current?.flashScrollIndicators();
|
|
183
|
+
}, [overflows, current, viewportWidth, reduceMotion]);
|
|
131
184
|
const colorsFor = status => {
|
|
132
185
|
if (status === 'completed') return {
|
|
133
186
|
bg: colors.primary,
|
|
@@ -155,7 +208,7 @@ export const Steps = /*#__PURE__*/memo(({
|
|
|
155
208
|
}],
|
|
156
209
|
children: showCheck ? /*#__PURE__*/_jsx(Icon, {
|
|
157
210
|
name: "check",
|
|
158
|
-
size:
|
|
211
|
+
size: CHECK_SIZE,
|
|
159
212
|
color: c.fg
|
|
160
213
|
}) : /*#__PURE__*/_jsx(Text, {
|
|
161
214
|
allowFontScaling: allowFontScaling,
|
|
@@ -166,13 +219,11 @@ export const Steps = /*#__PURE__*/memo(({
|
|
|
166
219
|
})
|
|
167
220
|
});
|
|
168
221
|
};
|
|
169
|
-
const renderLabels = (step, status, centered) => /*#__PURE__*/_jsxs(View, {
|
|
170
|
-
style: centered ? styles.hLabels : styles.vLabels,
|
|
222
|
+
const renderLabels = (step, status, centered, isLast = false) => /*#__PURE__*/_jsxs(View, {
|
|
223
|
+
style: centered ? styles.hLabels : [styles.vLabels, isLast && styles.vLabelsLast],
|
|
171
224
|
children: [/*#__PURE__*/_jsx(Text, {
|
|
172
225
|
allowFontScaling: allowFontScaling,
|
|
173
|
-
style: [styles.label, centered && styles.labelCentered, centered && styles.hLabel, status === 'pending' &&
|
|
174
|
-
color: colors.textLight
|
|
175
|
-
}],
|
|
226
|
+
style: [styles.label, centered && styles.labelCentered, centered && styles.hLabel, status === 'current' && styles.labelCurrent, status === 'pending' && styles.labelPending],
|
|
176
227
|
children: step.label
|
|
177
228
|
}), !!step.description && /*#__PURE__*/_jsx(Text, {
|
|
178
229
|
allowFontScaling: allowFontScaling,
|
|
@@ -180,26 +231,33 @@ export const Steps = /*#__PURE__*/memo(({
|
|
|
180
231
|
children: step.description
|
|
181
232
|
})]
|
|
182
233
|
});
|
|
234
|
+
const statusLabel = {
|
|
235
|
+
completed: labels.stepCompleted,
|
|
236
|
+
current: labels.stepCurrent,
|
|
237
|
+
pending: labels.stepPending
|
|
238
|
+
};
|
|
183
239
|
const stepAccessibility = (index, step, status) => ({
|
|
184
240
|
accessibilityRole: onStepPress ? 'button' : 'text',
|
|
185
|
-
accessibilityLabel:
|
|
241
|
+
accessibilityLabel: `${labels.stepOf.replace('{n}', String(index + 1)).replace('{total}', String(steps.length)).replace('{label}', step.label)}, ${statusLabel[status]}`,
|
|
186
242
|
accessibilityState: {
|
|
187
243
|
selected: status === 'current',
|
|
188
244
|
disabled: false
|
|
189
|
-
}
|
|
245
|
+
},
|
|
246
|
+
testID: testID && `${testID}-${index}`
|
|
190
247
|
});
|
|
191
248
|
if (isVertical) {
|
|
192
249
|
return /*#__PURE__*/_jsx(View, {
|
|
193
250
|
style: [styles.columnContainer, style],
|
|
251
|
+
testID: testID,
|
|
194
252
|
children: steps.map((step, index) => {
|
|
195
253
|
const status = statusOf(index, current);
|
|
196
254
|
const isLast = index === steps.length - 1;
|
|
197
255
|
const Wrapper = onStepPress ? TouchableOpacity : View;
|
|
198
|
-
//
|
|
199
|
-
// a
|
|
256
|
+
// Only touchable when there is onStepPress: passing onPress/activeOpacity
|
|
257
|
+
// to a plain View doesn't crash, but leaves them as silent noise.
|
|
200
258
|
const interactiveProps = onStepPress ? {
|
|
201
259
|
onPress: () => onStepPress(index),
|
|
202
|
-
activeOpacity:
|
|
260
|
+
activeOpacity: PRESSED_OPACITY
|
|
203
261
|
} : undefined;
|
|
204
262
|
return /*#__PURE__*/_jsxs(Wrapper, {
|
|
205
263
|
style: styles.vStep,
|
|
@@ -212,17 +270,20 @@ export const Steps = /*#__PURE__*/memo(({
|
|
|
212
270
|
backgroundColor: index < current ? colors.primary : colors.border
|
|
213
271
|
}]
|
|
214
272
|
})]
|
|
215
|
-
}), renderLabels(step, status, false)]
|
|
273
|
+
}), renderLabels(step, status, false, isLast)]
|
|
216
274
|
}, `${step.label}-${index}`);
|
|
217
275
|
})
|
|
218
276
|
});
|
|
219
277
|
}
|
|
220
278
|
return /*#__PURE__*/_jsx(ScrollView, {
|
|
221
|
-
|
|
279
|
+
ref: scrollRef,
|
|
280
|
+
testID: testID,
|
|
222
281
|
horizontal: true,
|
|
223
|
-
showsHorizontalScrollIndicator:
|
|
224
|
-
|
|
225
|
-
|
|
282
|
+
showsHorizontalScrollIndicator: overflows,
|
|
283
|
+
onLayout: e => setViewportWidth(e.nativeEvent.layout.width),
|
|
284
|
+
onContentSizeChange: width => setContentWidth(width)
|
|
285
|
+
// With room to spare the steps share the row just like before
|
|
286
|
+
// (flexGrow); when they don't fit, it scrolls instead of squeezing the text.
|
|
226
287
|
,
|
|
227
288
|
style: [styles.hScrollView, style],
|
|
228
289
|
contentContainerStyle: styles.hScroll,
|
|
@@ -232,11 +293,14 @@ export const Steps = /*#__PURE__*/memo(({
|
|
|
232
293
|
const Wrapper = onStepPress ? TouchableOpacity : View;
|
|
233
294
|
const interactiveProps = onStepPress ? {
|
|
234
295
|
onPress: () => onStepPress(index),
|
|
235
|
-
activeOpacity:
|
|
296
|
+
activeOpacity: PRESSED_OPACITY
|
|
236
297
|
} : undefined;
|
|
237
298
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
238
299
|
children: [/*#__PURE__*/_jsxs(Wrapper, {
|
|
239
300
|
style: styles.hStep,
|
|
301
|
+
onLayout: e => {
|
|
302
|
+
stepX.current[index] = e.nativeEvent.layout.x;
|
|
303
|
+
},
|
|
240
304
|
...interactiveProps,
|
|
241
305
|
...stepAccessibility(index, step, status),
|
|
242
306
|
children: [renderCircle(index, status), renderLabels(step, status, true)]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","ScrollView","Text","TouchableOpacity","View","createStyles","useAllowFontScaling","useColors","Icon","jsx","_jsx","jsxs","_jsxs","CIRCLE","STEP_MIN_WIDTH","useStyles","theme","rowContainer","flexDirection","alignItems","columnContainer","hScrollView","flexGrow","flexShrink","hScroll","hStep","flex","minWidth","gap","tokens","spacing","sm","hLabels","paddingHorizontal","hConnector","height","marginTop","hLabel","fontSize","hDescription","xs","vStep","md","vIndicatorColumn","vConnector","width","minHeight","marginVertical","vLabels","paddingBottom","lg","circle","borderRadius","borderWidth","justifyContent","circleNumber","fontWeight","semibold","label","color","colors","text","labelCentered","textAlign","description","textLight","descriptionCentered","statusOf","index","current","Steps","steps","orientation","completedIndicator","onStepPress","style","styles","allowFontScaling","isVertical","colorsFor","status","bg","primary","border","fg","onPrimary","primaryText","renderCircle","c","showCheck","backgroundColor","borderColor","children","name","size","renderLabels","step","centered","stepAccessibility","accessibilityRole","accessibilityLabel","accessibilityState","selected","disabled","map","isLast","length","Wrapper","interactiveProps","onPress","activeOpacity","undefined","testID","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","Fragment","displayName"],"sourceRoot":"../../../src","sources":["molecules/Steps.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","memo","useEffect","useRef","useState","ScrollView","Text","TouchableOpacity","View","useReduceMotion","createStyles","useAllowFontScaling","useColors","useLabels","Icon","jsx","_jsx","jsxs","_jsxs","CIRCLE","CIRCLE_BORDER","CHECK_SIZE","CONNECTOR","STEP_MIN_WIDTH","CONNECTOR_FLEX","PRESSED_OPACITY","useStyles","theme","rowContainer","flexDirection","alignItems","columnContainer","hScrollView","flexGrow","flexShrink","hScroll","hStep","flex","minWidth","gap","tokens","spacing","sm","hLabels","xxs","paddingHorizontal","xs","hConnector","height","md","marginTop","hLabel","fontSize","lineHeight","hDescription","vStep","vIndicatorColumn","vConnector","width","minHeight","xl","marginVertical","vLabels","paddingBottom","lg","vLabelsLast","circle","borderRadius","borderWidth","justifyContent","circleNumber","fontWeight","semibold","label","color","colors","text","labelCurrent","primaryText","labelPending","textLight","medium","labelCentered","textAlign","description","descriptionCentered","statusOf","index","current","Steps","steps","orientation","completedIndicator","onStepPress","style","testID","labels","styles","allowFontScaling","isVertical","reduceMotion","scrollRef","viewportWidth","setViewportWidth","contentWidth","setContentWidth","stepX","overflows","x","scrollTo","Math","max","animated","flashScrollIndicators","colorsFor","status","bg","primary","border","fg","onPrimary","renderCircle","c","showCheck","backgroundColor","borderColor","children","name","size","renderLabels","step","centered","isLast","statusLabel","completed","stepCompleted","stepCurrent","pending","stepPending","stepAccessibility","accessibilityRole","accessibilityLabel","stepOf","replace","String","length","accessibilityState","selected","disabled","map","Wrapper","interactiveProps","onPress","activeOpacity","undefined","ref","horizontal","showsHorizontalScrollIndicator","onLayout","e","nativeEvent","layout","onContentSizeChange","contentContainerStyle","Fragment","displayName"],"sourceRoot":"../../../src","sources":["molecules/Steps.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,14 +3,11 @@
|
|
|
3
3
|
import React, { useMemo } from 'react';
|
|
4
4
|
import { View } from 'react-native';
|
|
5
5
|
import { createStyles } from '../theme/createStyles';
|
|
6
|
+
import { useTheme } from '../theme/UIProvider';
|
|
6
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
-
const useStyles = createStyles(
|
|
8
|
-
grid: {
|
|
9
|
-
gap: theme.tokens.spacing.md
|
|
10
|
-
},
|
|
8
|
+
const useStyles = createStyles(() => ({
|
|
11
9
|
row: {
|
|
12
|
-
flexDirection: 'row'
|
|
13
|
-
gap: theme.tokens.spacing.md
|
|
10
|
+
flexDirection: 'row'
|
|
14
11
|
},
|
|
15
12
|
rowBalanced: {
|
|
16
13
|
justifyContent: 'center'
|
|
@@ -31,10 +28,16 @@ function chunk(data, size) {
|
|
|
31
28
|
|
|
32
29
|
/**
|
|
33
30
|
* SymmetricGrid
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
31
|
+
* Law of Prägnanz (good form): groups items into even rows of N columns.
|
|
32
|
+
* The last row, when incomplete, is centered by default instead of sticking
|
|
33
|
+
* to one edge — that is what makes it read as a "short row" and not as a
|
|
34
|
+
* broken layout with a gap on one side.
|
|
35
|
+
*
|
|
36
|
+
* Gestalt, similarity: every cell has exactly the same width, also in the
|
|
37
|
+
* centered short row, so items read as peers. The horizontal gap is padding
|
|
38
|
+
* inside each cell (and a negative margin on the row), not flex `gap`: a
|
|
39
|
+
* `100 / columns %` width plus a gap made every row wider than the grid and
|
|
40
|
+
* pushed the right column out of the container.
|
|
38
41
|
*/
|
|
39
42
|
export function SymmetricGrid({
|
|
40
43
|
data,
|
|
@@ -43,31 +46,36 @@ export function SymmetricGrid({
|
|
|
43
46
|
columns = 2,
|
|
44
47
|
gap,
|
|
45
48
|
balanceLastRow = true,
|
|
46
|
-
style
|
|
49
|
+
style,
|
|
50
|
+
testID
|
|
47
51
|
}) {
|
|
52
|
+
const theme = useTheme();
|
|
48
53
|
const styles = useStyles();
|
|
49
54
|
const rows = useMemo(() => chunk(data, columns), [data, columns]);
|
|
55
|
+
const space = gap ?? theme.tokens.spacing.md;
|
|
50
56
|
const cellWidth = `${100 / columns}%`;
|
|
51
57
|
return /*#__PURE__*/_jsx(View, {
|
|
52
|
-
style: [
|
|
53
|
-
gap
|
|
58
|
+
style: [{
|
|
59
|
+
gap: space
|
|
54
60
|
}, style],
|
|
61
|
+
testID: testID,
|
|
55
62
|
children: rows.map((row, rowIndex) => {
|
|
56
63
|
const isLastRow = rowIndex === rows.length - 1;
|
|
57
64
|
const isIncomplete = row.length < columns;
|
|
58
65
|
const centered = isLastRow && isIncomplete && balanceLastRow;
|
|
59
66
|
return /*#__PURE__*/_jsx(View
|
|
60
|
-
// `columns`
|
|
61
|
-
//
|
|
67
|
+
// `columns` in the key: if it changes, rows don't reuse DOM nodes
|
|
68
|
+
// from a row built with a different number of columns.
|
|
62
69
|
, {
|
|
63
|
-
style: [styles.row, centered ? styles.rowBalanced : styles.rowFull,
|
|
64
|
-
|
|
70
|
+
style: [styles.row, centered ? styles.rowBalanced : styles.rowFull, {
|
|
71
|
+
marginHorizontal: -space / 2
|
|
65
72
|
}],
|
|
66
73
|
children: row.map((item, colIndex) => {
|
|
67
74
|
const index = rowIndex * columns + colIndex;
|
|
68
75
|
return /*#__PURE__*/_jsx(View, {
|
|
69
76
|
style: [styles.cell, {
|
|
70
|
-
width: cellWidth
|
|
77
|
+
width: cellWidth,
|
|
78
|
+
paddingHorizontal: space / 2
|
|
71
79
|
}],
|
|
72
80
|
children: renderItem(item, index)
|
|
73
81
|
}, keyExtractor(item, index));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","View","createStyles","jsx","_jsx","useStyles","
|
|
1
|
+
{"version":3,"names":["React","useMemo","View","createStyles","useTheme","jsx","_jsx","useStyles","row","flexDirection","rowBalanced","justifyContent","rowFull","cell","flexGrow","flexShrink","chunk","data","size","rows","i","length","push","slice","SymmetricGrid","renderItem","keyExtractor","columns","gap","balanceLastRow","style","testID","theme","styles","space","tokens","spacing","md","cellWidth","children","map","rowIndex","isLastRow","isIncomplete","centered","marginHorizontal","item","colIndex","index","width","paddingHorizontal"],"sourceRoot":"../../../src","sources":["molecules/SymmetricGrid.tsx"],"mappings":"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","ignoreList":[]}
|