@coinbase/ui-mobile-playground 4.5.8 → 4.5.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/CHANGELOG.md CHANGED
@@ -8,6 +8,12 @@ All notable changes to this project will be documented in this file.
8
8
 
9
9
  <!-- template-start -->
10
10
 
11
+ ## 4.5.9 (12/2/2025 PST)
12
+
13
+ #### 🐞 Fixes
14
+
15
+ - Regenerate routes. [[#200](https://github.com/coinbase/cds/pull/200)]
16
+
11
17
  ## 4.5.8 (12/1/2025 PST)
12
18
 
13
19
  #### 🐞 Fixes
@@ -1 +1 @@
1
- {"version":3,"file":"IconSheetScreen.d.ts","sourceRoot":"","sources":["../../src/components/IconSheetScreen.tsx"],"names":[],"mappings":"AAgBA,wBAAgB,eAAe,4CAqC9B"}
1
+ {"version":3,"file":"IconSheetScreen.d.ts","sourceRoot":"","sources":["../../src/components/IconSheetScreen.tsx"],"names":[],"mappings":"AAcA,wBAAgB,eAAe,4CA2B9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,MAAM;;;GAutBlB,CAAC"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,MAAM;;;GAkzBlB,CAAC"}
@@ -1,8 +1,6 @@
1
- import { ScrollView } from 'react-native';
2
1
  import { SvgXml } from 'react-native-svg';
3
2
  import { useTheme } from '@coinbase/cds-mobile';
4
3
  import { IconSheet } from '@coinbase/cds-mobile/icons/__stories__/IconSheet';
5
- import { Box } from '@coinbase/cds-mobile/layout';
6
4
  import { svgMap } from '../__generated__/iconSvgMap';
7
5
 
8
6
  // we only have svg assets for sizes xs, s, and m
@@ -14,34 +12,20 @@ const getIconSourceSize = iconSize => {
14
12
  };
15
13
  export function IconSheetScreen() {
16
14
  const theme = useTheme();
17
- return /*#__PURE__*/_jsx(ScrollView, {
18
- keyboardShouldPersistTaps: "always",
19
- persistentScrollbar: false,
20
- showsVerticalScrollIndicator: false,
21
- style: {
22
- backgroundColor: theme.color.bg,
23
- height: '100%'
24
- },
25
- testID: "mobile-playground-scrollview",
26
- children: /*#__PURE__*/_jsx(Box, {
27
- background: "bg",
28
- padding: 2,
29
- children: /*#__PURE__*/_jsx(IconSheet, {
30
- renderIcon: (iconName, iconSize) => {
31
- const size = theme.iconSize[iconSize];
32
- const sourceSize = getIconSourceSize(size);
33
- const key = "".concat(iconName, "-").concat(sourceSize, "-inactive");
34
- if (!(key in svgMap)) {
35
- throw new Error("Icon ".concat(key, " not found in iconSvgMap. You probably need to run the generateIconSvgMap script to update it."));
36
- }
37
- return /*#__PURE__*/_jsx(SvgXml, {
38
- accessibilityRole: "image",
39
- height: size,
40
- width: size,
41
- xml: svgMap[key].content
42
- }, "".concat(iconName, "-").concat(iconSize));
43
- }
44
- })
45
- })
15
+ return /*#__PURE__*/_jsx(IconSheet, {
16
+ renderIcon: (iconName, iconSize) => {
17
+ const size = theme.iconSize[iconSize];
18
+ const sourceSize = getIconSourceSize(size);
19
+ const key = "".concat(iconName, "-").concat(sourceSize, "-inactive");
20
+ if (!(key in svgMap)) {
21
+ throw new Error("Icon ".concat(key, " not found in iconSvgMap. You probably need to run the generateIconSvgMap script to update it."));
22
+ }
23
+ return /*#__PURE__*/_jsx(SvgXml, {
24
+ accessibilityRole: "image",
25
+ height: size,
26
+ width: size,
27
+ xml: svgMap[key].content
28
+ }, "".concat(iconName, "-").concat(iconSize));
29
+ }
46
30
  });
47
31
  }
package/esm/routes.js CHANGED
@@ -2,7 +2,6 @@
2
2
  * DO NOT MODIFY
3
3
  * Generated from scripts/codegen/main.ts
4
4
  */
5
-
6
5
  export const routes = [{
7
6
  key: 'Accordion',
8
7
  getComponent: () => require('@coinbase/cds-mobile/accordion/__stories__/Accordion.stories').default
@@ -21,18 +20,42 @@ export const routes = [{
21
20
  }, {
22
21
  key: 'AlertSingleAction',
23
22
  getComponent: () => require('@coinbase/cds-mobile/overlays/__stories__/AlertSingleAction.stories').default
23
+ }, {
24
+ key: 'AlertVerticalActions',
25
+ getComponent: () => require('@coinbase/cds-mobile/overlays/__stories__/AlertVerticalActions.stories').default
26
+ }, {
27
+ key: 'AlphaSelect',
28
+ getComponent: () => require('@coinbase/cds-mobile/alpha/select/__stories__/AlphaSelect.stories').default
29
+ }, {
30
+ key: 'AlphaTabbedChips',
31
+ getComponent: () => require('@coinbase/cds-mobile/alpha/tabbed-chips/__stories__/AlphaTabbedChips.stories').default
24
32
  }, {
25
33
  key: 'AnimatedCaret',
26
34
  getComponent: () => require('@coinbase/cds-mobile/motion/__stories__/AnimatedCaret.stories').default
35
+ }, {
36
+ key: 'AreaChart',
37
+ getComponent: () => require('@coinbase/cds-mobile-visualization/chart/area/__stories__/AreaChart.stories').default
27
38
  }, {
28
39
  key: 'Avatar',
29
40
  getComponent: () => require('@coinbase/cds-mobile/media/__stories__/Avatar.stories').default
30
41
  }, {
31
42
  key: 'AvatarButton',
32
43
  getComponent: () => require('@coinbase/cds-mobile/buttons/__stories__/AvatarButton.stories').default
44
+ }, {
45
+ key: 'Axis',
46
+ getComponent: () => require('@coinbase/cds-mobile-visualization/chart/axis/__stories__/Axis.stories').default
33
47
  }, {
34
48
  key: 'Banner',
35
49
  getComponent: () => require('@coinbase/cds-mobile/banner/__stories__/Banner.stories').default
50
+ }, {
51
+ key: 'BannerActions',
52
+ getComponent: () => require('@coinbase/cds-mobile/banner/__stories__/BannerActions.stories').default
53
+ }, {
54
+ key: 'BannerLayout',
55
+ getComponent: () => require('@coinbase/cds-mobile/banner/__stories__/BannerLayout.stories').default
56
+ }, {
57
+ key: 'BarChart',
58
+ getComponent: () => require('@coinbase/cds-mobile-visualization/chart/bar/__stories__/BarChart.stories').default
36
59
  }, {
37
60
  key: 'Box',
38
61
  getComponent: () => require('@coinbase/cds-mobile/layout/__stories__/Box.stories').default
@@ -57,9 +80,18 @@ export const routes = [{
57
80
  }, {
58
81
  key: 'CarouselMedia',
59
82
  getComponent: () => require('@coinbase/cds-mobile/media/__stories__/CarouselMedia.stories').default
83
+ }, {
84
+ key: 'CartesianChart',
85
+ getComponent: () => require('@coinbase/cds-mobile-visualization/chart/__stories__/CartesianChart.stories').default
86
+ }, {
87
+ key: 'Chart',
88
+ getComponent: () => require('@coinbase/cds-mobile-visualization/chart/__stories__/Chart.stories').default
60
89
  }, {
61
90
  key: 'Checkbox',
62
91
  getComponent: () => require('@coinbase/cds-mobile/controls/__stories__/Checkbox.stories').default
92
+ }, {
93
+ key: 'CheckboxCell',
94
+ getComponent: () => require('@coinbase/cds-mobile/controls/__stories__/CheckboxCell.stories').default
63
95
  }, {
64
96
  key: 'Chip',
65
97
  getComponent: () => require('@coinbase/cds-mobile/chips/__stories__/Chip.stories').default
@@ -81,6 +113,9 @@ export const routes = [{
81
113
  }, {
82
114
  key: 'ContentCellFallback',
83
115
  getComponent: () => require('@coinbase/cds-mobile/cells/__stories__/ContentCellFallback.stories').default
116
+ }, {
117
+ key: 'ControlGroup',
118
+ getComponent: () => require('@coinbase/cds-mobile/controls/__stories__/ControlGroup.stories').default
84
119
  }, {
85
120
  key: 'DateInput',
86
121
  getComponent: () => require('@coinbase/cds-mobile/dates/__stories__/DateInput.stories').default
@@ -132,9 +167,6 @@ export const routes = [{
132
167
  }, {
133
168
  key: 'HintMotion',
134
169
  getComponent: () => require('@coinbase/cds-mobile/motion/__stories__/HintMotion.stories').default
135
- }, {
136
- key: 'Icon',
137
- getComponent: () => require('@coinbase/cds-mobile/icons/__stories__/Icon.stories').default
138
170
  }, {
139
171
  key: 'IconButton',
140
172
  getComponent: () => require('@coinbase/cds-mobile/buttons/__stories__/IconButton.stories').default
@@ -156,6 +188,9 @@ export const routes = [{
156
188
  }, {
157
189
  key: 'LinearGradient',
158
190
  getComponent: () => require('@coinbase/cds-mobile/gradients/__stories__/LinearGradient.stories').default
191
+ }, {
192
+ key: 'LineChart',
193
+ getComponent: () => require('@coinbase/cds-mobile-visualization/chart/line/__stories__/LineChart.stories').default
159
194
  }, {
160
195
  key: 'Link',
161
196
  getComponent: () => require('@coinbase/cds-mobile/typography/__stories__/Link.stories').default
@@ -174,6 +209,9 @@ export const routes = [{
174
209
  }, {
175
210
  key: 'LottieStatusAnimation',
176
211
  getComponent: () => require('@coinbase/cds-mobile/animation/__stories__/LottieStatusAnimation.stories').default
212
+ }, {
213
+ key: 'MediaChip',
214
+ getComponent: () => require('@coinbase/cds-mobile/chips/__stories__/MediaChip.stories').default
177
215
  }, {
178
216
  key: 'ModalBackButton',
179
217
  getComponent: () => require('@coinbase/cds-mobile/overlays/__stories__/ModalBackButton.stories').default
@@ -243,6 +281,9 @@ export const routes = [{
243
281
  }, {
244
282
  key: 'PatternError',
245
283
  getComponent: () => require('@coinbase/cds-mobile/system/__stories__/PatternError.stories').default
284
+ }, {
285
+ key: 'PeriodSelector',
286
+ getComponent: () => require('@coinbase/cds-mobile-visualization/chart/__stories__/PeriodSelector.stories').default
246
287
  }, {
247
288
  key: 'Pictogram',
248
289
  getComponent: () => require('@coinbase/cds-mobile/illustrations/__stories__/Pictogram.stories').default
@@ -258,15 +299,24 @@ export const routes = [{
258
299
  }, {
259
300
  key: 'ProgressCircle',
260
301
  getComponent: () => require('@coinbase/cds-mobile/visualizations/__stories__/ProgressCircle.stories').default
302
+ }, {
303
+ key: 'RadioCell',
304
+ getComponent: () => require('@coinbase/cds-mobile/controls/__stories__/RadioCell.stories').default
261
305
  }, {
262
306
  key: 'RadioGroup',
263
307
  getComponent: () => require('@coinbase/cds-mobile/controls/__stories__/RadioGroup.stories').default
308
+ }, {
309
+ key: 'ReferenceLine',
310
+ getComponent: () => require('@coinbase/cds-mobile-visualization/chart/line/__stories__/ReferenceLine.stories').default
264
311
  }, {
265
312
  key: 'RemoteImage',
266
313
  getComponent: () => require('@coinbase/cds-mobile/media/__stories__/RemoteImage.stories').default
267
314
  }, {
268
315
  key: 'RemoteImageGroup',
269
316
  getComponent: () => require('@coinbase/cds-mobile/media/__stories__/RemoteImageGroup.stories').default
317
+ }, {
318
+ key: 'RollingNumber',
319
+ getComponent: () => require('@coinbase/cds-mobile/numbers/__stories__/RollingNumber.stories').default
270
320
  }, {
271
321
  key: 'SearchInput',
272
322
  getComponent: () => require('@coinbase/cds-mobile/controls/__stories__/SearchInput.stories').default
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coinbase/ui-mobile-playground",
3
- "version": "4.5.8",
3
+ "version": "4.5.9",
4
4
  "description": "Mobile UI Components in a Playground",
5
5
  "repository": {
6
6
  "type": "git",
@@ -36,7 +36,7 @@
36
36
  "peerDependencies": {
37
37
  "@coinbase/cds-common": "^8.25.1",
38
38
  "@coinbase/cds-mobile": "^8.25.1",
39
- "@coinbase/cds-mobile-visualization": "^3.4.0-beta.6",
39
+ "@coinbase/cds-mobile-visualization": "^3.4.0-beta.7",
40
40
  "@react-navigation/elements": "^1.3.17",
41
41
  "@react-navigation/native": "^6.1.6",
42
42
  "@react-navigation/stack": "^6.3.16",
@@ -1,9 +1,7 @@
1
- import { ScrollView } from 'react-native';
2
1
  import { SvgXml } from 'react-native-svg';
3
2
  import type { IconSourcePixelSize } from '@coinbase/cds-common/types';
4
3
  import { useTheme } from '@coinbase/cds-mobile';
5
4
  import { IconSheet } from '@coinbase/cds-mobile/icons/__stories__/IconSheet';
6
- import { Box } from '@coinbase/cds-mobile/layout';
7
5
 
8
6
  import { svgMap } from '../__generated__/iconSvgMap';
9
7
 
@@ -17,38 +15,28 @@ const getIconSourceSize = (iconSize: number): IconSourcePixelSize => {
17
15
  export function IconSheetScreen() {
18
16
  const theme = useTheme();
19
17
  return (
20
- <ScrollView
21
- keyboardShouldPersistTaps="always"
22
- persistentScrollbar={false}
23
- showsVerticalScrollIndicator={false}
24
- style={{ backgroundColor: theme.color.bg, height: '100%' }}
25
- testID="mobile-playground-scrollview"
26
- >
27
- <Box background="bg" padding={2}>
28
- <IconSheet
29
- renderIcon={(iconName, iconSize) => {
30
- const size = theme.iconSize[iconSize];
31
- const sourceSize = getIconSourceSize(size);
32
- const key = `${iconName}-${sourceSize}-inactive`;
18
+ <IconSheet
19
+ renderIcon={(iconName, iconSize) => {
20
+ const size = theme.iconSize[iconSize];
21
+ const sourceSize = getIconSourceSize(size);
22
+ const key = `${iconName}-${sourceSize}-inactive`;
33
23
 
34
- if (!(key in svgMap)) {
35
- throw new Error(
36
- `Icon ${key} not found in iconSvgMap. You probably need to run the generateIconSvgMap script to update it.`,
37
- );
38
- }
24
+ if (!(key in svgMap)) {
25
+ throw new Error(
26
+ `Icon ${key} not found in iconSvgMap. You probably need to run the generateIconSvgMap script to update it.`,
27
+ );
28
+ }
39
29
 
40
- return (
41
- <SvgXml
42
- key={`${iconName}-${iconSize}`}
43
- accessibilityRole="image"
44
- height={size}
45
- width={size}
46
- xml={svgMap[key as keyof typeof svgMap].content}
47
- />
48
- );
49
- }}
50
- />
51
- </Box>
52
- </ScrollView>
30
+ return (
31
+ <SvgXml
32
+ key={`${iconName}-${iconSize}`}
33
+ accessibilityRole="image"
34
+ height={size}
35
+ width={size}
36
+ xml={svgMap[key as keyof typeof svgMap].content}
37
+ />
38
+ );
39
+ }}
40
+ />
53
41
  );
54
42
  }
package/src/routes.ts CHANGED
@@ -2,7 +2,6 @@
2
2
  * DO NOT MODIFY
3
3
  * Generated from scripts/codegen/main.ts
4
4
  */
5
-
6
5
  export const routes = [
7
6
  {
8
7
  key: 'Accordion',
@@ -34,11 +33,33 @@ export const routes = [
34
33
  getComponent: () =>
35
34
  require('@coinbase/cds-mobile/overlays/__stories__/AlertSingleAction.stories').default,
36
35
  },
36
+ {
37
+ key: 'AlertVerticalActions',
38
+ getComponent: () =>
39
+ require('@coinbase/cds-mobile/overlays/__stories__/AlertVerticalActions.stories').default,
40
+ },
41
+ {
42
+ key: 'AlphaSelect',
43
+ getComponent: () =>
44
+ require('@coinbase/cds-mobile/alpha/select/__stories__/AlphaSelect.stories').default,
45
+ },
46
+ {
47
+ key: 'AlphaTabbedChips',
48
+ getComponent: () =>
49
+ require('@coinbase/cds-mobile/alpha/tabbed-chips/__stories__/AlphaTabbedChips.stories')
50
+ .default,
51
+ },
37
52
  {
38
53
  key: 'AnimatedCaret',
39
54
  getComponent: () =>
40
55
  require('@coinbase/cds-mobile/motion/__stories__/AnimatedCaret.stories').default,
41
56
  },
57
+ {
58
+ key: 'AreaChart',
59
+ getComponent: () =>
60
+ require('@coinbase/cds-mobile-visualization/chart/area/__stories__/AreaChart.stories')
61
+ .default,
62
+ },
42
63
  {
43
64
  key: 'Avatar',
44
65
  getComponent: () => require('@coinbase/cds-mobile/media/__stories__/Avatar.stories').default,
@@ -48,10 +69,30 @@ export const routes = [
48
69
  getComponent: () =>
49
70
  require('@coinbase/cds-mobile/buttons/__stories__/AvatarButton.stories').default,
50
71
  },
72
+ {
73
+ key: 'Axis',
74
+ getComponent: () =>
75
+ require('@coinbase/cds-mobile-visualization/chart/axis/__stories__/Axis.stories').default,
76
+ },
51
77
  {
52
78
  key: 'Banner',
53
79
  getComponent: () => require('@coinbase/cds-mobile/banner/__stories__/Banner.stories').default,
54
80
  },
81
+ {
82
+ key: 'BannerActions',
83
+ getComponent: () =>
84
+ require('@coinbase/cds-mobile/banner/__stories__/BannerActions.stories').default,
85
+ },
86
+ {
87
+ key: 'BannerLayout',
88
+ getComponent: () =>
89
+ require('@coinbase/cds-mobile/banner/__stories__/BannerLayout.stories').default,
90
+ },
91
+ {
92
+ key: 'BarChart',
93
+ getComponent: () =>
94
+ require('@coinbase/cds-mobile-visualization/chart/bar/__stories__/BarChart.stories').default,
95
+ },
55
96
  {
56
97
  key: 'Box',
57
98
  getComponent: () => require('@coinbase/cds-mobile/layout/__stories__/Box.stories').default,
@@ -89,11 +130,27 @@ export const routes = [
89
130
  getComponent: () =>
90
131
  require('@coinbase/cds-mobile/media/__stories__/CarouselMedia.stories').default,
91
132
  },
133
+ {
134
+ key: 'CartesianChart',
135
+ getComponent: () =>
136
+ require('@coinbase/cds-mobile-visualization/chart/__stories__/CartesianChart.stories')
137
+ .default,
138
+ },
139
+ {
140
+ key: 'Chart',
141
+ getComponent: () =>
142
+ require('@coinbase/cds-mobile-visualization/chart/__stories__/Chart.stories').default,
143
+ },
92
144
  {
93
145
  key: 'Checkbox',
94
146
  getComponent: () =>
95
147
  require('@coinbase/cds-mobile/controls/__stories__/Checkbox.stories').default,
96
148
  },
149
+ {
150
+ key: 'CheckboxCell',
151
+ getComponent: () =>
152
+ require('@coinbase/cds-mobile/controls/__stories__/CheckboxCell.stories').default,
153
+ },
97
154
  {
98
155
  key: 'Chip',
99
156
  getComponent: () => require('@coinbase/cds-mobile/chips/__stories__/Chip.stories').default,
@@ -128,6 +185,11 @@ export const routes = [
128
185
  getComponent: () =>
129
186
  require('@coinbase/cds-mobile/cells/__stories__/ContentCellFallback.stories').default,
130
187
  },
188
+ {
189
+ key: 'ControlGroup',
190
+ getComponent: () =>
191
+ require('@coinbase/cds-mobile/controls/__stories__/ControlGroup.stories').default,
192
+ },
131
193
  {
132
194
  key: 'DateInput',
133
195
  getComponent: () => require('@coinbase/cds-mobile/dates/__stories__/DateInput.stories').default,
@@ -207,10 +269,6 @@ export const routes = [
207
269
  getComponent: () =>
208
270
  require('@coinbase/cds-mobile/motion/__stories__/HintMotion.stories').default,
209
271
  },
210
- {
211
- key: 'Icon',
212
- getComponent: () => require('@coinbase/cds-mobile/icons/__stories__/Icon.stories').default,
213
- },
214
272
  {
215
273
  key: 'IconButton',
216
274
  getComponent: () =>
@@ -245,6 +303,12 @@ export const routes = [
245
303
  getComponent: () =>
246
304
  require('@coinbase/cds-mobile/gradients/__stories__/LinearGradient.stories').default,
247
305
  },
306
+ {
307
+ key: 'LineChart',
308
+ getComponent: () =>
309
+ require('@coinbase/cds-mobile-visualization/chart/line/__stories__/LineChart.stories')
310
+ .default,
311
+ },
248
312
  {
249
313
  key: 'Link',
250
314
  getComponent: () => require('@coinbase/cds-mobile/typography/__stories__/Link.stories').default,
@@ -272,6 +336,10 @@ export const routes = [
272
336
  getComponent: () =>
273
337
  require('@coinbase/cds-mobile/animation/__stories__/LottieStatusAnimation.stories').default,
274
338
  },
339
+ {
340
+ key: 'MediaChip',
341
+ getComponent: () => require('@coinbase/cds-mobile/chips/__stories__/MediaChip.stories').default,
342
+ },
275
343
  {
276
344
  key: 'ModalBackButton',
277
345
  getComponent: () =>
@@ -387,6 +455,12 @@ export const routes = [
387
455
  getComponent: () =>
388
456
  require('@coinbase/cds-mobile/system/__stories__/PatternError.stories').default,
389
457
  },
458
+ {
459
+ key: 'PeriodSelector',
460
+ getComponent: () =>
461
+ require('@coinbase/cds-mobile-visualization/chart/__stories__/PeriodSelector.stories')
462
+ .default,
463
+ },
390
464
  {
391
465
  key: 'Pictogram',
392
466
  getComponent: () =>
@@ -412,11 +486,22 @@ export const routes = [
412
486
  getComponent: () =>
413
487
  require('@coinbase/cds-mobile/visualizations/__stories__/ProgressCircle.stories').default,
414
488
  },
489
+ {
490
+ key: 'RadioCell',
491
+ getComponent: () =>
492
+ require('@coinbase/cds-mobile/controls/__stories__/RadioCell.stories').default,
493
+ },
415
494
  {
416
495
  key: 'RadioGroup',
417
496
  getComponent: () =>
418
497
  require('@coinbase/cds-mobile/controls/__stories__/RadioGroup.stories').default,
419
498
  },
499
+ {
500
+ key: 'ReferenceLine',
501
+ getComponent: () =>
502
+ require('@coinbase/cds-mobile-visualization/chart/line/__stories__/ReferenceLine.stories')
503
+ .default,
504
+ },
420
505
  {
421
506
  key: 'RemoteImage',
422
507
  getComponent: () =>
@@ -427,6 +512,11 @@ export const routes = [
427
512
  getComponent: () =>
428
513
  require('@coinbase/cds-mobile/media/__stories__/RemoteImageGroup.stories').default,
429
514
  },
515
+ {
516
+ key: 'RollingNumber',
517
+ getComponent: () =>
518
+ require('@coinbase/cds-mobile/numbers/__stories__/RollingNumber.stories').default,
519
+ },
430
520
  {
431
521
  key: 'SearchInput',
432
522
  getComponent: () =>