orn-ui 0.2.10 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +66 -51
- package/README.md +3 -7
- package/lib/commonjs/atoms/Avatar.js +77 -5
- package/lib/commonjs/atoms/Avatar.js.map +1 -1
- package/lib/commonjs/atoms/Badge.js +17 -8
- package/lib/commonjs/atoms/Badge.js.map +1 -1
- package/lib/commonjs/atoms/Button.js +108 -39
- package/lib/commonjs/atoms/Button.js.map +1 -1
- package/lib/commonjs/atoms/Card.js +24 -2
- package/lib/commonjs/atoms/Card.js.map +1 -1
- package/lib/commonjs/atoms/Checkbox.js +41 -10
- package/lib/commonjs/atoms/Checkbox.js.map +1 -1
- package/lib/commonjs/atoms/Divider.js +30 -5
- package/lib/commonjs/atoms/Divider.js.map +1 -1
- package/lib/commonjs/atoms/EmptyState.js +58 -20
- package/lib/commonjs/atoms/EmptyState.js.map +1 -1
- package/lib/commonjs/atoms/Fab.js +32 -12
- package/lib/commonjs/atoms/Fab.js.map +1 -1
- package/lib/commonjs/atoms/Gradient.js +102 -36
- package/lib/commonjs/atoms/Gradient.js.map +1 -1
- package/lib/commonjs/atoms/IconButton.js +25 -4
- package/lib/commonjs/atoms/IconButton.js.map +1 -1
- package/lib/commonjs/atoms/Image.js +61 -25
- package/lib/commonjs/atoms/Image.js.map +1 -1
- package/lib/commonjs/atoms/Input.js +105 -17
- package/lib/commonjs/atoms/Input.js.map +1 -1
- package/lib/commonjs/atoms/KeyValueRow.js +37 -9
- package/lib/commonjs/atoms/KeyValueRow.js.map +1 -1
- package/lib/commonjs/atoms/PressableScale.js +25 -5
- package/lib/commonjs/atoms/PressableScale.js.map +1 -1
- package/lib/commonjs/atoms/ShinyText.js +29 -29
- package/lib/commonjs/atoms/Skeleton.js +28 -13
- package/lib/commonjs/atoms/Skeleton.js.map +1 -1
- package/lib/commonjs/atoms/Spinner.js +81 -22
- package/lib/commonjs/atoms/Spinner.js.map +1 -1
- package/lib/commonjs/atoms/Text.js +56 -5
- package/lib/commonjs/atoms/Text.js.map +1 -1
- package/lib/commonjs/atoms/Transition.js +46 -43
- package/lib/commonjs/atoms/Transition.js.map +1 -1
- package/lib/commonjs/atoms/index.js +6 -0
- package/lib/commonjs/atoms/index.js.map +1 -1
- package/lib/commonjs/atoms/inputValidation.js +56 -0
- package/lib/commonjs/atoms/inputValidation.js.map +1 -0
- package/lib/commonjs/icons/Icon.js +4 -4
- package/lib/commonjs/icons/defaultIcons.js +576 -24
- package/lib/commonjs/icons/defaultIcons.js.map +1 -1
- package/lib/commonjs/icons/index.js +6 -0
- package/lib/commonjs/icons/index.js.map +1 -1
- package/lib/commonjs/molecules/AvatarHeader.js +47 -14
- package/lib/commonjs/molecules/AvatarHeader.js.map +1 -1
- package/lib/commonjs/molecules/FormActions.js +25 -9
- package/lib/commonjs/molecules/FormActions.js.map +1 -1
- package/lib/commonjs/molecules/InfoRow.js +30 -14
- package/lib/commonjs/molecules/InfoRow.js.map +1 -1
- package/lib/commonjs/molecules/OptionCard.js +37 -22
- package/lib/commonjs/molecules/OptionCard.js.map +1 -1
- package/lib/commonjs/molecules/SegmentedControl.js +103 -14
- package/lib/commonjs/molecules/SegmentedControl.js.map +1 -1
- package/lib/commonjs/molecules/Stepper.js +61 -16
- package/lib/commonjs/molecules/Stepper.js.map +1 -1
- package/lib/commonjs/molecules/Steps.js +105 -41
- package/lib/commonjs/molecules/Steps.js.map +1 -1
- package/lib/commonjs/molecules/SymmetricGrid.js +26 -18
- package/lib/commonjs/molecules/SymmetricGrid.js.map +1 -1
- package/lib/commonjs/organisms/Alert.js +49 -35
- package/lib/commonjs/organisms/Alert.js.map +1 -1
- package/lib/commonjs/organisms/AlertProvider.js +10 -10
- package/lib/commonjs/organisms/BottomSheet.js +137 -85
- package/lib/commonjs/organisms/BottomSheet.js.map +1 -1
- package/lib/commonjs/organisms/Chart.js +174 -154
- package/lib/commonjs/organisms/Chart.js.map +1 -1
- package/lib/commonjs/organisms/DateField.js +36 -20
- package/lib/commonjs/organisms/DateField.js.map +1 -1
- package/lib/commonjs/organisms/DatePicker.js +56 -33
- package/lib/commonjs/organisms/DatePicker.js.map +1 -1
- package/lib/commonjs/organisms/List.js +62 -34
- package/lib/commonjs/organisms/List.js.map +1 -1
- package/lib/commonjs/organisms/Modal.js +120 -82
- package/lib/commonjs/organisms/Modal.js.map +1 -1
- package/lib/commonjs/organisms/NavigationBar.js +63 -24
- package/lib/commonjs/organisms/NavigationBar.js.map +1 -1
- package/lib/commonjs/organisms/OptionWheel.js +64 -64
- package/lib/commonjs/organisms/OptionWheel.js.map +1 -1
- package/lib/commonjs/organisms/ReorderableList.js +48 -27
- package/lib/commonjs/organisms/ReorderableList.js.map +1 -1
- package/lib/commonjs/organisms/Screen.js +68 -35
- package/lib/commonjs/organisms/Screen.js.map +1 -1
- package/lib/commonjs/organisms/SearchList.js +56 -26
- package/lib/commonjs/organisms/SearchList.js.map +1 -1
- package/lib/commonjs/organisms/Select.js +45 -24
- package/lib/commonjs/organisms/Select.js.map +1 -1
- package/lib/commonjs/organisms/Slides.js +36 -23
- package/lib/commonjs/organisms/Slides.js.map +1 -1
- package/lib/commonjs/organisms/ThemeToggle.js +10 -9
- package/lib/commonjs/organisms/ThemeToggle.js.map +1 -1
- package/lib/commonjs/organisms/Timeline.js +73 -56
- package/lib/commonjs/organisms/Timeline.js.map +1 -1
- package/lib/commonjs/organisms/Toast.js +46 -15
- package/lib/commonjs/organisms/Toast.js.map +1 -1
- package/lib/commonjs/organisms/ToastProvider.js +14 -10
- package/lib/commonjs/organisms/ToastProvider.js.map +1 -1
- package/lib/commonjs/organisms/Wizard.js +40 -15
- package/lib/commonjs/organisms/Wizard.js.map +1 -1
- package/lib/commonjs/organisms/chart/frame.js +25 -25
- package/lib/commonjs/organisms/chart/frame.js.map +1 -1
- package/lib/commonjs/organisms/chart/marks.js +42 -42
- package/lib/commonjs/organisms/chart/math.js +84 -85
- package/lib/commonjs/organisms/chart/math.js.map +1 -1
- package/lib/commonjs/organisms/chart/palette.js +28 -28
- package/lib/commonjs/organisms/imperativeBridge.js +5 -5
- package/lib/commonjs/organisms/imperativeBridge.js.map +1 -1
- package/lib/commonjs/organisms/useSlides.js +53 -21
- package/lib/commonjs/organisms/useSlides.js.map +1 -1
- package/lib/commonjs/safe-area/SafeAreaUIProvider.js +9 -66
- package/lib/commonjs/safe-area/SafeAreaUIProvider.js.map +1 -1
- package/lib/commonjs/safe-area/index.js.map +1 -1
- package/lib/commonjs/theme/KeyboardAvoidance.js +206 -0
- package/lib/commonjs/theme/KeyboardAvoidance.js.map +1 -0
- package/lib/commonjs/theme/NativeOverlay.js +263 -0
- package/lib/commonjs/theme/NativeOverlay.js.map +1 -0
- package/lib/commonjs/theme/UIProvider.js +86 -33
- package/lib/commonjs/theme/UIProvider.js.map +1 -1
- package/lib/commonjs/theme/colors.js +17 -17
- package/lib/commonjs/theme/colors.js.map +1 -1
- package/lib/commonjs/theme/createStyles.js +19 -16
- package/lib/commonjs/theme/createStyles.js.map +1 -1
- package/lib/commonjs/theme/createTheme.js +6 -6
- package/lib/commonjs/theme/index.js +6 -0
- package/lib/commonjs/theme/index.js.map +1 -1
- package/lib/commonjs/theme/insets.js +1 -1
- package/lib/commonjs/theme/labels.js +29 -1
- package/lib/commonjs/theme/labels.js.map +1 -1
- package/lib/commonjs/theme/palettes.js +25 -23
- package/lib/commonjs/theme/palettes.js.map +1 -1
- package/lib/commonjs/theme/tokens.js +28 -14
- package/lib/commonjs/theme/tokens.js.map +1 -1
- package/lib/commonjs/theme/useKeyboardField.js +36 -0
- package/lib/commonjs/theme/useKeyboardField.js.map +1 -0
- package/lib/commonjs/theme/useReduceMotion.js +31 -0
- package/lib/commonjs/theme/useReduceMotion.js.map +1 -0
- package/lib/module/atoms/Avatar.js +79 -8
- package/lib/module/atoms/Avatar.js.map +1 -1
- package/lib/module/atoms/Badge.js +17 -8
- package/lib/module/atoms/Badge.js.map +1 -1
- package/lib/module/atoms/Button.js +110 -41
- package/lib/module/atoms/Button.js.map +1 -1
- package/lib/module/atoms/Card.js +24 -2
- package/lib/module/atoms/Card.js.map +1 -1
- package/lib/module/atoms/Checkbox.js +42 -11
- package/lib/module/atoms/Checkbox.js.map +1 -1
- package/lib/module/atoms/Divider.js +31 -6
- package/lib/module/atoms/Divider.js.map +1 -1
- package/lib/module/atoms/EmptyState.js +58 -20
- package/lib/module/atoms/EmptyState.js.map +1 -1
- package/lib/module/atoms/Fab.js +33 -13
- package/lib/module/atoms/Fab.js.map +1 -1
- package/lib/module/atoms/Gradient.js +103 -37
- package/lib/module/atoms/Gradient.js.map +1 -1
- package/lib/module/atoms/IconButton.js +25 -4
- package/lib/module/atoms/IconButton.js.map +1 -1
- package/lib/module/atoms/Image.js +61 -25
- package/lib/module/atoms/Image.js.map +1 -1
- package/lib/module/atoms/Input.js +108 -20
- package/lib/module/atoms/Input.js.map +1 -1
- package/lib/module/atoms/KeyValueRow.js +37 -9
- package/lib/module/atoms/KeyValueRow.js.map +1 -1
- package/lib/module/atoms/PressableScale.js +25 -5
- package/lib/module/atoms/PressableScale.js.map +1 -1
- package/lib/module/atoms/ShinyText.js +29 -29
- package/lib/module/atoms/Skeleton.js +30 -13
- package/lib/module/atoms/Skeleton.js.map +1 -1
- package/lib/module/atoms/Spinner.js +82 -23
- package/lib/module/atoms/Spinner.js.map +1 -1
- package/lib/module/atoms/Text.js +56 -5
- package/lib/module/atoms/Text.js.map +1 -1
- package/lib/module/atoms/Transition.js +41 -42
- package/lib/module/atoms/Transition.js.map +1 -1
- package/lib/module/atoms/index.js +1 -1
- package/lib/module/atoms/index.js.map +1 -1
- package/lib/module/atoms/inputValidation.js +52 -0
- package/lib/module/atoms/inputValidation.js.map +1 -0
- package/lib/module/icons/Icon.js +4 -4
- package/lib/module/icons/defaultIcons.js +574 -24
- package/lib/module/icons/defaultIcons.js.map +1 -1
- package/lib/module/icons/index.js +1 -1
- package/lib/module/icons/index.js.map +1 -1
- package/lib/module/molecules/AvatarHeader.js +47 -14
- package/lib/module/molecules/AvatarHeader.js.map +1 -1
- package/lib/module/molecules/FormActions.js +25 -9
- package/lib/module/molecules/FormActions.js.map +1 -1
- package/lib/module/molecules/InfoRow.js +30 -14
- package/lib/module/molecules/InfoRow.js.map +1 -1
- package/lib/module/molecules/OptionCard.js +37 -22
- package/lib/module/molecules/OptionCard.js.map +1 -1
- package/lib/module/molecules/SegmentedControl.js +107 -18
- package/lib/module/molecules/SegmentedControl.js.map +1 -1
- package/lib/module/molecules/Stepper.js +63 -18
- package/lib/module/molecules/Stepper.js.map +1 -1
- package/lib/module/molecules/Steps.js +107 -43
- package/lib/module/molecules/Steps.js.map +1 -1
- package/lib/module/molecules/SymmetricGrid.js +26 -18
- package/lib/module/molecules/SymmetricGrid.js.map +1 -1
- package/lib/module/organisms/Alert.js +51 -37
- package/lib/module/organisms/Alert.js.map +1 -1
- package/lib/module/organisms/AlertProvider.js +10 -10
- package/lib/module/organisms/BottomSheet.js +142 -88
- package/lib/module/organisms/BottomSheet.js.map +1 -1
- package/lib/module/organisms/Chart.js +176 -156
- package/lib/module/organisms/Chart.js.map +1 -1
- package/lib/module/organisms/DateField.js +36 -20
- package/lib/module/organisms/DateField.js.map +1 -1
- package/lib/module/organisms/DatePicker.js +56 -33
- package/lib/module/organisms/DatePicker.js.map +1 -1
- package/lib/module/organisms/List.js +62 -34
- package/lib/module/organisms/List.js.map +1 -1
- package/lib/module/organisms/Modal.js +122 -84
- package/lib/module/organisms/Modal.js.map +1 -1
- package/lib/module/organisms/NavigationBar.js +64 -25
- package/lib/module/organisms/NavigationBar.js.map +1 -1
- package/lib/module/organisms/OptionWheel.js +64 -64
- package/lib/module/organisms/OptionWheel.js.map +1 -1
- package/lib/module/organisms/ReorderableList.js +48 -27
- package/lib/module/organisms/ReorderableList.js.map +1 -1
- package/lib/module/organisms/Screen.js +70 -37
- package/lib/module/organisms/Screen.js.map +1 -1
- package/lib/module/organisms/SearchList.js +56 -26
- package/lib/module/organisms/SearchList.js.map +1 -1
- package/lib/module/organisms/Select.js +46 -25
- package/lib/module/organisms/Select.js.map +1 -1
- package/lib/module/organisms/Slides.js +37 -24
- package/lib/module/organisms/Slides.js.map +1 -1
- package/lib/module/organisms/ThemeToggle.js +11 -10
- package/lib/module/organisms/ThemeToggle.js.map +1 -1
- package/lib/module/organisms/Timeline.js +73 -56
- package/lib/module/organisms/Timeline.js.map +1 -1
- package/lib/module/organisms/Toast.js +47 -16
- package/lib/module/organisms/Toast.js.map +1 -1
- package/lib/module/organisms/ToastProvider.js +15 -11
- package/lib/module/organisms/ToastProvider.js.map +1 -1
- package/lib/module/organisms/Wizard.js +41 -16
- package/lib/module/organisms/Wizard.js.map +1 -1
- package/lib/module/organisms/chart/frame.js +25 -25
- package/lib/module/organisms/chart/frame.js.map +1 -1
- package/lib/module/organisms/chart/marks.js +42 -42
- package/lib/module/organisms/chart/math.js +84 -85
- package/lib/module/organisms/chart/math.js.map +1 -1
- package/lib/module/organisms/chart/palette.js +28 -28
- package/lib/module/organisms/imperativeBridge.js +5 -5
- package/lib/module/organisms/imperativeBridge.js.map +1 -1
- package/lib/module/organisms/useSlides.js +53 -21
- package/lib/module/organisms/useSlides.js.map +1 -1
- package/lib/module/safe-area/SafeAreaUIProvider.js +10 -65
- package/lib/module/safe-area/SafeAreaUIProvider.js.map +1 -1
- package/lib/module/safe-area/index.js +1 -0
- package/lib/module/safe-area/index.js.map +1 -1
- package/lib/module/theme/KeyboardAvoidance.js +198 -0
- package/lib/module/theme/KeyboardAvoidance.js.map +1 -0
- package/lib/module/theme/NativeOverlay.js +257 -0
- package/lib/module/theme/NativeOverlay.js.map +1 -0
- package/lib/module/theme/UIProvider.js +88 -35
- package/lib/module/theme/UIProvider.js.map +1 -1
- package/lib/module/theme/colors.js +17 -17
- package/lib/module/theme/colors.js.map +1 -1
- package/lib/module/theme/createStyles.js +20 -16
- package/lib/module/theme/createStyles.js.map +1 -1
- package/lib/module/theme/createTheme.js +6 -6
- package/lib/module/theme/index.js +1 -1
- package/lib/module/theme/index.js.map +1 -1
- package/lib/module/theme/insets.js +1 -1
- package/lib/module/theme/labels.js +29 -1
- package/lib/module/theme/labels.js.map +1 -1
- package/lib/module/theme/palettes.js +25 -23
- package/lib/module/theme/palettes.js.map +1 -1
- package/lib/module/theme/tokens.js +27 -13
- package/lib/module/theme/tokens.js.map +1 -1
- package/lib/module/theme/useKeyboardField.js +33 -0
- package/lib/module/theme/useKeyboardField.js.map +1 -0
- package/lib/module/theme/useReduceMotion.js +28 -0
- package/lib/module/theme/useReduceMotion.js.map +1 -0
- package/lib/typescript/atoms/Avatar.d.ts +35 -5
- package/lib/typescript/atoms/Avatar.d.ts.map +1 -1
- package/lib/typescript/atoms/Badge.d.ts +14 -3
- package/lib/typescript/atoms/Badge.d.ts.map +1 -1
- package/lib/typescript/atoms/Button.d.ts +34 -3
- package/lib/typescript/atoms/Button.d.ts.map +1 -1
- package/lib/typescript/atoms/Card.d.ts +13 -2
- package/lib/typescript/atoms/Card.d.ts.map +1 -1
- package/lib/typescript/atoms/Checkbox.d.ts +26 -1
- package/lib/typescript/atoms/Checkbox.d.ts.map +1 -1
- package/lib/typescript/atoms/Divider.d.ts +18 -1
- package/lib/typescript/atoms/Divider.d.ts.map +1 -1
- package/lib/typescript/atoms/EmptyState.d.ts +30 -3
- package/lib/typescript/atoms/EmptyState.d.ts.map +1 -1
- package/lib/typescript/atoms/Fab.d.ts +24 -4
- package/lib/typescript/atoms/Fab.d.ts.map +1 -1
- package/lib/typescript/atoms/Gradient.d.ts +21 -15
- package/lib/typescript/atoms/Gradient.d.ts.map +1 -1
- package/lib/typescript/atoms/IconButton.d.ts +18 -4
- package/lib/typescript/atoms/IconButton.d.ts.map +1 -1
- package/lib/typescript/atoms/Image.d.ts +39 -17
- package/lib/typescript/atoms/Image.d.ts.map +1 -1
- package/lib/typescript/atoms/Input.d.ts +57 -7
- package/lib/typescript/atoms/Input.d.ts.map +1 -1
- package/lib/typescript/atoms/KeyValueRow.d.ts +16 -4
- package/lib/typescript/atoms/KeyValueRow.d.ts.map +1 -1
- package/lib/typescript/atoms/PressableScale.d.ts +12 -5
- package/lib/typescript/atoms/PressableScale.d.ts.map +1 -1
- package/lib/typescript/atoms/ShinyText.d.ts +17 -17
- package/lib/typescript/atoms/ShinyText.d.ts.map +1 -1
- package/lib/typescript/atoms/Skeleton.d.ts +12 -7
- package/lib/typescript/atoms/Skeleton.d.ts.map +1 -1
- package/lib/typescript/atoms/Spinner.d.ts +29 -1
- package/lib/typescript/atoms/Spinner.d.ts.map +1 -1
- package/lib/typescript/atoms/Text.d.ts +46 -0
- package/lib/typescript/atoms/Text.d.ts.map +1 -1
- package/lib/typescript/atoms/Transition.d.ts +19 -15
- package/lib/typescript/atoms/Transition.d.ts.map +1 -1
- package/lib/typescript/atoms/index.d.ts +3 -3
- package/lib/typescript/atoms/index.d.ts.map +1 -1
- package/lib/typescript/atoms/inputValidation.d.ts +29 -0
- package/lib/typescript/atoms/inputValidation.d.ts.map +1 -0
- package/lib/typescript/icons/Icon.d.ts +4 -4
- package/lib/typescript/icons/defaultIcons.d.ts +19 -2
- package/lib/typescript/icons/defaultIcons.d.ts.map +1 -1
- package/lib/typescript/icons/index.d.ts +2 -2
- package/lib/typescript/icons/index.d.ts.map +1 -1
- package/lib/typescript/icons/types.d.ts +13 -3
- package/lib/typescript/icons/types.d.ts.map +1 -1
- package/lib/typescript/molecules/AvatarHeader.d.ts +23 -4
- package/lib/typescript/molecules/AvatarHeader.d.ts.map +1 -1
- package/lib/typescript/molecules/FormActions.d.ts +21 -4
- package/lib/typescript/molecules/FormActions.d.ts.map +1 -1
- package/lib/typescript/molecules/InfoRow.d.ts +17 -3
- package/lib/typescript/molecules/InfoRow.d.ts.map +1 -1
- package/lib/typescript/molecules/OptionCard.d.ts +20 -5
- package/lib/typescript/molecules/OptionCard.d.ts.map +1 -1
- package/lib/typescript/molecules/SegmentedControl.d.ts +18 -2
- package/lib/typescript/molecules/SegmentedControl.d.ts.map +1 -1
- package/lib/typescript/molecules/Stepper.d.ts +23 -7
- package/lib/typescript/molecules/Stepper.d.ts.map +1 -1
- package/lib/typescript/molecules/Steps.d.ts +18 -4
- package/lib/typescript/molecules/Steps.d.ts.map +1 -1
- package/lib/typescript/molecules/SymmetricGrid.d.ts +15 -5
- package/lib/typescript/molecules/SymmetricGrid.d.ts.map +1 -1
- package/lib/typescript/organisms/Alert.d.ts +28 -2
- package/lib/typescript/organisms/Alert.d.ts.map +1 -1
- package/lib/typescript/organisms/AlertProvider.d.ts +10 -10
- package/lib/typescript/organisms/AlertProvider.d.ts.map +1 -1
- package/lib/typescript/organisms/BottomSheet.d.ts +20 -5
- package/lib/typescript/organisms/BottomSheet.d.ts.map +1 -1
- package/lib/typescript/organisms/Chart.d.ts +86 -75
- package/lib/typescript/organisms/Chart.d.ts.map +1 -1
- package/lib/typescript/organisms/DateField.d.ts +17 -3
- package/lib/typescript/organisms/DateField.d.ts.map +1 -1
- package/lib/typescript/organisms/DatePicker.d.ts +7 -11
- package/lib/typescript/organisms/DatePicker.d.ts.map +1 -1
- package/lib/typescript/organisms/List.d.ts +30 -3
- package/lib/typescript/organisms/List.d.ts.map +1 -1
- package/lib/typescript/organisms/Modal.d.ts +30 -3
- package/lib/typescript/organisms/Modal.d.ts.map +1 -1
- package/lib/typescript/organisms/NavigationBar.d.ts +26 -7
- package/lib/typescript/organisms/NavigationBar.d.ts.map +1 -1
- package/lib/typescript/organisms/OptionWheel.d.ts +20 -16
- package/lib/typescript/organisms/OptionWheel.d.ts.map +1 -1
- package/lib/typescript/organisms/ReorderableList.d.ts +20 -11
- package/lib/typescript/organisms/ReorderableList.d.ts.map +1 -1
- package/lib/typescript/organisms/Screen.d.ts +27 -8
- package/lib/typescript/organisms/Screen.d.ts.map +1 -1
- package/lib/typescript/organisms/SearchList.d.ts +46 -3
- package/lib/typescript/organisms/SearchList.d.ts.map +1 -1
- package/lib/typescript/organisms/Select.d.ts +26 -6
- package/lib/typescript/organisms/Select.d.ts.map +1 -1
- package/lib/typescript/organisms/Slides.d.ts +44 -26
- package/lib/typescript/organisms/Slides.d.ts.map +1 -1
- package/lib/typescript/organisms/ThemeToggle.d.ts +6 -2
- package/lib/typescript/organisms/ThemeToggle.d.ts.map +1 -1
- package/lib/typescript/organisms/Timeline.d.ts +26 -9
- package/lib/typescript/organisms/Timeline.d.ts.map +1 -1
- package/lib/typescript/organisms/Toast.d.ts +19 -4
- package/lib/typescript/organisms/Toast.d.ts.map +1 -1
- package/lib/typescript/organisms/ToastProvider.d.ts +8 -8
- package/lib/typescript/organisms/ToastProvider.d.ts.map +1 -1
- package/lib/typescript/organisms/Wizard.d.ts +24 -6
- package/lib/typescript/organisms/Wizard.d.ts.map +1 -1
- package/lib/typescript/organisms/chart/frame.d.ts +21 -21
- package/lib/typescript/organisms/chart/frame.d.ts.map +1 -1
- package/lib/typescript/organisms/chart/marks.d.ts +28 -28
- package/lib/typescript/organisms/chart/marks.d.ts.map +1 -1
- package/lib/typescript/organisms/chart/math.d.ts +69 -70
- package/lib/typescript/organisms/chart/math.d.ts.map +1 -1
- package/lib/typescript/organisms/chart/palette.d.ts +2 -2
- package/lib/typescript/organisms/chart/palette.d.ts.map +1 -1
- package/lib/typescript/organisms/imperativeBridge.d.ts +4 -4
- package/lib/typescript/organisms/useSlides.d.ts +8 -16
- package/lib/typescript/organisms/useSlides.d.ts.map +1 -1
- package/lib/typescript/safe-area/SafeAreaUIProvider.d.ts +9 -7
- package/lib/typescript/safe-area/SafeAreaUIProvider.d.ts.map +1 -1
- package/lib/typescript/safe-area/index.d.ts.map +1 -1
- package/lib/typescript/theme/KeyboardAvoidance.d.ts +62 -0
- package/lib/typescript/theme/KeyboardAvoidance.d.ts.map +1 -0
- package/lib/typescript/theme/NativeOverlay.d.ts +43 -0
- package/lib/typescript/theme/NativeOverlay.d.ts.map +1 -0
- package/lib/typescript/theme/UIProvider.d.ts +38 -20
- package/lib/typescript/theme/UIProvider.d.ts.map +1 -1
- package/lib/typescript/theme/colors.d.ts +13 -13
- package/lib/typescript/theme/colors.d.ts.map +1 -1
- package/lib/typescript/theme/createStyles.d.ts +20 -14
- package/lib/typescript/theme/createStyles.d.ts.map +1 -1
- package/lib/typescript/theme/createTheme.d.ts +5 -5
- package/lib/typescript/theme/index.d.ts +1 -1
- package/lib/typescript/theme/index.d.ts.map +1 -1
- package/lib/typescript/theme/insets.d.ts +1 -1
- package/lib/typescript/theme/insets.d.ts.map +1 -1
- package/lib/typescript/theme/labels.d.ts +57 -2
- package/lib/typescript/theme/labels.d.ts.map +1 -1
- package/lib/typescript/theme/palettes.d.ts +25 -19
- package/lib/typescript/theme/palettes.d.ts.map +1 -1
- package/lib/typescript/theme/tokens.d.ts +15 -8
- package/lib/typescript/theme/tokens.d.ts.map +1 -1
- package/lib/typescript/theme/types.d.ts +7 -7
- package/lib/typescript/theme/types.d.ts.map +1 -1
- package/lib/typescript/theme/useKeyboardField.d.ts +17 -0
- package/lib/typescript/theme/useKeyboardField.d.ts.map +1 -0
- package/lib/typescript/theme/useReduceMotion.d.ts +7 -0
- package/lib/typescript/theme/useReduceMotion.d.ts.map +1 -0
- package/llms.txt +4 -4
- package/package.json +15 -14
- package/registry/alert-provider.json +4 -3
- package/registry/alert.json +3 -2
- package/registry/avatar-header.json +1 -1
- package/registry/avatar.json +3 -2
- package/registry/badge.json +1 -1
- package/registry/bottom-sheet.json +1 -1
- package/registry/button.json +3 -2
- package/registry/card.json +1 -1
- package/registry/chart.json +5 -5
- package/registry/checkbox.json +3 -2
- package/registry/core.json +31 -15
- package/registry/date-field.json +1 -1
- package/registry/date-picker.json +3 -2
- package/registry/divider.json +1 -1
- package/registry/empty-state.json +4 -2
- package/registry/fab.json +3 -2
- package/registry/form-actions.json +3 -2
- package/registry/gradient.json +1 -1
- package/registry/icon-button.json +3 -2
- package/registry/image.json +1 -1
- package/registry/index.json +79 -61
- package/registry/info-row.json +1 -1
- package/registry/input.json +5 -1
- package/registry/key-value-row.json +1 -1
- package/registry/list.json +3 -1
- package/registry/manifest.json +3 -1
- package/registry/modal.json +1 -1
- package/registry/navigation-bar.json +1 -1
- package/registry/option-card.json +3 -2
- package/registry/option-wheel.json +1 -1
- package/registry/pressable-scale.json +3 -2
- package/registry/reorderable-list.json +1 -1
- package/registry/screen.json +1 -1
- package/registry/search-list.json +7 -1
- package/registry/segmented-control.json +1 -1
- package/registry/select.json +1 -1
- package/registry/shiny-text.json +1 -1
- package/registry/skeleton.json +3 -2
- package/registry/slides.json +2 -2
- package/registry/spinner.json +1 -1
- package/registry/stepper.json +1 -1
- package/registry/steps.json +1 -1
- package/registry/symmetric-grid.json +1 -1
- package/registry/theme-toggle.json +1 -1
- package/registry/timeline.json +1 -1
- package/registry/title.json +1 -1
- package/registry/toast-provider.json +2 -2
- package/registry/toast.json +1 -1
- package/registry/transition.json +1 -1
- package/registry/wizard.json +1 -1
- package/src/atoms/Avatar.tsx +117 -26
- package/src/atoms/Badge.tsx +20 -9
- package/src/atoms/Button.tsx +102 -30
- package/src/atoms/Card.tsx +23 -3
- package/src/atoms/Checkbox.tsx +49 -12
- package/src/atoms/Divider.tsx +34 -4
- package/src/atoms/EmptyState.tsx +63 -16
- package/src/atoms/Fab.tsx +56 -9
- package/src/atoms/Gradient.tsx +92 -41
- package/src/atoms/IconButton.tsx +27 -4
- package/src/atoms/Image.tsx +74 -28
- package/src/atoms/Input.tsx +129 -19
- package/src/atoms/KeyValueRow.tsx +72 -28
- package/src/atoms/PressableScale.tsx +31 -7
- package/src/atoms/ShinyText.tsx +31 -31
- package/src/atoms/Skeleton.tsx +37 -17
- package/src/atoms/Spinner.tsx +87 -24
- package/src/atoms/Text.tsx +66 -6
- package/src/atoms/Transition.tsx +40 -44
- package/src/atoms/index.ts +3 -3
- package/src/atoms/inputValidation.ts +59 -0
- package/src/icons/Icon.tsx +4 -4
- package/src/icons/defaultIcons.tsx +445 -22
- package/src/icons/index.ts +2 -2
- package/src/icons/types.ts +26 -4
- package/src/molecules/AvatarHeader.tsx +88 -34
- package/src/molecules/FormActions.tsx +36 -6
- package/src/molecules/InfoRow.tsx +39 -12
- package/src/molecules/OptionCard.tsx +55 -20
- package/src/molecules/SegmentedControl.tsx +135 -15
- package/src/molecules/Stepper.tsx +73 -19
- package/src/molecules/Steps.tsx +121 -39
- package/src/molecules/SymmetricGrid.tsx +28 -12
- package/src/organisms/Alert.tsx +97 -26
- package/src/organisms/AlertProvider.tsx +13 -13
- package/src/organisms/BottomSheet.tsx +115 -43
- package/src/organisms/Chart.tsx +193 -164
- package/src/organisms/DateField.tsx +40 -15
- package/src/organisms/DatePicker.tsx +53 -32
- package/src/organisms/List.tsx +64 -15
- package/src/organisms/Modal.tsx +122 -63
- package/src/organisms/NavigationBar.tsx +73 -23
- package/src/organisms/OptionWheel.tsx +70 -66
- package/src/organisms/ReorderableList.tsx +49 -27
- package/src/organisms/Screen.tsx +79 -42
- package/src/organisms/SearchList.tsx +84 -20
- package/src/organisms/Select.tsx +63 -29
- package/src/organisms/Slides.tsx +63 -44
- package/src/organisms/ThemeToggle.tsx +15 -6
- package/src/organisms/Timeline.tsx +79 -62
- package/src/organisms/Toast.tsx +50 -15
- package/src/organisms/ToastProvider.tsx +17 -13
- package/src/organisms/Wizard.tsx +58 -21
- package/src/organisms/chart/frame.tsx +35 -35
- package/src/organisms/chart/marks.tsx +53 -53
- package/src/organisms/chart/math.ts +93 -94
- package/src/organisms/chart/palette.ts +28 -28
- package/src/organisms/imperativeBridge.ts +5 -5
- package/src/organisms/useSlides.ts +66 -31
- package/src/safe-area/SafeAreaUIProvider.tsx +9 -70
- package/src/safe-area/index.ts +1 -0
- package/src/theme/KeyboardAvoidance.tsx +216 -0
- package/src/theme/NativeOverlay.tsx +269 -0
- package/src/theme/UIProvider.tsx +109 -46
- package/src/theme/colors.ts +21 -21
- package/src/theme/createStyles.ts +23 -19
- package/src/theme/createTheme.ts +6 -6
- package/src/theme/index.ts +1 -1
- package/src/theme/insets.ts +1 -1
- package/src/theme/labels.ts +85 -2
- package/src/theme/palettes.ts +33 -25
- package/src/theme/tokens.ts +27 -13
- package/src/theme/types.ts +7 -7
- package/src/theme/useKeyboardField.ts +33 -0
- package/src/theme/useReduceMotion.ts +27 -0
|
@@ -1,32 +1,60 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { memo } from 'react';
|
|
4
|
-
import { Text, TouchableOpacity, View } from 'react-native';
|
|
3
|
+
import React, { memo, useEffect, useRef, useState } from 'react';
|
|
4
|
+
import { Animated, Easing, I18nManager, Text, TouchableOpacity, View } from 'react-native';
|
|
5
5
|
import { createStyles } from '../theme/createStyles';
|
|
6
|
-
import { useAllowFontScaling } from '../theme/UIProvider';
|
|
7
|
-
import {
|
|
6
|
+
import { useAllowFontScaling, useTheme } from '../theme/UIProvider';
|
|
7
|
+
import { useReduceMotion } from '../theme/useReduceMotion';
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
/** Inset between the track and the segments. */
|
|
10
|
+
const TRACK_PADDING = 3;
|
|
11
|
+
/** Minimum touch target (Fitts): the segment plus the track inset reach it. */
|
|
12
|
+
const MIN_TOUCH = 44;
|
|
13
|
+
const DISABLED_OPACITY = 0.5;
|
|
14
|
+
const HIT_SLOP = {
|
|
15
|
+
top: TRACK_PADDING,
|
|
16
|
+
bottom: TRACK_PADDING
|
|
17
|
+
};
|
|
8
18
|
const useStyles = createStyles(theme => ({
|
|
9
19
|
track: {
|
|
10
20
|
flexDirection: 'row',
|
|
11
21
|
backgroundColor: theme.colors.inputBackground,
|
|
12
22
|
borderRadius: theme.tokens.radius.md,
|
|
13
|
-
padding:
|
|
23
|
+
padding: TRACK_PADDING
|
|
14
24
|
},
|
|
15
25
|
segment: {
|
|
16
26
|
flex: 1,
|
|
27
|
+
minHeight: MIN_TOUCH - TRACK_PADDING * 2,
|
|
17
28
|
paddingVertical: theme.tokens.spacing.sm,
|
|
29
|
+
paddingHorizontal: theme.tokens.spacing.xs,
|
|
18
30
|
borderRadius: theme.tokens.radius.sm,
|
|
19
|
-
alignItems: 'center'
|
|
31
|
+
alignItems: 'center',
|
|
32
|
+
justifyContent: 'center'
|
|
20
33
|
},
|
|
21
|
-
|
|
34
|
+
// Light: a white segment with a shadow over the grey track. Dark: shadows
|
|
35
|
+
// don't show and `surface` is darker than the track (the segment looked
|
|
36
|
+
// sunken), so the selected one takes the soft accent fill instead.
|
|
37
|
+
// One shared indicator slides under the segments; until the track is
|
|
38
|
+
// measured, the selected segment paints this same fill itself.
|
|
39
|
+
indicator: {
|
|
40
|
+
position: 'absolute',
|
|
41
|
+
top: TRACK_PADDING,
|
|
42
|
+
bottom: TRACK_PADDING,
|
|
43
|
+
start: TRACK_PADDING,
|
|
44
|
+
borderRadius: theme.tokens.radius.sm
|
|
45
|
+
},
|
|
46
|
+
segmentActive: theme.scheme === 'dark' ? {
|
|
47
|
+
backgroundColor: theme.colors.primarySoft
|
|
48
|
+
} : {
|
|
22
49
|
backgroundColor: theme.colors.surface,
|
|
23
50
|
...theme.tokens.shadow.sm
|
|
24
51
|
},
|
|
25
52
|
segmentDisabled: {
|
|
26
|
-
opacity:
|
|
53
|
+
opacity: DISABLED_OPACITY
|
|
27
54
|
},
|
|
28
55
|
label: {
|
|
29
|
-
fontSize: theme.tokens.fontSize.
|
|
56
|
+
fontSize: theme.tokens.fontSize.md,
|
|
57
|
+
lineHeight: theme.tokens.lineHeight.md,
|
|
30
58
|
fontWeight: theme.tokens.fontWeight.medium,
|
|
31
59
|
color: theme.colors.textLight
|
|
32
60
|
},
|
|
@@ -38,8 +66,18 @@ const useStyles = createStyles(theme => ({
|
|
|
38
66
|
|
|
39
67
|
/**
|
|
40
68
|
* SegmentedControl
|
|
41
|
-
*
|
|
42
|
-
*
|
|
69
|
+
* Picks one option among a few, all visible. It knows no global state:
|
|
70
|
+
* it receives `value` and reports through `onChange`.
|
|
71
|
+
*
|
|
72
|
+
* Gestalt, common region: one track holds every segment, so they read as a
|
|
73
|
+
* single question. Similarity: equal widths and one line each, so no option
|
|
74
|
+
* looks more important. Figure-ground: the selected segment is raised (surface
|
|
75
|
+
* + shadow) above the sunken track; in dark, where shadows vanish, it takes
|
|
76
|
+
* the soft accent fill. Fitts: every segment reaches 44pt.
|
|
77
|
+
*
|
|
78
|
+
* Continuity: the selection is one indicator that slides from the old segment
|
|
79
|
+
* to the new one, so the eye follows the change instead of seeing one fill
|
|
80
|
+
* vanish and another appear. With Reduce Motion it jumps.
|
|
43
81
|
*/
|
|
44
82
|
function SegmentedControlInner({
|
|
45
83
|
options,
|
|
@@ -50,18 +88,68 @@ function SegmentedControlInner({
|
|
|
50
88
|
testID
|
|
51
89
|
}) {
|
|
52
90
|
const styles = useStyles();
|
|
91
|
+
const theme = useTheme();
|
|
53
92
|
const allowFontScaling = useAllowFontScaling();
|
|
54
|
-
|
|
93
|
+
const reduceMotion = useReduceMotion();
|
|
94
|
+
const [trackWidth, setTrackWidth] = useState(0);
|
|
95
|
+
const offset = useRef(new Animated.Value(0)).current;
|
|
96
|
+
const placed = useRef(false);
|
|
97
|
+
const index = options.findIndex(option => option.value === value);
|
|
98
|
+
const segmentWidth = trackWidth > 0 && options.length > 0 ? (trackWidth - TRACK_PADDING * 2) / options.length : 0;
|
|
99
|
+
const showIndicator = segmentWidth > 0 && index >= 0;
|
|
100
|
+
// transform isn't mirrored in RTL: the indicator starts at the right edge
|
|
101
|
+
// (`start`), so it moves left.
|
|
102
|
+
const target = index * segmentWidth * (I18nManager.isRTL ? -1 : 1);
|
|
103
|
+
useEffect(() => {
|
|
104
|
+
if (!showIndicator) return;
|
|
105
|
+
// First placement (and Reduce Motion) jumps; only a change of value slides.
|
|
106
|
+
if (!placed.current || reduceMotion) {
|
|
107
|
+
placed.current = true;
|
|
108
|
+
offset.setValue(target);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const animation = Animated.timing(offset, {
|
|
112
|
+
toValue: target,
|
|
113
|
+
duration: theme.tokens.duration.base,
|
|
114
|
+
easing: Easing.out(Easing.cubic),
|
|
115
|
+
useNativeDriver: true
|
|
116
|
+
});
|
|
117
|
+
animation.start();
|
|
118
|
+
return () => animation.stop();
|
|
119
|
+
}, [target, showIndicator, reduceMotion, offset, theme.tokens.duration.base]);
|
|
120
|
+
|
|
121
|
+
// A new width (rotation, resize) places the indicator without animating.
|
|
122
|
+
const onLayout = e => {
|
|
123
|
+
const width = e.nativeEvent.layout.width;
|
|
124
|
+
if (width === trackWidth) return;
|
|
125
|
+
placed.current = false;
|
|
126
|
+
setTrackWidth(width);
|
|
127
|
+
};
|
|
128
|
+
const activeDisabled = disabled || !!options[index]?.disabled;
|
|
129
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
55
130
|
style: [styles.track, style],
|
|
56
131
|
accessibilityRole: "radiogroup",
|
|
57
132
|
testID: testID,
|
|
58
|
-
|
|
133
|
+
onLayout: onLayout,
|
|
134
|
+
children: [showIndicator && /*#__PURE__*/_jsx(Animated.View, {
|
|
135
|
+
pointerEvents: "none",
|
|
136
|
+
testID: testID && `${testID}-indicator`,
|
|
137
|
+
style: [styles.indicator, styles.segmentActive, {
|
|
138
|
+
width: segmentWidth,
|
|
139
|
+
transform: [{
|
|
140
|
+
translateX: offset
|
|
141
|
+
}]
|
|
142
|
+
}, activeDisabled && styles.segmentDisabled]
|
|
143
|
+
}), options.map(option => {
|
|
59
144
|
const active = option.value === value;
|
|
60
145
|
const isDisabled = disabled || !!option.disabled;
|
|
61
146
|
return /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
62
|
-
style: [styles.segment, active && styles.segmentActive, isDisabled && styles.segmentDisabled],
|
|
63
|
-
onPress: () =>
|
|
147
|
+
style: [styles.segment, active && !showIndicator && styles.segmentActive, isDisabled && styles.segmentDisabled],
|
|
148
|
+
onPress: () => {
|
|
149
|
+
if (!active) onChange(option.value);
|
|
150
|
+
},
|
|
64
151
|
disabled: isDisabled,
|
|
152
|
+
hitSlop: HIT_SLOP,
|
|
65
153
|
accessibilityRole: "radio",
|
|
66
154
|
accessibilityState: {
|
|
67
155
|
selected: active,
|
|
@@ -72,15 +160,16 @@ function SegmentedControlInner({
|
|
|
72
160
|
testID: testID && `${testID}-${option.value}`,
|
|
73
161
|
children: /*#__PURE__*/_jsx(Text, {
|
|
74
162
|
allowFontScaling: allowFontScaling,
|
|
163
|
+
numberOfLines: 1,
|
|
75
164
|
style: [styles.label, active && styles.labelActive],
|
|
76
165
|
children: option.label
|
|
77
166
|
})
|
|
78
167
|
}, option.value);
|
|
79
|
-
})
|
|
168
|
+
})]
|
|
80
169
|
});
|
|
81
170
|
}
|
|
82
171
|
|
|
83
|
-
// memo()
|
|
84
|
-
// `value`
|
|
172
|
+
// memo() loses generics when wrapping: the cast restores them so that
|
|
173
|
+
// `value` and `onChange` stay tied to the union of `options`.
|
|
85
174
|
export const SegmentedControl = /*#__PURE__*/memo(SegmentedControlInner);
|
|
86
175
|
//# sourceMappingURL=SegmentedControl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","Text","TouchableOpacity","View","createStyles","useAllowFontScaling","jsx","_jsx","useStyles","theme","track","flexDirection","backgroundColor","colors","inputBackground","borderRadius","tokens","radius","md","padding","segment","flex","paddingVertical","spacing","sm","alignItems","segmentActive","surface","shadow","segmentDisabled","opacity","label","fontSize","fontWeight","medium","color","textLight","labelActive","primaryText","semibold","SegmentedControlInner","options","value","onChange","disabled","style","testID","styles","allowFontScaling","accessibilityRole","children","
|
|
1
|
+
{"version":3,"names":["React","memo","useEffect","useRef","useState","Animated","Easing","I18nManager","Text","TouchableOpacity","View","createStyles","useAllowFontScaling","useTheme","useReduceMotion","jsx","_jsx","jsxs","_jsxs","TRACK_PADDING","MIN_TOUCH","DISABLED_OPACITY","HIT_SLOP","top","bottom","useStyles","theme","track","flexDirection","backgroundColor","colors","inputBackground","borderRadius","tokens","radius","md","padding","segment","flex","minHeight","paddingVertical","spacing","sm","paddingHorizontal","xs","alignItems","justifyContent","indicator","position","start","segmentActive","scheme","primarySoft","surface","shadow","segmentDisabled","opacity","label","fontSize","lineHeight","fontWeight","medium","color","textLight","labelActive","primaryText","semibold","SegmentedControlInner","options","value","onChange","disabled","style","testID","styles","allowFontScaling","reduceMotion","trackWidth","setTrackWidth","offset","Value","current","placed","index","findIndex","option","segmentWidth","length","showIndicator","target","isRTL","setValue","animation","timing","toValue","duration","base","easing","out","cubic","useNativeDriver","stop","onLayout","e","width","nativeEvent","layout","activeDisabled","accessibilityRole","children","pointerEvents","transform","translateX","map","active","isDisabled","onPress","hitSlop","accessibilityState","selected","checked","accessibilityLabel","numberOfLines","SegmentedControl"],"sourceRoot":"../../../src","sources":["molecules/SegmentedControl.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { memo, useState } from 'react';
|
|
3
|
+
import React, { memo, useRef, useState } from 'react';
|
|
4
4
|
import { TextInput, TouchableOpacity, View } from 'react-native';
|
|
5
5
|
import { createStyles } from '../theme/createStyles';
|
|
6
|
-
import { useAllowFontScaling, useColors, useTheme } from '../theme/UIProvider';
|
|
6
|
+
import { useAllowFontScaling, useColors, useLabels, useTheme } from '../theme/UIProvider';
|
|
7
|
+
import { useKeyboardField } from '../theme/useKeyboardField';
|
|
7
8
|
import { Icon } from '../icons/Icon';
|
|
8
9
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
10
|
const SIZES = {
|
|
@@ -23,6 +24,14 @@ const SIZES = {
|
|
|
23
24
|
inputWidth: 64
|
|
24
25
|
}
|
|
25
26
|
};
|
|
27
|
+
|
|
28
|
+
/** Minimum touch target (Fitts): smaller buttons reach it with hitSlop. */
|
|
29
|
+
const MIN_TOUCH = 44;
|
|
30
|
+
const ADJUST_ACTIONS = [{
|
|
31
|
+
name: 'increment'
|
|
32
|
+
}, {
|
|
33
|
+
name: 'decrement'
|
|
34
|
+
}];
|
|
26
35
|
const useStyles = createStyles(theme => ({
|
|
27
36
|
control: {
|
|
28
37
|
flexDirection: 'row',
|
|
@@ -48,14 +57,14 @@ const useStyles = createStyles(theme => ({
|
|
|
48
57
|
borderRightWidth: 1,
|
|
49
58
|
borderColor: theme.colors.border
|
|
50
59
|
},
|
|
51
|
-
//
|
|
52
|
-
//
|
|
60
|
+
// The background tells the field apart from a read-only value: it is the
|
|
61
|
+
// only hint that you can type there before touching it.
|
|
53
62
|
editable: {
|
|
54
63
|
backgroundColor: theme.colors.inputBackground
|
|
55
64
|
}
|
|
56
65
|
}));
|
|
57
66
|
|
|
58
|
-
/**
|
|
67
|
+
/** Keeps only what can be part of a number allowed by the range. */
|
|
59
68
|
export function sanitizeNumeric(text, {
|
|
60
69
|
allowDecimals = false,
|
|
61
70
|
allowNegative = false
|
|
@@ -70,12 +79,20 @@ export function sanitizeNumeric(text, {
|
|
|
70
79
|
|
|
71
80
|
/**
|
|
72
81
|
* Stepper
|
|
73
|
-
*
|
|
74
|
-
*
|
|
82
|
+
* "-" button + editable numeric input + "+" button. `size` controls only the
|
|
83
|
+
* scale and `block` only the width, so both axes combine freely.
|
|
84
|
+
*
|
|
85
|
+
* The component doesn't do the buttons' arithmetic —that lives in
|
|
86
|
+
* `onIncrement`/`onDecrement`—, but it does clean up what is typed and signals
|
|
87
|
+
* when the value hit an end of the range by disabling the button that would pass it.
|
|
75
88
|
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
89
|
+
* Gestalt, common region: the three parts share one border, so they read as a
|
|
90
|
+
* single control; the field is set apart by its fill (it can be typed into).
|
|
91
|
+
* Fitts: every button reaches 44pt, `sm` through hitSlop.
|
|
92
|
+
*
|
|
93
|
+
* Accessibility: the field is an adjustable element — VoiceOver/TalkBack users
|
|
94
|
+
* swipe up/down to step the value — and every name comes from `labels`. Like
|
|
95
|
+
* Input, it stays visible above the keyboard while typing.
|
|
79
96
|
*/
|
|
80
97
|
export const Stepper = /*#__PURE__*/memo(({
|
|
81
98
|
value,
|
|
@@ -89,21 +106,32 @@ export const Stepper = /*#__PURE__*/memo(({
|
|
|
89
106
|
max,
|
|
90
107
|
allowDecimals = false,
|
|
91
108
|
style,
|
|
92
|
-
|
|
93
|
-
|
|
109
|
+
accessibilityLabel,
|
|
110
|
+
incrementAccessibilityLabel,
|
|
111
|
+
decrementAccessibilityLabel,
|
|
94
112
|
testID
|
|
95
113
|
}) => {
|
|
96
114
|
const theme = useTheme();
|
|
97
115
|
const colors = useColors();
|
|
98
116
|
const styles = useStyles();
|
|
117
|
+
const labels = useLabels();
|
|
99
118
|
const allowFontScaling = useAllowFontScaling();
|
|
100
119
|
const [focused, setFocused] = useState(false);
|
|
120
|
+
const controlRef = useRef(null);
|
|
121
|
+
const keyboard = useKeyboardField(controlRef);
|
|
101
122
|
const {
|
|
102
123
|
height,
|
|
103
124
|
icon,
|
|
104
125
|
inputWidth
|
|
105
126
|
} = SIZES[size];
|
|
106
127
|
const fontSize = size === 'sm' ? theme.tokens.fontSize.md : size === 'md' ? theme.tokens.fontSize.lg : theme.tokens.fontSize.xl;
|
|
128
|
+
const slopV = Math.max(0, (MIN_TOUCH - height) / 2);
|
|
129
|
+
const hitSlop = slopV > 0 ? {
|
|
130
|
+
top: slopV,
|
|
131
|
+
bottom: slopV,
|
|
132
|
+
left: slopV,
|
|
133
|
+
right: slopV
|
|
134
|
+
} : undefined;
|
|
107
135
|
const allowNegative = min !== undefined && min < 0;
|
|
108
136
|
const numeric = Number(value);
|
|
109
137
|
const isNumber = value.trim() !== '' && Number.isFinite(numeric);
|
|
@@ -116,17 +144,24 @@ export const Stepper = /*#__PURE__*/memo(({
|
|
|
116
144
|
}));
|
|
117
145
|
};
|
|
118
146
|
|
|
119
|
-
//
|
|
120
|
-
//
|
|
147
|
+
// Clamping to the range waits for blur: doing it while typing makes it
|
|
148
|
+
// impossible to reach "12" when the minimum is 5, because the "1" would
|
|
149
|
+
// already be corrected.
|
|
121
150
|
const handleBlur = () => {
|
|
122
151
|
setFocused(false);
|
|
152
|
+
keyboard.blur();
|
|
123
153
|
if (!isNumber) return;
|
|
124
154
|
const clamped = Math.min(max ?? numeric, Math.max(min ?? numeric, numeric));
|
|
125
155
|
if (clamped !== numeric) onChangeText(String(clamped));
|
|
126
156
|
};
|
|
157
|
+
const handleAccessibilityAction = e => {
|
|
158
|
+
if (e.nativeEvent.actionName === 'increment' && !atMax) onIncrement();
|
|
159
|
+
if (e.nativeEvent.actionName === 'decrement' && !atMin) onDecrement();
|
|
160
|
+
};
|
|
127
161
|
const stepButton = (direction, onPress, disabled, label) => /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
128
162
|
onPress: onPress,
|
|
129
163
|
disabled: disabled,
|
|
164
|
+
hitSlop: hitSlop,
|
|
130
165
|
style: [styles.btn, {
|
|
131
166
|
width: height
|
|
132
167
|
}],
|
|
@@ -143,13 +178,14 @@ export const Stepper = /*#__PURE__*/memo(({
|
|
|
143
178
|
})
|
|
144
179
|
});
|
|
145
180
|
return /*#__PURE__*/_jsxs(View, {
|
|
181
|
+
ref: controlRef,
|
|
146
182
|
testID: testID,
|
|
147
183
|
style: [styles.control, {
|
|
148
184
|
height
|
|
149
185
|
}, block && styles.controlBlock, focused && {
|
|
150
186
|
borderColor: colors.primary
|
|
151
187
|
}, style],
|
|
152
|
-
children: [stepButton('decrement', onDecrement, atMin, decrementAccessibilityLabel), /*#__PURE__*/_jsx(TextInput, {
|
|
188
|
+
children: [stepButton('decrement', onDecrement, atMin, decrementAccessibilityLabel ?? labels.decrement), /*#__PURE__*/_jsx(TextInput, {
|
|
153
189
|
allowFontScaling: allowFontScaling,
|
|
154
190
|
style: [styles.input, {
|
|
155
191
|
fontSize
|
|
@@ -162,13 +198,22 @@ export const Stepper = /*#__PURE__*/memo(({
|
|
|
162
198
|
}],
|
|
163
199
|
value: value,
|
|
164
200
|
onChangeText: handleChangeText,
|
|
165
|
-
onFocus: () =>
|
|
201
|
+
onFocus: () => {
|
|
202
|
+
setFocused(true);
|
|
203
|
+
keyboard.focus();
|
|
204
|
+
},
|
|
166
205
|
onBlur: handleBlur,
|
|
167
206
|
editable: editable,
|
|
168
207
|
keyboardType: allowDecimals ? 'decimal-pad' : 'number-pad',
|
|
169
208
|
selectTextOnFocus: true,
|
|
170
|
-
accessibilityLabel:
|
|
171
|
-
|
|
209
|
+
accessibilityLabel: accessibilityLabel ?? labels.quantity,
|
|
210
|
+
accessibilityRole: "adjustable",
|
|
211
|
+
accessibilityValue: {
|
|
212
|
+
text: value
|
|
213
|
+
},
|
|
214
|
+
accessibilityActions: ADJUST_ACTIONS,
|
|
215
|
+
onAccessibilityAction: handleAccessibilityAction
|
|
216
|
+
}), stepButton('increment', onIncrement, atMax, incrementAccessibilityLabel ?? labels.increment)]
|
|
172
217
|
});
|
|
173
218
|
});
|
|
174
219
|
Stepper.displayName = 'Stepper';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","useState","TextInput","TouchableOpacity","View","createStyles","useAllowFontScaling","useColors","useTheme","Icon","jsx","_jsx","jsxs","_jsxs","SIZES","sm","height","icon","inputWidth","md","lg","useStyles","theme","control","flexDirection","alignItems","alignSelf","borderWidth","borderColor","colors","border","borderRadius","tokens","radius","controlBlock","btn","justifyContent","input","textAlign","color","text","borderLeftWidth","borderRightWidth","editable","backgroundColor","inputBackground","sanitizeNumeric","allowDecimals","allowNegative","normalized","replace","negative","trimStart","startsWith","digits","whole","decimals","split","body","length","join","Stepper","value","onChangeText","onIncrement","onDecrement","size","block","min","max","style","incrementAccessibilityLabel","decrementAccessibilityLabel","testID","styles","allowFontScaling","focused","setFocused","fontSize","xl","undefined","numeric","Number","isNumber","trim","isFinite","atMin","atMax","handleChangeText","handleBlur","
|
|
1
|
+
{"version":3,"names":["React","memo","useRef","useState","TextInput","TouchableOpacity","View","createStyles","useAllowFontScaling","useColors","useLabels","useTheme","useKeyboardField","Icon","jsx","_jsx","jsxs","_jsxs","SIZES","sm","height","icon","inputWidth","md","lg","MIN_TOUCH","ADJUST_ACTIONS","name","useStyles","theme","control","flexDirection","alignItems","alignSelf","borderWidth","borderColor","colors","border","borderRadius","tokens","radius","controlBlock","btn","justifyContent","input","textAlign","color","text","borderLeftWidth","borderRightWidth","editable","backgroundColor","inputBackground","sanitizeNumeric","allowDecimals","allowNegative","normalized","replace","negative","trimStart","startsWith","digits","whole","decimals","split","body","length","join","Stepper","value","onChangeText","onIncrement","onDecrement","size","block","min","max","style","accessibilityLabel","incrementAccessibilityLabel","decrementAccessibilityLabel","testID","styles","labels","allowFontScaling","focused","setFocused","controlRef","keyboard","fontSize","xl","slopV","Math","hitSlop","top","bottom","left","right","undefined","numeric","Number","isNumber","trim","isFinite","atMin","atMax","handleChangeText","handleBlur","blur","clamped","String","handleAccessibilityAction","e","nativeEvent","actionName","stepButton","direction","onPress","disabled","label","width","accessibilityRole","accessibilityState","children","textLight","primary","ref","decrement","flex","onFocus","focus","onBlur","keyboardType","selectTextOnFocus","quantity","accessibilityValue","accessibilityActions","onAccessibilityAction","increment","displayName"],"sourceRoot":"../../../src","sources":["molecules/Stepper.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,MAAM,EAAEC,QAAQ,QAA2B,OAAO;AACxE,SACEC,SAAS,EACTC,gBAAgB,EAChBC,IAAI,QAIC,cAAc;AACrB,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,mBAAmB,EAAEC,SAAS,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,qBAAqB;AACzF,SAASC,gBAAgB,QAAQ,2BAA2B;AAC5D,SAASC,IAAI,QAAQ,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAyCrC,MAAMC,KAAgF,GAAG;EACvFC,EAAE,EAAE;IAAEC,MAAM,EAAE,EAAE;IAAEC,IAAI,EAAE,EAAE;IAAEC,UAAU,EAAE;EAAG,CAAC;EAC5CC,EAAE,EAAE;IAAEH,MAAM,EAAE,EAAE;IAAEC,IAAI,EAAE,EAAE;IAAEC,UAAU,EAAE;EAAG,CAAC;EAC5CE,EAAE,EAAE;IAAEJ,MAAM,EAAE,EAAE;IAAEC,IAAI,EAAE,EAAE;IAAEC,UAAU,EAAE;EAAG;AAC7C,CAAC;;AAED;AACA,MAAMG,SAAS,GAAG,EAAE;AAEpB,MAAMC,cAAc,GAAG,CACrB;EAAEC,IAAI,EAAE;AAAqB,CAAC,EAC9B;EAAEA,IAAI,EAAE;AAAqB,CAAC,CAC/B;AAED,MAAMC,SAAS,GAAGrB,YAAY,CAAEsB,KAAK,KAAM;EACzCC,OAAO,EAAE;IACPC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,SAAS,EAAE,YAAY;IACvBC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAEN,KAAK,CAACO,MAAM,CAACC,MAAM;IAChCC,YAAY,EAAET,KAAK,CAACU,MAAM,CAACC,MAAM,CAACjB;EACpC,CAAC;EACDkB,YAAY,EAAE;IAAER,SAAS,EAAE;EAAU,CAAC;EACtCS,GAAG,EAAE;IAAEtB,MAAM,EAAE,MAAM;IAAEuB,cAAc,EAAE,QAAQ;IAAEX,UAAU,EAAE;EAAS,CAAC;EACvEY,KAAK,EAAE;IACLC,SAAS,EAAE,QAAQ;IACnBzB,MAAM,EAAE,MAAM;IACd0B,KAAK,EAAEjB,KAAK,CAACO,MAAM,CAACW,IAAI;IACxBC,eAAe,EAAE,CAAC;IAClBC,gBAAgB,EAAE,CAAC;IACnBd,WAAW,EAAEN,KAAK,CAACO,MAAM,CAACC;EAC5B,CAAC;EACD;EACA;EACAa,QAAQ,EAAE;IAAEC,eAAe,EAAEtB,KAAK,CAACO,MAAM,CAACgB;EAAgB;AAC5D,CAAC,CAAC,CAAC;;AAEH;AACA,OAAO,SAASC,eAAeA,CAACN,IAAY,EAAE;EAAEO,aAAa,GAAG,KAAK;EAAEC,aAAa,GAAG;AAAM,CAAC,GAAG,CAAC,CAAC,EAAU;EAC3G,MAAMC,UAAU,GAAGF,aAAa,GAAGP,IAAI,CAACU,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAGV,IAAI;EAChE,MAAMW,QAAQ,GAAGH,aAAa,IAAIC,UAAU,CAACG,SAAS,CAAC,CAAC,CAACC,UAAU,CAAC,GAAG,CAAC;EACxE,MAAMC,MAAM,GAAGL,UAAU,CAACC,OAAO,CAACH,aAAa,GAAG,UAAU,GAAG,SAAS,EAAE,EAAE,CAAC;EAC7E,MAAM,CAACQ,KAAK,GAAG,EAAE,EAAE,GAAGC,QAAQ,CAAC,GAAGF,MAAM,CAACG,KAAK,CAAC,GAAG,CAAC;EACnD,MAAMC,IAAI,GAAGF,QAAQ,CAACG,MAAM,GAAG,CAAC,GAAG,GAAGJ,KAAK,IAAIC,QAAQ,CAACI,IAAI,CAAC,EAAE,CAAC,EAAE,GAAGL,KAAK;EAC1E,OAAOJ,QAAQ,GAAG,IAAIO,IAAI,EAAE,GAAGA,IAAI;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMG,OAAO,gBAAGnE,IAAI,CACzB,CAAC;EACCoE,KAAK;EACLC,YAAY;EACZC,WAAW;EACXC,WAAW;EACXC,IAAI,GAAG,IAAI;EACXC,KAAK,GAAG,KAAK;EACbxB,QAAQ,GAAG,IAAI;EACfyB,GAAG;EACHC,GAAG;EACHtB,aAAa,GAAG,KAAK;EACrBuB,KAAK;EACLC,kBAAkB;EAClBC,2BAA2B;EAC3BC,2BAA2B;EAC3BC;AACY,CAAC,KAAK;EAClB,MAAMpD,KAAK,GAAGlB,QAAQ,CAAC,CAAC;EACxB,MAAMyB,MAAM,GAAG3B,SAAS,CAAC,CAAC;EAC1B,MAAMyE,MAAM,GAAGtD,SAAS,CAAC,CAAC;EAC1B,MAAMuD,MAAM,GAAGzE,SAAS,CAAC,CAAC;EAC1B,MAAM0E,gBAAgB,GAAG5E,mBAAmB,CAAC,CAAC;EAC9C,MAAM,CAAC6E,OAAO,EAAEC,UAAU,CAAC,GAAGnF,QAAQ,CAAC,KAAK,CAAC;EAC7C,MAAMoF,UAAU,GAAGrF,MAAM,CAA4B,IAAI,CAAC;EAC1D,MAAMsF,QAAQ,GAAG5E,gBAAgB,CAAC2E,UAAU,CAAC;EAE7C,MAAM;IAAEnE,MAAM;IAAEC,IAAI;IAAEC;EAAW,CAAC,GAAGJ,KAAK,CAACuD,IAAI,CAAC;EAChD,MAAMgB,QAAQ,GACZhB,IAAI,KAAK,IAAI,GAAG5C,KAAK,CAACU,MAAM,CAACkD,QAAQ,CAAClE,EAAE,GAAGkD,IAAI,KAAK,IAAI,GAAG5C,KAAK,CAACU,MAAM,CAACkD,QAAQ,CAACjE,EAAE,GAAGK,KAAK,CAACU,MAAM,CAACkD,QAAQ,CAACC,EAAE;EAChH,MAAMC,KAAK,GAAGC,IAAI,CAAChB,GAAG,CAAC,CAAC,EAAE,CAACnD,SAAS,GAAGL,MAAM,IAAI,CAAC,CAAC;EACnD,MAAMyE,OAAO,GAAGF,KAAK,GAAG,CAAC,GAAG;IAAEG,GAAG,EAAEH,KAAK;IAAEI,MAAM,EAAEJ,KAAK;IAAEK,IAAI,EAAEL,KAAK;IAAEM,KAAK,EAAEN;EAAM,CAAC,GAAGO,SAAS;EAEhG,MAAM3C,aAAa,GAAGoB,GAAG,KAAKuB,SAAS,IAAIvB,GAAG,GAAG,CAAC;EAClD,MAAMwB,OAAO,GAAGC,MAAM,CAAC/B,KAAK,CAAC;EAC7B,MAAMgC,QAAQ,GAAGhC,KAAK,CAACiC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAIF,MAAM,CAACG,QAAQ,CAACJ,OAAO,CAAC;EAChE,MAAMK,KAAK,GAAGH,QAAQ,IAAI1B,GAAG,KAAKuB,SAAS,IAAIC,OAAO,IAAIxB,GAAG;EAC7D,MAAM8B,KAAK,GAAGJ,QAAQ,IAAIzB,GAAG,KAAKsB,SAAS,IAAIC,OAAO,IAAIvB,GAAG;EAE7D,MAAM8B,gBAAgB,GAAI3D,IAAY,IAAK;IACzCuB,YAAY,CAACjB,eAAe,CAACN,IAAI,EAAE;MAAEO,aAAa;MAAEC;IAAc,CAAC,CAAC,CAAC;EACvE,CAAC;;EAED;EACA;EACA;EACA,MAAMoD,UAAU,GAAGA,CAAA,KAAM;IACvBrB,UAAU,CAAC,KAAK,CAAC;IACjBE,QAAQ,CAACoB,IAAI,CAAC,CAAC;IACf,IAAI,CAACP,QAAQ,EAAE;IACf,MAAMQ,OAAO,GAAGjB,IAAI,CAACjB,GAAG,CAACC,GAAG,IAAIuB,OAAO,EAAEP,IAAI,CAAChB,GAAG,CAACD,GAAG,IAAIwB,OAAO,EAAEA,OAAO,CAAC,CAAC;IAC3E,IAAIU,OAAO,KAAKV,OAAO,EAAE7B,YAAY,CAACwC,MAAM,CAACD,OAAO,CAAC,CAAC;EACxD,CAAC;EAED,MAAME,yBAAyB,GAAIC,CAA2B,IAAK;IACjE,IAAIA,CAAC,CAACC,WAAW,CAACC,UAAU,KAAK,WAAW,IAAI,CAACT,KAAK,EAAElC,WAAW,CAAC,CAAC;IACrE,IAAIyC,CAAC,CAACC,WAAW,CAACC,UAAU,KAAK,WAAW,IAAI,CAACV,KAAK,EAAEhC,WAAW,CAAC,CAAC;EACvE,CAAC;EAED,MAAM2C,UAAU,GAAGA,CACjBC,SAAoC,EACpCC,OAAmB,EACnBC,QAAiB,EACjBC,KAAa,kBAEbxG,IAAA,CAACV,gBAAgB;IACfgH,OAAO,EAAEA,OAAQ;IACjBC,QAAQ,EAAEA,QAAS;IACnBzB,OAAO,EAAEA,OAAQ;IACjBhB,KAAK,EAAE,CAACK,MAAM,CAACxC,GAAG,EAAE;MAAE8E,KAAK,EAAEpG;IAAO,CAAC,CAAE;IACvCqG,iBAAiB,EAAC,QAAQ;IAC1B3C,kBAAkB,EAAEyC,KAAM;IAC1BG,kBAAkB,EAAE;MAAEJ;IAAS,CAAE;IACjCrC,MAAM,EAAEA,MAAM,IAAI,GAAGA,MAAM,IAAImC,SAAS,EAAG;IAAAO,QAAA,eAE3C5G,IAAA,CAACF,IAAI;MACHc,IAAI,EAAEyF,SAAS,KAAK,WAAW,GAAG,MAAM,GAAG,OAAQ;MACnD3C,IAAI,EAAEpD,IAAK;MACXyB,KAAK,EAAEwE,QAAQ,GAAGlF,MAAM,CAACwF,SAAS,GAAGxF,MAAM,CAACyF;IAAQ,CACrD;EAAC,CACc,CACnB;EAED,oBACE5G,KAAA,CAACX,IAAI;IACHwH,GAAG,EAAEvC,UAAW;IAChBN,MAAM,EAAEA,MAAO;IACfJ,KAAK,EAAE,CACLK,MAAM,CAACpD,OAAO,EACd;MAAEV;IAAO,CAAC,EACVsD,KAAK,IAAIQ,MAAM,CAACzC,YAAY,EAC5B4C,OAAO,IAAI;MAAElD,WAAW,EAAEC,MAAM,CAACyF;IAAQ,CAAC,EAC1ChD,KAAK,CACL;IAAA8C,QAAA,GAEDR,UAAU,CAAC,WAAW,EAAE3C,WAAW,EAAEgC,KAAK,EAAExB,2BAA2B,IAAIG,MAAM,CAAC4C,SAAS,CAAC,eAC7FhH,IAAA,CAACX,SAAS;MACRgF,gBAAgB,EAAEA,gBAAiB;MACnCP,KAAK,EAAE,CACLK,MAAM,CAACtC,KAAK,EACZ;QAAE6C;MAAS,CAAC,EACZvC,QAAQ,IAAIgC,MAAM,CAAChC,QAAQ,EAC3BmC,OAAO,IAAI;QAAElD,WAAW,EAAEC,MAAM,CAACyF;MAAQ,CAAC,EAC1CnD,KAAK,GAAG;QAAEsD,IAAI,EAAE;MAAE,CAAC,GAAG;QAAER,KAAK,EAAElG;MAAW,CAAC,CAC3C;MACF+C,KAAK,EAAEA,KAAM;MACbC,YAAY,EAAEoC,gBAAiB;MAC/BuB,OAAO,EAAEA,CAAA,KAAM;QACb3C,UAAU,CAAC,IAAI,CAAC;QAChBE,QAAQ,CAAC0C,KAAK,CAAC,CAAC;MAClB,CAAE;MACFC,MAAM,EAAExB,UAAW;MACnBzD,QAAQ,EAAEA,QAAS;MACnBkF,YAAY,EAAE9E,aAAa,GAAG,aAAa,GAAG,YAAa;MAC3D+E,iBAAiB;MACjBvD,kBAAkB,EAAEA,kBAAkB,IAAIK,MAAM,CAACmD,QAAS;MAC1Db,iBAAiB,EAAC,YAAY;MAC9Bc,kBAAkB,EAAE;QAAExF,IAAI,EAAEsB;MAAM,CAAE;MACpCmE,oBAAoB,EAAE9G,cAAe;MACrC+G,qBAAqB,EAAE1B;IAA0B,CAClD,CAAC,EACDI,UAAU,CAAC,WAAW,EAAE5C,WAAW,EAAEkC,KAAK,EAAE1B,2BAA2B,IAAII,MAAM,CAACuD,SAAS,CAAC;EAAA,CACzF,CAAC;AAEX,CACF,CAAC;AACDtE,OAAO,CAACuE,WAAW,GAAG,SAAS","ignoreList":[]}
|