@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.
Files changed (121) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-lint.log +15 -18
  3. package/CHANGELOG.md +165 -0
  4. package/build/components/Badge/Badge.js +2 -2
  5. package/build/components/Badge/Badge.props.d.ts +1 -0
  6. package/build/components/Badge/BadgeText.d.ts +1 -1
  7. package/build/components/Badge/BadgeText.js +2 -2
  8. package/build/components/Container/Container.props.d.ts +2 -2
  9. package/build/components/ExpandableCard/ExpandableCard.d.ts +1 -1
  10. package/build/components/ExpandableCard/ExpandableCard.js +13 -2
  11. package/build/components/ExpandableCard/ExpandableCard.props.d.ts +43 -23
  12. package/build/components/ExpandableCard/ExpandableCardText.js +1 -1
  13. package/build/components/ExpandableCard/ExpandableCardTrigger.d.ts +3 -3
  14. package/build/components/ExpandableCard/ExpandableCardTrigger.props.d.ts +31 -6
  15. package/build/components/ExpandableCard/ExpandableCardTriggerRoot.d.ts +1 -1
  16. package/build/components/ExpandableCard/ExpandableCardTriggerRoot.js +13 -2
  17. package/build/components/Flex/Flex.props.d.ts +2 -2
  18. package/build/components/FormField/FormField.d.ts +5 -5
  19. package/build/components/FormField/FormField.js +3 -2
  20. package/build/components/Modal/Modal.d.ts +1 -1
  21. package/build/components/Modal/Modal.js +33 -39
  22. package/build/components/Modal/Modal.props.d.ts +8 -3
  23. package/build/components/Modal/Modal.shared.types.d.ts +19 -4
  24. package/build/components/Modal/Modal.web.d.ts +1 -1
  25. package/build/components/Modal/Modal.web.js +6 -3
  26. package/build/components/NavModal/NavModal.d.ts +1 -1
  27. package/build/components/NavModal/NavModal.js +10 -7
  28. package/build/components/NavModal/NavModal.props.d.ts +4 -3
  29. package/build/components/Table/TableHeaderCell.js +10 -1
  30. package/build/components/Textarea/Textarea.d.ts +1 -1
  31. package/build/components/Textarea/Textarea.js +64 -5
  32. package/build/components/Textarea/Textarea.props.d.ts +10 -0
  33. package/build/components/Textarea/TextareaRoot.js +4 -1
  34. package/build/core/themes.d.ts +92 -88
  35. package/build/tokens/color.d.ts +82 -80
  36. package/build/tokens/color.js +41 -40
  37. package/build/tokens/components/dark/alert.d.ts +6 -6
  38. package/build/tokens/components/dark/alert.js +6 -6
  39. package/build/tokens/components/dark/bottom-navigation.d.ts +2 -2
  40. package/build/tokens/components/dark/bottom-navigation.js +2 -2
  41. package/build/tokens/components/dark/checkbox.d.ts +1 -1
  42. package/build/tokens/components/dark/checkbox.js +1 -1
  43. package/build/tokens/components/dark/icon-button.d.ts +3 -3
  44. package/build/tokens/components/dark/icon-button.js +3 -3
  45. package/build/tokens/components/dark/inline-link.d.ts +1 -1
  46. package/build/tokens/components/dark/inline-link.js +1 -1
  47. package/build/tokens/components/dark/link.d.ts +3 -3
  48. package/build/tokens/components/dark/link.js +3 -3
  49. package/build/tokens/components/dark/navigation.d.ts +2 -2
  50. package/build/tokens/components/dark/navigation.js +2 -2
  51. package/build/tokens/components/dark/parts.d.ts +2 -2
  52. package/build/tokens/components/dark/parts.js +2 -2
  53. package/build/tokens/components/dark/progress-bar.d.ts +3 -3
  54. package/build/tokens/components/dark/progress-bar.js +3 -3
  55. package/build/tokens/components/dark/progress-stepper.d.ts +1 -1
  56. package/build/tokens/components/dark/progress-stepper.js +1 -1
  57. package/build/tokens/components/dark/spinner.d.ts +1 -1
  58. package/build/tokens/components/dark/spinner.js +1 -1
  59. package/build/tokens/components/dark/table.d.ts +2 -0
  60. package/build/tokens/components/dark/table.js +2 -0
  61. package/build/tokens/components/dark/time-picker.d.ts +1 -0
  62. package/build/tokens/components/dark/time-picker.js +1 -0
  63. package/build/tokens/components/light/parts.d.ts +3 -3
  64. package/build/tokens/components/light/parts.js +3 -3
  65. package/build/tokens/components/light/table.d.ts +2 -0
  66. package/build/tokens/components/light/table.js +2 -0
  67. package/build/tokens/components/light/time-picker.d.ts +1 -0
  68. package/build/tokens/components/light/time-picker.js +1 -0
  69. package/build/tokens/semantic-dark.d.ts +40 -40
  70. package/build/tokens/semantic-dark.js +40 -40
  71. package/docs/changelog.mdx +170 -0
  72. package/package.json +3 -3
  73. package/src/components/Badge/Badge.props.ts +1 -0
  74. package/src/components/Badge/Badge.tsx +6 -1
  75. package/src/components/Badge/BadgeText.tsx +8 -2
  76. package/src/components/Container/Container.props.ts +10 -1
  77. package/src/components/ExpandableCard/ExpandableCard.docs.mdx +89 -37
  78. package/src/components/ExpandableCard/ExpandableCard.props.ts +51 -27
  79. package/src/components/ExpandableCard/ExpandableCard.stories.tsx +67 -17
  80. package/src/components/ExpandableCard/ExpandableCard.tsx +15 -7
  81. package/src/components/ExpandableCard/ExpandableCardText.tsx +1 -1
  82. package/src/components/ExpandableCard/ExpandableCardTrigger.props.ts +37 -7
  83. package/src/components/ExpandableCard/ExpandableCardTriggerRoot.tsx +36 -2
  84. package/src/components/Flex/Flex.props.ts +16 -2
  85. package/src/components/FormField/FormField.tsx +2 -1
  86. package/src/components/List/List.stories.tsx +35 -0
  87. package/src/components/Modal/Modal.docs.mdx +52 -1
  88. package/src/components/Modal/Modal.props.ts +21 -6
  89. package/src/components/Modal/Modal.shared.types.ts +23 -4
  90. package/src/components/Modal/Modal.stories.tsx +165 -1
  91. package/src/components/Modal/Modal.tsx +101 -81
  92. package/src/components/Modal/Modal.web.tsx +29 -23
  93. package/src/components/NavModal/NavModal.docs.mdx +29 -0
  94. package/src/components/NavModal/NavModal.props.ts +11 -3
  95. package/src/components/NavModal/NavModal.stories.tsx +29 -0
  96. package/src/components/NavModal/NavModal.tsx +39 -33
  97. package/src/components/Table/TableHeaderCell.tsx +10 -1
  98. package/src/components/Textarea/Textarea.docs.mdx +33 -1
  99. package/src/components/Textarea/Textarea.props.ts +11 -2
  100. package/src/components/Textarea/Textarea.stories.tsx +21 -1
  101. package/src/components/Textarea/Textarea.tsx +107 -3
  102. package/src/components/Textarea/TextareaRoot.tsx +6 -2
  103. package/src/tokens/color.ts +41 -40
  104. package/src/tokens/components/dark/alert.ts +6 -6
  105. package/src/tokens/components/dark/bottom-navigation.ts +2 -2
  106. package/src/tokens/components/dark/checkbox.ts +1 -1
  107. package/src/tokens/components/dark/icon-button.ts +3 -3
  108. package/src/tokens/components/dark/inline-link.ts +1 -1
  109. package/src/tokens/components/dark/link.ts +3 -3
  110. package/src/tokens/components/dark/navigation.ts +2 -2
  111. package/src/tokens/components/dark/parts.ts +2 -2
  112. package/src/tokens/components/dark/progress-bar.ts +3 -3
  113. package/src/tokens/components/dark/progress-stepper.ts +1 -1
  114. package/src/tokens/components/dark/spinner.ts +1 -1
  115. package/src/tokens/components/dark/table.ts +2 -0
  116. package/src/tokens/components/dark/time-picker.ts +1 -0
  117. package/src/tokens/components/light/parts.ts +3 -3
  118. package/src/tokens/components/light/table.ts +2 -0
  119. package/src/tokens/components/light/time-picker.ts +1 -0
  120. package/src/tokens/semantic-dark.ts +40 -40
  121. 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-vite';
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
- <View {...props} style={[styles.container, style]}>
27
+ <AnimatedView {...props} style={[styles.container, style]}>
25
28
  {children}
26
- </View>
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',
@@ -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: '#7a42c8',
484
+ brand: '#442484',
484
485
  loading: '#30302c',
485
486
  primary: '#191917',
486
- secondary: '#232323',
487
+ secondary: '#2f2d2d',
487
488
  },
488
489
  border: {
489
- strong: '#ebebeb',
490
- subtle: '#4c473d',
490
+ strong: '#888888',
491
+ subtle: '#5b5b5b',
491
492
  },
492
493
  feedback: {
493
494
  danger: {
494
- border: '#ff7964',
495
+ border: '#f4412a',
495
496
  foreground: {
496
- default: '#101010',
497
+ default: '#ffffff',
497
498
  subtle: '#ff7964',
498
499
  },
499
500
  surface: {
500
- default: '#ff634a',
501
- subtle: '#ffa89d',
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: '#6bb0ff',
517
+ border: '#2786f1',
517
518
  foreground: {
518
- default: '#101010',
519
+ default: '#ffffff',
519
520
  subtle: '#6bb0ff',
520
521
  },
521
522
  surface: {
522
- default: '#6bb0ff',
523
- subtle: '#bcddff',
523
+ default: '#1c6cd4',
524
+ subtle: '#0b3375',
524
525
  },
525
526
  },
526
527
  positive: {
527
- border: '#58ca93',
528
+ border: '#19a660',
528
529
  foreground: {
529
- default: '#101010',
530
+ default: '#ffffff',
530
531
  subtle: '#58ca93',
531
532
  },
532
533
  surface: {
533
- default: '#36bf7d',
534
- subtle: '#a2e2c3',
534
+ default: '#0f834a',
535
+ subtle: '#074b2a',
535
536
  },
536
537
  },
537
538
  warning: {
538
- border: '#ff9639',
539
+ border: '#f56e00',
539
540
  foreground: {
540
- default: '#101010',
541
+ default: '#ffffff',
541
542
  subtle: '#ff9639',
542
543
  },
543
544
  surface: {
544
- default: '#ff8010',
545
- subtle: '#ffcca8',
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: '#c6b5e2',
589
- default: '#996cda',
590
- hover: '#af90de',
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: '#7a42c8',
674
- broadband: '#506c21',
675
- cashback: '#8b2bc9',
676
- default: '#f7f7f7',
677
- energy: '#326e7a',
678
- insurance: '#9b4c0e',
679
- mobile: '#a7266d',
680
- pig: '#8f358f',
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: '#996cda',
685
+ default: '#af90de',
685
686
  strong: '#26164f',
686
687
  subtle: '#442484',
687
688
  },
688
689
  broadband: {
689
690
  default: '#506c21',
690
- subtle: '#35421c',
691
+ subtle: '#4f6b20',
691
692
  },
692
693
  cashback: {
693
694
  default: '#8b2bc9',
694
- subtle: '#522270',
695
+ subtle: '#7429b5',
695
696
  },
696
697
  energy: {
697
698
  default: '#326e7a',
698
- subtle: '#254348',
699
+ subtle: '#2c6370',
699
700
  },
700
701
  highlight: {
701
702
  default: '#ffb921',
702
- subtle: '#756230',
703
+ subtle: '#82692b',
703
704
  },
704
705
  insurance: {
705
706
  default: '#9b4c0e',
706
- subtle: '#5a3213',
707
+ subtle: '#7f4518',
707
708
  },
708
709
  mobile: {
709
710
  default: '#a7266d',
710
- subtle: '#601f42',
711
+ subtle: '#8a3260',
711
712
  },
712
713
  neutral: {
713
- strong: '#232323',
714
+ strong: '#2f2d2d',
714
715
  subtle: '#191917',
715
716
  },
716
717
  pig: {
717
718
  default: '#8f358f',
718
- subtle: '#5d2167',
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: '#101010',
14
- foregroundColorActive: '#3f3f3f',
15
- foregroundColorHover: '#3a3837',
13
+ foregroundColor: '#ebebeb',
14
+ foregroundColorActive: '#b2afae',
15
+ foregroundColorHover: '#d3d3d3',
16
16
  },
17
17
  },
18
18
  link: {
19
- color: '#101010',
20
- colorActive: '#3f3f3f',
21
- colorHover: '#3a3837',
19
+ color: '#ebebeb',
20
+ colorActive: '#b2afae',
21
+ colorHover: '#d3d3d3',
22
22
  },
23
23
  padding: 14,
24
24
  } as const;
@@ -12,10 +12,10 @@ export default {
12
12
  item: {
13
13
  gap: 2,
14
14
  icon: {
15
- colorActive: '#996cda',
15
+ colorActive: '#af90de',
16
16
  },
17
17
  label: {
18
- colorActive: '#996cda',
18
+ colorActive: '#af90de',
19
19
  },
20
20
  paddingBottom: 2,
21
21
  paddingHorizontal: 0,
@@ -6,7 +6,7 @@ export default {
6
6
  borderRadius: 4,
7
7
  borderWidth: 2,
8
8
  checked: {
9
- backgroundColor: '#ebebeb',
9
+ backgroundColor: '#888888',
10
10
  icon: {
11
11
  color: '#101010',
12
12
  },
@@ -5,9 +5,9 @@
5
5
  export default {
6
6
  iconButton: {
7
7
  unstyled: {
8
- foregroundColor: '#101010',
9
- foregroundColorActive: '#3f3f3f',
10
- foregroundColorHover: '#3a3837',
8
+ foregroundColor: '#ebebeb',
9
+ foregroundColorActive: '#b2afae',
10
+ foregroundColorHover: '#d3d3d3',
11
11
  },
12
12
  },
13
13
  borderRadius: 8,
@@ -4,7 +4,7 @@
4
4
 
5
5
  export default {
6
6
  color: '#6bb0ff',
7
- colorVisited: '#996cda',
7
+ colorVisited: '#af90de',
8
8
  inverted: {
9
9
  color: '#fcfbf2',
10
10
  colorActive: '#f1efe4',
@@ -4,9 +4,9 @@
4
4
 
5
5
  export default {
6
6
  link: {
7
- color: '#101010',
8
- colorActive: '#3f3f3f',
9
- colorHover: '#3a3837',
7
+ color: '#ebebeb',
8
+ colorActive: '#b2afae',
9
+ colorHover: '#d3d3d3',
10
10
  },
11
11
  color: '#ebebeb',
12
12
  colorActive: '#b2afae',
@@ -7,12 +7,12 @@ export default {
7
7
  borderRadiusNone: 0,
8
8
  borderRadiusRounded: 4,
9
9
  },
10
- borderBottom: '#5c2ca9',
10
+ borderBottom: '#996cda',
11
11
  borderRadius: 6,
12
12
  desktop: {
13
13
  height: 88,
14
14
  },
15
- dividerBorderColor: '#5c2ca9',
15
+ dividerBorderColor: '#996cda',
16
16
  gap: 4,
17
17
  mobile: {
18
18
  height: 64,
@@ -27,7 +27,7 @@ export default {
27
27
  },
28
28
  statusBar: {
29
29
  foregroundColor: '#ffffff',
30
- foregroundColorInverted: '#000000',
31
- notch: '#000000',
30
+ foregroundColorInverted: '#ffffff',
31
+ notch: '#101010',
32
32
  },
33
33
  } as const;
@@ -34,8 +34,8 @@ export default {
34
34
  },
35
35
  },
36
36
  progress: {
37
- dangerColor: '#ff634a',
38
- defaultColor: '#c6b5e2',
39
- successColor: '#36bf7d',
37
+ dangerColor: '#f4412a',
38
+ defaultColor: '#996cda',
39
+ successColor: '#19a660',
40
40
  },
41
41
  } as const;
@@ -5,7 +5,7 @@
5
5
  export default {
6
6
  bar: {
7
7
  complete: {
8
- backgroundColor: '#7a42c8',
8
+ backgroundColor: '#996cda',
9
9
  },
10
10
  height: 2,
11
11
  },
@@ -3,7 +3,7 @@
3
3
  */
4
4
 
5
5
  export default {
6
- defaultFill: '#af90de',
6
+ defaultFill: '#996cda',
7
7
  lg: {
8
8
  size: 40,
9
9
  strokeWidth: 3,
@@ -14,6 +14,8 @@ export default {
14
14
  },
15
15
  headerCell: {
16
16
  borderWidth: 2,
17
+ foregoundColor: '#ebebeb',
18
+ foregoundColorInverted: '#101010',
17
19
  gap: 8,
18
20
  height: 56,
19
21
  paddingHorizontal: 12,
@@ -3,6 +3,7 @@
3
3
  */
4
4
 
5
5
  export default {
6
+ fade: '#2f2d2d00',
6
7
  gap: 6,
7
8
  gapContainer: 4,
8
9
  minWidth: 288,
@@ -4,7 +4,7 @@
4
4
 
5
5
  export default {
6
6
  homeIndicator: {
7
- foregroundColor: '#000000',
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: '#000000',
29
+ foregroundColor: '#101010',
30
30
  foregroundColorInverted: '#ffffff',
31
- notch: '#000000',
31
+ notch: '#101010',
32
32
  },
33
33
  } as const;
@@ -14,6 +14,8 @@ export default {
14
14
  },
15
15
  headerCell: {
16
16
  borderWidth: 2,
17
+ foregoundColor: '#101010',
18
+ foregoundColorInverted: '#ffffff',
17
19
  gap: 8,
18
20
  height: 56,
19
21
  paddingHorizontal: 12,
@@ -3,6 +3,7 @@
3
3
  */
4
4
 
5
5
  export default {
6
+ fade: '#ffffff00',
6
7
  gap: 6,
7
8
  gapContainer: 4,
8
9
  minWidth: 288,