@atlaskit/forge-react-types 0.2.1 → 0.4.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 (58) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/components/__generated__/BoxProps.codegen.js +62 -22
  3. package/dist/cjs/components/__generated__/types.codegen.js +5 -0
  4. package/dist/es2019/components/__generated__/BoxProps.codegen.js +62 -22
  5. package/dist/es2019/components/__generated__/types.codegen.js +1 -0
  6. package/dist/esm/components/__generated__/BoxProps.codegen.js +62 -22
  7. package/dist/esm/components/__generated__/types.codegen.js +1 -0
  8. package/dist/types/components/__generated__/BoxProps.codegen.d.ts +60 -16
  9. package/dist/types/components/__generated__/CheckboxProps.codegen.d.ts +4 -3
  10. package/dist/types/components/__generated__/DynamicTableProps.codegen.d.ts +2 -2
  11. package/dist/types/components/__generated__/FlexProps.codegen.d.ts +2 -2
  12. package/dist/types/components/__generated__/GridProps.codegen.d.ts +2 -2
  13. package/dist/types/components/__generated__/InlineProps.codegen.d.ts +2 -2
  14. package/dist/types/components/__generated__/RadioGroupProps.codegen.d.ts +4 -3
  15. package/dist/types/components/__generated__/RadioProps.codegen.d.ts +4 -3
  16. package/dist/types/components/__generated__/RangeProps.codegen.d.ts +4 -3
  17. package/dist/types/components/__generated__/SelectProps.codegen.d.ts +3 -3
  18. package/dist/types/components/__generated__/StackProps.codegen.d.ts +2 -2
  19. package/dist/types/components/__generated__/TextAreaProps.codegen.d.ts +4 -3
  20. package/dist/types/components/__generated__/TextfieldProps.codegen.d.ts +4 -3
  21. package/dist/types/components/__generated__/ToggleProps.codegen.d.ts +4 -3
  22. package/dist/types/components/__generated__/index.codegen.d.ts +15 -15
  23. package/dist/types/components/__generated__/types.codegen.d.ts +32 -0
  24. package/dist/types-ts4.5/components/__generated__/BoxProps.codegen.d.ts +60 -16
  25. package/dist/types-ts4.5/components/__generated__/CheckboxProps.codegen.d.ts +4 -3
  26. package/dist/types-ts4.5/components/__generated__/DynamicTableProps.codegen.d.ts +2 -2
  27. package/dist/types-ts4.5/components/__generated__/FlexProps.codegen.d.ts +2 -2
  28. package/dist/types-ts4.5/components/__generated__/GridProps.codegen.d.ts +2 -2
  29. package/dist/types-ts4.5/components/__generated__/InlineProps.codegen.d.ts +2 -2
  30. package/dist/types-ts4.5/components/__generated__/RadioGroupProps.codegen.d.ts +4 -3
  31. package/dist/types-ts4.5/components/__generated__/RadioProps.codegen.d.ts +4 -3
  32. package/dist/types-ts4.5/components/__generated__/RangeProps.codegen.d.ts +4 -3
  33. package/dist/types-ts4.5/components/__generated__/SelectProps.codegen.d.ts +3 -3
  34. package/dist/types-ts4.5/components/__generated__/StackProps.codegen.d.ts +2 -2
  35. package/dist/types-ts4.5/components/__generated__/TextAreaProps.codegen.d.ts +4 -3
  36. package/dist/types-ts4.5/components/__generated__/TextfieldProps.codegen.d.ts +4 -3
  37. package/dist/types-ts4.5/components/__generated__/ToggleProps.codegen.d.ts +4 -3
  38. package/dist/types-ts4.5/components/__generated__/index.codegen.d.ts +15 -15
  39. package/dist/types-ts4.5/components/__generated__/types.codegen.d.ts +32 -0
  40. package/package.json +2 -2
  41. package/scripts/codegen/codeGenerator.ts +31 -13
  42. package/scripts/codegen/componentPropTypes.ts +29 -0
  43. package/src/components/__generated__/BoxProps.codegen.tsx +39 -35
  44. package/src/components/__generated__/CheckboxProps.codegen.tsx +4 -3
  45. package/src/components/__generated__/DynamicTableProps.codegen.tsx +2 -2
  46. package/src/components/__generated__/FlexProps.codegen.tsx +2 -2
  47. package/src/components/__generated__/GridProps.codegen.tsx +2 -2
  48. package/src/components/__generated__/InlineProps.codegen.tsx +2 -2
  49. package/src/components/__generated__/RadioGroupProps.codegen.tsx +4 -3
  50. package/src/components/__generated__/RadioProps.codegen.tsx +4 -3
  51. package/src/components/__generated__/RangeProps.codegen.tsx +4 -3
  52. package/src/components/__generated__/SelectProps.codegen.tsx +3 -3
  53. package/src/components/__generated__/StackProps.codegen.tsx +2 -2
  54. package/src/components/__generated__/TextAreaProps.codegen.tsx +4 -3
  55. package/src/components/__generated__/TextfieldProps.codegen.tsx +5 -4
  56. package/src/components/__generated__/ToggleProps.codegen.tsx +4 -3
  57. package/src/components/__generated__/index.codegen.ts +15 -15
  58. package/src/components/__generated__/types.codegen.ts +33 -0
@@ -0,0 +1,32 @@
1
+ /**
2
+ * THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
3
+ *
4
+ * Shared types file from UIKit 2
5
+ *
6
+ * @codegen <<SignedSource::876fcb93a6505f3c3d8febc6657b1016>>
7
+ * @codegenCommand yarn workspace @atlaskit/forge-react-types codegen
8
+ * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/types.ts <<SignedSource::4c43233e6c4a02225fbb326afeddd9f7>>
9
+ */
10
+ export type SerialisableEvent = {
11
+ bubbles: boolean;
12
+ cancelable: boolean;
13
+ defaultPrevented: boolean;
14
+ eventPhase: number;
15
+ isTrusted: boolean;
16
+ nativeEvent: any;
17
+ target: {
18
+ value?: any;
19
+ checked?: boolean;
20
+ name?: string;
21
+ id?: string;
22
+ tagName?: string;
23
+ type?: string;
24
+ };
25
+ timeStamp: number;
26
+ type: string;
27
+ };
28
+ export type EventHandlerProps = {
29
+ onChange?: (event: SerialisableEvent) => void;
30
+ onBlur?: (event: SerialisableEvent) => void;
31
+ onFocus?: (event: SerialisableEvent) => void;
32
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/forge-react-types",
3
- "version": "0.2.1",
3
+ "version": "0.4.0",
4
4
  "description": "Component types for Forge UI Kit React components",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -34,7 +34,7 @@
34
34
  "@atlaskit/heading": "^1.6.0",
35
35
  "@atlaskit/lozenge": "^11.6.0",
36
36
  "@atlaskit/modal-dialog": "^12.10.0",
37
- "@atlaskit/primitives": "^2.0.0",
37
+ "@atlaskit/primitives": "^2.1.0",
38
38
  "@atlaskit/progress-bar": "2.0.1",
39
39
  "@atlaskit/progress-tracker": "8.5.6",
40
40
  "@atlaskit/radio": "^6.0.0",
@@ -125,24 +125,37 @@ class ImportDeclarationProxy {
125
125
  }
126
126
 
127
127
  public getText() {
128
+ const code = this.base.getText();
129
+ const match = code.match(
130
+ /^(import |import type ){(.+)} from ['"](.+)['"];$/,
131
+ );
132
+ if (!match) {
133
+ return this.base.getText();
134
+ }
135
+ let [_, importStatement, importedNames, packageName] = match;
136
+ importedNames = importedNames.trim();
137
+
138
+ if (isSharedUIKit2TypesImport(this.base)) {
139
+ packageName = './types.codegen';
140
+ }
128
141
  if (this.removedNamedImports.size > 0) {
129
- const code = this.base.getText();
130
- const matches = code.match(
131
- /^(import |import type ){(.+)} from \'(.+)\';$/,
132
- )!;
133
- const importedNames = matches[2]!
142
+ importedNames = importedNames!
134
143
  .split(',')
135
144
  .map((text) => text.trim())
136
- .filter((text) => !this.removedNamedImports.has(text));
137
-
138
- return `${matches[1]}{ ${importedNames.join(', ')} } from '${
139
- matches[3]
140
- }';`;
145
+ .filter((text) => !this.removedNamedImports.has(text))
146
+ .join(', ');
141
147
  }
142
- return this.base.getText();
148
+ return `${importStatement}{ ${importedNames} } from '${packageName}';`;
143
149
  }
144
150
  }
145
151
 
152
+ const isSharedUIKit2TypesImport = (importDeclaration: ImportDeclaration) => {
153
+ return (
154
+ importDeclaration.isTypeOnly() &&
155
+ importDeclaration.getModuleSpecifierValue() === '../../types'
156
+ );
157
+ };
158
+
146
159
  const extractImportDeclarations = (
147
160
  sourceFile: SourceFile,
148
161
  componentPropSymbol: Symbol,
@@ -161,9 +174,14 @@ const extractImportDeclarations = (
161
174
  .getImportDeclarations()
162
175
  .filter((declaration) => {
163
176
  const moduleSpecifier = declaration.getModuleSpecifierValue();
164
- // only keep dependencies from @atlaskit and react
177
+ // only keep dependencies from
178
+ // - @atlaskit
179
+ // - react
180
+ // - or '../../types'
165
181
  return (
166
- moduleSpecifier.startsWith('@atlaskit/') || moduleSpecifier === 'react'
182
+ moduleSpecifier.startsWith('@atlaskit/') ||
183
+ moduleSpecifier === 'react' ||
184
+ isSharedUIKit2TypesImport(declaration)
167
185
  );
168
186
  })
169
187
  .reduce<ImportDeclarationProxy[]>((declarations, declaration) => {
@@ -228,6 +228,32 @@ const updatePackageJsonWithADSComponentDependencies = (
228
228
  fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
229
229
  };
230
230
 
231
+ /**
232
+ * This copies types file from the types file in UIKit2-codegen
233
+ * to __generated__ folder.
234
+ */
235
+ const generateSharedTypesFile = (componentOutputDir: string) => {
236
+ // eslint-disable-next-line no-console
237
+ console.log('Generating shared types file');
238
+
239
+ const uiKit2TypesFile = require.resolve(
240
+ '@atlassian/forge-ui/src/components/UIKit2-codegen/types',
241
+ );
242
+
243
+ const signedSourceCode = createSignedArtifact(
244
+ fs.readFileSync(uiKit2TypesFile, 'utf8'),
245
+ 'yarn workspace @atlaskit/forge-react-types codegen',
246
+ {
247
+ description: 'Shared types file from UIKit 2',
248
+ dependencies: [uiKit2TypesFile],
249
+ outputFolder: componentOutputDir,
250
+ },
251
+ );
252
+
253
+ const typesFilePath = resolve(componentOutputDir, 'types.codegen.ts');
254
+ fs.writeFileSync(typesFilePath, signedSourceCode);
255
+ };
256
+
231
257
  const generateComponentPropTypes = (componentPropTypeFilter?: string) => {
232
258
  const componentOutputDir = resolve(
233
259
  __dirname,
@@ -248,6 +274,9 @@ const generateComponentPropTypes = (componentPropTypeFilter?: string) => {
248
274
  )
249
275
  .sort((a, b) => a.getName().localeCompare(b.getName()));
250
276
 
277
+ // generate share types file first
278
+ generateSharedTypesFile(componentOutputDir);
279
+
251
280
  generateComponentPropTypeSourceFiles(
252
281
  componentOutputDir,
253
282
  componentPropTypeSymbols,
@@ -3,9 +3,9 @@
3
3
  *
4
4
  * Extract component prop types from UIKit 2 components - BoxProps
5
5
  *
6
- * @codegen <<SignedSource::8309292dff495dc1e8e24268d3958b56>>
6
+ * @codegen <<SignedSource::d3c324dbe7016205a18cc6190b57ad19>>
7
7
  * @codegenCommand yarn workspace @atlaskit/forge-react-types codegen
8
- * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/box/__generated__/index.partial.tsx <<SignedSource::391296376275f3173652baee432184f1>>
8
+ * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/box/__generated__/index.partial.tsx <<SignedSource::851605328aa816df414378c18c7104fe>>
9
9
  */
10
10
  /* eslint-disable @atlaskit/design-system/ensure-design-token-usage/preview */
11
11
 
@@ -17,22 +17,26 @@ import type * as CSS from 'csstype';
17
17
  import type { MediaQuery } from '@atlaskit/primitives';
18
18
  import { tokensMap } from '@atlaskit/primitives';
19
19
  type TokensMap = typeof tokensMap;
20
- type TokenisedProps = {
21
- [K in keyof TokensMap]?: keyof TokensMap[K];
20
+ type TokensMapPropKey = keyof TokensMap;
21
+ type TokenizedProps = {
22
+ [K in TokensMapPropKey]?: keyof TokensMap[K];
22
23
  };
23
- type RelaxedTokenisedProps = {
24
- [K in keyof TokensMap]?: keyof TokensMap[K] | CSSProperties[K];
24
+ type RawCSSValue = string & {};
25
+ type RelaxedTokenizedProps = {
26
+ [K in TokensMapPropKey]?: keyof TokensMap[K] | RawCSSValue;
25
27
  };
26
28
  type AllMedia = MediaQuery | '@media screen and (forced-colors: active), screen and (-ms-high-contrast: active)' | '@media (prefers-color-scheme: dark)' | '@media (prefers-color-scheme: light)' | '@media (prefers-reduced-motion: reduce)';
27
- type StandardCSSProps = Omit<CSSProperties, keyof TokenisedProps>;
28
- type SafeCSSObject<T extends keyof CSSProperties = keyof CSSProperties, R extends T = T, M extends StandardCSSProps = StandardCSSProps> = {
29
- [MQ in AllMedia]?: Omit<SafeCSSObject<T, R>, AllMedia>;
29
+ type StandardCSSProps = Omit<CSSProperties, TokensMapPropKey>;
30
+ type RestrictedPropsSpec = RelaxedTokenizedProps & StandardCSSProps;
31
+ type SafeCSSObject<SupportedPropKeys extends keyof CSSProperties = keyof CSSProperties, RawCSSPropKeys extends SupportedPropKeys = SupportedPropKeys, RestrictedProps extends RestrictedPropsSpec = RestrictedPropsSpec> = {
32
+ [MQ in AllMedia]?: Omit<SafeCSSObject<SupportedPropKeys, RawCSSPropKeys, RestrictedPropsSpec>, AllMedia>;
30
33
  } & {
31
- [Pseudo in CSS.Pseudos]?: Omit<SafeCSSObject<T, R>, CSS.Pseudos | AllMedia>;
32
- } & Pick<TokenisedProps, Exclude<Extract<T, keyof TokenisedProps>, R>> & Pick<RelaxedTokenisedProps, Extract<R, keyof TokenisedProps>> & Pick<StandardCSSProps, Exclude<Extract<T, keyof StandardCSSProps>, keyof M>> & M;
34
+ [Pseudo in CSS.Pseudos]?: Omit<SafeCSSObject<SupportedPropKeys, RawCSSPropKeys, RestrictedPropsSpec>, CSS.Pseudos | AllMedia>;
35
+ } & Pick<TokenizedProps, Exclude<Extract<SupportedPropKeys, TokensMapPropKey>, RawCSSPropKeys | keyof RestrictedProps>> & Pick<StandardCSSProps, Exclude<Extract<SupportedPropKeys, keyof StandardCSSProps>, RawCSSPropKeys | keyof RestrictedProps>> & // force standard css prop values for allowCSS: true
36
+ Pick<CSSProperties, Extract<RawCSSPropKeys, keyof CSSProperties>> & RestrictedProps;
33
37
  type XCSSValidatorParam = {
34
38
  [key in keyof CSSProperties]: true | {
35
- supportedValues: Array<CSSProperties[key]>;
39
+ supportedValues: Array<RestrictedPropsSpec[key]>;
36
40
  } | {
37
41
  allowCSS: true;
38
42
  };
@@ -47,16 +51,16 @@ type XCSSValidatorParam = {
47
51
  * as specified in the supportedXCSSProps list. The props that are not supported will be removed from the
48
52
  * returned style object and a warning will be logged in the console.
49
53
  */
50
- declare const makeXCSSValidator: <U extends XCSSValidatorParam>(supportedXCSSProps: U) => (styleObj: SafeCSSObject<keyof CSSProperties, keyof CSSProperties, StandardCSSProps> | SafeCSSObject<Extract<keyof U, keyof CSSProperties>, Extract<{ [K in Extract<keyof U, keyof CSSProperties>]: U[K] extends {
54
+ declare const makeXCSSValidator: <U extends XCSSValidatorParam>(supportedXCSSProps: U) => (styleObj: SafeCSSObject<keyof CSSProperties, keyof CSSProperties, RestrictedPropsSpec> | SafeCSSObject<Extract<keyof U, keyof CSSProperties>, Extract<{ [K in Extract<keyof U, keyof CSSProperties>]: U[K] extends {
51
55
  allowCSS: true;
52
56
  } ? K : never; }[Extract<keyof U, keyof CSSProperties>], Extract<keyof U, keyof CSSProperties>>, { [K_2 in Extract<{ [K_1 in Extract<keyof U, keyof CSSProperties>]: U[K_1] extends {
53
- supportedValues: CSSProperties[K_1][];
57
+ supportedValues: RestrictedPropsSpec[K_1][];
54
58
  } ? K_1 : never; }[Extract<keyof U, keyof CSSProperties>], Extract<keyof U, keyof CSSProperties>>]?: (U[K_2] extends {
55
59
  supportedValues: infer V;
56
60
  } ? Exclude<V[keyof V], number | Function> : never) | undefined; }>) => SafeCSSObject<Extract<keyof U, keyof CSSProperties>, Extract<{ [K in Extract<keyof U, keyof CSSProperties>]: U[K] extends {
57
61
  allowCSS: true;
58
62
  } ? K : never; }[Extract<keyof U, keyof CSSProperties>], Extract<keyof U, keyof CSSProperties>>, { [K_2 in Extract<{ [K_1 in Extract<keyof U, keyof CSSProperties>]: U[K_1] extends {
59
- supportedValues: CSSProperties[K_1][];
63
+ supportedValues: RestrictedPropsSpec[K_1][];
60
64
  } ? K_1 : never; }[Extract<keyof U, keyof CSSProperties>], Extract<keyof U, keyof CSSProperties>>]?: (U[K_2] extends {
61
65
  supportedValues: infer V;
62
66
  } ? Exclude<V[keyof V], number | Function> : never) | undefined; }>;
@@ -124,26 +128,26 @@ const xcssValidator = makeXCSSValidator({
124
128
  paddingTop: true,
125
129
 
126
130
  // other box related props
127
- borderRadius: true,
128
- borderBottomLeftRadius: true,
129
- borderBottomRightRadius: true,
130
- borderTopLeftRadius: true,
131
- borderTopRightRadius: true,
132
- borderEndEndRadius: true,
133
- borderEndStartRadius: true,
134
- borderStartEndRadius: true,
135
- borderStartStartRadius: true,
136
- borderWidth: true,
137
- borderBlockWidth: true,
138
- borderBlockEndWidth: true,
139
- borderBlockStartWidth: true,
140
- borderBottomWidth: true,
141
- borderInlineWidth: true,
142
- borderInlineEndWidth: true,
143
- borderInlineStartWidth: true,
144
- borderLeftWidth: true,
145
- borderRightWidth: true,
146
- borderTopWidth: true,
131
+ borderRadius: { supportedValues: ['border.radius'] },
132
+ borderBottomLeftRadius: { supportedValues: ['border.radius'] },
133
+ borderBottomRightRadius: { supportedValues: ['border.radius'] },
134
+ borderTopLeftRadius: { supportedValues: ['border.radius'] },
135
+ borderTopRightRadius: { supportedValues: ['border.radius'] },
136
+ borderEndEndRadius: { supportedValues: ['border.radius'] },
137
+ borderEndStartRadius: { supportedValues: ['border.radius'] },
138
+ borderStartEndRadius: { supportedValues: ['border.radius'] },
139
+ borderStartStartRadius: { supportedValues: ['border.radius'] },
140
+ borderWidth: { supportedValues: ['border.width'] },
141
+ borderBlockWidth: { supportedValues: ['border.width'] },
142
+ borderBlockEndWidth: { supportedValues: ['border.width'] },
143
+ borderBlockStartWidth: { supportedValues: ['border.width'] },
144
+ borderBottomWidth: { supportedValues: ['border.width'] },
145
+ borderInlineWidth: { supportedValues: ['border.width'] },
146
+ borderInlineEndWidth: { supportedValues: ['border.width'] },
147
+ borderInlineStartWidth: { supportedValues: ['border.width'] },
148
+ borderLeftWidth: { supportedValues: ['border.width'] },
149
+ borderRightWidth: { supportedValues: ['border.width'] },
150
+ borderTopWidth: { supportedValues: ['border.width'] },
147
151
 
148
152
  // other props not in tokens based props
149
153
  borderTopStyle: {
@@ -3,12 +3,13 @@
3
3
  *
4
4
  * Extract component prop types from UIKit 2 components - CheckboxProps
5
5
  *
6
- * @codegen <<SignedSource::56c904bc1a3ad0ed3621db32045cff13>>
6
+ * @codegen <<SignedSource::c3f249f62fc1e2dab7bc6a21a0681633>>
7
7
  * @codegenCommand yarn workspace @atlaskit/forge-react-types codegen
8
- * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/checkbox/__generated__/index.partial.tsx <<SignedSource::57649f2b33c0aec30c2ad0e41479c28b>>
8
+ * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/checkbox/__generated__/index.partial.tsx <<SignedSource::e85d1dd9754f25c100758622ff6d2d91>>
9
9
  */
10
10
  import React from 'react';
11
11
  import PlatformCheckbox from '@atlaskit/checkbox';
12
+ import type { EventHandlerProps } from './types.codegen';
12
13
 
13
14
  type PlatformCheckboxProps = React.ComponentProps<typeof PlatformCheckbox>;
14
15
 
@@ -16,4 +17,4 @@ export type CheckboxProps = Pick<
16
17
  PlatformCheckboxProps,
17
18
  'testId' | 'defaultChecked' | 'isChecked' | 'isIndeterminate' | 'label'
18
19
  | 'id' | 'isRequired' | 'isDisabled' | 'isInvalid' | 'onChange' | 'onBlur' | 'onFocus' | 'value' | 'aria-invalid' | 'aria-labelledby' | 'name'
19
- >;
20
+ > & Pick<EventHandlerProps, 'onChange' | 'onBlur' | 'onFocus'>;
@@ -3,9 +3,9 @@
3
3
  *
4
4
  * Extract component prop types from UIKit 2 components - DynamicTableProps
5
5
  *
6
- * @codegen <<SignedSource::8b04874579e3370bf65d66c376e70709>>
6
+ * @codegen <<SignedSource::3ec687a739b617f4cbe7a8969062cca9>>
7
7
  * @codegenCommand yarn workspace @atlaskit/forge-react-types codegen
8
- * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/dynamictable/__generated__/index.partial.tsx <<SignedSource::9c044f09ae44854b9f861a93462c004a>>
8
+ * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/dynamictable/__generated__/index.partial.tsx <<SignedSource::027c1440c4dc132bea4898d69f352f23>>
9
9
  */
10
10
  import type { RowType, StatefulProps } from '@atlaskit/dynamic-table/types';
11
11
 
@@ -3,9 +3,9 @@
3
3
  *
4
4
  * Extract component prop types from UIKit 2 components - FlexProps
5
5
  *
6
- * @codegen <<SignedSource::f8cf7fcd48be584224dc9b3dbbb9d394>>
6
+ * @codegen <<SignedSource::2660d61ae4436d4239c8c7ed6c343415>>
7
7
  * @codegenCommand yarn workspace @atlaskit/forge-react-types codegen
8
- * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/flex/__generated__/index.partial.tsx <<SignedSource::752cb9176f453cb3422d13a493b64a06>>
8
+ * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/flex/__generated__/index.partial.tsx <<SignedSource::87ea6214c3b6ee4b2d36987f1682074e>>
9
9
  */
10
10
  import React from 'react';
11
11
  import { Flex as PlatformFlex } from '@atlaskit/primitives';
@@ -3,9 +3,9 @@
3
3
  *
4
4
  * Extract component prop types from UIKit 2 components - GridProps
5
5
  *
6
- * @codegen <<SignedSource::60e56f4ba271fccb01ee83e02659eb52>>
6
+ * @codegen <<SignedSource::4f326921dc60e223cfd0ba05be93a9eb>>
7
7
  * @codegenCommand yarn workspace @atlaskit/forge-react-types codegen
8
- * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/grid/__generated__/index.partial.tsx <<SignedSource::7f93ba0404d4e15e02f70341e423b955>>
8
+ * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/grid/__generated__/index.partial.tsx <<SignedSource::82ef52184f696a17dcca4c8a84e23441>>
9
9
  */
10
10
  import React from 'react';
11
11
  import { Grid as PlatformGrid } from '@atlaskit/primitives';
@@ -3,9 +3,9 @@
3
3
  *
4
4
  * Extract component prop types from UIKit 2 components - InlineProps
5
5
  *
6
- * @codegen <<SignedSource::1f9b9835477c3248e8ab5d01e9cdc22a>>
6
+ * @codegen <<SignedSource::807734fa360131f49ef4e7bb552bcb95>>
7
7
  * @codegenCommand yarn workspace @atlaskit/forge-react-types codegen
8
- * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/inline/__generated__/index.partial.tsx <<SignedSource::050cb8647981a5e0272677d7903f51eb>>
8
+ * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/inline/__generated__/index.partial.tsx <<SignedSource::d8e43c17dbcecadc5f72802f65dc1eb4>>
9
9
  */
10
10
  import React from 'react';
11
11
  import { Inline as PlatformInline } from '@atlaskit/primitives';
@@ -3,12 +3,13 @@
3
3
  *
4
4
  * Extract component prop types from UIKit 2 components - RadioGroupProps
5
5
  *
6
- * @codegen <<SignedSource::cdab8c21bdbe308e0525c518987435f6>>
6
+ * @codegen <<SignedSource::f21dfcf68dcf1e2443af8b267b5a057f>>
7
7
  * @codegenCommand yarn workspace @atlaskit/forge-react-types codegen
8
- * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/radio/__generated__/radio-group.partial.tsx <<SignedSource::7d9b07f217be4924a1cf7755f682fb58>>
8
+ * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/radio/__generated__/radio-group.partial.tsx <<SignedSource::2cbedc883c6d0fdf8e7f443d9ea14eb1>>
9
9
  */
10
10
  import React from 'react';
11
11
  import { RadioGroup as PlatformRadioGroup } from '@atlaskit/radio';
12
+ import type { EventHandlerProps } from './types.codegen';
12
13
 
13
14
  type PlatformRadioGroupProps = React.ComponentProps<typeof PlatformRadioGroup>;
14
15
 
@@ -16,4 +17,4 @@ export type RadioGroupProps = Pick<
16
17
  PlatformRadioGroupProps,
17
18
  'defaultValue' | 'options' | 'onInvalid' | 'testId'
18
19
  | 'isRequired' | 'isDisabled' | 'isInvalid' | 'onChange' | 'value' | 'aria-labelledby' | 'name'
19
- >;
20
+ > & Pick<EventHandlerProps, 'onChange'>;
@@ -3,12 +3,13 @@
3
3
  *
4
4
  * Extract component prop types from UIKit 2 components - RadioProps
5
5
  *
6
- * @codegen <<SignedSource::ca014c2fa3ed73cb002099a84ac8a08a>>
6
+ * @codegen <<SignedSource::18d92f885ea65e94fa46c10f531d5b42>>
7
7
  * @codegenCommand yarn workspace @atlaskit/forge-react-types codegen
8
- * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/radio/__generated__/index.partial.tsx <<SignedSource::ba49931714a2937a807db87c6ed3ed7b>>
8
+ * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/radio/__generated__/index.partial.tsx <<SignedSource::f8c9f83aa0faf7291e9446bec9e441d6>>
9
9
  */
10
10
  import React from 'react';
11
11
  import { Radio as PlatformRadio } from '@atlaskit/radio';
12
+ import type { EventHandlerProps } from './types.codegen';
12
13
 
13
14
  type PlatformRadioProps = React.ComponentProps<typeof PlatformRadio>;
14
15
 
@@ -16,4 +17,4 @@ export type RadioProps = Pick<
16
17
  PlatformRadioProps,
17
18
  'label' | 'testId' | 'isChecked' | 'ariaLabel' | 'onInvalid'
18
19
  | 'id' | 'isRequired' | 'isDisabled' | 'isInvalid' | 'onChange' | 'onBlur' | 'onFocus' | 'value' | 'aria-invalid' | 'aria-labelledby' | 'name'
19
- >;
20
+ > & Pick<EventHandlerProps, 'onChange' | 'onBlur' | 'onFocus'>;
@@ -3,12 +3,13 @@
3
3
  *
4
4
  * Extract component prop types from UIKit 2 components - RangeProps
5
5
  *
6
- * @codegen <<SignedSource::e63be8ed022af8026cc320c9683dfebf>>
6
+ * @codegen <<SignedSource::67e22cda61419468c91e120179019751>>
7
7
  * @codegenCommand yarn workspace @atlaskit/forge-react-types codegen
8
- * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/range/__generated__/index.partial.tsx <<SignedSource::73b4d120484ba38e2bf1334749c9bc05>>
8
+ * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/range/__generated__/index.partial.tsx <<SignedSource::da47c96a98423bdcf0e9c79c7e31854f>>
9
9
  */
10
10
  import React from 'react';
11
11
  import PlatformRange from '@atlaskit/range';
12
+ import type { EventHandlerProps } from './types.codegen';
12
13
 
13
14
  type PlatformRangeProps = React.ComponentProps<typeof PlatformRange>;
14
15
 
@@ -16,4 +17,4 @@ export type RangeProps = Pick<
16
17
  PlatformRangeProps,
17
18
  'defaultValue' | 'max' | 'min' | 'step' | 'testId' | 'onChange'
18
19
  | 'id' | 'isDisabled' | 'onBlur' | 'onFocus' | 'value' | 'aria-invalid' | 'aria-labelledby' | 'name'
19
- >;
20
+ > & Pick<EventHandlerProps, 'onBlur' | 'onFocus'>;
@@ -3,9 +3,9 @@
3
3
  *
4
4
  * Extract component prop types from UIKit 2 components - SelectProps
5
5
  *
6
- * @codegen <<SignedSource::fc820c7821eab223fd3731133a386703>>
6
+ * @codegen <<SignedSource::15d2ba46804ab0a683383a0ba9cae564>>
7
7
  * @codegenCommand yarn workspace @atlaskit/forge-react-types codegen
8
- * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/select/__generated__/index.partial.tsx <<SignedSource::9650d96ed765605a9c8e52d59df07caa>>
8
+ * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/select/__generated__/index.partial.tsx <<SignedSource::a826a4f7af8f06890432c9274aad7332>>
9
9
  */
10
10
  import { SelectProps as PlatformSelectProps } from '@atlaskit/select';
11
11
 
@@ -13,4 +13,4 @@ export type SelectProps = Pick<
13
13
  PlatformSelectProps<any, true | false>,
14
14
  'spacing' | 'appearance' | 'testId' | 'autoFocus' | 'defaultValue' | 'closeMenuOnSelect' | 'inputValue' | 'inputId' | 'isClearable' | 'isLoading' | 'isMulti' | 'isSearchable' | 'menuIsOpen' | 'onInputChange' | 'options' | 'placeholder' | 'onChange'
15
15
  | 'id' | 'isDisabled' | 'isInvalid' | 'onBlur' | 'onFocus' | 'value' | 'aria-invalid' | 'aria-labelledby' | 'name'
16
- > & { isRequired: boolean };
16
+ > & { isRequired?: boolean };
@@ -3,9 +3,9 @@
3
3
  *
4
4
  * Extract component prop types from UIKit 2 components - StackProps
5
5
  *
6
- * @codegen <<SignedSource::f3afde823b52ff8f169a9c09c922d8c8>>
6
+ * @codegen <<SignedSource::078aee141bb0e11ae719fd7e91902969>>
7
7
  * @codegenCommand yarn workspace @atlaskit/forge-react-types codegen
8
- * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/stack/__generated__/index.partial.tsx <<SignedSource::70a76bc91e660eb24d95369466375eec>>
8
+ * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/stack/__generated__/index.partial.tsx <<SignedSource::a7e2eb6e4d64591d6b9659e49b6ca7cc>>
9
9
  */
10
10
  import React from 'react';
11
11
  import { Stack as PlatformStack } from '@atlaskit/primitives';
@@ -3,12 +3,13 @@
3
3
  *
4
4
  * Extract component prop types from UIKit 2 components - TextAreaProps
5
5
  *
6
- * @codegen <<SignedSource::c8fb478551776ee1318282f1e09b6aec>>
6
+ * @codegen <<SignedSource::57ac3475df0ec3a8015a85ab681b0bec>>
7
7
  * @codegenCommand yarn workspace @atlaskit/forge-react-types codegen
8
- * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/textarea/__generated__/index.partial.tsx <<SignedSource::6ff82f2e9669ec2ae4884bccaf00b53d>>
8
+ * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/textarea/__generated__/index.partial.tsx <<SignedSource::bebce724d5e7ad41e8a3cd3c50b5ea6f>>
9
9
  */
10
10
  import React from 'react';
11
11
  import PlatformTextarea from '@atlaskit/textarea';
12
+ import type { EventHandlerProps } from './types.codegen';
12
13
 
13
14
  type PlatformTextareaProps = React.ComponentProps<typeof PlatformTextarea>;
14
15
 
@@ -16,4 +17,4 @@ export type TextAreaProps = Pick<
16
17
  PlatformTextareaProps,
17
18
  'appearance' | 'defaultValue' | 'isCompact' | 'isMonospaced' | 'isReadOnly' | 'maxHeight' | 'minimumRows' | 'placeholder' | 'resize' | 'spellCheck' | 'testId' | 'maxLength' | 'minLength'
18
19
  | 'id' | 'isRequired' | 'isDisabled' | 'isInvalid' | 'onChange' | 'onBlur' | 'onFocus' | 'value' | 'aria-invalid' | 'aria-labelledby' | 'name'
19
- >;
20
+ > & Pick<EventHandlerProps, 'onChange' | 'onBlur' | 'onFocus'>;
@@ -3,17 +3,18 @@
3
3
  *
4
4
  * Extract component prop types from UIKit 2 components - TextfieldProps
5
5
  *
6
- * @codegen <<SignedSource::720c29dc742f5983dfd70304c695f12a>>
6
+ * @codegen <<SignedSource::77a5f574841fda41b36a73e5427d6aa0>>
7
7
  * @codegenCommand yarn workspace @atlaskit/forge-react-types codegen
8
- * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/textfield/__generated__/index.partial.tsx <<SignedSource::be81e96ef821ffead27eed0b4af96460>>
8
+ * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/textfield/__generated__/index.partial.tsx <<SignedSource::3bcb2c74465d3be32f20d7ee141d0f9a>>
9
9
  */
10
10
  import React from 'react';
11
11
  import PlatformTextfield from '@atlaskit/textfield';
12
+ import type { EventHandlerProps } from './types.codegen';
12
13
 
13
14
  type PlatformTextfieldProps = React.ComponentProps<typeof PlatformTextfield>;
14
15
 
15
16
  export type TextfieldProps = Pick<
16
17
  PlatformTextfieldProps,
17
- 'appearance' | 'elemAfterInput' | 'elemBeforeInput' | 'isCompact' | 'isReadOnly' | 'isMonospaced' | 'placeholder' | 'testId' | 'width' | 'type' | 'defaultValue' | 'min' | 'max' | 'maxLength' | 'minLength'
18
+ 'appearance' | 'elemAfterInput' | 'elemBeforeInput' | 'isCompact' | 'isReadOnly' | 'isMonospaced' | 'placeholder' | 'testId' | 'width' | 'type' | 'defaultValue' | 'min' | 'max' | 'maxLength' | 'minLength' | 'pattern'
18
19
  | 'id' | 'isRequired' | 'isDisabled' | 'isInvalid' | 'onChange' | 'onBlur' | 'onFocus' | 'value' | 'aria-invalid' | 'aria-labelledby' | 'name'
19
- >;
20
+ > & Pick<EventHandlerProps, 'onChange' | 'onBlur' | 'onFocus'>;
@@ -3,12 +3,13 @@
3
3
  *
4
4
  * Extract component prop types from UIKit 2 components - ToggleProps
5
5
  *
6
- * @codegen <<SignedSource::3725fc15575cc31d6f57a976cbb10297>>
6
+ * @codegen <<SignedSource::9934170c1bfa2f8647584b8098d373e5>>
7
7
  * @codegenCommand yarn workspace @atlaskit/forge-react-types codegen
8
- * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/toggle/__generated__/index.partial.tsx <<SignedSource::00ab09d4c92a9047a164a1063e7b52de>>
8
+ * @codegenDependency ../../../../forge-ui/src/components/UIKit2-codegen/toggle/__generated__/index.partial.tsx <<SignedSource::15954687b51568b070d3d6687a80e7af>>
9
9
  */
10
10
  import React from 'react';
11
11
  import PlatformToggle from '@atlaskit/toggle';
12
+ import type { EventHandlerProps } from './types.codegen';
12
13
 
13
14
  type PlatformToggleProps = React.ComponentProps<typeof PlatformToggle>;
14
15
 
@@ -16,4 +17,4 @@ export type ToggleProps = Pick<
16
17
  PlatformToggleProps,
17
18
  'size' | 'testId' | 'defaultChecked' | 'isChecked' | 'label'
18
19
  | 'id' | 'isDisabled' | 'onChange' | 'onBlur' | 'onFocus' | 'value' | 'name'
19
- >;
20
+ > & Pick<EventHandlerProps, 'onChange' | 'onBlur' | 'onFocus'>;
@@ -3,29 +3,29 @@
3
3
  *
4
4
  * Index file for component prop types
5
5
  *
6
- * @codegen <<SignedSource::d4328d9d29905451f7abdcaeb6cdfaed>>
6
+ * @codegen <<SignedSource::0af01b1102b6d9b9f668cbed2fe0b27b>>
7
7
  * @codegenCommand yarn workspace @atlaskit/forge-react-types codegen
8
8
  * @codegenDependency BadgeProps.codegen.tsx <<SignedSource::4759a95fede44eb7af89a4ada26252e9>>
9
9
  * @codegenDependency BleedProps.codegen.tsx <<SignedSource::376f3f60ae6c1912e80b568958802fb5>>
10
- * @codegenDependency BoxProps.codegen.tsx <<SignedSource::4ced3eed4de7f562539dd8a769a6871d>>
10
+ * @codegenDependency BoxProps.codegen.tsx <<SignedSource::981f130ecaeeb0b694d4f81c2dc8255d>>
11
11
  * @codegenDependency ButtonGroupProps.codegen.tsx <<SignedSource::a529cee05261919cb2eccacb9837aed0>>
12
12
  * @codegenDependency ButtonProps.codegen.tsx <<SignedSource::cc45a3581574c0496c410cbba542fa50>>
13
- * @codegenDependency CheckboxProps.codegen.tsx <<SignedSource::9afb80a74c374b81d16e4b41c905799c>>
13
+ * @codegenDependency CheckboxProps.codegen.tsx <<SignedSource::64e2dd8eb8b122646e0a11c5a029a4d6>>
14
14
  * @codegenDependency CodeBlockProps.codegen.tsx <<SignedSource::54097e23c683ba0621cb0c224cbdee7a>>
15
15
  * @codegenDependency CodeProps.codegen.tsx <<SignedSource::bc1c608d36eb55ac7c4eb0545c4beda3>>
16
16
  * @codegenDependency DatePickerProps.codegen.tsx <<SignedSource::91eb5f1515fdb028c2916d07b59ea49a>>
17
- * @codegenDependency DynamicTableProps.codegen.tsx <<SignedSource::a515b50fd70a7fc6bc821f42852a6c22>>
17
+ * @codegenDependency DynamicTableProps.codegen.tsx <<SignedSource::5e1fb410256c2a689e97b87ac6152074>>
18
18
  * @codegenDependency ErrorMessageProps.codegen.tsx <<SignedSource::63e86a9739201928809df1932f0ceec9>>
19
- * @codegenDependency FlexProps.codegen.tsx <<SignedSource::93c0da4d6aad38e9a93dac738a15c7e4>>
19
+ * @codegenDependency FlexProps.codegen.tsx <<SignedSource::7f93c1d8cb30006984a5a43ebd95e4c8>>
20
20
  * @codegenDependency FormFooterProps.codegen.tsx <<SignedSource::3c26d17eab08af0dfa1beabfc6065d18>>
21
21
  * @codegenDependency FormHeaderProps.codegen.tsx <<SignedSource::1327f7e4c259cd2d5c1bf3198cc8c1eb>>
22
22
  * @codegenDependency FormProps.codegen.tsx <<SignedSource::22baf31090e921045516d5295e2226ef>>
23
23
  * @codegenDependency FormSectionProps.codegen.tsx <<SignedSource::43e20fc89b7abc977b8f10fd61ba6ea7>>
24
- * @codegenDependency GridProps.codegen.tsx <<SignedSource::8887e674f7f9420766714b0bf196b7f7>>
24
+ * @codegenDependency GridProps.codegen.tsx <<SignedSource::e98d5d15bb747873a1436cfa2428fdf6>>
25
25
  * @codegenDependency HeadingProps.codegen.tsx <<SignedSource::e34844b4af1a7c827505fe3ff587eda9>>
26
26
  * @codegenDependency HelperMessageProps.codegen.tsx <<SignedSource::8afdecf85bd6b2539ac011e4f5249b09>>
27
27
  * @codegenDependency IconProps.codegen.tsx <<SignedSource::24314f42437fe2bf4e2693316b97bb74>>
28
- * @codegenDependency InlineProps.codegen.tsx <<SignedSource::db16fe89fabe2d38cad0e3e5695311b3>>
28
+ * @codegenDependency InlineProps.codegen.tsx <<SignedSource::e9624f171d2611c81d05bb70d5d5efd8>>
29
29
  * @codegenDependency LabelProps.codegen.tsx <<SignedSource::32b9d05796f68e57b79ad99d6c37d246>>
30
30
  * @codegenDependency LinkButtonProps.codegen.tsx <<SignedSource::9d91758a306a8ad6dadcd2693603ca0c>>
31
31
  * @codegenDependency LoadingButtonProps.codegen.tsx <<SignedSource::8db1bb8fad98a6f0d577c0f55e30d679>>
@@ -38,23 +38,23 @@
38
38
  * @codegenDependency ModalTransitionProps.codegen.tsx <<SignedSource::eae5bf2abf85a1a39c377b0da0f7a1ed>>
39
39
  * @codegenDependency ProgressBarProps.codegen.tsx <<SignedSource::b27527e77286c102eac2a4aa3ed6585a>>
40
40
  * @codegenDependency ProgressTrackerProps.codegen.tsx <<SignedSource::75a7d6d27ff905f2e1ed85668749aec0>>
41
- * @codegenDependency RadioGroupProps.codegen.tsx <<SignedSource::92f707b80740efdb35d1588c854838d7>>
42
- * @codegenDependency RadioProps.codegen.tsx <<SignedSource::7de921ff8e1eceb6e5a3ae6dd8afc8cc>>
43
- * @codegenDependency RangeProps.codegen.tsx <<SignedSource::c71093a0781c3c46701e313db8c9e1d9>>
41
+ * @codegenDependency RadioGroupProps.codegen.tsx <<SignedSource::1ad039c8add4a5cbbbfcb0297330f608>>
42
+ * @codegenDependency RadioProps.codegen.tsx <<SignedSource::96e4c026daaf1aec3bf68aea545556d7>>
43
+ * @codegenDependency RangeProps.codegen.tsx <<SignedSource::4cb6e9003e3ad70a198b218708b324a4>>
44
44
  * @codegenDependency SectionMessageActionProps.codegen.tsx <<SignedSource::190b8417f32673d5e54cd206ea0c76d0>>
45
45
  * @codegenDependency SectionMessageProps.codegen.tsx <<SignedSource::dad8a3d213b5863972ea115389c33fdc>>
46
- * @codegenDependency SelectProps.codegen.tsx <<SignedSource::9c26b0a488f304bd77f227c6242062b9>>
46
+ * @codegenDependency SelectProps.codegen.tsx <<SignedSource::5c1824fd709a27eb74098e537e7f3541>>
47
47
  * @codegenDependency SpinnerProps.codegen.tsx <<SignedSource::602b1cc246e020dd7f32222a4d6bbb6e>>
48
- * @codegenDependency StackProps.codegen.tsx <<SignedSource::11eaa0ce90d5dd36a8ca57a03f01afe6>>
48
+ * @codegenDependency StackProps.codegen.tsx <<SignedSource::d3889e3b819fa2f96c0ce38a52734b76>>
49
49
  * @codegenDependency TabListProps.codegen.tsx <<SignedSource::ba3257cc8f382811ae1630adc50c4fac>>
50
50
  * @codegenDependency TabPanelProps.codegen.tsx <<SignedSource::dda2f64bb72b6b2d308412f1f9dae114>>
51
51
  * @codegenDependency TabProps.codegen.tsx <<SignedSource::6edd2e77416e83af2879893b06c1e004>>
52
52
  * @codegenDependency TabsProps.codegen.tsx <<SignedSource::014a7bfcca5304d7bb613a53d9117d01>>
53
53
  * @codegenDependency TagGroupProps.codegen.tsx <<SignedSource::e8e2bd37a4b5175ff1bf296b465ef727>>
54
54
  * @codegenDependency TagProps.codegen.tsx <<SignedSource::86aff9005e1db842009ece108d61a6b1>>
55
- * @codegenDependency TextAreaProps.codegen.tsx <<SignedSource::6acc3b533fd4766729e98c15a9750739>>
56
- * @codegenDependency TextfieldProps.codegen.tsx <<SignedSource::f849d7935598c075df91b83544913e3b>>
57
- * @codegenDependency ToggleProps.codegen.tsx <<SignedSource::6595958ccdf883ba48233225095e19d0>>
55
+ * @codegenDependency TextAreaProps.codegen.tsx <<SignedSource::1ffeeec37e609f7a8e8fa7a4abcffc28>>
56
+ * @codegenDependency TextfieldProps.codegen.tsx <<SignedSource::f029b18bd851bfca81384b61b12ba04b>>
57
+ * @codegenDependency ToggleProps.codegen.tsx <<SignedSource::4cf587b7a202a52ddb50db0157c2b0e5>>
58
58
  * @codegenDependency TooltipProps.codegen.tsx <<SignedSource::aa2be4a5cb38eecf50dd652836a3e6ad>>
59
59
  * @codegenDependency ValidMessageProps.codegen.tsx <<SignedSource::3498c77c19604ab5b3b2800fee3e75b3>>
60
60
  */