@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.
- package/CHANGELOG.md +148 -0
- package/__perf__/default.tsx +1 -1
- package/__perf__/dropdown-menu.tsx +216 -0
- package/codemods/11.0.0-lite-mode.tsx +39 -0
- package/codemods/__tests__/11.0.0-lite-mode.test.tsx +48 -0
- package/codemods/__tests__/convert-position.test.tsx +88 -0
- package/codemods/__tests__/convert-triggerType.test.tsx +100 -0
- package/codemods/__tests__/deprecate-items.test.tsx +108 -0
- package/codemods/__tests__/deprecate-onItemActivated.test.tsx +108 -0
- package/codemods/__tests__/deprecate-onPositioned.test.tsx +108 -0
- package/codemods/__tests__/deprecate-shouldFitContainer.tsx +108 -0
- package/codemods/__tests__/rename-imports.tsx +136 -0
- package/codemods/__tests__/replace-position-to-placement.test.tsx +84 -0
- package/codemods/__tests__/replace-shouldAllowMultipleLine.test.tsx +122 -0
- package/codemods/__tests__/update-component-callsites.tsx +66 -0
- package/codemods/migrates/convert-trigger-type.tsx +57 -0
- package/codemods/migrates/deprecate-items.tsx +9 -0
- package/codemods/migrates/deprecate-onItemActivated.tsx +9 -0
- package/codemods/migrates/deprecate-onPositioned.tsx +9 -0
- package/codemods/migrates/deprecate-shouldFitContainer.tsx +9 -0
- package/codemods/migrates/rename-imports.tsx +22 -0
- package/codemods/migrates/replace-position-to-placement.tsx +38 -0
- package/codemods/migrates/replace-shouldAllowMultiline.tsx +47 -0
- package/codemods/migrates/update-component-callsites.tsx +13 -0
- package/codemods/utils/convert-position.tsx +24 -0
- package/codemods/utils/create-rename-import.tsx +41 -0
- package/codemods/utils/create-update-callsite.tsx +32 -0
- package/dist/cjs/checkbox/dropdown-item-checkbox-group.js +31 -0
- package/dist/cjs/checkbox/dropdown-item-checkbox.js +108 -0
- package/dist/cjs/dropdown-menu-item-group.js +22 -0
- package/dist/cjs/dropdown-menu-item.js +67 -0
- package/dist/cjs/dropdown-menu.js +194 -0
- package/dist/cjs/index.js +21 -29
- package/dist/cjs/{components/item/DropdownItemRadio.js → internal/components/focus-manager.js} +40 -9
- package/dist/cjs/internal/components/menu-wrapper.js +68 -0
- package/dist/cjs/internal/context/checkbox-group-context.js +14 -0
- package/dist/cjs/internal/context/selection-store.js +76 -0
- package/dist/cjs/internal/hooks/use-checkbox-state.js +68 -0
- package/dist/cjs/internal/hooks/use-radio-state.js +84 -0
- package/dist/cjs/internal/hooks/use-register-item-with-focus-manager.js +29 -0
- package/dist/cjs/internal/utils/get-icon-colors.js +25 -0
- package/dist/cjs/internal/utils/handle-focus.js +58 -0
- package/dist/cjs/internal/utils/is-checkbox-item.js +11 -0
- package/dist/cjs/internal/utils/is-radio-item.js +11 -0
- package/dist/cjs/internal/utils/is-voice-over-supported.js +23 -0
- package/dist/cjs/internal/utils/reset-options-in-group.js +23 -0
- package/dist/cjs/radio/dropdown-item-radio-group.js +89 -0
- package/dist/cjs/radio/dropdown-item-radio.js +108 -0
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/checkbox/dropdown-item-checkbox-group.js +21 -0
- package/dist/es2019/checkbox/dropdown-item-checkbox.js +67 -0
- package/dist/es2019/dropdown-menu-item-group.js +11 -0
- package/dist/es2019/dropdown-menu-item.js +49 -0
- package/dist/es2019/dropdown-menu.js +151 -0
- package/dist/es2019/index.js +7 -11
- package/dist/es2019/internal/components/focus-manager.js +40 -0
- package/dist/es2019/internal/components/menu-wrapper.js +44 -0
- package/dist/es2019/internal/context/checkbox-group-context.js +6 -0
- package/dist/es2019/internal/context/selection-store.js +54 -0
- package/dist/es2019/internal/hooks/use-checkbox-state.js +45 -0
- package/dist/es2019/internal/hooks/use-radio-state.js +56 -0
- package/dist/es2019/internal/hooks/use-register-item-with-focus-manager.js +19 -0
- package/dist/es2019/internal/utils/get-icon-colors.js +17 -0
- package/dist/es2019/internal/utils/handle-focus.js +48 -0
- package/dist/es2019/internal/utils/is-checkbox-item.js +4 -0
- package/dist/es2019/internal/utils/is-radio-item.js +4 -0
- package/dist/es2019/internal/utils/is-voice-over-supported.js +11 -0
- package/dist/es2019/internal/utils/reset-options-in-group.js +7 -0
- package/dist/es2019/radio/dropdown-item-radio-group.js +56 -0
- package/dist/es2019/radio/dropdown-item-radio.js +67 -0
- package/dist/es2019/version.json +1 -1
- package/dist/esm/checkbox/dropdown-item-checkbox-group.js +19 -0
- package/dist/esm/checkbox/dropdown-item-checkbox.js +81 -0
- package/dist/esm/dropdown-menu-item-group.js +11 -0
- package/dist/esm/dropdown-menu-item.js +52 -0
- package/dist/esm/dropdown-menu.js +168 -0
- package/dist/esm/index.js +7 -11
- package/dist/esm/internal/components/focus-manager.js +39 -0
- package/dist/esm/internal/components/menu-wrapper.js +45 -0
- package/dist/esm/internal/context/checkbox-group-context.js +6 -0
- package/dist/esm/internal/context/selection-store.js +58 -0
- package/dist/esm/internal/hooks/use-checkbox-state.js +55 -0
- package/dist/esm/internal/hooks/use-radio-state.js +70 -0
- package/dist/esm/internal/hooks/use-register-item-with-focus-manager.js +19 -0
- package/dist/esm/internal/utils/get-icon-colors.js +17 -0
- package/dist/esm/internal/utils/handle-focus.js +47 -0
- package/dist/esm/internal/utils/is-checkbox-item.js +4 -0
- package/dist/esm/internal/utils/is-radio-item.js +4 -0
- package/dist/esm/internal/utils/is-voice-over-supported.js +15 -0
- package/dist/esm/internal/utils/reset-options-in-group.js +13 -0
- package/dist/esm/radio/dropdown-item-radio-group.js +66 -0
- package/dist/esm/radio/dropdown-item-radio.js +81 -0
- package/dist/esm/version.json +1 -1
- package/dist/types/checkbox/dropdown-item-checkbox-group.d.ts +16 -0
- package/dist/types/checkbox/dropdown-item-checkbox.d.ts +13 -0
- package/dist/types/dropdown-menu-item-group.d.ts +11 -0
- package/dist/types/dropdown-menu-item.d.ts +13 -0
- package/dist/types/dropdown-menu.d.ts +13 -0
- package/dist/types/index.d.ts +8 -10
- package/dist/types/internal/components/focus-manager.d.ts +19 -0
- package/dist/types/internal/components/menu-wrapper.d.ts +11 -0
- package/dist/types/internal/context/checkbox-group-context.d.ts +5 -0
- package/dist/types/internal/context/selection-store.d.ts +27 -0
- package/dist/types/internal/hooks/use-checkbox-state.d.ts +14 -0
- package/dist/types/internal/hooks/use-radio-state.d.ts +9 -0
- package/dist/types/internal/hooks/use-register-item-with-focus-manager.d.ts +4 -0
- package/dist/types/internal/utils/get-icon-colors.d.ts +8 -0
- package/dist/types/internal/utils/handle-focus.d.ts +2 -0
- package/dist/types/internal/utils/is-checkbox-item.d.ts +1 -0
- package/dist/types/internal/utils/is-radio-item.d.ts +1 -0
- package/dist/types/internal/utils/is-voice-over-supported.d.ts +2 -0
- package/dist/types/internal/utils/reset-options-in-group.d.ts +4 -0
- package/dist/types/radio/dropdown-item-radio-group.d.ts +25 -0
- package/dist/types/radio/dropdown-item-radio.d.ts +13 -0
- package/dist/types/types.d.ts +254 -79
- package/package.json +39 -23
- package/dist/cjs/components/DropdownMenu.js +0 -230
- package/dist/cjs/components/DropdownMenuStateless.js +0 -523
- package/dist/cjs/components/context/DropdownItemClickManager.js +0 -72
- package/dist/cjs/components/context/DropdownItemFocusManager.js +0 -178
- package/dist/cjs/components/context/DropdownItemSelectionCache.js +0 -131
- package/dist/cjs/components/context/DropdownItemSelectionManager.js +0 -185
- package/dist/cjs/components/group/DropdownItemGroup.js +0 -61
- package/dist/cjs/components/group/DropdownItemGroupCheckbox.js +0 -16
- package/dist/cjs/components/group/DropdownItemGroupRadio.js +0 -16
- package/dist/cjs/components/group/ert-group-selection.js +0 -8
- package/dist/cjs/components/hoc/withItemSelectionManager.js +0 -66
- package/dist/cjs/components/hoc/withToggleInteraction.js +0 -175
- package/dist/cjs/components/item/DropdownItem.js +0 -19
- package/dist/cjs/components/item/DropdownItemCheckbox.js +0 -28
- package/dist/cjs/components/item/ert-item-checkbox.js +0 -8
- package/dist/cjs/components/item/ert-item-radio.js +0 -8
- package/dist/cjs/components/item/ert-item.js +0 -8
- package/dist/cjs/styled/WidthConstrainer.js +0 -21
- package/dist/cjs/util/contextNamespace.js +0 -19
- package/dist/cjs/util/getDisplayName.js +0 -14
- package/dist/cjs/util/keys.js +0 -18
- package/dist/cjs/util/safeContextCall.js +0 -27
- package/dist/cjs/util/supportsVoiceover.js +0 -17
- package/dist/es2019/components/DropdownMenu.js +0 -156
- package/dist/es2019/components/DropdownMenuStateless.js +0 -459
- package/dist/es2019/components/context/DropdownItemClickManager.js +0 -31
- package/dist/es2019/components/context/DropdownItemFocusManager.js +0 -134
- package/dist/es2019/components/context/DropdownItemSelectionCache.js +0 -68
- package/dist/es2019/components/context/DropdownItemSelectionManager.js +0 -140
- package/dist/es2019/components/group/DropdownItemGroup.js +0 -17
- package/dist/es2019/components/group/DropdownItemGroupCheckbox.js +0 -3
- package/dist/es2019/components/group/DropdownItemGroupRadio.js +0 -3
- package/dist/es2019/components/group/ert-group-selection.js +0 -1
- package/dist/es2019/components/hoc/withItemSelectionManager.js +0 -20
- package/dist/es2019/components/hoc/withToggleInteraction.js +0 -119
- package/dist/es2019/components/item/DropdownItem.js +0 -3
- package/dist/es2019/components/item/DropdownItemCheckbox.js +0 -5
- package/dist/es2019/components/item/DropdownItemRadio.js +0 -5
- package/dist/es2019/components/item/ert-item-checkbox.js +0 -1
- package/dist/es2019/components/item/ert-item-radio.js +0 -1
- package/dist/es2019/components/item/ert-item.js +0 -1
- package/dist/es2019/styled/WidthConstrainer.js +0 -6
- package/dist/es2019/util/contextNamespace.js +0 -6
- package/dist/es2019/util/getDisplayName.js +0 -4
- package/dist/es2019/util/keys.js +0 -6
- package/dist/es2019/util/safeContextCall.js +0 -10
- package/dist/es2019/util/supportsVoiceover.js +0 -5
- package/dist/esm/components/DropdownMenu.js +0 -215
- package/dist/esm/components/DropdownMenuStateless.js +0 -516
- package/dist/esm/components/context/DropdownItemClickManager.js +0 -59
- package/dist/esm/components/context/DropdownItemFocusManager.js +0 -164
- package/dist/esm/components/context/DropdownItemSelectionCache.js +0 -113
- package/dist/esm/components/context/DropdownItemSelectionManager.js +0 -174
- package/dist/esm/components/group/DropdownItemGroup.js +0 -43
- package/dist/esm/components/group/DropdownItemGroupCheckbox.js +0 -3
- package/dist/esm/components/group/DropdownItemGroupRadio.js +0 -3
- package/dist/esm/components/group/ert-group-selection.js +0 -1
- package/dist/esm/components/hoc/withItemSelectionManager.js +0 -47
- package/dist/esm/components/hoc/withToggleInteraction.js +0 -155
- package/dist/esm/components/item/DropdownItem.js +0 -3
- package/dist/esm/components/item/DropdownItemCheckbox.js +0 -7
- package/dist/esm/components/item/DropdownItemRadio.js +0 -7
- package/dist/esm/components/item/ert-item-checkbox.js +0 -1
- package/dist/esm/components/item/ert-item-radio.js +0 -1
- package/dist/esm/components/item/ert-item.js +0 -1
- package/dist/esm/styled/WidthConstrainer.js +0 -9
- package/dist/esm/util/contextNamespace.js +0 -8
- package/dist/esm/util/getDisplayName.js +0 -6
- package/dist/esm/util/keys.js +0 -6
- package/dist/esm/util/safeContextCall.js +0 -18
- package/dist/esm/util/supportsVoiceover.js +0 -9
- package/dist/types/components/DropdownMenu.d.ts +0 -36
- package/dist/types/components/DropdownMenuStateless.d.ts +0 -82
- package/dist/types/components/context/DropdownItemClickManager.d.ts +0 -19
- package/dist/types/components/context/DropdownItemFocusManager.d.ts +0 -35
- package/dist/types/components/context/DropdownItemSelectionCache.d.ts +0 -31
- package/dist/types/components/context/DropdownItemSelectionManager.d.ts +0 -34
- package/dist/types/components/group/DropdownItemGroup.d.ts +0 -12
- package/dist/types/components/group/DropdownItemGroupCheckbox.d.ts +0 -55
- package/dist/types/components/group/DropdownItemGroupRadio.d.ts +0 -55
- package/dist/types/components/group/ert-group-selection.d.ts +0 -6
- package/dist/types/components/hoc/withItemSelectionManager.d.ts +0 -63
- package/dist/types/components/hoc/withToggleInteraction.d.ts +0 -98
- package/dist/types/components/item/DropdownItem.d.ts +0 -65
- package/dist/types/components/item/DropdownItemCheckbox.d.ts +0 -80
- package/dist/types/components/item/DropdownItemRadio.d.ts +0 -80
- package/dist/types/components/item/ert-item-checkbox.d.ts +0 -2
- package/dist/types/components/item/ert-item-radio.d.ts +0 -2
- package/dist/types/components/item/ert-item.d.ts +0 -2
- package/dist/types/styled/WidthConstrainer.d.ts +0 -7
- package/dist/types/util/contextNamespace.d.ts +0 -4
- package/dist/types/util/getDisplayName.d.ts +0 -3
- package/dist/types/util/keys.d.ts +0 -6
- package/dist/types/util/safeContextCall.d.ts +0 -6
- package/dist/types/util/supportsVoiceover.d.ts +0 -2
|
@@ -0,0 +1,122 @@
|
|
|
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 replaceShouldAllowMultiline from '../migrates/replace-shouldAllowMultiline';
|
|
7
|
+
|
|
8
|
+
const transformer = createTransformer([replaceShouldAllowMultiline]);
|
|
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" shouldAllowMultiline>
|
|
46
|
+
</DropdownMenu>
|
|
47
|
+
);
|
|
48
|
+
`,
|
|
49
|
+
`
|
|
50
|
+
import React from "react";
|
|
51
|
+
import DropdownMenu from "@atlaskit/dropdown-menu";
|
|
52
|
+
|
|
53
|
+
export default () => (
|
|
54
|
+
<DropdownMenu
|
|
55
|
+
trigger="Click to open"
|
|
56
|
+
triggerType="button"
|
|
57
|
+
shouldTitleWrap
|
|
58
|
+
shouldDescriptionWrap>
|
|
59
|
+
</DropdownMenu>
|
|
60
|
+
);
|
|
61
|
+
`,
|
|
62
|
+
'should replace shouldAllowMultiline with shouldTitleWrap and shouldDescriptionWrap - default value',
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
defineInlineTest(
|
|
66
|
+
{ default: transformer, parser: 'tsx' },
|
|
67
|
+
{},
|
|
68
|
+
`
|
|
69
|
+
import React from "react";
|
|
70
|
+
import DropdownMenu from "@atlaskit/dropdown-menu";
|
|
71
|
+
|
|
72
|
+
export default () => (
|
|
73
|
+
<DropdownMenu trigger="Click to open" triggerType="button" shouldAllowMultiline={false}>
|
|
74
|
+
</DropdownMenu>
|
|
75
|
+
);
|
|
76
|
+
`,
|
|
77
|
+
`
|
|
78
|
+
import React from "react";
|
|
79
|
+
import DropdownMenu from "@atlaskit/dropdown-menu";
|
|
80
|
+
|
|
81
|
+
export default () => (
|
|
82
|
+
<DropdownMenu
|
|
83
|
+
trigger="Click to open"
|
|
84
|
+
triggerType="button"
|
|
85
|
+
shouldTitleWrap={false}
|
|
86
|
+
shouldDescriptionWrap={false}>
|
|
87
|
+
</DropdownMenu>
|
|
88
|
+
);
|
|
89
|
+
`,
|
|
90
|
+
'should replace shouldAllowMultiline with shouldTitleWrap and shouldDescriptionWrap - with value',
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
defineInlineTest(
|
|
94
|
+
{ default: transformer, parser: 'tsx' },
|
|
95
|
+
{},
|
|
96
|
+
`
|
|
97
|
+
import React from "react";
|
|
98
|
+
import DropdownMenu from "@atlaskit/dropdown-menu";
|
|
99
|
+
|
|
100
|
+
const flag = false;
|
|
101
|
+
export default () => (
|
|
102
|
+
<DropdownMenu trigger="Click to open" triggerType="button" shouldAllowMultiline={flag}>
|
|
103
|
+
</DropdownMenu>
|
|
104
|
+
);
|
|
105
|
+
`,
|
|
106
|
+
`
|
|
107
|
+
import React from "react";
|
|
108
|
+
import DropdownMenu from "@atlaskit/dropdown-menu";
|
|
109
|
+
|
|
110
|
+
const flag = false;
|
|
111
|
+
export default () => (
|
|
112
|
+
<DropdownMenu
|
|
113
|
+
trigger="Click to open"
|
|
114
|
+
triggerType="button"
|
|
115
|
+
shouldTitleWrap={flag}
|
|
116
|
+
shouldDescriptionWrap={flag}>
|
|
117
|
+
</DropdownMenu>
|
|
118
|
+
);
|
|
119
|
+
`,
|
|
120
|
+
'should replace shouldAllowMultiline with shouldTitleWrap and shouldDescriptionWrap - variable',
|
|
121
|
+
);
|
|
122
|
+
});
|
|
@@ -0,0 +1,66 @@
|
|
|
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
|
+
updateDropdownItemGroupCheckboxCallsite,
|
|
8
|
+
updateDropdownItemGroupRadioCallsite,
|
|
9
|
+
} from '../migrates/update-component-callsites';
|
|
10
|
+
|
|
11
|
+
const transformDropdownItemGroupRadio = createTransformer([
|
|
12
|
+
updateDropdownItemGroupRadioCallsite,
|
|
13
|
+
]);
|
|
14
|
+
const transformDropdownItemGroupCheckbox = createTransformer([
|
|
15
|
+
updateDropdownItemGroupCheckboxCallsite,
|
|
16
|
+
]);
|
|
17
|
+
|
|
18
|
+
const defineInlineTest = require('jscodeshift/dist/testUtils').defineInlineTest;
|
|
19
|
+
|
|
20
|
+
describe('DropdownItemGroupRadio', () => {
|
|
21
|
+
defineInlineTest(
|
|
22
|
+
{ default: transformDropdownItemGroupRadio, parser: 'tsx' },
|
|
23
|
+
{},
|
|
24
|
+
`
|
|
25
|
+
<DropdownItemGroupRadio id="actions">
|
|
26
|
+
<DropdownItemRadio id="edit" defaultSelected>
|
|
27
|
+
Edit
|
|
28
|
+
</DropdownItemRadio>
|
|
29
|
+
<DropdownItemRadio id="move">Move</DropdownItemRadio>
|
|
30
|
+
</DropdownItemGroupRadio>
|
|
31
|
+
`,
|
|
32
|
+
`
|
|
33
|
+
<DropdownItemRadioGroup id="actions">
|
|
34
|
+
<DropdownItemRadio id="edit" defaultSelected>
|
|
35
|
+
Edit
|
|
36
|
+
</DropdownItemRadio>
|
|
37
|
+
<DropdownItemRadio id="move">Move</DropdownItemRadio>
|
|
38
|
+
</DropdownItemRadioGroup>
|
|
39
|
+
`,
|
|
40
|
+
'should transform DropdownItemGroupRadio to DropdownItemRadioGroup',
|
|
41
|
+
);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
describe('DropdownItemGroupCheckbox', () => {
|
|
45
|
+
defineInlineTest(
|
|
46
|
+
{ default: transformDropdownItemGroupCheckbox, parser: 'tsx' },
|
|
47
|
+
{},
|
|
48
|
+
`
|
|
49
|
+
<DropdownItemGroupCheckbox id="actions">
|
|
50
|
+
<DropdownItemCheckbox id="edit" defaultSelected>
|
|
51
|
+
Edit
|
|
52
|
+
</DropdownItemCheckbox>
|
|
53
|
+
<DropdownItemCheckbox id="move">Move</DropdownItemCheckbox>
|
|
54
|
+
</DropdownItemGroupCheckbox>
|
|
55
|
+
`,
|
|
56
|
+
`
|
|
57
|
+
<DropdownItemCheckboxGroup id="actions">
|
|
58
|
+
<DropdownItemCheckbox id="edit" defaultSelected>
|
|
59
|
+
Edit
|
|
60
|
+
</DropdownItemCheckbox>
|
|
61
|
+
<DropdownItemCheckbox id="move">Move</DropdownItemCheckbox>
|
|
62
|
+
</DropdownItemCheckboxGroup>
|
|
63
|
+
`,
|
|
64
|
+
'should transform DropdownItemGroupCheckbox to DropdownItemCheckboxGroup',
|
|
65
|
+
);
|
|
66
|
+
});
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import core, { ASTPath, JSXElement } from 'jscodeshift';
|
|
2
|
+
import { Collection } from 'jscodeshift/src/Collection';
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
addCommentBefore,
|
|
6
|
+
getDefaultSpecifier,
|
|
7
|
+
getJSXAttributesByName,
|
|
8
|
+
} from '@atlaskit/codemod-utils';
|
|
9
|
+
|
|
10
|
+
const comment = `
|
|
11
|
+
The usage of the 'trigger', 'triggerType' and 'triggerButtonProps' prop in this component could not be transformed and requires manual intervention.
|
|
12
|
+
Since version 11.0.0, we simplified the API and lean towards to only use 'trigger' prop.
|
|
13
|
+
For more info please reach out to #help-design-system-code.
|
|
14
|
+
`;
|
|
15
|
+
|
|
16
|
+
const convertTriggerType = (j: core.JSCodeshift, source: Collection<Node>) => {
|
|
17
|
+
const defaultSpecifier = getDefaultSpecifier(
|
|
18
|
+
j,
|
|
19
|
+
source,
|
|
20
|
+
'@atlaskit/dropdown-menu',
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
if (!defaultSpecifier) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const elements = source.findJSXElements(defaultSpecifier);
|
|
28
|
+
|
|
29
|
+
elements.forEach((element: ASTPath<JSXElement>) => {
|
|
30
|
+
const triggerTypeProp = getJSXAttributesByName(j, element, 'triggerType');
|
|
31
|
+
const triggerProp = getJSXAttributesByName(j, element, 'trigger');
|
|
32
|
+
|
|
33
|
+
// just skip when triggerType or trigger is not defined
|
|
34
|
+
if (triggerTypeProp.length === 0 || triggerProp.length === 0) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const triggerButtonPropsProp = getJSXAttributesByName(
|
|
39
|
+
j,
|
|
40
|
+
element,
|
|
41
|
+
'triggerButtonProps',
|
|
42
|
+
);
|
|
43
|
+
const type = triggerProp.get().value.value.type;
|
|
44
|
+
|
|
45
|
+
// we're safe to do the conversion for string only trigger
|
|
46
|
+
if (type === 'StringLiteral' && triggerButtonPropsProp.length === 0) {
|
|
47
|
+
triggerTypeProp.forEach((attribute: any) => {
|
|
48
|
+
j(attribute).remove();
|
|
49
|
+
});
|
|
50
|
+
} else {
|
|
51
|
+
// for anything else we left a inline message
|
|
52
|
+
addCommentBefore(j, elements, comment);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export default convertTriggerType;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// eslint-disable-next-line @repo/internal/fs/filename-pattern-match
|
|
2
|
+
import { createRemoveFuncAddCommentFor } from '@atlaskit/codemod-utils';
|
|
3
|
+
|
|
4
|
+
const deprecateItems = createRemoveFuncAddCommentFor(
|
|
5
|
+
'@atlaskit/dropdown-menu',
|
|
6
|
+
'items',
|
|
7
|
+
);
|
|
8
|
+
|
|
9
|
+
export default deprecateItems;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// eslint-disable-next-line @repo/internal/fs/filename-pattern-match
|
|
2
|
+
import { createRemoveFuncAddCommentFor } from '@atlaskit/codemod-utils';
|
|
3
|
+
|
|
4
|
+
const deprecateOnItemActivated = createRemoveFuncAddCommentFor(
|
|
5
|
+
'@atlaskit/dropdown-menu',
|
|
6
|
+
'onItemActivated',
|
|
7
|
+
);
|
|
8
|
+
|
|
9
|
+
export default deprecateOnItemActivated;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// eslint-disable-next-line @repo/internal/fs/filename-pattern-match
|
|
2
|
+
import { createRemoveFuncAddCommentFor } from '@atlaskit/codemod-utils';
|
|
3
|
+
|
|
4
|
+
const deprecateOnPositioned = createRemoveFuncAddCommentFor(
|
|
5
|
+
'@atlaskit/dropdown-menu',
|
|
6
|
+
'onPositioned',
|
|
7
|
+
);
|
|
8
|
+
|
|
9
|
+
export default deprecateOnPositioned;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// eslint-disable-next-line @repo/internal/fs/filename-pattern-match
|
|
2
|
+
import { createRemoveFuncAddCommentFor } from '@atlaskit/codemod-utils';
|
|
3
|
+
|
|
4
|
+
const deprecateShouldFitContainer = createRemoveFuncAddCommentFor(
|
|
5
|
+
'@atlaskit/dropdown-menu',
|
|
6
|
+
'shouldFitContainer',
|
|
7
|
+
);
|
|
8
|
+
|
|
9
|
+
export default deprecateShouldFitContainer;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createRenameImportFor } from '../utils/create-rename-import';
|
|
2
|
+
|
|
3
|
+
export const renameDropdownItemGroupRadio = createRenameImportFor({
|
|
4
|
+
componentName: 'DropdownItemGroupRadio',
|
|
5
|
+
newComponentName: 'DropdownItemRadioGroup',
|
|
6
|
+
packagePath: '@atlaskit/dropdown-menu',
|
|
7
|
+
isDefaultImport: false,
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
export const renameDropdownItemGroupCheckbox = createRenameImportFor({
|
|
11
|
+
componentName: 'DropdownItemGroupCheckbox',
|
|
12
|
+
newComponentName: 'DropdownItemCheckboxGroup',
|
|
13
|
+
packagePath: '@atlaskit/dropdown-menu',
|
|
14
|
+
isDefaultImport: false,
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
export const renameDropdownMenuStateless = createRenameImportFor({
|
|
18
|
+
componentName: 'DropdownMenuStateless',
|
|
19
|
+
newComponentName: 'DropdownMenuStateless',
|
|
20
|
+
packagePath: '@atlaskit/dropdown-menu',
|
|
21
|
+
isDefaultImport: true,
|
|
22
|
+
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import core, { ASTPath, JSXElement } from 'jscodeshift';
|
|
2
|
+
import { Collection } from 'jscodeshift/src/Collection';
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
getDefaultSpecifier,
|
|
6
|
+
getJSXAttributesByName,
|
|
7
|
+
} from '@atlaskit/codemod-utils';
|
|
8
|
+
|
|
9
|
+
import convertPosition from '../utils/convert-position';
|
|
10
|
+
|
|
11
|
+
const updatePositionValue = (j: core.JSCodeshift, source: Collection<Node>) => {
|
|
12
|
+
const defaultSpecifier = getDefaultSpecifier(
|
|
13
|
+
j,
|
|
14
|
+
source,
|
|
15
|
+
'@atlaskit/dropdown-menu',
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
if (!defaultSpecifier) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
source
|
|
23
|
+
.findJSXElements(defaultSpecifier)
|
|
24
|
+
.forEach((element: ASTPath<JSXElement>) => {
|
|
25
|
+
getJSXAttributesByName(j, element, 'position').forEach(
|
|
26
|
+
(attribute: any) => {
|
|
27
|
+
j(attribute).replaceWith(
|
|
28
|
+
j.jsxAttribute(
|
|
29
|
+
j.jsxIdentifier('placement'),
|
|
30
|
+
j.literal(convertPosition(attribute.node.value.value)),
|
|
31
|
+
),
|
|
32
|
+
);
|
|
33
|
+
},
|
|
34
|
+
);
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export default updatePositionValue;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/* eslint-disable @repo/internal/fs/filename-pattern-match */
|
|
2
|
+
import core, { ASTPath, JSXElement } from 'jscodeshift';
|
|
3
|
+
import { Collection } from 'jscodeshift/src/Collection';
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
getDefaultSpecifier,
|
|
7
|
+
getJSXAttributesByName,
|
|
8
|
+
} from '@atlaskit/codemod-utils';
|
|
9
|
+
|
|
10
|
+
const replaceShouldAllowMultiline = (
|
|
11
|
+
j: core.JSCodeshift,
|
|
12
|
+
source: Collection<Node>,
|
|
13
|
+
) => {
|
|
14
|
+
const defaultSpecifier = getDefaultSpecifier(
|
|
15
|
+
j,
|
|
16
|
+
source,
|
|
17
|
+
'@atlaskit/dropdown-menu',
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
if (!defaultSpecifier) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
source
|
|
25
|
+
.findJSXElements(defaultSpecifier)
|
|
26
|
+
.forEach((element: ASTPath<JSXElement>) => {
|
|
27
|
+
getJSXAttributesByName(j, element, 'shouldAllowMultiline').forEach(
|
|
28
|
+
(attribute: any) => {
|
|
29
|
+
const shouldTitleWrap = j.jsxAttribute(
|
|
30
|
+
j.jsxIdentifier('shouldTitleWrap'),
|
|
31
|
+
attribute.node.value,
|
|
32
|
+
);
|
|
33
|
+
const shouldDescriptionWrap = j.jsxAttribute(
|
|
34
|
+
j.jsxIdentifier('shouldDescriptionWrap'),
|
|
35
|
+
attribute.node.value,
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
j(attribute).insertBefore(shouldTitleWrap);
|
|
39
|
+
j(attribute).insertBefore(shouldDescriptionWrap);
|
|
40
|
+
|
|
41
|
+
j(attribute).remove();
|
|
42
|
+
},
|
|
43
|
+
);
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export default replaceShouldAllowMultiline;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createUpdateCallsite } from '../utils/create-update-callsite';
|
|
2
|
+
|
|
3
|
+
export const updateDropdownItemGroupCheckboxCallsite = createUpdateCallsite({
|
|
4
|
+
componentName: 'DropdownItemGroupCheckbox',
|
|
5
|
+
newComponentName: 'DropdownItemCheckboxGroup',
|
|
6
|
+
packagePath: '@atlaskit/dropdown-menu',
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
export const updateDropdownItemGroupRadioCallsite = createUpdateCallsite({
|
|
10
|
+
componentName: 'DropdownItemGroupRadio',
|
|
11
|
+
newComponentName: 'DropdownItemRadioGroup',
|
|
12
|
+
packagePath: '@atlaskit/dropdown-menu',
|
|
13
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
type Entity = {
|
|
2
|
+
[key: string]: string;
|
|
3
|
+
};
|
|
4
|
+
|
|
5
|
+
const positionMap: Entity = {
|
|
6
|
+
'top left': 'top-start',
|
|
7
|
+
'top center': 'top',
|
|
8
|
+
'top right': 'top-end',
|
|
9
|
+
'right top': 'right-start',
|
|
10
|
+
'right middle': 'right',
|
|
11
|
+
'right bottom': 'right-end',
|
|
12
|
+
'bottom left': 'bottom-start',
|
|
13
|
+
'bottom center': 'bottom',
|
|
14
|
+
'bottom right': 'bottom-end',
|
|
15
|
+
'left top': 'left-start',
|
|
16
|
+
'left middle': 'left',
|
|
17
|
+
'left bottom': 'left-end',
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const convertPosition = (position: string | undefined = ''): string => {
|
|
21
|
+
return positionMap[position.trim()] || 'bottom-start';
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export default convertPosition;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import core from 'jscodeshift';
|
|
2
|
+
import { Collection } from 'jscodeshift/src/Collection';
|
|
3
|
+
|
|
4
|
+
export const createRenameImportFor = ({
|
|
5
|
+
componentName,
|
|
6
|
+
newComponentName,
|
|
7
|
+
packagePath,
|
|
8
|
+
isDefaultImport,
|
|
9
|
+
}: {
|
|
10
|
+
componentName: string;
|
|
11
|
+
newComponentName: string;
|
|
12
|
+
packagePath: string;
|
|
13
|
+
isDefaultImport: boolean;
|
|
14
|
+
}) => (j: core.JSCodeshift, source: Collection<Node>) => {
|
|
15
|
+
source
|
|
16
|
+
.find(j.ImportDeclaration)
|
|
17
|
+
.filter((path) => path.node.source.value === packagePath)
|
|
18
|
+
.find(j.ImportSpecifier)
|
|
19
|
+
.filter((path) => path.node.imported.name === componentName)
|
|
20
|
+
.replaceWith((importSpecifier) => {
|
|
21
|
+
const specifier = j.identifier(newComponentName);
|
|
22
|
+
|
|
23
|
+
let importAlias;
|
|
24
|
+
if (
|
|
25
|
+
importSpecifier &&
|
|
26
|
+
importSpecifier.node &&
|
|
27
|
+
importSpecifier.node.local
|
|
28
|
+
) {
|
|
29
|
+
importAlias =
|
|
30
|
+
importSpecifier.node.local.name !== importSpecifier.node.imported.name
|
|
31
|
+
? j.identifier(importSpecifier.node.local.name)
|
|
32
|
+
: null;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return isDefaultImport
|
|
36
|
+
? j.importDefaultSpecifier(importAlias || specifier)
|
|
37
|
+
: j.importSpecifier(specifier, importAlias);
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
return source.toSource();
|
|
41
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import core from 'jscodeshift';
|
|
2
|
+
import { Collection } from 'jscodeshift/src/Collection';
|
|
3
|
+
|
|
4
|
+
export const createUpdateCallsite = ({
|
|
5
|
+
componentName,
|
|
6
|
+
newComponentName,
|
|
7
|
+
packagePath,
|
|
8
|
+
}: {
|
|
9
|
+
componentName: string;
|
|
10
|
+
newComponentName: string;
|
|
11
|
+
packagePath: string;
|
|
12
|
+
}) => (j: core.JSCodeshift, source: Collection<Node>) => {
|
|
13
|
+
source
|
|
14
|
+
.find(j.JSXElement)
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
.filter((path) => path.node.openingElement.name.name === componentName)
|
|
17
|
+
.replaceWith((element) => {
|
|
18
|
+
const elementName = j.jsxIdentifier(newComponentName);
|
|
19
|
+
const newComponent = j.jsxElement(
|
|
20
|
+
j.jsxOpeningElement(
|
|
21
|
+
elementName,
|
|
22
|
+
element.node.openingElement.attributes,
|
|
23
|
+
),
|
|
24
|
+
j.jsxClosingElement(elementName),
|
|
25
|
+
element.node.children,
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
return newComponent;
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
return source.toSource();
|
|
32
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _section = _interopRequireDefault(require("@atlaskit/menu/section"));
|
|
13
|
+
|
|
14
|
+
var _checkboxGroupContext = require("../internal/context/checkbox-group-context");
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* __Dropdown item checkbox group__
|
|
18
|
+
*
|
|
19
|
+
* A wrapping element for dropdown menu checkbox items.
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
var DropdownItemCheckboxGroup = function DropdownItemCheckboxGroup(props) {
|
|
23
|
+
var children = props.children,
|
|
24
|
+
id = props.id;
|
|
25
|
+
return /*#__PURE__*/_react.default.createElement(_checkboxGroupContext.CheckboxGroupContext.Provider, {
|
|
26
|
+
value: id
|
|
27
|
+
}, /*#__PURE__*/_react.default.createElement(_section.default, props, children));
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
var _default = DropdownItemCheckboxGroup;
|
|
31
|
+
exports.default = _default;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
+
|
|
16
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
17
|
+
|
|
18
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
+
|
|
20
|
+
var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
|
|
21
|
+
|
|
22
|
+
var _checkbox = _interopRequireDefault(require("@atlaskit/icon/glyph/checkbox"));
|
|
23
|
+
|
|
24
|
+
var _buttonItem = _interopRequireDefault(require("@atlaskit/menu/button-item"));
|
|
25
|
+
|
|
26
|
+
var _useCheckboxState3 = _interopRequireDefault(require("../internal/hooks/use-checkbox-state"));
|
|
27
|
+
|
|
28
|
+
var _useRegisterItemWithFocusManager = _interopRequireDefault(require("../internal/hooks/use-register-item-with-focus-manager"));
|
|
29
|
+
|
|
30
|
+
var _getIconColors = _interopRequireDefault(require("../internal/utils/get-icon-colors"));
|
|
31
|
+
|
|
32
|
+
var _isVoiceOverSupported = _interopRequireDefault(require("../internal/utils/is-voice-over-supported"));
|
|
33
|
+
|
|
34
|
+
var _excluded = ["id", "isSelected", "defaultSelected", "onClick", "shouldTitleWrap", "shouldDescriptionWrap"];
|
|
35
|
+
|
|
36
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
37
|
+
|
|
38
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* __Dropdown item checkbox__
|
|
42
|
+
*
|
|
43
|
+
* A dropdown item checkbox creates groups that have multiple selections.
|
|
44
|
+
*
|
|
45
|
+
* - [Examples](https://atlassian.design/components/dropdown-menu/dropdown-item-checkbox/examples)
|
|
46
|
+
* - [Code](https://atlassian.design/components/dropdown-menu/dropdown-item-checkbox/code)
|
|
47
|
+
* - [Usage](https://atlassian.design/components/dropdown-menu/dropdown-item-checkbox/usage)
|
|
48
|
+
*/
|
|
49
|
+
var DropdownItemCheckbox = function DropdownItemCheckbox(props) {
|
|
50
|
+
var id = props.id,
|
|
51
|
+
isSelected = props.isSelected,
|
|
52
|
+
defaultSelected = props.defaultSelected,
|
|
53
|
+
_props$onClick = props.onClick,
|
|
54
|
+
providedOnClick = _props$onClick === void 0 ? _noop.default : _props$onClick,
|
|
55
|
+
_props$shouldTitleWra = props.shouldTitleWrap,
|
|
56
|
+
shouldTitleWrap = _props$shouldTitleWra === void 0 ? true : _props$shouldTitleWra,
|
|
57
|
+
_props$shouldDescript = props.shouldDescriptionWrap,
|
|
58
|
+
shouldDescriptionWrap = _props$shouldDescript === void 0 ? true : _props$shouldDescript,
|
|
59
|
+
rest = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
60
|
+
|
|
61
|
+
if (process.env.NODE_ENV !== 'production' && typeof isSelected !== 'undefined' && typeof defaultSelected !== 'undefined') {
|
|
62
|
+
// eslint-disable-next-line no-console
|
|
63
|
+
console.warn("[DropdownItemCheckbox] You've used both `defaultSelected` and `isSelected` props. This is dangerous and can lead to unexpected results. Use one or the other depending if you want to control the components state yourself.");
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
var _useCheckboxState = (0, _useCheckboxState3.default)({
|
|
67
|
+
id: id,
|
|
68
|
+
isSelected: isSelected,
|
|
69
|
+
defaultSelected: defaultSelected
|
|
70
|
+
}),
|
|
71
|
+
_useCheckboxState2 = (0, _slicedToArray2.default)(_useCheckboxState, 2),
|
|
72
|
+
selected = _useCheckboxState2[0],
|
|
73
|
+
setSelected = _useCheckboxState2[1];
|
|
74
|
+
|
|
75
|
+
var _useState = (0, _react.useState)((0, _getIconColors.default)(defaultSelected)),
|
|
76
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
77
|
+
iconColors = _useState2[0],
|
|
78
|
+
setIconColors = _useState2[1];
|
|
79
|
+
|
|
80
|
+
var onClickHandler = (0, _react.useCallback)(function (event) {
|
|
81
|
+
setSelected(function (selected) {
|
|
82
|
+
return !selected;
|
|
83
|
+
});
|
|
84
|
+
providedOnClick(event);
|
|
85
|
+
}, [providedOnClick, setSelected]);
|
|
86
|
+
(0, _react.useEffect)(function () {
|
|
87
|
+
setIconColors((0, _getIconColors.default)(selected));
|
|
88
|
+
}, [selected]);
|
|
89
|
+
var itemRef = (0, _useRegisterItemWithFocusManager.default)();
|
|
90
|
+
return /*#__PURE__*/_react.default.createElement(_buttonItem.default, (0, _extends2.default)({
|
|
91
|
+
id: id,
|
|
92
|
+
onClick: onClickHandler,
|
|
93
|
+
role: (0, _isVoiceOverSupported.default)() ? 'checkbox' : 'menuitemcheckbox',
|
|
94
|
+
"aria-checked": selected,
|
|
95
|
+
shouldTitleWrap: shouldTitleWrap,
|
|
96
|
+
shouldDescriptionWrap: shouldDescriptionWrap,
|
|
97
|
+
iconBefore: /*#__PURE__*/_react.default.createElement(_checkbox.default, {
|
|
98
|
+
label: "",
|
|
99
|
+
size: "medium",
|
|
100
|
+
primaryColor: iconColors.primary,
|
|
101
|
+
secondaryColor: iconColors.secondary
|
|
102
|
+
}),
|
|
103
|
+
ref: itemRef
|
|
104
|
+
}, rest));
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
var _default = DropdownItemCheckbox;
|
|
108
|
+
exports.default = _default;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _section = _interopRequireDefault(require("@atlaskit/menu/section"));
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* __Section__
|
|
14
|
+
*
|
|
15
|
+
* A dropdown item group includes all the actions or items in a dropdown menu.
|
|
16
|
+
*
|
|
17
|
+
* - [Examples](https://atlassian.design/components/dropdown-menu/dropdown-item-group/examples)
|
|
18
|
+
* - [Code](https://atlassian.design/components/dropdown-menu/dropdown-item-group/code)
|
|
19
|
+
* - [Usage](https://atlassian.design/components/dropdown-menu/dropdown-item-group/usage)
|
|
20
|
+
*/
|
|
21
|
+
var _default = _section.default;
|
|
22
|
+
exports.default = _default;
|