@atlaskit/eslint-plugin-platform 2.9.1 → 2.9.3

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 (35) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/index.js +15 -3
  3. package/dist/cjs/rules/compiled/expand-motion-shorthand/index.js +281 -0
  4. package/dist/cjs/rules/compiled/no-css-prop-in-object-spread/index.js +162 -0
  5. package/dist/cjs/rules/compiled/use-motion-token-values/index.js +506 -0
  6. package/dist/cjs/rules/editor-example-type-import-required/index.js +321 -0
  7. package/dist/cjs/rules/no-xcss-in-cx/index.js +221 -0
  8. package/dist/cjs/rules/visit-example-type-import-required/index.js +23 -13
  9. package/dist/es2019/index.js +15 -3
  10. package/dist/es2019/rules/compiled/expand-motion-shorthand/index.js +239 -0
  11. package/dist/es2019/rules/compiled/no-css-prop-in-object-spread/index.js +136 -0
  12. package/dist/es2019/rules/compiled/use-motion-token-values/index.js +444 -0
  13. package/dist/es2019/rules/editor-example-type-import-required/index.js +286 -0
  14. package/dist/es2019/rules/no-xcss-in-cx/index.js +187 -0
  15. package/dist/es2019/rules/visit-example-type-import-required/index.js +23 -14
  16. package/dist/esm/index.js +15 -3
  17. package/dist/esm/rules/compiled/expand-motion-shorthand/index.js +275 -0
  18. package/dist/esm/rules/compiled/no-css-prop-in-object-spread/index.js +156 -0
  19. package/dist/esm/rules/compiled/use-motion-token-values/index.js +499 -0
  20. package/dist/esm/rules/editor-example-type-import-required/index.js +314 -0
  21. package/dist/esm/rules/no-xcss-in-cx/index.js +216 -0
  22. package/dist/esm/rules/visit-example-type-import-required/index.js +23 -13
  23. package/dist/types/index.d.ts +282 -243
  24. package/dist/types/rules/compiled/expand-motion-shorthand/index.d.ts +3 -0
  25. package/dist/types/rules/compiled/no-css-prop-in-object-spread/index.d.ts +3 -0
  26. package/dist/types/rules/compiled/use-motion-token-values/index.d.ts +3 -0
  27. package/dist/types/rules/editor-example-type-import-required/index.d.ts +4 -0
  28. package/dist/types/rules/no-xcss-in-cx/index.d.ts +31 -0
  29. package/dist/types-ts4.5/index.d.ts +226 -211
  30. package/dist/types-ts4.5/rules/compiled/expand-motion-shorthand/index.d.ts +3 -0
  31. package/dist/types-ts4.5/rules/compiled/no-css-prop-in-object-spread/index.d.ts +3 -0
  32. package/dist/types-ts4.5/rules/compiled/use-motion-token-values/index.d.ts +3 -0
  33. package/dist/types-ts4.5/rules/editor-example-type-import-required/index.d.ts +4 -0
  34. package/dist/types-ts4.5/rules/no-xcss-in-cx/index.d.ts +31 -0
  35. package/package.json +2 -1
@@ -0,0 +1,31 @@
1
+ import type { Rule } from 'eslint';
2
+ /**
3
+ * Disallows passing xcss() results into cx() when used in an xcss prop.
4
+ *
5
+ * xcss() from @atlaskit/primitives and cx() from @atlaskit/css / @compiled/react
6
+ * are incompatible — xcss() produces an opaque StyleRule object, while cx()
7
+ * expects Compiled atomic class name strings. Mixing them causes runtime errors.
8
+ * xcss() results must never be passed to cx(), whether inline or pre-defined.
9
+ *
10
+ * ❌ Wrong — xcss() called inline inside cx():
11
+ * xcss={cx(xcss({ color: 'red' }), xcss({ fontWeight: 'bold' }))}
12
+ *
13
+ * ❌ Also wrong — xcss() results pre-defined but still passed into cx():
14
+ * const baseStyles = xcss({ color: 'red' });
15
+ * const boldStyles = xcss({ fontWeight: 'bold' });
16
+ * xcss={cx(baseStyles, boldStyles)}
17
+ *
18
+ * ✅ Correct — pass xcss() results directly to the xcss prop (no cx()):
19
+ * const baseStyles = xcss({ color: 'red' });
20
+ * xcss={baseStyles}
21
+ *
22
+ * ✅ Correct — use cssMap() + cx() (cssMap is compatible with cx()):
23
+ * const styles = cssMap({ base: { color: 'red' } });
24
+ * xcss={cx(styles.base, condition && styles.focused)}
25
+ *
26
+ * This rule is import-aware: it only flags xcss() calls (inline or via variable)
27
+ * imported from @atlaskit/primitives inside cx() calls imported from @atlaskit/css
28
+ * or @compiled/react that appear inside an xcss prop.
29
+ */
30
+ declare const rule: Rule.RuleModule;
31
+ export default rule;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@atlaskit/eslint-plugin-platform",
3
3
  "description": "The essential plugin for use with Atlassian frontend platform tools",
4
- "version": "2.9.1",
4
+ "version": "2.9.3",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "atlassian": {
7
7
  "team": "Build Infra",
@@ -31,6 +31,7 @@
31
31
  "atlaskit:src": "src/index.tsx",
32
32
  "dependencies": {
33
33
  "@atlaskit/eslint-utils": "^2.0.0",
34
+ "@atlaskit/tokens": "^13.0.0",
34
35
  "@babel/runtime": "^7.0.0",
35
36
  "@compiled/eslint-plugin": "^0.18.2",
36
37
  "@manypkg/find-root": "^1.1.0",