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
|
@@ -8,6 +8,7 @@ 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 _KeyboardAvoidance = require("../theme/KeyboardAvoidance");
|
|
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); }
|
|
13
14
|
const useStyles = (0, _createStyles.createStyles)(theme => ({
|
|
@@ -20,16 +21,31 @@ const useStyles = (0, _createStyles.createStyles)(theme => ({
|
|
|
20
21
|
},
|
|
21
22
|
contentContainer: {
|
|
22
23
|
flexGrow: 1
|
|
24
|
+
},
|
|
25
|
+
header: {
|
|
26
|
+
backgroundColor: theme.colors.background
|
|
23
27
|
}
|
|
24
28
|
}));
|
|
25
29
|
|
|
26
30
|
/**
|
|
27
31
|
* Screen
|
|
28
|
-
*
|
|
29
|
-
*
|
|
32
|
+
* Root screen container: theme background, safe area (via the UIProvider's
|
|
33
|
+
* insets), keyboard and optional scroll handled consistently.
|
|
34
|
+
*
|
|
35
|
+
* Keyboard: with the UIProvider handling it (default), Screen shifts only its
|
|
36
|
+
* content — clipped below the `header` — to keep the focused Input above the
|
|
37
|
+
* keyboard. The header stays fixed and a tab bar outside the Screen stays
|
|
38
|
+
* behind the keyboard, as in a native app. On iOS with scroll, the ScrollView
|
|
39
|
+
* already brings the field into view (automaticallyAdjustKeyboardInsets) and
|
|
40
|
+
* nothing is added. Without a host (`keyboardAvoidance={false}` on the
|
|
41
|
+
* provider) the usual KeyboardAvoidingView remains.
|
|
42
|
+
*
|
|
43
|
+
* Gestalt, common region: the header shares the screen's background and stays
|
|
44
|
+
* fixed; only the content moves, so navigation isn't lost.
|
|
30
45
|
*/
|
|
31
46
|
const Screen = exports.Screen = /*#__PURE__*/(0, _react.memo)(({
|
|
32
47
|
children,
|
|
48
|
+
header,
|
|
33
49
|
style,
|
|
34
50
|
scrollable = true,
|
|
35
51
|
contentContainerStyle,
|
|
@@ -38,43 +54,60 @@ const Screen = exports.Screen = /*#__PURE__*/(0, _react.memo)(({
|
|
|
38
54
|
}) => {
|
|
39
55
|
const insets = (0, _UIProvider.useInsets)();
|
|
40
56
|
const styles = useStyles();
|
|
57
|
+
const theme = (0, _UIProvider.useTheme)();
|
|
58
|
+
const host = (0, _KeyboardAvoidance.useKeyboardHost)();
|
|
41
59
|
const applyTop = edges.includes('top');
|
|
42
60
|
const applyBottom = edges.includes('bottom');
|
|
61
|
+
const topInset = applyTop ? insets.top : 0;
|
|
62
|
+
const scrollHandles = keyboardAvoiding && scrollable && _reactNative.Platform.OS === 'ios';
|
|
63
|
+
const panArea = keyboardAvoiding && !scrollHandles && !!host;
|
|
64
|
+
const avoidWithView = keyboardAvoiding && !scrollHandles && !host;
|
|
43
65
|
|
|
44
|
-
//
|
|
45
|
-
//
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
66
|
+
// With a header, the top inset goes above the header; the content starts
|
|
67
|
+
// right below it.
|
|
68
|
+
const contentTop = header ? 0 : topInset;
|
|
69
|
+
let content = scrollable ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
|
|
70
|
+
style: styles.container,
|
|
71
|
+
automaticallyAdjustKeyboardInsets: scrollHandles,
|
|
72
|
+
contentContainerStyle: [styles.contentContainer, {
|
|
73
|
+
paddingTop: contentTop
|
|
74
|
+
}, applyBottom && {
|
|
75
|
+
paddingBottom: insets.bottom
|
|
76
|
+
}, contentContainerStyle],
|
|
77
|
+
keyboardShouldPersistTaps: "handled",
|
|
78
|
+
children: scrollHandles ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyboardAvoidance.KeyboardHandled, {
|
|
79
|
+
children: children
|
|
80
|
+
}) : children
|
|
81
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
82
|
+
style: [styles.container, {
|
|
83
|
+
paddingTop: contentTop,
|
|
84
|
+
paddingBottom: applyBottom ? insets.bottom : 0
|
|
85
|
+
}],
|
|
86
|
+
children: children
|
|
87
|
+
});
|
|
88
|
+
if (panArea) {
|
|
89
|
+
content = /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyboardAvoidance.KeyboardPanArea, {
|
|
90
|
+
margin: theme.tokens.spacing.md,
|
|
91
|
+
topLimit: insets.top,
|
|
92
|
+
clip: true,
|
|
93
|
+
children: content
|
|
94
|
+
});
|
|
95
|
+
} else if (avoidWithView) {
|
|
96
|
+
content = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.KeyboardAvoidingView, {
|
|
58
97
|
style: styles.container,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
paddingTop: applyTop ? insets.top : 0,
|
|
73
|
-
paddingBottom: applyBottom ? insets.bottom : 0
|
|
74
|
-
}],
|
|
75
|
-
children: children
|
|
76
|
-
})
|
|
77
|
-
})
|
|
98
|
+
behavior: _reactNative.Platform.OS === 'ios' ? 'padding' : 'height',
|
|
99
|
+
keyboardVerticalOffset: _reactNative.Platform.OS === 'ios' ? 0 : theme.tokens.spacing.xl,
|
|
100
|
+
children: content
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
104
|
+
style: [styles.wrapper, style],
|
|
105
|
+
children: [header && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
106
|
+
style: [styles.header, {
|
|
107
|
+
paddingTop: topInset
|
|
108
|
+
}],
|
|
109
|
+
children: header
|
|
110
|
+
}), content]
|
|
78
111
|
});
|
|
79
112
|
});
|
|
80
113
|
Screen.displayName = 'Screen';
|
|
@@ -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","wrapper","flex","backgroundColor","colors","background","container","contentContainer","flexGrow","Screen","exports","memo","children","style","scrollable","contentContainerStyle","edges","keyboardAvoiding","insets","useInsets","styles","applyTop","includes","applyBottom","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createStyles","_UIProvider","_KeyboardAvoidance","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useStyles","createStyles","theme","wrapper","flex","backgroundColor","colors","background","container","contentContainer","flexGrow","header","Screen","exports","memo","children","style","scrollable","contentContainerStyle","edges","keyboardAvoiding","insets","useInsets","styles","useTheme","host","useKeyboardHost","applyTop","includes","applyBottom","topInset","top","scrollHandles","Platform","OS","panArea","avoidWithView","contentTop","content","jsx","ScrollView","automaticallyAdjustKeyboardInsets","paddingTop","paddingBottom","bottom","keyboardShouldPersistTaps","KeyboardHandled","View","KeyboardPanArea","margin","tokens","spacing","md","topLimit","clip","KeyboardAvoidingView","behavior","keyboardVerticalOffset","xl","jsxs","displayName"],"sourceRoot":"../../../src","sources":["organisms/Screen.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -22,8 +22,8 @@ const useStyles = (0, _createStyles.createStyles)(theme => ({
|
|
|
22
22
|
searchRow: {
|
|
23
23
|
flexDirection: 'row',
|
|
24
24
|
alignItems: 'center',
|
|
25
|
-
marginBottom: theme.tokens.spacing.lg
|
|
26
|
-
gap: theme.tokens.spacing.
|
|
25
|
+
marginBottom: theme.tokens.spacing.lg,
|
|
26
|
+
gap: theme.tokens.spacing.md
|
|
27
27
|
},
|
|
28
28
|
searchInput: {
|
|
29
29
|
flex: 1,
|
|
@@ -31,8 +31,8 @@ const useStyles = (0, _createStyles.createStyles)(theme => ({
|
|
|
31
31
|
},
|
|
32
32
|
scanButton: {
|
|
33
33
|
backgroundColor: theme.colors.primary,
|
|
34
|
-
width:
|
|
35
|
-
height:
|
|
34
|
+
width: SCAN_SIZE,
|
|
35
|
+
height: SCAN_SIZE,
|
|
36
36
|
borderRadius: theme.tokens.radius.lg,
|
|
37
37
|
...theme.tokens.shadow.sm
|
|
38
38
|
},
|
|
@@ -69,16 +69,33 @@ const useStyles = (0, _createStyles.createStyles)(theme => ({
|
|
|
69
69
|
padding: theme.tokens.spacing.md
|
|
70
70
|
},
|
|
71
71
|
skeletonText: {
|
|
72
|
-
flex: 1
|
|
73
|
-
|
|
72
|
+
flex: 1
|
|
73
|
+
},
|
|
74
|
+
empty: {
|
|
75
|
+
marginTop: theme.tokens.spacing.xxxl
|
|
74
76
|
}
|
|
75
77
|
}));
|
|
76
78
|
|
|
79
|
+
/** The scan button is square and as tall as the search Input beside it. */
|
|
80
|
+
const SCAN_SIZE = 50;
|
|
81
|
+
/** Same as Avatar's default size: the placeholder row matches a typical avatar row. */
|
|
82
|
+
const SKELETON_AVATAR = 44;
|
|
83
|
+
|
|
77
84
|
/**
|
|
78
85
|
* SearchList
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
86
|
+
* Search box + list + loading/pagination/empty states. The content of each
|
|
87
|
+
* item (renderItem) is up to whoever uses it, since it differs completely
|
|
88
|
+
* between use cases.
|
|
89
|
+
*
|
|
90
|
+
* Design:
|
|
91
|
+
* - Proximity + common region: the search row (box, scan, extra actions)
|
|
92
|
+
* sits right on top of the results it filters.
|
|
93
|
+
* - Doherty threshold: every wait has immediate feedback (placeholders, a
|
|
94
|
+
* spinner in the box while searching, a footer loader while paging), and
|
|
95
|
+
* "no results" only appears once it is known there is nothing.
|
|
96
|
+
* - Jakob's law: the clear (×) inside the box, pull-to-refresh, the keyboard
|
|
97
|
+
* dismissed when the list is dragged.
|
|
98
|
+
* - Fitts's law: the scan button is as tall as the box, a 50pt target.
|
|
82
99
|
*/
|
|
83
100
|
function SearchList({
|
|
84
101
|
header,
|
|
@@ -87,7 +104,7 @@ function SearchList({
|
|
|
87
104
|
searchPlaceholder,
|
|
88
105
|
searchIsLoading = false,
|
|
89
106
|
onScanPress,
|
|
90
|
-
scanAccessibilityLabel
|
|
107
|
+
scanAccessibilityLabel,
|
|
91
108
|
extraActions,
|
|
92
109
|
data,
|
|
93
110
|
keyExtractor,
|
|
@@ -125,8 +142,8 @@ function SearchList({
|
|
|
125
142
|
const resolvedLoadingMoreText = loadingMoreText ?? labels.loadingMore;
|
|
126
143
|
const handleEndReached = onLoadMore ?? onEndReached;
|
|
127
144
|
|
|
128
|
-
//
|
|
129
|
-
//
|
|
145
|
+
// The custom footer and the pagination loader coexist: previously the first
|
|
146
|
+
// covered the second and the list stopped signaling it was fetching more.
|
|
130
147
|
const renderFooter = (0, _react.useCallback)(() => {
|
|
131
148
|
const custom = typeof ListFooterComponent === 'function' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ListFooterComponent, {}) : ListFooterComponent ?? null;
|
|
132
149
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
@@ -146,19 +163,17 @@ function SearchList({
|
|
|
146
163
|
});
|
|
147
164
|
}, [ListFooterComponent, isLoadingMore, resolvedLoadingMoreText, noMoreText, hasMore, data.length, styles.footer, styles.footerText]);
|
|
148
165
|
|
|
149
|
-
//
|
|
150
|
-
//
|
|
166
|
+
// Empty only once it is known there is nothing: during the initial load
|
|
167
|
+
// placeholders are shown, not "no results".
|
|
151
168
|
const renderEmpty = (0, _react.useCallback)(() => {
|
|
152
169
|
if (isLoading || isRefreshing) return null;
|
|
153
170
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_EmptyState.EmptyState, {
|
|
154
171
|
title: emptyTitle,
|
|
155
172
|
description: emptyDescription,
|
|
156
173
|
iconName: emptyIconName,
|
|
157
|
-
style:
|
|
158
|
-
marginTop: 50
|
|
159
|
-
}
|
|
174
|
+
style: styles.empty
|
|
160
175
|
});
|
|
161
|
-
}, [isLoading, isRefreshing, emptyTitle, emptyDescription, emptyIconName]);
|
|
176
|
+
}, [isLoading, isRefreshing, emptyTitle, emptyDescription, emptyIconName, styles.empty]);
|
|
162
177
|
if (!isReady) {
|
|
163
178
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
164
179
|
style: [styles.container, containerStyle],
|
|
@@ -183,16 +198,22 @@ function SearchList({
|
|
|
183
198
|
isLoading: searchIsLoading,
|
|
184
199
|
containerStyle: styles.searchInput
|
|
185
200
|
}), onScanPress && /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.IconButton, {
|
|
186
|
-
iconName: "
|
|
201
|
+
iconName: "scan",
|
|
187
202
|
onPress: onScanPress,
|
|
188
203
|
color: colors.onPrimary,
|
|
189
204
|
style: styles.scanButton,
|
|
190
|
-
accessibilityLabel: scanAccessibilityLabel
|
|
205
|
+
accessibilityLabel: scanAccessibilityLabel ?? labels.scan
|
|
191
206
|
}), extraActions]
|
|
192
207
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
193
208
|
style: styles.listArea,
|
|
194
209
|
children: [showOverlayLoading && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
195
210
|
style: styles.loadingOverlay,
|
|
211
|
+
accessible: true,
|
|
212
|
+
accessibilityRole: "progressbar",
|
|
213
|
+
accessibilityLabel: resolvedLoadingText,
|
|
214
|
+
accessibilityState: {
|
|
215
|
+
busy: true
|
|
216
|
+
},
|
|
196
217
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
|
|
197
218
|
size: "large",
|
|
198
219
|
color: colors.primary
|
|
@@ -202,7 +223,16 @@ function SearchList({
|
|
|
202
223
|
})]
|
|
203
224
|
}), isInitialLoading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
204
225
|
testID: "list-skeleton",
|
|
205
|
-
style: [styles.listContent, contentContainerStyle]
|
|
226
|
+
style: [styles.listContent, contentContainerStyle]
|
|
227
|
+
// The placeholders are hidden from screen readers: the group
|
|
228
|
+
// announces that the list is loading instead of silence.
|
|
229
|
+
,
|
|
230
|
+
accessible: true,
|
|
231
|
+
accessibilityRole: "progressbar",
|
|
232
|
+
accessibilityLabel: resolvedLoadingText,
|
|
233
|
+
accessibilityState: {
|
|
234
|
+
busy: true
|
|
235
|
+
},
|
|
206
236
|
children: Array.from({
|
|
207
237
|
length: skeletonCount
|
|
208
238
|
}, (_, i) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.default.Fragment, {
|
|
@@ -210,15 +240,15 @@ function SearchList({
|
|
|
210
240
|
style: styles.skeletonRow,
|
|
211
241
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Skeleton.Skeleton, {
|
|
212
242
|
variant: "circle",
|
|
213
|
-
width:
|
|
243
|
+
width: SKELETON_AVATAR
|
|
214
244
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
215
245
|
style: styles.skeletonText,
|
|
216
246
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Skeleton.Skeleton, {
|
|
217
|
-
|
|
218
|
-
|
|
247
|
+
variant: "text",
|
|
248
|
+
width: "60%"
|
|
219
249
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Skeleton.Skeleton, {
|
|
220
|
-
|
|
221
|
-
|
|
250
|
+
variant: "text",
|
|
251
|
+
width: "35%"
|
|
222
252
|
})]
|
|
223
253
|
})]
|
|
224
254
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createStyles","_UIProvider","_Input","_EmptyState","_Skeleton","_Spinner","_IconButton","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useStyles","createStyles","theme","container","flex","searchRow","flexDirection","alignItems","marginBottom","tokens","spacing","lg","gap","sm","searchInput","scanButton","backgroundColor","colors","primary","width","height","borderRadius","radius","shadow","listArea","listContent","paddingBottom","xl","loadingOverlay","position","top","left","right","bottom","scrim","zIndex","justifyContent","footer","paddingVertical","md","footerText","color","textLight","fontSize","skeletonRow","padding","skeletonText","SearchList","header","searchValue","onSearchChange","searchPlaceholder","searchIsLoading","onScanPress","scanAccessibilityLabel","extraActions","data","keyExtractor","renderItem","isLoading","loadingMode","isRefreshing","isLoadingMore","isReady","loadingText","loadingMoreText","hasMore","noMoreText","skeletonCount","renderSkeletonItem","onLoadMore","onEndReached","onEndReachedThreshold","onRefresh","emptyTitle","emptyDescription","emptyIconName","ListHeaderComponent","ListFooterComponent","contentContainerStyle","containerStyle","ListComponent","FlatList","listProps","useColors","styles","labels","useLabels","resolvedSearchPlaceholder","search","resolvedLoadingText","loading","resolvedLoadingMoreText","loadingMore","handleEndReached","renderFooter","useCallback","custom","jsx","jsxs","Fragment","children","View","style","Spinner","text","fullscreen","length","Text","renderEmpty","EmptyState","title","description","iconName","marginTop","isInitialLoading","showOverlayLoading","Input","placeholder","leftIconName","value","onChangeText","rightIconName","undefined","onRightIconPress","IconButton","onPress","onPrimary","accessibilityLabel","ActivityIndicator","size","testID","Array","from","_","Skeleton","variant","keyboardDismissMode","ListEmptyComponent","refreshControl","RefreshControl","refreshing","tintColor"],"sourceRoot":"../../../src","sources":["organisms/SearchList.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_createStyles","_UIProvider","_Input","_EmptyState","_Skeleton","_Spinner","_IconButton","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useStyles","createStyles","theme","container","flex","searchRow","flexDirection","alignItems","marginBottom","tokens","spacing","lg","gap","md","searchInput","scanButton","backgroundColor","colors","primary","width","SCAN_SIZE","height","borderRadius","radius","shadow","sm","listArea","listContent","paddingBottom","xl","loadingOverlay","position","top","left","right","bottom","scrim","zIndex","justifyContent","footer","paddingVertical","footerText","color","textLight","fontSize","skeletonRow","padding","skeletonText","empty","marginTop","xxxl","SKELETON_AVATAR","SearchList","header","searchValue","onSearchChange","searchPlaceholder","searchIsLoading","onScanPress","scanAccessibilityLabel","extraActions","data","keyExtractor","renderItem","isLoading","loadingMode","isRefreshing","isLoadingMore","isReady","loadingText","loadingMoreText","hasMore","noMoreText","skeletonCount","renderSkeletonItem","onLoadMore","onEndReached","onEndReachedThreshold","onRefresh","emptyTitle","emptyDescription","emptyIconName","ListHeaderComponent","ListFooterComponent","contentContainerStyle","containerStyle","ListComponent","FlatList","listProps","useColors","styles","labels","useLabels","resolvedSearchPlaceholder","search","resolvedLoadingText","loading","resolvedLoadingMoreText","loadingMore","handleEndReached","renderFooter","useCallback","custom","jsx","jsxs","Fragment","children","View","style","Spinner","text","fullscreen","length","Text","renderEmpty","EmptyState","title","description","iconName","isInitialLoading","showOverlayLoading","Input","placeholder","leftIconName","value","onChangeText","rightIconName","undefined","onRightIconPress","IconButton","onPress","onPrimary","accessibilityLabel","scan","accessible","accessibilityRole","accessibilityState","busy","ActivityIndicator","size","testID","Array","from","_","Skeleton","variant","keyboardDismissMode","ListEmptyComponent","refreshControl","RefreshControl","refreshing","tintColor"],"sourceRoot":"../../../src","sources":["organisms/SearchList.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,14 +7,19 @@ exports.Select = Select;
|
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _createStyles = require("../theme/createStyles");
|
|
10
|
+
var _NativeOverlay = require("../theme/NativeOverlay");
|
|
10
11
|
var _UIProvider = require("../theme/UIProvider");
|
|
11
12
|
var _Icon = require("../icons/Icon");
|
|
12
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
14
|
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
|
-
/**
|
|
15
|
+
/** Room between the field and the dropdown. */
|
|
15
16
|
const GAP = 8;
|
|
16
|
-
/**
|
|
17
|
+
/** Below this the dropdown can't even show two rows. */
|
|
17
18
|
const MIN_HEIGHT = 120;
|
|
19
|
+
/** Same height as Input and DateField, so a form's fields line up. */
|
|
20
|
+
const FIELD_MIN_HEIGHT = 50;
|
|
21
|
+
const ICON_SIZE = 20;
|
|
22
|
+
const CHECK_SIZE = 18;
|
|
18
23
|
const useStyles = (0, _createStyles.createStyles)(theme => ({
|
|
19
24
|
container: {
|
|
20
25
|
gap: theme.tokens.spacing.sm
|
|
@@ -35,12 +40,15 @@ const useStyles = (0, _createStyles.createStyles)(theme => ({
|
|
|
35
40
|
borderColor: theme.colors.border,
|
|
36
41
|
borderRadius: theme.tokens.radius.lg,
|
|
37
42
|
backgroundColor: theme.colors.inputBackground,
|
|
38
|
-
minHeight:
|
|
43
|
+
minHeight: FIELD_MIN_HEIGHT,
|
|
39
44
|
paddingHorizontal: theme.tokens.spacing.lg
|
|
40
45
|
},
|
|
41
46
|
fieldOpen: {
|
|
42
47
|
borderColor: theme.colors.primary
|
|
43
48
|
},
|
|
49
|
+
fieldError: {
|
|
50
|
+
borderColor: theme.colors.error
|
|
51
|
+
},
|
|
44
52
|
fieldDisabled: {
|
|
45
53
|
opacity: 0.5
|
|
46
54
|
},
|
|
@@ -66,7 +74,7 @@ const useStyles = (0, _createStyles.createStyles)(theme => ({
|
|
|
66
74
|
borderWidth: 2,
|
|
67
75
|
borderColor: theme.colors.border,
|
|
68
76
|
borderRadius: theme.tokens.radius.lg,
|
|
69
|
-
backgroundColor: theme.colors.
|
|
77
|
+
backgroundColor: theme.colors.surfaceRaised,
|
|
70
78
|
overflow: 'hidden',
|
|
71
79
|
...theme.tokens.shadow.md
|
|
72
80
|
},
|
|
@@ -83,7 +91,7 @@ const useStyles = (0, _createStyles.createStyles)(theme => ({
|
|
|
83
91
|
alignItems: 'center',
|
|
84
92
|
justifyContent: 'space-between',
|
|
85
93
|
paddingHorizontal: theme.tokens.spacing.lg,
|
|
86
|
-
paddingVertical: theme.tokens.spacing.md +
|
|
94
|
+
paddingVertical: theme.tokens.spacing.md + theme.tokens.spacing.xxs,
|
|
87
95
|
borderBottomWidth: 1,
|
|
88
96
|
borderBottomColor: theme.colors.border
|
|
89
97
|
},
|
|
@@ -103,7 +111,7 @@ const useStyles = (0, _createStyles.createStyles)(theme => ({
|
|
|
103
111
|
flexShrink: 1
|
|
104
112
|
},
|
|
105
113
|
optionText: {
|
|
106
|
-
fontSize: theme.tokens.fontSize.lg
|
|
114
|
+
fontSize: theme.tokens.fontSize.lg,
|
|
107
115
|
color: theme.colors.text
|
|
108
116
|
},
|
|
109
117
|
optionTextSelected: {
|
|
@@ -126,10 +134,18 @@ const useStyles = (0, _createStyles.createStyles)(theme => ({
|
|
|
126
134
|
}));
|
|
127
135
|
/**
|
|
128
136
|
* Select
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
* Modal
|
|
137
|
+
* Single-option dropdown. The list is measured against the window and drawn
|
|
138
|
+
* inside a Modal, not in the field's tree: that way no `overflow: hidden`
|
|
139
|
+
* clips it, it doesn't depend on zIndex (unreliable on Android) and the
|
|
140
|
+
* Modal's backdrop handles closing by tapping outside and with the back button.
|
|
141
|
+
*
|
|
142
|
+
* Design:
|
|
143
|
+
* - Proximity + continuity: the list opens right against the field, toward
|
|
144
|
+
* wherever there is more room, so the eye goes from field to options.
|
|
145
|
+
* - Von Restorff: the picked option alone has the accent fill and a check.
|
|
146
|
+
* - Jakob's law: same field as Input and DateField (height, border, label,
|
|
147
|
+
* red border with an error); tap outside or Android back closes it.
|
|
148
|
+
* - Hick's law: past a handful of options, `searchable` narrows the list.
|
|
133
149
|
*/
|
|
134
150
|
function Select({
|
|
135
151
|
label,
|
|
@@ -161,6 +177,7 @@ function Select({
|
|
|
161
177
|
const [query, setQuery] = (0, _react.useState)('');
|
|
162
178
|
const [keyboardHeight, setKeyboardHeight] = (0, _react.useState)(0);
|
|
163
179
|
const isDisabled = disabled || isLoading;
|
|
180
|
+
const fieldName = label ?? placeholder ?? labels.selectPlaceholder;
|
|
164
181
|
const selectedOption = options.find(o => o.value === selectedValue);
|
|
165
182
|
const close = (0, _react.useCallback)(() => {
|
|
166
183
|
setOpen(false);
|
|
@@ -169,8 +186,8 @@ function Select({
|
|
|
169
186
|
onOpenChange?.(false);
|
|
170
187
|
}, [onOpenChange]);
|
|
171
188
|
|
|
172
|
-
//
|
|
173
|
-
//
|
|
189
|
+
// Opening doesn't wait for the measurement: if `measureInWindow` doesn't
|
|
190
|
+
// respond, the list still appears (centered) instead of the field ceasing to work.
|
|
174
191
|
const openList = () => {
|
|
175
192
|
fieldRef.current?.measureInWindow((x, y, width, height) => setAnchor({
|
|
176
193
|
x,
|
|
@@ -182,8 +199,8 @@ function Select({
|
|
|
182
199
|
onOpenChange?.(true);
|
|
183
200
|
};
|
|
184
201
|
|
|
185
|
-
//
|
|
186
|
-
//
|
|
202
|
+
// The search box opens the keyboard over the dropdown: without subtracting
|
|
203
|
+
// it, the list is drawn where it can no longer be seen.
|
|
187
204
|
(0, _react.useEffect)(() => {
|
|
188
205
|
if (!open) return;
|
|
189
206
|
setKeyboardHeight(_reactNative.Keyboard.metrics()?.height ?? 0);
|
|
@@ -197,8 +214,8 @@ function Select({
|
|
|
197
214
|
return options.filter(option => option.label.toLowerCase().includes(needle));
|
|
198
215
|
}, [options, query, searchable]);
|
|
199
216
|
|
|
200
|
-
//
|
|
201
|
-
//
|
|
217
|
+
// It opens toward wherever there is more room: against the bottom edge of
|
|
218
|
+
// the screen, upward is the only way for it to fit.
|
|
202
219
|
const placement = (0, _react.useMemo)(() => {
|
|
203
220
|
if (!anchor) return {
|
|
204
221
|
left: GAP * 2,
|
|
@@ -232,7 +249,7 @@ function Select({
|
|
|
232
249
|
}
|
|
233
250
|
return option.iconName ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
|
|
234
251
|
name: option.iconName,
|
|
235
|
-
size:
|
|
252
|
+
size: ICON_SIZE,
|
|
236
253
|
color: color
|
|
237
254
|
}) : null;
|
|
238
255
|
};
|
|
@@ -248,11 +265,12 @@ function Select({
|
|
|
248
265
|
})]
|
|
249
266
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
|
|
250
267
|
ref: fieldRef,
|
|
251
|
-
style: [styles.field, open && styles.fieldOpen, isDisabled && styles.fieldDisabled],
|
|
268
|
+
style: [styles.field, !!error && styles.fieldError, open && styles.fieldOpen, isDisabled && styles.fieldDisabled],
|
|
252
269
|
onPress: openList,
|
|
253
270
|
disabled: isDisabled,
|
|
254
271
|
accessibilityRole: "combobox",
|
|
255
|
-
accessibilityLabel:
|
|
272
|
+
accessibilityLabel: required ? `${fieldName}, ${labels.required}` : fieldName,
|
|
273
|
+
accessibilityHint: error || undefined,
|
|
256
274
|
accessibilityValue: {
|
|
257
275
|
text: selectedOption?.label ?? ''
|
|
258
276
|
},
|
|
@@ -273,11 +291,10 @@ function Select({
|
|
|
273
291
|
color: colors.primary
|
|
274
292
|
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
|
|
275
293
|
name: open ? 'chevron-up' : 'chevron-down',
|
|
276
|
-
size:
|
|
294
|
+
size: ICON_SIZE,
|
|
277
295
|
color: colors.textLight
|
|
278
296
|
})]
|
|
279
|
-
}), open && /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
280
|
-
visible: true,
|
|
297
|
+
}), open && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_NativeOverlay.NativeOverlay, {
|
|
281
298
|
transparent: true,
|
|
282
299
|
animationType: "fade",
|
|
283
300
|
statusBarTranslucent: true,
|
|
@@ -288,7 +305,11 @@ function Select({
|
|
|
288
305
|
testID: "select-backdrop"
|
|
289
306
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
290
307
|
style: [styles.sheet, placement],
|
|
291
|
-
accessibilityRole: "radiogroup"
|
|
308
|
+
accessibilityRole: "radiogroup"
|
|
309
|
+
// On iOS it may be drawn inside another open overlay: the reader stays in the list.
|
|
310
|
+
,
|
|
311
|
+
accessibilityViewIsModal: true,
|
|
312
|
+
onAccessibilityEscape: close,
|
|
292
313
|
testID: "select-list",
|
|
293
314
|
children: [searchable && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
|
|
294
315
|
allowFontScaling: allowFontScaling,
|
|
@@ -329,7 +350,7 @@ function Select({
|
|
|
329
350
|
})]
|
|
330
351
|
}), isSelected && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
|
|
331
352
|
name: "check",
|
|
332
|
-
size:
|
|
353
|
+
size: CHECK_SIZE,
|
|
333
354
|
color: colors.primary
|
|
334
355
|
})]
|
|
335
356
|
}, String(option.value));
|