@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.
- package/.astro/collections/examples.schema.json +40 -0
- package/.astro/content-modules.mjs +4 -1
- package/.astro/content.d.ts +20 -1
- package/.vscode/launch.json +31 -10
- package/astro.config.mjs +2 -2
- package/declarations.d.ts +2 -0
- package/dist/client/_astro/LiveExample.B7IM_dLQ.css +1 -0
- package/dist/client/_astro/LiveExample.Df-EUsee.js +40 -0
- package/dist/client/_astro/Navigation.CabjIYg4.js +1 -0
- package/dist/client/_astro/PageContext.D1pNBMhh.js +9 -0
- package/dist/client/_astro/PageSidebarBody.Y-7d6zQM.js +1 -0
- package/dist/client/_astro/PageToggle.CbfM9bJB.js +1 -0
- package/dist/client/_astro/PageToggleButton.CZ3xPbcc.js +1 -0
- package/dist/client/_astro/Toolbar.9-YSFh3P.js +1 -0
- package/dist/client/_astro/ToolbarContent.BXdFKbs9.js +1 -0
- package/dist/client/_astro/_page_.B8cBYNKa.css +1 -0
- package/dist/client/_astro/_page_.CtheD08_.css +1 -0
- package/dist/client/_astro/_tab_.DxJDkZPc.css +1 -0
- package/dist/client/_astro/_tab_.YrfmckTJ.css +1 -0
- package/dist/client/_astro/client.CTJTt880.js +1 -0
- package/dist/client/_astro/divider.DjbDHO_6.js +1 -0
- package/dist/client/_astro/index.Dhi-S4Ah.js +24 -0
- package/dist/client/_astro/index.Dkaqzkgy.js +9 -0
- package/dist/client/_astro/page.CDtWFZb5.js +1 -0
- package/dist/client/components/accordion/index.html +85 -0
- package/dist/client/design-foundations/typography/index.html +24 -22
- package/dist/client/design-foundations/usage-and-behavior/index.html +24 -22
- package/dist/client/get-started/contribute/index.html +24 -22
- package/dist/client/index.html +19 -17
- package/dist/server/_@astrojs-ssr-adapter.mjs +1 -1
- package/dist/server/chunks/{PropsTables_D_v4KAMn.mjs → PropsTables_IgCNCQTX.mjs} +147 -213
- package/dist/server/chunks/{_@astrojs-ssr-adapter_ByVMUK8O.mjs → _@astrojs-ssr-adapter_CbICuCdt.mjs} +2 -2
- package/dist/server/chunks/{_astro_assets_CLOMnm-3.mjs → _astro_assets_DaYumpRZ.mjs} +2 -2
- package/dist/server/chunks/_astro_data-layer-content_Ni7IDnLe.mjs +1 -0
- package/dist/server/chunks/{angle-down-icon_BNJvzYv-.mjs → angle-down-icon_C5YQ7k8s.mjs} +163 -213
- package/dist/server/chunks/astro/{server_D4f31GMD.mjs → server_Cl9jPh4p.mjs} +179 -89
- package/dist/server/chunks/{astro-designed-error-pages_CpHpbfhr.mjs → astro-designed-error-pages_BFveJFnQ.mjs} +1 -1
- package/dist/server/chunks/content-modules_BzUEG69n.mjs +1 -0
- package/dist/server/chunks/{sharp_BYpUyJGL.mjs → sharp_CbOL3WDk.mjs} +2 -2
- package/dist/server/entry.mjs +3 -3
- package/dist/server/{manifest_CBenwYiZ.mjs → manifest_DoNTQyvZ.mjs} +3 -3
- package/dist/server/pages/_image.astro.mjs +1 -1
- package/dist/server/renderers.mjs +63 -14
- package/package.json +5 -2
- package/src/components/Content.tsx +61 -0
- package/src/components/ExampleToolbar.tsx +296 -0
- package/src/components/LiveExample.astro +7 -0
- package/src/components/LiveExample.tsx +42 -0
- package/src/components/Masthead.astro +1 -1
- package/src/components/NavEntry.tsx +0 -2
- package/src/components/NavSection.tsx +3 -23
- package/src/components/Navigation.astro +52 -7
- package/src/components/Navigation.tsx +13 -43
- package/src/content.ts +2 -1
- package/src/pages/[section]/[page]/[...tab].astro +97 -39
- package/textContent/examples/Accordion/Accordion.mdx +45 -0
- package/textContent/examples/Accordion/AccordionBordered.tsx +141 -0
- package/textContent/examples/Accordion/AccordionDefinitionList.tsx +102 -0
- package/textContent/examples/Accordion/AccordionFixedWithMultipleExpandBehavior.tsx +128 -0
- package/textContent/examples/Accordion/AccordionSingleExpandBehavior.tsx +118 -0
- package/textContent/examples/Accordion/AccordionToggleIconAtStart.tsx +118 -0
- package/dist/client/_astro/Button.C3_jB5tC.js +0 -9
- package/dist/client/_astro/Navigation.75VF_8AW.js +0 -1
- package/dist/client/_astro/PageContext.C7BqCh9N.js +0 -1
- package/dist/client/_astro/PageToggle.DDEjruql.js +0 -1
- package/dist/client/_astro/Toolbar.TAdHxLSQ.js +0 -1
- package/dist/client/_astro/_page_.CXyz_BEo.css +0 -1
- package/dist/client/_astro/_page_.DVvr_Mfl.css +0 -1
- package/dist/client/_astro/_page_.SnUmZn2y.css +0 -1
- package/dist/client/_astro/client.CeeiqVaE.js +0 -1
- package/dist/client/_astro/divider.BSD-oFoh.js +0 -1
- package/dist/client/_astro/index.CTH3fVMn.js +0 -32
- package/dist/client/_astro/page.B65lVdBS.js +0 -1
- /package/dist/server/chunks/{_astro_data-layer-content_DDGBHvtb.mjs → Accordion_CGgMUho2.mjs} +0 -0
- /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
|
|
3
|
+
import { Title, PageSection } from '@patternfly/react-core'
|
|
4
4
|
import MainLayout from '../../../layouts/Main.astro'
|
|
5
|
-
import { content } from
|
|
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(
|
|
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 =
|
|
38
|
+
const flatCol = collections.flat().map((entry) => {
|
|
14
39
|
// Build tabs dictionary
|
|
15
|
-
let tab = entry.data.tab
|
|
16
|
-
if(tab) {
|
|
17
|
-
|
|
18
|
-
|
|
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: {
|
|
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
|
-
{
|
|
51
|
-
|
|
52
|
-
<
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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
|
-
<
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
+
}
|