@atlaskit/forge-react-types 0.47.1 → 0.48.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/forge-react-types",
3
- "version": "0.47.1",
3
+ "version": "0.48.0",
4
4
  "description": "Component types for Forge UI Kit React components",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -21,29 +21,29 @@
21
21
  "team": "Forge UI"
22
22
  },
23
23
  "dependencies": {
24
- "@atlaskit/button": "^23.5.0",
24
+ "@atlaskit/button": "^23.6.0",
25
25
  "@atlaskit/comment": "^13.1.0",
26
26
  "@atlaskit/datetime-picker": "^17.1.0",
27
27
  "@atlaskit/dynamic-table": "^18.3.0",
28
28
  "@atlaskit/form": "^14.2.0",
29
29
  "@atlaskit/inline-edit": "^15.3.0",
30
- "@atlaskit/modal-dialog": "^14.6.0",
31
- "@atlaskit/navigation-system": "^5.3.0",
30
+ "@atlaskit/modal-dialog": "^14.7.0",
31
+ "@atlaskit/navigation-system": "^5.5.0",
32
32
  "@atlaskit/popup": "^4.6.0",
33
33
  "@atlaskit/primitives": "^16.1.0",
34
34
  "@atlaskit/progress-bar": "^4.0.0",
35
35
  "@atlaskit/progress-tracker": "^10.3.0",
36
36
  "@atlaskit/radio": "^8.3.0",
37
37
  "@atlaskit/section-message": "^8.9.0",
38
- "@atlaskit/select": "^21.3.0",
38
+ "@atlaskit/select": "^21.4.0",
39
39
  "@atlaskit/spinner": "^19.0.0",
40
40
  "@atlaskit/tabs": "^18.2.0",
41
41
  "@atlaskit/tag": "^14.1.0",
42
42
  "@atlaskit/tag-group": "^12.0.0",
43
- "@atlaskit/textarea": "^8.0.0",
44
- "@atlaskit/textfield": "^8.0.0",
43
+ "@atlaskit/textarea": "^8.1.0",
44
+ "@atlaskit/textfield": "^8.1.0",
45
45
  "@atlaskit/toggle": "^15.1.0",
46
- "@atlaskit/tokens": "^7.1.0",
46
+ "@atlaskit/tokens": "^8.0.0",
47
47
  "@atlaskit/tooltip": "^20.8.0",
48
48
  "@babel/runtime": "^7.0.0"
49
49
  },
@@ -52,7 +52,7 @@
52
52
  },
53
53
  "devDependencies": {
54
54
  "@atlassian/codegen": "^0.1.0",
55
- "@atlassian/forge-ui": "^32.45.0",
55
+ "@atlassian/forge-ui": "^32.48.0",
56
56
  "@types/node": "~22.17.1",
57
57
  "lodash": "^4.17.21",
58
58
  "react": "^18.2.0",
@@ -6,7 +6,9 @@ import {
6
6
  type TypeAliasDeclaration,
7
7
  type ImportDeclaration,
8
8
  type TypeReferenceNode,
9
+ type VariableDeclaration,
9
10
  SyntaxKind,
11
+ Node,
10
12
  } from 'ts-morph';
11
13
  // eslint-disable-next-line import/no-extraneous-dependencies
12
14
  import kebabCase from 'lodash/kebabCase';
@@ -772,6 +774,143 @@ const generateComponentPropTypeSourceCodeWithSerializedType = (
772
774
  });
773
775
  };
774
776
 
777
+ /**
778
+ * Extracts variable declarations that are referenced in the given variable declaration node.
779
+ * This recursively finds all variable references and extracts their declarations.
780
+ */
781
+ const extractReferencedVariables = (
782
+ sourceFile: SourceFile,
783
+ variableDeclaration: VariableDeclaration,
784
+ visited: Set<string> = new Set(),
785
+ ): string[] => {
786
+ const variableDeclarations: string[] = [];
787
+ const identifiers = new Set<string>();
788
+
789
+ // Traverse the AST to find identifier references
790
+ const initializer = variableDeclaration.getInitializer();
791
+ if (initializer) {
792
+ initializer.forEachDescendant((node) => {
793
+ if (Node.isIdentifier(node)) {
794
+ // Only consider identifiers that are not part of property access
795
+ // (e.g., `obj.prop` - we want to skip `prop` but consider `obj` if it's a variable)
796
+ const parent = node.getParent();
797
+ const isPropertyAccess =
798
+ Node.isPropertyAccessExpression(parent) && parent.getNameNode() === node;
799
+ const isPropertyName = Node.isPropertyAssignment(parent) && parent.getNameNode() === node;
800
+
801
+ if (!isPropertyAccess && !isPropertyName) {
802
+ const identifier = node.getText();
803
+ // Skip keywords and already visited variables
804
+ if (
805
+ !visited.has(identifier) &&
806
+ ![
807
+ 'const',
808
+ 'let',
809
+ 'var',
810
+ 'function',
811
+ 'return',
812
+ 'if',
813
+ 'else',
814
+ 'for',
815
+ 'while',
816
+ 'true',
817
+ 'false',
818
+ 'null',
819
+ 'undefined',
820
+ 'this',
821
+ 'super',
822
+ 'makeXCSSValidator',
823
+ ].includes(identifier)
824
+ ) {
825
+ identifiers.add(identifier);
826
+ }
827
+ }
828
+ }
829
+ });
830
+ }
831
+
832
+ // Try to find variable declarations for each identifier
833
+ for (const identifier of identifiers) {
834
+ try {
835
+ const referencedVar = sourceFile.getVariableDeclaration(identifier);
836
+ if (referencedVar && !visited.has(identifier)) {
837
+ visited.add(identifier);
838
+ const declarationText = referencedVar.getVariableStatement()?.getText();
839
+ if (declarationText) {
840
+ variableDeclarations.push(declarationText);
841
+ // Recursively extract variables referenced in this declaration
842
+ const nestedVariables = extractReferencedVariables(sourceFile, referencedVar, visited);
843
+ variableDeclarations.push(...nestedVariables);
844
+ }
845
+ }
846
+ } catch {
847
+ // Variable not found in this file, skip it
848
+ }
849
+ }
850
+
851
+ return variableDeclarations;
852
+ };
853
+
854
+ /**
855
+ * Extracts import declarations that are used by the given variable declarations.
856
+ */
857
+ const extractImportsForVariables = (
858
+ sourceFile: SourceFile,
859
+ variableDeclarations: string[],
860
+ ): string[] => {
861
+ const importDeclarations: string[] = [];
862
+ const allVariableCode = variableDeclarations.join('\n');
863
+
864
+ // Get all import declarations from the source file
865
+ const imports = sourceFile.getImportDeclarations();
866
+
867
+ for (const importDecl of imports) {
868
+ const moduleSpecifier = importDecl.getModuleSpecifierValue();
869
+ // Only extract imports from @atlaskit packages (not local imports)
870
+ if (moduleSpecifier.startsWith('@atlaskit/')) {
871
+ const namedImports = importDecl.getNamedImports();
872
+ const isTypeOnlyImport = importDecl.isTypeOnly();
873
+
874
+ // Check if any of the imported names are used in the variable declarations
875
+ const usedNamedImports: string[] = [];
876
+ const usedTypeImports: string[] = [];
877
+
878
+ for (const namedImport of namedImports) {
879
+ const importName = namedImport.getAliasNode()?.getText() ?? namedImport.getName();
880
+ if (isTokenUsed(importName, [allVariableCode])) {
881
+ // Check if this specific import specifier is type-only
882
+ // by checking if the import declaration text contains "type" before this import
883
+ const importText = importDecl.getText();
884
+ const importNamePattern = new RegExp(`\\btype\\s+${importName}\\b`);
885
+ const isTypeOnly = isTypeOnlyImport || importNamePattern.test(importText);
886
+
887
+ if (isTypeOnly) {
888
+ usedTypeImports.push(importName);
889
+ } else {
890
+ usedNamedImports.push(importName);
891
+ }
892
+ }
893
+ }
894
+
895
+ // If any imports are used, create an import statement
896
+ if (usedNamedImports.length > 0 || usedTypeImports.length > 0) {
897
+ const importParts: string[] = [];
898
+ if (usedTypeImports.length > 0) {
899
+ importParts.push(`type { ${usedTypeImports.join(', ')} }`);
900
+ }
901
+ if (usedNamedImports.length > 0) {
902
+ importParts.push(`{ ${usedNamedImports.join(', ')} }`);
903
+ }
904
+ if (importParts.length > 0) {
905
+ importDeclarations.push(`import ${importParts.join(', ')} from '${moduleSpecifier}';`);
906
+ }
907
+ }
908
+ }
909
+ }
910
+
911
+ return importDeclarations;
912
+ };
913
+
775
914
  const handleXCSSProp: CodeConsolidator = ({
776
915
  sourceFile,
777
916
  importCode,
@@ -783,12 +922,25 @@ const handleXCSSProp: CodeConsolidator = ({
783
922
  const xcssValidatorfile = sourceFile
784
923
  .getProject()
785
924
  .addSourceFileAtPath(require.resolve('@atlassian/forge-ui/utils/xcssValidator'));
786
- const xcssValidator = xcssValidatorfile.getVariableDeclarationOrThrow('xcssValidator').getText();
925
+ const xcssValidatorDeclaration = xcssValidatorfile.getVariableDeclarationOrThrow('xcssValidator');
926
+ const xcssValidator = xcssValidatorDeclaration.getText();
787
927
  const XCSSPropType = xcssValidatorfile
788
928
  .getTypeAliasOrThrow('XCSSProp')
789
929
  .setIsExported(false)
790
930
  .getText();
791
931
 
932
+ // Extract variables referenced in xcssValidator
933
+ const referencedVariables = extractReferencedVariables(
934
+ xcssValidatorfile,
935
+ xcssValidatorDeclaration,
936
+ );
937
+ // Reverse to maintain dependency order (dependencies first)
938
+ const referencedVariablesCode = referencedVariables.reverse().join('\n');
939
+
940
+ // Extract imports used by the extracted variables
941
+ const variableImports = extractImportsForVariables(xcssValidatorfile, referencedVariables);
942
+ const variableImportsCode = variableImports.join('\n');
943
+
792
944
  const utilsFile = sourceFile
793
945
  .getProject()
794
946
  .addSourceFileAtPath(require.resolve('@atlassian/forge-ui/utils/xcssValidate'));
@@ -798,9 +950,13 @@ const handleXCSSProp: CodeConsolidator = ({
798
950
  }).compilerObject.outputFiles[0].text;
799
951
  const xcssValidatorVariableDeclarationCode = [
800
952
  xcssValidatorDeclarationCode,
953
+ variableImportsCode,
954
+ referencedVariablesCode,
801
955
  `const ${xcssValidator};`,
802
956
  XCSSPropType,
803
- ].join('\n');
957
+ ]
958
+ .filter((code) => !!code)
959
+ .join('\n');
804
960
 
805
961
  return [
806
962
  '/* eslint-disable @atlaskit/design-system/ensure-design-token-usage/preview */',
@@ -147,21 +147,33 @@ const updatePackageJsonWithADSComponentDependencies = (componentOutputDir: strin
147
147
  const packageJsonPath = resolve(__dirname, '..', '..', 'package.json');
148
148
  const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
149
149
 
150
- // remove all existing @atlaskit dependencies from packageJson
150
+ // Build updated dependencies: keep non-@atlaskit packages, and add/update @atlaskit packages
151
151
  const updatedDependencies = Object.entries<string>(packageJson.dependencies)
152
152
  .filter(([key]) => !key.startsWith('@atlaskit/'))
153
- .concat(
154
- Object.entries<string>(forgeUIPackageJson.dependencies).filter(([key]) =>
155
- utilizedPackages.has(key),
156
- ),
157
- )
158
- .sort(([a], [b]) => a.localeCompare(b))
159
153
  .reduce<Record<string, string>>((acc, [key, value]) => {
160
154
  acc[key] = value;
161
155
  return acc;
162
156
  }, {});
163
157
 
164
- packageJson.dependencies = updatedDependencies;
158
+ // Add @atlaskit packages that are being used
159
+ // Prefer version from forgeUIPackageJson if available, otherwise keep existing version
160
+ for (const packageName of utilizedPackages) {
161
+ if (forgeUIPackageJson.dependencies?.[packageName]) {
162
+ // Use version from forgeUIPackageJson
163
+ updatedDependencies[packageName] = forgeUIPackageJson.dependencies[packageName];
164
+ } else if (packageJson.dependencies?.[packageName]) {
165
+ // Keep existing version if not in forgeUIPackageJson
166
+ updatedDependencies[packageName] = packageJson.dependencies[packageName];
167
+ }
168
+ // If package is not in either, we skip it (shouldn't happen if codegen is working correctly)
169
+ }
170
+
171
+ // Sort dependencies alphabetically
172
+ const sortedDependencies = Object.entries(updatedDependencies).sort(([a], [b]) =>
173
+ a.localeCompare(b),
174
+ );
175
+
176
+ packageJson.dependencies = Object.fromEntries(sortedDependencies);
165
177
  fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, '\t') + '\n');
166
178
  };
167
179
  /**
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Extract component prop types from UIKit 2 components - BoxProps
5
5
  *
6
- * @codegen <<SignedSource::97f15631a172af79bb692d529c0cfdd2>>
6
+ * @codegen <<SignedSource::2aa8902478f587c656a335fdbf945043>>
7
7
  * @codegenCommand yarn workspace @atlaskit/forge-react-types codegen
8
8
  * @codegenDependency ../../../../forge-ui/src/components/UIKit/box/__generated__/index.partial.tsx <<SignedSource::8e5857e8580db0dac17ebc42ab6115c9>>
9
9
  */
@@ -67,6 +67,17 @@ declare const makeXCSSValidator: <U extends XCSSValidatorParam>(supportedXCSSPro
67
67
  export { makeXCSSValidator };
68
68
  export type { SafeCSSObject };
69
69
 
70
+ import type { BorderRadius } from '@atlaskit/primitives';
71
+ const borderRadiusTokens: BorderRadius[] = [
72
+ 'radius.xsmall',
73
+ 'radius.small',
74
+ 'radius.medium',
75
+ 'radius.large',
76
+ 'radius.xlarge',
77
+ 'radius.full',
78
+ 'radius.tile',
79
+ ];
80
+ const borderRadiusSupportedValues = [...borderRadiusTokens, 'border.radius'];
70
81
  const xcssValidator = makeXCSSValidator({
71
82
  // text related props
72
83
  textAlign: {
@@ -150,26 +161,26 @@ const xcssValidator = makeXCSSValidator({
150
161
  paddingTop: true,
151
162
 
152
163
  // other box related props
153
- borderRadius: { supportedValues: ['border.radius'] },
154
- borderBottomLeftRadius: { supportedValues: ['border.radius'] },
155
- borderBottomRightRadius: { supportedValues: ['border.radius'] },
156
- borderTopLeftRadius: { supportedValues: ['border.radius'] },
157
- borderTopRightRadius: { supportedValues: ['border.radius'] },
158
- borderEndEndRadius: { supportedValues: ['border.radius'] },
159
- borderEndStartRadius: { supportedValues: ['border.radius'] },
160
- borderStartEndRadius: { supportedValues: ['border.radius'] },
161
- borderStartStartRadius: { supportedValues: ['border.radius'] },
162
- borderWidth: { supportedValues: ['border.width'] },
163
- borderBlockWidth: { supportedValues: ['border.width'] },
164
- borderBlockEndWidth: { supportedValues: ['border.width'] },
165
- borderBlockStartWidth: { supportedValues: ['border.width'] },
166
- borderBottomWidth: { supportedValues: ['border.width'] },
167
- borderInlineWidth: { supportedValues: ['border.width'] },
168
- borderInlineEndWidth: { supportedValues: ['border.width'] },
169
- borderInlineStartWidth: { supportedValues: ['border.width'] },
170
- borderLeftWidth: { supportedValues: ['border.width'] },
171
- borderRightWidth: { supportedValues: ['border.width'] },
172
- borderTopWidth: { supportedValues: ['border.width'] },
164
+ borderRadius: { supportedValues: borderRadiusSupportedValues },
165
+ borderBottomLeftRadius: { supportedValues: borderRadiusSupportedValues },
166
+ borderBottomRightRadius: { supportedValues: borderRadiusSupportedValues },
167
+ borderTopLeftRadius: { supportedValues: borderRadiusSupportedValues },
168
+ borderTopRightRadius: { supportedValues: borderRadiusSupportedValues },
169
+ borderEndEndRadius: { supportedValues: borderRadiusSupportedValues },
170
+ borderEndStartRadius: { supportedValues: borderRadiusSupportedValues },
171
+ borderStartEndRadius: { supportedValues: borderRadiusSupportedValues },
172
+ borderStartStartRadius: { supportedValues: borderRadiusSupportedValues },
173
+ borderWidth: true,
174
+ borderBlockWidth: true,
175
+ borderBlockEndWidth: true,
176
+ borderBlockStartWidth: true,
177
+ borderBottomWidth: true,
178
+ borderInlineWidth: true,
179
+ borderInlineEndWidth: true,
180
+ borderInlineStartWidth: true,
181
+ borderLeftWidth: true,
182
+ borderRightWidth: true,
183
+ borderTopWidth: true,
173
184
 
174
185
  // other props not in tokens based props
175
186
  borderTopStyle: {
@@ -3,9 +3,9 @@
3
3
  *
4
4
  * Extract component prop types from UIKit 2 components - CodeBlockProps
5
5
  *
6
- * @codegen <<SignedSource::b751350717245ec525ad68d203d493e7>>
6
+ * @codegen <<SignedSource::6c26b81b83c693ac6c0552fd53179c16>>
7
7
  * @codegenCommand yarn workspace @atlaskit/forge-react-types codegen
8
- * @codegenDependency ../../../../forge-ui/src/components/UIKit/code/__generated__/codeblock.partial.tsx <<SignedSource::748d14fc9d5d2f63dbab15d6599bbdc3>>
8
+ * @codegenDependency ../../../../forge-ui/src/components/UIKit/code/__generated__/codeblock.partial.tsx <<SignedSource::27a16c7d91cb7ca0b0cdaa2eb9314633>>
9
9
  */
10
10
  /* eslint @repo/internal/codegen/signed-source-integrity: "warn" */
11
11
 
@@ -37,7 +37,7 @@ type PlatformCodeBlockProps = {
37
37
  *
38
38
  * @default 'text'
39
39
  */
40
- language?: 'text' | 'PHP' | 'php' | 'php3' | 'php4' | 'php5' | 'Java' | 'java' | 'CSharp' | 'csharp' | 'c#' | 'Python' | 'python' | 'py' | 'JavaScript' | 'javascript' | 'js' | 'Html' | 'html' | 'xml' | 'C++' | 'c++' | 'cpp' | 'clike' | 'Ruby' | 'ruby' | 'rb' | 'duby' | 'Objective-C' | 'objective-c' | 'objectivec' | 'obj-c' | 'objc' | 'C' | 'c' | 'Swift' | 'swift' | 'TeX' | 'tex' | 'latex' | 'Shell' | 'shell' | 'bash' | 'sh' | 'ksh' | 'zsh' | 'Scala' | 'scala' | 'Go' | 'go' | 'ActionScript' | 'actionscript' | 'actionscript3' | 'as' | 'ColdFusion' | 'coldfusion' | 'JavaFX' | 'javafx' | 'jfx' | 'VbNet' | 'vbnet' | 'vb.net' | 'vfp' | 'clipper' | 'xbase' | 'JSON' | 'json' | 'MATLAB' | 'matlab' | 'Groovy' | 'groovy' | 'SQL' | 'sql' | 'postgresql' | 'postgres' | 'plpgsql' | 'psql' | 'postgresql-console' | 'postgres-console' | 'tsql' | 't-sql' | 'mysql' | 'sqlite' | 'R' | 'r' | 'Perl' | 'perl' | 'pl' | 'Lua' | 'lua' | 'Pascal' | 'pas' | 'pascal' | 'objectpascal' | 'delphi' | 'XML' | 'TypeScript' | 'typescript' | 'ts' | 'CoffeeScript' | 'coffeescript' | 'coffee-script' | 'coffee' | 'Haskell' | 'haskell' | 'hs' | 'Puppet' | 'puppet' | 'Arduino' | 'arduino' | 'Fortran' | 'fortran' | 'Erlang' | 'erlang' | 'erl' | 'PowerShell' | 'powershell' | 'posh' | 'ps1' | 'psm1' | 'Haxe' | 'haxe' | 'hx' | 'hxsl' | 'Elixir' | 'elixir' | 'ex' | 'exs' | 'Verilog' | 'verilog' | 'v' | 'Rust' | 'rust' | 'VHDL' | 'vhdl' | 'Sass' | 'sass' | 'OCaml' | 'ocaml' | 'Dart' | 'dart' | 'CSS' | 'css' | 'reStructuredText' | 'restructuredtext' | 'rst' | 'rest' | 'Kotlin' | 'kotlin' | 'D' | 'd' | 'Octave' | 'octave' | 'QML' | 'qbs' | 'qml' | 'Prolog' | 'prolog' | 'FoxPro' | 'foxpro' | 'purebasic' | 'Scheme' | 'scheme' | 'scm' | 'CUDA' | 'cuda' | 'cu' | 'Julia' | 'julia' | 'jl' | 'Racket' | 'racket' | 'rkt' | 'Ada' | 'ada' | 'ada95' | 'ada2005' | 'Tcl' | 'tcl' | 'Mathematica' | 'mathematica' | 'mma' | 'nb' | 'Autoit' | 'autoit' | 'StandardML' | 'standardmL' | 'sml' | 'standardml' | 'Objective-J' | 'objective-j' | 'objectivej' | 'obj-j' | 'objj' | 'Smalltalk' | 'smalltalk' | 'squeak' | 'st' | 'Vala' | 'vala' | 'vapi' | 'LiveScript' | 'livescript' | 'live-script' | 'XQuery' | 'xquery' | 'xqy' | 'xq' | 'xql' | 'xqm' | 'PlainText' | 'plaintext' | 'Yaml' | 'yaml' | 'yml' | 'GraphQL' | 'graphql' | 'AppleScript' | 'applescript' | 'Clojure' | 'clojure' | 'Diff' | 'diff' | 'VisualBasic' | 'visualbasic' | 'JSX' | 'jsx' | 'TSX' | 'tsx' | 'SplunkSPL' | 'splunk-spl' | 'Dockerfile' | 'docker' | 'dockerfile' | 'HCL' | 'hcl' | 'terraform' | 'NGINX' | 'nginx' | 'Protocol Buffers' | 'protobuf' | 'proto' | 'TOML' | 'toml' | 'Handlebars' | 'handlebars' | 'mustache' | 'Gherkin' | 'gherkin' | 'cucumber' | 'ABAP' | 'abap';
40
+ language?: 'text' | 'PHP' | 'php' | 'php3' | 'php4' | 'php5' | 'Java' | 'java' | 'CSharp' | 'csharp' | 'c#' | 'Python' | 'python' | 'py' | 'JavaScript' | 'javascript' | 'js' | 'Html' | 'html' | 'xml' | 'C++' | 'c++' | 'cpp' | 'clike' | 'Ruby' | 'ruby' | 'rb' | 'duby' | 'Objective-C' | 'objective-c' | 'objectivec' | 'obj-c' | 'objc' | 'C' | 'c' | 'Swift' | 'swift' | 'TeX' | 'tex' | 'latex' | 'Shell' | 'shell' | 'bash' | 'sh' | 'ksh' | 'zsh' | 'Scala' | 'scala' | 'Go' | 'go' | 'ActionScript' | 'actionscript' | 'actionscript3' | 'as' | 'ColdFusion' | 'coldfusion' | 'JavaFX' | 'javafx' | 'jfx' | 'VbNet' | 'vbnet' | 'vb.net' | 'vfp' | 'clipper' | 'xbase' | 'JSON' | 'json' | 'MATLAB' | 'matlab' | 'Groovy' | 'groovy' | 'SQL' | 'sql' | 'postgresql' | 'postgres' | 'plpgsql' | 'psql' | 'postgresql-console' | 'postgres-console' | 'tsql' | 't-sql' | 'mysql' | 'sqlite' | 'R' | 'r' | 'Perl' | 'perl' | 'pl' | 'Lua' | 'lua' | 'Pascal' | 'pas' | 'pascal' | 'objectpascal' | 'delphi' | 'XML' | 'TypeScript' | 'typescript' | 'ts' | 'CoffeeScript' | 'coffeescript' | 'coffee-script' | 'coffee' | 'Haskell' | 'haskell' | 'hs' | 'Puppet' | 'puppet' | 'Arduino' | 'arduino' | 'Fortran' | 'fortran' | 'Erlang' | 'erlang' | 'erl' | 'PowerShell' | 'powershell' | 'posh' | 'ps1' | 'psm1' | 'Haxe' | 'haxe' | 'hx' | 'hxsl' | 'Elixir' | 'elixir' | 'ex' | 'exs' | 'Verilog' | 'verilog' | 'v' | 'Rust' | 'rust' | 'VHDL' | 'vhdl' | 'Sass' | 'sass' | 'OCaml' | 'ocaml' | 'Dart' | 'dart' | 'CSS' | 'css' | 'reStructuredText' | 'restructuredtext' | 'rst' | 'rest' | 'Kotlin' | 'kotlin' | 'D' | 'd' | 'Octave' | 'octave' | 'QML' | 'qbs' | 'qml' | 'Prolog' | 'prolog' | 'FoxPro' | 'foxpro' | 'purebasic' | 'Scheme' | 'scheme' | 'scm' | 'CUDA' | 'cuda' | 'cu' | 'Julia' | 'julia' | 'jl' | 'Racket' | 'racket' | 'rkt' | 'Ada' | 'ada' | 'ada95' | 'ada2005' | 'Tcl' | 'tcl' | 'Mathematica' | 'mathematica' | 'mma' | 'nb' | 'Autoit' | 'autoit' | 'StandardML' | 'standardmL' | 'sml' | 'standardml' | 'Objective-J' | 'objective-j' | 'objectivej' | 'obj-j' | 'objj' | 'Smalltalk' | 'smalltalk' | 'squeak' | 'st' | 'Vala' | 'vala' | 'vapi' | 'LiveScript' | 'livescript' | 'live-script' | 'XQuery' | 'xquery' | 'xqy' | 'xq' | 'xql' | 'xqm' | 'PlainText' | 'plaintext' | 'Yaml' | 'yaml' | 'yml' | 'GraphQL' | 'graphql' | 'AppleScript' | 'applescript' | 'Clojure' | 'clojure' | 'Diff' | 'diff' | 'VisualBasic' | 'visualbasic' | 'JSX' | 'jsx' | 'TSX' | 'tsx' | 'SplunkSPL' | 'splunk-spl' | 'Dockerfile' | 'docker' | 'dockerfile' | 'HCL' | 'hcl' | 'terraform' | 'NGINX' | 'nginx' | 'Protocol Buffers' | 'protobuf' | 'proto' | 'TOML' | 'toml' | 'Handlebars' | 'handlebars' | 'mustache' | 'Gherkin' | 'gherkin' | 'cucumber' | 'ABAP' | 'abap' | 'Markdown' | 'markdown';
41
41
  /**
42
42
  * Comma delimited lines to highlight.
43
43
  *
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Extract component prop types from UIKit 2 components - PressableProps
5
5
  *
6
- * @codegen <<SignedSource::5ee0d1c46a3e208ce25e8281bd363c25>>
6
+ * @codegen <<SignedSource::7158030e15c00ca33456e783cffd4db2>>
7
7
  * @codegenCommand yarn workspace @atlaskit/forge-react-types codegen
8
8
  * @codegenDependency ../../../../forge-ui/src/components/UIKit/pressable/index.tsx <<SignedSource::e23b1db22ac327f82c64213c36751b27>>
9
9
  */
@@ -67,6 +67,17 @@ declare const makeXCSSValidator: <U extends XCSSValidatorParam>(supportedXCSSPro
67
67
  export { makeXCSSValidator };
68
68
  export type { SafeCSSObject };
69
69
 
70
+ import type { BorderRadius } from '@atlaskit/primitives';
71
+ const borderRadiusTokens: BorderRadius[] = [
72
+ 'radius.xsmall',
73
+ 'radius.small',
74
+ 'radius.medium',
75
+ 'radius.large',
76
+ 'radius.xlarge',
77
+ 'radius.full',
78
+ 'radius.tile',
79
+ ];
80
+ const borderRadiusSupportedValues = [...borderRadiusTokens, 'border.radius'];
70
81
  const xcssValidator = makeXCSSValidator({
71
82
  // text related props
72
83
  textAlign: {
@@ -150,26 +161,26 @@ const xcssValidator = makeXCSSValidator({
150
161
  paddingTop: true,
151
162
 
152
163
  // other box related props
153
- borderRadius: { supportedValues: ['border.radius'] },
154
- borderBottomLeftRadius: { supportedValues: ['border.radius'] },
155
- borderBottomRightRadius: { supportedValues: ['border.radius'] },
156
- borderTopLeftRadius: { supportedValues: ['border.radius'] },
157
- borderTopRightRadius: { supportedValues: ['border.radius'] },
158
- borderEndEndRadius: { supportedValues: ['border.radius'] },
159
- borderEndStartRadius: { supportedValues: ['border.radius'] },
160
- borderStartEndRadius: { supportedValues: ['border.radius'] },
161
- borderStartStartRadius: { supportedValues: ['border.radius'] },
162
- borderWidth: { supportedValues: ['border.width'] },
163
- borderBlockWidth: { supportedValues: ['border.width'] },
164
- borderBlockEndWidth: { supportedValues: ['border.width'] },
165
- borderBlockStartWidth: { supportedValues: ['border.width'] },
166
- borderBottomWidth: { supportedValues: ['border.width'] },
167
- borderInlineWidth: { supportedValues: ['border.width'] },
168
- borderInlineEndWidth: { supportedValues: ['border.width'] },
169
- borderInlineStartWidth: { supportedValues: ['border.width'] },
170
- borderLeftWidth: { supportedValues: ['border.width'] },
171
- borderRightWidth: { supportedValues: ['border.width'] },
172
- borderTopWidth: { supportedValues: ['border.width'] },
164
+ borderRadius: { supportedValues: borderRadiusSupportedValues },
165
+ borderBottomLeftRadius: { supportedValues: borderRadiusSupportedValues },
166
+ borderBottomRightRadius: { supportedValues: borderRadiusSupportedValues },
167
+ borderTopLeftRadius: { supportedValues: borderRadiusSupportedValues },
168
+ borderTopRightRadius: { supportedValues: borderRadiusSupportedValues },
169
+ borderEndEndRadius: { supportedValues: borderRadiusSupportedValues },
170
+ borderEndStartRadius: { supportedValues: borderRadiusSupportedValues },
171
+ borderStartEndRadius: { supportedValues: borderRadiusSupportedValues },
172
+ borderStartStartRadius: { supportedValues: borderRadiusSupportedValues },
173
+ borderWidth: true,
174
+ borderBlockWidth: true,
175
+ borderBlockEndWidth: true,
176
+ borderBlockStartWidth: true,
177
+ borderBottomWidth: true,
178
+ borderInlineWidth: true,
179
+ borderInlineEndWidth: true,
180
+ borderInlineStartWidth: true,
181
+ borderLeftWidth: true,
182
+ borderRightWidth: true,
183
+ borderTopWidth: true,
173
184
 
174
185
  // other props not in tokens based props
175
186
  borderTopStyle: {