@patternfly/react-core 5.2.0-prerelease.35 → 5.2.0-prerelease.37

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 (159) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/components/package.json +1 -1
  3. package/deprecated/package.json +1 -1
  4. package/dist/dynamic/components/AboutModal/package.json +1 -1
  5. package/dist/dynamic/components/Accordion/package.json +1 -1
  6. package/dist/dynamic/components/ActionList/package.json +1 -1
  7. package/dist/dynamic/components/Alert/package.json +1 -1
  8. package/dist/dynamic/components/Avatar/package.json +1 -1
  9. package/dist/dynamic/components/BackToTop/package.json +1 -1
  10. package/dist/dynamic/components/Backdrop/package.json +1 -1
  11. package/dist/dynamic/components/BackgroundImage/package.json +1 -1
  12. package/dist/dynamic/components/Badge/package.json +1 -1
  13. package/dist/dynamic/components/Banner/package.json +1 -1
  14. package/dist/dynamic/components/Brand/package.json +1 -1
  15. package/dist/dynamic/components/Breadcrumb/package.json +1 -1
  16. package/dist/dynamic/components/Button/package.json +1 -1
  17. package/dist/dynamic/components/CalendarMonth/package.json +1 -1
  18. package/dist/dynamic/components/Card/package.json +1 -1
  19. package/dist/dynamic/components/Checkbox/package.json +1 -1
  20. package/dist/dynamic/components/Chip/package.json +1 -1
  21. package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
  22. package/dist/dynamic/components/CodeBlock/package.json +1 -1
  23. package/dist/dynamic/components/DataList/package.json +1 -1
  24. package/dist/dynamic/components/DatePicker/package.json +1 -1
  25. package/dist/dynamic/components/DescriptionList/package.json +1 -1
  26. package/dist/dynamic/components/Divider/package.json +1 -1
  27. package/dist/dynamic/components/DragDrop/package.json +1 -1
  28. package/dist/dynamic/components/Drawer/package.json +1 -1
  29. package/dist/dynamic/components/Dropdown/package.json +1 -1
  30. package/dist/dynamic/components/DualListSelector/package.json +1 -1
  31. package/dist/dynamic/components/EmptyState/package.json +1 -1
  32. package/dist/dynamic/components/ExpandableSection/package.json +1 -1
  33. package/dist/dynamic/components/FileUpload/package.json +1 -1
  34. package/dist/dynamic/components/Form/package.json +1 -1
  35. package/dist/dynamic/components/FormSelect/package.json +1 -1
  36. package/dist/dynamic/components/HelperText/package.json +1 -1
  37. package/dist/dynamic/components/Hint/package.json +1 -1
  38. package/dist/dynamic/components/Icon/package.json +1 -1
  39. package/dist/dynamic/components/InputGroup/package.json +1 -1
  40. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  41. package/dist/dynamic/components/Label/package.json +1 -1
  42. package/dist/dynamic/components/List/package.json +1 -1
  43. package/dist/dynamic/components/LoginPage/package.json +1 -1
  44. package/dist/dynamic/components/Masthead/package.json +1 -1
  45. package/dist/dynamic/components/Menu/package.json +1 -1
  46. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  47. package/dist/dynamic/components/Modal/package.json +1 -1
  48. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  49. package/dist/dynamic/components/Nav/package.json +1 -1
  50. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  51. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  52. package/dist/dynamic/components/NumberInput/package.json +1 -1
  53. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  54. package/dist/dynamic/components/Page/package.json +1 -1
  55. package/dist/dynamic/components/Pagination/package.json +1 -1
  56. package/dist/dynamic/components/Panel/package.json +1 -1
  57. package/dist/dynamic/components/Popover/package.json +1 -1
  58. package/dist/dynamic/components/Progress/package.json +1 -1
  59. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  60. package/dist/dynamic/components/Radio/package.json +1 -1
  61. package/dist/dynamic/components/SearchInput/package.json +1 -1
  62. package/dist/dynamic/components/Select/package.json +1 -1
  63. package/dist/dynamic/components/Sidebar/package.json +1 -1
  64. package/dist/dynamic/components/SimpleList/package.json +1 -1
  65. package/dist/dynamic/components/Skeleton/package.json +1 -1
  66. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  67. package/dist/dynamic/components/Slider/package.json +1 -1
  68. package/dist/dynamic/components/Spinner/package.json +1 -1
  69. package/dist/dynamic/components/Switch/package.json +1 -1
  70. package/dist/dynamic/components/Tabs/package.json +1 -1
  71. package/dist/dynamic/components/Text/package.json +1 -1
  72. package/dist/dynamic/components/TextArea/package.json +1 -1
  73. package/dist/dynamic/components/TextInput/package.json +1 -1
  74. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  75. package/dist/dynamic/components/Tile/package.json +1 -1
  76. package/dist/dynamic/components/TimePicker/package.json +1 -1
  77. package/dist/dynamic/components/Timestamp/package.json +1 -1
  78. package/dist/dynamic/components/Title/package.json +1 -1
  79. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  80. package/dist/dynamic/components/Toolbar/package.json +1 -1
  81. package/dist/dynamic/components/Tooltip/package.json +1 -1
  82. package/dist/dynamic/components/TreeView/package.json +1 -1
  83. package/dist/dynamic/components/Truncate/package.json +1 -1
  84. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  85. package/dist/dynamic/components/Wizard/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/ApplicationLauncher/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/ContextSelector/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Dropdown/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/OptionsMenu/package.json +1 -1
  90. package/dist/dynamic/deprecated/components/PageHeader/package.json +1 -1
  91. package/dist/dynamic/deprecated/components/Select/package.json +1 -1
  92. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  93. package/dist/dynamic/deprecated/components/package.json +1 -1
  94. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  95. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  96. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  97. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  98. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  99. package/dist/dynamic/helpers/constants/package.json +1 -1
  100. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  101. package/dist/dynamic/helpers/favorites/package.json +1 -1
  102. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  103. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  104. package/dist/dynamic/helpers/package.json +1 -1
  105. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  106. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  107. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  108. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  109. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  110. package/dist/dynamic/helpers/util/package.json +1 -1
  111. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  112. package/dist/dynamic/layouts/Flex/package.json +1 -1
  113. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  114. package/dist/dynamic/layouts/Grid/package.json +1 -1
  115. package/dist/dynamic/layouts/Level/package.json +1 -1
  116. package/dist/dynamic/layouts/Split/package.json +1 -1
  117. package/dist/dynamic/layouts/Stack/package.json +1 -1
  118. package/dist/dynamic/next/components/package.json +1 -1
  119. package/dist/esm/components/Accordion/Accordion.d.ts +2 -0
  120. package/dist/esm/components/Accordion/Accordion.d.ts.map +1 -1
  121. package/dist/esm/components/Accordion/Accordion.js +4 -3
  122. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  123. package/dist/esm/components/Accordion/AccordionContext.d.ts +1 -0
  124. package/dist/esm/components/Accordion/AccordionContext.d.ts.map +1 -1
  125. package/dist/esm/components/Accordion/AccordionContext.js.map +1 -1
  126. package/dist/esm/components/Accordion/AccordionToggle.d.ts.map +1 -1
  127. package/dist/esm/components/Accordion/AccordionToggle.js +6 -3
  128. package/dist/esm/components/Accordion/AccordionToggle.js.map +1 -1
  129. package/dist/esm/components/Menu/MenuItem.d.ts +2 -0
  130. package/dist/esm/components/Menu/MenuItem.d.ts.map +1 -1
  131. package/dist/esm/components/Menu/MenuItem.js +3 -2
  132. package/dist/esm/components/Menu/MenuItem.js.map +1 -1
  133. package/dist/js/components/Accordion/Accordion.d.ts +2 -0
  134. package/dist/js/components/Accordion/Accordion.d.ts.map +1 -1
  135. package/dist/js/components/Accordion/Accordion.js +4 -3
  136. package/dist/js/components/Accordion/Accordion.js.map +1 -1
  137. package/dist/js/components/Accordion/AccordionContext.d.ts +1 -0
  138. package/dist/js/components/Accordion/AccordionContext.d.ts.map +1 -1
  139. package/dist/js/components/Accordion/AccordionContext.js.map +1 -1
  140. package/dist/js/components/Accordion/AccordionToggle.d.ts.map +1 -1
  141. package/dist/js/components/Accordion/AccordionToggle.js +6 -3
  142. package/dist/js/components/Accordion/AccordionToggle.js.map +1 -1
  143. package/dist/js/components/Menu/MenuItem.d.ts +2 -0
  144. package/dist/js/components/Menu/MenuItem.d.ts.map +1 -1
  145. package/dist/js/components/Menu/MenuItem.js +3 -2
  146. package/dist/js/components/Menu/MenuItem.js.map +1 -1
  147. package/dist/umd/react-core.min.js +1 -1
  148. package/helpers/package.json +1 -1
  149. package/layouts/package.json +1 -1
  150. package/next/package.json +1 -1
  151. package/package.json +2 -2
  152. package/src/components/Accordion/Accordion.tsx +6 -1
  153. package/src/components/Accordion/AccordionContext.ts +1 -0
  154. package/src/components/Accordion/AccordionToggle.tsx +32 -23
  155. package/src/components/Accordion/__tests__/Accordion.test.tsx +12 -0
  156. package/src/components/Accordion/__tests__/AccordionToggle.test.tsx +28 -0
  157. package/src/components/Accordion/examples/Accordion.md +5 -0
  158. package/src/components/Accordion/examples/AccordionToggleIconAtStart.tsx +107 -0
  159. package/src/components/Menu/MenuItem.tsx +5 -1
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"5.2.0-prerelease.34","private":true}
1
+ {"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"5.2.0-prerelease.36","private":true}
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"5.2.0-prerelease.34","private":true}
1
+ {"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"5.2.0-prerelease.36","private":true}
package/next/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"5.2.0-prerelease.34","private":true}
1
+ {"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"5.2.0-prerelease.36","private":true}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "5.2.0-prerelease.35",
3
+ "version": "5.2.0-prerelease.37",
4
4
  "description": "This library provides a set of common React components for use with the PatternFly reference implementation.",
5
5
  "main": "dist/js/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -71,5 +71,5 @@
71
71
  "react": "^17 || ^18",
72
72
  "react-dom": "^17 || ^18"
73
73
  },
74
- "gitHead": "5aa83c597337a00e9b93414dbca7db86df0544e6"
74
+ "gitHead": "a26c4daa53b1b957fb2e09e07cba408919ac491c"
75
75
  }
@@ -18,6 +18,8 @@ export interface AccordionProps extends React.HTMLProps<HTMLDListElement> {
18
18
  isBordered?: boolean;
19
19
  /** Display size variant. */
20
20
  displaySize?: 'default' | 'lg';
21
+ /** Sets the toggle icon position for all accordion toggles. */
22
+ togglePosition?: 'start' | 'end';
21
23
  }
22
24
 
23
25
  export const Accordion: React.FunctionComponent<AccordionProps> = ({
@@ -28,6 +30,7 @@ export const Accordion: React.FunctionComponent<AccordionProps> = ({
28
30
  asDefinitionList = true,
29
31
  isBordered = false,
30
32
  displaySize = 'default',
33
+ togglePosition = 'end',
31
34
  ...props
32
35
  }: AccordionProps) => {
33
36
  const AccordionList: any = asDefinitionList ? 'dl' : 'div';
@@ -36,6 +39,7 @@ export const Accordion: React.FunctionComponent<AccordionProps> = ({
36
39
  className={css(
37
40
  styles.accordion,
38
41
  isBordered && styles.modifiers.bordered,
42
+ togglePosition === 'start' && styles.modifiers.toggleStart,
39
43
  displaySize === 'lg' && styles.modifiers.displayLg,
40
44
  className
41
45
  )}
@@ -46,7 +50,8 @@ export const Accordion: React.FunctionComponent<AccordionProps> = ({
46
50
  <AccordionContext.Provider
47
51
  value={{
48
52
  ContentContainer: asDefinitionList ? 'dd' : 'div',
49
- ToggleContainer: asDefinitionList ? 'dt' : headingLevel
53
+ ToggleContainer: asDefinitionList ? 'dt' : headingLevel,
54
+ togglePosition
50
55
  }}
51
56
  >
52
57
  {children}
@@ -3,6 +3,7 @@ import * as React from 'react';
3
3
  interface AccordionContextProps {
4
4
  ContentContainer: React.ElementType;
5
5
  ToggleContainer: React.ElementType;
6
+ togglePosition: 'start' | 'end';
6
7
  }
7
8
 
8
9
  export const AccordionContext = React.createContext<Partial<AccordionContextProps>>({});
@@ -25,27 +25,36 @@ export const AccordionToggle: React.FunctionComponent<AccordionToggleProps> = ({
25
25
  children = null,
26
26
  component,
27
27
  ...props
28
- }: AccordionToggleProps) => (
29
- <AccordionContext.Consumer>
30
- {({ ToggleContainer }) => {
31
- const Container = component || ToggleContainer;
32
- return (
33
- <Container>
34
- <button
35
- id={id}
36
- className={css(styles.accordionToggle, isExpanded && styles.modifiers.expanded, className)}
37
- aria-expanded={isExpanded}
38
- type="button"
39
- {...props}
40
- >
41
- <span className={css(styles.accordionToggleText)}>{children}</span>
42
- <span className={css(styles.accordionToggleIcon)}>
43
- <AngleRightIcon />
44
- </span>
45
- </button>
46
- </Container>
47
- );
48
- }}
49
- </AccordionContext.Consumer>
50
- );
28
+ }: AccordionToggleProps) => {
29
+ const renderToggleIcon = () => (
30
+ <span className={css(styles.accordionToggleIcon)}>
31
+ <AngleRightIcon />
32
+ </span>
33
+ );
34
+
35
+ return (
36
+ <AccordionContext.Consumer>
37
+ {({ ToggleContainer, togglePosition }) => {
38
+ const Container = component || ToggleContainer;
39
+ const isToggleStartPositioned = togglePosition === 'start';
40
+
41
+ return (
42
+ <Container>
43
+ <button
44
+ id={id}
45
+ className={css(styles.accordionToggle, isExpanded && styles.modifiers.expanded, className)}
46
+ aria-expanded={isExpanded}
47
+ type="button"
48
+ {...props}
49
+ >
50
+ {isToggleStartPositioned && renderToggleIcon()}
51
+ <span className={css(styles.accordionToggleText)}>{children}</span>
52
+ {!isToggleStartPositioned && renderToggleIcon()}
53
+ </button>
54
+ </Container>
55
+ );
56
+ }}
57
+ </AccordionContext.Consumer>
58
+ );
59
+ };
51
60
  AccordionToggle.displayName = 'AccordionToggle';
@@ -135,6 +135,18 @@ test('Renders with pf-m-display-lg when displaySize="lg"', () => {
135
135
  expect(screen.getByText('Test')).toHaveClass('pf-m-display-lg');
136
136
  });
137
137
 
138
+ test(`Renders without class ${styles.modifiers.toggleStart} by default`, () => {
139
+ render(<Accordion>Test</Accordion>);
140
+
141
+ expect(screen.getByText('Test')).not.toHaveClass(styles.modifiers.toggleStart);
142
+ });
143
+
144
+ test(`Renders with class ${styles.modifiers.toggleStart} when togglePosition='start'`, () => {
145
+ render(<Accordion togglePosition="start">Test</Accordion>);
146
+
147
+ expect(screen.getByText('Test')).toHaveClass(styles.modifiers.toggleStart);
148
+ });
149
+
138
150
  test('Matches the snapshot', () => {
139
151
  const { asFragment } = render(<Accordion aria-label="this is a simple accordion" />);
140
152
  expect(asFragment()).toMatchSnapshot();
@@ -155,6 +155,34 @@ test('Renders the toggle with pf-m-expanded and aria-expanded=true when isExpand
155
155
  expect(toggle).toHaveAttribute('aria-expanded', 'true');
156
156
  });
157
157
 
158
+ test('Renders toggle text before toggle icon by default', () => {
159
+ render(
160
+ <AccordionContext.Provider value={{ ToggleContainer: 'h3' }}>
161
+ <AccordionToggle id="accordion-toggle" isExpanded>
162
+ Test
163
+ </AccordionToggle>
164
+ </AccordionContext.Provider>
165
+ );
166
+
167
+ const toggle = screen.getByRole('button');
168
+
169
+ expect(toggle.firstChild).toHaveClass(styles.accordionToggleText);
170
+ });
171
+
172
+ test('Renders toggle icon before toggle text when togglePosition from context = "start"', () => {
173
+ render(
174
+ <AccordionContext.Provider value={{ ToggleContainer: 'h3', togglePosition: 'start' }}>
175
+ <AccordionToggle id="accordion-toggle" isExpanded>
176
+ Test
177
+ </AccordionToggle>
178
+ </AccordionContext.Provider>
179
+ );
180
+
181
+ const toggle = screen.getByRole('button');
182
+
183
+ expect(toggle.firstChild).toHaveClass(styles.accordionToggleIcon);
184
+ });
185
+
158
186
  test('Matches the snapshot', () => {
159
187
  const { asFragment } = render(
160
188
  <AccordionContext.Provider value={{ ToggleContainer: 'h3' }}>
@@ -28,3 +28,8 @@ import ArrowRightIcon from '@patternfly/react-icons/dist/esm/icons/arrow-right-i
28
28
 
29
29
  ```ts file="./AccordionBordered.tsx"
30
30
  ```
31
+
32
+ ### Toggle icon at start
33
+
34
+ ```ts file="./AccordionToggleIconAtStart.tsx"
35
+ ```
@@ -0,0 +1,107 @@
1
+ import React from 'react';
2
+ import { Accordion, AccordionItem, AccordionContent, AccordionToggle } from '@patternfly/react-core';
3
+
4
+ export const AccordionToggleIconAtStart: React.FunctionComponent = () => {
5
+ const [expanded, setExpanded] = React.useState('start-toggle-toggle2');
6
+
7
+ const onToggle = (id: string) => {
8
+ if (id === expanded) {
9
+ setExpanded('');
10
+ } else {
11
+ setExpanded(id);
12
+ }
13
+ };
14
+
15
+ return (
16
+ <Accordion togglePosition="start">
17
+ <AccordionItem>
18
+ <AccordionToggle
19
+ onClick={() => {
20
+ onToggle('start-toggle-toggle1');
21
+ }}
22
+ isExpanded={expanded === 'start-toggle-toggle1'}
23
+ id="start-toggle-toggle1"
24
+ >
25
+ Item one
26
+ </AccordionToggle>
27
+ <AccordionContent id="start-toggle-expand1" isHidden={expanded !== 'start-toggle-toggle1'}>
28
+ <p>
29
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
30
+ dolore magna aliqua.
31
+ </p>
32
+ </AccordionContent>
33
+ </AccordionItem>
34
+
35
+ <AccordionItem>
36
+ <AccordionToggle
37
+ onClick={() => {
38
+ onToggle('start-toggle-toggle2');
39
+ }}
40
+ isExpanded={expanded === 'start-toggle-toggle2'}
41
+ id="start-toggle-toggle2"
42
+ >
43
+ Item two
44
+ </AccordionToggle>
45
+ <AccordionContent id="start-toggle-expand2" isHidden={expanded !== 'start-toggle-toggle2'}>
46
+ <p>
47
+ Vivamus et tortor sed arcu congue vehicula eget et diam. Praesent nec dictum lorem. Aliquam id diam
48
+ ultrices, faucibus erat id, maximus nunc.
49
+ </p>
50
+ </AccordionContent>
51
+ </AccordionItem>
52
+
53
+ <AccordionItem>
54
+ <AccordionToggle
55
+ onClick={() => {
56
+ onToggle('start-toggle-toggle3');
57
+ }}
58
+ isExpanded={expanded === 'start-toggle-toggle3'}
59
+ id="start-toggle-toggle3"
60
+ >
61
+ Item three
62
+ </AccordionToggle>
63
+ <AccordionContent id="start-toggle-expand3" isHidden={expanded !== 'start-toggle-toggle3'}>
64
+ <p>Morbi vitae urna quis nunc convallis hendrerit. Aliquam congue orci quis ultricies tempus.</p>
65
+ </AccordionContent>
66
+ </AccordionItem>
67
+
68
+ <AccordionItem>
69
+ <AccordionToggle
70
+ onClick={() => {
71
+ onToggle('start-toggle-toggle4');
72
+ }}
73
+ isExpanded={expanded === 'start-toggle-toggle4'}
74
+ id="start-toggle-toggle4"
75
+ >
76
+ Item four
77
+ </AccordionToggle>
78
+ <AccordionContent id="start-toggle-expand4" isHidden={expanded !== 'start-toggle-toggle4'}>
79
+ <p>
80
+ Donec vel posuere orci. Phasellus quis tortor a ex hendrerit efficitur. Aliquam lacinia ligula pharetra,
81
+ sagittis ex ut, pellentesque diam. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere
82
+ cubilia Curae; Vestibulum ultricies nulla nibh. Etiam vel dui fermentum ligula ullamcorper eleifend non quis
83
+ tortor. Morbi tempus ornare tempus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur
84
+ ridiculus mus. Mauris et velit neque. Donec ultricies condimentum mauris, pellentesque imperdiet libero
85
+ convallis convallis. Aliquam erat volutpat. Donec rutrum semper tempus. Proin dictum imperdiet nibh, quis
86
+ dapibus nulla. Integer sed tincidunt lectus, sit amet auctor eros.
87
+ </p>
88
+ </AccordionContent>
89
+ </AccordionItem>
90
+
91
+ <AccordionItem>
92
+ <AccordionToggle
93
+ onClick={() => {
94
+ onToggle('start-toggle-toggle5');
95
+ }}
96
+ isExpanded={expanded === 'start-toggle-toggle5'}
97
+ id="start-toggle-toggle5"
98
+ >
99
+ Item five
100
+ </AccordionToggle>
101
+ <AccordionContent id="start-toggle-expand5" isHidden={expanded !== 'start-toggle-toggle5'}>
102
+ <p>Vivamus finibus dictum ex id ultrices. Mauris dictum neque a iaculis blandit.</p>
103
+ </AccordionContent>
104
+ </AccordionItem>
105
+ </Accordion>
106
+ );
107
+ };
@@ -29,6 +29,8 @@ export interface MenuItemProps extends Omit<React.HTMLProps<HTMLLIElement>, 'onC
29
29
  target?: string;
30
30
  /** Navigation link relationship. Only set when the to property is present. */
31
31
  rel?: string;
32
+ /** Navigation link download. Only set when the to property is present. */
33
+ download?: string;
32
34
  /** Flag indicating the item has a checkbox */
33
35
  hasCheckbox?: boolean;
34
36
  /** Flag indicating whether the item is active */
@@ -119,6 +121,7 @@ const MenuItemBase: React.FunctionComponent<MenuItemProps> = ({
119
121
  tooltipProps,
120
122
  rel,
121
123
  target,
124
+ download,
122
125
  ...props
123
126
  }: MenuItemProps) => {
124
127
  const {
@@ -271,7 +274,8 @@ const MenuItemBase: React.FunctionComponent<MenuItemProps> = ({
271
274
  // prevent invalid 'disabled' attribute on <a> tags
272
275
  disabled: null,
273
276
  target: isExternalLink ? '_blank' : target,
274
- rel
277
+ rel,
278
+ download
275
279
  };
276
280
  } else if (Component === 'button') {
277
281
  additionalProps = {