@patternfly/react-docs 7.6.0-prerelease.8 → 7.6.0-prerelease.9

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 (163) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/LICENSE +21 -0
  3. package/package.json +12 -11
  4. package/patternfly-docs/generated/components/about-modal/react.js +0 -149
  5. package/patternfly-docs/generated/components/accordion/react.js +0 -262
  6. package/patternfly-docs/generated/components/action-list/react.js +0 -144
  7. package/patternfly-docs/generated/components/alert/react-demos.js +0 -56
  8. package/patternfly-docs/generated/components/alert/react.js +0 -1433
  9. package/patternfly-docs/generated/components/avatar/react.js +0 -166
  10. package/patternfly-docs/generated/components/back-to-top/react-demos.js +0 -60
  11. package/patternfly-docs/generated/components/back-to-top/react.js +0 -77
  12. package/patternfly-docs/generated/components/backdrop/react.js +0 -64
  13. package/patternfly-docs/generated/components/background-image/react.js +0 -62
  14. package/patternfly-docs/generated/components/badge/react.js +0 -97
  15. package/patternfly-docs/generated/components/banner/react-demos.js +0 -57
  16. package/patternfly-docs/generated/components/banner/react.js +0 -148
  17. package/patternfly-docs/generated/components/brand/react.js +0 -142
  18. package/patternfly-docs/generated/components/breadcrumb/react.js +0 -206
  19. package/patternfly-docs/generated/components/button/react-demos.js +0 -57
  20. package/patternfly-docs/generated/components/button/react.js +0 -826
  21. package/patternfly-docs/generated/components/card/react-demos.js +0 -201
  22. package/patternfly-docs/generated/components/card/react.js +0 -1015
  23. package/patternfly-docs/generated/components/charts/area-chart/-Victory.js +0 -1350
  24. package/patternfly-docs/generated/components/charts/bar-chart/-Victory.js +0 -1334
  25. package/patternfly-docs/generated/components/charts/box-plot-chart/-Victory.js +0 -1282
  26. package/patternfly-docs/generated/components/charts/bullet-chart/-Victory.js +0 -848
  27. package/patternfly-docs/generated/components/charts/colors-for-charts/-Victory.js +0 -192
  28. package/patternfly-docs/generated/components/charts/donut-chart/-Victory.js +0 -426
  29. package/patternfly-docs/generated/components/charts/donut-utilization-chart/-Victory.js +0 -804
  30. package/patternfly-docs/generated/components/charts/legends/-Victory.js +0 -3230
  31. package/patternfly-docs/generated/components/charts/line-chart/-Victory.js +0 -1178
  32. package/patternfly-docs/generated/components/charts/line-chart/ECharts.js +0 -525
  33. package/patternfly-docs/generated/components/charts/patterns/-Victory.js +0 -3382
  34. package/patternfly-docs/generated/components/charts/pie-chart/-Victory.js +0 -377
  35. package/patternfly-docs/generated/components/charts/resize-observer/-Victory.js +0 -2475
  36. package/patternfly-docs/generated/components/charts/sankey-chart/ECharts.js +0 -538
  37. package/patternfly-docs/generated/components/charts/scatter-chart/-Victory.js +0 -1551
  38. package/patternfly-docs/generated/components/charts/skeletons/-Victory.js +0 -4115
  39. package/patternfly-docs/generated/components/charts/sparkline-chart/-Victory.js +0 -955
  40. package/patternfly-docs/generated/components/charts/stack-chart/-Victory.js +0 -1173
  41. package/patternfly-docs/generated/components/charts/threshold-chart/-Victory.js +0 -1166
  42. package/patternfly-docs/generated/components/charts/tooltips/-Victory.js +0 -413
  43. package/patternfly-docs/generated/components/chip/react-deprecated.js +0 -323
  44. package/patternfly-docs/generated/components/clipboard-copy/react.js +0 -373
  45. package/patternfly-docs/generated/components/code-block/react.js +0 -148
  46. package/patternfly-docs/generated/components/code-editor/react.js +0 -659
  47. package/patternfly-docs/generated/components/compass/react-demos.js +0 -147
  48. package/patternfly-docs/generated/components/compass/react.js +0 -440
  49. package/patternfly-docs/generated/components/content/react.js +0 -248
  50. package/patternfly-docs/generated/components/data-list/react-demos.js +0 -90
  51. package/patternfly-docs/generated/components/data-list/react.js +0 -709
  52. package/patternfly-docs/generated/components/date-and-time/calendar-month/react.js +0 -283
  53. package/patternfly-docs/generated/components/date-and-time/date-and-time-picker/react-demos.js +0 -64
  54. package/patternfly-docs/generated/components/date-and-time/date-picker/react-demos.js +0 -83
  55. package/patternfly-docs/generated/components/date-and-time/date-picker/react.js +0 -395
  56. package/patternfly-docs/generated/components/date-and-time/time-picker/react.js +0 -241
  57. package/patternfly-docs/generated/components/description-list/react-demos.js +0 -58
  58. package/patternfly-docs/generated/components/description-list/react.js +0 -743
  59. package/patternfly-docs/generated/components/divider/react.js +0 -126
  60. package/patternfly-docs/generated/components/drag-and-drop/react-demos.js +0 -351
  61. package/patternfly-docs/generated/components/drag-and-drop/react-deprecated.js +0 -184
  62. package/patternfly-docs/generated/components/drag-and-drop/react.js +0 -137
  63. package/patternfly-docs/generated/components/drawer/react.js +0 -598
  64. package/patternfly-docs/generated/components/dual-list-selector/react-deprecated.js +0 -772
  65. package/patternfly-docs/generated/components/dual-list-selector/react.js +0 -594
  66. package/patternfly-docs/generated/components/empty-state/react.js +0 -199
  67. package/patternfly-docs/generated/components/expandable-section/react-demos.js +0 -65
  68. package/patternfly-docs/generated/components/expandable-section/react.js +0 -408
  69. package/patternfly-docs/generated/components/file-upload/multiple-file-upload/react-demos.js +0 -52
  70. package/patternfly-docs/generated/components/file-upload/multiple-file-upload/react.js +0 -398
  71. package/patternfly-docs/generated/components/file-upload/simple-file-upload/react.js +0 -749
  72. package/patternfly-docs/generated/components/forms/checkbox/react.js +0 -222
  73. package/patternfly-docs/generated/components/forms/form/react.js +0 -1106
  74. package/patternfly-docs/generated/components/forms/form-select/react.js +0 -208
  75. package/patternfly-docs/generated/components/forms/radio/react.js +0 -212
  76. package/patternfly-docs/generated/components/forms/text-area/react.js +0 -160
  77. package/patternfly-docs/generated/components/forms/text-input/react.js +0 -216
  78. package/patternfly-docs/generated/components/helper-text/react-demos.js +0 -180
  79. package/patternfly-docs/generated/components/helper-text/react.js +0 -164
  80. package/patternfly-docs/generated/components/hero/react.js +0 -88
  81. package/patternfly-docs/generated/components/hint/react.js +0 -169
  82. package/patternfly-docs/generated/components/icon/react.js +0 -215
  83. package/patternfly-docs/generated/components/input-group/react.js +0 -182
  84. package/patternfly-docs/generated/components/jump-links/react-demos.js +0 -154
  85. package/patternfly-docs/generated/components/jump-links/react.js +0 -212
  86. package/patternfly-docs/generated/components/label/react-demos.js +0 -57
  87. package/patternfly-docs/generated/components/label/react.js +0 -417
  88. package/patternfly-docs/generated/components/list/react.js +0 -175
  89. package/patternfly-docs/generated/components/login-page/react.js +0 -587
  90. package/patternfly-docs/generated/components/masthead/react-demos.js +0 -79
  91. package/patternfly-docs/generated/components/masthead/react.js +0 -291
  92. package/patternfly-docs/generated/components/menus/application-launcher/react-demos.js +0 -769
  93. package/patternfly-docs/generated/components/menus/context-selector/react-demos.js +0 -665
  94. package/patternfly-docs/generated/components/menus/custom-menus/react-demos.js +0 -187
  95. package/patternfly-docs/generated/components/menus/dropdown/react-templates.js +0 -163
  96. package/patternfly-docs/generated/components/menus/dropdown/react.js +0 -998
  97. package/patternfly-docs/generated/components/menus/menu/react.js +0 -1540
  98. package/patternfly-docs/generated/components/menus/menu-toggle/react.js +0 -747
  99. package/patternfly-docs/generated/components/menus/options-menu/react-demos.js +0 -508
  100. package/patternfly-docs/generated/components/menus/select/react-templates.js +0 -257
  101. package/patternfly-docs/generated/components/menus/select/react.js +0 -998
  102. package/patternfly-docs/generated/components/modal/react-deprecated.js +0 -554
  103. package/patternfly-docs/generated/components/modal/react.js +0 -597
  104. package/patternfly-docs/generated/components/navigation/react-demos.js +0 -356
  105. package/patternfly-docs/generated/components/navigation/react.js +0 -409
  106. package/patternfly-docs/generated/components/notification-badge/react.js +0 -196
  107. package/patternfly-docs/generated/components/notification-drawer/react-demos.js +0 -107
  108. package/patternfly-docs/generated/components/notification-drawer/react.js +0 -394
  109. package/patternfly-docs/generated/components/number-input/react.js +0 -210
  110. package/patternfly-docs/generated/components/overflow-menu/react.js +0 -274
  111. package/patternfly-docs/generated/components/page/react-demos.js +0 -149
  112. package/patternfly-docs/generated/components/page/react.js +0 -1352
  113. package/patternfly-docs/generated/components/pagination/react.js +0 -492
  114. package/patternfly-docs/generated/components/panel/react.js +0 -236
  115. package/patternfly-docs/generated/components/popover/react.js +0 -390
  116. package/patternfly-docs/generated/components/progress/react-demos.js +0 -59
  117. package/patternfly-docs/generated/components/progress/react.js +0 -283
  118. package/patternfly-docs/generated/components/progress-stepper/react-demos.js +0 -45
  119. package/patternfly-docs/generated/components/progress-stepper/react.js +0 -219
  120. package/patternfly-docs/generated/components/search-input/react-demos.js +0 -113
  121. package/patternfly-docs/generated/components/search-input/react.js +0 -263
  122. package/patternfly-docs/generated/components/sidebar/react.js +0 -236
  123. package/patternfly-docs/generated/components/simple-list/react.js +0 -200
  124. package/patternfly-docs/generated/components/skeleton/react-demos.js +0 -44
  125. package/patternfly-docs/generated/components/skeleton/react.js +0 -122
  126. package/patternfly-docs/generated/components/skip-to-content/react.js +0 -73
  127. package/patternfly-docs/generated/components/slider/react.js +0 -309
  128. package/patternfly-docs/generated/components/spinner/react.js +0 -111
  129. package/patternfly-docs/generated/components/switch/react.js +0 -163
  130. package/patternfly-docs/generated/components/table/react-demos.js +0 -355
  131. package/patternfly-docs/generated/components/table/react-deprecated.js +0 -1350
  132. package/patternfly-docs/generated/components/table/react.js +0 -3241
  133. package/patternfly-docs/generated/components/tabs/react-demos.js +0 -108
  134. package/patternfly-docs/generated/components/tabs/react.js +0 -1359
  135. package/patternfly-docs/generated/components/text-input-group/react-demos.js +0 -152
  136. package/patternfly-docs/generated/components/text-input-group/react.js +0 -278
  137. package/patternfly-docs/generated/components/tile/react-deprecated.js +0 -242
  138. package/patternfly-docs/generated/components/timestamp/react.js +0 -283
  139. package/patternfly-docs/generated/components/title/react.js +0 -94
  140. package/patternfly-docs/generated/components/toggle-group/react.js +0 -299
  141. package/patternfly-docs/generated/components/toolbar/react-demos.js +0 -66
  142. package/patternfly-docs/generated/components/toolbar/react.js +0 -932
  143. package/patternfly-docs/generated/components/tooltip/react.js +0 -241
  144. package/patternfly-docs/generated/components/tree-view/react.js +0 -429
  145. package/patternfly-docs/generated/components/truncate/react.js +0 -211
  146. package/patternfly-docs/generated/components/wizard/react-demos.js +0 -87
  147. package/patternfly-docs/generated/components/wizard/react-deprecated.js +0 -788
  148. package/patternfly-docs/generated/components/wizard/react.js +0 -986
  149. package/patternfly-docs/generated/developer-guides/open-ui-automation/react.js +0 -285
  150. package/patternfly-docs/generated/foundations-and-styles/layouts/bullseye/react.js +0 -70
  151. package/patternfly-docs/generated/foundations-and-styles/layouts/flex/react.js +0 -506
  152. package/patternfly-docs/generated/foundations-and-styles/layouts/gallery/react.js +0 -94
  153. package/patternfly-docs/generated/foundations-and-styles/layouts/grid/react.js +0 -272
  154. package/patternfly-docs/generated/foundations-and-styles/layouts/level/react.js +0 -87
  155. package/patternfly-docs/generated/foundations-and-styles/layouts/split/react.js +0 -124
  156. package/patternfly-docs/generated/foundations-and-styles/layouts/stack/react.js +0 -112
  157. package/patternfly-docs/generated/index.js +0 -1769
  158. package/patternfly-docs/generated/patterns/card-view/react-demos.js +0 -78
  159. package/patternfly-docs/generated/patterns/filters/react-demos.js +0 -141
  160. package/patternfly-docs/generated/patterns/password-generator/react-demos.js +0 -51
  161. package/patternfly-docs/generated/patterns/password-strength/react-demos.js +0 -61
  162. package/patternfly-docs/generated/patterns/primary-detail/react-demos.js +0 -124
  163. package/patternfly-docs/generated/patterns/right-to-left/react-demos.js +0 -81
@@ -1,598 +0,0 @@
1
- import React from 'react';
2
- import { AutoLinkHeader, Example, Link as PatternflyThemeLink } from '@patternfly/documentation-framework/components';
3
- import { Fragment, useRef, useState } from 'react';
4
- import accessibility from '@patternfly/react-styles/css/utilities/Accessibility/accessibility';
5
- const pageData = {
6
- "id": "Drawer",
7
- "section": "components",
8
- "subsection": "",
9
- "deprecated": false,
10
- "template": false,
11
- "beta": false,
12
- "demo": false,
13
- "newImplementationLink": false,
14
- "source": "react",
15
- "tabName": null,
16
- "slug": "/components/drawer/react",
17
- "sourceLink": "https://github.com/patternfly/patternfly-react/blob/main/packages/react-core/src/components/Drawer/examples/Drawer.md",
18
- "relPath": "packages/react-core/src/components/Drawer/examples/Drawer.md",
19
- "propComponents": [
20
- {
21
- "name": "Drawer",
22
- "description": "",
23
- "props": [
24
- {
25
- "name": "children",
26
- "type": "React.ReactNode",
27
- "description": "Content rendered in the drawer panel"
28
- },
29
- {
30
- "name": "className",
31
- "type": "string",
32
- "description": "Additional classes added to the Drawer.",
33
- "defaultValue": "''"
34
- },
35
- {
36
- "name": "isExpanded",
37
- "type": "boolean",
38
- "description": "Indicates if the drawer is expanded",
39
- "defaultValue": "false"
40
- },
41
- {
42
- "name": "isInline",
43
- "type": "boolean",
44
- "description": "Indicates if the content element and panel element are displayed side by side.",
45
- "defaultValue": "false"
46
- },
47
- {
48
- "name": "isPill",
49
- "type": "boolean",
50
- "description": "Indicates if the drawer will have pill styles",
51
- "defaultValue": "false",
52
- "beta": true
53
- },
54
- {
55
- "name": "isStatic",
56
- "type": "boolean",
57
- "description": "Indicates if the drawer will always show both content and panel.",
58
- "defaultValue": "false"
59
- },
60
- {
61
- "name": "onExpand",
62
- "type": "(event: KeyboardEvent | React.MouseEvent | React.TransitionEvent) => void",
63
- "description": "Callback when drawer panel is expanded after waiting 250ms for animation to complete.",
64
- "defaultValue": "() => {}"
65
- },
66
- {
67
- "name": "position",
68
- "type": "'start' | 'end' | 'bottom' | 'left' | 'right'",
69
- "description": "Position of the drawer panel. left and right are deprecated, use start and end instead.",
70
- "defaultValue": "'end'"
71
- }
72
- ]
73
- },
74
- {
75
- "name": "DrawerSection",
76
- "description": "",
77
- "props": [
78
- {
79
- "name": "children",
80
- "type": "React.ReactNode",
81
- "description": "Content to be rendered in the drawer section."
82
- },
83
- {
84
- "name": "className",
85
- "type": "string",
86
- "description": "Additional classes added to the drawer section.",
87
- "defaultValue": "''"
88
- },
89
- {
90
- "name": "colorVariant",
91
- "type": "DrawerColorVariant | 'no-background' | 'default' | 'secondary'",
92
- "description": "Color variant of the background of the drawer section.\nThe `no-background` value is deprecated; use the `isPlain` prop instead.",
93
- "defaultValue": "DrawerColorVariant.default"
94
- },
95
- {
96
- "name": "isPlain",
97
- "type": "boolean",
98
- "description": "Flag indicating that the drawer section should use plain styles.",
99
- "defaultValue": "false",
100
- "beta": true
101
- }
102
- ]
103
- },
104
- {
105
- "name": "DrawerContent",
106
- "description": "",
107
- "props": [
108
- {
109
- "name": "children",
110
- "type": "React.ReactNode",
111
- "description": "Content to be rendered in the drawer."
112
- },
113
- {
114
- "name": "className",
115
- "type": "string",
116
- "description": "Additional classes added to the Drawer."
117
- },
118
- {
119
- "name": "colorVariant",
120
- "type": "DrawerContentColorVariant | 'default' | 'primary' | 'secondary'",
121
- "description": "Color variant of the background of the drawer panel",
122
- "defaultValue": "DrawerContentColorVariant.default"
123
- },
124
- {
125
- "name": "panelContent",
126
- "type": "React.ReactNode",
127
- "description": "Content rendered in the drawer panel.",
128
- "required": true
129
- }
130
- ]
131
- },
132
- {
133
- "name": "DrawerContentBody",
134
- "description": "",
135
- "props": [
136
- {
137
- "name": "children",
138
- "type": "React.ReactNode",
139
- "description": "Content to be rendered in the drawer"
140
- },
141
- {
142
- "name": "className",
143
- "type": "string",
144
- "description": "Additional classes added to the Drawer.",
145
- "defaultValue": "''"
146
- },
147
- {
148
- "name": "hasPadding",
149
- "type": "boolean",
150
- "description": "Indicates if there should be padding around the drawer content body",
151
- "defaultValue": "false"
152
- }
153
- ]
154
- },
155
- {
156
- "name": "DrawerPanelContent",
157
- "description": "",
158
- "props": [
159
- {
160
- "name": "children",
161
- "type": "React.ReactNode",
162
- "description": "Content to be rendered in the drawer panel."
163
- },
164
- {
165
- "name": "className",
166
- "type": "string",
167
- "description": "Additional classes added to the drawer."
168
- },
169
- {
170
- "name": "colorVariant",
171
- "type": "DrawerColorVariant | 'no-background' | 'default' | 'secondary'",
172
- "description": "Color variant of the background of the drawer panel.\nThe `no-background`is deprecated; use the `isPlain` prop instead.",
173
- "defaultValue": "DrawerColorVariant.default"
174
- },
175
- {
176
- "name": "defaultSize",
177
- "type": "string",
178
- "description": "The starting size of a drawer."
179
- },
180
- {
181
- "name": "focusTrap",
182
- "type": "DrawerPanelFocusTrapObject",
183
- "description": "Adds and customizes a focus trap on the drawer panel content."
184
- },
185
- {
186
- "name": "hasNoBorder",
187
- "type": "boolean",
188
- "description": "Flag indicating that the drawer panel should not have a border.",
189
- "defaultValue": "false"
190
- },
191
- {
192
- "name": "hasNoGlass",
193
- "type": "boolean",
194
- "description": "Flag indicating that the drawer panel should disable glass styles. This prop is intended to work with isPill drawers.",
195
- "defaultValue": "false",
196
- "beta": true
197
- },
198
- {
199
- "name": "id",
200
- "type": "string",
201
- "description": "ID of the drawer panel"
202
- },
203
- {
204
- "name": "increment",
205
- "type": "number",
206
- "description": "The increment amount for keyboard drawer resizing.",
207
- "defaultValue": "5"
208
- },
209
- {
210
- "name": "isGlass",
211
- "type": "boolean",
212
- "description": "Flag indicating that the drawer panel should use glass styles when in glass theme",
213
- "defaultValue": "false",
214
- "beta": true
215
- },
216
- {
217
- "name": "isNoPlainOnGlass",
218
- "type": "boolean",
219
- "description": "Flag indicating that plain styles should be disabled when glass styles are used. This only applies when the drawer is static or inline.",
220
- "defaultValue": "false",
221
- "beta": true
222
- },
223
- {
224
- "name": "isPlain",
225
- "type": "boolean",
226
- "description": "Flag indicating that the drawer panel should use plain styles. This only applies when the drawer is static or inline.",
227
- "defaultValue": "false",
228
- "beta": true
229
- },
230
- {
231
- "name": "isResizable",
232
- "type": "boolean",
233
- "description": "Flag indicating that the drawer panel should be resizable.",
234
- "defaultValue": "false"
235
- },
236
- {
237
- "name": "maxSize",
238
- "type": "string",
239
- "description": "The maximum size of a drawer."
240
- },
241
- {
242
- "name": "minSize",
243
- "type": "string",
244
- "description": "The minimum size of a drawer."
245
- },
246
- {
247
- "name": "onResize",
248
- "type": "(event: MouseEvent | TouchEvent | React.KeyboardEvent, width: number, id: string) => void",
249
- "description": "Callback for resize end."
250
- },
251
- {
252
- "name": "resizeAriaLabel",
253
- "type": "string",
254
- "description": "Aria label for the resizable drawer splitter.",
255
- "defaultValue": "'Resize'"
256
- },
257
- {
258
- "name": "widths",
259
- "type": "{\n default?: 'width_25' | 'width_33' | 'width_50' | 'width_66' | 'width_75' | 'width_100';\n lg?: 'width_25' | 'width_33' | 'width_50' | 'width_66' | 'width_75' | 'width_100';\n xl?: 'width_25' | 'width_33' | 'width_50' | 'width_66' | 'width_75' | 'width_100';\n '2xl'?: 'width_25' | 'width_33' | 'width_50' | 'width_66' | 'width_75' | 'width_100';\n}",
260
- "description": "Width for drawer panel at various breakpoints. Overridden by resizable drawer minSize and defaultSize."
261
- }
262
- ]
263
- },
264
- {
265
- "name": "DrawerHead",
266
- "description": "",
267
- "props": [
268
- {
269
- "name": "children",
270
- "type": "React.ReactNode",
271
- "description": "Content to be rendered in the drawer head"
272
- },
273
- {
274
- "name": "className",
275
- "type": "string",
276
- "description": "Additional classes added to the drawer head.",
277
- "defaultValue": "''"
278
- }
279
- ]
280
- },
281
- {
282
- "name": "DrawerActions",
283
- "description": "",
284
- "props": [
285
- {
286
- "name": "children",
287
- "type": "React.ReactNode",
288
- "description": "Actions to be rendered in the panel head."
289
- },
290
- {
291
- "name": "className",
292
- "type": "string",
293
- "description": "Additional classes added to the drawer actions button.",
294
- "defaultValue": "''"
295
- }
296
- ]
297
- },
298
- {
299
- "name": "DrawerCloseButton",
300
- "description": "",
301
- "props": [
302
- {
303
- "name": "aria-label",
304
- "type": "string",
305
- "description": "Accessible label for the drawer close button",
306
- "defaultValue": "'Close drawer panel'"
307
- },
308
- {
309
- "name": "className",
310
- "type": "string",
311
- "description": "Additional classes added to the drawer close button outer <div>.",
312
- "defaultValue": "''"
313
- },
314
- {
315
- "name": "onClose",
316
- "type": "() => void",
317
- "description": "A callback for when the close button is clicked",
318
- "defaultValue": "() => undefined as any"
319
- }
320
- ]
321
- },
322
- {
323
- "name": "DrawerPanelDescription",
324
- "description": "Provides a description within the drawer panel. This should typically follow the drawer head.",
325
- "props": [
326
- {
327
- "name": "children",
328
- "type": "React.ReactNode",
329
- "description": "Content to be rendered in the drawer description",
330
- "required": true
331
- },
332
- {
333
- "name": "className",
334
- "type": "string",
335
- "description": "Additional classes added to the drawer description."
336
- }
337
- ]
338
- },
339
- {
340
- "name": "DrawerPanelBody",
341
- "description": "",
342
- "props": [
343
- {
344
- "name": "children",
345
- "type": "React.ReactNode",
346
- "description": "Content to be rendered in the drawer"
347
- },
348
- {
349
- "name": "className",
350
- "type": "string",
351
- "description": "Additional classes added to the Drawer.",
352
- "defaultValue": "''"
353
- },
354
- {
355
- "name": "hasNoPadding",
356
- "type": "boolean",
357
- "description": "Indicates if there should be no padding around the drawer panel body",
358
- "defaultValue": "false"
359
- }
360
- ]
361
- },
362
- {
363
- "name": "DrawerPanelFocusTrapObject",
364
- "description": "",
365
- "props": [
366
- {
367
- "name": "elementToFocusOnExpand",
368
- "type": "HTMLElement | SVGElement | string",
369
- "description": "The element to focus when the drawer panel content expands. By default the\nfirst focusable element will receive focus. If there are no focusable elements, the\npanel itself will receive focus."
370
- },
371
- {
372
- "name": "enabled",
373
- "type": "boolean",
374
- "description": "Enables a focus trap on the drawer panel content. This will also automatically\nhandle focus management when the panel expands and when it collapses. Do not pass\nthis prop if the isStatic prop on the drawer component is true."
375
- },
376
- {
377
- "name": "Unknown",
378
- "type": "string",
379
- "description": "One or more id's to use for the drawer panel content's accessible label."
380
- }
381
- ]
382
- }
383
- ],
384
- "cssPrefix": [
385
- "pf-v6-c-drawer"
386
- ],
387
- "examples": [
388
- "Basic",
389
- "Panel at end",
390
- "Panel at start",
391
- "Panel on bottom",
392
- "Basic inline",
393
- "Inline panel at end",
394
- "Inline panel at start",
395
- "Stacked content body elements",
396
- "Modified content padding",
397
- "Modified panel padding",
398
- "Additional section above drawer content",
399
- "Static drawer",
400
- "Breakpoint",
401
- "Resizable at end",
402
- "Resizable at start",
403
- "Resizable on bottom",
404
- "Resizable on inline",
405
- "Panel with secondary background",
406
- "With focus trap",
407
- "Pill",
408
- "Pill inline"
409
- ]
410
- };
411
- pageData.liveContext = {
412
- Fragment,
413
- useRef,
414
- useState,
415
- accessibility
416
- };
417
- pageData.examples = {
418
- 'Basic': props =>
419
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerContent,\n DrawerContentBody,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n DrawerPanelBody,\n DrawerPanelDescription,\n Button\n} from '@patternfly/react-core';\n\nexport const DrawerBasic: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const drawerRef = useRef<HTMLSpanElement>(null);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n\n const panelContent = (\n <DrawerPanelContent>\n <DrawerHead>\n <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n Drawer panel header\n </span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n <DrawerPanelDescription>Drawer panel description</DrawerPanelDescription>\n <DrawerPanelBody>Drawer panel body</DrawerPanelBody>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <Drawer isExpanded={isExpanded} onExpand={onExpand}>\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody>{drawerContent}</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </Fragment>\n );\n};\n","title":"Basic","lang":"ts","className":""}}>
420
-
421
- </Example>,
422
- 'Panel at end': props =>
423
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerContent,\n DrawerContentBody,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n Button\n} from '@patternfly/react-core';\n\nexport const DrawerPanelEnd: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const drawerRef = useRef<HTMLSpanElement>(null);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n\n const panelContent = (\n <DrawerPanelContent>\n <DrawerHead>\n <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n Drawer panel header\n </span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <Drawer isExpanded={isExpanded} position=\"end\" onExpand={onExpand}>\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody>{drawerContent}</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </Fragment>\n );\n};\n","title":"Panel at end","lang":"ts","className":""}}>
424
-
425
- </Example>,
426
- 'Panel at start': props =>
427
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerContent,\n DrawerContentBody,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n Button\n} from '@patternfly/react-core';\n\nexport const DrawerPanelStart: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const drawerRef = useRef<HTMLSpanElement>(null);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n\n const panelContent = (\n <DrawerPanelContent>\n <DrawerHead>\n <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n Drawer panel header\n </span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <Drawer isExpanded={isExpanded} position=\"start\" onExpand={onExpand}>\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody>{drawerContent}</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </Fragment>\n );\n};\n","title":"Panel at start","lang":"ts","className":""}}>
428
-
429
- </Example>,
430
- 'Panel on bottom': props =>
431
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerContent,\n DrawerContentBody,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n Button\n} from '@patternfly/react-core';\n\nexport const DrawerPanelBottom: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const drawerRef = useRef<HTMLSpanElement>(null);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n\n const panelContent = (\n <DrawerPanelContent>\n <DrawerHead>\n <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n Drawer panel header\n </span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <div style={{ height: '400px' }}>\n <Drawer isExpanded={isExpanded} position=\"bottom\" onExpand={onExpand}>\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody>{drawerContent}</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </div>\n </Fragment>\n );\n};\n","title":"Panel on bottom","lang":"ts","className":""}}>
432
-
433
- </Example>,
434
- 'Basic inline': props =>
435
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerContent,\n DrawerContentBody,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n Button\n} from '@patternfly/react-core';\n\nexport const DrawerBasicInline: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const drawerRef = useRef<HTMLSpanElement>(null);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n\n const panelContent = (\n <DrawerPanelContent>\n <DrawerHead>\n <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n Drawer panel header\n </span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <Drawer isExpanded={isExpanded} isInline onExpand={onExpand}>\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody>{drawerContent}</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </Fragment>\n );\n};\n","title":"Basic inline","lang":"ts","className":""}}>
436
-
437
- </Example>,
438
- 'Inline panel at end': props =>
439
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerContent,\n DrawerContentBody,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n Button\n} from '@patternfly/react-core';\n\nexport const DrawerInlinePanelEnd: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const drawerRef = useRef<HTMLSpanElement>(null);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n\n const panelContent = (\n <DrawerPanelContent>\n <DrawerHead>\n <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n Drawer panel header\n </span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <Drawer isExpanded={isExpanded} isInline onExpand={onExpand}>\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody>{drawerContent}</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </Fragment>\n );\n};\n","title":"Inline panel at end","lang":"ts","className":""}}>
440
-
441
- </Example>,
442
- 'Inline panel at start': props =>
443
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerContent,\n DrawerContentBody,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n Button\n} from '@patternfly/react-core';\n\nexport const DrawerInlinePanelStart: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const drawerRef = useRef<HTMLSpanElement>(null);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n\n const panelContent = (\n <DrawerPanelContent>\n <DrawerHead>\n <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n Drawer panel header\n </span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <Drawer isExpanded={isExpanded} isInline position=\"start\" onExpand={onExpand}>\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody>{drawerContent}</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </Fragment>\n );\n};\n","title":"Inline panel at start","lang":"ts","className":""}}>
444
-
445
- </Example>,
446
- 'Stacked content body elements': props =>
447
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerContent,\n DrawerContentBody,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n DrawerPanelBody,\n Button,\n Title\n} from '@patternfly/react-core';\n\nexport const DrawerStackedContentBodyElements: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const drawerRef = useRef<HTMLDivElement>(undefined);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n\n const panelContent = (\n <DrawerPanelContent>\n <DrawerHead>\n <Title headingLevel=\"h3\" size=\"2xl\" tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n Drawer panel header in a Title\n </Title>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n <DrawerPanelBody hasNoPadding>Drawer panel body with no padding</DrawerPanelBody>\n <DrawerPanelBody>Drawer panel body</DrawerPanelBody>\n </DrawerPanelContent>\n );\n\n return (\n <Fragment>\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <Drawer isExpanded={isExpanded} onExpand={onExpand}>\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody>content-body</DrawerContentBody>\n <DrawerContentBody hasPadding>content-body with padding</DrawerContentBody>\n <DrawerContentBody>content-body</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </Fragment>\n );\n};\n","title":"Stacked content body elements","lang":"ts","className":""}}>
448
-
449
- </Example>,
450
- 'Modified content padding': props =>
451
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerContent,\n DrawerContentBody,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n Button\n} from '@patternfly/react-core';\n\nexport const DrawerModifiedContentPadding: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const drawerRef = useRef<HTMLSpanElement>(null);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n\n const panelContent = (\n <DrawerPanelContent>\n <DrawerHead>\n <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n Drawer panel header\n </span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <Drawer isExpanded={isExpanded} onExpand={onExpand}>\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody hasPadding>\n <b>Drawer content padding.</b> {drawerContent}\n </DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </Fragment>\n );\n};\n","title":"Modified content padding","lang":"ts","className":""}}>
452
-
453
- </Example>,
454
- 'Modified panel padding': props =>
455
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerContent,\n DrawerContentBody,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n Button\n} from '@patternfly/react-core';\n\nexport const DrawerModifiedPanelPadding: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const drawerRef = useRef<HTMLSpanElement>(null);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n\n const panelContent = (\n <DrawerPanelContent>\n <DrawerHead>\n <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n Drawer panel header\n </span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <Drawer isExpanded={isExpanded} onExpand={onExpand}>\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody>{drawerContent}</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </Fragment>\n );\n};\n","title":"Modified panel padding","lang":"ts","className":""}}>
456
-
457
- </Example>,
458
- 'Additional section above drawer content': props =>
459
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerContent,\n DrawerContentBody,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n DrawerSection,\n Button\n} from '@patternfly/react-core';\n\nexport const DrawerAdditionalSectionAboveContent: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const drawerRef = useRef<HTMLSpanElement>(null);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n\n const panelContent = (\n <DrawerPanelContent>\n <DrawerHead>\n <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n drawer-panel\n </span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <Drawer isExpanded={isExpanded} onExpand={onExpand}>\n <DrawerSection>drawer-section</DrawerSection>\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody>{drawerContent}</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </Fragment>\n );\n};\n","title":"Additional section above drawer content","lang":"ts","className":""}}>
460
-
461
- </Example>,
462
- 'Static drawer': props =>
463
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerContent,\n DrawerContentBody,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n Button\n} from '@patternfly/react-core';\nimport accessibility from '@patternfly/react-styles/css/utilities/Accessibility/accessibility';\n\nexport const DrawerStatic: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const drawerRef = useRef<HTMLSpanElement>(null);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n\n const panelContent = (\n <DrawerPanelContent>\n <DrawerHead>\n <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n Drawer panel header\n </span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Button className={accessibility.hiddenOnMd} aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <Drawer isStatic isExpanded={isExpanded} onExpand={onExpand}>\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody>{drawerContent}</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </Fragment>\n );\n};\n","title":"Static drawer","lang":"ts","className":""}}>
464
-
465
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
466
-
467
- <strong {...{"className":""}}>
468
- {`Note:`}
469
- </strong>
470
- {` For mobile viewports, all drawer variants behave the same way. At the `}
471
-
472
- <code {...{"className":"ws-code "}}>
473
- {`md`}
474
- </code>
475
- {` breakpoint, or where `}
476
-
477
- <code {...{"className":"ws-code "}}>
478
- {`.pf-m-static{-on-[lg, xl, 2xl]}`}
479
- </code>
480
- {` is applied, the `}
481
-
482
- <code {...{"className":"ws-code "}}>
483
- {`static drawer`}
484
- </code>
485
- {` variant’s `}
486
-
487
- <code {...{"className":"ws-code "}}>
488
- {`close button`}
489
- </code>
490
- {` is automatically hidden because the drawer panel doesn’t close by design.`}
491
- </p>
492
- </Example>,
493
- 'Breakpoint': props =>
494
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerContent,\n DrawerContentBody,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n Button\n} from '@patternfly/react-core';\n\nexport const DrawerBreakpoint: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const drawerRef = useRef<HTMLSpanElement>(null);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n\n const panelContent = (\n <DrawerPanelContent widths={{ default: 'width_33' }}>\n <DrawerHead>\n <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n Drawer panel header\n </span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <Drawer isExpanded={isExpanded} onExpand={onExpand}>\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody>{drawerContent}</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </Fragment>\n );\n};\n","title":"Breakpoint","lang":"ts","className":""}}>
495
-
496
- </Example>,
497
- 'Resizable at end': props =>
498
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerContent,\n DrawerContentBody,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n Button\n} from '@patternfly/react-core';\n\nexport const DrawerResizableAtEnd: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const drawerRef = useRef<HTMLSpanElement>(null);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n\n const onResize = (_event: MouseEvent | TouchEvent | React.KeyboardEvent, newWidth: number, id: string) => {\n // eslint-disable-next-line no-console\n console.log(`${id} has new width of: ${newWidth}`);\n };\n\n const panelContent = (\n <DrawerPanelContent isResizable onResize={onResize} id=\"end-resize-panel\" defaultSize={'500px'} minSize={'150px'}>\n <DrawerHead>\n <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n Drawer panel header\n </span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <Drawer isExpanded={isExpanded} onExpand={onExpand} position=\"end\">\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody>{drawerContent}</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </Fragment>\n );\n};\n","title":"Resizable at end","lang":"ts","className":""}}>
499
-
500
- </Example>,
501
- 'Resizable at start': props =>
502
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerContent,\n DrawerContentBody,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n Button\n} from '@patternfly/react-core';\n\nexport const DrawerResizableAtStart: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const drawerRef = useRef<HTMLSpanElement>(null);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n\n const panelContent = (\n <DrawerPanelContent isResizable defaultSize={'500px'} minSize={'200px'}>\n <DrawerHead>\n <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n Drawer panel header\n </span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <Drawer isExpanded={isExpanded} onExpand={onExpand} position=\"start\">\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody>{drawerContent}</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </Fragment>\n );\n};\n","title":"Resizable at start","lang":"ts","className":""}}>
503
-
504
- </Example>,
505
- 'Resizable on bottom': props =>
506
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n Button,\n DrawerContent,\n DrawerContentBody\n} from '@patternfly/react-core';\n\nexport const DrawerResizableOnBottom: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const drawerRef = useRef<HTMLSpanElement>(null);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n const panelContent = (\n <DrawerPanelContent isResizable defaultSize={'200px'} minSize={'100px'}>\n <DrawerHead>\n <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n Drawer panel header\n </span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <div style={{ height: '400px' }}>\n <Drawer isExpanded={isExpanded} onExpand={onExpand} position=\"bottom\">\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody>{drawerContent}</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </div>\n </Fragment>\n );\n};\n","title":"Resizable on bottom","lang":"ts","className":""}}>
507
-
508
- </Example>,
509
- 'Resizable on inline': props =>
510
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n Button,\n DrawerContent,\n DrawerContentBody\n} from '@patternfly/react-core';\n\nexport const DrawerResizableOnInline: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const drawerRef = useRef<HTMLSpanElement>(null);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n const panelContent = (\n <DrawerPanelContent isResizable defaultSize={'500px'} minSize={'150px'}>\n <DrawerHead>\n <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n Drawer panel header\n </span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <Drawer isExpanded={isExpanded} onExpand={onExpand} isInline>\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody>{drawerContent}</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </Fragment>\n );\n};\n","title":"Resizable on inline","lang":"ts","className":""}}>
511
-
512
- </Example>,
513
- 'Panel with secondary background': props =>
514
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Checkbox,\n Drawer,\n DrawerPanelContent,\n DrawerContent,\n DrawerContentBody,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n DrawerSection,\n Button,\n DrawerColorVariant,\n DrawerContentColorVariant\n} from '@patternfly/react-core';\n\nexport const DrawerSecondaryBackground: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const [panelSecondary, setPanelSecondary] = useState(true);\n const [contentSecondary, setContentSecondary] = useState(false);\n const [sectionSecondary, setSectionSecondary] = useState(false);\n\n const drawerRef = useRef<HTMLSpanElement>(null);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n\n const togglePanelSecondary = (checked: boolean) => {\n setPanelSecondary(checked);\n };\n\n const toggleSectionSecondary = (checked: boolean) => {\n setSectionSecondary(checked);\n };\n\n const toggleContentSecondary = (checked: boolean) => {\n setContentSecondary(checked);\n };\n\n const panelContent = (\n <DrawerPanelContent colorVariant={panelSecondary ? DrawerColorVariant.secondary : DrawerColorVariant.default}>\n <DrawerHead>\n <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n Drawer panel header\n </span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Checkbox\n label=\"Secondary panel\"\n isChecked={panelSecondary}\n onChange={(_event, checked) => togglePanelSecondary(checked)}\n aria-label=\"Secondary panel checkbox\"\n id=\"toggle-secondary-panel\"\n name=\"toggle-secondary-panel\"\n />\n <Checkbox\n label=\"Secondary content\"\n isChecked={contentSecondary}\n onChange={(_event, checked) => toggleContentSecondary(checked)}\n aria-label=\"Secondary content checkbox\"\n id=\"toggle-secondary-content\"\n name=\"toggle-secondary-content\"\n />\n <Checkbox\n label=\"Secondary section\"\n isChecked={sectionSecondary}\n onChange={(_event, checked) => toggleSectionSecondary(checked)}\n aria-label=\"Secondary section checkbox\"\n id=\"toggle-secondary-section\"\n name=\"toggle-secondary-section\"\n />\n <br />\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <Drawer isExpanded={isExpanded} onExpand={onExpand}>\n <DrawerSection colorVariant={sectionSecondary ? DrawerColorVariant.secondary : DrawerColorVariant.default}>\n drawer-section\n </DrawerSection>\n <DrawerContent\n colorVariant={contentSecondary ? DrawerContentColorVariant.secondary : DrawerContentColorVariant.default}\n panelContent={panelContent}\n >\n <DrawerContentBody>{drawerContent}</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </Fragment>\n );\n};\n","title":"Panel with secondary background","lang":"ts","className":""}}>
515
-
516
- </Example>,
517
- 'With focus trap': props =>
518
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerContent,\n DrawerContentBody,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n Button\n} from '@patternfly/react-core';\n\nexport const DrawerFocusTrap: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n\n // An onKeyDown property must be passed to the Drawer component to handle closing\n // the drawer panel and deactivating the focus trap via the Escape key.\n const onEscape = (event: React.KeyboardEvent) => {\n if (event.key === 'Escape') {\n setIsExpanded(false);\n }\n };\n\n const panelContent = (\n <DrawerPanelContent focusTrap={{ enabled: true }}>\n <DrawerHead>\n <span>Drawer panel header</span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer with focus trap\n </Button>\n <Drawer onKeyDown={onEscape} isExpanded={isExpanded}>\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody>{drawerContent}</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </Fragment>\n );\n};\n","title":"With focus trap","lang":"ts","className":""}}>
519
-
520
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
521
- {`When a `}
522
-
523
- <PatternflyThemeLink {...{"to":"/accessibility/develop#trapping-focus","className":""}}>
524
- {`focus trap`}
525
- </PatternflyThemeLink>
526
- {` is enabled on an element, a user will only be able to interact with the contents of that element until the focus trap is closed or deactivated.`}
527
- </p>
528
-
529
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
530
- {`To enable and customize a focus trap on a drawer panel, apply the `}
531
-
532
- <code {...{"className":"ws-code "}}>
533
- {`focusTrap`}
534
- </code>
535
- {` property to the `}
536
-
537
- <code {...{"className":"ws-code "}}>
538
- {`<DrawerPanelContent>`}
539
- </code>
540
- {` component. Enabling a focus trap with `}
541
-
542
- <code {...{"className":"ws-code "}}>
543
- {`focusTrap.enabled`}
544
- </code>
545
- {` will also automatically place focus on the first focusable element when the drawer panel expands, and return focus to the previously focused element when it collapses.`}
546
- </p>
547
-
548
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
549
- {`To customize which element receives focus when the drawer panel expands, use the `}
550
-
551
- <code {...{"className":"ws-code "}}>
552
- {`focusTrap.elementToFocusOnExpand`}
553
- </code>
554
- {` property.`}
555
- </p>
556
- </Example>,
557
- 'Pill': props =>
558
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerContent,\n DrawerContentBody,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n Button\n} from '@patternfly/react-core';\n\nexport const DrawerBasicPill: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const drawerRef = useRef<HTMLSpanElement>(null);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n\n const panelContent = (\n <DrawerPanelContent>\n <DrawerHead>\n <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n Drawer panel header\n </span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <Drawer isExpanded={isExpanded} isPill onExpand={onExpand}>\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody>{drawerContent}</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </Fragment>\n );\n};\n","title":"Pill","lang":"ts","className":""}}>
559
-
560
- </Example>,
561
- 'Pill inline': props =>
562
- <Example {...pageData} {...props} {...{"code":"import { Fragment, useRef, useState } from 'react';\nimport {\n Drawer,\n DrawerPanelContent,\n DrawerContent,\n DrawerContentBody,\n DrawerHead,\n DrawerActions,\n DrawerCloseButton,\n Button\n} from '@patternfly/react-core';\n\nexport const DrawerBasicPill: React.FunctionComponent = () => {\n const [isExpanded, setIsExpanded] = useState(false);\n const drawerRef = useRef<HTMLSpanElement>(null);\n\n const onExpand = () => {\n drawerRef.current && drawerRef.current.focus();\n };\n\n const onClick = () => {\n setIsExpanded(!isExpanded);\n };\n\n const onCloseClick = () => {\n setIsExpanded(false);\n };\n\n const panelContent = (\n <DrawerPanelContent>\n <DrawerHead>\n <span tabIndex={isExpanded ? 0 : -1} ref={drawerRef}>\n Drawer panel header\n </span>\n <DrawerActions>\n <DrawerCloseButton onClick={onCloseClick} />\n </DrawerActions>\n </DrawerHead>\n </DrawerPanelContent>\n );\n\n const drawerContent =\n 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus pretium est a porttitor vehicula. Quisque vel commodo urna. Morbi mattis rutrum ante, id vehicula ex accumsan ut. Morbi viverra, eros vel porttitor facilisis, eros purus aliquet erat,nec lobortis felis elit pulvinar sem. Vivamus vulputate, risus eget commodo eleifend, eros nibh porta quam, vitae lacinia leo libero at magna. Maecenas aliquam sagittis orci, et posuere nisi ultrices sit amet. Aliquam ex odio, malesuada sed posuere quis, pellentesque at mauris. Phasellus venenatis massa ex, eget pulvinar libero auctor pretium. Aliquam erat volutpat. Duis euismod justo in quam ullamcorper, in commodo massa vulputate.';\n\n return (\n <Fragment>\n <Button aria-expanded={isExpanded} onClick={onClick}>\n Toggle drawer\n </Button>\n <Drawer isExpanded={isExpanded} isPill isInline onExpand={onExpand}>\n <DrawerContent panelContent={panelContent}>\n <DrawerContentBody>{drawerContent}</DrawerContentBody>\n </DrawerContent>\n </Drawer>\n </Fragment>\n );\n};\n","title":"Pill inline","lang":"ts","className":""}}>
563
-
564
- </Example>
565
- };
566
-
567
- const Component = () => (
568
- <React.Fragment>
569
- <AutoLinkHeader {...{"id":"examples","headingLevel":"h2","className":"ws-title ws-h2"}}>
570
- {`Examples`}
571
- </AutoLinkHeader>
572
- {React.createElement(pageData.examples["Basic"])}
573
- {React.createElement(pageData.examples["Panel at end"])}
574
- {React.createElement(pageData.examples["Panel at start"])}
575
- {React.createElement(pageData.examples["Panel on bottom"])}
576
- {React.createElement(pageData.examples["Basic inline"])}
577
- {React.createElement(pageData.examples["Inline panel at end"])}
578
- {React.createElement(pageData.examples["Inline panel at start"])}
579
- {React.createElement(pageData.examples["Stacked content body elements"])}
580
- {React.createElement(pageData.examples["Modified content padding"])}
581
- {React.createElement(pageData.examples["Modified panel padding"])}
582
- {React.createElement(pageData.examples["Additional section above drawer content"])}
583
- {React.createElement(pageData.examples["Static drawer"])}
584
- {React.createElement(pageData.examples["Breakpoint"])}
585
- {React.createElement(pageData.examples["Resizable at end"])}
586
- {React.createElement(pageData.examples["Resizable at start"])}
587
- {React.createElement(pageData.examples["Resizable on bottom"])}
588
- {React.createElement(pageData.examples["Resizable on inline"])}
589
- {React.createElement(pageData.examples["Panel with secondary background"])}
590
- {React.createElement(pageData.examples["With focus trap"])}
591
- {React.createElement(pageData.examples["Pill"])}
592
- {React.createElement(pageData.examples["Pill inline"])}
593
- </React.Fragment>
594
- );
595
- Component.displayName = 'ComponentsDrawerReactDocs';
596
- Component.pageData = pageData;
597
-
598
- export default Component;