orn-ui 0.2.10 → 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 +66 -51
- package/README.md +3 -7
- 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 +174 -154
- 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 +176 -156
- 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 +193 -164
- 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
|
@@ -7,23 +7,31 @@ import { useAllowFontScaling, useTheme } from '../theme/UIProvider';
|
|
|
7
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
8
|
const useStyles = createStyles(theme => ({
|
|
9
9
|
badge: {
|
|
10
|
-
paddingHorizontal: theme.tokens.spacing.md
|
|
11
|
-
paddingVertical: theme.tokens.spacing.xs
|
|
10
|
+
paddingHorizontal: theme.tokens.spacing.md,
|
|
11
|
+
paddingVertical: theme.tokens.spacing.xs,
|
|
12
12
|
borderRadius: theme.tokens.radius.full,
|
|
13
13
|
alignSelf: 'flex-start'
|
|
14
14
|
},
|
|
15
15
|
text: {
|
|
16
16
|
fontSize: theme.tokens.fontSize.xs,
|
|
17
17
|
fontWeight: theme.tokens.fontWeight.bold,
|
|
18
|
-
letterSpacing:
|
|
18
|
+
letterSpacing: theme.tokens.letterSpacing.wide
|
|
19
19
|
}
|
|
20
20
|
}));
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Badge
|
|
24
|
-
*
|
|
25
|
-
* info/neutral); `backgroundColor`/`textColor`
|
|
26
|
-
*
|
|
24
|
+
* Status pill. `variant` covers the common cases (success/error/warning/
|
|
25
|
+
* info/neutral); `backgroundColor`/`textColor` are for cases that don't
|
|
26
|
+
* fit the semantic set.
|
|
27
|
+
*
|
|
28
|
+
* Gestalt, similarity: all badges share shape, size and typography; only
|
|
29
|
+
* the color changes, and it changes by meaning (green = ok, red = error…),
|
|
30
|
+
* so a column of statuses scans at a glance. The meaning also goes in the
|
|
31
|
+
* text: never rely on color alone (color blindness).
|
|
32
|
+
* Every `*Soft`/`*Text` pair in the theme meets WCAG AA in light and dark;
|
|
33
|
+
* with custom colors, contrast is up to whoever passes them.
|
|
34
|
+
* A single line: a long label is truncated with "…" instead of deforming the pill.
|
|
27
35
|
*/
|
|
28
36
|
export const Badge = /*#__PURE__*/memo(({
|
|
29
37
|
label,
|
|
@@ -39,8 +47,8 @@ export const Badge = /*#__PURE__*/memo(({
|
|
|
39
47
|
colors
|
|
40
48
|
} = theme;
|
|
41
49
|
const palette = {
|
|
42
|
-
// fg
|
|
43
|
-
//
|
|
50
|
+
// fg is the `*Text` role, not the full accent: the accent over its own
|
|
51
|
+
// tint gives ~2.2:1 in light — the label was unreadable.
|
|
44
52
|
success: {
|
|
45
53
|
bg: colors.successSoft,
|
|
46
54
|
fg: colors.successText
|
|
@@ -68,6 +76,7 @@ export const Badge = /*#__PURE__*/memo(({
|
|
|
68
76
|
}, style],
|
|
69
77
|
children: /*#__PURE__*/_jsx(Text, {
|
|
70
78
|
allowFontScaling: allowFontScaling,
|
|
79
|
+
numberOfLines: 1,
|
|
71
80
|
style: [styles.text, {
|
|
72
81
|
color: textColor ?? palette[variant].fg
|
|
73
82
|
}],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","Text","View","createStyles","useAllowFontScaling","useTheme","jsx","_jsx","useStyles","theme","badge","paddingHorizontal","tokens","spacing","md","paddingVertical","xs","borderRadius","radius","full","alignSelf","text","fontSize","fontWeight","bold","letterSpacing","Badge","label","variant","backgroundColor","textColor","style","styles","allowFontScaling","colors","palette","success","bg","successSoft","fg","successText","error","errorSoft","errorText","warning","warningSoft","warningText","info","secondarySoft","secondaryText","neutral","inputBackground","textLight","children","color","displayName"],"sourceRoot":"../../../src","sources":["atoms/Badge.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,EAAEC,IAAI,QAAwC,cAAc;AACzE,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,mBAAmB,EAAEC,QAAQ,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;
|
|
1
|
+
{"version":3,"names":["React","memo","Text","View","createStyles","useAllowFontScaling","useTheme","jsx","_jsx","useStyles","theme","badge","paddingHorizontal","tokens","spacing","md","paddingVertical","xs","borderRadius","radius","full","alignSelf","text","fontSize","fontWeight","bold","letterSpacing","wide","Badge","label","variant","backgroundColor","textColor","style","styles","allowFontScaling","colors","palette","success","bg","successSoft","fg","successText","error","errorSoft","errorText","warning","warningSoft","warningText","info","secondarySoft","secondaryText","neutral","inputBackground","textLight","children","numberOfLines","color","displayName"],"sourceRoot":"../../../src","sources":["atoms/Badge.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,EAAEC,IAAI,QAAwC,cAAc;AACzE,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,mBAAmB,EAAEC,QAAQ,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAgBpE,MAAMC,SAAS,GAAGL,YAAY,CAAEM,KAAK,KAAM;EACzCC,KAAK,EAAE;IACLC,iBAAiB,EAAEF,KAAK,CAACG,MAAM,CAACC,OAAO,CAACC,EAAE;IAC1CC,eAAe,EAAEN,KAAK,CAACG,MAAM,CAACC,OAAO,CAACG,EAAE;IACxCC,YAAY,EAAER,KAAK,CAACG,MAAM,CAACM,MAAM,CAACC,IAAI;IACtCC,SAAS,EAAE;EACb,CAAC;EACDC,IAAI,EAAE;IAAEC,QAAQ,EAAEb,KAAK,CAACG,MAAM,CAACU,QAAQ,CAACN,EAAE;IAAEO,UAAU,EAAEd,KAAK,CAACG,MAAM,CAACW,UAAU,CAACC,IAAI;IAAEC,aAAa,EAAEhB,KAAK,CAACG,MAAM,CAACa,aAAa,CAACC;EAAK;AACvI,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,KAAK,gBAAG3B,IAAI,CAAC,CAAC;EAAE4B,KAAK;EAAEC,OAAO,GAAG,SAAS;EAAEC,eAAe;EAAEC,SAAS;EAAEC;AAAkB,CAAC,KAAK;EAC3G,MAAMvB,KAAK,GAAGJ,QAAQ,CAAC,CAAC;EACxB,MAAM4B,MAAM,GAAGzB,SAAS,CAAC,CAAC;EAC1B,MAAM0B,gBAAgB,GAAG9B,mBAAmB,CAAC,CAAC;EAC9C,MAAM;IAAE+B;EAAO,CAAC,GAAG1B,KAAK;EAExB,MAAM2B,OAAyD,GAAG;IAChE;IACA;IACAC,OAAO,EAAE;MAAEC,EAAE,EAAEH,MAAM,CAACI,WAAW;MAAEC,EAAE,EAAEL,MAAM,CAACM;IAAY,CAAC;IAC3DC,KAAK,EAAE;MAAEJ,EAAE,EAAEH,MAAM,CAACQ,SAAS;MAAEH,EAAE,EAAEL,MAAM,CAACS;IAAU,CAAC;IACrDC,OAAO,EAAE;MAAEP,EAAE,EAAEH,MAAM,CAACW,WAAW;MAAEN,EAAE,EAAEL,MAAM,CAACY;IAAY,CAAC;IAC3DC,IAAI,EAAE;MAAEV,EAAE,EAAEH,MAAM,CAACc,aAAa;MAAET,EAAE,EAAEL,MAAM,CAACe;IAAc,CAAC;IAC5DC,OAAO,EAAE;MAAEb,EAAE,EAAEH,MAAM,CAACiB,eAAe;MAAEZ,EAAE,EAAEL,MAAM,CAACkB;IAAU;EAC9D,CAAC;EAED,oBACE9C,IAAA,CAACL,IAAI;IAAC8B,KAAK,EAAE,CAACC,MAAM,CAACvB,KAAK,EAAE;MAAEoB,eAAe,EAAEA,eAAe,IAAIM,OAAO,CAACP,OAAO,CAAC,CAACS;IAAG,CAAC,EAAEN,KAAK,CAAE;IAAAsB,QAAA,eAC9F/C,IAAA,CAACN,IAAI;MAACiC,gBAAgB,EAAEA,gBAAiB;MAACqB,aAAa,EAAE,CAAE;MAACvB,KAAK,EAAE,CAACC,MAAM,CAACZ,IAAI,EAAE;QAAEmC,KAAK,EAAEzB,SAAS,IAAIK,OAAO,CAACP,OAAO,CAAC,CAACW;MAAG,CAAC,CAAE;MAAAc,QAAA,EAC3H1B;IAAK,CACF;EAAC,CACH,CAAC;AAEX,CAAC,CAAC;AACFD,KAAK,CAAC8B,WAAW,GAAG,OAAO","ignoreList":[]}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import React, { memo, useRef } from 'react';
|
|
4
|
-
import { ActivityIndicator, Animated, Pressable, Text } from 'react-native';
|
|
4
|
+
import { ActivityIndicator, Animated, Pressable, Text, View } from 'react-native';
|
|
5
5
|
import { createStyles } from '../theme/createStyles';
|
|
6
6
|
import { useAllowFontScaling, useColors, useTheme } from '../theme/UIProvider';
|
|
7
7
|
import { Icon } from '../icons/Icon';
|
|
8
|
-
import {
|
|
8
|
+
import { useReduceMotion } from './Transition';
|
|
9
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
10
|
const AnimatedPressable = Animated.createAnimatedComponent(Pressable);
|
|
10
11
|
const useStyles = createStyles(theme => ({
|
|
11
12
|
base: {
|
|
@@ -20,11 +21,11 @@ const useStyles = createStyles(theme => ({
|
|
|
20
21
|
paddingHorizontal: theme.tokens.spacing.md
|
|
21
22
|
},
|
|
22
23
|
md: {
|
|
23
|
-
paddingVertical: theme.tokens.spacing.lg
|
|
24
|
+
paddingVertical: theme.tokens.spacing.lg,
|
|
24
25
|
paddingHorizontal: theme.tokens.spacing.xl
|
|
25
26
|
},
|
|
26
27
|
lg: {
|
|
27
|
-
paddingVertical: theme.tokens.spacing.
|
|
28
|
+
paddingVertical: theme.tokens.spacing.xl,
|
|
28
29
|
paddingHorizontal: theme.tokens.spacing.xxl
|
|
29
30
|
},
|
|
30
31
|
link: {
|
|
@@ -35,10 +36,7 @@ const useStyles = createStyles(theme => ({
|
|
|
35
36
|
outline: {
|
|
36
37
|
borderWidth: 1
|
|
37
38
|
},
|
|
38
|
-
filledShadow:
|
|
39
|
-
...theme.tokens.shadow.md,
|
|
40
|
-
shadowColor: '#000'
|
|
41
|
-
},
|
|
39
|
+
filledShadow: theme.tokens.shadow.md,
|
|
42
40
|
text: {
|
|
43
41
|
fontWeight: theme.tokens.fontWeight.semibold,
|
|
44
42
|
textAlign: 'center'
|
|
@@ -60,8 +58,48 @@ const useStyles = createStyles(theme => ({
|
|
|
60
58
|
},
|
|
61
59
|
iconRight: {
|
|
62
60
|
marginLeft: theme.tokens.spacing.sm
|
|
61
|
+
},
|
|
62
|
+
// The label keeps taking its space (invisible) while loading: the button
|
|
63
|
+
// doesn't change width and the spinner is centered on top.
|
|
64
|
+
hidden: {
|
|
65
|
+
opacity: 0
|
|
66
|
+
},
|
|
67
|
+
spinner: {
|
|
68
|
+
position: 'absolute',
|
|
69
|
+
top: 0,
|
|
70
|
+
bottom: 0,
|
|
71
|
+
left: 0,
|
|
72
|
+
right: 0,
|
|
73
|
+
alignItems: 'center',
|
|
74
|
+
justifyContent: 'center'
|
|
63
75
|
}
|
|
64
76
|
}));
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Extra touch area for the sizes that fall below 44pt in height
|
|
80
|
+
* (Fitts): `sm` measures ~30pt and `link` ~27pt. hitSlop enlarges the area
|
|
81
|
+
* that receives the touch without changing how it looks.
|
|
82
|
+
*/
|
|
83
|
+
function useHitSlop(size, variant) {
|
|
84
|
+
const theme = useTheme();
|
|
85
|
+
if (variant === 'link') {
|
|
86
|
+
const v = theme.tokens.spacing.md;
|
|
87
|
+
return {
|
|
88
|
+
top: v,
|
|
89
|
+
bottom: v,
|
|
90
|
+
left: theme.tokens.spacing.sm,
|
|
91
|
+
right: theme.tokens.spacing.sm
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
if (size === 'sm') {
|
|
95
|
+
const v = theme.tokens.spacing.sm;
|
|
96
|
+
return {
|
|
97
|
+
top: v,
|
|
98
|
+
bottom: v
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
65
103
|
function resolveColors(variant, disabled, colors) {
|
|
66
104
|
if (disabled) {
|
|
67
105
|
return {
|
|
@@ -71,8 +109,8 @@ function resolveColors(variant, disabled, colors) {
|
|
|
71
109
|
};
|
|
72
110
|
}
|
|
73
111
|
switch (variant) {
|
|
74
|
-
//
|
|
75
|
-
//
|
|
112
|
+
// The unfilled variants paint text over the screen background: they
|
|
113
|
+
// use the `*Text` role. The filled ones use `on*` over the accent.
|
|
76
114
|
case 'outline':
|
|
77
115
|
return {
|
|
78
116
|
background: 'transparent',
|
|
@@ -115,9 +153,24 @@ function resolveColors(variant, disabled, colors) {
|
|
|
115
153
|
|
|
116
154
|
/**
|
|
117
155
|
* Button
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
156
|
+
* The library's only button component. `variant` sets the semantic style,
|
|
157
|
+
* `size` the density. The "pressed" feedback animates only `transform`
|
|
158
|
+
* (Animated.spring, useNativeDriver) — never opacity or layout — and is
|
|
159
|
+
* skipped when Reduce Motion is on.
|
|
160
|
+
*
|
|
161
|
+
* Gestalt:
|
|
162
|
+
* - Focal point (Von Restorff): `primary` is the only one filled with the
|
|
163
|
+
* accent and a shadow; there should be one per screen or group. The other
|
|
164
|
+
* variants step the visual weight down (secondary → outline → ghost → link).
|
|
165
|
+
* - Similarity: all variants share shape, radius and typography, so a row of
|
|
166
|
+
* buttons reads as a single group of actions; only what conveys the
|
|
167
|
+
* hierarchy changes (fill, border, color).
|
|
168
|
+
* - Proximity: icon and label sit `spacing.sm` apart, much less than the
|
|
169
|
+
* padding, so they read as a single label.
|
|
170
|
+
*
|
|
171
|
+
* Fitts: `sm` and `link` are less than 44pt tall and make up for it with `hitSlop`.
|
|
172
|
+
* While `loading`, the label is invisible but keeps its space: the button
|
|
173
|
+
* doesn't change width (no layout jumps).
|
|
121
174
|
*/
|
|
122
175
|
export const Button = /*#__PURE__*/memo(({
|
|
123
176
|
title,
|
|
@@ -141,11 +194,14 @@ export const Button = /*#__PURE__*/memo(({
|
|
|
141
194
|
const theme = useTheme();
|
|
142
195
|
const allowFontScaling = useAllowFontScaling();
|
|
143
196
|
const scale = useRef(new Animated.Value(1)).current;
|
|
197
|
+
const reduceMotion = useReduceMotion();
|
|
198
|
+
const hitSlop = useHitSlop(size, variant);
|
|
144
199
|
const isDisabled = disabled || loading;
|
|
145
200
|
const isFilled = variant === 'primary' || variant === 'secondary' || variant === 'destructive';
|
|
146
201
|
const resolved = resolveColors(variant, disabled, colors);
|
|
147
202
|
const effectiveIconColor = iconColor ?? resolved.text;
|
|
148
203
|
const animateTo = value => {
|
|
204
|
+
if (reduceMotion) return;
|
|
149
205
|
Animated.spring(scale, {
|
|
150
206
|
toValue: value,
|
|
151
207
|
useNativeDriver: true,
|
|
@@ -157,8 +213,12 @@ export const Button = /*#__PURE__*/memo(({
|
|
|
157
213
|
borderColor: resolved.border
|
|
158
214
|
}], {
|
|
159
215
|
backgroundColor: resolved.background
|
|
160
|
-
}, isFilled && !disabled && styles.filledShadow,
|
|
161
|
-
|
|
216
|
+
}, isFilled && !disabled && styles.filledShadow,
|
|
217
|
+
// Disabled is already marked by its colors (resolveColors); lowering the
|
|
218
|
+
// opacity on top of that left it almost invisible (figure and ground).
|
|
219
|
+
// Only `loading` dims it, to signal that the button is busy.
|
|
220
|
+
{
|
|
221
|
+
opacity: loading && !disabled ? 0.7 : 1
|
|
162
222
|
}, style];
|
|
163
223
|
const labelStyle = [styles.text, size === 'sm' ? styles.textSm : size === 'lg' ? styles.textLg : styles.textMd, {
|
|
164
224
|
color: resolved.text
|
|
@@ -166,12 +226,12 @@ export const Button = /*#__PURE__*/memo(({
|
|
|
166
226
|
const iconSize = size === 'sm' ? 16 : size === 'lg' ? 22 : 20;
|
|
167
227
|
return (
|
|
168
228
|
/*#__PURE__*/
|
|
169
|
-
//
|
|
170
|
-
//
|
|
171
|
-
//
|
|
172
|
-
//
|
|
173
|
-
//
|
|
174
|
-
|
|
229
|
+
// The Pressable IS the animated container, not a wrapper around one.
|
|
230
|
+
// With an inner Animated.View, a layout `style` (flex, width, margin)
|
|
231
|
+
// landed on the child while the Pressable — which is what takes up
|
|
232
|
+
// space in the parent's layout — was left without it: the width
|
|
233
|
+
// collapsed and the label disappeared (visible in the Alert's row of buttons).
|
|
234
|
+
_jsxs(AnimatedPressable, {
|
|
175
235
|
onPress: onPress,
|
|
176
236
|
onPressIn: () => {
|
|
177
237
|
if (!isDisabled) animateTo(0.95);
|
|
@@ -180,6 +240,7 @@ export const Button = /*#__PURE__*/memo(({
|
|
|
180
240
|
if (!isDisabled) animateTo(1);
|
|
181
241
|
},
|
|
182
242
|
disabled: isDisabled,
|
|
243
|
+
hitSlop: hitSlop,
|
|
183
244
|
testID: testID,
|
|
184
245
|
accessibilityRole: "button",
|
|
185
246
|
accessibilityLabel: accessibilityLabel ?? title,
|
|
@@ -192,26 +253,34 @@ export const Button = /*#__PURE__*/memo(({
|
|
|
192
253
|
scale
|
|
193
254
|
}]
|
|
194
255
|
}],
|
|
195
|
-
children:
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
}) : /*#__PURE__*/
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
256
|
+
children: [leftIcon ? /*#__PURE__*/_jsx(View, {
|
|
257
|
+
style: [styles.iconLeft, loading && styles.hidden],
|
|
258
|
+
children: leftIcon
|
|
259
|
+
}) : null, !leftIcon && leftIconName && /*#__PURE__*/_jsx(Icon, {
|
|
260
|
+
name: leftIconName,
|
|
261
|
+
size: iconSize,
|
|
262
|
+
color: effectiveIconColor,
|
|
263
|
+
style: [styles.iconLeft, loading && styles.hidden]
|
|
264
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
265
|
+
allowFontScaling: allowFontScaling,
|
|
266
|
+
style: [labelStyle, loading && styles.hidden],
|
|
267
|
+
children: title
|
|
268
|
+
}), rightIcon ? /*#__PURE__*/_jsx(View, {
|
|
269
|
+
style: [styles.iconRight, loading && styles.hidden],
|
|
270
|
+
children: rightIcon
|
|
271
|
+
}) : null, !rightIcon && rightIconName && /*#__PURE__*/_jsx(Icon, {
|
|
272
|
+
name: rightIconName,
|
|
273
|
+
size: iconSize,
|
|
274
|
+
color: effectiveIconColor,
|
|
275
|
+
style: [styles.iconRight, loading && styles.hidden]
|
|
276
|
+
}), loading && /*#__PURE__*/_jsx(View, {
|
|
277
|
+
style: styles.spinner,
|
|
278
|
+
pointerEvents: "none",
|
|
279
|
+
children: /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
280
|
+
size: "small",
|
|
281
|
+
color: resolved.text
|
|
282
|
+
})
|
|
283
|
+
})]
|
|
215
284
|
})
|
|
216
285
|
);
|
|
217
286
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","useRef","ActivityIndicator","Animated","Pressable","Text","createStyles","useAllowFontScaling","useColors","useTheme","Icon","
|
|
1
|
+
{"version":3,"names":["React","memo","useRef","ActivityIndicator","Animated","Pressable","Text","View","createStyles","useAllowFontScaling","useColors","useTheme","Icon","useReduceMotion","jsx","_jsx","jsxs","_jsxs","AnimatedPressable","createAnimatedComponent","useStyles","theme","base","flexDirection","alignItems","justifyContent","borderRadius","tokens","radius","lg","borderWidth","sm","paddingVertical","spacing","paddingHorizontal","md","xl","xxl","link","xs","outline","filledShadow","shadow","text","fontWeight","semibold","textAlign","textSm","fontSize","textMd","textLg","underline","textDecorationLine","iconLeft","marginRight","iconRight","marginLeft","hidden","opacity","spinner","position","top","bottom","left","right","useHitSlop","size","variant","v","undefined","resolveColors","disabled","colors","background","inputBackground","textLight","border","primaryText","primary","secondary","onSecondary","error","onError","onPrimary","Button","title","onPress","loading","style","textStyle","leftIcon","rightIcon","leftIconName","rightIconName","iconColor","testID","accessibilityLabel","styles","allowFontScaling","scale","Value","current","reduceMotion","hitSlop","isDisabled","isFilled","resolved","effectiveIconColor","animateTo","value","spring","toValue","useNativeDriver","speed","bounciness","start","containerStyle","borderColor","backgroundColor","labelStyle","color","iconSize","onPressIn","onPressOut","accessibilityRole","accessibilityState","busy","transform","children","name","pointerEvents","displayName"],"sourceRoot":"../../../src","sources":["atoms/Button.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,MAAM,QAAQ,OAAO;AAC3C,SACEC,iBAAiB,EACjBC,QAAQ,EACRC,SAAS,EACTC,IAAI,EACJC,IAAI,QAMC,cAAc;AACrB,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,mBAAmB,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,qBAAqB;AAC9E,SAASC,IAAI,QAAQ,eAAe;AACpC,SAASC,eAAe,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG/C,MAAMC,iBAAiB,GAAGd,QAAQ,CAACe,uBAAuB,CAACd,SAAS,CAAC;AAuCrE,MAAMe,SAAS,GAAGZ,YAAY,CAAEa,KAAK,KAAM;EACzCC,IAAI,EAAE;IACJC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,YAAY,EAAEL,KAAK,CAACM,MAAM,CAACC,MAAM,CAACC,EAAE;IACpCC,WAAW,EAAE;EACf,CAAC;EACDC,EAAE,EAAE;IAAEC,eAAe,EAAEX,KAAK,CAACM,MAAM,CAACM,OAAO,CAACF,EAAE;IAAEG,iBAAiB,EAAEb,KAAK,CAACM,MAAM,CAACM,OAAO,CAACE;EAAG,CAAC;EAC5FA,EAAE,EAAE;IAAEH,eAAe,EAAEX,KAAK,CAACM,MAAM,CAACM,OAAO,CAACJ,EAAE;IAAEK,iBAAiB,EAAEb,KAAK,CAACM,MAAM,CAACM,OAAO,CAACG;EAAG,CAAC;EAC5FP,EAAE,EAAE;IAAEG,eAAe,EAAEX,KAAK,CAACM,MAAM,CAACM,OAAO,CAACG,EAAE;IAAEF,iBAAiB,EAAEb,KAAK,CAACM,MAAM,CAACM,OAAO,CAACI;EAAI,CAAC;EAC7FC,IAAI,EAAE;IAAEN,eAAe,EAAEX,KAAK,CAACM,MAAM,CAACM,OAAO,CAACM,EAAE;IAAEL,iBAAiB,EAAE,CAAC;IAAET,cAAc,EAAE;EAAa,CAAC;EACtGe,OAAO,EAAE;IAAEV,WAAW,EAAE;EAAE,CAAC;EAC3BW,YAAY,EAAEpB,KAAK,CAACM,MAAM,CAACe,MAAM,CAACP,EAAE;EACpCQ,IAAI,EAAE;IAAEC,UAAU,EAAEvB,KAAK,CAACM,MAAM,CAACiB,UAAU,CAACC,QAAQ;IAAEC,SAAS,EAAE;EAAS,CAAC;EAC3EC,MAAM,EAAE;IAAEC,QAAQ,EAAE3B,KAAK,CAACM,MAAM,CAACqB,QAAQ,CAACjB;EAAG,CAAC;EAC9CkB,MAAM,EAAE;IAAED,QAAQ,EAAE3B,KAAK,CAACM,MAAM,CAACqB,QAAQ,CAACnB;EAAG,CAAC;EAC9CqB,MAAM,EAAE;IAAEF,QAAQ,EAAE3B,KAAK,CAACM,MAAM,CAACqB,QAAQ,CAACZ;EAAG,CAAC;EAC9Ce,SAAS,EAAE;IAAEC,kBAAkB,EAAE;EAAY,CAAC;EAC9CC,QAAQ,EAAE;IAAEC,WAAW,EAAEjC,KAAK,CAACM,MAAM,CAACM,OAAO,CAACF;EAAG,CAAC;EAClDwB,SAAS,EAAE;IAAEC,UAAU,EAAEnC,KAAK,CAACM,MAAM,CAACM,OAAO,CAACF;EAAG,CAAC;EAClD;EACA;EACA0B,MAAM,EAAE;IAAEC,OAAO,EAAE;EAAE,CAAC;EACtBC,OAAO,EAAE;IAAEC,QAAQ,EAAE,UAAU;IAAEC,GAAG,EAAE,CAAC;IAAEC,MAAM,EAAE,CAAC;IAAEC,IAAI,EAAE,CAAC;IAAEC,KAAK,EAAE,CAAC;IAAExC,UAAU,EAAE,QAAQ;IAAEC,cAAc,EAAE;EAAS;AACxH,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA,SAASwC,UAAUA,CAACC,IAAgB,EAAEC,OAAsB,EAAsB;EAChF,MAAM9C,KAAK,GAAGV,QAAQ,CAAC,CAAC;EACxB,IAAIwD,OAAO,KAAK,MAAM,EAAE;IACtB,MAAMC,CAAC,GAAG/C,KAAK,CAACM,MAAM,CAACM,OAAO,CAACE,EAAE;IACjC,OAAO;MAAE0B,GAAG,EAAEO,CAAC;MAAEN,MAAM,EAAEM,CAAC;MAAEL,IAAI,EAAE1C,KAAK,CAACM,MAAM,CAACM,OAAO,CAACF,EAAE;MAAEiC,KAAK,EAAE3C,KAAK,CAACM,MAAM,CAACM,OAAO,CAACF;IAAG,CAAC;EAC7F;EACA,IAAImC,IAAI,KAAK,IAAI,EAAE;IACjB,MAAME,CAAC,GAAG/C,KAAK,CAACM,MAAM,CAACM,OAAO,CAACF,EAAE;IACjC,OAAO;MAAE8B,GAAG,EAAEO,CAAC;MAAEN,MAAM,EAAEM;IAAE,CAAC;EAC9B;EACA,OAAOC,SAAS;AAClB;AAEA,SAASC,aAAaA,CAACH,OAAsB,EAAEI,QAAiB,EAAEC,MAAoC,EAAE;EACtG,IAAID,QAAQ,EAAE;IACZ,OAAO;MAAEE,UAAU,EAAED,MAAM,CAACE,eAAe;MAAE/B,IAAI,EAAE6B,MAAM,CAACG,SAAS;MAAEC,MAAM,EAAE;IAAc,CAAC;EAC9F;EACA,QAAQT,OAAO;IACb;IACA;IACA,KAAK,SAAS;MACZ,OAAO;QAAEM,UAAU,EAAE,aAAa;QAAE9B,IAAI,EAAE6B,MAAM,CAACK,WAAW;QAAED,MAAM,EAAEJ,MAAM,CAACM;MAAQ,CAAC;IACxF,KAAK,OAAO;MACV,OAAO;QAAEL,UAAU,EAAE,aAAa;QAAE9B,IAAI,EAAE6B,MAAM,CAACK,WAAW;QAAED,MAAM,EAAE;MAAc,CAAC;IACvF,KAAK,MAAM;MACT,OAAO;QAAEH,UAAU,EAAE,aAAa;QAAE9B,IAAI,EAAE6B,MAAM,CAACK,WAAW;QAAED,MAAM,EAAE;MAAc,CAAC;IACvF,KAAK,WAAW;MACd,OAAO;QAAEH,UAAU,EAAED,MAAM,CAACO,SAAS;QAAEpC,IAAI,EAAE6B,MAAM,CAACQ,WAAW;QAAEJ,MAAM,EAAE;MAAc,CAAC;IAC1F,KAAK,aAAa;MAChB,OAAO;QAAEH,UAAU,EAAED,MAAM,CAACS,KAAK;QAAEtC,IAAI,EAAE6B,MAAM,CAACU,OAAO;QAAEN,MAAM,EAAE;MAAc,CAAC;IAClF,KAAK,SAAS;IACd;MACE,OAAO;QAAEH,UAAU,EAAED,MAAM,CAACM,OAAO;QAAEnC,IAAI,EAAE6B,MAAM,CAACW,SAAS;QAAEP,MAAM,EAAE;MAAc,CAAC;EACxF;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMQ,MAAM,gBAAGnF,IAAI,CACxB,CAAC;EACCoF,KAAK;EACLC,OAAO;EACPnB,OAAO,GAAG,SAAS;EACnBD,IAAI,GAAG,IAAI;EACXqB,OAAO,GAAG,KAAK;EACfhB,QAAQ,GAAG,KAAK;EAChBiB,KAAK;EACLC,SAAS;EACTC,QAAQ;EACRC,SAAS;EACTC,YAAY;EACZC,aAAa;EACbC,SAAS;EACTC,MAAM;EACNC;AACW,CAAC,KAAK;EACjB,MAAMC,MAAM,GAAG7E,SAAS,CAAC,CAAC;EAC1B,MAAMoD,MAAM,GAAG9D,SAAS,CAAC,CAAC;EAC1B,MAAMW,KAAK,GAAGV,QAAQ,CAAC,CAAC;EACxB,MAAMuF,gBAAgB,GAAGzF,mBAAmB,CAAC,CAAC;EAC9C,MAAM0F,KAAK,GAAGjG,MAAM,CAAC,IAAIE,QAAQ,CAACgG,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EACnD,MAAMC,YAAY,GAAGzF,eAAe,CAAC,CAAC;EACtC,MAAM0F,OAAO,GAAGtC,UAAU,CAACC,IAAI,EAAEC,OAAO,CAAC;EACzC,MAAMqC,UAAU,GAAGjC,QAAQ,IAAIgB,OAAO;EACtC,MAAMkB,QAAQ,GAAGtC,OAAO,KAAK,SAAS,IAAIA,OAAO,KAAK,WAAW,IAAIA,OAAO,KAAK,aAAa;EAE9F,MAAMuC,QAAQ,GAAGpC,aAAa,CAACH,OAAO,EAAEI,QAAQ,EAAEC,MAAM,CAAC;EACzD,MAAMmC,kBAAkB,GAAGb,SAAS,IAAIY,QAAQ,CAAC/D,IAAI;EAErD,MAAMiE,SAAS,GAAIC,KAAa,IAAK;IACnC,IAAIP,YAAY,EAAE;IAClBlG,QAAQ,CAAC0G,MAAM,CAACX,KAAK,EAAE;MAAEY,OAAO,EAAEF,KAAK;MAAEG,eAAe,EAAE,IAAI;MAAEC,KAAK,EAAE,EAAE;MAAEC,UAAU,EAAE;IAAE,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;EACrG,CAAC;EAED,MAAMC,cAAoC,GAAG,CAC3CnB,MAAM,CAAC3E,IAAI,EACX2E,MAAM,CAAC/B,IAAI,CAAC,EACZC,OAAO,KAAK,MAAM,IAAI8B,MAAM,CAAC3D,IAAI,EACjC6B,OAAO,KAAK,SAAS,IAAI,CAAC8B,MAAM,CAACzD,OAAO,EAAE;IAAE6E,WAAW,EAAEX,QAAQ,CAAC9B;EAAO,CAAC,CAAC,EAC3E;IAAE0C,eAAe,EAAEZ,QAAQ,CAACjC;EAAW,CAAC,EACxCgC,QAAQ,IAAI,CAAClC,QAAQ,IAAI0B,MAAM,CAACxD,YAAY;EAC5C;EACA;EACA;EACA;IAAEiB,OAAO,EAAE6B,OAAO,IAAI,CAAChB,QAAQ,GAAG,GAAG,GAAG;EAAE,CAAC,EAC3CiB,KAAK,CACN;EAED,MAAM+B,UAAgC,GAAG,CACvCtB,MAAM,CAACtD,IAAI,EACXuB,IAAI,KAAK,IAAI,GAAG+B,MAAM,CAAClD,MAAM,GAAGmB,IAAI,KAAK,IAAI,GAAG+B,MAAM,CAAC/C,MAAM,GAAG+C,MAAM,CAAChD,MAAM,EAC7E;IAAEuE,KAAK,EAAEd,QAAQ,CAAC/D;EAAK,CAAC,EACxBwB,OAAO,KAAK,MAAM,IAAI8B,MAAM,CAAC9C,SAAS,EACtCsC,SAAS,CACV;EAED,MAAMgC,QAAQ,GAAGvD,IAAI,KAAK,IAAI,GAAG,EAAE,GAAGA,IAAI,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE;EAE7D;IAAA;IACE;IACA;IACA;IACA;IACA;IACAjD,KAAA,CAACC,iBAAiB;MAChBoE,OAAO,EAAEA,OAAQ;MACjBoC,SAAS,EAAEA,CAAA,KAAM;QACf,IAAI,CAAClB,UAAU,EAAEI,SAAS,CAAC,IAAI,CAAC;MAClC,CAAE;MACFe,UAAU,EAAEA,CAAA,KAAM;QAChB,IAAI,CAACnB,UAAU,EAAEI,SAAS,CAAC,CAAC,CAAC;MAC/B,CAAE;MACFrC,QAAQ,EAAEiC,UAAW;MACrBD,OAAO,EAAEA,OAAQ;MACjBR,MAAM,EAAEA,MAAO;MACf6B,iBAAiB,EAAC,QAAQ;MAC1B5B,kBAAkB,EAAEA,kBAAkB,IAAIX,KAAM;MAChDwC,kBAAkB,EAAE;QAAEtD,QAAQ,EAAEiC,UAAU;QAAEsB,IAAI,EAAEvC;MAAQ,CAAE;MAC5DC,KAAK,EAAE,CAAC4B,cAAc,EAAE;QAAEW,SAAS,EAAE,CAAC;UAAE5B;QAAM,CAAC;MAAE,CAAC,CAAE;MAAA6B,QAAA,GAEnDtC,QAAQ,gBAAG3E,IAAA,CAACR,IAAI;QAACiF,KAAK,EAAE,CAACS,MAAM,CAAC5C,QAAQ,EAAEkC,OAAO,IAAIU,MAAM,CAACxC,MAAM,CAAE;QAAAuE,QAAA,EAAEtC;MAAQ,CAAO,CAAC,GAAG,IAAI,EAC7F,CAACA,QAAQ,IAAIE,YAAY,iBACxB7E,IAAA,CAACH,IAAI;QACHqH,IAAI,EAAErC,YAAa;QACnB1B,IAAI,EAAEuD,QAAS;QACfD,KAAK,EAAEb,kBAAmB;QAC1BnB,KAAK,EAAE,CAACS,MAAM,CAAC5C,QAAQ,EAAEkC,OAAO,IAAIU,MAAM,CAACxC,MAAM;MAAE,CACpD,CACF,eACD1C,IAAA,CAACT,IAAI;QAAC4F,gBAAgB,EAAEA,gBAAiB;QAACV,KAAK,EAAE,CAAC+B,UAAU,EAAEhC,OAAO,IAAIU,MAAM,CAACxC,MAAM,CAAE;QAAAuE,QAAA,EACrF3C;MAAK,CACF,CAAC,EACNM,SAAS,gBAAG5E,IAAA,CAACR,IAAI;QAACiF,KAAK,EAAE,CAACS,MAAM,CAAC1C,SAAS,EAAEgC,OAAO,IAAIU,MAAM,CAACxC,MAAM,CAAE;QAAAuE,QAAA,EAAErC;MAAS,CAAO,CAAC,GAAG,IAAI,EAChG,CAACA,SAAS,IAAIE,aAAa,iBAC1B9E,IAAA,CAACH,IAAI;QACHqH,IAAI,EAAEpC,aAAc;QACpB3B,IAAI,EAAEuD,QAAS;QACfD,KAAK,EAAEb,kBAAmB;QAC1BnB,KAAK,EAAE,CAACS,MAAM,CAAC1C,SAAS,EAAEgC,OAAO,IAAIU,MAAM,CAACxC,MAAM;MAAE,CACrD,CACF,EACA8B,OAAO,iBACNxE,IAAA,CAACR,IAAI;QAACiF,KAAK,EAAES,MAAM,CAACtC,OAAQ;QAACuE,aAAa,EAAC,MAAM;QAAAF,QAAA,eAC/CjH,IAAA,CAACZ,iBAAiB;UAAC+D,IAAI,EAAC,OAAO;UAACsD,KAAK,EAAEd,QAAQ,CAAC/D;QAAK,CAAE;MAAC,CACpD,CACP;IAAA,CACgB;EAAC;AAExB,CACF,CAAC;AACDyC,MAAM,CAAC+C,WAAW,GAAG,QAAQ","ignoreList":[]}
|
package/lib/module/atoms/Card.js
CHANGED
|
@@ -4,14 +4,36 @@ import React, { memo } from 'react';
|
|
|
4
4
|
import { View } from 'react-native';
|
|
5
5
|
import { createStyles } from '../theme/createStyles';
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const CARD_BORDER_DARK = 1;
|
|
7
8
|
const useStyles = createStyles(theme => ({
|
|
8
9
|
card: {
|
|
9
|
-
|
|
10
|
+
// surfaceRaised: lighter than surface in dark, so a card on a sheet or
|
|
11
|
+
// on another card still reads as a separate tile (figure and ground).
|
|
12
|
+
backgroundColor: theme.colors.surfaceRaised,
|
|
10
13
|
borderRadius: theme.tokens.radius.xl,
|
|
11
14
|
padding: theme.tokens.spacing.lg,
|
|
12
|
-
...theme.tokens.shadow.sm
|
|
15
|
+
...theme.tokens.shadow.sm,
|
|
16
|
+
// In dark the shadow isn't visible and surface barely stands out from the
|
|
17
|
+
// background (or not at all, on another surface): a 1pt border restores
|
|
18
|
+
// the outline (figure and ground). A hairline was invisible.
|
|
19
|
+
...(theme.scheme === 'dark' && {
|
|
20
|
+
borderWidth: CARD_BORDER_DARK,
|
|
21
|
+
borderColor: theme.colors.border
|
|
22
|
+
})
|
|
13
23
|
}
|
|
14
24
|
}));
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Card
|
|
28
|
+
* Surface container: groups related content.
|
|
29
|
+
*
|
|
30
|
+
* Gestalt, common region: everything inside the same background and border
|
|
31
|
+
* reads as a group, even when other elements are nearby. Figure and ground:
|
|
32
|
+
* in light the shadow sets it apart; in dark (where the shadow isn't visible)
|
|
33
|
+
* a thin border does. The inner padding (`spacing.lg`) must be larger than the
|
|
34
|
+
* spacing between the elements inside, so the content reads as one block.
|
|
35
|
+
*/
|
|
36
|
+
|
|
15
37
|
export const Card = /*#__PURE__*/memo(({
|
|
16
38
|
children,
|
|
17
39
|
style,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","View","createStyles","jsx","_jsx","useStyles","theme","card","backgroundColor","colors","
|
|
1
|
+
{"version":3,"names":["React","memo","View","createStyles","jsx","_jsx","CARD_BORDER_DARK","useStyles","theme","card","backgroundColor","colors","surfaceRaised","borderRadius","tokens","radius","xl","padding","spacing","lg","shadow","sm","scheme","borderWidth","borderColor","border","Card","children","style","props","styles","displayName"],"sourceRoot":"../../../src","sources":["atoms/Card.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,QAAwD,cAAc;AACnF,SAASC,YAAY,QAAQ,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQrD,MAAMC,gBAAgB,GAAG,CAAC;AAE1B,MAAMC,SAAS,GAAGJ,YAAY,CAAEK,KAAK,KAAM;EACzCC,IAAI,EAAE;IACJ;IACA;IACAC,eAAe,EAAEF,KAAK,CAACG,MAAM,CAACC,aAAa;IAC3CC,YAAY,EAAEL,KAAK,CAACM,MAAM,CAACC,MAAM,CAACC,EAAE;IACpCC,OAAO,EAAET,KAAK,CAACM,MAAM,CAACI,OAAO,CAACC,EAAE;IAChC,GAAGX,KAAK,CAACM,MAAM,CAACM,MAAM,CAACC,EAAE;IACzB;IACA;IACA;IACA,IAAIb,KAAK,CAACc,MAAM,KAAK,MAAM,IAAI;MAAEC,WAAW,EAAEjB,gBAAgB;MAAEkB,WAAW,EAAEhB,KAAK,CAACG,MAAM,CAACc;IAAO,CAAC;EACpG;AACF,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMC,IAAI,gBAAGzB,IAAI,CAAC,CAAC;EAAE0B,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAAiB,CAAC,KAAK;EACrE,MAAMC,MAAM,GAAGvB,SAAS,CAAC,CAAC;EAC1B,oBACEF,IAAA,CAACH,IAAI;IAAC0B,KAAK,EAAE,CAACE,MAAM,CAACrB,IAAI,EAAEmB,KAAK,CAAE;IAAA,GAAKC,KAAK;IAAAF,QAAA,EACzCA;EAAQ,CACL,CAAC;AAEX,CAAC,CAAC;AACFD,IAAI,CAACK,WAAW,GAAG,MAAM","ignoreList":[]}
|
|
@@ -3,14 +3,18 @@
|
|
|
3
3
|
import React, { memo, useEffect, useRef } from 'react';
|
|
4
4
|
import { Animated, Text, TouchableOpacity } from 'react-native';
|
|
5
5
|
import { createStyles } from '../theme/createStyles';
|
|
6
|
-
import { useAllowFontScaling, useColors } from '../theme/UIProvider';
|
|
6
|
+
import { useAllowFontScaling, useColors, useTheme } from '../theme/UIProvider';
|
|
7
7
|
import { Icon } from '../icons/Icon';
|
|
8
|
+
import { onColor } from '../icons/defaultIcons';
|
|
9
|
+
import { useReduceMotion } from './Transition';
|
|
8
10
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
11
|
const useStyles = createStyles(theme => ({
|
|
12
|
+
// 44pt tall: the whole row is the touch area (Fitts). Replaces the
|
|
13
|
+
// marginBottom that separated stacked checkboxes; now the row provides the room.
|
|
10
14
|
container: {
|
|
11
15
|
flexDirection: 'row',
|
|
12
16
|
alignItems: 'center',
|
|
13
|
-
|
|
17
|
+
minHeight: 44
|
|
14
18
|
},
|
|
15
19
|
box: {
|
|
16
20
|
width: 24,
|
|
@@ -19,34 +23,61 @@ const useStyles = createStyles(theme => ({
|
|
|
19
23
|
borderWidth: 2,
|
|
20
24
|
justifyContent: 'center',
|
|
21
25
|
alignItems: 'center',
|
|
22
|
-
marginRight: theme.tokens.spacing.
|
|
26
|
+
marginRight: theme.tokens.spacing.md
|
|
23
27
|
},
|
|
24
28
|
label: {
|
|
25
29
|
fontSize: theme.tokens.fontSize.md,
|
|
26
30
|
color: theme.colors.text
|
|
31
|
+
},
|
|
32
|
+
labelDisabled: {
|
|
33
|
+
color: theme.colors.textLight
|
|
27
34
|
}
|
|
28
35
|
}));
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Checkbox
|
|
39
|
+
* Box + optional label; the whole row is touchable.
|
|
40
|
+
*
|
|
41
|
+
* Gestalt:
|
|
42
|
+
* - Proximity: the box and its label sit `spacing.md` apart, less than the
|
|
43
|
+
* spacing between rows, so each label reads with its box.
|
|
44
|
+
* - Common region: the whole row is the touch area, not just the box, and it
|
|
45
|
+
* is at least 44pt tall (Fitts).
|
|
46
|
+
* - Figure and ground: when checked, the box fills with the accent and the
|
|
47
|
+
* check turns black or white depending on that fill (also with a custom `color`).
|
|
48
|
+
*
|
|
49
|
+
* `disabled` dims the box and the label (not just the box). The check
|
|
50
|
+
* animation is skipped with Reduce Motion.
|
|
51
|
+
*/
|
|
29
52
|
export const Checkbox = /*#__PURE__*/memo(({
|
|
30
53
|
value,
|
|
31
54
|
onValueChange,
|
|
32
55
|
label,
|
|
33
56
|
color,
|
|
34
57
|
disabled,
|
|
58
|
+
accessibilityLabel,
|
|
35
59
|
testID
|
|
36
60
|
}) => {
|
|
37
61
|
const colors = useColors();
|
|
38
62
|
const styles = useStyles();
|
|
39
63
|
const allowFontScaling = useAllowFontScaling();
|
|
40
64
|
const activeColor = color || colors.primary;
|
|
41
|
-
//
|
|
42
|
-
//
|
|
43
|
-
const checkColor = color ?
|
|
65
|
+
// The check sits on top of the fill: with a custom `color`, black or white is
|
|
66
|
+
// picked by luminance (a fixed white disappeared over light colors).
|
|
67
|
+
const checkColor = color ? onColor(color) : colors.onPrimary;
|
|
68
|
+
const theme = useTheme();
|
|
69
|
+
const reduceMotion = useReduceMotion();
|
|
44
70
|
const progress = useRef(new Animated.Value(value ? 1 : 0)).current;
|
|
45
71
|
const checkScale = useRef(new Animated.Value(value ? 1 : 0)).current;
|
|
46
72
|
useEffect(() => {
|
|
73
|
+
if (reduceMotion) {
|
|
74
|
+
progress.setValue(value ? 1 : 0);
|
|
75
|
+
checkScale.setValue(value ? 1 : 0);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
47
78
|
Animated.timing(progress, {
|
|
48
79
|
toValue: value ? 1 : 0,
|
|
49
|
-
duration:
|
|
80
|
+
duration: theme.tokens.duration.fast,
|
|
50
81
|
useNativeDriver: false
|
|
51
82
|
}).start();
|
|
52
83
|
Animated.spring(checkScale, {
|
|
@@ -55,7 +86,7 @@ export const Checkbox = /*#__PURE__*/memo(({
|
|
|
55
86
|
speed: 40,
|
|
56
87
|
bounciness: 10
|
|
57
88
|
}).start();
|
|
58
|
-
}, [value]);
|
|
89
|
+
}, [value, reduceMotion]);
|
|
59
90
|
const backgroundColor = progress.interpolate({
|
|
60
91
|
inputRange: [0, 1],
|
|
61
92
|
outputRange: [colors.surface, activeColor]
|
|
@@ -74,7 +105,7 @@ export const Checkbox = /*#__PURE__*/memo(({
|
|
|
74
105
|
checked: value,
|
|
75
106
|
disabled: !!disabled
|
|
76
107
|
},
|
|
77
|
-
accessibilityLabel: label,
|
|
108
|
+
accessibilityLabel: accessibilityLabel ?? label,
|
|
78
109
|
testID: testID,
|
|
79
110
|
children: [/*#__PURE__*/_jsx(Animated.View, {
|
|
80
111
|
style: [styles.box, {
|
|
@@ -94,9 +125,9 @@ export const Checkbox = /*#__PURE__*/memo(({
|
|
|
94
125
|
color: checkColor
|
|
95
126
|
})
|
|
96
127
|
})
|
|
97
|
-
}), label && /*#__PURE__*/_jsx(Text, {
|
|
128
|
+
}), !!label && /*#__PURE__*/_jsx(Text, {
|
|
98
129
|
allowFontScaling: allowFontScaling,
|
|
99
|
-
style: styles.label,
|
|
130
|
+
style: [styles.label, disabled && styles.labelDisabled],
|
|
100
131
|
children: label
|
|
101
132
|
})]
|
|
102
133
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","useEffect","useRef","Animated","Text","TouchableOpacity","createStyles","useAllowFontScaling","useColors","Icon","jsx","_jsx","jsxs","_jsxs","useStyles","theme","container","flexDirection","alignItems","
|
|
1
|
+
{"version":3,"names":["React","memo","useEffect","useRef","Animated","Text","TouchableOpacity","createStyles","useAllowFontScaling","useColors","useTheme","Icon","onColor","useReduceMotion","jsx","_jsx","jsxs","_jsxs","useStyles","theme","container","flexDirection","alignItems","minHeight","box","width","height","borderRadius","tokens","radius","sm","borderWidth","justifyContent","marginRight","spacing","md","label","fontSize","color","colors","text","labelDisabled","textLight","Checkbox","value","onValueChange","disabled","accessibilityLabel","testID","styles","allowFontScaling","activeColor","primary","checkColor","onPrimary","reduceMotion","progress","Value","current","checkScale","setValue","timing","toValue","duration","fast","useNativeDriver","start","spring","speed","bounciness","backgroundColor","interpolate","inputRange","outputRange","surface","borderColor","border","style","activeOpacity","onPress","accessibilityRole","accessibilityState","checked","children","View","opacity","transform","scale","name","size","displayName"],"sourceRoot":"../../../src","sources":["atoms/Checkbox.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,19 +2,44 @@
|
|
|
2
2
|
|
|
3
3
|
import React, { memo } from 'react';
|
|
4
4
|
import { View } from 'react-native';
|
|
5
|
-
import {
|
|
5
|
+
import { useTheme } from '../theme/UIProvider';
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
/**
|
|
8
|
+
* Divider
|
|
9
|
+
* 1pt line in `colors.border`.
|
|
10
|
+
*
|
|
11
|
+
* Gestalt: separates groups when proximity alone isn't enough (dense lists,
|
|
12
|
+
* rows spanning the whole screen). If spacing already separates the groups,
|
|
13
|
+
* prefer spacing: one line too many fragments what should read together.
|
|
14
|
+
* `spacing` takes its room from the token scale so the separation is the
|
|
15
|
+
* same across the whole app, instead of a different margin on each screen.
|
|
16
|
+
*
|
|
17
|
+
* It is decorative: it doesn't enter the accessibility tree.
|
|
18
|
+
*/
|
|
7
19
|
export const Divider = /*#__PURE__*/memo(({
|
|
20
|
+
orientation = 'horizontal',
|
|
21
|
+
spacing,
|
|
8
22
|
style,
|
|
9
23
|
testID
|
|
10
24
|
}) => {
|
|
11
|
-
const
|
|
25
|
+
const theme = useTheme();
|
|
26
|
+
const gap = spacing ? theme.tokens.spacing[spacing] : 0;
|
|
27
|
+
const line = orientation === 'vertical' ? {
|
|
28
|
+
width: 1,
|
|
29
|
+
alignSelf: 'stretch',
|
|
30
|
+
marginHorizontal: gap
|
|
31
|
+
} : {
|
|
32
|
+
height: 1,
|
|
33
|
+
width: '100%',
|
|
34
|
+
marginVertical: gap
|
|
35
|
+
};
|
|
12
36
|
return /*#__PURE__*/_jsx(View, {
|
|
13
37
|
testID: testID,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
38
|
+
accessible: false,
|
|
39
|
+
importantForAccessibility: "no-hide-descendants",
|
|
40
|
+
accessibilityElementsHidden: true,
|
|
41
|
+
style: [line, {
|
|
42
|
+
backgroundColor: theme.colors.border
|
|
18
43
|
}, style]
|
|
19
44
|
});
|
|
20
45
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","View","
|
|
1
|
+
{"version":3,"names":["React","memo","View","useTheme","jsx","_jsx","Divider","orientation","spacing","style","testID","theme","gap","tokens","line","width","alignSelf","marginHorizontal","height","marginVertical","accessible","importantForAccessibility","accessibilityElementsHidden","backgroundColor","colors","border","displayName"],"sourceRoot":"../../../src","sources":["atoms/Divider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,QAAwC,cAAc;AACnE,SAASC,QAAQ,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAY/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,OAAO,gBAAGL,IAAI,CAAC,CAAC;EAAEM,WAAW,GAAG,YAAY;EAAEC,OAAO;EAAEC,KAAK;EAAEC;AAAqB,CAAC,KAAK;EACpG,MAAMC,KAAK,GAAGR,QAAQ,CAAC,CAAC;EACxB,MAAMS,GAAG,GAAGJ,OAAO,GAAGG,KAAK,CAACE,MAAM,CAACL,OAAO,CAACA,OAAO,CAAC,GAAG,CAAC;EACvD,MAAMM,IAAe,GACnBP,WAAW,KAAK,UAAU,GACtB;IAAEQ,KAAK,EAAE,CAAC;IAAEC,SAAS,EAAE,SAAS;IAAEC,gBAAgB,EAAEL;EAAI,CAAC,GACzD;IAAEM,MAAM,EAAE,CAAC;IAAEH,KAAK,EAAE,MAAM;IAAEI,cAAc,EAAEP;EAAI,CAAC;EACvD,oBACEP,IAAA,CAACH,IAAI;IACHQ,MAAM,EAAEA,MAAO;IACfU,UAAU,EAAE,KAAM;IAClBC,yBAAyB,EAAC,qBAAqB;IAC/CC,2BAA2B;IAC3Bb,KAAK,EAAE,CAACK,IAAI,EAAE;MAAES,eAAe,EAAEZ,KAAK,CAACa,MAAM,CAACC;IAAO,CAAC,EAAEhB,KAAK;EAAE,CAChE,CAAC;AAEN,CAAC,CAAC;AACFH,OAAO,CAACoB,WAAW,GAAG,SAAS","ignoreList":[]}
|