@utilitywarehouse/hearth-react-native 0.30.4 → 0.31.1
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/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-lint.log +15 -18
- package/CHANGELOG.md +165 -0
- package/build/components/Badge/Badge.js +2 -2
- package/build/components/Badge/Badge.props.d.ts +1 -0
- package/build/components/Badge/BadgeText.d.ts +1 -1
- package/build/components/Badge/BadgeText.js +2 -2
- package/build/components/Container/Container.props.d.ts +2 -2
- package/build/components/ExpandableCard/ExpandableCard.d.ts +1 -1
- package/build/components/ExpandableCard/ExpandableCard.js +13 -2
- package/build/components/ExpandableCard/ExpandableCard.props.d.ts +43 -23
- package/build/components/ExpandableCard/ExpandableCardText.js +1 -1
- package/build/components/ExpandableCard/ExpandableCardTrigger.d.ts +3 -3
- package/build/components/ExpandableCard/ExpandableCardTrigger.props.d.ts +31 -6
- package/build/components/ExpandableCard/ExpandableCardTriggerRoot.d.ts +1 -1
- package/build/components/ExpandableCard/ExpandableCardTriggerRoot.js +13 -2
- package/build/components/Flex/Flex.props.d.ts +2 -2
- package/build/components/FormField/FormField.d.ts +5 -5
- package/build/components/FormField/FormField.js +3 -2
- package/build/components/Modal/Modal.d.ts +1 -1
- package/build/components/Modal/Modal.js +33 -39
- package/build/components/Modal/Modal.props.d.ts +8 -3
- package/build/components/Modal/Modal.shared.types.d.ts +19 -4
- package/build/components/Modal/Modal.web.d.ts +1 -1
- package/build/components/Modal/Modal.web.js +6 -3
- package/build/components/NavModal/NavModal.d.ts +1 -1
- package/build/components/NavModal/NavModal.js +10 -7
- package/build/components/NavModal/NavModal.props.d.ts +4 -3
- package/build/components/Table/TableHeaderCell.js +10 -1
- package/build/components/Textarea/Textarea.d.ts +1 -1
- package/build/components/Textarea/Textarea.js +64 -5
- package/build/components/Textarea/Textarea.props.d.ts +10 -0
- package/build/components/Textarea/TextareaRoot.js +4 -1
- package/build/core/themes.d.ts +92 -88
- package/build/tokens/color.d.ts +82 -80
- package/build/tokens/color.js +41 -40
- package/build/tokens/components/dark/alert.d.ts +6 -6
- package/build/tokens/components/dark/alert.js +6 -6
- package/build/tokens/components/dark/bottom-navigation.d.ts +2 -2
- package/build/tokens/components/dark/bottom-navigation.js +2 -2
- package/build/tokens/components/dark/checkbox.d.ts +1 -1
- package/build/tokens/components/dark/checkbox.js +1 -1
- package/build/tokens/components/dark/icon-button.d.ts +3 -3
- package/build/tokens/components/dark/icon-button.js +3 -3
- package/build/tokens/components/dark/inline-link.d.ts +1 -1
- package/build/tokens/components/dark/inline-link.js +1 -1
- package/build/tokens/components/dark/link.d.ts +3 -3
- package/build/tokens/components/dark/link.js +3 -3
- package/build/tokens/components/dark/navigation.d.ts +2 -2
- package/build/tokens/components/dark/navigation.js +2 -2
- package/build/tokens/components/dark/parts.d.ts +2 -2
- package/build/tokens/components/dark/parts.js +2 -2
- package/build/tokens/components/dark/progress-bar.d.ts +3 -3
- package/build/tokens/components/dark/progress-bar.js +3 -3
- package/build/tokens/components/dark/progress-stepper.d.ts +1 -1
- package/build/tokens/components/dark/progress-stepper.js +1 -1
- package/build/tokens/components/dark/spinner.d.ts +1 -1
- package/build/tokens/components/dark/spinner.js +1 -1
- package/build/tokens/components/dark/table.d.ts +2 -0
- package/build/tokens/components/dark/table.js +2 -0
- package/build/tokens/components/dark/time-picker.d.ts +1 -0
- package/build/tokens/components/dark/time-picker.js +1 -0
- package/build/tokens/components/light/parts.d.ts +3 -3
- package/build/tokens/components/light/parts.js +3 -3
- package/build/tokens/components/light/table.d.ts +2 -0
- package/build/tokens/components/light/table.js +2 -0
- package/build/tokens/components/light/time-picker.d.ts +1 -0
- package/build/tokens/components/light/time-picker.js +1 -0
- package/build/tokens/semantic-dark.d.ts +40 -40
- package/build/tokens/semantic-dark.js +40 -40
- package/docs/changelog.mdx +170 -0
- package/package.json +3 -3
- package/src/components/Badge/Badge.props.ts +1 -0
- package/src/components/Badge/Badge.tsx +6 -1
- package/src/components/Badge/BadgeText.tsx +8 -2
- package/src/components/Container/Container.props.ts +10 -1
- package/src/components/ExpandableCard/ExpandableCard.docs.mdx +89 -37
- package/src/components/ExpandableCard/ExpandableCard.props.ts +51 -27
- package/src/components/ExpandableCard/ExpandableCard.stories.tsx +67 -17
- package/src/components/ExpandableCard/ExpandableCard.tsx +15 -7
- package/src/components/ExpandableCard/ExpandableCardText.tsx +1 -1
- package/src/components/ExpandableCard/ExpandableCardTrigger.props.ts +37 -7
- package/src/components/ExpandableCard/ExpandableCardTriggerRoot.tsx +36 -2
- package/src/components/Flex/Flex.props.ts +16 -2
- package/src/components/FormField/FormField.tsx +2 -1
- package/src/components/List/List.stories.tsx +35 -0
- package/src/components/Modal/Modal.docs.mdx +52 -1
- package/src/components/Modal/Modal.props.ts +21 -6
- package/src/components/Modal/Modal.shared.types.ts +23 -4
- package/src/components/Modal/Modal.stories.tsx +165 -1
- package/src/components/Modal/Modal.tsx +101 -81
- package/src/components/Modal/Modal.web.tsx +29 -23
- package/src/components/NavModal/NavModal.docs.mdx +29 -0
- package/src/components/NavModal/NavModal.props.ts +11 -3
- package/src/components/NavModal/NavModal.stories.tsx +29 -0
- package/src/components/NavModal/NavModal.tsx +39 -33
- package/src/components/Table/TableHeaderCell.tsx +10 -1
- package/src/components/Textarea/Textarea.docs.mdx +33 -1
- package/src/components/Textarea/Textarea.props.ts +11 -2
- package/src/components/Textarea/Textarea.stories.tsx +21 -1
- package/src/components/Textarea/Textarea.tsx +107 -3
- package/src/components/Textarea/TextareaRoot.tsx +6 -2
- package/src/tokens/color.ts +41 -40
- package/src/tokens/components/dark/alert.ts +6 -6
- package/src/tokens/components/dark/bottom-navigation.ts +2 -2
- package/src/tokens/components/dark/checkbox.ts +1 -1
- package/src/tokens/components/dark/icon-button.ts +3 -3
- package/src/tokens/components/dark/inline-link.ts +1 -1
- package/src/tokens/components/dark/link.ts +3 -3
- package/src/tokens/components/dark/navigation.ts +2 -2
- package/src/tokens/components/dark/parts.ts +2 -2
- package/src/tokens/components/dark/progress-bar.ts +3 -3
- package/src/tokens/components/dark/progress-stepper.ts +1 -1
- package/src/tokens/components/dark/spinner.ts +1 -1
- package/src/tokens/components/dark/table.ts +2 -0
- package/src/tokens/components/dark/time-picker.ts +1 -0
- package/src/tokens/components/light/parts.ts +3 -3
- package/src/tokens/components/light/table.ts +2 -0
- package/src/tokens/components/light/time-picker.ts +1 -0
- package/src/tokens/semantic-dark.ts +40 -40
- package/vercel.json +0 -21
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import type { TextInputProps, ViewProps } from 'react-native';
|
|
2
2
|
|
|
3
3
|
export interface TextareaBaseProps {
|
|
4
|
+
/**
|
|
5
|
+
* If true, the textarea can be resized vertically using a drag handle.
|
|
6
|
+
*
|
|
7
|
+
* @type boolean
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* <Textarea resizable />
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
resizable?: boolean;
|
|
4
14
|
/**
|
|
5
15
|
* If true, the textarea will be disabled.
|
|
6
16
|
*
|
|
@@ -37,8 +47,7 @@ export interface TextareaBaseProps {
|
|
|
37
47
|
export interface TextareaWithChildrenProps extends TextareaBaseProps, ViewProps {}
|
|
38
48
|
|
|
39
49
|
export interface TextareaWithoutChildrenProps
|
|
40
|
-
extends TextareaBaseProps,
|
|
41
|
-
Omit<TextInputProps, 'children'> {
|
|
50
|
+
extends TextareaBaseProps, Omit<TextInputProps, 'children'> {
|
|
42
51
|
children?: never;
|
|
43
52
|
}
|
|
44
53
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Meta, StoryObj } from '@storybook/react-
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react-native';
|
|
2
2
|
import { Textarea } from '.';
|
|
3
3
|
|
|
4
4
|
const meta = {
|
|
@@ -56,6 +56,16 @@ const meta = {
|
|
|
56
56
|
description: 'Focus the Textarea component',
|
|
57
57
|
defaultValue: false,
|
|
58
58
|
},
|
|
59
|
+
required: {
|
|
60
|
+
control: 'boolean',
|
|
61
|
+
description: 'Whether the Textarea component is required',
|
|
62
|
+
defaultValue: true,
|
|
63
|
+
},
|
|
64
|
+
resizable: {
|
|
65
|
+
control: 'boolean',
|
|
66
|
+
description: 'Enables a drag handle to resize the Textarea vertically',
|
|
67
|
+
defaultValue: false,
|
|
68
|
+
},
|
|
59
69
|
},
|
|
60
70
|
args: {
|
|
61
71
|
placeholder: 'Textarea placeholder',
|
|
@@ -63,6 +73,7 @@ const meta = {
|
|
|
63
73
|
disabled: false,
|
|
64
74
|
readonly: false,
|
|
65
75
|
focused: false,
|
|
76
|
+
resizable: false,
|
|
66
77
|
},
|
|
67
78
|
} satisfies Meta<typeof Textarea>;
|
|
68
79
|
|
|
@@ -70,3 +81,12 @@ export default meta;
|
|
|
70
81
|
type Story = StoryObj<typeof meta>;
|
|
71
82
|
|
|
72
83
|
export const Playground: Story = {};
|
|
84
|
+
|
|
85
|
+
export const Resizable: Story = {
|
|
86
|
+
args: {
|
|
87
|
+
label: 'Notes',
|
|
88
|
+
helperText: 'Drag the bottom-right handle to resize',
|
|
89
|
+
placeholder: 'Add more detail here...',
|
|
90
|
+
resizable: true,
|
|
91
|
+
},
|
|
92
|
+
};
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
import { createTextarea } from '@gluestack-ui/textarea';
|
|
2
2
|
import type TextareaProps from './Textarea.props';
|
|
3
3
|
|
|
4
|
-
import { useEffect } from 'react';
|
|
4
|
+
import { useEffect, useMemo, useRef } from 'react';
|
|
5
|
+
import {
|
|
6
|
+
View,
|
|
7
|
+
type LayoutChangeEvent,
|
|
8
|
+
type StyleProp,
|
|
9
|
+
type TextStyle,
|
|
10
|
+
type ViewStyle,
|
|
11
|
+
} from 'react-native';
|
|
12
|
+
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
|
|
13
|
+
import { useAnimatedStyle, useSharedValue } from 'react-native-reanimated';
|
|
14
|
+
import { Path, Svg } from 'react-native-svg';
|
|
15
|
+
import { StyleSheet } from 'react-native-unistyles';
|
|
16
|
+
import { useTheme } from '../../hooks';
|
|
5
17
|
import { FormField, useFormFieldContext } from '../FormField';
|
|
6
18
|
import TextareaFieldComponent from './TextareaField';
|
|
7
19
|
import TextareaRoot from './TextareaRoot';
|
|
@@ -13,9 +25,14 @@ export const TextareaComponent = createTextarea({
|
|
|
13
25
|
|
|
14
26
|
export const TextareaField = TextareaComponent.Input;
|
|
15
27
|
|
|
28
|
+
const DEFAULT_TEXTAREA_HEIGHT = 96;
|
|
29
|
+
const RESIZE_HANDLE_TOUCH_SIZE = 28;
|
|
30
|
+
const RESIZE_HANDLE_ICON_SIZE = 9;
|
|
31
|
+
|
|
16
32
|
const Textarea = ({
|
|
17
33
|
validationStatus = 'initial',
|
|
18
34
|
children,
|
|
35
|
+
resizable = false,
|
|
19
36
|
disabled,
|
|
20
37
|
focused,
|
|
21
38
|
readonly,
|
|
@@ -26,9 +43,11 @@ const Textarea = ({
|
|
|
26
43
|
invalidText,
|
|
27
44
|
required,
|
|
28
45
|
helperIcon,
|
|
46
|
+
onLayout,
|
|
29
47
|
...props
|
|
30
48
|
}: TextareaProps) => {
|
|
31
49
|
const formFieldContext = useFormFieldContext();
|
|
50
|
+
const hasMeasuredHeight = useRef(false);
|
|
32
51
|
const textareaLabel = label ?? formFieldContext?.label;
|
|
33
52
|
const textareaHelperText = helperText ?? formFieldContext?.helperText;
|
|
34
53
|
const textareaValidText = validText ?? formFieldContext?.validText;
|
|
@@ -37,12 +56,15 @@ const Textarea = ({
|
|
|
37
56
|
const textareaDisabled = disabled ?? formFieldContext?.disabled;
|
|
38
57
|
const textareaReadonly = readonly ?? formFieldContext?.readonly;
|
|
39
58
|
const textareaValidationStatus = formFieldContext?.validationStatus ?? validationStatus;
|
|
59
|
+
const textareaHeight = useSharedValue(DEFAULT_TEXTAREA_HEIGHT);
|
|
60
|
+
const resizeStartHeight = useSharedValue(DEFAULT_TEXTAREA_HEIGHT);
|
|
61
|
+
const theme = useTheme();
|
|
40
62
|
|
|
41
63
|
useEffect(() => {
|
|
42
64
|
if (formFieldContext?.setShouldHandleAccessibility) {
|
|
43
65
|
formFieldContext.setShouldHandleAccessibility(true);
|
|
44
66
|
}
|
|
45
|
-
}, []);
|
|
67
|
+
}, [formFieldContext]);
|
|
46
68
|
|
|
47
69
|
const getAccessibilityLabel = () => {
|
|
48
70
|
let accessibilityLabel = '';
|
|
@@ -75,6 +97,47 @@ const Textarea = ({
|
|
|
75
97
|
return accessibilityHint || props.accessibilityHint;
|
|
76
98
|
};
|
|
77
99
|
|
|
100
|
+
const handleTextareaLayout = (event: LayoutChangeEvent) => {
|
|
101
|
+
if (!hasMeasuredHeight.current) {
|
|
102
|
+
textareaHeight.value = event.nativeEvent.layout.height;
|
|
103
|
+
resizeStartHeight.value = event.nativeEvent.layout.height;
|
|
104
|
+
hasMeasuredHeight.current = true;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
if (children) {
|
|
108
|
+
onLayout?.(event);
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
const resizeGesture = useMemo(
|
|
113
|
+
() =>
|
|
114
|
+
Gesture.Pan()
|
|
115
|
+
.enabled(resizable && !textareaDisabled)
|
|
116
|
+
.onBegin(() => {
|
|
117
|
+
resizeStartHeight.value = textareaHeight.value;
|
|
118
|
+
})
|
|
119
|
+
.onUpdate(event => {
|
|
120
|
+
const nextHeight =
|
|
121
|
+
resizeStartHeight.value + event.translationY + event.translationX * 0.35;
|
|
122
|
+
|
|
123
|
+
textareaHeight.value = Math.max(DEFAULT_TEXTAREA_HEIGHT, nextHeight);
|
|
124
|
+
}),
|
|
125
|
+
[resizable, resizeStartHeight, textareaDisabled, textareaHeight]
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
const animatedHeightStyle = useAnimatedStyle(
|
|
129
|
+
() => ({
|
|
130
|
+
height: textareaHeight.value,
|
|
131
|
+
}),
|
|
132
|
+
[textareaHeight]
|
|
133
|
+
);
|
|
134
|
+
|
|
135
|
+
const rootStyle = (children ? props.style : undefined) as StyleProp<ViewStyle>;
|
|
136
|
+
const inputStyle = (!children ? props.style : undefined) as StyleProp<TextStyle>;
|
|
137
|
+
const textareaStyle = (
|
|
138
|
+
resizable ? [rootStyle, animatedHeightStyle] : rootStyle
|
|
139
|
+
) as StyleProp<ViewStyle>;
|
|
140
|
+
|
|
78
141
|
return (
|
|
79
142
|
<FormField
|
|
80
143
|
label={label}
|
|
@@ -91,6 +154,8 @@ const Textarea = ({
|
|
|
91
154
|
>
|
|
92
155
|
<TextareaComponent
|
|
93
156
|
{...(children ? props : {})}
|
|
157
|
+
onLayout={handleTextareaLayout}
|
|
158
|
+
style={textareaStyle}
|
|
94
159
|
validationStatus={textareaValidationStatus}
|
|
95
160
|
isInvalid={textareaValidationStatus === 'invalid'}
|
|
96
161
|
isReadOnly={textareaReadonly}
|
|
@@ -104,12 +169,51 @@ const Textarea = ({
|
|
|
104
169
|
<>{children}</>
|
|
105
170
|
) : (
|
|
106
171
|
<>
|
|
107
|
-
<TextareaField {...props} />
|
|
172
|
+
<TextareaField {...props} onLayout={onLayout} style={[styles.textarea, inputStyle]} />
|
|
108
173
|
</>
|
|
109
174
|
)}
|
|
175
|
+
{resizable && !textareaDisabled ? (
|
|
176
|
+
<GestureDetector gesture={resizeGesture}>
|
|
177
|
+
<View style={styles.resizeHandle}>
|
|
178
|
+
<Svg
|
|
179
|
+
width={RESIZE_HANDLE_ICON_SIZE}
|
|
180
|
+
height={RESIZE_HANDLE_ICON_SIZE}
|
|
181
|
+
viewBox="0 0 9 9"
|
|
182
|
+
fill="none"
|
|
183
|
+
>
|
|
184
|
+
<Path
|
|
185
|
+
d="M0.353516 8.35355L8.35352 0.353546M4.35352 8.35355L8.35352 4.35355"
|
|
186
|
+
stroke={theme.color.icon.primary}
|
|
187
|
+
/>
|
|
188
|
+
</Svg>
|
|
189
|
+
</View>
|
|
190
|
+
</GestureDetector>
|
|
191
|
+
) : null}
|
|
110
192
|
</TextareaComponent>
|
|
111
193
|
</FormField>
|
|
112
194
|
);
|
|
113
195
|
};
|
|
114
196
|
|
|
197
|
+
const styles = StyleSheet.create({
|
|
198
|
+
textarea: {
|
|
199
|
+
padding: 0,
|
|
200
|
+
_web: {
|
|
201
|
+
outlineStyle: 'none',
|
|
202
|
+
_focusVisible: {
|
|
203
|
+
outlineStyle: 'none',
|
|
204
|
+
},
|
|
205
|
+
},
|
|
206
|
+
},
|
|
207
|
+
resizeHandle: {
|
|
208
|
+
position: 'absolute',
|
|
209
|
+
right: 0,
|
|
210
|
+
bottom: 0,
|
|
211
|
+
width: RESIZE_HANDLE_TOUCH_SIZE,
|
|
212
|
+
height: RESIZE_HANDLE_TOUCH_SIZE,
|
|
213
|
+
alignItems: 'center',
|
|
214
|
+
justifyContent: 'center',
|
|
215
|
+
zIndex: 1,
|
|
216
|
+
},
|
|
217
|
+
});
|
|
218
|
+
|
|
115
219
|
export default Textarea;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { useMemo } from 'react';
|
|
2
2
|
import { View } from 'react-native';
|
|
3
|
+
import Animated from 'react-native-reanimated';
|
|
3
4
|
import { StyleSheet } from 'react-native-unistyles';
|
|
4
5
|
import { TextareaContext } from './Textarea.context';
|
|
5
6
|
import InputProps from './Textarea.props';
|
|
6
7
|
|
|
8
|
+
const AnimatedView = Animated.createAnimatedComponent(View);
|
|
9
|
+
|
|
7
10
|
const TextareaRoot = ({
|
|
8
11
|
children,
|
|
9
12
|
style,
|
|
@@ -21,9 +24,9 @@ const TextareaRoot = ({
|
|
|
21
24
|
|
|
22
25
|
return (
|
|
23
26
|
<TextareaContext.Provider value={value}>
|
|
24
|
-
<
|
|
27
|
+
<AnimatedView {...props} style={[styles.container, style]}>
|
|
25
28
|
{children}
|
|
26
|
-
</
|
|
29
|
+
</AnimatedView>
|
|
27
30
|
</TextareaContext.Provider>
|
|
28
31
|
);
|
|
29
32
|
};
|
|
@@ -35,6 +38,7 @@ const styles = StyleSheet.create(theme => ({
|
|
|
35
38
|
borderColor: theme.color.border.strong,
|
|
36
39
|
height: theme.components.input.textArea.height,
|
|
37
40
|
borderRadius: theme.components.input.borderRadius,
|
|
41
|
+
position: 'relative',
|
|
38
42
|
flexDirection: 'row',
|
|
39
43
|
overflow: 'hidden',
|
|
40
44
|
alignContent: 'center',
|
package/src/tokens/color.ts
CHANGED
|
@@ -94,6 +94,7 @@ export const grey = {
|
|
|
94
94
|
'700': '#4c4c4c',
|
|
95
95
|
'800': '#3f3f3f',
|
|
96
96
|
'900': '#3a3837',
|
|
97
|
+
'925': '#2f2d2d',
|
|
97
98
|
'950': '#232323',
|
|
98
99
|
'975': '#191919',
|
|
99
100
|
'1000': '#101010',
|
|
@@ -480,25 +481,25 @@ export const light = {
|
|
|
480
481
|
|
|
481
482
|
export const dark = {
|
|
482
483
|
background: {
|
|
483
|
-
brand: '#
|
|
484
|
+
brand: '#442484',
|
|
484
485
|
loading: '#30302c',
|
|
485
486
|
primary: '#191917',
|
|
486
|
-
secondary: '#
|
|
487
|
+
secondary: '#2f2d2d',
|
|
487
488
|
},
|
|
488
489
|
border: {
|
|
489
|
-
strong: '#
|
|
490
|
-
subtle: '#
|
|
490
|
+
strong: '#888888',
|
|
491
|
+
subtle: '#5b5b5b',
|
|
491
492
|
},
|
|
492
493
|
feedback: {
|
|
493
494
|
danger: {
|
|
494
|
-
border: '#
|
|
495
|
+
border: '#f4412a',
|
|
495
496
|
foreground: {
|
|
496
|
-
default: '#
|
|
497
|
+
default: '#ffffff',
|
|
497
498
|
subtle: '#ff7964',
|
|
498
499
|
},
|
|
499
500
|
surface: {
|
|
500
|
-
default: '#
|
|
501
|
-
subtle: '#
|
|
501
|
+
default: '#de2612',
|
|
502
|
+
subtle: '#6b1f1a',
|
|
502
503
|
},
|
|
503
504
|
},
|
|
504
505
|
functional: {
|
|
@@ -513,36 +514,36 @@ export const dark = {
|
|
|
513
514
|
},
|
|
514
515
|
},
|
|
515
516
|
info: {
|
|
516
|
-
border: '#
|
|
517
|
+
border: '#2786f1',
|
|
517
518
|
foreground: {
|
|
518
|
-
default: '#
|
|
519
|
+
default: '#ffffff',
|
|
519
520
|
subtle: '#6bb0ff',
|
|
520
521
|
},
|
|
521
522
|
surface: {
|
|
522
|
-
default: '#
|
|
523
|
-
subtle: '#
|
|
523
|
+
default: '#1c6cd4',
|
|
524
|
+
subtle: '#0b3375',
|
|
524
525
|
},
|
|
525
526
|
},
|
|
526
527
|
positive: {
|
|
527
|
-
border: '#
|
|
528
|
+
border: '#19a660',
|
|
528
529
|
foreground: {
|
|
529
|
-
default: '#
|
|
530
|
+
default: '#ffffff',
|
|
530
531
|
subtle: '#58ca93',
|
|
531
532
|
},
|
|
532
533
|
surface: {
|
|
533
|
-
default: '#
|
|
534
|
-
subtle: '#
|
|
534
|
+
default: '#0f834a',
|
|
535
|
+
subtle: '#074b2a',
|
|
535
536
|
},
|
|
536
537
|
},
|
|
537
538
|
warning: {
|
|
538
|
-
border: '#
|
|
539
|
+
border: '#f56e00',
|
|
539
540
|
foreground: {
|
|
540
|
-
default: '#
|
|
541
|
+
default: '#ffffff',
|
|
541
542
|
subtle: '#ff9639',
|
|
542
543
|
},
|
|
543
544
|
surface: {
|
|
544
|
-
default: '#
|
|
545
|
-
subtle: '#
|
|
545
|
+
default: '#cf5d00',
|
|
546
|
+
subtle: '#893900',
|
|
546
547
|
},
|
|
547
548
|
},
|
|
548
549
|
},
|
|
@@ -585,9 +586,9 @@ export const dark = {
|
|
|
585
586
|
},
|
|
586
587
|
surface: {
|
|
587
588
|
strong: {
|
|
588
|
-
active: '#
|
|
589
|
-
default: '#
|
|
590
|
-
hover: '#
|
|
589
|
+
active: '#ddd5eb',
|
|
590
|
+
default: '#af90de',
|
|
591
|
+
hover: '#c6b5e2',
|
|
591
592
|
},
|
|
592
593
|
},
|
|
593
594
|
},
|
|
@@ -670,52 +671,52 @@ export const dark = {
|
|
|
670
671
|
},
|
|
671
672
|
},
|
|
672
673
|
shadow: {
|
|
673
|
-
brand: '#
|
|
674
|
-
broadband: '#
|
|
675
|
-
cashback: '#
|
|
676
|
-
default: '#
|
|
677
|
-
energy: '#
|
|
678
|
-
insurance: '#
|
|
679
|
-
mobile: '#
|
|
680
|
-
pig: '#
|
|
674
|
+
brand: '#442484',
|
|
675
|
+
broadband: '#4f6b20',
|
|
676
|
+
cashback: '#7429b5',
|
|
677
|
+
default: '#3f3f3f',
|
|
678
|
+
energy: '#2c6370',
|
|
679
|
+
insurance: '#7f4518',
|
|
680
|
+
mobile: '#8a3260',
|
|
681
|
+
pig: '#7a1f7e',
|
|
681
682
|
},
|
|
682
683
|
surface: {
|
|
683
684
|
brand: {
|
|
684
|
-
default: '#
|
|
685
|
+
default: '#af90de',
|
|
685
686
|
strong: '#26164f',
|
|
686
687
|
subtle: '#442484',
|
|
687
688
|
},
|
|
688
689
|
broadband: {
|
|
689
690
|
default: '#506c21',
|
|
690
|
-
subtle: '#
|
|
691
|
+
subtle: '#4f6b20',
|
|
691
692
|
},
|
|
692
693
|
cashback: {
|
|
693
694
|
default: '#8b2bc9',
|
|
694
|
-
subtle: '#
|
|
695
|
+
subtle: '#7429b5',
|
|
695
696
|
},
|
|
696
697
|
energy: {
|
|
697
698
|
default: '#326e7a',
|
|
698
|
-
subtle: '#
|
|
699
|
+
subtle: '#2c6370',
|
|
699
700
|
},
|
|
700
701
|
highlight: {
|
|
701
702
|
default: '#ffb921',
|
|
702
|
-
subtle: '#
|
|
703
|
+
subtle: '#82692b',
|
|
703
704
|
},
|
|
704
705
|
insurance: {
|
|
705
706
|
default: '#9b4c0e',
|
|
706
|
-
subtle: '#
|
|
707
|
+
subtle: '#7f4518',
|
|
707
708
|
},
|
|
708
709
|
mobile: {
|
|
709
710
|
default: '#a7266d',
|
|
710
|
-
subtle: '#
|
|
711
|
+
subtle: '#8a3260',
|
|
711
712
|
},
|
|
712
713
|
neutral: {
|
|
713
|
-
strong: '#
|
|
714
|
+
strong: '#2f2d2d',
|
|
714
715
|
subtle: '#191917',
|
|
715
716
|
},
|
|
716
717
|
pig: {
|
|
717
718
|
default: '#8f358f',
|
|
718
|
-
subtle: '#
|
|
719
|
+
subtle: '#7a1f7e',
|
|
719
720
|
},
|
|
720
721
|
},
|
|
721
722
|
text: {
|
|
@@ -10,15 +10,15 @@ export default {
|
|
|
10
10
|
gap: 8,
|
|
11
11
|
iconButton: {
|
|
12
12
|
unstyled: {
|
|
13
|
-
foregroundColor: '#
|
|
14
|
-
foregroundColorActive: '#
|
|
15
|
-
foregroundColorHover: '#
|
|
13
|
+
foregroundColor: '#ebebeb',
|
|
14
|
+
foregroundColorActive: '#b2afae',
|
|
15
|
+
foregroundColorHover: '#d3d3d3',
|
|
16
16
|
},
|
|
17
17
|
},
|
|
18
18
|
link: {
|
|
19
|
-
color: '#
|
|
20
|
-
colorActive: '#
|
|
21
|
-
colorHover: '#
|
|
19
|
+
color: '#ebebeb',
|
|
20
|
+
colorActive: '#b2afae',
|
|
21
|
+
colorHover: '#d3d3d3',
|
|
22
22
|
},
|
|
23
23
|
padding: 14,
|
|
24
24
|
} as const;
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
export default {
|
|
6
6
|
iconButton: {
|
|
7
7
|
unstyled: {
|
|
8
|
-
foregroundColor: '#
|
|
9
|
-
foregroundColorActive: '#
|
|
10
|
-
foregroundColorHover: '#
|
|
8
|
+
foregroundColor: '#ebebeb',
|
|
9
|
+
foregroundColorActive: '#b2afae',
|
|
10
|
+
foregroundColorHover: '#d3d3d3',
|
|
11
11
|
},
|
|
12
12
|
},
|
|
13
13
|
borderRadius: 8,
|
|
@@ -7,12 +7,12 @@ export default {
|
|
|
7
7
|
borderRadiusNone: 0,
|
|
8
8
|
borderRadiusRounded: 4,
|
|
9
9
|
},
|
|
10
|
-
borderBottom: '#
|
|
10
|
+
borderBottom: '#996cda',
|
|
11
11
|
borderRadius: 6,
|
|
12
12
|
desktop: {
|
|
13
13
|
height: 88,
|
|
14
14
|
},
|
|
15
|
-
dividerBorderColor: '#
|
|
15
|
+
dividerBorderColor: '#996cda',
|
|
16
16
|
gap: 4,
|
|
17
17
|
mobile: {
|
|
18
18
|
height: 64,
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
export default {
|
|
6
6
|
homeIndicator: {
|
|
7
|
-
foregroundColor: '#
|
|
7
|
+
foregroundColor: '#101010',
|
|
8
8
|
foregroundColorInverted: '#ffffff',
|
|
9
9
|
},
|
|
10
10
|
modalStack: {
|
|
@@ -26,8 +26,8 @@ export default {
|
|
|
26
26
|
borderRadius: 9999,
|
|
27
27
|
},
|
|
28
28
|
statusBar: {
|
|
29
|
-
foregroundColor: '#
|
|
29
|
+
foregroundColor: '#101010',
|
|
30
30
|
foregroundColorInverted: '#ffffff',
|
|
31
|
-
notch: '#
|
|
31
|
+
notch: '#101010',
|
|
32
32
|
},
|
|
33
33
|
} as const;
|