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
|
@@ -6,15 +6,27 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.PressableScale = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
+
var _Transition = require("./Transition");
|
|
9
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
11
|
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); }
|
|
12
|
+
/** Short spring with almost no bounce: feedback arrives in ~100 ms (Doherty). */
|
|
13
|
+
const PRESS_SPRING = {
|
|
14
|
+
speed: 50,
|
|
15
|
+
bounciness: 6
|
|
16
|
+
};
|
|
11
17
|
const AnimatedPressable = _reactNative.Animated.createAnimatedComponent(_reactNative.Pressable);
|
|
12
18
|
|
|
13
19
|
/**
|
|
14
20
|
* PressableScale
|
|
15
|
-
*
|
|
16
|
-
* (useNativeDriver: true —
|
|
17
|
-
*
|
|
21
|
+
* Tactile "shrink" feedback on press, with RN's Animated.spring
|
|
22
|
+
* (useNativeDriver: true — runs on the native thread, no JS cost per frame).
|
|
23
|
+
* Doesn't depend on reanimated: the whole library is zero-dependency.
|
|
24
|
+
*
|
|
25
|
+
* Gestalt, figure/ground: as it sinks, the pressed element separates for an
|
|
26
|
+
* instant from the rest and confirms what was touched (Doherty: immediate
|
|
27
|
+
* response). Announces itself as a button by default (`accessibilityRole` can
|
|
28
|
+
* be changed) and, when disabled, exposes `disabled` to the screen reader.
|
|
29
|
+
* With Reduce Motion it doesn't scale.
|
|
18
30
|
*/
|
|
19
31
|
const PressableScale = exports.PressableScale = /*#__PURE__*/(0, _react.memo)(({
|
|
20
32
|
scaleTo = 0.96,
|
|
@@ -23,15 +35,18 @@ const PressableScale = exports.PressableScale = /*#__PURE__*/(0, _react.memo)(({
|
|
|
23
35
|
onPressIn,
|
|
24
36
|
onPressOut,
|
|
25
37
|
disabled,
|
|
38
|
+
accessibilityRole = 'button',
|
|
39
|
+
accessibilityState,
|
|
26
40
|
...props
|
|
27
41
|
}) => {
|
|
28
42
|
const scale = (0, _react.useRef)(new _reactNative.Animated.Value(1)).current;
|
|
43
|
+
const reduceMotion = (0, _Transition.useReduceMotion)();
|
|
29
44
|
const animateTo = value => {
|
|
45
|
+
if (reduceMotion) return;
|
|
30
46
|
_reactNative.Animated.spring(scale, {
|
|
31
47
|
toValue: value,
|
|
32
48
|
useNativeDriver: true,
|
|
33
|
-
|
|
34
|
-
bounciness: 6
|
|
49
|
+
...PRESS_SPRING
|
|
35
50
|
}).start();
|
|
36
51
|
};
|
|
37
52
|
const handlePressIn = e => {
|
|
@@ -44,6 +59,11 @@ const PressableScale = exports.PressableScale = /*#__PURE__*/(0, _react.memo)(({
|
|
|
44
59
|
};
|
|
45
60
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(AnimatedPressable, {
|
|
46
61
|
...props,
|
|
62
|
+
accessibilityRole: accessibilityRole,
|
|
63
|
+
accessibilityState: {
|
|
64
|
+
...accessibilityState,
|
|
65
|
+
disabled: !!disabled
|
|
66
|
+
},
|
|
47
67
|
disabled: disabled,
|
|
48
68
|
onPressIn: handlePressIn,
|
|
49
69
|
onPressOut: handlePressOut,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AnimatedPressable","Animated","createAnimatedComponent","Pressable","PressableScale","exports","memo","scaleTo","style","children","onPressIn","onPressOut","disabled","props","scale","useRef","Value","current","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_Transition","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","PRESS_SPRING","speed","bounciness","AnimatedPressable","Animated","createAnimatedComponent","Pressable","PressableScale","exports","memo","scaleTo","style","children","onPressIn","onPressOut","disabled","accessibilityRole","accessibilityState","props","scale","useRef","Value","current","reduceMotion","useReduceMotion","animateTo","value","spring","toValue","useNativeDriver","start","handlePressIn","handlePressOut","jsx","transform","displayName"],"sourceRoot":"../../../src","sources":["atoms/PressableScale.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -25,15 +25,15 @@ const useStyles = (0, _createStyles.createStyles)(theme => ({
|
|
|
25
25
|
flexDirection: 'row',
|
|
26
26
|
flexWrap: 'wrap'
|
|
27
27
|
},
|
|
28
|
-
//
|
|
29
|
-
//
|
|
28
|
+
// Only top/left: an absoluteFill would stretch the letter to the group's width
|
|
29
|
+
// and realign it. Anchored to the corner it lands exactly on the one below.
|
|
30
30
|
overlay: {
|
|
31
31
|
position: 'absolute',
|
|
32
32
|
top: 0,
|
|
33
33
|
left: 0
|
|
34
34
|
},
|
|
35
|
-
//
|
|
36
|
-
//
|
|
35
|
+
// A word and the spaces that follow it: line breaks happen between
|
|
36
|
+
// groups, never between the letters of a word.
|
|
37
37
|
group: {
|
|
38
38
|
flexDirection: 'row'
|
|
39
39
|
}
|
|
@@ -44,7 +44,7 @@ const ALIGN = {
|
|
|
44
44
|
right: 'flex-end'
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
-
/**
|
|
47
|
+
/** A word with the spaces that follow it, and the index of its first letter. */
|
|
48
48
|
|
|
49
49
|
function toGroups(text) {
|
|
50
50
|
const chars = Array.from(text);
|
|
@@ -55,8 +55,8 @@ function toGroups(text) {
|
|
|
55
55
|
if (current.length === 0) start = index;
|
|
56
56
|
current.push(char);
|
|
57
57
|
const next = chars[index + 1];
|
|
58
|
-
//
|
|
59
|
-
//
|
|
58
|
+
// Closes the group when the run of spaces following the word ends:
|
|
59
|
+
// that way the space travels with it and never starts a line on its own.
|
|
60
60
|
const isSpace = /\s/.test(char);
|
|
61
61
|
if (isSpace && next !== undefined && !/\s/.test(next)) {
|
|
62
62
|
groups.push({
|
|
@@ -75,23 +75,23 @@ function toGroups(text) {
|
|
|
75
75
|
|
|
76
76
|
/**
|
|
77
77
|
* ShinyText
|
|
78
|
-
*
|
|
79
|
-
* `background-clip: text`
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
78
|
+
* A band of light sweeps across the text from left to right. Without
|
|
79
|
+
* `background-clip: text` or masks —which React Native lacks in the supported
|
|
80
|
+
* range— the shine is composed letter by letter: each one carries its resting
|
|
81
|
+
* color and, overlaid on top, the same letter in the shine color with animated
|
|
82
|
+
* opacity. The band is a moving interpolation window: the only thing that
|
|
83
|
+
* changes per frame is `opacity`, which means the whole animation runs on the
|
|
84
|
+
* native thread and JS takes part in no frame.
|
|
85
85
|
*
|
|
86
|
-
* Gestalt,
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
86
|
+
* Gestalt, common fate: the letters light up in sequence and at the same
|
|
87
|
+
* rhythm, so they read as one moving thing —a word lighting up— and not as N
|
|
88
|
+
* letters blinking on their own. That is why the band width is relative to
|
|
89
|
+
* the text and not a fixed number of pixels: a long title and a short one take
|
|
90
|
+
* the same time and are perceived the same.
|
|
91
91
|
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
92
|
+
* With "reduce motion" on, or with `animated={false}`, the text renders flat
|
|
93
|
+
* in `shineColor` —legible, a single node and selectable— because the effect
|
|
94
|
+
* is decorative and nothing it communicates lives in the shine.
|
|
95
95
|
*/
|
|
96
96
|
const ShinyText = exports.ShinyText = /*#__PURE__*/(0, _react.memo)(({
|
|
97
97
|
text,
|
|
@@ -111,9 +111,9 @@ const ShinyText = exports.ShinyText = /*#__PURE__*/(0, _react.memo)(({
|
|
|
111
111
|
const reduceMotion = (0, _Transition.useReduceMotion)();
|
|
112
112
|
const progress = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
|
|
113
113
|
const base = color ?? theme.colors.textLight;
|
|
114
|
-
//
|
|
115
|
-
//
|
|
116
|
-
//
|
|
114
|
+
// The accent, not `text`: against `textLight` the difference is only in
|
|
115
|
+
// luminance and the sweep is barely visible. The shine changes hue as well
|
|
116
|
+
// as lightness, which is what makes the motion readable.
|
|
117
117
|
const shine = shineColor ?? theme.colors.primary;
|
|
118
118
|
const running = animated && !reduceMotion && text.length > 0;
|
|
119
119
|
(0, _react.useEffect)(() => {
|
|
@@ -140,9 +140,9 @@ const ShinyText = exports.ShinyText = /*#__PURE__*/(0, _react.memo)(({
|
|
|
140
140
|
});
|
|
141
141
|
}
|
|
142
142
|
const total = Array.from(text).length;
|
|
143
|
-
//
|
|
144
|
-
//
|
|
145
|
-
//
|
|
143
|
+
// The band enters on the left and exits on the right, so the normalized
|
|
144
|
+
// path measures 1 + 2·spread. `half` is half a band on that scale: the
|
|
145
|
+
// stretch of progress a letter takes to light up.
|
|
146
146
|
const half = spread / (1 + 2 * spread);
|
|
147
147
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
148
148
|
testID: testID,
|
|
@@ -157,7 +157,7 @@ const ShinyText = exports.ShinyText = /*#__PURE__*/(0, _react.memo)(({
|
|
|
157
157
|
children: group.chars.map((char, offset) => {
|
|
158
158
|
const index = group.start + offset;
|
|
159
159
|
const position = total === 1 ? 0.5 : index / (total - 1);
|
|
160
|
-
//
|
|
160
|
+
// Progress at which the center of the band falls on this letter.
|
|
161
161
|
const peak = (position + spread) / (1 + 2 * spread);
|
|
162
162
|
const charStyle = [styles.text, style];
|
|
163
163
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
@@ -8,22 +8,32 @@ 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 _Transition = require("./Transition");
|
|
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
|
+
/** Half a pulse cycle (opaque → faint). A loading loop, not a transition: it doesn't come from `duration`. */const PULSE_HALF_MS = 700;
|
|
13
15
|
const useStyles = (0, _createStyles.createStyles)(theme => ({
|
|
14
16
|
block: {
|
|
15
17
|
backgroundColor: theme.colors.skeleton
|
|
16
18
|
},
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
// Each line takes exactly `lineHeight.md` (Body's): a `fontSize.md` bar
|
|
20
|
+
// plus half the leading above and below. That way the fake paragraph
|
|
21
|
+
// measures the same as the real one and nothing jumps when the content arrives.
|
|
22
|
+
textLine: {
|
|
23
|
+
marginVertical: (theme.tokens.lineHeight.md - theme.tokens.fontSize.md) / 2
|
|
19
24
|
}
|
|
20
25
|
}));
|
|
21
26
|
|
|
22
27
|
/**
|
|
23
28
|
* Skeleton
|
|
24
|
-
* Placeholder
|
|
25
|
-
*
|
|
26
|
-
*
|
|
29
|
+
* Placeholder that pulses while the real content arrives. It reserves the
|
|
30
|
+
* exact space of what it replaces, so the screen doesn't jump when the data
|
|
31
|
+
* shows up — which is precisely what a centered Spinner can't do.
|
|
32
|
+
*
|
|
33
|
+
* Gestalt, similarity: the silhouette repeats the shape and size of the
|
|
34
|
+
* content (a circle for avatars, Body-height lines for text), so the eye
|
|
35
|
+
* already groups the screen before the data arrives. Respects Reduce Motion:
|
|
36
|
+
* no pulse, a static block.
|
|
27
37
|
*/
|
|
28
38
|
const Skeleton = exports.Skeleton = /*#__PURE__*/(0, _react.memo)(({
|
|
29
39
|
width = '100%',
|
|
@@ -38,32 +48,37 @@ const Skeleton = exports.Skeleton = /*#__PURE__*/(0, _react.memo)(({
|
|
|
38
48
|
}) => {
|
|
39
49
|
const theme = (0, _UIProvider.useTheme)();
|
|
40
50
|
const styles = useStyles();
|
|
51
|
+
const reduceMotion = (0, _Transition.useReduceMotion)();
|
|
52
|
+
const pulsing = animated && !reduceMotion;
|
|
41
53
|
const pulse = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
|
|
42
54
|
(0, _react.useEffect)(() => {
|
|
43
|
-
if (!
|
|
55
|
+
if (!pulsing) return;
|
|
44
56
|
const loop = _reactNative.Animated.loop(_reactNative.Animated.sequence([_reactNative.Animated.timing(pulse, {
|
|
45
57
|
toValue: 1,
|
|
46
|
-
duration:
|
|
58
|
+
duration: PULSE_HALF_MS,
|
|
47
59
|
useNativeDriver: true,
|
|
48
60
|
easing: _reactNative.Easing.inOut(_reactNative.Easing.quad)
|
|
49
61
|
}), _reactNative.Animated.timing(pulse, {
|
|
50
62
|
toValue: 0,
|
|
51
|
-
duration:
|
|
63
|
+
duration: PULSE_HALF_MS,
|
|
52
64
|
useNativeDriver: true,
|
|
53
65
|
easing: _reactNative.Easing.inOut(_reactNative.Easing.quad)
|
|
54
66
|
})]));
|
|
55
67
|
loop.start();
|
|
56
|
-
return () =>
|
|
57
|
-
|
|
68
|
+
return () => {
|
|
69
|
+
loop.stop();
|
|
70
|
+
pulse.setValue(0);
|
|
71
|
+
};
|
|
72
|
+
}, [pulsing, pulse]);
|
|
58
73
|
const isCircle = variant === 'circle';
|
|
59
74
|
const isText = variant === 'text';
|
|
60
|
-
const opacity =
|
|
75
|
+
const opacity = pulsing ? pulse.interpolate({
|
|
61
76
|
inputRange: [0, 1],
|
|
62
77
|
outputRange: [1, 0.4]
|
|
63
78
|
}) : 1;
|
|
64
79
|
const resolvedHeight = isCircle ? width : isText ? theme.tokens.fontSize.md : height;
|
|
65
80
|
const resolvedRadius = radius ?? (isCircle ? theme.tokens.radius.full : isText ? theme.tokens.radius.xs : theme.tokens.radius.sm);
|
|
66
|
-
const barStyle = barWidth => [styles.block, {
|
|
81
|
+
const barStyle = barWidth => [styles.block, isText && styles.textLine, {
|
|
67
82
|
width: barWidth,
|
|
68
83
|
height: resolvedHeight,
|
|
69
84
|
borderRadius: resolvedRadius,
|
|
@@ -75,7 +90,7 @@ const Skeleton = exports.Skeleton = /*#__PURE__*/(0, _react.memo)(({
|
|
|
75
90
|
};
|
|
76
91
|
if (isText && lines > 1) {
|
|
77
92
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
78
|
-
style:
|
|
93
|
+
style: style,
|
|
79
94
|
testID: testID,
|
|
80
95
|
...a11y,
|
|
81
96
|
children: Array.from({
|
|
@@ -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","block","backgroundColor","colors","skeleton","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createStyles","_UIProvider","_Transition","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","PULSE_HALF_MS","useStyles","createStyles","theme","block","backgroundColor","colors","skeleton","textLine","marginVertical","tokens","lineHeight","md","fontSize","Skeleton","exports","memo","width","height","variant","radius","lines","lastLineWidth","animated","style","testID","useTheme","styles","reduceMotion","useReduceMotion","pulsing","pulse","useRef","Animated","Value","current","useEffect","loop","sequence","timing","toValue","duration","useNativeDriver","easing","Easing","inOut","quad","start","stop","setValue","isCircle","isText","opacity","interpolate","inputRange","outputRange","resolvedHeight","resolvedRadius","full","xs","sm","barStyle","barWidth","borderRadius","a11y","accessibilityElementsHidden","importantForAccessibility","jsx","View","children","Array","from","length","_","displayName"],"sourceRoot":"../../../src","sources":["atoms/Skeleton.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,6 +10,11 @@ var _createStyles = require("../theme/createStyles");
|
|
|
10
10
|
var _UIProvider = require("../theme/UIProvider");
|
|
11
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
12
|
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); }
|
|
13
|
+
// Rhythm of the looping indicators. They are not UI transitions (those use
|
|
14
|
+
// theme.tokens.duration): they are the pulse of a continuous animation.
|
|
15
|
+
const DOT_PULSE_MS = 320;
|
|
16
|
+
const DOT_STAGGER_MS = 140;
|
|
17
|
+
const RING_TURN_MS = 900;
|
|
13
18
|
const useStyles = (0, _createStyles.createStyles)(theme => ({
|
|
14
19
|
container: {
|
|
15
20
|
justifyContent: 'center',
|
|
@@ -21,33 +26,36 @@ const useStyles = (0, _createStyles.createStyles)(theme => ({
|
|
|
21
26
|
color: theme.colors.textLight,
|
|
22
27
|
fontSize: theme.tokens.fontSize.md
|
|
23
28
|
},
|
|
29
|
+
logo: {
|
|
30
|
+
marginBottom: theme.tokens.spacing.xl
|
|
31
|
+
},
|
|
24
32
|
dots: {
|
|
25
33
|
flexDirection: 'row',
|
|
26
34
|
gap: theme.tokens.spacing.sm
|
|
27
35
|
}
|
|
28
36
|
}));
|
|
29
37
|
|
|
30
|
-
/**
|
|
38
|
+
/** Three dots that pulse in sequence. Animated + useNativeDriver: runs on the native thread. */
|
|
31
39
|
const DotsIndicator = /*#__PURE__*/(0, _react.memo)(({
|
|
32
40
|
color,
|
|
33
41
|
dotSize
|
|
34
42
|
}) => {
|
|
35
43
|
const dots = [(0, _react.useRef)(new _reactNative.Animated.Value(0)).current, (0, _react.useRef)(new _reactNative.Animated.Value(0)).current, (0, _react.useRef)(new _reactNative.Animated.Value(0)).current];
|
|
36
44
|
(0, _react.useEffect)(() => {
|
|
37
|
-
const animations = dots.map((dot, i) => _reactNative.Animated.loop(_reactNative.Animated.sequence([_reactNative.Animated.delay(i *
|
|
45
|
+
const animations = dots.map((dot, i) => _reactNative.Animated.loop(_reactNative.Animated.sequence([_reactNative.Animated.delay(i * DOT_STAGGER_MS), _reactNative.Animated.timing(dot, {
|
|
38
46
|
toValue: 1,
|
|
39
|
-
duration:
|
|
47
|
+
duration: DOT_PULSE_MS,
|
|
40
48
|
useNativeDriver: true,
|
|
41
49
|
easing: _reactNative.Easing.out(_reactNative.Easing.quad)
|
|
42
50
|
}), _reactNative.Animated.timing(dot, {
|
|
43
51
|
toValue: 0,
|
|
44
|
-
duration:
|
|
52
|
+
duration: DOT_PULSE_MS,
|
|
45
53
|
useNativeDriver: true,
|
|
46
54
|
easing: _reactNative.Easing.in(_reactNative.Easing.quad)
|
|
47
|
-
}), _reactNative.Animated.delay((2 - i) *
|
|
55
|
+
}), _reactNative.Animated.delay((2 - i) * DOT_STAGGER_MS)])));
|
|
48
56
|
animations.forEach(a => a.start());
|
|
49
|
-
//
|
|
50
|
-
//
|
|
57
|
+
// Without stop() the loops keep running after unmount and keep the
|
|
58
|
+
// Animated tree alive.
|
|
51
59
|
return () => animations.forEach(a => a.stop());
|
|
52
60
|
}, []);
|
|
53
61
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
@@ -77,7 +85,12 @@ const DotsIndicator = /*#__PURE__*/(0, _react.memo)(({
|
|
|
77
85
|
});
|
|
78
86
|
DotsIndicator.displayName = 'DotsIndicator';
|
|
79
87
|
|
|
80
|
-
/**
|
|
88
|
+
/**
|
|
89
|
+
* Spinning ring: a faint fixed track and, on top, an arc (a single side of
|
|
90
|
+
* the border) that spins. The track uses `opacity` instead of appending alpha
|
|
91
|
+
* to the color (`color + '33'`), which only worked with 6-digit hex and broke
|
|
92
|
+
* with `rgb()` or color names.
|
|
93
|
+
*/
|
|
81
94
|
const RingIndicator = /*#__PURE__*/(0, _react.memo)(({
|
|
82
95
|
color,
|
|
83
96
|
diameter
|
|
@@ -86,31 +99,64 @@ const RingIndicator = /*#__PURE__*/(0, _react.memo)(({
|
|
|
86
99
|
(0, _react.useEffect)(() => {
|
|
87
100
|
const animation = _reactNative.Animated.loop(_reactNative.Animated.timing(spin, {
|
|
88
101
|
toValue: 1,
|
|
89
|
-
duration:
|
|
102
|
+
duration: RING_TURN_MS,
|
|
90
103
|
useNativeDriver: true,
|
|
91
104
|
easing: _reactNative.Easing.linear
|
|
92
105
|
}));
|
|
93
106
|
animation.start();
|
|
94
107
|
return () => animation.stop();
|
|
95
108
|
}, []);
|
|
96
|
-
|
|
109
|
+
const ring = {
|
|
110
|
+
width: diameter,
|
|
111
|
+
height: diameter,
|
|
112
|
+
borderRadius: diameter / 2,
|
|
113
|
+
borderWidth: Math.max(2, diameter / 10)
|
|
114
|
+
};
|
|
115
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
97
116
|
style: {
|
|
98
117
|
width: diameter,
|
|
99
|
-
height: diameter
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
inputRange: [0, 1],
|
|
107
|
-
outputRange: ['0deg', '360deg']
|
|
108
|
-
})
|
|
118
|
+
height: diameter
|
|
119
|
+
},
|
|
120
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
121
|
+
style: [ring, {
|
|
122
|
+
position: 'absolute',
|
|
123
|
+
borderColor: color,
|
|
124
|
+
opacity: 0.2
|
|
109
125
|
}]
|
|
110
|
-
}
|
|
126
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
|
|
127
|
+
style: [ring, {
|
|
128
|
+
borderColor: 'transparent',
|
|
129
|
+
borderTopColor: color,
|
|
130
|
+
transform: [{
|
|
131
|
+
rotate: spin.interpolate({
|
|
132
|
+
inputRange: [0, 1],
|
|
133
|
+
outputRange: ['0deg', '360deg']
|
|
134
|
+
})
|
|
135
|
+
}]
|
|
136
|
+
}]
|
|
137
|
+
})]
|
|
111
138
|
});
|
|
112
139
|
});
|
|
113
140
|
RingIndicator.displayName = 'RingIndicator';
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Spinner
|
|
144
|
+
* Indeterminate loading indicator, with optional text below.
|
|
145
|
+
*
|
|
146
|
+
* Gestalt:
|
|
147
|
+
* - Common fate: the three `dots` pulse in sequence, at the same rhythm, and
|
|
148
|
+
* read as a single indicator moving forward.
|
|
149
|
+
* - Proximity: the text sits `spacing.md` from the indicator, so it reads as
|
|
150
|
+
* its explanation and not as loose text on the screen. The `logo` sits
|
|
151
|
+
* further away (`spacing.xl`): it is the screen's brand, not part of the indicator.
|
|
152
|
+
* - Focal point: with `logo`, the logo is the first thing seen and the
|
|
153
|
+
* indicator stays as a secondary signal that the app is loading.
|
|
154
|
+
*
|
|
155
|
+
* Accessibility: it is announced as a busy `progressbar`, with `text` (or
|
|
156
|
+
* `labels.loading`) as its name. The animation doesn't stop with Reduce
|
|
157
|
+
* Motion: it is the signal that something is happening, like the system's
|
|
158
|
+
* ActivityIndicator.
|
|
159
|
+
*/
|
|
114
160
|
const Spinner = exports.Spinner = /*#__PURE__*/(0, _react.memo)(({
|
|
115
161
|
size = 'large',
|
|
116
162
|
color,
|
|
@@ -118,9 +164,12 @@ const Spinner = exports.Spinner = /*#__PURE__*/(0, _react.memo)(({
|
|
|
118
164
|
fullscreen = true,
|
|
119
165
|
variant = 'native',
|
|
120
166
|
indicator,
|
|
167
|
+
logo,
|
|
168
|
+
accessibilityLabel,
|
|
121
169
|
testID
|
|
122
170
|
}) => {
|
|
123
171
|
const colors = (0, _UIProvider.useColors)();
|
|
172
|
+
const labels = (0, _UIProvider.useLabels)();
|
|
124
173
|
const styles = useStyles();
|
|
125
174
|
const allowFontScaling = (0, _UIProvider.useAllowFontScaling)();
|
|
126
175
|
const resolvedColor = color || colors.primary;
|
|
@@ -145,7 +194,17 @@ const Spinner = exports.Spinner = /*#__PURE__*/(0, _react.memo)(({
|
|
|
145
194
|
flex: 1
|
|
146
195
|
}],
|
|
147
196
|
testID: testID,
|
|
148
|
-
|
|
197
|
+
accessible: true,
|
|
198
|
+
accessibilityRole: "progressbar",
|
|
199
|
+
accessibilityLabel: accessibilityLabel ?? (text || labels.loading),
|
|
200
|
+
accessibilityState: {
|
|
201
|
+
busy: true
|
|
202
|
+
},
|
|
203
|
+
accessibilityLiveRegion: "polite",
|
|
204
|
+
children: [logo != null && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
205
|
+
style: styles.logo,
|
|
206
|
+
children: logo
|
|
207
|
+
}), renderIndicator(), !!text && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
149
208
|
allowFontScaling: allowFontScaling,
|
|
150
209
|
style: styles.text,
|
|
151
210
|
children: text
|
|
@@ -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","container","justifyContent","alignItems","padding","tokens","spacing","xl","text","marginTop","md","color","colors","textLight","fontSize","dots","flexDirection","gap","sm","DotsIndicator","memo","dotSize","useRef","Animated","Value","current","useEffect","animations","map","dot","loop","sequence","delay","timing","toValue","duration","useNativeDriver","easing","Easing","out","quad","in","forEach","a","start","stop","jsx","View","style","children","width","height","borderRadius","backgroundColor","opacity","interpolate","inputRange","outputRange","transform","scale","displayName","RingIndicator","diameter","spin","animation","linear","borderWidth","Math","max","borderColor","borderTopColor","rotate","Spinner","exports","size","fullscreen","variant","indicator","testID","useColors","styles","allowFontScaling","useAllowFontScaling","resolvedColor","primary","renderIndicator","ActivityIndicator","
|
|
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","DOT_PULSE_MS","DOT_STAGGER_MS","RING_TURN_MS","useStyles","createStyles","theme","container","justifyContent","alignItems","padding","tokens","spacing","xl","text","marginTop","md","color","colors","textLight","fontSize","logo","marginBottom","dots","flexDirection","gap","sm","DotsIndicator","memo","dotSize","useRef","Animated","Value","current","useEffect","animations","map","dot","loop","sequence","delay","timing","toValue","duration","useNativeDriver","easing","Easing","out","quad","in","forEach","a","start","stop","jsx","View","style","children","width","height","borderRadius","backgroundColor","opacity","interpolate","inputRange","outputRange","transform","scale","displayName","RingIndicator","diameter","spin","animation","linear","ring","borderWidth","Math","max","jsxs","position","borderColor","borderTopColor","rotate","Spinner","exports","size","fullscreen","variant","indicator","accessibilityLabel","testID","useColors","labels","useLabels","styles","allowFontScaling","useAllowFontScaling","resolvedColor","primary","renderIndicator","ActivityIndicator","flex","accessible","accessibilityRole","loading","accessibilityState","busy","accessibilityLiveRegion","Text"],"sourceRoot":"../../../src","sources":["atoms/Spinner.tsx"],"mappings":"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","ignoreList":[]}
|