orn-ui 0.2.9 → 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 +67 -52
- package/README.md +5 -9
- 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 +197 -156
- 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 +199 -158
- 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 +223 -165
- 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,19 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Chart geometry and scales: everything that can be tested without mounting a
|
|
5
|
+
* tree lives here, without React and without dependencies. marks.tsx only
|
|
6
|
+
* translates these numbers into styles, and Chart.tsx only decides which mark to draw.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
* -
|
|
10
|
-
* -
|
|
11
|
-
*
|
|
8
|
+
* Conventions:
|
|
9
|
+
* - React Native coordinates: origin at the top-left, `y` grows downward.
|
|
10
|
+
* - Angles in degrees, 0° at 12 o'clock, increasing clockwise —
|
|
11
|
+
* which is how a pie is read and how `transform: rotate` turns in RN.
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
/**
|
|
14
|
+
/** Data row: an x-axis category and one number per series. */
|
|
15
15
|
|
|
16
|
-
/**
|
|
16
|
+
/** Reads a cell as a number, or null if it isn't one (a gap in the series). */
|
|
17
17
|
export function toNumber(value) {
|
|
18
18
|
return typeof value === 'number' && Number.isFinite(value) ? value : null;
|
|
19
19
|
}
|
|
@@ -21,17 +21,17 @@ export function clamp(value, min, max) {
|
|
|
21
21
|
return Math.min(max, Math.max(min, value));
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
/**
|
|
24
|
+
/** Kills the floating point noise left by adding `step` in a loop. */
|
|
25
25
|
function tidy(value) {
|
|
26
26
|
return Number(value.toFixed(10));
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
// ──
|
|
29
|
+
// ── scales ─────────────────────────────────────────────────────────────────
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
32
|
+
* The 1, 2, 5 or 10 (times its power of ten) closest above `rough`.
|
|
33
|
+
* It is what makes ticks land on numbers someone would say out loud —
|
|
34
|
+
* 0, 250, 500 — and not on 0, 237, 474.
|
|
35
35
|
*/
|
|
36
36
|
export function niceStep(rough) {
|
|
37
37
|
if (!(rough > 0)) return 1;
|
|
@@ -41,9 +41,9 @@ export function niceStep(rough) {
|
|
|
41
41
|
return nice * magnitude;
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
44
|
+
* Domain rounded to legible values plus the list of ticks. `count` is an
|
|
45
|
+
* intent, not a promise: rounding outward may give one more or one fewer,
|
|
46
|
+
* and that is preferable to an axis with arbitrary numbers.
|
|
47
47
|
*/
|
|
48
48
|
export function niceScale(min, max, count = 5) {
|
|
49
49
|
let lo = Math.min(min, max);
|
|
@@ -53,8 +53,8 @@ export function niceScale(min, max, count = 5) {
|
|
|
53
53
|
hi = 1;
|
|
54
54
|
}
|
|
55
55
|
if (lo === hi) {
|
|
56
|
-
//
|
|
57
|
-
//
|
|
56
|
+
// A single value doesn't define a range. A symmetric one is made up so
|
|
57
|
+
// the mark neither sticks to the edge nor fills the whole height.
|
|
58
58
|
const pad = Math.abs(lo) || 1;
|
|
59
59
|
lo -= pad;
|
|
60
60
|
hi += pad;
|
|
@@ -63,8 +63,8 @@ export function niceScale(min, max, count = 5) {
|
|
|
63
63
|
const start = Math.floor(lo / step) * step;
|
|
64
64
|
const end = Math.ceil(hi / step) * step;
|
|
65
65
|
const values = [];
|
|
66
|
-
// `end + step / 2`
|
|
67
|
-
// tick
|
|
66
|
+
// `end + step / 2` instead of `end`: adding step accumulates error and the
|
|
67
|
+
// last tick would be lost precisely in the most used domains (0–100, 0–1).
|
|
68
68
|
for (let value = start; value <= end + step / 2; value += step) values.push(tidy(value));
|
|
69
69
|
return {
|
|
70
70
|
min: start,
|
|
@@ -75,10 +75,10 @@ export function niceScale(min, max, count = 5) {
|
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
/**
|
|
78
|
-
* Ticks
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
78
|
+
* Ticks for a domain the consumer set by hand. It rounds nothing: if someone
|
|
79
|
+
* asks for 0–100, the axis says 0–100. It is the opposite of `niceScale`, and
|
|
80
|
+
* it is what a live chart needs — an axis that rearranges itself on every tick
|
|
81
|
+
* makes the line jump even though the data hasn't moved.
|
|
82
82
|
*/
|
|
83
83
|
export function exactTicks(min, max, count = 5) {
|
|
84
84
|
const lo = Math.min(min, max);
|
|
@@ -102,16 +102,16 @@ export function exactTicks(min, max, count = 5) {
|
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
/**
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
105
|
+
* Merges two domains keeping the widest. It is the 'sticky' mode: the axis
|
|
106
|
+
* grows when a value arrives that didn't fit and never shrinks back, so what
|
|
107
|
+
* you see moving is the data and not the scale.
|
|
108
108
|
*/
|
|
109
109
|
export function growExtent(previous, next) {
|
|
110
110
|
if (!previous) return next;
|
|
111
111
|
return [Math.min(previous[0], next[0]), Math.max(previous[1], next[1])];
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
-
/**
|
|
114
|
+
/** Linear domain → range interpolator. A degenerate domain falls to the middle of the range. */
|
|
115
115
|
export function linearScale(domain, range) {
|
|
116
116
|
const [d0, d1] = domain;
|
|
117
117
|
const [r0, r1] = range;
|
|
@@ -119,7 +119,7 @@ export function linearScale(domain, range) {
|
|
|
119
119
|
if (span === 0) return () => (r0 + r1) / 2;
|
|
120
120
|
return value => r0 + (value - d0) / span * (r1 - r0);
|
|
121
121
|
}
|
|
122
|
-
/**
|
|
122
|
+
/** Minimum and maximum of the requested series. With no data it returns [0, 1]. */
|
|
123
123
|
export function extent(rows, keys, options = {}) {
|
|
124
124
|
const {
|
|
125
125
|
stacked = false,
|
|
@@ -129,8 +129,8 @@ export function extent(rows, keys, options = {}) {
|
|
|
129
129
|
let max = -Infinity;
|
|
130
130
|
for (const row of rows) {
|
|
131
131
|
if (stacked) {
|
|
132
|
-
//
|
|
133
|
-
//
|
|
132
|
+
// Positives and negatives stack toward opposite sides of zero, so each
|
|
133
|
+
// side has its own total and neither cancels the other.
|
|
134
134
|
let up = 0;
|
|
135
135
|
let down = 0;
|
|
136
136
|
for (const key of keys) {
|
|
@@ -157,12 +157,12 @@ export function extent(rows, keys, options = {}) {
|
|
|
157
157
|
return [min, max];
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
-
// ──
|
|
160
|
+
// ── stacking ───────────────────────────────────────────────────────────────
|
|
161
161
|
|
|
162
162
|
/**
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
*
|
|
163
|
+
* Stacked bands of a row. Positives grow from 0 upward and negatives from 0
|
|
164
|
+
* downward: a negative series doesn't eat the positives' height, which is
|
|
165
|
+
* what happens if everything is stacked in a single accumulator.
|
|
166
166
|
*/
|
|
167
167
|
export function stackRow(row, keys) {
|
|
168
168
|
const bands = [];
|
|
@@ -196,7 +196,7 @@ export function stackRow(row, keys) {
|
|
|
196
196
|
|
|
197
197
|
const RAD = Math.PI / 180;
|
|
198
198
|
|
|
199
|
-
/**
|
|
199
|
+
/** Point at `radius` from the center at the given angle (0° up, clockwise). */
|
|
200
200
|
export function polar(center, radius, angle) {
|
|
201
201
|
return {
|
|
202
202
|
x: center.x + radius * Math.sin(angle * RAD),
|
|
@@ -204,14 +204,14 @@ export function polar(center, radius, angle) {
|
|
|
204
204
|
};
|
|
205
205
|
}
|
|
206
206
|
|
|
207
|
-
/**
|
|
207
|
+
/** Angle of a point relative to the center, normalized to [0, 360). */
|
|
208
208
|
export function angleOf(center, point) {
|
|
209
209
|
const degrees = Math.atan2(point.x - center.x, center.y - point.y) / RAD;
|
|
210
210
|
return (degrees + 360) % 360;
|
|
211
211
|
}
|
|
212
212
|
/**
|
|
213
|
-
*
|
|
214
|
-
*
|
|
213
|
+
* Arcs of a pie. Negatives don't exist in a pie (there is no "less slice"):
|
|
214
|
+
* they are dropped instead of inverted. Total 0 ⇒ nothing to draw.
|
|
215
215
|
*/
|
|
216
216
|
export function arcsFor(values) {
|
|
217
217
|
const safe = values.map(value => Number.isFinite(value) && value > 0 ? value : 0);
|
|
@@ -234,7 +234,7 @@ export function arcsFor(values) {
|
|
|
234
234
|
return arcs;
|
|
235
235
|
}
|
|
236
236
|
|
|
237
|
-
/**
|
|
237
|
+
/** The arc containing that angle, or -1. */
|
|
238
238
|
export function arcAt(arcs, angle) {
|
|
239
239
|
const normalized = (angle + 360) % 360;
|
|
240
240
|
for (const arc of arcs) {
|
|
@@ -243,7 +243,7 @@ export function arcAt(arcs, angle) {
|
|
|
243
243
|
return -1;
|
|
244
244
|
}
|
|
245
245
|
|
|
246
|
-
/**
|
|
246
|
+
/** Angles of a radar's axes: the first at the top, the rest evenly spread. */
|
|
247
247
|
export function radarAngles(count) {
|
|
248
248
|
if (count <= 0) return [];
|
|
249
249
|
return Array.from({
|
|
@@ -251,11 +251,11 @@ export function radarAngles(count) {
|
|
|
251
251
|
}, (_, index) => index * 360 / count);
|
|
252
252
|
}
|
|
253
253
|
|
|
254
|
-
// ──
|
|
254
|
+
// ── segments and curves ────────────────────────────────────────────────────
|
|
255
255
|
|
|
256
256
|
/**
|
|
257
|
-
*
|
|
258
|
-
*
|
|
257
|
+
* Box of a segment a→b: without SVG, a line is a thin rectangle rotated
|
|
258
|
+
* around its center. Width = distance, height = thickness, rotation = the slope.
|
|
259
259
|
*/
|
|
260
260
|
export function segmentBox(a, b, thickness) {
|
|
261
261
|
const dx = b.x - a.x;
|
|
@@ -271,17 +271,17 @@ export function segmentBox(a, b, thickness) {
|
|
|
271
271
|
}
|
|
272
272
|
|
|
273
273
|
/**
|
|
274
|
-
*
|
|
275
|
-
*
|
|
276
|
-
*
|
|
277
|
-
*
|
|
274
|
+
* Smooths a polyline with Catmull-Rom sampled in `steps` segments per span.
|
|
275
|
+
* The curve passes through all the original points (unlike a free-control
|
|
276
|
+
* Bézier), so the data is still the data; only path is added in between, and
|
|
277
|
+
* the result is drawn with the same straight segments.
|
|
278
278
|
*/
|
|
279
279
|
export function smoothPoints(points, steps = 8) {
|
|
280
280
|
if (points.length < 3 || steps < 2) return points;
|
|
281
281
|
const out = [points[0]];
|
|
282
282
|
for (let i = 0; i < points.length - 1; i += 1) {
|
|
283
|
-
//
|
|
284
|
-
//
|
|
283
|
+
// The endpoints are duplicated so the first and last spans have the
|
|
284
|
+
// four references the spline asks for.
|
|
285
285
|
const p0 = points[i - 1] ?? points[i];
|
|
286
286
|
const p1 = points[i];
|
|
287
287
|
const p2 = points[i + 1];
|
|
@@ -300,8 +300,8 @@ export function smoothPoints(points, steps = 8) {
|
|
|
300
300
|
}
|
|
301
301
|
|
|
302
302
|
/**
|
|
303
|
-
* `y`
|
|
304
|
-
*
|
|
303
|
+
* The polyline's `y` at that `x`, or null if it falls outside. It is what
|
|
304
|
+
* turns a line into an area: each vertical strip asks for its height here.
|
|
305
305
|
*/
|
|
306
306
|
export function sampleY(points, x) {
|
|
307
307
|
if (points.length === 0) return null;
|
|
@@ -317,14 +317,14 @@ export function sampleY(points, x) {
|
|
|
317
317
|
return null;
|
|
318
318
|
}
|
|
319
319
|
|
|
320
|
-
// ──
|
|
320
|
+
// ── formatting ─────────────────────────────────────────────────────────────
|
|
321
321
|
|
|
322
322
|
const UNITS = ['', 'k', 'M', 'B'];
|
|
323
323
|
|
|
324
324
|
/**
|
|
325
|
-
*
|
|
326
|
-
*
|
|
327
|
-
*
|
|
325
|
+
* Default format for axes and tooltip: compact, because the axis of a 320px
|
|
326
|
+
* chart has no room for "1250000". The consumer replaces it entirely with
|
|
327
|
+
* `formatValue`.
|
|
328
328
|
*/
|
|
329
329
|
export function formatNumber(value) {
|
|
330
330
|
if (!Number.isFinite(value)) return '';
|
|
@@ -339,12 +339,12 @@ export function formatNumber(value) {
|
|
|
339
339
|
return `${sign}${magnitude.toFixed(decimals)}${UNITS[unit]}`;
|
|
340
340
|
}
|
|
341
341
|
/**
|
|
342
|
-
*
|
|
343
|
-
*
|
|
342
|
+
* Breaks a polygon around a center into angular slices: it is what lets a
|
|
343
|
+
* radar be filled with the same primitive that draws a pie.
|
|
344
344
|
*
|
|
345
|
-
*
|
|
346
|
-
*
|
|
347
|
-
*
|
|
345
|
+
* The cut goes along the polygon's side (parameter `t`), not by angle: the
|
|
346
|
+
* radius of a chord isn't linear in the angle, and cutting by angle would
|
|
347
|
+
* round off the vertices exactly where the data says there should be a point.
|
|
348
348
|
*/
|
|
349
349
|
export function fanStrips(center, points, steps = 6) {
|
|
350
350
|
if (points.length < 3 || steps < 1) return [];
|
|
@@ -361,14 +361,14 @@ export function fanStrips(center, points, steps = 6) {
|
|
|
361
361
|
y: a.y + (b.y - a.y) * t
|
|
362
362
|
};
|
|
363
363
|
const angle = angleOf(center, point);
|
|
364
|
-
//
|
|
365
|
-
//
|
|
364
|
+
// The jump from 360 to 0 falls somewhere along the path: without this,
|
|
365
|
+
// that slice would be drawn turning backwards and cover everything else.
|
|
366
366
|
let sweep = angle - previousAngle;
|
|
367
367
|
if (sweep < 0) sweep += 360;
|
|
368
368
|
if (sweep > 0) {
|
|
369
369
|
const radius = (Math.hypot(previous.x - center.x, previous.y - center.y) + Math.hypot(point.x - center.x, point.y - center.y)) / 2;
|
|
370
|
-
//
|
|
371
|
-
// antialias
|
|
370
|
+
// The slices overlap a hair on purpose: without the overlap, the
|
|
371
|
+
// antialias leaves a light seam between strips.
|
|
372
372
|
strips.push({
|
|
373
373
|
start: previousAngle,
|
|
374
374
|
sweep: sweep + 0.4,
|
|
@@ -382,38 +382,37 @@ export function fanStrips(center, points, steps = 6) {
|
|
|
382
382
|
return strips;
|
|
383
383
|
}
|
|
384
384
|
|
|
385
|
-
// ──
|
|
385
|
+
// ── decimation ─────────────────────────────────────────────────────────────
|
|
386
386
|
|
|
387
387
|
/**
|
|
388
|
-
* LTTB (Largest-Triangle-Three-Buckets):
|
|
389
|
-
*
|
|
390
|
-
*
|
|
391
|
-
*
|
|
388
|
+
* LTTB (Largest-Triangle-Three-Buckets): picks `threshold` points from
|
|
389
|
+
* `values` while keeping the shape of the curve. Returns indexes, not points,
|
|
390
|
+
* so the caller can keep the whole row —all its series— and not only the one
|
|
391
|
+
* used to decide.
|
|
392
392
|
*
|
|
393
|
-
*
|
|
394
|
-
*
|
|
395
|
-
*
|
|
396
|
-
*
|
|
397
|
-
*
|
|
393
|
+
* Why not sample every N: every N eats the peaks, which are exactly what
|
|
394
|
+
* someone looks at in a time series. LTTB splits the path into buckets and
|
|
395
|
+
* from each one keeps the point that forms the largest triangle with the one
|
|
396
|
+
* already picked and with the average of the next bucket — that is, the one
|
|
397
|
+
* that changes the silhouette the most. First and last are always kept.
|
|
398
398
|
*
|
|
399
|
-
* `x`
|
|
400
|
-
*
|
|
401
|
-
* índice.
|
|
399
|
+
* `x` is the index: a chart's categories are spread evenly along the axis, so
|
|
400
|
+
* the horizontal distance between two points is their index distance.
|
|
402
401
|
*/
|
|
403
402
|
export function lttbIndices(values, threshold) {
|
|
404
403
|
const total = values.length;
|
|
405
404
|
if (threshold >= total || threshold < 3) return values.map((_, index) => index);
|
|
406
405
|
const at = index => values[index] ?? 0;
|
|
407
406
|
const selected = [0];
|
|
408
|
-
//
|
|
409
|
-
// `threshold < total`
|
|
410
|
-
//
|
|
407
|
+
// One bucket per intermediate point: the first and the last aren't drawn.
|
|
408
|
+
// With `threshold < total` a bucket spans more than one point, so none is
|
|
409
|
+
// empty and exactly `threshold` indexes come out, with no repeats.
|
|
411
410
|
const every = (total - 2) / (threshold - 2);
|
|
412
411
|
let previous = 0;
|
|
413
412
|
for (let bucket = 0; bucket < threshold - 2; bucket += 1) {
|
|
414
|
-
//
|
|
415
|
-
//
|
|
416
|
-
//
|
|
413
|
+
// Average of the *next* bucket: the triangle's third vertex. It is
|
|
414
|
+
// offset one bucket from the candidates, and that offset is the
|
|
415
|
+
// algorithm — comparing against the bucket itself doesn't look ahead.
|
|
417
416
|
const avgStart = Math.floor((bucket + 1) * every) + 1;
|
|
418
417
|
const avgEnd = Math.min(Math.floor((bucket + 2) * every) + 1, total);
|
|
419
418
|
let avgX = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["toNumber","value","Number","isFinite","clamp","min","max","Math","tidy","toFixed","niceStep","rough","magnitude","pow","floor","log10","fraction","nice","niceScale","count","lo","hi","pad","abs","step","start","end","ceil","values","push","exactTicks","steps","Array","from","length","_","index","growExtent","previous","next","linearScale","domain","range","d0","d1","r0","r1","span","extent","rows","keys","options","stacked","includeZero","Infinity","row","up","down","key","stackRow","bands","to","RAD","PI","polar","center","radius","angle","x","sin","y","cos","angleOf","point","degrees","atan2","arcsFor","safe","map","total","reduce","sum","arcs","cursor","forEach","sweep","ratio","arcAt","normalized","arc","radarAngles","segmentBox","a","b","thickness","dx","dy","hypot","left","top","width","height","rotate","smoothPoints","points","out","i","p0","p1","p2","p3","s","t","t2","t3","sampleY","UNITS","formatNumber","sign","unit","decimals","fanStrips","strips","previousAngle","lttbIndices","threshold","at","selected","every","bucket","avgStart","avgEnd","avgX","avgY","best","bestArea","area"],"sourceRoot":"../../../../src","sources":["organisms/chart/math.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA;;AAGA;AACA,OAAO,SAASA,QAAQA,CAACC,KAAc,EAAiB;EACtD,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIC,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,GAAGA,KAAK,GAAG,IAAI;AAC3E;AAEA,OAAO,SAASG,KAAKA,CAACH,KAAa,EAAEI,GAAW,EAAEC,GAAW,EAAU;EACrE,OAAOC,IAAI,CAACF,GAAG,CAACC,GAAG,EAAEC,IAAI,CAACD,GAAG,CAACD,GAAG,EAAEJ,KAAK,CAAC,CAAC;AAC5C;;AAEA;AACA,SAASO,IAAIA,CAACP,KAAa,EAAU;EACnC,OAAOC,MAAM,CAACD,KAAK,CAACQ,OAAO,CAAC,EAAE,CAAC,CAAC;AAClC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,QAAQA,CAACC,KAAa,EAAU;EAC9C,IAAI,EAAEA,KAAK,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC;EAC1B,MAAMC,SAAS,GAAGL,IAAI,CAACM,GAAG,CAAC,EAAE,EAAEN,IAAI,CAACO,KAAK,CAACP,IAAI,CAACQ,KAAK,CAACJ,KAAK,CAAC,CAAC,CAAC;EAC7D,MAAMK,QAAQ,GAAGL,KAAK,GAAGC,SAAS;EAClC,MAAMK,IAAI,GAAGD,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAGA,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAGA,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;EAC3E,OAAOC,IAAI,GAAGL,SAAS;AACzB;AAWA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,SAASA,CAACb,GAAW,EAAEC,GAAW,EAAEa,KAAK,GAAG,CAAC,EAAS;EACpE,IAAIC,EAAE,GAAGb,IAAI,CAACF,GAAG,CAACA,GAAG,EAAEC,GAAG,CAAC;EAC3B,IAAIe,EAAE,GAAGd,IAAI,CAACD,GAAG,CAACD,GAAG,EAAEC,GAAG,CAAC;EAC3B,IAAI,CAACJ,MAAM,CAACC,QAAQ,CAACiB,EAAE,CAAC,IAAI,CAAClB,MAAM,CAACC,QAAQ,CAACkB,EAAE,CAAC,EAAE;IAChDD,EAAE,GAAG,CAAC;IACNC,EAAE,GAAG,CAAC;EACR;EACA,IAAID,EAAE,KAAKC,EAAE,EAAE;IACb;IACA;IACA,MAAMC,GAAG,GAAGf,IAAI,CAACgB,GAAG,CAACH,EAAE,CAAC,IAAI,CAAC;IAC7BA,EAAE,IAAIE,GAAG;IACTD,EAAE,IAAIC,GAAG;EACX;EACA,MAAME,IAAI,GAAGd,QAAQ,CAAC,CAACW,EAAE,GAAGD,EAAE,IAAIb,IAAI,CAACD,GAAG,CAAC,CAAC,EAAEa,KAAK,CAAC,CAAC;EACrD,MAAMM,KAAK,GAAGlB,IAAI,CAACO,KAAK,CAACM,EAAE,GAAGI,IAAI,CAAC,GAAGA,IAAI;EAC1C,MAAME,GAAG,GAAGnB,IAAI,CAACoB,IAAI,CAACN,EAAE,GAAGG,IAAI,CAAC,GAAGA,IAAI;EACvC,MAAMI,MAAgB,GAAG,EAAE;EAC3B;EACA;EACA,KAAK,IAAI3B,KAAK,GAAGwB,KAAK,EAAExB,KAAK,IAAIyB,GAAG,GAAGF,IAAI,GAAG,CAAC,EAAEvB,KAAK,IAAIuB,IAAI,EAAEI,MAAM,CAACC,IAAI,CAACrB,IAAI,CAACP,KAAK,CAAC,CAAC;EACxF,OAAO;IAAEI,GAAG,EAAEoB,KAAK;IAAEnB,GAAG,EAAEoB,GAAG;IAAEF,IAAI;IAAEI;EAAO,CAAC;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,UAAUA,CAACzB,GAAW,EAAEC,GAAW,EAAEa,KAAK,GAAG,CAAC,EAAS;EACrE,MAAMC,EAAE,GAAGb,IAAI,CAACF,GAAG,CAACA,GAAG,EAAEC,GAAG,CAAC;EAC7B,MAAMe,EAAE,GAAGd,IAAI,CAACD,GAAG,CAACD,GAAG,EAAEC,GAAG,CAAC;EAC7B,MAAMyB,KAAK,GAAGxB,IAAI,CAACD,GAAG,CAAC,CAAC,EAAEC,IAAI,CAACO,KAAK,CAACK,KAAK,CAAC,CAAC;EAC5C,IAAIC,EAAE,KAAKC,EAAE,EAAE,OAAO;IAAEhB,GAAG,EAAEe,EAAE;IAAEd,GAAG,EAAEe,EAAE;IAAEG,IAAI,EAAE,CAAC;IAAEI,MAAM,EAAE,CAACR,EAAE;EAAE,CAAC;EACjE,MAAMI,IAAI,GAAG,CAACH,EAAE,GAAGD,EAAE,IAAIW,KAAK;EAC9B,OAAO;IACL1B,GAAG,EAAEe,EAAE;IACPd,GAAG,EAAEe,EAAE;IACPG,IAAI;IACJI,MAAM,EAAEI,KAAK,CAACC,IAAI,CAAC;MAAEC,MAAM,EAAEH,KAAK,GAAG;IAAE,CAAC,EAAE,CAACI,CAAC,EAAEC,KAAK,KAAK5B,IAAI,CAACY,EAAE,GAAGgB,KAAK,GAAGZ,IAAI,CAAC;EACjF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASa,UAAUA,CAACC,QAAiC,EAAEC,IAAsB,EAAoB;EACtG,IAAI,CAACD,QAAQ,EAAE,OAAOC,IAAI;EAC1B,OAAO,CAAChC,IAAI,CAACF,GAAG,CAACiC,QAAQ,CAAC,CAAC,CAAC,EAAEC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAEhC,IAAI,CAACD,GAAG,CAACgC,QAAQ,CAAC,CAAC,CAAC,EAAEC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE;;AAEA;AACA,OAAO,SAASC,WAAWA,CAACC,MAAwB,EAAEC,KAAuB,EAA6B;EACxG,MAAM,CAACC,EAAE,EAAEC,EAAE,CAAC,GAAGH,MAAM;EACvB,MAAM,CAACI,EAAE,EAAEC,EAAE,CAAC,GAAGJ,KAAK;EACtB,MAAMK,IAAI,GAAGH,EAAE,GAAGD,EAAE;EACpB,IAAII,IAAI,KAAK,CAAC,EAAE,OAAO,MAAM,CAACF,EAAE,GAAGC,EAAE,IAAI,CAAC;EAC1C,OAAQ7C,KAAa,IAAK4C,EAAE,GAAI,CAAC5C,KAAK,GAAG0C,EAAE,IAAII,IAAI,IAAKD,EAAE,GAAGD,EAAE,CAAC;AAClE;AASA;AACA,OAAO,SAASG,MAAMA,CAACC,IAAgB,EAAEC,IAAc,EAAEC,OAAsB,GAAG,CAAC,CAAC,EAAoB;EACtG,MAAM;IAAEC,OAAO,GAAG,KAAK;IAAEC,WAAW,GAAG;EAAM,CAAC,GAAGF,OAAO;EACxD,IAAI9C,GAAG,GAAGiD,QAAQ;EAClB,IAAIhD,GAAG,GAAG,CAACgD,QAAQ;EAEnB,KAAK,MAAMC,GAAG,IAAIN,IAAI,EAAE;IACtB,IAAIG,OAAO,EAAE;MACX;MACA;MACA,IAAII,EAAE,GAAG,CAAC;MACV,IAAIC,IAAI,GAAG,CAAC;MACZ,KAAK,MAAMC,GAAG,IAAIR,IAAI,EAAE;QACtB,MAAMjD,KAAK,GAAGD,QAAQ,CAACuD,GAAG,CAACG,GAAG,CAAC,CAAC;QAChC,IAAIzD,KAAK,KAAK,IAAI,EAAE;QACpB,IAAIA,KAAK,IAAI,CAAC,EAAEuD,EAAE,IAAIvD,KAAK,CAAC,KACvBwD,IAAI,IAAIxD,KAAK;MACpB;MACAI,GAAG,GAAGE,IAAI,CAACF,GAAG,CAACA,GAAG,EAAEoD,IAAI,CAAC;MACzBnD,GAAG,GAAGC,IAAI,CAACD,GAAG,CAACA,GAAG,EAAEkD,EAAE,CAAC;IACzB,CAAC,MAAM;MACL,KAAK,MAAME,GAAG,IAAIR,IAAI,EAAE;QACtB,MAAMjD,KAAK,GAAGD,QAAQ,CAACuD,GAAG,CAACG,GAAG,CAAC,CAAC;QAChC,IAAIzD,KAAK,KAAK,IAAI,EAAE;QACpBI,GAAG,GAAGE,IAAI,CAACF,GAAG,CAACA,GAAG,EAAEJ,KAAK,CAAC;QAC1BK,GAAG,GAAGC,IAAI,CAACD,GAAG,CAACA,GAAG,EAAEL,KAAK,CAAC;MAC5B;IACF;EACF;EAEA,IAAII,GAAG,KAAKiD,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;EACnC,IAAID,WAAW,EAAE;IACfhD,GAAG,GAAGE,IAAI,CAACF,GAAG,CAACA,GAAG,EAAE,CAAC,CAAC;IACtBC,GAAG,GAAGC,IAAI,CAACD,GAAG,CAACA,GAAG,EAAE,CAAC,CAAC;EACxB;EACA,OAAO,CAACD,GAAG,EAAEC,GAAG,CAAC;AACnB;;AAEA;;AAWA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASqD,QAAQA,CAACJ,GAAa,EAAEL,IAAc,EAAe;EACnE,MAAMU,KAAkB,GAAG,EAAE;EAC7B,IAAIJ,EAAE,GAAG,CAAC;EACV,IAAIC,IAAI,GAAG,CAAC;EACZ,KAAK,MAAMC,GAAG,IAAIR,IAAI,EAAE;IACtB,MAAMjD,KAAK,GAAGD,QAAQ,CAACuD,GAAG,CAACG,GAAG,CAAC,CAAC;IAChC,IAAIzD,KAAK,KAAK,IAAI,EAAE;IACpB,IAAIA,KAAK,IAAI,CAAC,EAAE;MACd2D,KAAK,CAAC/B,IAAI,CAAC;QAAE6B,GAAG;QAAEzB,IAAI,EAAEuB,EAAE;QAAEK,EAAE,EAAEL,EAAE,GAAGvD,KAAK;QAAEA;MAAM,CAAC,CAAC;MACpDuD,EAAE,IAAIvD,KAAK;IACb,CAAC,MAAM;MACL2D,KAAK,CAAC/B,IAAI,CAAC;QAAE6B,GAAG;QAAEzB,IAAI,EAAEwB,IAAI;QAAEI,EAAE,EAAEJ,IAAI,GAAGxD,KAAK;QAAEA;MAAM,CAAC,CAAC;MACxDwD,IAAI,IAAIxD,KAAK;IACf;EACF;EACA,OAAO2D,KAAK;AACd;;AAEA;;AAEA,MAAME,GAAG,GAAGvD,IAAI,CAACwD,EAAE,GAAG,GAAG;;AAEzB;AACA,OAAO,SAASC,KAAKA,CAACC,MAAa,EAAEC,MAAc,EAAEC,KAAa,EAAS;EACzE,OAAO;IACLC,CAAC,EAAEH,MAAM,CAACG,CAAC,GAAGF,MAAM,GAAG3D,IAAI,CAAC8D,GAAG,CAACF,KAAK,GAAGL,GAAG,CAAC;IAC5CQ,CAAC,EAAEL,MAAM,CAACK,CAAC,GAAGJ,MAAM,GAAG3D,IAAI,CAACgE,GAAG,CAACJ,KAAK,GAAGL,GAAG;EAC7C,CAAC;AACH;;AAEA;AACA,OAAO,SAASU,OAAOA,CAACP,MAAa,EAAEQ,KAAY,EAAU;EAC3D,MAAMC,OAAO,GAAGnE,IAAI,CAACoE,KAAK,CAACF,KAAK,CAACL,CAAC,GAAGH,MAAM,CAACG,CAAC,EAAEH,MAAM,CAACK,CAAC,GAAGG,KAAK,CAACH,CAAC,CAAC,GAAGR,GAAG;EACxE,OAAO,CAACY,OAAO,GAAG,GAAG,IAAI,GAAG;AAC9B;AAYA;AACA;AACA;AACA;AACA,OAAO,SAASE,OAAOA,CAAChD,MAAgB,EAAS;EAC/C,MAAMiD,IAAI,GAAGjD,MAAM,CAACkD,GAAG,CAAE7E,KAAK,IAAMC,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,IAAIA,KAAK,GAAG,CAAC,GAAGA,KAAK,GAAG,CAAE,CAAC;EACrF,MAAM8E,KAAK,GAAGF,IAAI,CAACG,MAAM,CAAC,CAACC,GAAG,EAAEhF,KAAK,KAAKgF,GAAG,GAAGhF,KAAK,EAAE,CAAC,CAAC;EACzD,IAAI8E,KAAK,IAAI,CAAC,EAAE,OAAO,EAAE;EAEzB,MAAMG,IAAW,GAAG,EAAE;EACtB,IAAIC,MAAM,GAAG,CAAC;EACdN,IAAI,CAACO,OAAO,CAAC,CAACnF,KAAK,EAAEmC,KAAK,KAAK;IAC7B,IAAInC,KAAK,IAAI,CAAC,EAAE;IAChB,MAAMoF,KAAK,GAAIpF,KAAK,GAAG8E,KAAK,GAAI,GAAG;IACnCG,IAAI,CAACrD,IAAI,CAAC;MAAEO,KAAK;MAAEX,KAAK,EAAE0D,MAAM;MAAEE,KAAK;MAAEpF,KAAK;MAAEqF,KAAK,EAAErF,KAAK,GAAG8E;IAAM,CAAC,CAAC;IACvEI,MAAM,IAAIE,KAAK;EACjB,CAAC,CAAC;EACF,OAAOH,IAAI;AACb;;AAEA;AACA,OAAO,SAASK,KAAKA,CAACL,IAAW,EAAEf,KAAa,EAAU;EACxD,MAAMqB,UAAU,GAAG,CAACrB,KAAK,GAAG,GAAG,IAAI,GAAG;EACtC,KAAK,MAAMsB,GAAG,IAAIP,IAAI,EAAE;IACtB,IAAIM,UAAU,IAAIC,GAAG,CAAChE,KAAK,IAAI+D,UAAU,GAAGC,GAAG,CAAChE,KAAK,GAAGgE,GAAG,CAACJ,KAAK,EAAE,OAAOI,GAAG,CAACrD,KAAK;EACrF;EACA,OAAO,CAAC,CAAC;AACX;;AAEA;AACA,OAAO,SAASsD,WAAWA,CAACvE,KAAa,EAAY;EACnD,IAAIA,KAAK,IAAI,CAAC,EAAE,OAAO,EAAE;EACzB,OAAOa,KAAK,CAACC,IAAI,CAAC;IAAEC,MAAM,EAAEf;EAAM,CAAC,EAAE,CAACgB,CAAC,EAAEC,KAAK,KAAMA,KAAK,GAAG,GAAG,GAAIjB,KAAK,CAAC;AAC3E;;AAEA;;AAWA;AACA;AACA;AACA;AACA,OAAO,SAASwE,UAAUA,CAACC,CAAQ,EAAEC,CAAQ,EAAEC,SAAiB,EAAc;EAC5E,MAAMC,EAAE,GAAGF,CAAC,CAACzB,CAAC,GAAGwB,CAAC,CAACxB,CAAC;EACpB,MAAM4B,EAAE,GAAGH,CAAC,CAACvB,CAAC,GAAGsB,CAAC,CAACtB,CAAC;EACpB,MAAMpC,MAAM,GAAG3B,IAAI,CAAC0F,KAAK,CAACF,EAAE,EAAEC,EAAE,CAAC;EACjC,OAAO;IACLE,IAAI,EAAE,CAACN,CAAC,CAACxB,CAAC,GAAGyB,CAAC,CAACzB,CAAC,IAAI,CAAC,GAAGlC,MAAM,GAAG,CAAC;IAClCiE,GAAG,EAAE,CAACP,CAAC,CAACtB,CAAC,GAAGuB,CAAC,CAACvB,CAAC,IAAI,CAAC,GAAGwB,SAAS,GAAG,CAAC;IACpCM,KAAK,EAAElE,MAAM;IACbmE,MAAM,EAAEP,SAAS;IACjBQ,MAAM,EAAE/F,IAAI,CAACoE,KAAK,CAACqB,EAAE,EAAED,EAAE,CAAC,GAAGjC;EAC/B,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASyC,YAAYA,CAACC,MAAe,EAAEzE,KAAK,GAAG,CAAC,EAAW;EAChE,IAAIyE,MAAM,CAACtE,MAAM,GAAG,CAAC,IAAIH,KAAK,GAAG,CAAC,EAAE,OAAOyE,MAAM;EACjD,MAAMC,GAAY,GAAG,CAACD,MAAM,CAAC,CAAC,CAAC,CAAE;EACjC,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACtE,MAAM,GAAG,CAAC,EAAEwE,CAAC,IAAI,CAAC,EAAE;IAC7C;IACA;IACA,MAAMC,EAAE,GAAGH,MAAM,CAACE,CAAC,GAAG,CAAC,CAAC,IAAIF,MAAM,CAACE,CAAC,CAAE;IACtC,MAAME,EAAE,GAAGJ,MAAM,CAACE,CAAC,CAAE;IACrB,MAAMG,EAAE,GAAGL,MAAM,CAACE,CAAC,GAAG,CAAC,CAAE;IACzB,MAAMI,EAAE,GAAGN,MAAM,CAACE,CAAC,GAAG,CAAC,CAAC,IAAIG,EAAE;IAC9B,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIhF,KAAK,EAAEgF,CAAC,IAAI,CAAC,EAAE;MAClC,MAAMC,CAAC,GAAGD,CAAC,GAAGhF,KAAK;MACnB,MAAMkF,EAAE,GAAGD,CAAC,GAAGA,CAAC;MAChB,MAAME,EAAE,GAAGD,EAAE,GAAGD,CAAC;MACjBP,GAAG,CAAC5E,IAAI,CAAC;QACPuC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAGwC,EAAE,CAACxC,CAAC,GAAG,CAAC,CAACuC,EAAE,CAACvC,CAAC,GAAGyC,EAAE,CAACzC,CAAC,IAAI4C,CAAC,GAAG,CAAC,CAAC,GAAGL,EAAE,CAACvC,CAAC,GAAG,CAAC,GAAGwC,EAAE,CAACxC,CAAC,GAAG,CAAC,GAAGyC,EAAE,CAACzC,CAAC,GAAG0C,EAAE,CAAC1C,CAAC,IAAI6C,EAAE,GAAG,CAAC,CAACN,EAAE,CAACvC,CAAC,GAAG,CAAC,GAAGwC,EAAE,CAACxC,CAAC,GAAG,CAAC,GAAGyC,EAAE,CAACzC,CAAC,GAAG0C,EAAE,CAAC1C,CAAC,IAAI8C,EAAE,CAAC;QACnI5C,CAAC,EAAE,GAAG,IAAI,CAAC,GAAGsC,EAAE,CAACtC,CAAC,GAAG,CAAC,CAACqC,EAAE,CAACrC,CAAC,GAAGuC,EAAE,CAACvC,CAAC,IAAI0C,CAAC,GAAG,CAAC,CAAC,GAAGL,EAAE,CAACrC,CAAC,GAAG,CAAC,GAAGsC,EAAE,CAACtC,CAAC,GAAG,CAAC,GAAGuC,EAAE,CAACvC,CAAC,GAAGwC,EAAE,CAACxC,CAAC,IAAI2C,EAAE,GAAG,CAAC,CAACN,EAAE,CAACrC,CAAC,GAAG,CAAC,GAAGsC,EAAE,CAACtC,CAAC,GAAG,CAAC,GAAGuC,EAAE,CAACvC,CAAC,GAAGwC,EAAE,CAACxC,CAAC,IAAI4C,EAAE;MACpI,CAAC,CAAC;IACJ;EACF;EACA,OAAOT,GAAG;AACZ;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASU,OAAOA,CAACX,MAAe,EAAEpC,CAAS,EAAiB;EACjE,IAAIoC,MAAM,CAACtE,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EACpC,IAAIsE,MAAM,CAACtE,MAAM,KAAK,CAAC,EAAE,OAAOsE,MAAM,CAAC,CAAC,CAAC,CAAElC,CAAC;EAC5C,KAAK,IAAIoC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACtE,MAAM,GAAG,CAAC,EAAEwE,CAAC,IAAI,CAAC,EAAE;IAC7C,MAAMd,CAAC,GAAGY,MAAM,CAACE,CAAC,CAAE;IACpB,MAAMb,CAAC,GAAGW,MAAM,CAACE,CAAC,GAAG,CAAC,CAAE;IACxB,MAAM,CAACtF,EAAE,EAAEC,EAAE,CAAC,GAAGuE,CAAC,CAACxB,CAAC,IAAIyB,CAAC,CAACzB,CAAC,GAAG,CAACwB,CAAC,EAAEC,CAAC,CAAC,GAAG,CAACA,CAAC,EAAED,CAAC,CAAC;IAC7C,IAAIxB,CAAC,GAAGhD,EAAE,CAACgD,CAAC,IAAIA,CAAC,GAAG/C,EAAE,CAAC+C,CAAC,EAAE;IAC1B,IAAI/C,EAAE,CAAC+C,CAAC,KAAKhD,EAAE,CAACgD,CAAC,EAAE,OAAOhD,EAAE,CAACkD,CAAC;IAC9B,OAAOlD,EAAE,CAACkD,CAAC,GAAI,CAACF,CAAC,GAAGhD,EAAE,CAACgD,CAAC,KAAK/C,EAAE,CAAC+C,CAAC,GAAGhD,EAAE,CAACgD,CAAC,CAAC,IAAK/C,EAAE,CAACiD,CAAC,GAAGlD,EAAE,CAACkD,CAAC,CAAC;EAC5D;EACA,OAAO,IAAI;AACb;;AAEA;;AAEA,MAAM8C,KAAK,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;;AAEjC;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAACpH,KAAa,EAAU;EAClD,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,EAAE,OAAO,EAAE;EACtC,MAAMqH,IAAI,GAAGrH,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE;EACjC,IAAIW,SAAS,GAAGL,IAAI,CAACgB,GAAG,CAACtB,KAAK,CAAC;EAC/B,IAAIsH,IAAI,GAAG,CAAC;EACZ,OAAO3G,SAAS,IAAI,IAAI,IAAI2G,IAAI,GAAGH,KAAK,CAAClF,MAAM,GAAG,CAAC,EAAE;IACnDtB,SAAS,IAAI,IAAI;IACjB2G,IAAI,IAAI,CAAC;EACX;EACA,MAAMC,QAAQ,GAAG5G,SAAS,GAAG,EAAE,IAAIA,SAAS,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;EAC9D,OAAO,GAAG0G,IAAI,GAAG1G,SAAS,CAACH,OAAO,CAAC+G,QAAQ,CAAC,GAAGJ,KAAK,CAACG,IAAI,CAAC,EAAE;AAC9D;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,SAASA,CAACxD,MAAa,EAAEuC,MAAe,EAAEzE,KAAK,GAAG,CAAC,EAAc;EAC/E,IAAIyE,MAAM,CAACtE,MAAM,GAAG,CAAC,IAAIH,KAAK,GAAG,CAAC,EAAE,OAAO,EAAE;EAC7C,MAAM2F,MAAkB,GAAG,EAAE;EAE7B,KAAK,IAAIhB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACtE,MAAM,EAAEwE,CAAC,IAAI,CAAC,EAAE;IACzC,MAAMd,CAAC,GAAGY,MAAM,CAACE,CAAC,CAAE;IACpB,MAAMb,CAAC,GAAGW,MAAM,CAAC,CAACE,CAAC,GAAG,CAAC,IAAIF,MAAM,CAACtE,MAAM,CAAE;IAE1C,IAAII,QAAQ,GAAGsD,CAAC;IAChB,IAAI+B,aAAa,GAAGnD,OAAO,CAACP,MAAM,EAAE2B,CAAC,CAAC;IACtC,KAAK,IAAImB,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIhF,KAAK,EAAEgF,CAAC,IAAI,CAAC,EAAE;MAClC,MAAMC,CAAC,GAAGD,CAAC,GAAGhF,KAAK;MACnB,MAAM0C,KAAK,GAAG;QAAEL,CAAC,EAAEwB,CAAC,CAACxB,CAAC,GAAG,CAACyB,CAAC,CAACzB,CAAC,GAAGwB,CAAC,CAACxB,CAAC,IAAI4C,CAAC;QAAE1C,CAAC,EAAEsB,CAAC,CAACtB,CAAC,GAAG,CAACuB,CAAC,CAACvB,CAAC,GAAGsB,CAAC,CAACtB,CAAC,IAAI0C;MAAE,CAAC;MACpE,MAAM7C,KAAK,GAAGK,OAAO,CAACP,MAAM,EAAEQ,KAAK,CAAC;MACpC;MACA;MACA,IAAIY,KAAK,GAAGlB,KAAK,GAAGwD,aAAa;MACjC,IAAItC,KAAK,GAAG,CAAC,EAAEA,KAAK,IAAI,GAAG;MAC3B,IAAIA,KAAK,GAAG,CAAC,EAAE;QACb,MAAMnB,MAAM,GAAG,CAAC3D,IAAI,CAAC0F,KAAK,CAAC3D,QAAQ,CAAC8B,CAAC,GAAGH,MAAM,CAACG,CAAC,EAAE9B,QAAQ,CAACgC,CAAC,GAAGL,MAAM,CAACK,CAAC,CAAC,GAAG/D,IAAI,CAAC0F,KAAK,CAACxB,KAAK,CAACL,CAAC,GAAGH,MAAM,CAACG,CAAC,EAAEK,KAAK,CAACH,CAAC,GAAGL,MAAM,CAACK,CAAC,CAAC,IAAI,CAAC;QAClI;QACA;QACAoD,MAAM,CAAC7F,IAAI,CAAC;UAAEJ,KAAK,EAAEkG,aAAa;UAAEtC,KAAK,EAAEA,KAAK,GAAG,GAAG;UAAEnB;QAAO,CAAC,CAAC;MACnE;MACA5B,QAAQ,GAAGmC,KAAK;MAChBkD,aAAa,GAAGxD,KAAK;IACvB;EACF;EACA,OAAOuD,MAAM;AACf;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,WAAWA,CAAChG,MAAyB,EAAEiG,SAAiB,EAAY;EAClF,MAAM9C,KAAK,GAAGnD,MAAM,CAACM,MAAM;EAC3B,IAAI2F,SAAS,IAAI9C,KAAK,IAAI8C,SAAS,GAAG,CAAC,EAAE,OAAOjG,MAAM,CAACkD,GAAG,CAAC,CAAC3C,CAAC,EAAEC,KAAK,KAAKA,KAAK,CAAC;EAE/E,MAAM0F,EAAE,GAAI1F,KAAa,IAAKR,MAAM,CAACQ,KAAK,CAAC,IAAI,CAAC;EAChD,MAAM2F,QAAQ,GAAG,CAAC,CAAC,CAAC;EACpB;EACA;EACA;EACA,MAAMC,KAAK,GAAG,CAACjD,KAAK,GAAG,CAAC,KAAK8C,SAAS,GAAG,CAAC,CAAC;EAC3C,IAAIvF,QAAQ,GAAG,CAAC;EAEhB,KAAK,IAAI2F,MAAM,GAAG,CAAC,EAAEA,MAAM,GAAGJ,SAAS,GAAG,CAAC,EAAEI,MAAM,IAAI,CAAC,EAAE;IACxD;IACA;IACA;IACA,MAAMC,QAAQ,GAAG3H,IAAI,CAACO,KAAK,CAAC,CAACmH,MAAM,GAAG,CAAC,IAAID,KAAK,CAAC,GAAG,CAAC;IACrD,MAAMG,MAAM,GAAG5H,IAAI,CAACF,GAAG,CAACE,IAAI,CAACO,KAAK,CAAC,CAACmH,MAAM,GAAG,CAAC,IAAID,KAAK,CAAC,GAAG,CAAC,EAAEjD,KAAK,CAAC;IACpE,IAAIqD,IAAI,GAAG,CAAC;IACZ,IAAIC,IAAI,GAAG,CAAC;IACZ,KAAK,IAAI3B,CAAC,GAAGwB,QAAQ,EAAExB,CAAC,GAAGyB,MAAM,EAAEzB,CAAC,IAAI,CAAC,EAAE;MACzC0B,IAAI,IAAI1B,CAAC;MACT2B,IAAI,IAAIP,EAAE,CAACpB,CAAC,CAAC;IACf;IACA,MAAM3D,IAAI,GAAGxC,IAAI,CAACD,GAAG,CAAC,CAAC,EAAE6H,MAAM,GAAGD,QAAQ,CAAC;IAC3CE,IAAI,IAAIrF,IAAI;IACZsF,IAAI,IAAItF,IAAI;IAEZ,MAAMtB,KAAK,GAAGlB,IAAI,CAACO,KAAK,CAACmH,MAAM,GAAGD,KAAK,CAAC,GAAG,CAAC;IAC5C,MAAMtG,GAAG,GAAGnB,IAAI,CAACO,KAAK,CAAC,CAACmH,MAAM,GAAG,CAAC,IAAID,KAAK,CAAC,GAAG,CAAC;IAChD,IAAIM,IAAI,GAAG7G,KAAK;IAChB,IAAI8G,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,IAAI7B,CAAC,GAAGjF,KAAK,EAAEiF,CAAC,GAAGhF,GAAG,EAAEgF,CAAC,IAAI,CAAC,EAAE;MACnC,MAAM8B,IAAI,GAAGjI,IAAI,CAACgB,GAAG,CACnB,CAACe,QAAQ,GAAG8F,IAAI,KAAKN,EAAE,CAACpB,CAAC,CAAC,GAAGoB,EAAE,CAACxF,QAAQ,CAAC,CAAC,GAAG,CAACA,QAAQ,GAAGoE,CAAC,KAAK2B,IAAI,GAAGP,EAAE,CAACxF,QAAQ,CAAC,CACpF,CAAC;MACD,IAAIkG,IAAI,GAAGD,QAAQ,EAAE;QACnBA,QAAQ,GAAGC,IAAI;QACfF,IAAI,GAAG5B,CAAC;MACV;IACF;IACAqB,QAAQ,CAAClG,IAAI,CAACyG,IAAI,CAAC;IACnBhG,QAAQ,GAAGgG,IAAI;EACjB;EAEAP,QAAQ,CAAClG,IAAI,CAACkD,KAAK,GAAG,CAAC,CAAC;EACxB,OAAOgD,QAAQ;AACjB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["toNumber","value","Number","isFinite","clamp","min","max","Math","tidy","toFixed","niceStep","rough","magnitude","pow","floor","log10","fraction","nice","niceScale","count","lo","hi","pad","abs","step","start","end","ceil","values","push","exactTicks","steps","Array","from","length","_","index","growExtent","previous","next","linearScale","domain","range","d0","d1","r0","r1","span","extent","rows","keys","options","stacked","includeZero","Infinity","row","up","down","key","stackRow","bands","to","RAD","PI","polar","center","radius","angle","x","sin","y","cos","angleOf","point","degrees","atan2","arcsFor","safe","map","total","reduce","sum","arcs","cursor","forEach","sweep","ratio","arcAt","normalized","arc","radarAngles","segmentBox","a","b","thickness","dx","dy","hypot","left","top","width","height","rotate","smoothPoints","points","out","i","p0","p1","p2","p3","s","t","t2","t3","sampleY","UNITS","formatNumber","sign","unit","decimals","fanStrips","strips","previousAngle","lttbIndices","threshold","at","selected","every","bucket","avgStart","avgEnd","avgX","avgY","best","bestArea","area"],"sourceRoot":"../../../../src","sources":["organisms/chart/math.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Chart's categorical palette, derived from the theme.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
6
|
+
* There is deliberately no list of colors here: if there were, a custom
|
|
7
|
+
* `brand` would produce a chart that doesn't look like the rest of the app,
|
|
8
|
+
* and dark mode would have to be maintained by hand. The first series reuse
|
|
9
|
+
* the theme's accents (which already come with contrast resolved for their
|
|
10
|
+
* scheme) and, when they run out, the primary's hue keeps rotating by the
|
|
11
|
+
* golden angle: the 137.5° sequence is the one that takes longest to repeat
|
|
12
|
+
* a similar hue, which is exactly what you ask of a categorical palette.
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* Each color is checked against `surface` at 3:1 — the WCAG 1.4.11 minimum
|
|
15
|
+
* for graphical objects, which is what a bar is — and lightened or darkened
|
|
16
|
+
* until it meets it.
|
|
17
17
|
*/
|
|
18
18
|
import { contrast, toHex, toHsl } from '../../theme/colors';
|
|
19
|
-
/**
|
|
19
|
+
/** Minimum contrast of a graphical object against its background (WCAG 1.4.11). */
|
|
20
20
|
export const GRAPHIC_CONTRAST = 3;
|
|
21
21
|
const GOLDEN_ANGLE = 137.508;
|
|
22
22
|
|
|
23
|
-
/**
|
|
23
|
+
/** Theme accents in order of appearance: hues well apart from one another. */
|
|
24
24
|
function seeds(theme) {
|
|
25
25
|
const {
|
|
26
26
|
primary,
|
|
@@ -33,14 +33,14 @@ function seeds(theme) {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
36
|
+
* Pushes the lightness until it stands off the background. The step is small
|
|
37
|
+
* and the cap low because the goal is to correct a color, not invent another:
|
|
38
|
+
* if it didn't get there in 12 tries, the best achieved is returned.
|
|
39
39
|
*/
|
|
40
40
|
function readable(hex, surface) {
|
|
41
41
|
if (contrast(hex, surface) >= GRAPHIC_CONTRAST) return hex;
|
|
42
42
|
const hsl = toHsl(hex);
|
|
43
|
-
//
|
|
43
|
+
// Over a light background you have to darken, over a dark one lighten.
|
|
44
44
|
const direction = toHsl(surface).l > 0.5 ? -1 : 1;
|
|
45
45
|
let best = hex;
|
|
46
46
|
let bestContrast = contrast(hex, surface);
|
|
@@ -67,9 +67,9 @@ function buildUnsafe(theme, count) {
|
|
|
67
67
|
out.push(readable(base[index], surface));
|
|
68
68
|
continue;
|
|
69
69
|
}
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
//
|
|
70
|
+
// Once past the accents, the primary's hue is rotated. `l` alternates one
|
|
71
|
+
// step per turn so two neighboring hues aren't confused if the rotation
|
|
72
|
+
// brings them close.
|
|
73
73
|
const seed = toHsl(base[0]);
|
|
74
74
|
const turn = index - base.length + 1;
|
|
75
75
|
out.push(readable(toHex({
|
|
@@ -82,10 +82,10 @@ function buildUnsafe(theme, count) {
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
85
|
+
* The color helpers speak hex. A theme with an accent in `rgba()` is legal
|
|
86
|
+
* for React Native and makes `toHsl` throw: in that case it falls back to the
|
|
87
|
+
* accents as they came, cycling. A chart with repeated colors is worse than
|
|
88
|
+
* one with derived colors, but far better than one that doesn't render.
|
|
89
89
|
*/
|
|
90
90
|
function build(theme, count) {
|
|
91
91
|
try {
|
|
@@ -98,12 +98,12 @@ function build(theme, count) {
|
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
//
|
|
102
|
-
//
|
|
103
|
-
// (
|
|
101
|
+
// One palette per theme, and per theme the longest array requested so far:
|
|
102
|
+
// the cache is shared among all mounted charts, which is the normal case
|
|
103
|
+
// (a dashboard with six charts on the same theme).
|
|
104
104
|
const cache = new WeakMap();
|
|
105
105
|
|
|
106
|
-
/** `count`
|
|
106
|
+
/** `count` stable colors for the series: the same index always gives the same color. */
|
|
107
107
|
export function seriesPalette(theme, count) {
|
|
108
108
|
const cached = cache.get(theme);
|
|
109
109
|
if (cached && cached.length >= count) return cached.slice(0, count);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
* (
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Bridge between the mounted provider and code that isn't a component
|
|
5
|
+
* (services, API layer, interceptors). The provider registers itself on mount
|
|
6
|
+
* and clears itself on unmount, so outside the tree there is never a live
|
|
7
|
+
* reference left to a dead context.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
export function createImperativeBridge(providerName) {
|
|
@@ -15,7 +15,7 @@ export function createImperativeBridge(providerName) {
|
|
|
15
15
|
},
|
|
16
16
|
get: () => {
|
|
17
17
|
if (!current && __DEV__) {
|
|
18
|
-
console.warn(`orn-ui:
|
|
18
|
+
console.warn(`orn-ui: the imperative API was called without a mounted <${providerName}>. The call was ignored.`);
|
|
19
19
|
}
|
|
20
20
|
return current;
|
|
21
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createImperativeBridge","providerName","current","set","value","get","__DEV__","console","warn"],"sourceRoot":"../../../src","sources":["organisms/imperativeBridge.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAMA,OAAO,SAASA,sBAAsBA,CAAIC,YAAoB,EAAuB;EACnF,IAAIC,OAAiB,GAAG,IAAI;EAE5B,OAAO;IACLC,GAAG,EAAGC,KAAK,IAAK;MACdF,OAAO,GAAGE,KAAK;IACjB,CAAC;IACDC,GAAG,EAAEA,CAAA,KAAM;MACT,IAAI,CAACH,OAAO,IAAII,OAAO,EAAE;QACvBC,OAAO,CAACC,IAAI,CACV,
|
|
1
|
+
{"version":3,"names":["createImperativeBridge","providerName","current","set","value","get","__DEV__","console","warn"],"sourceRoot":"../../../src","sources":["organisms/imperativeBridge.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAMA,OAAO,SAASA,sBAAsBA,CAAIC,YAAoB,EAAuB;EACnF,IAAIC,OAAiB,GAAG,IAAI;EAE5B,OAAO;IACLC,GAAG,EAAGC,KAAK,IAAK;MACdF,OAAO,GAAGE,KAAK;IACjB,CAAC;IACDC,GAAG,EAAEA,CAAA,KAAM;MACT,IAAI,CAACH,OAAO,IAAII,OAAO,EAAE;QACvBC,OAAO,CAACC,IAAI,CACV,4DAA4DP,YAAY,0BAC1E,CAAC;MACH;MACA,OAAOC,OAAO;IAChB;EACF,CAAC;AACH","ignoreList":[]}
|