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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createStyles","_UIProvider","_Icon","_PressableScale","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useStyles","createStyles","theme","card","flex","alignItems","justifyContent","backgroundColor","colors","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createStyles","_UIProvider","_Icon","_PressableScale","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ICON_SIZE","VERTICAL_MIN_HEIGHT","DISABLED_OPACITY","BORDER","BORDER_SELECTED","useStyles","createStyles","theme","card","flex","alignItems","justifyContent","backgroundColor","colors","surfaceRaised","borderRadius","tokens","radius","md","borderWidth","borderColor","border","padding","spacing","shadow","sm","cardHorizontal","flexDirection","gap","cardVertical","minHeight","cardSelected","primary","primarySoft","elevation","shadowOpacity","cardDisabled","opacity","text","flexShrink","textVertical","label","color","fontSize","lineHeight","fontWeight","medium","labelVertical","textAlign","labelSelected","primaryText","description","textLight","marginTop","xxs","descriptionVertical","OptionCard","exports","memo","iconName","isSelected","onPress","disabled","layout","style","testID","useColors","styles","allowFontScaling","useAllowFontScaling","isVertical","jsxs","PressableScale","accessibilityRole","accessibilityState","selected","checked","accessibilityLabel","children","jsx","Icon","name","size","View","Text","displayName"],"sourceRoot":"../../../src","sources":["molecules/OptionCard.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,30 +8,58 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _createStyles = require("../theme/createStyles");
|
|
10
10
|
var _UIProvider = require("../theme/UIProvider");
|
|
11
|
+
var _useReduceMotion = require("../theme/useReduceMotion");
|
|
11
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
13
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
14
|
+
/** Inset between the track and the segments. */
|
|
15
|
+
const TRACK_PADDING = 3;
|
|
16
|
+
/** Minimum touch target (Fitts): the segment plus the track inset reach it. */
|
|
17
|
+
const MIN_TOUCH = 44;
|
|
18
|
+
const DISABLED_OPACITY = 0.5;
|
|
19
|
+
const HIT_SLOP = {
|
|
20
|
+
top: TRACK_PADDING,
|
|
21
|
+
bottom: TRACK_PADDING
|
|
22
|
+
};
|
|
13
23
|
const useStyles = (0, _createStyles.createStyles)(theme => ({
|
|
14
24
|
track: {
|
|
15
25
|
flexDirection: 'row',
|
|
16
26
|
backgroundColor: theme.colors.inputBackground,
|
|
17
27
|
borderRadius: theme.tokens.radius.md,
|
|
18
|
-
padding:
|
|
28
|
+
padding: TRACK_PADDING
|
|
19
29
|
},
|
|
20
30
|
segment: {
|
|
21
31
|
flex: 1,
|
|
32
|
+
minHeight: MIN_TOUCH - TRACK_PADDING * 2,
|
|
22
33
|
paddingVertical: theme.tokens.spacing.sm,
|
|
34
|
+
paddingHorizontal: theme.tokens.spacing.xs,
|
|
23
35
|
borderRadius: theme.tokens.radius.sm,
|
|
24
|
-
alignItems: 'center'
|
|
36
|
+
alignItems: 'center',
|
|
37
|
+
justifyContent: 'center'
|
|
25
38
|
},
|
|
26
|
-
|
|
39
|
+
// Light: a white segment with a shadow over the grey track. Dark: shadows
|
|
40
|
+
// don't show and `surface` is darker than the track (the segment looked
|
|
41
|
+
// sunken), so the selected one takes the soft accent fill instead.
|
|
42
|
+
// One shared indicator slides under the segments; until the track is
|
|
43
|
+
// measured, the selected segment paints this same fill itself.
|
|
44
|
+
indicator: {
|
|
45
|
+
position: 'absolute',
|
|
46
|
+
top: TRACK_PADDING,
|
|
47
|
+
bottom: TRACK_PADDING,
|
|
48
|
+
start: TRACK_PADDING,
|
|
49
|
+
borderRadius: theme.tokens.radius.sm
|
|
50
|
+
},
|
|
51
|
+
segmentActive: theme.scheme === 'dark' ? {
|
|
52
|
+
backgroundColor: theme.colors.primarySoft
|
|
53
|
+
} : {
|
|
27
54
|
backgroundColor: theme.colors.surface,
|
|
28
55
|
...theme.tokens.shadow.sm
|
|
29
56
|
},
|
|
30
57
|
segmentDisabled: {
|
|
31
|
-
opacity:
|
|
58
|
+
opacity: DISABLED_OPACITY
|
|
32
59
|
},
|
|
33
60
|
label: {
|
|
34
|
-
fontSize: theme.tokens.fontSize.
|
|
61
|
+
fontSize: theme.tokens.fontSize.md,
|
|
62
|
+
lineHeight: theme.tokens.lineHeight.md,
|
|
35
63
|
fontWeight: theme.tokens.fontWeight.medium,
|
|
36
64
|
color: theme.colors.textLight
|
|
37
65
|
},
|
|
@@ -43,8 +71,18 @@ const useStyles = (0, _createStyles.createStyles)(theme => ({
|
|
|
43
71
|
|
|
44
72
|
/**
|
|
45
73
|
* SegmentedControl
|
|
46
|
-
*
|
|
47
|
-
*
|
|
74
|
+
* Picks one option among a few, all visible. It knows no global state:
|
|
75
|
+
* it receives `value` and reports through `onChange`.
|
|
76
|
+
*
|
|
77
|
+
* Gestalt, common region: one track holds every segment, so they read as a
|
|
78
|
+
* single question. Similarity: equal widths and one line each, so no option
|
|
79
|
+
* looks more important. Figure-ground: the selected segment is raised (surface
|
|
80
|
+
* + shadow) above the sunken track; in dark, where shadows vanish, it takes
|
|
81
|
+
* the soft accent fill. Fitts: every segment reaches 44pt.
|
|
82
|
+
*
|
|
83
|
+
* Continuity: the selection is one indicator that slides from the old segment
|
|
84
|
+
* to the new one, so the eye follows the change instead of seeing one fill
|
|
85
|
+
* vanish and another appear. With Reduce Motion it jumps.
|
|
48
86
|
*/
|
|
49
87
|
function SegmentedControlInner({
|
|
50
88
|
options,
|
|
@@ -55,18 +93,68 @@ function SegmentedControlInner({
|
|
|
55
93
|
testID
|
|
56
94
|
}) {
|
|
57
95
|
const styles = useStyles();
|
|
96
|
+
const theme = (0, _UIProvider.useTheme)();
|
|
58
97
|
const allowFontScaling = (0, _UIProvider.useAllowFontScaling)();
|
|
59
|
-
|
|
98
|
+
const reduceMotion = (0, _useReduceMotion.useReduceMotion)();
|
|
99
|
+
const [trackWidth, setTrackWidth] = (0, _react.useState)(0);
|
|
100
|
+
const offset = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
|
|
101
|
+
const placed = (0, _react.useRef)(false);
|
|
102
|
+
const index = options.findIndex(option => option.value === value);
|
|
103
|
+
const segmentWidth = trackWidth > 0 && options.length > 0 ? (trackWidth - TRACK_PADDING * 2) / options.length : 0;
|
|
104
|
+
const showIndicator = segmentWidth > 0 && index >= 0;
|
|
105
|
+
// transform isn't mirrored in RTL: the indicator starts at the right edge
|
|
106
|
+
// (`start`), so it moves left.
|
|
107
|
+
const target = index * segmentWidth * (_reactNative.I18nManager.isRTL ? -1 : 1);
|
|
108
|
+
(0, _react.useEffect)(() => {
|
|
109
|
+
if (!showIndicator) return;
|
|
110
|
+
// First placement (and Reduce Motion) jumps; only a change of value slides.
|
|
111
|
+
if (!placed.current || reduceMotion) {
|
|
112
|
+
placed.current = true;
|
|
113
|
+
offset.setValue(target);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
const animation = _reactNative.Animated.timing(offset, {
|
|
117
|
+
toValue: target,
|
|
118
|
+
duration: theme.tokens.duration.base,
|
|
119
|
+
easing: _reactNative.Easing.out(_reactNative.Easing.cubic),
|
|
120
|
+
useNativeDriver: true
|
|
121
|
+
});
|
|
122
|
+
animation.start();
|
|
123
|
+
return () => animation.stop();
|
|
124
|
+
}, [target, showIndicator, reduceMotion, offset, theme.tokens.duration.base]);
|
|
125
|
+
|
|
126
|
+
// A new width (rotation, resize) places the indicator without animating.
|
|
127
|
+
const onLayout = e => {
|
|
128
|
+
const width = e.nativeEvent.layout.width;
|
|
129
|
+
if (width === trackWidth) return;
|
|
130
|
+
placed.current = false;
|
|
131
|
+
setTrackWidth(width);
|
|
132
|
+
};
|
|
133
|
+
const activeDisabled = disabled || !!options[index]?.disabled;
|
|
134
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
60
135
|
style: [styles.track, style],
|
|
61
136
|
accessibilityRole: "radiogroup",
|
|
62
137
|
testID: testID,
|
|
63
|
-
|
|
138
|
+
onLayout: onLayout,
|
|
139
|
+
children: [showIndicator && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
|
|
140
|
+
pointerEvents: "none",
|
|
141
|
+
testID: testID && `${testID}-indicator`,
|
|
142
|
+
style: [styles.indicator, styles.segmentActive, {
|
|
143
|
+
width: segmentWidth,
|
|
144
|
+
transform: [{
|
|
145
|
+
translateX: offset
|
|
146
|
+
}]
|
|
147
|
+
}, activeDisabled && styles.segmentDisabled]
|
|
148
|
+
}), options.map(option => {
|
|
64
149
|
const active = option.value === value;
|
|
65
150
|
const isDisabled = disabled || !!option.disabled;
|
|
66
151
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
67
|
-
style: [styles.segment, active && styles.segmentActive, isDisabled && styles.segmentDisabled],
|
|
68
|
-
onPress: () =>
|
|
152
|
+
style: [styles.segment, active && !showIndicator && styles.segmentActive, isDisabled && styles.segmentDisabled],
|
|
153
|
+
onPress: () => {
|
|
154
|
+
if (!active) onChange(option.value);
|
|
155
|
+
},
|
|
69
156
|
disabled: isDisabled,
|
|
157
|
+
hitSlop: HIT_SLOP,
|
|
70
158
|
accessibilityRole: "radio",
|
|
71
159
|
accessibilityState: {
|
|
72
160
|
selected: active,
|
|
@@ -77,15 +165,16 @@ function SegmentedControlInner({
|
|
|
77
165
|
testID: testID && `${testID}-${option.value}`,
|
|
78
166
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
79
167
|
allowFontScaling: allowFontScaling,
|
|
168
|
+
numberOfLines: 1,
|
|
80
169
|
style: [styles.label, active && styles.labelActive],
|
|
81
170
|
children: option.label
|
|
82
171
|
})
|
|
83
172
|
}, option.value);
|
|
84
|
-
})
|
|
173
|
+
})]
|
|
85
174
|
});
|
|
86
175
|
}
|
|
87
176
|
|
|
88
|
-
// memo()
|
|
89
|
-
// `value`
|
|
177
|
+
// memo() loses generics when wrapping: the cast restores them so that
|
|
178
|
+
// `value` and `onChange` stay tied to the union of `options`.
|
|
90
179
|
const SegmentedControl = exports.SegmentedControl = /*#__PURE__*/(0, _react.memo)(SegmentedControlInner);
|
|
91
180
|
//# sourceMappingURL=SegmentedControl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createStyles","_UIProvider","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useStyles","createStyles","theme","track","flexDirection","backgroundColor","colors","inputBackground","borderRadius","tokens","radius","md","padding","segment","flex","paddingVertical","spacing","sm","alignItems","segmentActive","surface","shadow","segmentDisabled","opacity","label","fontSize","fontWeight","medium","color","textLight","labelActive","primaryText","semibold","SegmentedControlInner","options","value","onChange","disabled","style","testID","styles","allowFontScaling","useAllowFontScaling","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createStyles","_UIProvider","_useReduceMotion","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TRACK_PADDING","MIN_TOUCH","DISABLED_OPACITY","HIT_SLOP","top","bottom","useStyles","createStyles","theme","track","flexDirection","backgroundColor","colors","inputBackground","borderRadius","tokens","radius","md","padding","segment","flex","minHeight","paddingVertical","spacing","sm","paddingHorizontal","xs","alignItems","justifyContent","indicator","position","start","segmentActive","scheme","primarySoft","surface","shadow","segmentDisabled","opacity","label","fontSize","lineHeight","fontWeight","medium","color","textLight","labelActive","primaryText","semibold","SegmentedControlInner","options","value","onChange","disabled","style","testID","styles","useTheme","allowFontScaling","useAllowFontScaling","reduceMotion","useReduceMotion","trackWidth","setTrackWidth","useState","offset","useRef","Animated","Value","current","placed","index","findIndex","option","segmentWidth","length","showIndicator","target","I18nManager","isRTL","useEffect","setValue","animation","timing","toValue","duration","base","easing","Easing","out","cubic","useNativeDriver","stop","onLayout","width","nativeEvent","layout","activeDisabled","jsxs","View","accessibilityRole","children","jsx","pointerEvents","transform","translateX","map","active","isDisabled","TouchableOpacity","onPress","hitSlop","accessibilityState","selected","checked","accessibilityLabel","Text","numberOfLines","SegmentedControl","exports","memo"],"sourceRoot":"../../../src","sources":["molecules/SegmentedControl.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,6 +9,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
var _reactNative = require("react-native");
|
|
10
10
|
var _createStyles = require("../theme/createStyles");
|
|
11
11
|
var _UIProvider = require("../theme/UIProvider");
|
|
12
|
+
var _useKeyboardField = require("../theme/useKeyboardField");
|
|
12
13
|
var _Icon = require("../icons/Icon");
|
|
13
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
15
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
@@ -29,6 +30,14 @@ const SIZES = {
|
|
|
29
30
|
inputWidth: 64
|
|
30
31
|
}
|
|
31
32
|
};
|
|
33
|
+
|
|
34
|
+
/** Minimum touch target (Fitts): smaller buttons reach it with hitSlop. */
|
|
35
|
+
const MIN_TOUCH = 44;
|
|
36
|
+
const ADJUST_ACTIONS = [{
|
|
37
|
+
name: 'increment'
|
|
38
|
+
}, {
|
|
39
|
+
name: 'decrement'
|
|
40
|
+
}];
|
|
32
41
|
const useStyles = (0, _createStyles.createStyles)(theme => ({
|
|
33
42
|
control: {
|
|
34
43
|
flexDirection: 'row',
|
|
@@ -54,14 +63,14 @@ const useStyles = (0, _createStyles.createStyles)(theme => ({
|
|
|
54
63
|
borderRightWidth: 1,
|
|
55
64
|
borderColor: theme.colors.border
|
|
56
65
|
},
|
|
57
|
-
//
|
|
58
|
-
//
|
|
66
|
+
// The background tells the field apart from a read-only value: it is the
|
|
67
|
+
// only hint that you can type there before touching it.
|
|
59
68
|
editable: {
|
|
60
69
|
backgroundColor: theme.colors.inputBackground
|
|
61
70
|
}
|
|
62
71
|
}));
|
|
63
72
|
|
|
64
|
-
/**
|
|
73
|
+
/** Keeps only what can be part of a number allowed by the range. */
|
|
65
74
|
function sanitizeNumeric(text, {
|
|
66
75
|
allowDecimals = false,
|
|
67
76
|
allowNegative = false
|
|
@@ -76,12 +85,20 @@ function sanitizeNumeric(text, {
|
|
|
76
85
|
|
|
77
86
|
/**
|
|
78
87
|
* Stepper
|
|
79
|
-
*
|
|
80
|
-
*
|
|
88
|
+
* "-" button + editable numeric input + "+" button. `size` controls only the
|
|
89
|
+
* scale and `block` only the width, so both axes combine freely.
|
|
90
|
+
*
|
|
91
|
+
* The component doesn't do the buttons' arithmetic —that lives in
|
|
92
|
+
* `onIncrement`/`onDecrement`—, but it does clean up what is typed and signals
|
|
93
|
+
* when the value hit an end of the range by disabling the button that would pass it.
|
|
81
94
|
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
95
|
+
* Gestalt, common region: the three parts share one border, so they read as a
|
|
96
|
+
* single control; the field is set apart by its fill (it can be typed into).
|
|
97
|
+
* Fitts: every button reaches 44pt, `sm` through hitSlop.
|
|
98
|
+
*
|
|
99
|
+
* Accessibility: the field is an adjustable element — VoiceOver/TalkBack users
|
|
100
|
+
* swipe up/down to step the value — and every name comes from `labels`. Like
|
|
101
|
+
* Input, it stays visible above the keyboard while typing.
|
|
85
102
|
*/
|
|
86
103
|
const Stepper = exports.Stepper = /*#__PURE__*/(0, _react.memo)(({
|
|
87
104
|
value,
|
|
@@ -95,21 +112,32 @@ const Stepper = exports.Stepper = /*#__PURE__*/(0, _react.memo)(({
|
|
|
95
112
|
max,
|
|
96
113
|
allowDecimals = false,
|
|
97
114
|
style,
|
|
98
|
-
|
|
99
|
-
|
|
115
|
+
accessibilityLabel,
|
|
116
|
+
incrementAccessibilityLabel,
|
|
117
|
+
decrementAccessibilityLabel,
|
|
100
118
|
testID
|
|
101
119
|
}) => {
|
|
102
120
|
const theme = (0, _UIProvider.useTheme)();
|
|
103
121
|
const colors = (0, _UIProvider.useColors)();
|
|
104
122
|
const styles = useStyles();
|
|
123
|
+
const labels = (0, _UIProvider.useLabels)();
|
|
105
124
|
const allowFontScaling = (0, _UIProvider.useAllowFontScaling)();
|
|
106
125
|
const [focused, setFocused] = (0, _react.useState)(false);
|
|
126
|
+
const controlRef = (0, _react.useRef)(null);
|
|
127
|
+
const keyboard = (0, _useKeyboardField.useKeyboardField)(controlRef);
|
|
107
128
|
const {
|
|
108
129
|
height,
|
|
109
130
|
icon,
|
|
110
131
|
inputWidth
|
|
111
132
|
} = SIZES[size];
|
|
112
133
|
const fontSize = size === 'sm' ? theme.tokens.fontSize.md : size === 'md' ? theme.tokens.fontSize.lg : theme.tokens.fontSize.xl;
|
|
134
|
+
const slopV = Math.max(0, (MIN_TOUCH - height) / 2);
|
|
135
|
+
const hitSlop = slopV > 0 ? {
|
|
136
|
+
top: slopV,
|
|
137
|
+
bottom: slopV,
|
|
138
|
+
left: slopV,
|
|
139
|
+
right: slopV
|
|
140
|
+
} : undefined;
|
|
113
141
|
const allowNegative = min !== undefined && min < 0;
|
|
114
142
|
const numeric = Number(value);
|
|
115
143
|
const isNumber = value.trim() !== '' && Number.isFinite(numeric);
|
|
@@ -122,17 +150,24 @@ const Stepper = exports.Stepper = /*#__PURE__*/(0, _react.memo)(({
|
|
|
122
150
|
}));
|
|
123
151
|
};
|
|
124
152
|
|
|
125
|
-
//
|
|
126
|
-
//
|
|
153
|
+
// Clamping to the range waits for blur: doing it while typing makes it
|
|
154
|
+
// impossible to reach "12" when the minimum is 5, because the "1" would
|
|
155
|
+
// already be corrected.
|
|
127
156
|
const handleBlur = () => {
|
|
128
157
|
setFocused(false);
|
|
158
|
+
keyboard.blur();
|
|
129
159
|
if (!isNumber) return;
|
|
130
160
|
const clamped = Math.min(max ?? numeric, Math.max(min ?? numeric, numeric));
|
|
131
161
|
if (clamped !== numeric) onChangeText(String(clamped));
|
|
132
162
|
};
|
|
163
|
+
const handleAccessibilityAction = e => {
|
|
164
|
+
if (e.nativeEvent.actionName === 'increment' && !atMax) onIncrement();
|
|
165
|
+
if (e.nativeEvent.actionName === 'decrement' && !atMin) onDecrement();
|
|
166
|
+
};
|
|
133
167
|
const stepButton = (direction, onPress, disabled, label) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
134
168
|
onPress: onPress,
|
|
135
169
|
disabled: disabled,
|
|
170
|
+
hitSlop: hitSlop,
|
|
136
171
|
style: [styles.btn, {
|
|
137
172
|
width: height
|
|
138
173
|
}],
|
|
@@ -149,13 +184,14 @@ const Stepper = exports.Stepper = /*#__PURE__*/(0, _react.memo)(({
|
|
|
149
184
|
})
|
|
150
185
|
});
|
|
151
186
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
187
|
+
ref: controlRef,
|
|
152
188
|
testID: testID,
|
|
153
189
|
style: [styles.control, {
|
|
154
190
|
height
|
|
155
191
|
}, block && styles.controlBlock, focused && {
|
|
156
192
|
borderColor: colors.primary
|
|
157
193
|
}, style],
|
|
158
|
-
children: [stepButton('decrement', onDecrement, atMin, decrementAccessibilityLabel), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
|
|
194
|
+
children: [stepButton('decrement', onDecrement, atMin, decrementAccessibilityLabel ?? labels.decrement), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
|
|
159
195
|
allowFontScaling: allowFontScaling,
|
|
160
196
|
style: [styles.input, {
|
|
161
197
|
fontSize
|
|
@@ -168,13 +204,22 @@ const Stepper = exports.Stepper = /*#__PURE__*/(0, _react.memo)(({
|
|
|
168
204
|
}],
|
|
169
205
|
value: value,
|
|
170
206
|
onChangeText: handleChangeText,
|
|
171
|
-
onFocus: () =>
|
|
207
|
+
onFocus: () => {
|
|
208
|
+
setFocused(true);
|
|
209
|
+
keyboard.focus();
|
|
210
|
+
},
|
|
172
211
|
onBlur: handleBlur,
|
|
173
212
|
editable: editable,
|
|
174
213
|
keyboardType: allowDecimals ? 'decimal-pad' : 'number-pad',
|
|
175
214
|
selectTextOnFocus: true,
|
|
176
|
-
accessibilityLabel:
|
|
177
|
-
|
|
215
|
+
accessibilityLabel: accessibilityLabel ?? labels.quantity,
|
|
216
|
+
accessibilityRole: "adjustable",
|
|
217
|
+
accessibilityValue: {
|
|
218
|
+
text: value
|
|
219
|
+
},
|
|
220
|
+
accessibilityActions: ADJUST_ACTIONS,
|
|
221
|
+
onAccessibilityAction: handleAccessibilityAction
|
|
222
|
+
}), stepButton('increment', onIncrement, atMax, incrementAccessibilityLabel ?? labels.increment)]
|
|
178
223
|
});
|
|
179
224
|
});
|
|
180
225
|
Stepper.displayName = 'Stepper';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createStyles","_UIProvider","_Icon","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SIZES","sm","height","icon","inputWidth","md","lg","useStyles","createStyles","theme","control","flexDirection","alignItems","alignSelf","borderWidth","borderColor","colors","border","borderRadius","tokens","radius","controlBlock","btn","justifyContent","input","textAlign","color","text","borderLeftWidth","borderRightWidth","editable","backgroundColor","inputBackground","sanitizeNumeric","allowDecimals","allowNegative","normalized","replace","negative","trimStart","startsWith","digits","whole","decimals","split","body","length","join","Stepper","exports","memo","value","onChangeText","onIncrement","onDecrement","size","block","min","max","style","incrementAccessibilityLabel","decrementAccessibilityLabel","testID","useTheme","useColors","styles","allowFontScaling","useAllowFontScaling","focused","setFocused","useState","fontSize","xl","undefined","numeric","Number","isNumber","trim","isFinite","atMin","atMax","handleChangeText","handleBlur","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createStyles","_UIProvider","_useKeyboardField","_Icon","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SIZES","sm","height","icon","inputWidth","md","lg","MIN_TOUCH","ADJUST_ACTIONS","name","useStyles","createStyles","theme","control","flexDirection","alignItems","alignSelf","borderWidth","borderColor","colors","border","borderRadius","tokens","radius","controlBlock","btn","justifyContent","input","textAlign","color","text","borderLeftWidth","borderRightWidth","editable","backgroundColor","inputBackground","sanitizeNumeric","allowDecimals","allowNegative","normalized","replace","negative","trimStart","startsWith","digits","whole","decimals","split","body","length","join","Stepper","exports","memo","value","onChangeText","onIncrement","onDecrement","size","block","min","max","style","accessibilityLabel","incrementAccessibilityLabel","decrementAccessibilityLabel","testID","useTheme","useColors","styles","labels","useLabels","allowFontScaling","useAllowFontScaling","focused","setFocused","useState","controlRef","useRef","keyboard","useKeyboardField","fontSize","xl","slopV","Math","hitSlop","top","bottom","left","right","undefined","numeric","Number","isNumber","trim","isFinite","atMin","atMax","handleChangeText","handleBlur","blur","clamped","String","handleAccessibilityAction","nativeEvent","actionName","stepButton","direction","onPress","disabled","label","jsx","TouchableOpacity","width","accessibilityRole","accessibilityState","children","Icon","textLight","primary","jsxs","View","ref","decrement","TextInput","flex","onFocus","focus","onBlur","keyboardType","selectTextOnFocus","quantity","accessibilityValue","accessibilityActions","onAccessibilityAction","increment","displayName"],"sourceRoot":"../../../src","sources":["molecules/Stepper.tsx"],"mappings":"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","ignoreList":[]}
|