@atlaskit/dropdown-menu 10.1.8 → 11.0.2

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 (211) hide show
  1. package/CHANGELOG.md +148 -0
  2. package/__perf__/default.tsx +1 -1
  3. package/__perf__/dropdown-menu.tsx +216 -0
  4. package/codemods/11.0.0-lite-mode.tsx +39 -0
  5. package/codemods/__tests__/11.0.0-lite-mode.test.tsx +48 -0
  6. package/codemods/__tests__/convert-position.test.tsx +88 -0
  7. package/codemods/__tests__/convert-triggerType.test.tsx +100 -0
  8. package/codemods/__tests__/deprecate-items.test.tsx +108 -0
  9. package/codemods/__tests__/deprecate-onItemActivated.test.tsx +108 -0
  10. package/codemods/__tests__/deprecate-onPositioned.test.tsx +108 -0
  11. package/codemods/__tests__/deprecate-shouldFitContainer.tsx +108 -0
  12. package/codemods/__tests__/rename-imports.tsx +136 -0
  13. package/codemods/__tests__/replace-position-to-placement.test.tsx +84 -0
  14. package/codemods/__tests__/replace-shouldAllowMultipleLine.test.tsx +122 -0
  15. package/codemods/__tests__/update-component-callsites.tsx +66 -0
  16. package/codemods/migrates/convert-trigger-type.tsx +57 -0
  17. package/codemods/migrates/deprecate-items.tsx +9 -0
  18. package/codemods/migrates/deprecate-onItemActivated.tsx +9 -0
  19. package/codemods/migrates/deprecate-onPositioned.tsx +9 -0
  20. package/codemods/migrates/deprecate-shouldFitContainer.tsx +9 -0
  21. package/codemods/migrates/rename-imports.tsx +22 -0
  22. package/codemods/migrates/replace-position-to-placement.tsx +38 -0
  23. package/codemods/migrates/replace-shouldAllowMultiline.tsx +47 -0
  24. package/codemods/migrates/update-component-callsites.tsx +13 -0
  25. package/codemods/utils/convert-position.tsx +24 -0
  26. package/codemods/utils/create-rename-import.tsx +41 -0
  27. package/codemods/utils/create-update-callsite.tsx +32 -0
  28. package/dist/cjs/checkbox/dropdown-item-checkbox-group.js +31 -0
  29. package/dist/cjs/checkbox/dropdown-item-checkbox.js +108 -0
  30. package/dist/cjs/dropdown-menu-item-group.js +22 -0
  31. package/dist/cjs/dropdown-menu-item.js +67 -0
  32. package/dist/cjs/dropdown-menu.js +194 -0
  33. package/dist/cjs/index.js +21 -29
  34. package/dist/cjs/{components/item/DropdownItemRadio.js → internal/components/focus-manager.js} +40 -9
  35. package/dist/cjs/internal/components/menu-wrapper.js +68 -0
  36. package/dist/cjs/internal/context/checkbox-group-context.js +14 -0
  37. package/dist/cjs/internal/context/selection-store.js +76 -0
  38. package/dist/cjs/internal/hooks/use-checkbox-state.js +68 -0
  39. package/dist/cjs/internal/hooks/use-radio-state.js +84 -0
  40. package/dist/cjs/internal/hooks/use-register-item-with-focus-manager.js +29 -0
  41. package/dist/cjs/internal/utils/get-icon-colors.js +25 -0
  42. package/dist/cjs/internal/utils/handle-focus.js +58 -0
  43. package/dist/cjs/internal/utils/is-checkbox-item.js +11 -0
  44. package/dist/cjs/internal/utils/is-radio-item.js +11 -0
  45. package/dist/cjs/internal/utils/is-voice-over-supported.js +23 -0
  46. package/dist/cjs/internal/utils/reset-options-in-group.js +23 -0
  47. package/dist/cjs/radio/dropdown-item-radio-group.js +89 -0
  48. package/dist/cjs/radio/dropdown-item-radio.js +108 -0
  49. package/dist/cjs/version.json +1 -1
  50. package/dist/es2019/checkbox/dropdown-item-checkbox-group.js +21 -0
  51. package/dist/es2019/checkbox/dropdown-item-checkbox.js +67 -0
  52. package/dist/es2019/dropdown-menu-item-group.js +11 -0
  53. package/dist/es2019/dropdown-menu-item.js +49 -0
  54. package/dist/es2019/dropdown-menu.js +151 -0
  55. package/dist/es2019/index.js +7 -11
  56. package/dist/es2019/internal/components/focus-manager.js +40 -0
  57. package/dist/es2019/internal/components/menu-wrapper.js +44 -0
  58. package/dist/es2019/internal/context/checkbox-group-context.js +6 -0
  59. package/dist/es2019/internal/context/selection-store.js +54 -0
  60. package/dist/es2019/internal/hooks/use-checkbox-state.js +45 -0
  61. package/dist/es2019/internal/hooks/use-radio-state.js +56 -0
  62. package/dist/es2019/internal/hooks/use-register-item-with-focus-manager.js +19 -0
  63. package/dist/es2019/internal/utils/get-icon-colors.js +17 -0
  64. package/dist/es2019/internal/utils/handle-focus.js +48 -0
  65. package/dist/es2019/internal/utils/is-checkbox-item.js +4 -0
  66. package/dist/es2019/internal/utils/is-radio-item.js +4 -0
  67. package/dist/es2019/internal/utils/is-voice-over-supported.js +11 -0
  68. package/dist/es2019/internal/utils/reset-options-in-group.js +7 -0
  69. package/dist/es2019/radio/dropdown-item-radio-group.js +56 -0
  70. package/dist/es2019/radio/dropdown-item-radio.js +67 -0
  71. package/dist/es2019/version.json +1 -1
  72. package/dist/esm/checkbox/dropdown-item-checkbox-group.js +19 -0
  73. package/dist/esm/checkbox/dropdown-item-checkbox.js +81 -0
  74. package/dist/esm/dropdown-menu-item-group.js +11 -0
  75. package/dist/esm/dropdown-menu-item.js +52 -0
  76. package/dist/esm/dropdown-menu.js +168 -0
  77. package/dist/esm/index.js +7 -11
  78. package/dist/esm/internal/components/focus-manager.js +39 -0
  79. package/dist/esm/internal/components/menu-wrapper.js +45 -0
  80. package/dist/esm/internal/context/checkbox-group-context.js +6 -0
  81. package/dist/esm/internal/context/selection-store.js +58 -0
  82. package/dist/esm/internal/hooks/use-checkbox-state.js +55 -0
  83. package/dist/esm/internal/hooks/use-radio-state.js +70 -0
  84. package/dist/esm/internal/hooks/use-register-item-with-focus-manager.js +19 -0
  85. package/dist/esm/internal/utils/get-icon-colors.js +17 -0
  86. package/dist/esm/internal/utils/handle-focus.js +47 -0
  87. package/dist/esm/internal/utils/is-checkbox-item.js +4 -0
  88. package/dist/esm/internal/utils/is-radio-item.js +4 -0
  89. package/dist/esm/internal/utils/is-voice-over-supported.js +15 -0
  90. package/dist/esm/internal/utils/reset-options-in-group.js +13 -0
  91. package/dist/esm/radio/dropdown-item-radio-group.js +66 -0
  92. package/dist/esm/radio/dropdown-item-radio.js +81 -0
  93. package/dist/esm/version.json +1 -1
  94. package/dist/types/checkbox/dropdown-item-checkbox-group.d.ts +16 -0
  95. package/dist/types/checkbox/dropdown-item-checkbox.d.ts +13 -0
  96. package/dist/types/dropdown-menu-item-group.d.ts +11 -0
  97. package/dist/types/dropdown-menu-item.d.ts +13 -0
  98. package/dist/types/dropdown-menu.d.ts +13 -0
  99. package/dist/types/index.d.ts +8 -10
  100. package/dist/types/internal/components/focus-manager.d.ts +19 -0
  101. package/dist/types/internal/components/menu-wrapper.d.ts +11 -0
  102. package/dist/types/internal/context/checkbox-group-context.d.ts +5 -0
  103. package/dist/types/internal/context/selection-store.d.ts +27 -0
  104. package/dist/types/internal/hooks/use-checkbox-state.d.ts +14 -0
  105. package/dist/types/internal/hooks/use-radio-state.d.ts +9 -0
  106. package/dist/types/internal/hooks/use-register-item-with-focus-manager.d.ts +4 -0
  107. package/dist/types/internal/utils/get-icon-colors.d.ts +8 -0
  108. package/dist/types/internal/utils/handle-focus.d.ts +2 -0
  109. package/dist/types/internal/utils/is-checkbox-item.d.ts +1 -0
  110. package/dist/types/internal/utils/is-radio-item.d.ts +1 -0
  111. package/dist/types/internal/utils/is-voice-over-supported.d.ts +2 -0
  112. package/dist/types/internal/utils/reset-options-in-group.d.ts +4 -0
  113. package/dist/types/radio/dropdown-item-radio-group.d.ts +25 -0
  114. package/dist/types/radio/dropdown-item-radio.d.ts +13 -0
  115. package/dist/types/types.d.ts +254 -79
  116. package/package.json +39 -23
  117. package/dist/cjs/components/DropdownMenu.js +0 -230
  118. package/dist/cjs/components/DropdownMenuStateless.js +0 -523
  119. package/dist/cjs/components/context/DropdownItemClickManager.js +0 -72
  120. package/dist/cjs/components/context/DropdownItemFocusManager.js +0 -178
  121. package/dist/cjs/components/context/DropdownItemSelectionCache.js +0 -131
  122. package/dist/cjs/components/context/DropdownItemSelectionManager.js +0 -185
  123. package/dist/cjs/components/group/DropdownItemGroup.js +0 -61
  124. package/dist/cjs/components/group/DropdownItemGroupCheckbox.js +0 -16
  125. package/dist/cjs/components/group/DropdownItemGroupRadio.js +0 -16
  126. package/dist/cjs/components/group/ert-group-selection.js +0 -8
  127. package/dist/cjs/components/hoc/withItemSelectionManager.js +0 -66
  128. package/dist/cjs/components/hoc/withToggleInteraction.js +0 -175
  129. package/dist/cjs/components/item/DropdownItem.js +0 -19
  130. package/dist/cjs/components/item/DropdownItemCheckbox.js +0 -28
  131. package/dist/cjs/components/item/ert-item-checkbox.js +0 -8
  132. package/dist/cjs/components/item/ert-item-radio.js +0 -8
  133. package/dist/cjs/components/item/ert-item.js +0 -8
  134. package/dist/cjs/styled/WidthConstrainer.js +0 -21
  135. package/dist/cjs/util/contextNamespace.js +0 -19
  136. package/dist/cjs/util/getDisplayName.js +0 -14
  137. package/dist/cjs/util/keys.js +0 -18
  138. package/dist/cjs/util/safeContextCall.js +0 -27
  139. package/dist/cjs/util/supportsVoiceover.js +0 -17
  140. package/dist/es2019/components/DropdownMenu.js +0 -156
  141. package/dist/es2019/components/DropdownMenuStateless.js +0 -459
  142. package/dist/es2019/components/context/DropdownItemClickManager.js +0 -31
  143. package/dist/es2019/components/context/DropdownItemFocusManager.js +0 -134
  144. package/dist/es2019/components/context/DropdownItemSelectionCache.js +0 -68
  145. package/dist/es2019/components/context/DropdownItemSelectionManager.js +0 -140
  146. package/dist/es2019/components/group/DropdownItemGroup.js +0 -17
  147. package/dist/es2019/components/group/DropdownItemGroupCheckbox.js +0 -3
  148. package/dist/es2019/components/group/DropdownItemGroupRadio.js +0 -3
  149. package/dist/es2019/components/group/ert-group-selection.js +0 -1
  150. package/dist/es2019/components/hoc/withItemSelectionManager.js +0 -20
  151. package/dist/es2019/components/hoc/withToggleInteraction.js +0 -119
  152. package/dist/es2019/components/item/DropdownItem.js +0 -3
  153. package/dist/es2019/components/item/DropdownItemCheckbox.js +0 -5
  154. package/dist/es2019/components/item/DropdownItemRadio.js +0 -5
  155. package/dist/es2019/components/item/ert-item-checkbox.js +0 -1
  156. package/dist/es2019/components/item/ert-item-radio.js +0 -1
  157. package/dist/es2019/components/item/ert-item.js +0 -1
  158. package/dist/es2019/styled/WidthConstrainer.js +0 -6
  159. package/dist/es2019/util/contextNamespace.js +0 -6
  160. package/dist/es2019/util/getDisplayName.js +0 -4
  161. package/dist/es2019/util/keys.js +0 -6
  162. package/dist/es2019/util/safeContextCall.js +0 -10
  163. package/dist/es2019/util/supportsVoiceover.js +0 -5
  164. package/dist/esm/components/DropdownMenu.js +0 -215
  165. package/dist/esm/components/DropdownMenuStateless.js +0 -516
  166. package/dist/esm/components/context/DropdownItemClickManager.js +0 -59
  167. package/dist/esm/components/context/DropdownItemFocusManager.js +0 -164
  168. package/dist/esm/components/context/DropdownItemSelectionCache.js +0 -113
  169. package/dist/esm/components/context/DropdownItemSelectionManager.js +0 -174
  170. package/dist/esm/components/group/DropdownItemGroup.js +0 -43
  171. package/dist/esm/components/group/DropdownItemGroupCheckbox.js +0 -3
  172. package/dist/esm/components/group/DropdownItemGroupRadio.js +0 -3
  173. package/dist/esm/components/group/ert-group-selection.js +0 -1
  174. package/dist/esm/components/hoc/withItemSelectionManager.js +0 -47
  175. package/dist/esm/components/hoc/withToggleInteraction.js +0 -155
  176. package/dist/esm/components/item/DropdownItem.js +0 -3
  177. package/dist/esm/components/item/DropdownItemCheckbox.js +0 -7
  178. package/dist/esm/components/item/DropdownItemRadio.js +0 -7
  179. package/dist/esm/components/item/ert-item-checkbox.js +0 -1
  180. package/dist/esm/components/item/ert-item-radio.js +0 -1
  181. package/dist/esm/components/item/ert-item.js +0 -1
  182. package/dist/esm/styled/WidthConstrainer.js +0 -9
  183. package/dist/esm/util/contextNamespace.js +0 -8
  184. package/dist/esm/util/getDisplayName.js +0 -6
  185. package/dist/esm/util/keys.js +0 -6
  186. package/dist/esm/util/safeContextCall.js +0 -18
  187. package/dist/esm/util/supportsVoiceover.js +0 -9
  188. package/dist/types/components/DropdownMenu.d.ts +0 -36
  189. package/dist/types/components/DropdownMenuStateless.d.ts +0 -82
  190. package/dist/types/components/context/DropdownItemClickManager.d.ts +0 -19
  191. package/dist/types/components/context/DropdownItemFocusManager.d.ts +0 -35
  192. package/dist/types/components/context/DropdownItemSelectionCache.d.ts +0 -31
  193. package/dist/types/components/context/DropdownItemSelectionManager.d.ts +0 -34
  194. package/dist/types/components/group/DropdownItemGroup.d.ts +0 -12
  195. package/dist/types/components/group/DropdownItemGroupCheckbox.d.ts +0 -55
  196. package/dist/types/components/group/DropdownItemGroupRadio.d.ts +0 -55
  197. package/dist/types/components/group/ert-group-selection.d.ts +0 -6
  198. package/dist/types/components/hoc/withItemSelectionManager.d.ts +0 -63
  199. package/dist/types/components/hoc/withToggleInteraction.d.ts +0 -98
  200. package/dist/types/components/item/DropdownItem.d.ts +0 -65
  201. package/dist/types/components/item/DropdownItemCheckbox.d.ts +0 -80
  202. package/dist/types/components/item/DropdownItemRadio.d.ts +0 -80
  203. package/dist/types/components/item/ert-item-checkbox.d.ts +0 -2
  204. package/dist/types/components/item/ert-item-radio.d.ts +0 -2
  205. package/dist/types/components/item/ert-item.d.ts +0 -2
  206. package/dist/types/styled/WidthConstrainer.d.ts +0 -7
  207. package/dist/types/util/contextNamespace.d.ts +0 -4
  208. package/dist/types/util/getDisplayName.d.ts +0 -3
  209. package/dist/types/util/keys.d.ts +0 -6
  210. package/dist/types/util/safeContextCall.d.ts +0 -6
  211. package/dist/types/util/supportsVoiceover.d.ts +0 -2
@@ -0,0 +1,108 @@
1
+ // eslint-disable-next-line @repo/internal/fs/filename-pattern-match
2
+ jest.autoMockOff();
3
+
4
+ import { createTransformer } from '@atlaskit/codemod-utils';
5
+
6
+ import deprecateItems from '../migrates/deprecate-items';
7
+
8
+ const transformer = createTransformer([deprecateItems]);
9
+
10
+ const defineInlineTest = require('jscodeshift/dist/testUtils').defineInlineTest;
11
+
12
+ describe('delete items prop', () => {
13
+ defineInlineTest(
14
+ { default: transformer, parser: 'tsx' },
15
+ {},
16
+ `
17
+ import React from "react";
18
+ import DropdownMenu from "@atlaskit/dropdown-menu";
19
+
20
+ export default () => (
21
+ <DropdownMenu trigger="Click to open" triggerType="button">
22
+ </DropdownMenu>
23
+ );
24
+ `,
25
+ `
26
+ import React from "react";
27
+ import DropdownMenu from "@atlaskit/dropdown-menu";
28
+
29
+ export default () => (
30
+ <DropdownMenu trigger="Click to open" triggerType="button">
31
+ </DropdownMenu>
32
+ );
33
+ `,
34
+ 'should not change anything when items is not used ',
35
+ );
36
+
37
+ defineInlineTest(
38
+ { default: transformer, parser: 'tsx' },
39
+ {},
40
+ `
41
+ import React from "react";
42
+ import DropdownMenu from "@atlaskit/dropdown-menu";
43
+
44
+ export default () => (
45
+ <DropdownMenu trigger="Click to open" triggerType="button" items={[]}>
46
+ </DropdownMenu>
47
+ );
48
+ `,
49
+ `
50
+ import React from "react";
51
+ import DropdownMenu from "@atlaskit/dropdown-menu";
52
+
53
+ export default () => (
54
+ <DropdownMenu trigger="Click to open" triggerType="button">
55
+ </DropdownMenu>
56
+ );
57
+ `,
58
+ 'should delete items when found it',
59
+ );
60
+
61
+ defineInlineTest(
62
+ { default: transformer, parser: 'tsx' },
63
+ {},
64
+ `
65
+ import React from "react";
66
+ import AKDropdownMenu from "@atlaskit/dropdown-menu";
67
+
68
+ export default () => (
69
+ <AKDropdownMenu trigger="Click to open" triggerType="button" items={[]}>
70
+ </AKDropdownMenu>
71
+ );
72
+ `,
73
+ `
74
+ import React from "react";
75
+ import AKDropdownMenu from "@atlaskit/dropdown-menu";
76
+
77
+ export default () => (
78
+ <AKDropdownMenu trigger="Click to open" triggerType="button">
79
+ </AKDropdownMenu>
80
+ );
81
+ `,
82
+ 'should delete items when found it - named import',
83
+ );
84
+
85
+ defineInlineTest(
86
+ { default: transformer, parser: 'tsx' },
87
+ {},
88
+ `
89
+ import React from "react";
90
+ import DropdownMenu from "@fancy-ds/dropdown-menu";
91
+
92
+ export default () => (
93
+ <DropdownMenu trigger="Click to open" triggerType="button" items={[]}>
94
+ </DropdownMenu>
95
+ );
96
+ `,
97
+ `
98
+ import React from "react";
99
+ import DropdownMenu from "@fancy-ds/dropdown-menu";
100
+
101
+ export default () => (
102
+ <DropdownMenu trigger="Click to open" triggerType="button" items={[]}>
103
+ </DropdownMenu>
104
+ );
105
+ `,
106
+ 'should not delete items when found it - other library',
107
+ );
108
+ });
@@ -0,0 +1,108 @@
1
+ // eslint-disable-next-line @repo/internal/fs/filename-pattern-match
2
+ jest.autoMockOff();
3
+
4
+ import { createTransformer } from '@atlaskit/codemod-utils';
5
+
6
+ import deprecateOnItemActivated from '../migrates/deprecate-onItemActivated';
7
+
8
+ const transformer = createTransformer([deprecateOnItemActivated]);
9
+
10
+ const defineInlineTest = require('jscodeshift/dist/testUtils').defineInlineTest;
11
+
12
+ describe('delete onItemActivated prop', () => {
13
+ defineInlineTest(
14
+ { default: transformer, parser: 'tsx' },
15
+ {},
16
+ `
17
+ import React from "react";
18
+ import DropdownMenu from "@atlaskit/dropdown-menu";
19
+
20
+ export default () => (
21
+ <DropdownMenu trigger="Click to open" triggerType="button">
22
+ </DropdownMenu>
23
+ );
24
+ `,
25
+ `
26
+ import React from "react";
27
+ import DropdownMenu from "@atlaskit/dropdown-menu";
28
+
29
+ export default () => (
30
+ <DropdownMenu trigger="Click to open" triggerType="button">
31
+ </DropdownMenu>
32
+ );
33
+ `,
34
+ 'should not change anything when onItemActivated is not used ',
35
+ );
36
+
37
+ defineInlineTest(
38
+ { default: transformer, parser: 'tsx' },
39
+ {},
40
+ `
41
+ import React from "react";
42
+ import DropdownMenu from "@atlaskit/dropdown-menu";
43
+
44
+ export default () => (
45
+ <DropdownMenu trigger="Click to open" triggerType="button" onItemActivated={() => {}}>
46
+ </DropdownMenu>
47
+ );
48
+ `,
49
+ `
50
+ import React from "react";
51
+ import DropdownMenu from "@atlaskit/dropdown-menu";
52
+
53
+ export default () => (
54
+ <DropdownMenu trigger="Click to open" triggerType="button">
55
+ </DropdownMenu>
56
+ );
57
+ `,
58
+ 'should delete onItemActivated when found it',
59
+ );
60
+
61
+ defineInlineTest(
62
+ { default: transformer, parser: 'tsx' },
63
+ {},
64
+ `
65
+ import React from "react";
66
+ import AKDropdownMenu from "@atlaskit/dropdown-menu";
67
+
68
+ export default () => (
69
+ <AKDropdownMenu trigger="Click to open" triggerType="button" onItemActivated={() => {}}>
70
+ </AKDropdownMenu>
71
+ );
72
+ `,
73
+ `
74
+ import React from "react";
75
+ import AKDropdownMenu from "@atlaskit/dropdown-menu";
76
+
77
+ export default () => (
78
+ <AKDropdownMenu trigger="Click to open" triggerType="button">
79
+ </AKDropdownMenu>
80
+ );
81
+ `,
82
+ 'should delete onItemActivated when found it - named import',
83
+ );
84
+
85
+ defineInlineTest(
86
+ { default: transformer, parser: 'tsx' },
87
+ {},
88
+ `
89
+ import React from "react";
90
+ import DropdownMenu from "@fancy-ds/dropdown-menu";
91
+
92
+ export default () => (
93
+ <DropdownMenu trigger="Click to open" triggerType="button" onItemActivated={() => {}}>
94
+ </DropdownMenu>
95
+ );
96
+ `,
97
+ `
98
+ import React from "react";
99
+ import DropdownMenu from "@fancy-ds/dropdown-menu";
100
+
101
+ export default () => (
102
+ <DropdownMenu trigger="Click to open" triggerType="button" onItemActivated={() => {}}>
103
+ </DropdownMenu>
104
+ );
105
+ `,
106
+ 'should not delete onItemActivated when found it - other library',
107
+ );
108
+ });
@@ -0,0 +1,108 @@
1
+ // eslint-disable-next-line @repo/internal/fs/filename-pattern-match
2
+ jest.autoMockOff();
3
+
4
+ import { createTransformer } from '@atlaskit/codemod-utils';
5
+
6
+ import deprecateOnPositioned from '../migrates/deprecate-onPositioned';
7
+
8
+ const transformer = createTransformer([deprecateOnPositioned]);
9
+
10
+ const defineInlineTest = require('jscodeshift/dist/testUtils').defineInlineTest;
11
+
12
+ describe('delete onPositioned prop', () => {
13
+ defineInlineTest(
14
+ { default: transformer, parser: 'tsx' },
15
+ {},
16
+ `
17
+ import React from "react";
18
+ import DropdownMenu from "@atlaskit/dropdown-menu";
19
+
20
+ export default () => (
21
+ <DropdownMenu trigger="Click to open" triggerType="button">
22
+ </DropdownMenu>
23
+ );
24
+ `,
25
+ `
26
+ import React from "react";
27
+ import DropdownMenu from "@atlaskit/dropdown-menu";
28
+
29
+ export default () => (
30
+ <DropdownMenu trigger="Click to open" triggerType="button">
31
+ </DropdownMenu>
32
+ );
33
+ `,
34
+ 'should not change anything when onPositioned is not used ',
35
+ );
36
+
37
+ defineInlineTest(
38
+ { default: transformer, parser: 'tsx' },
39
+ {},
40
+ `
41
+ import React from "react";
42
+ import DropdownMenu from "@atlaskit/dropdown-menu";
43
+
44
+ export default () => (
45
+ <DropdownMenu trigger="Click to open" triggerType="button" onPositioned={() => {}}>
46
+ </DropdownMenu>
47
+ );
48
+ `,
49
+ `
50
+ import React from "react";
51
+ import DropdownMenu from "@atlaskit/dropdown-menu";
52
+
53
+ export default () => (
54
+ <DropdownMenu trigger="Click to open" triggerType="button">
55
+ </DropdownMenu>
56
+ );
57
+ `,
58
+ 'should delete onPositioned when found it',
59
+ );
60
+
61
+ defineInlineTest(
62
+ { default: transformer, parser: 'tsx' },
63
+ {},
64
+ `
65
+ import React from "react";
66
+ import AKDropdownMenu from "@atlaskit/dropdown-menu";
67
+
68
+ export default () => (
69
+ <AKDropdownMenu trigger="Click to open" triggerType="button" onPositioned={() => {}}>
70
+ </AKDropdownMenu>
71
+ );
72
+ `,
73
+ `
74
+ import React from "react";
75
+ import AKDropdownMenu from "@atlaskit/dropdown-menu";
76
+
77
+ export default () => (
78
+ <AKDropdownMenu trigger="Click to open" triggerType="button">
79
+ </AKDropdownMenu>
80
+ );
81
+ `,
82
+ 'should delete onPositioned when found it - named import',
83
+ );
84
+
85
+ defineInlineTest(
86
+ { default: transformer, parser: 'tsx' },
87
+ {},
88
+ `
89
+ import React from "react";
90
+ import DropdownMenu from "@fancy-ds/dropdown-menu";
91
+
92
+ export default () => (
93
+ <DropdownMenu trigger="Click to open" triggerType="button" onPositioned={() => {}}>
94
+ </DropdownMenu>
95
+ );
96
+ `,
97
+ `
98
+ import React from "react";
99
+ import DropdownMenu from "@fancy-ds/dropdown-menu";
100
+
101
+ export default () => (
102
+ <DropdownMenu trigger="Click to open" triggerType="button" onPositioned={() => {}}>
103
+ </DropdownMenu>
104
+ );
105
+ `,
106
+ 'should not delete onPositioned when found it - other library',
107
+ );
108
+ });
@@ -0,0 +1,108 @@
1
+ // eslint-disable-next-line @repo/internal/fs/filename-pattern-match
2
+ jest.autoMockOff();
3
+
4
+ import { createTransformer } from '@atlaskit/codemod-utils';
5
+
6
+ import deprecateShouldFitContainer from '../migrates/deprecate-shouldFitContainer';
7
+
8
+ const transformer = createTransformer([deprecateShouldFitContainer]);
9
+
10
+ const defineInlineTest = require('jscodeshift/dist/testUtils').defineInlineTest;
11
+
12
+ describe('delete shouldFitContainer prop', () => {
13
+ defineInlineTest(
14
+ { default: transformer, parser: 'tsx' },
15
+ {},
16
+ `
17
+ import React from "react";
18
+ import DropdownMenu from "@atlaskit/dropdown-menu";
19
+
20
+ export default () => (
21
+ <DropdownMenu trigger="Click to open" triggerType="button">
22
+ </DropdownMenu>
23
+ );
24
+ `,
25
+ `
26
+ import React from "react";
27
+ import DropdownMenu from "@atlaskit/dropdown-menu";
28
+
29
+ export default () => (
30
+ <DropdownMenu trigger="Click to open" triggerType="button">
31
+ </DropdownMenu>
32
+ );
33
+ `,
34
+ 'should not change anything when shouldFitContainer is not used ',
35
+ );
36
+
37
+ defineInlineTest(
38
+ { default: transformer, parser: 'tsx' },
39
+ {},
40
+ `
41
+ import React from "react";
42
+ import DropdownMenu from "@atlaskit/dropdown-menu";
43
+
44
+ export default () => (
45
+ <DropdownMenu trigger="Click to open" triggerType="button" shouldFitContainer>
46
+ </DropdownMenu>
47
+ );
48
+ `,
49
+ `
50
+ import React from "react";
51
+ import DropdownMenu from "@atlaskit/dropdown-menu";
52
+
53
+ export default () => (
54
+ <DropdownMenu trigger="Click to open" triggerType="button">
55
+ </DropdownMenu>
56
+ );
57
+ `,
58
+ 'should delete shouldFitContainer when found it',
59
+ );
60
+
61
+ defineInlineTest(
62
+ { default: transformer, parser: 'tsx' },
63
+ {},
64
+ `
65
+ import React from "react";
66
+ import AKDropdownMenu from "@atlaskit/dropdown-menu";
67
+
68
+ export default () => (
69
+ <AKDropdownMenu trigger="Click to open" triggerType="button" shouldFitContainer>
70
+ </AKDropdownMenu>
71
+ );
72
+ `,
73
+ `
74
+ import React from "react";
75
+ import AKDropdownMenu from "@atlaskit/dropdown-menu";
76
+
77
+ export default () => (
78
+ <AKDropdownMenu trigger="Click to open" triggerType="button">
79
+ </AKDropdownMenu>
80
+ );
81
+ `,
82
+ 'should delete shouldFitContainer when found it - named import',
83
+ );
84
+
85
+ defineInlineTest(
86
+ { default: transformer, parser: 'tsx' },
87
+ {},
88
+ `
89
+ import React from "react";
90
+ import DropdownMenu from "@fancy-ds/dropdown-menu";
91
+
92
+ export default () => (
93
+ <DropdownMenu trigger="Click to open" triggerType="button" shouldFitContainer>
94
+ </DropdownMenu>
95
+ );
96
+ `,
97
+ `
98
+ import React from "react";
99
+ import DropdownMenu from "@fancy-ds/dropdown-menu";
100
+
101
+ export default () => (
102
+ <DropdownMenu trigger="Click to open" triggerType="button" shouldFitContainer>
103
+ </DropdownMenu>
104
+ );
105
+ `,
106
+ 'should not delete shouldFitContainer when found it - other library',
107
+ );
108
+ });
@@ -0,0 +1,136 @@
1
+ // eslint-disable-next-line @repo/internal/fs/filename-pattern-match
2
+ jest.autoMockOff();
3
+
4
+ import { createTransformer } from '@atlaskit/codemod-utils';
5
+
6
+ import {
7
+ renameDropdownItemGroupCheckbox,
8
+ renameDropdownItemGroupRadio,
9
+ renameDropdownMenuStateless,
10
+ } from '../migrates/rename-imports';
11
+
12
+ const transformDropdownItemGroupRadio = createTransformer([
13
+ renameDropdownItemGroupRadio,
14
+ ]);
15
+ const transformDropdownItemGroupCheckbox = createTransformer([
16
+ renameDropdownItemGroupCheckbox,
17
+ ]);
18
+ const transformDropdownMenuStateless = createTransformer([
19
+ renameDropdownMenuStateless,
20
+ ]);
21
+
22
+ const defineInlineTest = require('jscodeshift/dist/testUtils').defineInlineTest;
23
+
24
+ describe('DropdownItemGroupRadio', () => {
25
+ defineInlineTest(
26
+ { default: transformDropdownItemGroupRadio, parser: 'tsx' },
27
+ {},
28
+ `
29
+ import React from "react";
30
+ import DropdownMenu, {
31
+ DropdownItemGroupRadio,
32
+ DropdownItemRadio,
33
+ } from "@atlaskit/dropdown-menu";
34
+ `,
35
+ `
36
+ import React from "react";
37
+ import DropdownMenu, {
38
+ DropdownItemRadioGroup,
39
+ DropdownItemRadio,
40
+ } from "@atlaskit/dropdown-menu";
41
+ `,
42
+ 'should convert DropdownItemGroupRadio to DropdownItemRadioGroup',
43
+ );
44
+
45
+ defineInlineTest(
46
+ { default: transformDropdownItemGroupRadio, parser: 'tsx' },
47
+ {},
48
+ `
49
+ import React from "react";
50
+ import DropdownMenu, {
51
+ DropdownItemGroupRadio as MyComponent,
52
+ DropdownItemRadio,
53
+ } from "@atlaskit/dropdown-menu";
54
+ `,
55
+ `
56
+ import React from "react";
57
+ import DropdownMenu, {
58
+ DropdownItemRadioGroup as MyComponent,
59
+ DropdownItemRadio,
60
+ } from "@atlaskit/dropdown-menu";
61
+ `,
62
+ 'should convert DropdownItemGroupRadio to DropdownItemRadioGroup and handle aliases',
63
+ );
64
+ });
65
+
66
+ describe('DropdownItemGroupCheckbox', () => {
67
+ defineInlineTest(
68
+ { default: transformDropdownItemGroupCheckbox, parser: 'tsx' },
69
+ {},
70
+ `
71
+ import React from "react";
72
+ import DropdownMenu, {
73
+ DropdownItemGroupCheckbox, DropdownItemCheckbox,
74
+ } from "@atlaskit/dropdown-menu";
75
+ `,
76
+ `
77
+ import React from "react";
78
+ import DropdownMenu, {
79
+ DropdownItemCheckboxGroup, DropdownItemCheckbox,
80
+ } from "@atlaskit/dropdown-menu";
81
+ `,
82
+ 'should convert DropdownItemGroupCheckbox to DropdownItemCheckboxGroup',
83
+ );
84
+
85
+ defineInlineTest(
86
+ { default: transformDropdownItemGroupCheckbox, parser: 'tsx' },
87
+ {},
88
+ `
89
+ import React from "react";
90
+ import DropdownMenu, {
91
+ DropdownItemGroupCheckbox as MyComponent, DropdownItemCheckbox,
92
+ } from "@atlaskit/dropdown-menu";
93
+ `,
94
+ `
95
+ import React from "react";
96
+ import DropdownMenu, {
97
+ DropdownItemCheckboxGroup as MyComponent, DropdownItemCheckbox,
98
+ } from "@atlaskit/dropdown-menu";
99
+ `,
100
+ 'should convert DropdownItemGroupCheckbox to DropdownItemCheckboxGroup and should handle aliases',
101
+ );
102
+ });
103
+
104
+ describe('DropdownMenuStateless', () => {
105
+ defineInlineTest(
106
+ { default: transformDropdownMenuStateless, parser: 'tsx' },
107
+ {},
108
+ `
109
+ import {
110
+ DropdownItemGroupRadio,
111
+ DropdownItemRadio,
112
+ DropdownMenuStateless,
113
+ } from "@atlaskit/dropdown-menu"
114
+ `,
115
+ `
116
+ import DropdownMenuStateless, { DropdownItemGroupRadio, DropdownItemRadio } from "@atlaskit/dropdown-menu";
117
+ `,
118
+ 'should promote DropdownMenuStateless to be a default DropdownMenuStateless import',
119
+ );
120
+
121
+ defineInlineTest(
122
+ { default: transformDropdownMenuStateless, parser: 'tsx' },
123
+ {},
124
+ `
125
+ import {
126
+ DropdownItemGroupRadio,
127
+ DropdownItemRadio,
128
+ DropdownMenuStateless as MyComponent,
129
+ } from "@atlaskit/dropdown-menu"
130
+ `,
131
+ `
132
+ import MyComponent, { DropdownItemGroupRadio, DropdownItemRadio } from "@atlaskit/dropdown-menu";
133
+ `,
134
+ 'should promote DropdownMenuStateless with an alias to be a default import ',
135
+ );
136
+ });
@@ -0,0 +1,84 @@
1
+ // eslint-disable-next-line @repo/internal/fs/filename-pattern-match
2
+ jest.autoMockOff();
3
+
4
+ import { createTransformer } from '@atlaskit/codemod-utils';
5
+
6
+ import replacePositionToPlacement from '../migrates/replace-position-to-placement';
7
+
8
+ const transformer = createTransformer([replacePositionToPlacement]);
9
+
10
+ const defineInlineTest = require('jscodeshift/dist/testUtils').defineInlineTest;
11
+
12
+ describe('replace position to placement', () => {
13
+ defineInlineTest(
14
+ { default: transformer, parser: 'tsx' },
15
+ {},
16
+ `
17
+ import React from "react";
18
+ import DropdownMenu from "@atlaskit/dropdown-menu";
19
+
20
+ export default () => (
21
+ <DropdownMenu trigger="Click to open" triggerType="button">
22
+ </DropdownMenu>
23
+ );
24
+ `,
25
+ `
26
+ import React from "react";
27
+ import DropdownMenu from "@atlaskit/dropdown-menu";
28
+
29
+ export default () => (
30
+ <DropdownMenu trigger="Click to open" triggerType="button">
31
+ </DropdownMenu>
32
+ );
33
+ `,
34
+ 'should not change anything when position is not used',
35
+ );
36
+
37
+ defineInlineTest(
38
+ { default: transformer, parser: 'tsx' },
39
+ {},
40
+ `
41
+ import React from "react";
42
+ import DropdownMenu from "@material/dropdown-menu";
43
+
44
+ export default () => (
45
+ <DropdownMenu trigger="Click to open" triggerType="button" position="top left">
46
+ </DropdownMenu>
47
+ );
48
+ `,
49
+ `
50
+ import React from "react";
51
+ import DropdownMenu from "@material/dropdown-menu";
52
+
53
+ export default () => (
54
+ <DropdownMenu trigger="Click to open" triggerType="button" position="top left">
55
+ </DropdownMenu>
56
+ );
57
+ `,
58
+ 'should not change position if the package is not from atlassian design system',
59
+ );
60
+
61
+ defineInlineTest(
62
+ { default: transformer, parser: 'tsx' },
63
+ {},
64
+ `
65
+ import React from "react";
66
+ import DropdownMenu from "@atlaskit/dropdown-menu";
67
+
68
+ export default () => (
69
+ <DropdownMenu trigger="Click to open" triggerType="button" position="top left">
70
+ </DropdownMenu>
71
+ );
72
+ `,
73
+ `
74
+ import React from "react";
75
+ import DropdownMenu from "@atlaskit/dropdown-menu";
76
+
77
+ export default () => (
78
+ <DropdownMenu trigger="Click to open" triggerType="button" placement="top-start">
79
+ </DropdownMenu>
80
+ );
81
+ `,
82
+ 'should change position to placement and its value to align with enums defined in popper',
83
+ );
84
+ });