@neko-os/ui 0.0.7 → 0.0.9
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/dist/NekoUI.js +1 -1
- package/dist/abstractions/ActivityIndicator.native.js +1 -1
- package/dist/abstractions/ActivityIndicator.web.js +1 -0
- package/dist/abstractions/AnimatedView.js +1 -1
- package/dist/abstractions/BlurView.js +1 -0
- package/dist/abstractions/BlurView.native.js +1 -0
- package/dist/abstractions/BlurView.web.js +1 -0
- package/dist/abstractions/FlatList.js +1 -0
- package/dist/abstractions/FlatList.native.js +1 -0
- package/dist/abstractions/FlatList.web.js +1 -0
- package/dist/abstractions/GradientView.js +1 -0
- package/dist/abstractions/GradientView.native.js +1 -0
- package/dist/abstractions/Icon.native.js +1 -1
- package/dist/abstractions/ImageBackground.js +1 -0
- package/dist/abstractions/ImageBackground.native.js +1 -0
- package/dist/abstractions/ImageBackground.web.js +1 -0
- package/dist/abstractions/Pressable.js +1 -0
- package/dist/abstractions/Pressable.native.js +1 -0
- package/dist/abstractions/Pressable.web.js +1 -0
- package/dist/abstractions/ScrollView.js +1 -0
- package/dist/abstractions/ScrollView.native.js +1 -0
- package/dist/abstractions/ScrollView.web.js +1 -0
- package/dist/abstractions/TextInput.js +1 -1
- package/dist/abstractions/helpers/storage.js +1 -0
- package/dist/abstractions/helpers/storage.native.js +1 -0
- package/dist/components/actions/Button.js +1 -1
- package/dist/components/actions/Dropdown.js +1 -1
- package/dist/components/actions/Link.js +1 -1
- package/dist/components/actions/Pressable.js +1 -0
- package/dist/components/actions/index.js +1 -1
- package/dist/components/actions/menu/HorizontalMenu.js +1 -1
- package/dist/components/actions/menu/VerticalMenu.js +1 -1
- package/dist/components/animations/ReanimatedView.js +1 -0
- package/dist/components/calendar/CalendarNav.js +1 -0
- package/dist/components/calendar/WeekDaysBar.js +1 -0
- package/dist/components/calendar/_helpers/calendarDays.js +1 -1
- package/dist/components/calendar/_helpers/dateDisabled.js +1 -0
- package/dist/components/calendar/index.js +0 -1
- package/dist/components/feedback/alerter.js +1 -0
- package/dist/components/feedback/confirmer.js +1 -0
- package/dist/components/feedback/index.js +1 -1
- package/dist/components/feedback/notifications/Notification.js +1 -1
- package/dist/components/feedback/notifications/NotificationsHandler.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/inputs/DateInput.js +1 -0
- package/dist/components/inputs/InputWrapper.js +1 -1
- package/dist/components/inputs/LinkInput.js +1 -0
- package/dist/components/inputs/MaskInput.js +1 -0
- package/dist/components/inputs/TextInput.js +1 -1
- package/dist/components/inputs/_DateInput.native.js +1 -0
- package/dist/components/inputs/datePicker/DatePicker.js +1 -0
- package/dist/components/inputs/datePicker/DayPicker.js +1 -0
- package/dist/components/inputs/datePicker/MonthPicker.js +1 -0
- package/dist/components/inputs/datePicker/QuarterPicker.js +1 -0
- package/dist/components/inputs/datePicker/WeekPicker.js +1 -0
- package/dist/components/inputs/datePicker/YearPicker.js +1 -0
- package/dist/components/inputs/index.js +1 -1
- package/dist/components/layout/Layout.js +1 -1
- package/dist/components/list/FlatList.js +1 -0
- package/dist/components/list/ScrollView.js +1 -0
- package/dist/components/list/index.js +1 -0
- package/dist/components/presentation/ImageBackground.js +1 -0
- package/dist/components/presentation/Result.js +1 -1
- package/dist/components/presentation/index.js +1 -1
- package/dist/components/state/LoadingView.js +1 -1
- package/dist/components/structure/Accordion.js +1 -1
- package/dist/components/structure/BlurView.js +1 -0
- package/dist/components/structure/GradientView.js +1 -0
- package/dist/components/structure/View.js +1 -1
- package/dist/components/structure/bottomDrawer/index.js +1 -0
- package/dist/components/structure/bottomDrawer/index.native.js +1 -0
- package/dist/components/structure/bottomDrawer/index.web.js +1 -0
- package/dist/components/structure/bottomDrawer/native/BottomDrawer.js +1 -0
- package/dist/components/structure/bottomDrawer/native/DrawerContext.js +1 -0
- package/dist/components/structure/bottomDrawer/native/DrawerHandle.js +1 -0
- package/dist/components/structure/bottomDrawer/native/DrawerScrollView.js +1 -0
- package/dist/components/structure/bottomDrawer/native/utils.js +1 -0
- package/dist/components/structure/bottomDrawer/web/BottomDrawer.js +1 -0
- package/dist/components/structure/drawer/Drawer.js +1 -0
- package/dist/components/structure/drawer/Drawer.native.js +1 -0
- package/dist/components/structure/drawer/index.js +1 -0
- package/dist/components/structure/index.js +1 -1
- package/dist/components/structure/modal/Modal.js +1 -0
- package/dist/components/structure/modal/Modal.native.js +1 -0
- package/dist/components/structure/modal/ModalBackdrop.js +1 -0
- package/dist/components/structure/modal/ModalContent.js +1 -0
- package/dist/components/structure/modal/ModalFooter.js +1 -0
- package/dist/components/structure/modal/ModalHeader.js +1 -0
- package/dist/components/structure/modal/handler/ModalsHandler.js +1 -0
- package/dist/components/structure/modal/index.js +1 -0
- package/dist/components/structure/overlay/OverlayWrapper.js +1 -1
- package/dist/components/structure/popover/Popover.js +1 -1
- package/dist/components/structure/popover/Popover.native.js +1 -1
- package/dist/components/theme/ThemePicker.js +1 -0
- package/dist/components/theme/ThemePickerDrawer.js +1 -0
- package/dist/components/theme/ThemeStatusBar.js +1 -0
- package/dist/components/theme/ThemeStatusBar.native.js +1 -0
- package/dist/components/theme/ThemeThumb.js +1 -0
- package/dist/components/theme/index.js +1 -0
- package/dist/helpers/index.js +1 -1
- package/dist/helpers/storage.js +1 -0
- package/dist/modifiers/animations/animatedEffects.js +1 -1
- package/dist/modifiers/animations/animatedEffects.native.js +1 -1
- package/dist/modifiers/animations/fadeEffect.js +1 -1
- package/dist/modifiers/animations/scaleEffect.js +1 -0
- package/dist/modifiers/animations/scaleEffect.native.js +1 -0
- package/dist/modifiers/animations/slideEffect.js +1 -1
- package/dist/modifiers/background.js +1 -1
- package/dist/modifiers/cursor.js +1 -0
- package/dist/modifiers/display.js +1 -1
- package/dist/modifiers/fullColor.js +1 -1
- package/dist/modifiers/hover.js +1 -0
- package/dist/modifiers/position.js +1 -1
- package/dist/modifiers/size.js +1 -1
- package/dist/modifiers/state.js +1 -1
- package/dist/responsive/responsiveHooks.js +1 -1
- package/dist/theme/ThemeHandler.js +1 -1
- package/dist/theme/default/base.js +1 -1
- package/dist/theme/default/blackTheme.js +1 -0
- package/dist/theme/default/cyberpunkTheme.js +1 -1
- package/dist/theme/default/darkTheme.js +1 -1
- package/dist/theme/default/deepWoodsTheme.js +1 -1
- package/dist/theme/default/forestTheme.js +1 -1
- package/dist/theme/default/hackerTheme.js +1 -1
- package/dist/theme/default/lightTheme.js +1 -1
- package/dist/theme/default/midnightTheme.js +1 -1
- package/dist/theme/default/msdosTheme.js +1 -1
- package/dist/theme/default/oceanTheme.js +1 -1
- package/dist/theme/default/paperTheme.js +1 -0
- package/dist/theme/default/pastelTheme.js +1 -1
- package/dist/theme/default/sunsetTheme.js +1 -1
- package/dist/theme/default/themes.js +1 -1
- package/dist/theme/format/formatTheme.js +1 -1
- package/dist/theme/helpers/contrastColor.js +1 -1
- package/package.json +8 -3
- package/src/NekoUI.js +18 -3
- package/src/abstractions/ActivityIndicator.native.js +3 -4
- package/src/abstractions/ActivityIndicator.web.js +43 -0
- package/src/abstractions/AnimatedView.js +3 -3
- package/src/abstractions/BlurView.js +43 -0
- package/src/abstractions/BlurView.native.js +39 -0
- package/src/abstractions/BlurView.web.js +39 -0
- package/src/abstractions/FlatList.js +39 -0
- package/src/abstractions/FlatList.native.js +32 -0
- package/src/abstractions/FlatList.web.js +3 -0
- package/src/abstractions/GradientView.js +5 -0
- package/src/abstractions/GradientView.native.js +32 -0
- package/src/abstractions/Icon.native.js +4 -2
- package/src/abstractions/ImageBackground.js +17 -0
- package/src/abstractions/ImageBackground.native.js +27 -0
- package/src/abstractions/ImageBackground.web.js +7 -0
- package/src/abstractions/Pressable.js +4 -0
- package/src/abstractions/Pressable.native.js +3 -0
- package/src/abstractions/Pressable.web.js +3 -0
- package/src/abstractions/ScrollView.js +3 -0
- package/src/abstractions/ScrollView.native.js +5 -0
- package/src/abstractions/ScrollView.web.js +3 -0
- package/src/abstractions/Text.web.js +15 -0
- package/src/abstractions/TextInput.js +2 -2
- package/src/abstractions/helpers/storage.js +32 -0
- package/src/abstractions/helpers/storage.native.js +34 -0
- package/src/components/actions/Button.js +8 -0
- package/src/components/actions/Dropdown.js +18 -2
- package/src/components/actions/Link.js +16 -2
- package/src/components/actions/Pressable.js +38 -0
- package/src/components/actions/index.js +1 -0
- package/src/components/actions/menu/HorizontalMenu.js +2 -1
- package/src/components/actions/menu/VerticalMenu.js +5 -4
- package/src/components/animations/ReanimatedView.js +40 -0
- package/src/components/calendar/CalendarNav.js +67 -0
- package/src/components/calendar/WeekDaysBar.js +18 -0
- package/src/components/calendar/_helpers/calendarDays.js +1 -3
- package/src/components/calendar/_helpers/dateDisabled.js +24 -0
- package/src/components/calendar/index.js +1 -1
- package/src/components/feedback/alerter.js +31 -0
- package/src/components/feedback/confirmer.js +70 -0
- package/src/components/feedback/index.js +2 -0
- package/src/components/feedback/notifications/Notification.js +1 -1
- package/src/components/feedback/notifications/NotificationsHandler.js +3 -3
- package/src/components/index.js +2 -0
- package/src/components/inputs/DateInput.js +111 -0
- package/src/components/inputs/InputWrapper.js +18 -6
- package/src/components/inputs/LinkInput.js +17 -0
- package/src/components/inputs/MaskInput.js +67 -0
- package/src/components/inputs/TextInput.js +2 -2
- package/src/components/inputs/_DateInput.native.js +89 -0
- package/src/components/inputs/datePicker/DatePicker.js +24 -0
- package/src/components/inputs/datePicker/DayPicker.js +65 -0
- package/src/components/inputs/datePicker/MonthPicker.js +62 -0
- package/src/components/inputs/datePicker/QuarterPicker.js +65 -0
- package/src/components/inputs/datePicker/WeekPicker.js +74 -0
- package/src/components/inputs/datePicker/YearPicker.js +67 -0
- package/src/components/inputs/index.js +4 -0
- package/src/components/layout/Layout.js +1 -1
- package/src/components/list/FlatList.js +54 -0
- package/src/components/list/ScrollView.js +58 -0
- package/src/components/list/index.js +2 -0
- package/src/components/presentation/ImageBackground.js +38 -0
- package/src/components/presentation/Result.js +2 -2
- package/src/components/presentation/index.js +1 -0
- package/src/components/state/LoadingView.js +10 -1
- package/src/components/structure/Accordion.js +1 -1
- package/src/components/structure/BlurView.js +58 -0
- package/src/components/structure/GradientView.js +42 -0
- package/src/components/structure/View.js +2 -0
- package/src/components/structure/bottomDrawer/index.js +1 -0
- package/src/components/structure/bottomDrawer/index.native.js +4 -0
- package/src/components/structure/bottomDrawer/index.web.js +4 -0
- package/src/components/structure/bottomDrawer/native/BottomDrawer.js +242 -0
- package/src/components/structure/bottomDrawer/native/DrawerContext.js +21 -0
- package/src/components/structure/bottomDrawer/native/DrawerHandle.js +12 -0
- package/src/components/structure/bottomDrawer/native/DrawerScrollView.js +83 -0
- package/src/components/structure/bottomDrawer/native/utils.js +58 -0
- package/src/components/structure/bottomDrawer/web/BottomDrawer.js +3 -0
- package/src/components/structure/drawer/Drawer.js +5 -0
- package/src/components/structure/drawer/Drawer.native.js +3 -0
- package/src/components/structure/drawer/index.js +1 -0
- package/src/components/structure/index.js +5 -0
- package/src/components/structure/modal/Modal.js +84 -0
- package/src/components/structure/modal/Modal.native.js +83 -0
- package/src/components/structure/modal/ModalBackdrop.js +58 -0
- package/src/components/structure/modal/ModalContent.js +28 -0
- package/src/components/structure/modal/ModalFooter.js +31 -0
- package/src/components/structure/modal/ModalHeader.js +50 -0
- package/src/components/structure/modal/handler/ModalsHandler.js +61 -0
- package/src/components/structure/modal/index.js +6 -0
- package/src/components/structure/overlay/OverlayWrapper.js +1 -1
- package/src/components/structure/popover/Popover.js +37 -2
- package/src/components/structure/popover/Popover.native.js +46 -16
- package/src/components/theme/ThemePicker.js +49 -0
- package/src/components/theme/ThemePickerDrawer.js +13 -0
- package/src/components/theme/ThemeStatusBar.js +3 -0
- package/src/components/theme/ThemeStatusBar.native.js +9 -0
- package/src/components/theme/ThemeThumb.js +98 -0
- package/src/components/theme/index.js +3 -0
- package/src/helpers/index.js +1 -0
- package/src/helpers/storage.js +54 -0
- package/src/modifiers/animations/animatedEffects.js +2 -0
- package/src/modifiers/animations/animatedEffects.native.js +3 -1
- package/src/modifiers/animations/fadeEffect.js +4 -2
- package/src/modifiers/animations/scaleEffect.js +45 -0
- package/src/modifiers/animations/scaleEffect.native.js +33 -0
- package/src/modifiers/animations/slideEffect.js +3 -1
- package/src/modifiers/background.js +16 -4
- package/src/modifiers/cursor.js +21 -0
- package/src/modifiers/display.js +2 -2
- package/src/modifiers/fullColor.js +2 -2
- package/src/modifiers/hover.js +28 -0
- package/src/modifiers/position.js +24 -3
- package/src/modifiers/size.js +2 -1
- package/src/modifiers/state.js +1 -1
- package/src/responsive/responsiveHooks.js +7 -0
- package/src/theme/ThemeHandler.js +18 -2
- package/src/theme/default/base.js +6 -6
- package/src/theme/default/blackTheme.js +35 -0
- package/src/theme/default/cyberpunkTheme.js +4 -1
- package/src/theme/default/darkTheme.js +4 -1
- package/src/theme/default/deepWoodsTheme.js +5 -2
- package/src/theme/default/forestTheme.js +4 -1
- package/src/theme/default/hackerTheme.js +4 -1
- package/src/theme/default/lightTheme.js +4 -1
- package/src/theme/default/midnightTheme.js +4 -1
- package/src/theme/default/msdosTheme.js +19 -4
- package/src/theme/default/oceanTheme.js +5 -2
- package/src/theme/default/paperTheme.js +35 -0
- package/src/theme/default/pastelTheme.js +5 -2
- package/src/theme/default/sunsetTheme.js +7 -4
- package/src/theme/default/themes.js +9 -10
- package/src/theme/format/formatTheme.js +9 -3
- package/src/theme/helpers/contrastColor.js +49 -11
- package/dist/abstractions/TouchableOpacity.web.js +0 -1
- package/dist/components/calendar/DayPicker.js +0 -1
- package/src/abstractions/TouchableOpacity.web.js +0 -3
- package/src/components/calendar/DayPicker.js +0 -94
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { View } from '../structure'
|
|
2
|
+
import { useFormattedTheme } from '../../theme/format/formatTheme'
|
|
3
|
+
import { useResponsiveValue } from '../../responsive'
|
|
4
|
+
import { useThemeHandler } from '../../theme'
|
|
5
|
+
|
|
6
|
+
export function ThemeThumb({ value }) {
|
|
7
|
+
const { themes } = useThemeHandler()
|
|
8
|
+
const { colors, label } = useFormattedTheme(themes, value)
|
|
9
|
+
const isMobile = useResponsiveValue({ smd: true, df: false })
|
|
10
|
+
|
|
11
|
+
if (isMobile) {
|
|
12
|
+
return (
|
|
13
|
+
<View centerH>
|
|
14
|
+
<View
|
|
15
|
+
bg={colors.mainBG}
|
|
16
|
+
height={175}
|
|
17
|
+
fullW
|
|
18
|
+
br="md"
|
|
19
|
+
hiddenOverflow
|
|
20
|
+
border={2}
|
|
21
|
+
brColor={colors.divider}
|
|
22
|
+
maxWidth={100}
|
|
23
|
+
>
|
|
24
|
+
<View bg={colors.overlayBG} height={25} padding={8} row borderB brColor={colors.divider}>
|
|
25
|
+
<View width={25} fullH bg={colors.primary} br="xxs" />
|
|
26
|
+
<View flex />
|
|
27
|
+
<View ratio={1} fullH bg={colors.divider} round />
|
|
28
|
+
</View>
|
|
29
|
+
|
|
30
|
+
<View flex padding={6}>
|
|
31
|
+
<View br="md" bg={colors.overlayBG} flex gap={8} padding={8} border brColor={colors.divider}>
|
|
32
|
+
<View bg={colors.text2} height={4} br="xxs" />
|
|
33
|
+
<View bg={colors.text4} height={2} br="xxs" />
|
|
34
|
+
<View bg={colors.text4} height={2} br="xxs" />
|
|
35
|
+
<View bg={colors.text4} height={2} br="xxs" />
|
|
36
|
+
<View bg={colors.text4} height={2} br="xxs" />
|
|
37
|
+
<View bg={colors.text4} height={2} br="xxs" />
|
|
38
|
+
|
|
39
|
+
<View flex />
|
|
40
|
+
|
|
41
|
+
<View height={6} fullW bg={colors.primary} br="xxs" />
|
|
42
|
+
</View>
|
|
43
|
+
</View>
|
|
44
|
+
|
|
45
|
+
<View
|
|
46
|
+
bg={colors.overlayBG}
|
|
47
|
+
height={25}
|
|
48
|
+
padding={8}
|
|
49
|
+
row
|
|
50
|
+
borderT
|
|
51
|
+
brColor={colors.divider}
|
|
52
|
+
justify="space-around"
|
|
53
|
+
centerV
|
|
54
|
+
>
|
|
55
|
+
<View ratio={1} fullH bg={colors.divider} round />
|
|
56
|
+
<View ratio={1} fullH bg={colors.divider} round />
|
|
57
|
+
<View ratio={1} fullH bg={colors.divider} round />
|
|
58
|
+
<View ratio={1} fullH bg={colors.divider} round />
|
|
59
|
+
<View ratio={1} fullH bg={colors.divider} round />
|
|
60
|
+
</View>
|
|
61
|
+
</View>
|
|
62
|
+
</View>
|
|
63
|
+
)
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return (
|
|
67
|
+
<View bg={colors.mainBG} height={175} fullW br="md" hiddenOverflow border={2} brColor={colors.divider}>
|
|
68
|
+
<View bg={colors.overlayBG} height={25} paddingV={8} paddingH={12} row borderB brColor={colors.divider}>
|
|
69
|
+
<View width={25} bg={colors.primary} br="xxs" />
|
|
70
|
+
<View flex />
|
|
71
|
+
<View ratio={1} fullH bg={colors.text4} round />
|
|
72
|
+
</View>
|
|
73
|
+
|
|
74
|
+
<View row padding={12} paddingT={8} gap={6} flex>
|
|
75
|
+
<View br="xs" bg={colors.overlayBG} flex gap={6} padding={7} border brColor={colors.divider}>
|
|
76
|
+
<View bg={colors.text4} height={2} br="xxs" />
|
|
77
|
+
<View bg={colors.text4} height={2} br="xxs" />
|
|
78
|
+
<View bg={colors.text4} height={2} br="xxs" />
|
|
79
|
+
<View bg={colors.text4} height={2} br="xxs" />
|
|
80
|
+
<View bg={colors.text4} height={2} br="xxs" />
|
|
81
|
+
</View>
|
|
82
|
+
<View br="xs" bg={colors.overlayBG} flex={4} gap={8} padding={7} border brColor={colors.divider}>
|
|
83
|
+
<View bg={colors.text2} height={4} br="xxs" width={30} />
|
|
84
|
+
<View bg={colors.text4} height={2} br="xxs" width={'80%'} />
|
|
85
|
+
<View bg={colors.text4} height={2} br="xxs" width={'80%'} />
|
|
86
|
+
<View bg={colors.text4} height={2} br="xxs" width={'80%'} />
|
|
87
|
+
<View bg={colors.text4} height={2} br="xxs" width={'80%'} />
|
|
88
|
+
<View bg={colors.text4} height={2} br="xxs" width={'80%'} />
|
|
89
|
+
<View flex />
|
|
90
|
+
<View row toRight gap={6}>
|
|
91
|
+
<View width={25} height={8} bg={colors.text4} br="xxs" />
|
|
92
|
+
<View width={25} height={8} bg={colors.primary} br="xxs" />
|
|
93
|
+
</View>
|
|
94
|
+
</View>
|
|
95
|
+
</View>
|
|
96
|
+
</View>
|
|
97
|
+
)
|
|
98
|
+
}
|
package/src/helpers/index.js
CHANGED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
|
|
3
|
+
import { AbsStorage } from '../abstractions/helpers/storage'
|
|
4
|
+
|
|
5
|
+
function set(key, value) {
|
|
6
|
+
return AbsStorage.set(key, JSON.stringify(value))
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function setAsync(key, value) {
|
|
10
|
+
return AbsStorage.setAsync(key, JSON.stringify(value))
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function get(key) {
|
|
14
|
+
const value = AbsStorage.get(key)
|
|
15
|
+
return formatStoragedValue(value)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function getAsync(key) {
|
|
19
|
+
return AbsStorage.setAsync(key).then((value) => {
|
|
20
|
+
return formatStoragedValue(value)
|
|
21
|
+
})
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function formatStoragedValue(value) {
|
|
25
|
+
try {
|
|
26
|
+
if (!value) return value
|
|
27
|
+
value = JSON.parse(value)
|
|
28
|
+
if (value === 'undefined') return undefined
|
|
29
|
+
if (value === 'null') return undefined
|
|
30
|
+
return value
|
|
31
|
+
} catch (e) {
|
|
32
|
+
return value
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function useState(key, defaultValue) {
|
|
37
|
+
const [value, setValue] = React.useState(get(key) || defaultValue)
|
|
38
|
+
|
|
39
|
+
const handleChange = (newValue) => {
|
|
40
|
+
set(key, newValue)
|
|
41
|
+
setValue(newValue)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return [value, handleChange]
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export const Storage = {
|
|
48
|
+
...AbsStorage,
|
|
49
|
+
set,
|
|
50
|
+
setAsync,
|
|
51
|
+
get,
|
|
52
|
+
getAsync,
|
|
53
|
+
useState,
|
|
54
|
+
}
|
|
@@ -3,6 +3,7 @@ import React from 'react'
|
|
|
3
3
|
|
|
4
4
|
import { useApplyStyles } from '../applyStyles'
|
|
5
5
|
import { useFadeEffect } from './fadeEffect'
|
|
6
|
+
import { useScaleEffect } from './scaleEffect'
|
|
6
7
|
import { useSlideEffect } from './slideEffect'
|
|
7
8
|
|
|
8
9
|
export function useAnimatedEffects([values, { open, onClose, lazy = false, unmountOnClose = false, ...props }]) {
|
|
@@ -41,6 +42,7 @@ export function useAnimatedEffects([values, { open, onClose, lazy = false, unmou
|
|
|
41
42
|
return pipe(
|
|
42
43
|
useFadeEffect, //
|
|
43
44
|
useSlideEffect,
|
|
45
|
+
useScaleEffect,
|
|
44
46
|
useApplyStyles({ transition: transitions.join(',') })
|
|
45
47
|
)([
|
|
46
48
|
{
|
|
@@ -3,6 +3,7 @@ import { useSharedValue } from 'react-native-reanimated'
|
|
|
3
3
|
import React from 'react'
|
|
4
4
|
|
|
5
5
|
import { useFadeEffect } from './fadeEffect'
|
|
6
|
+
import { useScaleEffect } from './scaleEffect'
|
|
6
7
|
import { useSlideEffect } from './slideEffect'
|
|
7
8
|
|
|
8
9
|
export function useAnimatedEffects([values, { open = true, onClose, lazy = false, unmountOnClose = false, ...props }]) {
|
|
@@ -32,7 +33,8 @@ export function useAnimatedEffects([values, { open = true, onClose, lazy = false
|
|
|
32
33
|
|
|
33
34
|
return pipe(
|
|
34
35
|
useFadeEffect, //
|
|
35
|
-
useSlideEffect
|
|
36
|
+
useSlideEffect,
|
|
37
|
+
useScaleEffect
|
|
36
38
|
)([
|
|
37
39
|
{
|
|
38
40
|
...values,
|
|
@@ -16,10 +16,12 @@ export function useFadeEffect([values, { fade, ...props }]) {
|
|
|
16
16
|
if (!fade) return
|
|
17
17
|
|
|
18
18
|
if (open) {
|
|
19
|
-
|
|
19
|
+
setOpacity(0)
|
|
20
20
|
|
|
21
21
|
requestAnimationFrame(() => {
|
|
22
|
-
|
|
22
|
+
requestAnimationFrame(() => {
|
|
23
|
+
setOpacity(1)
|
|
24
|
+
})
|
|
23
25
|
})
|
|
24
26
|
} else {
|
|
25
27
|
setOpacity(0)
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
|
|
3
|
+
const DEFAULT_EFFECT = { duration: 300, initialScale: 0 }
|
|
4
|
+
|
|
5
|
+
export function useScaleEffect([values, { scale, ...props }]) {
|
|
6
|
+
if (scale === true) scale = DEFAULT_EFFECT
|
|
7
|
+
if (!!scale) scale = { ...DEFAULT_EFFECT, ...scale }
|
|
8
|
+
const { duration, initialScale } = scale || {}
|
|
9
|
+
const { open, useRegisterEffect, useAddTransition } = values
|
|
10
|
+
const [transform, setTransform] = React.useState(`scale(${initialScale})`)
|
|
11
|
+
|
|
12
|
+
useRegisterEffect(scale)
|
|
13
|
+
useAddTransition(scale, `transform ${duration}ms ease-in-out`)
|
|
14
|
+
|
|
15
|
+
React.useEffect(() => {
|
|
16
|
+
if (!scale) return
|
|
17
|
+
|
|
18
|
+
if (open) {
|
|
19
|
+
setTransform(`scale(${initialScale})`)
|
|
20
|
+
|
|
21
|
+
requestAnimationFrame(() => {
|
|
22
|
+
requestAnimationFrame(() => {
|
|
23
|
+
setTransform('scale(1)')
|
|
24
|
+
})
|
|
25
|
+
})
|
|
26
|
+
} else {
|
|
27
|
+
setTransform(`scale(${initialScale})`)
|
|
28
|
+
}
|
|
29
|
+
}, [open])
|
|
30
|
+
|
|
31
|
+
if (!scale) return [values, props]
|
|
32
|
+
|
|
33
|
+
const style = { transform }
|
|
34
|
+
|
|
35
|
+
return [
|
|
36
|
+
values,
|
|
37
|
+
{
|
|
38
|
+
...props,
|
|
39
|
+
style: {
|
|
40
|
+
...props.style,
|
|
41
|
+
...style,
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
]
|
|
45
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { useSharedValue, withTiming, useAnimatedStyle } from 'react-native-reanimated'
|
|
2
|
+
import React from 'react'
|
|
3
|
+
|
|
4
|
+
const DEFAULT_EFFECT = { duration: 300, initialScale: 0 }
|
|
5
|
+
|
|
6
|
+
export function useScaleEffect([values, { scale, ...props }]) {
|
|
7
|
+
if (scale === true) scale = DEFAULT_EFFECT
|
|
8
|
+
if (!!scale) scale = { ...DEFAULT_EFFECT, ...scale }
|
|
9
|
+
const { duration, initialScale } = scale || {}
|
|
10
|
+
const { open, useRegisterEffect } = values
|
|
11
|
+
const scaleValue = useSharedValue(initialScale)
|
|
12
|
+
|
|
13
|
+
useRegisterEffect(scale)
|
|
14
|
+
|
|
15
|
+
React.useEffect(() => {
|
|
16
|
+
if (!scale) return
|
|
17
|
+
|
|
18
|
+
if (open) {
|
|
19
|
+
scaleValue.value = initialScale
|
|
20
|
+
scaleValue.value = withTiming(1, { duration })
|
|
21
|
+
} else {
|
|
22
|
+
scaleValue.value = withTiming(initialScale, { duration })
|
|
23
|
+
}
|
|
24
|
+
}, [open])
|
|
25
|
+
|
|
26
|
+
const animatedStyle = useAnimatedStyle(() => {
|
|
27
|
+
return { transform: [{ scale: scaleValue.value }] }
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
if (!scale) return [values, props]
|
|
31
|
+
|
|
32
|
+
return [values, { ...props, animatedStyles: [...props.animatedStyles, animatedStyle] }]
|
|
33
|
+
}
|
|
@@ -37,7 +37,9 @@ export function useSlideEffect([values, { slide, ...props }]) {
|
|
|
37
37
|
setTransform(initialValue)
|
|
38
38
|
|
|
39
39
|
requestAnimationFrame(() => {
|
|
40
|
-
|
|
40
|
+
requestAnimationFrame(() => {
|
|
41
|
+
setTransform('translateY(0)')
|
|
42
|
+
})
|
|
41
43
|
})
|
|
42
44
|
} else {
|
|
43
45
|
setTransform(initialValue)
|
|
@@ -1,16 +1,28 @@
|
|
|
1
|
+
import { is } from 'ramda'
|
|
2
|
+
|
|
1
3
|
import { clearProps } from './_helpers'
|
|
2
4
|
import { useGetColor } from '../theme/ThemeHandler'
|
|
3
5
|
|
|
4
6
|
export function useBackgroundModifier([values, props]) {
|
|
5
7
|
const getColor = useGetColor()
|
|
6
|
-
let { bg, background, backgroundColor, ...restProps } = props
|
|
8
|
+
let { bg, colors, background, backgroundColor, ...restProps } = props
|
|
9
|
+
let gradientColors = []
|
|
10
|
+
|
|
11
|
+
if (is(Array, bg) || !!colors?.length) {
|
|
12
|
+
colors = colors || bg || []
|
|
13
|
+
gradientColors = colors.map(getColor)
|
|
14
|
+
const angle = restProps.angle || 45
|
|
15
|
+
background = `linear-gradient(${angle}deg, ${gradientColors.join(', ')})`
|
|
16
|
+
} else {
|
|
17
|
+
backgroundColor = getColor(bg ?? background ?? backgroundColor)
|
|
18
|
+
}
|
|
7
19
|
|
|
8
|
-
|
|
20
|
+
const pointerEvents = props.pointerEvents
|
|
9
21
|
|
|
10
|
-
const style = clearProps({ backgroundColor })
|
|
22
|
+
const style = clearProps({ background, backgroundColor, pointerEvents })
|
|
11
23
|
|
|
12
24
|
return [
|
|
13
|
-
values,
|
|
25
|
+
{ gradientColors, ...values },
|
|
14
26
|
{
|
|
15
27
|
...restProps,
|
|
16
28
|
style: {
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { clearProps } from './_helpers'
|
|
2
|
+
|
|
3
|
+
export function useCursorModifier([values, props]) {
|
|
4
|
+
let { pointer, cursor, move, ...restProps } = props
|
|
5
|
+
|
|
6
|
+
if (pointer === true) cursor = 'pointer'
|
|
7
|
+
if (move === true) cursor = 'move'
|
|
8
|
+
|
|
9
|
+
const style = clearProps({ cursor })
|
|
10
|
+
|
|
11
|
+
return [
|
|
12
|
+
values,
|
|
13
|
+
{
|
|
14
|
+
...restProps,
|
|
15
|
+
style: {
|
|
16
|
+
...props.style,
|
|
17
|
+
...style,
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
]
|
|
21
|
+
}
|
package/src/modifiers/display.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { clearProps } from './_helpers'
|
|
2
2
|
|
|
3
3
|
export function useDisplayModifier([values, props]) {
|
|
4
|
-
let {
|
|
4
|
+
let { opacity, hidden, display, inline, block, ...restProps } = props
|
|
5
5
|
|
|
6
6
|
if (!!hidden) display = 'hidden'
|
|
7
7
|
if (!!inline) display = 'inline'
|
|
8
8
|
if (!!block) display = 'block'
|
|
9
9
|
|
|
10
|
-
const style = clearProps({ display, opacity
|
|
10
|
+
const style = clearProps({ display, opacity })
|
|
11
11
|
|
|
12
12
|
return [
|
|
13
13
|
values,
|
|
@@ -3,7 +3,7 @@ import tinycolor from 'tinycolor2'
|
|
|
3
3
|
import { getContrastColor } from '../theme/helpers/contrastColor'
|
|
4
4
|
import { useGetColor } from '../theme/ThemeHandler'
|
|
5
5
|
|
|
6
|
-
export function useFullColorModifier([{ color, ...values }, { outline, fill, ...props }]) {
|
|
6
|
+
export function useFullColorModifier([{ color, ...values }, { outline, contrastTolerance, fill, ...props }]) {
|
|
7
7
|
const getColor = useGetColor()
|
|
8
8
|
|
|
9
9
|
let bg = color
|
|
@@ -15,7 +15,7 @@ export function useFullColorModifier([{ color, ...values }, { outline, fill, ...
|
|
|
15
15
|
bg = 'transparent'
|
|
16
16
|
fontColor = color
|
|
17
17
|
} else {
|
|
18
|
-
fontColor = getContrastColor(bgObj, [getColor('
|
|
18
|
+
fontColor = getContrastColor(bgObj, [getColor('overlayBG'), getColor('text')], contrastTolerance)
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
return [
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
|
|
3
|
+
export function useHoverConverter([values, props]) {
|
|
4
|
+
const [isHover, setIsHover] = React.useState(false)
|
|
5
|
+
let { hover, onMouseEnter, onMouseLeave, ...restProps } = props
|
|
6
|
+
|
|
7
|
+
const handleMouseEnter = () => {
|
|
8
|
+
setIsHover(true)
|
|
9
|
+
onMouseEnter?.()
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const handleMouseLeave = () => {
|
|
13
|
+
setIsHover(false)
|
|
14
|
+
onMouseLeave?.()
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (!isHover) hover = {}
|
|
18
|
+
|
|
19
|
+
return [
|
|
20
|
+
{ ...values, isHover },
|
|
21
|
+
{
|
|
22
|
+
...restProps,
|
|
23
|
+
onMouseEnter: handleMouseEnter,
|
|
24
|
+
onMouseLeave: handleMouseLeave,
|
|
25
|
+
...hover,
|
|
26
|
+
},
|
|
27
|
+
]
|
|
28
|
+
}
|
|
@@ -2,14 +2,35 @@ import { Platform } from '../abstractions/Platform'
|
|
|
2
2
|
import { clearProps } from './_helpers'
|
|
3
3
|
|
|
4
4
|
export function usePositionModifier([values, props]) {
|
|
5
|
-
let {
|
|
5
|
+
let {
|
|
6
|
+
position,
|
|
7
|
+
absolute,
|
|
8
|
+
absoluteFill,
|
|
9
|
+
fixedFill,
|
|
10
|
+
relative,
|
|
11
|
+
fixed,
|
|
12
|
+
sticky,
|
|
13
|
+
top,
|
|
14
|
+
bottom,
|
|
15
|
+
left,
|
|
16
|
+
right,
|
|
17
|
+
zIndex,
|
|
18
|
+
...restProps
|
|
19
|
+
} = props
|
|
6
20
|
|
|
7
21
|
if (!zIndex && !!absolute) zIndex = 10
|
|
8
|
-
if (absolute) position = 'absolute'
|
|
22
|
+
if (absolute || absoluteFill) position = 'absolute'
|
|
9
23
|
if (relative) position = 'relative'
|
|
10
|
-
if (fixed) position = 'fixed'
|
|
24
|
+
if (fixed || fixedFill) position = 'fixed'
|
|
11
25
|
if (sticky) position = 'sticky'
|
|
12
26
|
|
|
27
|
+
if (absoluteFill || fixedFill) {
|
|
28
|
+
top = 0
|
|
29
|
+
bottom = 0
|
|
30
|
+
left = 0
|
|
31
|
+
right = 0
|
|
32
|
+
}
|
|
33
|
+
|
|
13
34
|
if (Platform.OS !== 'web' && ['fixed', 'sticky'].includes(position)) {
|
|
14
35
|
position = 'absolute'
|
|
15
36
|
}
|
package/src/modifiers/size.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Platform } from '../abstractions/Platform'
|
|
1
2
|
import { clearProps } from './_helpers'
|
|
2
3
|
import { useGetElementHeight } from '../theme/ThemeHandler'
|
|
3
4
|
|
|
@@ -38,7 +39,7 @@ export function useSizeModifier([values, props]) {
|
|
|
38
39
|
if (span) width = (span / 24) * 100 + '%'
|
|
39
40
|
|
|
40
41
|
if (fullWidth || fullW) width = '100%'
|
|
41
|
-
if (fullHeight || fullH) height = '100%'
|
|
42
|
+
if ((fullHeight || fullH) && Platform.OS === 'web') height = '100%'
|
|
42
43
|
|
|
43
44
|
let aspectRatio = ratio
|
|
44
45
|
if (!!square) aspectRatio = 1
|
package/src/modifiers/state.js
CHANGED
|
@@ -3,7 +3,7 @@ import { clearProps } from './_helpers'
|
|
|
3
3
|
export function useStateModifier([values, props]) {
|
|
4
4
|
let { disabled, loading, onClick, onPress, onChange, ...restProps } = props
|
|
5
5
|
|
|
6
|
-
let cursor =
|
|
6
|
+
let cursor = undefined
|
|
7
7
|
let opacity = props.opacity
|
|
8
8
|
|
|
9
9
|
if (!!disabled) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { is } from 'ramda'
|
|
2
2
|
import React from 'react'
|
|
3
3
|
|
|
4
|
+
import { Platform } from '../abstractions/Platform'
|
|
4
5
|
import { useBreakpoints } from '../theme/ThemeHandler'
|
|
5
6
|
import { useResponsive } from '../responsive/ResponsiveHandler'
|
|
6
7
|
|
|
@@ -10,6 +11,12 @@ export function useGetResponsiveValue() {
|
|
|
10
11
|
|
|
11
12
|
return React.useCallback(
|
|
12
13
|
(value) => {
|
|
14
|
+
const isNative = value?.native !== undefined && Platform.OS !== 'web'
|
|
15
|
+
if (isNative) return value?.native
|
|
16
|
+
|
|
17
|
+
const isWeb = value?.web !== undefined && Platform.OS === 'web'
|
|
18
|
+
if (isWeb) return value?.web
|
|
19
|
+
|
|
13
20
|
const isObj = is(Object, value)
|
|
14
21
|
|
|
15
22
|
if (!isObj) return value
|
|
@@ -53,10 +53,26 @@ export function useMergeThemeComponent(name, props) {
|
|
|
53
53
|
return mergeDeepRight(themeProps, props)
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
export function ThemeHandler({ breakpoints, themes, initTheme, children }) {
|
|
56
|
+
export function ThemeHandler({ breakpoints, themes, initTheme, onChangeTheme, children }) {
|
|
57
|
+
const [themePickerOpen, setThemePickerOpen] = React.useState(false)
|
|
58
|
+
const openThemePicker = () => setThemePickerOpen(true)
|
|
57
59
|
const [activeThemeKey, setActiveThemeKey] = React.useState(initTheme || 'light')
|
|
60
|
+
const toggleTheme = () => setActiveThemeKey(activeThemeKey === 'light' ? 'dark' : 'light')
|
|
58
61
|
const theme = useFormattedTheme(themes, activeThemeKey)
|
|
59
|
-
|
|
62
|
+
|
|
63
|
+
const value = {
|
|
64
|
+
theme,
|
|
65
|
+
themes,
|
|
66
|
+
activeThemeKey,
|
|
67
|
+
setActiveThemeKey,
|
|
68
|
+
toggleTheme,
|
|
69
|
+
themePickerOpen,
|
|
70
|
+
setThemePickerOpen,
|
|
71
|
+
onChangeTheme,
|
|
72
|
+
openThemePicker,
|
|
73
|
+
toggleTheme,
|
|
74
|
+
breakpoints: breakpoints || DEFAULT_BREAKPOINTS,
|
|
75
|
+
}
|
|
60
76
|
|
|
61
77
|
return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>
|
|
62
78
|
}
|
|
@@ -46,27 +46,27 @@ export const BASE_THEME = {
|
|
|
46
46
|
|
|
47
47
|
texts: {
|
|
48
48
|
h1: {
|
|
49
|
-
fontSize:
|
|
49
|
+
fontSize: 35,
|
|
50
50
|
strong: true,
|
|
51
51
|
},
|
|
52
52
|
h2: {
|
|
53
|
-
fontSize:
|
|
53
|
+
fontSize: 28,
|
|
54
54
|
strong: true,
|
|
55
55
|
},
|
|
56
56
|
h3: {
|
|
57
|
-
fontSize:
|
|
57
|
+
fontSize: 26,
|
|
58
58
|
strong: true,
|
|
59
59
|
},
|
|
60
60
|
h4: {
|
|
61
|
-
fontSize:
|
|
61
|
+
fontSize: 22,
|
|
62
62
|
strong: true,
|
|
63
63
|
},
|
|
64
64
|
h5: {
|
|
65
|
-
fontSize:
|
|
65
|
+
fontSize: 18,
|
|
66
66
|
strong: true,
|
|
67
67
|
},
|
|
68
68
|
h6: {
|
|
69
|
-
fontSize:
|
|
69
|
+
fontSize: 16,
|
|
70
70
|
strong: true,
|
|
71
71
|
},
|
|
72
72
|
p: { fontSize: 14 },
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { mergeDeepRight } from 'ramda'
|
|
2
|
+
|
|
3
|
+
import { BASE_THEME } from './base'
|
|
4
|
+
|
|
5
|
+
export const DEFAULT_BLACK_THEME = mergeDeepRight(BASE_THEME, {
|
|
6
|
+
label: 'Pitch Black',
|
|
7
|
+
|
|
8
|
+
colors: {
|
|
9
|
+
primary: '#818DF9',
|
|
10
|
+
text: '#FFFFFF',
|
|
11
|
+
text2: '#E0E0E0',
|
|
12
|
+
text3: '#B0B0B0',
|
|
13
|
+
text4: '#8A8A8A',
|
|
14
|
+
|
|
15
|
+
mainBG: '#0f0f0f',
|
|
16
|
+
overlayBG: '#000000',
|
|
17
|
+
backdrop: '#1f1f1f',
|
|
18
|
+
shadow: 'rgba(216, 210, 203, 0.1)',
|
|
19
|
+
divider: '#383E44',
|
|
20
|
+
|
|
21
|
+
blue: '#4DA3FF',
|
|
22
|
+
yellow: '#FFD93B',
|
|
23
|
+
green: '#4CAF50',
|
|
24
|
+
purple: '#9B59B6',
|
|
25
|
+
orange: '#FF7F50',
|
|
26
|
+
cyan: '#00BCD4',
|
|
27
|
+
red: '#E74C3C',
|
|
28
|
+
navy: '#34495E',
|
|
29
|
+
indigo: '#5C6BC0',
|
|
30
|
+
gray: '#9E9E9E',
|
|
31
|
+
brown: '#8D6E63',
|
|
32
|
+
lylac: '#B39DDB',
|
|
33
|
+
pink: '#F48FB1',
|
|
34
|
+
},
|
|
35
|
+
})
|
|
@@ -2,6 +2,8 @@ import { mergeDeepRight } from 'ramda'
|
|
|
2
2
|
import { BASE_THEME } from './base'
|
|
3
3
|
|
|
4
4
|
export const CYBERPUNK_DARK_THEME = mergeDeepRight(BASE_THEME, {
|
|
5
|
+
label: 'Cyberpunk',
|
|
6
|
+
|
|
5
7
|
colors: {
|
|
6
8
|
primary: '#FCEE09',
|
|
7
9
|
text: '#FFFFFF',
|
|
@@ -9,8 +11,9 @@ export const CYBERPUNK_DARK_THEME = mergeDeepRight(BASE_THEME, {
|
|
|
9
11
|
text3: '#8C8C8C',
|
|
10
12
|
text4: '#666666',
|
|
11
13
|
|
|
12
|
-
|
|
14
|
+
mainBG: '#14141F',
|
|
13
15
|
overlayBG: '#14141F',
|
|
16
|
+
backdrop: '#0A0A0F',
|
|
14
17
|
shadow: 'rgba(39, 45, 52, 0.6)',
|
|
15
18
|
divider: 'rgba(255,255,255, 0.2)',
|
|
16
19
|
|
|
@@ -2,6 +2,8 @@ import { mergeDeepRight } from 'ramda'
|
|
|
2
2
|
import { BASE_THEME } from './base'
|
|
3
3
|
|
|
4
4
|
export const DEFAULT_DARK_THEME = mergeDeepRight(BASE_THEME, {
|
|
5
|
+
label: 'Dark',
|
|
6
|
+
|
|
5
7
|
colors: {
|
|
6
8
|
primary: '#818DF9',
|
|
7
9
|
text: '#FFFFFF',
|
|
@@ -9,8 +11,9 @@ export const DEFAULT_DARK_THEME = mergeDeepRight(BASE_THEME, {
|
|
|
9
11
|
text3: '#B0B0B0',
|
|
10
12
|
text4: '#8A8A8A',
|
|
11
13
|
|
|
12
|
-
|
|
14
|
+
mainBG: '#383E44',
|
|
13
15
|
overlayBG: '#272D34',
|
|
16
|
+
backdrop: '#383E44',
|
|
14
17
|
shadow: 'rgba(216, 210, 203, 0.1)',
|
|
15
18
|
divider: '#383E44',
|
|
16
19
|
|
|
@@ -2,15 +2,18 @@ import { mergeDeepRight } from 'ramda'
|
|
|
2
2
|
import { BASE_THEME } from './base'
|
|
3
3
|
|
|
4
4
|
export const DEEP_WOODS_DARK_THEME = mergeDeepRight(BASE_THEME, {
|
|
5
|
+
label: 'Deep Woods',
|
|
6
|
+
|
|
5
7
|
colors: {
|
|
6
8
|
primary: '#4CAF50',
|
|
7
|
-
text: '#
|
|
9
|
+
text: '#C8E6C9',
|
|
8
10
|
text2: '#C8E6C9',
|
|
9
11
|
text3: '#A5D6A7',
|
|
10
12
|
text4: '#81C784',
|
|
11
13
|
|
|
12
|
-
|
|
14
|
+
mainBG: '#0D1B14',
|
|
13
15
|
overlayBG: '#16281F',
|
|
16
|
+
backdrop: '#0D1B14',
|
|
14
17
|
shadow: 'rgba(39, 45, 52, 0.6)',
|
|
15
18
|
divider: 'rgba(255,255,255, 0.2)',
|
|
16
19
|
|