@atlaskit/eslint-plugin-design-system 14.0.0 → 14.1.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 (865) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +1 -0
  3. package/dist/cjs/presets/all-flat.codegen.js +2 -1
  4. package/dist/cjs/presets/all.codegen.js +2 -1
  5. package/dist/cjs/presets/recommended-flat.codegen.js +2 -1
  6. package/dist/cjs/presets/recommended.codegen.js +2 -1
  7. package/dist/cjs/rules/consistent-css-prop-usage/index.js +5 -5
  8. package/dist/cjs/rules/ensure-design-token-usage/border-width-value-to-token.js +12 -0
  9. package/dist/cjs/rules/ensure-design-token-usage/clean-comments.js +13 -0
  10. package/dist/cjs/rules/ensure-design-token-usage/color.js +13 -11
  11. package/dist/cjs/rules/ensure-design-token-usage/convert-hyphenated-name-to-camel-case.js +12 -0
  12. package/dist/cjs/rules/ensure-design-token-usage/find-parent-node-for-line.js +21 -0
  13. package/dist/cjs/rules/ensure-design-token-usage/get-elevation-token-example.js +9 -0
  14. package/dist/cjs/rules/ensure-design-token-usage/get-raw-expression.js +22 -0
  15. package/dist/cjs/rules/ensure-design-token-usage/includes-token-string.js +9 -0
  16. package/dist/cjs/rules/ensure-design-token-usage/index.js +21 -11
  17. package/dist/cjs/rules/ensure-design-token-usage/insert-tokens-import.js +10 -0
  18. package/dist/cjs/rules/ensure-design-token-usage/is-auto.js +14 -0
  19. package/dist/cjs/rules/ensure-design-token-usage/is-border-radius.js +10 -0
  20. package/dist/cjs/rules/ensure-design-token-usage/is-token-value-string.js +13 -0
  21. package/dist/cjs/rules/ensure-design-token-usage/is-zero.js +19 -0
  22. package/dist/cjs/rules/ensure-design-token-usage/normalise-value.js +29 -0
  23. package/dist/cjs/rules/ensure-design-token-usage/radius-value-to-token.js +14 -0
  24. package/dist/cjs/rules/ensure-design-token-usage/shape.js +0 -20
  25. package/dist/cjs/rules/ensure-design-token-usage/spacing.js +12 -7
  26. package/dist/cjs/rules/ensure-design-token-usage/split-css-properties.js +31 -0
  27. package/dist/cjs/rules/ensure-design-token-usage/split-shorthand-values.js +20 -0
  28. package/dist/cjs/rules/ensure-design-token-usage/utils.js +20 -164
  29. package/dist/cjs/rules/icon-label/index.js +4 -4
  30. package/dist/cjs/rules/index.codegen.js +3 -1
  31. package/dist/cjs/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-add-event-listener.js +2 -2
  32. package/dist/cjs/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-bind-all.js +2 -2
  33. package/dist/cjs/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-bind.js +2 -2
  34. package/dist/cjs/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-jsx-attribute.js +4 -4
  35. package/dist/cjs/rules/no-direct-use-of-web-platform-drag-and-drop/shared/blocked-event-name-lookup.js +7 -0
  36. package/dist/cjs/rules/no-direct-use-of-web-platform-drag-and-drop/shared/blocked-jsx-attribute-lookup.js +7 -0
  37. package/dist/cjs/rules/no-direct-use-of-web-platform-drag-and-drop/shared/is-blocked-event-binding.js +2 -2
  38. package/dist/cjs/rules/no-html-anchor/index.js +4 -3
  39. package/dist/cjs/rules/no-html-anchor/node-types/jsx-element/index.js +2 -4
  40. package/dist/cjs/rules/no-html-anchor/node-types/supported.js +3 -5
  41. package/dist/cjs/rules/no-html-button/index.js +4 -3
  42. package/dist/cjs/rules/no-html-button/node-types/jsx-element/index.js +2 -4
  43. package/dist/cjs/rules/no-html-button/node-types/supported.js +3 -5
  44. package/dist/cjs/rules/no-html-checkbox/index.js +2 -2
  45. package/dist/cjs/rules/no-html-checkbox/node-types/jsx-element/index.js +2 -4
  46. package/dist/cjs/rules/no-html-checkbox/node-types/supported.js +3 -5
  47. package/dist/cjs/rules/no-html-code/index.js +4 -3
  48. package/dist/cjs/rules/no-html-code/node-types/jsx-element/index.js +2 -4
  49. package/dist/cjs/rules/no-html-code/node-types/supported.js +3 -5
  50. package/dist/cjs/rules/no-html-heading/index.js +4 -3
  51. package/dist/cjs/rules/no-html-heading/node-types/jsx-element/index.js +2 -4
  52. package/dist/cjs/rules/no-html-heading/node-types/supported.js +3 -5
  53. package/dist/cjs/rules/no-html-image/index.js +4 -3
  54. package/dist/cjs/rules/no-html-image/node-types/jsx-element/index.js +2 -4
  55. package/dist/cjs/rules/no-html-image/node-types/supported.js +3 -5
  56. package/dist/cjs/rules/no-html-radio/index.js +2 -2
  57. package/dist/cjs/rules/no-html-radio/node-types/jsx-element/index.js +2 -4
  58. package/dist/cjs/rules/no-html-radio/node-types/supported.js +3 -5
  59. package/dist/cjs/rules/no-html-range/index.js +2 -2
  60. package/dist/cjs/rules/no-html-range/node-types/jsx-element/index.js +2 -4
  61. package/dist/cjs/rules/no-html-range/node-types/supported.js +3 -5
  62. package/dist/cjs/rules/no-html-select/index.js +4 -3
  63. package/dist/cjs/rules/no-html-select/node-types/jsx-element/index.js +2 -4
  64. package/dist/cjs/rules/no-html-select/node-types/supported.js +3 -5
  65. package/dist/cjs/rules/no-html-text-input/index.js +2 -2
  66. package/dist/cjs/rules/no-html-text-input/node-types/jsx-element/index.js +2 -4
  67. package/dist/cjs/rules/no-html-text-input/node-types/supported.js +3 -5
  68. package/dist/cjs/rules/no-html-textarea/index.js +4 -3
  69. package/dist/cjs/rules/no-html-textarea/node-types/jsx-element/index.js +2 -4
  70. package/dist/cjs/rules/no-html-textarea/node-types/supported.js +3 -5
  71. package/dist/cjs/rules/no-icon-spacing-prop/get-css-map-key.js +13 -0
  72. package/dist/cjs/rules/no-icon-spacing-prop/get-icon-size.js +23 -0
  73. package/dist/cjs/rules/no-icon-spacing-prop/get-spacing-attribute.js +18 -0
  74. package/dist/cjs/rules/no-icon-spacing-prop/get-static-attribute-value.js +15 -0
  75. package/dist/cjs/rules/no-icon-spacing-prop/has-spread-props.js +14 -0
  76. package/dist/cjs/rules/no-icon-spacing-prop/index.js +24 -14
  77. package/dist/cjs/rules/no-icon-spacing-prop/spacing-to-padding.js +20 -0
  78. package/dist/cjs/rules/no-icon-spacing-prop/upsert-css-map-import.js +52 -0
  79. package/dist/cjs/rules/no-icon-spacing-prop/upsert-css-map-variable.js +58 -0
  80. package/dist/cjs/rules/no-icon-spacing-prop/upsert-flex-import.js +59 -0
  81. package/dist/cjs/rules/no-icon-spacing-prop/upsert-token-import.js +41 -0
  82. package/dist/cjs/rules/no-invalid-css-map/get-css-map-object.js +18 -0
  83. package/dist/cjs/rules/no-invalid-css-map/index.js +2 -1
  84. package/dist/cjs/rules/no-invalid-css-map/utils.js +1 -13
  85. package/dist/cjs/rules/no-physical-properties/index.js +5 -5
  86. package/dist/cjs/rules/no-physical-properties/logical-physical-map.js +1 -35
  87. package/dist/cjs/rules/no-physical-properties/physical-logical-map.js +40 -0
  88. package/dist/cjs/rules/no-placeholder/index.js +2 -4
  89. package/dist/cjs/rules/no-readonly-or-disabled-inputs/index.js +130 -0
  90. package/dist/cjs/rules/no-unsafe-design-token-usage/index.js +2 -1
  91. package/dist/cjs/rules/no-unsafe-style-overrides/index.js +3 -3
  92. package/dist/cjs/rules/prefer-primitives/utils.js +3 -3
  93. package/dist/cjs/rules/prefer-primitives/valid-primitive-elements.js +7 -0
  94. package/dist/cjs/rules/use-heading/index.js +2 -2
  95. package/dist/cjs/rules/use-heading/transformers/allowed-attrs.js +7 -0
  96. package/dist/cjs/rules/use-heading/transformers/common.js +1 -14
  97. package/dist/cjs/rules/use-heading/transformers/native-elements.js +12 -12
  98. package/dist/cjs/rules/use-heading/transformers/update-test-id-attribute-fix.js +15 -0
  99. package/dist/cjs/rules/use-href-in-link-item/get-unique-button-item-name.js +28 -0
  100. package/dist/cjs/rules/use-href-in-link-item/has-import-of-name.js +17 -0
  101. package/dist/cjs/rules/use-href-in-link-item/index.js +9 -5
  102. package/dist/cjs/rules/use-href-in-link-item/insert-button-item-default-import.js +9 -0
  103. package/dist/cjs/rules/use-href-in-link-item/insert-button-item-import.js +10 -0
  104. package/dist/cjs/rules/use-href-in-link-item/utils.js +1 -40
  105. package/dist/cjs/rules/use-latest-xcss-syntax/index.js +2 -2
  106. package/dist/cjs/rules/use-latest-xcss-syntax/transformers/style-property/index.js +8 -8
  107. package/dist/cjs/rules/use-latest-xcss-syntax-typography/index.js +9 -7
  108. package/dist/cjs/rules/use-primitives/index.js +4 -3
  109. package/dist/cjs/rules/use-primitives/transformers/compiled-styled/{supported.js → attributes.js} +1 -2
  110. package/dist/cjs/rules/use-primitives/transformers/compiled-styled/convert-jsx-call-site.js +2 -4
  111. package/dist/cjs/rules/use-primitives/transformers/compiled-styled/elements.js +7 -0
  112. package/dist/cjs/rules/use-primitives/transformers/compiled-styled/find-valid-styled-component-call.js +2 -4
  113. package/dist/cjs/rules/use-primitives/transformers/compiled-styled/index.js +7 -8
  114. package/dist/cjs/rules/use-primitives/transformers/css-to-xcss.js +35 -43
  115. package/dist/cjs/rules/use-primitives/transformers/dimensions-map.js +9 -0
  116. package/dist/cjs/rules/use-primitives/transformers/emotion-css/{supported.js → attributes.js} +1 -2
  117. package/dist/cjs/rules/use-primitives/transformers/emotion-css/elements.js +7 -0
  118. package/dist/cjs/rules/use-primitives/transformers/emotion-css/index.js +23 -19
  119. package/dist/cjs/rules/use-primitives/transformers/space-token-map.js +8 -0
  120. package/dist/cjs/rules/use-primitives/transformers/space-token-positive-map.js +8 -0
  121. package/dist/cjs/rules/use-primitives/transformers/supported-dimension-attributes-map.js +15 -0
  122. package/dist/cjs/rules/use-primitives/utils/convert-ast-object-expression-to-js-object.js +3 -3
  123. package/dist/cjs/rules/use-primitives/utils/is-valid-css-properties-to-transform.js +5 -6
  124. package/dist/cjs/rules/use-primitives/utils/spread-syntax.js +7 -0
  125. package/dist/cjs/rules/use-primitives/utils/validate-styles.js +15 -14
  126. package/dist/cjs/rules/use-primitives-text/index.js +8 -5
  127. package/dist/cjs/rules/use-primitives-text/transformers/add-color-inherit-attribute-fix.js +14 -0
  128. package/dist/cjs/rules/use-primitives-text/transformers/allowed-attrs.js +7 -0
  129. package/dist/cjs/rules/use-primitives-text/transformers/common.js +1 -47
  130. package/dist/cjs/rules/use-primitives-text/transformers/emphasis-elements.js +13 -12
  131. package/dist/cjs/rules/use-primitives-text/transformers/has-text-children-only.js +29 -0
  132. package/dist/cjs/rules/use-primitives-text/transformers/paragraph-elements.js +21 -20
  133. package/dist/cjs/rules/use-primitives-text/transformers/span-elements.js +14 -12
  134. package/dist/cjs/rules/use-primitives-text/transformers/strong-elements.js +13 -12
  135. package/dist/cjs/rules/use-primitives-text/transformers/update-test-id-attribute-fix.js +15 -0
  136. package/dist/cjs/rules/use-spotlight-package/index.js +2 -2
  137. package/dist/cjs/rules/use-tokens-shape/transformers/index.js +8 -9
  138. package/dist/cjs/rules/use-tokens-space/index.js +6 -6
  139. package/dist/cjs/rules/use-tokens-space/transformers/style-property/index.js +8 -9
  140. package/dist/cjs/rules/use-tokens-typography/convert-property-node-to-stringable-node.js +13 -0
  141. package/dist/cjs/rules/use-tokens-typography/find-font-family-token-for-value.js +17 -0
  142. package/dist/cjs/rules/use-tokens-typography/get-literal-property.js +13 -0
  143. package/dist/cjs/rules/use-tokens-typography/insert-tokens-import.js +13 -0
  144. package/dist/cjs/rules/use-tokens-typography/is-code-font-family.js +10 -0
  145. package/dist/cjs/rules/use-tokens-typography/is-font-family.js +10 -0
  146. package/dist/cjs/rules/use-tokens-typography/is-font-size-small.js +10 -0
  147. package/dist/cjs/rules/use-tokens-typography/is-font-size.js +10 -0
  148. package/dist/cjs/rules/use-tokens-typography/is-typography-property.js +10 -0
  149. package/dist/cjs/rules/use-tokens-typography/is-valid-property-node.js +13 -0
  150. package/dist/cjs/rules/use-tokens-typography/is-valid-typography-token.js +16 -0
  151. package/dist/cjs/rules/use-tokens-typography/not-undefined.js +9 -0
  152. package/dist/cjs/rules/use-tokens-typography/transformers/banned-properties.js +2 -1
  153. package/dist/cjs/rules/use-tokens-typography/transformers/font-family.js +8 -6
  154. package/dist/cjs/rules/use-tokens-typography/transformers/font-weight.js +6 -4
  155. package/dist/cjs/rules/use-tokens-typography/transformers/style-object.js +33 -22
  156. package/dist/cjs/rules/use-tokens-typography/transformers/untokenized-properties.js +2 -1
  157. package/dist/cjs/rules/use-tokens-typography/typography-properties.js +7 -0
  158. package/dist/cjs/rules/use-tokens-typography/utils.js +8 -73
  159. package/dist/cjs/rules/use-visually-hidden/fix-jsx.js +4 -4
  160. package/dist/cjs/rules/use-visually-hidden/fix-vanilla.js +4 -4
  161. package/dist/cjs/rules/use-visually-hidden/get-first-import.js +14 -0
  162. package/dist/cjs/rules/use-visually-hidden/index.js +4 -2
  163. package/dist/cjs/rules/use-visually-hidden/make-template-literal-into-entries.js +18 -0
  164. package/dist/cjs/rules/use-visually-hidden/utils.js +1 -23
  165. package/dist/cjs/rules/utils/find-prop.js +12 -0
  166. package/dist/cjs/rules/utils/get-imported-node-by-source.js +18 -0
  167. package/dist/cjs/rules/utils/{get-import-node-by-source.js → get-module-of-identifier.js} +1 -14
  168. package/dist/cjs/rules/utils/is-child-of-type.js +10 -0
  169. package/dist/cjs/rules/utils/is-color.js +1 -5
  170. package/dist/cjs/rules/utils/is-css-in-js-template-node.js +9 -0
  171. package/dist/cjs/rules/utils/is-current-surface-custom-property-name.js +10 -0
  172. package/dist/cjs/rules/utils/is-decendant-of-global-token.js +16 -0
  173. package/dist/cjs/rules/utils/is-decendant-of-primitive.js +25 -0
  174. package/dist/cjs/rules/utils/is-decendant-of-style-jsx-attribute.js +16 -0
  175. package/dist/cjs/rules/utils/is-decendant-of-svg-element.js +19 -0
  176. package/dist/cjs/rules/utils/is-decendant-of-type.js +16 -0
  177. package/dist/cjs/rules/utils/is-decendant-of-xcss-block.js +17 -0
  178. package/dist/cjs/rules/utils/is-node.js +9 -84
  179. package/dist/cjs/rules/utils/is-property-key.js +15 -0
  180. package/dist/cjs/rules/utils/jsx.js +0 -7
  181. package/dist/es2019/presets/all-flat.codegen.js +2 -1
  182. package/dist/es2019/presets/all.codegen.js +2 -1
  183. package/dist/es2019/presets/recommended-flat.codegen.js +2 -1
  184. package/dist/es2019/presets/recommended.codegen.js +2 -1
  185. package/dist/es2019/rules/consistent-css-prop-usage/index.js +2 -2
  186. package/dist/es2019/rules/ensure-design-token-usage/border-width-value-to-token.js +2 -0
  187. package/dist/es2019/rules/ensure-design-token-usage/clean-comments.js +7 -0
  188. package/dist/es2019/rules/ensure-design-token-usage/color.js +6 -9
  189. package/dist/es2019/rules/ensure-design-token-usage/convert-hyphenated-name-to-camel-case.js +4 -0
  190. package/dist/es2019/rules/ensure-design-token-usage/find-parent-node-for-line.js +15 -0
  191. package/dist/es2019/rules/ensure-design-token-usage/get-elevation-token-example.js +8 -0
  192. package/dist/es2019/rules/ensure-design-token-usage/get-raw-expression.js +12 -0
  193. package/dist/es2019/rules/ensure-design-token-usage/includes-token-string.js +3 -0
  194. package/dist/es2019/rules/ensure-design-token-usage/index.js +12 -2
  195. package/dist/es2019/rules/ensure-design-token-usage/insert-tokens-import.js +4 -0
  196. package/dist/es2019/rules/ensure-design-token-usage/is-auto.js +8 -0
  197. package/dist/es2019/rules/ensure-design-token-usage/is-border-radius.js +4 -0
  198. package/dist/es2019/rules/ensure-design-token-usage/is-token-value-string.js +7 -0
  199. package/dist/es2019/rules/ensure-design-token-usage/is-zero.js +13 -0
  200. package/dist/es2019/rules/ensure-design-token-usage/normalise-value.js +23 -0
  201. package/dist/es2019/rules/ensure-design-token-usage/radius-value-to-token.js +6 -0
  202. package/dist/es2019/rules/ensure-design-token-usage/shape.js +0 -11
  203. package/dist/es2019/rules/ensure-design-token-usage/spacing.js +6 -1
  204. package/dist/es2019/rules/ensure-design-token-usage/split-css-properties.js +15 -0
  205. package/dist/es2019/rules/ensure-design-token-usage/split-shorthand-values.js +14 -0
  206. package/dist/es2019/rules/ensure-design-token-usage/utils.js +13 -133
  207. package/dist/es2019/rules/icon-label/index.js +1 -1
  208. package/dist/es2019/rules/index.codegen.js +3 -1
  209. package/dist/es2019/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-add-event-listener.js +1 -1
  210. package/dist/es2019/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-bind-all.js +1 -1
  211. package/dist/es2019/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-bind.js +1 -1
  212. package/dist/es2019/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-jsx-attribute.js +2 -2
  213. package/dist/es2019/rules/no-direct-use-of-web-platform-drag-and-drop/shared/blocked-event-name-lookup.js +1 -0
  214. package/dist/es2019/rules/no-direct-use-of-web-platform-drag-and-drop/shared/blocked-jsx-attribute-lookup.js +1 -0
  215. package/dist/es2019/rules/no-direct-use-of-web-platform-drag-and-drop/shared/is-blocked-event-binding.js +1 -1
  216. package/dist/es2019/rules/no-html-anchor/index.js +2 -1
  217. package/dist/es2019/rules/no-html-anchor/node-types/jsx-element/index.js +2 -2
  218. package/dist/es2019/rules/no-html-anchor/node-types/supported.js +3 -3
  219. package/dist/es2019/rules/no-html-button/index.js +2 -1
  220. package/dist/es2019/rules/no-html-button/node-types/jsx-element/index.js +2 -2
  221. package/dist/es2019/rules/no-html-button/node-types/supported.js +3 -3
  222. package/dist/es2019/rules/no-html-checkbox/index.js +1 -1
  223. package/dist/es2019/rules/no-html-checkbox/node-types/jsx-element/index.js +2 -2
  224. package/dist/es2019/rules/no-html-checkbox/node-types/supported.js +3 -3
  225. package/dist/es2019/rules/no-html-code/index.js +2 -1
  226. package/dist/es2019/rules/no-html-code/node-types/jsx-element/index.js +2 -2
  227. package/dist/es2019/rules/no-html-code/node-types/supported.js +3 -3
  228. package/dist/es2019/rules/no-html-heading/index.js +2 -1
  229. package/dist/es2019/rules/no-html-heading/node-types/jsx-element/index.js +2 -2
  230. package/dist/es2019/rules/no-html-heading/node-types/supported.js +3 -3
  231. package/dist/es2019/rules/no-html-image/index.js +2 -1
  232. package/dist/es2019/rules/no-html-image/node-types/jsx-element/index.js +2 -2
  233. package/dist/es2019/rules/no-html-image/node-types/supported.js +3 -3
  234. package/dist/es2019/rules/no-html-radio/index.js +1 -1
  235. package/dist/es2019/rules/no-html-radio/node-types/jsx-element/index.js +2 -2
  236. package/dist/es2019/rules/no-html-radio/node-types/supported.js +3 -3
  237. package/dist/es2019/rules/no-html-range/index.js +1 -1
  238. package/dist/es2019/rules/no-html-range/node-types/jsx-element/index.js +2 -2
  239. package/dist/es2019/rules/no-html-range/node-types/supported.js +3 -3
  240. package/dist/es2019/rules/no-html-select/index.js +2 -1
  241. package/dist/es2019/rules/no-html-select/node-types/jsx-element/index.js +2 -2
  242. package/dist/es2019/rules/no-html-select/node-types/supported.js +3 -3
  243. package/dist/es2019/rules/no-html-text-input/index.js +1 -1
  244. package/dist/es2019/rules/no-html-text-input/node-types/jsx-element/index.js +2 -2
  245. package/dist/es2019/rules/no-html-text-input/node-types/supported.js +3 -3
  246. package/dist/es2019/rules/no-html-textarea/index.js +2 -1
  247. package/dist/es2019/rules/no-html-textarea/node-types/jsx-element/index.js +2 -2
  248. package/dist/es2019/rules/no-html-textarea/node-types/supported.js +3 -3
  249. package/dist/es2019/rules/no-icon-spacing-prop/get-css-map-key.js +7 -0
  250. package/dist/es2019/rules/no-icon-spacing-prop/get-icon-size.js +16 -0
  251. package/dist/es2019/rules/no-icon-spacing-prop/get-spacing-attribute.js +11 -0
  252. package/dist/es2019/rules/no-icon-spacing-prop/get-static-attribute-value.js +9 -0
  253. package/dist/es2019/rules/no-icon-spacing-prop/has-spread-props.js +6 -0
  254. package/dist/es2019/rules/no-icon-spacing-prop/index.js +11 -1
  255. package/dist/es2019/rules/no-icon-spacing-prop/spacing-to-padding.js +14 -0
  256. package/dist/es2019/rules/no-icon-spacing-prop/upsert-css-map-import.js +36 -0
  257. package/dist/es2019/rules/no-icon-spacing-prop/upsert-css-map-variable.js +48 -0
  258. package/dist/es2019/rules/no-icon-spacing-prop/upsert-flex-import.js +41 -0
  259. package/dist/es2019/rules/no-icon-spacing-prop/upsert-token-import.js +29 -0
  260. package/dist/es2019/rules/no-invalid-css-map/get-css-map-object.js +12 -0
  261. package/dist/es2019/rules/no-invalid-css-map/index.js +2 -1
  262. package/dist/es2019/rules/no-invalid-css-map/utils.js +0 -12
  263. package/dist/es2019/rules/no-physical-properties/index.js +1 -1
  264. package/dist/es2019/rules/no-physical-properties/logical-physical-map.js +0 -34
  265. package/dist/es2019/rules/no-physical-properties/physical-logical-map.js +34 -0
  266. package/dist/es2019/rules/no-placeholder/index.js +2 -2
  267. package/dist/es2019/rules/no-readonly-or-disabled-inputs/index.js +112 -0
  268. package/dist/es2019/rules/no-unsafe-design-token-usage/index.js +2 -1
  269. package/dist/es2019/rules/no-unsafe-style-overrides/index.js +1 -1
  270. package/dist/es2019/rules/prefer-primitives/utils.js +1 -1
  271. package/dist/es2019/rules/prefer-primitives/valid-primitive-elements.js +1 -0
  272. package/dist/es2019/rules/use-heading/index.js +1 -1
  273. package/dist/es2019/rules/use-heading/transformers/allowed-attrs.js +1 -0
  274. package/dist/es2019/rules/use-heading/transformers/common.js +1 -9
  275. package/dist/es2019/rules/use-heading/transformers/native-elements.js +11 -9
  276. package/dist/es2019/rules/use-heading/transformers/update-test-id-attribute-fix.js +10 -0
  277. package/dist/es2019/rules/use-href-in-link-item/get-unique-button-item-name.js +16 -0
  278. package/dist/es2019/rules/use-href-in-link-item/has-import-of-name.js +11 -0
  279. package/dist/es2019/rules/use-href-in-link-item/index.js +5 -1
  280. package/dist/es2019/rules/use-href-in-link-item/insert-button-item-default-import.js +1 -0
  281. package/dist/es2019/rules/use-href-in-link-item/insert-button-item-import.js +4 -0
  282. package/dist/es2019/rules/use-href-in-link-item/utils.js +0 -31
  283. package/dist/es2019/rules/use-latest-xcss-syntax/index.js +1 -1
  284. package/dist/es2019/rules/use-latest-xcss-syntax/transformers/style-property/index.js +7 -5
  285. package/dist/es2019/rules/use-latest-xcss-syntax-typography/index.js +3 -1
  286. package/dist/es2019/rules/use-primitives/index.js +2 -1
  287. package/dist/es2019/rules/use-primitives/transformers/compiled-styled/{supported.js → attributes.js} +0 -1
  288. package/dist/es2019/rules/use-primitives/transformers/compiled-styled/convert-jsx-call-site.js +2 -2
  289. package/dist/es2019/rules/use-primitives/transformers/compiled-styled/elements.js +1 -0
  290. package/dist/es2019/rules/use-primitives/transformers/compiled-styled/find-valid-styled-component-call.js +2 -2
  291. package/dist/es2019/rules/use-primitives/transformers/compiled-styled/index.js +6 -5
  292. package/dist/es2019/rules/use-primitives/transformers/css-to-xcss.js +7 -15
  293. package/dist/es2019/rules/use-primitives/transformers/dimensions-map.js +3 -0
  294. package/dist/es2019/rules/use-primitives/transformers/emotion-css/{supported.js → attributes.js} +0 -1
  295. package/dist/es2019/rules/use-primitives/transformers/emotion-css/elements.js +1 -0
  296. package/dist/es2019/rules/use-primitives/transformers/emotion-css/index.js +20 -14
  297. package/dist/es2019/rules/use-primitives/transformers/space-token-map.js +2 -0
  298. package/dist/es2019/rules/use-primitives/transformers/space-token-positive-map.js +2 -0
  299. package/dist/es2019/rules/use-primitives/transformers/supported-dimension-attributes-map.js +9 -0
  300. package/dist/es2019/rules/use-primitives/utils/convert-ast-object-expression-to-js-object.js +1 -1
  301. package/dist/es2019/rules/use-primitives/utils/is-valid-css-properties-to-transform.js +5 -4
  302. package/dist/es2019/rules/use-primitives/utils/spread-syntax.js +1 -0
  303. package/dist/es2019/rules/use-primitives/utils/validate-styles.js +12 -9
  304. package/dist/es2019/rules/use-primitives-text/index.js +4 -1
  305. package/dist/es2019/rules/use-primitives-text/transformers/add-color-inherit-attribute-fix.js +8 -0
  306. package/dist/es2019/rules/use-primitives-text/transformers/allowed-attrs.js +1 -0
  307. package/dist/es2019/rules/use-primitives-text/transformers/common.js +1 -40
  308. package/dist/es2019/rules/use-primitives-text/transformers/emphasis-elements.js +11 -8
  309. package/dist/es2019/rules/use-primitives-text/transformers/has-text-children-only.js +24 -0
  310. package/dist/es2019/rules/use-primitives-text/transformers/paragraph-elements.js +17 -14
  311. package/dist/es2019/rules/use-primitives-text/transformers/span-elements.js +11 -7
  312. package/dist/es2019/rules/use-primitives-text/transformers/strong-elements.js +11 -8
  313. package/dist/es2019/rules/use-primitives-text/transformers/update-test-id-attribute-fix.js +10 -0
  314. package/dist/es2019/rules/use-spotlight-package/index.js +1 -1
  315. package/dist/es2019/rules/use-tokens-shape/transformers/index.js +6 -5
  316. package/dist/es2019/rules/use-tokens-space/index.js +1 -1
  317. package/dist/es2019/rules/use-tokens-space/transformers/style-property/index.js +6 -5
  318. package/dist/es2019/rules/use-tokens-typography/convert-property-node-to-stringable-node.js +7 -0
  319. package/dist/es2019/rules/use-tokens-typography/find-font-family-token-for-value.js +11 -0
  320. package/dist/es2019/rules/use-tokens-typography/get-literal-property.js +7 -0
  321. package/dist/es2019/rules/use-tokens-typography/insert-tokens-import.js +7 -0
  322. package/dist/es2019/rules/use-tokens-typography/is-code-font-family.js +2 -0
  323. package/dist/es2019/rules/use-tokens-typography/is-font-family.js +2 -0
  324. package/dist/es2019/rules/use-tokens-typography/is-font-size-small.js +2 -0
  325. package/dist/es2019/rules/use-tokens-typography/is-font-size.js +2 -0
  326. package/dist/es2019/rules/use-tokens-typography/is-typography-property.js +4 -0
  327. package/dist/es2019/rules/use-tokens-typography/is-valid-property-node.js +7 -0
  328. package/dist/es2019/rules/use-tokens-typography/is-valid-typography-token.js +4 -0
  329. package/dist/es2019/rules/use-tokens-typography/not-undefined.js +3 -0
  330. package/dist/es2019/rules/use-tokens-typography/transformers/banned-properties.js +2 -1
  331. package/dist/es2019/rules/use-tokens-typography/transformers/font-family.js +5 -3
  332. package/dist/es2019/rules/use-tokens-typography/transformers/font-weight.js +5 -3
  333. package/dist/es2019/rules/use-tokens-typography/transformers/style-object.js +15 -4
  334. package/dist/es2019/rules/use-tokens-typography/transformers/untokenized-properties.js +2 -1
  335. package/dist/es2019/rules/use-tokens-typography/typography-properties.js +1 -0
  336. package/dist/es2019/rules/use-tokens-typography/utils.js +2 -51
  337. package/dist/es2019/rules/use-visually-hidden/fix-jsx.js +2 -2
  338. package/dist/es2019/rules/use-visually-hidden/fix-vanilla.js +2 -2
  339. package/dist/es2019/rules/use-visually-hidden/get-first-import.js +6 -0
  340. package/dist/es2019/rules/use-visually-hidden/index.js +4 -2
  341. package/dist/es2019/rules/use-visually-hidden/make-template-literal-into-entries.js +6 -0
  342. package/dist/es2019/rules/use-visually-hidden/utils.js +0 -14
  343. package/dist/es2019/rules/utils/find-prop.js +4 -0
  344. package/dist/es2019/rules/utils/get-imported-node-by-source.js +8 -0
  345. package/dist/es2019/rules/utils/{get-import-node-by-source.js → get-module-of-identifier.js} +0 -9
  346. package/dist/es2019/rules/utils/is-child-of-type.js +2 -0
  347. package/dist/es2019/rules/utils/is-color.js +1 -3
  348. package/dist/es2019/rules/utils/is-css-in-js-template-node.js +1 -0
  349. package/dist/es2019/rules/utils/is-current-surface-custom-property-name.js +2 -0
  350. package/dist/es2019/rules/utils/is-decendant-of-global-token.js +10 -0
  351. package/dist/es2019/rules/utils/is-decendant-of-primitive.js +19 -0
  352. package/dist/es2019/rules/utils/is-decendant-of-style-jsx-attribute.js +10 -0
  353. package/dist/es2019/rules/utils/is-decendant-of-svg-element.js +13 -0
  354. package/dist/es2019/rules/utils/is-decendant-of-type.js +9 -0
  355. package/dist/es2019/rules/utils/is-decendant-of-xcss-block.js +11 -0
  356. package/dist/es2019/rules/utils/is-node.js +2 -78
  357. package/dist/es2019/rules/utils/is-property-key.js +9 -0
  358. package/dist/es2019/rules/utils/jsx.js +0 -4
  359. package/dist/esm/presets/all-flat.codegen.js +2 -1
  360. package/dist/esm/presets/all.codegen.js +2 -1
  361. package/dist/esm/presets/recommended-flat.codegen.js +2 -1
  362. package/dist/esm/presets/recommended.codegen.js +2 -1
  363. package/dist/esm/rules/consistent-css-prop-usage/index.js +2 -2
  364. package/dist/esm/rules/ensure-design-token-usage/border-width-value-to-token.js +6 -0
  365. package/dist/esm/rules/ensure-design-token-usage/clean-comments.js +7 -0
  366. package/dist/esm/rules/ensure-design-token-usage/color.js +6 -4
  367. package/dist/esm/rules/ensure-design-token-usage/convert-hyphenated-name-to-camel-case.js +6 -0
  368. package/dist/esm/rules/ensure-design-token-usage/find-parent-node-for-line.js +16 -0
  369. package/dist/esm/rules/ensure-design-token-usage/get-elevation-token-example.js +3 -0
  370. package/dist/esm/rules/ensure-design-token-usage/get-raw-expression.js +15 -0
  371. package/dist/esm/rules/ensure-design-token-usage/includes-token-string.js +3 -0
  372. package/dist/esm/rules/ensure-design-token-usage/index.js +12 -2
  373. package/dist/esm/rules/ensure-design-token-usage/insert-tokens-import.js +4 -0
  374. package/dist/esm/rules/ensure-design-token-usage/is-auto.js +8 -0
  375. package/dist/esm/rules/ensure-design-token-usage/is-border-radius.js +4 -0
  376. package/dist/esm/rules/ensure-design-token-usage/is-token-value-string.js +7 -0
  377. package/dist/esm/rules/ensure-design-token-usage/is-zero.js +13 -0
  378. package/dist/esm/rules/ensure-design-token-usage/normalise-value.js +23 -0
  379. package/dist/esm/rules/ensure-design-token-usage/radius-value-to-token.js +8 -0
  380. package/dist/esm/rules/ensure-design-token-usage/shape.js +0 -17
  381. package/dist/esm/rules/ensure-design-token-usage/spacing.js +6 -1
  382. package/dist/esm/rules/ensure-design-token-usage/split-css-properties.js +25 -0
  383. package/dist/esm/rules/ensure-design-token-usage/split-shorthand-values.js +14 -0
  384. package/dist/esm/rules/ensure-design-token-usage/utils.js +13 -148
  385. package/dist/esm/rules/icon-label/index.js +1 -1
  386. package/dist/esm/rules/index.codegen.js +3 -1
  387. package/dist/esm/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-add-event-listener.js +1 -1
  388. package/dist/esm/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-bind-all.js +1 -1
  389. package/dist/esm/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-bind.js +1 -1
  390. package/dist/esm/rules/no-direct-use-of-web-platform-drag-and-drop/checks/is-blocked-jsx-attribute.js +2 -2
  391. package/dist/esm/rules/no-direct-use-of-web-platform-drag-and-drop/shared/blocked-event-name-lookup.js +1 -0
  392. package/dist/esm/rules/no-direct-use-of-web-platform-drag-and-drop/shared/blocked-jsx-attribute-lookup.js +1 -0
  393. package/dist/esm/rules/no-direct-use-of-web-platform-drag-and-drop/shared/is-blocked-event-binding.js +1 -1
  394. package/dist/esm/rules/no-html-anchor/index.js +2 -1
  395. package/dist/esm/rules/no-html-anchor/node-types/jsx-element/index.js +2 -2
  396. package/dist/esm/rules/no-html-anchor/node-types/supported.js +3 -3
  397. package/dist/esm/rules/no-html-button/index.js +2 -1
  398. package/dist/esm/rules/no-html-button/node-types/jsx-element/index.js +2 -2
  399. package/dist/esm/rules/no-html-button/node-types/supported.js +3 -3
  400. package/dist/esm/rules/no-html-checkbox/index.js +1 -1
  401. package/dist/esm/rules/no-html-checkbox/node-types/jsx-element/index.js +2 -2
  402. package/dist/esm/rules/no-html-checkbox/node-types/supported.js +3 -3
  403. package/dist/esm/rules/no-html-code/index.js +2 -1
  404. package/dist/esm/rules/no-html-code/node-types/jsx-element/index.js +2 -2
  405. package/dist/esm/rules/no-html-code/node-types/supported.js +3 -3
  406. package/dist/esm/rules/no-html-heading/index.js +2 -1
  407. package/dist/esm/rules/no-html-heading/node-types/jsx-element/index.js +2 -2
  408. package/dist/esm/rules/no-html-heading/node-types/supported.js +3 -3
  409. package/dist/esm/rules/no-html-image/index.js +2 -1
  410. package/dist/esm/rules/no-html-image/node-types/jsx-element/index.js +2 -2
  411. package/dist/esm/rules/no-html-image/node-types/supported.js +3 -3
  412. package/dist/esm/rules/no-html-radio/index.js +1 -1
  413. package/dist/esm/rules/no-html-radio/node-types/jsx-element/index.js +2 -2
  414. package/dist/esm/rules/no-html-radio/node-types/supported.js +3 -3
  415. package/dist/esm/rules/no-html-range/index.js +1 -1
  416. package/dist/esm/rules/no-html-range/node-types/jsx-element/index.js +2 -2
  417. package/dist/esm/rules/no-html-range/node-types/supported.js +3 -3
  418. package/dist/esm/rules/no-html-select/index.js +2 -1
  419. package/dist/esm/rules/no-html-select/node-types/jsx-element/index.js +2 -2
  420. package/dist/esm/rules/no-html-select/node-types/supported.js +3 -3
  421. package/dist/esm/rules/no-html-text-input/index.js +1 -1
  422. package/dist/esm/rules/no-html-text-input/node-types/jsx-element/index.js +2 -2
  423. package/dist/esm/rules/no-html-text-input/node-types/supported.js +3 -3
  424. package/dist/esm/rules/no-html-textarea/index.js +2 -1
  425. package/dist/esm/rules/no-html-textarea/node-types/jsx-element/index.js +2 -2
  426. package/dist/esm/rules/no-html-textarea/node-types/supported.js +3 -3
  427. package/dist/esm/rules/no-icon-spacing-prop/get-css-map-key.js +7 -0
  428. package/dist/esm/rules/no-icon-spacing-prop/get-icon-size.js +18 -0
  429. package/dist/esm/rules/no-icon-spacing-prop/get-spacing-attribute.js +13 -0
  430. package/dist/esm/rules/no-icon-spacing-prop/get-static-attribute-value.js +9 -0
  431. package/dist/esm/rules/no-icon-spacing-prop/has-spread-props.js +8 -0
  432. package/dist/esm/rules/no-icon-spacing-prop/index.js +11 -1
  433. package/dist/esm/rules/no-icon-spacing-prop/spacing-to-padding.js +14 -0
  434. package/dist/esm/rules/no-icon-spacing-prop/upsert-css-map-import.js +46 -0
  435. package/dist/esm/rules/no-icon-spacing-prop/upsert-css-map-variable.js +51 -0
  436. package/dist/esm/rules/no-icon-spacing-prop/upsert-flex-import.js +53 -0
  437. package/dist/esm/rules/no-icon-spacing-prop/upsert-token-import.js +35 -0
  438. package/dist/esm/rules/no-invalid-css-map/get-css-map-object.js +12 -0
  439. package/dist/esm/rules/no-invalid-css-map/index.js +2 -1
  440. package/dist/esm/rules/no-invalid-css-map/utils.js +0 -12
  441. package/dist/esm/rules/no-physical-properties/index.js +1 -1
  442. package/dist/esm/rules/no-physical-properties/logical-physical-map.js +0 -34
  443. package/dist/esm/rules/no-physical-properties/physical-logical-map.js +34 -0
  444. package/dist/esm/rules/no-placeholder/index.js +2 -2
  445. package/dist/esm/rules/no-readonly-or-disabled-inputs/index.js +124 -0
  446. package/dist/esm/rules/no-unsafe-design-token-usage/index.js +2 -1
  447. package/dist/esm/rules/no-unsafe-style-overrides/index.js +1 -1
  448. package/dist/esm/rules/prefer-primitives/utils.js +1 -1
  449. package/dist/esm/rules/prefer-primitives/valid-primitive-elements.js +1 -0
  450. package/dist/esm/rules/use-heading/index.js +1 -1
  451. package/dist/esm/rules/use-heading/transformers/allowed-attrs.js +1 -0
  452. package/dist/esm/rules/use-heading/transformers/common.js +1 -9
  453. package/dist/esm/rules/use-heading/transformers/native-elements.js +11 -9
  454. package/dist/esm/rules/use-heading/transformers/update-test-id-attribute-fix.js +10 -0
  455. package/dist/esm/rules/use-href-in-link-item/get-unique-button-item-name.js +22 -0
  456. package/dist/esm/rules/use-href-in-link-item/has-import-of-name.js +11 -0
  457. package/dist/esm/rules/use-href-in-link-item/index.js +5 -1
  458. package/dist/esm/rules/use-href-in-link-item/insert-button-item-default-import.js +3 -0
  459. package/dist/esm/rules/use-href-in-link-item/insert-button-item-import.js +4 -0
  460. package/dist/esm/rules/use-href-in-link-item/utils.js +0 -39
  461. package/dist/esm/rules/use-latest-xcss-syntax/index.js +1 -1
  462. package/dist/esm/rules/use-latest-xcss-syntax/transformers/style-property/index.js +8 -6
  463. package/dist/esm/rules/use-latest-xcss-syntax-typography/index.js +3 -1
  464. package/dist/esm/rules/use-primitives/index.js +2 -1
  465. package/dist/esm/rules/use-primitives/transformers/compiled-styled/{supported.js → attributes.js} +0 -1
  466. package/dist/esm/rules/use-primitives/transformers/compiled-styled/convert-jsx-call-site.js +2 -2
  467. package/dist/esm/rules/use-primitives/transformers/compiled-styled/elements.js +1 -0
  468. package/dist/esm/rules/use-primitives/transformers/compiled-styled/find-valid-styled-component-call.js +2 -2
  469. package/dist/esm/rules/use-primitives/transformers/compiled-styled/index.js +6 -5
  470. package/dist/esm/rules/use-primitives/transformers/css-to-xcss.js +7 -15
  471. package/dist/esm/rules/use-primitives/transformers/dimensions-map.js +3 -0
  472. package/dist/esm/rules/use-primitives/transformers/emotion-css/{supported.js → attributes.js} +0 -1
  473. package/dist/esm/rules/use-primitives/transformers/emotion-css/elements.js +1 -0
  474. package/dist/esm/rules/use-primitives/transformers/emotion-css/index.js +20 -14
  475. package/dist/esm/rules/use-primitives/transformers/space-token-map.js +2 -0
  476. package/dist/esm/rules/use-primitives/transformers/space-token-positive-map.js +2 -0
  477. package/dist/esm/rules/use-primitives/transformers/supported-dimension-attributes-map.js +9 -0
  478. package/dist/esm/rules/use-primitives/utils/convert-ast-object-expression-to-js-object.js +1 -1
  479. package/dist/esm/rules/use-primitives/utils/is-valid-css-properties-to-transform.js +5 -4
  480. package/dist/esm/rules/use-primitives/utils/spread-syntax.js +1 -0
  481. package/dist/esm/rules/use-primitives/utils/validate-styles.js +12 -9
  482. package/dist/esm/rules/use-primitives-text/index.js +4 -1
  483. package/dist/esm/rules/use-primitives-text/transformers/add-color-inherit-attribute-fix.js +8 -0
  484. package/dist/esm/rules/use-primitives-text/transformers/allowed-attrs.js +1 -0
  485. package/dist/esm/rules/use-primitives-text/transformers/common.js +1 -40
  486. package/dist/esm/rules/use-primitives-text/transformers/emphasis-elements.js +11 -8
  487. package/dist/esm/rules/use-primitives-text/transformers/has-text-children-only.js +24 -0
  488. package/dist/esm/rules/use-primitives-text/transformers/paragraph-elements.js +17 -14
  489. package/dist/esm/rules/use-primitives-text/transformers/span-elements.js +11 -7
  490. package/dist/esm/rules/use-primitives-text/transformers/strong-elements.js +11 -8
  491. package/dist/esm/rules/use-primitives-text/transformers/update-test-id-attribute-fix.js +10 -0
  492. package/dist/esm/rules/use-spotlight-package/index.js +1 -1
  493. package/dist/esm/rules/use-tokens-shape/transformers/index.js +7 -6
  494. package/dist/esm/rules/use-tokens-space/index.js +1 -1
  495. package/dist/esm/rules/use-tokens-space/transformers/style-property/index.js +7 -6
  496. package/dist/esm/rules/use-tokens-typography/convert-property-node-to-stringable-node.js +7 -0
  497. package/dist/esm/rules/use-tokens-typography/find-font-family-token-for-value.js +11 -0
  498. package/dist/esm/rules/use-tokens-typography/get-literal-property.js +7 -0
  499. package/dist/esm/rules/use-tokens-typography/insert-tokens-import.js +7 -0
  500. package/dist/esm/rules/use-tokens-typography/is-code-font-family.js +4 -0
  501. package/dist/esm/rules/use-tokens-typography/is-font-family.js +4 -0
  502. package/dist/esm/rules/use-tokens-typography/is-font-size-small.js +4 -0
  503. package/dist/esm/rules/use-tokens-typography/is-font-size.js +4 -0
  504. package/dist/esm/rules/use-tokens-typography/is-typography-property.js +4 -0
  505. package/dist/esm/rules/use-tokens-typography/is-valid-property-node.js +7 -0
  506. package/dist/esm/rules/use-tokens-typography/is-valid-typography-token.js +10 -0
  507. package/dist/esm/rules/use-tokens-typography/not-undefined.js +3 -0
  508. package/dist/esm/rules/use-tokens-typography/transformers/banned-properties.js +2 -1
  509. package/dist/esm/rules/use-tokens-typography/transformers/font-family.js +5 -3
  510. package/dist/esm/rules/use-tokens-typography/transformers/font-weight.js +5 -3
  511. package/dist/esm/rules/use-tokens-typography/transformers/style-object.js +15 -4
  512. package/dist/esm/rules/use-tokens-typography/transformers/untokenized-properties.js +2 -1
  513. package/dist/esm/rules/use-tokens-typography/typography-properties.js +1 -0
  514. package/dist/esm/rules/use-tokens-typography/utils.js +2 -65
  515. package/dist/esm/rules/use-visually-hidden/fix-jsx.js +2 -2
  516. package/dist/esm/rules/use-visually-hidden/fix-vanilla.js +2 -2
  517. package/dist/esm/rules/use-visually-hidden/get-first-import.js +8 -0
  518. package/dist/esm/rules/use-visually-hidden/index.js +4 -2
  519. package/dist/esm/rules/use-visually-hidden/make-template-literal-into-entries.js +12 -0
  520. package/dist/esm/rules/use-visually-hidden/utils.js +0 -22
  521. package/dist/esm/rules/utils/find-prop.js +6 -0
  522. package/dist/esm/rules/utils/get-imported-node-by-source.js +12 -0
  523. package/dist/esm/rules/utils/{get-import-node-by-source.js → get-module-of-identifier.js} +0 -13
  524. package/dist/esm/rules/utils/is-child-of-type.js +4 -0
  525. package/dist/esm/rules/utils/is-color.js +0 -4
  526. package/dist/esm/rules/utils/is-css-in-js-template-node.js +3 -0
  527. package/dist/esm/rules/utils/is-current-surface-custom-property-name.js +4 -0
  528. package/dist/esm/rules/utils/is-decendant-of-global-token.js +11 -0
  529. package/dist/esm/rules/utils/is-decendant-of-primitive.js +20 -0
  530. package/dist/esm/rules/utils/is-decendant-of-style-jsx-attribute.js +11 -0
  531. package/dist/esm/rules/utils/is-decendant-of-svg-element.js +14 -0
  532. package/dist/esm/rules/utils/is-decendant-of-type.js +11 -0
  533. package/dist/esm/rules/utils/is-decendant-of-xcss-block.js +12 -0
  534. package/dist/esm/rules/utils/is-node.js +2 -89
  535. package/dist/esm/rules/utils/is-property-key.js +9 -0
  536. package/dist/esm/rules/utils/jsx.js +0 -6
  537. package/dist/types/presets/all-flat.codegen.d.ts +1 -1
  538. package/dist/types/presets/all.codegen.d.ts +1 -1
  539. package/dist/types/presets/recommended-flat.codegen.d.ts +1 -1
  540. package/dist/types/presets/recommended.codegen.d.ts +1 -1
  541. package/dist/types/rules/ensure-design-token-usage/border-width-value-to-token.d.ts +1 -0
  542. package/dist/types/rules/ensure-design-token-usage/clean-comments.d.ts +5 -0
  543. package/dist/types/rules/ensure-design-token-usage/color.d.ts +0 -2
  544. package/dist/types/rules/ensure-design-token-usage/convert-hyphenated-name-to-camel-case.d.ts +1 -0
  545. package/dist/types/rules/ensure-design-token-usage/find-parent-node-for-line.d.ts +6 -0
  546. package/dist/types/rules/ensure-design-token-usage/get-elevation-token-example.d.ts +2 -0
  547. package/dist/types/rules/ensure-design-token-usage/get-raw-expression.d.ts +3 -0
  548. package/dist/types/rules/ensure-design-token-usage/includes-token-string.d.ts +1 -0
  549. package/dist/types/rules/ensure-design-token-usage/insert-tokens-import.d.ts +2 -0
  550. package/dist/types/rules/ensure-design-token-usage/is-auto.d.ts +1 -0
  551. package/dist/types/rules/ensure-design-token-usage/is-border-radius.d.ts +2 -0
  552. package/dist/types/rules/ensure-design-token-usage/is-token-value-string.d.ts +5 -0
  553. package/dist/types/rules/ensure-design-token-usage/is-zero.d.ts +1 -0
  554. package/dist/types/rules/ensure-design-token-usage/normalise-value.d.ts +10 -0
  555. package/dist/types/rules/ensure-design-token-usage/radius-value-to-token.d.ts +1 -0
  556. package/dist/types/rules/ensure-design-token-usage/shape.d.ts +0 -4
  557. package/dist/types/rules/ensure-design-token-usage/split-css-properties.d.ts +6 -0
  558. package/dist/types/rules/ensure-design-token-usage/split-shorthand-values.d.ts +12 -0
  559. package/dist/types/rules/ensure-design-token-usage/utils.d.ts +0 -49
  560. package/dist/types/rules/index.codegen.d.ts +1 -1
  561. package/dist/types/rules/no-direct-use-of-web-platform-drag-and-drop/shared/blocked-event-name-lookup.d.ts +1 -0
  562. package/dist/types/rules/no-direct-use-of-web-platform-drag-and-drop/shared/{blocked.d.ts → blocked-jsx-attribute-lookup.d.ts} +0 -1
  563. package/dist/types/rules/no-icon-spacing-prop/get-css-map-key.d.ts +5 -0
  564. package/dist/types/rules/no-icon-spacing-prop/get-icon-size.d.ts +5 -0
  565. package/dist/types/rules/no-icon-spacing-prop/get-spacing-attribute.d.ts +5 -0
  566. package/dist/types/rules/no-icon-spacing-prop/get-static-attribute-value.d.ts +5 -0
  567. package/dist/types/rules/no-icon-spacing-prop/has-spread-props.d.ts +5 -0
  568. package/dist/types/rules/no-icon-spacing-prop/spacing-to-padding.d.ts +5 -0
  569. package/dist/types/rules/no-icon-spacing-prop/upsert-css-map-import.d.ts +8 -0
  570. package/dist/types/rules/no-icon-spacing-prop/upsert-css-map-variable.d.ts +9 -0
  571. package/dist/types/rules/no-icon-spacing-prop/upsert-flex-import.d.ts +8 -0
  572. package/dist/types/rules/no-icon-spacing-prop/upsert-token-import.d.ts +8 -0
  573. package/dist/types/rules/no-invalid-css-map/get-css-map-object.d.ts +2 -0
  574. package/dist/types/rules/no-invalid-css-map/utils.d.ts +1 -2
  575. package/dist/types/rules/no-physical-properties/logical-physical-map.d.ts +0 -34
  576. package/dist/types/rules/no-physical-properties/physical-logical-map.d.ts +34 -0
  577. package/dist/types/rules/no-readonly-or-disabled-inputs/index.d.ts +6 -0
  578. package/dist/types/rules/prefer-primitives/utils.d.ts +0 -1
  579. package/dist/types/rules/prefer-primitives/valid-primitive-elements.d.ts +1 -0
  580. package/dist/types/rules/use-heading/transformers/allowed-attrs.d.ts +1 -0
  581. package/dist/types/rules/use-heading/transformers/common.d.ts +0 -3
  582. package/dist/types/rules/use-heading/transformers/native-elements.d.ts +1 -1
  583. package/dist/types/rules/use-heading/transformers/update-test-id-attribute-fix.d.ts +3 -0
  584. package/dist/types/rules/use-href-in-link-item/get-unique-button-item-name.d.ts +2 -0
  585. package/dist/types/rules/use-href-in-link-item/has-import-of-name.d.ts +2 -0
  586. package/dist/types/rules/use-href-in-link-item/insert-button-item-default-import.d.ts +3 -0
  587. package/dist/types/rules/use-href-in-link-item/insert-button-item-import.d.ts +3 -0
  588. package/dist/types/rules/use-href-in-link-item/utils.d.ts +2 -6
  589. package/dist/types/rules/use-primitives/transformers/compiled-styled/{supported.d.ts → attributes.d.ts} +0 -1
  590. package/dist/types/rules/use-primitives/transformers/compiled-styled/elements.d.ts +1 -0
  591. package/dist/types/rules/use-primitives/transformers/css-to-xcss.d.ts +1 -12
  592. package/dist/types/rules/use-primitives/transformers/dimensions-map.d.ts +3 -0
  593. package/dist/types/rules/use-primitives/transformers/emotion-css/{supported.d.ts → attributes.d.ts} +0 -1
  594. package/dist/types/rules/use-primitives/transformers/emotion-css/elements.d.ts +1 -0
  595. package/dist/types/rules/use-primitives/transformers/space-token-map.d.ts +3 -0
  596. package/dist/types/rules/use-primitives/transformers/space-token-positive-map.d.ts +3 -0
  597. package/dist/types/rules/use-primitives/transformers/supported-dimension-attributes-map.d.ts +4 -0
  598. package/dist/types/rules/use-primitives/utils/convert-ast-object-expression-to-js-object.d.ts +1 -1
  599. package/dist/types/rules/use-primitives/utils/spread-syntax.d.ts +1 -0
  600. package/dist/types/rules/use-primitives-text/transformers/add-color-inherit-attribute-fix.d.ts +4 -0
  601. package/dist/types/rules/use-primitives-text/transformers/allowed-attrs.d.ts +1 -0
  602. package/dist/types/rules/use-primitives-text/transformers/common.d.ts +0 -5
  603. package/dist/types/rules/use-primitives-text/transformers/emphasis-elements.d.ts +1 -1
  604. package/dist/types/rules/use-primitives-text/transformers/has-text-children-only.d.ts +2 -0
  605. package/dist/types/rules/use-primitives-text/transformers/paragraph-elements.d.ts +1 -1
  606. package/dist/types/rules/use-primitives-text/transformers/span-elements.d.ts +1 -1
  607. package/dist/types/rules/use-primitives-text/transformers/strong-elements.d.ts +1 -1
  608. package/dist/types/rules/use-primitives-text/transformers/update-test-id-attribute-fix.d.ts +3 -0
  609. package/dist/types/rules/use-tokens-typography/convert-property-node-to-stringable-node.d.ts +2 -0
  610. package/dist/types/rules/use-tokens-typography/find-font-family-token-for-value.d.ts +1 -0
  611. package/dist/types/rules/use-tokens-typography/get-literal-property.d.ts +2 -0
  612. package/dist/types/rules/use-tokens-typography/insert-tokens-import.d.ts +3 -0
  613. package/dist/types/rules/use-tokens-typography/is-code-font-family.d.ts +2 -0
  614. package/dist/types/rules/use-tokens-typography/is-font-family.d.ts +2 -0
  615. package/dist/types/rules/use-tokens-typography/is-font-size-small.d.ts +2 -0
  616. package/dist/types/rules/use-tokens-typography/is-font-size.d.ts +2 -0
  617. package/dist/types/rules/use-tokens-typography/is-typography-property.d.ts +1 -0
  618. package/dist/types/rules/use-tokens-typography/is-valid-property-node.d.ts +2 -0
  619. package/dist/types/rules/use-tokens-typography/is-valid-typography-token.d.ts +36 -0
  620. package/dist/types/rules/use-tokens-typography/not-undefined.d.ts +1 -0
  621. package/dist/types/rules/use-tokens-typography/typography-properties.d.ts +1 -0
  622. package/dist/types/rules/use-tokens-typography/utils.d.ts +2 -50
  623. package/dist/types/rules/use-visually-hidden/get-first-import.d.ts +5 -0
  624. package/dist/types/rules/use-visually-hidden/make-template-literal-into-entries.d.ts +4 -0
  625. package/dist/types/rules/use-visually-hidden/utils.d.ts +0 -9
  626. package/dist/types/rules/utils/find-prop.d.ts +2 -0
  627. package/dist/types/rules/utils/{get-import-node-by-source.d.ts → get-imported-node-by-source.d.ts} +0 -9
  628. package/dist/types/rules/utils/get-module-of-identifier.d.ts +10 -0
  629. package/dist/types/rules/utils/is-child-of-type.d.ts +2 -0
  630. package/dist/types/rules/utils/is-color.d.ts +0 -1
  631. package/dist/types/rules/utils/is-css-in-js-template-node.d.ts +2 -0
  632. package/dist/types/rules/utils/is-current-surface-custom-property-name.d.ts +1 -0
  633. package/dist/types/rules/utils/is-decendant-of-global-token.d.ts +2 -0
  634. package/dist/types/rules/utils/is-decendant-of-primitive.d.ts +2 -0
  635. package/dist/types/rules/utils/is-decendant-of-style-jsx-attribute.d.ts +2 -0
  636. package/dist/types/rules/utils/is-decendant-of-svg-element.d.ts +2 -0
  637. package/dist/types/rules/utils/is-decendant-of-type.d.ts +2 -0
  638. package/dist/types/rules/utils/is-decendant-of-xcss-block.d.ts +2 -0
  639. package/dist/types/rules/utils/is-node.d.ts +3 -11
  640. package/dist/types/rules/utils/is-property-key.d.ts +2 -0
  641. package/dist/types/rules/utils/jsx.d.ts +1 -2
  642. package/dist/types-ts4.5/presets/all-flat.codegen.d.ts +1 -1
  643. package/dist/types-ts4.5/presets/all.codegen.d.ts +1 -1
  644. package/dist/types-ts4.5/presets/recommended-flat.codegen.d.ts +1 -1
  645. package/dist/types-ts4.5/presets/recommended.codegen.d.ts +1 -1
  646. package/dist/types-ts4.5/rules/ensure-design-token-usage/border-width-value-to-token.d.ts +1 -0
  647. package/dist/types-ts4.5/rules/ensure-design-token-usage/clean-comments.d.ts +5 -0
  648. package/dist/types-ts4.5/rules/ensure-design-token-usage/color.d.ts +0 -2
  649. package/dist/types-ts4.5/rules/ensure-design-token-usage/convert-hyphenated-name-to-camel-case.d.ts +1 -0
  650. package/dist/types-ts4.5/rules/ensure-design-token-usage/find-parent-node-for-line.d.ts +6 -0
  651. package/dist/types-ts4.5/rules/ensure-design-token-usage/get-elevation-token-example.d.ts +2 -0
  652. package/dist/types-ts4.5/rules/ensure-design-token-usage/get-raw-expression.d.ts +3 -0
  653. package/dist/types-ts4.5/rules/ensure-design-token-usage/includes-token-string.d.ts +1 -0
  654. package/dist/types-ts4.5/rules/ensure-design-token-usage/insert-tokens-import.d.ts +2 -0
  655. package/dist/types-ts4.5/rules/ensure-design-token-usage/is-auto.d.ts +1 -0
  656. package/dist/types-ts4.5/rules/ensure-design-token-usage/is-border-radius.d.ts +2 -0
  657. package/dist/types-ts4.5/rules/ensure-design-token-usage/is-token-value-string.d.ts +5 -0
  658. package/dist/types-ts4.5/rules/ensure-design-token-usage/is-zero.d.ts +1 -0
  659. package/dist/types-ts4.5/rules/ensure-design-token-usage/normalise-value.d.ts +10 -0
  660. package/dist/types-ts4.5/rules/ensure-design-token-usage/radius-value-to-token.d.ts +1 -0
  661. package/dist/types-ts4.5/rules/ensure-design-token-usage/shape.d.ts +0 -4
  662. package/dist/types-ts4.5/rules/ensure-design-token-usage/split-css-properties.d.ts +6 -0
  663. package/dist/types-ts4.5/rules/ensure-design-token-usage/split-shorthand-values.d.ts +12 -0
  664. package/dist/types-ts4.5/rules/ensure-design-token-usage/utils.d.ts +0 -49
  665. package/dist/types-ts4.5/rules/index.codegen.d.ts +1 -1
  666. package/dist/types-ts4.5/rules/no-direct-use-of-web-platform-drag-and-drop/shared/blocked-event-name-lookup.d.ts +1 -0
  667. package/dist/types-ts4.5/rules/no-direct-use-of-web-platform-drag-and-drop/shared/{blocked.d.ts → blocked-jsx-attribute-lookup.d.ts} +0 -1
  668. package/dist/types-ts4.5/rules/no-icon-spacing-prop/get-css-map-key.d.ts +5 -0
  669. package/dist/types-ts4.5/rules/no-icon-spacing-prop/get-icon-size.d.ts +5 -0
  670. package/dist/types-ts4.5/rules/no-icon-spacing-prop/get-spacing-attribute.d.ts +5 -0
  671. package/dist/types-ts4.5/rules/no-icon-spacing-prop/get-static-attribute-value.d.ts +5 -0
  672. package/dist/types-ts4.5/rules/no-icon-spacing-prop/has-spread-props.d.ts +5 -0
  673. package/dist/types-ts4.5/rules/no-icon-spacing-prop/spacing-to-padding.d.ts +5 -0
  674. package/dist/types-ts4.5/rules/no-icon-spacing-prop/upsert-css-map-import.d.ts +8 -0
  675. package/dist/types-ts4.5/rules/no-icon-spacing-prop/upsert-css-map-variable.d.ts +9 -0
  676. package/dist/types-ts4.5/rules/no-icon-spacing-prop/upsert-flex-import.d.ts +8 -0
  677. package/dist/types-ts4.5/rules/no-icon-spacing-prop/upsert-token-import.d.ts +8 -0
  678. package/dist/types-ts4.5/rules/no-invalid-css-map/get-css-map-object.d.ts +2 -0
  679. package/dist/types-ts4.5/rules/no-invalid-css-map/utils.d.ts +1 -2
  680. package/dist/types-ts4.5/rules/no-physical-properties/logical-physical-map.d.ts +0 -34
  681. package/dist/types-ts4.5/rules/no-physical-properties/physical-logical-map.d.ts +34 -0
  682. package/dist/types-ts4.5/rules/no-readonly-or-disabled-inputs/index.d.ts +6 -0
  683. package/dist/types-ts4.5/rules/prefer-primitives/utils.d.ts +0 -1
  684. package/dist/types-ts4.5/rules/prefer-primitives/valid-primitive-elements.d.ts +1 -0
  685. package/dist/types-ts4.5/rules/use-heading/transformers/allowed-attrs.d.ts +1 -0
  686. package/dist/types-ts4.5/rules/use-heading/transformers/common.d.ts +0 -3
  687. package/dist/types-ts4.5/rules/use-heading/transformers/native-elements.d.ts +1 -1
  688. package/dist/types-ts4.5/rules/use-heading/transformers/update-test-id-attribute-fix.d.ts +3 -0
  689. package/dist/types-ts4.5/rules/use-href-in-link-item/get-unique-button-item-name.d.ts +2 -0
  690. package/dist/types-ts4.5/rules/use-href-in-link-item/has-import-of-name.d.ts +2 -0
  691. package/dist/types-ts4.5/rules/use-href-in-link-item/insert-button-item-default-import.d.ts +3 -0
  692. package/dist/types-ts4.5/rules/use-href-in-link-item/insert-button-item-import.d.ts +3 -0
  693. package/dist/types-ts4.5/rules/use-href-in-link-item/utils.d.ts +2 -6
  694. package/dist/types-ts4.5/rules/use-primitives/transformers/compiled-styled/{supported.d.ts → attributes.d.ts} +0 -1
  695. package/dist/types-ts4.5/rules/use-primitives/transformers/compiled-styled/elements.d.ts +1 -0
  696. package/dist/types-ts4.5/rules/use-primitives/transformers/css-to-xcss.d.ts +1 -12
  697. package/dist/types-ts4.5/rules/use-primitives/transformers/dimensions-map.d.ts +3 -0
  698. package/dist/types-ts4.5/rules/use-primitives/transformers/emotion-css/{supported.d.ts → attributes.d.ts} +0 -1
  699. package/dist/types-ts4.5/rules/use-primitives/transformers/emotion-css/elements.d.ts +1 -0
  700. package/dist/types-ts4.5/rules/use-primitives/transformers/space-token-map.d.ts +3 -0
  701. package/dist/types-ts4.5/rules/use-primitives/transformers/space-token-positive-map.d.ts +3 -0
  702. package/dist/types-ts4.5/rules/use-primitives/transformers/supported-dimension-attributes-map.d.ts +4 -0
  703. package/dist/types-ts4.5/rules/use-primitives/utils/convert-ast-object-expression-to-js-object.d.ts +1 -1
  704. package/dist/types-ts4.5/rules/use-primitives/utils/spread-syntax.d.ts +1 -0
  705. package/dist/types-ts4.5/rules/use-primitives-text/transformers/add-color-inherit-attribute-fix.d.ts +4 -0
  706. package/dist/types-ts4.5/rules/use-primitives-text/transformers/allowed-attrs.d.ts +1 -0
  707. package/dist/types-ts4.5/rules/use-primitives-text/transformers/common.d.ts +0 -5
  708. package/dist/types-ts4.5/rules/use-primitives-text/transformers/emphasis-elements.d.ts +1 -1
  709. package/dist/types-ts4.5/rules/use-primitives-text/transformers/has-text-children-only.d.ts +2 -0
  710. package/dist/types-ts4.5/rules/use-primitives-text/transformers/paragraph-elements.d.ts +1 -1
  711. package/dist/types-ts4.5/rules/use-primitives-text/transformers/span-elements.d.ts +1 -1
  712. package/dist/types-ts4.5/rules/use-primitives-text/transformers/strong-elements.d.ts +1 -1
  713. package/dist/types-ts4.5/rules/use-primitives-text/transformers/update-test-id-attribute-fix.d.ts +3 -0
  714. package/dist/types-ts4.5/rules/use-tokens-typography/convert-property-node-to-stringable-node.d.ts +2 -0
  715. package/dist/types-ts4.5/rules/use-tokens-typography/find-font-family-token-for-value.d.ts +1 -0
  716. package/dist/types-ts4.5/rules/use-tokens-typography/get-literal-property.d.ts +2 -0
  717. package/dist/types-ts4.5/rules/use-tokens-typography/insert-tokens-import.d.ts +3 -0
  718. package/dist/types-ts4.5/rules/use-tokens-typography/is-code-font-family.d.ts +2 -0
  719. package/dist/types-ts4.5/rules/use-tokens-typography/is-font-family.d.ts +2 -0
  720. package/dist/types-ts4.5/rules/use-tokens-typography/is-font-size-small.d.ts +2 -0
  721. package/dist/types-ts4.5/rules/use-tokens-typography/is-font-size.d.ts +2 -0
  722. package/dist/types-ts4.5/rules/use-tokens-typography/is-typography-property.d.ts +1 -0
  723. package/dist/types-ts4.5/rules/use-tokens-typography/is-valid-property-node.d.ts +2 -0
  724. package/dist/types-ts4.5/rules/use-tokens-typography/is-valid-typography-token.d.ts +36 -0
  725. package/dist/types-ts4.5/rules/use-tokens-typography/not-undefined.d.ts +1 -0
  726. package/dist/types-ts4.5/rules/use-tokens-typography/typography-properties.d.ts +1 -0
  727. package/dist/types-ts4.5/rules/use-tokens-typography/utils.d.ts +2 -50
  728. package/dist/types-ts4.5/rules/use-visually-hidden/get-first-import.d.ts +5 -0
  729. package/dist/types-ts4.5/rules/use-visually-hidden/make-template-literal-into-entries.d.ts +4 -0
  730. package/dist/types-ts4.5/rules/use-visually-hidden/utils.d.ts +0 -9
  731. package/dist/types-ts4.5/rules/utils/find-prop.d.ts +2 -0
  732. package/dist/types-ts4.5/rules/utils/{get-import-node-by-source.d.ts → get-imported-node-by-source.d.ts} +0 -9
  733. package/dist/types-ts4.5/rules/utils/get-module-of-identifier.d.ts +10 -0
  734. package/dist/types-ts4.5/rules/utils/is-child-of-type.d.ts +2 -0
  735. package/dist/types-ts4.5/rules/utils/is-color.d.ts +0 -1
  736. package/dist/types-ts4.5/rules/utils/is-css-in-js-template-node.d.ts +2 -0
  737. package/dist/types-ts4.5/rules/utils/is-current-surface-custom-property-name.d.ts +1 -0
  738. package/dist/types-ts4.5/rules/utils/is-decendant-of-global-token.d.ts +2 -0
  739. package/dist/types-ts4.5/rules/utils/is-decendant-of-primitive.d.ts +2 -0
  740. package/dist/types-ts4.5/rules/utils/is-decendant-of-style-jsx-attribute.d.ts +2 -0
  741. package/dist/types-ts4.5/rules/utils/is-decendant-of-svg-element.d.ts +2 -0
  742. package/dist/types-ts4.5/rules/utils/is-decendant-of-type.d.ts +2 -0
  743. package/dist/types-ts4.5/rules/utils/is-decendant-of-xcss-block.d.ts +2 -0
  744. package/dist/types-ts4.5/rules/utils/is-node.d.ts +3 -11
  745. package/dist/types-ts4.5/rules/utils/is-property-key.d.ts +2 -0
  746. package/dist/types-ts4.5/rules/utils/jsx.d.ts +1 -2
  747. package/package.json +5 -5
  748. package/dist/cjs/ast-nodes/index.js +0 -54
  749. package/dist/cjs/rules/no-direct-use-of-web-platform-drag-and-drop/shared/blocked.js +0 -8
  750. package/dist/cjs/rules/no-html-anchor/node-types/index.js +0 -19
  751. package/dist/cjs/rules/no-html-button/node-types/index.js +0 -19
  752. package/dist/cjs/rules/no-html-checkbox/node-types/index.js +0 -12
  753. package/dist/cjs/rules/no-html-code/node-types/index.js +0 -19
  754. package/dist/cjs/rules/no-html-heading/node-types/index.js +0 -19
  755. package/dist/cjs/rules/no-html-image/node-types/index.js +0 -19
  756. package/dist/cjs/rules/no-html-radio/node-types/index.js +0 -12
  757. package/dist/cjs/rules/no-html-range/node-types/index.js +0 -12
  758. package/dist/cjs/rules/no-html-select/node-types/index.js +0 -19
  759. package/dist/cjs/rules/no-html-text-input/node-types/index.js +0 -12
  760. package/dist/cjs/rules/no-html-textarea/node-types/index.js +0 -19
  761. package/dist/cjs/rules/no-icon-spacing-prop/helpers.js +0 -266
  762. package/dist/cjs/rules/use-heading/transformers/index.js +0 -12
  763. package/dist/cjs/rules/use-latest-xcss-syntax/transformers/index.js +0 -12
  764. package/dist/cjs/rules/use-latest-xcss-syntax/utils/index.js +0 -12
  765. package/dist/cjs/rules/use-latest-xcss-syntax-typography/linters/index.js +0 -26
  766. package/dist/cjs/rules/use-primitives/transformers/index.js +0 -38
  767. package/dist/cjs/rules/use-primitives/utils/index.js +0 -68
  768. package/dist/cjs/rules/use-primitives-text/transformers/index.js +0 -33
  769. package/dist/cjs/rules/use-spotlight-package/linters/index.js +0 -12
  770. package/dist/cjs/rules/use-tokens-space/transformers/index.js +0 -12
  771. package/dist/cjs/rules/use-tokens-space/utils/index.js +0 -12
  772. package/dist/es2019/ast-nodes/index.js +0 -7
  773. package/dist/es2019/rules/no-direct-use-of-web-platform-drag-and-drop/shared/blocked.js +0 -2
  774. package/dist/es2019/rules/no-html-anchor/node-types/index.js +0 -2
  775. package/dist/es2019/rules/no-html-button/node-types/index.js +0 -2
  776. package/dist/es2019/rules/no-html-checkbox/node-types/index.js +0 -1
  777. package/dist/es2019/rules/no-html-code/node-types/index.js +0 -2
  778. package/dist/es2019/rules/no-html-heading/node-types/index.js +0 -2
  779. package/dist/es2019/rules/no-html-image/node-types/index.js +0 -2
  780. package/dist/es2019/rules/no-html-radio/node-types/index.js +0 -1
  781. package/dist/es2019/rules/no-html-range/node-types/index.js +0 -1
  782. package/dist/es2019/rules/no-html-select/node-types/index.js +0 -2
  783. package/dist/es2019/rules/no-html-text-input/node-types/index.js +0 -1
  784. package/dist/es2019/rules/no-html-textarea/node-types/index.js +0 -2
  785. package/dist/es2019/rules/no-icon-spacing-prop/helpers.js +0 -211
  786. package/dist/es2019/rules/use-heading/transformers/index.js +0 -1
  787. package/dist/es2019/rules/use-latest-xcss-syntax/transformers/index.js +0 -1
  788. package/dist/es2019/rules/use-latest-xcss-syntax/utils/index.js +0 -1
  789. package/dist/es2019/rules/use-latest-xcss-syntax-typography/linters/index.js +0 -3
  790. package/dist/es2019/rules/use-primitives/transformers/index.js +0 -3
  791. package/dist/es2019/rules/use-primitives/utils/index.js +0 -9
  792. package/dist/es2019/rules/use-primitives-text/transformers/index.js +0 -4
  793. package/dist/es2019/rules/use-spotlight-package/linters/index.js +0 -1
  794. package/dist/es2019/rules/use-tokens-space/transformers/index.js +0 -1
  795. package/dist/es2019/rules/use-tokens-space/utils/index.js +0 -1
  796. package/dist/esm/ast-nodes/index.js +0 -7
  797. package/dist/esm/rules/no-direct-use-of-web-platform-drag-and-drop/shared/blocked.js +0 -2
  798. package/dist/esm/rules/no-html-anchor/node-types/index.js +0 -2
  799. package/dist/esm/rules/no-html-button/node-types/index.js +0 -2
  800. package/dist/esm/rules/no-html-checkbox/node-types/index.js +0 -1
  801. package/dist/esm/rules/no-html-code/node-types/index.js +0 -2
  802. package/dist/esm/rules/no-html-heading/node-types/index.js +0 -2
  803. package/dist/esm/rules/no-html-image/node-types/index.js +0 -2
  804. package/dist/esm/rules/no-html-radio/node-types/index.js +0 -1
  805. package/dist/esm/rules/no-html-range/node-types/index.js +0 -1
  806. package/dist/esm/rules/no-html-select/node-types/index.js +0 -2
  807. package/dist/esm/rules/no-html-text-input/node-types/index.js +0 -1
  808. package/dist/esm/rules/no-html-textarea/node-types/index.js +0 -2
  809. package/dist/esm/rules/no-icon-spacing-prop/helpers.js +0 -248
  810. package/dist/esm/rules/use-heading/transformers/index.js +0 -1
  811. package/dist/esm/rules/use-latest-xcss-syntax/transformers/index.js +0 -1
  812. package/dist/esm/rules/use-latest-xcss-syntax/utils/index.js +0 -1
  813. package/dist/esm/rules/use-latest-xcss-syntax-typography/linters/index.js +0 -3
  814. package/dist/esm/rules/use-primitives/transformers/index.js +0 -3
  815. package/dist/esm/rules/use-primitives/utils/index.js +0 -9
  816. package/dist/esm/rules/use-primitives-text/transformers/index.js +0 -4
  817. package/dist/esm/rules/use-spotlight-package/linters/index.js +0 -1
  818. package/dist/esm/rules/use-tokens-space/transformers/index.js +0 -1
  819. package/dist/esm/rules/use-tokens-space/utils/index.js +0 -1
  820. package/dist/types/ast-nodes/index.d.ts +0 -7
  821. package/dist/types/rules/no-html-anchor/node-types/index.d.ts +0 -2
  822. package/dist/types/rules/no-html-button/node-types/index.d.ts +0 -2
  823. package/dist/types/rules/no-html-checkbox/node-types/index.d.ts +0 -1
  824. package/dist/types/rules/no-html-code/node-types/index.d.ts +0 -2
  825. package/dist/types/rules/no-html-heading/node-types/index.d.ts +0 -2
  826. package/dist/types/rules/no-html-image/node-types/index.d.ts +0 -2
  827. package/dist/types/rules/no-html-radio/node-types/index.d.ts +0 -1
  828. package/dist/types/rules/no-html-range/node-types/index.d.ts +0 -1
  829. package/dist/types/rules/no-html-select/node-types/index.d.ts +0 -2
  830. package/dist/types/rules/no-html-text-input/node-types/index.d.ts +0 -1
  831. package/dist/types/rules/no-html-textarea/node-types/index.d.ts +0 -2
  832. package/dist/types/rules/no-icon-spacing-prop/helpers.d.ts +0 -62
  833. package/dist/types/rules/use-heading/transformers/index.d.ts +0 -1
  834. package/dist/types/rules/use-latest-xcss-syntax/transformers/index.d.ts +0 -1
  835. package/dist/types/rules/use-latest-xcss-syntax/utils/index.d.ts +0 -1
  836. package/dist/types/rules/use-latest-xcss-syntax-typography/linters/index.d.ts +0 -3
  837. package/dist/types/rules/use-primitives/transformers/index.d.ts +0 -3
  838. package/dist/types/rules/use-primitives/utils/index.d.ts +0 -9
  839. package/dist/types/rules/use-primitives-text/transformers/index.d.ts +0 -4
  840. package/dist/types/rules/use-spotlight-package/linters/index.d.ts +0 -1
  841. package/dist/types/rules/use-tokens-space/transformers/index.d.ts +0 -1
  842. package/dist/types/rules/use-tokens-space/utils/index.d.ts +0 -1
  843. package/dist/types-ts4.5/ast-nodes/index.d.ts +0 -7
  844. package/dist/types-ts4.5/rules/no-html-anchor/node-types/index.d.ts +0 -2
  845. package/dist/types-ts4.5/rules/no-html-button/node-types/index.d.ts +0 -2
  846. package/dist/types-ts4.5/rules/no-html-checkbox/node-types/index.d.ts +0 -1
  847. package/dist/types-ts4.5/rules/no-html-code/node-types/index.d.ts +0 -2
  848. package/dist/types-ts4.5/rules/no-html-heading/node-types/index.d.ts +0 -2
  849. package/dist/types-ts4.5/rules/no-html-image/node-types/index.d.ts +0 -2
  850. package/dist/types-ts4.5/rules/no-html-radio/node-types/index.d.ts +0 -1
  851. package/dist/types-ts4.5/rules/no-html-range/node-types/index.d.ts +0 -1
  852. package/dist/types-ts4.5/rules/no-html-select/node-types/index.d.ts +0 -2
  853. package/dist/types-ts4.5/rules/no-html-text-input/node-types/index.d.ts +0 -1
  854. package/dist/types-ts4.5/rules/no-html-textarea/node-types/index.d.ts +0 -2
  855. package/dist/types-ts4.5/rules/no-icon-spacing-prop/helpers.d.ts +0 -62
  856. package/dist/types-ts4.5/rules/use-heading/transformers/index.d.ts +0 -1
  857. package/dist/types-ts4.5/rules/use-latest-xcss-syntax/transformers/index.d.ts +0 -1
  858. package/dist/types-ts4.5/rules/use-latest-xcss-syntax/utils/index.d.ts +0 -1
  859. package/dist/types-ts4.5/rules/use-latest-xcss-syntax-typography/linters/index.d.ts +0 -3
  860. package/dist/types-ts4.5/rules/use-primitives/transformers/index.d.ts +0 -3
  861. package/dist/types-ts4.5/rules/use-primitives/utils/index.d.ts +0 -9
  862. package/dist/types-ts4.5/rules/use-primitives-text/transformers/index.d.ts +0 -4
  863. package/dist/types-ts4.5/rules/use-spotlight-package/linters/index.d.ts +0 -1
  864. package/dist/types-ts4.5/rules/use-tokens-space/transformers/index.d.ts +0 -1
  865. package/dist/types-ts4.5/rules/use-tokens-space/utils/index.d.ts +0 -1
@@ -0,0 +1,112 @@
1
+ import { isNodeOfType } from 'eslint-codemod-utils';
2
+ import { JSXElement } from '../../ast-nodes/jsx-element';
3
+ import { createLintRule } from '../utils/create-rule';
4
+ export const AFFECTED_HTML_ELEMENTS = ['input', 'textarea'];
5
+ export const AFFECTED_ATLASKIT_PACKAGES = {
6
+ '@atlaskit/textarea': ['default'],
7
+ '@atlaskit/textfield': ['default']
8
+ };
9
+ export const UNWANTED_HTML_ATTRIBUTES = ['disabled', 'readonly'];
10
+ export const UNWANTED_ATLASKIT_ATTRIBUTES = ['isDisabled', 'isReadOnly'];
11
+ const hasUnwantedAttributes = (node, type) => {
12
+ const attrNames = type === 'html' ? UNWANTED_HTML_ATTRIBUTES : UNWANTED_ATLASKIT_ATTRIBUTES;
13
+ const unwantedAttrs = node.openingElement.attributes.filter(attr => isNodeOfType(attr, 'JSXAttribute')).map(attr => String(attr.name.name)).filter(attrName => attrNames.includes(attrName));
14
+ return unwantedAttrs;
15
+ };
16
+ const rule = createLintRule({
17
+ meta: {
18
+ name: 'no-readonly-or-disabled-inputs',
19
+ type: 'problem',
20
+ docs: {
21
+ description: 'Inputs should almost always be interactive. Disabled and read-only inputs can usually be replaced by a more user-friendly design pattern.',
22
+ recommended: true,
23
+ severity: 'warn'
24
+ },
25
+ messages: {
26
+ noDisabled: 'Inputs should almost always be interactive. Instead of disabling an input, consider removing it altogether, as it cannot be used anyway. Disabled inputs are much less accessible than a well labeled and described input with clear error, valid, and/or helper messages.',
27
+ noReadOnly: 'Inputs should almost always be interactive. Instead of making an input read-only, consider making it normal text. Read-only inputs do the same thing as normal text but appear as interactive elements and add themselves to the tab-order, which can be confusing for users.'
28
+ }
29
+ },
30
+ create(context) {
31
+ const localComponentNames = [];
32
+ return {
33
+ ImportDeclaration(node) {
34
+ const source = node.source.value;
35
+ if (typeof source !== 'string') {
36
+ return;
37
+ }
38
+
39
+ // Ignore non-atlaskit input packages
40
+ if (!Object.keys(AFFECTED_ATLASKIT_PACKAGES).includes(source)) {
41
+ return;
42
+ }
43
+ if (!node.specifiers.length) {
44
+ return;
45
+ }
46
+ const defaultImport = node.specifiers.filter(spec => spec.type === 'ImportDefaultSpecifier');
47
+ const namedImport = node.specifiers.filter(spec => spec.type === 'ImportSpecifier');
48
+ const importNames = AFFECTED_ATLASKIT_PACKAGES[source];
49
+ const usesDefaultImport = importNames.includes('default');
50
+ const possibleNamedImports = importNames.filter(importName => importName !== 'default');
51
+ if (usesDefaultImport && defaultImport.length && defaultImport[0].local) {
52
+ localComponentNames.push(defaultImport[0].local.name);
53
+ // or if popup and using a named import
54
+ } else if (possibleNamedImports.length >= 1 && namedImport.length) {
55
+ namedImport.forEach(imp => {
56
+ if (imp.type === 'ImportSpecifier' && 'name' in imp.imported && possibleNamedImports.includes(imp.imported.name)) {
57
+ localComponentNames.push(imp.local.name);
58
+ }
59
+ });
60
+ }
61
+ },
62
+ JSXElement(node) {
63
+ if (!isNodeOfType(node, 'JSXElement')) {
64
+ return false;
65
+ }
66
+ const elName = JSXElement.getName(node);
67
+ if (!elName) {
68
+ return false;
69
+ }
70
+
71
+ // If it is one of the affected native HTML elements
72
+ if (AFFECTED_HTML_ELEMENTS.includes(elName)) {
73
+ const unwantedAttributes = hasUnwantedAttributes(node, 'html');
74
+ if (unwantedAttributes.includes('disabled')) {
75
+ return context.report({
76
+ node: node.openingElement,
77
+ messageId: 'noDisabled'
78
+ });
79
+ } else if (unwantedAttributes.includes('readonly')) {
80
+ return context.report({
81
+ node: node.openingElement,
82
+ messageId: 'noReadOnly'
83
+ });
84
+ }
85
+ // Else, it is a React component
86
+ } else {
87
+ // if none of the affected packages is imported, return
88
+ if (localComponentNames.length === 0) {
89
+ return;
90
+ }
91
+ // if component name is not in the list, exit
92
+ if (!isNodeOfType(node.openingElement.name, 'JSXIdentifier') || !localComponentNames.includes(node.openingElement.name.name)) {
93
+ return;
94
+ }
95
+ const unwantedAttributes = hasUnwantedAttributes(node, 'atlaskit');
96
+ if (unwantedAttributes.includes('isDisabled')) {
97
+ return context.report({
98
+ node: node.openingElement,
99
+ messageId: 'noDisabled'
100
+ });
101
+ } else if (unwantedAttributes.includes('isReadOnly')) {
102
+ return context.report({
103
+ node: node.openingElement,
104
+ messageId: 'noReadOnly'
105
+ });
106
+ }
107
+ }
108
+ }
109
+ };
110
+ }
111
+ });
112
+ export default rule;
@@ -4,7 +4,8 @@ import tokenDefaultValues from '@atlaskit/tokens/token-default-values';
4
4
  import { getTokenId } from '@atlaskit/tokens/token-ids';
5
5
  import tokens from '@atlaskit/tokens/token-names';
6
6
  import { createLintRule } from '../utils/create-rule';
7
- import { isDecendantOfStyleBlock, isDecendantOfStyleJsxAttribute } from '../utils/is-node';
7
+ import { isDecendantOfStyleJsxAttribute } from '../utils/is-decendant-of-style-jsx-attribute';
8
+ import { isDecendantOfStyleBlock } from '../utils/is-node';
8
9
  import { isToken } from '../utils/is-token';
9
10
  const rule = createLintRule({
10
11
  meta: {
@@ -1,7 +1,7 @@
1
1
  import { isNodeOfType } from 'eslint-codemod-utils';
2
2
  import { getSourceCode } from '@atlaskit/eslint-utils/context-compat';
3
3
  import { createLintRule } from '../utils/create-rule';
4
- import { getModuleOfIdentifier } from '../utils/get-import-node-by-source';
4
+ import { getModuleOfIdentifier } from '../utils/get-module-of-identifier';
5
5
  import { getJSXElementName } from '../utils/jsx';
6
6
  const unsafeOverrides = ['css', 'className', 'theme', 'cssFn', 'styles'];
7
7
  const rule = createLintRule({
@@ -1,5 +1,5 @@
1
1
  import { isNodeOfType } from 'eslint-codemod-utils';
2
- export const validPrimitiveElements = new Set(['div', 'span', 'article', 'aside', 'dialog', 'footer', 'header', 'li', 'main', 'nav', 'ol', 'section', 'ul', 'button']);
2
+ import { validPrimitiveElements } from './valid-primitive-elements';
3
3
  const getChildrenByType = (node, types) => {
4
4
  return node.children.filter(child => {
5
5
  return types.find(type => isNodeOfType(child, type));
@@ -0,0 +1 @@
1
+ export const validPrimitiveElements = new Set(['div', 'span', 'article', 'aside', 'dialog', 'footer', 'header', 'li', 'main', 'nav', 'ol', 'section', 'ul', 'button']);
@@ -1,7 +1,7 @@
1
1
  import { createLintRule } from '../utils/create-rule';
2
2
  import { errorBoundary } from '../utils/error-boundary';
3
3
  import { getConfig } from './config';
4
- import { NativeElements } from './transformers';
4
+ import { NativeElements } from './transformers/native-elements';
5
5
  const docsUrl = 'https://atlassian.design/components/heading';
6
6
  const rule = createLintRule({
7
7
  meta: {
@@ -0,0 +1 @@
1
+ export const allowedAttrs = ['id', 'data-testid', 'key'];
@@ -1,9 +1 @@
1
- import * as ast from '../../../ast-nodes';
2
- // Rename data-testid prop to testId if present
3
- export function updateTestIdAttributeFix(node, fixer) {
4
- const testIdAttr = ast.JSXElement.getAttributeByName(node, 'data-testid');
5
- if (testIdAttr) {
6
- return ast.JSXAttribute.updateName(testIdAttr, 'testId', fixer);
7
- }
8
- }
9
- export const allowedAttrs = ['id', 'data-testid', 'key'];
1
+ export {};
@@ -1,8 +1,10 @@
1
1
  /* eslint-disable @repo/internal/react/require-jsdoc */
2
2
 
3
3
  import { isNodeOfType } from 'eslint-codemod-utils';
4
- import * as ast from '../../../ast-nodes';
5
- import { allowedAttrs, updateTestIdAttributeFix } from './common';
4
+ import { JSXElement as JSXElementHelper } from '../../../ast-nodes/jsx-element';
5
+ import { Root } from '../../../ast-nodes/root';
6
+ import { allowedAttrs } from './allowed-attrs';
7
+ import { updateTestIdAttributeFix } from './update-test-id-attribute-fix';
6
8
  const tagSizeMap = {
7
9
  h1: 'xlarge',
8
10
  h2: 'large',
@@ -66,7 +68,7 @@ export const NativeElements = {
66
68
  success: false
67
69
  };
68
70
  }
69
- const elementName = ast.JSXElement.getName(node);
71
+ const elementName = JSXElementHelper.getName(node);
70
72
  if (!Object.keys(tagSizeMap).includes(elementName)) {
71
73
  return {
72
74
  success: false
@@ -86,7 +88,7 @@ export const NativeElements = {
86
88
  autoFixable: false
87
89
  };
88
90
  }
89
- const siblings = ast.JSXElement.getChildren(node.parent);
91
+ const siblings = JSXElementHelper.getChildren(node.parent);
90
92
  if (siblings.length > 1) {
91
93
  var _siblings$0$range, _node$range, _siblings$0$range2, _node$range2;
92
94
  // Only report if element is first child element
@@ -97,7 +99,7 @@ export const NativeElements = {
97
99
  };
98
100
  }
99
101
  }
100
- if (!ast.JSXElement.hasAllowedAttrsOnly(node, allowedAttrs)) {
102
+ if (!JSXElementHelper.hasAllowedAttrsOnly(node, allowedAttrs)) {
101
103
  return {
102
104
  success: true,
103
105
  autoFixable: false
@@ -113,14 +115,14 @@ export const NativeElements = {
113
115
  }) {
114
116
  return fixer => {
115
117
  // change to default import
116
- const importFix = ast.Root.upsertDefaultImportDeclaration({
118
+ const importFix = Root.upsertDefaultImportDeclaration({
117
119
  module: '@atlaskit/heading',
118
120
  localName: 'Heading'
119
121
  }, context, fixer);
120
- const elementName = ast.JSXElement.getName(node);
121
- const elementNameFixes = ast.JSXElement.updateName(node, 'Heading', fixer);
122
+ const elementName = JSXElementHelper.getName(node);
123
+ const elementNameFixes = JSXElementHelper.updateName(node, 'Heading', fixer);
122
124
  const size = tagSizeMap[elementName];
123
- const asAttributeFix = ast.JSXElement.addAttribute(node, 'size', size, fixer);
125
+ const asAttributeFix = JSXElementHelper.addAttribute(node, 'size', size, fixer);
124
126
  const testAttributeFix = updateTestIdAttributeFix(node, fixer);
125
127
  return [importFix, ...elementNameFixes, asAttributeFix, testAttributeFix].filter(fix => Boolean(fix)); // Some of the transformers can return arrays with undefined, so filter them out
126
128
  };
@@ -0,0 +1,10 @@
1
+ import { JSXAttribute } from '../../../ast-nodes/jsx-attribute';
2
+ import { JSXElement as JSXElementHelper } from '../../../ast-nodes/jsx-element';
3
+
4
+ // Rename data-testid prop to testId if present
5
+ export function updateTestIdAttributeFix(node, fixer) {
6
+ const testIdAttr = JSXElementHelper.getAttributeByName(node, 'data-testid');
7
+ if (testIdAttr) {
8
+ return JSXAttribute.updateName(testIdAttr, 'testId', fixer);
9
+ }
10
+ }
@@ -0,0 +1,16 @@
1
+ import { hasImportOfName } from './has-import-of-name';
2
+ export const getUniqueButtonItemName = (menuNode, importDeclarations) => {
3
+ // Remove menu import node from array
4
+ const allImportDeclarationsButMenu = importDeclarations.filter(i => i !== menuNode);
5
+ let currentButtonItemNameExistsOtherThanMenu = allImportDeclarationsButMenu.reduce((acc, importNode) => acc || hasImportOfName(importNode, 'ButtonItem'), false);
6
+ if (currentButtonItemNameExistsOtherThanMenu) {
7
+ let suffix = 1;
8
+ while (currentButtonItemNameExistsOtherThanMenu) {
9
+ suffix += 1;
10
+ currentButtonItemNameExistsOtherThanMenu = allImportDeclarationsButMenu.reduce((acc, importNode) => acc || hasImportOfName(importNode, `ButtonItem${suffix}`), false);
11
+ }
12
+ return `ButtonItem${suffix}`;
13
+ } else {
14
+ return 'ButtonItem';
15
+ }
16
+ };
@@ -0,0 +1,11 @@
1
+ export const hasImportOfName = (node, name) => {
2
+ return node.specifiers.some(
3
+ // This should not be an `any`. This is an array of `ImportSpecifier |
4
+ // ImportDefaultSpecifier`. For some reason, filtering this way still
5
+ // results in an error of `specifier.imported` doesn't exist on
6
+ // ImportDefaultSpecifier, which is exactly what I'm filtering for
7
+ specifier => {
8
+ var _specifier$imported;
9
+ return (specifier === null || specifier === void 0 ? void 0 : (_specifier$imported = specifier.imported) === null || _specifier$imported === void 0 ? void 0 : _specifier$imported.name) === name;
10
+ });
11
+ };
@@ -2,7 +2,11 @@ import { isNodeOfType } from 'eslint-codemod-utils';
2
2
  import { getScope } from '@atlaskit/eslint-utils/context-compat';
3
3
  import { createLintRule } from '../utils/create-rule';
4
4
  import { getImportName } from '../utils/get-import-name';
5
- import { getUniqueButtonItemName, hasImportOfName, hrefHasInvalidValue, insertButtonItemDefaultImport, insertButtonItemImport } from './utils';
5
+ import { getUniqueButtonItemName } from './get-unique-button-item-name';
6
+ import { hasImportOfName } from './has-import-of-name';
7
+ import { insertButtonItemDefaultImport } from './insert-button-item-default-import';
8
+ import { insertButtonItemImport } from './insert-button-item-import';
9
+ import { hrefHasInvalidValue } from './utils';
6
10
  export const hrefRequiredSuggestionText = 'Convert LinkItem to ButtonItem';
7
11
  const rule = createLintRule({
8
12
  meta: {
@@ -0,0 +1 @@
1
+ export const insertButtonItemDefaultImport = (fixer, node) => fixer.insertTextBefore(node, `import ButtonItem from '@atlaskit/menu/button-item';\n`);
@@ -0,0 +1,4 @@
1
+ export const insertButtonItemImport = (fixer, node, uniqueButtonItemName) => {
2
+ const insertedImport = uniqueButtonItemName !== 'ButtonItem' ? `, ButtonItem as ${uniqueButtonItemName}` : ', ButtonItem';
3
+ return fixer.insertTextAfter(node.specifiers.slice(-1)[0], insertedImport);
4
+ };
@@ -40,35 +40,4 @@ export const hrefHasInvalidValue = (scope, href) => {
40
40
  }
41
41
  }
42
42
  return false;
43
- };
44
- export const hasImportOfName = (node, name) => {
45
- return node.specifiers.some(
46
- // This should not be an `any`. This is an array of `ImportSpecifier |
47
- // ImportDefaultSpecifier`. For some reason, filtering this way still
48
- // results in an error of `specifier.imported` doesn't exist on
49
- // ImportDefaultSpecifier, which is exactly what I'm filtering for
50
- specifier => {
51
- var _specifier$imported;
52
- return (specifier === null || specifier === void 0 ? void 0 : (_specifier$imported = specifier.imported) === null || _specifier$imported === void 0 ? void 0 : _specifier$imported.name) === name;
53
- });
54
- };
55
- export const insertButtonItemDefaultImport = (fixer, node) => fixer.insertTextBefore(node, `import ButtonItem from '@atlaskit/menu/button-item';\n`);
56
- export const getUniqueButtonItemName = (menuNode, importDeclarations) => {
57
- // Remove menu import node from array
58
- const allImportDeclarationsButMenu = importDeclarations.filter(i => i !== menuNode);
59
- let currentButtonItemNameExistsOtherThanMenu = allImportDeclarationsButMenu.reduce((acc, importNode) => acc || hasImportOfName(importNode, 'ButtonItem'), false);
60
- if (currentButtonItemNameExistsOtherThanMenu) {
61
- let suffix = 1;
62
- while (currentButtonItemNameExistsOtherThanMenu) {
63
- suffix += 1;
64
- currentButtonItemNameExistsOtherThanMenu = allImportDeclarationsButMenu.reduce((acc, importNode) => acc || hasImportOfName(importNode, `ButtonItem${suffix}`), false);
65
- }
66
- return `ButtonItem${suffix}`;
67
- } else {
68
- return 'ButtonItem';
69
- }
70
- };
71
- export const insertButtonItemImport = (fixer, node, uniqueButtonItemName) => {
72
- const insertedImport = uniqueButtonItemName !== 'ButtonItem' ? `, ButtonItem as ${uniqueButtonItemName}` : ', ButtonItem';
73
- return fixer.insertTextAfter(node.specifiers.slice(-1)[0], insertedImport);
74
43
  };
@@ -1,5 +1,5 @@
1
1
  import { createLintRule } from '../utils/create-rule';
2
- import { StyleProperty } from './transformers';
2
+ import { StyleProperty } from './transformers/style-property';
3
3
  export const noRawSpacingValues = `Don't use non-token values in padding or margin. There is ongoing work to make this a TypeScript error. Once that happens, you will have to delete/refactor anyway. Atlassians: See https://go.atlassian.com/xcss-spacing for details.`;
4
4
  const rule = createLintRule({
5
5
  meta: {
@@ -2,7 +2,9 @@
2
2
 
3
3
  import { isNodeOfType } from 'eslint-codemod-utils';
4
4
  import { getSourceCode } from '@atlaskit/eslint-utils/context-compat';
5
- import * as ast from '../../../../ast-nodes';
5
+ import { Import } from '../../../../ast-nodes/import';
6
+ import { ObjectEntry as ObjectEntryHelper } from '../../../../ast-nodes/object-entry';
7
+ import { Root } from '../../../../ast-nodes/root';
6
8
  import { styleMap } from './style-map';
7
9
  import supported from './supported';
8
10
  const messageId = 'noRawSpacingValues';
@@ -33,9 +35,9 @@ export const StyleProperty = {
33
35
  ref: undefined
34
36
  };
35
37
  }
36
- const importDeclarations = ast.Root.findImportsByModule(getSourceCode(context).ast.body, '@atlaskit/primitives');
38
+ const importDeclarations = Root.findImportsByModule(getSourceCode(context).ast.body, '@atlaskit/primitives');
37
39
  const isXcssImported = importDeclarations.some(importDeclaration => {
38
- return ast.Import.containsNamedSpecifier(importDeclaration, 'xcss');
40
+ return Import.containsNamedSpecifier(importDeclaration, 'xcss');
39
41
  });
40
42
  if (!isXcssImported) {
41
43
  return {
@@ -68,7 +70,7 @@ export const StyleProperty = {
68
70
  }
69
71
  const {
70
72
  value: property
71
- } = ast.ObjectEntry.getProperty(node);
73
+ } = ObjectEntryHelper.getProperty(node);
72
74
 
73
75
  // Bail if the property is not `padding`, `margin`, etc
74
76
  if (!property || !styleMap.includes(property)) {
@@ -77,7 +79,7 @@ export const StyleProperty = {
77
79
  ref: undefined
78
80
  };
79
81
  }
80
- const value = ast.ObjectEntry.getValue(node);
82
+ const value = ObjectEntryHelper.getValue(node);
81
83
  if (typeof value !== 'string') {
82
84
  return {
83
85
  success: false,
@@ -1,7 +1,9 @@
1
1
  import { createLintRule } from '../utils/create-rule';
2
2
  import { errorBoundary } from '../utils/error-boundary';
3
3
  import { getConfig, PATTERNS } from './config';
4
- import { RestrictedCapitalisation, RestrictedProperty, WrappedTokenValue } from './linters';
4
+ import { RestrictedCapitalisation } from './linters/restricted-capitalisation';
5
+ import { RestrictedProperty } from './linters/restricted-property';
6
+ import { WrappedTokenValue } from './linters/wrapped-token-value';
5
7
  const typescriptErrorMessage = 'There is ongoing work to make this a TypeScript error. Once that happens, you will have to delete/refactor anyway.';
6
8
  const rule = createLintRule({
7
9
  meta: {
@@ -1,6 +1,7 @@
1
1
  import { createLintRule } from '../utils/create-rule';
2
2
  import { getConfig, VALID_PATTERNS } from './config';
3
- import { CompiledStyled, EmotionCSS } from './transformers';
3
+ import { CompiledStyled } from './transformers/compiled-styled';
4
+ import { EmotionCSS } from './transformers/emotion-css';
4
5
  const boxDocsUrl = 'https://atlassian.design/components/primitives/box';
5
6
  const rule = createLintRule({
6
7
  meta: {
@@ -1,4 +1,3 @@
1
- export const elements = ['div'];
2
1
  export const attributes = ['css'
3
2
  // 'data-testid'
4
3
  ];
@@ -1,5 +1,5 @@
1
1
  import { isNodeOfType } from 'eslint-codemod-utils';
2
- import * as ast from '../../../../ast-nodes';
2
+ import { JSXElement as JSXElementHelper } from '../../../../ast-nodes/jsx-element';
3
3
 
4
4
  /**
5
5
  * Transforms a JSXElement from:
@@ -20,7 +20,7 @@ export const convertJsxCallSite = (jsxElement, newStylesVariableName, fixer) =>
20
20
 
21
21
  // renames the JSX call site
22
22
  if (isNodeOfType(jsxElement, 'JSXElement')) {
23
- fixes.push(...ast.JSXElement.updateName(jsxElement, 'Box', fixer));
23
+ fixes.push(...JSXElementHelper.updateName(jsxElement, 'Box', fixer));
24
24
  }
25
25
 
26
26
  // adds xcss prop
@@ -0,0 +1 @@
1
+ export const elements = ['div'];
@@ -1,5 +1,5 @@
1
1
  import { closestOfType, isNodeOfType } from 'eslint-codemod-utils';
2
- import * as supported from './supported';
2
+ import { elements } from './elements';
3
3
 
4
4
  /**
5
5
  * returns a variable reference if preconditions are favourable for
@@ -41,7 +41,7 @@ const isStyledCallExpression = call => {
41
41
  if (!isNodeOfType(call.callee.object, 'Identifier') || !isNodeOfType(call.callee.property, 'Identifier')) {
42
42
  return false;
43
43
  }
44
- if (/^styled2?$/.test(call.callee.object.name) && supported.elements.includes(call.callee.property.name)) {
44
+ if (/^styled2?$/.test(call.callee.object.name) && elements.includes(call.callee.property.name)) {
45
45
  return true;
46
46
  }
47
47
  return false;
@@ -2,8 +2,9 @@
2
2
 
3
3
  import { isNodeOfType } from 'eslint-codemod-utils';
4
4
  import { getScope, getSourceCode } from '@atlaskit/eslint-utils/context-compat';
5
- import * as ast from '../../../../ast-nodes';
6
- import { isValidCssPropertiesToTransform } from '../../utils';
5
+ import { JSXElement as JSXElementHelper } from '../../../../ast-nodes/jsx-element';
6
+ import { Root } from '../../../../ast-nodes/root';
7
+ import { isValidCssPropertiesToTransform } from '../../utils/is-valid-css-properties-to-transform';
7
8
  import { validateStyles } from '../../utils/validate-styles';
8
9
  import { convertJsxCallSite } from './convert-jsx-call-site';
9
10
  import { convertStyledComponentToXcss } from './convert-styled-component-call-to-jsx';
@@ -33,7 +34,7 @@ export const CompiledStyled = {
33
34
  node: refs.styles,
34
35
  messageId: 'preferPrimitivesBox',
35
36
  suggest: [{
36
- desc: `Convert ${ast.JSXElement.getName(refs.jsxElement)} to Box`,
37
+ desc: `Convert ${JSXElementHelper.getName(refs.jsxElement)} to Box`,
37
38
  fix: CompiledStyled._fix(refs, context)
38
39
  }]
39
40
  });
@@ -70,7 +71,7 @@ export const CompiledStyled = {
70
71
  success: false
71
72
  };
72
73
  }
73
- const importDeclaration = ast.Root.findImportsByModule(getSourceCode(context).ast.body, '@atlaskit/primitives');
74
+ const importDeclaration = Root.findImportsByModule(getSourceCode(context).ast.body, '@atlaskit/primitives');
74
75
 
75
76
  // If there is more than one `@atlaskit/primitives` import, then it becomes difficult to determine which import to transform
76
77
  if (importDeclaration.length > 1) {
@@ -97,7 +98,7 @@ export const CompiledStyled = {
97
98
  if (!calculatedStylesVariableName) {
98
99
  return [];
99
100
  }
100
- const importFixes = ast.Root.upsertNamedImportDeclaration({
101
+ const importFixes = Root.upsertNamedImportDeclaration({
101
102
  module: '@atlaskit/primitives',
102
103
  specifiers: ['Box', 'xcss']
103
104
  }, context, fixer);
@@ -1,7 +1,12 @@
1
1
  import { getIdentifierInParentScope, identifier, isNodeOfType, literal } from 'eslint-codemod-utils';
2
2
  import { getScope } from '@atlaskit/eslint-utils/context-compat';
3
- import { allSpaceMap, positiveSpaceMap } from '../../../common/token-maps.partial';
4
- import { getAttributeValueIdentifier, getFunctionArgumentAtPos, getJSXAttributeByName, getVariableDefinitionValue } from '../utils';
3
+ import { getAttributeValueIdentifier } from '../utils/get-attribute-value-identifier';
4
+ import { getFunctionArgumentAtPos } from '../utils/get-function-argument-at-pos';
5
+ import { getJSXAttributeByName } from '../utils/get-jsx-attribute-by-name';
6
+ import { getVariableDefinitionValue } from '../utils/get-variable-definition-value';
7
+ import { spaceTokenMap } from './space-token-map';
8
+ import { spaceTokenPositiveMap } from './space-token-positive-map';
9
+ import { supportedDimensionAttributesMap } from './supported-dimension-attributes-map';
5
10
  export const cssToXcssTransformer = (node, context, fixer) => {
6
11
  /**
7
12
  * Note: The logic here is very similar to the logic in `shouldSuggestBox`. i.e.
@@ -66,19 +71,6 @@ export const styledObjectToXcssTokens = (styles, fixer) => {
66
71
  }
67
72
  });
68
73
  };
69
- export const spaceTokenMap = allSpaceMap;
70
- export const spaceTokenPositiveMap = positiveSpaceMap;
71
- export const dimensionsMap = {
72
- '100%': '100%'
73
- };
74
- export const supportedDimensionAttributesMap = {
75
- width: dimensionsMap,
76
- height: dimensionsMap,
77
- minWidth: dimensionsMap,
78
- minHeight: dimensionsMap,
79
- maxWidth: dimensionsMap,
80
- maxHeight: dimensionsMap
81
- };
82
74
  export const supportedStylesMap = {
83
75
  padding: spaceTokenPositiveMap,
84
76
  paddingBlock: spaceTokenPositiveMap,
@@ -0,0 +1,3 @@
1
+ export const dimensionsMap = {
2
+ '100%': '100%'
3
+ };
@@ -1,4 +1,3 @@
1
- export const elements = ['div'];
2
1
  export const attributes = ['css'
3
2
  // 'data-testid'
4
3
  ];
@@ -0,0 +1 @@
1
+ export const elements = ['div'];
@@ -2,11 +2,17 @@
2
2
 
3
3
  import { getIdentifierInParentScope, isNodeOfType } from 'eslint-codemod-utils';
4
4
  import { getScope, getSourceCode } from '@atlaskit/eslint-utils/context-compat';
5
- import * as ast from '../../../../ast-nodes';
6
- import { getVariableDefinitionValue, getVariableUsagesCount, isValidCssPropertiesToTransform } from '../../utils';
5
+ import { FunctionCall } from '../../../../ast-nodes/function-call';
6
+ import { JSXAttribute as JSXAttributeHelper } from '../../../../ast-nodes/jsx-attribute';
7
+ import { JSXElement as JSXElementHelper } from '../../../../ast-nodes/jsx-element';
8
+ import { Root } from '../../../../ast-nodes/root';
9
+ import { getVariableDefinitionValue } from '../../utils/get-variable-definition-value';
10
+ import { getVariableUsagesCount } from '../../utils/get-variable-usage-count';
11
+ import { isValidCssPropertiesToTransform } from '../../utils/is-valid-css-properties-to-transform';
7
12
  import { validateStyles } from '../../utils/validate-styles';
8
13
  import { cssToXcssTransformer } from '../css-to-xcss';
9
- import * as supported from './supported';
14
+ import { attributes } from './attributes';
15
+ import { elements } from './elements';
10
16
  export const EmotionCSS = {
11
17
  lint(node, {
12
18
  context,
@@ -44,29 +50,29 @@ export const EmotionCSS = {
44
50
  if (!isNodeOfType(node, 'JSXElement')) {
45
51
  return false;
46
52
  }
47
- const elementName = ast.JSXElement.getName(node);
53
+ const elementName = JSXElementHelper.getName(node);
48
54
  if (!elementName) {
49
55
  return false;
50
56
  }
51
57
 
52
58
  // Currently we only support `div`. This may change in future.
53
- if (!supported.elements.includes(elementName)) {
59
+ if (!elements.includes(elementName)) {
54
60
  return false;
55
61
  }
56
62
 
57
63
  // Ignore elements that contain dangerous attributes like `id`.
58
- if (!ast.JSXElement.hasAllowedAttrsOnly(node, supported.attributes)) {
64
+ if (!JSXElementHelper.hasAllowedAttrsOnly(node, attributes)) {
59
65
  return false;
60
66
  }
61
67
 
62
68
  // Currently we don't transform anything to `Box` unless it defines styles
63
- const cssAttr = ast.JSXElement.getAttributeByName(node, 'css');
69
+ const cssAttr = JSXElementHelper.getAttributeByName(node, 'css');
64
70
  if (!cssAttr) {
65
71
  return false;
66
72
  }
67
73
 
68
74
  // Get `myStyles` in `css={myStyles}` as a string so we can search for the `const myStyles` VariableDefinition
69
- const cssAttrValue = ast.JSXAttribute.getValue(cssAttr);
75
+ const cssAttrValue = JSXAttributeHelper.getValue(cssAttr);
70
76
  if ((cssAttrValue === null || cssAttrValue === void 0 ? void 0 : cssAttrValue.type) !== 'ExpressionStatement') {
71
77
  return false;
72
78
  }
@@ -82,13 +88,13 @@ export const EmotionCSS = {
82
88
  const cssVariableDefinition = getIdentifierInParentScope(getScope(context, node), cssAttrValue.value);
83
89
  const cssVariableValue = getVariableDefinitionValue(cssVariableDefinition);
84
90
  // Check if `cssVariableValue` is a function called `css()`
85
- if (ast.FunctionCall.getName(cssVariableValue === null || cssVariableValue === void 0 ? void 0 : cssVariableValue.node.init) !== 'css') {
91
+ if (FunctionCall.getName(cssVariableValue === null || cssVariableValue === void 0 ? void 0 : cssVariableValue.node.init) !== 'css') {
86
92
  return false;
87
93
  }
88
94
  if (!(config.patterns.includes('string-style-property-fix') ? validateStyles(cssVariableValue === null || cssVariableValue === void 0 ? void 0 : cssVariableValue.node.init, config) : isValidCssPropertiesToTransform(cssVariableValue === null || cssVariableValue === void 0 ? void 0 : cssVariableValue.node.init, config))) {
89
95
  return false;
90
96
  }
91
- const importDeclaration = ast.Root.findImportsByModule(getSourceCode(context).ast.body, '@atlaskit/primitives');
97
+ const importDeclaration = Root.findImportsByModule(getSourceCode(context).ast.body, '@atlaskit/primitives');
92
98
 
93
99
  // If there is more than one `@atlaskit/primitives` import, then it becomes difficult to determine which import to transform
94
100
  if (importDeclaration.length > 1) {
@@ -100,13 +106,13 @@ export const EmotionCSS = {
100
106
  context
101
107
  }) {
102
108
  return fixer => {
103
- const importFix = ast.Root.upsertNamedImportDeclaration({
109
+ const importFix = Root.upsertNamedImportDeclaration({
104
110
  module: '@atlaskit/primitives',
105
111
  specifiers: ['Box', 'xcss']
106
112
  }, context, fixer);
107
- const cssAttr = ast.JSXElement.getAttributeByName(node, 'css'); // Can strongly assert the type here, because we validated it exists in `check()`.
108
- const attributeFix = ast.JSXAttribute.updateName(cssAttr, 'xcss', fixer);
109
- const elementNameFixes = ast.JSXElement.updateName(node, 'Box', fixer);
113
+ const cssAttr = JSXElementHelper.getAttributeByName(node, 'css'); // Can strongly assert the type here, because we validated it exists in `check()`.
114
+ const attributeFix = JSXAttributeHelper.updateName(cssAttr, 'xcss', fixer);
115
+ const elementNameFixes = JSXElementHelper.updateName(node, 'Box', fixer);
110
116
  const cssToXcssTransform = cssToXcssTransformer(node, context, fixer);
111
117
  return [importFix, attributeFix, ...elementNameFixes, ...cssToXcssTransform].filter(fix => Boolean(fix)); // Some of the transformers can return arrays with undefined, so filter them out
112
118
  };
@@ -0,0 +1,2 @@
1
+ import { allSpaceMap } from '../../../common/token-maps.partial';
2
+ export const spaceTokenMap = allSpaceMap;
@@ -0,0 +1,2 @@
1
+ import { positiveSpaceMap } from '../../../common/token-maps.partial';
2
+ export const spaceTokenPositiveMap = positiveSpaceMap;