@patternfly/patternfly-doc-core 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/.astro/collections/examples.schema.json +40 -0
  2. package/.astro/content-modules.mjs +4 -1
  3. package/.astro/content.d.ts +20 -1
  4. package/.vscode/launch.json +31 -10
  5. package/astro.config.mjs +2 -2
  6. package/declarations.d.ts +2 -0
  7. package/dist/client/_astro/LiveExample.B7IM_dLQ.css +1 -0
  8. package/dist/client/_astro/LiveExample.Df-EUsee.js +40 -0
  9. package/dist/client/_astro/Navigation.CabjIYg4.js +1 -0
  10. package/dist/client/_astro/PageContext.D1pNBMhh.js +9 -0
  11. package/dist/client/_astro/PageSidebarBody.Y-7d6zQM.js +1 -0
  12. package/dist/client/_astro/PageToggle.CbfM9bJB.js +1 -0
  13. package/dist/client/_astro/PageToggleButton.CZ3xPbcc.js +1 -0
  14. package/dist/client/_astro/Toolbar.9-YSFh3P.js +1 -0
  15. package/dist/client/_astro/ToolbarContent.BXdFKbs9.js +1 -0
  16. package/dist/client/_astro/_page_.B8cBYNKa.css +1 -0
  17. package/dist/client/_astro/_page_.CtheD08_.css +1 -0
  18. package/dist/client/_astro/_tab_.DxJDkZPc.css +1 -0
  19. package/dist/client/_astro/_tab_.YrfmckTJ.css +1 -0
  20. package/dist/client/_astro/client.CTJTt880.js +1 -0
  21. package/dist/client/_astro/divider.DjbDHO_6.js +1 -0
  22. package/dist/client/_astro/index.Dhi-S4Ah.js +24 -0
  23. package/dist/client/_astro/index.Dkaqzkgy.js +9 -0
  24. package/dist/client/_astro/page.CDtWFZb5.js +1 -0
  25. package/dist/client/components/accordion/index.html +85 -0
  26. package/dist/client/design-foundations/typography/index.html +24 -22
  27. package/dist/client/design-foundations/usage-and-behavior/index.html +24 -22
  28. package/dist/client/get-started/contribute/index.html +24 -22
  29. package/dist/client/index.html +19 -17
  30. package/dist/server/_@astrojs-ssr-adapter.mjs +1 -1
  31. package/dist/server/chunks/{PropsTables_D_v4KAMn.mjs → PropsTables_IgCNCQTX.mjs} +147 -213
  32. package/dist/server/chunks/{_@astrojs-ssr-adapter_ByVMUK8O.mjs → _@astrojs-ssr-adapter_CbICuCdt.mjs} +2 -2
  33. package/dist/server/chunks/{_astro_assets_CLOMnm-3.mjs → _astro_assets_DaYumpRZ.mjs} +2 -2
  34. package/dist/server/chunks/_astro_data-layer-content_Ni7IDnLe.mjs +1 -0
  35. package/dist/server/chunks/{angle-down-icon_BNJvzYv-.mjs → angle-down-icon_C5YQ7k8s.mjs} +163 -213
  36. package/dist/server/chunks/astro/{server_D4f31GMD.mjs → server_Cl9jPh4p.mjs} +179 -89
  37. package/dist/server/chunks/{astro-designed-error-pages_CpHpbfhr.mjs → astro-designed-error-pages_BFveJFnQ.mjs} +1 -1
  38. package/dist/server/chunks/content-modules_BzUEG69n.mjs +1 -0
  39. package/dist/server/chunks/{sharp_BYpUyJGL.mjs → sharp_CbOL3WDk.mjs} +2 -2
  40. package/dist/server/entry.mjs +3 -3
  41. package/dist/server/{manifest_CBenwYiZ.mjs → manifest_DoNTQyvZ.mjs} +3 -3
  42. package/dist/server/pages/_image.astro.mjs +1 -1
  43. package/dist/server/renderers.mjs +63 -14
  44. package/package.json +5 -2
  45. package/src/components/Content.tsx +61 -0
  46. package/src/components/ExampleToolbar.tsx +296 -0
  47. package/src/components/LiveExample.astro +7 -0
  48. package/src/components/LiveExample.tsx +42 -0
  49. package/src/components/Masthead.astro +1 -1
  50. package/src/components/NavEntry.tsx +0 -2
  51. package/src/components/NavSection.tsx +3 -23
  52. package/src/components/Navigation.astro +52 -7
  53. package/src/components/Navigation.tsx +13 -43
  54. package/src/content.ts +2 -1
  55. package/src/pages/[section]/[page]/[...tab].astro +97 -39
  56. package/textContent/examples/Accordion/Accordion.mdx +45 -0
  57. package/textContent/examples/Accordion/AccordionBordered.tsx +141 -0
  58. package/textContent/examples/Accordion/AccordionDefinitionList.tsx +102 -0
  59. package/textContent/examples/Accordion/AccordionFixedWithMultipleExpandBehavior.tsx +128 -0
  60. package/textContent/examples/Accordion/AccordionSingleExpandBehavior.tsx +118 -0
  61. package/textContent/examples/Accordion/AccordionToggleIconAtStart.tsx +118 -0
  62. package/dist/client/_astro/Button.C3_jB5tC.js +0 -9
  63. package/dist/client/_astro/Navigation.75VF_8AW.js +0 -1
  64. package/dist/client/_astro/PageContext.C7BqCh9N.js +0 -1
  65. package/dist/client/_astro/PageToggle.DDEjruql.js +0 -1
  66. package/dist/client/_astro/Toolbar.TAdHxLSQ.js +0 -1
  67. package/dist/client/_astro/_page_.CXyz_BEo.css +0 -1
  68. package/dist/client/_astro/_page_.DVvr_Mfl.css +0 -1
  69. package/dist/client/_astro/_page_.SnUmZn2y.css +0 -1
  70. package/dist/client/_astro/client.CeeiqVaE.js +0 -1
  71. package/dist/client/_astro/divider.BSD-oFoh.js +0 -1
  72. package/dist/client/_astro/index.CTH3fVMn.js +0 -32
  73. package/dist/client/_astro/page.B65lVdBS.js +0 -1
  74. /package/dist/server/chunks/{_astro_data-layer-content_DDGBHvtb.mjs → Accordion_CGgMUho2.mjs} +0 -0
  75. /package/dist/server/chunks/{content-modules_Dz-S_Wwv.mjs → Accordion_DlM2LvlF.mjs} +0 -0
@@ -1,74 +1,132 @@
1
1
  ---
2
2
  import { getCollection, render } from 'astro:content'
3
- import { Title, PageSection, Content as PFContent } from '@patternfly/react-core'
3
+ import { Title, PageSection } from '@patternfly/react-core'
4
4
  import MainLayout from '../../../layouts/Main.astro'
5
- import { content } from "../../../content"
5
+ import { content } from '../../../content'
6
6
  import { kebabCase } from 'change-case'
7
- import { componentTabs, tabNames, buildTab, sortTabs } from '../../../globals';
7
+ import { componentTabs, tabNames, buildTab, sortTabs } from '../../../globals'
8
8
  import PropsTables from '../../../components/PropsTables.astro'
9
+ import {
10
+ h1,
11
+ h2,
12
+ h3,
13
+ h4,
14
+ h5,
15
+ h6,
16
+ p,
17
+ a,
18
+ small,
19
+ blockquote,
20
+ pre,
21
+ hr,
22
+ ul,
23
+ ol,
24
+ dl,
25
+ li,
26
+ dt,
27
+ dd,
28
+ } from '../../../components/Content'
29
+ import LiveExample from '../../../components/LiveExample.astro'
9
30
 
10
31
  export async function getStaticPaths() {
11
- const collections = await Promise.all(content.map(async (entry) => await getCollection(entry.name as 'textContent')))
32
+ const collections = await Promise.all(
33
+ content.map(
34
+ async (entry) => await getCollection(entry.name as 'textContent'),
35
+ ),
36
+ )
12
37
 
13
- const flatCol = collections.flat().map((entry) => {
38
+ const flatCol = collections.flat().map((entry) => {
14
39
  // Build tabs dictionary
15
- let tab = entry.data.tab;
16
- if(tab) { // check for demos/deprecated
17
- if(entry.id.includes('demos')) {
18
- tab = `${tab}-demos`;
40
+ let tab = entry.data.tab
41
+ if (tab) {
42
+ // check for demos/deprecated
43
+ if (entry.id.includes('demos')) {
44
+ tab = `${tab}-demos`
19
45
  } else if (entry.id.includes('deprecated')) {
20
- tab = `${tab}-deprecated`;
46
+ tab = `${tab}-deprecated`
21
47
  }
22
48
  }
23
- buildTab(entry, tab);
49
+ buildTab(entry, tab)
24
50
 
25
51
  return {
26
- params: { page: kebabCase(entry.data.id), section: entry.data.section, tab },
52
+ params: {
53
+ page: kebabCase(entry.data.id),
54
+ section: entry.data.section,
55
+ tab,
56
+ },
27
57
  props: { entry, ...entry.data },
28
58
  }
29
59
  })
30
60
 
31
- sortTabs()
32
- return flatCol;
61
+ sortTabs()
62
+ return flatCol
33
63
  }
34
64
 
35
65
  const { entry, propComponents } = Astro.props
36
66
  const { title, id, section } = entry.data
37
67
  const { Content } = await render(entry)
38
- const currentPath = Astro.url.pathname;
39
-
68
+ const currentPath = Astro.url.pathname
40
69
  ---
41
70
 
42
71
  <MainLayout>
43
72
  {
44
73
  title && (
45
74
  <Title headingLevel="h1" size="4xl">
46
- {title}
75
+ {title}
47
76
  </Title>
48
77
  )
49
78
  }
50
- {componentTabs[id] && (
51
- <PageSection id="ws-sticky-nav-tabs" stickyOnBreakpoint={{ default: 'top' }} type="tabs">
52
- <div class="pf-v6-c-tabs pf-m-page-insets pf-m-no-border-bottom">
53
- <ul class="pf-v6-c-tabs__list">
54
- {componentTabs[id].map((tab: string) => (
55
- // eslint-disable-next-line react/jsx-key
56
- <li
57
- class={`pf-v6-c-tabs__item${currentPath === `/${section}/${kebabCase(id)}/${tab}` ? ' pf-m-current' : ''}`}
58
- >
59
- <a class="pf-v6-c-tabs__link" href={`/${section}/${kebabCase(id)}/${tab}`}>
60
- {tabNames[tab]}
61
- </a>
62
- </li>
63
- ))}
64
- </ul>
65
- </div>
66
- </PageSection>
67
- )}
79
+ {
80
+ componentTabs[id] && (
81
+ <PageSection
82
+ id="ws-sticky-nav-tabs"
83
+ stickyOnBreakpoint={{ default: 'top' }}
84
+ type="tabs"
85
+ >
86
+ <div class="pf-v6-c-tabs pf-m-page-insets pf-m-no-border-bottom">
87
+ <ul class="pf-v6-c-tabs__list">
88
+ {componentTabs[id].map((tab: string) => (
89
+ // eslint-disable-next-line react/jsx-key
90
+ <li
91
+ class={`pf-v6-c-tabs__item${currentPath === `/${section}/${kebabCase(id)}/${tab}` ? ' pf-m-current' : ''}`}
92
+ >
93
+ <a
94
+ class="pf-v6-c-tabs__link"
95
+ href={`/${section}/${kebabCase(id)}/${tab}`}
96
+ >
97
+ {tabNames[tab]}
98
+ </a>
99
+ </li>
100
+ ))}
101
+ </ul>
102
+ </div>
103
+ </PageSection>
104
+ )
105
+ }
68
106
  <PageSection id="main-content" isFilled>
69
- <PFContent>
70
- <Content />
71
- <PropsTables propComponents={propComponents} server:defer />
72
- </PFContent>
107
+ <Content
108
+ components={{
109
+ h1,
110
+ h2,
111
+ h3,
112
+ h4,
113
+ h5,
114
+ h6,
115
+ p,
116
+ a,
117
+ small,
118
+ blockquote,
119
+ pre,
120
+ hr,
121
+ ul,
122
+ ol,
123
+ dl,
124
+ li,
125
+ dt,
126
+ dd,
127
+ LiveExample,
128
+ }}
129
+ />
130
+ <PropsTables propComponents={propComponents} server:defer />
73
131
  </PageSection>
74
132
  </MainLayout>
@@ -0,0 +1,45 @@
1
+ ---
2
+ id: Accordion
3
+ section: components
4
+ cssPrefix: pf-v6-c-accordion
5
+ propComponents:
6
+ [
7
+ 'Accordion',
8
+ 'AccordionItem',
9
+ 'AccordionContent',
10
+ 'AccordionToggle',
11
+ AccordionExpandableContentBody,
12
+ ]
13
+ ---
14
+
15
+ ## Examples
16
+
17
+ ### Definition list
18
+
19
+ import AccordionDefinitionList from './AccordionDefinitionList.tsx?raw'
20
+
21
+ <LiveExample src={AccordionDefinitionList} />
22
+
23
+ ### Single expand behavior
24
+
25
+ import AccordionSingleExpandBehavior from './AccordionSingleExpandBehavior.tsx?raw'
26
+
27
+ <LiveExample src={AccordionSingleExpandBehavior} />
28
+
29
+ ### Fixed with multiple expand behavior
30
+
31
+ import AccordionFixedWithMultipleExpandBehavior from './AccordionFixedWithMultipleExpandBehavior.tsx?raw'
32
+
33
+ <LiveExample src={AccordionFixedWithMultipleExpandBehavior} />
34
+
35
+ ### Bordered
36
+
37
+ import AccordionBordered from './AccordionBordered.tsx?raw'
38
+
39
+ <LiveExample src={AccordionBordered} />
40
+
41
+ ### Toggle icon at start
42
+
43
+ import AccordionToggleIconAtStart from './AccordionToggleIconAtStart.tsx?raw'
44
+
45
+ <LiveExample src={AccordionToggleIconAtStart} />
@@ -0,0 +1,141 @@
1
+ import { useState } from 'react'
2
+ import {
3
+ Accordion,
4
+ AccordionItem,
5
+ AccordionContent,
6
+ AccordionToggle,
7
+ AccordionExpandableContentBody,
8
+ Button,
9
+ Checkbox,
10
+ } from '@patternfly/react-core'
11
+ import ArrowRightIcon from '@patternfly/react-icons/dist/esm/icons/arrow-right-icon'
12
+
13
+ export const AccordionBordered: React.FunctionComponent = () => {
14
+ const [expanded, setExpanded] = useState('bordered-toggle4')
15
+ const [isDisplayLarge, setIsDisplayLarge] = useState(false)
16
+
17
+ const displaySize = isDisplayLarge ? 'lg' : 'default'
18
+ const onToggle = (id: string) => {
19
+ if (id === expanded) {
20
+ setExpanded('')
21
+ } else {
22
+ setExpanded(id)
23
+ }
24
+ }
25
+
26
+ return (
27
+ <>
28
+ <Accordion isBordered displaySize={displaySize}>
29
+ <AccordionItem isExpanded={expanded === 'bordered-toggle1'}>
30
+ <AccordionToggle
31
+ onClick={() => {
32
+ onToggle('bordered-toggle1')
33
+ }}
34
+ id="bordered-toggle1"
35
+ >
36
+ Item one
37
+ </AccordionToggle>
38
+ <AccordionContent id="bordered-expand1">
39
+ <p>
40
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
41
+ eiusmod tempor incididunt ut labore et dolore magna aliqua.
42
+ </p>
43
+ </AccordionContent>
44
+ </AccordionItem>
45
+
46
+ <AccordionItem isExpanded={expanded === 'bordered-toggle2'}>
47
+ <AccordionToggle
48
+ onClick={() => {
49
+ onToggle('bordered-toggle2')
50
+ }}
51
+ id="bordered-toggle2"
52
+ >
53
+ Item two
54
+ </AccordionToggle>
55
+ <AccordionContent id="bordered-expand2">
56
+ <p>
57
+ Vivamus et tortor sed arcu congue vehicula eget et diam. Praesent
58
+ nec dictum lorem. Aliquam id diam ultrices, faucibus erat id,
59
+ maximus nunc.
60
+ </p>
61
+ </AccordionContent>
62
+ </AccordionItem>
63
+
64
+ <AccordionItem isExpanded={expanded === 'bordered-toggle3'}>
65
+ <AccordionToggle
66
+ onClick={() => {
67
+ onToggle('bordered-toggle3')
68
+ }}
69
+ id="bordered-toggle3"
70
+ >
71
+ Item three
72
+ </AccordionToggle>
73
+ <AccordionContent id="bordered-expand3">
74
+ <p>
75
+ Morbi vitae urna quis nunc convallis hendrerit. Aliquam congue
76
+ orci quis ultricies tempus.
77
+ </p>
78
+ </AccordionContent>
79
+ </AccordionItem>
80
+
81
+ <AccordionItem isExpanded={expanded === 'bordered-toggle4'}>
82
+ <AccordionToggle
83
+ onClick={() => {
84
+ onToggle('bordered-toggle4')
85
+ }}
86
+ id="bordered-toggle4"
87
+ >
88
+ Item four
89
+ </AccordionToggle>
90
+ <AccordionContent id="bordered-expand4" isCustomContent>
91
+ <AccordionExpandableContentBody>
92
+ Donec vel posuere orci. Phasellus quis tortor a ex hendrerit
93
+ efficitur. Aliquam lacinia ligula pharetra, sagittis ex ut,
94
+ pellentesque diam. Vestibulum ante ipsum primis in faucibus orci
95
+ luctus et ultrices posuere cubilia Curae; Vestibulum ultricies
96
+ nulla nibh. Etiam vel dui fermentum ligula ullamcorper eleifend
97
+ non quis tortor. Morbi tempus ornare tempus. Orci varius natoque
98
+ penatibus et magnis dis parturient montes, nascetur ridiculus mus.
99
+ Mauris et velit neque. Donec ultricies condimentum mauris,
100
+ pellentesque imperdiet libero convallis convallis. Aliquam erat
101
+ volutpat. Donec rutrum semper tempus. Proin dictum imperdiet nibh,
102
+ quis dapibus nulla. Integer sed tincidunt lectus, sit amet auctor
103
+ eros.
104
+ </AccordionExpandableContentBody>
105
+ <AccordionExpandableContentBody>
106
+ <Button variant="link" size="lg" isInline>
107
+ Call to action <ArrowRightIcon />
108
+ </Button>
109
+ </AccordionExpandableContentBody>
110
+ </AccordionContent>
111
+ </AccordionItem>
112
+ <AccordionItem isExpanded={expanded === 'bordered-toggle5'}>
113
+ <AccordionToggle
114
+ onClick={() => {
115
+ onToggle('bordered-toggle5')
116
+ }}
117
+ id="bordered-toggle5"
118
+ >
119
+ Item five
120
+ </AccordionToggle>
121
+ <AccordionContent id="bordered-expand5">
122
+ <p>
123
+ Vivamus finibus dictum ex id ultrices. Mauris dictum neque a
124
+ iaculis blandit.
125
+ </p>
126
+ </AccordionContent>
127
+ </AccordionItem>
128
+ </Accordion>
129
+ <div style={{ marginTop: '30px' }}>
130
+ <Checkbox
131
+ label="Display size large"
132
+ isChecked={isDisplayLarge}
133
+ onChange={(_event, checked) => setIsDisplayLarge(checked)}
134
+ aria-label="show display large variation checkbox"
135
+ id="toggle-display-lg"
136
+ name="toggle-display-lg"
137
+ />
138
+ </div>
139
+ </>
140
+ )
141
+ }
@@ -0,0 +1,102 @@
1
+ import { useState } from 'react';
2
+ import { Accordion, AccordionItem, AccordionContent, AccordionToggle } from '@patternfly/react-core';
3
+
4
+ export const AccordionDefinitionList: React.FunctionComponent = () => {
5
+ const [expanded, setExpanded] = useState('def-list-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 asDefinitionList>
17
+ <AccordionItem isExpanded={expanded === 'def-list-toggle1'}>
18
+ <AccordionToggle
19
+ onClick={() => {
20
+ onToggle('def-list-toggle1');
21
+ }}
22
+ id="def-list-toggle1"
23
+ >
24
+ Item one
25
+ </AccordionToggle>
26
+ <AccordionContent id="def-list-expand1">
27
+ <p>
28
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
29
+ dolore magna aliqua.
30
+ </p>
31
+ </AccordionContent>
32
+ </AccordionItem>
33
+
34
+ <AccordionItem isExpanded={expanded === 'def-list-toggle2'}>
35
+ <AccordionToggle
36
+ onClick={() => {
37
+ onToggle('def-list-toggle2');
38
+ }}
39
+ id="def-list-toggle2"
40
+ >
41
+ Item two
42
+ </AccordionToggle>
43
+ <AccordionContent id="def-list-expand2">
44
+ <p>
45
+ Vivamus et tortor sed arcu congue vehicula eget et diam. Praesent nec dictum lorem. Aliquam id diam
46
+ ultrices, faucibus erat id, maximus nunc.
47
+ </p>
48
+ </AccordionContent>
49
+ </AccordionItem>
50
+
51
+ <AccordionItem isExpanded={expanded === 'def-list-toggle3'}>
52
+ <AccordionToggle
53
+ onClick={() => {
54
+ onToggle('def-list-toggle3');
55
+ }}
56
+ id="def-list-toggle3"
57
+ >
58
+ Item three
59
+ </AccordionToggle>
60
+ <AccordionContent id="def-list-expand3">
61
+ <p>Morbi vitae urna quis nunc convallis hendrerit. Aliquam congue orci quis ultricies tempus.</p>
62
+ </AccordionContent>
63
+ </AccordionItem>
64
+
65
+ <AccordionItem isExpanded={expanded === 'def-list-toggle4'}>
66
+ <AccordionToggle
67
+ onClick={() => {
68
+ onToggle('def-list-toggle4');
69
+ }}
70
+ id="def-list-toggle4"
71
+ >
72
+ Item four
73
+ </AccordionToggle>
74
+ <AccordionContent id="def-list-expand4">
75
+ <p>
76
+ Donec vel posuere orci. Phasellus quis tortor a ex hendrerit efficitur. Aliquam lacinia ligula pharetra,
77
+ sagittis ex ut, pellentesque diam. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere
78
+ cubilia Curae; Vestibulum ultricies nulla nibh. Etiam vel dui fermentum ligula ullamcorper eleifend non quis
79
+ tortor. Morbi tempus ornare tempus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur
80
+ ridiculus mus. Mauris et velit neque. Donec ultricies condimentum mauris, pellentesque imperdiet libero
81
+ convallis convallis. Aliquam erat volutpat. Donec rutrum semper tempus. Proin dictum imperdiet nibh, quis
82
+ dapibus nulla. Integer sed tincidunt lectus, sit amet auctor eros.
83
+ </p>
84
+ </AccordionContent>
85
+ </AccordionItem>
86
+
87
+ <AccordionItem isExpanded={expanded === 'def-list-toggle5'}>
88
+ <AccordionToggle
89
+ onClick={() => {
90
+ onToggle('def-list-toggle5');
91
+ }}
92
+ id="def-list-toggle5"
93
+ >
94
+ Item five
95
+ </AccordionToggle>
96
+ <AccordionContent id="def-list-expand5">
97
+ <p>Vivamus finibus dictum ex id ultrices. Mauris dictum neque a iaculis blandit.</p>
98
+ </AccordionContent>
99
+ </AccordionItem>
100
+ </Accordion>
101
+ );
102
+ };
@@ -0,0 +1,128 @@
1
+ import { useState } from 'react'
2
+ import {
3
+ Accordion,
4
+ AccordionItem,
5
+ AccordionContent,
6
+ AccordionToggle,
7
+ } from '@patternfly/react-core'
8
+
9
+ export const AccordionFixedWithMultipleExpandBehavior: React.FunctionComponent =
10
+ () => {
11
+ const [expanded, setExpanded] = useState(['ex2-toggle4'])
12
+
13
+ const toggle = (id: string) => {
14
+ const index = expanded.indexOf(id)
15
+ const newExpanded: string[] =
16
+ index >= 0
17
+ ? [
18
+ ...expanded.slice(0, index),
19
+ ...expanded.slice(index + 1, expanded.length),
20
+ ]
21
+ : [...expanded, id]
22
+ setExpanded(newExpanded)
23
+ }
24
+
25
+ return (
26
+ <Accordion asDefinitionList={false}>
27
+ <AccordionItem isExpanded={expanded.includes('ex2-toggle1')}>
28
+ <AccordionToggle
29
+ onClick={() => toggle('ex2-toggle1')}
30
+ id="ex2-toggle1"
31
+ >
32
+ Item one
33
+ </AccordionToggle>
34
+ <AccordionContent id="ex2-expand1" isFixed>
35
+ <p>
36
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
37
+ eiusmod tempor incididunt ut labore et dolore magna aliqua.
38
+ </p>
39
+ </AccordionContent>
40
+ </AccordionItem>
41
+ <AccordionItem isExpanded={expanded.includes('ex2-toggle2')}>
42
+ <AccordionToggle
43
+ onClick={() => toggle('ex2-toggle2')}
44
+ id="ex2-toggle2"
45
+ >
46
+ Item two
47
+ </AccordionToggle>
48
+ <AccordionContent id="ex2-expand2" isFixed>
49
+ <p>
50
+ Vivamus et tortor sed arcu congue vehicula eget et diam. Praesent
51
+ nec dictum lorem. Aliquam id diam ultrices, faucibus erat id,
52
+ maximus nunc.
53
+ </p>
54
+ </AccordionContent>
55
+ </AccordionItem>
56
+ <AccordionItem isExpanded={expanded.includes('ex2-toggle3')}>
57
+ <AccordionToggle
58
+ onClick={() => toggle('ex2-toggle3')}
59
+ id="ex2-toggle3"
60
+ >
61
+ Item three
62
+ </AccordionToggle>
63
+ <AccordionContent id="ex2-expand3" isFixed>
64
+ <p>
65
+ Morbi vitae urna quis nunc convallis hendrerit. Aliquam congue
66
+ orci quis ultricies tempus.
67
+ </p>
68
+ </AccordionContent>
69
+ </AccordionItem>
70
+ <AccordionItem isExpanded={expanded.includes('ex2-toggle4')}>
71
+ <AccordionToggle
72
+ onClick={() => toggle('ex2-toggle4')}
73
+ id="ex2-toggle4"
74
+ >
75
+ Item four
76
+ </AccordionToggle>
77
+ <AccordionContent
78
+ aria-labelledby="ex2-toggle4"
79
+ id="ex2-expand4"
80
+ isFixed
81
+ >
82
+ <p>
83
+ Donec vel posuere orci. Phasellus quis tortor a ex hendrerit
84
+ efficitur. Aliquam lacinia ligula pharetra, sagittis ex ut,
85
+ pellentesque diam. Vestibulum ante ipsum primis in faucibus orci
86
+ luctus et ultrices posuere cubilia Curae; Vestibulum ultricies
87
+ nulla nibh. Etiam vel dui fermentum ligula ullamcorper eleifend
88
+ non quis tortor. Morbi tempus ornare tempus. Orci varius natoque
89
+ penatibus et magnis dis parturient montes, nascetur ridiculus mus.
90
+ Mauris et velit neque. Donec ultricies condimentum mauris,
91
+ pellentesque imperdiet libero convallis convallis. Aliquam erat
92
+ volutpat. Donec rutrum semper tempus. Proin dictum imperdiet nibh,
93
+ quis dapibus nulla. Integer sed tincidunt lectus, sit amet auctor
94
+ eros.
95
+ </p>
96
+ <p>
97
+ Donec vel posuere orci. Phasellus quis tortor a ex hendrerit
98
+ efficitur. Aliquam lacinia ligula pharetra, sagittis ex ut,
99
+ pellentesque diam. Vestibulum ante ipsum primis in faucibus orci
100
+ luctus et ultrices posuere cubilia Curae; Vestibulum ultricies
101
+ nulla nibh. Etiam vel dui fermentum ligula ullamcorper eleifend
102
+ non quis tortor. Morbi tempus ornare tempus. Orci varius natoque
103
+ penatibus et magnis dis parturient montes, nascetur ridiculus mus.
104
+ Mauris et velit neque. Donec ultricies condimentum mauris,
105
+ pellentesque imperdiet libero convallis convallis. Aliquam erat
106
+ volutpat. Donec rutrum semper tempus. Proin dictum imperdiet nibh,
107
+ quis dapibus nulla. Integer sed tincidunt lectus, sit amet auctor
108
+ eros.
109
+ </p>
110
+ </AccordionContent>
111
+ </AccordionItem>
112
+ <AccordionItem isExpanded={expanded.includes('ex2-toggle5')}>
113
+ <AccordionToggle
114
+ onClick={() => toggle('ex2-toggle5')}
115
+ id="ex2-toggle5"
116
+ >
117
+ Item five
118
+ </AccordionToggle>
119
+ <AccordionContent id="ex2-expand5" isFixed>
120
+ <p>
121
+ Vivamus finibus dictum ex id ultrices. Mauris dictum neque a
122
+ iaculis blandit.
123
+ </p>
124
+ </AccordionContent>
125
+ </AccordionItem>
126
+ </Accordion>
127
+ )
128
+ }