@utilitywarehouse/hearth-react-native 0.8.2 → 0.9.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.
Files changed (102) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-lint.log +1 -1
  3. package/CHANGELOG.md +8 -0
  4. package/build/components/Banner/Banner.js +25 -6
  5. package/build/components/Banner/Banner.props.d.ts +2 -2
  6. package/build/components/BottomSheet/BottomSheetHandle.js +8 -0
  7. package/build/components/Menu/Menu.context.d.ts +5 -0
  8. package/build/components/Menu/Menu.context.js +9 -0
  9. package/build/components/Menu/Menu.d.ts +4 -0
  10. package/build/components/Menu/Menu.js +25 -0
  11. package/build/components/Menu/Menu.props.d.ts +21 -0
  12. package/build/components/Menu/Menu.props.js +1 -0
  13. package/build/components/Menu/MenuItem.d.ts +18 -0
  14. package/build/components/Menu/MenuItem.js +115 -0
  15. package/build/components/Menu/MenuItem.props.d.ts +27 -0
  16. package/build/components/Menu/MenuItem.props.js +1 -0
  17. package/build/components/Menu/MenuTrigger.d.ts +9 -0
  18. package/build/components/Menu/MenuTrigger.js +11 -0
  19. package/build/components/Menu/MenuTrigger.props.d.ts +12 -0
  20. package/build/components/Menu/MenuTrigger.props.js +1 -0
  21. package/build/components/Menu/index.d.ts +7 -0
  22. package/build/components/Menu/index.js +4 -0
  23. package/build/components/Modal/Modal.d.ts +1 -1
  24. package/build/components/Modal/Modal.js +32 -30
  25. package/build/components/Modal/Modal.props.d.ts +1 -0
  26. package/build/components/Modal/Modal.web.d.ts +1 -1
  27. package/build/components/Modal/Modal.web.js +25 -25
  28. package/build/components/index.d.ts +1 -0
  29. package/build/components/index.js +1 -0
  30. package/build/tokens/components/dark/index.d.ts +3 -1
  31. package/build/tokens/components/dark/index.js +3 -1
  32. package/build/tokens/components/dark/input.d.ts +3 -0
  33. package/build/tokens/components/dark/input.js +3 -0
  34. package/build/tokens/components/dark/modal.d.ts +7 -4
  35. package/build/tokens/components/dark/modal.js +7 -4
  36. package/build/tokens/components/dark/rating.d.ts +8 -0
  37. package/build/tokens/components/dark/rating.js +7 -0
  38. package/build/tokens/components/dark/table.d.ts +0 -3
  39. package/build/tokens/components/dark/table.js +0 -3
  40. package/build/tokens/components/dark/time-picker.d.ts +29 -0
  41. package/build/tokens/components/dark/time-picker.js +28 -0
  42. package/build/tokens/components/dark/timeline.d.ts +27 -0
  43. package/build/tokens/components/dark/timeline.js +26 -0
  44. package/build/tokens/components/light/index.d.ts +3 -1
  45. package/build/tokens/components/light/index.js +3 -1
  46. package/build/tokens/components/light/input.d.ts +3 -0
  47. package/build/tokens/components/light/input.js +3 -0
  48. package/build/tokens/components/light/modal.d.ts +7 -4
  49. package/build/tokens/components/light/modal.js +7 -4
  50. package/build/tokens/components/light/rating.d.ts +8 -0
  51. package/build/tokens/components/light/rating.js +7 -0
  52. package/build/tokens/components/light/table.d.ts +0 -3
  53. package/build/tokens/components/light/table.js +0 -3
  54. package/build/tokens/components/light/time-picker.d.ts +29 -0
  55. package/build/tokens/components/light/time-picker.js +28 -0
  56. package/build/tokens/components/light/timeline.d.ts +27 -0
  57. package/build/tokens/components/light/timeline.js +26 -0
  58. package/docs/components/AllComponents.web.tsx +33 -0
  59. package/docs/components/BackToTopButton.tsx +1 -1
  60. package/package.json +2 -2
  61. package/src/components/Banner/Banner.docs.mdx +19 -10
  62. package/src/components/Banner/Banner.props.ts +2 -2
  63. package/src/components/Banner/Banner.stories.tsx +1 -4
  64. package/src/components/Banner/Banner.tsx +47 -7
  65. package/src/components/BottomSheet/BottomSheetHandle.tsx +12 -0
  66. package/src/components/DatePickerInput/DatePickerInput.docs.mdx +1 -1
  67. package/src/components/Menu/Menu.context.ts +15 -0
  68. package/src/components/Menu/Menu.docs.mdx +158 -0
  69. package/src/components/Menu/Menu.props.ts +24 -0
  70. package/src/components/Menu/Menu.stories.tsx +292 -0
  71. package/src/components/Menu/Menu.tsx +54 -0
  72. package/src/components/Menu/MenuItem.props.ts +29 -0
  73. package/src/components/Menu/MenuItem.tsx +145 -0
  74. package/src/components/Menu/MenuTrigger.props.ts +14 -0
  75. package/src/components/Menu/MenuTrigger.tsx +20 -0
  76. package/src/components/Menu/index.ts +7 -0
  77. package/src/components/Modal/Modal.docs.mdx +34 -5
  78. package/src/components/Modal/Modal.props.ts +1 -0
  79. package/src/components/Modal/Modal.stories.tsx +46 -0
  80. package/src/components/Modal/Modal.tsx +37 -33
  81. package/src/components/Modal/Modal.web.tsx +27 -27
  82. package/src/components/index.ts +1 -0
  83. package/src/tokens/components/dark/index.ts +3 -1
  84. package/src/tokens/components/dark/input.ts +3 -0
  85. package/src/tokens/components/dark/modal.ts +7 -4
  86. package/src/tokens/components/dark/rating.ts +8 -0
  87. package/src/tokens/components/dark/table.ts +0 -3
  88. package/src/tokens/components/dark/time-picker.ts +29 -0
  89. package/src/tokens/components/dark/timeline.ts +27 -0
  90. package/src/tokens/components/light/index.ts +3 -1
  91. package/src/tokens/components/light/input.ts +3 -0
  92. package/src/tokens/components/light/modal.ts +7 -4
  93. package/src/tokens/components/light/rating.ts +8 -0
  94. package/src/tokens/components/light/table.ts +0 -3
  95. package/src/tokens/components/light/time-picker.ts +29 -0
  96. package/src/tokens/components/light/timeline.ts +27 -0
  97. package/build/tokens/components/dark/dialog.d.ts +0 -25
  98. package/build/tokens/components/dark/dialog.js +0 -24
  99. package/build/tokens/components/light/dialog.d.ts +0 -25
  100. package/build/tokens/components/light/dialog.js +0 -24
  101. package/src/tokens/components/dark/dialog.ts +0 -25
  102. package/src/tokens/components/light/dialog.ts +0 -25
@@ -41,6 +41,12 @@ const meta = {
41
41
  control: 'boolean',
42
42
  description: 'Whether the modal is in a loading state.',
43
43
  },
44
+ fullscreen: {
45
+ control: 'boolean',
46
+ description: 'Whether the modal should take up the full screen height.',
47
+ },
48
+ },
49
+ actions: {
44
50
  onPressPrimaryButton: { action: () => null },
45
51
  onPressSecondaryButton: { action: () => null },
46
52
  onPressCloseButton: { action: () => null },
@@ -52,6 +58,7 @@ const meta = {
52
58
  primaryButtonText: 'Primary',
53
59
  secondaryButtonText: 'Cancel',
54
60
  loading: false,
61
+ fullscreen: false,
55
62
  onPressCloseButton: () => null,
56
63
  onPressPrimaryButton: () => null,
57
64
  onPressSecondaryButton: () => null,
@@ -192,3 +199,42 @@ export const Loading = () => {
192
199
  </View>
193
200
  );
194
201
  };
202
+
203
+ export const FullscreenModal: Story = {
204
+ render: () => {
205
+ const modalRef = useRef<BottomSheetModal>(null);
206
+
207
+ const openModal = () => {
208
+ modalRef.current?.present();
209
+ };
210
+
211
+ const closeModal = () => {
212
+ modalRef.current?.dismiss();
213
+ };
214
+
215
+ return (
216
+ <View style={Platform.OS === 'web' ? { width: 400, height: 800 } : { flex: 1 }}>
217
+ <ViewWrap>
218
+ <Button onPress={openModal}>Open Fullscreen Modal</Button>
219
+
220
+ <Modal
221
+ ref={modalRef}
222
+ heading="Fullscreen Modal Heading"
223
+ description="This is a fullscreen modal description"
224
+ onPressCloseButton={closeModal}
225
+ primaryButtonText="Primary"
226
+ onPressPrimaryButton={closeModal}
227
+ secondaryButtonText="Cancel"
228
+ onPressSecondaryButton={closeModal}
229
+ fullscreen
230
+ >
231
+ <Box gap="200">
232
+ <BodyText>This is a fullscreen modal with content.</BodyText>
233
+ <BodyText>You can swipe it up and down to close.</BodyText>
234
+ </Box>
235
+ </Modal>
236
+ </ViewWrap>
237
+ </View>
238
+ );
239
+ },
240
+ };
@@ -37,11 +37,12 @@ const Modal = ({
37
37
  closeOnPrimaryButtonPress = true,
38
38
  closeOnSecondaryButtonPress = true,
39
39
  loading,
40
+ fullscreen = false,
40
41
  image,
41
42
  primaryButtonProps,
42
43
  secondaryButtonProps,
43
44
  closeButtonProps,
44
- fullscreen = false,
45
+ inNavModal = false,
45
46
  ...props
46
47
  }: ModalProps) => {
47
48
  const bottomSheetModalRef = useRef<BottomSheetModal>(null);
@@ -52,7 +53,7 @@ const Modal = ({
52
53
  const pretendContentTranslateY = useSharedValue(20);
53
54
 
54
55
  const triggerCloseAnimation = useCallback(() => {
55
- if (Platform.OS === 'android' && fullscreen) {
56
+ if (Platform.OS === 'android' && inNavModal) {
56
57
  pretendContentTranslateY.value = withTiming(20, {
57
58
  duration: 50,
58
59
  easing: Easing.in(Easing.quad),
@@ -62,16 +63,16 @@ const Modal = ({
62
63
  easing: Easing.in(Easing.quad),
63
64
  });
64
65
  }
65
- }, [Platform.OS, fullscreen, pretendContentTranslateY, backgroundOpacity]);
66
+ }, [Platform.OS, inNavModal, pretendContentTranslateY, backgroundOpacity]);
66
67
 
67
68
  useImperativeHandle(ref, () => ({
68
69
  ...(bottomSheetModalRef.current as BottomSheetModal),
69
70
  triggerCloseAnimation,
70
71
  }));
71
72
 
72
- // Trigger animations on render for fullscreen Android modal
73
+ // Trigger animations on render for inNavModal Android modal
73
74
  useEffect(() => {
74
- if (Platform.OS === 'android' && fullscreen) {
75
+ if (Platform.OS === 'android' && inNavModal) {
75
76
  backgroundOpacity.value = withDelay(
76
77
  300,
77
78
  withTiming(1, {
@@ -87,7 +88,7 @@ const Modal = ({
87
88
  })
88
89
  );
89
90
  }
90
- }, [fullscreen, backgroundOpacity, pretendContentTranslateY]);
91
+ }, [inNavModal, backgroundOpacity, pretendContentTranslateY]);
91
92
 
92
93
  const animatedBackgroundStyle = useAnimatedStyle(() => ({
93
94
  backgroundColor: hexWithOpacity(
@@ -96,7 +97,7 @@ const Modal = ({
96
97
  ),
97
98
  }));
98
99
 
99
- const animatedFullscreenStyle = useAnimatedStyle(() => ({
100
+ const animatedInNavModalStyle = useAnimatedStyle(() => ({
100
101
  backgroundColor: hexWithOpacity(
101
102
  theme.components.overlay.backgroundColor,
102
103
  backgroundOpacity.value * (theme.components.overlay.opacity / 100)
@@ -240,7 +241,7 @@ const Modal = ({
240
241
  </>
241
242
  );
242
243
 
243
- return fullscreen ? (
244
+ return inNavModal ? (
244
245
  <View style={{ flex: 1, backgroundColor: theme.color.background.primary }}>
245
246
  {Platform.OS === 'android' ? (
246
247
  <Animated.View style={[styles.androidContainer, animatedBackgroundStyle]}>
@@ -248,18 +249,19 @@ const Modal = ({
248
249
  </Animated.View>
249
250
  ) : null}
250
251
  <Animated.View
251
- style={[styles.fullscreenContainer, Platform.OS === 'android' && animatedFullscreenStyle]}
252
+ style={[styles.inNavModalContainer, Platform.OS === 'android' && animatedInNavModalStyle]}
252
253
  >
253
- <View style={styles.fullscreenContent}>{content}</View>
254
+ <View style={styles.inNavModalContent}>{content}</View>
254
255
  </Animated.View>
255
256
  </View>
256
257
  ) : (
257
258
  <BottomSheetModal
258
259
  ref={bottomSheetModalRef}
259
260
  enableDynamicSizing={true}
260
- snapPoints={image ? ['90%'] : props.snapPoints}
261
+ snapPoints={image || fullscreen ? ['90%'] : props.snapPoints}
261
262
  showHandle={typeof loading !== 'undefined' && loading ? false : props.showHandle}
262
263
  accessible={false}
264
+ style={styles.modal}
263
265
  {...props}
264
266
  onChange={handleChange}
265
267
  >
@@ -272,9 +274,12 @@ const Modal = ({
272
274
  };
273
275
 
274
276
  const styles = StyleSheet.create((theme, rt) => ({
277
+ modal: {
278
+ gap: theme.components.modal.content.gap - theme.components.bottomSheet.gap,
279
+ },
275
280
  container: {
276
281
  flex: 1,
277
- gap: theme.components.dialog.gap,
282
+ gap: theme.components.modal.gap,
278
283
  variants: {
279
284
  loading: {
280
285
  true: {
@@ -285,11 +290,11 @@ const styles = StyleSheet.create((theme, rt) => ({
285
290
  },
286
291
  header: {
287
292
  flexDirection: 'row',
288
- gap: theme.components.dialog.gap,
293
+ gap: theme.components.modal.gap,
289
294
  },
290
295
  headerTextContent: {
291
296
  flex: 1,
292
- gap: theme.components.dialog.content.gap,
297
+ gap: theme.components.modal.content.gap,
293
298
  },
294
299
  image: {
295
300
  width: 260,
@@ -297,52 +302,51 @@ const styles = StyleSheet.create((theme, rt) => ({
297
302
  },
298
303
  imageContainer: {
299
304
  alignItems: 'center',
300
- justifyContent: 'center',
301
305
  flex: 1,
302
306
  },
303
307
  textContent: {
304
- gap: theme.components.dialog.content.gap,
308
+ gap: theme.components.modal.content.gap,
305
309
  },
306
310
  loadingTop: {
307
- borderTopLeftRadius: theme.components.dialog.borderRadius,
308
- borderTopRightRadius: theme.components.dialog.borderRadius,
311
+ borderTopLeftRadius: theme.components.modal.borderRadius,
312
+ borderTopRightRadius: theme.components.modal.borderRadius,
309
313
  height: 16,
310
314
  backgroundColor: theme.color.surface.neutral.strong,
311
315
  },
312
316
  loadingContainer: {
313
- borderTopLeftRadius: theme.components.dialog.borderRadius,
314
- borderTopRightRadius: theme.components.dialog.borderRadius,
317
+ borderTopLeftRadius: theme.components.modal.borderRadius,
318
+ borderTopRightRadius: theme.components.modal.borderRadius,
315
319
  flex: 1,
316
320
  alignItems: 'center',
317
321
  justifyContent: 'center',
318
322
  minHeight: 140,
319
- gap: theme.components.dialog.content.gap,
323
+ gap: theme.components.modal.content.gap,
320
324
  },
321
325
  footer: {
322
- gap: theme.components.dialog.action.gap,
326
+ gap: theme.components.modal.action.gap,
323
327
  },
324
- fullscreenContainer: {
328
+ inNavModalContainer: {
325
329
  flex: 1,
326
330
  ...(Platform.OS === 'ios' ? { backgroundColor: theme.components.overlay.backgroundColor } : {}),
327
331
  },
328
- fullscreenContent: {
332
+ inNavModalContent: {
329
333
  flex: 1,
330
- borderTopLeftRadius: theme.components.dialog.borderRadius,
331
- borderTopRightRadius: theme.components.dialog.borderRadius,
334
+ borderTopLeftRadius: theme.components.modal.borderRadius,
335
+ borderTopRightRadius: theme.components.modal.borderRadius,
332
336
  backgroundColor: theme.color.surface.neutral.strong,
333
- gap: theme.components.dialog.gap,
334
- padding: theme.components.dialog.padding,
335
- paddingBottom: theme.components.dialog.padding + rt.insets.bottom,
337
+ gap: theme.components.modal.gap,
338
+ padding: theme.components.modal.padding,
339
+ paddingBottom: theme.components.modal.padding + rt.insets.bottom,
336
340
  },
337
341
  androidContainer: {
338
342
  height: rt.insets.top + 18,
339
- paddingLeft: theme.components.dialog.padding,
340
- paddingRight: theme.components.dialog.padding,
343
+ paddingLeft: theme.components.modal.padding,
344
+ paddingRight: theme.components.modal.padding,
341
345
  justifyContent: 'flex-end',
342
346
  },
343
347
  pretendContent: {
344
- borderTopLeftRadius: theme.components.dialog.borderRadius,
345
- borderTopRightRadius: theme.components.dialog.borderRadius,
348
+ borderTopLeftRadius: theme.components.modal.borderRadius,
349
+ borderTopRightRadius: theme.components.modal.borderRadius,
346
350
  height: 12,
347
351
  backgroundColor: theme.components.parts.modalStack.backgroundColorCardTop,
348
352
  },
@@ -41,7 +41,7 @@ const Modal = ({
41
41
  primaryButtonProps,
42
42
  secondaryButtonProps,
43
43
  closeButtonProps,
44
- fullscreen = false,
44
+ inNavModal = false,
45
45
  ...props
46
46
  }: ModalProps) => {
47
47
  const bottomSheetModalRef = useRef<BottomSheetModal>(null);
@@ -52,7 +52,7 @@ const Modal = ({
52
52
  const pretendContentTranslateY = useSharedValue(20);
53
53
 
54
54
  const triggerCloseAnimation = useCallback(() => {
55
- if (Platform.OS === 'android' && fullscreen) {
55
+ if (Platform.OS === 'android' && inNavModal) {
56
56
  pretendContentTranslateY.value = withTiming(20, {
57
57
  duration: 50,
58
58
  easing: Easing.in(Easing.quad),
@@ -62,16 +62,16 @@ const Modal = ({
62
62
  easing: Easing.in(Easing.quad),
63
63
  });
64
64
  }
65
- }, [Platform.OS, fullscreen, pretendContentTranslateY, backgroundOpacity]);
65
+ }, [Platform.OS, inNavModal, pretendContentTranslateY, backgroundOpacity]);
66
66
 
67
67
  useImperativeHandle(ref, () => ({
68
68
  ...(bottomSheetModalRef.current as BottomSheetModal),
69
69
  triggerCloseAnimation,
70
70
  }));
71
71
 
72
- // Trigger animations on render for fullscreen Android modal
72
+ // Trigger animations on render for inNavModal Android modal
73
73
  useEffect(() => {
74
- if (Platform.OS === 'android' && fullscreen) {
74
+ if (Platform.OS === 'android' && inNavModal) {
75
75
  backgroundOpacity.value = withDelay(
76
76
  300,
77
77
  withTiming(1, {
@@ -87,7 +87,7 @@ const Modal = ({
87
87
  })
88
88
  );
89
89
  }
90
- }, [fullscreen, backgroundOpacity, pretendContentTranslateY]);
90
+ }, [inNavModal, backgroundOpacity, pretendContentTranslateY]);
91
91
 
92
92
  const animatedBackgroundStyle = useAnimatedStyle(() => ({
93
93
  backgroundColor: hexWithOpacity(
@@ -96,7 +96,7 @@ const Modal = ({
96
96
  ),
97
97
  }));
98
98
 
99
- const animatedFullscreenStyle = useAnimatedStyle(() => ({
99
+ const animatedInNavModalStyle = useAnimatedStyle(() => ({
100
100
  backgroundColor: hexWithOpacity(
101
101
  theme.components.overlay.backgroundColor,
102
102
  backgroundOpacity.value * (theme.components.overlay.opacity / 100)
@@ -238,7 +238,7 @@ const Modal = ({
238
238
  </>
239
239
  );
240
240
 
241
- return fullscreen ? (
241
+ return inNavModal ? (
242
242
  <View style={{ flex: 1, backgroundColor: theme.color.background.primary }}>
243
243
  {Platform.OS === 'android' ? (
244
244
  <Animated.View style={[styles.androidContainer, animatedBackgroundStyle]}>
@@ -246,9 +246,9 @@ const Modal = ({
246
246
  </Animated.View>
247
247
  ) : null}
248
248
  <Animated.View
249
- style={[styles.fullscreenContainer, Platform.OS === 'android' && animatedFullscreenStyle]}
249
+ style={[styles.inNavModalContainer, Platform.OS === 'android' && animatedInNavModalStyle]}
250
250
  >
251
- <View style={styles.fullscreenContent}>{content}</View>
251
+ <View style={styles.inNavModalContent}>{content}</View>
252
252
  </Animated.View>
253
253
  </View>
254
254
  ) : (
@@ -271,15 +271,15 @@ const Modal = ({
271
271
  const styles = StyleSheet.create((theme, rt) => ({
272
272
  container: {
273
273
  flex: 1,
274
- gap: theme.components.dialog.gap,
274
+ gap: theme.components.modal.gap,
275
275
  },
276
276
  header: {
277
277
  flexDirection: 'row',
278
- gap: theme.components.dialog.gap,
278
+ gap: theme.components.modal.gap,
279
279
  },
280
280
  headerTextContent: {
281
281
  flex: 1,
282
- gap: theme.components.dialog.content.gap,
282
+ gap: theme.components.modal.content.gap,
283
283
  },
284
284
  image: {
285
285
  width: 260,
@@ -291,40 +291,40 @@ const styles = StyleSheet.create((theme, rt) => ({
291
291
  flex: 1,
292
292
  },
293
293
  textContent: {
294
- gap: theme.components.dialog.content.gap,
294
+ gap: theme.components.modal.content.gap,
295
295
  },
296
296
  loadingContainer: {
297
297
  flex: 1,
298
298
  alignItems: 'center',
299
299
  justifyContent: 'center',
300
300
  minHeight: 140,
301
- gap: theme.components.dialog.content.gap,
301
+ gap: theme.components.modal.content.gap,
302
302
  },
303
303
  footer: {
304
- gap: theme.components.dialog.action.gap,
304
+ gap: theme.components.modal.action.gap,
305
305
  },
306
- fullscreenContainer: {
306
+ inNavModalContainer: {
307
307
  flex: 1,
308
308
  ...(Platform.OS === 'ios' ? { backgroundColor: theme.components.overlay.backgroundColor } : {}),
309
309
  },
310
- fullscreenContent: {
310
+ inNavModalContent: {
311
311
  flex: 1,
312
- borderTopLeftRadius: theme.components.dialog.borderRadius,
313
- borderTopRightRadius: theme.components.dialog.borderRadius,
312
+ borderTopLeftRadius: theme.components.modal.borderRadius,
313
+ borderTopRightRadius: theme.components.modal.borderRadius,
314
314
  backgroundColor: theme.color.surface.neutral.strong,
315
- gap: theme.components.dialog.gap,
316
- padding: theme.components.dialog.padding,
317
- paddingBottom: theme.components.dialog.padding + rt.insets.bottom,
315
+ gap: theme.components.modal.gap,
316
+ padding: theme.components.modal.padding,
317
+ paddingBottom: theme.components.modal.padding + rt.insets.bottom,
318
318
  },
319
319
  androidContainer: {
320
320
  height: rt.insets.top + 18,
321
- paddingLeft: theme.components.dialog.padding,
322
- paddingRight: theme.components.dialog.padding,
321
+ paddingLeft: theme.components.modal.padding,
322
+ paddingRight: theme.components.modal.padding,
323
323
  justifyContent: 'flex-end',
324
324
  },
325
325
  pretendContent: {
326
- borderTopLeftRadius: theme.components.dialog.borderRadius,
327
- borderTopRightRadius: theme.components.dialog.borderRadius,
326
+ borderTopLeftRadius: theme.components.modal.borderRadius,
327
+ borderTopRightRadius: theme.components.modal.borderRadius,
328
328
  height: 12,
329
329
  backgroundColor: theme.components.parts.modalStack.backgroundColorCardTop,
330
330
  },
@@ -36,6 +36,7 @@ export * from './Input';
36
36
  export * from './Label';
37
37
  export * from './Link';
38
38
  export * from './List';
39
+ export * from './Menu';
39
40
  export * from './Modal';
40
41
  export * from './ProgressStepper';
41
42
  export * from './Radio';
@@ -18,7 +18,6 @@ export { default as carouselControl } from './carousel-control';
18
18
  export { default as checkbox } from './checkbox';
19
19
  export { default as datePicker } from './date-picker';
20
20
  export { default as descriptionList } from './description-list';
21
- export { default as dialog } from './dialog';
22
21
  export { default as divider } from './divider';
23
22
  export { default as drawer } from './drawer';
24
23
  export { default as expandableCard } from './expandable-card';
@@ -41,6 +40,7 @@ export { default as pill } from './pill';
41
40
  export { default as progressBar } from './progress-bar';
42
41
  export { default as progressStepper } from './progress-stepper';
43
42
  export { default as radio } from './radio';
43
+ export { default as rating } from './rating';
44
44
  export { default as sectionHeader } from './section-header';
45
45
  export { default as segmentedControl } from './segmented-control';
46
46
  export { default as select } from './select';
@@ -49,6 +49,8 @@ export { default as spinner } from './spinner';
49
49
  export { default as switch } from './switch';
50
50
  export { default as table } from './table';
51
51
  export { default as tabs } from './tabs';
52
+ export { default as timePicker } from './time-picker';
53
+ export { default as timeline } from './timeline';
52
54
  export { default as toast } from './toast';
53
55
  export { default as toggleButton } from './toggle-button';
54
56
  export { default as tooltip } from './tooltip';
@@ -22,6 +22,9 @@ export default {
22
22
  minWidth: 152,
23
23
  paddingHorizontal: 16,
24
24
  paddingVertical: 12,
25
+ stepper: {
26
+ gap: 4,
27
+ },
25
28
  textArea: {
26
29
  height: 96,
27
30
  },
@@ -11,17 +11,20 @@ export default {
11
11
  gap: 12,
12
12
  },
13
13
  gap: 24,
14
- padding: 48,
14
+ heading: {
15
+ gap: 24,
16
+ },
17
+ illustration: {
18
+ padding: 48,
19
+ },
20
+ padding: 24,
15
21
  mobile: {
16
- padding: 16,
17
22
  width: 360,
18
23
  },
19
24
  tablet: {
20
- padding: 48,
21
25
  width: 504,
22
26
  },
23
27
  desktop: {
24
- padding: 48,
25
28
  width: 680,
26
29
  },
27
30
  } as const;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Do not edit directly, this file was auto-generated.
3
+ */
4
+
5
+ export default {
6
+ borderWidth: 2,
7
+ gap: 4,
8
+ } as const;
@@ -14,9 +14,6 @@ export default {
14
14
  headerCell: {
15
15
  borderWidth: 2,
16
16
  gap: 8,
17
- neutral: {
18
- backgroundColor: '#30302c',
19
- },
20
17
  paddingHorizontal: 12,
21
18
  paddingVertical: 16,
22
19
  },
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Do not edit directly, this file was auto-generated.
3
+ */
4
+
5
+ export default {
6
+ gap: 6,
7
+ gapContainer: 4,
8
+ minWidth: 288,
9
+ paddingHorizontal: 16,
10
+ paddingVertical: 12,
11
+ time: {
12
+ columnGap: 4,
13
+ content: {
14
+ gap: 8,
15
+ item: {
16
+ gap: 2,
17
+ },
18
+ },
19
+ footer: {
20
+ gap: 8,
21
+ },
22
+ gap: 16,
23
+ item: {
24
+ height: 40,
25
+ width: 64,
26
+ },
27
+ rowGap: 2,
28
+ },
29
+ } as const;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Do not edit directly, this file was auto-generated.
3
+ */
4
+
5
+ export default {
6
+ bar: {
7
+ width: 2,
8
+ },
9
+ content: {
10
+ gap: 8,
11
+ paddingBottom: 24,
12
+ paddingTop: 2,
13
+ },
14
+ gap: 12,
15
+ progress: {
16
+ circle: {
17
+ height: 24,
18
+ width: 24,
19
+ },
20
+ },
21
+ static: {
22
+ circle: {
23
+ height: 12,
24
+ width: 12,
25
+ },
26
+ },
27
+ } as const;
@@ -18,7 +18,6 @@ export { default as carouselControl } from './carousel-control';
18
18
  export { default as checkbox } from './checkbox';
19
19
  export { default as datePicker } from './date-picker';
20
20
  export { default as descriptionList } from './description-list';
21
- export { default as dialog } from './dialog';
22
21
  export { default as divider } from './divider';
23
22
  export { default as drawer } from './drawer';
24
23
  export { default as expandableCard } from './expandable-card';
@@ -41,6 +40,7 @@ export { default as pill } from './pill';
41
40
  export { default as progressBar } from './progress-bar';
42
41
  export { default as progressStepper } from './progress-stepper';
43
42
  export { default as radio } from './radio';
43
+ export { default as rating } from './rating';
44
44
  export { default as sectionHeader } from './section-header';
45
45
  export { default as segmentedControl } from './segmented-control';
46
46
  export { default as select } from './select';
@@ -49,6 +49,8 @@ export { default as spinner } from './spinner';
49
49
  export { default as switch } from './switch';
50
50
  export { default as table } from './table';
51
51
  export { default as tabs } from './tabs';
52
+ export { default as timePicker } from './time-picker';
53
+ export { default as timeline } from './timeline';
52
54
  export { default as toast } from './toast';
53
55
  export { default as toggleButton } from './toggle-button';
54
56
  export { default as tooltip } from './tooltip';
@@ -22,6 +22,9 @@ export default {
22
22
  minWidth: 120,
23
23
  paddingHorizontal: 16,
24
24
  paddingVertical: 12,
25
+ stepper: {
26
+ gap: 4,
27
+ },
25
28
  textArea: {
26
29
  height: 96,
27
30
  },
@@ -11,17 +11,20 @@ export default {
11
11
  gap: 12,
12
12
  },
13
13
  gap: 24,
14
- padding: 16,
14
+ heading: {
15
+ gap: 24,
16
+ },
17
+ illustration: {
18
+ padding: 48,
19
+ },
20
+ padding: 24,
15
21
  mobile: {
16
- padding: 16,
17
22
  width: 360,
18
23
  },
19
24
  tablet: {
20
- padding: 48,
21
25
  width: 504,
22
26
  },
23
27
  desktop: {
24
- padding: 48,
25
28
  width: 680,
26
29
  },
27
30
  } as const;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Do not edit directly, this file was auto-generated.
3
+ */
4
+
5
+ export default {
6
+ borderWidth: 2,
7
+ gap: 4,
8
+ } as const;
@@ -14,9 +14,6 @@ export default {
14
14
  headerCell: {
15
15
  borderWidth: 2,
16
16
  gap: 8,
17
- neutral: {
18
- backgroundColor: '#f1efe4',
19
- },
20
17
  paddingHorizontal: 12,
21
18
  paddingVertical: 16,
22
19
  },
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Do not edit directly, this file was auto-generated.
3
+ */
4
+
5
+ export default {
6
+ gap: 6,
7
+ gapContainer: 4,
8
+ minWidth: 288,
9
+ paddingHorizontal: 16,
10
+ paddingVertical: 12,
11
+ time: {
12
+ columnGap: 4,
13
+ content: {
14
+ gap: 8,
15
+ item: {
16
+ gap: 2,
17
+ },
18
+ },
19
+ footer: {
20
+ gap: 8,
21
+ },
22
+ gap: 16,
23
+ item: {
24
+ height: 40,
25
+ width: 64,
26
+ },
27
+ rowGap: 2,
28
+ },
29
+ } as const;