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
|
@@ -24,19 +24,19 @@ exports.smoothPoints = smoothPoints;
|
|
|
24
24
|
exports.stackRow = stackRow;
|
|
25
25
|
exports.toNumber = toNumber;
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
27
|
+
* Chart geometry and scales: everything that can be tested without mounting a
|
|
28
|
+
* tree lives here, without React and without dependencies. marks.tsx only
|
|
29
|
+
* translates these numbers into styles, and Chart.tsx only decides which mark to draw.
|
|
30
30
|
*
|
|
31
|
-
*
|
|
32
|
-
* -
|
|
33
|
-
* -
|
|
34
|
-
*
|
|
31
|
+
* Conventions:
|
|
32
|
+
* - React Native coordinates: origin at the top-left, `y` grows downward.
|
|
33
|
+
* - Angles in degrees, 0° at 12 o'clock, increasing clockwise —
|
|
34
|
+
* which is how a pie is read and how `transform: rotate` turns in RN.
|
|
35
35
|
*/
|
|
36
36
|
|
|
37
|
-
/**
|
|
37
|
+
/** Data row: an x-axis category and one number per series. */
|
|
38
38
|
|
|
39
|
-
/**
|
|
39
|
+
/** Reads a cell as a number, or null if it isn't one (a gap in the series). */
|
|
40
40
|
function toNumber(value) {
|
|
41
41
|
return typeof value === 'number' && Number.isFinite(value) ? value : null;
|
|
42
42
|
}
|
|
@@ -44,17 +44,17 @@ function clamp(value, min, max) {
|
|
|
44
44
|
return Math.min(max, Math.max(min, value));
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
/**
|
|
47
|
+
/** Kills the floating point noise left by adding `step` in a loop. */
|
|
48
48
|
function tidy(value) {
|
|
49
49
|
return Number(value.toFixed(10));
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
// ──
|
|
52
|
+
// ── scales ─────────────────────────────────────────────────────────────────
|
|
53
53
|
|
|
54
54
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
55
|
+
* The 1, 2, 5 or 10 (times its power of ten) closest above `rough`.
|
|
56
|
+
* It is what makes ticks land on numbers someone would say out loud —
|
|
57
|
+
* 0, 250, 500 — and not on 0, 237, 474.
|
|
58
58
|
*/
|
|
59
59
|
function niceStep(rough) {
|
|
60
60
|
if (!(rough > 0)) return 1;
|
|
@@ -64,9 +64,9 @@ function niceStep(rough) {
|
|
|
64
64
|
return nice * magnitude;
|
|
65
65
|
}
|
|
66
66
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
67
|
+
* Domain rounded to legible values plus the list of ticks. `count` is an
|
|
68
|
+
* intent, not a promise: rounding outward may give one more or one fewer,
|
|
69
|
+
* and that is preferable to an axis with arbitrary numbers.
|
|
70
70
|
*/
|
|
71
71
|
function niceScale(min, max, count = 5) {
|
|
72
72
|
let lo = Math.min(min, max);
|
|
@@ -76,8 +76,8 @@ function niceScale(min, max, count = 5) {
|
|
|
76
76
|
hi = 1;
|
|
77
77
|
}
|
|
78
78
|
if (lo === hi) {
|
|
79
|
-
//
|
|
80
|
-
//
|
|
79
|
+
// A single value doesn't define a range. A symmetric one is made up so
|
|
80
|
+
// the mark neither sticks to the edge nor fills the whole height.
|
|
81
81
|
const pad = Math.abs(lo) || 1;
|
|
82
82
|
lo -= pad;
|
|
83
83
|
hi += pad;
|
|
@@ -86,8 +86,8 @@ function niceScale(min, max, count = 5) {
|
|
|
86
86
|
const start = Math.floor(lo / step) * step;
|
|
87
87
|
const end = Math.ceil(hi / step) * step;
|
|
88
88
|
const values = [];
|
|
89
|
-
// `end + step / 2`
|
|
90
|
-
// tick
|
|
89
|
+
// `end + step / 2` instead of `end`: adding step accumulates error and the
|
|
90
|
+
// last tick would be lost precisely in the most used domains (0–100, 0–1).
|
|
91
91
|
for (let value = start; value <= end + step / 2; value += step) values.push(tidy(value));
|
|
92
92
|
return {
|
|
93
93
|
min: start,
|
|
@@ -98,10 +98,10 @@ function niceScale(min, max, count = 5) {
|
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
/**
|
|
101
|
-
* Ticks
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
101
|
+
* Ticks for a domain the consumer set by hand. It rounds nothing: if someone
|
|
102
|
+
* asks for 0–100, the axis says 0–100. It is the opposite of `niceScale`, and
|
|
103
|
+
* it is what a live chart needs — an axis that rearranges itself on every tick
|
|
104
|
+
* makes the line jump even though the data hasn't moved.
|
|
105
105
|
*/
|
|
106
106
|
function exactTicks(min, max, count = 5) {
|
|
107
107
|
const lo = Math.min(min, max);
|
|
@@ -125,16 +125,16 @@ function exactTicks(min, max, count = 5) {
|
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
/**
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
128
|
+
* Merges two domains keeping the widest. It is the 'sticky' mode: the axis
|
|
129
|
+
* grows when a value arrives that didn't fit and never shrinks back, so what
|
|
130
|
+
* you see moving is the data and not the scale.
|
|
131
131
|
*/
|
|
132
132
|
function growExtent(previous, next) {
|
|
133
133
|
if (!previous) return next;
|
|
134
134
|
return [Math.min(previous[0], next[0]), Math.max(previous[1], next[1])];
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
/**
|
|
137
|
+
/** Linear domain → range interpolator. A degenerate domain falls to the middle of the range. */
|
|
138
138
|
function linearScale(domain, range) {
|
|
139
139
|
const [d0, d1] = domain;
|
|
140
140
|
const [r0, r1] = range;
|
|
@@ -142,7 +142,7 @@ function linearScale(domain, range) {
|
|
|
142
142
|
if (span === 0) return () => (r0 + r1) / 2;
|
|
143
143
|
return value => r0 + (value - d0) / span * (r1 - r0);
|
|
144
144
|
}
|
|
145
|
-
/**
|
|
145
|
+
/** Minimum and maximum of the requested series. With no data it returns [0, 1]. */
|
|
146
146
|
function extent(rows, keys, options = {}) {
|
|
147
147
|
const {
|
|
148
148
|
stacked = false,
|
|
@@ -152,8 +152,8 @@ function extent(rows, keys, options = {}) {
|
|
|
152
152
|
let max = -Infinity;
|
|
153
153
|
for (const row of rows) {
|
|
154
154
|
if (stacked) {
|
|
155
|
-
//
|
|
156
|
-
//
|
|
155
|
+
// Positives and negatives stack toward opposite sides of zero, so each
|
|
156
|
+
// side has its own total and neither cancels the other.
|
|
157
157
|
let up = 0;
|
|
158
158
|
let down = 0;
|
|
159
159
|
for (const key of keys) {
|
|
@@ -180,12 +180,12 @@ function extent(rows, keys, options = {}) {
|
|
|
180
180
|
return [min, max];
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
// ──
|
|
183
|
+
// ── stacking ───────────────────────────────────────────────────────────────
|
|
184
184
|
|
|
185
185
|
/**
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
*
|
|
186
|
+
* Stacked bands of a row. Positives grow from 0 upward and negatives from 0
|
|
187
|
+
* downward: a negative series doesn't eat the positives' height, which is
|
|
188
|
+
* what happens if everything is stacked in a single accumulator.
|
|
189
189
|
*/
|
|
190
190
|
function stackRow(row, keys) {
|
|
191
191
|
const bands = [];
|
|
@@ -219,7 +219,7 @@ function stackRow(row, keys) {
|
|
|
219
219
|
|
|
220
220
|
const RAD = Math.PI / 180;
|
|
221
221
|
|
|
222
|
-
/**
|
|
222
|
+
/** Point at `radius` from the center at the given angle (0° up, clockwise). */
|
|
223
223
|
function polar(center, radius, angle) {
|
|
224
224
|
return {
|
|
225
225
|
x: center.x + radius * Math.sin(angle * RAD),
|
|
@@ -227,14 +227,14 @@ function polar(center, radius, angle) {
|
|
|
227
227
|
};
|
|
228
228
|
}
|
|
229
229
|
|
|
230
|
-
/**
|
|
230
|
+
/** Angle of a point relative to the center, normalized to [0, 360). */
|
|
231
231
|
function angleOf(center, point) {
|
|
232
232
|
const degrees = Math.atan2(point.x - center.x, center.y - point.y) / RAD;
|
|
233
233
|
return (degrees + 360) % 360;
|
|
234
234
|
}
|
|
235
235
|
/**
|
|
236
|
-
*
|
|
237
|
-
*
|
|
236
|
+
* Arcs of a pie. Negatives don't exist in a pie (there is no "less slice"):
|
|
237
|
+
* they are dropped instead of inverted. Total 0 ⇒ nothing to draw.
|
|
238
238
|
*/
|
|
239
239
|
function arcsFor(values) {
|
|
240
240
|
const safe = values.map(value => Number.isFinite(value) && value > 0 ? value : 0);
|
|
@@ -257,7 +257,7 @@ function arcsFor(values) {
|
|
|
257
257
|
return arcs;
|
|
258
258
|
}
|
|
259
259
|
|
|
260
|
-
/**
|
|
260
|
+
/** The arc containing that angle, or -1. */
|
|
261
261
|
function arcAt(arcs, angle) {
|
|
262
262
|
const normalized = (angle + 360) % 360;
|
|
263
263
|
for (const arc of arcs) {
|
|
@@ -266,7 +266,7 @@ function arcAt(arcs, angle) {
|
|
|
266
266
|
return -1;
|
|
267
267
|
}
|
|
268
268
|
|
|
269
|
-
/**
|
|
269
|
+
/** Angles of a radar's axes: the first at the top, the rest evenly spread. */
|
|
270
270
|
function radarAngles(count) {
|
|
271
271
|
if (count <= 0) return [];
|
|
272
272
|
return Array.from({
|
|
@@ -274,11 +274,11 @@ function radarAngles(count) {
|
|
|
274
274
|
}, (_, index) => index * 360 / count);
|
|
275
275
|
}
|
|
276
276
|
|
|
277
|
-
// ──
|
|
277
|
+
// ── segments and curves ────────────────────────────────────────────────────
|
|
278
278
|
|
|
279
279
|
/**
|
|
280
|
-
*
|
|
281
|
-
*
|
|
280
|
+
* Box of a segment a→b: without SVG, a line is a thin rectangle rotated
|
|
281
|
+
* around its center. Width = distance, height = thickness, rotation = the slope.
|
|
282
282
|
*/
|
|
283
283
|
function segmentBox(a, b, thickness) {
|
|
284
284
|
const dx = b.x - a.x;
|
|
@@ -294,17 +294,17 @@ function segmentBox(a, b, thickness) {
|
|
|
294
294
|
}
|
|
295
295
|
|
|
296
296
|
/**
|
|
297
|
-
*
|
|
298
|
-
*
|
|
299
|
-
*
|
|
300
|
-
*
|
|
297
|
+
* Smooths a polyline with Catmull-Rom sampled in `steps` segments per span.
|
|
298
|
+
* The curve passes through all the original points (unlike a free-control
|
|
299
|
+
* Bézier), so the data is still the data; only path is added in between, and
|
|
300
|
+
* the result is drawn with the same straight segments.
|
|
301
301
|
*/
|
|
302
302
|
function smoothPoints(points, steps = 8) {
|
|
303
303
|
if (points.length < 3 || steps < 2) return points;
|
|
304
304
|
const out = [points[0]];
|
|
305
305
|
for (let i = 0; i < points.length - 1; i += 1) {
|
|
306
|
-
//
|
|
307
|
-
//
|
|
306
|
+
// The endpoints are duplicated so the first and last spans have the
|
|
307
|
+
// four references the spline asks for.
|
|
308
308
|
const p0 = points[i - 1] ?? points[i];
|
|
309
309
|
const p1 = points[i];
|
|
310
310
|
const p2 = points[i + 1];
|
|
@@ -323,8 +323,8 @@ function smoothPoints(points, steps = 8) {
|
|
|
323
323
|
}
|
|
324
324
|
|
|
325
325
|
/**
|
|
326
|
-
* `y`
|
|
327
|
-
*
|
|
326
|
+
* The polyline's `y` at that `x`, or null if it falls outside. It is what
|
|
327
|
+
* turns a line into an area: each vertical strip asks for its height here.
|
|
328
328
|
*/
|
|
329
329
|
function sampleY(points, x) {
|
|
330
330
|
if (points.length === 0) return null;
|
|
@@ -340,14 +340,14 @@ function sampleY(points, x) {
|
|
|
340
340
|
return null;
|
|
341
341
|
}
|
|
342
342
|
|
|
343
|
-
// ──
|
|
343
|
+
// ── formatting ─────────────────────────────────────────────────────────────
|
|
344
344
|
|
|
345
345
|
const UNITS = ['', 'k', 'M', 'B'];
|
|
346
346
|
|
|
347
347
|
/**
|
|
348
|
-
*
|
|
349
|
-
*
|
|
350
|
-
*
|
|
348
|
+
* Default format for axes and tooltip: compact, because the axis of a 320px
|
|
349
|
+
* chart has no room for "1250000". The consumer replaces it entirely with
|
|
350
|
+
* `formatValue`.
|
|
351
351
|
*/
|
|
352
352
|
function formatNumber(value) {
|
|
353
353
|
if (!Number.isFinite(value)) return '';
|
|
@@ -362,12 +362,12 @@ function formatNumber(value) {
|
|
|
362
362
|
return `${sign}${magnitude.toFixed(decimals)}${UNITS[unit]}`;
|
|
363
363
|
}
|
|
364
364
|
/**
|
|
365
|
-
*
|
|
366
|
-
*
|
|
365
|
+
* Breaks a polygon around a center into angular slices: it is what lets a
|
|
366
|
+
* radar be filled with the same primitive that draws a pie.
|
|
367
367
|
*
|
|
368
|
-
*
|
|
369
|
-
*
|
|
370
|
-
*
|
|
368
|
+
* The cut goes along the polygon's side (parameter `t`), not by angle: the
|
|
369
|
+
* radius of a chord isn't linear in the angle, and cutting by angle would
|
|
370
|
+
* round off the vertices exactly where the data says there should be a point.
|
|
371
371
|
*/
|
|
372
372
|
function fanStrips(center, points, steps = 6) {
|
|
373
373
|
if (points.length < 3 || steps < 1) return [];
|
|
@@ -384,14 +384,14 @@ function fanStrips(center, points, steps = 6) {
|
|
|
384
384
|
y: a.y + (b.y - a.y) * t
|
|
385
385
|
};
|
|
386
386
|
const angle = angleOf(center, point);
|
|
387
|
-
//
|
|
388
|
-
//
|
|
387
|
+
// The jump from 360 to 0 falls somewhere along the path: without this,
|
|
388
|
+
// that slice would be drawn turning backwards and cover everything else.
|
|
389
389
|
let sweep = angle - previousAngle;
|
|
390
390
|
if (sweep < 0) sweep += 360;
|
|
391
391
|
if (sweep > 0) {
|
|
392
392
|
const radius = (Math.hypot(previous.x - center.x, previous.y - center.y) + Math.hypot(point.x - center.x, point.y - center.y)) / 2;
|
|
393
|
-
//
|
|
394
|
-
// antialias
|
|
393
|
+
// The slices overlap a hair on purpose: without the overlap, the
|
|
394
|
+
// antialias leaves a light seam between strips.
|
|
395
395
|
strips.push({
|
|
396
396
|
start: previousAngle,
|
|
397
397
|
sweep: sweep + 0.4,
|
|
@@ -405,38 +405,37 @@ function fanStrips(center, points, steps = 6) {
|
|
|
405
405
|
return strips;
|
|
406
406
|
}
|
|
407
407
|
|
|
408
|
-
// ──
|
|
408
|
+
// ── decimation ─────────────────────────────────────────────────────────────
|
|
409
409
|
|
|
410
410
|
/**
|
|
411
|
-
* LTTB (Largest-Triangle-Three-Buckets):
|
|
412
|
-
*
|
|
413
|
-
*
|
|
414
|
-
*
|
|
411
|
+
* LTTB (Largest-Triangle-Three-Buckets): picks `threshold` points from
|
|
412
|
+
* `values` while keeping the shape of the curve. Returns indexes, not points,
|
|
413
|
+
* so the caller can keep the whole row —all its series— and not only the one
|
|
414
|
+
* used to decide.
|
|
415
415
|
*
|
|
416
|
-
*
|
|
417
|
-
*
|
|
418
|
-
*
|
|
419
|
-
*
|
|
420
|
-
*
|
|
416
|
+
* Why not sample every N: every N eats the peaks, which are exactly what
|
|
417
|
+
* someone looks at in a time series. LTTB splits the path into buckets and
|
|
418
|
+
* from each one keeps the point that forms the largest triangle with the one
|
|
419
|
+
* already picked and with the average of the next bucket — that is, the one
|
|
420
|
+
* that changes the silhouette the most. First and last are always kept.
|
|
421
421
|
*
|
|
422
|
-
* `x`
|
|
423
|
-
*
|
|
424
|
-
* índice.
|
|
422
|
+
* `x` is the index: a chart's categories are spread evenly along the axis, so
|
|
423
|
+
* the horizontal distance between two points is their index distance.
|
|
425
424
|
*/
|
|
426
425
|
function lttbIndices(values, threshold) {
|
|
427
426
|
const total = values.length;
|
|
428
427
|
if (threshold >= total || threshold < 3) return values.map((_, index) => index);
|
|
429
428
|
const at = index => values[index] ?? 0;
|
|
430
429
|
const selected = [0];
|
|
431
|
-
//
|
|
432
|
-
// `threshold < total`
|
|
433
|
-
//
|
|
430
|
+
// One bucket per intermediate point: the first and the last aren't drawn.
|
|
431
|
+
// With `threshold < total` a bucket spans more than one point, so none is
|
|
432
|
+
// empty and exactly `threshold` indexes come out, with no repeats.
|
|
434
433
|
const every = (total - 2) / (threshold - 2);
|
|
435
434
|
let previous = 0;
|
|
436
435
|
for (let bucket = 0; bucket < threshold - 2; bucket += 1) {
|
|
437
|
-
//
|
|
438
|
-
//
|
|
439
|
-
//
|
|
436
|
+
// Average of the *next* bucket: the triangle's third vertex. It is
|
|
437
|
+
// offset one bucket from the candidates, and that offset is the
|
|
438
|
+
// algorithm — comparing against the bucket itself doesn't look ahead.
|
|
440
439
|
const avgStart = Math.floor((bucket + 1) * every) + 1;
|
|
441
440
|
const avgEnd = Math.min(Math.floor((bucket + 2) * every) + 1, total);
|
|
442
441
|
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":"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","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":[]}
|
|
@@ -7,26 +7,26 @@ exports.GRAPHIC_CONTRAST = void 0;
|
|
|
7
7
|
exports.seriesPalette = seriesPalette;
|
|
8
8
|
var _colors = require("../../theme/colors");
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* Chart's categorical palette, derived from the theme.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
12
|
+
* There is deliberately no list of colors here: if there were, a custom
|
|
13
|
+
* `brand` would produce a chart that doesn't look like the rest of the app,
|
|
14
|
+
* and dark mode would have to be maintained by hand. The first series reuse
|
|
15
|
+
* the theme's accents (which already come with contrast resolved for their
|
|
16
|
+
* scheme) and, when they run out, the primary's hue keeps rotating by the
|
|
17
|
+
* golden angle: the 137.5° sequence is the one that takes longest to repeat
|
|
18
|
+
* a similar hue, which is exactly what you ask of a categorical palette.
|
|
19
19
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
20
|
+
* Each color is checked against `surface` at 3:1 — the WCAG 1.4.11 minimum
|
|
21
|
+
* for graphical objects, which is what a bar is — and lightened or darkened
|
|
22
|
+
* until it meets it.
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
|
-
/**
|
|
25
|
+
/** Minimum contrast of a graphical object against its background (WCAG 1.4.11). */
|
|
26
26
|
const GRAPHIC_CONTRAST = exports.GRAPHIC_CONTRAST = 3;
|
|
27
27
|
const GOLDEN_ANGLE = 137.508;
|
|
28
28
|
|
|
29
|
-
/**
|
|
29
|
+
/** Theme accents in order of appearance: hues well apart from one another. */
|
|
30
30
|
function seeds(theme) {
|
|
31
31
|
const {
|
|
32
32
|
primary,
|
|
@@ -39,14 +39,14 @@ function seeds(theme) {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
/**
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
42
|
+
* Pushes the lightness until it stands off the background. The step is small
|
|
43
|
+
* and the cap low because the goal is to correct a color, not invent another:
|
|
44
|
+
* if it didn't get there in 12 tries, the best achieved is returned.
|
|
45
45
|
*/
|
|
46
46
|
function readable(hex, surface) {
|
|
47
47
|
if ((0, _colors.contrast)(hex, surface) >= GRAPHIC_CONTRAST) return hex;
|
|
48
48
|
const hsl = (0, _colors.toHsl)(hex);
|
|
49
|
-
//
|
|
49
|
+
// Over a light background you have to darken, over a dark one lighten.
|
|
50
50
|
const direction = (0, _colors.toHsl)(surface).l > 0.5 ? -1 : 1;
|
|
51
51
|
let best = hex;
|
|
52
52
|
let bestContrast = (0, _colors.contrast)(hex, surface);
|
|
@@ -73,9 +73,9 @@ function buildUnsafe(theme, count) {
|
|
|
73
73
|
out.push(readable(base[index], surface));
|
|
74
74
|
continue;
|
|
75
75
|
}
|
|
76
|
-
//
|
|
77
|
-
//
|
|
78
|
-
//
|
|
76
|
+
// Once past the accents, the primary's hue is rotated. `l` alternates one
|
|
77
|
+
// step per turn so two neighboring hues aren't confused if the rotation
|
|
78
|
+
// brings them close.
|
|
79
79
|
const seed = (0, _colors.toHsl)(base[0]);
|
|
80
80
|
const turn = index - base.length + 1;
|
|
81
81
|
out.push(readable((0, _colors.toHex)({
|
|
@@ -88,10 +88,10 @@ function buildUnsafe(theme, count) {
|
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
/**
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
91
|
+
* The color helpers speak hex. A theme with an accent in `rgba()` is legal
|
|
92
|
+
* for React Native and makes `toHsl` throw: in that case it falls back to the
|
|
93
|
+
* accents as they came, cycling. A chart with repeated colors is worse than
|
|
94
|
+
* one with derived colors, but far better than one that doesn't render.
|
|
95
95
|
*/
|
|
96
96
|
function build(theme, count) {
|
|
97
97
|
try {
|
|
@@ -104,12 +104,12 @@ function build(theme, count) {
|
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
-
//
|
|
108
|
-
//
|
|
109
|
-
// (
|
|
107
|
+
// One palette per theme, and per theme the longest array requested so far:
|
|
108
|
+
// the cache is shared among all mounted charts, which is the normal case
|
|
109
|
+
// (a dashboard with six charts on the same theme).
|
|
110
110
|
const cache = new WeakMap();
|
|
111
111
|
|
|
112
|
-
/** `count`
|
|
112
|
+
/** `count` stable colors for the series: the same index always gives the same color. */
|
|
113
113
|
function seriesPalette(theme, count) {
|
|
114
114
|
const cached = cache.get(theme);
|
|
115
115
|
if (cached && cached.length >= count) return cached.slice(0, count);
|
|
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.createImperativeBridge = createImperativeBridge;
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
9
|
-
* (
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* Bridge between the mounted provider and code that isn't a component
|
|
9
|
+
* (services, API layer, interceptors). The provider registers itself on mount
|
|
10
|
+
* and clears itself on unmount, so outside the tree there is never a live
|
|
11
|
+
* reference left to a dead context.
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
function createImperativeBridge(providerName) {
|
|
@@ -19,7 +19,7 @@ function createImperativeBridge(providerName) {
|
|
|
19
19
|
},
|
|
20
20
|
get: () => {
|
|
21
21
|
if (!current && __DEV__) {
|
|
22
|
-
console.warn(`orn-ui:
|
|
22
|
+
console.warn(`orn-ui: the imperative API was called without a mounted <${providerName}>. The call was ignored.`);
|
|
23
23
|
}
|
|
24
24
|
return current;
|
|
25
25
|
}
|
|
@@ -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;;AAMO,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;;AAMO,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":[]}
|